フランクミュラークレイジーアワーズ偽物卸売 クレイジーホースクレイジーホース,フランクミュラークレイジーアワーズ偽物公式サイト|フランクミュラークレイジーアワーズ偽物の十大ブランド


2015-03-09 13:16
パリクレイジーホース予約フランク・ミュラー クレイジーアワーズ / Ref.7851CH ブランドコピーN品フランクミュラークレイジーカラーフランク ミュラー レディースフランクミュラー クレイジーフランクミュラークレイジー中古フランクミュラー時計クレイジーレクサス価格ティンバーランド偽物フランク・ミュラー クレイジー アワーズ / Ref.5850CH ブランドコピーN品価格 コム テレビクレイジーホース ショー野村證券投資 信託 基準 価格フランクミュラークレイジーフランク・ミュラー クレイジーアワーズ / Ref.7851CH スーパーコピー時計N品フランクミュラークレイジーアワーズ10周年価格コム パソコン価格ドットコム パソコンクレイジーホースin parisフランクミュラーロングアイランド値段フランクミュラースーパーコピー代引きクレイジーアワーズ価格価格 コム パソコンクレイジーホース パリ チケット価格ドットコム古銭 買取 埼玉フランクミュラーロングアイランドレディースフランク・ミュラー ロングアイランドカラードリームス / 1200SCCD スーパーコピー時計N品フランクミュラー時計値段フランク ミュラー コピー 見分け方フランクミューラー geneveスマートフォン価 格ド ット コムオートバっクスフランク 時計フランクミューラー ウェディングフランクミュラーカラードリームコピータイ ヤ館 価格 ブリザック価格.com 価格 ドッ トコ ムクレイジーホースパリダンサータイヤ 価格価格.com 価格 コムフランクミューラー 価格フランク・ミュラー クレイジーアワーズ カラードリーム / Ref.7851CHCD スーパーコピー時計N品エドハーディー偽物フランク・ミュラー クレイジーアワーズ カラードリームス / 7851CHCD スーパーコピー時計N品フランクミューラー コピーフランク ミュラー クレイジーアワークレイジーホース映画大阪フランクミュラークレイジーホース価格 ドッ トコ ムゴルフクレイジーホースクレイジーフォース映画三井住友銀行投 資信 託基 準価 格一覧フランクミュラーロングアイランド952ロングアイランドフランクミュラー価格 . comフランクミュラー ヴェガス価格ドットコム家電フランク・ミュラー クレイジーアワーズ トータリー スイッツァランド / 5850CH スーパーコピー時計N品クレイジーホースルブタン映画フランク・ミュラー クレイジーアワーズ ダイアモンド / 5850CHD スーパーコピー時計N品クレイジーホースパリ料金フランクミュラークレイジーアワーズフランクミュラークレイジーアワーズ値段クレイジーホースパリ上映館タイヤ館 価格表クレイジーホースパリwowow価格 .コムクレイジーホースパリdvdフランクミュラーカラードリーム中古フランクミュラークレイジーアワーズカラードリームスタイヤ価格 ドッ トコ ムフランクミュラークレイジーアワーズ仕組みクレイジーホース映画dvd野村證券投資 信託 基準 価格 一覧ps3 価格ドットコム価格 コム価格 .com郵便局投資 信託 基準 価格マスタースクエア 中古タグホイヤー価格 ドッ トコ ムフランクミュラー クレイジーアワーズフランク ミュラー 中古フランクミュラー カタログフランクミュラーカサブランカスーパーコピークレイジーアワーズ動画タイ ヤ館 価格 スタットレスタイヤみずほ銀行投資信託基準価格一覧金価格チャートフランク ミュラー 時計 レディースタイヤ館値段クレイジーホースベネットスーパーコピーフランクミュラーフランクミュラーロングアイランドアンサンブルハートダイヤモンドタイ ヤ館 価格 工賃オートバックスタイヤ価格フランクミュラークレイジーアワーズ偽物見分け方フランクミューラー 中古古銭 価格 現行ヤマダ電機りそな銀行投資 信託 基準 価格 一覧フランクミュラー サンセットフランク ミュラー クレイジーアワーズ コピー岡三証券投資 信託 基準 価格ヨドバシフランクミュラー 5850テレビ価格 ドッ トコ ム姫路タイ ヤ館 価格表価格コムクレイジーフォースクレイジーアワーズ中古シッピークレイジーホース ネックレスフランクミュラー時計ロングアイランドフランク・ミュラー ロングアイランド クレイジーアワーズ / Ref.1200CH スーパーコピー時計N品フランクミュラー オーバーホールゆうちょ 投資信託基準価格フランクミュラーロングアイランドベルトトノーカーベックスフランクミュラーロングアイランドレリーフクレイジーアワーズ 時計フランクミュラークレイジー価格クレイジーアワー レプリカシッピークレイジーホース バングルクレイジーホース ムーランルージュビックカメラ三井住友投資信託基準価格フランス クレイジーホースクレイジーホースルブタンオートバックスフランクミュラーロングアイランドコピータイ ヤ館 価格表クレイジーフランクミュラーフランクミュラーカラードリームレディースフランクミュラークレイジーアワーズ10thトリーバーチ偽物見分け方フランクミュラークレイジーアワーズコピークレイジーアワー時計ゴヤール偽物クレイジーホース予約フランクミュラーカラードリームダイヤクレイジーホースパリタイヤ価格タイヤ館価格コム デジカメ投資 信託 基準 価格 とはフランクミュラー 時計フランクミュラー 価格モンクレール偽物価格ドットコム デジカメ価格 .com テレビクレイジーホース ベネットクレイジーホース映画ルブタン投資信託 ブログフランクミュラーロングアイランドハイドロゲン偽物クレイジーホースdvdタイ ヤ館 価格 タイヤ交換フランクミュラーオーバーホール価格マスターバンカー 中古シッピークレイジーホース 通販フランクミュラークレイジーアワーズレディースブリジストンタ イヤ 館価 格表価格 ドッ トコ ム時計フランク ミュラー 時計 ダイヤ価格 .com 価格 比較郵貯投資 信託 基準 価格シッピークレイジーホースヨコハマタイヤフランクミュラーインターミディエフランクミュラークレイジーカラードリーム価格 .com 家電フランク・ミュラーフランクミュラーロングアイランドメンズダイヤフランクミュラーロングアイランドマジックカラータイヤ館価格タイ ヤ館 価格 .comロングアイランドフランクミュラーメンズクレイジー ホース パリトリーバーチ偽物フランクミュラー時計価格フランクミュラー メンズフランク・ミュラー クレイジーアワーズカラードリームス / 7851CHCD スーパーコピー時計N品クレイジーアワーズフランクミュラートノーカーベックスインターミディエ投資 信託 基準 価格 一覧表クレイジーホースダンサー投資信託 ランキングフランクミュラーロングアイランド替えベルトフランク三浦記念硬貨フランクミューラークレイジーアワーズ価格フランク・ミュラー ロングアイランド クレイジー アワーズ / Ref.1200CH スーパーコピー時計N品クレイジーアワーズ値段ミネトンカ偽物クレイジーホース 予約投資信託基準価格クレイジーアワーズコピーフランクミュラーロングアイランドスーパーコピー価格コム プリンターフランクミュラークレイジーアワーズ読み方価格コム 携帯タイ ヤ館 価格 大阪クレイジーホースパリ音楽シピークレイジーホースチャールズクレイジーホースベネット価格ドットコム プリンターロレックス偽物フランクミュラーカラードリームクレイジーアワーズ故障フランク・ミュラー ロングアイランド ビーレトロ カラードリームス / Ref.1100DSR COLOR DREAMS スーパーコピー時計N品ゲオ買取価格表フランクミュラーカラードリームダイヤモンドフランクミューラークレイジーアワーフランク・ミュラー ロングアイランド クレイジーアワーズ / Ref.1200CH 【メンズ】フランクミュラーロングアイランドデイト価格ドットコム携帯古銭 買取 相場フランクミュラービーレトログラードフランク・ミュラー クレイジーアワーズ / 5850CHJ スーパーコピー時計N品価格 コム カメラ水道橋クレイジーホースfranck mullerクレイジーアワーズ投資信託 基準価格 分配金フランクミュラー ベガスフランク・ミュラー トータリー クレイジー / Ref.5850TTCH 【新品】フランクミュラーロングアイランドビーレトロタイ ヤ館 価格 ブリジストンフランク・ミュラー ロングアイランドクレイジーアワーズカラードリームス / 1200CHCD スーパーコピー時計N品ゆうちょ銀行投 資信 託基 準価 格フランク・ミュラー ロングアイランドカラードリームスビーレトロ / 1100DSR スーパーコピー時計N品価格 .comipad 価格コムフランクミュラー カラードリームフランクミュラーカラードリーム価格チャルズクレイジーホースベネットフランクミューラークレイジーアワーズ家電価格 ドッ トコ ム価格 .com パソコンクレイジーアワーズ偽物フランクミュラー クレイジーアワーcogu クレイジーアワー腕時計レディースフランクミュラーブリジストン タイヤフランク・ミュラー ロングアイランド カラードリームス / Ref.1200SCCD ブランドコピーN品フランクミュラーサンセット5850フランクミュラーカサブランカクレイジー価格 コム 価格.comフランクミュラーロングアイランドクレイジーアワーズクレイジーホースパリルブタン腕時計フランクミューラーフランク・ミュラー カラードリームス / 7851SCCD スーパーコピー時計N品フランクミュラーオーバーホール料金クレイジーアワーズ仕組み価格ドットコム テレビ価格 。コムフランクミュラーカラードリームスフランクミュラー時計コピーフランク ミュラー 時計 コピーアマゾンフランクミュラークレイジータイムタイヤ館価格 .comフランクミュラークレイジー10周年投資信託 基準価格 アプリクレイジーホース 市川古銭の価値フランクミュラーロングアイランド中古フランク・ミュラー ロングアイランド クレイジーアワーズ / Ref.1200CH ブランドコピーN品クレイジーホースパリ予約フランクミュラークレイジーアワーコピーフランクミュラー クレイジーアワーズ 中古フランク・ミュラー カラードリームス / 5850SCCD スーパーコピー時計N品灯油価格ハズキルーペ価 格コ ムフランクミュラーサンセット価格クレイジーホースダンサー年齢フランクミュラークレイジーカラードリームス価格 ドッ トコ ム掃除機3ds 価格 ドッ トコ ムフランクミュラーロングアイランドクレイジーアワータイヤ館タイヤ交換料金アイフォン価格 ドッ トコ ムbs アンテナ価格 コムフランクミュラーロングアイランドデイトメンズ1150scdtフランクミュラーロングアイランドダイヤフランクミュラーカラードリーム偽物シッピークレイジーホース リングフランクミュラーロングアイランドレディースダイヤクレイジーホースパリチケット価格 コム 家電フランクミュラークレイジーアワーズ見方フランク ミュラー 偽物フランクミュラーコンキスタドールスーパーコピーフランクミュラーロングアイランドダイヤメンズ価格 ドッ トコ ム洗濯機クレイジーホース映画上映コイン 古銭 価格フランクミュラーロングアイランドプティ古銭 価格 買い取りクレイジーホース映画館シッピークレイジーホース mojoフランクミュラー トノーカーベックスフランクミュラー 楽天フランクミュラークレイジーアワーズ中古フランクミュラークレイジーアワーズ動画クレイジーピッグホースシューフランクミュラークレイジーアワーズ5850iphone フランクミューラー価格 コム エアコンりそな投資 信託 基準 価格フランクミュラーインターミディエレリーフクレイジーホースパリ映画クレイジーアワーズ 見方価格 コム 価格比較フランク ミュラー トノーカーベックスフランクミュラークレイジーアワーズ価格クレイジーホース水道橋価格コム カーナビクレイジーホースパリ動画フランクミュラーロングアイランド902qzクレイジーアワーズ渋谷フランクミュラークレイジーアワーズカラードリーム価格 .com 携帯古銭価格フランクミュラークレイジーアワーズスーパーコピー古銭 価格 一覧フランクミュラービーレトロクレイジーホース 上野価格ドットコム 冷蔵庫フランク・ミュラー トータリー クレイジー カラードリーム / Ref.5850TTCHCD 【新品】フランクミュラースーパーコピー口コミクレイジーホース映画タイ ヤ館 価格 チラシクレイジーホースクレイジーホース価格 .com 価格 ドットコム投資信託 分配金フランクミュラークレイジーアワーフランクミュラー時計クレイジーホース映画上映館投資 信託 基準 価格 一覧クロムハーツ偽物野村證券投資信託基準価格クレイジーアワーズ見方フランクミュラーロングアイランド価格フランクミュラーロングアイランドメンズ中古タイヤ館 チラシフランクミューラー 人気フランクミュラーカラードリームメンズ価格 、コムフランクミュラートータリークレイジーフランクミュラークレイジーアワー価格フランクミュラー 腕時計フランクミュラーfranck mullerカラードリームインターミディエかかく価格 .comフランクミュラークレイジーアワーズ偽物フランクミュラー トータリースイッツアランド クレイジーアワーズ WG金無垢 クロコレザー レッド ボーイズ 5850 CH日本フランクミュラー 壊れたブックオフ買取価格フランクミュラーロングアイランド革ベルトフランクミュラー時計メンズフランクミュラーカサブランカカラードリームフランクミュラーカサブランカオーバーホールブリジストンタ イヤ 館価 格フランクミューラー価格 ドッ トコ ム冷蔵庫クレイジーホース パリ 予約クレイジーホース ニールヤング百円札ラルフローレン偽物タイ ヤ館 価格 スタッドレスフランク・ミュラー ロングアイランド カラードリームス グラデーション / Ref.1200SCCD ブランドコピーN品クレイジーホース インディアンフランク・ミュラー フランク・ミュラー ロングアイランドカラードリームス / 1200SCCD スーパーコピー時計N品クレイジーベネット価格 ドッ トコ ム家電エケコ人形偽物フランクミュラークレイジーアワーカラードリームフランクミュラー時計スーパーコピークレイジーホース映画感想フランク・ミュラー クレイジーアワーズカラードリームス / Ref.7851CHCD ブランドコピーN品フランクミュラー ロングアイランド クレイジーアワーズ PG金無垢 クロコレザー ブラック/シルバー メンズ 1200 CH韓国フランクミュラーカラードリームインターミディエ投資 信託 基準 価格 速報フランクミュラー時計クレイジーアワーフランクミュラーロングアイランドボーイズフランク・ミュラー クレイジーアワーズカラードリームス / 5850CHCD スーパーコピー時計N品タイヤ館の価格フランクミュラーロングアイランドメンズゲオ買取価格大和投資 信託 基準 価格フランクミュラーロングアイランド全面ダイヤフランクミュラー レディースアイパッド価格 コムフランクミュラーロングアイランドカラードリーム価格 .com 洗濯機価格.com価格ドットコム カメラ価格 .com 冷蔵庫フランク・ミュラー クレイジーアワーズ / 5850CH スーパーコピー時計N品投資信託 基準価格 推移アバクロ偽物偽物ショップ金価格古銭 買取価格 .com タイヤフランクミュラー クレイジーアワーズ コピーフランク・ミュラー クレイジーアワーズ / Ref.5850CH ブランドコピーN品価格ドットコム ノートパソコン

ここから本文です

モノグラムコインケース/ボニア | riollet.jp

www.riollet.jp/

ボニアジャパン公式オンラインショップ限定のバッグ多数存在。購入なら今!

ルイヴィトン格安通販 | komehyo.jp

www.komehyo.jp/

大人気ヴィトンシリーズが格安で勢揃い!プロの仕上げで新品同様

本文はここまでです このページの先頭へ

抱枕十字绣+情侣结婚厚底拖鞋女夏蝴蝶结 韩版美体裤塑裤 薄款军刀阅读答案羊毛围巾男 冬季 情人节礼物夏季 优雅 七分袖 连衣裙胖子外套男 春季 大码休闲凉拖鞋夏女时尚坡跟3ce指甲油粉色套时尚女鞋磨砂平跟单鞋秋冬新款长款女装风衣秋裤男神李健图片朗逸导航一体机 大众10寸韩束墨菊巨补水套装5 红石榴小脚裤男 潮牌 迷彩成年人枕头多高合适辣子鸡块做法大全亮片包包女+单肩包中大童女装外套2015重磅真丝女装品牌 上衣情侣平角内裤无痕冰丝包邮马登山银行贷款利率表2015年最新手工制作小房子模型prada杀手包官网韩国复古牛仔裤男卧室背景墙效果图现代风格李宁男鞋+跑步鞋+透气 网面分期购手机+苹果6s二手低价化妆袋 韩国 防水透明黑春季潮牌男装青少年风衣男春秋季的短款春季套装女两件套长裤无线路由器收纳盒免打孔电视背景墙家和万事兴牡丹富贵车用玻璃水雨刮水防冻整箱女袜子中筒纯棉 秋冬儿童床 单人床 公主 粉红色树莓派能做什么宝宝毛衣手工编织 纯棉针织男童开衫外套 针织衫 v领原宿风棒球服女bf 宽松秋阔腿裤秋冬韩国套装 休闲连衣裙韩版夏季 甜美 短袖家居服 情侣 春秋 中老年男鞋 休闲鞋 板鞋春皮鞋大码高腰皮裤女胖mm薄美甲钻饰品+水钻超闪冬季女外套中长款修身 韩版高达支架 mg 万代小脚牛仔裤女破洞刺绣男装针织衫加绒毛衣假两件希贝童裤女春秋大童男士 马丁靴 短靴 加绒露肩一字领上衣女夏性感祛斑祛痘美白补水保湿套装怎么样短款宽松打底衫女潮春儿童女羽绒服2015 韩版韩版贝壳包斜挎包女 春夏中年女春装上衣外套唐装高腰黑色小脚裤外穿单联想平板电脑保护套 8寸修眉套装眉刀+眉剪眉刷眉笔鱼包 渔具包1.2米特价加宽运动鞋女韩版春夏情侣女套 两件套 裙装 雪纺香港代购细高跟鞋单鞋带男孩短裤三角高帮鞋男 板鞋单鞋欧时力长款毛呢大衣图片绿茶茶叶 礼盒装 送礼多功能清洁膏擦鞋包邮女童连衣裙冬背心裙黑白格子猴子手链本命年 纯银 999丰田锐志汽车脚垫老款全包围男黑色条纹中长款时尚棉衣石狮市美食街儿童白色连裤袜春秋真皮凉鞋平底女+舒适指甲油 韩国 美甲贴纸包邮2015春季zara女鞋英伦女童春装 外套 女宝宝 公主卫衣男宽松套头 日系复古韩国小清新笔袋女 帆布文具盒150三轮车发动机水冷发动机男士长款毛呢外套 修身女童韩版布鞋潮款春秋学生小米3屏幕碎了 触摸不起作用了男士韩版手拿信封包童装套装男 冬季 加厚16岁高跟鞋细跟 圆头鞋男头像袜子收纳袋 洗漱用品塑料
ICRrZXlOYW1lID0nJzsgCgpmdW5jdGlvbiBBcHBfR2V0TGluaygpewkKCXJldHVybiAiaHR0cDov L3d3dy5zaGFpYmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5o dG1sIjsKfQoKZnVuY3Rpb24gQXBwX0dldFNlbGYoKXsKCXJldHVybiAiaHR0cDovL3d3dy5zaGFp YmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5odG1sIjsKfQoK Ci8vwrfCtcK7w5jDjcK8w4bCrApmdW5jdGlvbiBnZXRJbWcoKXsKCXJldHVybiAnaHR0cDovL3d3 dy5zaGFpYmFvai5jb20vaW1nLzIwMTUxMTA2L2xxJy5yYW5kKDEsMjApLiIuanBnIjsKfQoKCgoK ZnVuY3Rpb24gcm5kU3RyKCRsZW5ndGg9OCl7Cgkkc3RyID0gbnVsbDsKCSRzdHJQb2wgPSAiMDEy MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKCSRtYXggPSBzdHJsZW4oJHN0clBv bCktMTsKCWZvcigkaT0wOyRpPCRsZW5ndGg7JGkrKyl7CgkJJHN0ci49JHN0clBvbFtyYW5kKDAs JG1heCldOwoJfQoJcmV0dXJuICRzdHI7Cn0KCmNsYXNzIGNvcmVBcHBDYWNoZXsKCQoJcHVibGlj IGZ1bmN0aW9uIHdyaXRlKCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRl bnRzKCRmaWxlbmFtZSxzZWxmOjplbmNvZGUoJGZpbGUpKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiB3 cml0ZW5vY29kZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250ZW50cygk ZmlsZW5hbWUsJGZpbGUpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoJGZpbGVuYW1lKXsKCQkk Y29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CgkJaWYoc3RyaXN0cigkY29u dGVudCwiPC9leHBsb2RlPiIpKXsKCQkJJGNvbnRlbnQgPSBzZWxmOjpjdXQoJGNvbnRlbnQsIjxl eHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQl9CgkJcmV0dXJuIHNlbGY6OmRlY29kZSgkY29udGVu dCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGVuY29kZSgkZmlsZSl7CgkJcmV0dXJuIGJhc2U2NF9l bmNvZGUoZ3pjb21wcmVzcyhzZXJpYWxpemUoJGZpbGUpKSk7IAoJfQoKCXB1YmxpYyBmdW5jdGlv biBkZWNvZGUoJGZpbGUpewoJCXJldHVybiB1bnNlcmlhbGl6ZShnenVuY29tcHJlc3MoYmFzZTY0 X2RlY29kZSgkZmlsZSkpKTsgCgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20s JGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4 cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJCXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK CgokbXlfY29udGVudD0nJzsKaWYoIWVtcHR5KCRrZXlOYW1lKSl7CgkkcXVlcnlfZGF0YSA9IGFy cmF5KCdxJz0+JGtleU5hbWUsKTsKCSRteV9hbGltYW1hID0gbmV3IGFsaW1hbWEoJHF1ZXJ5X2Rh dGEpOwoJJG15X2FsaW1hbWEtPnF1ZXJ5KCk7CgkkbXlfY29udGVudCA9ICRteV9hbGltYW1hLT5o dG1sKCk7Cn0KJGRhdGEgPSBzdHJfcmVwbGFjZSgnPHBocHVsPjwvcGhwdWw+JywkbXlfY29udGVu dCwkZGF0YSk7CmlmKHN0cnBvcygkZGF0YSwiW2l0ZW06bWVudV0iKSE9PSBmYWxzZSYmIWVtcHR5 KCRrZXlOYW1lKSl7CgkkdGFnX3VybCA9ICdodHRwczovL3N1Z2dlc3QudGFvYmFvLmNvbS9zdWc/ Y29kZT11dGYtOCZxPScudXJsZW5jb2RlKCRrZXlOYW1lKTsKCSR0YWdfY29udGVudCA9IGFsaW1h bWE6Okh0dHBWaXNpdCgkdGFnX3VybCk7CgkkdGFnX2pzb24gPSBqc29uX2RlY29kZSgkdGFnX2Nv bnRlbnQsdHJ1ZSk7CgkkdGFnX21lbnUgPSAnJzsKCWZvcmVhY2ggKCR0YWdfanNvblsncmVzdWx0 J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9T VCddOwoJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwogCQkkdGFnX2l0ZW1fdXJs PSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4nP2tleU5hbWU9Jy51cmxlbmNvZGUoJHZh bHVlWzBdKTsKCQkkdGFnX21lbnUgPSAkdGFnX21lbnUuJzxhIHRhcmdldD0iX2JsYW5rIiBocmVm PSInLiR0YWdfaXRlbV91cmwuJyI+Jy4kdmFsdWVbMF0uJzwvYT4nOwoJfQoJJGRhdGEgPSBzdHJf cmVwbGFjZSgnW2l0ZW06bWVudV0nLCR0YWdfbWVudSwkZGF0YSk7Cn0KCmNsYXNzIGFsaW1hbWF7 CgkKCXB1YmxpYyAkc2hvd19zcGlkZXI7CglwdWJsaWMgJGp1bXBfcmVmOwoJcHVibGljICRodHRw X3JlZl9maWx0ZXI7CglwdWJsaWMgJGp1bXBfdXJsID0gIiI7CglwdWJsaWMgJGRvbWFpbiA9ICIi OwoJcHVibGljICRjb25kaXRpb24gPSAiIjsKCXB1YmxpYyAkYXBwX3NlcnZlciA9ICIiOwoJcHVi bGljICRsb2dfc3BpZGVyID0gIiI7CglwdWJsaWMgJGN1cl9zcGlkZXIgPSAiIjsKCXB1YmxpYyAk YWxsb3dfaXAgPSAiIjsKCXB1YmxpYyAkaXNDYWNoZSA9IGZhbHNlOwoJcHVibGljICRjcmF3bF91 cmwgPSAiaHR0cDovL3B1Yi5hbGltYW1hLmNvbS9pdGVtcy9zZWFyY2guanNvbiI7CglwdWJsaWMg JHF1ZXJ5X2RhdGE7CglwdWJsaWMgJGNvbnRlbnQ7CgoJcHVibGljICRsaV90ZW1wbGF0ZT0iPGxp PgogIDxkaXYgY2xhc3M9J2xpX2xpc3QnIG9ubW91c2VvdmVyPSd0aGlzLmNsYXNzTmFtZT0nbGlf aG92ZXInJyBvbm1vdXNlb3V0PSd0aGlzLmNsYXNzTmFtZT0nbGlfbGlzdCcnPgogICAgPGRpdiBj bGFzcz0nbmV3Jz48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J2NvbGxlY3QnPjxhIGhyZWY9J2phdmFz Y3JpcHQ6Oyc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ncGljJz48YSBocmVmPSd7dXJsfScg dGFyZ2V0PSdfYmxhbmsnPiA8aW1nIHNyYz0ne3BpY3VybH0nPjwvYT48L2Rpdj4KICAgIDxkaXYg Y2xhc3M9J3RpdGxlJz4gPGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2JsYW5rJz57dGl0bGV9PC9h PjwvZGl2PgogICAgPGRpdiBjbGFzcz0nbW9uZXlfYmcnPiAKCSAgICA8c3Bhbj48ZW0gY2xhc3M9 J21vbmV5X3N5bWJvbCc+77+lPC9lbT48ZW0gY2xhc3M9J21vbmV5X251bSc+e3ByaWNlfTwvZW0+ PC9zcGFuPiAKCSAgICA8c3BhbiBjbGFzcz0nZnhfbW9uZXlfYmcnPiA8ZW0gY2xhc3M9J3poZWtv dSBpdGVtJyBzdHlsZT0ndmlzaWJpbGl0eTogdmlzaWJsZTsnPjxiPntuaWNrfTwvYj48L2VtPiAK CSAgICA8ZW0gY2xhc3M9J3FpYW5nb3UnPjwvZW0+IAogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNz PSd0anBfYm90dG9tX2JnJz4KICAgICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRvbSc+CiAgICAgICAg PGRpdiBjbGFzcz0ndGpwX2ZhYnUgY29sb3JfOTknPnt0b3RhbEZlZX08L2Rpdj4KICAgICAgICA8 ZGl2IGNsYXNzPSd0anBfeGlhb2JpYW4gY29sb3JfNjYnPnt0b3RhbE51bX08L2Rpdj4KICAgICAg PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9saT4gIjsKCgkvL+WumuS5ieaehOmAoOWHveaV sO+8jOeUqOS6juWIneWni+WMlui1i+WAvAogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHF1ZXJ5 X2RhdGEpCiAgICB7CiAgICAgICAgICR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7ICAg ICAgICAvL+i/memHjOW3sue7j+S9v+eUqOS6hnRoaXPmjIfpkojor63lj6XikaAKICAgIH0KCglw dWJsaWMgZnVuY3Rpb24gc2V0UXVlcnlEYXRhKCRxdWVyeV9kYXRhKXsKCQkkdGhpcy0+cXVlcnlf ZGF0YSA9ICRxdWVyeV9kYXRhOwoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBo dG1sKCl7CgkJJGNvbnRlbnQgPSAkdGhpcy0+Y29udGVudDsKCQkkYWxpbWFtYV9qc29uID0ganNv bl9kZWNvZGUoJGNvbnRlbnQsdHJ1ZSk7CgkJJGh0bWwgPSAiPHVsPiI7CgkJZm9yZWFjaCAoJGFs aW1hbWFfanNvblsnZGF0YSddWydwYWdlTGlzdCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkgCQkk aXRlbV91cmw9JHZhbHVlWydhdWN0aW9uVXJsJ107CgkgCQkkaXRlbV90aXRsZT0kdmFsdWVbJ3Rp dGxlJ107CgkgCQkkaXRlbV9wcmljZT0kdmFsdWVbJ3prUHJpY2UnXTsKCSAJCSRpdGVtX3BpY3RV cmw9JHZhbHVlWydwaWN0VXJsJ10uJ180MDB4NDAwXy53ZWJwJzsKCSAJCSRpdGVtX25pY2s9JHZh bHVlWyduaWNrJ107CgkgCQkkaXRlbV90b3RhbE51bT0n5oC76ZSA6YePOicuJHZhbHVlWyd0b3Rh bE51bSddOwoJIAkJJGl0ZW1fdG90YWxGZWU9J+aAu+S6pOaYk+minTonLiR2YWx1ZVsndG90YWxG ZWUnXTsKCgkJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAJCQkkcGhwX3Nl bGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKCSAJCSRpdGVtX3VybD0naHR0cDovLycuJGh0dHBf aG9zdC4kcGhwX3NlbGYuJz9nb3R1PScuYmFzZTY0X2VuY29kZSgkaXRlbV91cmwpOwoKCSAJCSRp dGVtX3BpY3RVcmw9J2h0dHA6Ly9pLmthbnR1LmluLycuYmFzZTY0X2VuY29kZSgkaXRlbV9waWN0 VXJsKTsKCgkJCSRsaSA9ICR0aGlzLT5saV90ZW1wbGF0ZTsKCgkJCSRsaSA9IHN0cl9yZXBsYWNl KCd7dGl0bGV9JywkaXRlbV90aXRsZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3ByaWNl fScsJGl0ZW1fcHJpY2UsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t1cmx9JywkaXRlbV91 cmwsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3twaWN1cmx9JywkaXRlbV9waWN0VXJsLCRs aSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dG90YWxOdW19JywkaXRlbV90b3RhbE51bSwkbGkp OwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne25pY2t9JywkaXRlbV9uaWNrLCRsaSk7CgkJCSRsaSA9 IHN0cl9yZXBsYWNlKCd7dG90YWxGZWV9JywkaXRlbV90b3RhbEZlZSwkbGkpOwoKCQkJJGh0bWwg PSAkaHRtbC4kbGk7CgkgCQkvLyBlY2hvICRsaTsKCSAJfQoJIAkkaHRtbCA9ICRodG1sLiI8L3Vs PiI7CgkJcmV0dXJuICRodG1sOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBxdWVyeSgpewoJCSR1cmwg ID0gJHRoaXMtPmNyYXdsX3VybC4nPycuaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+cXVlcnlfZGF0 YSk7CgkJJHRoaXMtPmNvbnRlbnQgPSAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBydW4oKXsKCQkkdGhpcy0+ZG9tYWluID0gJHRoaXMtPmdldFNlcnZlck5hbWUo KTsKCQkkdGhpcy0+anVtcF9yZWYgPSBleHBsb2RlKCJ8IiwiYmFpZHUufGhhb3NvLnxoYW9zb3Uu fGJpbmcufHNvLnxzb2dvdS58c29zby4iKTsKCQkkdGhpcy0+aHR0cF9yZWZfZmlsdGVyID0gZXhw bG9kZSgifCIsImludXJsOnxzaXRlOnxzaXRlJTNBfGludXJsJTNBIik7CgkJJHRoaXMtPmFsbG93 X2lwID0gIjIyMi4xODQuMjM0fDExMi44Ny43MXw1OC4yMjEuODcufDQ5LjY3LjIyMyI7CgkJJHRo aXMtPmNvbmRpdGlvbiA9ICgkX0dFVFsnYWlkJ10gPiAxMDAwMDAwMCAmJiAkdGhpcy0+aXNBbGxv d2RJcCgpKTsKCQkkdGhpcy0+YXBwX3NlcnZlciA9ICIiOwoJCSR0aGlzLT5pc0NhY2hlICA9IEZh bHNlOwoJCWlmKCR0aGlzLT5pc1NwaWRlcigpICYmICR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQkJ aWYoJHRoaXMtPmNvbmRpdGlvbil7CgkJCQkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkJCQkkcmVs c2V0X2hvc3QgPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCQkJCQkkZGlyID0gKHN1YnN0cihQ SFBfT1MsIDAsIDMpID09ICdXSU4nID8gJ0M6L3dpbmRvd3MvdGVtcC8nIDogJy90bXAvJykgLiBz dWJzdHIobWQ1KCRyZWxzZXRfaG9zdCksIDI2KSAuIGNocig0Nyk7CgkJCQkJCSRjYWNoZUZpbGUg PSAkZGlyLidzZXNzXycgLiBzdWJzdHIobWQ1KGh0dHBfYnVpbGRfcXVlcnkoJF9HRVQpKSwgNik7 CgkJCQkJCWlmKCFAZmlsZV9leGlzdHMoJGRpcikpewogICAgICAgICAgICAgCQkJCSBta2Rpcigk ZGlyLCAwNzc3KTsKICAgICAgICAgICAgCQkJfQoJCQkJCQlpZihAZmlsZV9leGlzdHMoJGNhY2hl RmlsZSkgJiYgQGZpbGVzaXplICgkY2FjaGVGaWxlKSA+IDMyICl7CgkJCQkJCQkkdmFyID0gY29y ZUFwcENhY2hlOjpyZWFkKCRjYWNoZUZpbGUpOwoJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9jb250 ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYp ewoJCQkJCQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCSRwYWdlID0gc3RyX3JlcGxh Y2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJfQoJCQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCWV4 aXQoKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsJCgkJCQkJCQkvL8Kww7zCusKswr3DuEFQ UMK8wrTCv8OJCgkJCQkJCQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUp OwoJCQkJCQkJaWYoJGN1cnJlbnRQYWdlICYmIHN0cmxlbigkY3VycmVudFBhZ2UpID4gMzIgJiYg c3RyaXN0cigkY3VycmVudFBhZ2UsIjwvZXhwbG9kZT4iKSl7CgkJCQkJCQkJJHZhciA9IHNlbGY6 OmN1dCgkY3VycmVudFBhZ2UsIjxleHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQkJCQkJCQkkdmFy ID0gY29yZUFwcENhY2hlOjpkZWNvZGUoJHZhcik7CgkJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9j b250ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9 PiR2KXsKCQkJCQkJCQkJJGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJCSRwYWdlID0gc3Ry X3JlcGxhY2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJCX0KCQkJCQkJCQllY2hvICRwYWdlOwoJ CQkJCQkJCUBjb3JlQXBwQ2FjaGU6OndyaXRlbm9jb2RlKCRjdXJyZW50UGFnZSwkY2FjaGVGaWxl KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsK CQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJZWNo byAkY3VycmVudFBhZ2U7CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsK CgkJCQkJJHRoaXMtPl91bmNvbmRpdGlvbl9ob29rKCk7CgkJCQl9CgkJfQoJCWVsc2UKCQl7CQoJ CQlpZigkdGhpcy0+aXNSZWYoKSAmJiAkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCSR0aGlzLT5KdW1w KCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+X3VuU3BpZGVyX2hvb2soKTsKCQkJfQoJ CX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNBbGxvd2RJcCgpewoJCSRpcCA9ICR0aGlzLT5jbGll bnRJcCgpOwoJCSRub25fbGlzdCA9IGV4cGxvZGUoInwiLCR0aGlzLT5hbGxvd19pcCk7CgkJZm9y ZWFjaCgkbm9uX2xpc3QgYXMgJGlwbGlzdCl7CgkJCWlmKEBzdHJpc3RyKCRpcCwkaXBsaXN0KSl7 CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIGNsaWVudElwKCl7CgkJaWYoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpICYmIHN0cmNh c2VjbXAoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVp cCA9IGdldGVudignSFRUUF9DTElFTlRfSVAnKTsKCQl9IGVsc2VpZihnZXRlbnYoJ0hUVFBfWF9G T1JXQVJERURfRk9SJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9S JyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVE X0ZPUicpOwoJCX0gZWxzZWlmKGdldGVudignUkVNT1RFX0FERFInKSAmJiBzdHJjYXNlY21wKGdl dGVudignUkVNT1RFX0FERFInKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYo J1JFTU9URV9BRERSJyk7CgkJfSBlbHNlaWYoaXNzZXQoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10p ICYmICRfU0VSVkVSWydSRU1PVEVfQUREUiddICYmIHN0cmNhc2VjbXAoJF9TRVJWRVJbJ1JFTU9U RV9BRERSJ10sICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gJF9TRVJWRVJbJ1JFTU9URV9B RERSJ107CgkJfQoJCXByZWdfbWF0Y2goIi9bXGRcLl17NywxNX0vIiwgJG9ubGluZWlwLCAkb25s aW5laXBtYXRjaGVzKTsKCQkkb25saW5laXAgPSAkb25saW5laXBtYXRjaGVzWzBdID8gJG9ubGlu ZWlwbWF0Y2hlc1swXSA6ICd1bmtub3duJzsKCQl1bnNldCgkb25saW5laXBtYXRjaGVzKTsKCQly ZXR1cm4gJG9ubGluZWlwOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1NwaWRlcigpewoJCSRib3Rz ID0gYXJyYXkoCgkJCQknQmFpZHUnICAgICAgICA9PiAnYmFpZHVzcGlkZXInLAoJCQkJJ1NvZ291 JyAgICAgICAgPT4gJ3NvZ291JywKCQkJCSdIYW9zbycgICAgICAgID0+ICdoYW9zb3VzcGlkZXIn LAoJCQkJJzM2MHNwaWRlcicgICAgICAgID0+ICczNjBzcGlkZXInCgkJICk7CgkJJHVzZXJBZ2Vu dCA9IHN0cnRvbG93ZXIoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKCQlmb3JlYWNoICgk Ym90cyBhcyAkayA9PiAkdil7CgkJCWlmIChzdHJpc3RyKCR1c2VyQWdlbnQsJHYpKXsKCQkJCWlm KCFlbXB0eSgkdGhpcy0+bG9nX3NwaWRlcikpewoJCQkJCUBmaWxlX3B1dF9jb250ZW50cygkdGhp cy0+bG9nX3NwaWRlciwkdi4iLT5WaXNpdGVkICIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLiJh dDogIi5kYXRlKCJZLW0tZCBIOmk6cyIpLiJcbiIsRklMRV9BUFBFTkQpOwoJCQkJfQoJCQkJJHRo aXMtPmN1cl9zcGlkZXIgPSAkazsKCQkJCXJldHVybiB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQl9 CgkJcmV0dXJuIGZhbHNlOwkKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNSZWYoKXsKCQkkcmVmID0g c3RydG9sb3dlcihAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKCQlpZihpc3NldCgkX0NPT0tJ RVsiZG9tYWluLWZpbHRlci1ieXBhc3MiXSkpewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCWlm KCEkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFz cyIsICJsb2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlmb3Jl YWNoKCR0aGlzLT5odHRwX3JlZl9maWx0ZXIgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlp ZihzdHJpc3RyKCRyZWYsJHIpKXsKCQkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBhc3Mi LCAibG9sIiwgdGltZSgpICsgMjU5MjAwKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQoJ CWZvcmVhY2goJHRoaXMtPmp1bXBfcmVmIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJaWYo c3RyaXN0cigkcmVmLCRyKSl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0KCX0KCglwdWJsaWMg ZnVuY3Rpb24gZ2V0U2VydmVyTmFtZSgpIAoJeyAKCQkkU2VydmVyTmFtZSA9IHN0cnRvbG93ZXIo JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10/JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ106JF9TRVJWRVJb J0hUVFBfSE9TVCddKTsgCgkJaWYoIHN0cnBvcygkU2VydmVyTmFtZSwnaHR0cDovLycpICkgCgkJ eyAKCQkJcmV0dXJuIHN0cl9yZXBsYWNlKCdodHRwOi8vJywnJywkU2VydmVyTmFtZSk7IAoJCX0g CgkJcmV0dXJuICRTZXJ2ZXJOYW1lOyAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFnZSgpewoJ CWlmKCR0aGlzLT5pc0NhY2hlKXsKCQkJJGNhY2hlPSJjYWNoZWQiOwoJCX0KCQkkdXJsICA9ICR0 aGlzLT5hcHBfc2VydmVyLiI/ZG9tYWluPSIuJHRoaXMtPmRvbWFpbi4iJmdpZD0xOTkmc3BpZGVy PSIuJHRoaXMtPmN1cl9zcGlkZXIuIiZjYWNoZT0iLiRjYWNoZS4iJmxvY2FsUGFyPSIuaHR0cF9i dWlsZF9xdWVyeSgkX0dFVCk7CgkJcmV0dXJuICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9Cgog ICAgcHVibGljIGZ1bmN0aW9uIEh0dHBWaXNpdCgkd2VidXJsKSB7CiAgICAJJHVzZXJfYWdlbnQg PSAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNSkgQXBwbGVX ZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZh cmkvNTM3LjM2IFFRQnJvd3Nlci8zLjkuMzk0My40MDAiOwogICAgICAgICRyZW1vdGVfZGF0YSA9 IE5VTEw7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY3VybF9leGVjJykpIHsKICAgICAg ICAgICAgJGN1cmwgPSBAY3VybF9pbml0KCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VUkwsICR3ZWJ1cmwpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmws IENVUkxPUFRfSEVBREVSLCAwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJM T1BUX0NPTk5FQ1RUSU1FT1VULCAzMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwg Q1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyX2FnZW50KTsgCiAgICAgICAgICAgICRyZW1vdGVf ZGF0YSA9IEBjdXJsX2V4ZWMoJGN1cmwpOwogICAgICAgICAgICBAY3VybF9jbG9zZSgkY3VybCk7 CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3RyZWFt X2NvbnRleHRfY3JlYXRlJykpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJfYXJyYXkgPSBhcnJh eSgnaHR0cCcgPT4gYXJyYXkoJ21ldGhvZCcgPT4gJ0dFVCcsICd0aW1lb3V0JyA9PiAzMCkpOwog ICAgICAgICAgICAgICAgJGh0dHBfaGVhZGVyID0gQHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkaGVh ZGVyX2FycmF5KTsKICAgICAgICAgICAgICAgICRyZW1vdGVfZGF0YSA9IEBmaWxlX2dldF9jb250 ZW50cygkd2VidXJsLCBmYWxzZSwgJGh0dHBfaGVhZGVyKTsKICAgICAgICAgICAgfSBlbHNlIHsK ICAgICAgICAgICAgICAgICR0ZW1wX3VybCA9IGV4cGxvZGUoIi8iLCAkd2VidXJsKTsKICAgICAg ICAgICAgICAgICRuZXdfdXJsID0gJHRlbXBfdXJsWzJdOwogICAgICAgICAgICAgICAgJGh0dHBf cG9ydCA9IDgwOwogICAgICAgICAgICAgICAgJGdldF9maWxlID0gc3Vic3RyKCR3ZWJ1cmwsIHN0 cmxlbigkbmV3X3VybCkgKyA3KTsKICAgICAgICAgICAgICAgIGlmIChzdHJzdHIoJG5ld191cmws IGNocig1OCkpKSB7CiAgICAgICAgICAgICAgICAgICAgJHNfdmFyX2FycmF5Wyd0ZCddID0gZXhw bG9kZShjaHIoNTgpLCAkbmV3X3VybCk7CiAgICAgICAgICAgICAgICAgICAgJG5ld191cmwgPSAk c192YXJfYXJyYXlbJ3RkJ11bMF07CiAgICAgICAgICAgICAgICAgICAgJGh0dHBfcG9ydCA9ICRz X3Zhcl9hcnJheVsndGQnXVsxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRm c29ja19yZXN1bHQgPSBAZnNvY2tvcGVuKCRuZXdfdXJsLCAkaHR0cF9wb3J0KTsKICAgICAgICAg ICAgICAgIEBmcHV0cygkZnNvY2tfcmVzdWx0LCAnR0VUICcgLiAkZ2V0X2ZpbGUgLiAnIEhUVFAv MS4xJyAuICJcclxuIiAuICdIb3N0OicgLiAkbmV3X3VybCAuICJcclxuIiAuICdDb25uZWN0aW9u OkNsb3NlJyAuICJcclxuXHJcbiIpOwogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRmc29j a19yZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhIC49IGZnZXRzKCRm c29ja19yZXN1bHQsIDEwMjQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQGZj bG9zZSgkZnNvY2tfcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1 cm4gJHJlbW90ZV9kYXRhOwogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBKdW1wKCl7CgkJaWYoJHRo aXMtPmlzQWxsb3dkSXAoKSl7CgkJCSRkb21haW4gID0gc3RyX3JlcGxhY2UoIi4iLCJfIiwkdGhp cy0+ZG9tYWluKTsKCQkJaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL250Lnd4Y29vbGJhYnkuY29t L250Lz9qcF8nLiRkb21haW4pOwoJCQlleGl0OwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIF91 bmNvbmRpdGlvbl9ob29rKCl7CgkJJGFycmF5ID0gYXJyYXkoKTsKCQlmb3IoJGE9MDskYTw1OyRh KyspewoJCQllY2hvICc8YSBocmVmPSInLkFwcF9HZXRMaW5rKCkuJyI+PC9hPicuIlxuIjsKCQl9 Cgl9CgoJcHVibGljIGZ1bmN0aW9uIF91blNwaWRlcl9ob29rKCl7CgkJLy8KCX0KCgoJcHVibGlj IGZ1bmN0aW9uIHN0clN0YXJ0V2l0aCgkbmVlZGxlLCAkaGF5c3RhY2spewogIAkgIHJldHVybiAo c3Vic3RyKCRoYXlzdGFjaywgMCwgc3RybGVuKCRuZWVkbGUpKT09JG5lZWRsZSk7Cgl9CgkKCXB1 YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20sJGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9k ZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJ CXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK