大学排名怎么看?

以泰晤士高等教育世界大学排名和学科排名为例



  近日,教育部、科技部印发了《关于规范高等学校SCI论文相关指标使用 树立正确评价导向的若干意见》(教科技〔2020〕2号),要求高校摒弃“以刊评文”、破除“SCI至上”,探索建立科学的评价体系,其中明确提出要“减少对学科、学校的排名性评价,坚持分类和分领域评价”。

  客观来看,科研评价中“SCI至上”的风气是高校滥用各类大学排行榜所致。为回应上级部门、社会各界对办学绩效的高度关切,高校越来越重视大学和学科排名,THE、QS、US News、ARWU等各类排行榜隐然成为各大高校展示学术实力、提高办学声誉的“锦标赛”。由于这些排行榜大多以SCI论文数量、被引次数、高被引论文、影响因子等作为关键指标,因此,部分高校紧盯这类指标,在科研管理和职称评聘中片面强调发表SCI论文,出现了“SCI至上”的问题,扭曲了科研创新的价值追求,助长了急功近利的学术风气。

  时至今日,如何看待形形色色的排行榜?有学者指出应“理性利用大学排行榜”1:排行榜一方面促进了大学之间的竞争,但却导致部分大学“对照排行榜搞建设”、“SCI至上”等乱象;另一方面,排行榜发挥了一些建设性功效,例如引导激励大学发展,诊断大学面临的问题,为大学之间尤其是同类型大学之间的比较提供参考,为大学提供监测和预警等。大学在使用排行榜的过程中,应适度淡化排名竞争,着力发挥其引导、诊断、比较、监测和预警等功效。

  综上所述,日后对于各类排行榜,大学不应过度执着于排名先后,对各类排行榜的认识,要实现三个转变:一是更多地将排行榜视为反映学校内涵式发展的测量工具,而非对外美化声誉的宣传工具;更多地将排行榜用于优化学科生态、促进学科建设,而非单纯比拼论文的多寡,影响因子大小;更多地将排行榜作为找准发展定位、凝练办学特色的参照系,而非求大求全、平庸发展的校准仪。

  为实现上述转变,本研究进一步对大学排行榜的相关数据进行深入研究,从服务大学内涵式发展和“双一流”建设的角度出发,重点关注以下四个关键问题:

  1. 如何评价排行榜的科学性?
  2. 如何对大学进行分类和比较?
  3. 如何理解大学整体排名和学科排名之间的关系?
  4. 如何理解不同学科排名之间的关系?

  本研究以泰晤士高等教育(以下简称“THE”)世界大学排名和学科排名为研究对象,通过分析THE排名的指标体系,采集近三年(2018年至2020年)THE大学排名和学科排名的相关数据,以期回应上述研究问题。

问题一:THE世界大学排名的科学性

对THE世界大学排名指标体系的评析与数据采集


  (一)简析THE世界大学排名和学科排名

  THE世界大学排名肇始于2004年,最早由《泰晤士报高等教育》与英国Quacquarelli Symonds(QS)公司联合发布世界大学排行榜;2010年,泰晤士与QS分道扬镳,改与路透社及爱思唯尔合作,建立了自己的排名系统。2020年,参与THE大学排行榜的大学达到了1397所,其指标体系如表1所示:

表1 THE世界大学排名的指标权重

指标 权重 性质
1. 教学 30.00% ——
1.1 教学声誉(调查) 15.00% 主观指标
1.2 生师比 4.50% 客观指标
1.3 博士学位授予数与学士学位授予数的比率 2.25% 客观指标
1.4 博士学位授予数与教师数的比率 6.00% 客观指标
1.5 机构收入 2.25% 客观指标
2. 科研 30.00% ——
2.1 研究声誉(调查) 18.00% 客观指标
2.2 研究收入 6.00% 客观指标
2.3 研究产出2 6.00% 客观指标
3. 引用 30.00% 客观指标
4. 国际化 7.50% ——
4.1 国际学生比例 2.50% 客观指标
4.2 国外教师比例 2.50% 客观指标
4.3 期刊发表中国际合作论文的比例 2.50% 客观指标
5. 行业创收 2.50% 客观指标

  根据上述指标,可以发现目前THE世界大学排行版的指标以客观指标为主,其指标权重总计67%,主观指标包括教学声誉调查(15%)和研究声誉调查(18%)。

  在大学排名之外,THE还按11个学科(细分为36个专业,详见附表1)进行了排名,这些学科包括:临床医学与健康、生命科学、自然科学、心理学、商科与经济学、教育学、法学、社会科学、工程技术、计算机科学、人文艺术等。上述学科大类的指标体系和大学排名的指标体系一致,包含教学、科研、引用、国际化和行业创收五大类,但每个学科在不同指标的权重有细微差别,详见下表:

表2 THE世界大学学科排名的指标权重

学科 教学 科研 引用 国际化 行业创收
临床医学与健康 27.5% 27.5% 35% 7.5% 2.5%
生命科学 27.5% 27.5% 35% 7.5% 2.5%
自然科学 27.5% 27.5% 35% 7.5% 2.5%
心理学 27.5% 27.5% 35% 7.5% 2.5%
商科与经济学 30.9% 32.6% 25% 9% 2.5%
教育学 32.7% 29.8% 27.5% 7.5% 2.5%
法学 32.7% 30.8% 25% 9% 2.5%
社会科学 32.4% 32.6% 25% 7.5% 2.5%
工程技术 30% 30% 27.5% 7.5% 5%
计算机科学 30% 30% 27.5% 7.5% 5%
人文艺术 37.4% 37.6% 15% 7.5% 5%

  从上述指标来看,商科与经济学、教育学、法学、社会科学、人文艺术等偏人文的学科在教学、科研这两个一级指标上的权重相对较大,都超过了60%,而引用所占的权重相对较小,约在25%至27.5%之间;临床医学与健康、生命科学、自然科学、心理学等偏理科的学科在引用这个一级指标上的权重较大,都达到了35%,而教学、科研所占权重相对小一些,均为55%;工程技术、计算机科学等偏工科的学科,各指标的权重比较“中庸”,教学、科研各占30%的权重,引用所占权重为27.5%。总体来看,这套指标体系大体上反映了各学科的特点。具有一定的科学性。

  但是,在大多数学科的指标体系中,国际化所占权重达到7.5%,少数学科如商科与经济学、法学的国际化指标权重甚至达到了9%。大学的生源、教师和论文发表的国际化对其提升办学实力的作用固然不可或缺,但权重占比明显高于行业创收(约2.5%至5%之间),甚至在工程技术、计算机科学等工科领域,国际化指标的权重仍高出行业创收2.5个百分点,这一权重设计是有待商榷的。

  总而言之,THE世界大学排名和学科排名指标体系设计具有一定的科学性,但其对国际化指标权重设计的合理性是存疑的,在分析过程中有必要将教学、科研、引用、国际化和行业创收等不同的指标拆解开来,逐一分析。

  (二)数据采集和样本分布

  根据THE世界大学排名官方网站公布的数据3,可用于分析的指标有两类,一是反映学校基本情况信息的数据,包括:所在国家、学生数、生师比、国际学生占比、男女比率; 二是世界大学排名(或学科排名)的各项指标评分值,包括排名总分、教学排名评分、研究排名评分、引用排名评分、国际化排名评分、行业创收排名评分等。

  通过对THE官方网站的网页进行分析,本研究通过自编的python程序采集了THE世界大学排行榜(2020)上1397所大学2018-2020年间在上述指标的相关数据,其样本的国别分布如表3所示。2020年,我国参与THE世界大学排名的高校共有81所,仅次于美国、日本和英国。

表3 样本的国别分布

序号 国家 大学数 序号 国家 大学数
1 美国 172 17 加拿大 30
2 日本 110 18 埃及 20
3 英国 100 19 智利 18
4 中国 81 20 捷克 17
5 印度 56 21 墨西哥 17
6 德国 48 22 泰国 16
7 巴西 46 23 巴基斯坦 14
8 意大利 45 24 波兰 14
9 西班牙 45 25 马来西亚 13
10 伊朗 40 26 荷兰 13
11 俄罗斯 39 27 葡萄牙 13
12 法国 38 28 瑞典 12
13 台湾 36 29 奥地利 11
14 澳大利亚 35 30 瑞士 11
15 土耳其 34 31 希腊 10
16 南韩 31 32 南非 10
其他国家 202
总计 1397

问题二:如何对大学进行分类

学科排名总分变异系数的构建

  参与2020年THE世界大学排名的大学接近1400多所,学校之间的差异巨大,其中,既有学科门类比较齐全,各学科实力比较均衡的综合型大学,也有在少数学科上实力突出的行业特殊型大学。如果简单看排名高低,难免会出现把鱼和猴子放在一起比赛爬树的荒诞局面,因此,要对大学之间进行科学比较,首先必须根据学科发展情况对大学进行区分:本研究计算了学科排名总分变异系数(以下简称“学科变异系数”),作为度量大学学科发展均衡程度和分类的工具。公式如下:   

\[ 学科排名总分变异系数_i=\frac{学科排名总分的标准差_i}{学科排名总分的平均值_i} \]

  某大学i的学科变异系数等于其在临床医学等11个学科排名总分(缺失值计为0)的标准差除以其平均值。根据这一计算公式,2020年参加THE世界大学排名的1397所大学变异系数如下图所示。   

图1 THE世界大学排名的名次与学科排名总分变异系数

  从图1中的那条拟合线可以看出,在THE世界大学排名越靠前的大学,其学科变异系数越低,亦即排名靠前的大学有较大比例是学科发展水平比较均衡的综合型大学。

  根据学科变异系数的33%和67%的百分位数(分别为0.842和1.726,即图1中的两条横线),本研究将参评THE世界大学排名的大学分为三类,一是学科变异系数小于0.842的大学,此类大学为学科发展均衡的综合型大学;二是学科变异系数界于0.842和1.726的大学,此类大学是有一定的学科特色,但总体上学科比较均衡的大学;三是学科变异系数大于1.726的学科特色突出的大学。

  按上述3类大学来区分,参评的81所中国大学的分布情况如下:

表4.1 学科变异系数较小的中国大学

名次 学校 开设专业数 学科排名总分变异系数
23 清华大学 29 0.659
24 北京大学 27 0.354
108 浙江大学 31 0.421
109 复旦大学 27 0.539
145 南京大学 26 0.667
161 上海交通大学 22 0.556
293 中山大学 26 0.528
304 北京师范大学 22 0.569
401 武汉大学 29 0.674
414 中南大学 26 0.803
490 同济大学 28 0.695
524 华东师范大学 20 0.566
575 中国人民大学 21 0.821
582 深圳大学 29 0.678
599 厦门大学 31 0.684

表4.2 学科变异系数中等的中国大学

名次 学校 开设专业数 学科排名总分变异系数
82 中国科学技术大学 17 1.395
313 华中科技大学 23 0.842
336 南方科技大学 11 1.418
380 南开大学 23 0.835
439 湖南大学 19 1.026
508 北京航空航天大学 20 1.163
584 东吴大学 26 0.894
585 华南理工大学 24 0.831
586 东南大学 25 0.873
589 天津大学 21 1.187
600 西安交通大学 16 0.843
616 北京理工大学 20 0.980
628 中国农业大学 20 1.231
638 大连理工大学 20 0.983
642 华东理工大学 17 1.715
721 南京信息工程大学 17 1.437
723 南京师范大学 25 1.191
735 西北工业大学 21 1.158
766 山东大学 19 0.974
770 四川大学 16 0.841
825 北京交通大学 23 1.404
841 中国地质大学(北京) 11 1.447
842 中国地质大学(武汉) 18 1.451
843 中国矿业大学 17 1.190
844 中国药科大学 14 1.717
845 重庆大学 23 0.841
866 福州大学 20 1.461
885 江苏大学 22 1.172
886 吉林大学 22 0.863
887 暨南大学 25 1.160
930 东北大学 20 0.995
933 西北大学 21 1.435
958 北京科技大学 22 1.206
962 上海大学 21 0.987
965 汕头大学 23 1.722
996 武汉理工大学 25 1.243
997 湘潭大学 21 1.715
999 扬州大学 24 1.193
1131 广西大学 28 1.395
1215 南京航空航天大学 20 1.195
1244 中国海洋大学 26 1.393
1322 西南交通大学 22 1.455
1387 燕山大学 19 1.718
1397 浙江工业大学 20 1.399

表4.3 学科变异系数较大的中国大学

名次 学校 开设专业数 学科排名总分变异系数
435 哈尔滨工业大学 19 1.745
629 中国石油大学(北京) 19 2.227
645 电子科技大学 18 2.229
659 华中农业大学 22 2.242
670 对外经济贸易大学 6 3.317
681 江苏师范大学 20 1.724
722 南京医科大学 2 3.317
833 首都医科大学 3 2.264
869 广东工业大学 14 3.317
917 南京农业大学 22 1.775
918 南京工业大学 20 2.225
931 东北师范大学 20 2.234
934 西北农林科技大学 11 1.792
963 上海财经大学 9 1.770
964 上海海事大学 7 2.233
970 西南财经大学 14 2.264
998 西安电子科技大学 19 1.803
1142 华侨大学 24 1.724
1239 华北电力大学 16 3.317
1316 南华大学 21 1.858
1318 南方医科大学 2 3.317
1379 温州医科大学 10 2.225

  根据上述表格,学科排名总分变异系数较低、中等和较高的中国大学分别有 15、44、22 所,其中,学科发展较均衡(即学科变异系数较小)的中国大学包括:清华大学、北京大学、浙江大学、复旦大学等15所综合型大学,而学科特色较为突出(即学科变异系数较大)的中国大学包括:哈尔滨工业大学、中国石油大学(北京)、电子科技大学、华中农业大学等22所大学,其中除南华大学和华侨大学之外,其余20所均为行业特色大学。

  总体上看,根据学科变异系数对大学进行分类,与我们日常经验较吻合,可做为较为科学的分类依据。

问题三:如何理解学科排名与大学排名之间的关系

对大学排名面板数据的分析

  学科是大学的细胞,世界一流学科是建设世界一流大学的基础4。纵观各国知名大学,无不是拥有若干世界领先的学科(或学科群),反映了大学的目标定位、办学特色和学术实力。

  从科学研究的角度来看,每一个学科都是人类知识体系中的一个分支,本无优劣高下之分,也不应过度强调门类之别,实际上,跨学科交叉研究是取得重大科学发现和产生引领性原创成果重大突破的重要方式,近100年的300多项诺贝尔自然科学奖中,有近半内容是跨学科交叉研究的成果5。但从大学排名和学科排名的角度看,学科不仅泾渭分明,而且对大学排名的“贡献度”也是有大有小的

  为研究各大学的学科排名对其大学排名的影响,本研究首先根据THE世界大学排名和学科排名的各项指标(参见表1、表2)及其权重,计算出1397所大学在2018年至2020年间THE世界大学排名和学科排名的总分,然后以THE世界大学排名总分为因变量,以11个学科的排名总分为自变量,以学生数、生师比、所有专业数和学科排名总分变异系数等反映学校办学规模、师资条件和学科结构等关键变量为控制变量。采用纵列数据分析的方法,模型如下:

\[ \begin{align} 大学排名总分_{it}=&\beta_0+\beta_1*临床医学.总分_{it}+\beta_2*生命科学.总分_{it} \\ &+\beta_3*自然科学.总分_{it}+\beta_4*心理学.总分_{it}+\beta_5*商科和经济学.总分_{it}\\ &+\beta_6*教育学.总分_{it}+\beta_7*法学.总分_{it}+\beta_8*社会科学.总分_{it}\\ &+\beta_9*工程技术.总分_{it}+\beta_{10}*计算机科学.总分_{it}+\beta_{11}*人文艺术.总分_{it}\\ &+\beta_{12}*学生数_{it}+\beta_{13}*生师比_{it}+\beta_{14}*所有专业数_{it}\\ &+\beta_{15}*学科排名总分变异系数_{it}+e_{it} \end{align} \]

  根据 \(e_{it}\) 中是否包含有不随时间变化的“个体效应”,纵列数据分析需要估算两种模型:随机效应模型和固定效应模型。本研究使用R的plm统计软件包,对上述两类模型的估算结果如表5所示:

表5 THE世界大学排名的统计模型

总分
随机效应 固定效应
(1) (2)
临床医学.总分 0.170*** 0.060***
生命科学.总分 0.090*** 0.023***
自然科学.总分 0.096*** 0.024***
心理学.总分 0.032*** 0.003
商科和经济学.总分 0.007 0.004
教育学.总分 0.001 0.002
法学.总分 0.025*** 0.0004
社会科学.总分 0.098*** 0.027***
工程技术.总分 0.106*** 0.037***
计算机科学.总分 0.057*** 0.020***
人文艺术.总分 0.182*** 0.039***
学生数 -0.00001** 0.00000
教职工数 -0.001*** -0.001***
所有专业数 -0.106***
学科排名总分变异系数 3.004*** 0.404***
Constant 17.783***
Observations 3,369 3,369
R2 0.510 0.123
Note: p<0.1; p<0.05; p<0.01

  对上述两个模型的豪斯曼检验(Hausman Test,卡方值=1913.6;自由度=14;P值<0.01),结果显著.据此,应以固定效应模型的结果为准。根据固定效应模型,对大学排名总分的影响效应值由大到小分别是:临床医学(0.060),人文艺术(0.039),工程技术(0.037),社会科学(0.027),自然科学(0.024),生命科学(0.023)和计算机科学(0.020);心理学、商科和经济学、教育学和法学等学科排名总分对大学排名总分的影响效应不显著。此外,教职员工数对大学排名总分有显著负影响,学科排名总分变异系数对大学排名总分有显著正影响。这说明在学科结构类似的情况下,师资规模较小、学科实力差异较大的大学,即“小而有特色”的大学排名较靠前

问题四:如何理解学科排名之间的关系

  学科是相互联系的,物理学家、量子论的创始人M·普朗克也深刻地认识到:“科学是内在的整体,被分解为单独的部门不是取决于事物的本质,而是取决于人类认识能力的局限性。实际上存在着由物理学到化学、通过生物学和人类学到社会科学的链条,这是一个任何一处都不能被打断的链条。”6。因此,于大学而言,最好的情况是若干学科相互渗透、相互支撑,共同构建一个健康而富有活力学科生态;于某一特定学科而言,则有两种情况:从知识生产的角度看,其他学科的研究视角、研究方法和相关理论可能成为本学科研究的重要补益,从而促进本学科的发展;但从资源约束的角度,其他学科与本学科在人力、经费等资源竞争方面相互角力,在资源稀缺的情况下,其他学科的繁荣可能压制本学科的发展。

  那么,在不同类型的大学里,学科之间是怎样一种关系?是共生共荣还是此消彼长? 对THE的学科排名可以提供一个分析视角。以商科和经济学为例,若以商科和经济学学科排名各项指标得分为因变量,以其他学科排名指标得分为自变量,可通过PLM模型分析商科和经济学与其他学科之间的关系。模型公式如下:

\[ \begin{align} 商科和经济学.总分&=临床医学.总分+生命科学.总分+自然科学.总分\\ &+心理学.总分+教育学.总分+法学.总分+社会科学.总分+工程技术.总分\\ &+计算机科学.总分+人文艺术.总分+学科变异系数 \tag{公式1} \\ 商科和经济学.引用&=临床医学.引用+生命科学.引用+自然科学.引用\\ &+心理学.引用+教育学.引用+法学.引用+社会科学.引用+工程技术.引用\\ &+计算机科学.引用+人文艺术.引用+学科变异系数 \tag{公式2} \\ 商科和经济学.教学&=临床医学.教学+生命科学.教学+自然科学.教学\\ &+心理学.教学+教育学.教学+法学.教学+社会科学.教学+工程技术.教学\\ &+计算机科学.教学+人文艺术.教学+学科变异系数 \tag{公式3} \\ 商科和经济学.科研&=临床医学.科研+生命科学.科研+自然科学.科研\\ &+心理学.科研+教育学.科研+法学.科研+社会科学.科研+工程技术.科研\\ &+计算机科学.科研+人文艺术.科研+学科变异系数 \tag{公式4} \\ 商科和经济学.国际化&=临床医学.国际化+生命科学.国际化+自然科学.国际化\\ &+心理学.国际化+教育学.国际化+法学.国际化+社会科学.国际化\\ &+工程技术.国际化+计算机科学.国际化+人文艺术.国际化+学科变异系数 \tag{公式5} \\ 商科和经济学.行业创收&=临床医学.行业创收+生命科学.行业创收+自然科学.行业创收\\ &+心理学.行业创收+教育学.行业创收+法学.行业创收+社会科学.行业创收\\ &+工程技术.行业创收+计算机科学.行业创收+人文艺术.行业创收\\ &+学科变异系数 \tag{公式6} \end{align} \]

  其余学科的统计分析模型以此类推,以各学科排名的总分、引用排名得分、教学排名得分、科研排名得分、国际化得分和行业创收得分为因变量,其他学科的相应排名指标得分为自变量,用PLM模型逐一进行统计分析,可得到如下六个模型参数矩阵。

表6 各学科排名总分的回归模型
表7 各学科引用排名得分的回归模型
表8 各学科教学排名得分的回归模型
表9 各学科科研排名得分的回归模型
表10 各学科国际化排名得分的回归模型
表11 各学科行业创收排名得分的回归模型

  通过以上六个参数矩阵,我们可以发现学科之间是复杂的,既有相互支撑的关系,例如自然科学与工程技术之间的正相关;也存在资源竞争,例如临床医学与自然医学之间的负相关。而且在不同指标上,学科之间的关系也有所不同。

  以上便是本次研究的主要发现,供读者参考。

  转载或引用请注明出处:https://rpubs.com/hongyu/594028   


  1. 张应强.理性利用大学排行榜 促进高校内涵发展[J].河北师范大学学报(教育科学版),2020,22(02):9-13.↩︎

  2. 指标2.3“研究产出”是爱思唯尔Scopus数据库收录的论文数,并根据学术机构的规模和各学科论文的规模进行加权统计↩︎

  3. 数据源采集自THE官方网站,包括“RANKING”和“SCORES”两个页面,URL:https://www.timeshighereducation.com/world-university-rankings/2020/world-ranking#!/page/0/length/25/sort_by/rank/sort_order/asc/cols/scores↩︎

  4. 周光礼,武建鑫.什么是世界一流学科[J].中国高教研究,2016(01):65-73.↩︎

  5. 交叉研究如何让中国大学“弯道超车”[N].光明日报, 2017-12-16(04).↩︎

  6. 路甬祥. 学科交叉与交叉科学的意义[J]. 中国科学院院刊,2005(01):58-60.↩︎

LS0tCnRpdGxlOiAiVEhF5aSn5a2m5o6S5ZCN5LiO5a2m56eR5o6S5ZCN55qE57uf6K6h5YiG5p6QIgphdXRob3I6ICLmtKrnhZwt5Lit5aSu6LSi57uP5aSn5a2mIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0b2M6IHllcwogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICAgIHRvYzogeWVzCi0tLQoKCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpCmBgYAoKPGNlbnRlcj4KPGgyPiDlpKflrabmjpLlkI3mgI7kuYjnnIvvvJ88L2gyPgo8aDM+IOS7peazsOaZpOWjq+mrmOetieaVmeiCsuS4lueVjOWkp+WtpuaOkuWQjeWSjOWtpuenkeaOkuWQjeS4uuS+izwvaDM+CjwvY2VudGVyPgoKPGJyPgo8YnI+CgrjgIDjgIDov5Hml6XvvIzmlZnogrLpg6jjgIHnp5HmioDpg6jljbDlj5HkuobjgIrlhbPkuo7op4TojIPpq5jnrYnlrabmoKFTQ0norrrmlofnm7jlhbPmjIfmoIfkvb/nlKgg5qCR56uL5q2j56Gu6K+E5Lu35a+85ZCR55qE6Iul5bmy5oSP6KeB44CL77yI5pWZ56eR5oqA44CUMjAyMOOAlTLlj7fvvInvvIzopoHmsYLpq5jmoKHmkZLlvIPigJzku6XliIror4TmlofigJ3jgIHnoLTpmaTigJxTQ0noh7PkuIrigJ3vvIzmjqLntKLlu7rnq4vnp5HlrabnmoTor4Tku7fkvZPns7vvvIzlhbbkuK3mmI7noa7mj5Dlh7ropoHigJzlh4/lsJHlr7nlrabnp5HjgIHlrabmoKHnmoTmjpLlkI3mgKfor4Tku7fvvIzlnZrmjIHliIbnsbvlkozliIbpoobln5/or4Tku7figJ3jgIIKCuOAgOOAgOWuouinguadpeeci++8jOenkeeglOivhOS7t+S4reKAnFNDSeiHs+S4iuKAneeahOmjjuawlOaYr+mrmOagoea7peeUqOWQhOexu+Wkp+WtpuaOkuihjOamnOaJgOiHtOOAguS4uuWbnuW6lOS4iue6p+mDqOmXqOOAgeekvuS8muWQhOeVjOWvueWKnuWtpue7qeaViOeahOmrmOW6puWFs+WIh++8jOmrmOagoei2iuadpei2iumHjeinhuWkp+WtpuWSjOWtpuenkeaOkuWQje+8jFRIReOAgVFT44CBVVMgTmV3c+OAgUFSV1XnrYnlkITnsbvmjpLooYzmppzpmpDnhLbmiJDkuLrlkITlpKfpq5jmoKHlsZXnpLrlrabmnK/lrp7lipvjgIHmj5Dpq5jlip7lrablo7DoqonnmoTigJzplKbmoIfotZvigJ3jgILnlLHkuo7ov5nkupvmjpLooYzmppzlpKflpJrku6VTQ0norrrmlofmlbDph4/jgIHooqvlvJXmrKHmlbDjgIHpq5jooqvlvJXorrrmlofjgIHlvbHlk43lm6DlrZDnrYnkvZzkuLrlhbPplK7mjIfmoIfvvIzlm6DmraTvvIzpg6jliIbpq5jmoKHntKfnm6/ov5nnsbvmjIfmoIfvvIzlnKjnp5HnoJTnrqHnkIblkozogYznp7Dor4TogZjkuK3niYfpnaLlvLrosIPlj5HooahTQ0norrrmlofvvIzlh7rnjrDkuobigJxTQ0noh7PkuIrigJ3nmoTpl67popjvvIzmia3mm7Lkuobnp5HnoJTliJvmlrDnmoTku7flgLzov73msYLvvIzliqnplb/kuobmgKXlip/ov5HliKnnmoTlrabmnK/po47msJTjgIIKCuOAgOOAgOaXtuiHs+S7iuaXpe+8jOWmguS9leeci+W+heW9ouW9ouiJsuiJsueahOaOkuihjOamnO+8n+acieWtpuiAheaMh+WHuuW6lOKAnOeQhuaAp+WIqeeUqOWkp+WtpuaOkuihjOamnOKAnVte5byg5bqU5by6Xe+8muaOkuihjOamnOS4gOaWuemdouS/g+i/m+S6huWkp+WtpuS5i+mXtOeahOernuS6ie+8jOS9huWNtOWvvOiHtOmDqOWIhuWkp+WtpuKAnOWvueeFp+aOkuihjOamnOaQnuW7uuiuvuKAneOAgeKAnFNDSeiHs+S4iuKAneetieS5seixoe+8m+WPpuS4gOaWuemdou+8jOaOkuihjOamnOWPkeaMpeS6huS4gOS6m+W7uuiuvuaAp+WKn+aViO+8jOS+i+WmguW8leWvvOa/gOWKseWkp+WtpuWPkeWxle+8jOiviuaWreWkp+WtpumdouS4tOeahOmXrumimO+8jOS4uuWkp+WtpuS5i+mXtOWwpOWFtuaYr+WQjOexu+Wei+Wkp+WtpuS5i+mXtOeahOavlOi+g+aPkOS+m+WPguiAg++8jOS4uuWkp+WtpuaPkOS+m+ebkea1i+WSjOmihOitpuetieOAguWkp+WtpuWcqOS9v+eUqOaOkuihjOamnOeahOi/h+eoi+S4re+8jOW6lOmAguW6pua3oeWMluaOkuWQjeernuS6ie+8jOedgOWKm+WPkeaMpeWFtuW8leWvvOOAgeiviuaWreOAgeavlOi+g+OAgeebkea1i+WSjOmihOitpuetieWKn+aViOOAggoKW17lvKDlupTlvLpdOuW8oOW6lOW8ui7nkIbmgKfliKnnlKjlpKflrabmjpLooYzmppwg5L+D6L+b6auY5qCh5YaF5ra15Y+R5bGVW0pdLuays+WMl+W4iOiMg+Wkp+WtpuWtpuaKpSjmlZnogrLnp5HlrabniYgpLDIwMjAsMjIoMDIpOjktMTMuCgrjgIDjgIDnu7zkuIrmiYDov7DvvIzml6XlkI7lr7nkuo7lkITnsbvmjpLooYzmppzvvIzlpKflrabkuI3lupTov4fluqbmiafnnYDkuo7mjpLlkI3lhYjlkI7vvIzlr7nlkITnsbvmjpLooYzmppznmoTorqTor4bvvIzopoHlrp7njrDkuInkuKrovazlj5jvvJrkuIDmmK/mm7TlpJrlnLDlsIbmjpLooYzmppzop4bkuLrlj43mmKDlrabmoKHlhoXmtrXlvI/lj5HlsZXnmoTmtYvph4/lt6XlhbfvvIzogIzpnZ7lr7nlpJbnvo7ljJblo7DoqonnmoTlrqPkvKDlt6XlhbfvvJvmm7TlpJrlnLDlsIbmjpLooYzmppznlKjkuo7kvJjljJblrabnp5HnlJ/mgIHjgIHkv4Pov5vlrabnp5Hlu7rorr7vvIzogIzpnZ7ljZXnuq/mr5Tmi7zorrrmlofnmoTlpJrlr6HvvIzlvbHlk43lm6DlrZDlpKflsI/vvJvmm7TlpJrlnLDlsIbmjpLooYzmppzkvZzkuLrmib7lh4blj5HlsZXlrprkvY3jgIHlh53nu4Plip7lrabnibnoibLnmoTlj4Lnhafns7vvvIzogIzpnZ7msYLlpKfmsYLlhajjgIHlubPlurjlj5HlsZXnmoTmoKHlh4bku6rjgIIKCuOAgOOAgOS4uuWunueOsOS4iui/sOi9rOWPmO+8jOacrOeglOeptui/m+S4gOatpeWvueWkp+WtpuaOkuihjOamnOeahOebuOWFs+aVsOaNrui/m+ihjOa3seWFpeeglOeptu+8jOS7juacjeWKoeWkp+WtpuWGhea2teW8j+WPkeWxleWSjOKAnOWPjOS4gOa1geKAneW7uuiuvueahOinkuW6puWHuuWPke+8jOmHjeeCueWFs+azqOS7peS4i+Wbm+S4quWFs+mUrumXrumimO+8mgoKMS4g5aaC5L2V6K+E5Lu35o6S6KGM5qac55qE56eR5a2m5oCn77yfCjIuIOWmguS9leWvueWkp+Wtpui/m+ihjOWIhuexu+WSjOavlOi+g++8nwozLiDlpoLkvZXnkIbop6PlpKflrabmlbTkvZPmjpLlkI3lkozlrabnp5HmjpLlkI3kuYvpl7TnmoTlhbPns7vvvJ8KNC4g5aaC5L2V55CG6Kej5LiN5ZCM5a2m56eR5o6S5ZCN5LmL6Ze055qE5YWz57O777yfCgrjgIDjgIDmnKznoJTnqbbku6Xms7DmmaTlo6vpq5jnrYnmlZnogrLvvIjku6XkuIvnroDnp7DigJxUSEXigJ3vvInkuJbnlYzlpKflrabmjpLlkI3lkozlrabnp5HmjpLlkI3kuLrnoJTnqbblr7nosaHvvIzpgJrov4fliIbmnpBUSEXmjpLlkI3nmoTmjIfmoIfkvZPns7vvvIzph4fpm4bov5HkuInlubTvvIgyMDE45bm06IezMjAyMOW5tO+8iVRIReWkp+WtpuaOkuWQjeWSjOWtpuenkeaOkuWQjeeahOebuOWFs+aVsOaNru+8jOS7peacn+WbnuW6lOS4iui/sOeglOeptumXrumimOOAggoKPGNlbnRlcj4KPGgzPiDpl67popjkuIDvvJpUSEXkuJbnlYzlpKflrabmjpLlkI3nmoTnp5HlrabmgKc8L2gzPgo8aDQ+IOWvuVRIReS4lueVjOWkp+WtpuaOkuWQjeaMh+agh+S9k+ezu+eahOivhOaekOS4juaVsOaNrumHh+mbhjwvaDQ+CjwvY2VudGVyPgoKPGJyPgoK44CA44CAKirvvIjkuIDvvInnroDmnpBUSEXkuJbnlYzlpKflrabmjpLlkI3lkozlrabnp5HmjpLlkI0qKgoK44CA44CAVEhF5LiW55WM5aSn5a2m5o6S5ZCN6IKH5aeL5LqOMjAwNOW5tO+8jOacgOaXqeeUseOAiuazsOaZpOWjq+aKpemrmOetieaVmeiCsuOAi+S4juiLseWbvVF1YWNxdWFyZWxsaSBTeW1vbmRz77yIUVPvvInlhazlj7jogZTlkIjlj5HluIPkuJbnlYzlpKflrabmjpLooYzmppzvvJsyMDEw5bm077yM5rOw5pmk5aOr5LiOUVPliIbpgZPmiazplbPvvIzmlLnkuI7ot6/pgI/npL7lj4rniLHmgJ3llK/lsJTlkIjkvZzvvIzlu7rnq4vkuoboh6rlt7HnmoTmjpLlkI3ns7vnu5/jgIIyMDIw5bm077yM5Y+C5LiOVEhF5aSn5a2m5o6S6KGM5qac55qE5aSn5a2m6L6+5Yiw5LqGMTM5N+aJgO+8jOWFtuaMh+agh+S9k+ezu+WmguihqDHmiYDnpLrvvJoKCjxjZW50ZXI+CjxoNT4g6KGoMSBUSEXkuJbnlYzlpKflrabmjpLlkI3nmoTmjIfmoIfmnYPph40KCuaMh+agh3zmnYPph4185oCn6LSoCi0tLXw6LS0tOnw6LS0tOgoqKjEuIOaVmeWtpioqfCoqMzAuMDAlKip84oCU4oCUCjEuMSDmlZnlrablo7Doqoko6LCD5p+lKXwxNS4wMCV85Li76KeC5oyH5qCHCjEuMiDnlJ/luIjmr5R8NC41MCV85a6i6KeC5oyH5qCHCjEuMyDljZrlo6vlrabkvY3mjojkuojmlbDkuI7lrablo6vlrabkvY3mjojkuojmlbDnmoTmr5Tnjod8Mi4yNSV85a6i6KeC5oyH5qCHCjEuNCDljZrlo6vlrabkvY3mjojkuojmlbDkuI7mlZnluIjmlbDnmoTmr5Tnjod8Ni4wMCV85a6i6KeC5oyH5qCHCjEuNSDmnLrmnoTmlLblhaV8Mi4yNSV85a6i6KeC5oyH5qCHCioqMi4g56eR56CUKip8KiozMC4wMCUqKnzigJTigJQKMi4xIOeglOeptuWjsOiqiSjosIPmn6UpfDE4LjAwJXzlrqLop4LmjIfmoIcKMi4yIOeglOeptuaUtuWFpXw2LjAwJXzlrqLop4LmjIfmoIcKMi4zIOeglOeptuS6p+WHulte5oyH5qCHMi4zXXw2LjAwJXzlrqLop4LmjIfmoIcKKiozLiDlvJXnlKgqKnwqKjMwLjAwJSoqfCoq5a6i6KeC5oyH5qCHKioKKio0LiDlm73pmYXljJYqKnwqKjcuNTAlKip84oCU4oCUCjQuMSDlm73pmYXlrabnlJ/mr5Tkvot8Mi41MCV85a6i6KeC5oyH5qCHCjQuMiDlm73lpJbmlZnluIjmr5Tkvot8Mi41MCV85a6i6KeC5oyH5qCHCjQuMyDmnJ/liIrlj5HooajkuK3lm73pmYXlkIjkvZzorrrmlofnmoTmr5Tkvot8Mi41MCV85a6i6KeC5oyH5qCHCioqNS4g6KGM5Lia5Yib5pS2Kip8KioyLjUwJSoqfCoq5a6i6KeC5oyH5qCHKioKClte5oyH5qCHMi4zXTrmjIfmoIcyLjPigJznoJTnqbbkuqflh7rigJ3mmK/niLHmgJ3llK/lsJRTY29wdXPmlbDmja7lupPmlLblvZXnmoTorrrmlofmlbDvvIzlubbmoLnmja7lrabmnK/mnLrmnoTnmoTop4TmqKHlkozlkITlrabnp5HorrrmlofnmoTop4TmqKHov5vooYzliqDmnYPnu5/orqEKCjwvY2VudGVyPgoK44CA44CA5qC55o2u5LiK6L+w5oyH5qCH77yM5Y+v5Lul5Y+R546w55uu5YmNVEhF5LiW55WM5aSn5a2m5o6S6KGM54mI55qE5oyH5qCH5Lul5a6i6KeC5oyH5qCH5Li65Li777yM5YW25oyH5qCH5p2D6YeN5oC76K6hNjcl77yM5Li76KeC5oyH5qCH5YyF5ous5pWZ5a2m5aOw6KqJ6LCD5p+l77yIMTUl77yJ5ZKM56CU56m25aOw6KqJ6LCD5p+l77yIMTgl77yJ44CCCgrjgIDjgIDlnKjlpKflrabmjpLlkI3kuYvlpJbvvIxUSEXov5jmjIkxMeS4quWtpuenke+8iOe7huWIhuS4ujM25Liq5LiT5Lia77yM6K+m6KeB6ZmE6KGoMe+8iei/m+ihjOS6huaOkuWQje+8jOi/meS6m+WtpuenkeWMheaLrO+8muS4tOW6iuWMu+WtpuS4juWBpeW6t+OAgeeUn+WRveenkeWtpuOAgeiHqueEtuenkeWtpuOAgeW/g+eQhuWtpuOAgeWVhuenkeS4jue7j+a1juWtpuOAgeaVmeiCsuWtpuOAgeazleWtpuOAgeekvuS8muenkeWtpuOAgeW3peeoi+aKgOacr+OAgeiuoeeul+acuuenkeWtpuOAgeS6uuaWh+iJuuacr+etieOAguS4iui/sOWtpuenkeWkp+exu+eahOaMh+agh+S9k+ezu+WSjOWkp+WtpuaOkuWQjeeahOaMh+agh+S9k+ezu+S4gOiHtO+8jOWMheWQq+aVmeWtpuOAgeenkeeglOOAgeW8leeUqOOAgeWbvemZheWMluWSjOihjOS4muWIm+aUtuS6lOWkp+exu++8jOS9huavj+S4quWtpuenkeWcqOS4jeWQjOaMh+agh+eahOadg+mHjeaciee7huW+ruW3ruWIq++8jOivpuingeS4i+ihqO+8mgoKPGNlbnRlcj4KPGg1PiDooagyIFRIReS4lueVjOWkp+WtpuWtpuenkeaOkuWQjeeahOaMh+agh+adg+mHjQoK5a2m56eRfOaVmeWtpnznp5HnoJR85byV55SofOWbvemZheWMlnzooYzkuJrliJvmlLYKOi0tLTp8Oi0tLTp8Oi0tLTp8Oi0tLTp8Oi0tLTp8Oi0tLToK5Li05bqK5Yy75a2m5LiO5YGl5bq3fDI3LjUlfDI3LjUlfDM1JXw3LjUlfDIuNSUK55Sf5ZG956eR5a2mfDI3LjUlfDI3LjUlfDM1JXw3LjUlfDIuNSUK6Ieq54S256eR5a2mfDI3LjUlfDI3LjUlfDM1JXw3LjUlfDIuNSUK5b+D55CG5a2mfDI3LjUlfDI3LjUlfDM1JXw3LjUlfDIuNSUK5ZWG56eR5LiO57uP5rWO5a2mfDMwLjklfDMyLjYlfDI1JXw5JXwyLjUlCuaVmeiCsuWtpnwzMi43JXwyOS44JXwyNy41JXw3LjUlfDIuNSUK5rOV5a2mfDMyLjclfDMwLjglfDI1JXw5JXwyLjUlCuekvuS8muenkeWtpnwzMi40JXwzMi42JXwyNSV8Ny41JXwyLjUlCuW3peeoi+aKgOacr3wzMCV8MzAlfDI3LjUlfDcuNSV8NSUK6K6h566X5py656eR5a2mfDMwJXwzMCV8MjcuNSV8Ny41JXw1JQrkurrmlofoibrmnK98MzcuNCV8MzcuNiV8MTUlfDcuNSV8NSUKPC9jZW50ZXI+CgrjgIDjgIDku47kuIrov7DmjIfmoIfmnaXnnIvvvIzllYbnp5HkuI7nu4/mtY7lrabjgIHmlZnogrLlrabjgIHms5XlrabjgIHnpL7kvJrnp5HlrabjgIHkurrmlofoibrmnK/nrYnlgY/kurrmlofnmoTlrabnp5HlnKjmlZnlrabjgIHnp5HnoJTov5nkuKTkuKrkuIDnuqfmjIfmoIfkuIrnmoTmnYPph43nm7jlr7novoPlpKfvvIzpg73otoXov4fkuoY2MCXvvIzogIzlvJXnlKjmiYDljaDnmoTmnYPph43nm7jlr7novoPlsI/vvIznuqblnKgyNSXoh7MyNy41JeS5i+mXtO+8m+S4tOW6iuWMu+WtpuS4juWBpeW6t+OAgeeUn+WRveenkeWtpuOAgeiHqueEtuenkeWtpuOAgeW/g+eQhuWtpuetieWBj+eQhuenkeeahOWtpuenkeWcqOW8leeUqOi/meS4quS4gOe6p+aMh+agh+S4iueahOadg+mHjei+g+Wkp++8jOmDvei+vuWIsOS6hjM1Je+8jOiAjOaVmeWtpuOAgeenkeeglOaJgOWNoOadg+mHjeebuOWvueWwj+S4gOS6m++8jOWdh+S4ujU1Je+8m+W3peeoi+aKgOacr+OAgeiuoeeul+acuuenkeWtpuetieWBj+W3peenkeeahOWtpuenke+8jOWQhOaMh+agh+eahOadg+mHjeavlOi+g+KAnOS4reW6uOKAne+8jOaVmeWtpuOAgeenkeeglOWQhOWNoDMwJeeahOadg+mHje+8jOW8leeUqOaJgOWNoOadg+mHjeS4ujI3LjUl44CC5oC75L2T5p2l55yL77yM6L+Z5aWX5oyH5qCH5L2T57O75aSn5L2T5LiK5Y+N5pig5LqG5ZCE5a2m56eR55qE54m554K544CC5YW35pyJ5LiA5a6a55qE56eR5a2m5oCn44CCCgrjgIDjgIDkvYbmmK/vvIzlnKjlpKflpJrmlbDlrabnp5HnmoTmjIfmoIfkvZPns7vkuK3vvIzlm73pmYXljJbmiYDljaDmnYPph43ovr7liLA3LjUl77yM5bCR5pWw5a2m56eR5aaC5ZWG56eR5LiO57uP5rWO5a2m44CB5rOV5a2m55qE5Zu96ZmF5YyW5oyH5qCH5p2D6YeN55Sa6Iez6L6+5Yiw5LqGOSXjgILlpKflrabnmoTnlJ/mupDjgIHmlZnluIjlkozorrrmloflj5HooajnmoTlm73pmYXljJblr7nlhbbmj5DljYflip7lrablrp7lipvnmoTkvZznlKjlm7rnhLbkuI3lj6/miJbnvLrvvIzkvYbmnYPph43ljaDmr5TmmI7mmL7pq5jkuo7ooYzkuJrliJvmlLbvvIjnuqYyLjUl6IezNSXkuYvpl7TvvInvvIznlJroh7PlnKjlt6XnqIvmioDmnK/jgIHorqHnrpfmnLrnp5HlrabnrYnlt6Xnp5Hpoobln5/vvIzlm73pmYXljJbmjIfmoIfnmoTmnYPph43ku43pq5jlh7rooYzkuJrliJvmlLYyLjXkuKrnmb7liIbngrnvvIzov5nkuIDmnYPph43orr7orqHmmK/mnInlvoXllYbmprfnmoTjgIIKCuOAgOOAgOaAu+iAjOiogOS5i++8jFRIReS4lueVjOWkp+WtpuaOkuWQjeWSjOWtpuenkeaOkuWQjeaMh+agh+S9k+ezu+iuvuiuoeWFt+acieS4gOWumueahOenkeWtpuaAp++8jOS9huWFtuWvueWbvemZheWMluaMh+agh+adg+mHjeiuvuiuoeeahOWQiOeQhuaAp+aYr+WtmOeWkeeahO+8jOWcqOWIhuaekOi/h+eoi+S4reacieW/heimgeWwhuaVmeWtpuOAgeenkeeglOOAgeW8leeUqOOAgeWbvemZheWMluWSjOihjOS4muWIm+aUtuetieS4jeWQjOeahOaMh+agh+aLhuino+W8gOadpe+8jOmAkOS4gOWIhuaekOOAggoK44CA44CAKirvvIjkuozvvInmlbDmja7ph4fpm4blkozmoLfmnKzliIbluIMqKgoK44CA44CA5qC55o2uVEhF5LiW55WM5aSn5a2m5o6S5ZCN5a6Y5pa5572R56uZ5YWs5biD55qE5pWw5o2uW14yMDIwVEhF5pWw5o2u5rqQXe+8jOWPr+eUqOS6juWIhuaekOeahOaMh+agh+acieS4pOexu++8jOS4gOaYr+WPjeaYoOWtpuagoeWfuuacrOaDheWGteS/oeaBr+eahOaVsOaNru+8jOWMheaLrO+8muaJgOWcqOWbveWutuOAgeWtpueUn+aVsOOAgeeUn+W4iOavlOOAgeWbvemZheWtpueUn+WNoOavlOOAgeeUt+Wls+avlOeOh++8mwrkuozmmK/kuJbnlYzlpKflrabmjpLlkI3vvIjmiJblrabnp5HmjpLlkI3vvInnmoTlkITpobnmjIfmoIfor4TliIblgLzvvIzljIXmi6zmjpLlkI3mgLvliIbjgIHmlZnlrabmjpLlkI3or4TliIbjgIHnoJTnqbbmjpLlkI3or4TliIbjgIHlvJXnlKjmjpLlkI3or4TliIbjgIHlm73pmYXljJbmjpLlkI3or4TliIbjgIHooYzkuJrliJvmlLbmjpLlkI3or4TliIbnrYnjgIIKClteMjAyMFRIReaVsOaNrua6kF065pWw5o2u5rqQ6YeH6ZuG6IeqVEhF5a6Y5pa5572R56uZ77yM5YyF5ousIlJBTktJTkci5ZKMIlNDT1JFUyLkuKTkuKrpobXpnaLvvIxVUkw6aHR0cHM6Ly93d3cudGltZXNoaWdoZXJlZHVjYXRpb24uY29tL3dvcmxkLXVuaXZlcnNpdHktcmFua2luZ3MvMjAyMC93b3JsZC1yYW5raW5nIyEvcGFnZS8wL2xlbmd0aC8yNS9zb3J0X2J5L3Jhbmsvc29ydF9vcmRlci9hc2MvY29scy9zY29yZXMKCuOAgOOAgOmAmui/h+WvuVRIReWumOaWuee9keermeeahOe9kemhtei/m+ihjOWIhuaekO+8jOacrOeglOeptumAmui/h+iHque8lueahHB5dGhvbueoi+W6j+mHh+mbhuS6hlRIReS4lueVjOWkp+WtpuaOkuihjOamnO+8iDIwMjDvvInkuIoxMzk35omA5aSn5a2mMjAxOC0yMDIw5bm06Ze05Zyo5LiK6L+w5oyH5qCH55qE55u45YWz5pWw5o2u77yM5YW25qC35pys55qE5Zu95Yir5YiG5biD5aaC6KGoM+aJgOekuuOAgjIwMjDlubTvvIzmiJHlm73lj4LkuI5USEXkuJbnlYzlpKflrabmjpLlkI3nmoTpq5jmoKHlhbHmnIk4MeaJgO+8jOS7heasoeS6jue+juWbveOAgeaXpeacrOWSjOiLseWbveOAggoKPGNlbnRlcj4KPGg1PiDooagzIOagt+acrOeahOWbveWIq+WIhuW4gwoKCuW6j+WPt3zlm73lrrZ85aSn5a2m5pWwfOW6j+WPt3zlm73lrrZ85aSn5a2m5pWwCjotLS06fDotLS06fDotLS06fDotLS06fDotLS06fDotLS06CjF8576O5Zu9fDE3MnwxN3zliqDmi7/lpKd8MzAKMnzml6XmnKx8MTEwfDE4fOWfg+WPinwyMAozfOiLseWbvXwxMDB8MTl85pm65YipfDE4CioqNCoqfCoq5Lit5Zu9Kip8Kio4MSoqfDIwfOaNt+WFi3wxNwo1fOWNsOW6pnw1NnwyMXzloqjopb/lk6V8MTcKNnzlvrflm718NDh8MjJ85rOw5Zu9fDE2Cjd85be06KW/fDQ2fDIzfOW3tOWfuuaWr+WdpnwxNAo4fOaEj+Wkp+WIqXw0NXwyNHzms6LlhbB8MTQKOXzopb/nj63niZl8NDV8MjV86ams5p2l6KW/5LqafDEzCjEwfOS8iuacl3w0MHwyNnzojbflhbB8MTMKMTF85L+E572X5pavfDM5fDI3fOiRoeiQhOeJmXwxMwoxMnzms5Xlm718Mzh8Mjh855Ge5YW4fDEyCjEzfOWPsOa5vnwzNnwyOXzlpaXlnLDliKl8MTEKMTR85r6z5aSn5Yip5LqafDM1fDMwfOeRnuWjq3wxMQoxNXzlnJ/ogLPlhbZ8MzR8MzF85biM6IWKfDEwCjE2fOWNl+mfqXwzMXwzMnzljZfpnZ58MTAKfHx8fHzlhbbku5blm73lrrZ8MjAyCnx8fHx85oC76K6hfDEzOTcKCjwvY2VudGVyPgoKCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CiMg5a+85YWl5ZKM5aSE55CG5pWw5o2uCiMg5Yqg6L29bGlicmFyeQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkocGxtKQpsaWJyYXJ5KGJyb29tKQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KHN0YXJnYXplcikKbGlicmFyeShybWFya2Rvd24pCmxpYnJhcnkoeHRhYmxlKQpsaWJyYXJ5KG1hdHJpeFN0YXRzKQpsaWJyYXJ5KGdndGhlbWVzKQpsaWJyYXJ5KGthYmxlRXh0cmEpCgojIOWvvOWFpTIwMTjoh7MyMDIw5bm055qE5ZCE6auY5qCh5Z+65pys5oOF5Ya15pWw5o2uClRIRV9zdW1tYXJ5XzIwMjA9cmVhZF9leGNlbCgnd29yZF91bml2ZXJzaXR5X3JhbmtpbmdzXzIwMjBfVEhFLnhsc3gnKQpUSEVfc3VtbWFyeV8yMDE5PXJlYWRfZXhjZWwoJ3dvcmRfdW5pdmVyc2l0eV9yYW5raW5nc18yMDE5X1RIRS54bHN4JykKVEhFX3N1bW1hcnlfMjAxOD1yZWFkX2V4Y2VsKCd3b3JkX3VuaXZlcnNpdHlfcmFua2luZ3NfMjAxOF9USEUueGxzeCcpClRIRV9zdW1tYXJ5PXJiaW5kKFRIRV9zdW1tYXJ5XzIwMTgsVEhFX3N1bW1hcnlfMjAxOSxUSEVfc3VtbWFyeV8yMDIwKQpUSEVfcmFua2luZz1yZWFkX2V4Y2VsKCdUSEVfcmFua2luZ18yMDIwLnhsc3gnKQoKIyDmt7vliqAyMDIw5bm055qE5ZCE5qCh5o6S5ZCN6aG65bqP77yIcmFua19vcmRlcu+8ieS9nOS4uuaVsOaNruWQiOW5tuaJgOmcgOeahGlkClRIRV9zdW1tYXJ5JHJhbmtfb3JkZXJfcmF3PWFzLmludGVnZXIoVEhFX3N1bW1hcnkkcmFua19vcmRlcikvMTAKVEhFX3N1bW1hcnkkcmFua19vcmRlcj1zYXBwbHkoVEhFX3N1bW1hcnkkbmlkLGZ1bmN0aW9uKHgpIGFzLmludGVnZXIoVEhFX3N1bW1hcnlfMjAyMFtUSEVfc3VtbWFyeV8yMDIwJG5pZD09eCwncmFua19vcmRlciddKS8xMCkKVEhFX3JhbmtpbmckcmFua19vcmRlcj1USEVfcmFua2luZyRpZCsxCgojIOS7juaOkuWQjeaVsOaNruS4reWIh+WIhuWHujIwMTjoh7MyMDIw5bm055qE5pWw5o2uClRIRV9kZj1USEVfcmFua2luZyAlPiUKICBzZWxlY3QoYyhyYW5rX29yZGVyLAogICAgICAgICAgICAgICAgc2Nob29sX25hbWUsCiAgICAgICAgICAgICAgICByYW5raW5nLAogICAgICAgICAgICAgICAgaW5kaWNhdG9yLAogICAgICAgICAgICcyMDE4JywnMjAxOScsJzIwMjAnKSkgJT4lCiAgZ2F0aGVyKHllYXIsc2NvcmUsJzIwMTgnOicyMDIwJykgJT4lIAogIHNwcmVhZChpbmRpY2F0b3Isc2NvcmUpICU+JQogIHJlbmFtZSgnSW5kdXN0cnlfSW5jb21lJz0nSW5kdXN0cnkgSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJz0nSW50ZXJuYXRpb25hbCBPdXRsb29rJykKCiMg6YCa6L+HeWVhcuWSjHJhbmtfb3JkZXLlkIjlubbmjpLlkI3mlbDmja7lkozlkITmoKHln7rmnKzmg4XlhrXmlbDmja7vvIzlubbov5vkuIDmraXliIfliIblh7rkuJbnlYzlpKflrabmjpLlkI3nmoTmlbDmja4KVEhFX3dvcmxkX3JhbmsgPC0KICBtZXJnZShUSEVfc3VtbWFyeSxUSEVfZGYsYnk9YygneWVhcicsJ3Jhbmtfb3JkZXInKSkgJT4lCiAgZmlsdGVyKHJhbmtpbmc9PSdXb3JsZCBVbml2ZXJzaXR5IFJhbmtpbmdzJykgJT4lCiAgYXJyYW5nZSh5ZWFyLHJhbmtfb3JkZXIpCgojIOWwhuS4lueVjOWkp+WtpuaOkuWQjeeahOS6lOS4quaOkuWQjeaMh+agh+i9rOaNouS4uuaVsOWtl++8jOe8uuWkseWAvOabv+aNouS4ujAKVEhFX3dvcmxkX3JhbmskQ2l0YXRpb25zID0gYXMubnVtZXJpYyhyZXBsYWNlX25hKFRIRV93b3JsZF9yYW5rJENpdGF0aW9ucywwKSkKVEhFX3dvcmxkX3JhbmskSW5kdXN0cnlfSW5jb21lID0gYXMubnVtZXJpYyhyZXBsYWNlX25hKFRIRV93b3JsZF9yYW5rJEluZHVzdHJ5X0luY29tZSwwKSkKVEhFX3dvcmxkX3JhbmskSW50ZXJuYXRpb25hbF9PdXRsb29rID0gYXMubnVtZXJpYyhyZXBsYWNlX25hKFRIRV93b3JsZF9yYW5rJEludGVybmF0aW9uYWxfT3V0bG9vaywwKSkKVEhFX3dvcmxkX3JhbmskUmVzZWFyY2ggPSBhcy5udW1lcmljKHJlcGxhY2VfbmEoVEhFX3dvcmxkX3JhbmskUmVzZWFyY2gsMCkpClRIRV93b3JsZF9yYW5rJFRlYWNoaW5nID0gYXMubnVtZXJpYyhyZXBsYWNlX25hKFRIRV93b3JsZF9yYW5rJFRlYWNoaW5nLDApKQpUSEVfd29ybGRfcmFuayRPdmVyYWxsID0gYXMubnVtZXJpYyhUSEVfd29ybGRfcmFuayRPdmVyYWxsKQpUSEVfd29ybGRfcmFuayTlrabnlJ/mlbA9YXMubnVtZXJpYyhzdHJfcmVtb3ZlKFRIRV93b3JsZF9yYW5rJHN0YXRzX251bWJlcl9zdHVkZW50cywnLCcpKQoKIyDmoLnmja7lkITmoKHmjpLlkI3nmoTkupTkuKrmjIfmoIflgLzvvIzorqHnrpflh7rmjpLlkI3lvpfliIblgLwKVEhFX3dvcmxkX3Jhbms9VEhFX3dvcmxkX3JhbmsgJT4lCiAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjMrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1uYV9pZijmgLvliIYsMCkpCgoKYWxsX3N1YmplY3RzPWMoIk90aGVyIEhlYWx0aCIsCiAgICAgICAgICAgICAgIk1lZGljaW5lICYgRGVudGlzdHJ5IiwKICAgICAgICAgICAgICAiQmlvbG9naWNhbCBTY2llbmNlcyIsCiAgICAgICAgICAgICAgIlNwb3J0IFNjaWVuY2UiLAogICAgICAgICAgICAgICJWZXRlcmluYXJ5IFNjaWVuY2UiLAogICAgICAgICAgICAgICJBZ3JpY3VsdHVyZSAmIEZvcmVzdHJ5IiwKICAgICAgICAgICAgICAiUGh5c2ljcyAmIEFzdHJvbm9teSIsCiAgICAgICAgICAgICAgIkNoZW1pc3RyeSIsCiAgICAgICAgICAgICAgIkdlb2xvZ3ksIEVudmlyb25tZW50YWwsIEVhcnRoICYgTWFyaW5lIFNjaWVuY2VzIiwKICAgICAgICAgICAgICAiTWF0aGVtYXRpY3MgJiBTdGF0aXN0aWNzIiwKICAgICAgICAgICAgICAiUHN5Y2hvbG9neSIsCiAgICAgICAgICAgICAgIkVjb25vbWljcyAmIEVjb25vbWV0cmljcyIsCiAgICAgICAgICAgICAgIkJ1c2luZXNzICYgTWFuYWdlbWVudCIsCiAgICAgICAgICAgICAgIkFjY291bnRpbmcgJiBGaW5hbmNlIiwKICAgICAgICAgICAgICAiRWR1Y2F0aW9uIiwKICAgICAgICAgICAgICAiTGF3IiwKICAgICAgICAgICAgICAiR2VvZ3JhcGh5IiwKICAgICAgICAgICAgICAiU29jaW9sb2d5IiwKICAgICAgICAgICAgICAiUG9saXRpY3MgJiBJbnRlcm5hdGlvbmFsIFN0dWRpZXMiLAogICAgICAgICAgICAgICJDb21tdW5pY2F0aW9uICYgTWVkaWEgU3R1ZGllcyIsCiAgICAgICAgICAgICAgIkdlbmVyYWwgRW5naW5lZXJpbmciLAogICAgICAgICAgICAgICJDaXZpbCBFbmdpbmVlcmluZyIsCiAgICAgICAgICAgICAgIk1lY2hhbmljYWwgJiBBZXJvc3BhY2UgRW5naW5lZXJpbmciLAogICAgICAgICAgICAgICJFbGVjdHJpY2FsICYgRWxlY3Ryb25pYyBFbmdpbmVlcmluZyIsCiAgICAgICAgICAgICAgIkNoZW1pY2FsIEVuZ2luZWVyaW5nIiwKICAgICAgICAgICAgICAiQ29tcHV0ZXIgU2NpZW5jZSIsCiAgICAgICAgICAgICAgIkxhbmd1YWdlcywgTGl0ZXJhdHVyZSAmIExpbmd1aXN0aWNzIiwKICAgICAgICAgICAgICAiSGlzdG9yeSwgUGhpbG9zb3BoeSAmIFRoZW9sb2d5IiwKICAgICAgICAgICAgICAiQXJ0LCBQZXJmb3JtaW5nIEFydHMgJiBEZXNpZ24iLAogICAgICAgICAgICAgICJBcmNoYWVvbG9neSIsCiAgICAgICAgICAgICAgIkFyY2hpdGVjdHVyZSIpCgpzdWJqZWN0c19kZj1hcy50aWJibGUoc2FwcGx5KGFsbF9zdWJqZWN0cyxmdW5jdGlvbih4KSBzdHJfZGV0ZWN0KFRIRV93b3JsZF9yYW5rJHN1YmplY3RzX29mZmVyZWQseCkpKQoKVEhFX3dvcmxkX3Jhbms8LWNiaW5kKFRIRV93b3JsZF9yYW5rLHN1YmplY3RzX2RmKQoK5omA5pyJ5LiT5LiaX251bT10aWJibGUo5omA5pyJ5LiT5Lia5pWwPXJvd1N1bXMoc3ViamVjdHNfZGY9PVRSVUUpKQrkuLTluorljLvlraZfbnVtPXRpYmJsZSjkuLTluorljLvlraY9cm93U3VtcyhzdWJqZWN0c19kZlsxOjJdPT1UUlVFKSkK55Sf5ZG956eR5a2mX251bT10aWJibGUo55Sf5ZG956eR5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMzo2XT09VFJVRSkpCuiHqueEtuenkeWtpl9udW09dGliYmxlKOiHqueEtuenkeWtpj1yb3dTdW1zKHN1YmplY3RzX2RmWzc6MTBdPT1UUlVFKSkK5b+D55CG5a2mX251bT10aWJibGUo5b+D55CG5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMTFdPT1UUlVFKSkK5ZWG56eR5ZKM57uP5rWO5a2mX251bT10aWJibGUo5ZWG56eR5LiO57uP5rWO5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMTI6MTRdPT1UUlVFKSkK5pWZ6IKy5a2mX251bT10aWJibGUo5pWZ6IKy5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMTVdPT1UUlVFKSkK5rOV5a2mX251bT10aWJibGUo5rOV5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMTZdPT1UUlVFKSkK56S+5Lya56eR5a2mX251bT10aWJibGUo56S+5Lya56eR5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMTc6MjBdPT1UUlVFKSkK5bel56iL5oqA5pyvX251bT10aWJibGUo5bel56iL5oqA5pyvPXJvd1N1bXMoc3ViamVjdHNfZGZbMjE6MjVdPT1UUlVFKSkK6K6h566X5py656eR5a2mX251bT10aWJibGUo6K6h566X5py656eR5a2mPXJvd1N1bXMoc3ViamVjdHNfZGZbMjZdPT1UUlVFKSkK5Lq65paH6Im65pyvX251bT10aWJibGUo5Lq65paH6Im65pyvPXJvd1N1bXMoc3ViamVjdHNfZGZbMjc6MzFdPT1UUlVFKSkKCuWtpuenkeaVsF9kZj1jYmluZCjmiYDmnInkuJPkuJpfbnVtLOS4tOW6iuWMu+Wtpl9udW0s55Sf5ZG956eR5a2mX251bSzoh6rnhLbnp5HlraZfbnVtLOW/g+eQhuWtpl9udW0s5ZWG56eR5ZKM57uP5rWO5a2mX251bSzmlZnogrLlraZfbnVtLOazleWtpl9udW0s56S+5Lya56eR5a2mX251bSzlt6XnqIvmioDmnK9fbnVtLOiuoeeul+acuuenkeWtpl9udW0s5Lq65paH6Im65pyvX251bSkK5a2m56eR5pWwX2RmPWNiaW5kKOWtpuenkeaVsF9kZix0aWJibGUo5a2m56eR5aSn57G75pWwPXJvd1N1bXMo5a2m56eR5pWwX2RmWzI6MTJdIT0wKSkpCuWtpuenkeaVsF9kZj1jYmluZCjlrabnp5HmlbBfZGYsdGliYmxlKOWtpuenkeWkp+exu+imhueblueOhz1yb3dTdW1zKOWtpuenkeaVsF9kZlsyOjEyXSE9MCkvMTEpKQrlrabnp5HmlbBfZGY95a2m56eR5pWwX2RmICU+JQogIG11dGF0ZSjlrabnp5Hopobnm5bnjoc95omA5pyJ5LiT5Lia5pWwLzMxKSAlPiUKICBtdXRhdGUo5a2m5qCh57u85ZCI5oCn5oyH5pWwPeWtpuenkeimhueblueOhyrlrabnp5HlpKfnsbvopobnm5bnjocpCgpUSEVfd29ybGRfcmFuazwtY2JpbmQoVEhFX3dvcmxkX3Jhbmss5a2m56eR5pWwX2RmKQoKCiMg5Yqg5YWl5ZCE5Liq5a2m56eR5aSn57G755qE5o6S6KGM5qac5b6X5YiG5L2c5Li66Ieq5Y+Y6YePCiMg6ZyA6KaB5rOo5oSP55qE6Zeu6aKY77ya5q+P5Liq5a2m56eR6K+E5YiG5omA55So55qE5oyH5qCH5p2D6YeN5piv5LiN5LiA5qC355qECgojIOS4tOW6iuWMu+WtpuWQhOaMh+agh+adg+mHje+8mgojIFRlYWNoaW5nOiB0aGUgbGVhcm5pbmcgZW52aXJvbm1lbnQKIyAyNy41JQojIFJlc2VhcmNoOiB2b2x1bWUsIGluY29tZSBhbmQgcmVwdXRhdGlvbgojIDI3LjUlCiMgQ2l0YXRpb25zOiByZXNlYXJjaCBpbmZsdWVuY2UKIyAzNSUKIyBJbnRlcm5hdGlvbmFsIG91dGxvb2s6IHN0YWZmLCBzdHVkZW50cyBhbmQgcmVzZWFyY2gKIyA3LjUlCiMgSW5kdXN0cnkgaW5jb21lOiBpbm5vdmF0aW9uCiMgMi41JQoK5Li05bqK5Yy75a2mX3Jhbms8LQogIHNlbGVjdChUSEVfcmFua2luZyxjKHJhbmtfb3JkZXIsCiAgICAgICAgICAgICAgICAgIHNjaG9vbF9uYW1lLAogICAgICAgICAgICAgICAgICByYW5raW5nLAogICAgICAgICAgICAgICAgICBpbmRpY2F0b3IsCiAgICAgICAgICAgICAgICAgICcyMDE4JywnMjAxOScsJzIwMjAnKSkgJT4lCiAgZmlsdGVyKHJhbmtpbmc9PSdDbGluaWNhbCwgcHJlLWNsaW5pY2FsICYgaGVhbHRoJykgJT4lCiAgZ2F0aGVyKHllYXIsc2NvcmUsJzIwMTgnOicyMDIwJyklPiUgCiAgc3ByZWFkKGluZGljYXRvcixzY29yZSkgJT4lCiAgc2VsZWN0KC1zY2hvb2xfbmFtZSwtcmFua2luZykgJT4lCiAgcmVuYW1lKCdJbmR1c3RyeV9JbmNvbWUnPSdJbmR1c3RyeSBJbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snPSdJbnRlcm5hdGlvbmFsIE91dGxvb2snKSAlPiUKICBtdXRhdGVfYXQoYygnQ2l0YXRpb25zJywnSW5kdXN0cnlfSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJywnT3ZlcmFsbCcsJ1Jlc2VhcmNoJywnVGVhY2hpbmcnKSxmdW5jdGlvbih4KSBhcy5udW1lcmljKHJlcGxhY2VfbmEoeCwwKSkpICU+JQojICBtdXRhdGUo5oC75YiGPVRlYWNoaW5nKjAuMytSZXNlYXJjaCowLjMrQ2l0YXRpb25zKjAuMytJbnRlcm5hdGlvbmFsX091dGxvb2sqMC4wNzUrSW5kdXN0cnlfSW5jb21lKjAuMDI1KSAlPiUKICBtdXRhdGUo5oC75YiGPVRlYWNoaW5nKjAuMjc1K1Jlc2VhcmNoKjAuMjc1K0NpdGF0aW9ucyowLjM1K0ludGVybmF0aW9uYWxfT3V0bG9vayowLjA3NStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9bmFfaWYo5oC75YiGLDApKSAlPiUKICByZW5hbWVfYXQoYygnQ2l0YXRpb25zJywnSW5kdXN0cnlfSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJywnT3ZlcmFsbCcsJ1JhbmsnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJywn5oC75YiGJyksbGlzdCh+cGFzdGUwKCfkuLTluorljLvlraYuJywuKSkpCgpUSEVfd29ybGRfcmFuazwtbWVyZ2UoVEhFX3dvcmxkX3Jhbmss5Li05bqK5Yy75a2mX3JhbmssYnk9YygneWVhcicsJ3Jhbmtfb3JkZXInKSxhbGwueD1UUlVFKQoKIyDnlJ/lkb3np5HlrablkITmjIfmoIfmnYPph43vvJoKIyBUZWFjaGluZzogdGhlIGxlYXJuaW5nIGVudmlyb25tZW50CiMgMjcuNSUKIyBSZXNlYXJjaDogdm9sdW1lLCBpbmNvbWUgYW5kIHJlcHV0YXRpb24KIyAyNy41JQojIENpdGF0aW9uczogcmVzZWFyY2ggaW5mbHVlbmNlCiMgMzUlCiMgSW50ZXJuYXRpb25hbCBvdXRsb29rOiBzdGFmZiwgc3R1ZGVudHMgYW5kIHJlc2VhcmNoCiMgNy41JQojIEluZHVzdHJ5IGluY29tZTogaW5ub3ZhdGlvbgojIDIuNSUKCueUn+WRveenkeWtpl9yYW5rPC0KICBzZWxlY3QoVEhFX3JhbmtpbmcsYyhyYW5rX29yZGVyLAogICAgICAgICAgICAgICAgICBzY2hvb2xfbmFtZSwKICAgICAgICAgICAgICAgICAgcmFua2luZywKICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yLAogICAgICAgICAgICAgICAgICAnMjAxOCcsJzIwMTknLCcyMDIwJykpICU+JQogIGZpbHRlcihyYW5raW5nPT0nTGlmZSBzY2llbmNlcycpICU+JQogIGdhdGhlcih5ZWFyLHNjb3JlLCcyMDE4JzonMjAyMCcpJT4lIAogIHNwcmVhZChpbmRpY2F0b3Isc2NvcmUpICU+JQogIHNlbGVjdCgtc2Nob29sX25hbWUsLXJhbmtpbmcpICU+JQogIHJlbmFtZSgnSW5kdXN0cnlfSW5jb21lJz0nSW5kdXN0cnkgSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJz0nSW50ZXJuYXRpb25hbCBPdXRsb29rJykgJT4lCiAgbXV0YXRlX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJyksZnVuY3Rpb24oeCkgYXMubnVtZXJpYyhyZXBsYWNlX25hKHgsMCkpKSAlPiUKIyAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjMrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjI3NStSZXNlYXJjaCowLjI3NStDaXRhdGlvbnMqMC4zNStJbnRlcm5hdGlvbmFsX091dGxvb2sqMC4wNzUrSW5kdXN0cnlfSW5jb21lKjAuMDI1KSAlPiUKICBtdXRhdGUo5oC75YiGPW5hX2lmKOaAu+WIhiwwKSkgJT4lCiAgcmVuYW1lX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSYW5rJywnUmVzZWFyY2gnLCdUZWFjaGluZycsJ+aAu+WIhicpLGxpc3QofnBhc3RlMCgn55Sf5ZG956eR5a2mLicsLikpKQoKVEhFX3dvcmxkX3Jhbms9bWVyZ2UoVEhFX3dvcmxkX3Jhbmss55Sf5ZG956eR5a2mX3JhbmssYnk9YygneWVhcicsJ3Jhbmtfb3JkZXInKSxhbGwueD1UUlVFKQoKIyDoh6rnhLbnp5HlrablkITmjIfmoIfmnYPph43vvJoKIyBUZWFjaGluZzogdGhlIGxlYXJuaW5nIGVudmlyb25tZW50CiMgMjcuNSUKIyBSZXNlYXJjaDogdm9sdW1lLCBpbmNvbWUgYW5kIHJlcHV0YXRpb24KIyAyNy41JQojIENpdGF0aW9uczogcmVzZWFyY2ggaW5mbHVlbmNlCiMgMzUlCiMgSW50ZXJuYXRpb25hbCBvdXRsb29rOiBzdGFmZiwgc3R1ZGVudHMgYW5kIHJlc2VhcmNoCiMgNy41JQojIEluZHVzdHJ5IGluY29tZTogaW5ub3ZhdGlvbgojIDIuNSUKCuiHqueEtuenkeWtpl9yYW5rPC0KICBzZWxlY3QoVEhFX3JhbmtpbmcsYyhyYW5rX29yZGVyLAogICAgICAgICAgICAgICAgICBzY2hvb2xfbmFtZSwKICAgICAgICAgICAgICAgICAgcmFua2luZywKICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yLAogICAgICAgICAgICAgICAgICAnMjAxOCcsJzIwMTknLCcyMDIwJykpICU+JQogIGZpbHRlcihyYW5raW5nPT0nUGh5c2ljYWwgc2NpZW5jZXMnKSAlPiUKICBnYXRoZXIoeWVhcixzY29yZSwnMjAxOCc6JzIwMjAnKSU+JSAKICBzcHJlYWQoaW5kaWNhdG9yLHNjb3JlKSAlPiUKICBzZWxlY3QoLXNjaG9vbF9uYW1lLC1yYW5raW5nKSAlPiUKICByZW5hbWUoJ0luZHVzdHJ5X0luY29tZSc9J0luZHVzdHJ5IEluY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vayc9J0ludGVybmF0aW9uYWwgT3V0bG9vaycpICU+JQogIG11dGF0ZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmVzZWFyY2gnLCdUZWFjaGluZycpLGZ1bmN0aW9uKHgpIGFzLm51bWVyaWMocmVwbGFjZV9uYSh4LDApKSkgJT4lCiMgIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4zK1Jlc2VhcmNoKjAuMytDaXRhdGlvbnMqMC4zK0ludGVybmF0aW9uYWxfT3V0bG9vayowLjA3NStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4yNzUrUmVzZWFyY2gqMC4yNzUrQ2l0YXRpb25zKjAuMzUrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1uYV9pZijmgLvliIYsMCkpICU+JQogIHJlbmFtZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmFuaycsJ1Jlc2VhcmNoJywnVGVhY2hpbmcnLCfmgLvliIYnKSxsaXN0KH5wYXN0ZTAoJ+iHqueEtuenkeWtpi4nLC4pKSkKClRIRV93b3JsZF9yYW5rPW1lcmdlKFRIRV93b3JsZF9yYW5rLOiHqueEtuenkeWtpl9yYW5rLGJ5PWMoJ3llYXInLCdyYW5rX29yZGVyJyksYWxsLng9VFJVRSkKCiMg5b+D55CG5a2m5ZCE5oyH5qCH5p2D6YeN77yaCiMgVGVhY2hpbmc6IHRoZSBsZWFybmluZyBlbnZpcm9ubWVudAojIDI3LjUlCiMgUmVzZWFyY2g6IHZvbHVtZSwgaW5jb21lIGFuZCByZXB1dGF0aW9uCiMgMjcuNSUKIyBDaXRhdGlvbnM6IHJlc2VhcmNoIGluZmx1ZW5jZQojIDM1JQojIEludGVybmF0aW9uYWwgb3V0bG9vazogc3RhZmYsIHN0dWRlbnRzIGFuZCByZXNlYXJjaAojIDcuNSUKIyBJbmR1c3RyeSBpbmNvbWU6IGlubm92YXRpb24KIyAyLjUlCgrlv4PnkIblraZfcmFuazwtCiAgc2VsZWN0KFRIRV9yYW5raW5nLGMocmFua19vcmRlciwKICAgICAgICAgICAgICAgICAgc2Nob29sX25hbWUsCiAgICAgICAgICAgICAgICAgIHJhbmtpbmcsCiAgICAgICAgICAgICAgICAgIGluZGljYXRvciwKICAgICAgICAgICAgICAgICAgJzIwMTgnLCcyMDE5JywnMjAyMCcpKSAlPiUKICBmaWx0ZXIocmFua2luZz09J1BzeWNob2xvZ3knKSAlPiUKICBnYXRoZXIoeWVhcixzY29yZSwnMjAxOCc6JzIwMjAnKSU+JSAKICBzcHJlYWQoaW5kaWNhdG9yLHNjb3JlKSAlPiUKICBzZWxlY3QoLXNjaG9vbF9uYW1lLC1yYW5raW5nKSAlPiUKICByZW5hbWUoJ0luZHVzdHJ5X0luY29tZSc9J0luZHVzdHJ5IEluY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vayc9J0ludGVybmF0aW9uYWwgT3V0bG9vaycpICU+JQogIG11dGF0ZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmVzZWFyY2gnLCdUZWFjaGluZycpLGZ1bmN0aW9uKHgpIGFzLm51bWVyaWMocmVwbGFjZV9uYSh4LDApKSkgJT4lCiMgIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4zK1Jlc2VhcmNoKjAuMytDaXRhdGlvbnMqMC4zK0ludGVybmF0aW9uYWxfT3V0bG9vayowLjA3NStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4yNzUrUmVzZWFyY2gqMC4yNzUrQ2l0YXRpb25zKjAuMzUrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1uYV9pZijmgLvliIYsMCkpICU+JQogIHJlbmFtZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmFuaycsJ1Jlc2VhcmNoJywnVGVhY2hpbmcnLCfmgLvliIYnKSxsaXN0KH5wYXN0ZTAoJ+W/g+eQhuWtpi4nLC4pKSkKClRIRV93b3JsZF9yYW5rPW1lcmdlKFRIRV93b3JsZF9yYW5rLOW/g+eQhuWtpl9yYW5rLGJ5PWMoJ3llYXInLCdyYW5rX29yZGVyJyksYWxsLng9VFJVRSkKCiMg5ZWG56eR5ZKM57uP5rWO5a2m5ZCE5oyH5qCH5p2D6YeN77yaCiMgVGVhY2hpbmc6IHRoZSBsZWFybmluZyBlbnZpcm9ubWVudAojIDMwLjklCiMgUmVzZWFyY2g6IHZvbHVtZSwgaW5jb21lIGFuZCByZXB1dGF0aW9uCiMgMzIuNiUKIyBDaXRhdGlvbnM6IHJlc2VhcmNoIGluZmx1ZW5jZQojIDI1JQojIEludGVybmF0aW9uYWwgb3V0bG9vazogc3RhZmYsIHN0dWRlbnRzIGFuZCByZXNlYXJjaAojIDklCiMgSW5kdXN0cnkgaW5jb21lOiBpbm5vdmF0aW9uCiMgMi41JQoK5ZWG56eR5ZKM57uP5rWO5a2mX3Jhbms8LQogIHNlbGVjdChUSEVfcmFua2luZyxjKHJhbmtfb3JkZXIsCiAgICAgICAgICAgICAgICAgIHNjaG9vbF9uYW1lLAogICAgICAgICAgICAgICAgICByYW5raW5nLAogICAgICAgICAgICAgICAgICBpbmRpY2F0b3IsCiAgICAgICAgICAgICAgICAgICcyMDE4JywnMjAxOScsJzIwMjAnKSkgJT4lCiAgZmlsdGVyKHJhbmtpbmc9PSdCdXNpbmVzcyAmIEVjb25vbWljcycpICU+JQogIGdhdGhlcih5ZWFyLHNjb3JlLCcyMDE4JzonMjAyMCcpJT4lIAogIHNwcmVhZChpbmRpY2F0b3Isc2NvcmUpICU+JQogIHNlbGVjdCgtc2Nob29sX25hbWUsLXJhbmtpbmcpICU+JQogIHJlbmFtZSgnSW5kdXN0cnlfSW5jb21lJz0nSW5kdXN0cnkgSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJz0nSW50ZXJuYXRpb25hbCBPdXRsb29rJykgJT4lCiAgbXV0YXRlX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJyksZnVuY3Rpb24oeCkgYXMubnVtZXJpYyhyZXBsYWNlX25hKHgsMCkpKSAlPiUKIyAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjMrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMwOStSZXNlYXJjaCowLjMyNitDaXRhdGlvbnMqMC4yNStJbnRlcm5hdGlvbmFsX091dGxvb2sqMC4wOStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9bmFfaWYo5oC75YiGLDApKSAlPiUKICByZW5hbWVfYXQoYygnQ2l0YXRpb25zJywnSW5kdXN0cnlfSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJywnT3ZlcmFsbCcsJ1JhbmsnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJywn5oC75YiGJyksbGlzdCh+cGFzdGUwKCfllYbnp5Hlkoznu4/mtY7lraYuJywuKSkpCgpUSEVfd29ybGRfcmFuaz1tZXJnZShUSEVfd29ybGRfcmFuayzllYbnp5Hlkoznu4/mtY7lraZfcmFuayxieT1jKCd5ZWFyJywncmFua19vcmRlcicpLGFsbC54PVRSVUUpCgojIOaVmeiCsuWtpuWQhOaMh+agh+adg+mHje+8mgojIFRlYWNoaW5nOiB0aGUgbGVhcm5pbmcgZW52aXJvbm1lbnQKIyAzMi43JQojIFJlc2VhcmNoOiB2b2x1bWUsIGluY29tZSBhbmQgcmVwdXRhdGlvbgojIDI5LjglCiMgQ2l0YXRpb25zOiByZXNlYXJjaCBpbmZsdWVuY2UKIyAyNy41JQojIEludGVybmF0aW9uYWwgb3V0bG9vazogc3RhZmYsIHN0dWRlbnRzIGFuZCByZXNlYXJjaAojIDcuNSUKIyBJbmR1c3RyeSBpbmNvbWU6IGlubm92YXRpb24KIyAyLjUlCgrmlZnogrLlraZfcmFuazwtCiAgc2VsZWN0KFRIRV9yYW5raW5nLGMocmFua19vcmRlciwKICAgICAgICAgICAgICAgICAgc2Nob29sX25hbWUsCiAgICAgICAgICAgICAgICAgIHJhbmtpbmcsCiAgICAgICAgICAgICAgICAgIGluZGljYXRvciwKICAgICAgICAgICAgICAgICAgJzIwMTgnLCcyMDE5JywnMjAyMCcpKSAlPiUKICBmaWx0ZXIocmFua2luZz09J0VkdWNhdGlvbicpICU+JQogIGdhdGhlcih5ZWFyLHNjb3JlLCcyMDE4JzonMjAyMCcpJT4lIAogIHNwcmVhZChpbmRpY2F0b3Isc2NvcmUpICU+JQogIHNlbGVjdCgtc2Nob29sX25hbWUsLXJhbmtpbmcpICU+JQogIHJlbmFtZSgnSW5kdXN0cnlfSW5jb21lJz0nSW5kdXN0cnkgSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJz0nSW50ZXJuYXRpb25hbCBPdXRsb29rJykgJT4lCiAgbXV0YXRlX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJyksZnVuY3Rpb24oeCkgYXMubnVtZXJpYyhyZXBsYWNlX25hKHgsMCkpKSAlPiUKIyAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjMrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMyNytSZXNlYXJjaCowLjI5OCtDaXRhdGlvbnMqMC4yNzUrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1uYV9pZijmgLvliIYsMCkpICU+JQogIHJlbmFtZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmFuaycsJ1Jlc2VhcmNoJywnVGVhY2hpbmcnLCfmgLvliIYnKSxsaXN0KH5wYXN0ZTAoJ+aVmeiCsuWtpi4nLC4pKSkKClRIRV93b3JsZF9yYW5rPW1lcmdlKFRIRV93b3JsZF9yYW5rLOaVmeiCsuWtpl9yYW5rLGJ5PWMoJ3llYXInLCdyYW5rX29yZGVyJyksYWxsLng9VFJVRSkKCiMg5rOV5a2m5ZCE5oyH5qCH5p2D6YeN77yaCiMgVGVhY2hpbmc6IHRoZSBsZWFybmluZyBlbnZpcm9ubWVudAojIDMyLjclCiMgUmVzZWFyY2g6IHZvbHVtZSwgaW5jb21lIGFuZCByZXB1dGF0aW9uCiMgMzAuOCUKIyBDaXRhdGlvbnM6IHJlc2VhcmNoIGluZmx1ZW5jZQojIDI1JQojIEludGVybmF0aW9uYWwgb3V0bG9vazogc3RhZmYsIHN0dWRlbnRzIGFuZCByZXNlYXJjaAojIDklCiMgSW5kdXN0cnkgaW5jb21lOiBpbm5vdmF0aW9uCiMgMi41JQoK5rOV5a2mX3Jhbms8LQogIHNlbGVjdChUSEVfcmFua2luZyxjKHJhbmtfb3JkZXIsCiAgICAgICAgICAgICAgICAgIHNjaG9vbF9uYW1lLAogICAgICAgICAgICAgICAgICByYW5raW5nLAogICAgICAgICAgICAgICAgICBpbmRpY2F0b3IsCiAgICAgICAgICAgICAgICAgICcyMDE4JywnMjAxOScsJzIwMjAnKSkgJT4lCiAgZmlsdGVyKHJhbmtpbmc9PSdMYXcnKSAlPiUKICBnYXRoZXIoeWVhcixzY29yZSwnMjAxOCc6JzIwMjAnKSU+JSAKICBzcHJlYWQoaW5kaWNhdG9yLHNjb3JlKSAlPiUKICBzZWxlY3QoLXNjaG9vbF9uYW1lLC1yYW5raW5nKSAlPiUKICByZW5hbWUoJ0luZHVzdHJ5X0luY29tZSc9J0luZHVzdHJ5IEluY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vayc9J0ludGVybmF0aW9uYWwgT3V0bG9vaycpICU+JQogIG11dGF0ZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmVzZWFyY2gnLCdUZWFjaGluZycpLGZ1bmN0aW9uKHgpIGFzLm51bWVyaWMocmVwbGFjZV9uYSh4LDApKSkgJT4lCiMgIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4zK1Jlc2VhcmNoKjAuMytDaXRhdGlvbnMqMC4zK0ludGVybmF0aW9uYWxfT3V0bG9vayowLjA3NStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4zMjcrUmVzZWFyY2gqMC4zMDgrQ2l0YXRpb25zKjAuMjUrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDkrSW5kdXN0cnlfSW5jb21lKjAuMDI1KSAlPiUKICBtdXRhdGUo5oC75YiGPW5hX2lmKOaAu+WIhiwwKSkgJT4lCiAgcmVuYW1lX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSYW5rJywnUmVzZWFyY2gnLCdUZWFjaGluZycsJ+aAu+WIhicpLGxpc3QofnBhc3RlMCgn5rOV5a2mLicsLikpKQoKVEhFX3dvcmxkX3Jhbms9bWVyZ2UoVEhFX3dvcmxkX3Jhbmss5rOV5a2mX3JhbmssYnk9YygneWVhcicsJ3Jhbmtfb3JkZXInKSxhbGwueD1UUlVFKQoKIyDnpL7kvJrnp5HlrablkITmjIfmoIfmnYPph43vvJoKIyBUZWFjaGluZzogdGhlIGxlYXJuaW5nIGVudmlyb25tZW50CiMgMzIuNCUKIyBSZXNlYXJjaDogdm9sdW1lLCBpbmNvbWUgYW5kIHJlcHV0YXRpb24KIyAzMi42JQojIENpdGF0aW9uczogcmVzZWFyY2ggaW5mbHVlbmNlCiMgMjUlCiMgSW50ZXJuYXRpb25hbCBvdXRsb29rOiBzdGFmZiwgc3R1ZGVudHMgYW5kIHJlc2VhcmNoCiMgNy41JQojIEluZHVzdHJ5IGluY29tZTogaW5ub3ZhdGlvbgojIDIuNSUKCuekvuS8muenkeWtpl9yYW5rPC0KICBzZWxlY3QoVEhFX3JhbmtpbmcsYyhyYW5rX29yZGVyLAogICAgICAgICAgICAgICAgICBzY2hvb2xfbmFtZSwKICAgICAgICAgICAgICAgICAgcmFua2luZywKICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yLAogICAgICAgICAgICAgICAgICAnMjAxOCcsJzIwMTknLCcyMDIwJykpICU+JQogIGZpbHRlcihyYW5raW5nPT0nU29jaWFsIHNjaWVuY2VzJykgJT4lCiAgZ2F0aGVyKHllYXIsc2NvcmUsJzIwMTgnOicyMDIwJyklPiUgCiAgc3ByZWFkKGluZGljYXRvcixzY29yZSkgJT4lCiAgc2VsZWN0KC1zY2hvb2xfbmFtZSwtcmFua2luZykgJT4lCiAgcmVuYW1lKCdJbmR1c3RyeV9JbmNvbWUnPSdJbmR1c3RyeSBJbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snPSdJbnRlcm5hdGlvbmFsIE91dGxvb2snKSAlPiUKICBtdXRhdGVfYXQoYygnQ2l0YXRpb25zJywnSW5kdXN0cnlfSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJywnT3ZlcmFsbCcsJ1Jlc2VhcmNoJywnVGVhY2hpbmcnKSxmdW5jdGlvbih4KSBhcy5udW1lcmljKHJlcGxhY2VfbmEoeCwwKSkpICU+JQojICBtdXRhdGUo5oC75YiGPVRlYWNoaW5nKjAuMytSZXNlYXJjaCowLjMrQ2l0YXRpb25zKjAuMytJbnRlcm5hdGlvbmFsX091dGxvb2sqMC4wNzUrSW5kdXN0cnlfSW5jb21lKjAuMDI1KSAlPiUKICBtdXRhdGUo5oC75YiGPVRlYWNoaW5nKjAuMzI0K1Jlc2VhcmNoKjAuMzI2K0NpdGF0aW9ucyowLjI1K0ludGVybmF0aW9uYWxfT3V0bG9vayowLjA3NStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9bmFfaWYo5oC75YiGLDApKSAlPiUKICByZW5hbWVfYXQoYygnQ2l0YXRpb25zJywnSW5kdXN0cnlfSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJywnT3ZlcmFsbCcsJ1JhbmsnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJywn5oC75YiGJyksbGlzdCh+cGFzdGUwKCfnpL7kvJrnp5HlraYuJywuKSkpCgpUSEVfd29ybGRfcmFuaz1tZXJnZShUSEVfd29ybGRfcmFuayznpL7kvJrnp5HlraZfcmFuayxieT1jKCd5ZWFyJywncmFua19vcmRlcicpLGFsbC54PVRSVUUpCgojIOW3peeoi+aKgOacr+WQhOaMh+agh+adg+mHje+8mgojIFRlYWNoaW5nOiB0aGUgbGVhcm5pbmcgZW52aXJvbm1lbnQKIyAzMCUKIyBSZXNlYXJjaDogdm9sdW1lLCBpbmNvbWUgYW5kIHJlcHV0YXRpb24KIyAzMCUKIyBDaXRhdGlvbnM6IHJlc2VhcmNoIGluZmx1ZW5jZQojIDI3LjUlCiMgSW50ZXJuYXRpb25hbCBvdXRsb29rOiBzdGFmZiwgc3R1ZGVudHMgYW5kIHJlc2VhcmNoCiMgNy41JQojIEluZHVzdHJ5IGluY29tZTogaW5ub3ZhdGlvbgojIDUlCgrlt6XnqIvmioDmnK9fcmFuazwtCiAgc2VsZWN0KFRIRV9yYW5raW5nLGMocmFua19vcmRlciwKICAgICAgICAgICAgICAgICAgc2Nob29sX25hbWUsCiAgICAgICAgICAgICAgICAgIHJhbmtpbmcsCiAgICAgICAgICAgICAgICAgIGluZGljYXRvciwKICAgICAgICAgICAgICAgICAgJzIwMTgnLCcyMDE5JywnMjAyMCcpKSAlPiUKICBmaWx0ZXIocmFua2luZz09J0VuZ2luZWVyaW5nICYgdGVjaG5vbG9neScpICU+JQogIGdhdGhlcih5ZWFyLHNjb3JlLCcyMDE4JzonMjAyMCcpJT4lIAogIHNwcmVhZChpbmRpY2F0b3Isc2NvcmUpICU+JQogIHNlbGVjdCgtc2Nob29sX25hbWUsLXJhbmtpbmcpICU+JQogIHJlbmFtZSgnSW5kdXN0cnlfSW5jb21lJz0nSW5kdXN0cnkgSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJz0nSW50ZXJuYXRpb25hbCBPdXRsb29rJykgJT4lCiAgbXV0YXRlX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJyksZnVuY3Rpb24oeCkgYXMubnVtZXJpYyhyZXBsYWNlX25hKHgsMCkpKSAlPiUKIyAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjMrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjI3NStJbnRlcm5hdGlvbmFsX091dGxvb2sqMC4wNzUrSW5kdXN0cnlfSW5jb21lKjAuMDUpICU+JQogIG11dGF0ZSjmgLvliIY9bmFfaWYo5oC75YiGLDApKSAlPiUKICByZW5hbWVfYXQoYygnQ2l0YXRpb25zJywnSW5kdXN0cnlfSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJywnT3ZlcmFsbCcsJ1JhbmsnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJywn5oC75YiGJyksbGlzdCh+cGFzdGUwKCflt6XnqIvmioDmnK8uJywuKSkpCgpUSEVfd29ybGRfcmFuaz1tZXJnZShUSEVfd29ybGRfcmFuayzlt6XnqIvmioDmnK9fcmFuayxieT1jKCd5ZWFyJywncmFua19vcmRlcicpLGFsbC54PVRSVUUpCgojIOiuoeeul+acuuenkeWtpuWQhOaMh+agh+adg+mHje+8mgojIFRlYWNoaW5nOiB0aGUgbGVhcm5pbmcgZW52aXJvbm1lbnQKIyAzMCUKIyBSZXNlYXJjaDogdm9sdW1lLCBpbmNvbWUgYW5kIHJlcHV0YXRpb24KIyAzMCUKIyBDaXRhdGlvbnM6IHJlc2VhcmNoIGluZmx1ZW5jZQojIDI3LjUlCiMgSW50ZXJuYXRpb25hbCBvdXRsb29rOiBzdGFmZiwgc3R1ZGVudHMgYW5kIHJlc2VhcmNoCiMgNy41JQojIEluZHVzdHJ5IGluY29tZTogaW5ub3ZhdGlvbgojIDUlCgrorqHnrpfmnLrnp5HlraZfcmFuazwtCiAgc2VsZWN0KFRIRV9yYW5raW5nLGMocmFua19vcmRlciwKICAgICAgICAgICAgICAgICAgc2Nob29sX25hbWUsCiAgICAgICAgICAgICAgICAgIHJhbmtpbmcsCiAgICAgICAgICAgICAgICAgIGluZGljYXRvciwKICAgICAgICAgICAgICAgICAgJzIwMTgnLCcyMDE5JywnMjAyMCcpKSAlPiUKICBmaWx0ZXIocmFua2luZz09J0NvbXB1dGVyIFNjaWVuY2UnKSAlPiUKICBnYXRoZXIoeWVhcixzY29yZSwnMjAxOCc6JzIwMjAnKSU+JSAKICBzcHJlYWQoaW5kaWNhdG9yLHNjb3JlKSAlPiUKICBzZWxlY3QoLXNjaG9vbF9uYW1lLC1yYW5raW5nKSAlPiUKICByZW5hbWUoJ0luZHVzdHJ5X0luY29tZSc9J0luZHVzdHJ5IEluY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vayc9J0ludGVybmF0aW9uYWwgT3V0bG9vaycpICU+JQogIG11dGF0ZV9hdChjKCdDaXRhdGlvbnMnLCdJbmR1c3RyeV9JbmNvbWUnLCdJbnRlcm5hdGlvbmFsX091dGxvb2snLCdPdmVyYWxsJywnUmVzZWFyY2gnLCdUZWFjaGluZycpLGZ1bmN0aW9uKHgpIGFzLm51bWVyaWMocmVwbGFjZV9uYSh4LDApKSkgJT4lCiMgIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4zK1Jlc2VhcmNoKjAuMytDaXRhdGlvbnMqMC4zK0ludGVybmF0aW9uYWxfT3V0bG9vayowLjA3NStJbmR1c3RyeV9JbmNvbWUqMC4wMjUpICU+JQogIG11dGF0ZSjmgLvliIY9VGVhY2hpbmcqMC4zK1Jlc2VhcmNoKjAuMytDaXRhdGlvbnMqMC4yNzUrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjA1KSAlPiUKICBtdXRhdGUo5oC75YiGPW5hX2lmKOaAu+WIhiwwKSkgJT4lCiAgcmVuYW1lX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSYW5rJywnUmVzZWFyY2gnLCdUZWFjaGluZycsJ+aAu+WIhicpLGxpc3QofnBhc3RlMCgn6K6h566X5py656eR5a2mLicsLikpKQoKVEhFX3dvcmxkX3Jhbms9bWVyZ2UoVEhFX3dvcmxkX3Jhbmss6K6h566X5py656eR5a2mX3JhbmssYnk9YygneWVhcicsJ3Jhbmtfb3JkZXInKSxhbGwueD1UUlVFKQoKCiMg5Lq65paH6Im65pyv5ZCE5oyH5qCH5p2D6YeN77yaCiMgVGVhY2hpbmc6IHRoZSBsZWFybmluZyBlbnZpcm9ubWVudAojIDM3LjQlCiMgUmVzZWFyY2g6IHZvbHVtZSwgaW5jb21lIGFuZCByZXB1dGF0aW9uCiMgMzcuNiUKIyBDaXRhdGlvbnM6IHJlc2VhcmNoIGluZmx1ZW5jZQojIDE1JQojIEludGVybmF0aW9uYWwgb3V0bG9vazogc3RhZmYsIHN0dWRlbnRzIGFuZCByZXNlYXJjaAojIDcuNSUKIyBJbmR1c3RyeSBpbmNvbWU6IGlubm92YXRpb24KIyA1JQoK5Lq65paH6Im65pyvX3Jhbms8LQogIHNlbGVjdChUSEVfcmFua2luZyxjKHJhbmtfb3JkZXIsCiAgICAgICAgICAgICAgICAgIHNjaG9vbF9uYW1lLAogICAgICAgICAgICAgICAgICByYW5raW5nLAogICAgICAgICAgICAgICAgICBpbmRpY2F0b3IsCiAgICAgICAgICAgICAgICAgICcyMDE4JywnMjAxOScsJzIwMjAnKSkgJT4lCiAgZmlsdGVyKHJhbmtpbmc9PSdBcnRzICYgaHVtYW5pdGllcycpICU+JQogIGdhdGhlcih5ZWFyLHNjb3JlLCcyMDE4JzonMjAyMCcpJT4lIAogIHNwcmVhZChpbmRpY2F0b3Isc2NvcmUpICU+JQogIHNlbGVjdCgtc2Nob29sX25hbWUsLXJhbmtpbmcpICU+JQogIHJlbmFtZSgnSW5kdXN0cnlfSW5jb21lJz0nSW5kdXN0cnkgSW5jb21lJywnSW50ZXJuYXRpb25hbF9PdXRsb29rJz0nSW50ZXJuYXRpb25hbCBPdXRsb29rJykgJT4lCiAgbXV0YXRlX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSZXNlYXJjaCcsJ1RlYWNoaW5nJyksZnVuY3Rpb24oeCkgYXMubnVtZXJpYyhyZXBsYWNlX25hKHgsMCkpKSAlPiUKIyAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjMrUmVzZWFyY2gqMC4zK0NpdGF0aW9ucyowLjMrSW50ZXJuYXRpb25hbF9PdXRsb29rKjAuMDc1K0luZHVzdHJ5X0luY29tZSowLjAyNSkgJT4lCiAgbXV0YXRlKOaAu+WIhj1UZWFjaGluZyowLjM3NCtSZXNlYXJjaCowLjM3NitDaXRhdGlvbnMqMC4xNStJbnRlcm5hdGlvbmFsX091dGxvb2sqMC4wNzUrSW5kdXN0cnlfSW5jb21lKjAuMDI1KSAlPiUKICBtdXRhdGUo5oC75YiGPW5hX2lmKOaAu+WIhiwwKSkgJT4lCiAgcmVuYW1lX2F0KGMoJ0NpdGF0aW9ucycsJ0luZHVzdHJ5X0luY29tZScsJ0ludGVybmF0aW9uYWxfT3V0bG9vaycsJ092ZXJhbGwnLCdSYW5rJywnUmVzZWFyY2gnLCdUZWFjaGluZycsJ+aAu+WIhicpLGxpc3QofnBhc3RlMCgn5Lq65paH6Im65pyvLicsLikpKQoKVEhFX3dvcmxkX3Jhbms9bWVyZ2UoVEhFX3dvcmxkX3Jhbmss5Lq65paH6Im65pyvX3JhbmssYnk9YygneWVhcicsJ3Jhbmtfb3JkZXInKSxhbGwueD1UUlVFKQoKIyDlsIbmiYDmnInmsqHmnInlj4Lor4Tlrabnp5HmjpLlkI3nmoTlrabmoKHnmoTlkITmjIfmoIflgLznlLHnvLrlpLHmlLnkuLowClRIRV93b3JsZF9yYW5rPVRIRV93b3JsZF9yYW5rICU+JQogIG11dGF0ZV9hdCh2YXJzKG1hdGNoZXMoJy7mgLvliIYnKSksZnVuY3Rpb24oeCkgcmVwbGFjZV9uYSh4LDApKSAlPiUKICBtdXRhdGVfYXQodmFycyhtYXRjaGVzKCcuQ2l0YXRpb25zJykpLGZ1bmN0aW9uKHgpIHJlcGxhY2VfbmEoeCwwKSkgJT4lCiAgbXV0YXRlX2F0KHZhcnMobWF0Y2hlcygnLlRlYWNoaW5nJykpLGZ1bmN0aW9uKHgpIHJlcGxhY2VfbmEoeCwwKSkgJT4lCiAgbXV0YXRlX2F0KHZhcnMobWF0Y2hlcygnLlJlc2VhcmNoJykpLGZ1bmN0aW9uKHgpIHJlcGxhY2VfbmEoeCwwKSkgJT4lCiAgbXV0YXRlX2F0KHZhcnMobWF0Y2hlcygnLkludGVybmF0aW9uYWxfT3V0bG9vaycpKSxmdW5jdGlvbih4KSByZXBsYWNlX25hKHgsMCkpICU+JQogIG11dGF0ZV9hdCh2YXJzKG1hdGNoZXMoJy5JbmR1c3RyeV9JbmNvbWUnKSksZnVuY3Rpb24oeCkgcmVwbGFjZV9uYSh4LDApKQogIAojIOiuoeeul+WtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsApzdWJqZWN0X3Zhcj1uYW1lcyhUSEVfd29ybGRfcmFuaylbZW5kc1dpdGgobmFtZXMoVEhFX3dvcmxkX3JhbmspLCcu5oC75YiGJyldCuWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsDwtVEhFX3dvcmxkX3JhbmsgJT4lCiAgc2VsZWN0KHJhbmtfb3JkZXIsc2Nob29sX25hbWUsbmlkLHllYXIsbG9jYXRpb24sZW5kc193aXRoKCfmgLvliIYnKSkgJT4lCiAgcmVwbGFjZSguLGlzLm5hKC4pLDApICU+JQogIG11dGF0ZShtZWFuPXJvd01lYW5zKC5bc3ViamVjdF92YXJdKSxzdGQ9cm93U2RzKGFzLm1hdHJpeCguW3N1YmplY3RfdmFyXSkpKSAlPiUKICB0cmFuc2Zvcm0o5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwPXN0ZC9tZWFuKSAlPiUKICBzZWxlY3Qo5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwKQoKVEhFX3dvcmxkX3Jhbms9Y2JpbmQoVEhFX3dvcmxkX3Jhbmss5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwKQoKVEhFX3dvcmxkX3Jhbms8LVRIRV93b3JsZF9yYW5rICU+JQogIG11dGF0ZSjnlJ/luIjmr5Q9YXMubnVtZXJpYyhzdGF0c19zdHVkZW50X3N0YWZmX3JhdGlvKSkgJT4lCiAgbXV0YXRlKOaVmeiBjOW3peaVsD1yb3VuZCjlrabnlJ/mlbAv55Sf5biI5q+UKSkKCnBvb2xfZGF0YT1USEVfd29ybGRfcmFuayAlPiUKICBmaWx0ZXIoeWVhcj49MjAxOCkgJT4lCiAgcGRhdGEuZnJhbWUoaW5kZXg9YygnbmlkJywneWVhcicpKQpgYGAKCjxjZW50ZXI+CjxoMz4g6Zeu6aKY5LqM77ya5aaC5L2V5a+55aSn5a2m6L+b6KGM5YiG57G7PC9oMz4KPGg0PiDlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbDnmoTmnoTlu7o8L2g0Pgo8L2NlbnRlcj4KCgrjgIDjgIDlj4LkuI4yMDIw5bm0VEhF5LiW55WM5aSn5a2m5o6S5ZCN55qE5aSn5a2m5o6l6L+RMTQwMOWkmuaJgO+8jOWtpuagoeS5i+mXtOeahOW3ruW8guW3qOWkp++8jOWFtuS4re+8jOaXouacieWtpuenkemXqOexu+avlOi+g+m9kOWFqO+8jOWQhOWtpuenkeWunuWKm+avlOi+g+Wdh+ihoeeahOe7vOWQiOWei+Wkp+Wtpu+8jOS5n+acieWcqOWwkeaVsOWtpuenkeS4iuWunuWKm+eqgeWHuueahOihjOS4mueJueauiuWei+Wkp+WtpuOAguWmguaenOeugOWNleeci+aOkuWQjemrmOS9ju+8jOmavuWFjeS8muWHuueOsOaKiumxvOWSjOeMtOWtkOaUvuWcqOS4gOi1t+avlOi1m+eIrOagkeeahOiNkuivnuWxgOmdou+8jOWboOatpO+8jOimgeWvueWkp+WtpuS5i+mXtOi/m+ihjOenkeWtpuavlOi+g++8jOmmluWFiOW/hemhu+agueaNruWtpuenkeWPkeWxleaDheWGteWvueWkp+Wtpui/m+ihjOWMuuWIhu+8muacrOeglOeptuiuoeeul+S6huWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsO+8iOS7peS4i+eugOensOKAnOWtpuenkeWPmOW8guezu+aVsOKAne+8ie+8jOS9nOS4uuW6pumHj+Wkp+WtpuWtpuenkeWPkeWxleWdh+ihoeeoi+W6puWSjOWIhuexu+eahOW3peWFt+OAguWFrOW8j+WmguS4i++8mgrjgIDjgIAKICAgIAokJArlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbBfaT1cZnJhY3vlrabnp5HmjpLlkI3mgLvliIbnmoTmoIflh4blt65faX175a2m56eR5o6S5ZCN5oC75YiG55qE5bmz5Z2H5YC8X2l9CiQkCgrjgIDjgIDmn5DlpKflraZp55qE5a2m56eR5Y+Y5byC57O75pWw562J5LqO5YW25Zyo5Li05bqK5Yy75a2m562JMTHkuKrlrabnp5HmjpLlkI3mgLvliIbvvIjnvLrlpLHlgLzorqHkuLow77yJ55qE5qCH5YeG5beu6Zmk5Lul5YW25bmz5Z2H5YC844CC5qC55o2u6L+Z5LiA6K6h566X5YWs5byP77yMMjAyMOW5tOWPguWKoFRIReS4lueVjOWkp+WtpuaOkuWQjeeahDEzOTfmiYDlpKflrablj5jlvILns7vmlbDlpoLkuIvlm77miYDnpLrjgIIK44CA44CACjxjZW50ZXI+CgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpUSEVfd29ybGRfcmFuayAlPiUKICBmaWx0ZXIoeWVhcj09MjAyMCkgJT4lCiAgZ2dwbG90KGFlcyhyYW5rX29yZGVyLOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsCkpICsKICBnZW9tX3BvaW50KGFlcyhjb2xvcj1mYWN0b3IoSShsb2NhdGlvbj09J0NoaW5hJykpKSkgKwogIHNjYWxlX2NvbG91cl9lY29ub21pc3QoKSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gcXVhbnRpbGUo5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwLGMoMC4zMywwLjY3KSxuYS5ybT1UUlVFKSkgKwogIGdlb21fc21vb3RoKCkgKwogIGxhYnMoeD0nVEhF5LiW55WM5aSn5a2m5o6S5ZCN55qE5ZCN5qyhJyxjb2xvdXI9J+S4reWbveWkp+WtpicpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb249ImJvdHRvbSIpCmBgYAoK5Zu+MSBUSEXkuJbnlYzlpKflrabmjpLlkI3nmoTlkI3mrKHkuI7lrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbAKCjwvY2VudGVyPgoK44CA44CA5LuO5Zu+MeS4reeahOmCo+adoeaLn+WQiOe6v+WPr+S7peeci+WHuu+8jOWcqFRIReS4lueVjOWkp+WtpuaOkuWQjei2iumdoOWJjeeahOWkp+Wtpu+8jOWFtuWtpuenkeWPmOW8guezu+aVsOi2iuS9ju+8jOS6puWNs+aOkuWQjemdoOWJjeeahOWkp+Wtpuaciei+g+Wkp+avlOS+i+aYr+WtpuenkeWPkeWxleawtOW5s+avlOi+g+Wdh+ihoeeahOe7vOWQiOWei+Wkp+WtpuOAggoK44CA44CA5qC55o2u5a2m56eR5Y+Y5byC57O75pWw55qEMzMl5ZKMNjcl55qE55m+5YiG5L2N5pWw77yI5YiG5Yir5Li6MC44NDLlkowxLjcyNu+8jOWNs+WbvjHkuK3nmoTkuKTmnaHmqKrnur/vvInvvIzmnKznoJTnqbblsIblj4Lor4RUSEXkuJbnlYzlpKflrabmjpLlkI3nmoTlpKflrabliIbkuLrkuInnsbvvvIzkuIDmmK/lrabnp5Hlj5jlvILns7vmlbDlsI/kuo4wLjg0MueahOWkp+Wtpu+8jOatpOexu+Wkp+WtpuS4uuWtpuenkeWPkeWxleWdh+ihoeeahOe7vOWQiOWei+Wkp+Wtpu+8m+S6jOaYr+WtpuenkeWPmOW8guezu+aVsOeVjOS6jjAuODQy5ZKMMS43MjbnmoTlpKflrabvvIzmraTnsbvlpKflrabmmK/mnInkuIDlrprnmoTlrabnp5HnibnoibLvvIzkvYbmgLvkvZPkuIrlrabnp5Hmr5TovoPlnYfooaHnmoTlpKflrabvvJvkuInmmK/lrabnp5Hlj5jlvILns7vmlbDlpKfkuo4xLjcyNueahOWtpuenkeeJueiJsueqgeWHuueahOWkp+WtpuOAggoK44CA44CA5oyJ5LiK6L+wM+exu+Wkp+WtpuadpeWMuuWIhu+8jOWPguivhOeahDgx5omA5Lit5Zu95aSn5a2m55qE5YiG5biD5oOF5Ya15aaC5LiL77yaCgoKPGNlbnRlcj4KCjxoNT4g6KGoNC4xIOWtpuenkeWPmOW8guezu+aVsOi+g+Wwj+eahOS4reWbveWkp+WtpgoKYGBge3IgZWNobz1GQUxTRX0KCiMgVEhFX3dvcmxkX3JhbmsgJT4lCiMgICBmaWx0ZXIoeWVhcj09MjAyMCkgJT4lCiMgICBzZWxlY3QocmFua19vcmRlcixsb2NhdGlvbixzY2hvb2xfbmFtZSzmiYDmnInkuJPkuJrmlbAs5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwKSAlPiUKIyAgIG11dGF0ZSjlrabmoKHliIbnsbs9Y2FzZV93aGVuKOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsDxxdWFudGlsZSjlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbAsMC4zMyxuYS5ybT1UUlVFKX4nMScsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsD5xdWFudGlsZSjlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbAsMC42NyxuYS5ybT1UUlVFKX4nMycsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUV+JzInKSkgJT4lCiMgICBmaWx0ZXIobG9jYXRpb249PSdDaGluYScpICU+JQojICAgYXJyYW5nZSjlrabmoKHliIbnsbsscmFua19vcmRlcikgLT4g5Lit5Zu95aSn5a2m5a2m56eR5Y+R5bGV5Z2H6KGh5oOF5Ya15YiG57G7CgpsaWJyYXJ5KCJ4bHN4IikK5Lit5Zu95aSn5a2m5a2m56eR5Y+R5bGV5Z2H6KGh5oOF5Ya1PC1yZWFkLnhsc3goJ+S4reWbveWkp+WtpuWtpuenkeWPkeWxleWdh+ihoeaDheWGteWIhuexuy54bHN4JywnU2hlZXQxJykK5Lit5Zu95aSn5a2m5a2m56eR5Y+R5bGV5Z2H6KGh5oOF5Ya1ICU+JQogIGZpbHRlcijlrabmoKHliIbnsbs9PScxJykgJT4lCiAgc2VsZWN0KOWQjeasoSzlrabmoKEs5byA6K6+5LiT5Lia5pWwLOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsCkgJT4lCiAga2FibGUoZGlnaXRzID0gMykgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiLCAiY29uZGVuc2VkIiwgInJlc3BvbnNpdmUiKSxmdWxsX3dpZHRoID0gRikKYGBgCgo8aDU+IOihqDQuMiDlrabnp5Hlj5jlvILns7vmlbDkuK3nrYnnmoTkuK3lm73lpKflraYKCmBgYHtyIGVjaG89RkFMU0V9CgrkuK3lm73lpKflrablrabnp5Hlj5HlsZXlnYfooaHmg4XlhrUgJT4lCiAgZmlsdGVyKOWtpuagoeWIhuexuz09JzInKSAlPiUKICBzZWxlY3Qo5ZCN5qyhLOWtpuagoSzlvIDorr7kuJPkuJrmlbAs5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwKSAlPiUKICBrYWJsZShkaWdpdHMgPSAzKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpLGZ1bGxfd2lkdGggPSBGKQpgYGAKCjxoNT4g6KGoNC4zIOWtpuenkeWPmOW8guezu+aVsOi+g+Wkp+eahOS4reWbveWkp+WtpgoKYGBge3IgZWNobz1GQUxTRX0KCuS4reWbveWkp+WtpuWtpuenkeWPkeWxleWdh+ihoeaDheWGtSAlPiUKICBmaWx0ZXIo5a2m5qCh5YiG57G7PT0nMycpICU+JQogIHNlbGVjdCjlkI3mrKEs5a2m5qChLOW8gOiuvuS4k+S4muaVsCzlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbApICU+JQogIGthYmxlKGRpZ2l0cyA9IDMpICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIiksZnVsbF93aWR0aCA9IEYpCmBgYAoKPC9jZW50ZXI+CgrjgIDjgIDmoLnmja7kuIrov7DooajmoLzvvIzlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbDovoPkvY7jgIHkuK3nrYnlkozovoPpq5jnmoTkuK3lm73lpKflrabliIbliKvmnIkgYHIgcGFzdGUwKHRhYmxlKOS4reWbveWkp+WtpuWtpuenkeWPkeWxleWdh+ihoeaDheWGtSTlrabmoKHliIbnsbspLGNvbGxhcHNlPSfjgIEnKWAg5omA77yM5YW25Lit77yM5a2m56eR5Y+R5bGV6L6D5Z2H6KGh77yI5Y2z5a2m56eR5Y+Y5byC57O75pWw6L6D5bCP77yJ55qE5Lit5Zu95aSn5a2m5YyF5ous77yaYHIgcGFzdGUwKOS4reWbveWkp+WtpuWtpuenkeWPkeWxleWdh+ihoeaDheWGtVvkuK3lm73lpKflrablrabnp5Hlj5HlsZXlnYfooaHmg4XlhrUk5a2m5qCh5YiG57G7PT0nMScsJ+WtpuagoSddWzE6NF0sY29sbGFwc2U9J+OAgScpYOetiTE15omA57u85ZCI5Z6L5aSn5a2m77yM6ICM5a2m56eR54m56Imy6L6D5Li656qB5Ye677yI5Y2z5a2m56eR5Y+Y5byC57O75pWw6L6D5aSn77yJ55qE5Lit5Zu95aSn5a2m5YyF5ous77yaYHIgcGFzdGUwKOS4reWbveWkp+WtpuWtpuenkeWPkeWxleWdh+ihoeaDheWGtVvkuK3lm73lpKflrablrabnp5Hlj5HlsZXlnYfooaHmg4XlhrUk5a2m5qCh5YiG57G7PT0nMycsJ+WtpuagoSddWzE6NF0sY29sbGFwc2U9J+OAgScpYOetiTIy5omA5aSn5a2m77yM5YW25Lit6Zmk5Y2X5Y2O5aSn5a2m5ZKM5Y2O5L6o5aSn5a2m5LmL5aSW77yM5YW25L2ZMjDmiYDlnYfkuLrooYzkuJrnibnoibLlpKflrabjgIIKCuOAgOOAgOaAu+S9k+S4iueci++8jOagueaNruWtpuenkeWPmOW8guezu+aVsOWvueWkp+Wtpui/m+ihjOWIhuexu++8jOS4juaIkeS7rOaXpeW4uOe7j+mqjOi+g+WQu+WQiO+8jOWPr+WBmuS4uui+g+S4uuenkeWtpueahOWIhuexu+S+neaNruOAggoKPGNlbnRlcj4KPGgzPiDpl67popjkuInvvJrlpoLkvZXnkIbop6Plrabnp5HmjpLlkI3kuI7lpKflrabmjpLlkI3kuYvpl7TnmoTlhbPns7s8L2gzPgo8aDQ+IOWvueWkp+WtpuaOkuWQjemdouadv+aVsOaNrueahOWIhuaekDwvaDQ+CjwvY2VudGVyPgoK44CA44CA5a2m56eR5piv5aSn5a2m55qE57uG6IOeLOS4lueVjOS4gOa1geWtpuenkeaYr+W7uuiuvuS4lueVjOS4gOa1geWkp+WtpueahOWfuuehgFte5LuA5LmI5piv5LiW55WM5LiA5rWB5a2m56eRXeOAgue6teinguWQhOWbveefpeWQjeWkp+Wtpu+8jOaXoOS4jeaYr+aLpeacieiLpeW5suS4lueVjOmihuWFiOeahOWtpuenke+8iOaIluWtpuenkee+pO+8ie+8jOWPjeaYoOS6huWkp+WtpueahOebruagh+WumuS9jeOAgeWKnuWtpueJueiJsuWSjOWtpuacr+WunuWKm+OAggoKW17ku4DkuYjmmK/kuJbnlYzkuIDmtYHlrabnp5FdOuWRqOWFieekvCzmrablu7rpkasu5LuA5LmI5piv5LiW55WM5LiA5rWB5a2m56eRW0pdLuS4reWbvemrmOaVmeeglOeptiwyMDE2KDAxKTo2NS03My4KCuOAgOOAgOS7juenkeWtpueglOeptueahOinkuW6puadpeeci++8jOavj+S4gOS4quWtpuenkemDveaYr+S6uuexu+efpeivhuS9k+ezu+S4reeahOS4gOS4quWIhuaUr++8jOacrOaXoOS8mOWKo+mrmOS4i+S5i+WIhu+8jOS5n+S4jeW6lOi/h+W6puW8uuiwg+mXqOexu+S5i+WIq++8jOWunumZheS4iu+8jOi3qOWtpuenkeS6pOWPieeglOeptuaYr+WPluW+l+mHjeWkp+enkeWtpuWPkeeOsOWSjOS6p+eUn+W8lemihuaAp+WOn+WIm+aIkOaenOmHjeWkp+eqgeegtOeahOmHjeimgeaWueW8j++8jOi/kTEwMOW5tOeahDMwMOWkmumhueivuui0neWwlOiHqueEtuenkeWtpuWlluS4re+8jOaciei/keWNiuWGheWuueaYr+i3qOWtpuenkeS6pOWPieeglOeptueahOaIkOaenFte5Lqk5Y+J56CU56m2XeOAguS9hioq5LuO5aSn5a2m5o6S5ZCN5ZKM5a2m56eR5o6S5ZCN55qE6KeS5bqm55yL77yM5a2m56eR5LiN5LuF5rO+5rit5YiG5piO77yM6ICM5LiU5a+55aSn5a2m5o6S5ZCN55qE4oCc6LSh54yu5bqm4oCd5Lmf5piv5pyJ5aSn5pyJ5bCP55qEKirjgIIKClte5Lqk5Y+J56CU56m2XTrkuqTlj4nnoJTnqbblpoLkvZXorqnkuK3lm73lpKflraYi5byv6YGT6LaF6L2mIltOXS7lhYnmmI7ml6XmiqUsIDIwMTctMTItMTYoMDQpLgoK44CA44CA5Li656CU56m25ZCE5aSn5a2m55qE5a2m56eR5o6S5ZCN5a+55YW25aSn5a2m5o6S5ZCN55qE5b2x5ZON77yM5pys56CU56m26aaW5YWI5qC55o2uVEhF5LiW55WM5aSn5a2m5o6S5ZCN5ZKM5a2m56eR5o6S5ZCN55qE5ZCE6aG55oyH5qCH77yI5Y+C6KeB6KGoMeOAgeihqDLvvInlj4rlhbbmnYPph43vvIzorqHnrpflh7oxMzk35omA5aSn5a2m5ZyoMjAxOOW5tOiHszIwMjDlubTpl7RUSEXkuJbnlYzlpKflrabmjpLlkI3lkozlrabnp5HmjpLlkI3nmoTmgLvliIbvvIznhLblkI7ku6VUSEXkuJbnlYzlpKflrabmjpLlkI3mgLvliIbkuLrlm6Dlj5jph4/vvIzku6UxMeS4quWtpuenkeeahOaOkuWQjeaAu+WIhuS4uuiHquWPmOmHj++8jOS7peWtpueUn+aVsOOAgeeUn+W4iOavlOOAgeaJgOacieS4k+S4muaVsOWSjOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsOetieWPjeaYoOWtpuagoeWKnuWtpuinhOaooeOAgeW4iOi1hOadoeS7tuWSjOWtpuenkee7k+aehOetieWFs+mUruWPmOmHj+S4uuaOp+WItuWPmOmHj+OAgumHh+eUqOe6teWIl+aVsOaNruWIhuaekOeahOaWueazle+8jOaooeWei+WmguS4i++8mgoKJCQKXGJlZ2lue2FsaWdufQrlpKflrabmjpLlkI3mgLvliIZfe2l0fT0mXGJldGFfMCtcYmV0YV8xKuS4tOW6iuWMu+Wtpi7mgLvliIZfe2l0fStcYmV0YV8yKueUn+WRveenkeWtpi7mgLvliIZfe2l0fSBcXAomK1xiZXRhXzMq6Ieq54S256eR5a2mLuaAu+WIhl97aXR9K1xiZXRhXzQq5b+D55CG5a2mLuaAu+WIhl97aXR9K1xiZXRhXzUq5ZWG56eR5ZKM57uP5rWO5a2mLuaAu+WIhl97aXR9XFwKJitcYmV0YV82KuaVmeiCsuWtpi7mgLvliIZfe2l0fStcYmV0YV83KuazleWtpi7mgLvliIZfe2l0fStcYmV0YV84KuekvuS8muenkeWtpi7mgLvliIZfe2l0fVxcCiYrXGJldGFfOSrlt6XnqIvmioDmnK8u5oC75YiGX3tpdH0rXGJldGFfezEwfSrorqHnrpfmnLrnp5HlraYu5oC75YiGX3tpdH0rXGJldGFfezExfSrkurrmlofoibrmnK8u5oC75YiGX3tpdH1cXAomK1xiZXRhX3sxMn0q5a2m55Sf5pWwX3tpdH0rXGJldGFfezEzfSrnlJ/luIjmr5Rfe2l0fStcYmV0YV97MTR9KuaJgOacieS4k+S4muaVsF97aXR9XFwKJitcYmV0YV97MTV9KuWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsF97aXR9K2Vfe2l0fQpcZW5ke2FsaWdufQokJAoK44CA44CA5qC55o2uICRlX3tpdH0kIOS4reaYr+WQpuWMheWQq+acieS4jemaj+aXtumXtOWPmOWMlueahOKAnOS4quS9k+aViOW6lOKAne+8jOe6teWIl+aVsOaNruWIhuaekOmcgOimgeS8sOeul+S4pOenjeaooeWei++8mumaj+acuuaViOW6lOaooeWei+WSjOWbuuWumuaViOW6lOaooeWei+OAguacrOeglOeptuS9v+eUqFLnmoRwbG3nu5/orqHova/ku7bljIXvvIzlr7nkuIrov7DkuKTnsbvmqKHlnovnmoTkvLDnrpfnu5PmnpzlpoLooag15omA56S677yaCgo8Y2VudGVyPgo8aDU+IOihqDUgVEhF5LiW55WM5aSn5a2m5o6S5ZCN55qE57uf6K6h5qih5Z6LCgpgYGB7ciBtZXNzYWdlPUZBTFNFLGVjaG89RkFMU0Usd2FybmluZz1GQUxTRSxyZXN1bHRzPSdhc2lzJ30KZm9ybT3mgLvliIZ+5Li05bqK5Yy75a2mLuaAu+WIhivnlJ/lkb3np5HlraYu5oC75YiGK+iHqueEtuenkeWtpi7mgLvliIYr5b+D55CG5a2mLuaAu+WIhivllYbnp5Hlkoznu4/mtY7lraYu5oC75YiGK+aVmeiCsuWtpi7mgLvliIYr5rOV5a2mLuaAu+WIhivnpL7kvJrnp5HlraYu5oC75YiGK+W3peeoi+aKgOacry7mgLvliIYr6K6h566X5py656eR5a2mLuaAu+WIhivkurrmlofoibrmnK8u5oC75YiGK+WtpueUn+aVsCvmlZnogYzlt6XmlbAr5omA5pyJ5LiT5Lia5pWwK+WtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsAoKcG9vbF9tb2RlbD1wbG0oZm9ybSxtb2RlbD0icG9vbGluZyIsZGF0YT1wb29sX2RhdGEpCmZpeF90d293YXlzX21vZGVsPXBsbShmb3JtLG1vZGVsPSJ3aXRoaW4iLGVmZmVjdD0ndHdvd2F5cycsZGF0YT1wb29sX2RhdGEpCnJhbmRvbV9tb2RlbD1wbG0oZm9ybSxtb2RlbD0icmFuZG9tIixkYXRhPXBvb2xfZGF0YSkKCnN0YXJnYXplcihyYW5kb21fbW9kZWwsZml4X3R3b3dheXNfbW9kZWwsdHlwZT0naHRtbCcsCiAgICAgICAgICBjb2x1bW4ubGFiZWxzID0gYygn6ZqP5py65pWI5bqUJywn5Zu65a6a5pWI5bqUJyksCiAgICAgICAgICBvbWl0LnN0YXQ9YygiZiIsICJzZXIiLCJhZGoucnNxIiksc2luZ2xlLnJvdyA9IFRSVUUsZGVwLnZhci5jYXB0aW9uID0gJycsCiAgICAgICAgICByZXBvcnQgPSAndmMqJyxmb250LnNpemUgPSAndGlueScpCmBgYAoKCjwvY2VudGVyPgoK44CA44CA5a+55LiK6L+w5Lik5Liq5qih5Z6L55qE6LGq5pav5pu85qOA6aqMKEhhdXNtYW4gVGVzdO+8jOWNoeaWueWAvD0xOTEzLjY76Ieq55Sx5bqmPTE0O1DlgLw8MC4wMe+8ie+8jOe7k+aenOaYvuiRly7mja7mraTvvIzlupTku6Xlm7rlrprmlYjlupTmqKHlnovnmoTnu5PmnpzkuLrlh4bjgILmoLnmja7lm7rlrprmlYjlupTmqKHlnovvvIzlr7nlpKflrabmjpLlkI3mgLvliIbnmoTlvbHlk43mlYjlupTlgLznlLHlpKfliLDlsI/liIbliKvmmK/vvJrkuLTluorljLvlrabvvIgwLjA2MO+8ie+8jOS6uuaWh+iJuuacr++8iDAuMDM577yJ77yM5bel56iL5oqA5pyv77yIMC4wMzfvvInvvIznpL7kvJrnp5HlrabvvIgwLjAyN++8ie+8jOiHqueEtuenkeWtpu+8iDAuMDI077yJ77yM55Sf5ZG956eR5a2m77yIMC4wMjPvvInlkozorqHnrpfmnLrnp5HlrabvvIgwLjAyMO+8ie+8m+W/g+eQhuWtpuOAgeWVhuenkeWSjOe7j+a1juWtpuOAgeaVmeiCsuWtpuWSjOazleWtpuetieWtpuenkeaOkuWQjeaAu+WIhuWvueWkp+WtpuaOkuWQjeaAu+WIhueahOW9seWTjeaViOW6lOS4jeaYvuiRl+OAguatpOWklu+8jOaVmeiBjOWRmOW3peaVsOWvueWkp+WtpuaOkuWQjeaAu+WIhuacieaYvuiRl+i0n+W9seWTje+8jOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsOWvueWkp+WtpuaOkuWQjeaAu+WIhuacieaYvuiRl+ato+W9seWTjeOAgui/meivtOaYjioq5Zyo5a2m56eR57uT5p6E57G75Ly855qE5oOF5Ya15LiL77yM5biI6LWE6KeE5qih6L6D5bCP44CB5a2m56eR5a6e5Yqb5beu5byC6L6D5aSn55qE5aSn5a2m77yM5Y2z4oCc5bCP6ICM5pyJ54m56Imy4oCd55qE5aSn5a2m5o6S5ZCN6L6D6Z2g5YmNKirjgIIKCjxjZW50ZXI+CjxoMz4g6Zeu6aKY5Zub77ya5aaC5L2V55CG6Kej5a2m56eR5o6S5ZCN5LmL6Ze055qE5YWz57O7PC9oMz4KPC9jZW50ZXI+CgrjgIDjgIDlrabnp5HmmK/nm7jkupLogZTns7vnmoTvvIzniannkIblrablrrbjgIHph4/lrZDorrrnmoTliJvlp4vkurpNwrfmma7mnJflhYvkuZ/mt7HliLvlnLDorqTor4bliLDvvJrigJznp5HlrabmmK/lhoXlnKjnmoTmlbTkvZPvvIzooqvliIbop6PkuLrljZXni6znmoTpg6jpl6jkuI3mmK/lj5blhrPkuo7kuovniannmoTmnKzotKjvvIzogIzmmK/lj5blhrPkuo7kurrnsbvorqTor4bog73lipvnmoTlsYDpmZDmgKfjgILlrp7pmYXkuIrlrZjlnKjnnYDnlLHniannkIblrabliLDljJblrabjgIHpgJrov4fnlJ/nianlrablkozkurrnsbvlrabliLDnpL7kvJrnp5HlrabnmoTpk77mnaHvvIzov5nmmK/kuIDkuKrku7vkvZXkuIDlpITpg73kuI3og73ooqvmiZPmlq3nmoTpk77mnaHjgILigJ1bXui3r+eUrOelpV3jgILlm6DmraTvvIzkuo7lpKflrabogIzoqIDvvIzmnIDlpb3nmoTmg4XlhrXmmK/oi6XlubLlrabnp5Hnm7jkupLmuJfpgI/jgIHnm7jkupLmlK/mkpHvvIzlhbHlkIzmnoTlu7rkuIDkuKrlgaXlurfogIzlr4zmnInmtLvlipvlrabnp5HnlJ/mgIHvvJvkuo7mn5DkuIDnibnlrprlrabnp5HogIzoqIDvvIzliJnmnInkuKTnp43mg4XlhrXvvJrku47nn6Xor4bnlJ/kuqfnmoTop5LluqbnnIvvvIzlhbbku5blrabnp5HnmoTnoJTnqbbop4bop5LjgIHnoJTnqbbmlrnms5Xlkoznm7jlhbPnkIborrrlj6/og73miJDkuLrmnKzlrabnp5HnoJTnqbbnmoTph43opoHooaXnm4rvvIzku47ogIzkv4Pov5vmnKzlrabnp5HnmoTlj5HlsZXvvJvkvYbku47otYTmupDnuqbmnZ/nmoTop5LluqbvvIzlhbbku5blrabnp5HkuI7mnKzlrabnp5HlnKjkurrlipvjgIHnu4/otLnnrYnotYTmupDnq57kuonmlrnpnaLnm7jkupLop5LlipvvvIzlnKjotYTmupDnqIDnvLrnmoTmg4XlhrXkuIvvvIzlhbbku5blrabnp5HnmoTnuYHojaPlj6/og73ljovliLbmnKzlrabnp5HnmoTlj5HlsZXjgIIKClte6Lev55Ss56WlXTrot6/nlKznpaUuIOWtpuenkeS6pOWPieS4juS6pOWPieenkeWtpueahOaEj+S5iVtKXS4g5Lit5Zu956eR5a2m6Zmi6Zmi5YiKLDIwMDUoMDEpOjU4LTYwLgoK44CA44CA6YKj5LmI77yMKirlnKjkuI3lkIznsbvlnovnmoTlpKflrabph4zvvIzlrabnp5HkuYvpl7TmmK/mgI7moLfkuIDnp43lhbPns7vvvJ/mmK/lhbHnlJ/lhbHojaPov5jmmK/mraTmtojlvbzplb/vvJ8qKiDlr7lUSEXnmoTlrabnp5HmjpLlkI3lj6/ku6Xmj5DkvpvkuIDkuKrliIbmnpDop4bop5LjgILku6XllYbnp5Hlkoznu4/mtY7lrabkuLrkvovvvIzoi6Xku6XllYbnp5Hlkoznu4/mtY7lrablrabnp5HmjpLlkI3lkITpobnmjIfmoIflvpfliIbkuLrlm6Dlj5jph4/vvIzku6Xlhbbku5blrabnp5HmjpLlkI3mjIfmoIflvpfliIbkuLroh6rlj5jph4/vvIzlj6/pgJrov4dQTE3mqKHlnovliIbmnpDllYbnp5Hlkoznu4/mtY7lrabkuI7lhbbku5blrabnp5HkuYvpl7TnmoTlhbPns7vjgILmqKHlnovlhazlvI/lpoLkuIvvvJoKCiQkClxiZWdpbnthbGlnbn0K5ZWG56eR5ZKM57uP5rWO5a2mLuaAu+WIhiY95Li05bqK5Yy75a2mLuaAu+WIhivnlJ/lkb3np5HlraYu5oC75YiGK+iHqueEtuenkeWtpi7mgLvliIZcXAomK+W/g+eQhuWtpi7mgLvliIYr5pWZ6IKy5a2mLuaAu+WIhivms5XlraYu5oC75YiGK+ekvuS8muenkeWtpi7mgLvliIYr5bel56iL5oqA5pyvLuaAu+WIhlxcCiYr6K6h566X5py656eR5a2mLuaAu+WIhivkurrmlofoibrmnK8u5oC75YiGK+WtpuenkeWPmOW8guezu+aVsCBcdGFne+WFrOW8jzF9IFxcCuWVhuenkeWSjOe7j+a1juWtpi7lvJXnlKgmPeS4tOW6iuWMu+Wtpi7lvJXnlKgr55Sf5ZG956eR5a2mLuW8leeUqCvoh6rnhLbnp5HlraYu5byV55SoXFwKJivlv4PnkIblraYu5byV55SoK+aVmeiCsuWtpi7lvJXnlKgr5rOV5a2mLuW8leeUqCvnpL7kvJrnp5HlraYu5byV55SoK+W3peeoi+aKgOacry7lvJXnlKhcXAomK+iuoeeul+acuuenkeWtpi7lvJXnlKgr5Lq65paH6Im65pyvLuW8leeUqCvlrabnp5Hlj5jlvILns7vmlbAgXHRhZ3vlhazlvI8yfSBcXArllYbnp5Hlkoznu4/mtY7lraYu5pWZ5a2mJj3kuLTluorljLvlraYu5pWZ5a2mK+eUn+WRveenkeWtpi7mlZnlraYr6Ieq54S256eR5a2mLuaVmeWtplxcCiYr5b+D55CG5a2mLuaVmeWtpivmlZnogrLlraYu5pWZ5a2mK+azleWtpi7mlZnlraYr56S+5Lya56eR5a2mLuaVmeWtpivlt6XnqIvmioDmnK8u5pWZ5a2mXFwKJivorqHnrpfmnLrnp5HlraYu5pWZ5a2mK+S6uuaWh+iJuuacry7mlZnlraYr5a2m56eR5Y+Y5byC57O75pWwIFx0YWd75YWs5byPM30gXFwK5ZWG56eR5ZKM57uP5rWO5a2mLuenkeeglCY95Li05bqK5Yy75a2mLuenkeeglCvnlJ/lkb3np5HlraYu56eR56CUK+iHqueEtuenkeWtpi7np5HnoJRcXAomK+W/g+eQhuWtpi7np5HnoJQr5pWZ6IKy5a2mLuenkeeglCvms5XlraYu56eR56CUK+ekvuS8muenkeWtpi7np5HnoJQr5bel56iL5oqA5pyvLuenkeeglFxcCiYr6K6h566X5py656eR5a2mLuenkeeglCvkurrmlofoibrmnK8u56eR56CUK+WtpuenkeWPmOW8guezu+aVsCBcdGFne+WFrOW8jzR9IFxcCuWVhuenkeWSjOe7j+a1juWtpi7lm73pmYXljJYmPeS4tOW6iuWMu+Wtpi7lm73pmYXljJYr55Sf5ZG956eR5a2mLuWbvemZheWMlivoh6rnhLbnp5HlraYu5Zu96ZmF5YyWXFwKJivlv4PnkIblraYu5Zu96ZmF5YyWK+aVmeiCsuWtpi7lm73pmYXljJYr5rOV5a2mLuWbvemZheWMlivnpL7kvJrnp5HlraYu5Zu96ZmF5YyWXFwKJivlt6XnqIvmioDmnK8u5Zu96ZmF5YyWK+iuoeeul+acuuenkeWtpi7lm73pmYXljJYr5Lq65paH6Im65pyvLuWbvemZheWMlivlrabnp5Hlj5jlvILns7vmlbAgXHRhZ3vlhazlvI81fSBcXArllYbnp5Hlkoznu4/mtY7lraYu6KGM5Lia5Yib5pS2Jj3kuLTluorljLvlraYu6KGM5Lia5Yib5pS2K+eUn+WRveenkeWtpi7ooYzkuJrliJvmlLYr6Ieq54S256eR5a2mLuihjOS4muWIm+aUtlxcCiYr5b+D55CG5a2mLuihjOS4muWIm+aUtivmlZnogrLlraYu6KGM5Lia5Yib5pS2K+azleWtpi7ooYzkuJrliJvmlLYr56S+5Lya56eR5a2mLuihjOS4muWIm+aUtlxcCiYr5bel56iL5oqA5pyvLuihjOS4muWIm+aUtivorqHnrpfmnLrnp5HlraYu6KGM5Lia5Yib5pS2K+S6uuaWh+iJuuacry7ooYzkuJrliJvmlLZcXAomK+WtpuenkeWPmOW8guezu+aVsCBcdGFne+WFrOW8jzZ9ClxlbmR7YWxpZ259CiQkCgrjgIDjgIDlhbbkvZnlrabnp5HnmoTnu5/orqHliIbmnpDmqKHlnovku6XmraTnsbvmjqjvvIzku6XlkITlrabnp5HmjpLlkI3nmoTmgLvliIbjgIHlvJXnlKjmjpLlkI3lvpfliIbjgIHmlZnlrabmjpLlkI3lvpfliIbjgIHnp5HnoJTmjpLlkI3lvpfliIbjgIHlm73pmYXljJblvpfliIblkozooYzkuJrliJvmlLblvpfliIbkuLrlm6Dlj5jph4/vvIzlhbbku5blrabnp5HnmoTnm7jlupTmjpLlkI3mjIfmoIflvpfliIbkuLroh6rlj5jph4/vvIznlKhQTE3mqKHlnovpgJDkuIDov5vooYznu5/orqHliIbmnpDvvIzlj6/lvpfliLDlpoLkuIvlha3kuKrmqKHlnovlj4LmlbDnn6npmLXjgIIKCjxjZW50ZXI+CjxoNT4g6KGoNiDlkITlrabnp5HmjpLlkI3mgLvliIbnmoTlm57lvZLmqKHlnosKIVtdKOWQhOWtpuenkeWkp+WtpuaOkuWQjeWbnuW9kuaooeWeiy5wbmcpCjwvY2VudGVyPgoKCjxjZW50ZXI+CjxoNT4g6KGoNyDlkITlrabnp5HlvJXnlKjmjpLlkI3lvpfliIbnmoTlm57lvZLmqKHlnosKIVtdKOWQhOWtpuenkeWkp+WtpuaOkuWQjeWbnuW9kuaooeWei19DaXRhdGlvbnMucG5nKQo8L2NlbnRlcj4KCjxjZW50ZXI+CjxoNT4g6KGoOCDlkITlrabnp5HmlZnlrabmjpLlkI3lvpfliIbnmoTlm57lvZLmqKHlnosKIVtdKOWQhOWtpuenkeWkp+WtpuaOkuWQjeWbnuW9kuaooeWei19UZWFjaGluZy5wbmcpCjwvY2VudGVyPgoKPGNlbnRlcj4KPGg1PiDooag5IOWQhOWtpuenkeenkeeglOaOkuWQjeW+l+WIhueahOWbnuW9kuaooeWeiwohW10o5ZCE5a2m56eR5aSn5a2m5o6S5ZCN5Zue5b2S5qih5Z6LX1Jlc2VhcmNoLnBuZykKPC9jZW50ZXI+Cgo8Y2VudGVyPgo8aDU+IOihqDEwIOWQhOWtpuenkeWbvemZheWMluaOkuWQjeW+l+WIhueahOWbnuW9kuaooeWeiwohW10o5ZCE5a2m56eR5aSn5a2m5o6S5ZCN5Zue5b2S5qih5Z6LX0ludGVybmF0aW9uYWxfT3V0bG9vay5wbmcpCjwvY2VudGVyPgoKPGNlbnRlcj4KPGg1PiDooagxMSDlkITlrabnp5HooYzkuJrliJvmlLbmjpLlkI3lvpfliIbnmoTlm57lvZLmqKHlnosKIVtdKOWQhOWtpuenkeWkp+WtpuaOkuWQjeWbnuW9kuaooeWei19JbmR1c3RyeV9JbmNvbWUucG5nKQo8L2NlbnRlcj4KCuOAgOOAgOmAmui/h+S7peS4iuWFreS4quWPguaVsOefqemYte+8jOaIkeS7rOWPr+S7peWPkeeOsOWtpuenkeS5i+mXtOaYr+WkjeadgueahO+8jOaXouacieebuOS6kuaUr+aSkeeahOWFs+ezu++8jOS+i+WmguiHqueEtuenkeWtpuS4juW3peeoi+aKgOacr+S5i+mXtOeahOato+ebuOWFs++8m+S5n+WtmOWcqOi1hOa6kOernuS6ie+8jOS+i+WmguS4tOW6iuWMu+WtpuS4juiHqueEtuWMu+WtpuS5i+mXtOeahOi0n+ebuOWFs+OAguiAjOS4lOWcqOS4jeWQjOaMh+agh+S4iu+8jOWtpuenkeS5i+mXtOeahOWFs+ezu+S5n+acieaJgOS4jeWQjOOAggoK44CA44CA5Lul5LiK5L6/5piv5pys5qyh56CU56m255qE5Li76KaB5Y+R546w77yM5L6b6K+76ICF5Y+C6ICD44CCCgrjgIDjgIDovazovb3miJblvJXnlKjor7fms6jmmI7lh7rlpITvvJpodHRwczovL3JwdWJzLmNvbS9ob25neXUvNTk0MDI4CuOAgOOAgAoKPGNlbnRlcj4KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRSwgcmVzdWx0cz0nYXNpcyd9CnJlcGxhY2VfbmFtZTwtZnVuY3Rpb24oeCkgewogIG5hbWVzKHgkY29lZmZpY2llbnRzKT1zdWIoJ1xcLi4qJywnJyxuYW1lcyh4JGNvZWZmaWNpZW50cykpCiAgbmFtZXMoeCRjb2VmZmljaWVudHMpPXN1YignXFwoSW50ZXJjZXB0XFwpJywn5oiq6LedJyxuYW1lcyh4JGNvZWZmaWNpZW50cykpCiAgeAp9CgpyZXR1cm5fcGxtIDwtIGZ1bmN0aW9uKG1vZGVsX2Zvcm0sbW9kZWxfZGF0YSkgewogIHJhbmRvbV9tb2RlbD1wbG0obW9kZWxfZm9ybSxtb2RlbD0icmFuZG9tIixkYXRhPW1vZGVsX2RhdGEpCiAgZml4X3R3b3dheXNfbW9kZWw9cGxtKG1vZGVsX2Zvcm0sbW9kZWw9IndpdGhpbiIsZWZmZWN0PSd0d293YXlzJyxkYXRhPW1vZGVsX2RhdGEpCiAgcF92YWx1ZT1waHRlc3QocmFuZG9tX21vZGVsLGZpeF90d293YXlzX21vZGVsKSRwLnZhbHVlCiAgaWYgKHBfdmFsdWUgPD0gMC4wNSkgewogICAgcmVzdWx0PWZpeF90d293YXlzX21vZGVsCiAgfSBlbHNlIHsKICAgIHJlc3VsdD1yYW5kb21fbW9kZWwKICB9CiAgcmVwbGFjZV9uYW1lKHJlc3VsdCkKfQoKcmV0dXJuX21vZGVsX2Zvcm0gPC0gZnVuY3Rpb24oZGVwX3ZhcixlbmRfc3RyKXsKICBpbmRlcF9zdWJqZWN0PWMoJ+S4tOW6iuWMu+WtpicsJ+eUn+WRveenkeWtpicsJ+iHqueEtuenkeWtpicsJ+W/g+eQhuWtpicsJ+WVhuenkeWSjOe7j+a1juWtpicsJ+aVmeiCsuWtpicsJ+azleWtpicsJ+ekvuS8muenkeWtpicsJ+W3peeoi+aKgOacrycsJ+iuoeeul+acuuenkeWtpicsJ+S6uuaWh+iJuuacrycpCiAgbW9kZWxfZm9ybT1wYXN0ZTAoZGVwX3ZhcixlbmRfc3RyLCd+5omA5pyJ5LiT5Lia5pWwK+WtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsCsnLHBhc3RlMChpbmRlcF9zdWJqZWN0W2luZGVwX3N1YmplY3QhPWRlcF92YXJdLGNvbGxhcHNlPXBhc3RlMChlbmRfc3RyLCcrJykpLGVuZF9zdHIsY29sbGFwc2UgPSAnJykKICBtb2RlbF9mb3JtCn0KCnN0YXJnYXplcihsYXBwbHkoYygnLuaAu+WIhicsJy5DaXRhdGlvbnMnLCcuVGVhY2hpbmcnLCcuUmVzZWFyY2gnLCcuSW50ZXJuYXRpb25hbF9PdXRsb29rJywnLkluZHVzdHJ5X0luY29tZScpLGZ1bmN0aW9uKHgpIHJldHVybl9wbG0ocmV0dXJuX21vZGVsX2Zvcm0oJ+WVhuenkeWSjOe7j+a1juWtpicseCkscG9vbF9kYXRhW3Bvb2xfZGF0YSTllYbnp5Hlkoznu4/mtY7lraYu5oC75YiGIT0wLF0pKSwKICAgICAgICAgIHR5cGU9J2h0bWwnLGFsaWduID0gVFJVRSwKICAgICAgICAgIGRlcC52YXIubGFiZWxzID0gYygn5o6S5ZCN5oC75YiGJywn5byV55SoJywn5pWZ5a2mJywn56CU56m2Jywn5Zu96ZmF5YyWJywn5Lqn5Lia5Yib5pS2JyksCiAgICAgICAgICBkZXAudmFyLmNhcHRpb249JycsCiAgICAgICAgICBjb2x1bW4uc2VwYXJhdGU9YygxLDEsMSwxLDEsMSksCiAgICAgICAgICBkaWdpdHMgPSAzLG9taXQuc3RhdD1jKCJmIiwgInNlciIsImFkai5yc3EiKSwKICAgICAgICAgIHNpbmdsZS5yb3cgPSBUUlVFLHJlcG9ydCA9ICd2YyonLG91dD0n5ZWG56eR5ZKM57uP5rWO5a2m5o6S5ZCNUExN5qih5Z6LLmh0bWwnKQoKYGBgCjwvY2VudGVyPgoKCjxjZW50ZXI+CmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0UsIHJlc3VsdHM9J2FzaXMnfQrlrabmoKHliIbnsbsgPC1USEVfd29ybGRfcmFuayAlPiUKICBmaWx0ZXIoeWVhcj09MjAyMCkgJT4lCiAgc2VsZWN0KHJhbmtfb3JkZXIsc2Nob29sX25hbWUs5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwKSAlPiUKICBtdXRhdGUo5a2m5qCh5YiG57G7PWNhc2Vfd2hlbijlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbA8cXVhbnRpbGUo5a2m56eR5o6S5ZCN5oC75YiG5Y+Y5byC57O75pWwLDAuMzMsbmEucm09VFJVRSl+JzEu5a2m56eR5Y+Y5byC57O75pWw6L6D5bCPJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtpuenkeaOkuWQjeaAu+WIhuWPmOW8guezu+aVsD5xdWFudGlsZSjlrabnp5HmjpLlkI3mgLvliIblj5jlvILns7vmlbAsMC42NyxuYS5ybT1UUlVFKX4nMy7lrabnp5Hlj5jlvILns7vmlbDovoPlpKcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRX4nMi7lrabnp5Hlj5jlvILns7vmlbDkuK3nrYknKSkKCm5ld19kYXRhPW1lcmdlKFRIRV93b3JsZF9yYW5rLOWtpuagoeWIhuexu1ssYygncmFua19vcmRlcicsJ+WtpuagoeWIhuexuycpXSxieT0ncmFua19vcmRlcicpCnBvb2xfZGF0YV9lY29uPXBkYXRhLmZyYW1lKG5ld19kYXRhW25ld19kYXRhJOWVhuenkeWSjOe7j+a1juWtpi7mgLvliIYhPTAsXSxpbmRleD1jKCduaWQnLCd5ZWFyJykpCgptb2RlbHM8LXBvb2xfZGF0YV9lY29uICU+JQogIHNwbGl0KC4k5a2m5qCh5YiG57G7KSAlPiUKICBtYXAofmxhcHBseShjKCcu5oC75YiGJywnLkNpdGF0aW9ucycsJy5UZWFjaGluZycsJy5SZXNlYXJjaCcsJy5JbnRlcm5hdGlvbmFsX091dGxvb2snLCcuSW5kdXN0cnlfSW5jb21lJyksZnVuY3Rpb24oeCkgcmVwbGFjZV9uYW1lKHBsbShyZXR1cm5fbW9kZWxfZm9ybSgn5ZWG56eR5ZKM57uP5rWO5a2mJyx4KSxtb2RlbD0id2l0aGluIixlZmZlY3Q9J3R3b3dheXMnLGRhdGE9LikpKSkKCmBgYAo8L2NlbnRlcj4KCgo8Y2VudGVyPgpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFLCByZXN1bHRzPSdhc2lzJ30Kc3RhcmdhemVyKG1vZGVsc1sxXSwKICAgICAgICAgIHR5cGU9J2h0bWwnLGFsaWduID0gVFJVRSwKICAgICAgICAgIGNvbHVtbi5sYWJlbHMgPSBjKCfmjpLlkI3mgLvliIYnLCflvJXnlKgnLCfmlZnlraYnLCfnoJTnqbYnLCflm73pmYXljJYnLCfkuqfkuJrliJvmlLYnKSwKICAgICAgICAgICNkZXAudmFyLmNhcHRpb249JycsCiAgICAgICAgICAjY29sdW1uLnNlcGFyYXRlPWMoMSwxLDEsMSwxLDEpLAogICAgICAgICAgZGlnaXRzID0gMyxvbWl0LnN0YXQ9YygiZiIsICJzZXIiLCJhZGoucnNxIiksCiAgICAgICAgICBzaW5nbGUucm93ID0gVFJVRSxyZXBvcnQgPSAndmMqJykKYGBgCjwvY2VudGVyPgoKCjxjZW50ZXI+CmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0UsIHJlc3VsdHM9J2FzaXMnfQpzdGFyZ2F6ZXIobW9kZWxzWzJdLAogICAgICAgICAgdHlwZT0naHRtbCcsYWxpZ24gPSBUUlVFLAogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoJ+aOkuWQjeaAu+WIhicsJ+W8leeUqCcsJ+aVmeWtpicsJ+eglOepticsJ+WbvemZheWMlicsJ+S6p+S4muWIm+aUticpLAogICAgICAgICAgI2RlcC52YXIuY2FwdGlvbj0nJywKICAgICAgICAgICNjb2x1bW4uc2VwYXJhdGU9YygxLDEsMSwxLDEsMSksCiAgICAgICAgICBkaWdpdHMgPSAzLG9taXQuc3RhdD1jKCJmIiwgInNlciIsImFkai5yc3EiKSwKICAgICAgICAgIHNpbmdsZS5yb3cgPSBUUlVFLHJlcG9ydCA9ICd2YyonKQpgYGAKPC9jZW50ZXI+CgoKCjxjZW50ZXI+CmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0UsIHJlc3VsdHM9J2FzaXMnfQpzdGFyZ2F6ZXIobW9kZWxzWzNdLAogICAgICAgICAgdHlwZT0naHRtbCcsYWxpZ24gPSBUUlVFLAogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoJ+aOkuWQjeaAu+WIhicsJ+W8leeUqCcsJ+aVmeWtpicsJ+eglOepticsJ+WbvemZheWMlicsJ+S6p+S4muWIm+aUticpLAogICAgICAgICAgI2RlcC52YXIuY2FwdGlvbj0nJywKICAgICAgICAgICNjb2x1bW4uc2VwYXJhdGU9YygxLDEsMSwxLDEsMSksCiAgICAgICAgICBkaWdpdHMgPSAzLG9taXQuc3RhdD1jKCJmIiwgInNlciIsImFkai5yc3EiKSwKICAgICAgICAgIHNpbmdsZS5yb3cgPSBUUlVFLHJlcG9ydCA9ICd2YyonKQoKYGBgCjwvY2VudGVyPg==