Login
    
Login

02 December 2009 ~ 173 Comments

ตอนที่7: การติดตั้ง Load Balance Failover (VDO Tutorial)

จัดให้..สำหรับสาวกเกมส์ออนไลน์ หรือท่านที่ต้องการเล่นเน็ตแบบไวสายฟ้า ปรารถนาจะไม่หลุดแม้เสี้ยววินาที ชั่วโมงนี้ต้อง Multi-WAN หรือ LoadBalance FailOver เท่านั่น รับรองแรงสะใจไม่ฮุนเซ็นแน่นอน ละอ่อนทอล์ค รับประกันคุณภาพอีกแร้วครับทั่น…

คุณสมบัติ Load Balance Failover
1. Loadbalance : เป็นการกระจาย Bandwidth ด้วยคุณสมบัติ Round Robin Algorithm จึงทำให้เราสามารถได้รับความเร็วสูงสุดทั้ง 2 WAN รวมกันนั่นเอง
2. FailOver : คุณสมบัติสลับสายเมื่อลิงค์ใดๆ หลุด จะถูกสลับไปยังอีกลิงค์อื่นทันที รับรองไม่พลาดการเชื่อมต่อแน่นอนครับ

Service & Package ที่ไม่สนับสนุน
1. Traffic Shaper
2. Squid Proxy
3. บาง Protocol เช่น PPTP, GRE ใช้ได้กับ WAN1 เท่านั้น

Network Diagram

pfSense LoadBalance FailOver

โหลดเอกสารประกอบการบรรยาย Multi-WAN

Did you like this? Share it:
 

173 Responses to “ตอนที่7: การติดตั้ง Load Balance Failover (VDO Tutorial)”

  1. aofrangsit 25 March 2011 at 9:14 pm Permalink

    admin ครับ ในหนังสื่อเล่มนี้ http://www.se-ed.com/eShop/Products/Detail.aspx?CategoryId=0&No=9786160802906 (หน้าที่ 123) เขาพูดถึงการทำ Load Banlance โดยใช้ ADSL แค่ WAN เดียว แล้วใช้ PC ทำเป็น PC Gateway เป็น pfSense จำนวน 2 เครื่องด้วยกัน แล้ว PC 3 ก็ทำเป็น Load Balance ตาม Diagram นี้ครับ http://image.ohozaa.com/show.php?id=893e9b6e1ad0a8912de540f0e04039f3 เค้าบอกว่า pfSense 2 เครื่อง จะต้องเซตให้เป็น DHCP เครื่องทีื่ 3 จะทำหน้าที่ Load balance ก็เลย งงๆ ว่าเราจะกำหนด DNS จะกำหนดยังไง Admin ช่วยแนะนำด้วยครับ

  2. aotyunsir 2 April 2011 at 11:04 pm Permalink

    หวัดดีคับใช้ Pf sense ทำ load balance มาแล้ว 4 เดือนกว่าแล้วคับ net วิ่งเร็วดีคับ (ทำตาม VDO แปะๆคับ) แต่มาช่วงหลังๆ รู้สึก Internet มันอืดๆ คับ ทั้งๆที่ กร๊าฟมันขึ้นทั้ง2เส้นนะคับ เช็ค
    speed ก็ขึนเกือบเต็มทั้ง2เส้นคับ (สายหลักใช้ True 6 m สายที่2 ใช้ 3BB 6 m คับ)
    ใครเป็นเหมือนผมมั่งคับ และมันเป็นเพราะอะไรคับ หาสาเหตุให้ผมทีคับ
    ใครรู้วิธีแก้ไขช่วยทีคับ
    ขอบคุณคับ

  3. tanoy999 3 April 2011 at 7:17 am Permalink

    — สร้าง LAN Rule กำหนดให้
    IP Address 1-10 ออก Gateway WAN1
    IP Address 11-20 ออก Gateway WAN2
    IP Address 21-30 ออก Gateway WAN3

    ทำอย่างไรครับ และ ทั้ง 3 wan สามารถทำ proxy ร่วมด้วยได้ไหมครับ ขอบพระคุณครับ

    • laontalk 9 April 2011 at 4:40 pm Permalink

      เพิ่ม proxy มาอีกเครื่องหนึ่ง ผมเคยทำ diagram ไว้ comment เก่าๆ ลองอ่านดูครับ

  4. tanoy999 7 April 2011 at 11:14 am Permalink

    load balance สามารถทำได้สูงสุด กี่ wan ครับ ผมมี net 5 เส้น สามารถทำ load balance ทั้ง 5 เส้นได้ไหมครับ …ขอบพระคุณครับ

  5. convoy28 11 May 2011 at 4:34 am Permalink

    รบกวนถามหน่อยครับ ถ้าผมไม่ทำ Load Balance จะทำแค่ Rule แยกเกม/เน็ต เท่านั้น โดย
    Wan1 = เน็ต Opt = เกม
    แล้วติดตั้ง Squid เพื่อ เก็บแพทเกมและ Cache web ต่างๆ (เป็นร้านเกมคับ ชอบแบบแยก ip/port มากกว่า ไม่อยากไห้มันไปตีกัน )
    1.ถ้าติดตั้ง Squid แล้ว มันจะเป็นไปตามที่ต้องการไหมครับ
    2.จะมีปัญหาตามมาไหม เช่น อาการอืด ช้า (เคยเจอบทความเก่าๆว่า PfSense ลง Squid แล้วจะอืด)3.อันนี้สำคัญ v.1.2.3rc1 ถ้า Wan1 ซึ่งเป็น default เกิดหลุด จะสามารถ ย้าย Rule ไปวิ่งเส้น Opt เส้นเดียวได้ไหม (ผมเคยใช้ เวอร์ชั่น ก่อนหน้านี้ ถ้าเส้น default หลุดจะใช้งานไม่ได้เลย แต่ถ้า Opt หลุด ยังสามารถย้ายมาใช้เส้นที่เป็น default ได้ชั่วคราว)

    • laontalk 18 May 2011 at 2:17 am Permalink

      ใช้ Rule กำหนด Port / IP Address ช่วยครับ
      ถ้าต้องการกำหนด Port / IP เป็นชุดๆ แนะนำให้ใช้ Firerwall > Aliases ช่วยครับ

  6. convoy28 11 May 2011 at 5:15 am Permalink

    ถามอีกข้อครับ v.1.2.3rc1 เส้น Opt สามารถต่อ pppoe ได้ไหมครับ ไม่อย่างนั้น forword port
    ลำบากอ่าครับ ตัว rounter รองรับได้ไม่กี่เครื่องเองครับ (DotA)

    • laontalk 18 May 2011 at 2:13 am Permalink

      OPT ไม่รองรับ PPPoE ครับ ไม่ทราบลอง pfsense 2.0 หรือยัง…

  7. aun_chino 19 August 2011 at 3:08 pm Permalink

    ผมมีปัญหาดังนี้่ครับ

    ปัจจุบันผมมี Net 2 เส้น
    1. Lease line 1 MB
    2. ADSL 12 MB

    ปัจจุบัน ผมต่อเข้ากับระบบได้ตามปกติ มีการทำ Nat เพื่อให้สามารถเรียกใช้บริการจากภายในได้ แต่ปัญหามันมีอยู่ว่า

    ถ้าผมต้องการให้ Protocol ที่เป้น HTTPS และที่เกี่ยวข้องกับระบบเมล์ เช่น SMTP, POP, POP3, IMAP วิ่งออกเฉพาะที่ขา Lease line ได้ไหมครับ
    ที่เป็นพวก HTTP ธรรมดาให้วิ่งไปออกที่ ADSL

    ซึ่งปัจจุบันผมเจอปัญหาว่า เวลาทดสอบความเร็วกับ ADSLTHAILAND แล้ว เว็บไซต์มันจะแจ้งกลับมาว่า speed การใช้งาน ดันไปจับเอาขาที่เป็น Lease line
    ทดสอบแล้วความเร็วได้ไม่ถึง 1 MB ครับ

    ไม่ทราบว่า มีวิธีการอย่างไร แนะนำด้วยครับ

    ขอบคุณเป็นอย่างสูง

    มือใหม่หัด Config

  8. byte 20 August 2011 at 8:55 pm Permalink

    อยากได้วิธีการทำ Load Balance PFsense 2.0 ครับ

  9. kohrx 16 September 2011 at 11:53 pm Permalink

    ผมทำดูไม่ได้ซักที ไม่รู้เป็นไร ใครพอจะมี backup file ให้ดาว์นโหลดบ้างไหมครับ

    • laontalk 10 October 2011 at 3:12 pm Permalink

      ดูวีดีโอ และทำตามคู่มือ step by step ก็ัยังไม่ได้หรือครับ ค่อยๆลองทำทุกขั้นตอนอย่างละเอียดอีกที น่าจะไม่ยากจนเกินไป…

  10. ratz 7 October 2011 at 10:29 am Permalink

    ครับ..อยากได้วิธีการทำ VLAN อ่ะครับ พอดี รพ.ผมมีเน็ต 2 เส้น คืออยากให้เป็น
    WAN1 ใช้กับระบบภายในฐานข้อมูล + internet(Block เว็บบางเว็บเช่น เกมของ facebook)
    WAN2 ใช้ internet อย่างเดียว
    ทั้งสอง WAN ผ่าน Authenication Captive ครับประมาณนี้ พอดีว่าผมใช้ pFSense 1.2

  11. iworld 12 October 2011 at 3:59 pm Permalink

    สวัสดีครับ
    ถ้าต้องการกำหนดipให้ออกเน็ต ด้วย router ที่ต้องการใน pfsense
    ซึ่ง router นั้นอยู่ใน Gateway Groups ต้องกำหนดในส่วนไหนบ้างครับ
    ใช้v2.0

  12. banrong 29 November 2011 at 2:51 pm Permalink

    อยากสอบถาม ตาม รูป pfsense ตัวแรก ติดตั้ง การ์ด แลน 4 ใบ adsl 2 lan 2

    adsl 1 internet
    adsl2 internet

    Pfsense ตัว ที่ 1.
    ———————–
    wan1 192.168.20.1 ===> internet ADSL 4 M
    wan2 192.168.1.1 ===> internet ADSL 4 M
    lan1 ip 192.168.5.254 ==> ใช้งานเลย ผ่าน Captive Portal
    lan2 ip 192.168.9.254 ====> ต่อ ไป เข้า Pfsense ตัวที่ 2
    ———————————————–
    pfsense 2
    ———–
    การ์ดแลน 2 ใบ

    1. wan1 192.168.9.10 รับ IP จาก Lan2
    2.lan ip 192.168.2.254 ใช้ ผ่าน Captive Portal ภายใน ===>

    —————————————————————————
    *****วง 192.168.2.254 สามารถ ping เจอ ตั้ง แต่
    1.wan1 IP 192.168.9.10 ปิงเจอ
    2.lan2 ip 192.168.9.254 ปิงเจอ
    3.lan1 ip 192.168.5.254 ปิงเจอ
    ===============================
    แต่ เข้า ใน วง 192.168.5.254 แล้ว ปิง
    ปิง lan2 ip 192.168.9.254 ปิงเจอ

    — ปิง wan1 IP 192.168.9.10 ไม่จอ ต้อง แก้ ยังงัยครับ
    —- ปิง wan1 IP 192.168.2.254 ไม่จอ ต้อง แก้ ยังงัยครับ

    ***ถ้า เรา จะ set .ให้ ผู้ ใช้ งาน อยู่ วง 192.168.5.254 ping หา 192.168.2.254 ได้ ต้อง ทำ อย่างไร ครับ !
    ———————————————-

    ต้อง ทำยังงัย ครับ ขอบคุณ ครับ


Leave a Reply

You must be logged in to post a comment.

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIOC4muC4o+C4tOC4iOC4suC4hOC5gOC4h+C4tOC4meC4iuC5iOC4p+C4ouC5gOC4q+C4peC4t+C4reC4nOC4ueC5ieC4m+C4o+C4sOC4quC4muC4reC4uOC4l+C4geC4oOC4seC4oiDguJzguYjguLLguJnguKrguKDguLLguIHguLLguIrguLLguJTguYTguJfguKIsIOC4mOC4meC4suC4hOC4suC4o+C5hOC4l+C4ouC4nuC4suC4k+C4tOC4iuC4ouC5jCDguKrguLLguILguLLguKrguKDguLLguIHguLLguIrguLLguJTguYTguJfguKIsIOC4iuC4t+C5iOC4reC4muC4seC4jeC4iuC4tSDguKrguKDguLLguIHguLLguIrguLLguJTguYTguJfguKLguIrguYjguKfguKLguJzguLnguYnguJvguKPguLDguKrguJrguK3guLjguJfguIHguKDguLHguKIsIOC5gOC4peC4guC4l+C4teC5iOC4muC4seC4jeC4iuC4tSAwNDUtMy0wNDE5MC02IOC4muC4seC4jeC4iuC4teC4geC4o+C4sOC5geC4quC4o+C4suC4ouC4p+C4seC4mSBGYXg6IDAtMjI1Ni00MDk2IHd3dy5yZWRjcm9zcy5vci50aDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X21vcmVfdGV4dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X21vcmVfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfdGV4dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fkc19yb3RhdGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj48IS0tDQpnb29nbGVfYWRfY2xpZW50ID0gXCJwdWItMjY4Mjk4NDcyNjEzMzAzMFwiOw0KLyogMjUweDI1MCwg4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZ4LmB4Lil4LmJ4LinIDEyLzI5LzA4ICovDQpnb29nbGVfYWRfc2xvdCA9IFwiMjkwMTY2MjgxOFwiOw0KZ29vZ2xlX2FkX3dpZHRoID0gMjUwOw0KZ29vZ2xlX2FkX2hlaWdodCA9IDI1MDsNCi8vLS0+DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiDQpzcmM9XCJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzXCI+DQo8L3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF8yNTBfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0yNTB4MjUwLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Fkc2Vuc2U8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj48IS0tDQpnb29nbGVfYWRfY2xpZW50ID0gXCJwdWItMjY4Mjk4NDcyNjEzMzAzMFwiOw0KLyogNDY4eDYwLCDguJbguLnguIHguKrguKPguYnguLLguIfguILguLbguYnguJnguYHguKXguYnguKcgMTIvMjkvMDggKi8NCmdvb2dsZV9hZF9zbG90ID0gXCIzMDk5NjgzMzkyXCI7DQpnb29nbGVfYWRfd2lkdGggPSA0Njg7DQpnb29nbGVfYWRfaGVpZ2h0ID0gNjA7DQovLy0tPg0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIg0Kc3JjPVwiaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qc1wiPg0KPC9zY3JpcHQ+PC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTQ2OHg2MC0yLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMTwvc3Ryb25nPiAtIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9wcm9kdWN0X2Jhbm5lcnMvZVN0b3JlX2Jhbm5lcl8xMjVfMTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwOi8vYmV0YWdsdWNhbjEuY29tL2ltYWdlcy9idXNpbmVzczEyNXgxMjUuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubHVuYXJwYWdlcy5jb20vYmFubmVycy9pbWFnZXMvYmFubmVyX2Fkc18xMjV4MTI1XzAyLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vYmV0YWdsdWNhbjEuY29tL2ltYWdlcy9iYW5uZXIxMjV4MTI1LTIucG5nPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3BhZ2U8L3N0cm9uZz4gLSBTZWxlY3QgYSBwYWdlOjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3LnRpcHNhbmR0cmlja3MtaHEuY29tL3dvcmRwcmVzcy1lc3RvcmUtcGx1Z2luLWNvbXBsZXRlLXNvbHV0aW9uLXRvLXNlbGwtZGlnaXRhbC1wcm9kdWN0cy1mcm9tLXlvdXItd29yZHByZXNzLWJsb2ctc2VjdXJlbHktMTA1OT9hcF9pZD1zeXNuYXA8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly9iZXRhZ2x1Y2FuMS5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubHVuYXJwYWdlcy5jb20vaWQvc2VhdGVjaDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL2JldGFnbHVjYW4xLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF81PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzY8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZXNfcGFnZTwvc3Ryb25nPiAtIEFyY2hpdmVzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZV9jb250ZW50PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hcnRpY2xlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2FydGljbGVzX3Rlcm1faWQ8L3N0cm9uZz4gLSA5OTwvbGk+PGxpPjxzdHJvbmc+d29vX2FzaWRlc19jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fYXNpZGVzX2VudHJpZXM8L3N0cm9uZz4gLSAxPC9saT48bGk+PHN0cm9uZz53b29fYXVkaW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb19hdWRpb190ZXJtX2lkPC9zdHJvbmc+IC0gMTAxPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Jncjwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYml0bHlfYXBpX2tleTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2JpdGx5X2FwaV9sb2dpbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2JvZHlfY29sb3I8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ib2R5X2ltZzwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2JvZHlfcG9zPC9zdHJvbmc+IC0gdG9wPC9saT48bGk+PHN0cm9uZz53b29fYm9keV9yZXBlYXQ8L3N0cm9uZz4gLSByZXBlYXQ8L2xpPjxsaT48c3Ryb25nPndvb19idXR0b25fY29sb3I8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfZXg8L3N0cm9uZz4gLSAxNTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9tZW51PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbW1lbnRzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY29udGFjdGZvcm1fZW1haWw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2FyY2hpdmVzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2hvbWU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9yc3M8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX3Nlb190ZW1wbGF0ZTwvc3Ryb25nPiAtIGE6Mjp7aTowO2E6NTp7czo0OiJuYW1lIjtzOjEwOiJzZW9faW5mb18xIjtzOjM6InN0ZCI7czowOiIiO3M6NToibGFiZWwiO3M6NDoiU0VPICI7czo0OiJ0eXBlIjtzOjQ6ImluZm8iO3M6NDoiZGVzYyI7czoxODk6IkFkZGl0aW9uYWwgU0VPIGN1c3RvbSBmaWVsZHMgYXZhaWxhYmxlOiA8c3Ryb25nPkN1c3RvbSBQYWdlIFRpdGxlczwvc3Ryb25nPi4gR28gdG8gPGEgaHJlZj0iaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtYWRtaW4vYWRtaW4ucGhwP3BhZ2U9d29vdGhlbWVzX3NlbyI+U0VPIFNldHRpbmdzPC9hPiBwYWdlIHRvIGFjdGl2YXRlLiI7fWk6MTthOjU6e3M6NDoibmFtZSI7czoxMDoic2VvX2ZvbGxvdyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NToibGFiZWwiO3M6MjE6IlNFTyAtIFJlbW92ZSBOb2ZvbGxvdyI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94IjtzOjQ6ImRlc2MiO3M6NTk6Ik1ha2UgbGluayBmcm9tIHRoaXMgcG9zdC9wYWdlIGZvbGxvd2FibGUgYnkgc2VhcmNoIGVuZ2luZXMuIjt9fTwvbGk+PGxpPjxzdHJvbmc+d29vX2R5bmFtaWNfaW1nX2hlaWdodDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19mYWNlYm9vazwvc3Ryb25nPiAtIG1hc2UudGI8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfZW50cmllczwvc3Ryb25nPiAtIDM8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9wb3N0czwvc3Ryb25nPiAtIDE8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gMjc5NTM0MDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5sYW9udGFsay5jb20vZm9ydW0vPC9saT48bGk+PHN0cm9uZz53b29fZmVlZF91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfZW50cmllczwvc3Ryb25nPiAtIDY8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfaWQ8L3N0cm9uZz4gLSAzNTM2ODEzNEBOMDY8L2xpPjxsaT48c3Ryb25nPndvb19mb250X3NpdGVfdGl0bGU8L3N0cm9uZz4gLSBhOjU6e3M6NDoic2l6ZSI7czoyOiI0MCI7czo0OiJ1bml0IjtzOjI6InB4IjtzOjQ6ImZhY2UiO3M6NzoiR2VvcmdpYSI7czo1OiJzdHlsZSI7czowOiIiO3M6NToiY29sb3IiO3M6NzoiIzAwMDAwMCI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZvbnRfdGFnbGluZTwvc3Ryb25nPiAtIGE6NTp7czo0OiJzaXplIjtzOjI6IjE0IjtzOjQ6InVuaXQiO3M6MjoicHgiO3M6NDoiZmFjZSI7czo3OiJHZW9yZ2lhIjtzOjU6InN0eWxlIjtzOjY6Iml0YWxpYyI7czo1OiJjb2xvciI7czo3OiIjOTk5OTk5Ijt9PC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2FmZl9saW5rPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2N1c3RvbTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2N1c3RvbV90ZXh0PC9zdHJvbmc+IC0gPHA+PC9wPjwvbGk+PGxpPjxzdHJvbmc+d29vX2Zvb3RfY2F0X21lbnU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Zvb3RfbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mcmFtZXdvcmtfdmVyc2lvbjwvc3Ryb25nPiAtIDIuOS4xNDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfbGlua19kZXNjPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rX3RleHQ8L3N0cm9uZz4gLSBIb21lPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VzX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VzX3Rlcm1faWQ8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9saW5rX3RvPC9zdHJvbmc+IC0gcG9zdDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbGF5b3V0PC9zdHJvbmc+IC0gZGVmYXVsdC5waHA8L2xpPjxsaT48c3Ryb25nPndvb19saW5rc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2xpbmtzX3Rlcm1faWQ8L3N0cm9uZz4gLSAxMDQ8L2xpPjxsaT48c3Ryb25nPndvb19saW5rX2NvbG9yPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbGlua19ob3Zlcl9jb2xvcjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3Lmxhb250YWxrLmNvbS9pbWFnZXMvbGFvbnRhbGstbG9nby1uZXcucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9tYWluc3RyZWFtPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19uZWVkc190dW1ibG9nX3VwZ3JhZGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX29wdGlvbnM8L3N0cm9uZz4gLSBhOjUyOntzOjE4OiJ3b29fYWx0X3N0eWxlc2hlZXQiO3M6MTE6ImRlZmF1bHQuY3NzIjtzOjg6Indvb19sb2dvIjtzOjQ4OiJodHRwOi8vd3d3Lmxhb250YWxrLmNvbS9pbWFnZXMvbGFvbnRhbGtfbG9nby5wbmciO3M6MTM6Indvb190ZXh0dGl0bGUiO3M6NToiZmFsc2UiO3M6MTk6Indvb19mb250X3NpdGVfdGl0bGUiO2E6NTp7czo0OiJzaXplIjtzOjI6IjQwIjtzOjQ6InVuaXQiO3M6MjoicHgiO3M6NDoiZmFjZSI7czo3OiJHZW9yZ2lhIjtzOjU6InN0eWxlIjtzOjA6IiI7czo1OiJjb2xvciI7czo3OiIjMDAwMDAwIjt9czoxNjoid29vX2ZvbnRfdGFnbGluZSI7YTo1OntzOjQ6InNpemUiO3M6MjoiMTQiO3M6NDoidW5pdCI7czoyOiJweCI7czo0OiJmYWNlIjtzOjc6Ikdlb3JnaWEiO3M6NToic3R5bGUiO3M6NjoiaXRhbGljIjtzOjU6ImNvbG9yIjtzOjc6IiM5OTk5OTkiO31zOjE4OiJ3b29fY3VzdG9tX2Zhdmljb24iO3M6MDoiIjtzOjIwOiJ3b29fZ29vZ2xlX2FuYWx5dGljcyI7czowOiIiO3M6MTI6Indvb19mZWVkX3VybCI7czowOiIiO3M6MTk6Indvb19zdWJzY3JpYmVfZW1haWwiO3M6MDoiIjtzOjIxOiJ3b29fY29udGFjdGZvcm1fZW1haWwiO3M6MDoiIjtzOjE0OiJ3b29fY3VzdG9tX2NzcyI7czowOiIiO3M6MTI6Indvb19jb21tZW50cyI7TjtzOjE0OiJ3b29fY3VzdG9tX3JzcyI7czo0OiJ0cnVlIjtzOjE2OiJ3b29faG9tZV9jb250ZW50IjtzOjU6ImZhbHNlIjtzOjE5OiJ3b29fYXJjaGl2ZV9jb250ZW50IjtzOjU6ImZhbHNlIjtzOjIxOiJ3b29fYXJ0aWNsZXNfY2F0ZWdvcnkiO3M6MTg6IlNlbGVjdCBhIGNhdGVnb3J5OiI7czoxOToid29vX2ltYWdlc19jYXRlZ29yeSI7czoxODoiU2VsZWN0IGEgY2F0ZWdvcnk6IjtzOjE3OiJ3b29faW1hZ2VfbGlua190byI7czo0OiJwb3N0IjtzOjE5OiJ3b29fdmlkZW9zX2NhdGVnb3J5IjtzOjE4OiJTZWxlY3QgYSBjYXRlZ29yeToiO3M6MTk6Indvb19xdW90ZXNfY2F0ZWdvcnkiO3M6MTg6IlNlbGVjdCBhIGNhdGVnb3J5OiI7czoxODoid29vX2xpbmtzX2NhdGVnb3J5IjtzOjE4OiJTZWxlY3QgYSBjYXRlZ29yeToiO3M6MTg6Indvb19hdWRpb19jYXRlZ29yeSI7czoxODoiU2VsZWN0IGEgY2F0ZWdvcnk6IjtzOjE0OiJ3b29fYWJvdXRfdGV4dCI7czowOiIiO3M6MTk6Indvb19hYm91dF9tb3JlX3RleHQiO3M6MDoiIjtzOjE4OiJ3b29fYWJvdXRfbW9yZV91cmwiO3M6MDoiIjtzOjE1OiJ3b29fdXJsX3Nob3J0ZW4iO3M6MTc6IlNlbGVjdCBhIFNlcnZpY2U6IjtzOjE5OiJ3b29fYml0bHlfYXBpX2xvZ2luIjtzOjA6IiI7czoxNzoid29vX2JpdGx5X2FwaV9rZXkiO3M6MDoiIjtzOjE0OiJ3b29fYm9keV9jb2xvciI7czowOiIiO3M6MTI6Indvb19ib2R5X2ltZyI7czowOiIiO3M6MTU6Indvb19ib2R5X3JlcGVhdCI7czo2OiJyZXBlYXQiO3M6MTI6Indvb19ib2R5X3BvcyI7czozOiJ0b3AiO3M6MTQ6Indvb19saW5rX2NvbG9yIjtzOjA6IiI7czoyMDoid29vX2xpbmtfaG92ZXJfY29sb3IiO3M6MDoiIjtzOjE2OiJ3b29fYnV0dG9uX2NvbG9yIjtzOjA6IiI7czoxMjoid29vX2NhdF9tZW51IjtzOjQ6InRydWUiO3M6MTU6Indvb19uYXZfZXhjbHVkZSI7czowOiIiO3M6MjI6Indvb19wb3N0X2ltYWdlX3N1cHBvcnQiO3M6NToiZmFsc2UiO3M6MTc6Indvb19waXNfaGFyZF9jcm9wIjtzOjU6ImZhbHNlIjtzOjEwOiJ3b29fcmVzaXplIjtzOjQ6InRydWUiO3M6MTI6Indvb19hdXRvX2ltZyI7czo1OiJmYWxzZSI7czoyMjoid29vX2R5bmFtaWNfaW1nX2hlaWdodCI7czo0OiJ0cnVlIjtzOjExOiJ3b29fdGh1bWJfdyI7aTo0NDA7czoxMToid29vX3RodW1iX2giO2k6MjAwO3M6MTU6Indvb190aHVtYl9hbGlnbiI7czo5OiJhbGlnbmxlZnQiO3M6MTY6Indvb190aHVtYl9zaW5nbGUiO3M6NToiZmFsc2UiO3M6MTI6Indvb19zaW5nbGVfdyI7aTo0NDA7czoxMjoid29vX3NpbmdsZV9oIjtpOjIwMDtzOjEzOiJ3b29fcnNzX3RodW1iIjtzOjU6ImZhbHNlIjtzOjE5OiJ3b29fZm9vdGVyX2FmZl9saW5rIjtzOjA6IiI7czoxNzoid29vX2Zvb3Rlcl9jdXN0b20iO3M6NToiZmFsc2UiO3M6MjI6Indvb19mb290ZXJfY3VzdG9tX3RleHQiO3M6NzoiPHA+PC9wPiI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX290aGVyX2VudHJpZXM8L3N0cm9uZz4gLSA0PC9saT48bGk+PHN0cm9uZz53b29fb3RoZXJfaGVhZGxpbmVzPC9zdHJvbmc+IC0gNDwvbGk+PGxpPjxzdHJvbmc+d29vX3Bpc19oYXJkX2Nyb3A8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Bvc3RfaW1hZ2Vfc3VwcG9ydDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcHJvZmlsZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubGFvbnRhbGsuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOC10aGFpMDFfcmVzaXplLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX3F1b3Rlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX3F1b3Rlc190ZXJtX2lkPC9zdHJvbmc+IC0gMTAzPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jzc190aHVtYjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2VvX3RlbXBsYXRlPC9zdHJvbmc+IC0gYTozMTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjY6IkJhc2ljcyI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjE7YTozOntzOjQ6Im5hbWUiO3M6MTE6IlBsZWFzZSBSZWFkIjtzOjQ6InR5cGUiO3M6NDoiaW5mbyI7czozOiJzdGQiO3M6MzUyOiJXZWxjb21lIHRvIHRoZSBXb29TRU8gZmVhdHVyZS4gPGJyIC8+PHNtYWxsPkhlcmUgd2UgaGVscCB5b3UgdGFrZSBjb250cm9sIG9mIHlvdXIgc2VhcmNoIGVuZ2luZSByZWFkaW5lc3Mgd2l0aCBzb21lIGluLWJ1aWx0IHRoZW1lIG9wdGlvbnMuIE91ciB0aGVtZXMgZG8gaG93ZXZlciBzdXBwb3J0IHR3byBvZiBXb3JkUHJlc3Mub3JnJ3MgbW9zdCBjb21tb25seSB1c2VkIFNFTyBwbHVnaW5zIC0gPHN0cm9uZz5BbGwtaW4tT25lIFNFTzwvc3Ryb25nPiBhbmQgPHN0cm9uZz5IZWFkc3BhY2UgMjwvc3Ryb25nPi4gVXNlIHRoZSBjaGVja2JveCBiZWxvdyB0byB1c2UgM3JkIHBhcnR5IHBsdWdpbiBkYXRhLjwvc21hbGw+Ijt9aToyO2E6NTp7czo0OiJuYW1lIjtzOjI1OiJVc2UgM3JkIFBhcnR5IFBsdWdpbiBEYXRhIjtzOjQ6ImRlc2MiO3M6MTk4OiJNZXRhIGRhdGEgYWRkZWQgdG8gPHN0cm9uZz5jdXN0b20gZmllbGRzIGluIHBvc3RzIGFuZCBwYWdlczwvc3Ryb25nPiB3aWxsIGJlIGV4dHJhY3RlZCBhbmQgdXNlZCB3aGVyZSBhcHBsaWNhYmxlLiBUaGlzIHR5cGljYWxseSBkb2VzIG5vdCBpbmNsdWRlIEhvbWVwYWdlcyBhbmQgQXJjaGl2ZXMsIGFuZCBvbmx5IFNpbmd1bGFyIHRlbXBsYXRlcy4iO3M6MjoiaWQiO3M6Mjg6InNlb193b29fdXNlX3RoaXJkX3BhcnR5X2RhdGEiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjM7YTo1OntzOjQ6Im5hbWUiO3M6MjI6IkhpZGUgU0VPIGN1c3RvbSBmaWVsZHMiO3M6NDoiZGVzYyI7czo4MjoiQ2hlY2sgdGhpcyBib3ggdG8gaGlkZSB0aGUgaW5wdXQgZmllbGRzIGNyZWF0ZWQgaW4gdGhlIHBvc3QgYW5kIHBhZ2UgZWRpdCBzY3JlZW5zLiI7czoyOiJpZCI7czoxOToic2VvX3dvb19oaWRlX2ZpZWxkcyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6NDthOjI6e3M6NDoibmFtZSI7czoxMDoiUGFnZSBUaXRsZSI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjU7YTo1OntzOjQ6Im5hbWUiO3M6OToiU2VwYXJhdG9yIjtzOjQ6ImRlc2MiO3M6NTQ6IkRlZmluZSBhIG5ldyBzZXBhcmF0b3IgY2hhcmFjdGVyIGZvciB5b3VyIHBhZ2UgdGl0bGVzLiI7czoyOiJpZCI7czoxNzoic2VvX3dvb19zZXBlcmF0b3IiO3M6Mzoic3RkIjtzOjE6InwiO3M6NDoidHlwZSI7czo0OiJ0ZXh0Ijt9aTo2O2E6NTp7czo0OiJuYW1lIjtzOjEwOiJCbG9nIFRpdGxlIjtzOjQ6ImRlc2MiO3M6OTA6Ik5PVEU6IFRoaXMgaXMgdGhlIHNhbWUgc2V0dGluZyBhcyBwZXIgdGhlIFNFVFRJTkdTID4gR0VORVJBTCB0YWIgaW4gdGhlIFdvcmRQcmVzcyBiYWNrZW5kLiI7czoyOiJpZCI7czo4OiJibG9nbmFtZSI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6NDoidGV4dCI7fWk6NzthOjU6e3M6NDoibmFtZSI7czoxNjoiQmxvZyBEZXNjcmlwdGlvbiI7czo0OiJkZXNjIjtzOjkwOiJOT1RFOiBUaGlzIGlzIHRoZSBzYW1lIHNldHRpbmcgYXMgcGVyIHRoZSBTRVRUSU5HUyA+IEdFTkVSQUwgdGFiIGluIHRoZSBXb3JkUHJlc3MgYmFja2VuZC4iO3M6MjoiaWQiO3M6MTU6ImJsb2dkZXNjcmlwdGlvbiI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6NDoidGV4dCI7fWk6ODthOjY6e3M6NDoibmFtZSI7czoxODoiRW5hYmxlIHdvb190aXRsZSgpIjtzOjQ6ImRlc2MiO3M6MTUzOiJ3b29fdGl0bGUoKSBtYWtlcyB1c2Ugb2YgV29yZFByZXNzJ3MgYnVpbHQgaW4gd3BfdGl0bGUoKSBmdW5jdGlvbiB0byBjb250cm9sIHRoZSBvdXRwdXQgZm9yIHlvdXIgcGFnZSB0aXRsZXMuIEl0J3MgYWxzbyByZWNvbW1lbmRlZCBmb3IgdXNlIHdpdGggcGx1Z2lucy4iO3M6MjoiaWQiO3M6MTY6InNlb193b29fd3BfdGl0bGUiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjU6ImNsYXNzIjtzOjk6ImNvbGxhcHNlZCI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo5O2E6Njp7czo0OiJuYW1lIjtzOjIxOiJEaXNhYmxlIEN1c3RvbSBUaXRsZXMiO3M6NDoiZGVzYyI7czoxMzA6IklmIHlvdSBwcmVmZXIgdG8gaGF2ZSB1bmlmb3JtIHRpdGxlcyBhY3Jvc3MgeW91IHRoZW1lLiBBbHRlcm5hdGl2ZWx5IHRoZXkgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbSBjdXN0b20gZmllbGRzIGFuZC9vciBwbHVnaW4gZGF0YS4iO3M6MjoiaWQiO3M6Mjk6InNlb193b29fd3BfY3VzdG9tX2ZpZWxkX3RpdGxlIjtzOjM6InN0ZCI7czo1OiJmYWxzZSI7czo1OiJjbGFzcyI7czo2OiJoaWRkZW4iO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MTA7YTo2OntzOjQ6Im5hbWUiO3M6MTQ6IlBhZ2VkIFZhcmlhYmxlIjtzOjQ6ImRlc2MiO3M6NjQ6IlRoZSBuYW1lIHZhcmlhYmxlIHRoYXQgd2lsbCBhcHBlYXIgdGhlbiBwYWdpbmcgdGhyb3VnaCBhcmNoaXZlcy4iO3M6MjoiaWQiO3M6MTc6InNlb193b29fcGFnZWRfdmFyIjtzOjM6InN0ZCI7czo0OiJQYWdlIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo0OiJ0eXBlIjtzOjQ6InRleHQiO31pOjExO2E6Nzp7czo0OiJuYW1lIjtzOjIzOiJQYWdlZCBWYXJpYWJsZSBQb3NpdGlvbiI7czo0OiJkZXNjIjtzOjU3OiJDaGFuZ2UgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBwYWdlZCB2YXJpYWJsZSB3aWxsIGFwcGVhci4iO3M6MjoiaWQiO3M6MjE6InNlb193b29fcGFnZWRfdmFyX3BvcyI7czozOiJzdGQiO3M6NjoiYmVmb3JlIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo3OiJvcHRpb25zIjthOjI6e3M6NjoiYmVmb3JlIjtzOjY6IkJlZm9yZSI7czo1OiJhZnRlciI7czo1OiJBZnRlciI7fXM6NDoidHlwZSI7czo3OiJzZWxlY3QyIjt9aToxMjthOjc6e3M6NDoibmFtZSI7czoyMToiSG9tZXBhZ2UgVGl0bGUgTGF5b3V0IjtzOjQ6ImRlc2MiO3M6NjU6IkRlZmluZSB0aGUgb3JkZXIgdGhlIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgbWV0YSBkYXRhIGFwcGVhcnMgaW4uIjtzOjI6ImlkIjtzOjE5OiJzZW9fd29vX2hvbWVfbGF5b3V0IjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NjoiaGlkZGVuIjtzOjc6Im9wdGlvbnMiO2E6Mzp7czoxOiJhIjtzOjI4OiJCbG9nIHRpdGxlOyBibG9nIGRlc2NyaXB0aW9uIjtzOjE6ImIiO3M6MTA6IkJsb2cgdGl0bGUiO3M6MToiYyI7czoxNjoiQmxvZyBkZXNjcmlwdGlvbiI7fXM6NDoidHlwZSI7czo3OiJzZWxlY3QyIjt9aToxMzthOjc6e3M6NDoibmFtZSI7czoxOToiU2luZ2xlIFRpdGxlIExheW91dCI7czo0OiJkZXNjIjtzOjY1OiJEZWZpbmUgdGhlIG9yZGVyIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIG1ldGEgZGF0YSBhcHBlYXJzIGluLiI7czoyOiJpZCI7czoyMToic2VvX3dvb19zaW5nbGVfbGF5b3V0IjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NjoiaGlkZGVuIjtzOjc6Im9wdGlvbnMiO2E6NTp7czoxOiJhIjtzOjIyOiJQYWdlIHRpdGxlOyBCbG9nIHRpdGxlIjtzOjE6ImIiO3M6MTE6IlBhZ2UgdGl0bGU7IjtzOjE6ImMiO3M6MjM6IkJsb2cgdGl0bGU7IFBhZ2UgdGl0bGU7IjtzOjE6ImQiO3M6Mjg6IlBhZ2UgdGl0bGU7IEJsb2cgZGVzY3JpcHRpb24iO3M6MToiZSI7czo0MDoiQmxvZyB0aXRsZTsgUGFnZSB0aXRsZTsgQmxvZyBkZXNjcmlwdGlvbiI7fXM6NDoidHlwZSI7czo3OiJzZWxlY3QyIjt9aToxNDthOjc6e3M6NDoibmFtZSI7czoxNzoiUGFnZSBUaXRsZSBMYXlvdXQiO3M6NDoiZGVzYyI7czo2NToiRGVmaW5lIHRoZSBvcmRlciB0aGUgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBtZXRhIGRhdGEgYXBwZWFycyBpbi4iO3M6MjoiaWQiO3M6MTk6InNlb193b29fcGFnZV9sYXlvdXQiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJjbGFzcyI7czo2OiJoaWRkZW4iO3M6Nzoib3B0aW9ucyI7YTo1OntzOjE6ImEiO3M6MjI6IlBhZ2UgdGl0bGU7IEJsb2cgdGl0bGUiO3M6MToiYiI7czoxMToiUGFnZSB0aXRsZTsiO3M6MToiYyI7czoyMzoiQmxvZyB0aXRsZTsgUGFnZSB0aXRsZTsiO3M6MToiZCI7czoyODoiUGFnZSB0aXRsZTsgQmxvZyBkZXNjcmlwdGlvbiI7czoxOiJlIjtzOjQwOiJCbG9nIHRpdGxlOyBQYWdlIHRpdGxlOyBCbG9nIGRlc2NyaXB0aW9uIjt9czo0OiJ0eXBlIjtzOjc6InNlbGVjdDIiO31pOjE1O2E6Nzp7czo0OiJuYW1lIjtzOjIwOiJBcmNoaXZlIFRpdGxlIExheW91dCI7czo0OiJkZXNjIjtzOjY1OiJEZWZpbmUgdGhlIG9yZGVyIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIG1ldGEgZGF0YSBhcHBlYXJzIGluLiI7czoyOiJpZCI7czoyMjoic2VvX3dvb19hcmNoaXZlX2xheW91dCI7czozOiJzdGQiO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo3OiJvcHRpb25zIjthOjU6e3M6MToiYSI7czoyMjoiUGFnZSB0aXRsZTsgQmxvZyB0aXRsZSI7czoxOiJiIjtzOjExOiJQYWdlIHRpdGxlOyI7czoxOiJjIjtzOjIzOiJCbG9nIHRpdGxlOyBQYWdlIHRpdGxlOyI7czoxOiJkIjtzOjI4OiJQYWdlIHRpdGxlOyBCbG9nIGRlc2NyaXB0aW9uIjtzOjE6ImUiO3M6NDA6IkJsb2cgdGl0bGU7IFBhZ2UgdGl0bGU7IEJsb2cgZGVzY3JpcHRpb24iO31zOjQ6InR5cGUiO3M6Nzoic2VsZWN0MiI7fWk6MTY7YToyOntzOjQ6Im5hbWUiO3M6MTM6IkluZGV4aW5nIE1ldGEiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxNzthOjY6e3M6NDoibmFtZSI7czoxNjoiQXJjaGl2ZSBJbmRleGluZyI7czo0OiJkZXNjIjtzOjEyODoiU2VsZWN0IHdoaWNoIGFyY2hpdmVzIHRvIGluZGV4IG9uIHlvdXIgc2l0ZS4gQWlkcyBpbiByZW1vdmluZyBkdXBsaWNhdGUgY29udGVudCBmcm9tIGJlaW5nIGluZGV4ZWQsIHByZXZlbnRpbmcgY29udGVudCBkaWx1dGlvbi4iO3M6MjoiaWQiO3M6MjE6InNlb193b29fbWV0YV9pbmRleGluZyI7czozOiJzdGQiO3M6ODoiY2F0ZWdvcnkiO3M6NDoidHlwZSI7czoxMDoibXVsdGljaGVjayI7czo3OiJvcHRpb25zIjthOjU6e3M6ODoiY2F0ZWdvcnkiO3M6MTc6IkNhdGVnb3J5IEFyY2hpdmVzIjtzOjM6InRhZyI7czoxMjoiVGFnIEFyY2hpdmVzIjtzOjY6ImF1dGhvciI7czoxMjoiQXV0aG9yIFBhZ2VzIjtzOjY6InNlYXJjaCI7czoxNDoiU2VhcmNoIFJlc3VsdHMiO3M6NDoiZGF0ZSI7czoxMzoiRGF0ZSBBcmNoaXZlcyI7fX1pOjE4O2E6NTp7czo0OiJuYW1lIjtzOjQ5OiJBZGQgbWV0YSBmb3IgUG9zdHMgJiBQYWdlcyB0byAnZm9sbG93JyBieSBkZWZhdWx0IjtzOjQ6ImRlc2MiO3M6MTQzOiJCeSBkZWZhdWx0IHRoZSB3b29fbWV0YSgpOyBhZGRzIGEgJ25vZm9sbG93JyBtZXRhIHRvIHBvc3QgYW5kIHBhZ2VzLCBtZWFuaW5nIHNlYXJjaCBlbmdpbmVzIHdpbGwgbm90IGluZGV4IHBhZ2VzIGxlYWRpbmcgYXdheSBmcm9tIHRoZXNlIHBhZ2VzLiI7czoyOiJpZCI7czoyNjoic2VvX3dvb19tZXRhX3NpbmdsZV9mb2xsb3ciO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aToxOTthOjI6e3M6NDoibmFtZSI7czoxNjoiRGVzY3JpcHRpb24gTWV0YSI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjIwO2E6Njp7czo0OiJuYW1lIjtzOjIwOiJIb21lcGFnZSBEZXNjcmlwdGlvbiI7czo0OiJkZXNjIjtzOjYxOiJDaG9vc2Ugd2hlcmUgdG8gcG9wdWxhdGUgeW91ciBIb21lcGFnZSBtZXRhIGRlc2NyaXB0aW9uIGZyb20uIjtzOjI6ImlkIjtzOjIyOiJzZW9fd29vX21ldGFfaG9tZV9kZXNjIjtzOjM6InN0ZCI7czoxOiJhIjtzOjc6Im9wdGlvbnMiO2E6Mzp7czoxOiJhIjtzOjM6Ik9mZiI7czoxOiJiIjtzOjI0OiJGcm9tIFdQIFNpdGUgRGVzY3JpcHRpb24iO3M6MToiYyI7czozMjoiRnJvbSBDdXN0b20gSG9tZXBhZ2UgRGVzY3JpcHRpb24iO31zOjQ6InR5cGUiO3M6NToicmFkaW8iO31pOjIxO2E6NTp7czo0OiJuYW1lIjtzOjI3OiJDdXN0b20gSG9tZXBhZ2UgRGVzY3JpcHRpb24iO3M6NDoiZGVzYyI7czo0NzoiQWRkIGEgY3VzdG9tIG1ldGEgZGVzY3JpcHRpb24gdG8geW91ciBob21lcGFnZS4iO3M6MjoiaWQiO3M6Mjk6InNlb193b29fbWV0YV9ob21lX2Rlc2NfY3VzdG9tIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJ0ZXh0YXJlYSI7fWk6MjI7YTo2OntzOjQ6Im5hbWUiO3M6Mjg6IlNpbmdsZSBQYWdlL1Bvc3QgRGVzY3JpcHRpb24iO3M6NDoiZGVzYyI7czo3OToiQWRkIHlvdXIgcG9zdC9wYWdlIGRlc2NyaXB0aW9uIGZyb20gY3VzdG9tIGZpZWxkcy4gPHN0cm9uZz4qIFNlZSBiZWxvdzwvc3Ryb25nPiI7czoyOiJpZCI7czoyNDoic2VvX3dvb19tZXRhX3NpbmdsZV9kZXNjIjtzOjM6InN0ZCI7czoxOiJhIjtzOjc6Im9wdGlvbnMiO2E6Mzp7czoxOiJhIjtzOjU6Ik9mZiAqIjtzOjE6ImIiO3M6MzM6IkZyb20gQ3VzdG9tcyBGaWVsZCBhbmQvb3IgUGx1Z2lucyI7czoxOiJjIjtzOjM2OiJBdXRvbWF0aWNhbGx5IGZyb20gUG9zdC9QYWdlIENvbnRlbnQiO31zOjQ6InR5cGUiO3M6NToicmFkaW8iO31pOjIzO2E6Njp7czo0OiJuYW1lIjtzOjI5OiJHbG9iYWwgUG9zdC9QYWdlIERlc2NyaXB0aW9ucyI7czo0OiJkZXNjIjtzOjE4OToiQWRkIGEgY3VzdG9tIG1ldGEgZGVzY3JpcHRpb24gdG8geW91ciBwb3N0cyBhbmQgcGFnZXMuIFRoaXMgd2lsbCBvbmx5IHNob3cgaWYgbm8gb3RoZXIgZGF0YSBpcyBhdmFpbGFibGUgZnJvbSB0aGUgc2VsZWN0aW9uIGFib3ZlLiBXaWxsIHN0aWxsIGJlIGFkZGVkIGV2ZW4gaWYgc2V0dGluZyBhYm92ZSBpcyBzZXQgdG8gIk9mZiIuIjtzOjI6ImlkIjtzOjMzOiJzZW9fd29vX21ldGFfc2luZ2xlX2Rlc2Nfc2l0ZXdpZGUiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJjbGFzcyI7czo5OiJjb2xsYXBzZWQiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MjQ7YTo2OntzOjQ6Im5hbWUiO3M6MjI6IkFkZCBHbG9iYWwgRGVzY3JpcHRpb24iO3M6NDoiZGVzYyI7czoyNzoiQWRkIHlvdXIgZ2xvYmFsIGRlY3JpcHRpb24uIjtzOjI6ImlkIjtzOjMxOiJzZW9fd29vX21ldGFfc2luZ2xlX2Rlc2NfY3VzdG9tIjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NjoiaGlkZGVuIjtzOjQ6InR5cGUiO3M6ODoidGV4dGFyZWEiO31pOjI1O2E6Mjp7czo0OiJuYW1lIjtzOjEyOiJLZXl3b3JkIE1ldGEiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToyNjthOjY6e3M6NDoibmFtZSI7czoxNzoiSG9tZXBhZ2UgS2V5d29yZHMiO3M6NDoiZGVzYyI7czo2MToiQ2hvb3NlIHdoZXJlIHRvIHBvcHVsYXRlIHlvdXIgSG9tZXBhZ2UgbWV0YSBkZXNjcmlwdGlvbiBmcm9tLiI7czoyOiJpZCI7czoyMToic2VvX3dvb19tZXRhX2hvbWVfa2V5IjtzOjM6InN0ZCI7czoxOiJhIjtzOjc6Im9wdGlvbnMiO2E6Mjp7czoxOiJhIjtzOjM6Ik9mZiI7czoxOiJjIjtzOjI5OiJGcm9tIEN1c3RvbSBIb21lcGFnZSBLZXl3b3JkcyI7fXM6NDoidHlwZSI7czo1OiJyYWRpbyI7fWk6Mjc7YTo1OntzOjQ6Im5hbWUiO3M6MjQ6IkN1c3RvbSBIb21lcGFnZSBLZXl3b3JkcyI7czo0OiJkZXNjIjtzOjU4OiJBZGQgYSAoY29tbWEgc2VwYXJhdGVkKSBsaXN0IG9mIGtleXdvcmRzIHRvIHlvdXIgaG9tZXBhZ2UuIjtzOjI6ImlkIjtzOjI4OiJzZW9fd29vX21ldGFfaG9tZV9rZXlfY3VzdG9tIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJ0ZXh0YXJlYSI7fWk6Mjg7YTo2OntzOjQ6Im5hbWUiO3M6MjU6IlNpbmdsZSBQYWdlL1Bvc3QgS2V5d29yZHMiO3M6NDoiZGVzYyI7czo3NToiQWRkIHlvdXIgcG9zdC9wYWdlIGtleXdvcmRzIGZyb20gY3VzdG9tIGZpZWxkLiA8c3Ryb25nPiogU2VlIGJlbG93PC9zdHJvbmc+IjtzOjI6ImlkIjtzOjIzOiJzZW9fd29vX21ldGFfc2luZ2xlX2tleSI7czozOiJzdGQiO3M6MToiYSI7czo3OiJvcHRpb25zIjthOjM6e3M6MToiYSI7czo1OiJPZmYgKiI7czoxOiJiIjtzOjMzOiJGcm9tIEN1c3RvbSBGaWVsZHMgYW5kL29yIFBsdWdpbnMiO3M6MToiYyI7czo0NToiQXV0b21hdGljYWxseSBmcm9tIFBvc3QgVGFncyAmYW1wOyBDYXRlZ29yaWVzIjt9czo0OiJ0eXBlIjtzOjU6InJhZGlvIjt9aToyOTthOjY6e3M6NDoibmFtZSI7czoyNToiQ3VzdG9tIFBvc3QvUGFnZSBLZXl3b3JkcyI7czo0OiJkZXNjIjtzOjIzNDoiQWRkIGEgY3VzdG9tIG1ldGEga2V5d29yZHMgdG8geW91ciBwb3N0cyBhbmQgcGFnZXMuIFRoaXMgd2lsbCBvbmx5IHNob3cgaWYgbm8gb3RoZXIgZGF0YSBpcyBhdmFpbGFibGUgZnJvbSB0aGUgc2VsZWN0aW9uIGFib3ZlLiBFdmVuIGlmIHRoZSBvcHRpb24gYWJvdmUgaXMgc2V0IHRvIDxzdHJvbmc+J09mZic8L3N0cm9uZz4sIHdpbGwgdGhpcyBrZXl3b3JkcyBzdGlsbCBiZSBhZGRlZCB0byB5b3VyIHNpdGUuIjtzOjI6ImlkIjtzOjMyOiJzZW9fd29vX21ldGFfc2luZ2xlX2tleV9zaXRld2lkZSI7czozOiJzdGQiO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjk6ImNvbGxhcHNlZCI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTozMDthOjY6e3M6NDoibmFtZSI7czoyODoiQ3VzdG9tIFBvc3QvUGFnZSBEZXNjcmlwdGlvbiI7czo0OiJkZXNjIjtzOjUxOiJBZGQgYSBjdXN0b20gbWV0YSBrZXl3b3JkcyB0byB5b3VyIHBvc3RzIGFuZCBwYWdlcy4iO3M6MjoiaWQiO3M6MzA6InNlb193b29fbWV0YV9zaW5nbGVfa2V5X2N1c3RvbSI7czozOiJzdGQiO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo0OiJ0eXBlIjtzOjg6InRleHRhcmVhIjt9fTwvbGk+PGxpPjxzdHJvbmc+d29vX3NldHRpbmdzX2N1c3RvbV9uYXZfYWR2YW5jZWRfb3B0aW9uczwvc3Ryb25nPiAtIHllczwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYWRzX2JvdHRvbTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X2Fkc190b3A8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19mZWF0dXJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3ZpZGVvPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2hlaWdodDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV93PC9zdHJvbmc+IC0gNDQwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fc3Vic2NyaWJlX2VtYWlsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fdGV4dHRpdGxlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBNYWluc3RyZWFtPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfYWxpZ248L3N0cm9uZz4gLSBhbGlnbmxlZnQ8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9oPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfc2luZ2xlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93PC9zdHJvbmc+IC0gNDQwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb190d2l0dGVyPC9zdHJvbmc+IC0gbGFvbnRhbGs8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTo3OntpOjA7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy85LTQ2OHg2MC1iYW5uZXIucG5nIjtpOjE7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LXRoYWkwMV9yZXNpemUuanBnIjtpOjI7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy83LXRoYWkwMV9yZXNpemUuanBnIjtpOjM7czo2MzoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LXdlbG92ZXRoYWkuanBnIjtpOjQ7czo1NzoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LXRoYWkucG5nIjtpOjU7czo2NToiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LWlhbV9sYW9udGFsay5qcGciO2k6NjtzOjY1OiJodHRwOi8vd3d3Lmxhb250YWxrLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtaWFtX2xhb250YWxrLmpwZyI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3VybF9zaG9ydGVuPC9zdHJvbmc+IC0gU2VsZWN0IGEgU2VydmljZTo8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb3NfY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19jYXRlZ29yeTwvc3Ryb25nPiAtIFZpZGVvczwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX3Rlcm1faWQ8L3N0cm9uZz4gLSAxMDI8L2xpPjwvdWw+