Content-Type: multipart/related; start=; boundary=----------dQmyVJZ6oFIk78N1YmNemR Content-Location: http://sns.ragnarokonline.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=613 Subject: =?utf-8?Q?=E3=82=A8=E3=83=9C=E3=83=97=E3=83=ADSNS?= MIME-Version: 1.0 ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=default.htm Content-Type: text/html; charset=UTF-8; name=default.htm Content-ID: Content-Location: http://sns.ragnarokonline.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=613 Content-Transfer-Encoding: 8bit エボプロSNS
  • search

[【公式】運営チームからのお知らせ] トピック

2010年01月29日
18:08

日本リニューアルプランの発表

ラグナロクオンライン運営チームです。

現在進行しております、エボリューションプロジェクトによる
リニューアルプランについての進捗と
仕様調整状況についてご報告させていただきます。
※なお、後日同内容をエボリューションプロジェクトページでも
 ご報告させていただきます。

当初、昨年11月~12月にかけて発表させていたく予定でおりましたが、
遅くなりましたことをお詫び申し上げます。

3次職実装に伴うリニューアルプランを日本に導入するにあたりましては、
「現在の日本仕様を改めて参考値に用い、
 現在のプレイアビリティをできる限り維持すること」
を両社の目標と定めて協議を重ね、
現在までに下記の点が決定しております。

<現在の日本仕様のプレイアビリティを維持するもの>
 ●各ステータスの意味、重要性
 ●ASPD190までの上昇曲線
 ●物理攻撃に対する武器のAtk値依存度
 ●モンスターに関する設定
 ●取得できる経験値、アイテムはレベルに依存しない
 ●上位2次職までのレベルアップに必要な経験値
 ●精錬効果を含むDEF

<新規導入を予定しているもの>
 ●盾を装備することによるASPDの変化

<仕様に関してユーザーアンケートを予定しているもの>
 ●固定詠唱と無詠唱について

詳細につきましては、第1期SakrayJテスト終了時のレポート項目に沿って、
下記に報告させていただきますのでご参照ください。
また、あわせて3次職について調整を行った点もご報告させていただきます。


発表内容に変更が発生した場合は、都度、情報の更新を行っていくとともに、
今回の発表に含まれていない項目につきましても、
必要に応じて追加していく予定です。


また、さまざまな状況が混在しておりますため、今回の発表においては、
用語を次のような意味にて使用させていただいております。

  現在の日本仕様 : 2010年1月現在、日本でサービスされている内容
  韓国リニューアル : 2009年6月に韓国に導入された内容
  日本リニューアル : 今後、日本に導入される内容

ユーザーの皆様に、今後も安心してラグナロクオンラインを
楽しんでいただけるよう、全力を尽くしてまいります。
何卒よろしくお願い申し上げます。


=========================
■韓国リニューアルから日本リニューアルへの変更点
=========================

●1:ステータスの重要度
 <日本リニューアルを行うための課題>
  レベルが上がっても強さの差が感じられない。
  ステータスの振り方によるキャラクターの特徴が消えている。

    ↓↓↓↓↓

  現在の日本仕様と同様の成長感が得られるように仕様調整をいたします。

-------------------------------------

●2:ASPDの低下
 <日本リニューアルを行うための課題>
  ASPDが全般的に下方修正されている。
  爽快感がなくなった。
  盾を装備した際にASPDが低下する新システムの是非。

    ↓↓↓↓↓

  現在の日本仕様で各キャラクターが達成しているASPD(190まで)
  に関しては、下方修正を行わず現在の仕様を維持します。
  その上で、ASPD191~193を達成させるための難易度を上げていきます。

  盾を装備している時のASPD低下については、低下自体を抑える、
  あるいは低下する代わりに別の効果が付くものを用意するなどの形で、
  盾の効果、アイテムのバランスを調整いたします。

-------------------------------------

●3:固定詠唱と無詠唱
 <日本リニューアルを行うための課題>
  無詠唱がなくなることの是非。
  固定詠唱自体のバランス調整が取れていない。

    ↓↓↓↓↓

  現在の日本仕様で実現している「無詠唱」という状態について、
  両社の見解が大きく異なっております。
  そのため、後日ユーザーの皆様に、「無詠唱の是非」について
  アンケートを実施させていただく予定です。

 【グラヴィティ社の見解】
  当初の企画意図では、無詠唱を達成するキャラクターが
  多数出ることを想定していませんでした。
  しかしながら、様々なアイテムやスキルを利用することによって
  無詠唱が達成できるようになってきています。

  ゲームバランス上、無詠唱が行えるキャラクターと、
  行えないキャラクターの性能差が大きいこともあり、
  結果として無詠唱達成時の効率が高すぎることから、
  ペアプレイが主流となってしまっています。
  パーティープレイを阻害する要素となっていないか検討を続けた結果、
  固定詠唱時間を入れることでバランスを保つという考えに至りました。

  また、3次職のスキルをデザインする際に、
  無詠唱を前提として企画を検討することに
  ゲームバランスの限界を感じたことも要因のひとつです。

  したがって、無詠唱でスキルが発動する状態を廃止し、
  スキルの連続使用に一定の制限を入れたいと考えています。

 【ガンホーの見解】
  リニューアルを行うにあたっては、現在の日本仕様におけるステータスや
  アイテムの価値を保全することが重要だと考えています。
  無詠唱を撤廃すると、そのために振ったステータスや
  入手したアイテムが無駄になってしまうため、
  該当するユーザーや無詠唱を目指しているユーザーからの
  反発が大きいのではないかと予想されます。

  そのため、無詠唱が存在するというルールを維持したまま、
  別の方向でスキルバランスを調整していきたいと考えています。

-------------------------------------

●4:物理攻撃に対する武器のAtk値依存度の強化
 <日本リニューアルを行うための課題>
  ステータスを上げる意味が失われる。
  カードを含めたアイテムの価値が変化する。

    ↓↓↓↓↓

  「●1」のとおり、ステータスの価値に対し、
  現在の日本仕様を考慮した仕様調整を行います。
  物理攻撃に関しては、具体的には、
  物理攻撃時のステータス(Str)の依存度を高める形で修正を行います。

-------------------------------------

●5:モンスターに関する設定
 <日本リニューアルを行うための課題>
  各マップでのレベル帯が固定されてしまう。
  モンスターの個性がなくなり、単調になった。
  ソロで倒せる敵が多く、パーティーを組む意味が見出せない。

    ↓↓↓↓↓

  モンスターの経験値、配置等の一部設定は、
  今後日本で独自に調整することになりました。
  また、今後ともモンスターの設定に関しての
  調整協議を両社にて行っていきます。
  したがって、現在の日本仕様のプレイアビリティを考慮した設定を行います。
  モンスターへの必要HitやFleeが高く、
  特に序盤の育成が困難となっていた点についても、
  仕様調整により日本リニューアルでは緩和されます。

-------------------------------------

●6:経験値偏差、アイテムドロップ率偏差
 <日本リニューアルを行うための課題>
  狩場選びに関する自由度がなくなった。
  遊び方を強制されている。

    ↓↓↓↓↓

  戦闘対象とするモンスターをレベルによって固定化するシステムは、
  ゲームプレイの自由度に制限をかけてしまう印象が大きいため、
  日本での導入は行いません。

-------------------------------------

●7:レベルアップに必要な経験値
<日本リニューアルを行うための課題>
  低レベル時の育成が困難になった。
  逆に高レベル時の達成感も低下した。

    ↓↓↓↓↓

  既存の職業については現在の日本仕様を維持します。
  3次職転職後の経験値についても日本独自に調整していきます。

-------------------------------------

●8:防具の精錬効果が低下している
<日本リニューアルを行うための課題>
  DEF計算式が変更になったため精錬値の効果が薄れた

    ↓↓↓↓↓

  現在の日本仕様での防具の使用感、価値などの
  プレイアビリティを維持した上で、精錬値の上方修正も含めた
  新たな物理防御力計算式を開発いたします。




=========================
■3次職に関するご報告
=========================

●3次職への転職条件
 <韓国リニューアルの状況>
  3次職へは、2次職・上位2次職どちらからも、
  BaseLv99達成時にクエストを受けることにより転職可能。

    ↓↓↓↓↓

 <日本リニューアルでの実装>
  3次職へは、上位2次職BaseLv90以上のキャラクターが
  クエストを受けることにより転職可能といたします。
  2次職から転職した3次職と、上位2次職から転職した3次職とで、
  習得スキルに差が出ることにより、パーティ結成時などの
  募集条件に混乱が発生することを懸念したため、
  3次職への転職条件を一本化いたしました。
  ただし、転生や上位2次職への到達難易度については
  今後の検討課題として、調整していく予定です。

-------------------------------------

●公平パーティー経験値取得システム
 <韓国リニューアルの状況>
  ノービス、スーパーノービス、忍者、ガンスリンガー、
  テコン系の職業など、3次職になることのできない職業が、
  3次職との公平パーティーを組めない。

    ↓↓↓↓↓

 <日本リニューアルでの実装>
  3次職になれない職業に関しては、今後のアップデートで
  3次職との公平パーティーが組めるよう対応を行います。
  また、これらの職業に対する仕様の追加(拡張)も
  今年度に計画されております。
  それまでの対応として、公平パーティーに関する仕様変更を調整中です。

-------------------------------------

●3次職のグラフィック

 現在、グラヴィティ社でも3次職グラフィックの修正作業が進行中です。
 それにあわせ、弊社からも具体的な提案を行っています。

------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_arrow_1.gif Content-Transfer-Encoding: Base64 R0lGODlhEQALAKIGAD4+PioqKltbW3t7e5iYmKysrP///wAAACH5BAEAAAYALAAA AAARAAsAQAMfaLrc/jDKSat9ABZDzDCCkQXO1n3haJCL6YHiamVNAgA7 ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/bg_button.gif Content-Transfer-Encoding: Base64 R0lGODlhxgAUALMAAP7+/vj4+Pr6+vv7+/z8/P////Pz8/Hx8fX19fn5+f39/e/v 7+7u7gAAAAAAAAAAACH5BAAAAAAALAAAAADGABQAQAT/sMhJq7046827/2Aojphg nmiqrmzrvnAsz3Rt32yg73zv/8CgcEgsGo/IpHIJVDif0Kh0Sq1ar9isdsvter/U hXhMLpvP6LR6zW673/C4fI4G2O/4vH7P7/v/gIGCg4SFhod8A4qLjI2Oj5CRkpOU lZaXmJmam5BMnp+goaKjpEIGp6ipqqusra6vsLGys7S1tre4rQS7vL2+v8DBwsPE xcbHyMnKy8zBJM/Q0dLT1NUaiNjZ2tvc3d5+zeHi4+Tl5ufDnOrr7O3u7/CSCfP0 9fb3+Pn6+/z9/v8AAwocSDAfg4MIEypcyLChw4cQI0qcSLGixYsYGx7YyLGjx48g OUOKHEmypMmTKFOqXMkyJIKXMGPKnEmzps2bOHPq3Mmzp8+fQGviGEq0qNGjSJO6 +Ma0qdOnUAdFAAA7 ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://sns.ragnarokonline.jp/skin/default/img/skin_footer.jpg Content-Transfer-Encoding: Base64 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 ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/content_header_1.gif Content-Transfer-Encoding: Base64 R0lGODlhHgAUANUoAL6+vv////z8/Pn5+f7+/v39/fb29vPz8/v7++/v7/Hx8fr6 +u3t7Z+fn9nZ2aqqqnd3d5aWloeHh7W1tdLS0t7e3peXl5ubm93d3ff398zMzOfn 54qKirS0tODg4NjY2KysrNPT08rKyp6envDw8JCQkOPj48/Pz////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAACgALAAAAAAeABQAQAaxQJRwSCwaj0RAYMFkNp4N TXMRACCTjoB2y+U6rFehskAme8roQjUsDije7wuIQoK/12xAtsvXftkoSgKDgxMT H4SEeGFKDI6OEJElIhuPi1dKBpqaFZueBpeAoqMApaanqGB5AQStrq+voUeCiQAY iYqqmAEIvb0PwBS+vbJGSgPIyBHLFiMhycVFSgnU1BISHCfV1NFJAQfg4B0m4eXd Q0oIyQMZ68kI5+ip86Wj9oBBADs= ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_title_1.gif Content-Transfer-Encoding: Base64 R0lGODlhGQATAMQaAL6+vv////z8/Pn5+fv7+/39/e3t7fHx8f7+/vb29u/v7/Pz 856enpaWltnZ2fr6+oGBgcTExHV1da+vr7+/v5GRkaampqGhobi4uLCwsP///wAA AAAAAAAAAAAAAAAAACH5BAEAABoALAAAAAAZABMAQAWVoCaOZGmaQPAwLPusLfME wAk4Qa7vu1OjgYJwSKEMhzRb4MBsVirNZhKF41lzPqVgy51MuNxpKWUomyUSs1lM SiXe8EwGDmef7vgxYM/v++8pCIKDERGDg3YiKWBbGBiMAokaKQSVlhYWlpaSKQMN n58DnqANA5wBCqmqEBCqqqcLsbIXF7KypwSiuru6BJKTfsF9JiEAOw== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://sns.ragnarokonline.jp/img_skin.php?filename=skin_after_header&image_filename=skin_skin_after_header_1250252404.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAUAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUG BgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4O Dg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AA EQgAYALQAwERAAIRAQMRAf/EAMcAAQABBAMBAAAAAAAAAAAAAAAHAwQFBgECCAkB AQADAQEBAQEAAAAAAAAAAAABAgMEBQYHCBAAAAUEAAEHCgIIAwMHDQAAAQIDBAUA ERIGByExYRMUFZVBUSLSlNRVFlYIMpJx0UJSI1NUF4GR1bGTJGJD00R1JlehwXKC M2ODszS0JaVmEQACAQIFAQQFCgQFAwUAAAAAARECAyFREgQUMUFhEwVxgZGhIvCx wdEyUtJTFRbhkqIzQmJysgbxgiNzJDRUNf/aAAwDAQACEQMRAD8A+wFhr6eT40rp M3S9gQbKrCNxAEyGNzc/MFVquU09WkXptVVdE36juWPfGOJCslzHALiQEzCIB+i1 R4tCxle0lWa240v2FudJRMwkUIYhg5ymCw/5DVlUn0KOlrBnWw1MkCw0kCw0kCw0 kCw0kFcGboyIuStlTNy864EMJAtyfitaq+JTMSpLq1U6dUOM4wKFhq0lBYaSBYaS BYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaS BYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaS BYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaS BYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaS BYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSBYaSCpaqloNP4nQX Evb0wDhlxhPobg6CSXyo4apETVOQCkArZ+BTHSE483IYei1c9h2rD/8ANa1qftdv rXQ923uFdpSoq0uOn1Hjvcdz+6TS268bt+37RrhUDFvLiwbrtC+QolkG6WJijb9o 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 ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://sns.ragnarokonline.jp/skin/005_openpne_blue/img/skin_navi_h.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAUAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUG BgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4O Dg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AA EQgAHQLQAwERAAIRAQMRAf/EAKcAAQACAwEBAQEAAAAAAAAAAAAFBgMEBwIIAQkB AQADAQEBAAAAAAAAAAAAAAABAgMEBQYQAAEEAAMECAUEAgIDAQAAAAECAwQFABEG IRITBzGS01SUFdVXQaEiUhRRMiMWYYFCcnGRYggRAAAEAQYMBAQFBQEBAAAAAAAB AgMRkRKiE2MEITFBUXHSU9MUJFQlYbEiBfCBodHBQnKSsuEyYhUGUuL/2gAMAwEA AhEDEQA/AP6a6015r3V3Muz0LpC6GlKXTKG1Xl2GUPOqU4lKwlCXAU7QoADIfE55 DH0VyuDCLsT7xGo1GZJTGGLBhhhHwnu/vV8c9wO5XVRNkgiNazIlH6iIyIiPBiPz zYbQiisQlIc5o6qUvL6lJVVpBP8AgGvOX/vGJpa2KZV646ydvGW9OSNbsevI53uf qzr1fp2Imt7FMq9cK1/qXJGt0Hkc73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/Vn Xq/TsJrexTKvXCtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt0Hkc73P1Z16v 07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdB5HO9z9Wder9Ow mt7FMq9cK1/qXJGt0MjWnrB51plHM/Vm+6tKE5KrFbVHIbE1pJ/0MDJoijUplXri yV3hRkRXlzD4NboY/I53ufqzr1fp2E1vYplXrita/wBS5I1ug8jne5+rOvV+nYTW 9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW 9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW 9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW 9imVeuFa/wBS5I1ug8jne5+rOvV+nYTW9imVeuFa/wBS5I1uhka09YPOtMo5n6s3 3VpQnJVYrao5DYmtJP8AoYGTRFGpTKvXFkrvCjIivLmHwa3Qx+Rzvc/VnXq/TsJr exTKvXFa1/qXJGt0Hkc73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJrex TKvXCtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt0Hkc73P1Z16v07Ca3sUyr 1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK 1/qXJGt0Hkc73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6 lyRrdDI1p6wedaZRzP1ZvurShOSqxW1RyGxNaSf9DAyaIo1KZV64sld4UZEV5cw+ DW6GPyOd7n6s69X6dhNb2KZV64rWv9S5I1ug8jne5+rOvV+nYTW9imVeuFa/1Lkj W6DyOd7n6s69X6dhNb2KZV64Vr/UuSNboPI53ufqzr1fp2E1vYplXrhWv9S5I1ug 8jne5+rOvV+nYTW9imVeuFa/1LkjW6DyOd7n6s69X6dhNb2KZV64Vr/UuSNboPI5 3ufqzr1fp2E1vYplXrhWv9S5I1ug8jne5+rOvV+nYTW9imVeuFa/1LkjW6DyOd7n 6s69X6dhNb2KZV64Vr/UuSNboZGtPWDzrTKOZ+rN91aUJyVWK2qOQ2JrST/oYGTR FGpTKvXFkrvCjIivLmHwa3Qx+Rzvc/VnXq/TsJrexTKvXFa1/qXJGt0Hkc73P1Z1 6v07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdB5HO9z9Wder9 Owmt7FMq9cK1/qXJGt0Hkc73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJ rexTKvXCtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt0Hkc73P1Z16v07Ca3s Uyr1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdDI1p6wedaZRzP1ZvurSh OSqxW1RyGxNaSf8AQwMmiKNSmVeuLJXeFGRFeXMPg1uhj8jne5+rOvV+nYTW9imV euK1r/UuSNboPI53ufqzr1fp2E1vYplXrhWv9S5I1ug8jne5+rOvV+nYTW9imVeu Fa/1LkjW6DyOd7n6s69X6dhNb2KZV64Vr/UuSNboPI53ufqzr1fp2E1vYplXrhWv 9S5I1ug8jne5+rOvV+nYTW9imVeuFa/1LkjW6DyOd7n6s69X6dhNb2KZV64Vr/Uu SNboPI53ufqzr1fp2E1vYplXrhWv9S5I1ug8jne5+rOvV+nYTW9imVeuFa/1LkjW 6GRrT1g860yjmfqzfdWlCclVitqjkNia0k/6GBk0RRqUyr1xZK7woyIry5h8Gt0M fkc73P1Z16v07Ca3sUyr1xWtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt0Hk c73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdB5HO9 z9Wder9Owmt7FMq9cK1/qXJGt0Hkc73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/V nXq/TsJrexTKvXCtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt0Hkc73P1Z16 v07Ca3sUyr1wrX+pcka3QyNaesHnWmUcz9Wb7q0oTkqsVtUchsTWkn/QwMmiKNSm VeuLJXeFGRFeXMPg1uhj8jne5+rOvV+nYTW9imVeuK1r/UuSNboPI53ufqzr1fp2 E1vYplXrhWv9S5I1ug8jne5+rOvV+nYTW9imVeuFa/1LkjW6DyOd7n6s69X6dhNb 2KZV64Vr/UuSNboPI53ufqzr1fp2E1vYplXrhWv9S5I1ug8jne5+rOvV+nYTW9im VeuFa/1LkjW6DyOd7n6s69X6dhNb2KZV64Vr/UuSNboPI53ufqzr1fp2E1vYplXr hWv9S5I1ug8jne5+rOvV+nYTW9imVeuFa/1LkjW6GRrT1g860yjmfqzfdWlCclVi tqjkNia0k/6GBk0RRqUyr1xZK7woyIry5h8Gt0Mfkc73P1Z16v07Ca3sUyr1xWtf 6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt0Hkc73P1Z16v07Ca3sUyr1wrX+pc ka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdB5HO9z9Wder9Owmt7FMq9cK1/qXJGt 0Hkc73P1Z16v07Ca3sUyr1wrX+pcka3QeRzvc/VnXq/TsJrexTKvXCtf6lyRrdB5 HO9z9Wder9Owmt7FMq9cK1/qXJGt0PK6KxKVBvmjqpK8vpUpVWoA/wCQK8Z/+8SS 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 4R9N/wA7/r56qidWQ/PCdDwhg0wwj//Z ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://sns.ragnarokonline.jp/skin/005_openpne_blue/img/skin_navi_c.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAUAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUG BgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4O Dg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AA EQgAHQLQAwERAAIRAQMRAf/EAK8AAQACAgMBAQAAAAAAAAAAAAAFBgQHAgMIAQkB AQADAQADAAAAAAAAAAAAAAABAgMEBQYHEAABBAAEAwcDAwMDAgcBAAADAQIEBQAR EgYT05QhIhRUFlYHMVFhQXEVMkIjkaGSgTOxYiRV1ZYXCBEAAAMDBQ4EBgEDBAMA AAAAAAECEQMTIZGhEgQxQWFiktJTo9MkVGQFJlFxsRXwgcHRIjJSchQH8UKCs+Gy Bv/aAAwDAQACEQMRAD8A/Yq0t77cu5ZtVX2LqmsrHaZBxoiucv6/+OSJj5v1zr/U H3VFdPsSidJdkRvHhpJR/kRGRJJTSuGV6628UvnLJY3KbOT56VY1HITWXPETCbeZ kmrctyq/qqHGif6cJcdpPLUyW2PclxsRlVd6JM684ffTw/ct11AuViYlp4x7kuNi Iqo0SZ15wenh+5brqBcrCJaeMe5LjYhVRokzrzg9PD9y3XUC5WES08Y9yXGxCqjR JnXnB6eH7luuoFysIlp4x7kuNiFVGiTOvOD08P3LddQLlYRLTxj3JcbEKqNEmdec Hp4fuW66gXKwiWnjHuS42IVUaJM684PTw/ct11AuVhEtPGPclxsQqo0SZ15wenh+ 5brqBcrCJaeMe5LjYhVRokzrzg9PD9y3XUC5WES08Y9yXGxCqjRJnXnB6eH7luuo FysIlp4x7kuNiFVGiTOvOD08P3LddQLlYRLTxj3JcbEKqNEmdecHp4fuW66gXKwi WnjHuS42IVUaJM684cmbcY9zWJuW6zcqIn+ca/X8IFVxZCrUoyIrY9lxXOxAydkT YSZ1Zw4+nh+5brqBcrFYlp4x7kuNiFVGiTOvOD08P3LddQLlYRLTxj3JcbEKqNEm decHp4fuW66gXKwiWnjHuS42IVUaJM684PTw/ct11AuVhEtPGPclxsQqo0SZ15we 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 L9Wr+DGsayW42QeOt8dhV2VcFwf/2Q== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_information.gif Content-Transfer-Encoding: Base64 R0lGODlhWwAUAOYAAL6+vv////7+/lpaWvr6+vj4+PX19f39/fz8/Pv7+/Pz8+/v 7+7u7vn5+fHx8cfHx8/Pz4uLi2RkZNvb29DQ0NTU1M7OzoWFhWVlZbOzs6WlpcnJ yYKCgvDw8KCgoHp6eo+Pj+fn53h4eHl5eW9vb25uboSEhKSkpOTk5Lm5ucPDw7a2 trCwsIyMjNPT0+bm5pmZmd3d3cTExJqamq6urpiYmNra2r+/v9nZ2cDAwNjY2Lu7 u+Pj47q6uu3t7b29vampqZWVlZaWlsrKys3NzaGhoeXl5cXFxaurqwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABbABQAQAf/gACCg4SFhoeIiYqLjI0A AQSREREWkZYQAwSYHxqamZiWBCAXoRekAxCRAzYEAwM9kR8YIJELAxoYoaiRoKOl pyS0rakEAYIBBcnKy8zNzs/Q0dLT0MaPB9jZ2tvc3d7f4OHi39YBC+eTNefrDwML 7eceIu7w6xwc6wscLbYPCxkl3klYIG+AkR8DHwxcMGHAhHMD/L1zdy/fvn4LgJSI eK6cgI8gQ4ocSbKkyZMoU5osl6ClhZYwWzZM0PCIzAE0XbmiQPOCqw88E+gkEZTE BZgvbsHcMYCnBp2uLszs+TPoABYwHbYsp2zSpAnKLAwoILaACRBlxeosMEDFMhVj /6HqKKBjAI8BPmiYoPEhGYgTZgEnG2AhWdm2b+NagNGXcLJyCiLDiEw5coUBCi5T XoFZc+UKI1yNqBB5AGkFEnKsGBFZworMmFNTLsJagWnLmDOHHjC69OkhtxWUC0C8 uPHjyJMrX868uXPmx55Ln069+vNjKrNr3849ZTkE4MOLH0++vPnz6NOrP8+yJaWY LSnglI+hQwL593EixaChQ4enEwjFEwv6YTCAfQkQOANMPi2YVVD4vcCffwAKdWBL TW11TAMcekUEhxxi0gAmmKAgooggYpACiA2kgEEDqDBwAgkcDnCCCQ2gYCOODchA AgMD4AAiKiEO0ICKLLoIo7oMQcIIAYflMCClVzVIKWU7DGBpwwAZDJCll1ZKkIGV DGQgAZAPoCBCEF8yUEIGImQAp5RQlWBlRFd6KSaZZqKJgph4MlCOA4RGAAOhiDqw wQCKMupACBIwumiiLkjgQQgheDBADA4MsIEDMQwQwg0SOODCABw4QKoDQrSAqAhI EOopoZNWemmmm3b6qQMb7VqOAcAGK+ywxBZr7LHIJqvsseWE4uyz0EYr7bTUVmtt JNY4ou223HarSCAAOw== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/articleList_marker.gif Content-Transfer-Encoding: Base64 R0lGODlhDAAGAPcAAAAAAAAAgACAAACAgIAAAIAAgICAAMDAwMDcwPDKpgQEBAgI CAwMDBERERYWFhwcHCIiIikpKVVVVU1NTUJCQjk5OYB8/1BQ/5MA1v/szMbW79bn 55CprQAAMwAAZgAAmQAAzAAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBm zABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/ZgD/mQD/ zDMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNm mTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/MzP/ ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2Zm AGZmM2ZmZmZmmWZmzGaZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMmWbMzGbM/2b/ AGb/M2b/mWb/zMwA//8AzJmZAJkzmZkAmZkAzJkAAJkzM5kAZpkzzJkA/5lmAJlm M5kzZplmmZlmzJkz/5mZM5mZZpmZmZmZzJmZ/5nMAJnMM2bMZpnMmZnMzJnM/5n/ AJn/M5nMZpn/mZn/zJn//8wAAJkAM8wAZswAmcwAzJkzAMwzM8wzZswzmcwzzMwz /8xmAMxmM5lmZsxmmcxmzJlm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszM mczMzMzM/8z/AMz/M5n/Zsz/mcz/zMz//8wAM/8AZv8AmcwzAP8zM/8zZv8zmf8z zP8z//9mAP9mM8xmZv9mmf9mzMxm//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//M Zv/Mmf/MzP/M////M8z/Zv//mf//zGZm/2b/Zmb///9mZv9m////ZiEApV9fX3d3 d4aGhpaWlsvLy7KystfX193d3ePj4+rq6vHx8fj4+PD7/6SgoICAgAAA/wD/AAD/ //8AAP8A////AP///yH5BAEAAP8ALAAAAAAMAAYAAAgaAP8JHEiwoEGCAAAITLhQ 4T+GDx1CPEiRYkAAOw== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_3.gif Content-Transfer-Encoding: Base64 R0lGODlhBgAGAIABAACpGf///yH5BAEAAAEALAAAAAAGAAYAQAIJjG8AqNcY3gsF ADs= ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_1.gif Content-Transfer-Encoding: Base64 R0lGODlhBgAGAIABAA5vzf///yH5BAEAAAEALAAAAAAGAAYAQAIJjG8AqNcY3gsF ADs= ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline Content-Type: image/gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_2.gif Content-Transfer-Encoding: Base64 R0lGODlhBgAGAIABANIma////yH5BAEAAAEALAAAAAAGAAYAQAIJjG8AqNcY3gsF ADs= ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=xhtml_style.css Content-Type: text/css; charset=UTF-8; name=xhtml_style.css Content-Location: http://sns.ragnarokonline.jp/xhtml_style.php?hash=c0b050d8bcbfae1b6b19bc22bb602c56 Content-Transfer-Encoding: 8bit @charset "UTF-8"; /*============================================================================== * デフォルトスタイルシートの上書き *----------------------------------------------------------------------------*/ body, div, p, pre, blockquote, th, td, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, iframe, object, embed { margin: 0; padding: 0; border: none; text-align: left; } ul, ol { list-style-position: outside; list-style-type: none; } table { border-collapse: separate; border-spacing: 0; empty-cells: show; margin: 0; font-size: 1em; } * { word-break: break-all; } *:first-child+html table { border-collapse: collapse; } * html table { border-collapse: collapse; } th, td { vertical-align: middle; } address, cite, caption, th, del, ins, abbr, acronym, dfn, em, strong, code, kbd, samp, var { border: none; font-style: normal; font-variant: normal; font-weight: normal; text-align: left; text-decoration: none; } img { border: none; vertical-align: baseline; } a img { vertical-align: text-bottom; } * html a img { vertical-align: baseline; } br { letter-spacing: 0; } h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; } q:before, q:after { content: ""; } form, fieldset, input, textarea { margin: 0; } form, fieldset { padding: 0; } fieldset { border: none; } form p { margin: 0; padding: 0; } /*============================================================================== * OpenPNE全共通指定 *----------------------------------------------------------------------------*/ body { font: normal normal normal 10pt/1.2 "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "MS Pゴシック", "MS PGothic", Osaka, sans-serif; } input, textarea, select { color: #333333; font-size: inherit; font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "MS Pゴシック", "MS PGothic", Osaka, sans-serif; } a:link { color: #026cd1; } a:visited { color: #004a95; } a:hover, a:active { color: #76afe6; } .input_text, .input_password, textarea { background-color: #f8f8f8; } .input_text, .input_password, textarea, select { border: 1px solid #888888; } .input_image { border: none; } p { overflow: hidden; } strong { font-weight: bold; } /*---------------------------------------------- * テーブル *--------------------------------------------*/ div.parts table { table-layout: fixed; width: 100%; } div.parts th, div.parts td { overflow: hidden; border-width: 1px 0 0 1px; border-style: solid; border-color: #CCCCCC; } div.parts tr th:first-child, div.parts tr td:first-child, div.parts tr th.first-child, div.parts tr td.first-child { border-left-width: 0; } /*---------------------------------------------- * マーカー付きリンク、ボタンリンク *--------------------------------------------*/ ul.moreInfo li { padding: 2px 0 2px 20px; background: url(./skin/default/img/icon_arrow_1.gif) no-repeat 0 0.4em; } ul.moreInfo.button li { padding: 0; background: none; } ul.moreInfo.button li form { display: inline; } ul.moreInfo.button li form .input_submit { margin: 0 5px; } /*---------------------------------------------- * サブミットボタン *--------------------------------------------*/ .input_submit { border: 1px solid #888888; background: #dadce6 url(./skin/default/img/bg_button.gif) repeat-x scroll 50% 0; letter-spacing: 0; } .input_file { background: none; } /*---------------------------------------------- * ラジオボタン、セレクトボタン *--------------------------------------------*/ .input_checkbox, .input_radio { width: 16px; } ul.check { line-height: 1.4; } ul.check .input_radio, ul.check .input_checkbox { margin: 0 4px; } /*---------------------------------------------- * 画像置換指定 *--------------------------------------------*/ #globalNav a, #globalNavBefore a, .localNav a { display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: none; text-indent: -9999px; text-decoration: none; } #globalNav a:focus, #globalNavBefore a:focus, .localNav a:focus { overflow: hidden; } /*---------------------------------------------- * clearfix, overflow: hidden *--------------------------------------------*/ div#LayoutA, div#LayoutB, div#LayoutC { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } #Left, #Center, #Top { overflow: hidden; } /*---------------------------------------------- * ベースレイアウト *--------------------------------------------*/ #Container { position: relative; width: 720px; } #Header { position: relative; } #topBanner { position: absolute; top: 5px; left: 247px; width: 468px; height: 60px; } #Top { padding-left: 5px; } #Top .infoBox, #Top .descriptionBox { margin-right: 20px; margin-left: 20px; } #LayoutA #Left { float: left; width: 270px; padding: 0 5px; } #LayoutA #Center { float: right; width: 440px; } #LayoutB #Left { float: left; width: 180px; } #LayoutB #Center { float: right; width: 540px; } #LayoutC #Center { width: 650px; margin: 0 auto; } #Footer { width: 720px; height: 21px; background: url(./skin/default/img/skin_footer.jpg) 0 0 no-repeat; } #Footer p { padding-right: 12px; line-height: 21px; text-align: right; } #sideBanner { position: absolute; top: 0px; left: 720px; width: 230px; } *:first-child+html #pc_page_h_diary_add #Footer, *:first-child+html #pc_page_h_diary_edit #Footer { margin-top: 10px; } * html #pc_page_h_diary_add #Footer, * html #pc_page_h_diary_edit #Footer { margin-top: 10px; } /*---------------------------------------------- * パーツ枠 *--------------------------------------------*/ div.dparts, div.dparts div.parts, div.ditem, #LayoutA #Left div.parts { border: 1px solid #CCCCCC; } div.ditem div.item { border-width: 0 1px 1px; border-style: solid; border-color: #CCCCCC; } div.dparts { margin: 0 auto 10px; padding: 7px; } div.dparts div.parts { margin: 0; } div.parts { margin: 0 auto 10px; } div.ditem { padding: 5px 6px; } /*---------------------------------------------- * パーツ見出し *--------------------------------------------*/ .partsHeading { overflow: hidden; padding: 2px 0 2px 36px; background: #36B3D1 url(./skin/default/img/content_header_1.gif) no-repeat 0 0; text-align: left; font-size: 100%; } #LayoutA #Left .partsHeading { padding-left: 24px; background-image: url(./skin/default/img/icon_title_1.gif); } .partsHeading h3 { display: inline; font-weight: bold; } .partsHeading p { display: inline; margin-left: 0.5em; } /*---------------------------------------------- * パーツ内上下の部分(1件~20件を表示など) *--------------------------------------------*/ div.block, div.partsInfo, div.pagerAbsolute, div.pagerRelative, div.pagerRelativeMulti, div.operation { border-top: 1px solid #CCCCCC; } div.partsInfo { padding: 10px 40px; } div.pagerAbsolute { padding: 4px; text-align: center; } div.pagerAbsolute p { display: inline; } div.pagerRelative { padding: 4px; text-align: right; } div.pagerRelativeMulti { padding: 4px; } div.pagerRelative p, div.pagerRelativeMulti div.pager p { display: inline; margin-left: 10px; } div.pagerRelativeMulti { zoom: 1; position: relative; } div.pagerRelativeMulti div.pager { position: absolute; top: 1em; right: 4px; } div.operation { padding: 4px; } div.operation ul.moreInfo { text-align: center; } div.operation ul.moreInfo li { display: inline; background-position: 0 50%; } /*---------------------------------------------- * カレンダー *--------------------------------------------*/ .sideNav .calendar td, .sideNav .calendar td * { word-break: normal; letter-spacing: -1px; } #Body .calendar .holiday, .calendar .sun { color: #d92c49; } .calendar .sat { color: #2c65d9; } /*============================================================================== * h系、f系、c系ナビメニュー(localNav) *----------------------------------------------------------------------------*/ #globalNav, #globalNavBefore { zoom: 1; position: relative; width: 720px; } #globalNav { height: 96px; background: url(./img_skin.php?filename=skin_after_header&image_filename=skin_skin_after_header_1250252404.jpg) 0 0 no-repeat; } #globalNavBefore { height: 125px; margin-bottom: 10px; background: url(./skin/005_openpne_blue/img/skin_before_header.jpg) 0 0 no-repeat; } .localNav { zoom: 1; position: relative; width: 720px; height: 29px; } #hLocalNav { background: url(./skin/005_openpne_blue/img/skin_navi_h.jpg) 0 0 no-repeat; } #fLocalNav { background: url(./skin/005_openpne_blue/img/skin_navi_f.jpg) 0 0 no-repeat; } #cLocalNav { background: url(./skin/005_openpne_blue/img/skin_navi_c.jpg) 0 0 no-repeat; } #globalNav li a:hover, #globalNav li a:active { background-image: url(./img_skin.php?filename=skin_after_header_2&image_filename=skin_skin_after_header_2_1250252410.jpg); } #hLocalNav li a:hover, #hLocalNav li a:active { background-image: url(./skin/005_openpne_blue/img/skin_navi_h_2.jpg); } #fLocalNav li a:hover, #fLocalNav li a:active { background-image: url(./skin/005_openpne_blue/img/skin_navi_f_2.jpg); } #cLocalNav li a:hover, #cLocalNav li a:active { background-image: url(./skin/005_openpne_blue/img/skin_navi_c_2.jpg); } #globalNav h1, #globalNavBefore h1 { position: absolute; top: 5px; left: 0; width: 240px; height: 60px; } #globalNav li, .localNav li { position: absolute; } li#globalNav_1, li#globalNav_2, li#globalNav_3 { top: 70px; height: 18px; } li#globalNav_4, li#globalNav_5, li#globalNav_6, li#globalNav_7, li#globalNav_8, li#globalNav_9 { top: 68px; height: 20px; } li#globalNav_1 { left: 2px; width: 88px; } li#globalNav_2 { left: 90px; width: 90px; } li#globalNav_3 { left: 180px; width: 88px; } li#globalNav_4 { left: 290px; width: 70px; } li#globalNav_5 { left: 360px; width: 72px; } li#globalNav_6 { left: 432px; width: 72px; } li#globalNav_7 { left: 504px; width: 72px; } li#globalNav_8 { left: 576px; width: 72px; } li#globalNav_9 { left: 648px; width: 70px; } li#globalNav_1 a:hover, li#globalNav_1 a:active { background-position: -2px -70px; } li#globalNav_2 a:hover, li#globalNav_2 a:active { background-position: -90px -70px; } li#globalNav_3 a:hover, li#globalNav_3 a:active { background-position: -180px -70px; } li#globalNav_4 a:hover, li#globalNav_4 a:active { background-position: -290px -68px; } li#globalNav_5 a:hover, li#globalNav_5 a:active { background-position: -360px -68px; } li#globalNav_6 a:hover, li#globalNav_6 a:active { background-position: -432px -68px; } li#globalNav_7 a:hover, li#globalNav_7 a:active { background-position: -504px -68px; } li#globalNav_8 a:hover, li#globalNav_8 a:active { background-position: -576px -68px; } li#globalNav_9 a:hover, li#globalNav_9 a:active { background-position: -648px -68px; } #hLocalNav li { top: 0; width: 80px; height: 29px; } li#hLocalNav_1 { left: 0px; } li#hLocalNav_2 { left: 80px; } li#hLocalNav_3 { left: 160px; } li#hLocalNav_4 { left: 240px; } li#hLocalNav_5 { left: 320px; } li#hLocalNav_6 { left: 400px; } li#hLocalNav_7 { left: 480px; } li#hLocalNav_8 { left: 560px; } li#hLocalNav_9 { left: 640px; } li#hLocalNav_1 a:hover, li#hLocalNav_1 a:active { background-position: -0px -29px; } li#hLocalNav_2 a:hover, li#hLocalNav_2 a:active { background-position: -80px -29px; } li#hLocalNav_3 a:hover, li#hLocalNav_3 a:active { background-position: -160px -29px; } li#hLocalNav_4 a:hover, li#hLocalNav_4 a:active { background-position: -240px -29px; } li#hLocalNav_5 a:hover, li#hLocalNav_5 a:active { background-position: -320px -29px; } li#hLocalNav_6 a:hover, li#hLocalNav_6 a:active { background-position: -400px -29px; } li#hLocalNav_7 a:hover, li#hLocalNav_7 a:active { background-position: -480px -29px; } li#hLocalNav_8 a:hover, li#hLocalNav_8 a:active { background-position: -560px -29px; } li#hLocalNav_9 a:hover, li#hLocalNav_9 a:active { background-position: -640px -29px; } #fLocalNav li { top: 0; width: 80px; height: 29px; } li#fLocalNav_1 { left: 0px; } li#fLocalNav_2 { left: 80px; } li#fLocalNav_3 { left: 160px; } li#fLocalNav_4 { left: 240px; } li#fLocalNav_5 { left: 320px; } li#fLocalNav_6 { left: 400px; } li#fLocalNav_7 { left: 480px; } li#fLocalNav_8 { left: 560px; } li#fLocalNav_9 { left: 640px; } li#fLocalNav_1 a:hover, li#fLocalNav_1 a:active { background-position: -0px -29px; } li#fLocalNav_2 a:hover, li#fLocalNav_2 a:active { background-position: -80px -29px; } li#fLocalNav_3 a:hover, li#fLocalNav_3 a:active { background-position: -160px -29px; } li#fLocalNav_4 a:hover, li#fLocalNav_4 a:active { background-position: -240px -29px; } li#fLocalNav_5 a:hover, li#fLocalNav_5 a:active { background-position: -320px -29px; } li#fLocalNav_6 a:hover, li#fLocalNav_6 a:active { background-position: -400px -29px; } li#fLocalNav_7 a:hover, li#fLocalNav_7 a:active { background-position: -480px -29px; } li#fLocalNav_8 a:hover, li#fLocalNav_8 a:active { background-position: -560px -29px; } li#fLocalNav_9 a:hover, li#fLocalNav_9 a:active { background-position: -640px -29px; } #cLocalNav li { top: 0; width: 120px; height: 29px; } li#cLocalNav_1 { left: 0px; } li#cLocalNav_2 { left: 120px; } li#cLocalNav_3 { left: 240px; } li#cLocalNav_4 { left: 360px; } li#cLocalNav_5 { left: 480px; } li#cLocalNav_6 { left: 600px; } li#cLocalNav_1 a:hover, li#cLocalNav_1 a:active { background-position: -0px -29px; } li#cLocalNav_2 a:hover, li#cLocalNav_2 a:active { background-position: -120px -29px; } li#cLocalNav_3 a:hover, li#cLocalNav_3 a:active { background-position: -240px -29px; } li#cLocalNav_4 a:hover, li#cLocalNav_4 a:active { background-position: -360px -29px; } li#cLocalNav_5 a:hover, li#cLocalNav_5 a:active { background-position: -480px -29px; } li#cLocalNav_6 a:hover, li#cLocalNav_6 a:active { background-position: -600px -29px; } /*============================================================================== * 1. simpleBox(シンプルボックス) *----------------------------------------------------------------------------*/ .simpleBox .block { padding: 10px 0; } .simpleBox .block p { text-align: center; } /*============================================================================== * 2. descriptionBox(説明ボックス) *----------------------------------------------------------------------------*/ .descriptionBox p { margin: 12px; } /*============================================================================== * 3. alertBox(アラートボックス) *----------------------------------------------------------------------------*/ .alertBox { width: 564px; } #Body .alertBox th { width: 148px; padding: 8px 0; border: none; text-align: center; } #Body .alertBox td { padding: 6px; border-width: 0 0 0 1px; color: #ff0000; } /*============================================================================== * 4. infoBox(案内ボックス) *----------------------------------------------------------------------------*/ .infoBox .parts { zoom: 1; overflow: hidden; position: relative; } .infoBox p { overflow: hidden; margin-right: 16em; padding: 5px; border-right: 1px solid #CCCCCC; background: #FFFFFF; } .infoBox ul.moreInfo { position: absolute; bottom: 3px; right: 0; width: 15.5em; } /*============================================================================== * 5. infoButtonBox(ボタン付き案内ボックス) *----------------------------------------------------------------------------*/ .infoButtonBox .block { padding: 30px 10px; } .infoButtonBox p, .infoButtonBox ul { margin-top: 6px; text-align: center; } .infoButtonBox ul.check li { text-align: center; } .infoButtonBox ul.check li .input_submit { margin-top: 6px; } .infoButtonBox ul.moreInfo { margin-left: 230px; } .infoButtonBox ul.moreInfo.button { margin-left: 0; } .infoButtonBox ul.moreInfo.button li { text-align: center; } /*============================================================================== * 6. yesNoButtonBox(はい、いいえボタン付きボックス) *----------------------------------------------------------------------------*/ .yesNoButtonBox .block { padding: 10px 0; } .yesNoButtonBox .block p, .yesNoButtonBox ul.moreInfo.button { text-align: center; } .yesNoButtonBox ul.moreInfo.button { margin-top: 4px; } .yesNoButtonBox ul.moreInfo.button li { display: inline; } /*============================================================================== * 7. searchFormBox(検索フォームボックス) *----------------------------------------------------------------------------*/ .searchFormBox .partsHeading { border-bottom: 1px solid #CCCCCC; } .searchFormBox .parts { zoom: 1; } .searchFormBox .item { overflow: hidden; margin: 10px 40px; padding-top: 8px; border: 1px solid #CCCCCC; } .searchFormBox label, .searchFormBox span.label { margin: 0 4px 0 8px; padding: 1px 16px 0 0; background: url(./skin/default/img/icon_arrow_2.gif) no-repeat 100% 0; } .searchFormBox .input_submit { margin-right: 8px; } .searchFormBox p.desc { margin: 0 4px 16px 8px; } .searchFormBox p.form { margin: 0 4px 8px 0; } .searchFormBox p.note { margin: -4px 4px 8px 8px; } .searchFormBox ul.moreInfo { margin: 0 4px 8px 150px; } .searchFormBox div.block { padding: 8px 0; } .searchFormBox dl.category { zoom: 1; } .searchFormBox dl.category dt { float: left; width: 6em; } .searchFormBox dl.category dd { zoom: 1; margin-left: 6em; } .searchFormBox dl.category dd p { margin: 0 16px; } .searchFormBox dl.categories dt { margin-bottom: 4px; } .searchFormBox table.category th { width: 74px; padding: 3px 7px 3px 5px; border: none; background: url(./skin/default/img/colon.gif) no-repeat 100% 4px; font-weight: bold; vertical-align: top; } .searchFormBox table.category td { padding: 3px 8px; border: none; vertical-align: top; } /*============================================================================== * 8. diaryDetailBox(日記詳細ボックス) *----------------------------------------------------------------------------*/ .diaryDetailBox .partsHeading { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } .diaryDetailBox h3 { float: left; width: 66%; } .diaryDetailBox .partsHeading p.public { float: right; width: 33%; margin: 0; text-align: right; } .diaryDetailBox dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .diaryDetailBox dt { float: left; width: 70px; padding-top: 5px; text-align: center; } .diaryDetailBox dd { zoom: 1; min-height: 4.2em; margin-left: 70px; border-left: 1px solid #CCCCCC; } * html .diaryDetailBox dd { height: 4.2em; } .diaryDetailBox dd div { border-top: 1px solid #CCCCCC; } .diaryDetailBox dd div p { padding: 4px 3px; } .diaryDetailBox dd div.title { border-top: none; } .diaryDetailBox dd div.body { padding: 4px 3px; } .diaryDetailBox dd ul.photo { padding: 4px 5px; } .diaryDetailBox dd ul.photo li { display: inline; margin-left: 6px; } .diaryDetailBox div.category ul { padding: 4px; text-align: right; } .diaryDetailBox div.category ul li { display: inline; font-size: 80%; } /*============================================================================== * 9. topicDetailBox(トピック詳細ボックス) *----------------------------------------------------------------------------*/ .topicDetailBox dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .topicDetailBox dt { float: left; width: 100px; padding: 5px; text-align: center; } .topicDetailBox dd { zoom: 1; margin-left: 110px; border-left: 1px solid #CCCCCC; } .topicDetailBox dd div { border-top: 1px solid #CCCCCC; } .topicDetailBox dd div p { padding: 5px; } .topicDetailBox dd div.title { border-top: none; } .topicDetailBox dd ul.photo { padding: 5px; } .topicDetailBox dd ul.photo li { display: inline; margin-left: 6px; } .topicDetailBox dd div.attachFile { padding: 16px 5px; } .topicDetailBox div.operation { padding: 10px 0; } /*============================================================================== * 10. eventDetailBox(イベント詳細ボックス) *----------------------------------------------------------------------------*/ .eventDetailBox dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .eventDetailBox dt { float: left; width: 100px; padding: 5px; text-align: center; } .eventDetailBox dd { zoom: 1; margin-left: 110px; border-left: 1px solid #CCCCCC; } .eventDetailBox dd ul.photo { padding: 5px; border-bottom: 1px solid #CCCCCC; } .eventDetailBox dd ul.photo li { display: inline; margin-left: 6px; } .eventDetailBox dd table th { width: 112px; text-align: center; border-left: none; } .eventDetailBox dd table th, .eventDetailBox dd table td { padding: 5px; } .eventDetailBox dd table tr:first-child th, .eventDetailBox dd table tr:first-child td, .eventDetailBox dd table tr.first-child th, .eventDetailBox dd table tr.first-child td { border-top: none; } .eventDetailBox dd table ul.moreInfo { margin-top: -1.2em; text-align: right; } .eventDetailBox dd table ul.moreInfo li { display: inline; background-position: 0 50%; } /*============================================================================== * 11. homePhotoBox(ホーム写真ボックス) *----------------------------------------------------------------------------*/ .homePhotoBox * { text-align: center; } .homePhotoBox p.friendLink { margin-bottom: 3px; } .homePhotoBox .parts { padding: 7px; } .homePhotoBox ul.moreInfo { margin: 2px 0 -5px; } .homePhotoBox ul.moreInfo li { padding: 1px 0; background: none; } .homePhotoBox ul.moreInfo li img { vertical-align: bottom; } .homePhotoBox p.rank { margin-top: 6px; } .homePhotoBox p.point { margin-top: 2px; } .homePhotoBox p.text { margin-top: 4px; } .homePhotoBox p.loginTime { margin-top: 0px; } /*============================================================================== * 12. homeInfoBox(ホームインフォメーションボックス) *----------------------------------------------------------------------------*/ #Body .homeInfoBox { padding-left: 102px; border: 1px solid #CCCCCC; background: #FFFFFF url(./skin/default/img/icon_information.gif) no-repeat 5px 50%; } .homeInfoBox div.body { min-height: 1.2em; padding: 5px; border-left: 1px solid #CCCCCC; background: #FFFFFF; } .homeInfoBox .caution { color: #ff0000; } /*============================================================================== * 13. photoUploadFormBox(プロフィール写真アップロードフォームボックス) *----------------------------------------------------------------------------*/ .photoUploadFormBox table { border-top: 1px solid #CCCCCC; } #Body .photoUploadFormBox td { padding: 8px 0; border: none; text-align: center; } .photoUploadFormBox form { float: left; width: 230px; } .photoUploadFormBox form p { margin: 8px 0; text-align: center; } .photoUploadFormBox ul { zoom: 1; margin: 8px 0 8px 230px; } .photoUploadFormBox li { padding-left: 12px; background: url(./skin/default/img/marker.gif) no-repeat 3px 3px; } /*============================================================================== * 14. messageDetailBox(メッセージ詳細ボックス) *----------------------------------------------------------------------------*/ #Body .messageDetailBox th:first-child, #Body .messageDetailBox th.first-child { border-left-width: 1px; } .messageDetailBox th, .messageDetailBox td { padding: 5px; } .messageDetailBox td.photo { width: 120px; text-align: center; } .messageDetailBox th { width: 54px; padding-left: 0; padding-right: 16px; background: url(./skin/default/img/colon.gif) no-repeat 96% 50%; text-align: right; } #Body .messageDetailBox td { border-left: none; } .messageDetailBox ul.photo { margin: 10px; text-align: center; } .messageDetailBox p.text { margin: 10px 60px;; } .messageDetailBox ul.photo li { display: inline; margin-left: 6px; } .messageDetailBox div.operation { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } .messageDetailBox form.delete { float: left; width: 50%; text-align: left; } .messageDetailBox form.send { float: right; width: 50%; text-align: right; } .messageDetailBox form ul.moreInfo { display: inline; } .messageDetailBox div.attachFile { padding: 16px 5px; } /*============================================================================== * 15. albumDetailBox(アルバム詳細ボックス) *----------------------------------------------------------------------------*/ .albumDetailBox th, .albumDetailBox td { padding: 5px; } .albumDetailBox th { width: 75px; } .albumDetailBox td.photo { width: 190px; padding: 5px 0; text-align: center; } #Body .albumDetailBox th:first-child, #Body .albumDetailBox th.first-child, #Body .albumDetailBox td.operation { border-left-width: 1px; } .albumDetailBox td.operation { text-align: right; } /*============================================================================== * 16. albumImageBox(アルバム画像ボックス) *----------------------------------------------------------------------------*/ .albumImageBox p.photo { padding: 10px; border-top: 1px solid #CCCCCC; text-align: center; } .albumImageBox th, .albumImageBox td { padding: 5px; } #Body .albumImageBox th { width: 140px; border-left: none; } /*============================================================================== * 17. searchFormLine(検索フォームライン) *----------------------------------------------------------------------------*/ .searchFormLine ul { text-align: center; padding: 1px 0; } .searchFormLine ul li { display: inline; } .searchFormLine ul li * { vertical-align: middle; } .searchFormLine ul li label { margin-right: 2px; padding: 1px 13px 0 0; background: url(./skin/default/img/icon_arrow_2.gif) no-repeat 100% 0; } /*============================================================================== * 18. linkLine(リンクライン) *----------------------------------------------------------------------------*/ .linkLine ul.moreInfo { text-align: center; } .linkLine ul.moreInfo li { display: inline; background-position: 0 50%; } /*============================================================================== * 19. prevNextLinkLine(前次リンクライン) *----------------------------------------------------------------------------*/ .prevNextLinkLine { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } .prevNextLinkLine p.prev { float: left; width: 50%; text-align: left; } .prevNextLinkLine p.next { float: right; width: 50%; text-align: right; } .block.prevNextLinkLine { padding: 4px 10px; } /*============================================================================== * 20. buttonLine(ボタンライン) *----------------------------------------------------------------------------*/ .buttonLine form { text-align: center; } /*============================================================================== * 21. alertLine(アラートライン) *----------------------------------------------------------------------------*/ .alertLine p { text-align: center; color: #ff0000; } /*============================================================================== * 22. commentList(コメントリスト) *----------------------------------------------------------------------------*/ .commentList dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .commentList dt { float: left; width: 70px; padding-top: 5px; text-align: center; } .commentList dd { zoom: 1; min-height: 5.5em; margin-left: 70px; border-left: 1px solid #CCCCCC; } * html .commentList dd { height: 5.5em; } #LayoutC .commentList dt { width: 110px; } #LayoutC .commentList dd { margin-left: 110px; } .commentList dd div { border-top: 1px solid #CCCCCC; } .commentList dd div p { padding: 4px 3px; } .commentList dd div.title { padding: 4px 3px; border-top: none; } .commentList dd div.title p { padding: 0; } #pc_page_fh_diary_list .commentList dd div.title { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } #pc_page_fh_diary_list .commentList dd div.title p.heading { float: left; width: 66%; } #pc_page_fh_diary_list .commentList dd div.title p.public { float: right; width: 33%; text-align: right; } .commentList dd ul.photo { padding: 5px 5px 0; } .commentList dd ul.photo li { display: inline; margin-left: 6px; } .commentList dd div.footer p { text-align: right; } .commentList div.operation { padding: 8px 0; } .commentList dd div.attachFile { padding: 16px 5px; } /*============================================================================== * 23. searchResultList(検索結果リスト) *----------------------------------------------------------------------------*/ .searchResultList .partsInfo { background: #FFFFFF; } .searchResultList .ditem { margin: 8px 34px; } .searchResultList .item { zoom: 1; position: relative; } .searchResultList td.photo { width: 90px; padding: 0; border-left: none; text-align: center; } .searchResultList th, .searchResultList td { padding: 5px; } .searchResultList th { width: 75px; } #Body .searchResultList th:first-child, #Body .searchResultList th.first-child { border-left-width: 1px; } .searchResultList tr.operation th { padding-top: 0; padding-bottom: 0; } .searchResultList tr.operation td { padding: 0; } .searchResultList tr.operation span.text { float: left; display: block; width: 110px; padding: 5px; border-right: 1px solid #CCCCCC; } .searchResultList tr.operation span.moreInfo{ zoom: 1; display: block; margin-left: 121px; padding: 4px 0 3px; text-align: center; } .searchResultList div.operation { text-align: center; } .searchResultList tr.operation span.moreInfo img, .searchResultList div.operation form, .searchResultList div.operation fieldset { display: inline; vertical-align: top; } /*============================================================================== * 24. reviewList(レビューリスト) *----------------------------------------------------------------------------*/ .reviewList dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .reviewList dl dt { float:left; width: 170px; padding: 5px; text-align: center; } .reviewList dl dt span { display: block; margin: 3px 0; } .reviewList dl dd { zoom: 1; margin-left: 180px; border-left: 1px solid #CCCCCC; } .reviewList dl dd table { height: 216px; } .reviewList dl dd th, .reviewList dl dd td { padding: 5px; } .reviewList dl tr.title th, .reviewList dl dd tr.title td { border-top: none; } .reviewList dl dd th { width: 100px; border-left: none; text-align: center; } .reviewList dl dd tr.title td { font-weight: bold; } .reviewList dl dd td p.operation { text-align: right; } .reviewList dl dd tr.footer td { border-left: none; text-align: right; } .reviewList div.operation { padding: 10px 0; } /*============================================================================== * 25. recentList(最新書き込みリスト) *----------------------------------------------------------------------------*/ .recentList dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .recentList dt { float: left; width: 170px; padding: 5px; text-align: center; } .recentList dd { zoom: 1; margin-left: 180px; padding: 5px; border-left: 1px solid #CCCCCC; } * html #Body .recentList dd { height: 1.2em; } #LayoutB #Center .recentList dt { width: 110px; } #LayoutB #Center .recentList dd { margin-left: 120px; } /*============================================================================== * 26. friendIntroList(フレンド紹介文リスト) *----------------------------------------------------------------------------*/ .friendIntroList th, .friendIntroList td { padding: 14px; } #Body .friendIntroList th { width: 120px; border-left: none; text-align: center; } .friendIntroList p.text { margin-bottom: 1em; } .friendIntroList div.moreInfo ul.moreInfo { width: 10em; margin-left: auto; padding: 6px 2px; } /*============================================================================== * 27. manageList(管理リスト) *----------------------------------------------------------------------------*/ .manageList td { padding: 5px; } .manageList td.photo { width: 140px; border-left: none; text-align: center; } .manageList td.delete { width: 120px; } .manageList col.date { width: 160px; } * html .manageList col.date { width: 150px; } *:first-child+html .manageList col.date { width: 150px; } .manageList col.name { width: auto; } .manageList colgroup.operation col { width: 86px; } * html .manageList colgroup.operation col { width: 76px; } *:first-child+html .manageList colgroup.operation col { width: 76px; } /*============================================================================== * 28. searchCategoryList(検索項目リスト) *----------------------------------------------------------------------------*/ .searchCategoryList .partsInfo { padding: 5px; border-bottom: 1px solid #CCCCCC; background: #FFFFFF; text-align: center; } .searchCategoryList .item { margin: 10px 40px; border: 1px solid #CCCCCC; border-top: none; } .searchCategoryList span.label { margin: 0 4px 0 8px; padding: 1px 16px 0 0; background: url(./skin/default/img/icon_arrow_2.gif) no-repeat 100% 0; } .searchCategoryList dl { border-top: 1px solid #CCCCCC; } .searchCategoryList dl dt { margin: 8px 0 0; } .searchCategoryList dl dd { margin: 8px 10px 8px 70px; } .searchCategoryList dl dd ul { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; margin: 4px 0; } .searchCategoryList dl dd ul li { overflow: hidden; float: left; width: 19%; margin: 0 2px; } /*============================================================================== * 29. messageList(メッセージリスト) *----------------------------------------------------------------------------*/ .messageList .partsHeading p.date { font-weight: bold; } .messageList .pagerRelativeMulti { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } .messageList .pagerRelativeMulti .pager { position: static; float: right; width: 350px; margin-top: 1px; text-align: right; } .messageList p.icons { float: left; width: 160px; } .messageList p.icons img { padding-right: 16px; background: url(./skin/default/img/articleList_marker.gif) no-repeat 96% 6px; vertical-align: text-bottom; } .messageList tr { height: 20px; } .messageList tr.unread { background: #FFFFFF; } #Body .messageList th.delete { font-weight: normal; } #Body .messageList th { padding: 0 2px; border-width: 1px 0 0; font-weight: bold; } #Body .messageList td { padding: 0 2px; border-width: 1px 0 0; } #Body .messageList td .input_checkbox { margin-left: 4px; } .messageList td.status { text-align: center; } .messageList col.status { width: 35px; } .messageList col.delete { width: 35px; } .messageList col.target { width: 130px; } .messageList col.title { width: auto; } .messageList col.date { width: 80px; } .messageList table span { width: 100%; display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .messageList div.operation p { margin-top: 8px; margin-bottom: 5px; } .messageList div.operation ul.moreInfo { text-align: left; } /*============================================================================== * 30. ashiatoList(あしあとリスト) *----------------------------------------------------------------------------*/ .ashiatoList div.partsInfo { border-bottom: 1px solid #CCCCCC; } .ashiatoList div.item { margin: 8px 40px; padding: 8px 0; border: 1px solid #CCCCCC; } .ashiatoList div.item p, .ashiatoList div.item ul.list { padding-left: 160px; } .ashiatoList div.item p strong { margin: 0 2px; } .ashiatoList div.item ul.list { overflow: hidden; margin-top: 16px; } /*============================================================================== * 31. rankingList(ランキングリスト) *----------------------------------------------------------------------------*/ .rankingList .partsHeading p { margin: 0; } #Body .rankingList th:first-child, #Body .rankingList th.first-child { border-left-width: 1px; } .rankingList td.photo { width: 130px; padding: 5px 0; text-align: center; } .rankingList th { width: 75px; padding: 5px; } .rankingList td { padding: 5px; } .rankingList td.name { background: #FFFFFF; } .rankingList td.name a { font-weight: bold; } .rankingList .ditem { margin: 8px 15px; background: #FFFFFF; } .rankingList .item { background: #FFFFFF; } .rankingList .item td.photo { width: 90px; } /*============================================================================== * 32. bizSideTodoList(BIZ用Todoリスト) *----------------------------------------------------------------------------*/ #Body .bizSideTodoList { width: 220px; margin: 10px 5px; border: 1px solid #CCCCCC; } #Body .bizSideTodoList td { border-width: 1px 0 0; } .bizSideTodoList .block { padding: 5px; } .bizSideTodoList textarea { width: 98%; } .bizSideTodoList tr.someone { background: #FFFFFF; } .bizSideTodoList tr.checked { color: #999999; } .bizSideTodoList td.state { width: 38px; vertical-align: top; } .bizSideTodoList tr.priLow td.state p { padding-left: 4px; border-left: 0; } .bizSideTodoList tr.priMiddle td.state p { padding-left: 0; border-left: 4px solid #ff8080; } .bizSideTodoList tr.priHigh td.state p { padding-left: 0; border-left: 4px solid #ff0000; } .bizSideTodoList tr.checked td.state p { padding-left: 4px; border-left: 0; } .bizSideTodoList td.operation { width: 16px; vertical-align: top; } .bizSideTodoList td.operation a { display: block; width: 14px; margin-top: 2px; } /*============================================================================== * 33. bizSideScheduleList(BIZ用スケジュールリスト) *----------------------------------------------------------------------------*/ #Body .bizSideScheduleList { width: 220px; margin: 10px 5px; border: 1px solid #CCCCCC; } .bizSideScheduleList dl { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; border-top: 1px solid #CCCCCC; } .bizSideScheduleList dt { float: left; width: 60px; padding: 5px; text-align: center; } .bizSideScheduleList dd { zoom: 1; margin-left: 70px; padding: 5px; border-left: 1px solid #CCCCCC; } /*============================================================================== * 34. albumList(アルバムリスト) *----------------------------------------------------------------------------*/ .albumList th, .albumList td { padding: 5px; } .albumList th { width: 75px; } .albumList td.photo { width: 190px; padding: 5px 0; text-align: center; } .albumList td.photo p { text-align: center; padding: 5px; } #Body .albumList th:first-child, #Body .albumList th.first-child { border-left-width: 1px; } .albumList td.operation { text-align: center; } /*============================================================================== * 35. albumImageList(アルバム画像リスト) *----------------------------------------------------------------------------*/ .albumImageList td { padding: 5px; text-align: center; } .albumImageList td p { text-align: center; } /*============================================================================== * 36. homeNineTable(ホーム9面テーブル) *----------------------------------------------------------------------------*/ .homeNineTable tr.photo td { height: 80px; padding: 2px 0; text-align: center; } .homeNineTable tr.photo td p.crown { text-align: center; } .homeNineTable tr.text td { padding: 2px; text-align: center; } .homeNineTable div.moreInfo ul.moreInfo { width: 11em; margin-left: auto; padding: 6px 0; } /*============================================================================== * 37. photoTable(写真テーブル) *----------------------------------------------------------------------------*/ .photoTable { width: 561px; } .photoTable tr.photo td { height: 90px; padding: 8px 0; text-align: center; } .photoTable tr.photo td p.crown { text-align: center; } .photoTable tr.text td { padding: 5px 2px; text-align: center; } /*============================================================================== * 38. homeMainTable(ホームメインテーブル) *----------------------------------------------------------------------------*/ .homeMainTable .partsHeading { zoom: 1; position: relative; } .homeMainTable .partsHeading p.link { position: absolute; top: 2px; right: 8px; } .homeMainTable th { width: 83px; background-color: #FFFFFF; } .homeMainTable th, .homeMainTable td { padding: 5px; } .homeMainTable ul.articleList { line-height: 1.3; } .homeMainTable ul.articleList li { padding-left: 85px; text-indent: -72px; } .homeMainTable tr ul.articleList li { background: url(./skin/default/img/icon_3.gif) 3px 0.4em no-repeat scroll; } .homeMainTable tr.myFriendRecentDiary ul.articleList li, .homeMainTable tr.myFriendRecentBlog ul.articleList li, .homeMainTable tr.allRecentDiary ul.articleList li, .homeMainTable tr.bookmarkRecentDiary ul.articleList li, .homeMainTable tr.bookmarkRecentBlog ul.articleList li, .homeMainTable tr.myRecentDiary ul.articleList li, .homeMainTable tr.myRecentBlog ul.articleList li, .homeMainTable tr.friendRecentDiary ul.articleList li, .homeMainTable tr.friendRecentBlog ul.articleList li { background-image: url(./skin/default/img/icon_1.gif); } .homeMainTable tr.diaryCommentHistory ul.articleList li, .homeMainTable tr.recentCommunityTopicComment ul.articleList li, .homeMainTable tr.allRecentCommunityTopicComment ul.articleList li, .homeMainTable tr.communityTopic ul.articleList li, .homeMainTable tr.communityEvent ul.articleList li { background-image: url(./skin/default/img/icon_2.gif); } .homeMainTable ul.articleList li span.date { padding-right: 18px; background: url(./skin/default/img/articleList_marker.gif) 92% 0.3em no-repeat scroll; } .homeMainTable div.moreInfo ul.moreInfo { width: 10em; margin: 0 2px 0 auto; } .homeMainTable td.halfway ul.moreInfo { width: 12em; margin: 0 0 20px auto; } /*============================================================================== * 39. formTable(入力フォームテーブル) *----------------------------------------------------------------------------*/ .formTable .partsHeading { zoom: 1; position: relative; } .formTable strong { font-weight: normal; color: #ff0000; } .formTable p.caution { color: #ff0000; } .formTable .partsHeading p.link { position: absolute; top: 2px; right: 8px; } .formTable div.partsInfo { background-color: #FFFFFF; } .formTable th, .formTable td { padding: 5px; } #Body .formTable th { width: 140px; border-left: none; } #LayoutB #Center .formTable th { width: 80px; } .formTable table table td { padding: 0; border: none; } .formTable textarea { width: 98%; } .formTable input.input_text_long { width: 98%; } .formTable table table td.publicSelector { width: 150px; text-align: right; } .formTable table table td.publicSelector select { width: 150px; } .formTable div.checkList ul { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; } .formTable div.checkList li { overflow: hidden; overflow: -moz-scrollbars-none; float: left; width: 27%; padding-left: 18px; text-indent: -18px; line-height: 1.6; } .formTable div.operation { padding: 10px 0; } /*============================================================================== * 40. weeklyCalendarTable(週間カレンダーテーブル) *----------------------------------------------------------------------------*/ #Body .weeklyCalendarTable .parts { border-top: none; } .weeklyCalendarTable div.block { padding: 5px; } .weeklyCalendarTable .input_submit { margin-right: 8px; } .weeklyCalendarTable .calendar td { padding: 5px; vertical-align: top; } .weeklyCalendarTable .calendar .today { background: #FFFFFF; } .weeklyCalendarTable .calendar .today p.day { font-weight: bold; } .weeklyCalendarTable ul.moreInfo { margin: 0 2px 0 auto; width: 9em; } /*============================================================================== * 41. monthlyCalendarTable(月間カレンダーテーブル) *----------------------------------------------------------------------------*/ .monthlyCalendarTable div.block { zoom: 1; overflow: hidden; overflow: -moz-scrollbars-none; padding: 2px 5px; } .monthlyCalendarTable div.block p.moreInfo { float: left; width: 70%; text-align: left; } .monthlyCalendarTable div.block p.moreInfo a { margin-right: 4px; } .monthlyCalendarTable div.block p.pager { float: right; width: 30%; margin-top: 2px; text-align: right; } .monthlyCalendarTable .calendar th { padding: 2px; } .monthlyCalendarTable .calendar td { height: 65px; padding: 2px; vertical-align: top; } .monthlyCalendarTable .calendar td.today { background: #FFFFFF; font-weight: bold; } .monthlyCalendarTable .calendar td p { font-weight: normal; } .monthlyCalendarTable .partsInfo { padding: 5px; background: #FFFFFF; } .monthlyCalendarTable .partsInfo img { margin: 0 1px; } /*============================================================================== * 42. bizWeeklyCalendarTable(BIZ用週間カレンダーテーブル) *----------------------------------------------------------------------------*/ #Body .bizWeeklyCalendarTable .parts { border-top: none; } .bizWeeklyCalendarTable div.block { padding: 5px; } .bizWeeklyCalendarTable .calendar td { padding: 5px 0; vertical-align: top; } .bizWeeklyCalendarTable .calendar td p { padding: 0 5px; } .bizWeeklyCalendarTable .calendar td .time { padding: 0; } .bizWeeklyCalendarTable .calendar .today { background: #FFFFFF; } .bizWeeklyCalendarTable .calendar .today p.day { font-weight: bold; } .bizWeeklyCalendarTable .calendar th { width: 130px; padding: 5px 0; text-align: center; } .bizWeeklyCalendarTable .calendar th * { text-align: center; } .bizWeeklyCalendarTable .calendar th .input_text { width: 118px; } .bizWeeklyCalendarTable .calendar th .input_submit { width: 120px; } .bizWeeklyCalendarTable .calendar th .nickname { margin: 5px 0; } .bizWeeklyCalendarTable .calendar th .member_image { margin-bottom: 5px; } .bizWeeklyCalendarTable .calendar td.sub { border-width: 0 0 0 1px; } .bizWeeklyCalendarTable div.moreInfo { padding-left: 135px; } .bizWeeklyCalendarTable div.moreInfo .input_submit { margin-right: 8px; } /*============================================================================== * 43. sideNav(サイドナビ) *----------------------------------------------------------------------------*/ .sideNav .item { overflow: hidden; width: 150px; margin: 0 auto 10px; border: 8px solid #CCCCCC; } .sideNav .partsHeading { border-bottom: 1px solid #CCCCCC; } .sideNav .pageNav ul { margin: 1px; } .sideNav .pageNav li { padding: 4px 0 4px 18px; background: url(./skin/default/img/icon_1.gif) 8px 50% no-repeat scroll; } .sideNav .pageNav li.looking { background-color: #FFFFFF; } .sideNav .calendar .partsHeading { padding: 4px 0; border: none; background: none; text-align: center; } .sideNav .calendar th { background-color: #FFFFFF; text-align: center; } .sideNav .calendar td { padding: 1px 2px; text-align: right; } .sideNav .list { padding: 4px 0; } .sideNav .list li { padding-left: 16px; background: no-repeat 6px 4px; } .sideNav .monthlyMessage li { background-image: url(./skin/default/img/icon_1.gif); } .sideNav .recentlyDiary li { background-image: url(./skin/default/img/icon_3.gif); } .sideNav .recentlyComment li { background-image: url(./skin/default/img/icon_1.gif); } .sideNav .monthlyDiary li { background-image: url(./skin/default/img/icon_2.gif); } .sideNav .listCategory li { background-image: url(./skin/default/img/icon_2.gif); } /*============================================================================== * 44. rankingSideNav(ランキングサイドナビ) *----------------------------------------------------------------------------*/ .rankingSideNav { width: 150px; margin: 0 auto; border: 8px solid #CCCCCC; } .rankingSideNav .partsHeading { padding: 2px 4px; border-bottom: 1px solid #CCCCCC; background-image: none; text-align: center; } .rankingSideNav p { margin: 3px; } .rankingSideNav p.link { padding: 3px; border: 1px solid #CCCCCC; text-align: right; } /**============================================================================= * 配色設定 *----------------------------------------------------------------------------*/ #Body { background: #FFFFFF; } #Container { background: #FFFFFF; } div.dparts { background-color: #FFFFFF; } div.parts { background-color: #FFFFFF; } .sideNav .item { background-color: #FFFFFF; } #Body .sideNav { background-color: transparent; } #Body .linkLine, #Body .searchFormLine, #Body .buttonLine, #Body .prevNextLinkLine, #Body .homeBirthdayBox { background-color: transparent; } /**============================================================================= * ログインページ *----------------------------------------------------------------------------*/ div#container_login { position: relative; display: block; margin: 0px auto 0px 0px; width: 720px; height: 563px; padding: 0px; } div#container_login img.bg { display: block; position: absolute; left: 0px; top: 0px; width: 720px; height: 563px; z-index: 0; } div#container_login a img { width: 100%; height: 100%; } div#container_login div.banner, div#container_login a.banner { display: block; position: absolute; left: 247px; top: 5px; width: 468px; height: 60px; z-index: 200; } div#container_login div.header a.main_menu { display: block; display: none; position: absolute; height: 22px; top: 0px; } div#container_login input#username { display: block; position: absolute; left: 504px; top: 246px; width: 185px; height: 23px; font-size: 10pt; z-index: 100; } div#container_login input#password { display: block; position: absolute; left: 504px; top: 299px; width: 185px; height: 23px; font-size: 10pt; z-index: 110; } div#container_login input#button_login { display: block; position: absolute; left: 536px; top: 384px; width: 120px; height: 24px; border: none 0px; background-color: transparent; z-index: 120; } div#container_login a#button_new_regist { display: block; position: absolute; left: 536px; top: 414px; width: 120px; height: 24px; border: none 0px; z-index: 130; } div#container_login div.msg { display: block; position: absolute; border: none 0px; padding: 3px 0px; left: 504px; top: 327px; width: 185px; height: 42px; font-size: 9pt; text-align: center; z-index: 140; } div#container_login div.msg * { font-size: 8pt; } div#container_login .footer { display: block; position: absolute; left: 0px; top: 542px; width: 720px; height: 21px; z-index: 300; } div#container_login .footer p { margin-right: 12px; text-align: right; line-height: 21px; } /*============================================================================== * 文字装飾 *----------------------------------------------------------------------------*/ span.op_b { text-decoration: inherit; font-style: inherit; font-weight: bold; color: inherit; font-size: inherit; } span.op_u { text-decoration: underline; font-style: inherit; font-weight: inherit; color: inherit; font-size: inherit; } span.op_s { text-decoration: line-through; font-style: inherit; font-weight: inherit; color: inherit; font-size: inherit; } span.op_i { text-decoration: inherit; font-style: italic; font-weight: inherit; color: inherit; font-size: inherit; } span.op_large { text-decoration: inherit; font-style: inherit; font-weight: inherit; color: inherit; font-size: 20px; } span.op_small { text-decoration: inherit; font-style: inherit; font-weight: inherit; color: inherit; font-size: 8px; } span.op_color { text-decoration: inherit; font-style: inherit; font-weight: inherit; color: inherit; font-size: inherit; } /*============================================================================== * カスタムCSS *----------------------------------------------------------------------------*/ /**フォント色変更**/ /*リンク関連*/ a:link { color: #026CD1; } a:visited { color: #004A95; } a:hover { color: #76AFE6; } a:active { color: #76AFE6; } /*コンテンツ見出しlv1*/ td.bg_06 span.b_b, .c_00 { color: #222222; } /*コンテンツ見出しlv2*/ .c_01 { color: #444444; } /*強調文字暖色*/ .c_02 { color: #D92C49; } /*強調文字寒色*/ .c_03 { color: #2C65D9; } /*その他文字色*/ body { color: #000000; } /*side bnr */ table.bnr{ margin:10px 0 0 10px; } table.bnr img{ margin:0 0 10px 0; } ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=prototype.js Content-Type: application/x-javascript; charset=UTF-8; name=prototype.js Content-Location: http://sns.ragnarokonline.jp/js/prototype.js?r7140 Content-Transfer-Encoding: Base64 CnZhciBQcm90b3R5cGU9e1ZlcnNpb246JzEuNi4wJyxCcm93c2VyOntJRTohISh3 aW5kb3cuYXR0YWNoRXZlbnQmJiF3aW5kb3cub3BlcmEpLE9wZXJhOiEhd2luZG93 Lm9wZXJhLFdlYktpdDpuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0FwcGxl V2ViS2l0LycpPi0xLEdlY2tvOm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZign R2Vja28nKT4tMSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdLSFRNTCcp PT0tMSxNb2JpbGVTYWZhcmk6ISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9B cHBsZS4qTW9iaWxlLipTYWZhcmkvKX0sQnJvd3NlckZlYXR1cmVzOntYUGF0aDoh IWRvY3VtZW50LmV2YWx1YXRlLEVsZW1lbnRFeHRlbnNpb25zOiEhd2luZG93LkhU TUxFbGVtZW50LFNwZWNpZmljRWxlbWVudEV4dGVuc2lvbnM6ZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCgnZGl2JykuX19wcm90b19fJiZkb2N1bWVudC5jcmVhdGVFbGVt ZW50KCdkaXYnKS5fX3Byb3RvX18hPT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdm b3JtJykuX19wcm90b19ffSxTY3JpcHRGcmFnbWVudDonPHNjcmlwdFtePl0qPihb XFxTXFxzXSo/KTxcL3NjcmlwdD4nLEpTT05GaWx0ZXI6L15cL1wqLXNlY3VyZS0o W1xzXFNdKilcKlwvXHMqJC8sZW1wdHlGdW5jdGlvbjpmdW5jdGlvbigpe30sSzpm dW5jdGlvbih4KXtyZXR1cm4geH19O2lmKFByb3RvdHlwZS5Ccm93c2VyLk1vYmls ZVNhZmFyaSkKUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcy5TcGVjaWZpY0VsZW1l bnRFeHRlbnNpb25zPWZhbHNlO2lmKFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCkK UHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcy5YUGF0aD1mYWxzZTt2YXIgQ2xhc3M9 e2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBwYXJlbnQ9bnVsbCxwcm9wZXJ0aWVzPSRB KGFyZ3VtZW50cyk7aWYoT2JqZWN0LmlzRnVuY3Rpb24ocHJvcGVydGllc1swXSkp CnBhcmVudD1wcm9wZXJ0aWVzLnNoaWZ0KCk7ZnVuY3Rpb24ga2xhc3MoKXt0aGlz LmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpO30KT2JqZWN0LmV4dGVu ZChrbGFzcyxDbGFzcy5NZXRob2RzKTtrbGFzcy5zdXBlcmNsYXNzPXBhcmVudDtr bGFzcy5zdWJjbGFzc2VzPVtdO2lmKHBhcmVudCl7dmFyIHN1YmNsYXNzPWZ1bmN0 aW9uKCl7fTtzdWJjbGFzcy5wcm90b3R5cGU9cGFyZW50LnByb3RvdHlwZTtrbGFz cy5wcm90b3R5cGU9bmV3IHN1YmNsYXNzO3BhcmVudC5zdWJjbGFzc2VzLnB1c2go a2xhc3MpO30KZm9yKHZhciBpPTA7aTxwcm9wZXJ0aWVzLmxlbmd0aDtpKyspCmts YXNzLmFkZE1ldGhvZHMocHJvcGVydGllc1tpXSk7aWYoIWtsYXNzLnByb3RvdHlw ZS5pbml0aWFsaXplKQprbGFzcy5wcm90b3R5cGUuaW5pdGlhbGl6ZT1Qcm90b3R5 cGUuZW1wdHlGdW5jdGlvbjtrbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3I9a2xh c3M7cmV0dXJuIGtsYXNzO319O0NsYXNzLk1ldGhvZHM9e2FkZE1ldGhvZHM6ZnVu Y3Rpb24oc291cmNlKXt2YXIgYW5jZXN0b3I9dGhpcy5zdXBlcmNsYXNzJiZ0aGlz LnN1cGVyY2xhc3MucHJvdG90eXBlO3ZhciBwcm9wZXJ0aWVzPU9iamVjdC5rZXlz KHNvdXJjZSk7aWYoIU9iamVjdC5rZXlzKHt0b1N0cmluZzp0cnVlfSkubGVuZ3Ro KQpwcm9wZXJ0aWVzLnB1c2goInRvU3RyaW5nIiwidmFsdWVPZiIpO2Zvcih2YXIg aT0wLGxlbmd0aD1wcm9wZXJ0aWVzLmxlbmd0aDtpPGxlbmd0aDtpKyspe3ZhciBw cm9wZXJ0eT1wcm9wZXJ0aWVzW2ldLHZhbHVlPXNvdXJjZVtwcm9wZXJ0eV07aWYo YW5jZXN0b3ImJk9iamVjdC5pc0Z1bmN0aW9uKHZhbHVlKSYmdmFsdWUuYXJndW1l bnROYW1lcygpLmZpcnN0KCk9PSIkc3VwZXIiKXt2YXIgbWV0aG9kPXZhbHVlLHZh bHVlPU9iamVjdC5leHRlbmQoKGZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbigp e3JldHVybiBhbmNlc3RvclttXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O30pKHBy b3BlcnR5KS53cmFwKG1ldGhvZCkse3ZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4g bWV0aG9kfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBtZXRob2QudG9TdHJp bmcoKX19KTt9CnRoaXMucHJvdG90eXBlW3Byb3BlcnR5XT12YWx1ZTt9CnJldHVy biB0aGlzO319O3ZhciBBYnN0cmFjdD17fTtPYmplY3QuZXh0ZW5kPWZ1bmN0aW9u KGRlc3RpbmF0aW9uLHNvdXJjZSl7Zm9yKHZhciBwcm9wZXJ0eSBpbiBzb3VyY2Up CmRlc3RpbmF0aW9uW3Byb3BlcnR5XT1zb3VyY2VbcHJvcGVydHldO3JldHVybiBk ZXN0aW5hdGlvbjt9O09iamVjdC5leHRlbmQoT2JqZWN0LHtpbnNwZWN0OmZ1bmN0 aW9uKG9iamVjdCl7dHJ5e2lmKG9iamVjdD09PXVuZGVmaW5lZClyZXR1cm4ndW5k ZWZpbmVkJztpZihvYmplY3Q9PT1udWxsKXJldHVybidudWxsJztyZXR1cm4gb2Jq ZWN0Lmluc3BlY3Q/b2JqZWN0Lmluc3BlY3QoKTpvYmplY3QudG9TdHJpbmcoKTt9 Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpcmV0dXJuJy4uLic7 dGhyb3cgZTt9fSx0b0pTT046ZnVuY3Rpb24ob2JqZWN0KXt2YXIgdHlwZT10eXBl b2Ygb2JqZWN0O3N3aXRjaCh0eXBlKXtjYXNlJ3VuZGVmaW5lZCc6Y2FzZSdmdW5j dGlvbic6Y2FzZSd1bmtub3duJzpyZXR1cm47Y2FzZSdib29sZWFuJzpyZXR1cm4g b2JqZWN0LnRvU3RyaW5nKCk7fQppZihvYmplY3Q9PT1udWxsKXJldHVybidudWxs JztpZihvYmplY3QudG9KU09OKXJldHVybiBvYmplY3QudG9KU09OKCk7aWYoT2Jq ZWN0LmlzRWxlbWVudChvYmplY3QpKXJldHVybjt2YXIgcmVzdWx0cz1bXTtmb3Io dmFyIHByb3BlcnR5IGluIG9iamVjdCl7dmFyIHZhbHVlPU9iamVjdC50b0pTT04o b2JqZWN0W3Byb3BlcnR5XSk7aWYodmFsdWUhPT11bmRlZmluZWQpCnJlc3VsdHMu cHVzaChwcm9wZXJ0eS50b0pTT04oKSsnOiAnK3ZhbHVlKTt9CnJldHVybid7Jyty ZXN1bHRzLmpvaW4oJywgJykrJ30nO30sdG9RdWVyeVN0cmluZzpmdW5jdGlvbihv YmplY3Qpe3JldHVybiAkSChvYmplY3QpLnRvUXVlcnlTdHJpbmcoKTt9LHRvSFRN TDpmdW5jdGlvbihvYmplY3Qpe3JldHVybiBvYmplY3QmJm9iamVjdC50b0hUTUw/ b2JqZWN0LnRvSFRNTCgpOlN0cmluZy5pbnRlcnByZXQob2JqZWN0KTt9LGtleXM6 ZnVuY3Rpb24ob2JqZWN0KXt2YXIga2V5cz1bXTtmb3IodmFyIHByb3BlcnR5IGlu IG9iamVjdCkKa2V5cy5wdXNoKHByb3BlcnR5KTtyZXR1cm4ga2V5czt9LHZhbHVl czpmdW5jdGlvbihvYmplY3Qpe3ZhciB2YWx1ZXM9W107Zm9yKHZhciBwcm9wZXJ0 eSBpbiBvYmplY3QpCnZhbHVlcy5wdXNoKG9iamVjdFtwcm9wZXJ0eV0pO3JldHVy biB2YWx1ZXM7fSxjbG9uZTpmdW5jdGlvbihvYmplY3Qpe3JldHVybiBPYmplY3Qu ZXh0ZW5kKHt9LG9iamVjdCk7fSxpc0VsZW1lbnQ6ZnVuY3Rpb24ob2JqZWN0KXty ZXR1cm4gb2JqZWN0JiZvYmplY3Qubm9kZVR5cGU9PTE7fSxpc0FycmF5OmZ1bmN0 aW9uKG9iamVjdCl7cmV0dXJuIG9iamVjdCYmb2JqZWN0LmNvbnN0cnVjdG9yPT09 QXJyYXk7fSxpc0hhc2g6ZnVuY3Rpb24ob2JqZWN0KXtyZXR1cm4gb2JqZWN0IGlu c3RhbmNlb2YgSGFzaDt9LGlzRnVuY3Rpb246ZnVuY3Rpb24ob2JqZWN0KXtyZXR1 cm4gdHlwZW9mIG9iamVjdD09ImZ1bmN0aW9uIjt9LGlzU3RyaW5nOmZ1bmN0aW9u KG9iamVjdCl7cmV0dXJuIHR5cGVvZiBvYmplY3Q9PSJzdHJpbmciO30saXNOdW1i ZXI6ZnVuY3Rpb24ob2JqZWN0KXtyZXR1cm4gdHlwZW9mIG9iamVjdD09Im51bWJl ciI7fSxpc1VuZGVmaW5lZDpmdW5jdGlvbihvYmplY3Qpe3JldHVybiB0eXBlb2Yg b2JqZWN0PT0idW5kZWZpbmVkIjt9fSk7T2JqZWN0LmV4dGVuZChGdW5jdGlvbi5w cm90b3R5cGUse2FyZ3VtZW50TmFtZXM6ZnVuY3Rpb24oKXt2YXIgbmFtZXM9dGhp cy50b1N0cmluZygpLm1hdGNoKC9eW1xzXChdKmZ1bmN0aW9uW14oXSpcKCguKj8p XCkvKVsxXS5zcGxpdCgiLCIpLmludm9rZSgic3RyaXAiKTtyZXR1cm4gbmFtZXMu bGVuZ3RoPT0xJiYhbmFtZXNbMF0/W106bmFtZXM7fSxiaW5kOmZ1bmN0aW9uKCl7 aWYoYXJndW1lbnRzLmxlbmd0aDwyJiZhcmd1bWVudHNbMF09PT11bmRlZmluZWQp cmV0dXJuIHRoaXM7dmFyIF9fbWV0aG9kPXRoaXMsYXJncz0kQShhcmd1bWVudHMp LG9iamVjdD1hcmdzLnNoaWZ0KCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF9f bWV0aG9kLmFwcGx5KG9iamVjdCxhcmdzLmNvbmNhdCgkQShhcmd1bWVudHMpKSk7 fX0sYmluZEFzRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbigpe3ZhciBfX21ldGhvZD10 aGlzLGFyZ3M9JEEoYXJndW1lbnRzKSxvYmplY3Q9YXJncy5zaGlmdCgpO3JldHVy biBmdW5jdGlvbihldmVudCl7cmV0dXJuIF9fbWV0aG9kLmFwcGx5KG9iamVjdCxb ZXZlbnR8fHdpbmRvdy5ldmVudF0uY29uY2F0KGFyZ3MpKTt9fSxjdXJyeTpmdW5j dGlvbigpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBfX21l dGhvZD10aGlzLGFyZ3M9JEEoYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXty ZXR1cm4gX19tZXRob2QuYXBwbHkodGhpcyxhcmdzLmNvbmNhdCgkQShhcmd1bWVu dHMpKSk7fX0sZGVsYXk6ZnVuY3Rpb24oKXt2YXIgX19tZXRob2Q9dGhpcyxhcmdz PSRBKGFyZ3VtZW50cyksdGltZW91dD1hcmdzLnNoaWZ0KCkqMTAwMDtyZXR1cm4g d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gX19tZXRob2QuYXBw bHkoX19tZXRob2QsYXJncyk7fSx0aW1lb3V0KTt9LHdyYXA6ZnVuY3Rpb24od3Jh cHBlcil7dmFyIF9fbWV0aG9kPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJu IHdyYXBwZXIuYXBwbHkodGhpcyxbX19tZXRob2QuYmluZCh0aGlzKV0uY29uY2F0 KCRBKGFyZ3VtZW50cykpKTt9fSxtZXRob2RpemU6ZnVuY3Rpb24oKXtpZih0aGlz Ll9tZXRob2RpemVkKXJldHVybiB0aGlzLl9tZXRob2RpemVkO3ZhciBfX21ldGhv ZD10aGlzO3JldHVybiB0aGlzLl9tZXRob2RpemVkPWZ1bmN0aW9uKCl7cmV0dXJu IF9fbWV0aG9kLmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdCgkQShhcmd1bWVudHMp KSk7fTt9fSk7RnVuY3Rpb24ucHJvdG90eXBlLmRlZmVyPUZ1bmN0aW9uLnByb3Rv dHlwZS5kZWxheS5jdXJyeSgwLjAxKTtEYXRlLnByb3RvdHlwZS50b0pTT049ZnVu Y3Rpb24oKXtyZXR1cm4nIicrdGhpcy5nZXRVVENGdWxsWWVhcigpKyctJysKKHRo aXMuZ2V0VVRDTW9udGgoKSsxKS50b1BhZGRlZFN0cmluZygyKSsnLScrCnRoaXMu Z2V0VVRDRGF0ZSgpLnRvUGFkZGVkU3RyaW5nKDIpKydUJysKdGhpcy5nZXRVVENI b3VycygpLnRvUGFkZGVkU3RyaW5nKDIpKyc6JysKdGhpcy5nZXRVVENNaW51dGVz KCkudG9QYWRkZWRTdHJpbmcoMikrJzonKwp0aGlzLmdldFVUQ1NlY29uZHMoKS50 b1BhZGRlZFN0cmluZygyKSsnWiInO307dmFyIFRyeT17dGhlc2U6ZnVuY3Rpb24o KXt2YXIgcmV0dXJuVmFsdWU7Zm9yKHZhciBpPTAsbGVuZ3RoPWFyZ3VtZW50cy5s ZW5ndGg7aTxsZW5ndGg7aSsrKXt2YXIgbGFtYmRhPWFyZ3VtZW50c1tpXTt0cnl7 cmV0dXJuVmFsdWU9bGFtYmRhKCk7YnJlYWs7fWNhdGNoKGUpe319CnJldHVybiBy ZXR1cm5WYWx1ZTt9fTtSZWdFeHAucHJvdG90eXBlLm1hdGNoPVJlZ0V4cC5wcm90 b3R5cGUudGVzdDtSZWdFeHAuZXNjYXBlPWZ1bmN0aW9uKHN0cil7cmV0dXJuIFN0 cmluZyhzdHIpLnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywn XFwkMScpO307dmFyIFBlcmlvZGljYWxFeGVjdXRlcj1DbGFzcy5jcmVhdGUoe2lu aXRpYWxpemU6ZnVuY3Rpb24oY2FsbGJhY2ssZnJlcXVlbmN5KXt0aGlzLmNhbGxi YWNrPWNhbGxiYWNrO3RoaXMuZnJlcXVlbmN5PWZyZXF1ZW5jeTt0aGlzLmN1cnJl bnRseUV4ZWN1dGluZz1mYWxzZTt0aGlzLnJlZ2lzdGVyQ2FsbGJhY2soKTt9LHJl Z2lzdGVyQ2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLnRpbWVyPXNldEludGVydmFs KHRoaXMub25UaW1lckV2ZW50LmJpbmQodGhpcyksdGhpcy5mcmVxdWVuY3kqMTAw MCk7fSxleGVjdXRlOmZ1bmN0aW9uKCl7dGhpcy5jYWxsYmFjayh0aGlzKTt9LHN0 b3A6ZnVuY3Rpb24oKXtpZighdGhpcy50aW1lcilyZXR1cm47Y2xlYXJJbnRlcnZh bCh0aGlzLnRpbWVyKTt0aGlzLnRpbWVyPW51bGw7fSxvblRpbWVyRXZlbnQ6ZnVu Y3Rpb24oKXtpZighdGhpcy5jdXJyZW50bHlFeGVjdXRpbmcpe3RyeXt0aGlzLmN1 cnJlbnRseUV4ZWN1dGluZz10cnVlO3RoaXMuZXhlY3V0ZSgpO31maW5hbGx5e3Ro aXMuY3VycmVudGx5RXhlY3V0aW5nPWZhbHNlO319fX0pO09iamVjdC5leHRlbmQo U3RyaW5nLHtpbnRlcnByZXQ6ZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT09 bnVsbD8nJzpTdHJpbmcodmFsdWUpO30sc3BlY2lhbENoYXI6eydcYic6J1xcYics J1x0JzonXFx0JywnXG4nOidcXG4nLCdcZic6J1xcZicsJ1xyJzonXFxyJywnXFwn OidcXFxcJ319KTtPYmplY3QuZXh0ZW5kKFN0cmluZy5wcm90b3R5cGUse2dzdWI6 ZnVuY3Rpb24ocGF0dGVybixyZXBsYWNlbWVudCl7dmFyIHJlc3VsdD0nJyxzb3Vy Y2U9dGhpcyxtYXRjaDtyZXBsYWNlbWVudD1hcmd1bWVudHMuY2FsbGVlLnByZXBh cmVSZXBsYWNlbWVudChyZXBsYWNlbWVudCk7d2hpbGUoc291cmNlLmxlbmd0aD4w KXtpZihtYXRjaD1zb3VyY2UubWF0Y2gocGF0dGVybikpe3Jlc3VsdCs9c291cmNl LnNsaWNlKDAsbWF0Y2guaW5kZXgpO3Jlc3VsdCs9U3RyaW5nLmludGVycHJldChy ZXBsYWNlbWVudChtYXRjaCkpO3NvdXJjZT1zb3VyY2Uuc2xpY2UobWF0Y2guaW5k ZXgrbWF0Y2hbMF0ubGVuZ3RoKTt9ZWxzZXtyZXN1bHQrPXNvdXJjZSxzb3VyY2U9 Jyc7fX0KcmV0dXJuIHJlc3VsdDt9LHN1YjpmdW5jdGlvbihwYXR0ZXJuLHJlcGxh Y2VtZW50LGNvdW50KXtyZXBsYWNlbWVudD10aGlzLmdzdWIucHJlcGFyZVJlcGxh Y2VtZW50KHJlcGxhY2VtZW50KTtjb3VudD1jb3VudD09PXVuZGVmaW5lZD8xOmNv dW50O3JldHVybiB0aGlzLmdzdWIocGF0dGVybixmdW5jdGlvbihtYXRjaCl7aWYo LS1jb3VudDwwKXJldHVybiBtYXRjaFswXTtyZXR1cm4gcmVwbGFjZW1lbnQobWF0 Y2gpO30pO30sc2NhbjpmdW5jdGlvbihwYXR0ZXJuLGl0ZXJhdG9yKXt0aGlzLmdz dWIocGF0dGVybixpdGVyYXRvcik7cmV0dXJuIFN0cmluZyh0aGlzKTt9LHRydW5j YXRlOmZ1bmN0aW9uKGxlbmd0aCx0cnVuY2F0aW9uKXtsZW5ndGg9bGVuZ3RofHwz MDt0cnVuY2F0aW9uPXRydW5jYXRpb249PT11bmRlZmluZWQ/Jy4uLic6dHJ1bmNh dGlvbjtyZXR1cm4gdGhpcy5sZW5ndGg+bGVuZ3RoP3RoaXMuc2xpY2UoMCxsZW5n dGgtdHJ1bmNhdGlvbi5sZW5ndGgpK3RydW5jYXRpb246U3RyaW5nKHRoaXMpO30s c3RyaXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC9eXHMrLywnJyku cmVwbGFjZSgvXHMrJC8sJycpO30sc3RyaXBUYWdzOmZ1bmN0aW9uKCl7cmV0dXJu IHRoaXMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwnJyk7fSxzdHJpcFNjcmlwdHM6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoUHJvdG90 eXBlLlNjcmlwdEZyYWdtZW50LCdpbWcnKSwnJyk7fSxleHRyYWN0U2NyaXB0czpm dW5jdGlvbigpe3ZhciBtYXRjaEFsbD1uZXcgUmVnRXhwKFByb3RvdHlwZS5TY3Jp cHRGcmFnbWVudCwnaW1nJyk7dmFyIG1hdGNoT25lPW5ldyBSZWdFeHAoUHJvdG90 eXBlLlNjcmlwdEZyYWdtZW50LCdpbScpO3JldHVybih0aGlzLm1hdGNoKG1hdGNo QWxsKXx8W10pLm1hcChmdW5jdGlvbihzY3JpcHRUYWcpe3JldHVybihzY3JpcHRU YWcubWF0Y2gobWF0Y2hPbmUpfHxbJycsJyddKVsxXTt9KTt9LGV2YWxTY3JpcHRz OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXh0cmFjdFNjcmlwdHMoKS5tYXAoZnVu Y3Rpb24oc2NyaXB0KXtyZXR1cm4gZXZhbChzY3JpcHQpfSk7fSxlc2NhcGVIVE1M OmZ1bmN0aW9uKCl7dmFyIHNlbGY9YXJndW1lbnRzLmNhbGxlZTtzZWxmLnRleHQu ZGF0YT10aGlzO3JldHVybiBzZWxmLmRpdi5pbm5lckhUTUw7fSx1bmVzY2FwZUhU TUw6ZnVuY3Rpb24oKXt2YXIgZGl2PW5ldyBFbGVtZW50KCdkaXYnKTtkaXYuaW5u ZXJIVE1MPXRoaXMuc3RyaXBUYWdzKCk7cmV0dXJuIGRpdi5jaGlsZE5vZGVzWzBd PyhkaXYuY2hpbGROb2Rlcy5sZW5ndGg+MT8kQShkaXYuY2hpbGROb2RlcykuaW5q ZWN0KCcnLGZ1bmN0aW9uKG1lbW8sbm9kZSl7cmV0dXJuIG1lbW8rbm9kZS5ub2Rl VmFsdWV9KTpkaXYuY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpOicnO30sdG9RdWVy eVBhcmFtczpmdW5jdGlvbihzZXBhcmF0b3Ipe3ZhciBtYXRjaD10aGlzLnN0cmlw KCkubWF0Y2goLyhbXj8jXSopKCMuKik/JC8pO2lmKCFtYXRjaClyZXR1cm57fTty ZXR1cm4gbWF0Y2hbMV0uc3BsaXQoc2VwYXJhdG9yfHwnJicpLmluamVjdCh7fSxm dW5jdGlvbihoYXNoLHBhaXIpe2lmKChwYWlyPXBhaXIuc3BsaXQoJz0nKSlbMF0p e3ZhciBrZXk9ZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2hpZnQoKSk7dmFyIHZh bHVlPXBhaXIubGVuZ3RoPjE/cGFpci5qb2luKCc9Jyk6cGFpclswXTtpZih2YWx1 ZSE9dW5kZWZpbmVkKXZhbHVlPWRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7aWYo a2V5IGluIGhhc2gpe2lmKCFPYmplY3QuaXNBcnJheShoYXNoW2tleV0pKWhhc2hb a2V5XT1baGFzaFtrZXldXTtoYXNoW2tleV0ucHVzaCh2YWx1ZSk7fQplbHNlIGhh c2hba2V5XT12YWx1ZTt9CnJldHVybiBoYXNoO30pO30sdG9BcnJheTpmdW5jdGlv bigpe3JldHVybiB0aGlzLnNwbGl0KCcnKTt9LHN1Y2M6ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5zbGljZSgwLHRoaXMubGVuZ3RoLTEpKwpTdHJpbmcuZnJvbUNoYXJD b2RlKHRoaXMuY2hhckNvZGVBdCh0aGlzLmxlbmd0aC0xKSsxKTt9LHRpbWVzOmZ1 bmN0aW9uKGNvdW50KXtyZXR1cm4gY291bnQ8MT8nJzpuZXcgQXJyYXkoY291bnQr MSkuam9pbih0aGlzKTt9LGNhbWVsaXplOmZ1bmN0aW9uKCl7dmFyIHBhcnRzPXRo aXMuc3BsaXQoJy0nKSxsZW49cGFydHMubGVuZ3RoO2lmKGxlbj09MSlyZXR1cm4g cGFydHNbMF07dmFyIGNhbWVsaXplZD10aGlzLmNoYXJBdCgwKT09Jy0nP3BhcnRz WzBdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3BhcnRzWzBdLnN1YnN0cmluZygx KTpwYXJ0c1swXTtmb3IodmFyIGk9MTtpPGxlbjtpKyspCmNhbWVsaXplZCs9cGFy dHNbaV0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcGFydHNbaV0uc3Vic3RyaW5n KDEpO3JldHVybiBjYW1lbGl6ZWQ7fSxjYXBpdGFsaXplOmZ1bmN0aW9uKCl7cmV0 dXJuIHRoaXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdGhpcy5zdWJzdHJpbmco MSkudG9Mb3dlckNhc2UoKTt9LHVuZGVyc2NvcmU6ZnVuY3Rpb24oKXtyZXR1cm4g dGhpcy5nc3ViKC86Oi8sJy8nKS5nc3ViKC8oW0EtWl0rKShbQS1aXVthLXpdKS8s JyN7MX1fI3syfScpLmdzdWIoLyhbYS16XGRdKShbQS1aXSkvLCcjezF9XyN7Mn0n KS5nc3ViKC8tLywnXycpLnRvTG93ZXJDYXNlKCk7fSxkYXNoZXJpemU6ZnVuY3Rp b24oKXtyZXR1cm4gdGhpcy5nc3ViKC9fLywnLScpO30saW5zcGVjdDpmdW5jdGlv bih1c2VEb3VibGVRdW90ZXMpe3ZhciBlc2NhcGVkU3RyaW5nPXRoaXMuZ3N1Yigv W1x4MDAtXHgxZlxcXS8sZnVuY3Rpb24obWF0Y2gpe3ZhciBjaGFyYWN0ZXI9U3Ry aW5nLnNwZWNpYWxDaGFyW21hdGNoWzBdXTtyZXR1cm4gY2hhcmFjdGVyP2NoYXJh Y3RlcjonXFx1MDAnK21hdGNoWzBdLmNoYXJDb2RlQXQoKS50b1BhZGRlZFN0cmlu ZygyLDE2KTt9KTtpZih1c2VEb3VibGVRdW90ZXMpcmV0dXJuJyInK2VzY2FwZWRT dHJpbmcucmVwbGFjZSgvIi9nLCdcXCInKSsnIic7cmV0dXJuIiciK2VzY2FwZWRT dHJpbmcucmVwbGFjZSgvJy9nLCdcXFwnJykrIiciO30sdG9KU09OOmZ1bmN0aW9u KCl7cmV0dXJuIHRoaXMuaW5zcGVjdCh0cnVlKTt9LHVuZmlsdGVySlNPTjpmdW5j dGlvbihmaWx0ZXIpe3JldHVybiB0aGlzLnN1YihmaWx0ZXJ8fFByb3RvdHlwZS5K U09ORmlsdGVyLCcjezF9Jyk7fSxpc0pTT046ZnVuY3Rpb24oKXt2YXIgc3RyPXRo aXMucmVwbGFjZSgvXFwuL2csJ0AnKS5yZXBsYWNlKC8iW14iXFxcblxyXSoiL2cs JycpO3JldHVybigvXlssOnt9XFtcXTAtOS5cLStFYWVmbG5yLXUgXG5cclx0XSok LykudGVzdChzdHIpO30sZXZhbEpTT046ZnVuY3Rpb24oc2FuaXRpemUpe3ZhciBq c29uPXRoaXMudW5maWx0ZXJKU09OKCk7dHJ5e2lmKCFzYW5pdGl6ZXx8anNvbi5p c0pTT04oKSlyZXR1cm4gZXZhbCgnKCcranNvbisnKScpO31jYXRjaChlKXt9CnRo cm93IG5ldyBTeW50YXhFcnJvcignQmFkbHkgZm9ybWVkIEpTT04gc3RyaW5nOiAn K3RoaXMuaW5zcGVjdCgpKTt9LGluY2x1ZGU6ZnVuY3Rpb24ocGF0dGVybil7cmV0 dXJuIHRoaXMuaW5kZXhPZihwYXR0ZXJuKT4tMTt9LHN0YXJ0c1dpdGg6ZnVuY3Rp b24ocGF0dGVybil7cmV0dXJuIHRoaXMuaW5kZXhPZihwYXR0ZXJuKT09PTA7fSxl bmRzV2l0aDpmdW5jdGlvbihwYXR0ZXJuKXt2YXIgZD10aGlzLmxlbmd0aC1wYXR0 ZXJuLmxlbmd0aDtyZXR1cm4gZD49MCYmdGhpcy5sYXN0SW5kZXhPZihwYXR0ZXJu KT09PWQ7fSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiB0aGlzPT0nJzt9LGJsYW5r OmZ1bmN0aW9uKCl7cmV0dXJuL15ccyokLy50ZXN0KHRoaXMpO30saW50ZXJwb2xh dGU6ZnVuY3Rpb24ob2JqZWN0LHBhdHRlcm4pe3JldHVybiBuZXcgVGVtcGxhdGUo dGhpcyxwYXR0ZXJuKS5ldmFsdWF0ZShvYmplY3QpO319KTtpZihQcm90b3R5cGUu QnJvd3Nlci5XZWJLaXR8fFByb3RvdHlwZS5Ccm93c2VyLklFKU9iamVjdC5leHRl bmQoU3RyaW5nLnByb3RvdHlwZSx7ZXNjYXBlSFRNTDpmdW5jdGlvbigpe3JldHVy biB0aGlzLnJlcGxhY2UoLyYvZywnJmFtcDsnKS5yZXBsYWNlKC88L2csJyZsdDsn KS5yZXBsYWNlKC8+L2csJyZndDsnKTt9LHVuZXNjYXBlSFRNTDpmdW5jdGlvbigp e3JldHVybiB0aGlzLnJlcGxhY2UoLyZhbXA7L2csJyYnKS5yZXBsYWNlKC8mbHQ7 L2csJzwnKS5yZXBsYWNlKC8mZ3Q7L2csJz4nKTt9fSk7U3RyaW5nLnByb3RvdHlw ZS5nc3ViLnByZXBhcmVSZXBsYWNlbWVudD1mdW5jdGlvbihyZXBsYWNlbWVudCl7 aWYoT2JqZWN0LmlzRnVuY3Rpb24ocmVwbGFjZW1lbnQpKXJldHVybiByZXBsYWNl bWVudDt2YXIgdGVtcGxhdGU9bmV3IFRlbXBsYXRlKHJlcGxhY2VtZW50KTtyZXR1 cm4gZnVuY3Rpb24obWF0Y2gpe3JldHVybiB0ZW1wbGF0ZS5ldmFsdWF0ZShtYXRj aCl9O307U3RyaW5nLnByb3RvdHlwZS5wYXJzZVF1ZXJ5PVN0cmluZy5wcm90b3R5 cGUudG9RdWVyeVBhcmFtcztPYmplY3QuZXh0ZW5kKFN0cmluZy5wcm90b3R5cGUu ZXNjYXBlSFRNTCx7ZGl2OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLHRl eHQ6ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpfSk7d2l0aChTdHJpbmcucHJv dG90eXBlLmVzY2FwZUhUTUwpZGl2LmFwcGVuZENoaWxkKHRleHQpO3ZhciBUZW1w bGF0ZT1DbGFzcy5jcmVhdGUoe2luaXRpYWxpemU6ZnVuY3Rpb24odGVtcGxhdGUs cGF0dGVybil7dGhpcy50ZW1wbGF0ZT10ZW1wbGF0ZS50b1N0cmluZygpO3RoaXMu cGF0dGVybj1wYXR0ZXJufHxUZW1wbGF0ZS5QYXR0ZXJuO30sZXZhbHVhdGU6ZnVu Y3Rpb24ob2JqZWN0KXtpZihPYmplY3QuaXNGdW5jdGlvbihvYmplY3QudG9UZW1w bGF0ZVJlcGxhY2VtZW50cykpCm9iamVjdD1vYmplY3QudG9UZW1wbGF0ZVJlcGxh Y2VtZW50cygpO3JldHVybiB0aGlzLnRlbXBsYXRlLmdzdWIodGhpcy5wYXR0ZXJu LGZ1bmN0aW9uKG1hdGNoKXtpZihvYmplY3Q9PW51bGwpcmV0dXJuJyc7dmFyIGJl Zm9yZT1tYXRjaFsxXXx8Jyc7aWYoYmVmb3JlPT0nXFwnKXJldHVybiBtYXRjaFsy XTt2YXIgY3R4PW9iamVjdCxleHByPW1hdGNoWzNdO3ZhciBwYXR0ZXJuPS9eKFte LltdK3xcWygoPzouKj9bXlxcXSk/KVxdKShcLnxcW3wkKS8sbWF0Y2g9cGF0dGVy bi5leGVjKGV4cHIpO2lmKG1hdGNoPT1udWxsKXJldHVybiBiZWZvcmU7d2hpbGUo bWF0Y2ghPW51bGwpe3ZhciBjb21wPW1hdGNoWzFdLnN0YXJ0c1dpdGgoJ1snKT9t YXRjaFsyXS5nc3ViKCdcXFxcXScsJ10nKTptYXRjaFsxXTtjdHg9Y3R4W2NvbXBd O2lmKG51bGw9PWN0eHx8Jyc9PW1hdGNoWzNdKWJyZWFrO2V4cHI9ZXhwci5zdWJz dHJpbmcoJ1snPT1tYXRjaFszXT9tYXRjaFsxXS5sZW5ndGg6bWF0Y2hbMF0ubGVu Z3RoKTttYXRjaD1wYXR0ZXJuLmV4ZWMoZXhwcik7fQpyZXR1cm4gYmVmb3JlK1N0 cmluZy5pbnRlcnByZXQoY3R4KTt9LmJpbmQodGhpcykpO319KTtUZW1wbGF0ZS5Q YXR0ZXJuPS8oXnwufFxyfFxuKSgjXHsoLio/KVx9KS87dmFyICRicmVhaz17fTt2 YXIgRW51bWVyYWJsZT17ZWFjaDpmdW5jdGlvbihpdGVyYXRvcixjb250ZXh0KXt2 YXIgaW5kZXg9MDtpdGVyYXRvcj1pdGVyYXRvci5iaW5kKGNvbnRleHQpO3RyeXt0 aGlzLl9lYWNoKGZ1bmN0aW9uKHZhbHVlKXtpdGVyYXRvcih2YWx1ZSxpbmRleCsr KTt9KTt9Y2F0Y2goZSl7aWYoZSE9JGJyZWFrKXRocm93IGU7fQpyZXR1cm4gdGhp czt9LGVhY2hTbGljZTpmdW5jdGlvbihudW1iZXIsaXRlcmF0b3IsY29udGV4dCl7 aXRlcmF0b3I9aXRlcmF0b3I/aXRlcmF0b3IuYmluZChjb250ZXh0KTpQcm90b3R5 cGUuSzt2YXIgaW5kZXg9LW51bWJlcixzbGljZXM9W10sYXJyYXk9dGhpcy50b0Fy cmF5KCk7d2hpbGUoKGluZGV4Kz1udW1iZXIpPGFycmF5Lmxlbmd0aCkKc2xpY2Vz LnB1c2goYXJyYXkuc2xpY2UoaW5kZXgsaW5kZXgrbnVtYmVyKSk7cmV0dXJuIHNs aWNlcy5jb2xsZWN0KGl0ZXJhdG9yLGNvbnRleHQpO30sYWxsOmZ1bmN0aW9uKGl0 ZXJhdG9yLGNvbnRleHQpe2l0ZXJhdG9yPWl0ZXJhdG9yP2l0ZXJhdG9yLmJpbmQo Y29udGV4dCk6UHJvdG90eXBlLks7dmFyIHJlc3VsdD10cnVlO3RoaXMuZWFjaChm dW5jdGlvbih2YWx1ZSxpbmRleCl7cmVzdWx0PXJlc3VsdCYmISFpdGVyYXRvcih2 YWx1ZSxpbmRleCk7aWYoIXJlc3VsdCl0aHJvdyAkYnJlYWs7fSk7cmV0dXJuIHJl c3VsdDt9LGFueTpmdW5jdGlvbihpdGVyYXRvcixjb250ZXh0KXtpdGVyYXRvcj1p dGVyYXRvcj9pdGVyYXRvci5iaW5kKGNvbnRleHQpOlByb3RvdHlwZS5LO3ZhciBy ZXN1bHQ9ZmFsc2U7dGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLGluZGV4KXtpZihy ZXN1bHQ9ISFpdGVyYXRvcih2YWx1ZSxpbmRleCkpCnRocm93ICRicmVhazt9KTty ZXR1cm4gcmVzdWx0O30sY29sbGVjdDpmdW5jdGlvbihpdGVyYXRvcixjb250ZXh0 KXtpdGVyYXRvcj1pdGVyYXRvcj9pdGVyYXRvci5iaW5kKGNvbnRleHQpOlByb3Rv dHlwZS5LO3ZhciByZXN1bHRzPVtdO3RoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSxp bmRleCl7cmVzdWx0cy5wdXNoKGl0ZXJhdG9yKHZhbHVlLGluZGV4KSk7fSk7cmV0 dXJuIHJlc3VsdHM7fSxkZXRlY3Q6ZnVuY3Rpb24oaXRlcmF0b3IsY29udGV4dCl7 aXRlcmF0b3I9aXRlcmF0b3IuYmluZChjb250ZXh0KTt2YXIgcmVzdWx0O3RoaXMu ZWFjaChmdW5jdGlvbih2YWx1ZSxpbmRleCl7aWYoaXRlcmF0b3IodmFsdWUsaW5k ZXgpKXtyZXN1bHQ9dmFsdWU7dGhyb3cgJGJyZWFrO319KTtyZXR1cm4gcmVzdWx0 O30sZmluZEFsbDpmdW5jdGlvbihpdGVyYXRvcixjb250ZXh0KXtpdGVyYXRvcj1p dGVyYXRvci5iaW5kKGNvbnRleHQpO3ZhciByZXN1bHRzPVtdO3RoaXMuZWFjaChm dW5jdGlvbih2YWx1ZSxpbmRleCl7aWYoaXRlcmF0b3IodmFsdWUsaW5kZXgpKQpy ZXN1bHRzLnB1c2godmFsdWUpO30pO3JldHVybiByZXN1bHRzO30sZ3JlcDpmdW5j dGlvbihmaWx0ZXIsaXRlcmF0b3IsY29udGV4dCl7aXRlcmF0b3I9aXRlcmF0b3I/ aXRlcmF0b3IuYmluZChjb250ZXh0KTpQcm90b3R5cGUuSzt2YXIgcmVzdWx0cz1b XTtpZihPYmplY3QuaXNTdHJpbmcoZmlsdGVyKSkKZmlsdGVyPW5ldyBSZWdFeHAo ZmlsdGVyKTt0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsaW5kZXgpe2lmKGZpbHRl ci5tYXRjaCh2YWx1ZSkpCnJlc3VsdHMucHVzaChpdGVyYXRvcih2YWx1ZSxpbmRl eCkpO30pO3JldHVybiByZXN1bHRzO30saW5jbHVkZTpmdW5jdGlvbihvYmplY3Qp e2lmKE9iamVjdC5pc0Z1bmN0aW9uKHRoaXMuaW5kZXhPZikpCmlmKHRoaXMuaW5k ZXhPZihvYmplY3QpIT0tMSlyZXR1cm4gdHJ1ZTt2YXIgZm91bmQ9ZmFsc2U7dGhp cy5lYWNoKGZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZT09b2JqZWN0KXtmb3VuZD10 cnVlO3Rocm93ICRicmVhazt9fSk7cmV0dXJuIGZvdW5kO30saW5Hcm91cHNPZjpm dW5jdGlvbihudW1iZXIsZmlsbFdpdGgpe2ZpbGxXaXRoPWZpbGxXaXRoPT09dW5k ZWZpbmVkP251bGw6ZmlsbFdpdGg7cmV0dXJuIHRoaXMuZWFjaFNsaWNlKG51bWJl cixmdW5jdGlvbihzbGljZSl7d2hpbGUoc2xpY2UubGVuZ3RoPG51bWJlcilzbGlj ZS5wdXNoKGZpbGxXaXRoKTtyZXR1cm4gc2xpY2U7fSk7fSxpbmplY3Q6ZnVuY3Rp b24obWVtbyxpdGVyYXRvcixjb250ZXh0KXtpdGVyYXRvcj1pdGVyYXRvci5iaW5k KGNvbnRleHQpO3RoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSxpbmRleCl7bWVtbz1p dGVyYXRvcihtZW1vLHZhbHVlLGluZGV4KTt9KTtyZXR1cm4gbWVtbzt9LGludm9r ZTpmdW5jdGlvbihtZXRob2Qpe3ZhciBhcmdzPSRBKGFyZ3VtZW50cykuc2xpY2Uo MSk7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWVb bWV0aG9kXS5hcHBseSh2YWx1ZSxhcmdzKTt9KTt9LG1heDpmdW5jdGlvbihpdGVy YXRvcixjb250ZXh0KXtpdGVyYXRvcj1pdGVyYXRvcj9pdGVyYXRvci5iaW5kKGNv bnRleHQpOlByb3RvdHlwZS5LO3ZhciByZXN1bHQ7dGhpcy5lYWNoKGZ1bmN0aW9u KHZhbHVlLGluZGV4KXt2YWx1ZT1pdGVyYXRvcih2YWx1ZSxpbmRleCk7aWYocmVz dWx0PT11bmRlZmluZWR8fHZhbHVlPj1yZXN1bHQpCnJlc3VsdD12YWx1ZTt9KTty ZXR1cm4gcmVzdWx0O30sbWluOmZ1bmN0aW9uKGl0ZXJhdG9yLGNvbnRleHQpe2l0 ZXJhdG9yPWl0ZXJhdG9yP2l0ZXJhdG9yLmJpbmQoY29udGV4dCk6UHJvdG90eXBl Lks7dmFyIHJlc3VsdDt0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsaW5kZXgpe3Zh bHVlPWl0ZXJhdG9yKHZhbHVlLGluZGV4KTtpZihyZXN1bHQ9PXVuZGVmaW5lZHx8 dmFsdWU8cmVzdWx0KQpyZXN1bHQ9dmFsdWU7fSk7cmV0dXJuIHJlc3VsdDt9LHBh cnRpdGlvbjpmdW5jdGlvbihpdGVyYXRvcixjb250ZXh0KXtpdGVyYXRvcj1pdGVy YXRvcj9pdGVyYXRvci5iaW5kKGNvbnRleHQpOlByb3RvdHlwZS5LO3ZhciB0cnVl cz1bXSxmYWxzZXM9W107dGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLGluZGV4KXso aXRlcmF0b3IodmFsdWUsaW5kZXgpP3RydWVzOmZhbHNlcykucHVzaCh2YWx1ZSk7 fSk7cmV0dXJuW3RydWVzLGZhbHNlc107fSxwbHVjazpmdW5jdGlvbihwcm9wZXJ0 eSl7dmFyIHJlc3VsdHM9W107dGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlKXtyZXN1 bHRzLnB1c2godmFsdWVbcHJvcGVydHldKTt9KTtyZXR1cm4gcmVzdWx0czt9LHJl amVjdDpmdW5jdGlvbihpdGVyYXRvcixjb250ZXh0KXtpdGVyYXRvcj1pdGVyYXRv ci5iaW5kKGNvbnRleHQpO3ZhciByZXN1bHRzPVtdO3RoaXMuZWFjaChmdW5jdGlv bih2YWx1ZSxpbmRleCl7aWYoIWl0ZXJhdG9yKHZhbHVlLGluZGV4KSkKcmVzdWx0 cy5wdXNoKHZhbHVlKTt9KTtyZXR1cm4gcmVzdWx0czt9LHNvcnRCeTpmdW5jdGlv bihpdGVyYXRvcixjb250ZXh0KXtpdGVyYXRvcj1pdGVyYXRvci5iaW5kKGNvbnRl eHQpO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSxpbmRleCl7cmV0dXJu e3ZhbHVlOnZhbHVlLGNyaXRlcmlhOml0ZXJhdG9yKHZhbHVlLGluZGV4KX07fSku c29ydChmdW5jdGlvbihsZWZ0LHJpZ2h0KXt2YXIgYT1sZWZ0LmNyaXRlcmlhLGI9 cmlnaHQuY3JpdGVyaWE7cmV0dXJuIGE8Yj8tMTphPmI/MTowO30pLnBsdWNrKCd2 YWx1ZScpO30sdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcCgpO30s emlwOmZ1bmN0aW9uKCl7dmFyIGl0ZXJhdG9yPVByb3RvdHlwZS5LLGFyZ3M9JEEo YXJndW1lbnRzKTtpZihPYmplY3QuaXNGdW5jdGlvbihhcmdzLmxhc3QoKSkpCml0 ZXJhdG9yPWFyZ3MucG9wKCk7dmFyIGNvbGxlY3Rpb25zPVt0aGlzXS5jb25jYXQo YXJncykubWFwKCRBKTtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24odmFsdWUsaW5k ZXgpe3JldHVybiBpdGVyYXRvcihjb2xsZWN0aW9ucy5wbHVjayhpbmRleCkpO30p O30sc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvQXJyYXkoKS5sZW5ndGg7 fSxpbnNwZWN0OmZ1bmN0aW9uKCl7cmV0dXJuJyM8RW51bWVyYWJsZTonK3RoaXMu dG9BcnJheSgpLmluc3BlY3QoKSsnPic7fX07T2JqZWN0LmV4dGVuZChFbnVtZXJh YmxlLHttYXA6RW51bWVyYWJsZS5jb2xsZWN0LGZpbmQ6RW51bWVyYWJsZS5kZXRl Y3Qsc2VsZWN0OkVudW1lcmFibGUuZmluZEFsbCxmaWx0ZXI6RW51bWVyYWJsZS5m aW5kQWxsLG1lbWJlcjpFbnVtZXJhYmxlLmluY2x1ZGUsZW50cmllczpFbnVtZXJh YmxlLnRvQXJyYXksZXZlcnk6RW51bWVyYWJsZS5hbGwsc29tZTpFbnVtZXJhYmxl LmFueX0pO2Z1bmN0aW9uICRBKGl0ZXJhYmxlKXtpZighaXRlcmFibGUpcmV0dXJu W107aWYoaXRlcmFibGUudG9BcnJheSlyZXR1cm4gaXRlcmFibGUudG9BcnJheSgp O3ZhciBsZW5ndGg9aXRlcmFibGUubGVuZ3RoLHJlc3VsdHM9bmV3IEFycmF5KGxl bmd0aCk7d2hpbGUobGVuZ3RoLS0pcmVzdWx0c1tsZW5ndGhdPWl0ZXJhYmxlW2xl bmd0aF07cmV0dXJuIHJlc3VsdHM7fQppZihQcm90b3R5cGUuQnJvd3Nlci5XZWJL aXQpe2Z1bmN0aW9uICRBKGl0ZXJhYmxlKXtpZighaXRlcmFibGUpcmV0dXJuW107 aWYoIShPYmplY3QuaXNGdW5jdGlvbihpdGVyYWJsZSkmJml0ZXJhYmxlPT0nW29i amVjdCBOb2RlTGlzdF0nKSYmaXRlcmFibGUudG9BcnJheSlyZXR1cm4gaXRlcmFi bGUudG9BcnJheSgpO3ZhciBsZW5ndGg9aXRlcmFibGUubGVuZ3RoLHJlc3VsdHM9 bmV3IEFycmF5KGxlbmd0aCk7d2hpbGUobGVuZ3RoLS0pcmVzdWx0c1tsZW5ndGhd PWl0ZXJhYmxlW2xlbmd0aF07cmV0dXJuIHJlc3VsdHM7fX0KQXJyYXkuZnJvbT0k QTtPYmplY3QuZXh0ZW5kKEFycmF5LnByb3RvdHlwZSxFbnVtZXJhYmxlKTtpZigh QXJyYXkucHJvdG90eXBlLl9yZXZlcnNlKUFycmF5LnByb3RvdHlwZS5fcmV2ZXJz ZT1BcnJheS5wcm90b3R5cGUucmV2ZXJzZTtPYmplY3QuZXh0ZW5kKEFycmF5LnBy b3RvdHlwZSx7X2VhY2g6ZnVuY3Rpb24oaXRlcmF0b3Ipe2Zvcih2YXIgaT0wLGxl bmd0aD10aGlzLmxlbmd0aDtpPGxlbmd0aDtpKyspCml0ZXJhdG9yKHRoaXNbaV0p O30sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aD0wO3JldHVybiB0aGlzO30s Zmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXTt9LGxhc3Q6ZnVuY3Rpb24o KXtyZXR1cm4gdGhpc1t0aGlzLmxlbmd0aC0xXTt9LGNvbXBhY3Q6ZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1 ZSE9bnVsbDt9KTt9LGZsYXR0ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmpl Y3QoW10sZnVuY3Rpb24oYXJyYXksdmFsdWUpe3JldHVybiBhcnJheS5jb25jYXQo T2JqZWN0LmlzQXJyYXkodmFsdWUpP3ZhbHVlLmZsYXR0ZW4oKTpbdmFsdWVdKTt9 KTt9LHdpdGhvdXQ6ZnVuY3Rpb24oKXt2YXIgdmFsdWVzPSRBKGFyZ3VtZW50cyk7 cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4hdmFsdWVz LmluY2x1ZGUodmFsdWUpO30pO30scmV2ZXJzZTpmdW5jdGlvbihpbmxpbmUpe3Jl dHVybihpbmxpbmUhPT1mYWxzZT90aGlzOnRoaXMudG9BcnJheSgpKS5fcmV2ZXJz ZSgpO30scmVkdWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoPjE/dGhp czp0aGlzWzBdO30sdW5pcTpmdW5jdGlvbihzb3J0ZWQpe3JldHVybiB0aGlzLmlu amVjdChbXSxmdW5jdGlvbihhcnJheSx2YWx1ZSxpbmRleCl7aWYoMD09aW5kZXh8 fChzb3J0ZWQ/YXJyYXkubGFzdCgpIT12YWx1ZTohYXJyYXkuaW5jbHVkZSh2YWx1 ZSkpKQphcnJheS5wdXNoKHZhbHVlKTtyZXR1cm4gYXJyYXk7fSk7fSxpbnRlcnNl Y3Q6ZnVuY3Rpb24oYXJyYXkpe3JldHVybiB0aGlzLnVuaXEoKS5maW5kQWxsKGZ1 bmN0aW9uKGl0ZW0pe3JldHVybiBhcnJheS5kZXRlY3QoZnVuY3Rpb24odmFsdWUp e3JldHVybiBpdGVtPT09dmFsdWV9KTt9KTt9LGNsb25lOmZ1bmN0aW9uKCl7cmV0 dXJuW10uY29uY2F0KHRoaXMpO30sc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlz Lmxlbmd0aDt9LGluc3BlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4nWycrdGhpcy5tYXAo T2JqZWN0Lmluc3BlY3QpLmpvaW4oJywgJykrJ10nO30sdG9KU09OOmZ1bmN0aW9u KCl7dmFyIHJlc3VsdHM9W107dGhpcy5lYWNoKGZ1bmN0aW9uKG9iamVjdCl7dmFy IHZhbHVlPU9iamVjdC50b0pTT04ob2JqZWN0KTtpZih2YWx1ZSE9PXVuZGVmaW5l ZClyZXN1bHRzLnB1c2godmFsdWUpO30pO3JldHVybidbJytyZXN1bHRzLmpvaW4o JywgJykrJ10nO319KTtpZihPYmplY3QuaXNGdW5jdGlvbihBcnJheS5wcm90b3R5 cGUuZm9yRWFjaCkpCkFycmF5LnByb3RvdHlwZS5fZWFjaD1BcnJheS5wcm90b3R5 cGUuZm9yRWFjaDtpZighQXJyYXkucHJvdG90eXBlLmluZGV4T2YpQXJyYXkucHJv dG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oaXRlbSxpKXtpfHwoaT0wKTt2YXIgbGVu Z3RoPXRoaXMubGVuZ3RoO2lmKGk8MClpPWxlbmd0aCtpO2Zvcig7aTxsZW5ndGg7 aSsrKQppZih0aGlzW2ldPT09aXRlbSlyZXR1cm4gaTtyZXR1cm4tMTt9O2lmKCFB cnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpQXJyYXkucHJvdG90eXBlLmxhc3RJ bmRleE9mPWZ1bmN0aW9uKGl0ZW0saSl7aT1pc05hTihpKT90aGlzLmxlbmd0aDoo aTwwP3RoaXMubGVuZ3RoK2k6aSkrMTt2YXIgbj10aGlzLnNsaWNlKDAsaSkucmV2 ZXJzZSgpLmluZGV4T2YoaXRlbSk7cmV0dXJuKG48MCk/bjppLW4tMTt9O0FycmF5 LnByb3RvdHlwZS50b0FycmF5PUFycmF5LnByb3RvdHlwZS5jbG9uZTtmdW5jdGlv biAkdyhzdHJpbmcpe2lmKCFPYmplY3QuaXNTdHJpbmcoc3RyaW5nKSlyZXR1cm5b XTtzdHJpbmc9c3RyaW5nLnN0cmlwKCk7cmV0dXJuIHN0cmluZz9zdHJpbmcuc3Bs aXQoL1xzKy8pOltdO30KaWYoUHJvdG90eXBlLkJyb3dzZXIuT3BlcmEpe0FycmF5 LnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24oKXt2YXIgYXJyYXk9W107Zm9yKHZh ciBpPTAsbGVuZ3RoPXRoaXMubGVuZ3RoO2k8bGVuZ3RoO2krKylhcnJheS5wdXNo KHRoaXNbaV0pO2Zvcih2YXIgaT0wLGxlbmd0aD1hcmd1bWVudHMubGVuZ3RoO2k8 bGVuZ3RoO2krKyl7aWYoT2JqZWN0LmlzQXJyYXkoYXJndW1lbnRzW2ldKSl7Zm9y KHZhciBqPTAsYXJyYXlMZW5ndGg9YXJndW1lbnRzW2ldLmxlbmd0aDtqPGFycmF5 TGVuZ3RoO2orKykKYXJyYXkucHVzaChhcmd1bWVudHNbaV1bal0pO31lbHNle2Fy cmF5LnB1c2goYXJndW1lbnRzW2ldKTt9fQpyZXR1cm4gYXJyYXk7fTt9Ck9iamVj dC5leHRlbmQoTnVtYmVyLnByb3RvdHlwZSx7dG9Db2xvclBhcnQ6ZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy50b1BhZGRlZFN0cmluZygyLDE2KTt9LHN1Y2M6ZnVuY3Rp b24oKXtyZXR1cm4gdGhpcysxO30sdGltZXM6ZnVuY3Rpb24oaXRlcmF0b3IpeyRS KDAsdGhpcyx0cnVlKS5lYWNoKGl0ZXJhdG9yKTtyZXR1cm4gdGhpczt9LHRvUGFk ZGVkU3RyaW5nOmZ1bmN0aW9uKGxlbmd0aCxyYWRpeCl7dmFyIHN0cmluZz10aGlz LnRvU3RyaW5nKHJhZGl4fHwxMCk7cmV0dXJuJzAnLnRpbWVzKGxlbmd0aC1zdHJp bmcubGVuZ3RoKStzdHJpbmc7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gaXNG aW5pdGUodGhpcyk/dGhpcy50b1N0cmluZygpOidudWxsJzt9fSk7JHcoJ2FicyBy b3VuZCBjZWlsIGZsb29yJykuZWFjaChmdW5jdGlvbihtZXRob2Qpe051bWJlci5w cm90b3R5cGVbbWV0aG9kXT1NYXRoW21ldGhvZF0ubWV0aG9kaXplKCk7fSk7ZnVu Y3Rpb24gJEgob2JqZWN0KXtyZXR1cm4gbmV3IEhhc2gob2JqZWN0KTt9O3ZhciBI YXNoPUNsYXNzLmNyZWF0ZShFbnVtZXJhYmxlLChmdW5jdGlvbigpe2lmKGZ1bmN0 aW9uKCl7dmFyIGk9MCxUZXN0PWZ1bmN0aW9uKHZhbHVlKXt0aGlzLmtleT12YWx1 ZX07VGVzdC5wcm90b3R5cGUua2V5PSdmb28nO2Zvcih2YXIgcHJvcGVydHkgaW4g bmV3IFRlc3QoJ2JhcicpKWkrKztyZXR1cm4gaT4xO30oKSl7ZnVuY3Rpb24gZWFj aChpdGVyYXRvcil7dmFyIGNhY2hlPVtdO2Zvcih2YXIga2V5IGluIHRoaXMuX29i amVjdCl7dmFyIHZhbHVlPXRoaXMuX29iamVjdFtrZXldO2lmKGNhY2hlLmluY2x1 ZGUoa2V5KSljb250aW51ZTtjYWNoZS5wdXNoKGtleSk7dmFyIHBhaXI9W2tleSx2 YWx1ZV07cGFpci5rZXk9a2V5O3BhaXIudmFsdWU9dmFsdWU7aXRlcmF0b3IocGFp cik7fX19ZWxzZXtmdW5jdGlvbiBlYWNoKGl0ZXJhdG9yKXtmb3IodmFyIGtleSBp biB0aGlzLl9vYmplY3Qpe3ZhciB2YWx1ZT10aGlzLl9vYmplY3Rba2V5XSxwYWly PVtrZXksdmFsdWVdO3BhaXIua2V5PWtleTtwYWlyLnZhbHVlPXZhbHVlO2l0ZXJh dG9yKHBhaXIpO319fQpmdW5jdGlvbiB0b1F1ZXJ5UGFpcihrZXksdmFsdWUpe2lm KE9iamVjdC5pc1VuZGVmaW5lZCh2YWx1ZSkpcmV0dXJuIGtleTtyZXR1cm4ga2V5 Kyc9JytlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nLmludGVycHJldCh2YWx1ZSkp O30KcmV0dXJue2luaXRpYWxpemU6ZnVuY3Rpb24ob2JqZWN0KXt0aGlzLl9vYmpl Y3Q9T2JqZWN0LmlzSGFzaChvYmplY3QpP29iamVjdC50b09iamVjdCgpOk9iamVj dC5jbG9uZShvYmplY3QpO30sX2VhY2g6ZWFjaCxzZXQ6ZnVuY3Rpb24oa2V5LHZh bHVlKXtyZXR1cm4gdGhpcy5fb2JqZWN0W2tleV09dmFsdWU7fSxnZXQ6ZnVuY3Rp b24oa2V5KXtyZXR1cm4gdGhpcy5fb2JqZWN0W2tleV07fSx1bnNldDpmdW5jdGlv bihrZXkpe3ZhciB2YWx1ZT10aGlzLl9vYmplY3Rba2V5XTtkZWxldGUgdGhpcy5f b2JqZWN0W2tleV07cmV0dXJuIHZhbHVlO30sdG9PYmplY3Q6ZnVuY3Rpb24oKXty ZXR1cm4gT2JqZWN0LmNsb25lKHRoaXMuX29iamVjdCk7fSxrZXlzOmZ1bmN0aW9u KCl7cmV0dXJuIHRoaXMucGx1Y2soJ2tleScpO30sdmFsdWVzOmZ1bmN0aW9uKCl7 cmV0dXJuIHRoaXMucGx1Y2soJ3ZhbHVlJyk7fSxpbmRleDpmdW5jdGlvbih2YWx1 ZSl7dmFyIG1hdGNoPXRoaXMuZGV0ZWN0KGZ1bmN0aW9uKHBhaXIpe3JldHVybiBw YWlyLnZhbHVlPT09dmFsdWU7fSk7cmV0dXJuIG1hdGNoJiZtYXRjaC5rZXk7fSxt ZXJnZTpmdW5jdGlvbihvYmplY3Qpe3JldHVybiB0aGlzLmNsb25lKCkudXBkYXRl KG9iamVjdCk7fSx1cGRhdGU6ZnVuY3Rpb24ob2JqZWN0KXtyZXR1cm4gbmV3IEhh c2gob2JqZWN0KS5pbmplY3QodGhpcyxmdW5jdGlvbihyZXN1bHQscGFpcil7cmVz dWx0LnNldChwYWlyLmtleSxwYWlyLnZhbHVlKTtyZXR1cm4gcmVzdWx0O30pO30s dG9RdWVyeVN0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlv bihwYWlyKXt2YXIga2V5PWVuY29kZVVSSUNvbXBvbmVudChwYWlyLmtleSksdmFs dWVzPXBhaXIudmFsdWU7aWYodmFsdWVzJiZ0eXBlb2YgdmFsdWVzPT0nb2JqZWN0 Jyl7aWYoT2JqZWN0LmlzQXJyYXkodmFsdWVzKSkKcmV0dXJuIHZhbHVlcy5tYXAo dG9RdWVyeVBhaXIuY3Vycnkoa2V5KSkuam9pbignJicpO30KcmV0dXJuIHRvUXVl cnlQYWlyKGtleSx2YWx1ZXMpO30pLmpvaW4oJyYnKTt9LGluc3BlY3Q6ZnVuY3Rp b24oKXtyZXR1cm4nIzxIYXNoOnsnK3RoaXMubWFwKGZ1bmN0aW9uKHBhaXIpe3Jl dHVybiBwYWlyLm1hcChPYmplY3QuaW5zcGVjdCkuam9pbignOiAnKTt9KS5qb2lu KCcsICcpKyd9Pic7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LnRv SlNPTih0aGlzLnRvT2JqZWN0KCkpO30sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4g bmV3IEhhc2godGhpcyk7fX19KSgpKTtIYXNoLnByb3RvdHlwZS50b1RlbXBsYXRl UmVwbGFjZW1lbnRzPUhhc2gucHJvdG90eXBlLnRvT2JqZWN0O0hhc2guZnJvbT0k SDt2YXIgT2JqZWN0UmFuZ2U9Q2xhc3MuY3JlYXRlKEVudW1lcmFibGUse2luaXRp YWxpemU6ZnVuY3Rpb24oc3RhcnQsZW5kLGV4Y2x1c2l2ZSl7dGhpcy5zdGFydD1z dGFydDt0aGlzLmVuZD1lbmQ7dGhpcy5leGNsdXNpdmU9ZXhjbHVzaXZlO30sX2Vh Y2g6ZnVuY3Rpb24oaXRlcmF0b3Ipe3ZhciB2YWx1ZT10aGlzLnN0YXJ0O3doaWxl KHRoaXMuaW5jbHVkZSh2YWx1ZSkpe2l0ZXJhdG9yKHZhbHVlKTt2YWx1ZT12YWx1 ZS5zdWNjKCk7fX0saW5jbHVkZTpmdW5jdGlvbih2YWx1ZSl7aWYodmFsdWU8dGhp cy5zdGFydCkKcmV0dXJuIGZhbHNlO2lmKHRoaXMuZXhjbHVzaXZlKQpyZXR1cm4g dmFsdWU8dGhpcy5lbmQ7cmV0dXJuIHZhbHVlPD10aGlzLmVuZDt9fSk7dmFyICRS PWZ1bmN0aW9uKHN0YXJ0LGVuZCxleGNsdXNpdmUpe3JldHVybiBuZXcgT2JqZWN0 UmFuZ2Uoc3RhcnQsZW5kLGV4Y2x1c2l2ZSk7fTt2YXIgQWpheD17Z2V0VHJhbnNw b3J0OmZ1bmN0aW9uKCl7cmV0dXJuIFRyeS50aGVzZShmdW5jdGlvbigpe3JldHVy biBuZXcgWE1MSHR0cFJlcXVlc3QoKX0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFj dGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQJyl9LGZ1bmN0aW9uKCl7cmV0dXJu IG5ldyBBY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MSFRUUCcpfSl8fGZhbHNl O30sYWN0aXZlUmVxdWVzdENvdW50OjB9O0FqYXguUmVzcG9uZGVycz17cmVzcG9u ZGVyczpbXSxfZWFjaDpmdW5jdGlvbihpdGVyYXRvcil7dGhpcy5yZXNwb25kZXJz Ll9lYWNoKGl0ZXJhdG9yKTt9LHJlZ2lzdGVyOmZ1bmN0aW9uKHJlc3BvbmRlcil7 aWYoIXRoaXMuaW5jbHVkZShyZXNwb25kZXIpKQp0aGlzLnJlc3BvbmRlcnMucHVz aChyZXNwb25kZXIpO30sdW5yZWdpc3RlcjpmdW5jdGlvbihyZXNwb25kZXIpe3Ro aXMucmVzcG9uZGVycz10aGlzLnJlc3BvbmRlcnMud2l0aG91dChyZXNwb25kZXIp O30sZGlzcGF0Y2g6ZnVuY3Rpb24oY2FsbGJhY2sscmVxdWVzdCx0cmFuc3BvcnQs anNvbil7dGhpcy5lYWNoKGZ1bmN0aW9uKHJlc3BvbmRlcil7aWYoT2JqZWN0Lmlz RnVuY3Rpb24ocmVzcG9uZGVyW2NhbGxiYWNrXSkpe3RyeXtyZXNwb25kZXJbY2Fs bGJhY2tdLmFwcGx5KHJlc3BvbmRlcixbcmVxdWVzdCx0cmFuc3BvcnQsanNvbl0p O31jYXRjaChlKXt9fX0pO319O09iamVjdC5leHRlbmQoQWpheC5SZXNwb25kZXJz LEVudW1lcmFibGUpO0FqYXguUmVzcG9uZGVycy5yZWdpc3Rlcih7b25DcmVhdGU6 ZnVuY3Rpb24oKXtBamF4LmFjdGl2ZVJlcXVlc3RDb3VudCsrfSxvbkNvbXBsZXRl OmZ1bmN0aW9uKCl7QWpheC5hY3RpdmVSZXF1ZXN0Q291bnQtLX19KTtBamF4LkJh c2U9Q2xhc3MuY3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKG9wdGlvbnMpe3Ro aXMub3B0aW9ucz17bWV0aG9kOidwb3N0Jyxhc3luY2hyb25vdXM6dHJ1ZSxjb250 ZW50VHlwZTonYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxlbmNv ZGluZzonVVRGLTgnLHBhcmFtZXRlcnM6JycsZXZhbEpTT046dHJ1ZSxldmFsSlM6 dHJ1ZX07T2JqZWN0LmV4dGVuZCh0aGlzLm9wdGlvbnMsb3B0aW9uc3x8e30pO3Ro aXMub3B0aW9ucy5tZXRob2Q9dGhpcy5vcHRpb25zLm1ldGhvZC50b0xvd2VyQ2Fz ZSgpO2lmKE9iamVjdC5pc1N0cmluZyh0aGlzLm9wdGlvbnMucGFyYW1ldGVycykp CnRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzPXRoaXMub3B0aW9ucy5wYXJhbWV0ZXJz LnRvUXVlcnlQYXJhbXMoKTt9fSk7QWpheC5SZXF1ZXN0PUNsYXNzLmNyZWF0ZShB amF4LkJhc2Use19jb21wbGV0ZTpmYWxzZSxpbml0aWFsaXplOmZ1bmN0aW9uKCRz dXBlcix1cmwsb3B0aW9ucyl7JHN1cGVyKG9wdGlvbnMpO3RoaXMudHJhbnNwb3J0 PUFqYXguZ2V0VHJhbnNwb3J0KCk7dGhpcy5yZXF1ZXN0KHVybCk7fSxyZXF1ZXN0 OmZ1bmN0aW9uKHVybCl7dGhpcy51cmw9dXJsO3RoaXMubWV0aG9kPXRoaXMub3B0 aW9ucy5tZXRob2Q7dmFyIHBhcmFtcz1PYmplY3QuY2xvbmUodGhpcy5vcHRpb25z LnBhcmFtZXRlcnMpO2lmKCFbJ2dldCcsJ3Bvc3QnXS5pbmNsdWRlKHRoaXMubWV0 aG9kKSl7cGFyYW1zWydfbWV0aG9kJ109dGhpcy5tZXRob2Q7dGhpcy5tZXRob2Q9 J3Bvc3QnO30KdGhpcy5wYXJhbWV0ZXJzPXBhcmFtcztpZihwYXJhbXM9T2JqZWN0 LnRvUXVlcnlTdHJpbmcocGFyYW1zKSl7aWYodGhpcy5tZXRob2Q9PSdnZXQnKQp0 aGlzLnVybCs9KHRoaXMudXJsLmluY2x1ZGUoJz8nKT8nJic6Jz8nKStwYXJhbXM7 ZWxzZSBpZigvS29ucXVlcm9yfFNhZmFyaXxLSFRNTC8udGVzdChuYXZpZ2F0b3Iu dXNlckFnZW50KSkKcGFyYW1zKz0nJl89Jzt9CnRyeXt2YXIgcmVzcG9uc2U9bmV3 IEFqYXguUmVzcG9uc2UodGhpcyk7aWYodGhpcy5vcHRpb25zLm9uQ3JlYXRlKXRo aXMub3B0aW9ucy5vbkNyZWF0ZShyZXNwb25zZSk7QWpheC5SZXNwb25kZXJzLmRp c3BhdGNoKCdvbkNyZWF0ZScsdGhpcyxyZXNwb25zZSk7dGhpcy50cmFuc3BvcnQu b3Blbih0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHRoaXMudXJsLHRoaXMub3B0 aW9ucy5hc3luY2hyb25vdXMpO2lmKHRoaXMub3B0aW9ucy5hc3luY2hyb25vdXMp dGhpcy5yZXNwb25kVG9SZWFkeVN0YXRlLmJpbmQodGhpcykuZGVmZXIoMSk7dGhp cy50cmFuc3BvcnQub25yZWFkeXN0YXRlY2hhbmdlPXRoaXMub25TdGF0ZUNoYW5n ZS5iaW5kKHRoaXMpO3RoaXMuc2V0UmVxdWVzdEhlYWRlcnMoKTt0aGlzLmJvZHk9 dGhpcy5tZXRob2Q9PSdwb3N0Jz8odGhpcy5vcHRpb25zLnBvc3RCb2R5fHxwYXJh bXMpOm51bGw7dGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLmJvZHkpO2lmKCF0aGlz Lm9wdGlvbnMuYXN5bmNocm9ub3VzJiZ0aGlzLnRyYW5zcG9ydC5vdmVycmlkZU1p bWVUeXBlKQp0aGlzLm9uU3RhdGVDaGFuZ2UoKTt9CmNhdGNoKGUpe3RoaXMuZGlz cGF0Y2hFeGNlcHRpb24oZSk7fX0sb25TdGF0ZUNoYW5nZTpmdW5jdGlvbigpe3Zh ciByZWFkeVN0YXRlPXRoaXMudHJhbnNwb3J0LnJlYWR5U3RhdGU7aWYocmVhZHlT dGF0ZT4xJiYhKChyZWFkeVN0YXRlPT00KSYmdGhpcy5fY29tcGxldGUpKQp0aGlz LnJlc3BvbmRUb1JlYWR5U3RhdGUodGhpcy50cmFuc3BvcnQucmVhZHlTdGF0ZSk7 fSxzZXRSZXF1ZXN0SGVhZGVyczpmdW5jdGlvbigpe3ZhciBoZWFkZXJzPXsnWC1S ZXF1ZXN0ZWQtV2l0aCc6J1hNTEh0dHBSZXF1ZXN0JywnWC1Qcm90b3R5cGUtVmVy c2lvbic6UHJvdG90eXBlLlZlcnNpb24sJ0FjY2VwdCc6J3RleHQvamF2YXNjcmlw dCwgdGV4dC9odG1sLCBhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sLCAqLyonfTtp Zih0aGlzLm1ldGhvZD09J3Bvc3QnKXtoZWFkZXJzWydDb250ZW50LXR5cGUnXT10 aGlzLm9wdGlvbnMuY29udGVudFR5cGUrCih0aGlzLm9wdGlvbnMuZW5jb2Rpbmc/ JzsgY2hhcnNldD0nK3RoaXMub3B0aW9ucy5lbmNvZGluZzonJyk7aWYodGhpcy50 cmFuc3BvcnQub3ZlcnJpZGVNaW1lVHlwZSYmKG5hdmlnYXRvci51c2VyQWdlbnQu bWF0Y2goL0dlY2tvXC8oXGR7NH0pLyl8fFswLDIwMDVdKVsxXTwyMDA1KQpoZWFk ZXJzWydDb25uZWN0aW9uJ109J2Nsb3NlJzt9CmlmKHR5cGVvZiB0aGlzLm9wdGlv bnMucmVxdWVzdEhlYWRlcnM9PSdvYmplY3QnKXt2YXIgZXh0cmFzPXRoaXMub3B0 aW9ucy5yZXF1ZXN0SGVhZGVycztpZihPYmplY3QuaXNGdW5jdGlvbihleHRyYXMu cHVzaCkpCmZvcih2YXIgaT0wLGxlbmd0aD1leHRyYXMubGVuZ3RoO2k8bGVuZ3Ro O2krPTIpCmhlYWRlcnNbZXh0cmFzW2ldXT1leHRyYXNbaSsxXTtlbHNlCiRIKGV4 dHJhcykuZWFjaChmdW5jdGlvbihwYWlyKXtoZWFkZXJzW3BhaXIua2V5XT1wYWly LnZhbHVlfSk7fQpmb3IodmFyIG5hbWUgaW4gaGVhZGVycykKdGhpcy50cmFuc3Bv cnQuc2V0UmVxdWVzdEhlYWRlcihuYW1lLGhlYWRlcnNbbmFtZV0pO30sc3VjY2Vz czpmdW5jdGlvbigpe3ZhciBzdGF0dXM9dGhpcy5nZXRTdGF0dXMoKTtyZXR1cm4h c3RhdHVzfHwoc3RhdHVzPj0yMDAmJnN0YXR1czwzMDApO30sZ2V0U3RhdHVzOmZ1 bmN0aW9uKCl7dHJ5e3JldHVybiB0aGlzLnRyYW5zcG9ydC5zdGF0dXN8fDA7fWNh dGNoKGUpe3JldHVybiAwfX0scmVzcG9uZFRvUmVhZHlTdGF0ZTpmdW5jdGlvbihy ZWFkeVN0YXRlKXt2YXIgc3RhdGU9QWpheC5SZXF1ZXN0LkV2ZW50c1tyZWFkeVN0 YXRlXSxyZXNwb25zZT1uZXcgQWpheC5SZXNwb25zZSh0aGlzKTtpZihzdGF0ZT09 J0NvbXBsZXRlJyl7dHJ5e3RoaXMuX2NvbXBsZXRlPXRydWU7KHRoaXMub3B0aW9u c1snb24nK3Jlc3BvbnNlLnN0YXR1c118fHRoaXMub3B0aW9uc1snb24nKyh0aGlz LnN1Y2Nlc3MoKT8nU3VjY2Vzcyc6J0ZhaWx1cmUnKV18fFByb3RvdHlwZS5lbXB0 eUZ1bmN0aW9uKShyZXNwb25zZSxyZXNwb25zZS5oZWFkZXJKU09OKTt9Y2F0Y2go ZSl7dGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihlKTt9CnZhciBjb250ZW50VHlwZT1y ZXNwb25zZS5nZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScpO2lmKHRoaXMub3B0aW9u cy5ldmFsSlM9PSdmb3JjZSd8fCh0aGlzLm9wdGlvbnMuZXZhbEpTJiZjb250ZW50 VHlwZSYmY29udGVudFR5cGUubWF0Y2goL15ccyoodGV4dHxhcHBsaWNhdGlvbilc Lyh4LSk/KGphdmF8ZWNtYSlzY3JpcHQoOy4qKT9ccyokL2kpKSkKdGhpcy5ldmFs UmVzcG9uc2UoKTt9CnRyeXsodGhpcy5vcHRpb25zWydvbicrc3RhdGVdfHxQcm90 b3R5cGUuZW1wdHlGdW5jdGlvbikocmVzcG9uc2UscmVzcG9uc2UuaGVhZGVySlNP Tik7QWpheC5SZXNwb25kZXJzLmRpc3BhdGNoKCdvbicrc3RhdGUsdGhpcyxyZXNw b25zZSxyZXNwb25zZS5oZWFkZXJKU09OKTt9Y2F0Y2goZSl7dGhpcy5kaXNwYXRj aEV4Y2VwdGlvbihlKTt9CmlmKHN0YXRlPT0nQ29tcGxldGUnKXt0aGlzLnRyYW5z cG9ydC5vbnJlYWR5c3RhdGVjaGFuZ2U9UHJvdG90eXBlLmVtcHR5RnVuY3Rpb247 fX0sZ2V0SGVhZGVyOmZ1bmN0aW9uKG5hbWUpe3RyeXtyZXR1cm4gdGhpcy50cmFu c3BvcnQuZ2V0UmVzcG9uc2VIZWFkZXIobmFtZSk7fWNhdGNoKGUpe3JldHVybiBu dWxsfX0sZXZhbFJlc3BvbnNlOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBldmFsKCh0 aGlzLnRyYW5zcG9ydC5yZXNwb25zZVRleHR8fCcnKS51bmZpbHRlckpTT04oKSk7 fWNhdGNoKGUpe3RoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSk7fX0sZGlzcGF0Y2hF eGNlcHRpb246ZnVuY3Rpb24oZXhjZXB0aW9uKXsodGhpcy5vcHRpb25zLm9uRXhj ZXB0aW9ufHxQcm90b3R5cGUuZW1wdHlGdW5jdGlvbikodGhpcyxleGNlcHRpb24p O0FqYXguUmVzcG9uZGVycy5kaXNwYXRjaCgnb25FeGNlcHRpb24nLHRoaXMsZXhj ZXB0aW9uKTt9fSk7QWpheC5SZXF1ZXN0LkV2ZW50cz1bJ1VuaW5pdGlhbGl6ZWQn LCdMb2FkaW5nJywnTG9hZGVkJywnSW50ZXJhY3RpdmUnLCdDb21wbGV0ZSddO0Fq YXguUmVzcG9uc2U9Q2xhc3MuY3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKHJl cXVlc3Qpe3RoaXMucmVxdWVzdD1yZXF1ZXN0O3ZhciB0cmFuc3BvcnQ9dGhpcy50 cmFuc3BvcnQ9cmVxdWVzdC50cmFuc3BvcnQscmVhZHlTdGF0ZT10aGlzLnJlYWR5 U3RhdGU9dHJhbnNwb3J0LnJlYWR5U3RhdGU7aWYoKHJlYWR5U3RhdGU+MiYmIVBy b3RvdHlwZS5Ccm93c2VyLklFKXx8cmVhZHlTdGF0ZT09NCl7dGhpcy5zdGF0dXM9 dGhpcy5nZXRTdGF0dXMoKTt0aGlzLnN0YXR1c1RleHQ9dGhpcy5nZXRTdGF0dXNU ZXh0KCk7dGhpcy5yZXNwb25zZVRleHQ9U3RyaW5nLmludGVycHJldCh0cmFuc3Bv cnQucmVzcG9uc2VUZXh0KTt0aGlzLmhlYWRlckpTT049dGhpcy5fZ2V0SGVhZGVy SlNPTigpO30KaWYocmVhZHlTdGF0ZT09NCl7dmFyIHhtbD10cmFuc3BvcnQucmVz cG9uc2VYTUw7dGhpcy5yZXNwb25zZVhNTD14bWw9PT11bmRlZmluZWQ/bnVsbDp4 bWw7dGhpcy5yZXNwb25zZUpTT049dGhpcy5fZ2V0UmVzcG9uc2VKU09OKCk7fX0s c3RhdHVzOjAsc3RhdHVzVGV4dDonJyxnZXRTdGF0dXM6QWpheC5SZXF1ZXN0LnBy b3RvdHlwZS5nZXRTdGF0dXMsZ2V0U3RhdHVzVGV4dDpmdW5jdGlvbigpe3RyeXty ZXR1cm4gdGhpcy50cmFuc3BvcnQuc3RhdHVzVGV4dHx8Jyc7fWNhdGNoKGUpe3Jl dHVybicnfX0sZ2V0SGVhZGVyOkFqYXguUmVxdWVzdC5wcm90b3R5cGUuZ2V0SGVh ZGVyLGdldEFsbEhlYWRlcnM6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHRoaXMuZ2V0 QWxsUmVzcG9uc2VIZWFkZXJzKCk7fWNhdGNoKGUpe3JldHVybiBudWxsfX0sZ2V0 UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24obmFtZSl7cmV0dXJuIHRoaXMudHJhbnNw b3J0LmdldFJlc3BvbnNlSGVhZGVyKG5hbWUpO30sZ2V0QWxsUmVzcG9uc2VIZWFk ZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNwb3J0LmdldEFsbFJlc3Bv bnNlSGVhZGVycygpO30sX2dldEhlYWRlckpTT046ZnVuY3Rpb24oKXt2YXIganNv bj10aGlzLmdldEhlYWRlcignWC1KU09OJyk7aWYoIWpzb24pcmV0dXJuIG51bGw7 anNvbj1kZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGpzb24pKTt0cnl7cmV0dXJu IGpzb24uZXZhbEpTT04odGhpcy5yZXF1ZXN0Lm9wdGlvbnMuc2FuaXRpemVKU09O KTt9Y2F0Y2goZSl7dGhpcy5yZXF1ZXN0LmRpc3BhdGNoRXhjZXB0aW9uKGUpO319 LF9nZXRSZXNwb25zZUpTT046ZnVuY3Rpb24oKXt2YXIgb3B0aW9ucz10aGlzLnJl cXVlc3Qub3B0aW9ucztpZighb3B0aW9ucy5ldmFsSlNPTnx8KG9wdGlvbnMuZXZh bEpTT04hPSdmb3JjZScmJiEodGhpcy5nZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScp fHwnJykuaW5jbHVkZSgnYXBwbGljYXRpb24vanNvbicpKSkKcmV0dXJuIG51bGw7 dHJ5e3JldHVybiB0aGlzLnRyYW5zcG9ydC5yZXNwb25zZVRleHQuZXZhbEpTT04o b3B0aW9ucy5zYW5pdGl6ZUpTT04pO31jYXRjaChlKXt0aGlzLnJlcXVlc3QuZGlz cGF0Y2hFeGNlcHRpb24oZSk7fX19KTtBamF4LlVwZGF0ZXI9Q2xhc3MuY3JlYXRl KEFqYXguUmVxdWVzdCx7aW5pdGlhbGl6ZTpmdW5jdGlvbigkc3VwZXIsY29udGFp bmVyLHVybCxvcHRpb25zKXt0aGlzLmNvbnRhaW5lcj17c3VjY2VzczooY29udGFp bmVyLnN1Y2Nlc3N8fGNvbnRhaW5lciksZmFpbHVyZTooY29udGFpbmVyLmZhaWx1 cmV8fChjb250YWluZXIuc3VjY2Vzcz9udWxsOmNvbnRhaW5lcikpfTtvcHRpb25z PW9wdGlvbnN8fHt9O3ZhciBvbkNvbXBsZXRlPW9wdGlvbnMub25Db21wbGV0ZTtv cHRpb25zLm9uQ29tcGxldGU9KGZ1bmN0aW9uKHJlc3BvbnNlLHBhcmFtKXt0aGlz LnVwZGF0ZUNvbnRlbnQocmVzcG9uc2UucmVzcG9uc2VUZXh0KTtpZihPYmplY3Qu aXNGdW5jdGlvbihvbkNvbXBsZXRlKSlvbkNvbXBsZXRlKHJlc3BvbnNlLHBhcmFt KTt9KS5iaW5kKHRoaXMpOyRzdXBlcih1cmwsb3B0aW9ucyk7fSx1cGRhdGVDb250 ZW50OmZ1bmN0aW9uKHJlc3BvbnNlVGV4dCl7dmFyIHJlY2VpdmVyPXRoaXMuY29u dGFpbmVyW3RoaXMuc3VjY2VzcygpPydzdWNjZXNzJzonZmFpbHVyZSddLG9wdGlv bnM9dGhpcy5vcHRpb25zO2lmKCFvcHRpb25zLmV2YWxTY3JpcHRzKXJlc3BvbnNl VGV4dD1yZXNwb25zZVRleHQuc3RyaXBTY3JpcHRzKCk7aWYocmVjZWl2ZXI9JChy ZWNlaXZlcikpe2lmKG9wdGlvbnMuaW5zZXJ0aW9uKXtpZihPYmplY3QuaXNTdHJp bmcob3B0aW9ucy5pbnNlcnRpb24pKXt2YXIgaW5zZXJ0aW9uPXt9O2luc2VydGlv bltvcHRpb25zLmluc2VydGlvbl09cmVzcG9uc2VUZXh0O3JlY2VpdmVyLmluc2Vy dChpbnNlcnRpb24pO30KZWxzZSBvcHRpb25zLmluc2VydGlvbihyZWNlaXZlcixy ZXNwb25zZVRleHQpO30KZWxzZSByZWNlaXZlci51cGRhdGUocmVzcG9uc2VUZXh0 KTt9CmlmKHRoaXMuc3VjY2VzcygpKXtpZih0aGlzLm9uQ29tcGxldGUpdGhpcy5v bkNvbXBsZXRlLmJpbmQodGhpcykuZGVmZXIoKTt9fX0pO0FqYXguUGVyaW9kaWNh bFVwZGF0ZXI9Q2xhc3MuY3JlYXRlKEFqYXguQmFzZSx7aW5pdGlhbGl6ZTpmdW5j dGlvbigkc3VwZXIsY29udGFpbmVyLHVybCxvcHRpb25zKXskc3VwZXIob3B0aW9u cyk7dGhpcy5vbkNvbXBsZXRlPXRoaXMub3B0aW9ucy5vbkNvbXBsZXRlO3RoaXMu ZnJlcXVlbmN5PSh0aGlzLm9wdGlvbnMuZnJlcXVlbmN5fHwyKTt0aGlzLmRlY2F5 PSh0aGlzLm9wdGlvbnMuZGVjYXl8fDEpO3RoaXMudXBkYXRlcj17fTt0aGlzLmNv bnRhaW5lcj1jb250YWluZXI7dGhpcy51cmw9dXJsO3RoaXMuc3RhcnQoKTt9LHN0 YXJ0OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uQ29tcGxldGU9dGhpcy51cGRh dGVDb21wbGV0ZS5iaW5kKHRoaXMpO3RoaXMub25UaW1lckV2ZW50KCk7fSxzdG9w OmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVyLm9wdGlvbnMub25Db21wbGV0ZT11bmRl ZmluZWQ7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpOyh0aGlzLm9uQ29tcGxldGV8 fFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7 fSx1cGRhdGVDb21wbGV0ZTpmdW5jdGlvbihyZXNwb25zZSl7aWYodGhpcy5vcHRp b25zLmRlY2F5KXt0aGlzLmRlY2F5PShyZXNwb25zZS5yZXNwb25zZVRleHQ9PXRo aXMubGFzdFRleHQ/dGhpcy5kZWNheSp0aGlzLm9wdGlvbnMuZGVjYXk6MSk7dGhp cy5sYXN0VGV4dD1yZXNwb25zZS5yZXNwb25zZVRleHQ7fQp0aGlzLnRpbWVyPXRo aXMub25UaW1lckV2ZW50LmJpbmQodGhpcykuZGVsYXkodGhpcy5kZWNheSp0aGlz LmZyZXF1ZW5jeSk7fSxvblRpbWVyRXZlbnQ6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0 ZXI9bmV3IEFqYXguVXBkYXRlcih0aGlzLmNvbnRhaW5lcix0aGlzLnVybCx0aGlz Lm9wdGlvbnMpO319KTtmdW5jdGlvbiAkKGVsZW1lbnQpe2lmKGFyZ3VtZW50cy5s ZW5ndGg+MSl7Zm9yKHZhciBpPTAsZWxlbWVudHM9W10sbGVuZ3RoPWFyZ3VtZW50 cy5sZW5ndGg7aTxsZW5ndGg7aSsrKQplbGVtZW50cy5wdXNoKCQoYXJndW1lbnRz W2ldKSk7cmV0dXJuIGVsZW1lbnRzO30KaWYoT2JqZWN0LmlzU3RyaW5nKGVsZW1l bnQpKQplbGVtZW50PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpO3Jl dHVybiBFbGVtZW50LmV4dGVuZChlbGVtZW50KTt9CmlmKFByb3RvdHlwZS5Ccm93 c2VyRmVhdHVyZXMuWFBhdGgpe2RvY3VtZW50Ll9nZXRFbGVtZW50c0J5WFBhdGg9 ZnVuY3Rpb24oZXhwcmVzc2lvbixwYXJlbnRFbGVtZW50KXt2YXIgcmVzdWx0cz1b XTt2YXIgcXVlcnk9ZG9jdW1lbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwkKHBhcmVu dEVsZW1lbnQpfHxkb2N1bWVudCxudWxsLFhQYXRoUmVzdWx0Lk9SREVSRURfTk9E RV9TTkFQU0hPVF9UWVBFLG51bGwpO2Zvcih2YXIgaT0wLGxlbmd0aD1xdWVyeS5z bmFwc2hvdExlbmd0aDtpPGxlbmd0aDtpKyspCnJlc3VsdHMucHVzaChFbGVtZW50 LmV4dGVuZChxdWVyeS5zbmFwc2hvdEl0ZW0oaSkpKTtyZXR1cm4gcmVzdWx0czt9 O30KaWYoIXdpbmRvdy5Ob2RlKXZhciBOb2RlPXt9O2lmKCFOb2RlLkVMRU1FTlRf Tk9ERSl7T2JqZWN0LmV4dGVuZChOb2RlLHtFTEVNRU5UX05PREU6MSxBVFRSSUJV VEVfTk9ERToyLFRFWFRfTk9ERTozLENEQVRBX1NFQ1RJT05fTk9ERTo0LEVOVElU WV9SRUZFUkVOQ0VfTk9ERTo1LEVOVElUWV9OT0RFOjYsUFJPQ0VTU0lOR19JTlNU UlVDVElPTl9OT0RFOjcsQ09NTUVOVF9OT0RFOjgsRE9DVU1FTlRfTk9ERTo5LERP Q1VNRU5UX1RZUEVfTk9ERToxMCxET0NVTUVOVF9GUkFHTUVOVF9OT0RFOjExLE5P VEFUSU9OX05PREU6MTJ9KTt9CihmdW5jdGlvbigpe3ZhciBlbGVtZW50PXRoaXMu RWxlbWVudDt0aGlzLkVsZW1lbnQ9ZnVuY3Rpb24odGFnTmFtZSxhdHRyaWJ1dGVz KXthdHRyaWJ1dGVzPWF0dHJpYnV0ZXN8fHt9O3RhZ05hbWU9dGFnTmFtZS50b0xv d2VyQ2FzZSgpO3ZhciBjYWNoZT1FbGVtZW50LmNhY2hlO2lmKFByb3RvdHlwZS5C cm93c2VyLklFJiZhdHRyaWJ1dGVzLm5hbWUpe3RhZ05hbWU9JzwnK3RhZ05hbWUr JyBuYW1lPSInK2F0dHJpYnV0ZXMubmFtZSsnIj4nO2RlbGV0ZSBhdHRyaWJ1dGVz Lm5hbWU7cmV0dXJuIEVsZW1lbnQud3JpdGVBdHRyaWJ1dGUoZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCh0YWdOYW1lKSxhdHRyaWJ1dGVzKTt9CmlmKCFjYWNoZVt0YWdO YW1lXSljYWNoZVt0YWdOYW1lXT1FbGVtZW50LmV4dGVuZChkb2N1bWVudC5jcmVh dGVFbGVtZW50KHRhZ05hbWUpKTtyZXR1cm4gRWxlbWVudC53cml0ZUF0dHJpYnV0 ZShjYWNoZVt0YWdOYW1lXS5jbG9uZU5vZGUoZmFsc2UpLGF0dHJpYnV0ZXMpO307 T2JqZWN0LmV4dGVuZCh0aGlzLkVsZW1lbnQsZWxlbWVudHx8e30pO30pLmNhbGwo d2luZG93KTtFbGVtZW50LmNhY2hlPXt9O0VsZW1lbnQuTWV0aG9kcz17dmlzaWJs ZTpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gJChlbGVtZW50KS5zdHlsZS5kaXNw bGF5IT0nbm9uZSc7fSx0b2dnbGU6ZnVuY3Rpb24oZWxlbWVudCl7ZWxlbWVudD0k KGVsZW1lbnQpO0VsZW1lbnRbRWxlbWVudC52aXNpYmxlKGVsZW1lbnQpPydoaWRl Jzonc2hvdyddKGVsZW1lbnQpO3JldHVybiBlbGVtZW50O30saGlkZTpmdW5jdGlv bihlbGVtZW50KXskKGVsZW1lbnQpLnN0eWxlLmRpc3BsYXk9J25vbmUnO3JldHVy biBlbGVtZW50O30sc2hvdzpmdW5jdGlvbihlbGVtZW50KXskKGVsZW1lbnQpLnN0 eWxlLmRpc3BsYXk9Jyc7cmV0dXJuIGVsZW1lbnQ7fSxyZW1vdmU6ZnVuY3Rpb24o ZWxlbWVudCl7ZWxlbWVudD0kKGVsZW1lbnQpO2VsZW1lbnQucGFyZW50Tm9kZS5y ZW1vdmVDaGlsZChlbGVtZW50KTtyZXR1cm4gZWxlbWVudDt9LHVwZGF0ZTpmdW5j dGlvbihlbGVtZW50LGNvbnRlbnQpe2VsZW1lbnQ9JChlbGVtZW50KTtpZihjb250 ZW50JiZjb250ZW50LnRvRWxlbWVudCljb250ZW50PWNvbnRlbnQudG9FbGVtZW50 KCk7aWYoT2JqZWN0LmlzRWxlbWVudChjb250ZW50KSlyZXR1cm4gZWxlbWVudC51 cGRhdGUoKS5pbnNlcnQoY29udGVudCk7Y29udGVudD1PYmplY3QudG9IVE1MKGNv bnRlbnQpO2VsZW1lbnQuaW5uZXJIVE1MPWNvbnRlbnQuc3RyaXBTY3JpcHRzKCk7 Y29udGVudC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7cmV0dXJu IGVsZW1lbnQ7fSxyZXBsYWNlOmZ1bmN0aW9uKGVsZW1lbnQsY29udGVudCl7ZWxl bWVudD0kKGVsZW1lbnQpO2lmKGNvbnRlbnQmJmNvbnRlbnQudG9FbGVtZW50KWNv bnRlbnQ9Y29udGVudC50b0VsZW1lbnQoKTtlbHNlIGlmKCFPYmplY3QuaXNFbGVt ZW50KGNvbnRlbnQpKXtjb250ZW50PU9iamVjdC50b0hUTUwoY29udGVudCk7dmFy IHJhbmdlPWVsZW1lbnQub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Jhbmdl LnNlbGVjdE5vZGUoZWxlbWVudCk7Y29udGVudC5ldmFsU2NyaXB0cy5iaW5kKGNv bnRlbnQpLmRlZmVyKCk7Y29udGVudD1yYW5nZS5jcmVhdGVDb250ZXh0dWFsRnJh Z21lbnQoY29udGVudC5zdHJpcFNjcmlwdHMoKSk7fQplbGVtZW50LnBhcmVudE5v ZGUucmVwbGFjZUNoaWxkKGNvbnRlbnQsZWxlbWVudCk7cmV0dXJuIGVsZW1lbnQ7 fSxpbnNlcnQ6ZnVuY3Rpb24oZWxlbWVudCxpbnNlcnRpb25zKXtlbGVtZW50PSQo ZWxlbWVudCk7aWYoT2JqZWN0LmlzU3RyaW5nKGluc2VydGlvbnMpfHxPYmplY3Qu aXNOdW1iZXIoaW5zZXJ0aW9ucyl8fE9iamVjdC5pc0VsZW1lbnQoaW5zZXJ0aW9u cyl8fChpbnNlcnRpb25zJiYoaW5zZXJ0aW9ucy50b0VsZW1lbnR8fGluc2VydGlv bnMudG9IVE1MKSkpCmluc2VydGlvbnM9e2JvdHRvbTppbnNlcnRpb25zfTt2YXIg Y29udGVudCx0LHJhbmdlO2Zvcihwb3NpdGlvbiBpbiBpbnNlcnRpb25zKXtjb250 ZW50PWluc2VydGlvbnNbcG9zaXRpb25dO3Bvc2l0aW9uPXBvc2l0aW9uLnRvTG93 ZXJDYXNlKCk7dD1FbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnNbcG9zaXRp b25dO2lmKGNvbnRlbnQmJmNvbnRlbnQudG9FbGVtZW50KWNvbnRlbnQ9Y29udGVu dC50b0VsZW1lbnQoKTtpZihPYmplY3QuaXNFbGVtZW50KGNvbnRlbnQpKXt0Lmlu c2VydChlbGVtZW50LGNvbnRlbnQpO2NvbnRpbnVlO30KY29udGVudD1PYmplY3Qu dG9IVE1MKGNvbnRlbnQpO3JhbmdlPWVsZW1lbnQub3duZXJEb2N1bWVudC5jcmVh dGVSYW5nZSgpO3QuaW5pdGlhbGl6ZVJhbmdlKGVsZW1lbnQscmFuZ2UpO3QuaW5z ZXJ0KGVsZW1lbnQscmFuZ2UuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGNvbnRl bnQuc3RyaXBTY3JpcHRzKCkpKTtjb250ZW50LmV2YWxTY3JpcHRzLmJpbmQoY29u dGVudCkuZGVmZXIoKTt9CnJldHVybiBlbGVtZW50O30sd3JhcDpmdW5jdGlvbihl bGVtZW50LHdyYXBwZXIsYXR0cmlidXRlcyl7ZWxlbWVudD0kKGVsZW1lbnQpO2lm KE9iamVjdC5pc0VsZW1lbnQod3JhcHBlcikpCiQod3JhcHBlcikud3JpdGVBdHRy aWJ1dGUoYXR0cmlidXRlc3x8e30pO2Vsc2UgaWYoT2JqZWN0LmlzU3RyaW5nKHdy YXBwZXIpKXdyYXBwZXI9bmV3IEVsZW1lbnQod3JhcHBlcixhdHRyaWJ1dGVzKTtl bHNlIHdyYXBwZXI9bmV3IEVsZW1lbnQoJ2Rpdicsd3JhcHBlcik7aWYoZWxlbWVu dC5wYXJlbnROb2RlKQplbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHdy YXBwZXIsZWxlbWVudCk7d3JhcHBlci5hcHBlbmRDaGlsZChlbGVtZW50KTtyZXR1 cm4gd3JhcHBlcjt9LGluc3BlY3Q6ZnVuY3Rpb24oZWxlbWVudCl7ZWxlbWVudD0k KGVsZW1lbnQpO3ZhciByZXN1bHQ9JzwnK2VsZW1lbnQudGFnTmFtZS50b0xvd2Vy Q2FzZSgpOyRIKHsnaWQnOidpZCcsJ2NsYXNzTmFtZSc6J2NsYXNzJ30pLmVhY2go ZnVuY3Rpb24ocGFpcil7dmFyIHByb3BlcnR5PXBhaXIuZmlyc3QoKSxhdHRyaWJ1 dGU9cGFpci5sYXN0KCk7dmFyIHZhbHVlPShlbGVtZW50W3Byb3BlcnR5XXx8Jycp LnRvU3RyaW5nKCk7aWYodmFsdWUpcmVzdWx0Kz0nICcrYXR0cmlidXRlKyc9Jyt2 YWx1ZS5pbnNwZWN0KHRydWUpO30pO3JldHVybiByZXN1bHQrJz4nO30scmVjdXJz aXZlbHlDb2xsZWN0OmZ1bmN0aW9uKGVsZW1lbnQscHJvcGVydHkpe2VsZW1lbnQ9 JChlbGVtZW50KTt2YXIgZWxlbWVudHM9W107d2hpbGUoZWxlbWVudD1lbGVtZW50 W3Byb3BlcnR5XSkKaWYoZWxlbWVudC5ub2RlVHlwZT09MSkKZWxlbWVudHMucHVz aChFbGVtZW50LmV4dGVuZChlbGVtZW50KSk7cmV0dXJuIGVsZW1lbnRzO30sYW5j ZXN0b3JzOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiAkKGVsZW1lbnQpLnJlY3Vy c2l2ZWx5Q29sbGVjdCgncGFyZW50Tm9kZScpO30sZGVzY2VuZGFudHM6ZnVuY3Rp b24oZWxlbWVudCl7cmV0dXJuICRBKCQoZWxlbWVudCkuZ2V0RWxlbWVudHNCeVRh Z05hbWUoJyonKSkuZWFjaChFbGVtZW50LmV4dGVuZCk7fSxmaXJzdERlc2NlbmRh bnQ6ZnVuY3Rpb24oZWxlbWVudCl7ZWxlbWVudD0kKGVsZW1lbnQpLmZpcnN0Q2hp bGQ7d2hpbGUoZWxlbWVudCYmZWxlbWVudC5ub2RlVHlwZSE9MSllbGVtZW50PWVs ZW1lbnQubmV4dFNpYmxpbmc7cmV0dXJuICQoZWxlbWVudCk7fSxpbW1lZGlhdGVE ZXNjZW5kYW50czpmdW5jdGlvbihlbGVtZW50KXtpZighKGVsZW1lbnQ9JChlbGVt ZW50KS5maXJzdENoaWxkKSlyZXR1cm5bXTt3aGlsZShlbGVtZW50JiZlbGVtZW50 Lm5vZGVUeXBlIT0xKWVsZW1lbnQ9ZWxlbWVudC5uZXh0U2libGluZztpZihlbGVt ZW50KXJldHVybltlbGVtZW50XS5jb25jYXQoJChlbGVtZW50KS5uZXh0U2libGlu Z3MoKSk7cmV0dXJuW107fSxwcmV2aW91c1NpYmxpbmdzOmZ1bmN0aW9uKGVsZW1l bnQpe3JldHVybiAkKGVsZW1lbnQpLnJlY3Vyc2l2ZWx5Q29sbGVjdCgncHJldmlv dXNTaWJsaW5nJyk7fSxuZXh0U2libGluZ3M6ZnVuY3Rpb24oZWxlbWVudCl7cmV0 dXJuICQoZWxlbWVudCkucmVjdXJzaXZlbHlDb2xsZWN0KCduZXh0U2libGluZycp O30sc2libGluZ3M6ZnVuY3Rpb24oZWxlbWVudCl7ZWxlbWVudD0kKGVsZW1lbnQp O3JldHVybiBlbGVtZW50LnByZXZpb3VzU2libGluZ3MoKS5yZXZlcnNlKCkuY29u Y2F0KGVsZW1lbnQubmV4dFNpYmxpbmdzKCkpO30sbWF0Y2g6ZnVuY3Rpb24oZWxl bWVudCxzZWxlY3Rvcil7aWYoT2JqZWN0LmlzU3RyaW5nKHNlbGVjdG9yKSkKc2Vs ZWN0b3I9bmV3IFNlbGVjdG9yKHNlbGVjdG9yKTtyZXR1cm4gc2VsZWN0b3IubWF0 Y2goJChlbGVtZW50KSk7fSx1cDpmdW5jdGlvbihlbGVtZW50LGV4cHJlc3Npb24s aW5kZXgpe2VsZW1lbnQ9JChlbGVtZW50KTtpZihhcmd1bWVudHMubGVuZ3RoPT0x KXJldHVybiAkKGVsZW1lbnQucGFyZW50Tm9kZSk7dmFyIGFuY2VzdG9ycz1lbGVt ZW50LmFuY2VzdG9ycygpO3JldHVybiBleHByZXNzaW9uP1NlbGVjdG9yLmZpbmRF bGVtZW50KGFuY2VzdG9ycyxleHByZXNzaW9uLGluZGV4KTphbmNlc3RvcnNbaW5k ZXh8fDBdO30sZG93bjpmdW5jdGlvbihlbGVtZW50LGV4cHJlc3Npb24saW5kZXgp e2VsZW1lbnQ9JChlbGVtZW50KTtpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVy biBlbGVtZW50LmZpcnN0RGVzY2VuZGFudCgpO3ZhciBkZXNjZW5kYW50cz1lbGVt ZW50LmRlc2NlbmRhbnRzKCk7cmV0dXJuIGV4cHJlc3Npb24/U2VsZWN0b3IuZmlu ZEVsZW1lbnQoZGVzY2VuZGFudHMsZXhwcmVzc2lvbixpbmRleCk6ZGVzY2VuZGFu dHNbaW5kZXh8fDBdO30scHJldmlvdXM6ZnVuY3Rpb24oZWxlbWVudCxleHByZXNz aW9uLGluZGV4KXtlbGVtZW50PSQoZWxlbWVudCk7aWYoYXJndW1lbnRzLmxlbmd0 aD09MSlyZXR1cm4gJChTZWxlY3Rvci5oYW5kbGVycy5wcmV2aW91c0VsZW1lbnRT aWJsaW5nKGVsZW1lbnQpKTt2YXIgcHJldmlvdXNTaWJsaW5ncz1lbGVtZW50LnBy ZXZpb3VzU2libGluZ3MoKTtyZXR1cm4gZXhwcmVzc2lvbj9TZWxlY3Rvci5maW5k RWxlbWVudChwcmV2aW91c1NpYmxpbmdzLGV4cHJlc3Npb24saW5kZXgpOnByZXZp b3VzU2libGluZ3NbaW5kZXh8fDBdO30sbmV4dDpmdW5jdGlvbihlbGVtZW50LGV4 cHJlc3Npb24saW5kZXgpe2VsZW1lbnQ9JChlbGVtZW50KTtpZihhcmd1bWVudHMu bGVuZ3RoPT0xKXJldHVybiAkKFNlbGVjdG9yLmhhbmRsZXJzLm5leHRFbGVtZW50 U2libGluZyhlbGVtZW50KSk7dmFyIG5leHRTaWJsaW5ncz1lbGVtZW50Lm5leHRT aWJsaW5ncygpO3JldHVybiBleHByZXNzaW9uP1NlbGVjdG9yLmZpbmRFbGVtZW50 KG5leHRTaWJsaW5ncyxleHByZXNzaW9uLGluZGV4KTpuZXh0U2libGluZ3NbaW5k ZXh8fDBdO30sc2VsZWN0OmZ1bmN0aW9uKCl7dmFyIGFyZ3M9JEEoYXJndW1lbnRz KSxlbGVtZW50PSQoYXJncy5zaGlmdCgpKTtyZXR1cm4gU2VsZWN0b3IuZmluZENo aWxkRWxlbWVudHMoZWxlbWVudCxhcmdzKTt9LGFkamFjZW50OmZ1bmN0aW9uKCl7 dmFyIGFyZ3M9JEEoYXJndW1lbnRzKSxlbGVtZW50PSQoYXJncy5zaGlmdCgpKTty ZXR1cm4gU2VsZWN0b3IuZmluZENoaWxkRWxlbWVudHMoZWxlbWVudC5wYXJlbnRO b2RlLGFyZ3MpLndpdGhvdXQoZWxlbWVudCk7fSxpZGVudGlmeTpmdW5jdGlvbihl bGVtZW50KXtlbGVtZW50PSQoZWxlbWVudCk7dmFyIGlkPWVsZW1lbnQucmVhZEF0 dHJpYnV0ZSgnaWQnKSxzZWxmPWFyZ3VtZW50cy5jYWxsZWU7aWYoaWQpcmV0dXJu IGlkO2Rve2lkPSdhbm9ueW1vdXNfZWxlbWVudF8nK3NlbGYuY291bnRlcisrfXdo aWxlKCQoaWQpKTtlbGVtZW50LndyaXRlQXR0cmlidXRlKCdpZCcsaWQpO3JldHVy biBpZDt9LHJlYWRBdHRyaWJ1dGU6ZnVuY3Rpb24oZWxlbWVudCxuYW1lKXtlbGVt ZW50PSQoZWxlbWVudCk7aWYoUHJvdG90eXBlLkJyb3dzZXIuSUUpe3ZhciB0PUVs ZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5yZWFkO2lmKHQudmFsdWVzW25h bWVdKXJldHVybiB0LnZhbHVlc1tuYW1lXShlbGVtZW50LG5hbWUpO2lmKHQubmFt ZXNbbmFtZV0pbmFtZT10Lm5hbWVzW25hbWVdO2lmKG5hbWUuaW5jbHVkZSgnOicp KXtyZXR1cm4oIWVsZW1lbnQuYXR0cmlidXRlc3x8IWVsZW1lbnQuYXR0cmlidXRl c1tuYW1lXSk/bnVsbDplbGVtZW50LmF0dHJpYnV0ZXNbbmFtZV0udmFsdWU7fX0K cmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKG5hbWUpO30sd3JpdGVBdHRyaWJ1 dGU6ZnVuY3Rpb24oZWxlbWVudCxuYW1lLHZhbHVlKXtlbGVtZW50PSQoZWxlbWVu dCk7dmFyIGF0dHJpYnV0ZXM9e30sdD1FbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xh dGlvbnMud3JpdGU7aWYodHlwZW9mIG5hbWU9PSdvYmplY3QnKWF0dHJpYnV0ZXM9 bmFtZTtlbHNlIGF0dHJpYnV0ZXNbbmFtZV09dmFsdWU9PT11bmRlZmluZWQ/dHJ1 ZTp2YWx1ZTtmb3IodmFyIGF0dHIgaW4gYXR0cmlidXRlcyl7dmFyIG5hbWU9dC5u YW1lc1thdHRyXXx8YXR0cix2YWx1ZT1hdHRyaWJ1dGVzW2F0dHJdO2lmKHQudmFs dWVzW2F0dHJdKW5hbWU9dC52YWx1ZXNbYXR0cl0oZWxlbWVudCx2YWx1ZSk7aWYo dmFsdWU9PT1mYWxzZXx8dmFsdWU9PT1udWxsKQplbGVtZW50LnJlbW92ZUF0dHJp YnV0ZShuYW1lKTtlbHNlIGlmKHZhbHVlPT09dHJ1ZSkKZWxlbWVudC5zZXRBdHRy aWJ1dGUobmFtZSxuYW1lKTtlbHNlIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUs dmFsdWUpO30KcmV0dXJuIGVsZW1lbnQ7fSxnZXRIZWlnaHQ6ZnVuY3Rpb24oZWxl bWVudCl7cmV0dXJuICQoZWxlbWVudCkuZ2V0RGltZW5zaW9ucygpLmhlaWdodDt9 LGdldFdpZHRoOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiAkKGVsZW1lbnQpLmdl dERpbWVuc2lvbnMoKS53aWR0aDt9LGNsYXNzTmFtZXM6ZnVuY3Rpb24oZWxlbWVu dCl7cmV0dXJuIG5ldyBFbGVtZW50LkNsYXNzTmFtZXMoZWxlbWVudCk7fSxoYXND bGFzc05hbWU6ZnVuY3Rpb24oZWxlbWVudCxjbGFzc05hbWUpe2lmKCEoZWxlbWVu dD0kKGVsZW1lbnQpKSlyZXR1cm47dmFyIGVsZW1lbnRDbGFzc05hbWU9ZWxlbWVu dC5jbGFzc05hbWU7cmV0dXJuKGVsZW1lbnRDbGFzc05hbWUubGVuZ3RoPjAmJihl bGVtZW50Q2xhc3NOYW1lPT1jbGFzc05hbWV8fG5ldyBSZWdFeHAoIihefFxccyki K2NsYXNzTmFtZSsiKFxcc3wkKSIpLnRlc3QoZWxlbWVudENsYXNzTmFtZSkpKTt9 LGFkZENsYXNzTmFtZTpmdW5jdGlvbihlbGVtZW50LGNsYXNzTmFtZSl7aWYoIShl bGVtZW50PSQoZWxlbWVudCkpKXJldHVybjtpZighZWxlbWVudC5oYXNDbGFzc05h bWUoY2xhc3NOYW1lKSkKZWxlbWVudC5jbGFzc05hbWUrPShlbGVtZW50LmNsYXNz TmFtZT8nICc6JycpK2NsYXNzTmFtZTtyZXR1cm4gZWxlbWVudDt9LHJlbW92ZUNs YXNzTmFtZTpmdW5jdGlvbihlbGVtZW50LGNsYXNzTmFtZSl7aWYoIShlbGVtZW50 PSQoZWxlbWVudCkpKXJldHVybjtlbGVtZW50LmNsYXNzTmFtZT1lbGVtZW50LmNs YXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoIihefFxccyspIitjbGFzc05hbWUr IihcXHMrfCQpIiksJyAnKS5zdHJpcCgpO3JldHVybiBlbGVtZW50O30sdG9nZ2xl Q2xhc3NOYW1lOmZ1bmN0aW9uKGVsZW1lbnQsY2xhc3NOYW1lKXtpZighKGVsZW1l bnQ9JChlbGVtZW50KSkpcmV0dXJuO3JldHVybiBlbGVtZW50W2VsZW1lbnQuaGFz Q2xhc3NOYW1lKGNsYXNzTmFtZSk/J3JlbW92ZUNsYXNzTmFtZSc6J2FkZENsYXNz TmFtZSddKGNsYXNzTmFtZSk7fSxjbGVhbldoaXRlc3BhY2U6ZnVuY3Rpb24oZWxl bWVudCl7ZWxlbWVudD0kKGVsZW1lbnQpO3ZhciBub2RlPWVsZW1lbnQuZmlyc3RD aGlsZDt3aGlsZShub2RlKXt2YXIgbmV4dE5vZGU9bm9kZS5uZXh0U2libGluZztp Zihub2RlLm5vZGVUeXBlPT0zJiYhL1xTLy50ZXN0KG5vZGUubm9kZVZhbHVlKSkK ZWxlbWVudC5yZW1vdmVDaGlsZChub2RlKTtub2RlPW5leHROb2RlO30KcmV0dXJu IGVsZW1lbnQ7fSxlbXB0eTpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gJChlbGVt ZW50KS5pbm5lckhUTUwuYmxhbmsoKTt9LGRlc2NlbmRhbnRPZjpmdW5jdGlvbihl bGVtZW50LGFuY2VzdG9yKXtlbGVtZW50PSQoZWxlbWVudCksYW5jZXN0b3I9JChh bmNlc3Rvcik7aWYoZWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikKcmV0 dXJuKGVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYW5jZXN0b3IpJjgp PT09ODtpZihlbGVtZW50LnNvdXJjZUluZGV4JiYhUHJvdG90eXBlLkJyb3dzZXIu T3BlcmEpe3ZhciBlPWVsZW1lbnQuc291cmNlSW5kZXgsYT1hbmNlc3Rvci5zb3Vy Y2VJbmRleCxuZXh0QW5jZXN0b3I9YW5jZXN0b3IubmV4dFNpYmxpbmc7aWYoIW5l eHRBbmNlc3Rvcil7ZG97YW5jZXN0b3I9YW5jZXN0b3IucGFyZW50Tm9kZTt9Cndo aWxlKCEobmV4dEFuY2VzdG9yPWFuY2VzdG9yLm5leHRTaWJsaW5nKSYmYW5jZXN0 b3IucGFyZW50Tm9kZSk7fQppZihuZXh0QW5jZXN0b3IpcmV0dXJuKGU+YSYmZTxu ZXh0QW5jZXN0b3Iuc291cmNlSW5kZXgpO30Kd2hpbGUoZWxlbWVudD1lbGVtZW50 LnBhcmVudE5vZGUpCmlmKGVsZW1lbnQ9PWFuY2VzdG9yKXJldHVybiB0cnVlO3Jl dHVybiBmYWxzZTt9LHNjcm9sbFRvOmZ1bmN0aW9uKGVsZW1lbnQpe2VsZW1lbnQ9 JChlbGVtZW50KTt2YXIgcG9zPWVsZW1lbnQuY3VtdWxhdGl2ZU9mZnNldCgpO3dp bmRvdy5zY3JvbGxUbyhwb3NbMF0scG9zWzFdKTtyZXR1cm4gZWxlbWVudDt9LGdl dFN0eWxlOmZ1bmN0aW9uKGVsZW1lbnQsc3R5bGUpe2VsZW1lbnQ9JChlbGVtZW50 KTtzdHlsZT1zdHlsZT09J2Zsb2F0Jz8nY3NzRmxvYXQnOnN0eWxlLmNhbWVsaXpl KCk7dmFyIHZhbHVlPWVsZW1lbnQuc3R5bGVbc3R5bGVdO2lmKCF2YWx1ZSl7dmFy IGNzcz1kb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1l bnQsbnVsbCk7dmFsdWU9Y3NzP2Nzc1tzdHlsZV06bnVsbDt9CmlmKHN0eWxlPT0n b3BhY2l0eScpcmV0dXJuIHZhbHVlP3BhcnNlRmxvYXQodmFsdWUpOjEuMDtyZXR1 cm4gdmFsdWU9PSdhdXRvJz9udWxsOnZhbHVlO30sZ2V0T3BhY2l0eTpmdW5jdGlv bihlbGVtZW50KXtyZXR1cm4gJChlbGVtZW50KS5nZXRTdHlsZSgnb3BhY2l0eScp O30sc2V0U3R5bGU6ZnVuY3Rpb24oZWxlbWVudCxzdHlsZXMpe2VsZW1lbnQ9JChl bGVtZW50KTt2YXIgZWxlbWVudFN0eWxlPWVsZW1lbnQuc3R5bGUsbWF0Y2g7aWYo T2JqZWN0LmlzU3RyaW5nKHN0eWxlcykpe2VsZW1lbnQuc3R5bGUuY3NzVGV4dCs9 JzsnK3N0eWxlcztyZXR1cm4gc3R5bGVzLmluY2x1ZGUoJ29wYWNpdHknKT9lbGVt ZW50LnNldE9wYWNpdHkoc3R5bGVzLm1hdGNoKC9vcGFjaXR5OlxzKihcZD9cLj9c ZCopLylbMV0pOmVsZW1lbnQ7fQpmb3IodmFyIHByb3BlcnR5IGluIHN0eWxlcykK aWYocHJvcGVydHk9PSdvcGFjaXR5JyllbGVtZW50LnNldE9wYWNpdHkoc3R5bGVz W3Byb3BlcnR5XSk7ZWxzZQplbGVtZW50U3R5bGVbKHByb3BlcnR5PT0nZmxvYXQn fHxwcm9wZXJ0eT09J2Nzc0Zsb2F0Jyk/KGVsZW1lbnRTdHlsZS5zdHlsZUZsb2F0 PT09dW5kZWZpbmVkPydjc3NGbG9hdCc6J3N0eWxlRmxvYXQnKTpwcm9wZXJ0eV09 c3R5bGVzW3Byb3BlcnR5XTtyZXR1cm4gZWxlbWVudDt9LHNldE9wYWNpdHk6ZnVu Y3Rpb24oZWxlbWVudCx2YWx1ZSl7ZWxlbWVudD0kKGVsZW1lbnQpO2VsZW1lbnQu c3R5bGUub3BhY2l0eT0odmFsdWU9PTF8fHZhbHVlPT09JycpPycnOih2YWx1ZTww LjAwMDAxKT8wOnZhbHVlO3JldHVybiBlbGVtZW50O30sZ2V0RGltZW5zaW9uczpm dW5jdGlvbihlbGVtZW50KXtlbGVtZW50PSQoZWxlbWVudCk7dmFyIGRpc3BsYXk9 JChlbGVtZW50KS5nZXRTdHlsZSgnZGlzcGxheScpO2lmKGRpc3BsYXkhPSdub25l JyYmZGlzcGxheSE9bnVsbCkKcmV0dXJue3dpZHRoOmVsZW1lbnQub2Zmc2V0V2lk dGgsaGVpZ2h0OmVsZW1lbnQub2Zmc2V0SGVpZ2h0fTt2YXIgZWxzPWVsZW1lbnQu c3R5bGU7dmFyIG9yaWdpbmFsVmlzaWJpbGl0eT1lbHMudmlzaWJpbGl0eTt2YXIg b3JpZ2luYWxQb3NpdGlvbj1lbHMucG9zaXRpb247dmFyIG9yaWdpbmFsRGlzcGxh eT1lbHMuZGlzcGxheTtlbHMudmlzaWJpbGl0eT0naGlkZGVuJztlbHMucG9zaXRp b249J2Fic29sdXRlJztlbHMuZGlzcGxheT0nYmxvY2snO3ZhciBvcmlnaW5hbFdp ZHRoPWVsZW1lbnQuY2xpZW50V2lkdGg7dmFyIG9yaWdpbmFsSGVpZ2h0PWVsZW1l bnQuY2xpZW50SGVpZ2h0O2Vscy5kaXNwbGF5PW9yaWdpbmFsRGlzcGxheTtlbHMu cG9zaXRpb249b3JpZ2luYWxQb3NpdGlvbjtlbHMudmlzaWJpbGl0eT1vcmlnaW5h bFZpc2liaWxpdHk7cmV0dXJue3dpZHRoOm9yaWdpbmFsV2lkdGgsaGVpZ2h0Om9y aWdpbmFsSGVpZ2h0fTt9LG1ha2VQb3NpdGlvbmVkOmZ1bmN0aW9uKGVsZW1lbnQp e2VsZW1lbnQ9JChlbGVtZW50KTt2YXIgcG9zPUVsZW1lbnQuZ2V0U3R5bGUoZWxl bWVudCwncG9zaXRpb24nKTtpZihwb3M9PSdzdGF0aWMnfHwhcG9zKXtlbGVtZW50 Ll9tYWRlUG9zaXRpb25lZD10cnVlO2VsZW1lbnQuc3R5bGUucG9zaXRpb249J3Jl bGF0aXZlJztpZih3aW5kb3cub3BlcmEpe2VsZW1lbnQuc3R5bGUudG9wPTA7ZWxl bWVudC5zdHlsZS5sZWZ0PTA7fX0KcmV0dXJuIGVsZW1lbnQ7fSx1bmRvUG9zaXRp b25lZDpmdW5jdGlvbihlbGVtZW50KXtlbGVtZW50PSQoZWxlbWVudCk7aWYoZWxl bWVudC5fbWFkZVBvc2l0aW9uZWQpe2VsZW1lbnQuX21hZGVQb3NpdGlvbmVkPXVu ZGVmaW5lZDtlbGVtZW50LnN0eWxlLnBvc2l0aW9uPWVsZW1lbnQuc3R5bGUudG9w PWVsZW1lbnQuc3R5bGUubGVmdD1lbGVtZW50LnN0eWxlLmJvdHRvbT1lbGVtZW50 LnN0eWxlLnJpZ2h0PScnO30KcmV0dXJuIGVsZW1lbnQ7fSxtYWtlQ2xpcHBpbmc6 ZnVuY3Rpb24oZWxlbWVudCl7ZWxlbWVudD0kKGVsZW1lbnQpO2lmKGVsZW1lbnQu X292ZXJmbG93KXJldHVybiBlbGVtZW50O2VsZW1lbnQuX292ZXJmbG93PUVsZW1l bnQuZ2V0U3R5bGUoZWxlbWVudCwnb3ZlcmZsb3cnKXx8J2F1dG8nO2lmKGVsZW1l bnQuX292ZXJmbG93IT09J2hpZGRlbicpCmVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9 J2hpZGRlbic7cmV0dXJuIGVsZW1lbnQ7fSx1bmRvQ2xpcHBpbmc6ZnVuY3Rpb24o ZWxlbWVudCl7ZWxlbWVudD0kKGVsZW1lbnQpO2lmKCFlbGVtZW50Ll9vdmVyZmxv dylyZXR1cm4gZWxlbWVudDtlbGVtZW50LnN0eWxlLm92ZXJmbG93PWVsZW1lbnQu X292ZXJmbG93PT0nYXV0byc/Jyc6ZWxlbWVudC5fb3ZlcmZsb3c7ZWxlbWVudC5f b3ZlcmZsb3c9bnVsbDtyZXR1cm4gZWxlbWVudDt9LGN1bXVsYXRpdmVPZmZzZXQ6 ZnVuY3Rpb24oZWxlbWVudCl7dmFyIHZhbHVlVD0wLHZhbHVlTD0wO2Rve3ZhbHVl VCs9ZWxlbWVudC5vZmZzZXRUb3B8fDA7dmFsdWVMKz1lbGVtZW50Lm9mZnNldExl ZnR8fDA7ZWxlbWVudD1lbGVtZW50Lm9mZnNldFBhcmVudDt9d2hpbGUoZWxlbWVu dCk7cmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCh2YWx1ZUwsdmFsdWVUKTt9 LHBvc2l0aW9uZWRPZmZzZXQ6ZnVuY3Rpb24oZWxlbWVudCl7dmFyIHZhbHVlVD0w LHZhbHVlTD0wO2Rve3ZhbHVlVCs9ZWxlbWVudC5vZmZzZXRUb3B8fDA7dmFsdWVM Kz1lbGVtZW50Lm9mZnNldExlZnR8fDA7ZWxlbWVudD1lbGVtZW50Lm9mZnNldFBh cmVudDtpZihlbGVtZW50KXtpZihlbGVtZW50LnRhZ05hbWU9PSdCT0RZJylicmVh azt2YXIgcD1FbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsJ3Bvc2l0aW9uJyk7aWYo cD09J3JlbGF0aXZlJ3x8cD09J2Fic29sdXRlJylicmVhazt9fXdoaWxlKGVsZW1l bnQpO3JldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQodmFsdWVMLHZhbHVlVCk7 fSxhYnNvbHV0aXplOmZ1bmN0aW9uKGVsZW1lbnQpe2VsZW1lbnQ9JChlbGVtZW50 KTtpZihlbGVtZW50LmdldFN0eWxlKCdwb3NpdGlvbicpPT0nYWJzb2x1dGUnKXJl dHVybjt2YXIgb2Zmc2V0cz1lbGVtZW50LnBvc2l0aW9uZWRPZmZzZXQoKTt2YXIg dG9wPW9mZnNldHNbMV07dmFyIGxlZnQ9b2Zmc2V0c1swXTt2YXIgd2lkdGg9ZWxl bWVudC5jbGllbnRXaWR0aDt2YXIgaGVpZ2h0PWVsZW1lbnQuY2xpZW50SGVpZ2h0 O2VsZW1lbnQuX29yaWdpbmFsTGVmdD1sZWZ0LXBhcnNlRmxvYXQoZWxlbWVudC5z dHlsZS5sZWZ0fHwwKTtlbGVtZW50Ll9vcmlnaW5hbFRvcD10b3AtcGFyc2VGbG9h dChlbGVtZW50LnN0eWxlLnRvcHx8MCk7ZWxlbWVudC5fb3JpZ2luYWxXaWR0aD1l bGVtZW50LnN0eWxlLndpZHRoO2VsZW1lbnQuX29yaWdpbmFsSGVpZ2h0PWVsZW1l bnQuc3R5bGUuaGVpZ2h0O2VsZW1lbnQuc3R5bGUucG9zaXRpb249J2Fic29sdXRl JztlbGVtZW50LnN0eWxlLnRvcD10b3ArJ3B4JztlbGVtZW50LnN0eWxlLmxlZnQ9 bGVmdCsncHgnO2VsZW1lbnQuc3R5bGUud2lkdGg9d2lkdGgrJ3B4JztlbGVtZW50 LnN0eWxlLmhlaWdodD1oZWlnaHQrJ3B4JztyZXR1cm4gZWxlbWVudDt9LHJlbGF0 aXZpemU6ZnVuY3Rpb24oZWxlbWVudCl7ZWxlbWVudD0kKGVsZW1lbnQpO2lmKGVs ZW1lbnQuZ2V0U3R5bGUoJ3Bvc2l0aW9uJyk9PSdyZWxhdGl2ZScpcmV0dXJuO2Vs ZW1lbnQuc3R5bGUucG9zaXRpb249J3JlbGF0aXZlJzt2YXIgdG9wPXBhcnNlRmxv YXQoZWxlbWVudC5zdHlsZS50b3B8fDApLShlbGVtZW50Ll9vcmlnaW5hbFRvcHx8 MCk7dmFyIGxlZnQ9cGFyc2VGbG9hdChlbGVtZW50LnN0eWxlLmxlZnR8fDApLShl bGVtZW50Ll9vcmlnaW5hbExlZnR8fDApO2VsZW1lbnQuc3R5bGUudG9wPXRvcCsn cHgnO2VsZW1lbnQuc3R5bGUubGVmdD1sZWZ0KydweCc7ZWxlbWVudC5zdHlsZS5o ZWlnaHQ9ZWxlbWVudC5fb3JpZ2luYWxIZWlnaHQ7ZWxlbWVudC5zdHlsZS53aWR0 aD1lbGVtZW50Ll9vcmlnaW5hbFdpZHRoO3JldHVybiBlbGVtZW50O30sY3VtdWxh dGl2ZVNjcm9sbE9mZnNldDpmdW5jdGlvbihlbGVtZW50KXt2YXIgdmFsdWVUPTAs dmFsdWVMPTA7ZG97dmFsdWVUKz1lbGVtZW50LnNjcm9sbFRvcHx8MDt2YWx1ZUwr PWVsZW1lbnQuc2Nyb2xsTGVmdHx8MDtlbGVtZW50PWVsZW1lbnQucGFyZW50Tm9k ZTt9d2hpbGUoZWxlbWVudCk7cmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCh2 YWx1ZUwsdmFsdWVUKTt9LGdldE9mZnNldFBhcmVudDpmdW5jdGlvbihlbGVtZW50 KXtpZihlbGVtZW50Lm9mZnNldFBhcmVudClyZXR1cm4gJChlbGVtZW50Lm9mZnNl dFBhcmVudCk7aWYoZWxlbWVudD09ZG9jdW1lbnQuYm9keSlyZXR1cm4gJChlbGVt ZW50KTt3aGlsZSgoZWxlbWVudD1lbGVtZW50LnBhcmVudE5vZGUpJiZlbGVtZW50 IT1kb2N1bWVudC5ib2R5KQppZihFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsJ3Bv c2l0aW9uJykhPSdzdGF0aWMnKQpyZXR1cm4gJChlbGVtZW50KTtyZXR1cm4gJChk b2N1bWVudC5ib2R5KTt9LHZpZXdwb3J0T2Zmc2V0OmZ1bmN0aW9uKGZvckVsZW1l bnQpe3ZhciB2YWx1ZVQ9MCx2YWx1ZUw9MDt2YXIgZWxlbWVudD1mb3JFbGVtZW50 O2Rve3ZhbHVlVCs9ZWxlbWVudC5vZmZzZXRUb3B8fDA7dmFsdWVMKz1lbGVtZW50 Lm9mZnNldExlZnR8fDA7aWYoZWxlbWVudC5vZmZzZXRQYXJlbnQ9PWRvY3VtZW50 LmJvZHkmJkVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwncG9zaXRpb24nKT09J2Fi c29sdXRlJylicmVhazt9d2hpbGUoZWxlbWVudD1lbGVtZW50Lm9mZnNldFBhcmVu dCk7ZWxlbWVudD1mb3JFbGVtZW50O2Rve2lmKCFQcm90b3R5cGUuQnJvd3Nlci5P cGVyYXx8ZWxlbWVudC50YWdOYW1lPT0nQk9EWScpe3ZhbHVlVC09ZWxlbWVudC5z Y3JvbGxUb3B8fDA7dmFsdWVMLT1lbGVtZW50LnNjcm9sbExlZnR8fDA7fX13aGls ZShlbGVtZW50PWVsZW1lbnQucGFyZW50Tm9kZSk7cmV0dXJuIEVsZW1lbnQuX3Jl dHVybk9mZnNldCh2YWx1ZUwsdmFsdWVUKTt9LGNsb25lUG9zaXRpb246ZnVuY3Rp b24oZWxlbWVudCxzb3VyY2Upe3ZhciBvcHRpb25zPU9iamVjdC5leHRlbmQoe3Nl dExlZnQ6dHJ1ZSxzZXRUb3A6dHJ1ZSxzZXRXaWR0aDp0cnVlLHNldEhlaWdodDp0 cnVlLG9mZnNldFRvcDowLG9mZnNldExlZnQ6MH0sYXJndW1lbnRzWzJdfHx7fSk7 c291cmNlPSQoc291cmNlKTt2YXIgcD1zb3VyY2Uudmlld3BvcnRPZmZzZXQoKTtl bGVtZW50PSQoZWxlbWVudCk7dmFyIGRlbHRhPVswLDBdO3ZhciBwYXJlbnQ9bnVs bDtpZihFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsJ3Bvc2l0aW9uJyk9PSdhYnNv bHV0ZScpe3BhcmVudD1lbGVtZW50LmdldE9mZnNldFBhcmVudCgpO2RlbHRhPXBh cmVudC52aWV3cG9ydE9mZnNldCgpO30KaWYocGFyZW50PT1kb2N1bWVudC5ib2R5 KXtkZWx0YVswXS09ZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0O2RlbHRhWzFdLT1k b2N1bWVudC5ib2R5Lm9mZnNldFRvcDt9CmlmKG9wdGlvbnMuc2V0TGVmdCllbGVt ZW50LnN0eWxlLmxlZnQ9KHBbMF0tZGVsdGFbMF0rb3B0aW9ucy5vZmZzZXRMZWZ0 KSsncHgnO2lmKG9wdGlvbnMuc2V0VG9wKWVsZW1lbnQuc3R5bGUudG9wPShwWzFd LWRlbHRhWzFdK29wdGlvbnMub2Zmc2V0VG9wKSsncHgnO2lmKG9wdGlvbnMuc2V0 V2lkdGgpZWxlbWVudC5zdHlsZS53aWR0aD1zb3VyY2Uub2Zmc2V0V2lkdGgrJ3B4 JztpZihvcHRpb25zLnNldEhlaWdodCllbGVtZW50LnN0eWxlLmhlaWdodD1zb3Vy Y2Uub2Zmc2V0SGVpZ2h0KydweCc7cmV0dXJuIGVsZW1lbnQ7fX07RWxlbWVudC5N ZXRob2RzLmlkZW50aWZ5LmNvdW50ZXI9MTtPYmplY3QuZXh0ZW5kKEVsZW1lbnQu TWV0aG9kcyx7Z2V0RWxlbWVudHNCeVNlbGVjdG9yOkVsZW1lbnQuTWV0aG9kcy5z ZWxlY3QsY2hpbGRFbGVtZW50czpFbGVtZW50Lk1ldGhvZHMuaW1tZWRpYXRlRGVz Y2VuZGFudHN9KTtFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnM9e3dyaXRl OntuYW1lczp7Y2xhc3NOYW1lOidjbGFzcycsaHRtbEZvcjonZm9yJ30sdmFsdWVz Ont9fX07aWYoIWRvY3VtZW50LmNyZWF0ZVJhbmdlfHxQcm90b3R5cGUuQnJvd3Nl ci5PcGVyYSl7RWxlbWVudC5NZXRob2RzLmluc2VydD1mdW5jdGlvbihlbGVtZW50 LGluc2VydGlvbnMpe2VsZW1lbnQ9JChlbGVtZW50KTtpZihPYmplY3QuaXNTdHJp bmcoaW5zZXJ0aW9ucyl8fE9iamVjdC5pc051bWJlcihpbnNlcnRpb25zKXx8T2Jq ZWN0LmlzRWxlbWVudChpbnNlcnRpb25zKXx8KGluc2VydGlvbnMmJihpbnNlcnRp b25zLnRvRWxlbWVudHx8aW5zZXJ0aW9ucy50b0hUTUwpKSkKaW5zZXJ0aW9ucz17 Ym90dG9tOmluc2VydGlvbnN9O3ZhciB0PUVsZW1lbnQuX2luc2VydGlvblRyYW5z bGF0aW9ucyxjb250ZW50LHBvc2l0aW9uLHBvcyx0YWdOYW1lO2Zvcihwb3NpdGlv biBpbiBpbnNlcnRpb25zKXtjb250ZW50PWluc2VydGlvbnNbcG9zaXRpb25dO3Bv c2l0aW9uPXBvc2l0aW9uLnRvTG93ZXJDYXNlKCk7cG9zPXRbcG9zaXRpb25dO2lm KGNvbnRlbnQmJmNvbnRlbnQudG9FbGVtZW50KWNvbnRlbnQ9Y29udGVudC50b0Vs ZW1lbnQoKTtpZihPYmplY3QuaXNFbGVtZW50KGNvbnRlbnQpKXtwb3MuaW5zZXJ0 KGVsZW1lbnQsY29udGVudCk7Y29udGludWU7fQpjb250ZW50PU9iamVjdC50b0hU TUwoY29udGVudCk7dGFnTmFtZT0oKHBvc2l0aW9uPT0nYmVmb3JlJ3x8cG9zaXRp b249PSdhZnRlcicpP2VsZW1lbnQucGFyZW50Tm9kZTplbGVtZW50KS50YWdOYW1l LnRvVXBwZXJDYXNlKCk7aWYodC50YWdzW3RhZ05hbWVdKXt2YXIgZnJhZ21lbnRz PUVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0YWdOYW1l LGNvbnRlbnQuc3RyaXBTY3JpcHRzKCkpO2lmKHBvc2l0aW9uPT0ndG9wJ3x8cG9z aXRpb249PSdhZnRlcicpZnJhZ21lbnRzLnJldmVyc2UoKTtmcmFnbWVudHMuZWFj aChwb3MuaW5zZXJ0LmN1cnJ5KGVsZW1lbnQpKTt9CmVsc2UgZWxlbWVudC5pbnNl cnRBZGphY2VudEhUTUwocG9zLmFkamFjZW5jeSxjb250ZW50LnN0cmlwU2NyaXB0 cygpKTtjb250ZW50LmV2YWxTY3JpcHRzLmJpbmQoY29udGVudCkuZGVmZXIoKTt9 CnJldHVybiBlbGVtZW50O307fQppZihQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSl7 RWxlbWVudC5NZXRob2RzLl9nZXRTdHlsZT1FbGVtZW50Lk1ldGhvZHMuZ2V0U3R5 bGU7RWxlbWVudC5NZXRob2RzLmdldFN0eWxlPWZ1bmN0aW9uKGVsZW1lbnQsc3R5 bGUpe3N3aXRjaChzdHlsZSl7Y2FzZSdsZWZ0JzpjYXNlJ3RvcCc6Y2FzZSdyaWdo dCc6Y2FzZSdib3R0b20nOmlmKEVsZW1lbnQuX2dldFN0eWxlKGVsZW1lbnQsJ3Bv c2l0aW9uJyk9PSdzdGF0aWMnKXJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIEVs ZW1lbnQuX2dldFN0eWxlKGVsZW1lbnQsc3R5bGUpO319O0VsZW1lbnQuTWV0aG9k cy5fcmVhZEF0dHJpYnV0ZT1FbGVtZW50Lk1ldGhvZHMucmVhZEF0dHJpYnV0ZTtF bGVtZW50Lk1ldGhvZHMucmVhZEF0dHJpYnV0ZT1mdW5jdGlvbihlbGVtZW50LGF0 dHJpYnV0ZSl7aWYoYXR0cmlidXRlPT0ndGl0bGUnKXJldHVybiBlbGVtZW50LnRp dGxlO3JldHVybiBFbGVtZW50Ll9yZWFkQXR0cmlidXRlKGVsZW1lbnQsYXR0cmli dXRlKTt9O30KZWxzZSBpZihQcm90b3R5cGUuQnJvd3Nlci5JRSl7JHcoJ3Bvc2l0 aW9uZWRPZmZzZXQgZ2V0T2Zmc2V0UGFyZW50IHZpZXdwb3J0T2Zmc2V0JykuZWFj aChmdW5jdGlvbihtZXRob2Qpe0VsZW1lbnQuTWV0aG9kc1ttZXRob2RdPUVsZW1l bnQuTWV0aG9kc1ttZXRob2RdLndyYXAoZnVuY3Rpb24ocHJvY2VlZCxlbGVtZW50 KXtlbGVtZW50PSQoZWxlbWVudCk7dmFyIHBvc2l0aW9uPWVsZW1lbnQuZ2V0U3R5 bGUoJ3Bvc2l0aW9uJyk7aWYocG9zaXRpb24hPSdzdGF0aWMnKXJldHVybiBwcm9j ZWVkKGVsZW1lbnQpO2VsZW1lbnQuc2V0U3R5bGUoe3Bvc2l0aW9uOidyZWxhdGl2 ZSd9KTt2YXIgdmFsdWU9cHJvY2VlZChlbGVtZW50KTtlbGVtZW50LnNldFN0eWxl KHtwb3NpdGlvbjpwb3NpdGlvbn0pO3JldHVybiB2YWx1ZTt9KTt9KTtFbGVtZW50 Lk1ldGhvZHMuZ2V0U3R5bGU9ZnVuY3Rpb24oZWxlbWVudCxzdHlsZSl7ZWxlbWVu dD0kKGVsZW1lbnQpO3N0eWxlPShzdHlsZT09J2Zsb2F0J3x8c3R5bGU9PSdjc3NG bG9hdCcpPydzdHlsZUZsb2F0JzpzdHlsZS5jYW1lbGl6ZSgpO3ZhciB2YWx1ZT1l bGVtZW50LnN0eWxlW3N0eWxlXTtpZighdmFsdWUmJmVsZW1lbnQuY3VycmVudFN0 eWxlKXZhbHVlPWVsZW1lbnQuY3VycmVudFN0eWxlW3N0eWxlXTtpZihzdHlsZT09 J29wYWNpdHknKXtpZih2YWx1ZT0oZWxlbWVudC5nZXRTdHlsZSgnZmlsdGVyJyl8 fCcnKS5tYXRjaCgvYWxwaGFcKG9wYWNpdHk9KC4qKVwpLykpCmlmKHZhbHVlWzFd KXJldHVybiBwYXJzZUZsb2F0KHZhbHVlWzFdKS8xMDA7cmV0dXJuIDEuMDt9Cmlm KHZhbHVlPT0nYXV0bycpe2lmKChzdHlsZT09J3dpZHRoJ3x8c3R5bGU9PSdoZWln aHQnKSYmKGVsZW1lbnQuZ2V0U3R5bGUoJ2Rpc3BsYXknKSE9J25vbmUnKSkKcmV0 dXJuIGVsZW1lbnRbJ29mZnNldCcrc3R5bGUuY2FwaXRhbGl6ZSgpXSsncHgnO3Jl dHVybiBudWxsO30KcmV0dXJuIHZhbHVlO307RWxlbWVudC5NZXRob2RzLnNldE9w YWNpdHk9ZnVuY3Rpb24oZWxlbWVudCx2YWx1ZSl7ZnVuY3Rpb24gc3RyaXBBbHBo YShmaWx0ZXIpe3JldHVybiBmaWx0ZXIucmVwbGFjZSgvYWxwaGFcKFteXCldKlwp L2dpLCcnKTt9CmVsZW1lbnQ9JChlbGVtZW50KTt2YXIgY3VycmVudFN0eWxlPWVs ZW1lbnQuY3VycmVudFN0eWxlO2lmKChjdXJyZW50U3R5bGUmJiFjdXJyZW50U3R5 bGUuaGFzTGF5b3V0KXx8KCFjdXJyZW50U3R5bGUmJmVsZW1lbnQuc3R5bGUuem9v bT09J25vcm1hbCcpKQplbGVtZW50LnN0eWxlLnpvb209MTt2YXIgZmlsdGVyPWVs ZW1lbnQuZ2V0U3R5bGUoJ2ZpbHRlcicpLHN0eWxlPWVsZW1lbnQuc3R5bGU7aWYo dmFsdWU9PTF8fHZhbHVlPT09JycpeyhmaWx0ZXI9c3RyaXBBbHBoYShmaWx0ZXIp KT9zdHlsZS5maWx0ZXI9ZmlsdGVyOnN0eWxlLnJlbW92ZUF0dHJpYnV0ZSgnZmls dGVyJyk7cmV0dXJuIGVsZW1lbnQ7fWVsc2UgaWYodmFsdWU8MC4wMDAwMSl2YWx1 ZT0wO3N0eWxlLmZpbHRlcj1zdHJpcEFscGhhKGZpbHRlcikrJ2FscGhhKG9wYWNp dHk9JysodmFsdWUqMTAwKSsnKSc7cmV0dXJuIGVsZW1lbnQ7fTtFbGVtZW50Ll9h dHRyaWJ1dGVUcmFuc2xhdGlvbnM9e3JlYWQ6e25hbWVzOnsnY2xhc3MnOidjbGFz c05hbWUnLCdmb3InOidodG1sRm9yJ30sdmFsdWVzOntfZ2V0QXR0cjpmdW5jdGlv bihlbGVtZW50LGF0dHJpYnV0ZSl7cmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRl KGF0dHJpYnV0ZSwyKTt9LF9nZXRBdHRyTm9kZTpmdW5jdGlvbihlbGVtZW50LGF0 dHJpYnV0ZSl7dmFyIG5vZGU9ZWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKGF0dHJp YnV0ZSk7cmV0dXJuIG5vZGU/bm9kZS52YWx1ZToiIjt9LF9nZXRFdjpmdW5jdGlv bihlbGVtZW50LGF0dHJpYnV0ZSl7dmFyIGF0dHJpYnV0ZT1lbGVtZW50LmdldEF0 dHJpYnV0ZShhdHRyaWJ1dGUpO3JldHVybiBhdHRyaWJ1dGU/YXR0cmlidXRlLnRv U3RyaW5nKCkuc2xpY2UoMjMsLTIpOm51bGw7fSxfZmxhZzpmdW5jdGlvbihlbGVt ZW50LGF0dHJpYnV0ZSl7cmV0dXJuICQoZWxlbWVudCkuaGFzQXR0cmlidXRlKGF0 dHJpYnV0ZSk/YXR0cmlidXRlOm51bGw7fSxzdHlsZTpmdW5jdGlvbihlbGVtZW50 KXtyZXR1cm4gZWxlbWVudC5zdHlsZS5jc3NUZXh0LnRvTG93ZXJDYXNlKCk7fSx0 aXRsZTpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gZWxlbWVudC50aXRsZTt9fX19 O0VsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy53cml0ZT17bmFtZXM6T2Jq ZWN0LmNsb25lKEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5yZWFkLm5h bWVzKSx2YWx1ZXM6e2NoZWNrZWQ6ZnVuY3Rpb24oZWxlbWVudCx2YWx1ZSl7ZWxl bWVudC5jaGVja2VkPSEhdmFsdWU7fSxzdHlsZTpmdW5jdGlvbihlbGVtZW50LHZh bHVlKXtlbGVtZW50LnN0eWxlLmNzc1RleHQ9dmFsdWU/dmFsdWU6Jyc7fX19O0Vs ZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5oYXM9e307JHcoJ2NvbFNwYW4g cm93U3BhbiB2QWxpZ24gZGF0ZVRpbWUgYWNjZXNzS2V5IHRhYkluZGV4ICcrJ2Vu Y1R5cGUgbWF4TGVuZ3RoIHJlYWRPbmx5IGxvbmdEZXNjJykuZWFjaChmdW5jdGlv bihhdHRyKXtFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMud3JpdGUubmFt ZXNbYXR0ci50b0xvd2VyQ2FzZSgpXT1hdHRyO0VsZW1lbnQuX2F0dHJpYnV0ZVRy YW5zbGF0aW9ucy5oYXNbYXR0ci50b0xvd2VyQ2FzZSgpXT1hdHRyO30pOyhmdW5j dGlvbih2KXtPYmplY3QuZXh0ZW5kKHYse2hyZWY6di5fZ2V0QXR0cixzcmM6di5f Z2V0QXR0cix0eXBlOnYuX2dldEF0dHIsYWN0aW9uOnYuX2dldEF0dHJOb2RlLGRp c2FibGVkOnYuX2ZsYWcsY2hlY2tlZDp2Ll9mbGFnLHJlYWRvbmx5OnYuX2ZsYWcs bXVsdGlwbGU6di5fZmxhZyxvbmxvYWQ6di5fZ2V0RXYsb251bmxvYWQ6di5fZ2V0 RXYsb25jbGljazp2Ll9nZXRFdixvbmRibGNsaWNrOnYuX2dldEV2LG9ubW91c2Vk b3duOnYuX2dldEV2LG9ubW91c2V1cDp2Ll9nZXRFdixvbm1vdXNlb3Zlcjp2Ll9n ZXRFdixvbm1vdXNlbW92ZTp2Ll9nZXRFdixvbm1vdXNlb3V0OnYuX2dldEV2LG9u Zm9jdXM6di5fZ2V0RXYsb25ibHVyOnYuX2dldEV2LG9ua2V5cHJlc3M6di5fZ2V0 RXYsb25rZXlkb3duOnYuX2dldEV2LG9ua2V5dXA6di5fZ2V0RXYsb25zdWJtaXQ6 di5fZ2V0RXYsb25yZXNldDp2Ll9nZXRFdixvbnNlbGVjdDp2Ll9nZXRFdixvbmNo YW5nZTp2Ll9nZXRFdn0pO30pKEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9u cy5yZWFkLnZhbHVlcyk7fQplbHNlIGlmKFByb3RvdHlwZS5Ccm93c2VyLkdlY2tv JiYvcnY6MVwuOFwuMC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7RWxlbWVu dC5NZXRob2RzLnNldE9wYWNpdHk9ZnVuY3Rpb24oZWxlbWVudCx2YWx1ZSl7ZWxl bWVudD0kKGVsZW1lbnQpO2VsZW1lbnQuc3R5bGUub3BhY2l0eT0odmFsdWU9PTEp PzAuOTk5OTk5Oih2YWx1ZT09PScnKT8nJzoodmFsdWU8MC4wMDAwMSk/MDp2YWx1 ZTtyZXR1cm4gZWxlbWVudDt9O30KZWxzZSBpZihQcm90b3R5cGUuQnJvd3Nlci5X ZWJLaXQpe0VsZW1lbnQuTWV0aG9kcy5zZXRPcGFjaXR5PWZ1bmN0aW9uKGVsZW1l bnQsdmFsdWUpe2VsZW1lbnQ9JChlbGVtZW50KTtlbGVtZW50LnN0eWxlLm9wYWNp dHk9KHZhbHVlPT0xfHx2YWx1ZT09PScnKT8nJzoodmFsdWU8MC4wMDAwMSk/MDp2 YWx1ZTtpZih2YWx1ZT09MSkKaWYoZWxlbWVudC50YWdOYW1lPT0nSU1HJyYmZWxl bWVudC53aWR0aCl7ZWxlbWVudC53aWR0aCsrO2VsZW1lbnQud2lkdGgtLTt9ZWxz ZSB0cnl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKTtlbGVtZW50 LmFwcGVuZENoaWxkKG4pO2VsZW1lbnQucmVtb3ZlQ2hpbGQobik7fWNhdGNoKGUp e30KcmV0dXJuIGVsZW1lbnQ7fTtFbGVtZW50Lk1ldGhvZHMuY3VtdWxhdGl2ZU9m ZnNldD1mdW5jdGlvbihlbGVtZW50KXt2YXIgdmFsdWVUPTAsdmFsdWVMPTA7ZG97 dmFsdWVUKz1lbGVtZW50Lm9mZnNldFRvcHx8MDt2YWx1ZUwrPWVsZW1lbnQub2Zm c2V0TGVmdHx8MDtpZihlbGVtZW50Lm9mZnNldFBhcmVudD09ZG9jdW1lbnQuYm9k eSkKaWYoRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCdwb3NpdGlvbicpPT0nYWJz b2x1dGUnKWJyZWFrO2VsZW1lbnQ9ZWxlbWVudC5vZmZzZXRQYXJlbnQ7fXdoaWxl KGVsZW1lbnQpO3JldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQodmFsdWVMLHZh bHVlVCk7fTt9CmlmKFByb3RvdHlwZS5Ccm93c2VyLklFfHxQcm90b3R5cGUuQnJv d3Nlci5PcGVyYSl7RWxlbWVudC5NZXRob2RzLnVwZGF0ZT1mdW5jdGlvbihlbGVt ZW50LGNvbnRlbnQpe2VsZW1lbnQ9JChlbGVtZW50KTtpZihjb250ZW50JiZjb250 ZW50LnRvRWxlbWVudCljb250ZW50PWNvbnRlbnQudG9FbGVtZW50KCk7aWYoT2Jq ZWN0LmlzRWxlbWVudChjb250ZW50KSlyZXR1cm4gZWxlbWVudC51cGRhdGUoKS5p bnNlcnQoY29udGVudCk7Y29udGVudD1PYmplY3QudG9IVE1MKGNvbnRlbnQpO3Zh ciB0YWdOYW1lPWVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpO2lmKHRhZ05h bWUgaW4gRWxlbWVudC5faW5zZXJ0aW9uVHJhbnNsYXRpb25zLnRhZ3MpeyRBKGVs ZW1lbnQuY2hpbGROb2RlcykuZWFjaChmdW5jdGlvbihub2RlKXtlbGVtZW50LnJl bW92ZUNoaWxkKG5vZGUpfSk7RWxlbWVudC5fZ2V0Q29udGVudEZyb21Bbm9ueW1v dXNFbGVtZW50KHRhZ05hbWUsY29udGVudC5zdHJpcFNjcmlwdHMoKSkuZWFjaChm dW5jdGlvbihub2RlKXtlbGVtZW50LmFwcGVuZENoaWxkKG5vZGUpfSk7fQplbHNl IGVsZW1lbnQuaW5uZXJIVE1MPWNvbnRlbnQuc3RyaXBTY3JpcHRzKCk7Y29udGVu dC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7cmV0dXJuIGVsZW1l bnQ7fTt9CmlmKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLm91dGVySFRN TCl7RWxlbWVudC5NZXRob2RzLnJlcGxhY2U9ZnVuY3Rpb24oZWxlbWVudCxjb250 ZW50KXtlbGVtZW50PSQoZWxlbWVudCk7aWYoY29udGVudCYmY29udGVudC50b0Vs ZW1lbnQpY29udGVudD1jb250ZW50LnRvRWxlbWVudCgpO2lmKE9iamVjdC5pc0Vs ZW1lbnQoY29udGVudCkpe2VsZW1lbnQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQo Y29udGVudCxlbGVtZW50KTtyZXR1cm4gZWxlbWVudDt9CmNvbnRlbnQ9T2JqZWN0 LnRvSFRNTChjb250ZW50KTt2YXIgcGFyZW50PWVsZW1lbnQucGFyZW50Tm9kZSx0 YWdOYW1lPXBhcmVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoRWxlbWVudC5f aW5zZXJ0aW9uVHJhbnNsYXRpb25zLnRhZ3NbdGFnTmFtZV0pe3ZhciBuZXh0U2li bGluZz1lbGVtZW50Lm5leHQoKTt2YXIgZnJhZ21lbnRzPUVsZW1lbnQuX2dldENv bnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0YWdOYW1lLGNvbnRlbnQuc3RyaXBT Y3JpcHRzKCkpO3BhcmVudC5yZW1vdmVDaGlsZChlbGVtZW50KTtpZihuZXh0U2li bGluZykKZnJhZ21lbnRzLmVhY2goZnVuY3Rpb24obm9kZSl7cGFyZW50Lmluc2Vy dEJlZm9yZShub2RlLG5leHRTaWJsaW5nKX0pO2Vsc2UKZnJhZ21lbnRzLmVhY2go ZnVuY3Rpb24obm9kZSl7cGFyZW50LmFwcGVuZENoaWxkKG5vZGUpfSk7fQplbHNl IGVsZW1lbnQub3V0ZXJIVE1MPWNvbnRlbnQuc3RyaXBTY3JpcHRzKCk7Y29udGVu dC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7cmV0dXJuIGVsZW1l bnQ7fTt9CkVsZW1lbnQuX3JldHVybk9mZnNldD1mdW5jdGlvbihsLHQpe3ZhciBy ZXN1bHQ9W2wsdF07cmVzdWx0LmxlZnQ9bDtyZXN1bHQudG9wPXQ7cmV0dXJuIHJl c3VsdDt9O0VsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudD1m dW5jdGlvbih0YWdOYW1lLGh0bWwpe3ZhciBkaXY9bmV3IEVsZW1lbnQoJ2Rpdicp LHQ9RWxlbWVudC5faW5zZXJ0aW9uVHJhbnNsYXRpb25zLnRhZ3NbdGFnTmFtZV07 ZGl2LmlubmVySFRNTD10WzBdK2h0bWwrdFsxXTt0WzJdLnRpbWVzKGZ1bmN0aW9u KCl7ZGl2PWRpdi5maXJzdENoaWxkfSk7cmV0dXJuICRBKGRpdi5jaGlsZE5vZGVz KTt9O0VsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucz17YmVmb3JlOnthZGph Y2VuY3k6J2JlZm9yZUJlZ2luJyxpbnNlcnQ6ZnVuY3Rpb24oZWxlbWVudCxub2Rl KXtlbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsZWxlbWVudCk7 fSxpbml0aWFsaXplUmFuZ2U6ZnVuY3Rpb24oZWxlbWVudCxyYW5nZSl7cmFuZ2Uu c2V0U3RhcnRCZWZvcmUoZWxlbWVudCk7fX0sdG9wOnthZGphY2VuY3k6J2FmdGVy QmVnaW4nLGluc2VydDpmdW5jdGlvbihlbGVtZW50LG5vZGUpe2VsZW1lbnQuaW5z ZXJ0QmVmb3JlKG5vZGUsZWxlbWVudC5maXJzdENoaWxkKTt9LGluaXRpYWxpemVS YW5nZTpmdW5jdGlvbihlbGVtZW50LHJhbmdlKXtyYW5nZS5zZWxlY3ROb2RlQ29u dGVudHMoZWxlbWVudCk7cmFuZ2UuY29sbGFwc2UodHJ1ZSk7fX0sYm90dG9tOnth ZGphY2VuY3k6J2JlZm9yZUVuZCcsaW5zZXJ0OmZ1bmN0aW9uKGVsZW1lbnQsbm9k ZSl7ZWxlbWVudC5hcHBlbmRDaGlsZChub2RlKTt9fSxhZnRlcjp7YWRqYWNlbmN5 OidhZnRlckVuZCcsaW5zZXJ0OmZ1bmN0aW9uKGVsZW1lbnQsbm9kZSl7ZWxlbWVu dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLGVsZW1lbnQubmV4dFNpYmxp bmcpO30saW5pdGlhbGl6ZVJhbmdlOmZ1bmN0aW9uKGVsZW1lbnQscmFuZ2Upe3Jh bmdlLnNldFN0YXJ0QWZ0ZXIoZWxlbWVudCk7fX0sdGFnczp7VEFCTEU6Wyc8dGFi bGU+JywnPC90YWJsZT4nLDFdLFRCT0RZOlsnPHRhYmxlPjx0Ym9keT4nLCc8L3Ri b2R5PjwvdGFibGU+JywyXSxUUjpbJzx0YWJsZT48dGJvZHk+PHRyPicsJzwvdHI+ PC90Ym9keT48L3RhYmxlPicsM10sVEQ6Wyc8dGFibGU+PHRib2R5Pjx0cj48dGQ+ JywnPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4nLDRdLFNFTEVDVDpbJzxzZWxl Y3Q+JywnPC9zZWxlY3Q+JywxXX19OyhmdW5jdGlvbigpe3RoaXMuYm90dG9tLmlu aXRpYWxpemVSYW5nZT10aGlzLnRvcC5pbml0aWFsaXplUmFuZ2U7T2JqZWN0LmV4 dGVuZCh0aGlzLnRhZ3Mse1RIRUFEOnRoaXMudGFncy5UQk9EWSxURk9PVDp0aGlz LnRhZ3MuVEJPRFksVEg6dGhpcy50YWdzLlREfSk7fSkuY2FsbChFbGVtZW50Ll9p bnNlcnRpb25UcmFuc2xhdGlvbnMpO0VsZW1lbnQuTWV0aG9kcy5TaW11bGF0ZWQ9 e2hhc0F0dHJpYnV0ZTpmdW5jdGlvbihlbGVtZW50LGF0dHJpYnV0ZSl7YXR0cmli dXRlPUVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5oYXNbYXR0cmlidXRl XXx8YXR0cmlidXRlO3ZhciBub2RlPSQoZWxlbWVudCkuZ2V0QXR0cmlidXRlTm9k ZShhdHRyaWJ1dGUpO3JldHVybiBub2RlJiZub2RlLnNwZWNpZmllZDt9fTtFbGVt ZW50Lk1ldGhvZHMuQnlUYWc9e307T2JqZWN0LmV4dGVuZChFbGVtZW50LEVsZW1l bnQuTWV0aG9kcyk7aWYoIVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuRWxlbWVu dEV4dGVuc2lvbnMmJmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLl9fcHJv dG9fXyl7d2luZG93LkhUTUxFbGVtZW50PXt9O3dpbmRvdy5IVE1MRWxlbWVudC5w cm90b3R5cGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykuX19wcm90b19f O1Byb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuRWxlbWVudEV4dGVuc2lvbnM9dHJ1 ZTt9CkVsZW1lbnQuZXh0ZW5kPShmdW5jdGlvbigpe2lmKFByb3RvdHlwZS5Ccm93 c2VyRmVhdHVyZXMuU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9ucykKcmV0dXJuIFBy b3RvdHlwZS5LO3ZhciBNZXRob2RzPXt9LEJ5VGFnPUVsZW1lbnQuTWV0aG9kcy5C eVRhZzt2YXIgZXh0ZW5kPU9iamVjdC5leHRlbmQoZnVuY3Rpb24oZWxlbWVudCl7 aWYoIWVsZW1lbnR8fGVsZW1lbnQuX2V4dGVuZGVkQnlQcm90b3R5cGV8fGVsZW1l bnQubm9kZVR5cGUhPTF8fGVsZW1lbnQ9PXdpbmRvdylyZXR1cm4gZWxlbWVudDt2 YXIgbWV0aG9kcz1PYmplY3QuY2xvbmUoTWV0aG9kcyksdGFnTmFtZT1lbGVtZW50 LnRhZ05hbWUscHJvcGVydHksdmFsdWU7aWYoQnlUYWdbdGFnTmFtZV0pT2JqZWN0 LmV4dGVuZChtZXRob2RzLEJ5VGFnW3RhZ05hbWVdKTtmb3IocHJvcGVydHkgaW4g bWV0aG9kcyl7dmFsdWU9bWV0aG9kc1twcm9wZXJ0eV07aWYoT2JqZWN0LmlzRnVu Y3Rpb24odmFsdWUpJiYhKHByb3BlcnR5IGluIGVsZW1lbnQpKQplbGVtZW50W3By b3BlcnR5XT12YWx1ZS5tZXRob2RpemUoKTt9CmVsZW1lbnQuX2V4dGVuZGVkQnlQ cm90b3R5cGU9UHJvdG90eXBlLmVtcHR5RnVuY3Rpb247cmV0dXJuIGVsZW1lbnQ7 fSx7cmVmcmVzaDpmdW5jdGlvbigpe2lmKCFQcm90b3R5cGUuQnJvd3NlckZlYXR1 cmVzLkVsZW1lbnRFeHRlbnNpb25zKXtPYmplY3QuZXh0ZW5kKE1ldGhvZHMsRWxl bWVudC5NZXRob2RzKTtPYmplY3QuZXh0ZW5kKE1ldGhvZHMsRWxlbWVudC5NZXRo b2RzLlNpbXVsYXRlZCk7fX19KTtleHRlbmQucmVmcmVzaCgpO3JldHVybiBleHRl bmQ7fSkoKTtFbGVtZW50Lmhhc0F0dHJpYnV0ZT1mdW5jdGlvbihlbGVtZW50LGF0 dHJpYnV0ZSl7aWYoZWxlbWVudC5oYXNBdHRyaWJ1dGUpcmV0dXJuIGVsZW1lbnQu aGFzQXR0cmlidXRlKGF0dHJpYnV0ZSk7cmV0dXJuIEVsZW1lbnQuTWV0aG9kcy5T aW11bGF0ZWQuaGFzQXR0cmlidXRlKGVsZW1lbnQsYXR0cmlidXRlKTt9O0VsZW1l bnQuYWRkTWV0aG9kcz1mdW5jdGlvbihtZXRob2RzKXt2YXIgRj1Qcm90b3R5cGUu QnJvd3NlckZlYXR1cmVzLFQ9RWxlbWVudC5NZXRob2RzLkJ5VGFnO2lmKCFtZXRo b2RzKXtPYmplY3QuZXh0ZW5kKEZvcm0sRm9ybS5NZXRob2RzKTtPYmplY3QuZXh0 ZW5kKEZvcm0uRWxlbWVudCxGb3JtLkVsZW1lbnQuTWV0aG9kcyk7T2JqZWN0LmV4 dGVuZChFbGVtZW50Lk1ldGhvZHMuQnlUYWcseyJGT1JNIjpPYmplY3QuY2xvbmUo Rm9ybS5NZXRob2RzKSwiSU5QVVQiOk9iamVjdC5jbG9uZShGb3JtLkVsZW1lbnQu TWV0aG9kcyksIlNFTEVDVCI6T2JqZWN0LmNsb25lKEZvcm0uRWxlbWVudC5NZXRo b2RzKSwiVEVYVEFSRUEiOk9iamVjdC5jbG9uZShGb3JtLkVsZW1lbnQuTWV0aG9k cyl9KTt9CmlmKGFyZ3VtZW50cy5sZW5ndGg9PTIpe3ZhciB0YWdOYW1lPW1ldGhv ZHM7bWV0aG9kcz1hcmd1bWVudHNbMV07fQppZighdGFnTmFtZSlPYmplY3QuZXh0 ZW5kKEVsZW1lbnQuTWV0aG9kcyxtZXRob2RzfHx7fSk7ZWxzZXtpZihPYmplY3Qu aXNBcnJheSh0YWdOYW1lKSl0YWdOYW1lLmVhY2goZXh0ZW5kKTtlbHNlIGV4dGVu ZCh0YWdOYW1lKTt9CmZ1bmN0aW9uIGV4dGVuZCh0YWdOYW1lKXt0YWdOYW1lPXRh Z05hbWUudG9VcHBlckNhc2UoKTtpZighRWxlbWVudC5NZXRob2RzLkJ5VGFnW3Rh Z05hbWVdKQpFbGVtZW50Lk1ldGhvZHMuQnlUYWdbdGFnTmFtZV09e307T2JqZWN0 LmV4dGVuZChFbGVtZW50Lk1ldGhvZHMuQnlUYWdbdGFnTmFtZV0sbWV0aG9kcyk7 fQpmdW5jdGlvbiBjb3B5KG1ldGhvZHMsZGVzdGluYXRpb24sb25seUlmQWJzZW50 KXtvbmx5SWZBYnNlbnQ9b25seUlmQWJzZW50fHxmYWxzZTtmb3IodmFyIHByb3Bl cnR5IGluIG1ldGhvZHMpe3ZhciB2YWx1ZT1tZXRob2RzW3Byb3BlcnR5XTtpZigh T2JqZWN0LmlzRnVuY3Rpb24odmFsdWUpKWNvbnRpbnVlO2lmKCFvbmx5SWZBYnNl bnR8fCEocHJvcGVydHkgaW4gZGVzdGluYXRpb24pKQpkZXN0aW5hdGlvbltwcm9w ZXJ0eV09dmFsdWUubWV0aG9kaXplKCk7fX0KZnVuY3Rpb24gZmluZERPTUNsYXNz KHRhZ05hbWUpe3ZhciBrbGFzczt2YXIgdHJhbnM9eyJPUFRHUk9VUCI6Ik9wdEdy b3VwIiwiVEVYVEFSRUEiOiJUZXh0QXJlYSIsIlAiOiJQYXJhZ3JhcGgiLCJGSUVM RFNFVCI6IkZpZWxkU2V0IiwiVUwiOiJVTGlzdCIsIk9MIjoiT0xpc3QiLCJETCI6 IkRMaXN0IiwiRElSIjoiRGlyZWN0b3J5IiwiSDEiOiJIZWFkaW5nIiwiSDIiOiJI ZWFkaW5nIiwiSDMiOiJIZWFkaW5nIiwiSDQiOiJIZWFkaW5nIiwiSDUiOiJIZWFk aW5nIiwiSDYiOiJIZWFkaW5nIiwiUSI6IlF1b3RlIiwiSU5TIjoiTW9kIiwiREVM IjoiTW9kIiwiQSI6IkFuY2hvciIsIklNRyI6IkltYWdlIiwiQ0FQVElPTiI6IlRh YmxlQ2FwdGlvbiIsIkNPTCI6IlRhYmxlQ29sIiwiQ09MR1JPVVAiOiJUYWJsZUNv bCIsIlRIRUFEIjoiVGFibGVTZWN0aW9uIiwiVEZPT1QiOiJUYWJsZVNlY3Rpb24i LCJUQk9EWSI6IlRhYmxlU2VjdGlvbiIsIlRSIjoiVGFibGVSb3ciLCJUSCI6IlRh YmxlQ2VsbCIsIlREIjoiVGFibGVDZWxsIiwiRlJBTUVTRVQiOiJGcmFtZVNldCIs IklGUkFNRSI6IklGcmFtZSJ9O2lmKHRyYW5zW3RhZ05hbWVdKWtsYXNzPSdIVE1M Jyt0cmFuc1t0YWdOYW1lXSsnRWxlbWVudCc7aWYod2luZG93W2tsYXNzXSlyZXR1 cm4gd2luZG93W2tsYXNzXTtrbGFzcz0nSFRNTCcrdGFnTmFtZSsnRWxlbWVudCc7 aWYod2luZG93W2tsYXNzXSlyZXR1cm4gd2luZG93W2tsYXNzXTtrbGFzcz0nSFRN TCcrdGFnTmFtZS5jYXBpdGFsaXplKCkrJ0VsZW1lbnQnO2lmKHdpbmRvd1trbGFz c10pcmV0dXJuIHdpbmRvd1trbGFzc107d2luZG93W2tsYXNzXT17fTt3aW5kb3db a2xhc3NdLnByb3RvdHlwZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUp Ll9fcHJvdG9fXztyZXR1cm4gd2luZG93W2tsYXNzXTt9CmlmKEYuRWxlbWVudEV4 dGVuc2lvbnMpe2NvcHkoRWxlbWVudC5NZXRob2RzLEhUTUxFbGVtZW50LnByb3Rv dHlwZSk7Y29weShFbGVtZW50Lk1ldGhvZHMuU2ltdWxhdGVkLEhUTUxFbGVtZW50 LnByb3RvdHlwZSx0cnVlKTt9CmlmKEYuU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9u cyl7Zm9yKHZhciB0YWcgaW4gRWxlbWVudC5NZXRob2RzLkJ5VGFnKXt2YXIga2xh c3M9ZmluZERPTUNsYXNzKHRhZyk7aWYoT2JqZWN0LmlzVW5kZWZpbmVkKGtsYXNz KSljb250aW51ZTtjb3B5KFRbdGFnXSxrbGFzcy5wcm90b3R5cGUpO319Ck9iamVj dC5leHRlbmQoRWxlbWVudCxFbGVtZW50Lk1ldGhvZHMpO2RlbGV0ZSBFbGVtZW50 LkJ5VGFnO2lmKEVsZW1lbnQuZXh0ZW5kLnJlZnJlc2gpRWxlbWVudC5leHRlbmQu cmVmcmVzaCgpO0VsZW1lbnQuY2FjaGU9e307fTtkb2N1bWVudC52aWV3cG9ydD17 Z2V0RGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciBkaW1lbnNpb25zPXt9OyR3KCd3 aWR0aCBoZWlnaHQnKS5lYWNoKGZ1bmN0aW9uKGQpe3ZhciBEPWQuY2FwaXRhbGl6 ZSgpO2RpbWVuc2lvbnNbZF09c2VsZlsnaW5uZXInK0RdfHwoZG9jdW1lbnQuZG9j dW1lbnRFbGVtZW50WydjbGllbnQnK0RdfHxkb2N1bWVudC5ib2R5WydjbGllbnQn K0RdKTt9KTtyZXR1cm4gZGltZW5zaW9uczt9LGdldFdpZHRoOmZ1bmN0aW9uKCl7 cmV0dXJuIHRoaXMuZ2V0RGltZW5zaW9ucygpLndpZHRoO30sZ2V0SGVpZ2h0OmZ1 bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RGltZW5zaW9ucygpLmhlaWdodDt9LGdl dFNjcm9sbE9mZnNldHM6ZnVuY3Rpb24oKXtyZXR1cm4gRWxlbWVudC5fcmV0dXJu T2Zmc2V0KHdpbmRvdy5wYWdlWE9mZnNldHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCx3aW5kb3cu cGFnZVlPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8 fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKTt9fTt2YXIgU2VsZWN0b3I9Q2xhc3Mu Y3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGV4cHJlc3Npb24pe3RoaXMuZXhw cmVzc2lvbj1leHByZXNzaW9uLnN0cmlwKCk7dGhpcy5jb21waWxlTWF0Y2hlcigp O30sY29tcGlsZU1hdGNoZXI6ZnVuY3Rpb24oKXtpZihQcm90b3R5cGUuQnJvd3Nl ckZlYXR1cmVzLlhQYXRoJiYhKC8oXFtbXHctXSo/Onw6Y2hlY2tlZCkvKS50ZXN0 KHRoaXMuZXhwcmVzc2lvbikpCnJldHVybiB0aGlzLmNvbXBpbGVYUGF0aE1hdGNo ZXIoKTt2YXIgZT10aGlzLmV4cHJlc3Npb24scHM9U2VsZWN0b3IucGF0dGVybnMs aD1TZWxlY3Rvci5oYW5kbGVycyxjPVNlbGVjdG9yLmNyaXRlcmlhLGxlLHAsbTtp ZihTZWxlY3Rvci5fY2FjaGVbZV0pe3RoaXMubWF0Y2hlcj1TZWxlY3Rvci5fY2Fj aGVbZV07cmV0dXJuO30KdGhpcy5tYXRjaGVyPVsidGhpcy5tYXRjaGVyID0gZnVu Y3Rpb24ocm9vdCkgeyIsInZhciByID0gcm9vdCwgaCA9IFNlbGVjdG9yLmhhbmRs ZXJzLCBjID0gZmFsc2UsIG47Il07d2hpbGUoZSYmbGUhPWUmJigvXFMvKS50ZXN0 KGUpKXtsZT1lO2Zvcih2YXIgaSBpbiBwcyl7cD1wc1tpXTtpZihtPWUubWF0Y2go cCkpe3RoaXMubWF0Y2hlci5wdXNoKE9iamVjdC5pc0Z1bmN0aW9uKGNbaV0pP2Nb aV0obSk6bmV3IFRlbXBsYXRlKGNbaV0pLmV2YWx1YXRlKG0pKTtlPWUucmVwbGFj ZShtWzBdLCcnKTticmVhazt9fX0KdGhpcy5tYXRjaGVyLnB1c2goInJldHVybiBo LnVuaXF1ZShuKTtcbn0iKTtldmFsKHRoaXMubWF0Y2hlci5qb2luKCdcbicpKTtT ZWxlY3Rvci5fY2FjaGVbdGhpcy5leHByZXNzaW9uXT10aGlzLm1hdGNoZXI7fSxj b21waWxlWFBhdGhNYXRjaGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5leHByZXNz aW9uLHBzPVNlbGVjdG9yLnBhdHRlcm5zLHg9U2VsZWN0b3IueHBhdGgsbGUsbTtp ZihTZWxlY3Rvci5fY2FjaGVbZV0pe3RoaXMueHBhdGg9U2VsZWN0b3IuX2NhY2hl W2VdO3JldHVybjt9CnRoaXMubWF0Y2hlcj1bJy4vLyonXTt3aGlsZShlJiZsZSE9 ZSYmKC9cUy8pLnRlc3QoZSkpe2xlPWU7Zm9yKHZhciBpIGluIHBzKXtpZihtPWUu bWF0Y2gocHNbaV0pKXt0aGlzLm1hdGNoZXIucHVzaChPYmplY3QuaXNGdW5jdGlv bih4W2ldKT94W2ldKG0pOm5ldyBUZW1wbGF0ZSh4W2ldKS5ldmFsdWF0ZShtKSk7 ZT1lLnJlcGxhY2UobVswXSwnJyk7YnJlYWs7fX19CnRoaXMueHBhdGg9dGhpcy5t YXRjaGVyLmpvaW4oJycpO1NlbGVjdG9yLl9jYWNoZVt0aGlzLmV4cHJlc3Npb25d PXRoaXMueHBhdGg7fSxmaW5kRWxlbWVudHM6ZnVuY3Rpb24ocm9vdCl7cm9vdD1y b290fHxkb2N1bWVudDtpZih0aGlzLnhwYXRoKXJldHVybiBkb2N1bWVudC5fZ2V0 RWxlbWVudHNCeVhQYXRoKHRoaXMueHBhdGgscm9vdCk7cmV0dXJuIHRoaXMubWF0 Y2hlcihyb290KTt9LG1hdGNoOmZ1bmN0aW9uKGVsZW1lbnQpe3RoaXMudG9rZW5z PVtdO3ZhciBlPXRoaXMuZXhwcmVzc2lvbixwcz1TZWxlY3Rvci5wYXR0ZXJucyxh cz1TZWxlY3Rvci5hc3NlcnRpb25zO3ZhciBsZSxwLG07d2hpbGUoZSYmbGUhPT1l JiYoL1xTLykudGVzdChlKSl7bGU9ZTtmb3IodmFyIGkgaW4gcHMpe3A9cHNbaV07 aWYobT1lLm1hdGNoKHApKXtpZihhc1tpXSl7dGhpcy50b2tlbnMucHVzaChbaSxP YmplY3QuY2xvbmUobSldKTtlPWUucmVwbGFjZShtWzBdLCcnKTt9ZWxzZXtyZXR1 cm4gdGhpcy5maW5kRWxlbWVudHMoZG9jdW1lbnQpLmluY2x1ZGUoZWxlbWVudCk7 fX19fQp2YXIgbWF0Y2g9dHJ1ZSxuYW1lLG1hdGNoZXM7Zm9yKHZhciBpPTAsdG9r ZW47dG9rZW49dGhpcy50b2tlbnNbaV07aSsrKXtuYW1lPXRva2VuWzBdLG1hdGNo ZXM9dG9rZW5bMV07aWYoIVNlbGVjdG9yLmFzc2VydGlvbnNbbmFtZV0oZWxlbWVu dCxtYXRjaGVzKSl7bWF0Y2g9ZmFsc2U7YnJlYWs7fX0KcmV0dXJuIG1hdGNoO30s dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5leHByZXNzaW9uO30saW5z cGVjdDpmdW5jdGlvbigpe3JldHVybiIjPFNlbGVjdG9yOiIrdGhpcy5leHByZXNz aW9uLmluc3BlY3QoKSsiPiI7fX0pO09iamVjdC5leHRlbmQoU2VsZWN0b3Ise19j YWNoZTp7fSx4cGF0aDp7ZGVzY2VuZGFudDoiLy8qIixjaGlsZDoiLyoiLGFkamFj ZW50OiIvZm9sbG93aW5nLXNpYmxpbmc6OipbMV0iLGxhdGVyU2libGluZzonL2Zv bGxvd2luZy1zaWJsaW5nOjoqJyx0YWdOYW1lOmZ1bmN0aW9uKG0pe2lmKG1bMV09 PScqJylyZXR1cm4nJztyZXR1cm4iW2xvY2FsLW5hbWUoKT0nIittWzFdLnRvTG93 ZXJDYXNlKCkrIicgb3IgbG9jYWwtbmFtZSgpPSciK21bMV0udG9VcHBlckNhc2Uo KSsiJ10iO30sY2xhc3NOYW1lOiJbY29udGFpbnMoY29uY2F0KCcgJywgQGNsYXNz LCAnICcpLCAnICN7MX0gJyldIixpZDoiW0BpZD0nI3sxfSddIixhdHRyUHJlc2Vu Y2U6IltAI3sxfV0iLGF0dHI6ZnVuY3Rpb24obSl7bVszXT1tWzVdfHxtWzZdO3Jl dHVybiBuZXcgVGVtcGxhdGUoU2VsZWN0b3IueHBhdGgub3BlcmF0b3JzW21bMl1d KS5ldmFsdWF0ZShtKTt9LHBzZXVkbzpmdW5jdGlvbihtKXt2YXIgaD1TZWxlY3Rv ci54cGF0aC5wc2V1ZG9zW21bMV1dO2lmKCFoKXJldHVybicnO2lmKE9iamVjdC5p c0Z1bmN0aW9uKGgpKXJldHVybiBoKG0pO3JldHVybiBuZXcgVGVtcGxhdGUoU2Vs ZWN0b3IueHBhdGgucHNldWRvc1ttWzFdXSkuZXZhbHVhdGUobSk7fSxvcGVyYXRv cnM6eyc9JzoiW0AjezF9PScjezN9J10iLCchPSc6IltAI3sxfSE9JyN7M30nXSIs J149JzoiW3N0YXJ0cy13aXRoKEAjezF9LCAnI3szfScpXSIsJyQ9JzoiW3N1YnN0 cmluZyhAI3sxfSwgKHN0cmluZy1sZW5ndGgoQCN7MX0pIC0gc3RyaW5nLWxlbmd0 aCgnI3szfScpICsgMSkpPScjezN9J10iLCcqPSc6Iltjb250YWlucyhAI3sxfSwg JyN7M30nKV0iLCd+PSc6Iltjb250YWlucyhjb25jYXQoJyAnLCBAI3sxfSwgJyAn KSwgJyAjezN9ICcpXSIsJ3w9JzoiW2NvbnRhaW5zKGNvbmNhdCgnLScsIEAjezF9 LCAnLScpLCAnLSN7M30tJyldIn0scHNldWRvczp7J2ZpcnN0LWNoaWxkJzonW25v dChwcmVjZWRpbmctc2libGluZzo6KildJywnbGFzdC1jaGlsZCc6J1tub3QoZm9s bG93aW5nLXNpYmxpbmc6OiopXScsJ29ubHktY2hpbGQnOidbbm90KHByZWNlZGlu Zy1zaWJsaW5nOjoqIG9yIGZvbGxvd2luZy1zaWJsaW5nOjoqKV0nLCdlbXB0eSc6 Iltjb3VudCgqKSA9IDAgYW5kIChjb3VudCh0ZXh0KCkpID0gMCBvciB0cmFuc2xh dGUodGV4dCgpLCAnIFx0XHJcbicsICcnKSA9ICcnKV0iLCdjaGVja2VkJzoiW0Bj aGVja2VkXSIsJ2Rpc2FibGVkJzoiW0BkaXNhYmxlZF0iLCdlbmFibGVkJzoiW25v dChAZGlzYWJsZWQpXSIsJ25vdCc6ZnVuY3Rpb24obSl7dmFyIGU9bVs2XSxwPVNl bGVjdG9yLnBhdHRlcm5zLHg9U2VsZWN0b3IueHBhdGgsbGUsbSx2O3ZhciBleGNs dXNpb249W107d2hpbGUoZSYmbGUhPWUmJigvXFMvKS50ZXN0KGUpKXtsZT1lO2Zv cih2YXIgaSBpbiBwKXtpZihtPWUubWF0Y2gocFtpXSkpe3Y9T2JqZWN0LmlzRnVu Y3Rpb24oeFtpXSk/eFtpXShtKTpuZXcgVGVtcGxhdGUoeFtpXSkuZXZhbHVhdGUo bSk7ZXhjbHVzaW9uLnB1c2goIigiK3Yuc3Vic3RyaW5nKDEsdi5sZW5ndGgtMSkr IikiKTtlPWUucmVwbGFjZShtWzBdLCcnKTticmVhazt9fX0KcmV0dXJuIltub3Qo IitleGNsdXNpb24uam9pbigiIGFuZCAiKSsiKV0iO30sJ250aC1jaGlsZCc6ZnVu Y3Rpb24obSl7cmV0dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3MubnRoKCIoY291 bnQoLi9wcmVjZWRpbmctc2libGluZzo6KikgKyAxKSAiLG0pO30sJ250aC1sYXN0 LWNoaWxkJzpmdW5jdGlvbihtKXtyZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRv cy5udGgoIihjb3VudCguL2ZvbGxvd2luZy1zaWJsaW5nOjoqKSArIDEpICIsbSk7 fSwnbnRoLW9mLXR5cGUnOmZ1bmN0aW9uKG0pe3JldHVybiBTZWxlY3Rvci54cGF0 aC5wc2V1ZG9zLm50aCgicG9zaXRpb24oKSAiLG0pO30sJ250aC1sYXN0LW9mLXR5 cGUnOmZ1bmN0aW9uKG0pe3JldHVybiBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zLm50 aCgiKGxhc3QoKSArIDEgLSBwb3NpdGlvbigpKSAiLG0pO30sJ2ZpcnN0LW9mLXR5 cGUnOmZ1bmN0aW9uKG0pe21bNl09IjEiO3JldHVybiBTZWxlY3Rvci54cGF0aC5w c2V1ZG9zWydudGgtb2YtdHlwZSddKG0pO30sJ2xhc3Qtb2YtdHlwZSc6ZnVuY3Rp b24obSl7bVs2XT0iMSI7cmV0dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3NbJ250 aC1sYXN0LW9mLXR5cGUnXShtKTt9LCdvbmx5LW9mLXR5cGUnOmZ1bmN0aW9uKG0p e3ZhciBwPVNlbGVjdG9yLnhwYXRoLnBzZXVkb3M7cmV0dXJuIHBbJ2ZpcnN0LW9m LXR5cGUnXShtKStwWydsYXN0LW9mLXR5cGUnXShtKTt9LG50aDpmdW5jdGlvbihm cmFnbWVudCxtKXt2YXIgbW0sZm9ybXVsYT1tWzZdLHByZWRpY2F0ZTtpZihmb3Jt dWxhPT0nZXZlbicpZm9ybXVsYT0nMm4rMCc7aWYoZm9ybXVsYT09J29kZCcpZm9y bXVsYT0nMm4rMSc7aWYobW09Zm9ybXVsYS5tYXRjaCgvXihcZCspJC8pKQpyZXR1 cm4nWycrZnJhZ21lbnQrIj0gIittbVsxXSsnXSc7aWYobW09Zm9ybXVsYS5tYXRj aCgvXigtP1xkKik/bigoWystXSkoXGQrKSk/Lykpe2lmKG1tWzFdPT0iLSIpbW1b MV09LTE7dmFyIGE9bW1bMV0/TnVtYmVyKG1tWzFdKToxO3ZhciBiPW1tWzJdP051 bWJlcihtbVsyXSk6MDtwcmVkaWNhdGU9IlsoKCN7ZnJhZ21lbnR9IC0gI3tifSkg bW9kICN7YX0gPSAwKSBhbmQgIisiKCgje2ZyYWdtZW50fSAtICN7Yn0pIGRpdiAj e2F9ID49IDApXSI7cmV0dXJuIG5ldyBUZW1wbGF0ZShwcmVkaWNhdGUpLmV2YWx1 YXRlKHtmcmFnbWVudDpmcmFnbWVudCxhOmEsYjpifSk7fX19fSxjcml0ZXJpYTp7 dGFnTmFtZTonbiA9IGgudGFnTmFtZShuLCByLCAiI3sxfSIsIGMpOyAgIGMgPSBm YWxzZTsnLGNsYXNzTmFtZTonbiA9IGguY2xhc3NOYW1lKG4sIHIsICIjezF9Iiwg Yyk7IGMgPSBmYWxzZTsnLGlkOiduID0gaC5pZChuLCByLCAiI3sxfSIsIGMpOyAg ICAgICAgYyA9IGZhbHNlOycsYXR0clByZXNlbmNlOiduID0gaC5hdHRyUHJlc2Vu Y2UobiwgciwgIiN7MX0iKTsgYyA9IGZhbHNlOycsYXR0cjpmdW5jdGlvbihtKXtt WzNdPShtWzVdfHxtWzZdKTtyZXR1cm4gbmV3IFRlbXBsYXRlKCduID0gaC5hdHRy KG4sIHIsICIjezF9IiwgIiN7M30iLCAiI3syfSIpOyBjID0gZmFsc2U7JykuZXZh bHVhdGUobSk7fSxwc2V1ZG86ZnVuY3Rpb24obSl7aWYobVs2XSltWzZdPW1bNl0u cmVwbGFjZSgvIi9nLCdcXCInKTtyZXR1cm4gbmV3IFRlbXBsYXRlKCduID0gaC5w c2V1ZG8obiwgIiN7MX0iLCAiI3s2fSIsIHIsIGMpOyBjID0gZmFsc2U7JykuZXZh bHVhdGUobSk7fSxkZXNjZW5kYW50OidjID0gImRlc2NlbmRhbnQiOycsY2hpbGQ6 J2MgPSAiY2hpbGQiOycsYWRqYWNlbnQ6J2MgPSAiYWRqYWNlbnQiOycsbGF0ZXJT aWJsaW5nOidjID0gImxhdGVyU2libGluZyI7J30scGF0dGVybnM6e2xhdGVyU2li bGluZzovXlxzKn5ccyovLGNoaWxkOi9eXHMqPlxzKi8sYWRqYWNlbnQ6L15ccypc K1xzKi8sZGVzY2VuZGFudDovXlxzLyx0YWdOYW1lOi9eXHMqKFwqfFtcd1wtXSsp KFxifCQpPy8saWQ6L14jKFtcd1wtXCpdKykoXGJ8JCkvLGNsYXNzTmFtZTovXlwu KFtcd1wtXCpdKykoXGJ8JCkvLHBzZXVkbzovXjooKGZpcnN0fGxhc3R8bnRofG50 aC1sYXN0fG9ubHkpKC1jaGlsZHwtb2YtdHlwZSl8ZW1wdHl8Y2hlY2tlZHwoZW58 ZGlzKWFibGVkfG5vdCkoXCgoLio/KVwpKT8oXGJ8JHwoPz1ccyl8KD89OikpLyxh dHRyUHJlc2VuY2U6L15cWyhbXHddKylcXS8sYXR0cjovXFsoKD86W1x3LV0qOik/ W1x3LV0rKVxzKig/OihbIV4kKn58XT89KVxzKigoWyciXSkoW15cNF0qPylcNHwo W14nIl1bXlxdXSo/KSkpP1xdL30sYXNzZXJ0aW9uczp7dGFnTmFtZTpmdW5jdGlv bihlbGVtZW50LG1hdGNoZXMpe3JldHVybiBtYXRjaGVzWzFdLnRvVXBwZXJDYXNl KCk9PWVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpO30sY2xhc3NOYW1lOmZ1 bmN0aW9uKGVsZW1lbnQsbWF0Y2hlcyl7cmV0dXJuIEVsZW1lbnQuaGFzQ2xhc3NO YW1lKGVsZW1lbnQsbWF0Y2hlc1sxXSk7fSxpZDpmdW5jdGlvbihlbGVtZW50LG1h dGNoZXMpe3JldHVybiBlbGVtZW50LmlkPT09bWF0Y2hlc1sxXTt9LGF0dHJQcmVz ZW5jZTpmdW5jdGlvbihlbGVtZW50LG1hdGNoZXMpe3JldHVybiBFbGVtZW50Lmhh c0F0dHJpYnV0ZShlbGVtZW50LG1hdGNoZXNbMV0pO30sYXR0cjpmdW5jdGlvbihl bGVtZW50LG1hdGNoZXMpe3ZhciBub2RlVmFsdWU9RWxlbWVudC5yZWFkQXR0cmli dXRlKGVsZW1lbnQsbWF0Y2hlc1sxXSk7cmV0dXJuIFNlbGVjdG9yLm9wZXJhdG9y c1ttYXRjaGVzWzJdXShub2RlVmFsdWUsbWF0Y2hlc1szXSk7fX0saGFuZGxlcnM6 e2NvbmNhdDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgaT0wLG5vZGU7bm9kZT1iW2ld O2krKykKYS5wdXNoKG5vZGUpO3JldHVybiBhO30sbWFyazpmdW5jdGlvbihub2Rl cyl7Zm9yKHZhciBpPTAsbm9kZTtub2RlPW5vZGVzW2ldO2krKykKbm9kZS5fY291 bnRlZD10cnVlO3JldHVybiBub2Rlczt9LHVubWFyazpmdW5jdGlvbihub2Rlcyl7 Zm9yKHZhciBpPTAsbm9kZTtub2RlPW5vZGVzW2ldO2krKykKbm9kZS5fY291bnRl ZD11bmRlZmluZWQ7cmV0dXJuIG5vZGVzO30saW5kZXg6ZnVuY3Rpb24ocGFyZW50 Tm9kZSxyZXZlcnNlLG9mVHlwZSl7cGFyZW50Tm9kZS5fY291bnRlZD10cnVlO2lm KHJldmVyc2Upe2Zvcih2YXIgbm9kZXM9cGFyZW50Tm9kZS5jaGlsZE5vZGVzLGk9 bm9kZXMubGVuZ3RoLTEsaj0xO2k+PTA7aS0tKXt2YXIgbm9kZT1ub2Rlc1tpXTtp Zihub2RlLm5vZGVUeXBlPT0xJiYoIW9mVHlwZXx8bm9kZS5fY291bnRlZCkpbm9k ZS5ub2RlSW5kZXg9aisrO319ZWxzZXtmb3IodmFyIGk9MCxqPTEsbm9kZXM9cGFy ZW50Tm9kZS5jaGlsZE5vZGVzO25vZGU9bm9kZXNbaV07aSsrKQppZihub2RlLm5v ZGVUeXBlPT0xJiYoIW9mVHlwZXx8bm9kZS5fY291bnRlZCkpbm9kZS5ub2RlSW5k ZXg9aisrO319LHVuaXF1ZTpmdW5jdGlvbihub2Rlcyl7aWYobm9kZXMubGVuZ3Ro PT0wKXJldHVybiBub2Rlczt2YXIgcmVzdWx0cz1bXSxuO2Zvcih2YXIgaT0wLGw9 bm9kZXMubGVuZ3RoO2k8bDtpKyspCmlmKCEobj1ub2Rlc1tpXSkuX2NvdW50ZWQp e24uX2NvdW50ZWQ9dHJ1ZTtyZXN1bHRzLnB1c2goRWxlbWVudC5leHRlbmQobikp O30KcmV0dXJuIFNlbGVjdG9yLmhhbmRsZXJzLnVubWFyayhyZXN1bHRzKTt9LGRl c2NlbmRhbnQ6ZnVuY3Rpb24obm9kZXMpe3ZhciBoPVNlbGVjdG9yLmhhbmRsZXJz O2Zvcih2YXIgaT0wLHJlc3VsdHM9W10sbm9kZTtub2RlPW5vZGVzW2ldO2krKykK aC5jb25jYXQocmVzdWx0cyxub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJykp O3JldHVybiByZXN1bHRzO30sY2hpbGQ6ZnVuY3Rpb24obm9kZXMpe3ZhciBoPVNl bGVjdG9yLmhhbmRsZXJzO2Zvcih2YXIgaT0wLHJlc3VsdHM9W10sbm9kZTtub2Rl PW5vZGVzW2ldO2krKyl7Zm9yKHZhciBqPTAsY2hpbGRyZW49W10sY2hpbGQ7Y2hp bGQ9bm9kZS5jaGlsZE5vZGVzW2pdO2orKykKaWYoY2hpbGQubm9kZVR5cGU9PTEm JmNoaWxkLnRhZ05hbWUhPSchJylyZXN1bHRzLnB1c2goY2hpbGQpO30KcmV0dXJu IHJlc3VsdHM7fSxhZGphY2VudDpmdW5jdGlvbihub2Rlcyl7Zm9yKHZhciBpPTAs cmVzdWx0cz1bXSxub2RlO25vZGU9bm9kZXNbaV07aSsrKXt2YXIgbmV4dD10aGlz Lm5leHRFbGVtZW50U2libGluZyhub2RlKTtpZihuZXh0KXJlc3VsdHMucHVzaChu ZXh0KTt9CnJldHVybiByZXN1bHRzO30sbGF0ZXJTaWJsaW5nOmZ1bmN0aW9uKG5v ZGVzKXt2YXIgaD1TZWxlY3Rvci5oYW5kbGVycztmb3IodmFyIGk9MCxyZXN1bHRz PVtdLG5vZGU7bm9kZT1ub2Rlc1tpXTtpKyspCmguY29uY2F0KHJlc3VsdHMsRWxl bWVudC5uZXh0U2libGluZ3Mobm9kZSkpO3JldHVybiByZXN1bHRzO30sbmV4dEVs ZW1lbnRTaWJsaW5nOmZ1bmN0aW9uKG5vZGUpe3doaWxlKG5vZGU9bm9kZS5uZXh0 U2libGluZykKaWYobm9kZS5ub2RlVHlwZT09MSlyZXR1cm4gbm9kZTtyZXR1cm4g bnVsbDt9LHByZXZpb3VzRWxlbWVudFNpYmxpbmc6ZnVuY3Rpb24obm9kZSl7d2hp bGUobm9kZT1ub2RlLnByZXZpb3VzU2libGluZykKaWYobm9kZS5ub2RlVHlwZT09 MSlyZXR1cm4gbm9kZTtyZXR1cm4gbnVsbDt9LHRhZ05hbWU6ZnVuY3Rpb24obm9k ZXMscm9vdCx0YWdOYW1lLGNvbWJpbmF0b3Ipe3RhZ05hbWU9dGFnTmFtZS50b1Vw cGVyQ2FzZSgpO3ZhciByZXN1bHRzPVtdLGg9U2VsZWN0b3IuaGFuZGxlcnM7aWYo bm9kZXMpe2lmKGNvbWJpbmF0b3Ipe2lmKGNvbWJpbmF0b3I9PSJkZXNjZW5kYW50 Iil7Zm9yKHZhciBpPTAsbm9kZTtub2RlPW5vZGVzW2ldO2krKykKaC5jb25jYXQo cmVzdWx0cyxub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUpKTtyZXR1 cm4gcmVzdWx0czt9ZWxzZSBub2Rlcz10aGlzW2NvbWJpbmF0b3JdKG5vZGVzKTtp Zih0YWdOYW1lPT0iKiIpcmV0dXJuIG5vZGVzO30KZm9yKHZhciBpPTAsbm9kZTtu b2RlPW5vZGVzW2ldO2krKykKaWYobm9kZS50YWdOYW1lLnRvVXBwZXJDYXNlKCk9 PXRhZ05hbWUpcmVzdWx0cy5wdXNoKG5vZGUpO3JldHVybiByZXN1bHRzO31lbHNl IHJldHVybiByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUpO30saWQ6 ZnVuY3Rpb24obm9kZXMscm9vdCxpZCxjb21iaW5hdG9yKXt2YXIgdGFyZ2V0Tm9k ZT0kKGlkKSxoPVNlbGVjdG9yLmhhbmRsZXJzO2lmKCF0YXJnZXROb2RlKXJldHVy bltdO2lmKCFub2RlcyYmcm9vdD09ZG9jdW1lbnQpcmV0dXJuW3RhcmdldE5vZGVd O2lmKG5vZGVzKXtpZihjb21iaW5hdG9yKXtpZihjb21iaW5hdG9yPT0nY2hpbGQn KXtmb3IodmFyIGk9MCxub2RlO25vZGU9bm9kZXNbaV07aSsrKQppZih0YXJnZXRO b2RlLnBhcmVudE5vZGU9PW5vZGUpcmV0dXJuW3RhcmdldE5vZGVdO31lbHNlIGlm KGNvbWJpbmF0b3I9PSdkZXNjZW5kYW50Jyl7Zm9yKHZhciBpPTAsbm9kZTtub2Rl PW5vZGVzW2ldO2krKykKaWYoRWxlbWVudC5kZXNjZW5kYW50T2YodGFyZ2V0Tm9k ZSxub2RlKSlyZXR1cm5bdGFyZ2V0Tm9kZV07fWVsc2UgaWYoY29tYmluYXRvcj09 J2FkamFjZW50Jyl7Zm9yKHZhciBpPTAsbm9kZTtub2RlPW5vZGVzW2ldO2krKykK aWYoU2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyh0YXJn ZXROb2RlKT09bm9kZSkKcmV0dXJuW3RhcmdldE5vZGVdO31lbHNlIG5vZGVzPWhb Y29tYmluYXRvcl0obm9kZXMpO30KZm9yKHZhciBpPTAsbm9kZTtub2RlPW5vZGVz W2ldO2krKykKaWYobm9kZT09dGFyZ2V0Tm9kZSlyZXR1cm5bdGFyZ2V0Tm9kZV07 cmV0dXJuW107fQpyZXR1cm4odGFyZ2V0Tm9kZSYmRWxlbWVudC5kZXNjZW5kYW50 T2YodGFyZ2V0Tm9kZSxyb290KSk/W3RhcmdldE5vZGVdOltdO30sY2xhc3NOYW1l OmZ1bmN0aW9uKG5vZGVzLHJvb3QsY2xhc3NOYW1lLGNvbWJpbmF0b3Ipe2lmKG5v ZGVzJiZjb21iaW5hdG9yKW5vZGVzPXRoaXNbY29tYmluYXRvcl0obm9kZXMpO3Jl dHVybiBTZWxlY3Rvci5oYW5kbGVycy5ieUNsYXNzTmFtZShub2Rlcyxyb290LGNs YXNzTmFtZSk7fSxieUNsYXNzTmFtZTpmdW5jdGlvbihub2Rlcyxyb290LGNsYXNz TmFtZSl7aWYoIW5vZGVzKW5vZGVzPVNlbGVjdG9yLmhhbmRsZXJzLmRlc2NlbmRh bnQoW3Jvb3RdKTt2YXIgbmVlZGxlPScgJytjbGFzc05hbWUrJyAnO2Zvcih2YXIg aT0wLHJlc3VsdHM9W10sbm9kZSxub2RlQ2xhc3NOYW1lO25vZGU9bm9kZXNbaV07 aSsrKXtub2RlQ2xhc3NOYW1lPW5vZGUuY2xhc3NOYW1lO2lmKG5vZGVDbGFzc05h bWUubGVuZ3RoPT0wKWNvbnRpbnVlO2lmKG5vZGVDbGFzc05hbWU9PWNsYXNzTmFt ZXx8KCcgJytub2RlQ2xhc3NOYW1lKycgJykuaW5jbHVkZShuZWVkbGUpKQpyZXN1 bHRzLnB1c2gobm9kZSk7fQpyZXR1cm4gcmVzdWx0czt9LGF0dHJQcmVzZW5jZTpm dW5jdGlvbihub2Rlcyxyb290LGF0dHIpe2lmKCFub2Rlcylub2Rlcz1yb290Lmdl dEVsZW1lbnRzQnlUYWdOYW1lKCIqIik7dmFyIHJlc3VsdHM9W107Zm9yKHZhciBp PTAsbm9kZTtub2RlPW5vZGVzW2ldO2krKykKaWYoRWxlbWVudC5oYXNBdHRyaWJ1 dGUobm9kZSxhdHRyKSlyZXN1bHRzLnB1c2gobm9kZSk7cmV0dXJuIHJlc3VsdHM7 fSxhdHRyOmZ1bmN0aW9uKG5vZGVzLHJvb3QsYXR0cix2YWx1ZSxvcGVyYXRvcil7 aWYoIW5vZGVzKW5vZGVzPXJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTt2 YXIgaGFuZGxlcj1TZWxlY3Rvci5vcGVyYXRvcnNbb3BlcmF0b3JdLHJlc3VsdHM9 W107Zm9yKHZhciBpPTAsbm9kZTtub2RlPW5vZGVzW2ldO2krKyl7dmFyIG5vZGVW YWx1ZT1FbGVtZW50LnJlYWRBdHRyaWJ1dGUobm9kZSxhdHRyKTtpZihub2RlVmFs dWU9PT1udWxsKWNvbnRpbnVlO2lmKGhhbmRsZXIobm9kZVZhbHVlLHZhbHVlKSly ZXN1bHRzLnB1c2gobm9kZSk7fQpyZXR1cm4gcmVzdWx0czt9LHBzZXVkbzpmdW5j dGlvbihub2RlcyxuYW1lLHZhbHVlLHJvb3QsY29tYmluYXRvcil7aWYobm9kZXMm JmNvbWJpbmF0b3Ipbm9kZXM9dGhpc1tjb21iaW5hdG9yXShub2Rlcyk7aWYoIW5v ZGVzKW5vZGVzPXJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTtyZXR1cm4g U2VsZWN0b3IucHNldWRvc1tuYW1lXShub2Rlcyx2YWx1ZSxyb290KTt9fSxwc2V1 ZG9zOnsnZmlyc3QtY2hpbGQnOmZ1bmN0aW9uKG5vZGVzLHZhbHVlLHJvb3Qpe2Zv cih2YXIgaT0wLHJlc3VsdHM9W10sbm9kZTtub2RlPW5vZGVzW2ldO2krKyl7aWYo U2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyhub2RlKSlj b250aW51ZTtyZXN1bHRzLnB1c2gobm9kZSk7fQpyZXR1cm4gcmVzdWx0czt9LCds YXN0LWNoaWxkJzpmdW5jdGlvbihub2Rlcyx2YWx1ZSxyb290KXtmb3IodmFyIGk9 MCxyZXN1bHRzPVtdLG5vZGU7bm9kZT1ub2Rlc1tpXTtpKyspe2lmKFNlbGVjdG9y LmhhbmRsZXJzLm5leHRFbGVtZW50U2libGluZyhub2RlKSljb250aW51ZTtyZXN1 bHRzLnB1c2gobm9kZSk7fQpyZXR1cm4gcmVzdWx0czt9LCdvbmx5LWNoaWxkJzpm dW5jdGlvbihub2Rlcyx2YWx1ZSxyb290KXt2YXIgaD1TZWxlY3Rvci5oYW5kbGVy cztmb3IodmFyIGk9MCxyZXN1bHRzPVtdLG5vZGU7bm9kZT1ub2Rlc1tpXTtpKysp CmlmKCFoLnByZXZpb3VzRWxlbWVudFNpYmxpbmcobm9kZSkmJiFoLm5leHRFbGVt ZW50U2libGluZyhub2RlKSkKcmVzdWx0cy5wdXNoKG5vZGUpO3JldHVybiByZXN1 bHRzO30sJ250aC1jaGlsZCc6ZnVuY3Rpb24obm9kZXMsZm9ybXVsYSxyb290KXty ZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsZm9ybXVsYSxyb290KTt9 LCdudGgtbGFzdC1jaGlsZCc6ZnVuY3Rpb24obm9kZXMsZm9ybXVsYSxyb290KXty ZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsZm9ybXVsYSxyb290LHRy dWUpO30sJ250aC1vZi10eXBlJzpmdW5jdGlvbihub2Rlcyxmb3JtdWxhLHJvb3Qp e3JldHVybiBTZWxlY3Rvci5wc2V1ZG9zLm50aChub2Rlcyxmb3JtdWxhLHJvb3Qs ZmFsc2UsdHJ1ZSk7fSwnbnRoLWxhc3Qtb2YtdHlwZSc6ZnVuY3Rpb24obm9kZXMs Zm9ybXVsYSxyb290KXtyZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMs Zm9ybXVsYSxyb290LHRydWUsdHJ1ZSk7fSwnZmlyc3Qtb2YtdHlwZSc6ZnVuY3Rp b24obm9kZXMsZm9ybXVsYSxyb290KXtyZXR1cm4gU2VsZWN0b3IucHNldWRvcy5u dGgobm9kZXMsIjEiLHJvb3QsZmFsc2UsdHJ1ZSk7fSwnbGFzdC1vZi10eXBlJzpm dW5jdGlvbihub2Rlcyxmb3JtdWxhLHJvb3Qpe3JldHVybiBTZWxlY3Rvci5wc2V1 ZG9zLm50aChub2RlcywiMSIscm9vdCx0cnVlLHRydWUpO30sJ29ubHktb2YtdHlw ZSc6ZnVuY3Rpb24obm9kZXMsZm9ybXVsYSxyb290KXt2YXIgcD1TZWxlY3Rvci5w c2V1ZG9zO3JldHVybiBwWydsYXN0LW9mLXR5cGUnXShwWydmaXJzdC1vZi10eXBl J10obm9kZXMsZm9ybXVsYSxyb290KSxmb3JtdWxhLHJvb3QpO30sZ2V0SW5kaWNl czpmdW5jdGlvbihhLGIsdG90YWwpe2lmKGE9PTApcmV0dXJuIGI+MD9bYl06W107 cmV0dXJuICRSKDEsdG90YWwpLmluamVjdChbXSxmdW5jdGlvbihtZW1vLGkpe2lm KDA9PShpLWIpJWEmJihpLWIpL2E+PTApbWVtby5wdXNoKGkpO3JldHVybiBtZW1v O30pO30sbnRoOmZ1bmN0aW9uKG5vZGVzLGZvcm11bGEscm9vdCxyZXZlcnNlLG9m VHlwZSl7aWYobm9kZXMubGVuZ3RoPT0wKXJldHVybltdO2lmKGZvcm11bGE9PSdl dmVuJylmb3JtdWxhPScybiswJztpZihmb3JtdWxhPT0nb2RkJylmb3JtdWxhPScy bisxJzt2YXIgaD1TZWxlY3Rvci5oYW5kbGVycyxyZXN1bHRzPVtdLGluZGV4ZWQ9 W10sbTtoLm1hcmsobm9kZXMpO2Zvcih2YXIgaT0wLG5vZGU7bm9kZT1ub2Rlc1tp XTtpKyspe2lmKCFub2RlLnBhcmVudE5vZGUuX2NvdW50ZWQpe2guaW5kZXgobm9k ZS5wYXJlbnROb2RlLHJldmVyc2Usb2ZUeXBlKTtpbmRleGVkLnB1c2gobm9kZS5w YXJlbnROb2RlKTt9fQppZihmb3JtdWxhLm1hdGNoKC9eXGQrJC8pKXtmb3JtdWxh PU51bWJlcihmb3JtdWxhKTtmb3IodmFyIGk9MCxub2RlO25vZGU9bm9kZXNbaV07 aSsrKQppZihub2RlLm5vZGVJbmRleD09Zm9ybXVsYSlyZXN1bHRzLnB1c2gobm9k ZSk7fWVsc2UgaWYobT1mb3JtdWxhLm1hdGNoKC9eKC0/XGQqKT9uKChbKy1dKShc ZCspKT8vKSl7aWYobVsxXT09Ii0iKW1bMV09LTE7dmFyIGE9bVsxXT9OdW1iZXIo bVsxXSk6MTt2YXIgYj1tWzJdP051bWJlcihtWzJdKTowO3ZhciBpbmRpY2VzPVNl bGVjdG9yLnBzZXVkb3MuZ2V0SW5kaWNlcyhhLGIsbm9kZXMubGVuZ3RoKTtmb3Io dmFyIGk9MCxub2RlLGw9aW5kaWNlcy5sZW5ndGg7bm9kZT1ub2Rlc1tpXTtpKysp e2Zvcih2YXIgaj0wO2o8bDtqKyspCmlmKG5vZGUubm9kZUluZGV4PT1pbmRpY2Vz W2pdKXJlc3VsdHMucHVzaChub2RlKTt9fQpoLnVubWFyayhub2Rlcyk7aC51bm1h cmsoaW5kZXhlZCk7cmV0dXJuIHJlc3VsdHM7fSwnZW1wdHknOmZ1bmN0aW9uKG5v ZGVzLHZhbHVlLHJvb3Qpe2Zvcih2YXIgaT0wLHJlc3VsdHM9W10sbm9kZTtub2Rl PW5vZGVzW2ldO2krKyl7aWYobm9kZS50YWdOYW1lPT0nISd8fChub2RlLmZpcnN0 Q2hpbGQmJiFub2RlLmlubmVySFRNTC5tYXRjaCgvXlxzKiQvKSkpY29udGludWU7 cmVzdWx0cy5wdXNoKG5vZGUpO30KcmV0dXJuIHJlc3VsdHM7fSwnbm90JzpmdW5j dGlvbihub2RlcyxzZWxlY3Rvcixyb290KXt2YXIgaD1TZWxlY3Rvci5oYW5kbGVy cyxzZWxlY3RvclR5cGUsbTt2YXIgZXhjbHVzaW9ucz1uZXcgU2VsZWN0b3Ioc2Vs ZWN0b3IpLmZpbmRFbGVtZW50cyhyb290KTtoLm1hcmsoZXhjbHVzaW9ucyk7Zm9y KHZhciBpPTAscmVzdWx0cz1bXSxub2RlO25vZGU9bm9kZXNbaV07aSsrKQppZigh bm9kZS5fY291bnRlZClyZXN1bHRzLnB1c2gobm9kZSk7aC51bm1hcmsoZXhjbHVz aW9ucyk7cmV0dXJuIHJlc3VsdHM7fSwnZW5hYmxlZCc6ZnVuY3Rpb24obm9kZXMs dmFsdWUscm9vdCl7Zm9yKHZhciBpPTAscmVzdWx0cz1bXSxub2RlO25vZGU9bm9k ZXNbaV07aSsrKQppZighbm9kZS5kaXNhYmxlZClyZXN1bHRzLnB1c2gobm9kZSk7 cmV0dXJuIHJlc3VsdHM7fSwnZGlzYWJsZWQnOmZ1bmN0aW9uKG5vZGVzLHZhbHVl LHJvb3Qpe2Zvcih2YXIgaT0wLHJlc3VsdHM9W10sbm9kZTtub2RlPW5vZGVzW2ld O2krKykKaWYobm9kZS5kaXNhYmxlZClyZXN1bHRzLnB1c2gobm9kZSk7cmV0dXJu IHJlc3VsdHM7fSwnY2hlY2tlZCc6ZnVuY3Rpb24obm9kZXMsdmFsdWUscm9vdCl7 Zm9yKHZhciBpPTAscmVzdWx0cz1bXSxub2RlO25vZGU9bm9kZXNbaV07aSsrKQpp Zihub2RlLmNoZWNrZWQpcmVzdWx0cy5wdXNoKG5vZGUpO3JldHVybiByZXN1bHRz O319LG9wZXJhdG9yczp7Jz0nOmZ1bmN0aW9uKG52LHYpe3JldHVybiBudj09djt9 LCchPSc6ZnVuY3Rpb24obnYsdil7cmV0dXJuIG52IT12O30sJ149JzpmdW5jdGlv bihudix2KXtyZXR1cm4gbnYuc3RhcnRzV2l0aCh2KTt9LCckPSc6ZnVuY3Rpb24o bnYsdil7cmV0dXJuIG52LmVuZHNXaXRoKHYpO30sJyo9JzpmdW5jdGlvbihudix2 KXtyZXR1cm4gbnYuaW5jbHVkZSh2KTt9LCd+PSc6ZnVuY3Rpb24obnYsdil7cmV0 dXJuKCcgJytudisnICcpLmluY2x1ZGUoJyAnK3YrJyAnKTt9LCd8PSc6ZnVuY3Rp b24obnYsdil7cmV0dXJuKCctJytudi50b1VwcGVyQ2FzZSgpKyctJykuaW5jbHVk ZSgnLScrdi50b1VwcGVyQ2FzZSgpKyctJyk7fX0sbWF0Y2hFbGVtZW50czpmdW5j dGlvbihlbGVtZW50cyxleHByZXNzaW9uKXt2YXIgbWF0Y2hlcz1uZXcgU2VsZWN0 b3IoZXhwcmVzc2lvbikuZmluZEVsZW1lbnRzKCksaD1TZWxlY3Rvci5oYW5kbGVy cztoLm1hcmsobWF0Y2hlcyk7Zm9yKHZhciBpPTAscmVzdWx0cz1bXSxlbGVtZW50 O2VsZW1lbnQ9ZWxlbWVudHNbaV07aSsrKQppZihlbGVtZW50Ll9jb3VudGVkKXJl c3VsdHMucHVzaChlbGVtZW50KTtoLnVubWFyayhtYXRjaGVzKTtyZXR1cm4gcmVz dWx0czt9LGZpbmRFbGVtZW50OmZ1bmN0aW9uKGVsZW1lbnRzLGV4cHJlc3Npb24s aW5kZXgpe2lmKE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSl7aW5kZXg9ZXhw cmVzc2lvbjtleHByZXNzaW9uPWZhbHNlO30KcmV0dXJuIFNlbGVjdG9yLm1hdGNo RWxlbWVudHMoZWxlbWVudHMsZXhwcmVzc2lvbnx8JyonKVtpbmRleHx8MF07fSxm aW5kQ2hpbGRFbGVtZW50czpmdW5jdGlvbihlbGVtZW50LGV4cHJlc3Npb25zKXt2 YXIgZXhwcnM9ZXhwcmVzc2lvbnMuam9pbignLCcpLGV4cHJlc3Npb25zPVtdO2V4 cHJzLnNjYW4oLygoW1x3Izoufj4rKClccy1dK3xcKnxcWy4qP1xdKSspXHMqKCx8 JCkvLGZ1bmN0aW9uKG0pe2V4cHJlc3Npb25zLnB1c2gobVsxXS5zdHJpcCgpKTt9 KTt2YXIgcmVzdWx0cz1bXSxoPVNlbGVjdG9yLmhhbmRsZXJzO2Zvcih2YXIgaT0w LGw9ZXhwcmVzc2lvbnMubGVuZ3RoLHNlbGVjdG9yO2k8bDtpKyspe3NlbGVjdG9y PW5ldyBTZWxlY3RvcihleHByZXNzaW9uc1tpXS5zdHJpcCgpKTtoLmNvbmNhdChy ZXN1bHRzLHNlbGVjdG9yLmZpbmRFbGVtZW50cyhlbGVtZW50KSk7fQpyZXR1cm4o bD4xKT9oLnVuaXF1ZShyZXN1bHRzKTpyZXN1bHRzO319KTtmdW5jdGlvbiAkJCgp e3JldHVybiBTZWxlY3Rvci5maW5kQ2hpbGRFbGVtZW50cyhkb2N1bWVudCwkQShh cmd1bWVudHMpKTt9CnZhciBGb3JtPXtyZXNldDpmdW5jdGlvbihmb3JtKXskKGZv cm0pLnJlc2V0KCk7cmV0dXJuIGZvcm07fSxzZXJpYWxpemVFbGVtZW50czpmdW5j dGlvbihlbGVtZW50cyxvcHRpb25zKXtpZih0eXBlb2Ygb3B0aW9ucyE9J29iamVj dCcpb3B0aW9ucz17aGFzaDohIW9wdGlvbnN9O2Vsc2UgaWYob3B0aW9ucy5oYXNo PT09dW5kZWZpbmVkKW9wdGlvbnMuaGFzaD10cnVlO3ZhciBrZXksdmFsdWUsc3Vi bWl0dGVkPWZhbHNlLHN1Ym1pdD1vcHRpb25zLnN1Ym1pdDt2YXIgZGF0YT1lbGVt ZW50cy5pbmplY3Qoe30sZnVuY3Rpb24ocmVzdWx0LGVsZW1lbnQpe2lmKCFlbGVt ZW50LmRpc2FibGVkJiZlbGVtZW50Lm5hbWUpe2tleT1lbGVtZW50Lm5hbWU7dmFs dWU9JChlbGVtZW50KS5nZXRWYWx1ZSgpO2lmKHZhbHVlIT1udWxsJiYoZWxlbWVu dC50eXBlIT0nc3VibWl0J3x8KCFzdWJtaXR0ZWQmJnN1Ym1pdCE9PWZhbHNlJiYo IXN1Ym1pdHx8a2V5PT1zdWJtaXQpJiYoc3VibWl0dGVkPXRydWUpKSkpe2lmKGtl eSBpbiByZXN1bHQpe2lmKCFPYmplY3QuaXNBcnJheShyZXN1bHRba2V5XSkpcmVz dWx0W2tleV09W3Jlc3VsdFtrZXldXTtyZXN1bHRba2V5XS5wdXNoKHZhbHVlKTt9 CmVsc2UgcmVzdWx0W2tleV09dmFsdWU7fX0KcmV0dXJuIHJlc3VsdDt9KTtyZXR1 cm4gb3B0aW9ucy5oYXNoP2RhdGE6T2JqZWN0LnRvUXVlcnlTdHJpbmcoZGF0YSk7 fX07Rm9ybS5NZXRob2RzPXtzZXJpYWxpemU6ZnVuY3Rpb24oZm9ybSxvcHRpb25z KXtyZXR1cm4gRm9ybS5zZXJpYWxpemVFbGVtZW50cyhGb3JtLmdldEVsZW1lbnRz KGZvcm0pLG9wdGlvbnMpO30sZ2V0RWxlbWVudHM6ZnVuY3Rpb24oZm9ybSl7cmV0 dXJuICRBKCQoZm9ybSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyonKSkuaW5qZWN0 KFtdLGZ1bmN0aW9uKGVsZW1lbnRzLGNoaWxkKXtpZihGb3JtLkVsZW1lbnQuU2Vy aWFsaXplcnNbY2hpbGQudGFnTmFtZS50b0xvd2VyQ2FzZSgpXSkKZWxlbWVudHMu cHVzaChFbGVtZW50LmV4dGVuZChjaGlsZCkpO3JldHVybiBlbGVtZW50czt9KTt9 LGdldElucHV0czpmdW5jdGlvbihmb3JtLHR5cGVOYW1lLG5hbWUpe2Zvcm09JChm b3JtKTt2YXIgaW5wdXRzPWZvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0 Jyk7aWYoIXR5cGVOYW1lJiYhbmFtZSlyZXR1cm4gJEEoaW5wdXRzKS5tYXAoRWxl bWVudC5leHRlbmQpO2Zvcih2YXIgaT0wLG1hdGNoaW5nSW5wdXRzPVtdLGxlbmd0 aD1pbnB1dHMubGVuZ3RoO2k8bGVuZ3RoO2krKyl7dmFyIGlucHV0PWlucHV0c1tp XTtpZigodHlwZU5hbWUmJmlucHV0LnR5cGUhPXR5cGVOYW1lKXx8KG5hbWUmJmlu cHV0Lm5hbWUhPW5hbWUpKQpjb250aW51ZTttYXRjaGluZ0lucHV0cy5wdXNoKEVs ZW1lbnQuZXh0ZW5kKGlucHV0KSk7fQpyZXR1cm4gbWF0Y2hpbmdJbnB1dHM7fSxk aXNhYmxlOmZ1bmN0aW9uKGZvcm0pe2Zvcm09JChmb3JtKTtGb3JtLmdldEVsZW1l bnRzKGZvcm0pLmludm9rZSgnZGlzYWJsZScpO3JldHVybiBmb3JtO30sZW5hYmxl OmZ1bmN0aW9uKGZvcm0pe2Zvcm09JChmb3JtKTtGb3JtLmdldEVsZW1lbnRzKGZv cm0pLmludm9rZSgnZW5hYmxlJyk7cmV0dXJuIGZvcm07fSxmaW5kRmlyc3RFbGVt ZW50OmZ1bmN0aW9uKGZvcm0pe3ZhciBlbGVtZW50cz0kKGZvcm0pLmdldEVsZW1l bnRzKCkuZmluZEFsbChmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4naGlkZGVuJyE9 ZWxlbWVudC50eXBlJiYhZWxlbWVudC5kaXNhYmxlZDt9KTt2YXIgZmlyc3RCeUlu ZGV4PWVsZW1lbnRzLmZpbmRBbGwoZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIGVs ZW1lbnQuaGFzQXR0cmlidXRlKCd0YWJJbmRleCcpJiZlbGVtZW50LnRhYkluZGV4 Pj0wO30pLnNvcnRCeShmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gZWxlbWVudC50 YWJJbmRleH0pLmZpcnN0KCk7cmV0dXJuIGZpcnN0QnlJbmRleD9maXJzdEJ5SW5k ZXg6ZWxlbWVudHMuZmluZChmdW5jdGlvbihlbGVtZW50KXtyZXR1cm5bJ2lucHV0 Jywnc2VsZWN0JywndGV4dGFyZWEnXS5pbmNsdWRlKGVsZW1lbnQudGFnTmFtZS50 b0xvd2VyQ2FzZSgpKTt9KTt9LGZvY3VzRmlyc3RFbGVtZW50OmZ1bmN0aW9uKGZv cm0pe2Zvcm09JChmb3JtKTtmb3JtLmZpbmRGaXJzdEVsZW1lbnQoKS5hY3RpdmF0 ZSgpO3JldHVybiBmb3JtO30scmVxdWVzdDpmdW5jdGlvbihmb3JtLG9wdGlvbnMp e2Zvcm09JChmb3JtKSxvcHRpb25zPU9iamVjdC5jbG9uZShvcHRpb25zfHx7fSk7 dmFyIHBhcmFtcz1vcHRpb25zLnBhcmFtZXRlcnMsYWN0aW9uPWZvcm0ucmVhZEF0 dHJpYnV0ZSgnYWN0aW9uJyl8fCcnO2lmKGFjdGlvbi5ibGFuaygpKWFjdGlvbj13 aW5kb3cubG9jYXRpb24uaHJlZjtvcHRpb25zLnBhcmFtZXRlcnM9Zm9ybS5zZXJp YWxpemUodHJ1ZSk7aWYocGFyYW1zKXtpZihPYmplY3QuaXNTdHJpbmcocGFyYW1z KSlwYXJhbXM9cGFyYW1zLnRvUXVlcnlQYXJhbXMoKTtPYmplY3QuZXh0ZW5kKG9w dGlvbnMucGFyYW1ldGVycyxwYXJhbXMpO30KaWYoZm9ybS5oYXNBdHRyaWJ1dGUo J21ldGhvZCcpJiYhb3B0aW9ucy5tZXRob2QpCm9wdGlvbnMubWV0aG9kPWZvcm0u bWV0aG9kO3JldHVybiBuZXcgQWpheC5SZXF1ZXN0KGFjdGlvbixvcHRpb25zKTt9 fTtGb3JtLkVsZW1lbnQ9e2ZvY3VzOmZ1bmN0aW9uKGVsZW1lbnQpeyQoZWxlbWVu dCkuZm9jdXMoKTtyZXR1cm4gZWxlbWVudDt9LHNlbGVjdDpmdW5jdGlvbihlbGVt ZW50KXskKGVsZW1lbnQpLnNlbGVjdCgpO3JldHVybiBlbGVtZW50O319O0Zvcm0u RWxlbWVudC5NZXRob2RzPXtzZXJpYWxpemU6ZnVuY3Rpb24oZWxlbWVudCl7ZWxl bWVudD0kKGVsZW1lbnQpO2lmKCFlbGVtZW50LmRpc2FibGVkJiZlbGVtZW50Lm5h bWUpe3ZhciB2YWx1ZT1lbGVtZW50LmdldFZhbHVlKCk7aWYodmFsdWUhPXVuZGVm aW5lZCl7dmFyIHBhaXI9e307cGFpcltlbGVtZW50Lm5hbWVdPXZhbHVlO3JldHVy biBPYmplY3QudG9RdWVyeVN0cmluZyhwYWlyKTt9fQpyZXR1cm4nJzt9LGdldFZh bHVlOmZ1bmN0aW9uKGVsZW1lbnQpe2VsZW1lbnQ9JChlbGVtZW50KTt2YXIgbWV0 aG9kPWVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBGb3JtLkVs ZW1lbnQuU2VyaWFsaXplcnNbbWV0aG9kXShlbGVtZW50KTt9LHNldFZhbHVlOmZ1 bmN0aW9uKGVsZW1lbnQsdmFsdWUpe2VsZW1lbnQ9JChlbGVtZW50KTt2YXIgbWV0 aG9kPWVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO0Zvcm0uRWxlbWVudC5T ZXJpYWxpemVyc1ttZXRob2RdKGVsZW1lbnQsdmFsdWUpO3JldHVybiBlbGVtZW50 O30sY2xlYXI6ZnVuY3Rpb24oZWxlbWVudCl7JChlbGVtZW50KS52YWx1ZT0nJzty ZXR1cm4gZWxlbWVudDt9LHByZXNlbnQ6ZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJu ICQoZWxlbWVudCkudmFsdWUhPScnO30sYWN0aXZhdGU6ZnVuY3Rpb24oZWxlbWVu dCl7ZWxlbWVudD0kKGVsZW1lbnQpO3RyeXtlbGVtZW50LmZvY3VzKCk7aWYoZWxl bWVudC5zZWxlY3QmJihlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSE9J2lu cHV0J3x8IVsnYnV0dG9uJywncmVzZXQnLCdzdWJtaXQnXS5pbmNsdWRlKGVsZW1l bnQudHlwZSkpKQplbGVtZW50LnNlbGVjdCgpO31jYXRjaChlKXt9CnJldHVybiBl bGVtZW50O30sZGlzYWJsZTpmdW5jdGlvbihlbGVtZW50KXtlbGVtZW50PSQoZWxl bWVudCk7ZWxlbWVudC5ibHVyKCk7ZWxlbWVudC5kaXNhYmxlZD10cnVlO3JldHVy biBlbGVtZW50O30sZW5hYmxlOmZ1bmN0aW9uKGVsZW1lbnQpe2VsZW1lbnQ9JChl bGVtZW50KTtlbGVtZW50LmRpc2FibGVkPWZhbHNlO3JldHVybiBlbGVtZW50O319 O3ZhciBGaWVsZD1Gb3JtLkVsZW1lbnQ7dmFyICRGPUZvcm0uRWxlbWVudC5NZXRo b2RzLmdldFZhbHVlO0Zvcm0uRWxlbWVudC5TZXJpYWxpemVycz17aW5wdXQ6ZnVu Y3Rpb24oZWxlbWVudCx2YWx1ZSl7c3dpdGNoKGVsZW1lbnQudHlwZS50b0xvd2Vy Q2FzZSgpKXtjYXNlJ2NoZWNrYm94JzpjYXNlJ3JhZGlvJzpyZXR1cm4gRm9ybS5F bGVtZW50LlNlcmlhbGl6ZXJzLmlucHV0U2VsZWN0b3IoZWxlbWVudCx2YWx1ZSk7 ZGVmYXVsdDpyZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzLnRleHRhcmVh KGVsZW1lbnQsdmFsdWUpO319LGlucHV0U2VsZWN0b3I6ZnVuY3Rpb24oZWxlbWVu dCx2YWx1ZSl7aWYodmFsdWU9PT11bmRlZmluZWQpcmV0dXJuIGVsZW1lbnQuY2hl Y2tlZD9lbGVtZW50LnZhbHVlOm51bGw7ZWxzZSBlbGVtZW50LmNoZWNrZWQ9ISF2 YWx1ZTt9LHRleHRhcmVhOmZ1bmN0aW9uKGVsZW1lbnQsdmFsdWUpe2lmKHZhbHVl PT09dW5kZWZpbmVkKXJldHVybiBlbGVtZW50LnZhbHVlO2Vsc2UgZWxlbWVudC52 YWx1ZT12YWx1ZTt9LHNlbGVjdDpmdW5jdGlvbihlbGVtZW50LGluZGV4KXtpZihp bmRleD09PXVuZGVmaW5lZCkKcmV0dXJuIHRoaXNbZWxlbWVudC50eXBlPT0nc2Vs ZWN0LW9uZSc/J3NlbGVjdE9uZSc6J3NlbGVjdE1hbnknXShlbGVtZW50KTtlbHNl e3ZhciBvcHQsdmFsdWUsc2luZ2xlPSFPYmplY3QuaXNBcnJheShpbmRleCk7Zm9y KHZhciBpPTAsbGVuZ3RoPWVsZW1lbnQubGVuZ3RoO2k8bGVuZ3RoO2krKyl7b3B0 PWVsZW1lbnQub3B0aW9uc1tpXTt2YWx1ZT10aGlzLm9wdGlvblZhbHVlKG9wdCk7 aWYoc2luZ2xlKXtpZih2YWx1ZT09aW5kZXgpe29wdC5zZWxlY3RlZD10cnVlO3Jl dHVybjt9fQplbHNlIG9wdC5zZWxlY3RlZD1pbmRleC5pbmNsdWRlKHZhbHVlKTt9 fX0sc2VsZWN0T25lOmZ1bmN0aW9uKGVsZW1lbnQpe3ZhciBpbmRleD1lbGVtZW50 LnNlbGVjdGVkSW5kZXg7cmV0dXJuIGluZGV4Pj0wP3RoaXMub3B0aW9uVmFsdWUo ZWxlbWVudC5vcHRpb25zW2luZGV4XSk6bnVsbDt9LHNlbGVjdE1hbnk6ZnVuY3Rp b24oZWxlbWVudCl7dmFyIHZhbHVlcyxsZW5ndGg9ZWxlbWVudC5sZW5ndGg7aWYo IWxlbmd0aClyZXR1cm4gbnVsbDtmb3IodmFyIGk9MCx2YWx1ZXM9W107aTxsZW5n dGg7aSsrKXt2YXIgb3B0PWVsZW1lbnQub3B0aW9uc1tpXTtpZihvcHQuc2VsZWN0 ZWQpdmFsdWVzLnB1c2godGhpcy5vcHRpb25WYWx1ZShvcHQpKTt9CnJldHVybiB2 YWx1ZXM7fSxvcHRpb25WYWx1ZTpmdW5jdGlvbihvcHQpe3JldHVybiBFbGVtZW50 LmV4dGVuZChvcHQpLmhhc0F0dHJpYnV0ZSgndmFsdWUnKT9vcHQudmFsdWU6b3B0 LnRleHQ7fX07QWJzdHJhY3QuVGltZWRPYnNlcnZlcj1DbGFzcy5jcmVhdGUoUGVy aW9kaWNhbEV4ZWN1dGVyLHtpbml0aWFsaXplOmZ1bmN0aW9uKCRzdXBlcixlbGVt ZW50LGZyZXF1ZW5jeSxjYWxsYmFjayl7JHN1cGVyKGNhbGxiYWNrLGZyZXF1ZW5j eSk7dGhpcy5lbGVtZW50PSQoZWxlbWVudCk7dGhpcy5sYXN0VmFsdWU9dGhpcy5n ZXRWYWx1ZSgpO30sZXhlY3V0ZTpmdW5jdGlvbigpe3ZhciB2YWx1ZT10aGlzLmdl dFZhbHVlKCk7aWYoT2JqZWN0LmlzU3RyaW5nKHRoaXMubGFzdFZhbHVlKSYmT2Jq ZWN0LmlzU3RyaW5nKHZhbHVlKT90aGlzLmxhc3RWYWx1ZSE9dmFsdWU6U3RyaW5n KHRoaXMubGFzdFZhbHVlKSE9U3RyaW5nKHZhbHVlKSl7dGhpcy5jYWxsYmFjayh0 aGlzLmVsZW1lbnQsdmFsdWUpO3RoaXMubGFzdFZhbHVlPXZhbHVlO319fSk7Rm9y bS5FbGVtZW50Lk9ic2VydmVyPUNsYXNzLmNyZWF0ZShBYnN0cmFjdC5UaW1lZE9i c2VydmVyLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBGb3JtLkVsZW1lbnQu Z2V0VmFsdWUodGhpcy5lbGVtZW50KTt9fSk7Rm9ybS5PYnNlcnZlcj1DbGFzcy5j cmVhdGUoQWJzdHJhY3QuVGltZWRPYnNlcnZlcix7Z2V0VmFsdWU6ZnVuY3Rpb24o KXtyZXR1cm4gRm9ybS5zZXJpYWxpemUodGhpcy5lbGVtZW50KTt9fSk7QWJzdHJh Y3QuRXZlbnRPYnNlcnZlcj1DbGFzcy5jcmVhdGUoe2luaXRpYWxpemU6ZnVuY3Rp b24oZWxlbWVudCxjYWxsYmFjayl7dGhpcy5lbGVtZW50PSQoZWxlbWVudCk7dGhp cy5jYWxsYmFjaz1jYWxsYmFjazt0aGlzLmxhc3RWYWx1ZT10aGlzLmdldFZhbHVl KCk7aWYodGhpcy5lbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKT09J2Zvcm0n KQp0aGlzLnJlZ2lzdGVyRm9ybUNhbGxiYWNrcygpO2Vsc2UKdGhpcy5yZWdpc3Rl ckNhbGxiYWNrKHRoaXMuZWxlbWVudCk7fSxvbkVsZW1lbnRFdmVudDpmdW5jdGlv bigpe3ZhciB2YWx1ZT10aGlzLmdldFZhbHVlKCk7aWYodGhpcy5sYXN0VmFsdWUh PXZhbHVlKXt0aGlzLmNhbGxiYWNrKHRoaXMuZWxlbWVudCx2YWx1ZSk7dGhpcy5s YXN0VmFsdWU9dmFsdWU7fX0scmVnaXN0ZXJGb3JtQ2FsbGJhY2tzOmZ1bmN0aW9u KCl7Rm9ybS5nZXRFbGVtZW50cyh0aGlzLmVsZW1lbnQpLmVhY2godGhpcy5yZWdp c3RlckNhbGxiYWNrLHRoaXMpO30scmVnaXN0ZXJDYWxsYmFjazpmdW5jdGlvbihl bGVtZW50KXtpZihlbGVtZW50LnR5cGUpe3N3aXRjaChlbGVtZW50LnR5cGUudG9M b3dlckNhc2UoKSl7Y2FzZSdjaGVja2JveCc6Y2FzZSdyYWRpbyc6RXZlbnQub2Jz ZXJ2ZShlbGVtZW50LCdjbGljaycsdGhpcy5vbkVsZW1lbnRFdmVudC5iaW5kKHRo aXMpKTticmVhaztkZWZhdWx0OkV2ZW50Lm9ic2VydmUoZWxlbWVudCwnY2hhbmdl Jyx0aGlzLm9uRWxlbWVudEV2ZW50LmJpbmQodGhpcykpO2JyZWFrO319fX0pO0Zv cm0uRWxlbWVudC5FdmVudE9ic2VydmVyPUNsYXNzLmNyZWF0ZShBYnN0cmFjdC5F dmVudE9ic2VydmVyLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBGb3JtLkVs ZW1lbnQuZ2V0VmFsdWUodGhpcy5lbGVtZW50KTt9fSk7Rm9ybS5FdmVudE9ic2Vy dmVyPUNsYXNzLmNyZWF0ZShBYnN0cmFjdC5FdmVudE9ic2VydmVyLHtnZXRWYWx1 ZTpmdW5jdGlvbigpe3JldHVybiBGb3JtLnNlcmlhbGl6ZSh0aGlzLmVsZW1lbnQp O319KTtpZighd2luZG93LkV2ZW50KXZhciBFdmVudD17fTtPYmplY3QuZXh0ZW5k KEV2ZW50LHtLRVlfQkFDS1NQQUNFOjgsS0VZX1RBQjo5LEtFWV9SRVRVUk46MTMs S0VZX0VTQzoyNyxLRVlfTEVGVDozNyxLRVlfVVA6MzgsS0VZX1JJR0hUOjM5LEtF WV9ET1dOOjQwLEtFWV9ERUxFVEU6NDYsS0VZX0hPTUU6MzYsS0VZX0VORDozNSxL RVlfUEFHRVVQOjMzLEtFWV9QQUdFRE9XTjozNCxLRVlfSU5TRVJUOjQ1LGNhY2hl Ont9LHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oZXZlbnQpe3ZhciBlbGVtZW50O3N3 aXRjaChldmVudC50eXBlKXtjYXNlJ21vdXNlb3Zlcic6ZWxlbWVudD1ldmVudC5m cm9tRWxlbWVudDticmVhaztjYXNlJ21vdXNlb3V0JzplbGVtZW50PWV2ZW50LnRv RWxlbWVudDticmVhaztkZWZhdWx0OnJldHVybiBudWxsO30KcmV0dXJuIEVsZW1l bnQuZXh0ZW5kKGVsZW1lbnQpO319KTtFdmVudC5NZXRob2RzPShmdW5jdGlvbigp e3ZhciBpc0J1dHRvbjtpZihQcm90b3R5cGUuQnJvd3Nlci5JRSl7dmFyIGJ1dHRv bk1hcD17MDoxLDE6NCwyOjJ9O2lzQnV0dG9uPWZ1bmN0aW9uKGV2ZW50LGNvZGUp e3JldHVybiBldmVudC5idXR0b249PWJ1dHRvbk1hcFtjb2RlXTt9O31lbHNlIGlm KFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCl7aXNCdXR0b249ZnVuY3Rpb24oZXZl bnQsY29kZSl7c3dpdGNoKGNvZGUpe2Nhc2UgMDpyZXR1cm4gZXZlbnQud2hpY2g9 PTEmJiFldmVudC5tZXRhS2V5O2Nhc2UgMTpyZXR1cm4gZXZlbnQud2hpY2g9PTEm JmV2ZW50Lm1ldGFLZXk7ZGVmYXVsdDpyZXR1cm4gZmFsc2U7fX07fWVsc2V7aXNC dXR0b249ZnVuY3Rpb24oZXZlbnQsY29kZSl7cmV0dXJuIGV2ZW50LndoaWNoPyhl dmVudC53aGljaD09PWNvZGUrMSk6KGV2ZW50LmJ1dHRvbj09PWNvZGUpO307fQpy ZXR1cm57aXNMZWZ0Q2xpY2s6ZnVuY3Rpb24oZXZlbnQpe3JldHVybiBpc0J1dHRv bihldmVudCwwKX0saXNNaWRkbGVDbGljazpmdW5jdGlvbihldmVudCl7cmV0dXJu IGlzQnV0dG9uKGV2ZW50LDEpfSxpc1JpZ2h0Q2xpY2s6ZnVuY3Rpb24oZXZlbnQp e3JldHVybiBpc0J1dHRvbihldmVudCwyKX0sZWxlbWVudDpmdW5jdGlvbihldmVu dCl7dmFyIG5vZGU9RXZlbnQuZXh0ZW5kKGV2ZW50KS50YXJnZXQ7cmV0dXJuIEVs ZW1lbnQuZXh0ZW5kKG5vZGUubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFP25vZGUu cGFyZW50Tm9kZTpub2RlKTt9LGZpbmRFbGVtZW50OmZ1bmN0aW9uKGV2ZW50LGV4 cHJlc3Npb24pe3ZhciBlbGVtZW50PUV2ZW50LmVsZW1lbnQoZXZlbnQpO3JldHVy biBlbGVtZW50Lm1hdGNoKGV4cHJlc3Npb24pP2VsZW1lbnQ6ZWxlbWVudC51cChl eHByZXNzaW9uKTt9LHBvaW50ZXI6ZnVuY3Rpb24oZXZlbnQpe3JldHVybnt4OmV2 ZW50LnBhZ2VYfHwoZXZlbnQuY2xpZW50WCsKKGRvY3VtZW50LmRvY3VtZW50RWxl bWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQpKSx5OmV2 ZW50LnBhZ2VZfHwoZXZlbnQuY2xpZW50WSsKKGRvY3VtZW50LmRvY3VtZW50RWxl bWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSl9O30scG9p bnRlclg6ZnVuY3Rpb24oZXZlbnQpe3JldHVybiBFdmVudC5wb2ludGVyKGV2ZW50 KS54fSxwb2ludGVyWTpmdW5jdGlvbihldmVudCl7cmV0dXJuIEV2ZW50LnBvaW50 ZXIoZXZlbnQpLnl9LHN0b3A6ZnVuY3Rpb24oZXZlbnQpe0V2ZW50LmV4dGVuZChl dmVudCk7ZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9wUHJvcGFnYXRp b24oKTtldmVudC5zdG9wcGVkPXRydWU7fX07fSkoKTtFdmVudC5leHRlbmQ9KGZ1 bmN0aW9uKCl7dmFyIG1ldGhvZHM9T2JqZWN0LmtleXMoRXZlbnQuTWV0aG9kcyku aW5qZWN0KHt9LGZ1bmN0aW9uKG0sbmFtZSl7bVtuYW1lXT1FdmVudC5NZXRob2Rz W25hbWVdLm1ldGhvZGl6ZSgpO3JldHVybiBtO30pO2lmKFByb3RvdHlwZS5Ccm93 c2VyLklFKXtPYmplY3QuZXh0ZW5kKG1ldGhvZHMse3N0b3BQcm9wYWdhdGlvbjpm dW5jdGlvbigpe3RoaXMuY2FuY2VsQnViYmxlPXRydWV9LHByZXZlbnREZWZhdWx0 OmZ1bmN0aW9uKCl7dGhpcy5yZXR1cm5WYWx1ZT1mYWxzZX0saW5zcGVjdDpmdW5j dGlvbigpe3JldHVybiJbb2JqZWN0IEV2ZW50XSJ9fSk7cmV0dXJuIGZ1bmN0aW9u KGV2ZW50KXtpZighZXZlbnQpcmV0dXJuIGZhbHNlO2lmKGV2ZW50Ll9leHRlbmRl ZEJ5UHJvdG90eXBlKXJldHVybiBldmVudDtldmVudC5fZXh0ZW5kZWRCeVByb3Rv dHlwZT1Qcm90b3R5cGUuZW1wdHlGdW5jdGlvbjt2YXIgcG9pbnRlcj1FdmVudC5w b2ludGVyKGV2ZW50KTtPYmplY3QuZXh0ZW5kKGV2ZW50LHt0YXJnZXQ6ZXZlbnQu c3JjRWxlbWVudCxyZWxhdGVkVGFyZ2V0OkV2ZW50LnJlbGF0ZWRUYXJnZXQoZXZl bnQpLHBhZ2VYOnBvaW50ZXIueCxwYWdlWTpwb2ludGVyLnl9KTtyZXR1cm4gT2Jq ZWN0LmV4dGVuZChldmVudCxtZXRob2RzKTt9O31lbHNle0V2ZW50LnByb3RvdHlw ZT1FdmVudC5wcm90b3R5cGV8fGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZl bnRzIikuX19wcm90b19fO09iamVjdC5leHRlbmQoRXZlbnQucHJvdG90eXBlLG1l dGhvZHMpO3JldHVybiBQcm90b3R5cGUuSzt9fSkoKTtPYmplY3QuZXh0ZW5kKEV2 ZW50LChmdW5jdGlvbigpe3ZhciBjYWNoZT1FdmVudC5jYWNoZTtmdW5jdGlvbiBn ZXRFdmVudElEKGVsZW1lbnQpe2lmKGVsZW1lbnQuX2V2ZW50SUQpcmV0dXJuIGVs ZW1lbnQuX2V2ZW50SUQ7YXJndW1lbnRzLmNhbGxlZS5pZD1hcmd1bWVudHMuY2Fs bGVlLmlkfHwxO3JldHVybiBlbGVtZW50Ll9ldmVudElEPSsrYXJndW1lbnRzLmNh bGxlZS5pZDt9CmZ1bmN0aW9uIGdldERPTUV2ZW50TmFtZShldmVudE5hbWUpe2lm KGV2ZW50TmFtZSYmZXZlbnROYW1lLmluY2x1ZGUoJzonKSlyZXR1cm4iZGF0YWF2 YWlsYWJsZSI7cmV0dXJuIGV2ZW50TmFtZTt9CmZ1bmN0aW9uIGdldENhY2hlRm9y SUQoaWQpe3JldHVybiBjYWNoZVtpZF09Y2FjaGVbaWRdfHx7fTt9CmZ1bmN0aW9u IGdldFdyYXBwZXJzRm9yRXZlbnROYW1lKGlkLGV2ZW50TmFtZSl7dmFyIGM9Z2V0 Q2FjaGVGb3JJRChpZCk7cmV0dXJuIGNbZXZlbnROYW1lXT1jW2V2ZW50TmFtZV18 fFtdO30KZnVuY3Rpb24gY3JlYXRlV3JhcHBlcihlbGVtZW50LGV2ZW50TmFtZSxo YW5kbGVyKXt2YXIgaWQ9Z2V0RXZlbnRJRChlbGVtZW50KTt2YXIgYz1nZXRXcmFw cGVyc0ZvckV2ZW50TmFtZShpZCxldmVudE5hbWUpO2lmKGMucGx1Y2soImhhbmRs ZXIiKS5pbmNsdWRlKGhhbmRsZXIpKXJldHVybiBmYWxzZTt2YXIgd3JhcHBlcj1m dW5jdGlvbihldmVudCl7aWYoIUV2ZW50fHwhRXZlbnQuZXh0ZW5kfHwoZXZlbnQu ZXZlbnROYW1lJiZldmVudC5ldmVudE5hbWUhPWV2ZW50TmFtZSkpCnJldHVybiBm YWxzZTtFdmVudC5leHRlbmQoZXZlbnQpO2hhbmRsZXIuY2FsbChlbGVtZW50LGV2 ZW50KX07d3JhcHBlci5oYW5kbGVyPWhhbmRsZXI7Yy5wdXNoKHdyYXBwZXIpO3Jl dHVybiB3cmFwcGVyO30KZnVuY3Rpb24gZmluZFdyYXBwZXIoaWQsZXZlbnROYW1l LGhhbmRsZXIpe3ZhciBjPWdldFdyYXBwZXJzRm9yRXZlbnROYW1lKGlkLGV2ZW50 TmFtZSk7cmV0dXJuIGMuZmluZChmdW5jdGlvbih3cmFwcGVyKXtyZXR1cm4gd3Jh cHBlci5oYW5kbGVyPT1oYW5kbGVyfSk7fQpmdW5jdGlvbiBkZXN0cm95V3JhcHBl cihpZCxldmVudE5hbWUsaGFuZGxlcil7dmFyIGM9Z2V0Q2FjaGVGb3JJRChpZCk7 aWYoIWNbZXZlbnROYW1lXSlyZXR1cm4gZmFsc2U7Y1tldmVudE5hbWVdPWNbZXZl bnROYW1lXS53aXRob3V0KGZpbmRXcmFwcGVyKGlkLGV2ZW50TmFtZSxoYW5kbGVy KSk7fQpmdW5jdGlvbiBkZXN0cm95Q2FjaGUoKXtmb3IodmFyIGlkIGluIGNhY2hl KQpmb3IodmFyIGV2ZW50TmFtZSBpbiBjYWNoZVtpZF0pCmNhY2hlW2lkXVtldmVu dE5hbWVdPW51bGw7fQppZih3aW5kb3cuYXR0YWNoRXZlbnQpe3dpbmRvdy5hdHRh Y2hFdmVudCgib251bmxvYWQiLGRlc3Ryb3lDYWNoZSk7fQpyZXR1cm57b2JzZXJ2 ZTpmdW5jdGlvbihlbGVtZW50LGV2ZW50TmFtZSxoYW5kbGVyKXtlbGVtZW50PSQo ZWxlbWVudCk7dmFyIG5hbWU9Z2V0RE9NRXZlbnROYW1lKGV2ZW50TmFtZSk7dmFy IHdyYXBwZXI9Y3JlYXRlV3JhcHBlcihlbGVtZW50LGV2ZW50TmFtZSxoYW5kbGVy KTtpZighd3JhcHBlcilyZXR1cm4gZWxlbWVudDtpZihlbGVtZW50LmFkZEV2ZW50 TGlzdGVuZXIpe2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLHdyYXBwZXIs ZmFsc2UpO31lbHNle2VsZW1lbnQuYXR0YWNoRXZlbnQoIm9uIituYW1lLHdyYXBw ZXIpO30KcmV0dXJuIGVsZW1lbnQ7fSxzdG9wT2JzZXJ2aW5nOmZ1bmN0aW9uKGVs ZW1lbnQsZXZlbnROYW1lLGhhbmRsZXIpe2VsZW1lbnQ9JChlbGVtZW50KTt2YXIg aWQ9Z2V0RXZlbnRJRChlbGVtZW50KSxuYW1lPWdldERPTUV2ZW50TmFtZShldmVu dE5hbWUpO2lmKCFoYW5kbGVyJiZldmVudE5hbWUpe2dldFdyYXBwZXJzRm9yRXZl bnROYW1lKGlkLGV2ZW50TmFtZSkuZWFjaChmdW5jdGlvbih3cmFwcGVyKXtlbGVt ZW50LnN0b3BPYnNlcnZpbmcoZXZlbnROYW1lLHdyYXBwZXIuaGFuZGxlcik7fSk7 cmV0dXJuIGVsZW1lbnQ7fWVsc2UgaWYoIWV2ZW50TmFtZSl7T2JqZWN0LmtleXMo Z2V0Q2FjaGVGb3JJRChpZCkpLmVhY2goZnVuY3Rpb24oZXZlbnROYW1lKXtlbGVt ZW50LnN0b3BPYnNlcnZpbmcoZXZlbnROYW1lKTt9KTtyZXR1cm4gZWxlbWVudDt9 CnZhciB3cmFwcGVyPWZpbmRXcmFwcGVyKGlkLGV2ZW50TmFtZSxoYW5kbGVyKTtp Zighd3JhcHBlcilyZXR1cm4gZWxlbWVudDtpZihlbGVtZW50LnJlbW92ZUV2ZW50 TGlzdGVuZXIpe2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLHdyYXBw ZXIsZmFsc2UpO31lbHNle2VsZW1lbnQuZGV0YWNoRXZlbnQoIm9uIituYW1lLHdy YXBwZXIpO30KZGVzdHJveVdyYXBwZXIoaWQsZXZlbnROYW1lLGhhbmRsZXIpO3Jl dHVybiBlbGVtZW50O30sZmlyZTpmdW5jdGlvbihlbGVtZW50LGV2ZW50TmFtZSxt ZW1vKXtlbGVtZW50PSQoZWxlbWVudCk7aWYoZWxlbWVudD09ZG9jdW1lbnQmJmRv Y3VtZW50LmNyZWF0ZUV2ZW50JiYhZWxlbWVudC5kaXNwYXRjaEV2ZW50KQplbGVt ZW50PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZihkb2N1bWVudC5jcmVhdGVF dmVudCl7dmFyIGV2ZW50PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRz Iik7ZXZlbnQuaW5pdEV2ZW50KCJkYXRhYXZhaWxhYmxlIix0cnVlLHRydWUpO31l bHNle3ZhciBldmVudD1kb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpO2V2ZW50 LmV2ZW50VHlwZT0ib25kYXRhYXZhaWxhYmxlIjt9CmV2ZW50LmV2ZW50TmFtZT1l dmVudE5hbWU7ZXZlbnQubWVtbz1tZW1vfHx7fTtpZihkb2N1bWVudC5jcmVhdGVF dmVudCl7ZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTt9ZWxzZXtlbGVtZW50 LmZpcmVFdmVudChldmVudC5ldmVudFR5cGUsZXZlbnQpO30KcmV0dXJuIGV2ZW50 O319O30pKCkpO09iamVjdC5leHRlbmQoRXZlbnQsRXZlbnQuTWV0aG9kcyk7RWxl bWVudC5hZGRNZXRob2RzKHtmaXJlOkV2ZW50LmZpcmUsb2JzZXJ2ZTpFdmVudC5v YnNlcnZlLHN0b3BPYnNlcnZpbmc6RXZlbnQuc3RvcE9ic2VydmluZ30pO09iamVj dC5leHRlbmQoZG9jdW1lbnQse2ZpcmU6RWxlbWVudC5NZXRob2RzLmZpcmUubWV0 aG9kaXplKCksb2JzZXJ2ZTpFbGVtZW50Lk1ldGhvZHMub2JzZXJ2ZS5tZXRob2Rp emUoKSxzdG9wT2JzZXJ2aW5nOkVsZW1lbnQuTWV0aG9kcy5zdG9wT2JzZXJ2aW5n Lm1ldGhvZGl6ZSgpfSk7KGZ1bmN0aW9uKCl7dmFyIHRpbWVyLGZpcmVkPWZhbHNl O2Z1bmN0aW9uIGZpcmVDb250ZW50TG9hZGVkRXZlbnQoKXtpZihmaXJlZClyZXR1 cm47aWYodGltZXIpd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpO2RvY3VtZW50 LmZpcmUoImRvbTpsb2FkZWQiKTtmaXJlZD10cnVlO30KaWYoZG9jdW1lbnQuYWRk RXZlbnRMaXN0ZW5lcil7aWYoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KXt0aW1l cj13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBs ZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKQpmaXJlQ29udGVudExvYWRl ZEV2ZW50KCk7fSwwKTtFdmVudC5vYnNlcnZlKHdpbmRvdywibG9hZCIsZmlyZUNv bnRlbnRMb2FkZWRFdmVudCk7fWVsc2V7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l cigiRE9NQ29udGVudExvYWRlZCIsZmlyZUNvbnRlbnRMb2FkZWRFdmVudCxmYWxz ZSk7fX1lbHNle2RvY3VtZW50LndyaXRlKCI8c2NyaXB0IGlkPV9fb25ET01Db250 ZW50TG9hZGVkIGRlZmVyIHNyYz0vLzo+PFwvc2NyaXB0PiIpOyQoIl9fb25ET01D b250ZW50TG9hZGVkIikub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYo dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKXt0aGlzLm9ucmVhZHlzdGF0ZWNo YW5nZT1udWxsO2ZpcmVDb250ZW50TG9hZGVkRXZlbnQoKTt9fTt9fSkoKTtIYXNo LnRvUXVlcnlTdHJpbmc9T2JqZWN0LnRvUXVlcnlTdHJpbmc7dmFyIFRvZ2dsZT17 ZGlzcGxheTpFbGVtZW50LnRvZ2dsZX07RWxlbWVudC5NZXRob2RzLmNoaWxkT2Y9 RWxlbWVudC5NZXRob2RzLmRlc2NlbmRhbnRPZjt2YXIgSW5zZXJ0aW9uPXtCZWZv cmU6ZnVuY3Rpb24oZWxlbWVudCxjb250ZW50KXtyZXR1cm4gRWxlbWVudC5pbnNl cnQoZWxlbWVudCx7YmVmb3JlOmNvbnRlbnR9KTt9LFRvcDpmdW5jdGlvbihlbGVt ZW50LGNvbnRlbnQpe3JldHVybiBFbGVtZW50Lmluc2VydChlbGVtZW50LHt0b3A6 Y29udGVudH0pO30sQm90dG9tOmZ1bmN0aW9uKGVsZW1lbnQsY29udGVudCl7cmV0 dXJuIEVsZW1lbnQuaW5zZXJ0KGVsZW1lbnQse2JvdHRvbTpjb250ZW50fSk7fSxB ZnRlcjpmdW5jdGlvbihlbGVtZW50LGNvbnRlbnQpe3JldHVybiBFbGVtZW50Lmlu c2VydChlbGVtZW50LHthZnRlcjpjb250ZW50fSk7fX07dmFyICRjb250aW51ZT1u ZXcgRXJyb3IoJyJ0aHJvdyAkY29udGludWUiIGlzIGRlcHJlY2F0ZWQsIHVzZSAi cmV0dXJuIiBpbnN0ZWFkJyk7dmFyIFBvc2l0aW9uPXtpbmNsdWRlU2Nyb2xsT2Zm c2V0czpmYWxzZSxwcmVwYXJlOmZ1bmN0aW9uKCl7dGhpcy5kZWx0YVg9d2luZG93 LnBhZ2VYT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVm dHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fHwwO3RoaXMuZGVsdGFZPXdpbmRv dy5wYWdlWU9mZnNldHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRv cHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3B8fDA7fSx3aXRoaW46ZnVuY3Rpb24o ZWxlbWVudCx4LHkpe2lmKHRoaXMuaW5jbHVkZVNjcm9sbE9mZnNldHMpCnJldHVy biB0aGlzLndpdGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHMoZWxlbWVudCx4LHkp O3RoaXMueGNvbXA9eDt0aGlzLnljb21wPXk7dGhpcy5vZmZzZXQ9RWxlbWVudC5j dW11bGF0aXZlT2Zmc2V0KGVsZW1lbnQpO3JldHVybih5Pj10aGlzLm9mZnNldFsx XSYmeTx0aGlzLm9mZnNldFsxXStlbGVtZW50Lm9mZnNldEhlaWdodCYmeD49dGhp cy5vZmZzZXRbMF0mJng8dGhpcy5vZmZzZXRbMF0rZWxlbWVudC5vZmZzZXRXaWR0 aCk7fSx3aXRoaW5JbmNsdWRpbmdTY3JvbGxvZmZzZXRzOmZ1bmN0aW9uKGVsZW1l bnQseCx5KXt2YXIgb2Zmc2V0Y2FjaGU9RWxlbWVudC5jdW11bGF0aXZlU2Nyb2xs T2Zmc2V0KGVsZW1lbnQpO3RoaXMueGNvbXA9eCtvZmZzZXRjYWNoZVswXS10aGlz LmRlbHRhWDt0aGlzLnljb21wPXkrb2Zmc2V0Y2FjaGVbMV0tdGhpcy5kZWx0YVk7 dGhpcy5vZmZzZXQ9RWxlbWVudC5jdW11bGF0aXZlT2Zmc2V0KGVsZW1lbnQpO3Jl dHVybih0aGlzLnljb21wPj10aGlzLm9mZnNldFsxXSYmdGhpcy55Y29tcDx0aGlz Lm9mZnNldFsxXStlbGVtZW50Lm9mZnNldEhlaWdodCYmdGhpcy54Y29tcD49dGhp cy5vZmZzZXRbMF0mJnRoaXMueGNvbXA8dGhpcy5vZmZzZXRbMF0rZWxlbWVudC5v ZmZzZXRXaWR0aCk7fSxvdmVybGFwOmZ1bmN0aW9uKG1vZGUsZWxlbWVudCl7aWYo IW1vZGUpcmV0dXJuIDA7aWYobW9kZT09J3ZlcnRpY2FsJykKcmV0dXJuKCh0aGlz Lm9mZnNldFsxXStlbGVtZW50Lm9mZnNldEhlaWdodCktdGhpcy55Y29tcCkvZWxl bWVudC5vZmZzZXRIZWlnaHQ7aWYobW9kZT09J2hvcml6b250YWwnKQpyZXR1cm4o KHRoaXMub2Zmc2V0WzBdK2VsZW1lbnQub2Zmc2V0V2lkdGgpLXRoaXMueGNvbXAp L2VsZW1lbnQub2Zmc2V0V2lkdGg7fSxjdW11bGF0aXZlT2Zmc2V0OkVsZW1lbnQu TWV0aG9kcy5jdW11bGF0aXZlT2Zmc2V0LHBvc2l0aW9uZWRPZmZzZXQ6RWxlbWVu dC5NZXRob2RzLnBvc2l0aW9uZWRPZmZzZXQsYWJzb2x1dGl6ZTpmdW5jdGlvbihl bGVtZW50KXtQb3NpdGlvbi5wcmVwYXJlKCk7cmV0dXJuIEVsZW1lbnQuYWJzb2x1 dGl6ZShlbGVtZW50KTt9LHJlbGF0aXZpemU6ZnVuY3Rpb24oZWxlbWVudCl7UG9z aXRpb24ucHJlcGFyZSgpO3JldHVybiBFbGVtZW50LnJlbGF0aXZpemUoZWxlbWVu dCk7fSxyZWFsT2Zmc2V0OkVsZW1lbnQuTWV0aG9kcy5jdW11bGF0aXZlU2Nyb2xs T2Zmc2V0LG9mZnNldFBhcmVudDpFbGVtZW50Lk1ldGhvZHMuZ2V0T2Zmc2V0UGFy ZW50LHBhZ2U6RWxlbWVudC5NZXRob2RzLnZpZXdwb3J0T2Zmc2V0LGNsb25lOmZ1 bmN0aW9uKHNvdXJjZSx0YXJnZXQsb3B0aW9ucyl7b3B0aW9ucz1vcHRpb25zfHx7 fTtyZXR1cm4gRWxlbWVudC5jbG9uZVBvc2l0aW9uKHRhcmdldCxzb3VyY2Usb3B0 aW9ucyk7fX07aWYoIWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpZG9j dW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1mdW5jdGlvbihpbnN0YW5jZU1l dGhvZHMpe2Z1bmN0aW9uIGl0ZXIobmFtZSl7cmV0dXJuIG5hbWUuYmxhbmsoKT9u dWxsOiJbY29udGFpbnMoY29uY2F0KCcgJywgQGNsYXNzLCAnICcpLCAnICIrbmFt ZSsiICcpXSI7fQppbnN0YW5jZU1ldGhvZHMuZ2V0RWxlbWVudHNCeUNsYXNzTmFt ZT1Qcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLlhQYXRoP2Z1bmN0aW9uKGVsZW1l bnQsY2xhc3NOYW1lKXtjbGFzc05hbWU9Y2xhc3NOYW1lLnRvU3RyaW5nKCkuc3Ry aXAoKTt2YXIgY29uZD0vXHMvLnRlc3QoY2xhc3NOYW1lKT8kdyhjbGFzc05hbWUp Lm1hcChpdGVyKS5qb2luKCcnKTppdGVyKGNsYXNzTmFtZSk7cmV0dXJuIGNvbmQ/ ZG9jdW1lbnQuX2dldEVsZW1lbnRzQnlYUGF0aCgnLi8vKicrY29uZCxlbGVtZW50 KTpbXTt9OmZ1bmN0aW9uKGVsZW1lbnQsY2xhc3NOYW1lKXtjbGFzc05hbWU9Y2xh c3NOYW1lLnRvU3RyaW5nKCkuc3RyaXAoKTt2YXIgZWxlbWVudHM9W10sY2xhc3NO YW1lcz0oL1xzLy50ZXN0KGNsYXNzTmFtZSk/JHcoY2xhc3NOYW1lKTpudWxsKTtp ZighY2xhc3NOYW1lcyYmIWNsYXNzTmFtZSlyZXR1cm4gZWxlbWVudHM7dmFyIG5v ZGVzPSQoZWxlbWVudCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyonKTtjbGFzc05h bWU9JyAnK2NsYXNzTmFtZSsnICc7Zm9yKHZhciBpPTAsY2hpbGQsY247Y2hpbGQ9 bm9kZXNbaV07aSsrKXtpZihjaGlsZC5jbGFzc05hbWUmJihjbj0nICcrY2hpbGQu Y2xhc3NOYW1lKycgJykmJihjbi5pbmNsdWRlKGNsYXNzTmFtZSl8fChjbGFzc05h bWVzJiZjbGFzc05hbWVzLmFsbChmdW5jdGlvbihuYW1lKXtyZXR1cm4hbmFtZS50 b1N0cmluZygpLmJsYW5rKCkmJmNuLmluY2x1ZGUoJyAnK25hbWUrJyAnKTt9KSkp KQplbGVtZW50cy5wdXNoKEVsZW1lbnQuZXh0ZW5kKGNoaWxkKSk7fQpyZXR1cm4g ZWxlbWVudHM7fTtyZXR1cm4gZnVuY3Rpb24oY2xhc3NOYW1lLHBhcmVudEVsZW1l bnQpe3JldHVybiAkKHBhcmVudEVsZW1lbnR8fGRvY3VtZW50LmJvZHkpLmdldEVs ZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lKTt9O30oRWxlbWVudC5NZXRob2Rz KTtFbGVtZW50LkNsYXNzTmFtZXM9Q2xhc3MuY3JlYXRlKCk7RWxlbWVudC5DbGFz c05hbWVzLnByb3RvdHlwZT17aW5pdGlhbGl6ZTpmdW5jdGlvbihlbGVtZW50KXt0 aGlzLmVsZW1lbnQ9JChlbGVtZW50KTt9LF9lYWNoOmZ1bmN0aW9uKGl0ZXJhdG9y KXt0aGlzLmVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KC9ccysvKS5zZWxlY3QoZnVu Y3Rpb24obmFtZSl7cmV0dXJuIG5hbWUubGVuZ3RoPjA7fSkuX2VhY2goaXRlcmF0 b3IpO30sc2V0OmZ1bmN0aW9uKGNsYXNzTmFtZSl7dGhpcy5lbGVtZW50LmNsYXNz TmFtZT1jbGFzc05hbWU7fSxhZGQ6ZnVuY3Rpb24oY2xhc3NOYW1lVG9BZGQpe2lm KHRoaXMuaW5jbHVkZShjbGFzc05hbWVUb0FkZCkpcmV0dXJuO3RoaXMuc2V0KCRB KHRoaXMpLmNvbmNhdChjbGFzc05hbWVUb0FkZCkuam9pbignICcpKTt9LHJlbW92 ZTpmdW5jdGlvbihjbGFzc05hbWVUb1JlbW92ZSl7aWYoIXRoaXMuaW5jbHVkZShj bGFzc05hbWVUb1JlbW92ZSkpcmV0dXJuO3RoaXMuc2V0KCRBKHRoaXMpLndpdGhv dXQoY2xhc3NOYW1lVG9SZW1vdmUpLmpvaW4oJyAnKSk7fSx0b1N0cmluZzpmdW5j dGlvbigpe3JldHVybiAkQSh0aGlzKS5qb2luKCcgJyk7fX07T2JqZWN0LmV4dGVu ZChFbGVtZW50LkNsYXNzTmFtZXMucHJvdG90eXBlLEVudW1lcmFibGUpO0VsZW1l bnQuYWRkTWV0aG9kcygpOwo= ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=Selection.js Content-Type: application/x-javascript; charset=UTF-8; name=Selection.js Content-Location: http://sns.ragnarokonline.jp/js/Selection.js?r7140 Content-Transfer-Encoding: Base64 CmZ1bmN0aW9uIFNlbGVjdGlvbih0ZXh0YXJlYUVsZW1lbnQpe3RoaXMuZWxlbWVu dD10ZXh0YXJlYUVsZW1lbnQ7fQpTZWxlY3Rpb24ucHJvdG90eXBlLmNyZWF0ZT1m dW5jdGlvbigpe2lmKGRvY3VtZW50LnNlbGVjdGlvbiE9bnVsbCYmdGhpcy5lbGVt ZW50LnNlbGVjdGlvblN0YXJ0PT1udWxsKXtyZXR1cm4gdGhpcy5faWVHZXRTZWxl Y3Rpb24oKTt9ZWxzZXtyZXR1cm4gdGhpcy5fbW96aWxsYUdldFNlbGVjdGlvbigp O319ClNlbGVjdGlvbi5wcm90b3R5cGUuX21vemlsbGFHZXRTZWxlY3Rpb249ZnVu Y3Rpb24oKXtyZXR1cm57c3RhcnQ6dGhpcy5lbGVtZW50LnNlbGVjdGlvblN0YXJ0 LGVuZDp0aGlzLmVsZW1lbnQuc2VsZWN0aW9uRW5kfTt9ClNlbGVjdGlvbi5wcm90 b3R5cGUuX2llR2V0U2VsZWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmZv Y3VzKCk7dmFyIHJhbmdlPWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgp O3ZhciBib29rbWFyaz1yYW5nZS5nZXRCb29rbWFyaygpO3ZhciBjb250ZW50cz10 aGlzLmVsZW1lbnQudmFsdWU7dmFyIG9yaWdpbmFsQ29udGVudHM9Y29udGVudHM7 dmFyIG1hcmtlcj10aGlzLl9jcmVhdGVTZWxlY3Rpb25NYXJrZXIoKTt3aGlsZShj b250ZW50cy5pbmRleE9mKG1hcmtlcikhPS0xKXttYXJrZXI9dGhpcy5fY3JlYXRl U2VsZWN0aW9uTWFya2VyKCk7fQp2YXIgcGFyZW50PXJhbmdlLnBhcmVudEVsZW1l bnQoKTtpZihwYXJlbnQ9PW51bGx8fHBhcmVudC50eXBlIT0idGV4dGFyZWEiKXty ZXR1cm57c3RhcnQ6MCxlbmQ6MH07fQpyYW5nZS50ZXh0PW1hcmtlcityYW5nZS50 ZXh0K21hcmtlcjtjb250ZW50cz10aGlzLmVsZW1lbnQudmFsdWU7dmFyIHJlc3Vs dD17fTtyZXN1bHQuc3RhcnQ9Y29udGVudHMuaW5kZXhPZihtYXJrZXIpO2NvbnRl bnRzPWNvbnRlbnRzLnJlcGxhY2UobWFya2VyLCIiKTtyZXN1bHQuZW5kPWNvbnRl bnRzLmluZGV4T2YobWFya2VyKTt0aGlzLmVsZW1lbnQudmFsdWU9b3JpZ2luYWxD b250ZW50cztyYW5nZS5tb3ZlVG9Cb29rbWFyayhib29rbWFyayk7cmFuZ2Uuc2Vs ZWN0KCk7cmV0dXJuIHJlc3VsdDt9ClNlbGVjdGlvbi5wcm90b3R5cGUuX2NyZWF0 ZVNlbGVjdGlvbk1hcmtlcj1mdW5jdGlvbigpe3JldHVybiIjI1NFTEVDVElPTl9N QVJLRVJfIitNYXRoLnJhbmRvbSgpKyIjIyI7fQ== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=pne.js Content-Type: application/x-javascript; charset=UTF-8; name=pne.js Content-Location: http://sns.ragnarokonline.jp/js/pne.js Content-Transfer-Encoding: Base64 CmZ1bmN0aW9uIHBuZV91cmwyYSh1cmwpe3ZhciB1cmxzdHI9dXJsLnJlcGxhY2Uo IiZhbXA7IiwiJiIpO2lmKHVybHN0ci5sZW5ndGg+NTcpe3VybHN0cj11cmxzdHIu c3Vic3RyKDAsNTcpKycuLi4nO30KdXJsc3RyPXVybHN0ci5yZXBsYWNlKCImIiwi JmFtcDsiKTtkb2N1bWVudC53cml0ZSgnPGEgaHJlZj0iJyt1cmwrJyIgdGFyZ2V0 PSJfYmxhbmsiPicrdXJsc3RyKyc8L2E+Jyk7fQ== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=img.jpeg Content-Type: image/jpeg; name=img.jpeg Content-Location: http://sns.ragnarokonline.jp/img.php?filename=b_3_1250249235.jpg&m=pc Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAUAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUG BgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4O Dg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AA EQgAPAHUAwERAAIRAQMRAf/EANgAAAEFAQEBAQEAAAAAAAAAAAYDBAUHCAIJAQAK AQABBQEBAQAAAAAAAAAAAAADAQIEBQYABwgQAAEDAwIDBgIGBAYJEAsAAAECAwQR BQYAEiETBzFBIhQVFlEXYXEyIwgYgZFCJLFSYjPUV6HB0XI0lCU2luGS0kNjg0Rk lSamJzdHKAmCsuJTc1R0ZobGZxEAAQMCAgUHCAcHAwMFAQAAARECAwAEIRIxQVET BWFxgZHRIgahscEyUqIUFfBCYoKSIwfh8XLCM0MWUyQl0mOD8pOzFwhU/9oADAMB AAIRAxEAPwDe/SnpV0qm9KeldwuHSrDp024YbYJM24Ssftjz0h962x1uuuurjqWt a1KKlKUSSSSeOru5uJRK8B7vWOs7TWRc5EwGgahs5qswdIuiFrtF6yK89G8Mct9k jpeXEaxy1JW6pxW1CQTGFATwOq2+4pLaxGQvdhyntqVasa4Oe8BGjQgx8lB3oHSN Xib/AAmYOptXFtRYtAJSewkeSNNYI/qc0FMzvxO/6asRZuOIgH4hXCbb0TfS8xa/ wsYU9c4lUz2n7baAwy4a7QlZinmjsJFE/wBvRpv1GEcbXZnd4Yd53oC9YFMZEHEt ZAMw04hB20m1Z+k0F8tZD+Gvp1KQ8yoxEWewQOZzgUhAdK4xCUqqeP0Ht7NAsf1I fNmL3OAA9ohT0k9NPkgMZAfE0r7I8+GFOPS+iCgIg/Cth3rIUrdCNttSWOUAkhYk +UAUTu7Anh8dSD+o7RFvMztPtHsX3abuQXZNx3ucJ16K5XaOjMRHmLn+FLCYtvZo ZclqHaHloRXiUt+TRuP0bhpkH6lNleGAvx+070tHnpX2+7bmfAABpxBroWTo8+Ev Q/wnYS7FdAWw67EtDS1JIqCpswjt+qumyfqY1ji3M7D7TvQ0jy0rbYuCtgCHlApQ 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 g8TWkrM2YeaohsYTokTnGPopQzMAPAdSLckf/CV/s9F/yK09odf7Kb8vi/1h1ftp OXl2NY7HgtY65Ez27Xl51CUJe8uyw1HQFL5gqshR3eGvb3dnGn414thtIhIxHDkO jyLrqXb2sbCGtSRzl5AABUQvOltIccmdK45ZQkqfXGu/LISBUkDZ3Du79Z+L9R4n EBMTz/8ATR38PIBJgCcjqcLyrpfOU263k822iUlC0MvQ3nW4pcSDylrSKHYTQkK+ snida2PxZaYBxxPIarn2du8qHkLyKByURqs0WzTb47enXH7ZjEJc6eWPtSEBIWht IJqncDx4/RXv1d3d62G3Mqaj5KFDYBszmyFWsClNewfT9tCLecNOoQ9H6TFbDwC2 XDftpUlXFJI2cKju150/9R4WuLSMRz/9FWjeHZgogwP2/wBtN53Uq/26MoWbGYmC tpCn511efF2dWkFCAhCdoIFVCtajv4cawrvx865AbbhXKnnOsNGo7aK2B9uCjBGN JK5zqHPTqJ1KyWShwSsOsl6lsL2SLpvLHPKkpcQrllJIOxaa8e3SM/UIxMaHtxI5 dpGrmp4tpJCTu2OIOnQuC+Y07+YF+/q7sn+M/wDsaX/7JZsPlpfgZP8ARZ1imw6m XITDCPTm2GdyQ+eXN2I5JVt7OXTduHbXs0YfqG3d5y3BU17F2UP4Z2fJumqi6dVJ XHqlOtkRbvy9gW2U+pDES4SJwlx2nFrB3LY2pPAAkEEU09vj9s7XNib3gFGnsHnp skLoQpiAUopIIHRTRXVXK4ym3bi7jt6gpkstzLaxH+9kpWpAJR4z4gFUBp3dmoNj 41upZmMMZAOnBNvl2USbMxpLnMcFGA16KP35mJsz5C7bn2Pt25a9zUR6cglIPEgE E0oa0+jt16UON2iYvavOO2q2SzbnJZI0N2E1LQnbJdZDcK05fY58xziIzUtK1lI4 qKUpqVUHdp0fFbaQ5WvBOwEdtK2yLijXtJ56Ebj1DQxdbjBxbEod8gWt7yrl4my/ 591tI3ltISUhIJpUGh7eHZrFcW8cx2c5jRU1/uqfFbB67qMOAKKTpP02Uy+YN/3F fy7sm89qvM8f/U1Wf/ZDPZPlovwMn+kzrFRKOrd5lRpV1tmHY+zaLeCl6PK5jskq abCnNrqQlJqT4SU/Xo1x47eydseT1k268NKjzVHjYXxmRsbMrdunAY6qsyfbpE1u 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 cA0uAJDVA515jWckit5HOf3gNgCjlQjUOWtAM9bPxUzMah3mZheOY/JkxTIur2Mw F3LybSyVNhbrjryT4KKKkhSa99BXTc7HFFOG2rDh/D7BwG+cQ46lAB6azje7vkeY XR295beJt/lAFszZC1PFCDRSQhtIohPHsQmn0aM1uoVrGCCxjJaAxgCk8gxUn00W 4LdEYbkEO7OK/wAlPbot3KCCkx1kbl1HD7paUrPfRKgO3V74d4n8vvGvdg0913Md fQUNeT/rd4JHjPwxLFAM80X50KH13NBVgKod4xQMUzZTqraFtfQIbuwjtKjQ/Edu vWL9jt4pKg6DyV8c/pleWL+Etjt2hkjSd61SufRmK494AJqHq6q5duaAw3Hbqte1 JURThSh1EEeK16EZKqjnv/mE8xuPN+Te7dx7Pdf8Gg5RmT7X8tXGY/Ar9PWqNwL8 xHsnp36R8pfTvbNk9C8/7m835X06P5bzPJ+653K28zZ4N27bw0A5e962k+ztNTp/ h8/fRcPa2CjRv8zG+48v5K76jzlPdnbx7K8Pj2aQog9f3KGPhcdHvVHQ/wAx29vl fJilPDzPde37R7f06e/lz+7TG/Cak96nMr8yHMHM+Sm7ad3L92baU79vDTWp9v3a cfhOT3q7X+Znmjf8mK8pO2vuumzup/b0gT7fu0Rvw2pPepsfzJUVX5Mcvvr7r2/o 07D7fu13+25PeoMyD5r+ZZ9yfITz1PufOe5+ds40ru47fhu4aTBfre5UO4+XKN5k XlVaSvHzV9PgesfIfyFR6dzPdG3/AHund8f7Oiu5c3uUKX5blGfKmr1qfOfOf229 zfkX7ZqNm/3N5etR/NV4fq00oo9b3KJ/x+7Pq5OlKStXzl8kn0v5Iem0O3le6eR/ Krt8P11/ToozJhmT7lNj+X5e6ifeSod73/zE8z8uu/cd1PX+3v3f6uh4cvuUE/Kv seWlf+sPz8TZ+Xnz3LT5ble46U4bPs+HdSlK8dNCL9b3K7/isw9VemiDIfnh6ar3 D8kPTaj/AAj3TtrUU2141+rTzy5vcosvy/L30TlzUJN/MDyLf/YF6fzfBv8Ac+3m 07+/dT4930aTBPre5QP+Ky/VT71FyPnX6Q5y/kT6DsPN2e5vKbO+tPBTS6vrJ9yp A+X5NWX7yVG4382ua/7Z+Q3mOPN8r7n5tK8ezx0/saaE1ZvcpkPy1e5l6M1Rd4+a Hq49a+R3rG8U5/unmVr4a1/sV0Q6lX3KHJ8sz95F+9T6N80/VV+W+QXrW7x7fcnP 3149nHdXtpx+Om6/re5RG/LM2GXN0rRPcfnx6U9618i/SN37x5/3Ryt/dXmcN3wp x+Ghv045/dqY/wCC3ffy5eXNQHG978mVyPy+bOWPMb/dNdm4Upv4/ap2ab3ft+7U JvylCmT3qfo+Yfk/uPy7cry7v2fcXN5dPHXd4q0+PHXDL9r3aePleXDd6OWoizfM TmO+j/I3nbF82nunfy6eOvM47advdo7U1L7lCh+Vr3Mq/epe3+/aPeX/AC+03Dm8 /wByV3VFNvM+ns28NDKfa9ykZ8q1ZPLU1kfzi2t+5fkjyeHl/Ne6dnZw5dfo/i6e PV+sn3KNcfL/AO4nTmqKne/OVC8z+XvdRHl9nubfs/Z37f2afxu7Q8M31vcSgv8A lWC5ferq8fMfdD9T+QXM5afKU9y15VDs7P2KdleGiYLjm9yuk+V4ZsvvVHXL354v P/IffzfHs90czmcK7uV4vrrw+OucmtfcpsnyrXl96iW0/OXyg9G+Sfke7yvunl17 67O/4109uZMM3uUeP5cndROTNUwPn/3fJ2n/AOW6Xv8A2vcov+x+mavv/iB//jv/ AEs13e+17ld/sfpmohifmR5KfJ/JTZ/J911/TXj+vUd+nHP7tHZ8ImCe9Tlf5m6H /sXrTu911ppgy/b92nH4Xk96mafzK8xrZ8mew7ae69te+v0/HTsE+t7lDHwi4fzU 5V+ZraqvyXpQ1/zq0gyr9f3aWT4XKebVmXo5aqH/AK4ff8PmfKT3d6W77W8x7q8t Xd955Lm/u/mvhv8AHSm3UTxHu94z4zeaMEy5eXR5dejkqB+ivyv4S5/xvL6w3m8X eqhyev8AV05F7i5teancb5u7Z+z5Pea57Xr/AJv3h57dzB/h/mPvtvbu5vDZX9nU +Hd/AP3H9HKc2XIqJiv1lTbjWS4j8r/yy2+afE/Md8zdfEZ91nzjJk/tbvOibvuL ooPsvv35jMeT+T/vH1hzyvmfdvL9Q8wmuzdw3bq079u6mshb/LMsmXeeriuVUzD1 eVU6Fr6T45863tnv8v8AVOTJmy591J/VT6uXNlXDeZNaVLdSPmly7Z7q+UnI8kz5 Pyfu3Z5fzHg3f+n2/RoMPyveNy71dXq1Mv8A518HLvd1u/raV1fTmqNifNz1o+3v lz7i8/8Acele7vMeZ3eHZ3fapSvfTv0yP5UuG992j8T+d7n8/c5VG3TVxdFvzE/L Bn5ZfJ/2XyB5PzPu3zO3yre7Z5j7zdspWv7VduquL5Ir03y5nL6vra0TBKrZfmqt zbrRy1VeS/NH5o9OPe/yp9Z5MT2l6p7x9C5+39z87y/u+ZT+a8z4K/Z8Whxf4/vH /wBXPgq5VRMMq6tqY7aK75ymG7THQtVtlvuP3rnfmfln656er5mene8vS/IcgV9R 537lt5XZXxdtPFu0CP8Ax/KE3/rHKiZlXHKneRejbhVk7578O3ebjJ9VVXyd7TTz rZ7p83hPzp+UO72vI+WPm/cPp3plGd/pXlf3LnbdnK2/e9vK8VdXY+Wp/f0Y+po8 6c1UjPmS4bpFx9fTy6+us+5R7P8AVWPU/lx5v0+Lt8p7w2cqi9m//dO3dXj8dGb8 qTDep92pPEPm+9/N3WZBoXRWguinoPtOB5X8sflfOTfbvzP9xef5PM++9P8AUv8A gvP305fh5m/v0UfLP+77tVsvzRAuVNXrJypVSdRfYPuuVX5L/a/yr7Q97+jbt3i2 bfu6UrXyvCnZ4tD/AOL/AO77tPb80T+30rXpQ1+ZT5ZYj7b/AC9/KTkR/QPbnuf0 vyn+1b/L8eVu+3/K/nO/Qrr5Vl7+9Tky0K2+Ybw5d3m5Vpsj5/eft/L/ACx+qbk+ mbPW/Mbv2eVTx1+FNQv+E/7vu1N/5hD6nvVOXz82VY3qvyK5+9XIr7o37Nh52/dw 5PL3c3f93srv4aIz5NmCb5fu0E/M8pXdp015Cu+xPVz6V7D895//ACT6P723c7m/ ceS2/e/apyqeLs79WLPluYZd6v3ajXPxu6dvtzkQ5sy5cqY5lwRNK4Jpr0Twz58+ l2rzXyV9B8hF8j7l9weT5HJ+75nJ8FaUrv8A2qfRqL/xGb+6vLlq7PzzcDJu8qBM iqmpMurm1VJdWfzT/KpzzXy5+X/knPWfYfurzfp1PvN/lP3vlba7/L+Km7f36ZH8 nz4b1eXLVa/5pjm3flqWx75v+y7D7c/LR7G9vtehcj3L5L0nkeCm7h/N1ru8da7v FXQn/Jd53t7m+7RWfN8mGTL96luhP5pPlNg3sP5S+y/Ij2h657q876duV5eu7x8v Z/Nb/Fy9vdTRZfk+YrvV+7QB8yT+35azhffd3rmSc/5Q+Y85L9T9P93eV31XzeTs 4bO3bt/RpG/J0w33u1ro/wDJPhwu5yZfrL6qa+ipzJPe1T698l/UtifMeW94ef7B TneT+8/13DWu4x8Bh8Wmf7u80fWyYr/FhXzh+mXxOc/418duFKet8Iin+n8R+Un8 PeSizFfnd7et/o3yo9K5P+T/ADPu7meXr93Tfx2Upsr+zSnCmrayz/Bx5c+7+rmy 5k1acUT1eRNSVnz/AI7/AJTebtPjkO/3f9HMrc/9P8veZ0z5Pr59eaiGP8+6+D5N 1r+37s7fpr/b0Q5/te5WoHwH0zUE/wDXp88/+7D3P8r/AP7h9I9I9w/415vzX+9c r+XoOH2lzfZ9nqROlas/yPh9WRPte116ehK//9k= ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=icon_search.gif Content-Type: image/gif; name=icon_search.gif Content-Location: http://sns.ragnarokonline.jp/skin/default/img/icon_search.gif Content-Transfer-Encoding: Base64 R0lGODlhPgAUAOYAAL6+vtfX18vLy3x8fP///4mJiV5eXoaGhpCQkLCwsIiIiF9f X2NjY319fXNzc6KionR0dJSUlGpqaq+vr7W1tZ6entzc3Pb29uLi4tra2oqKit3d 3ff398LCwuXl5fr6+peXl7y8vJ+fn7a2to+Pj4eHh6ampk1NTejo6MTExO3t7aGh ocXFxbGxsbm5uY2NjaioqNjY2Onp6e7u7uTk5FlZWWxsbEhISPn5+Zubm8PDw5WV ldHR0cbGxsfHx2lpaVRUVN/f39PT04WFhTs7O2RkZFtbWz4+Pu/v74ODg1NTU/T0 9EdHR0JCQpGRka6uroCAgOzs7JmZmaCgoN7e3vHx8fj4+Lq6utTU1G1tbbu7u5aW ls/PzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAA+ABQAQAf/gACCg4SFhoeIiYqIQAqO jhkyjykpChiVj49CGEKSCiYEJo8ZVgpVnpAUoJkYGJkKQIJKB7S1tre4ubq7vLVK ghCLwsPEiMEARwzKygQty1oXDDHOywxQBDAaGhEEFRoEGsos4AwYUctZFyzf1TEx 1QxHgkkB9fb3+Pn6+/z99kmCijwYSNDCBwJLeAxEQaBhQ4UDl3yAMdCFQwIfMFB8 wOIggRkuHlgk+AAFCpIPigi6AaGlSxACOBDg0ADChosEQEBoQaAmBwEQQFz8WZPA FJcvCWxYuoHDBqQQbghi4qBq1QEdZhDwkGCAgw4WwobtgCWBVQciLKR9YXWLWrQe /z4KYPvCwtkOHc46YCLIgN+/gAMLHky4sOHAggooXsy4sePHkCNLbixogIDLmDNr 3sy5s+fPmAcIspGgtOnSFE6rXs26dYIrqV2vtiHISITbt0MQGDFB94QIHgJMGD5h xe0RBHCEuD2BgI7huqlEQB5gxYoAOHI0xw3cA/cIRgSdaECe/A4CSHpUKB+ES4X3 FYY0GELgCagdDSrsfv+EQ4AGBPRQXnn6EYJEEAM2cIIgRCzgoIMl/OCgExfosIBw Dz6IwUUX/FACASU40FwODhIwQYZONPBhhvVkuAARgjQhwYwz+kCADw9QcAEFEmSQ AQVAUvAAABfQKAENKpBAAD8JMzqgggoOKLmjFDRc0ICSRvpopARNiDfAl2CGKeaY ZJZp5plgLghADQi06eabcMYp55x01ulmDcXkqWcxgQAAOw== ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=img.jpeg Content-Type: image/jpeg; name=img.jpeg Content-Location: http://sns.ragnarokonline.jp/img.php?filename=b_1_1250679761.jpg&w=180&h=180 Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQ DA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AA EQgAWgC0AwERAAIRAQMRAf/EAL0AAAIDAQEBAQAAAAAAAAAAAAUGAwQHAAECCAEA AgMBAQAAAAAAAAAAAAAABAUAAgMGARAAAQMCBAIHAwcIBgcJAAAAAgEDBBEFACES BjETQVFhIjIUB4FCFXHBUiMkFpfwkaGxYnIzNNHhgiU1ZfHCQ6NVRgiSotJjlLSF JjYRAAEDAQUECAQEBQQCAwAAAAEAEQIDITFREgTwQWEFcYGhsdEiMhORweFS8UIU FZKyIyQlYnKi4oJE40UG/9oADAMBAAIRAxEAPwDSYEC1BarYnwyARFAhn34cYycI 4zZkREbZEqqRKqqq545rmHMK1OtKMZMzMGFtg4fjcLU90ejpTpCUg5PTipW4tp0G btutrbIIpG8UGGgiiJVVWrVKYBoc01My2bsHgiamgoRD5e0+KFfej02QlrJsGS0o jEFezijdMHirrn3/AAHghfa0uHafFFG2rA/DGbFiWp+AQq4MwIcJWlEfEupG9KIN M8D1dbq4yyiX/EeC1jpdOQ7dp8UFf3r6WMx+cUmzLXUmgIMZwkUc1oIMkWfR8+DM 2tIsNvRGzs/BDmGmw7SiUCfs+dYivsdi1Fa2xIjkFBigKaPEhoTSEKp1KlV6MYnU awFifNg0bez8elaChpiHazpPivixXDaF+bdO0s2qWLNOarcGLqCtaagVpCoVFpli ktTrIeuTcWj4K0NPppXDtPiiY2iIR/4Rb6dXkYn6+VjEcw1Zlf2R72+nUtDo9O13 afFeO2mECoiWu3qn0vIRM/8AdY8qcw1UbpdbDwXsdHpz+XtPihku7bHiT1t0pbJH uOSHFdjQgIFKioi1b4rXJFwV+o1pjmBP8Is7Pw6ViaGmBYjtPiiJW63gnftVuQk8 I+Qid7/df6cC/uepAtlbgwt7PxuFq3GhoG6PafFRNxrYVdVstwj9PyETL2crGNPm +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 ------------dQmyVJZ6oFIk78N1YmNemR Content-Disposition: inline; filename=img.jpeg Content-Type: image/jpeg; name=img.jpeg Content-Location: http://sns.ragnarokonline.jp/img.php?filename=b_2_1250679772.jpg&w=180&h=180 Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQ DA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AA EQgAWgC0AwERAAIRAQMRAf/EALQAAAEFAQEBAAAAAAAAAAAAAAEABAUGBwMCCAEA AwEBAQEAAAAAAAAAAAAAAAECAwQFBhAAAQMCAwQHBQIJCAcJAQAAAQIDBBEFACES MWETBkFRcSIyFBVCUhYHl7FikXLSIzM0ZCU1gaHBgmNEVFXxokOFNkYX0ZLCc4Oz JJS0CBEAAQMCBAMHAwQCAwEAAAAAAQARAiEDMUFREmETBPCBobHBIjJxQhSR0eFS 8UNi4iNE/9oADAMBAAIRAxEAPwDWbNZrD6Da1KtcFa1wYa1rXDjrUpS46FKUpSkE qKiaknGU5s9V12rUTEEhPPRrBqp6Tb9lf1GL1V9zC31xy9FpyY6IejWDSD6Tb9p/ uMX8jE8ymPgjkx0RNmsFVfum35fsMXr/ABMUZ1NUcmOiQs1gqn902/P9hi9f4mAT qKo5MdEPRrBpJ9Jt+0f3GL+RieZTHwRyY6I+jWDVT0m37K/qMXqr7mK31xy9EcmO iHo1g0g+k2/af7jF/IxPMpj4I5MdETZrBVX7pt+X7DF6/wATFGdTVHJjokLNYKp/ dNvz/YYvX+JgE6iqOTHRD0awaSfSbftH9xi/kYnmUx8EcmOiPo1g1U9Jt+yv6jF6 q+5it9ccvRHJjoh6NYNIPpNv2n+4xfyMTzKY+COTHRE2awVV+6bfl+wxev8AExRn U1RyY6Jq/a7Kq4QojVrt6eJrekK8hE/QtUBGbZoVLWhPZXpwbzSqqNiJyXKZJ5OY mP270S3+po0eXiqhxgXkujuuN9zNANQrqphcwrUdHE1ai6rjcuRW0Nu2WBKnvV4M VmDF1KP3fzeSB0qVhG62KR6aGjBOrbylEU4ZFxt1sRq8MFmDEKED7zimtaj2UGMT ekVjOFvIKT+GeWP8lt3/ANOP+Rg50tVnyoqNl2OxRbk0F2m3mHKBQgeSi9x1I1Ur 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 kAZpYStagCfvLbz7KdGG7olccngoa6Hzd8Uy6CoB559Q61MArQDu1Z/yYlbSPxC8 sTYEKGRLiOPuFxUmO4xXi+YaZd8unKvdLyk5EFJ6QRhPEVky5+ttyLELSOQL1AXZ HZbxjMT3F8Sb5fR3lKSCQkoJqlLmpIANBSmOOzcBB+pyb6eC5JwLhlSfmRcZHMws 9mt7UiZLmLcdct8dfDQulU6pDve0NN1GdNuGDIzo1Bn6DVWYbcU3n8vzeR7lZTbr e3dI8Ea5MNRCquag6h5nimqlNqUoJP2YyMzG5uJrSuXEFb24QuQMTTRcJfMFnmXS +3a/Or868FOWixLaWwVOFkAF9bugeIUCUmnWrGgMJnfIV/UeCoRvQgIxHt1FVU7d cb66zFt0+bHXEt7LbjyYVdKVipWhxdSHHVKUNZTRPVjcW4SO4BX04lUnBTUSUJEh hbvdYddK36Cv5lsd5KAPaWpSUJxvEMtL1Qy0TzN9+IPNeX/enw9xvK6s9Pq+rh19 7hZU68q9ONd3sdePujz3y/hWew1+HLR3qfu+D1/4ZGIuEua6LO3gE+z1eP2dmfVh OXxy46K0Kq0jv9Jzz3Yly3y80dyJrVff+3LPFElzXz1RokK1R3/tzzwAlxXz1Rqh VWk9/pGee/EuW+XmjuRz1eP2dmfVinL45cdEIVVpHf6TnnuxLlvl5o7kTWq+/wDb lniiS5r56o0SFao7/wBueeAEuK+eqNVAczgqctzbjn5iRIEZZJO14UP/AHmwtH8u FEljVXAt+ikLreLdZ46HJbwbSoBthlIJUtWnJKEj/QOnDq+OXHRQA6qkm33fmCiE sKitPPF+RMkJKUpIQEJQ02oBxelAGZASTU1pliSaVK7IXRbFKlSL7tmt0uNDjPoS i2x1iQdYUst5hDZSM1qKwV5DKn3sMlnJNFnZcl1j175pWxdXZKH40MurcUTJdQko Ss1H5sFSyd2nGJvj7Xl9F6J2lnOC4cjvwOaubEW9DrrlnhoL14vMtS0qcTTSI8Vo d1kOE01Ea9NT3cYTdnuFuH76+Sxv3CcApxPy6d5e5riehXt2dY3+IuRHVobLCBsQ 4oqTmo5DIVwr/UQkHpu4LmtCQ+i1vlFvl+E24qLoRNmq1SXu6QpSRk2lxJUmiR7N es0wrV6EqA1UXRImqy753fNgW24s2aIA8pI4j6NobQoHQT1rXtp0J7cbxtmYJwVQ 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 ------------dQmyVJZ6oFIk78N1YmNemR--