relaton 1.12.2 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +1 -19
  3. data/docs/README.adoc +18 -3
  4. data/lib/relaton/config.rb +2 -1
  5. data/lib/relaton/db.rb +75 -33
  6. data/lib/relaton/db_cache.rb +33 -72
  7. data/lib/relaton/version.rb +1 -1
  8. data/lib/relaton.rb +1 -0
  9. data/relaton.gemspec +21 -21
  10. data/spec/relaton/db_cache_spec.rb +2 -2
  11. data/spec/relaton/registry_spec.rb +1 -1
  12. data/spec/relaton_spec.rb +38 -1
  13. data/spec/spec_helper.rb +4 -0
  14. data/spec/vcr_cassetes/3gpp_tr_00_01u_umts_3_0_0.yml +17 -16
  15. data/spec/vcr_cassetes/api_relaton_org.yml +56 -0
  16. data/spec/vcr_cassetes/api_relaton_org_unavailable.yml +194 -0
  17. data/spec/vcr_cassetes/async_fetch.yml +1298 -1298
  18. data/spec/vcr_cassetes/bipm_i18n_async_fetch.yml +265 -55
  19. data/spec/vcr_cassetes/bsi_bs_en_iso_8848.yml +29 -28
  20. data/spec/vcr_cassetes/cc_dir_10005_2019.yml +22 -18
  21. data/spec/vcr_cassetes/cie_001_1980.yml +9 -10
  22. data/spec/vcr_cassetes/ecma_6.yml +10 -10
  23. data/spec/vcr_cassetes/en_10160_1999.yml +25 -25
  24. data/spec/vcr_cassetes/fisp_140.yml +6 -6
  25. data/spec/vcr_cassetes/gb_t_20223_2006.yml +79 -9
  26. data/spec/vcr_cassetes/iana_service_names_port_numbers.yml +11 -11
  27. data/spec/vcr_cassetes/iec_60050_102_2007.yml +37 -27
  28. data/spec/vcr_cassetes/iec_combined_included.yml +88 -80
  29. data/spec/vcr_cassetes/ieee_528_2019.yml +45 -2203
  30. data/spec/vcr_cassetes/iho_b_11.yml +10 -10
  31. data/spec/vcr_cassetes/iso_111111119115_1.yml +2 -2
  32. data/spec/vcr_cassetes/iso_19115_1.yml +14 -14
  33. data/spec/vcr_cassetes/iso_19115_1_2.yml +32 -32
  34. data/spec/vcr_cassetes/iso_19115_all_parts.yml +16 -16
  35. data/spec/vcr_cassetes/iso_19133_2005.yml +15 -15
  36. data/spec/vcr_cassetes/iso_combined_applied.yml +30 -30
  37. data/spec/vcr_cassetes/iso_combined_included.yml +30 -30
  38. data/spec/vcr_cassetes/iso_dis_14093.yml +14 -14
  39. data/spec/vcr_cassetes/itu_combined_included.yml +169 -169
  40. data/spec/vcr_cassetes/oasis_amqp_core_types_v1_0_pt1.yml +10 -10
  41. data/spec/vcr_cassetes/ogc_19_025r1.yml +11 -11
  42. data/spec/vcr_cassetes/omg_ami4ccm_1_0.yml +4 -4
  43. data/spec/vcr_cassetes/rfc_8341.yml +12 -15
  44. data/spec/vcr_cassetes/sp_800_38b.yml +6 -6
  45. data/spec/vcr_cassetes/threads_from_env.yml +56 -56
  46. data/spec/vcr_cassetes/un_rtade_cefact_2004_32.yml +29 -31
  47. data/spec/vcr_cassetes/w3c_json_ld11.yml +27 -38
  48. metadata +46 -44
@@ -13,15 +13,50 @@ http_interactions:
13
13
  - "*/*"
14
14
  User-Agent:
15
15
  - Ruby
16
+ response:
17
+ status:
18
+ code: 301
19
+ message: Moved Permanently
20
+ headers:
21
+ Server:
22
+ - nginx/1.23.1
23
+ Date:
24
+ - Sat, 20 Aug 2022 16:00:05 GMT
25
+ Content-Type:
26
+ - text/html
27
+ Content-Length:
28
+ - '169'
29
+ Connection:
30
+ - keep-alive
31
+ Location:
32
+ - https://openstd.samr.gov.cn/bzgk/gb/std_list?p.p2=GB/T%2020223-2006
33
+ body:
34
+ encoding: UTF-8
35
+ string: "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301
36
+ Moved Permanently</h1></center>\r\n<hr><center>nginx/1.23.1</center>\r\n</body>\r\n</html>\r\n"
37
+ recorded_at: Sat, 20 Aug 2022 16:00:22 GMT
38
+ - request:
39
+ method: get
40
+ uri: https://openstd.samr.gov.cn/bzgk/gb/std_list?p.p2=GB/T%2020223-2006
41
+ body:
42
+ encoding: US-ASCII
43
+ string: ''
44
+ headers:
45
+ Accept-Encoding:
46
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
47
+ Accept:
48
+ - "*/*"
49
+ User-Agent:
50
+ - Ruby
16
51
  response:
17
52
  status:
18
53
  code: 200
19
54
  message: ''
20
55
  headers:
21
56
  Server:
22
- - nginx/1.20.2
57
+ - nginx/1.23.1
23
58
  Date:
24
- - Thu, 30 Jun 2022 17:16:43 GMT
59
+ - Sat, 20 Aug 2022 16:00:27 GMT
25
60
  Content-Type:
26
61
  - text/html;charset=UTF-8
27
62
  Transfer-Encoding:
@@ -29,14 +64,14 @@ http_interactions:
29
64
  Connection:
30
65
  - keep-alive
31
66
  Set-Cookie:
32
- - JSESSIONID=0ABE0057B5E833C7FB0126023DE5F096; Path=/bzgk; HttpOnly
67
+ - JSESSIONID=75F287137144D551358EC191593090CB; Path=/bzgk; HttpOnly
33
68
  Content-Language:
34
69
  - zh-CN
35
70
  body:
36
71
  encoding: ASCII-8BIT
37
72
  string: !binary |-
38
73
  DQoNCg0KDQoNCg0KPCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJ6aC1DTiI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIgLz4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iL2J6Z2svZmF2aWNvbi5pY28iPg0KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvYnpnay9mYXZpY29uLmljbyI+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCINCgljb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4NCjwhLS1baWYgbHQgSUUgOV0+DQo8c2NyaXB0IHNyYz0iL2J6Z2svanMvaHRtbDUuanMiPjwvc2NyaXB0Pg0KPCFbZW5kaWZdLS0+DQo8bGluayBocmVmPSIuLi9jc3MvcWJjeC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQo8bGluayBocmVmPSIvYnpnay9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9iemdrL2pzL2pxdWVyeS0xLjExLjMubWluLmpzIj48L3NjcmlwdD4NCjx0aXRsZT7lm73lrrbmoIflh4blhajmlofpmIXor7t85qCH5YeG5qOA57SiPC90aXRsZT4NCjwvaGVhZD4NCjxzdHlsZT4NCkBtZWRpYSAoIG1heC13aWR0aCA6IDc2OHB4KSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMikgew0KCWJvZHkgew0KCQl3aWR0aDogMXB4Ow0KCQltaW4td2lkdGg6IDEwMCU7DQoJCSp3aWR0aDogMTAwJTsNCgl9DQoJI3N0YWdlIHsNCgkJb3ZlcmZsb3c6IGF1dG87DQoJCW1pbi1oZWlnaHQ6IDEwMHZoOw0KCQktd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7DQoJfQ0KfQ0KDQpib2R5IHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1Ow0KfQ0KDQouc2NyZWVuT3JkZXIgew0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KLnJlc3VsdF9saXN0IHRoIHsNCglwYWRkaW5nOiAwICFpbXBvcnRhbnQ7DQoJbGluZS1oZWlnaHQ6IDM1cHggIWltcG9ydGFudDsNCn0NCi8qLmNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7fSovDQo8L3N0eWxlPg0KPGJvZHk+DQoJDQoJDQoNCjxzdHlsZT4NCglAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpIHsNCgkgICN4c01haW5Mb2dve3dpZHRoOjkwJTt6LWluZGV4OjEwMDA7bWFyZ2luOjAgYXV0bzttYXJnaW4tdG9wOjE1cHg7ZGlzcGxheTpibG9ja30NCgkgICN4c1N1YkxvZ297ZmxvYXQ6cmlnaHQ7ei1pbmRleDoxMDAwO21hcmdpbjo1cHggNSU7fQ0KCSAgI3hzUXdMb2dve2Zsb2F0OmxlZnQ7d2lkdGg6NTAlO3otaW5kZXg6MTAwMDttYXJnaW46N3B4IDUlO30gDQoJfQ0KCUBtZWRpYSAobWluLXdpZHRoOiA1NjhweCl7DQoJICAjeHNNYWluTG9nb3tmbG9hdDpsZWZ0O3dpZHRoOjkwJTt6LWluZGV4OjEwMDA7bWFyZ2luLXRvcDoxNXB4O21hcmdpbi1sZWZ0OjYlO30NCgkgICN4c1N1YkxvZ297d2lkdGg6MzMlO3otaW5kZXg6MTAwMDttYXJnaW4tdG9wOjQwcHg7bWFyZ2luLXJpZ2h0OjElO30NCgkgICN4c1F3TG9nb3tmbG9hdDpyaWdodDt3aWR0aDo5MCU7ei1pbmRleDoxMDAwO21hcmdpbjoxNXB4IDUlO21hcmdpbi1sZWZ0OjYlO30NCgkgIC54c0Rpdnt3aWR0aDo2NSV9DQoJfSANCgkucG9wb3ZlciAucG9wb3Zlci10aXRsZXt0ZXh0LWFsaWduOmNlbnRlcjt9IA0KCSNzYWNMb2dve3RleHQtZGVjb3JhdGlvbjpub25lO3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtc2l6ZToxMnB4O3otaW5kZXg6MTAwMDt0b3A6MTBweDtsZWZ0OjIwcHg7Y29sb3I6I0U0RTRFNDtkaXNwbGF5OmlubGluZS1ibG9jazt9DQoJI3NhY0xvZ286aG92ZXJ7Y29sb3I6d2hpdGU7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fQ0KCSNzYWNMb2dvOnZpc2l0ZWR7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9DQo8L3N0eWxlPg0KPHNjcmlwdD4NCiQoZnVuY3Rpb24oKXsNCgkkKCcjbW9iaWxlRXdtJykucG9wb3Zlcih7aHRtbDp0cnVlfSk7DQp9KQ0KPC9zY3JpcHQ+IA0KPGRpdiBzdHlsZT0id2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWFnZXMvYmFubmVyYmcuanBnKTsiPg0KCQ0KCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoJCQ0KCQk8ZGl2IGNsYXNzPSJyb3cgaGlkZGVuLXhzIGhpZGRlbi1zbSIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxODBweDsiPiANCgkJCQ0KCQkJPGltZyBzcmM9Ii4uL2ltYWdlcy9tYWluLWxvZ28ucG5nIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RvcDo1MHB4O2xlZnQ6MzBweDsiLz4gIA0KCQkJPGltZyBzcmM9Ii4uL2ltYWdlcy9xd2ZiLnBuZyIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDt0b3A6MTE1cHg7bGVmdDozMHB4OyIvPiAgDQoJCQk8aW1nIHNyYz0iLi4vaW1hZ2VzL3N1Yi1sb2dvLnBuZyIgd2lkdGg9IjMwNCIgaGVpZ2h0PSI1MyIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDt0b3A6NjVweDtyaWdodDo0MHB4OyIvPiANCgkJCTxpbWcgc3JjPSIuLi9pbWFnZXMvbG9nbzQuanBnIiB3aWR0aD0iODAyIiBoZWlnaHQ9IjE4MCIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5O3RvcDowO3JpZ2h0OjA7Ii8+IA0KCQk8L2Rpdj4NCgkJPGRpdiBjbGFzcz0icm93IHZpc2libGUteHMgdmlzaWJsZS1zbSIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pbWFnZXMvbG9nbzQuanBnJykiPg0KCQkJPGRpdiBjbGFzcz0ieHNEaXYiPg0KCQkJPGltZyBpZD0ieHNNYWluTG9nbyIgc3JjPSIuLi9pbWFnZXMvbWFpbi1sb2dvLnBuZyIgc3R5bGU9IiIvPg0KCQkJPGltZyBpZD0ieHNRd0xvZ28iIHNyYz0iLi4vaW1hZ2VzL3F3ZmIucG5nIiBzdHlsZT0iIi8+IA0KCQkJPC9kaXY+DQoJCQk8aW1nIGlkPSJ4c1N1YkxvZ28iIHNyYz0iLi4vaW1hZ2VzL3N1Yi1sb2dvLnBuZyIgd2lkdGg9IjMwJSIgc3R5bGU9IiIvPiANCgkJPC9kaXY+DQoJPC9kaXY+DQo8L2Rpdj4NCg0KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1zdGF0aWMtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIiBzdHlsZT0iYmFja2dyb3VuZDojMTE1ODgzO2JvcmRlcjowO21hcmdpbi1ib3R0b206MDtwYWRkaW5nIj4gIA0KCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KPGRpdiBjbGFzcz0ibmF2YmFyLWhlYWRlciIgPg0KICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIGNvbGxhcHNlZCIgc3R5bGU9Im1hcmdpbjowO21hcmdpbi10b3A6LTJweDtwYWRkaW5nOjVweDsiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNicy1leGFtcGxlLW5hdmJhci1jb2xsYXBzZS0xIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+DQogICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgbmF2aWdhdGlvbjwvc3Bhbj4NCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGEgc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyIgY2xhc3M9Im5hdmJhci1icmFuZCAiICBocmVmPSIvYnpnay9nYi9pbmRleCIgPummliZuYnNwO+mhtTwvYT4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQ29sbGVjdCB0aGUgbmF2IGxpbmtzLCBmb3JtcywgYW5kIG90aGVyIGNvbnRlbnQgZm9yIHRvZ2dsaW5nIC0tPg0KICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSIgaWQ9ImJzLWV4YW1wbGUtbmF2YmFyLWNvbGxhcHNlLTEiPg0KICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2YmFyLW5hdiI+DQogICAgICAgIA0KICAgICAgICA8bGkgY2xhc3M9IiI+PGEgaHJlZj0iL2J6Z2svZ2Ivc3RkX2xpc3RfdHlwZT9wLnAxPTEmcC5wOTA9Y2lyY3VsYXRpb25fZGF0ZSZwLnA5MT1kZXNjIj7lvLrliLbmgKflm73lrrbmoIflh4Y8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9Ii9iemdrL2diL3N0ZF9saXN0X3R5cGU/cC5wMT0yJnAucDkwPWNpcmN1bGF0aW9uX2RhdGUmcC5wOTE9ZGVzYyI+5o6o6I2Q5oCn5Zu95a625qCH5YeGPC9hPjwvbGk+DQogICAgICAgIDxsaSBjbGFzcz0iIj48YSBocmVmPSIvYnpnay9nYi9zdGRfbGlzdF90eXBlP3AucDE9MyZwLnA5MD1jaXJjdWxhdGlvbl9kYXRlJnAucDkxPWRlc2MiPuaMh+WvvOaAp+aKgOacr+aWh+S7tjwvYT48L2xpPg0KCQkJCQ0KICAgICAgICANCiAgICAgIDwvdWw+DQogICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2IG5hdmJhci1yaWdodCI+DQogICAgICAJDQogICAgICAJDQogICAgICAJDQogICAgICAJPGxpIGNsYXNzPSJhY3RpdmUiPjxhPuagh+WHhuajgOe0oue7k+aenDwvYT48L2xpPg0KICAgICAgCTxsaSBjbGFzcz0iIj48YSBocmVmPSIvYnpnay9nYi9oZWxwIj7luK7liqk8L2E+PC9saT4NCiAgICAgIAk8bGkgY2xhc3M9IiI+PGEgaHJlZj0iL2J6Z2svZ2IvY29udGFjdCI+6IGU57O75oiR5LusPC9hPjwvbGk+DQogICAgICAJDQogICAgICA8L3VsPg0KICAgICAgPCEtLSA8Zm9ybSBjbGFzcz0ibmF2YmFyLWZvcm0gbmF2YmFyLXJpZ2h0IiByb2xlPSJzZWFyY2giIG9uc3VibWl0PSJyZXR1cm4gZmFsc2U7Ij4NCiAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNtIiBzdHlsZT0id2lkdGg6MzAwcHg7bWFyZ2luOjAgYXV0bztsaW5lLWhlaWdodDpub3JtYWw7bWFyZ2luLXRvcDo0cHg7Ij4NCgkJCQkJCQkJCTxpbnB1dCBwbGFjZWhvbGRlcj0i6K+36L6T5YWl5YWz6ZSu5a2XIiBvbmtleWRvd249ImlmKGV2ZW50LmtleUNvZGU9PTEzKSBzZWFyY2goJycsJCh0aGlzKS52YWwoKSk7IiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBhcmlhLWxhYmVsPSIuLi4iPg0KCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImlucHV0LWdyb3VwLWJ0biI+DQoJCQkJCQkJCQkJPGJ1dHRvbiBpZD0ic2VhcmNoQnRuIiBjbGFzcz0iYnRuIGJ0bi13YXJuaW5nIiB0eXBlPSJidXR0b24iID4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2VhcmNoIj48L3NwYW4+DQoJCQkJCQkJCQkJPC9idXR0b24+DQoJCQkJCQkJCQk8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KICAgICAgPC9mb3JtPiAtLT4NCiAgICA8L2Rpdj48IS0tIC8ubmF2YmFyLWNvbGxhcHNlIC0tPg0KICA8L2Rpdj48IS0tIC8uY29udGFpbmVyLWZsdWlkIC0tPg0KCTwvbmF2Pg0KCQ0KCTxkaXYgY2xhc3M9InJlcGJnMSIgaWQ9InN0YWdlIj4NCgkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCgkJCTxvbCBjbGFzcz0iYnJlYWRjcnVtYiIgc3R5bGU9Im1hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZy1ib3R0b206MDsiPg0KCQkJICA8bGk+PGEgaHJlZj0iaW5kZXgiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWhvbWUiPjwvc3Bhbj4mbmJzcDvpppbpobU8L2E+PC9saT4NCgkJCSAgPGxpPjxhIGhyZWY9ImdiTWFpblF1ZXJ5Ij7moIflh4bmo4DntKI8L2E+PC9saT4NCgkJCSAgDQoJCQkgICA8bGkgY2xhc3M9ImFjdGl2ZSI+5qOA57Si57uT5p6cPC9saT4NCgkJCTwvb2w+DQoJCQkNCgkJCSANCg0KDQo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4NCjxodG1sPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+DQo8dGl0bGU+5pCc57Si6KGo5Y2VPC90aXRsZT4NCjxzdHlsZT4NCi5pY3N0eXBlIHsNCgljdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5tdWx0aVNlbGVjdEJ0biB7DQoJcGFkZGluZzogMCA1cHggIWltcG9ydGFudDsNCgl3aGl0ZS1zcGFjZTpub3dyYXA7DQogCW1hcmdpbi1yaWdodDoxMHB4Ow0KfQ0KDQouaWNzU2VsZWN0QnRuIHsNCgltYXJnaW46NXB4IDIwcHggNXB4IDA7DQoJd2lkdGg6aW5pdGlhbCAhaW1wb3J0YW50Ow0KfQ0KLm11bHRpU2VsZWN0QnRuOmhvdmVyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KfQ0KDQoubXVsdGlTZWxlY3RCdG4tcyB7DQoJYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzsNCglib3JkZXItY29sb3I6ICNkZGRkZGQ7DQoJY29sb3I6ICNlNDM5M2M7DQp9DQoubUNoZWNrew0KCXZlcnRpY2FsLWFsaWduOnRvcDsNCgltYXJnaW4tcmlnaHQ6NXB4ICFpbXBvcnRhbnQ7Ow0KfQ0KLmMtcmVkIHsNCgljb2xvcjogcmVkOw0KfQ0KDQoubS0xMCB7DQoJbWFyZ2luOjVweCAwOw0KfQ0KDQojaWNzIGE6SE9WRVIgew0KCWJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KDQouaWNzbGlzdDE6SE9WRVIgew0KCWJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCi5uYXYtdGFicyAuYmFkZ2V7DQoJZm9udC1zaXplOjc1JTsNCgliYWNrZ3JvdW5kLWNvbG9yOiNhYWE7DQoJcGFkZGluZzoycHggNXB4Ow0KCXZlcnRpY2FsLWFsaWduOnN1YjsNCgltYXJnaW4tbGVmdDoycHg7DQp9DQoubW9kYWwgLnN0YXRlbWVudFVsIGxpe2JhY2tncm91bmQ6dXJsKCcuLi9pbWFnZXMvcG9pbnQucG5nJykgbm8tcmVwZWF0IDhweCA2cHg7fQ0KLm1vZGFsIC5zbWdnIGxpe3BhZGRpbmc6MCAyMnB4O21hcmdpbjoxNXB4IDA7bGluZS1oZWlnaHQ6MjVweDt9DQojdHlwZSBsaXtmbG9hdDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO30NCjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keT4NCjxkaXYgY2xhc3M9InJvdyIgaWQ9InRvcFBhbmVsIiA+DQo8ZGl2IGNsYXNzPSJjb2wteHMtMTIiPg0KDQoNCjxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjA7Ij4NCjxkaXYgY2xhc3M9InBhbmVsLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNGQkZCRkIiPg0KDQo8c3BhbiBjbGFzcz0idGV4dC1kYW5nZXIgdmlzaWJsZS14cyIgc3R5bGU9ImZvbnQtc2l6ZToxMHB4O21hcmdpbi1ib3R0b206NXB4Ij4q5qCH5YeG57G75Yir5Y+v5bem5Y+z5ruR5YqoPC9zcGFuPg0KDQo8dWwgaWQ9InR5cGUiIGNsYXNzPSJuYXYgbmF2LXRhYnMiIHJvbGU9InRhYmxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLWxlZnQ6MHB4O3doaXRlLXNwYWNlOm5vd3JhcDtoZWlnaHQ6NDFweDtib3JkZXItYm90dG9tOjA7Ij4NCgkNCgk8bGkgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iYWN0aXZlIj48YSBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7IiBocmVmPSIjIiBpZD0iMCI+PHNwYW4+5YWo6YOoPHNwYW4gY2xhc3M9ImJhZGdlIj4xPC9zcGFuPjwvc3Bhbj48L2E+PC9saT4NCgkNCgk8bGkgcm9sZT0icHJlc2VudGF0aW9uIj48YSBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7IiBocmVmPSIjIiBpZD0iMiI+PHNwYW4+5o6o6I2Q5oCn5Zu95a625qCH5YeGPHNwYW4gY2xhc3M9ImJhZGdlIj4xPC9zcGFuPjwvc3Bhbj48L2E+PC9saT4NCgkNCjwvdWw+DQoNCjxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiIHN0eWxlPSJtYXJnaW4tdG9wOi0ycHg7bWFyZ2luLWJvdHRvbTowOyI+IA0KCQk8ZGl2IGlkPSJ0alBhbmVsIiBjbGFzcz0icGFuZWwtYm9keSI+DQoJCQk8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciIgc3R5bGU9Im1hcmdpbjowO2NvbG9yOmdyYXk7Ij4NCgkJICAJCTxoNT48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi16b29tLWluIj48L3NwYW4+Jm5ic3A7562b6YCJ5p2h5Lu2PC9oNT4NCgkJCTwvZGl2Pg0KCQkJDQoJCQkNCgkJCTxkaXYgY2xhc3M9InJvdyBtLTEwIiBzdHlsZT0iYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUVFRUU7IHBhZGRpbmctYm90dG9tOiA1cHg7Ij4NCgkJCQk8ZGl2IGNsYXNzPSJjb2wtbGctMTIgY29sLW1kLTEyIGNvbC1zbS0xMiBjb2wteHMtMTIiPg0KCQkJCQk8dGFibGUgc3R5bGU9IndpZHRoOjEwMCUiPg0KCQkJCQkJPHRyPg0KCQkJCQkJCTx0ZCB3aWR0aD0iODAiIHN0eWxlPSJsaW5lLWhlaWdodDogMzBweDsgdmVydGljYWwtYWxpZ246IHRvcDsiPg0KCQkJCQkJCQk8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij7moIflh4bnirbmgIHvvJo8L3NwYW4+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCQk8dGQ+DQoJCQkJCQkJCTx1bCBjbGFzcz0ibmF2IG5hdi1waWxscyIgaWQ9InN0YXRlIj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PGEgY2xhc3M9ImJ0biBtdWx0aVNlbGVjdEJ0biIgaHJlZj0iIyIgaWQ9IlJFUExBQ0VEIj48c3Bhbj7ooqvku6Pmm78oMSk8L2E+PC9zcGFuPjwvbGk+DQoJCQkJCQkJCQkNCgkJCQkJCQkJPC91bD4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBjbGFzcz0iaGlkZGVuLXhzIiB3aWR0aD0iOTAiIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0OyI+DQoJCQkJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBzdHlsZT0icGFkZGluZzogMCAzcHg7IG1hcmdpbi1sZWZ0OiA1cHg7IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IG11bHRpU2VsZWN0Ij48c3BhbiBzdHlsZT0iY29sb3I6Z3JheSIgY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tY2hlY2siPjwvc3Bhbj4mbmJzcDvlpJrpgIk8L2J1dHRvbj4NCgkJCQkJCQkJPGRpdiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQoJCQkJCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgc3R5bGU9InBhZGRpbmc6IDAgM3B4OyBtYXJnaW4tbGVmdDogNXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBjb25maXJtU2VsZWN0Ij7noa7orqQ8L2J1dHRvbj4NCgkJCQkJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBzdHlsZT0icGFkZGluZzogMCAzcHg7IG1hcmdpbi1sZWZ0OiA1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGNhbmNlbFNlbGVjdCI+5Y+W5raIPC9idXR0b24+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTwvdGQ+DQoJCQkJCQk8L3RyPg0KCQkJCQk8L3RhYmxlPg0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQkNCgkJCQ0KCQkJPGRpdiBjbGFzcz0icm93IG0tMTAiIHN0eWxlPSJib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRUVFRTsgcGFkZGluZy1ib3R0b206IDVweDsiPg0KCQkJCTxkaXYgY2xhc3M9ImNvbC1sZy0xMiBjb2wtbWQtMTIgY29sLXNtLTEyIGNvbC14cy0xMiI+DQoJCQkJCTx0YWJsZSBzdHlsZT0id2lkdGg6MTAwJSI+DQoJCQkJCQk8dHI+DQoJCQkJCQkJPHRkIHdpZHRoPSI4MCIgc3R5bGU9ImxpbmUtaGVpZ2h0OiAzMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+DQoJCQkJCQkJCTxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPuWPkeW4g+aXpeacn++8mjwvc3Bhbj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZD4NCgkJCQkJCQkJPHVsIGNsYXNzPSJuYXYgbmF2LXBpbGxzIiBpZD0iZGF0ZSI+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCTxsaSByb2xlPSJwcmVzZW50YXRpb24iPjxhIGNsYXNzPSJidG4gbXVsdGlTZWxlY3RCdG4iIGhyZWY9IiMiIGlkPSI2Ij48c3Bhbj7kuInlubTku6XkuIooMSk8L3NwYW4+PC9hPjwvbGk+DQoJCQkJCQkJCQkNCgkJCQkJCQkJPC91bD4NCgkJCQkJCQk8L3RkPgkNCgkJCQkJCTwvdHI+DQoJCQkJCTwvdGFibGU+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJCQ0KCQkJDQoJCQkgDQoJCQk8ZGl2IGNsYXNzPSJyb3cgbS0xMCIgc3R5bGU9InBhZGRpbmctYm90dG9tOiA1cHg7IiBpZD0iaWNzLWRpdiI+DQoJCQkJPGRpdiBjbGFzcz0iY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTIgY29sLXhzLTEyICI+DQoJCQkJCTx0YWJsZSBzdHlsZT0id2lkdGg6MTAwJSI+DQoJCQkJCQk8dHI+DQoJCQkJCQkJPHRkIHdpZHRoPSI4MCIgc3R5bGU9ImxpbmUtaGVpZ2h0OiAzMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+DQoJCQkJCQkJCTxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPklDUyZuYnNwO+WIhuexu++8mjwvc3Bhbj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZD4NCgkJCQkJCQkJPHVsIGNsYXNzPSJuYXYgbmF2LXBpbGxzIGhpZGRlbi14cyIgaWQ9Imljcy12aWV3Ij4NCgkJCQkJCQkJCTwhLS0gPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PGEgY2xhc3M9ImJ0biBtdWx0aVNlbGVjdEJ0biIgaWQ9IiI+5YWo6YOoPC9hPjwvbGk+IC0tPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkNCgkJCQkJCQkJCQk8bGkgcm9sZT0icHJlc2VudGF0aW9uIj4NCgkJCQkJCQkJCQkJPGEgY2xhc3M9ImJ0biBtdWx0aVNlbGVjdEJ0biBpY3NTZWxlY3RCdG4iIGlkPSI1OSI+NTlf57q657uH5ZKM55qu6Z2p5oqA5pyvKDEpPC9hPg0KCQkJCQkJCQkJCTwvbGk+DQoJCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJPC91bD4NCgkJCQkJCQkJPGJ1dHRvbiBjbGFzcz0idmlzaWJsZS14cyIgdHlwZT0iYnV0dG9uIiBzdHlsZT0icGFkZGluZzogMCAzcHg7IG1hcmdpbi1sZWZ0OiA1cHg7IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBkYXRhLXRvZ2dsZT0ibW9kYWwiIGRhdGEtdGFyZ2V0PSIjbXlNb2RhbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmdyYXk7dmVydGljYWwtYWxpZ246dGV4dC10b3A7IiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1wbHVzLXNpZ24iPjwvc3Bhbj4mbmJzcDvmm7TlpJo8L2J1dHRvbj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBjbGFzcz0iaGlkZGVuLXhzIiB3aWR0aD0iNDAiPg0KCQkJCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgc3R5bGU9InBhZGRpbmc6IDAgM3B4OyBtYXJnaW4tbGVmdDogNXB4OyIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgZGF0YS10b2dnbGU9Im1vZGFsIiBkYXRhLXRhcmdldD0iI215TW9kYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpncmF5O3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wOyIgY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcGx1cy1zaWduIj48L3NwYW4+Jm5ic3A75pu05aSaPC9idXR0b24+DQoJCQkJCQkJPC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCTwvdGFibGU+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9Im1vZGFsIGZhZGUiIGlkPSJteU1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0ibXlNb2RhbExhYmVsIj4NCgkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1kaWFsb2ciPg0KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1jb250ZW50Ij4NCgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9InBhZGRpbmc6IDE1cHggMzVweCA1cHggMzVweDsiPg0KCQkJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiDQoJCQkJCQkJCWFyaWEtbGFiZWw9IkNsb3NlIj4NCgkJCQkJCQkJPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+DQoJCQkJCQkJPC9idXR0b24+DQoJCQkJCQkJPGg0IGNsYXNzPSJtb2RhbC10aXRsZSIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7Ij4NCgkJCQkJCQkJ6YCJ5oupSUNT5YiG57G7KOWPr+WkjemAiSk8c21hbGw+Jm5ic3A7Jm5ic3A754K55Ye75bem5L6n6buE6Imy5paH5Lu25aS55Y+v5bGV5byA5LiL5LiA57qnPC9zbWFsbD4NCgkJCQkJCQk8L2g0Pg0KCQkJCQkJCTxvbCBjbGFzcz0iYnJlYWRjcnVtYiINCgkJCQkJCQkJc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLWxlZnQ6IDA7Ig0KCQkJCQkJCQlpZD0ibGluZSI+DQoJCQkJCQkJCTxsaT48YSBocmVmPSIjIj7lhajpg6g8L2E+PC9saT4NCgkJCQkJCQk8L29sPg0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQiPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwOyI+DQoJCQkJCQkJCQkNCgkJDQoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLW1kLTYiPg0KCQkJCQkJCQkJCQk8YSBjbGFzcz0iYnRuIG11bHRpU2VsZWN0QnRuIGljc2xpc3QxIg0KCQkJCQkJCQkJCQkJc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOiA1cHg7Ij4NCgkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1mb2xkZXItb3BlbiBpY3N0eXBlIg0KCQkJCQkJCQkJCQkJCQlzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMCU7IGNvbG9yOiAjZjhkYTcwOyINCgkJCQkJCQkJCQkJCQkJaWQ9IjU5IiBuYW1lPSLnurrnu4flkoznmq7pnanmioDmnK8iPjwvc3Bhbj4NCgkJCQkJCQkJCQkJCSA8c3BhbiBjbGFzcz0iaWNzbGlzdCIgaWQ9IjU5Ig0KCQkJCQkJCQkJCQkJc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogODAlOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyINCgkJCQkJCQkJCQkJCW5hbWU9Iue6uue7h+WSjOearumdqeaKgOacryI+IDU5X+e6uue7h+WSjOearumdqeaKgOacryDvvIg8c3Bhbj4xPC9zcGFuPu+8iQ0KCQkJCQkJCQkJCQk8L3NwYW4+PHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0O21hcmdpbjoycHg7IiBjbGFzcz0idGV4dC1zdWNjZXNzIGdseXBoaWNvbiBnbHlwaGljb24tb2stY2lyY2xlIGhpZGRlbiI+PC9zcGFuPg0KCQkJCQkJCQkJCQk8L2E+DQoJCQ0KCQkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCTwvZGl2Pg0KCQkNCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4NCgkJCQkJCQk8c3Bhbg0KCQkJCQkJCQlzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgd2lkdGg6IDM5MHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyINCgkJCQkJCQkJaWQ9InNob3dpY3MiPjwvc3Bhbj4NCgkJCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgZGF0YS1kaXNtaXNzPSJtb2RhbCINCgkJCQkJCQkJaWQ9ImNhbmNlbCI+5Y+W5raIPC9idXR0b24+DQoJCQkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIGlkPSJjb25maXJtIg0KCQkJCQkJCQlkYXRhLWRpc21pc3M9Im1vZGFsIj7noa7orqQ8L2J1dHRvbj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJDQoJCQkNCgkJPC9kaXY+DQoJPC9kaXY+DQoJDQoJDQoJPGRpdiBjbGFzcz0icm93IiBzdHlsZT0icGFkZGluZzowIDE1cHg7bWFyZ2luLXRvcDoxNXB4OyI+DQoJCTxkaXYgY2xhc3M9ImNvbC1sZy0xMCBjb2wtbWQtMTAgY29sLXNtLTEwIGNvbC14cy0xMCAiPg0KCQkJPGRpdj4NCgkJCQk8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMDsiIGlkPSJzZWxlY3RlZCI+DQoJCQkJCTxsYWJlbCBzdHlsZT0iY29sb3I6IGdyYXk7IHdpZHRoOiA5M3B4OyI+PHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOnRleHQtdG9wOyIgY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2NyZWVuc2hvdCI+PC9zcGFuPiZuYnNwO+WFs+mUruWtl++8mjwvbGFiZWw+Jm5ic3A7DQoJCQkJCQ0KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4teHMiIHRpdGxlPSLnp7vpmaQiIGlkPSJwMl8wIiBpbmRleD0wPg0KCQkJCQkJR0IvVCAyMDIyMy0yMDA2Jm5ic3A7DQoJCQkJCQk8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCIgY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcmVtb3ZlIj48L3NwYW4+DQoJCQkJCTwvYnV0dG9uPg0KCQkJCQkNCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgkJCQkJCSANCjwvZGl2Pg0KPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9Im5vU3RhbmRhcmRNb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9Im15TW9kYWxMYWJlbCI+DQoJCTxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyI+DQoJCQk8ZGl2IGNsYXNzPSJtb2RhbC1jb250ZW50Ij4NCgkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiIHN0eWxlPSJwYWRkaW5nOiAxNXB4IDM1cHggNXB4IDM1cHg7Ij4NCgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCINCgkJCQkJCWFyaWEtbGFiZWw9IkNsb3NlIj4NCgkJCQkJCTxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4mdGltZXM7PC9zcGFuPg0KCQkJCQk8L2J1dHRvbj4NCgkJCQkJPGg0IGNsYXNzPSJtb2RhbC10aXRsZSIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7Ij4NCgkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiIgc3R5bGU9ImNvbG9yOiNiZTg2NWI7bWFyZ2luLXRvcDoycHg7Ij4gPC9zcGFuPjxzcGFuPiZuYnNwO+eJueWIq+WjsOaYjjwvc3Bhbj4NCgkJCQkJPC9oND4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCgkJCQkJPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4NCgkJCQkJCTxkaXYgY2xhc3M9InJvdyIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDA7Ij4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJjb2wtbWQtMTIgc21nZyI+DQoJCQkJCQkJCTx1bCBjbGFzcz0ic3RhdGVtZW50VWwgIj4NCgkJCQkJCQkJCTxsaT7mnKzns7vnu5/lr7nlm73lrrbluILlnLrnm5HnnaPnrqHnkIbmgLvlsYDjgIHlm73lrrbmoIflh4blp5Toh6oyMDE35bm0MeaciDHml6XlkI7mlrDlj5HluIPnmoTlm73lrrbmoIflh4bvvIzlsIblnKjjgIrlm73lrrbmoIflh4bmibnlh4blj5HluIPlhazlkYrjgIvlj5HluIPlkI4yMOS4quW3peS9nOaXpeWGheWFrOW8gOagh+WHhuaWh+acrO+8jOWFtuS4rea2ieWPiumHh+agh+eahOaOqOiNkOaAp+WbveWutuagh+WHhueahOWFrOW8gO+8jOWwhuWcqOmBteWuiOWbvemZheeJiOadg+aUv+etluWJjeaPkOS4i+i/m+ihjOOAgjwvbGk+DQoJCQkJCQkJCQk8bGk+5pys57O757uf5YWs5byA5LqG5Zu95a625biC5Zy655uR552j566h55CG5oC75bGA44CB5Zu95a625qCH5YeG5aeUMjAxN+W5tDHmnIgx5pel5YmN5bey5om55YeG5Y+R5biD55qE5omA5pyJ5by65Yi25oCn5Zu95a625qCH5YeG44CB5o6o6I2Q5oCn5Zu95a625qCH5YeG77yI6Z2e6YeH5qCH77yJ44CB5oyH5a+85oCn5oqA5pyv5paH5Lu244CCPC9saT4NCgkJCQkJCQkJCTxsaT7mnKzns7vnu5/miYDmj5DkvpvnmoTnlLXlrZDmlofmnKzku4Xkvpvlj4LogIPvvIzor7fku6XmraPlvI/moIflh4blh7rniYjniankuLrlh4bjgII8L2xpPg0KCQkJCQkJCQkJPGxpPuacrOezu+e7n+aJgOaPkOS+m+eahOeUteWtkOaWh+acrOS7heS+m+S4quS6uuWtpuS5oOOAgeeglOeptuS5i+eUqO+8jOacque7j+aOiOadg++8jOemgeatouWkjeWItuOAgeWPkeihjOOAgeaxh+e8luOAgee/u+ivkeaIlue9kee7nOS8oOaSreetie+8jOS+teadg+W/heeptuOAgjwvbGk+DQoJCQkJCQkJCQk8bGk+6aOf5ZOB5a6J5YWo44CB546v5aKD5L+d5oqk44CB5bel56iL5bu66K6+5pa56Z2i55qE5Zu95a625qCH5YeG5pyq57qz5YWl5pys57O757uf77yM6K+35ZKo6K+i55u45YWz6YOo5aeU44CCPC9saT4NCgkJCQkJCQkJPC91bD4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KCQkJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBkYXRhLWRpc21pc3M9Im1vZGFsIg0KCQkJCQkJCQlpZD0iY2FuY2VsIj7noa7orqQ8L2J1dHRvbj4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2PjwvZGl2PjwvZGl2Pg0KPC9ib2R5Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCXZhciBsaW5lTGlzdCA9IG5ldyBBcnJheSgpOw0KDQoJCXZhciBwMSA9ICcwJzsNCgkJdmFyIHAyID0gJ0dCL1QgMjAyMjMtMjAwNic7DQoJCXZhciBwNSA9ICcnOw0KCQl2YXIgcDYgPSAnJzsNCgkJdmFyIHA3ID0gJyc7DQoJCXZhciBwOCA9ICcnOw0KCQl2YXIgcDkwID0gJyc7DQoJCXZhciBwOTEgPSAnJzsNCgkJdmFyIG5leHRwYWdlID0gMTsNCgkJdmFyIGFjdGlvbiA9ICdnYi9zdGRfbGlzdCc7DQoJCXZhciBwYWdlU2l6ZSA9IDEwOw0KCQl2YXIgY291bnQgPSAxOw0KCQlmdW5jdGlvbiBqdW1wUGFnZShwYWdlKXsNCgkJCQ0KCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL2J6Z2svJythY3Rpb24NCgkJCQkJKyAnP3I9JyArIE1hdGgucmFuZG9tKCkNCgkJCQkJKyAocGFnZSA/ICgnJnBhZ2U9JyArIHBhZ2UgKyAiJnBhZ2VTaXplPSIgKyBwYWdlU2l6ZSk6JycpDQoJCQkJCSsgKHAxID8gKCcmcC5wMT0nICsgcDEpIDogJycpDQoJCQkJCSsgKHAyID8gKCcmcC5wMj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHAyKSk6ICcnKSANCgkJCQkJKyAocDUgPyAoJyZwLnA1PScgKyBwNSkgOiAnJykNCgkJCQkJKyAocDYgPyAoJyZwLnA2PScgKyBwNikgOiAnJykNCgkJCQkJKyAocDcgPyAoJyZwLnA3PScgKyBwNykgOiAnJykNCgkJCQkJKyAocDggPyAoJyZwLnA4PScgKyBwOCkgOiAnJykNCgkJCQkJKyAocDkwID8gKCcmcC5wOTA9JyArIHA5MCkgOiAnJykNCgkJCQkJKyAocDkxID8gKCcmcC5wOTE9JyArIHA5MSkgOiAnJyk7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIHNob3dDb250ZW50KG8pIHsNCgkJCWlmIChvLmNydFRpdGxlID09IHVuZGVmaW5lZCkgew0KCQkJCW8uY3J0VGl0bGUgPSAndHJ1ZSc7DQoJCQkJby50aXRsZSA9IG8uc2Nyb2xsV2lkdGggPiBvLmNsaWVudFdpZHRoID8gby5pbm5lckhUTUwgOiAiIjsNCgkJCX0NCgkJfQ0KCQlmdW5jdGlvbiBzaG93SW5mbyhoY25vKSB7DQoJCQl2YXIgdXJsID0gIm5ld0diSW5mbyI7DQoJCQl1cmwgKz0gIj9oY25vPSIgKyBoY25vOw0KCQkJd2luZG93Lm9wZW4odXJsKTsNCgkJfTsNCgkJZnVuY3Rpb24gc2VhcmNoKCkgew0KCQkJaWYgKHAyICE9IG51bGwgJiYgcDIgIT0gJycpDQoJCQkJcDIgPSBwMiArICcrJyArICQoImlucHV0W25hbWU9J3NlYXJjaDEnXSIpLnZhbCgpOw0KCQkJZWxzZQ0KCQkJCXAyID0gJCgiaW5wdXRbbmFtZT0nc2VhcmNoMSddIikudmFsKCk7DQoJCQlqdW1wUGFnZSgpOw0KCQl9DQoJCSQoZnVuY3Rpb24oKSB7DQoJCQkkKCcucGFnZU51bVNlbGVjdCcpLnZhbChwYWdlU2l6ZSk7DQoJCQkkKCcucGFnZU51bVNlbGVjdCcpLmNoYW5nZShmdW5jdGlvbigpew0KCQkJCXBhZ2VTaXplID0gJCh0aGlzKS52YWwoKTsNCgkJCQlqdW1wUGFnZShuZXh0cGFnZSk7DQoJCQl9KTsNCgkJCWlmIChjb3VudCAhPSBudWxsICYmIGNvdW50ID4gMCkgew0KCQkJCS8v5YiG6aG1DQoJCQkJbGF5cGFnZSh7DQoJCQkJCWNvbnQgOiAkKCIjcGFnZW5hdjIiKSwNCgkJCQkJcGFnZXMgOiAiMSIsIC8v5Y+v5Lul5Y+r5pyN5Yqh56uv5oqK5oC76aG15pWw5pS+5Zyo5p+Q5LiA5Liq6ZqQ6JeP5Z+f77yM5YaN6I635Y+W44CC5YGH6K6+5oiR5Lus6I635Y+W5Yiw55qE5pivMTgNCgkJCQkJY3VyciA6IGZ1bmN0aW9uKCkgeyAvL+mAmui/h3VybOiOt+WPluW9k+WJjemhte+8jOS5n+WPr+S7peWQjOS4iu+8iHBhZ2Vz77yJ5pa55byP6I635Y+WDQoJCQkJCQl2YXIgcGFnZSA9IGxvY2F0aW9uLnNlYXJjaC5tYXRjaCgvcGFnZT0oXGQrKS8pOw0KCQkJCQkJcmV0dXJuIHBhZ2UgPyBwYWdlWzFdIDogMTsNCgkJCQkJfSgpLA0KCQkJCQlza2luIDogJyMzMzdhYjcnLA0KCQkJCQlwcmV2IDogJzxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW1lbnUtbGVmdCIgc3R5bGU9InBhZGRpbmc6MCI+IDwvc3Bhbj4nLA0KCQkJCQluZXh0IDogJzxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW1lbnUtcmlnaHQiIHN0eWxlPSJwYWRkaW5nOjAiPiA8L3NwYW4+JywNCgkJCQkJc2tpcCA6IGZhbHNlLA0KCQkJCQlqdW1wIDogZnVuY3Rpb24oZSwgZmlyc3QpIHsgLy/op6blj5HliIbpobXlkI7nmoTlm57osIMNCgkJCQkJCWlmICghZmlyc3QpIHsgLy/kuIDlrpropoHliqDmraTliKTmlq3vvIzlkKbliJnliJ3lp4vml7bkvJrml6DpmZDliLfmlrANCgkJCQkJCQlqdW1wUGFnZShlLmN1cnIpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfSk7DQoNCgkJCX0NCgkJCS8v5qCH5YeG57G75YirDQoJCQkkKCIjdHlwZSBsaSBhIikub24oDQoJCQkJCSJjbGljayIsDQoJCQkJCWZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJCQl2YXIgdHlwZSA9ICQudHJpbSgkKHRoaXMpLmF0dHIoImlkIikpOw0KCQkJCQkJaWYgKHR5cGUgIT0gMCkgew0KCQkJCQkJCWlmICh0eXBlID09IDEpIHsNCgkJCQkJCQkJJCgiI1JFVklTRUQiKS5wYXJlbnQoImxpIikuaGlkZSgpOw0KCQkJCQkJCQlwMSA9IDE7DQoJCQkJCQkJfQ0KCQkJCQkJCWlmICh0eXBlID09IDIpIHsNCgkJCQkJCQkJJCgiI1JFVklTRUQiKS5wYXJlbnQoImxpIikuaGlkZSgpOw0KCQkJCQkJCQkkKCIjUkVQTEFDRUQiKS5wYXJlbnQoImxpIikuaGlkZSgpOw0KCQkJCQkJCQkvLyQoIiNpY3MtZGl2IikuaGlkZSgpOyANCgkJCQkJCQkJcDEgPSAyOw0KCQkJCQkJCX0NCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJcDEgPSAwOw0KCQkJCQkJfQ0KCQkJCQkJanVtcFBhZ2UoKTsNCg0KCQkJCQl9KTsNCgkJCS8v5YWs5ZGK5Y+3DQoJCQkkKCIjYW5vdW5jZW1lbnQgbGkgYSIpLm9uKA0KCQkJCQkiY2xpY2siLA0KCQkJCQlmdW5jdGlvbihldmVudCkgew0KCQkJCQkJcDggPSAkLnRyaW0oJCh0aGlzKS5hdHRyKCJpZCIpKTsNCgkJCQkJCXZhciByZWc9L1tcdTRFMDAtXHU5RkE1XS9nOw0KCQkJCQkJdmFyIHJlc3VsdD1wOC5yZXBsYWNlKHJlZywnJyk7DQoJCQkJCQlpZihyZXN1bHQubGVuZ3RoPT01KXsNCgkJCQkJCQlyZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsNCkrJzAnK3Jlc3VsdC5zdWJzdHJpbmcoNCw1KTsNCgkJCQkJCX0NCgkJCQkJCXdpbmRvdy5vcGVuKCJodHRwOi8vd3d3LnNhYy5nb3YuY24vZ3pmdy9nZ2N4L2dqYnpnZy8iK3Jlc3VsdCwiX2JsYW5rIik7DQoJCQkJCQkNCgkJCQkJfSk7DQoJCQkvL+agh+WHhueKtuaAgQ0KCQkJJCgiI3N0YXRlIGxpIGEiKS5vbigNCgkJCQkJImNsaWNrIiwNCgkJCQkJZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJCWlmKCQodGhpcykuZmluZCgnLm1DaGVjaycpLmxlbmd0aD4wKXsNCgkJCQkJCQkkKHRoaXMpLmZpbmQoJy5tQ2hlY2snKS5wcm9wKHtjaGVja2VkOiEkKHRoaXMpLmZpbmQoJy5tQ2hlY2snKS5wcm9wKCdjaGVja2VkJyl9KTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJdmFyIHN0YXRlID0gJC50cmltKCQodGhpcykuYXR0cigiaWQiKSk7DQoJCQkJCQkJaWYgKHN0YXRlICE9ICdBTEwnKSB7DQoJCQkJCQkJCXA1ID0gc3RhdGU7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJcDUgPSAnJzsNCgkJCQkJCQl9DQoJCQkJCQkJanVtcFBhZ2UoKTsNCgkJCQkJCX0NCgkJCQkJfSk7DQoJCQkvL+WPkeW4g+aXpeacnw0KCQkJJCgiI2RhdGUgbGkgYSIpLm9uKA0KCQkJCQkiY2xpY2siLA0KCQkJCQlmdW5jdGlvbihldmVudCkgew0KCQkJCQkJcDcgPSAkLnRyaW0oJCh0aGlzKS5hdHRyKCJpZCIpKTsNCgkJCQkJCWp1bXBQYWdlKCk7DQoJCQkJCX0pOw0KCQkJJCgiI2ljcy12aWV3IGxpIGEiKS5vbigNCgkJCQkJImNsaWNrIiwNCgkJCQkJZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJCXA2ID0gJC50cmltKCQodGhpcykudGV4dCgpID09ICflhajpg6gnID8gIiIgOiAkKHRoaXMpLmF0dHIoJ2lkJykpOw0KCQkJCQkJanVtcFBhZ2UoKTsNCgkJCQkJfSk7DQoJCQkkKCIjc2VsZWN0ZWQgYnV0dG9uIikub24oIA0KCQkJCQkiY2xpY2siLA0KCQkJCQlmdW5jdGlvbihldmVudCkgew0KCQkJCQkJaWYgKCQodGhpcykuYXR0cigiaWQiKS5pbmRleE9mKCdwMl8nKSAhPSAtMSkgew0KCQkJCQkJCXZhciBpbmRleCA9ICQudHJpbSgkKHRoaXMpLmF0dHIoImluZGV4IikpOw0KCQkJCQkJCXZhciBuZXdQMnMgPSBwMi5zcGxpdCgnKycpOw0KCQkJCQkJCW5ld1AycyA9IG5ld1Aycy51bmlxdWUoKTsNCgkJCQkJCQluZXdQMnMuc3BsaWNlKGluZGV4LCAxKTsNCgkJCQkJCQl2YXIgdGVtcCA9ICcnOw0KCQkJCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgbmV3UDJzLmxlbmd0aDsgaSsrKSB7DQoJCQkJCQkJCWlmIChpIDwgbmV3UDJzLmxlbmd0aCAtIDEpDQoJCQkJCQkJCQl0ZW1wID0gdGVtcCArIG5ld1Ayc1tpXSArICcrJzsNCgkJCQkJCQkJZWxzZQ0KCQkJCQkJCQkJdGVtcCA9IHRlbXAgKyBuZXdQMnNbaV07DQoJCQkJCQkJfQ0KCQkJCQkJCXAyID0gdGVtcDsNCgkJCQkJCQlqdW1wUGFnZSgpOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQl2YXIgY29kZSA9ICQudHJpbSgkKHRoaXMpLmF0dHIoImlkIikpOw0KCQkJCQkJCXZhciB1cmwgPSBsb2NhdGlvbi5ocmVmOw0KCQkJCQkJCXVybCA9IHVybC5yZXBsYWNlKGNvZGUsICcnKTsNCgkJCQkJCQl3aW5kb3cub3Blbih1cmwsICdfc2VsZicpOw0KCQkJCQkJfQ0KDQoJCQkJCX0pOw0KCQkJLy/mkJzntKLmoYYNCgkJCSQoIiNzZWFyY2gxIikub24oImNsaWNrIiwgZnVuY3Rpb24oKSB7DQoJCQkJc2VhcmNoKCk7DQoJCQl9KTsNCg0KCQkJLy/mjpLluo8g5LqL5Lu2DQoJCQkkKCIuc2NyZWVuT3JkZXIiKS5vbigNCgkJCQkJJ2NsaWNrJywNCgkJCQkJZnVuY3Rpb24oKSB7DQoJCQkJCQl2YXIgZWwgPSAkKHRoaXMpOw0KCQkJCQkJaWYoZWwuYXR0cignc29ydG5hbWUnKT09Jycpew0KCQkJCQkJCWVsLmF0dHIoJ3NvcnRuYW1lJywnZGVzYycpOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQllbC5hdHRyKCdzb3J0bmFtZScpID09ICdhc2MnID8gZWwuYXR0cignc29ydG5hbWUnLA0KCQkJCQkJCSdkZXNjJykgOiBlbC5hdHRyKCdzb3J0bmFtZScsICdhc2MnKTsNCgkJCQkJCX0NCgkJCQkJCXA5MCA9IGVsLmF0dHIoJ3NvcnRjb2wnKTsNCgkJCQkJCXA5MSA9IGVsLmF0dHIoJ3NvcnRuYW1lJyk7DQoJCQkJCQlqdW1wUGFnZSgpOw0KCQkJCQl9KTsNCg0KCQkJZnVuY3Rpb24gc3MoKSB7DQoJCQkJdmFyIHN0ciA9ICQudHJpbSgkKHRoaXMpLmF0dHIoImlkIikpOw0KCQkJCXZhciBuYW1lID0gJC50cmltKCQodGhpcykuYXR0cigibmFtZSIpKTsNCgkJCQlpZihzdHIhPSctMScpew0KCQkJCQkkKCIjc2hvd2ljcyIpLmh0bWwoIuW3sumAieaLqWljc+WIhuexu++8miAiICtzdHIrJ18nK25hbWUpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSQoIiNzaG93aWNzIikuaHRtbCgnJyk7DQoJCQkJfQ0KCQkJCQ0KCQkJCSQuYWpheCh7DQoJCQkJCQkJdHlwZSA6ICJwb3N0IiwNCgkJCQkJCQl1cmwgOiAnL2J6Z2svJyArICdnYi9hamF4SWNzTGlzdCcsDQoJCQkJCQkJZGF0YSA6IHsNCgkJCQkJCQkJInBjb2RlIiA6IHN0ciwNCgkJCQkJCQkJInAucDEiIDogcDEsDQoJCQkJCQkJCSJwLnAyIiA6IHAyLnJlcGxhY2UoL1wrL2csICclMkInKSwNCgkJCQkJCQkJInAucDUiIDogcDUsDQoJCQkJCQkJCSJwLnA3IiA6IHA3LA0KCQkJCQkJCQkicC5wOCIgOiBwOA0KCQkJCQkJCX0sDQoJCQkJCQkJZGF0ZVR5cGUgOiAianNvbiIsDQoJCQkJCQkJc3VjY2VzcyA6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJCQkJaWYgKGRhdGEubGVuZ3RoID4gMCkgey8v5aaC5p6c5pyJ5LiL57qnDQoJCQkJCQkJCQl2YXIgaHRtbCA9ICc8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwOyI+JzsNCg0KCQkJCQkJCQkJCWZvciAodmFyIGlpID0gMDsgaWkgPCBkYXRhLmxlbmd0aDsgaWkrKykgew0KCQkJCQkJCQkJCQlodG1sICs9ICc8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+PGEgY2xhc3M9ImJ0biBtdWx0aVNlbGVjdEJ0biBpY3NsaXN0MSJzdHlsZT0id2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1sZWZ0OjRweCAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206NXB4OyI+JzsNCgkJCQkJCQkJCQkJaWYgKGRhdGFbaWldLmxlYWY9PSIwInx8KGRhdGFbaWldLmljc0NoaWxkcyE9bnVsbCYmZGF0YVtpaV0uaWNzQ2hpbGRzLmxlbmd0aCA+IDApKSB7DQoJCQkJCQkJCQkJCQlodG1sICs9ICc8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1mb2xkZXItb3BlbiBpY3N0eXBlIiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDoxMCU7Y29sb3I6I2Y4ZGE3MDsiIGlkPSInDQoJCQkJCQkJCQkJCQkJCSsgZGF0YVtpaV0uaWNzQ29kZQ0KCQkJCQkJCQkJCQkJCQkrICciIG5hbWU9IicNCgkJCQkJCQkJCQkJCQkJKyBkYXRhW2lpXS5pY3NOYW1lDQoJCQkJCQkJCQkJCQkJCSsgJyI+PC9zcGFuPic7DQoJCQkJCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCQkJCQlodG1sICs9ICc8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1saXN0LWFsdCBpY3NsaXN0IiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDoxMCU7Y29sb3I6IyNkOGQ4ZDg7IiBpZD0iJw0KCQkJCQkJCQkJCQkJCQkrIGRhdGFbaWldLmljc0NvZGUNCgkJCQkJCQkJCQkJCQkJKyAnIiBuYW1lPSInDQoJCQkJCQkJCQkJCQkJCSsgZGF0YVtpaV0uaWNzTmFtZQ0KCQkJCQkJCQkJCQkJCQkrICciPiZuYnNwOzwvc3Bhbj4nOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCWh0bWwgKz0gJzxzcGFuIGNsYXNzPSJpY3NsaXN0IiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo4MCU7d2hpdGUtc3BhY2U6bm9ybWFsOyIgaWQ9IicNCgkJCQkJCQkJCQkJCQkrIGRhdGFbaWldLmljc0NvZGUNCgkJCQkJCQkJCQkJCQkrICciIG5hbWU9IicNCgkJCQkJCQkJCQkJCQkrIGRhdGFbaWldLmljc05hbWUNCgkJCQkJCQkJCQkJCQkrICciPiAnDQoJCQkJCQkJCQkJCQkJKyBkYXRhW2lpXS5pY3NDb2RlDQoJCQkJCQkJCQkJCQkJKyAnXycNCgkJCQkJCQkJCQkJCQkrIGRhdGFbaWldLmljc05hbWUNCgkJCQkJCQkJCQkJCQkrICfvvIg8c3Bhbj4nDQoJCQkJCQkJCQkJCQkJKyAoZGF0YVtpaV0uY291bnQgPyBkYXRhW2lpXS5jb3VudA0KCQkJCQkJCQkJCQkJCQkJOiAwKQ0KCQkJCQkJCQkJCQkJCSsgJzwvc3Bhbj7vvIk8L3NwYW4+PHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0O21hcmdpbjoycHg7IiBjbGFzcz0idGV4dC1zdWNjZXNzIGdseXBoaWNvbiBnbHlwaGljb24tb2stY2lyY2xlIGhpZGRlbiI+PC9zcGFuPjwvYT48L2Rpdj4nOw0KCQkJCQkJCQkJCQlpZiAoaWkgJSAyID09IDEpIHsNCgkJCQkJCQkJCQkJCWh0bWwgKz0gJzwvZGl2PjxkaXYgY2xhc3M9InJvdyIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDA7Ij4nOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJDQoNCgkJCQkJCQkJCSQoIi5jb250YWluZXItZmx1aWQiKS5odG1sKGh0bWwpOw0KCQkJCQkJCQkJLy/pnaLljIXlsZHmoIjmk43kvZwNCgkJCQkJCQkJCXZhciBvYmogPSBuZXcgT2JqZWN0KCk7DQoJCQkJCQkJCQlvYmouY29kZSA9IHN0cjsNCgkJCQkJCQkJCW9iai5uYW1lID0gbmFtZTsNCgkJCQkJCQkJCWlmIChsaW5lTGlzdC5sZW5ndGggPT0gMCkgew0KCQkJCQkJCQkJCWxpbmVMaXN0LnB1c2gob2JqKTsNCgkJCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCQkJdHJ5IHsNCgkJCQkJCQkJCQkJdmFyIGogPSAwOw0KCQkJCQkJCQkJCQlmb3IgKDsgaiA8IGxpbmVMaXN0Lmxlbmd0aDsgaisrKSB7DQoJCQkJCQkJCQkJCQlpZiAoc3RyDQoJCQkJCQkJCQkJCQkJCS5pbmRleE9mKGxpbmVMaXN0W2pdLmNvZGUpID49IDApIHsNCgkJCQkJCQkJCQkJCQlicmVhazsNCgkJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQlpZiAoaiA8IGxpbmVMaXN0Lmxlbmd0aA0KCQkJCQkJCQkJCQkJCSYmIGxpbmVMaXN0W2pdLmNvZGUgPT0gc3RyKSB7DQoJCQkJCQkJCQkJCQlsaW5lTGlzdA0KCQkJCQkJCQkJCQkJCQkuc3BsaWNlKGosDQoJCQkJCQkJCQkJCQkJCQkJbGluZUxpc3QubGVuZ3RoDQoJCQkJCQkJCQkJCQkJCQkJCQktIGogKyAxKTsNCgkJCQkJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJCQkJCWxpbmVMaXN0LnNwbGljZShqICsgMSwNCgkJCQkJCQkJCQkJCQkJbGluZUxpc3QubGVuZ3RoIC0gaik7DQoJCQkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJCQlsaW5lTGlzdC5wdXNoKG9iaikNCgkJCQkJCQkJCQl9IGNhdGNoIChlKSB7DQoJCQkJCQkJCQkJCXRocm93IGU7DQoJCQkJCQkJCQkJfQ0KDQoJCQkJCQkJCQl9DQoJCQkJCQkJCQl2YXIgbGluZSA9ICc8bGk+PGEgaHJlZj0iIyIgY2xhc3M9Imljc3R5cGUiIGlkPSItMSIgbmFtZT0i5YWo6YOoIj7lhajpg6g8L2E+PC9saT4nOw0KCQkJCQkJCQkJaWYgKHN0ciA9PSAtMSkgew0KCQkJCQkJCQkJCWxpbmVMaXN0ID0gbmV3IEFycmF5KCk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVMaXN0Lmxlbmd0aDsgaSsrKSB7DQoJCQkJCQkJCQkJbGluZSA9IGxpbmUNCgkJCQkJCQkJCQkJCSsgJzxsaSBjbGFzcz0iYWN0aXZlIGljc3R5cGUiIGlkPSInK2xpbmVMaXN0W2ldLmNvZGUrJyIgbmFtZT0iJytsaW5lTGlzdFtpXS5uYW1lKyciPjxhPicNCgkJCQkJCQkJCQkJCSsgbGluZUxpc3RbaV0uY29kZQ0KCQkJCQkJCQkJCQkJKydfJw0KCQkJCQkJCQkJCQkJKyBsaW5lTGlzdFtpXS5uYW1lICsgJzwvYT48L2xpPic7DQoJCQkJCQkJCQkJOw0KCQkJCQkJCQkJfQ0KDQoJCQkJCQkJCQkkKCIjbGluZSIpLmVtcHR5KCkuYXBwZW5kKGxpbmUpOw0KCQkJCQkJCQkJJCgiLmljc3R5cGUiKS5vbigiY2xpY2siLCBzcyk7DQoJCQkJCQkJCQkkKCIuaWNzbGlzdCIpLm9uKCJjbGljayIsIHR0KTsNCg0KCQkJCQkJCQl9IGVsc2Ugey8v5aaC5p6c5rKh5pyJ5LiL57qnDQoNCgkJCQkJCQkJCXJldHVybjsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0sDQoJCQkJCQkJZXJyb3IgOiBmdW5jdGlvbigpIHsNCg0KCQkJCQkJCX0NCg0KCQkJCQkJfSk7DQoNCgkJCX0NCg0KCQkJZnVuY3Rpb24gdHQoKSB7DQoJCQkJJCh0aGlzKS5wYXJlbnQoImEiKS50b2dnbGVDbGFzcygibXVsdGlTZWxlY3RCdG4tcyIpOw0KCQkJCSQodGhpcykucGFyZW50KCkuZmluZCgiLmdseXBoaWNvbi1vay1jaXJjbGUiKS50b2dnbGVDbGFzcygiaGlkZGVuIik7DQoJCQkJdmFyIHRleHQgPSAnJyxjb2RlcyA9ICcnOw0KCQkJCSQoJyNteU1vZGFsIC5tdWx0aVNlbGVjdEJ0bi1zJykuZWFjaChmdW5jdGlvbigpew0KCQkJCQl2YXIgaWNzTGlzdCA9ICQodGhpcykuZmluZCgnLmljc2xpc3QnKTsNCgkJCQkJdGV4dCArPSAoJC50cmltKGljc0xpc3QuYXR0cigiaWQiKSkrJ18nKyQudHJpbShpY3NMaXN0LmF0dHIoIm5hbWUiKSkrJ3wnKTsNCgkJCQkJY29kZXMgKz0gKCQudHJpbShpY3NMaXN0LmF0dHIoImlkIikpKyd8Jyk7DQoJCQkJfSk7DQoJCQkJaWYodGV4dD09Jycpew0KCQkJCQl2YXIgaWNzVHlwZSA9ICQoJy5icmVhZGNydW1iIC5pY3N0eXBlOmxhc3QnKTsNCgkJCQkJaWYoJC50cmltKGljc1R5cGUuYXR0cigiaWQiKSk9PS0nMScpew0KCQkJCQkJJCgiI3Nob3dpY3MiKS5odG1sKCcnKTsNCgkJCQkJfSBlbHNlew0KCQkJCQkJJCgiI3Nob3dpY3MiKS5odG1sKCLlt7LpgInmi6lpY3PliIbnsbvvvJogIiArICQudHJpbShpY3NUeXBlLmF0dHIoImlkIikpKydfJyskLnRyaW0oaWNzVHlwZS5hdHRyKCJuYW1lIikpKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCSQoIiNzaG93aWNzIikuaHRtbCgi5bey6YCJ5oupaWNz5YiG57G777yaICIgKyB0ZXh0LnN1YnN0cmluZygwLHRleHQubGVuZ3RoLTEpKTsNCgkJCQl9DQoJCQkJcDYgPSBjb2Rlcy5zdWJzdHJpbmcoMCxjb2Rlcy5sZW5ndGgtMSk7DQoJCQl9DQoNCgkJCS8v6YCJ5oupY3Nz5YiG57G7DQoJCQkkKCIuaWNzdHlwZSIpLm9uKCJjbGljayIsIHNzKTsNCgkJCSQoIi5pY3NsaXN0Iikub24oImNsaWNrIiwgdHQpOw0KDQoJCQkkKCIjY29uZmlybSIpLm9uKCJjbGljayIsZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJJCgiI2ljcyIpLnRleHQocDYpLnNob3coKTsNCgkJCQkJanVtcFBhZ2UoKTsNCgkJCX0pOw0KCQkJJCgiI2NhbmNlbCIpLm9uKCJjbGljayIsIGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJJCgiI2ljcyIpLnRleHQoJycpOw0KCQkJfSk7DQoJCQkkKCIjdHlwZSBsaSBhIikuZWFjaChmdW5jdGlvbigpIHsNCgkJCQlpZiAocDEgPT0gJzEnKSB7DQoJCQkJCSQoIiNSRVZJU0VEIikucGFyZW50KCJsaSIpLmhpZGUoKTsNCgkJCQl9DQoJCQkJaWYgKHAxID09ICcyJykgew0KCQkJCQkkKCIjUkVWSVNFRCIpLnBhcmVudCgibGkiKS5oaWRlKCk7DQoJCQkJCSQoIiNSRVBMQUNFRCIpLnBhcmVudCgibGkiKS5oaWRlKCk7DQoJCQkJfQ0KDQoJCQkJdmFyIHRtcCA9ICQodGhpcykuYXR0cigiaWQiKTsNCgkJCQlpZiAoJC50cmltKHRtcCkgPT0gJC50cmltKHAxKSkgew0KCQkJCQkkKCIjdHlwZSBsaSIpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCgkJCQkJJCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygnYWN0aXZlJyk7DQoJCQkJfQ0KDQoJCQl9KTsNCgkJCSQoIiNzdGF0ZSBsaSBhIikuZWFjaChmdW5jdGlvbigpIHsNCg0KCQkJCXZhciB0bXAxID0gJCh0aGlzKS5hdHRyKCJpZCIpOw0KDQoJCQkJaWYgKCQudHJpbSh0bXAxKSA9PSAkLnRyaW0ocDUpKSB7DQoJCQkJCSQoIiNzdGF0ZSBsaSBhIikucmVtb3ZlQ2xhc3MoJ211bHRpU2VsZWN0QnRuLXMnKTsNCgkJCQkJJCh0aGlzKS5hZGRDbGFzcygnbXVsdGlTZWxlY3RCdG4tcycpOw0KCQkJCX0NCg0KCQkJfSk7DQoJCQkkKCIjZGF0ZSBsaSBhIikuZWFjaChmdW5jdGlvbigpIHsNCg0KCQkJCXZhciB0bXAyID0gJCh0aGlzKS5hdHRyKCJpZCIpOw0KDQoJCQkJaWYgKCQudHJpbSh0bXAyKSA9PSAkLnRyaW0ocDcpKSB7DQoJCQkJCSQoIiNkYXRlIGxpIGEiKS5yZW1vdmVDbGFzcygnbXVsdGlTZWxlY3RCdG4tcycpOw0KCQkJCQkkKHRoaXMpLmFkZENsYXNzKCdtdWx0aVNlbGVjdEJ0bi1zJyk7DQoJCQkJfQ0KDQoJCQl9KTsNCgkJCSQoIiNpY3MtdmlldyBhIikuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgdG1wMyA9ICQodGhpcykudGV4dCgpOw0KCQkJCWlmICgkLnRyaW0ocDYpID09ICcnICYmICQudHJpbSh0bXAzKSA9PSAn5YWo6YOoJykgew0KCQkJCQkkKCIjaWNzLXZpZXcgYSIpLnJlbW92ZUNsYXNzKCdtdWx0aVNlbGVjdEJ0bi1zJyk7DQoJCQkJCSQodGhpcykuYWRkQ2xhc3MoJ211bHRpU2VsZWN0QnRuLXMnKTsNCgkJCQl9IGVsc2UgaWYgKCQudHJpbSh0bXAzKSA9PSAkLnRyaW0ocDYpKSB7DQoJCQkJCSQoIiNpY3MtdmlldyBhIikucmVtb3ZlQ2xhc3MoJ211bHRpU2VsZWN0QnRuLXMnKTsNCgkJCQkJJCh0aGlzKS5hZGRDbGFzcygnbXVsdGlTZWxlY3RCdG4tcycpOw0KCQkJCX0NCgkJCX0pOw0KCQkJLy/liY3kuIDpobUNCgkJCSQoIi5wcmUiKS5vbigNCgkJCQkJImNsaWNrIiwNCgkJCQkJZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJCWlmIChuZXh0cGFnZSA+IDEpIHsNCgkJCQkJCQluZXh0cGFnZS0tOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQlyZXR1cm47DQoJCQkJCQl9DQoJCQkJCQlqdW1wUGFnZShuZXh0cGFnZSk7DQoJCQkJCX0pOw0KCQkJLy/lkI7kuIDpobUNCgkJCSQoIi5uZXh0Iikub24oDQoJCQkJCSJjbGljayIsDQoJCQkJCWZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJCQlpZiAobmV4dHBhZ2UgPCAnMScpIHsNCgkJCQkJCQluZXh0cGFnZSsrOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQlyZXR1cm47DQoJCQkJCQl9DQoJCQkJCQlqdW1wUGFnZShuZXh0cGFnZSk7DQoJCQkJCX0pOw0KCQkJaWYoJCgnI3RqUGFuZWwgLnJvdycpLmxlbmd0aD09MCl7DQoJCQkJJCgnI3RqUGFuZWwnKS5wYXJlbnQoKS5oaWRlKCk7IA0KCQkJfQ0KCQl9KTsNCgkJJCgnLm11bHRpU2VsZWN0Jykub24oImNsaWNrIixmdW5jdGlvbigpew0KCQkJJCh0aGlzKS5wYXJlbnQoKS5wcmV2KCkuZmluZCgnLm11bHRpU2VsZWN0QnRuJykucHJlcGVuZCgiPGlucHV0IGNsYXNzPSdtQ2hlY2snIG9uY2xpY2s9J2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOycgdHlwZT0nY2hlY2tib3gnLz4iKTsNCgkJCSQodGhpcykuaGlkZSgpOw0KCQkJJCh0aGlzKS5uZXh0KCkuc2hvdygpOw0KCQl9KQ0KCQkkKCcuY29uZmlybVNlbGVjdCcpLm9uKCJjbGljayIsZnVuY3Rpb24oKXsNCgkJCXA1ID0gJyc7DQoJCQkkKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLnByZXYoKS5maW5kKCcubUNoZWNrOmNoZWNrZWQnKS5lYWNoKGZ1bmN0aW9uKCl7DQoJCQkJcDUgKz0gKCd8JyskKHRoaXMpLnBhcmVudCgpLmF0dHIoJ2lkJykpOw0KCQkJfSk7DQoJCQlwNSA9IHA1LnN1YnN0cmluZygxKQ0KCQkJanVtcFBhZ2UoKTsNCgkJfSkNCgkJJCgnLmNhbmNlbFNlbGVjdCcpLm9uKCJjbGljayIsZnVuY3Rpb24oKXsNCgkJCSQodGhpcykucGFyZW50KCkucGFyZW50KCkucHJldigpLmZpbmQoJy5tQ2hlY2snKS5yZW1vdmUoKTs7DQoJCQkkKHRoaXMpLnBhcmVudCgpLmhpZGUoKTsNCgkJCSQodGhpcykucGFyZW50KCkucHJldigpLnNob3coKTsNCgkJfSkNCgkJDQoJPC9zY3JpcHQ+DQo8L2h0bWw+DQoNCgkJCTxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+DQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+DQoJCQkJCTxkaXYgY2xhc3M9InJvdyI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIiPg0KCQkJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbjo1cHggMDsgaGVpZ2h0OiA1MHB4OyI+DQoJCQkJCQkJCTx0YWJsZSBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsiPg0KCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCTx0ZCBjbGFzcz0iaGlkZGVuLXNtIGhpZGRlbi14cyINCgkJCQkJCQkJCQkJc3R5bGU9IndoaXRlLXNwYWNlOiBub3dyYXA7IHBhZGRpbmctbGVmdDogNXB4OyI+PHNwYW4+DQoJCQkJCQkJCQkJCQk8YSBzdHlsZT0iY29sb3I6IGdyZXk7Ij7mr4/pobXmmL7npLo8L2E+Jm5ic3A7PHNlbGVjdCBjbGFzcz0icGFnZU51bVNlbGVjdCI+PG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMjUiPjI1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iNTAiPjUwPC9vcHRpb24+PC9zZWxlY3Q+Jm5ic3A7PGENCgkJCQkJCQkJCQkJCXN0eWxlPSJjb2xvcjogZ3JleTsiPuadoSzlhbE8L2E+Jm5ic3A7MSZuYnNwOzxhDQoJCQkJCQkJCQkJCQlzdHlsZT0iY29sb3I6IGdyZXk7Ij7mnaHmoIflh4Y8L2E+ICZuYnNwOzxhIHN0eWxlPSJjb2xvcjogcmVkOyI+MTwvYT4mbmJzcDsvJm5ic3A7MQ0KCQkJCQkJCQkJCTwvc3Bhbj48L3RkPg0KCQkJCQkJCQkJCTx0ZCBjbGFzcz0iaGlkZGVuLXhzIj48L3RkPg0KCQkJCQkJCQkJCTx0ZCBhbGlnbj0icmlnaHQiPg0KCQkJCQkJCQkJCQkgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAgaW5wdXQtZ3JvdXAtc20iIHN0eWxlPSJmbG9hdDpyaWdodDttYXgtd2lkdGg6MzAwcHg7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDpub3JtYWw7bWFyZ2luLXRvcDowOyI+DQoJCQkJCQkJCQkJCSAJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaDEiIHZhbHVlPSIiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHBsYWNlaG9sZGVyPSLmoIflh4blj7fmiJbmoIflh4blkI3np7AiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5Q29kZT09MTMpIHNlYXJjaCgpOyIgY2xhc3M9ImZvcm0tY29udHJvbCIgYXJpYS1sYWJlbD0iLi4uIj4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJpbnB1dC1ncm91cC1idG4iPg0KCQkJCQkJCQkJCQkJCTxidXR0b24gaWQ9InNlYXJjaDEiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIHR5cGU9ImJ1dHRvbiIgPg0KCQkJCQkJCQkJCQkJCQnlnKjnu5PmnpzkuK3nrZvpgIkNCgkJCQkJCQkJCQkJCQk8L2J1dHRvbj4NCgkJCQkJCQkJCQkJCTwvc3Bhbj4NCgkJCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPHNwYW4gY2xhc3M9InRleHQtZGFuZ2VyIHZpc2libGUteHMiIHN0eWxlPSJmb250LXNpemU6MTBweDsiPirlt6blj7Pmu5HliqjliJfooajmiJbmqKrlsY/mn6XnnIvmm7TlpJrlhoXlrrk8L3NwYW4+DQoJCQkJCQkJPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSIgc3R5bGU9Im1hcmdpbi10b3A6MTVweDsiPg0KCQkJCQkJCTx0YWJsZSBjbGFzcz0idGFibGUgcmVzdWx0X2xpc3QgdGFibGUtc3RyaXBlZCB0YWJsZS1ob3ZlciIgc3R5bGU9Im1pbi13aWR0aDo3NjhweDsiDQoJCQkJCQkJCXdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQoJCQkJCQkJCTx0Ym9keT4NCgkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQk8dGggd2lkdGg9IjUwIj7luo/lj7c8L3RoPg0KCQkJCQkJCQkJCTx0aCB3aWR0aD0iMTQwIj48ZGl2DQoJCQkJCQkJCQkJCQljbGFzcz0nc2NyZWVuT3JkZXIgJw0KCQkJCQkJCQkJCQkJc29ydG5hbWU9IiIgc29ydGNvbD0ic3RhbmRhcmRfbm8iPuagh+WHhuWPtzwvZGl2PjwvdGg+DQoJCQkJCQkJCQkJPHRoIHdpZHRoPSI4MCI+PGRpdg0KCQkJCQkJCQkJCQkJY2xhc3M9J3NjcmVlbk9yZGVyICcNCgkJCQkJCQkJCQkJCXNvcnRuYW1lPSIiIHNvcnRjb2w9ImNhaWJpYW9fc3RhdHVzIj7mmK/lkKbph4fmoIc8L2Rpdj48L3RoPg0KCQkJCQkJCQkJCTx0aCB3aWR0aD0iKiI+PGRpdg0KCQkJCQkJCQkJCQkJY2xhc3M9J3NjcmVlbk9yZGVyICcNCgkJCQkJCQkJCQkJCXNvcnRuYW1lPSIiIHNvcnRjb2w9ImNuX25hbWUiPuagh+WHhuWQjeensDwvZGl2PjwvdGg+DQoJCQkJCQkJCQkJPHRoIHdpZHRoPSI4MCI+PGRpdg0KCQkJCQkJCQkJCQkJY2xhc3M9J3NjcmVlbk9yZGVyICcNCgkJCQkJCQkJCQkJCXNvcnRuYW1lPSIiIHNvcnRjb2w9InN0YW5kYXJkX3R5cGUiPuexu+WIqzwvZGl2PjwvdGg+DQoJCQkJCQkJCQkJPHRoIHdpZHRoPSI4MCI+PGRpdg0KCQkJCQkJCQkJCQkJY2xhc3M9J3NjcmVlbk9yZGVyICcNCgkJCQkJCQkJCQkJCXNvcnRuYW1lPSIiIHNvcnRjb2w9InN0YXR1cyI+54q25oCBPC9kaXY+PC90aD4NCgkJCQkJCQkJCQk8dGggd2lkdGg9IjkwIj48ZGl2DQoJCQkJCQkJCQkJCQljbGFzcz0nc2NyZWVuT3JkZXIgJw0KCQkJCQkJCQkJCQkJc29ydG5hbWU9IiIgc29ydGNvbD0iY2lyY3VsYXRpb25fZGF0ZSI+5Y+R5biD5pel5pyfPC9kaXY+PC90aD4NCgkJCQkJCQkJCQk8dGggd2lkdGg9IjkwIj48ZGl2DQoJCQkJCQkJCQkJCQljbGFzcz0nc2NyZWVuT3JkZXIgJw0KCQkJCQkJCQkJCQkJc29ydG5hbWU9IiIgc29ydGNvbD0iaW1wbGVtZW50X2RhdGUiPuWunuaWveaXpeacnzwvZGl2PjwvdGg+DQoJCQkJCQkJCQkJPHRoIHdpZHRoPSI4MCI+5pON5L2cPC90aD4NCgkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCTx0Ym9keSBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci10b3A6MnB4IHNvbGlkICNkZGQ7Ij4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPjE8L3RkPg0KCQkJCQkJCQkJCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiDQoJCQkJCQkJCQkJCQlvbmNsaWNrPSJzaG93SW5mbygnMDgzQjQ4RkE3MkRCRDNCOUJERTc0NTA3QkMzMTczNkEnKTsiPkdCL1QgMjAyMjMtMjAwNjwvYT48L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJIA0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJIAkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQgY2xhc3M9Im15dHh0IiBvbm1vdXNlb3Zlcj0ic2hvd0NvbnRlbnQodGhpcyk7Ig0KCQkJCQkJCQkJCQkJc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDAgOHB4IDAgOHB4OyI+PGENCgkJCQkJCQkJCQkJCWhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgc3R5bGU9ImNvbG9yOiBncmF5OyINCgkJCQkJCQkJCQkJCW9uY2xpY2s9InNob3dJbmZvKCcwODNCNDhGQTcyREJEM0I5QkRFNzQ1MDdCQzMxNzM2QScpOyI+5qOJ55+t57uSPC9hPjwvdGQ+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJ5o6o5qCHIA0KCQkJCQkJCQ0KCQkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCSANCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InRleHQtaW5mbyIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4OyI+6KKr5Luj5pu/PC9zcGFuPg0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+MjAwNi0wMy0xMCAwMDowMDowMC4wPC90ZD4NCgkJCQkJCQkJCQkJPHRkPjIwMDYtMDktMDEgMDA6MDA6MDAuMDwvdGQ+DQoJCQkJCQkJCQkJCTx0ZD48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0Ig0KCQkJCQkJCQkJCQkJCW9uY2xpY2s9InNob3dJbmZvKCcwODNCNDhGQTcyREJEM0I5QkRFNzQ1MDdCQzMxNzM2QScpOyIgY2xhc3M9ImRldGFpbCI+5p+l55yL6K+m57uGPC9idXR0b24+PC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJDQoJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkNCg0KCQkJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbjogMjBweDsgaGVpZ2h0OiA1MHB4OyIgY2xhc3M9InZpc2libGUteHMiPg0KCQkJCQkJCQk8dGFibGUgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7Ij4NCgkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQk8dGQgY2xhc3M9ImhpZGRlbi14cyIgc3R5bGU9Im1pbi13aWR0aDogNjVweDsgX3dpZHRoOiA2NXB4OyI+DQoJCQkJCQkJCQkJCTxzcGFuPiDmr4/pobXmmL7npLombmJzcDs8c2VsZWN0IGNsYXNzPSJwYWdlTnVtU2VsZWN0Ij48b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI1MCI+NTA8L29wdGlvbj48L3NlbGVjdD4mbmJzcDvmnaHmoIflh4YgPC9zcGFuPg0KCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPHRkIGNsYXNzPSJoaWRkZW4teHMiIHdpZHRoPSI0MCUiPjwvdGQ+DQoJCQkJCQkJCQkJPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSJtaW4td2lkdGg6IDI2MHB4OyBfd2lkdGg6IDI2MHB4OyI+DQoJCQkJCQkJCQkJCTxkaXY+DQoJCQkJCQkJCQkJCQk8dGFibGUgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7Ij4NCgkJCQkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCQkJCTx0ZD48c3BhbiBzdHlsZT0id2lkdGg6IDEyMHB4OyI+IDxhDQoJCQkJCQkJCQkJCQkJCQkJc3R5bGU9ImNvbG9yOiBncmV5OyI+5YWxPC9hPiZuYnNwOzEmbmJzcDs8YQ0KCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSJjb2xvcjogZ3JleTsiPuadoeagh+WHhjwvYT4gJm5ic3A7PGENCgkJCQkJCQkJCQkJCQkJCQlzdHlsZT0iY29sb3I6IHJlZDsiPjE8L2E+Jm5ic3A7LyZuYnNwOzENCgkJCQkJCQkJCQkJCQkJPC9zcGFuPjwvdGQ+DQoJCQkJCQkJCQkJCQkJCTx0ZD48L3RkPg0KCQkJCQkJCQkJCQkJCQk8dGQgc3R5bGU9IndpZHRoOiA4MHB4OyI+DQoJCQkJCQkJCQkJCQkJCQk8ZGl2IGFsaWduPSJyaWdodCIgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiDQoJCQkJCQkJCQkJCQkJCQkJYXJpYS1sYWJlbD0iLi4uIiBzdHlsZT0iYWxpZ246IHJpZ2h0OyI+DQoJCQkJCQkJCQkJCQkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgcHJlIj4NCgkJCQkJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbWVudS1sZWZ0Ij48L3NwYW4+DQoJCQkJCQkJCQkJCQkJCQkJPC9idXR0b24+DQoJCQkJCQkJCQkJCQkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgbmV4dCI+DQoJCQkJCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW1lbnUtcmlnaHQiPjwvc3Bhbj4NCgkJCQkJCQkJCQkJCQkJCQk8L2J1dHRvbj4NCgkJCQkJCQkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJPC90YWJsZT4NCg0KCQkJCQkJCTwvZGl2Pg0KDQoJCQkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luOiAxMHB4OyBoZWlnaHQ6IDUwcHg7IiBjbGFzcz0iaGlkZGVuLXhzIj4NCgkJCQkJCQkJPHRhYmxlIHN0eWxlPSJ3aWR0aDogMTAwJSI+DQoJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJPHRkIGNsYXNzPSJoaWRkZW4tc20gaGlkZGVuLXhzIg0KCQkJCQkJCQkJCQlzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcDsgcGFkZGluZy1sZWZ0OiA1cHg7Ij48c3Bhbj4NCgkJCQkJCQkJCQkJCTxhIHN0eWxlPSJjb2xvcjogZ3JleTsiPuavj+mhteaYvuekujwvYT4mbmJzcDs8c2VsZWN0IGNsYXNzPSJwYWdlTnVtU2VsZWN0Ij48b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSI1MCI+NTA8L29wdGlvbj48L3NlbGVjdD4mbmJzcDs8YQ0KCQkJCQkJCQkJCQkJc3R5bGU9ImNvbG9yOiBncmV5OyI+5p2hLOWFsTwvYT4mbmJzcDsxJm5ic3A7PGENCgkJCQkJCQkJCQkJCXN0eWxlPSJjb2xvcjogZ3JleTsiPuadoeagh+WHhjwvYT4gJm5ic3A7PGEgc3R5bGU9ImNvbG9yOiByZWQ7Ij4xPC9hPiZuYnNwOy8mbmJzcDsxDQoJCQkJCQkJCQkJPC9zcGFuPjwvdGQ+DQoJCQkJCQkJCQkJPHRkIGNsYXNzPSJoaWRkZW4teHMiPjwvdGQ+DQoJCQkJCQkJCQkJPHRkIHdpZHRoPSIzMCUiIHN0eWxlPSJtaW4td2lkdGg6IDI2MHB4OyBfd2lkdGg6IDI2MHB4OyI+DQoJCQkJCQkJCQkJCTxkaXY+DQoJCQkJCQkJCQkJCQk8dGFibGUgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7Ij4NCgkJCQkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCQkJCTx0ZCBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcDsgcGFkZGluZy1sZWZ0OiA1cHg7Ij48c3Bhbj4NCg0KCQkJCQkJCQkJCQkJCQk8L3NwYW4+IDxzcGFuIGNsYXNzPSJoaWRkZW4tbWQgaGlkZGVuLWxnIj4gPGENCgkJCQkJCQkJCQkJCQkJCQlzdHlsZT0iY29sb3I6IGdyZXk7Ij7lhbE8L2E+Jm5ic3A7MSZuYnNwOzxhDQoJCQkJCQkJCQkJCQkJCQkJc3R5bGU9ImNvbG9yOiBncmV5OyI+5p2h5qCH5YeGPC9hPg0KCQkJCQkJCQkJCQkJCQk8L3NwYW4+IDxzcGFuIGNsYXNzPSJoaWRkZW4tbWQgaGlkZGVuLWxnIj4gJm5ic3A7PGENCgkJCQkJCQkJCQkJCQkJCQlzdHlsZT0iY29sb3I6IHJlZDsiPjE8L2E+Jm5ic3A7LyZuYnNwOzENCgkJCQkJCQkJCQkJCQkJPC9zcGFuPjwvdGQ+DQoJCQkJCQkJCQkJCQkJCTx0ZCBjbGFzcz0iaGlkZGVuLW1kIGhpZGRlbi1sZyIgc3R5bGU9IndpZHRoOiA4MHB4OyI+DQoJCQkJCQkJCQkJCQkJCQk8ZGl2IGFsaWduPSJyaWdodCIgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiDQoJCQkJCQkJCQkJCQkJCQkJYXJpYS1sYWJlbD0iLi4uIiBzdHlsZT0iYWxpZ246IHJpZ2h0OyI+DQoJCQkJCQkJCQkJCQkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgcHJlIj4NCgkJCQkJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbWVudS1sZWZ0Ij48L3NwYW4+DQoJCQkJCQkJCQkJCQkJCQkJPC9idXR0b24+DQoJCQkJCQkJCQkJCQkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgbmV4dCI+DQoJCQkJCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW1lbnUtcmlnaHQiPjwvc3Bhbj4NCgkJCQkJCQkJCQkJCQkJCQk8L2J1dHRvbj4NCgkJCQkJCQkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQkJCQk8dGQgY2xhc3M9ImhpZGRlbi14cyBoaWRkZW4tc20iDQoJCQkJCQkJCQkJCQkJCQlzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcDsiPg0KCQkJCQkJCQkJCQkJCQkJCTxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiIGlkPSJwYWdlbmF2MiI+PC9kaXY+DQoJCQkJCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgkNCjxkaXYgY2xhc3M9ImZvb3QiPg0KPHRhYmxlIHN0eWxlPSJtYXJnaW46IDAgYXV0bzsiPg0KPHRyPg0KPHRkPg0KCeeJiOadg+aJgOacie+8muWbveWutuagh+WHhuWMlueuoeeQhuWnlOWRmOS8miA8YnIgY2xhc3M9ImhpZGRlbi1sZyBoaWRkZW4tbWQiLz7kuqxJQ1DlpIcwOTAwMTIzOeWPtzxici8+IOe9keermeaKgOacr+aUr+aMge+8muWbveWutuW4guWcuuebkeedo+euoeeQhuaAu+WxgOWbveWutuagh+WHhuaKgOacr+WuoeivhOS4reW/gyA8YnIgY2xhc3M9ImhpZGRlbi1sZyBoaWRkZW4tbWQiLz4NCgnmlK/mjIHnlLXor53vvJowMTAtODIyNjEwNTY8YnIgY2xhc3M9ImhpZGRlbi1sZyBoaWRkZW4tbWQiLz48YnIgY2xhc3M9ImhpZGRlbi1sZyBoaWRkZW4tbWQiLz4NCjwvdGQ+DQo8dGQ+DQo8YSBzdHlsZT0ibWFyZ2luLWxlZnQ6MTVweDsiIHRhcmdldD0iX2JsYW5rIiBocmVmPSJqYXZhc2NyaXB0OnJldHVybiB2b2lkKDApOyIgb25jbGljaz0iTGluaygnYm0zMTM3MDAwMScpIj48aW1nIHNyYz0iL2J6Z2svL2ltYWdlcy9qaXVjdW8ucG5nIiBzdHlsZT0id2lkdGg6IDEyMHB4OyIvPjwvYT4NCjxhIHN0eWxlPSJtYXJnaW4tbGVmdDoxNXB4OyIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vYnN6cy5jb25hYy5jbi9zaXRlbmFtZT9tZXRob2Q9c2hvdyZpZD1BMUI4NjAwNkFBNzM2Q0QyRTA1MzEwMjkxQUFDNENDNyI+PGltZyBzcmM9Ii9iemdrLy9pbWFnZXMvZHpqZy5wbmciIC8+PC9hPg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPC9kaXY+DQo8c2NyaXB0Pg0KdmFyICBfaG10ICA9ICBfaG10ICB8fCAgW107DQoNCmZ1bmN0aW9uIG9wZW5fbmV3X3dpbmRvdyhmdWxsX2xpbmspew0KCXdpbmRvdy5vcGVuKCdqYXZhc2NyaXB0OndpbmRvdy5uYW1lOycsICc8c2NyaXB0PmxvY2F0aW9uLnJlcGxhY2UoIicrZnVsbF9saW5rKyciKTxcL3NjcmlwdD4nKTsNCn0NCg0KKGZ1bmN0aW9uKCkgIHsNCiAgICB2YXIgIGhtICA9ICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsNCiAgICBobS5zcmMgID0gICJodHRwczovL2htLmJhaWR1LmNvbS9obS5qcz81MDc1ODkxM2U2ZjBkZmM5ZGVhY2JmZWJjZTM2MzdlNCI7DQogICAgdmFyICBzICA9ICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07ICANCiAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGhtLCAgcyk7DQogICAgDQogICAgDQogICAgJCgnLm91dGVyLWxpbmsnKS5jbGljayhmdW5jdGlvbigpew0KICAgIAlvcGVuX25ld193aW5kb3coJCh0aGlzKS5hdHRyKCdocmVmJykpOw0KICAgIAlyZXR1cm4gZmFsc2U7DQogICAgfSk7DQp9KSgpOw0KDQovL+eCueWHu+Wbvuaghw0KICAgICAgICBmdW5jdGlvbiBMaW5rKHNpdGVfY29kZSkgew0KICAgICAgICAgICAgLy/ojrflj5bor6Xnq5nngrnpnIDopoHnuqDplJnpobXpnaLnmoR1cmzlnLDlnYANCiAgICAgICAgICAgIHZhciB1cmwgPSBnZXRDdXJyVXJsKCk7DQogICAgICAgICAgICAvL+i3s+i9rOiHs+e6oOmUmeezu+e7n+Whq+WGmemhtemdoiANCiAgICAgICAgICAgIHdpbmRvdy5vcGVuKCJodHRwczovL3pmd3pnbC53d3cuZ292LmNuL2V4cG9zdXJlL2ppdWN1by5odG1sP3NpdGVfY29kZT0iICsgc2l0ZV9jb2RlICsgIiZ1cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwpKTsNCiAgICAgICAgfQ0KICAgICAgICAvL+iOt+WPluivpeermeeCuemcgOimgee6oOmUmemhtemdoueahHVybOWcsOWdgA0KICAgICAgICBmdW5jdGlvbiBnZXRDdXJyVXJsKCkgew0KICAgICAgICAgICAgdmFyIHVybCA9ICIiOw0KICAgICAgICAgICAgaWYgKHBhcmVudCAhPT0gd2luZG93KSB7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgdXJsID0gd2luZG93LnRvcC5sb2NhdGlvbi5ocmVmOw0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgdXJsID0gd2luZG93LnRvcC5kb2N1bWVudC5yZWZlcnJlcjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAodXJsLmxlbmd0aCA9PSAwKQ0KICAgICAgICAgICAgICAgIHVybCA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7DQogICAgICAgICAgICByZXR1cm4gdXJsOw0KICAgICAgICB9DQo8L3NjcmlwdD4gDQoJPCEtLVtpZiBsdCBJRSA5XT4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvYnpnay9qcy9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+DQoJPCFbZW5kaWZdLS0+DQoJPCEtLVtpZiBsdCBJRSAxMF0+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2J6Z2svanMvcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmpzIj48L3NjcmlwdD4NCgk8IVtlbmRpZl0tLT4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvYnpnay9sYXlwYWdlL2xheXBhZ2UuanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Jy9iemdrL2pzL2Jvb3RzdHJhcC5qcyc+PC9zY3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0nL2J6Z2svanMvY29tbW9uLmpzJz48L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4=
39
- recorded_at: Thu, 30 Jun 2022 17:16:49 GMT
74
+ recorded_at: Sat, 20 Aug 2022 16:00:49 GMT
40
75
  - request:
41
76
  method: get
42
77
  uri: http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=083B48FA72DBD3B9BDE74507BC31736A
@@ -50,15 +85,50 @@ http_interactions:
50
85
  - "*/*"
51
86
  User-Agent:
52
87
  - Ruby
88
+ response:
89
+ status:
90
+ code: 301
91
+ message: Moved Permanently
92
+ headers:
93
+ Server:
94
+ - nginx/1.23.1
95
+ Date:
96
+ - Sat, 20 Aug 2022 16:00:32 GMT
97
+ Content-Type:
98
+ - text/html
99
+ Content-Length:
100
+ - '169'
101
+ Connection:
102
+ - keep-alive
103
+ Location:
104
+ - https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=083B48FA72DBD3B9BDE74507BC31736A
105
+ body:
106
+ encoding: UTF-8
107
+ string: "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301
108
+ Moved Permanently</h1></center>\r\n<hr><center>nginx/1.23.1</center>\r\n</body>\r\n</html>\r\n"
109
+ recorded_at: Sat, 20 Aug 2022 16:00:50 GMT
110
+ - request:
111
+ method: get
112
+ uri: https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=083B48FA72DBD3B9BDE74507BC31736A
113
+ body:
114
+ encoding: US-ASCII
115
+ string: ''
116
+ headers:
117
+ Accept-Encoding:
118
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
119
+ Accept:
120
+ - "*/*"
121
+ User-Agent:
122
+ - Ruby
53
123
  response:
54
124
  status:
55
125
  code: 200
56
126
  message: ''
57
127
  headers:
58
128
  Server:
59
- - nginx/1.20.2
129
+ - nginx/1.23.1
60
130
  Date:
61
- - Thu, 30 Jun 2022 17:16:44 GMT
131
+ - Sat, 20 Aug 2022 16:00:34 GMT
62
132
  Content-Type:
63
133
  - text/html;charset=utf-8
64
134
  Transfer-Encoding:
@@ -66,12 +136,12 @@ http_interactions:
66
136
  Connection:
67
137
  - keep-alive
68
138
  Set-Cookie:
69
- - JSESSIONID=A305264A2CF79A1F05AC4C862063C2F0; Path=/bzgk; HttpOnly
139
+ - JSESSIONID=423B15AA3E81EB56E2F0233CB5F0C7BA; Path=/bzgk; HttpOnly
70
140
  Content-Language:
71
141
  - zh-CN
72
142
  body:
73
143
  encoding: ASCII-8BIT
74
144
  string: !binary |-
75
- DQoNCg0KDQoNCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPuWbveWutuagh+WHhnxHQi9UIDIwMjIzLTIwMDY8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+DQo8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiIC8+DQo8bGluayBocmVmPSIuLi9jc3MvcWJjeC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQo8bGluayBocmVmPSIvYnpnay9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2J6Z2svanMvanF1ZXJ5LTEuMTEuMy5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0nL2J6Z2svanMvYm9vdHN0cmFwLmpzJz48L3NjcmlwdD4NCjxtZXRhIG5hbWU9InZpZXdwb3J0Ig0KCWNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBtYXhpbXVtLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCi5tdHJ7aGVpZ2h0OiAyNXB4O30NCmJvZHl7YmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTt9DQoudGl0bGV7Zm9udC13ZWlnaHQ6Ym9sZDt9DQoudGl0bGUsLmNvbnRlbnR7cGFkZGluZzoxMHB4IDA7Ym9yZGVyLXRvcDoxcHggI2RkZCBzb2xpZDt9ICANCi5zbWdnIGxpe3BhZGRpbmc6MCAyMnB4O21hcmdpbjoxNXB4IDA7bGluZS1oZWlnaHQ6MjVweDt9DQouc3RhdGVtZW50VWwgbGl7YmFja2dyb3VuZDp1cmwoJy4uL2ltYWdlcy9wb2ludC5wbmcnKSBuby1yZXBlYXQgOHB4IDZweDtsZXR0ZXItc3BhY2luZzoxcHg7fQ0KLm1rMSAubGFiZWx7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjEycHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6NHB4IDZweDtjdXJzb3I6cG9pbnRlcjt9DQo8L3N0eWxlPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KY29uc3Qgc3VwcG9ydGVkID0gKGZ1bmN0aW9uKCkgew0KICAgIHRyeSB7DQogICAgICAgIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgPT09ICJvYmplY3QiDQogICAgICAgICAgICAmJiB0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUgPT09ICJmdW5jdGlvbiIpIHsNCiAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVWludDhBcnJheS5vZigweDAsIDB4NjEsIDB4NzMsIDB4NmQsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDApKTsNCiAgICAgICAgICAgIGlmIChtb2R1bGUgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5Nb2R1bGUpDQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUpIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuSW5zdGFuY2U7DQogICAgICAgIH0NCiAgICB9IGNhdGNoIChlKSB7DQogICAgfQ0KICAgIHJldHVybiBmYWxzZTsNCn0pKCk7DQoNClN0cmluZy5wcm90b3R5cGUudHJpbT1mdW5jdGlvbigpew0KICAgIHJldHVybiB0aGlzLnJlcGxhY2UoLyheXHMqKXwoXHMqJCkvZywgIiIpOw0KIH0NCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQoJJCgnLnh6X2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXZhciBlbCA9ICQodGhpcyk7DQoJCXNob3dHYihlbC5hdHRyKCdkYXRhLXZhbHVlJyksJ2Rvd25sb2FkJyk7DQoJfSk7DQoJJCgnLmNrX2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXZhciBlbCA9ICQodGhpcyk7DQoJCWlmKHN1cHBvcnRlZCkgew0KCQkJc2hvd0diKGVsLmF0dHIoJ2RhdGEtdmFsdWUnKSwnb25saW5lJyk7DQoJCX0gZWxzZSB7DQoJCQkkKCcjbXlNb2RhbCcpLm1vZGFsKCdzaG93Jyk7DQoJCX0NCgl9KTsNCgkkKCcuZm8nKS5jbGljayhmdW5jdGlvbigpIHsNCgkJdmFyIGVsID0gJCh0aGlzKTsNCgkJc2hvd0diKGVsLmF0dHIoJ2RhdGEtdmFsdWUnKSk7DQoJfSk7DQoJJCgnLmZrX2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXZhciBlbCA9ICQodGhpcyk7DQoJCXdpbmRvdy5vcGVuKCcvYnpnay9nYi9yZXZpZXc/aGNubz0nK2VsLmF0dHIoJ2RhdGEtdmFsdWUnKSk7DQoJfSk7DQoJLyogJCgnLmNvbnRlbnQnKS5lYWNoKGZ1bmN0aW9uKCl7IA0KCQlpZigkKHRoaXMpLmh0bWwoKS50cmltKCk9PScnKXsgDQoJCQkkKHRoaXMpLmhpZGUoKTsgDQoJCQkkKHRoaXMpLnByZXYoKS5oaWRlKCkNCgkJCQ0KCQl9DQoJfSk7ICovDQp9KTsNCmZ1bmN0aW9uIHNob3dHYihnYkNvZGUsdHlwZSl7DQoJdmFyIHVybCA9ICJodHRwOi8vYy5nYjY4OC5jbi9iemdrL2diL3Nob3dHYj90eXBlPSIrdHlwZSsiJmhjbm89IiArIGdiQ29kZTsNCgl3aW5kb3cub3Blbih1cmwpOw0KfQ0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keT4NCgkNCg0KPHN0eWxlPg0KCUBtZWRpYSAobWF4LXdpZHRoOiA1NjhweCkgew0KCSAgI3hzTWFpbkxvZ297d2lkdGg6OTAlO3otaW5kZXg6MTAwMDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MTVweDtkaXNwbGF5OmJsb2NrfQ0KCSAgI3hzU3ViTG9nb3tmbG9hdDpyaWdodDt6LWluZGV4OjEwMDA7bWFyZ2luOjVweCA1JTt9DQoJICAjeHNRd0xvZ297ZmxvYXQ6bGVmdDt3aWR0aDo1MCU7ei1pbmRleDoxMDAwO21hcmdpbjo3cHggNSU7fSANCgl9DQoJQG1lZGlhIChtaW4td2lkdGg6IDU2OHB4KXsNCgkgICN4c01haW5Mb2dve2Zsb2F0OmxlZnQ7d2lkdGg6OTAlO3otaW5kZXg6MTAwMDttYXJnaW4tdG9wOjE1cHg7bWFyZ2luLWxlZnQ6NiU7fQ0KCSAgI3hzU3ViTG9nb3t3aWR0aDozMyU7ei1pbmRleDoxMDAwO21hcmdpbi10b3A6NDBweDttYXJnaW4tcmlnaHQ6MSU7fQ0KCSAgI3hzUXdMb2dve2Zsb2F0OnJpZ2h0O3dpZHRoOjkwJTt6LWluZGV4OjEwMDA7bWFyZ2luOjE1cHggNSU7bWFyZ2luLWxlZnQ6NiU7fQ0KCSAgLnhzRGl2e3dpZHRoOjY1JX0NCgl9IA0KCS5wb3BvdmVyIC5wb3BvdmVyLXRpdGxle3RleHQtYWxpZ246Y2VudGVyO30gDQoJI3NhY0xvZ297dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjEycHg7ei1pbmRleDoxMDAwO3RvcDoxMHB4O2xlZnQ6MjBweDtjb2xvcjojRTRFNEU0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO30NCgkjc2FjTG9nbzpob3Zlcntjb2xvcjp3aGl0ZTt0ZXh0LWRlY29yYXRpb246bm9uZTt9DQoJI3NhY0xvZ286dmlzaXRlZHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0NCjwvc3R5bGU+DQo8c2NyaXB0Pg0KJChmdW5jdGlvbigpew0KCSQoJyNtb2JpbGVFd20nKS5wb3BvdmVyKHtodG1sOnRydWV9KTsNCn0pDQo8L3NjcmlwdD4gDQo8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9iYW5uZXJiZy5qcGcpOyI+DQoJDQoJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCgkJDQoJCTxkaXYgY2xhc3M9InJvdyBoaWRkZW4teHMgaGlkZGVuLXNtIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjE4MHB4OyI+IA0KCQkJDQoJCQk8aW1nIHNyYz0iLi4vaW1hZ2VzL21haW4tbG9nby5wbmciIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7dG9wOjUwcHg7bGVmdDozMHB4OyIvPiAgDQoJCQk8aW1nIHNyYz0iLi4vaW1hZ2VzL3F3ZmIucG5nIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RvcDoxMTVweDtsZWZ0OjMwcHg7Ii8+ICANCgkJCTxpbWcgc3JjPSIuLi9pbWFnZXMvc3ViLWxvZ28ucG5nIiB3aWR0aD0iMzA0IiBoZWlnaHQ9IjUzIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RvcDo2NXB4O3JpZ2h0OjQwcHg7Ii8+IA0KCQkJPGltZyBzcmM9Ii4uL2ltYWdlcy9sb2dvNC5qcGciIHdpZHRoPSI4MDIiIGhlaWdodD0iMTgwIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk7dG9wOjA7cmlnaHQ6MDsiLz4gDQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJyb3cgdmlzaWJsZS14cyB2aXNpYmxlLXNtIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uL2ltYWdlcy9sb2dvNC5qcGcnKSI+DQoJCQk8ZGl2IGNsYXNzPSJ4c0RpdiI+DQoJCQk8aW1nIGlkPSJ4c01haW5Mb2dvIiBzcmM9Ii4uL2ltYWdlcy9tYWluLWxvZ28ucG5nIiBzdHlsZT0iIi8+DQoJCQk8aW1nIGlkPSJ4c1F3TG9nbyIgc3JjPSIuLi9pbWFnZXMvcXdmYi5wbmciIHN0eWxlPSIiLz4gDQoJCQk8L2Rpdj4NCgkJCTxpbWcgaWQ9InhzU3ViTG9nbyIgc3JjPSIuLi9pbWFnZXMvc3ViLWxvZ28ucG5nIiB3aWR0aD0iMzAlIiBzdHlsZT0iIi8+IA0KCQk8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2Pg0KDQo8bmF2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWRlZmF1bHQgbmF2YmFyLXN0YXRpYy10b3AiIHJvbGU9Im5hdmlnYXRpb24iIHN0eWxlPSJiYWNrZ3JvdW5kOiMxMTU4ODM7Ym9yZGVyOjA7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmciPiAgDQoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQo8ZGl2IGNsYXNzPSJuYXZiYXItaGVhZGVyIiA+DQogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im5hdmJhci10b2dnbGUgY29sbGFwc2VkIiBzdHlsZT0ibWFyZ2luOjA7bWFyZ2luLXRvcDotMnB4O3BhZGRpbmc6NXB4OyIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI2JzLWV4YW1wbGUtbmF2YmFyLWNvbGxhcHNlLTEiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4NCiAgICAgICAgPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBuYXZpZ2F0aW9uPC9zcGFuPg0KICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KICAgICAgPC9idXR0b24+DQogICAgICA8YSBzdHlsZT0iZm9udC1zaXplOjE1cHg7IiBjbGFzcz0ibmF2YmFyLWJyYW5kICIgIGhyZWY9Ii9iemdrL2diL2luZGV4IiA+6aaWJm5ic3A76aG1PC9hPg0KICAgIDwvZGl2Pg0KDQogICAgPCEtLSBDb2xsZWN0IHRoZSBuYXYgbGlua3MsIGZvcm1zLCBhbmQgb3RoZXIgY29udGVudCBmb3IgdG9nZ2xpbmcgLS0+DQogICAgPGRpdiBjbGFzcz0iY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlIiBpZD0iYnMtZXhhbXBsZS1uYXZiYXItY29sbGFwc2UtMSI+DQogICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2Ij4NCiAgICAgICAgDQogICAgICAgIDxsaSBjbGFzcz0iIj48YSBocmVmPSIvYnpnay9nYi9zdGRfbGlzdF90eXBlP3AucDE9MSZwLnA5MD1jaXJjdWxhdGlvbl9kYXRlJnAucDkxPWRlc2MiPuW8uuWItuaAp+WbveWutuagh+WHhjwvYT48L2xpPg0KICAgICAgICA8bGkgY2xhc3M9IiI+PGEgaHJlZj0iL2J6Z2svZ2Ivc3RkX2xpc3RfdHlwZT9wLnAxPTImcC5wOTA9Y2lyY3VsYXRpb25fZGF0ZSZwLnA5MT1kZXNjIj7mjqjojZDmgKflm73lrrbmoIflh4Y8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9Ii9iemdrL2diL3N0ZF9saXN0X3R5cGU/cC5wMT0zJnAucDkwPWNpcmN1bGF0aW9uX2RhdGUmcC5wOTE9ZGVzYyI+5oyH5a+85oCn5oqA5pyv5paH5Lu2PC9hPjwvbGk+DQoJCQkJDQogICAgICAgIA0KICAgICAgPC91bD4NCiAgICAgIDx1bCBjbGFzcz0ibmF2IG5hdmJhci1uYXYgbmF2YmFyLXJpZ2h0Ij4NCiAgICAgIAkNCiAgICAgIAkNCiAgICAgIAkNCiAgICAgIAkNCiAgICAgIAk8bGkgY2xhc3M9IiI+PGEgaHJlZj0iL2J6Z2svZ2IvaGVscCI+5biu5YqpPC9hPjwvbGk+DQogICAgICAJPGxpIGNsYXNzPSIiPjxhIGhyZWY9Ii9iemdrL2diL2NvbnRhY3QiPuiBlOezu+aIkeS7rDwvYT48L2xpPg0KICAgICAgCQ0KICAgICAgPC91bD4NCiAgICAgIDwhLS0gPGZvcm0gY2xhc3M9Im5hdmJhci1mb3JtIG5hdmJhci1yaWdodCIgcm9sZT0ic2VhcmNoIiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyI+DQogICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbSIgc3R5bGU9IndpZHRoOjMwMHB4O21hcmdpbjowIGF1dG87bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6NHB4OyI+DQoJCQkJCQkJCQk8aW5wdXQgcGxhY2Vob2xkZXI9Iuivt+i+k+WFpeWFs+mUruWtlyIgb25rZXlkb3duPSJpZihldmVudC5rZXlDb2RlPT0xMykgc2VhcmNoKCcnLCQodGhpcykudmFsKCkpOyIgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgYXJpYS1sYWJlbD0iLi4uIj4NCgkJCQkJCQkJCTxzcGFuIGNsYXNzPSJpbnB1dC1ncm91cC1idG4iPg0KCQkJCQkJCQkJCTxidXR0b24gaWQ9InNlYXJjaEJ0biIgY2xhc3M9ImJ0biBidG4td2FybmluZyIgdHlwZT0iYnV0dG9uIiA+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNlYXJjaCI+PC9zcGFuPg0KCQkJCQkJCQkJCTwvYnV0dG9uPg0KCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCiAgICAgIDwvZm9ybT4gLS0+DQogICAgPC9kaXY+PCEtLSAvLm5hdmJhci1jb2xsYXBzZSAtLT4NCiAgPC9kaXY+PCEtLSAvLmNvbnRhaW5lci1mbHVpZCAtLT4NCgk8L25hdj4NCgk8ZGl2IGNsYXNzPSJyZXBiZzEiIHN0eWxlPSJtaW4taGVpZ2h0OmluaXRpYWw7Ij4NCgk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCTxkaXYgY2xhc3M9InJvdyI+DQoJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiI+DQoJCTxkaXYgY2xhc3M9ImJvcjIiPg0KCQkNCgkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0ibWsxIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIg0KCQkJY2VsbHBhZGRpbmc9IjAiPg0KCQkJPHRyPg0KCQkJCTx0ZCB3aWR0aD0iNTYwIiBhbGlnbj0ibGVmdCI+PGgxPuagh+WHhuWPt++8mkdCL1QgMjAyMjMtMjAwNiA8L2gxPjwvdGQ+DQoJCQk8L3RyPg0KCQk8L3RhYmxlPg0KCQk8dGFibGUgd2lkdGg9IjEwMCUiIGNsYXNzPSJ0ZGxpc3QiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgCQkJPHRyPg0KICAgIAkJCTx0ZD7kuK3mlofmoIflh4blkI3np7DvvJo8Yj7mo4nnn63nu5I8L2I+PC90ZD4NCiAgICAJCQkNCiAgCQkJPC90cj4NCiAJCQk8dHI+DQogICAgCQkJPHRkPuiLseaWh+agh+WHhuWQjeensO+8mkNvdHRvbiBsaW50ZXI8L3RkPg0KICAgIAkJPC90cj4NCiAgICAJCTx0cj4NCgkJCQk8dGQgYWxpZ249ImxlZnQiPuagh+WHhueKtuaAge+8mjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyIgY2xhc3M9InRleHQtZGFuZ2VyIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAxMHB4OyI+6KKr5Luj5pu/PC9zcGFuPjwvdGQ+DQoJCQk8L3RyPg0KICAgIAkJPHRyPg0KICAgIAkJCTx0ZCBzdHlsZT0icGFkZGluZy10b3A6MjBweDsiPg0KCQkJCQkgDQoJCQkJCSAgDQoJCQkJCSAgPGJ1dHRvbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjIwcHgiIGRhdGEtdmFsdWU9IjA4M0I0OEZBNzJEQkQzQjlCREU3NDUwN0JDMzE3MzZBIiBjbGFzcz0iYnRuIGZrX2J0biBidG4tc20gYnRuLXN1Y2Nlc3MiPuWunuaWveS/oeaBr+WPjemmiDwvYnV0dG9uPg0KCQkJCQk8c3BhbiBjbGFzcz0idGV4dC1kYW5nZXIiID4NCgkJCQkJIA0KCQkJCQkgCQ0KCQkJCQkgCSAJ6KKr5Luj5pu/5Y+K5bqf5q2i5qCH5YeG5LiN5o+Q5L6b5qCH5YeG5paH5pys6ZiF6K+75pyN5YqhIA0KCQkJCQkgCSAgDQoJCQkJCSAJDQoJCQkJCSANCgkJCQkJPC9zcGFuPg0KICAgIAkJCTwvdGQ+DQogICAgCQk8L3RyPg0KICAgICAgPC90YWJsZT4NCgkJDQoJCTxkaXYgY2xhc3M9ImxpbmUiPjwvZGl2Pg0KCQk8ZGl2IGNsc3NzPSJyb3cgZGV0YWlsIj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMiB0aXRsZSI+DQoJCQnkuK3lm73moIflh4bliIbnsbvlj7fvvIhDQ1PvvIkNCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC00IGNvbnRlbnQiPg0KCQkJQjMyDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMiB0aXRsZSI+DQoJCQnlm73pmYXmoIflh4bliIbnsbvlj7fvvIhJQ1PvvIkNCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC00IGNvbnRlbnQiPg0KCQkJNTkuMDYwLjEwDQoJCQk8L2Rpdj4NCgkJCTxkaXYgc3R5bGU9ImNsZWFyOmJvdGgiPjwvZGl2Pg0KCQk8L2Rpdj4NCgkJPGRpdiBjbHNzcz0icm93Ij4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMiB0aXRsZSI+DQoJCQnlj5HluIPml6XmnJ8NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC00IGNvbnRlbnQiPg0KCQkJMjAwNi0wMy0xMA0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5a6e5pa95pel5pyfDQoJCQk8L2Rpdj4NCgkJCSA8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTQgY29udGVudCI+DQoJCQkyMDA2LTA5LTAxDQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJCTxkaXYgY2xzc3M9InJvdyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5Li7566h6YOo6ZeoDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtNCBjb250ZW50Ij4NCgkJCeWbveWutuW4guWcuuebkeedo+euoeeQhuaAu+WxgA0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5b2S5Y+j5Y2V5L2NDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtNCBjb250ZW50Ij4NCgkJCeS4reWbvee6pOe7tOajgOmqjOWxgA0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCQk8ZGl2IGNsc3NzPSJyb3ciPg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC0yIHRpdGxlIj4NCgkJCeWPkeW4g+WNleS9jQ0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTEwIGNvbnRlbnQiPg0KCQkJ5Lit5Y2O5Lq65rCR5YWx5ZKM5Zu95Zu95a626LSo6YeP55uR552j5qOA6aqM5qOA55ar5oC75bGA44CB5Lit5Zu95Zu95a625qCH5YeG5YyW566h55CG5aeU5ZGY5LyaDQoJCQk8L2Rpdj4NCgkJCTxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4NCgkJPC9kaXY+DQoJCTxkaXYgY2xzc3M9InJvdyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5aSH5rOoDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMTAgY29udGVudCI+DQoJCQkyMDA2LTA5LTAx5a6e5pa9DQoJCQk8L2Rpdj4NCgkJCQ0KCQk8L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg0KCQkNCgkJDQoJPC9kaXY+DQoJPC9kaXY+DQoJPC9kaXY+DQoJPC9kaXY+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0ibW9kYWwgYnMtZXhhbXBsZS1tb2RhbC1zbSIgaWQ9Im15TW9kYWwiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9Im15TW9kYWxMYWJlbCI+DQoJCTxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyIgcm9sZT0iZG9jdW1lbnQiPg0KCQkJPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQoJCQkJPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4NCgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4mdGltZXM7PC9zcGFuPjwvYnV0dG9uPg0KCQkJCQk8aDQgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0ibXlNb2RhbExhYmVsIj7lnKjnur/pooTop4jmj5DnpLo8L2g0Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPiANCgkJCQkJ5b2T5YmN5rWP6KeI5Zmo5pqC5LiN5pSv5oyB5qCH5YeG5YWo5paH5Zyo57q/6aKE6KeI5pyN5Yqh77yM6K+35L2/55So546w5Luj5rWP6KeI5Zmo77yIQ2hyb21l44CBRmlyZWZveOOAgU9wZXJh44CBTWljcm9zb2Z0IEVkZ2XjgIEzNjDlronlhajmtY/op4jlmajjgIHmkJzni5fmtY/op4jlmajjgIHnjI7osbnmtY/op4jlmajjgIHlgrLmuLjmtY/op4jlmajnrYnvvInph43mlrDmiZPlvIDlvZPliY3pobXpnaLnu6fnu63ov5vooYzmoIflh4blhajmlofpooTop4jjgIINCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+55+l6YGT5LqGPC9idXR0b24+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJDQo8ZGl2IGNsYXNzPSJmb290Ij4NCjx0YWJsZSBzdHlsZT0ibWFyZ2luOiAwIGF1dG87Ij4NCjx0cj4NCjx0ZD4NCgnniYjmnYPmiYDmnInvvJrlm73lrrbmoIflh4bljJbnrqHnkIblp5TlkZjkvJogPGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+5LqsSUNQ5aSHMDkwMDEyMznlj7c8YnIvPiDnvZHnq5nmioDmnK/mlK/mjIHvvJrlm73lrrbluILlnLrnm5HnnaPnrqHnkIbmgLvlsYDlm73lrrbmoIflh4bmioDmnK/lrqHor4TkuK3lv4MgPGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+DQoJ5pSv5oyB55S16K+d77yaMDEwLTgyMjYxMDU2PGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+PGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+DQo8L3RkPg0KPHRkPg0KPGEgc3R5bGU9Im1hcmdpbi1sZWZ0OjE1cHg7IiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iamF2YXNjcmlwdDpyZXR1cm4gdm9pZCgwKTsiIG9uY2xpY2s9IkxpbmsoJ2JtMzEzNzAwMDEnKSI+PGltZyBzcmM9Ii9iemdrLy9pbWFnZXMvaml1Y3VvLnBuZyIgc3R5bGU9IndpZHRoOiAxMjBweDsiLz48L2E+DQo8YSBzdHlsZT0ibWFyZ2luLWxlZnQ6MTVweDsiIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2JzenMuY29uYWMuY24vc2l0ZW5hbWU/bWV0aG9kPXNob3cmaWQ9QTFCODYwMDZBQTczNkNEMkUwNTMxMDI5MUFBQzRDQzciPjxpbWcgc3JjPSIvYnpnay8vaW1hZ2VzL2R6amcucG5nIiAvPjwvYT4NCjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjwvZGl2Pg0KPHNjcmlwdD4NCnZhciAgX2htdCAgPSAgX2htdCAgfHwgIFtdOw0KDQpmdW5jdGlvbiBvcGVuX25ld193aW5kb3coZnVsbF9saW5rKXsNCgl3aW5kb3cub3BlbignamF2YXNjcmlwdDp3aW5kb3cubmFtZTsnLCAnPHNjcmlwdD5sb2NhdGlvbi5yZXBsYWNlKCInK2Z1bGxfbGluaysnIik8XC9zY3JpcHQ+Jyk7DQp9DQoNCihmdW5jdGlvbigpICB7DQogICAgdmFyICBobSAgPSAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7DQogICAgaG0uc3JjICA9ICAiaHR0cHM6Ly9obS5iYWlkdS5jb20vaG0uanM/NTA3NTg5MTNlNmYwZGZjOWRlYWNiZmViY2UzNjM3ZTQiOw0KICAgIHZhciAgcyAgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyAgDQogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSwgIHMpOw0KICAgIA0KICAgIA0KICAgICQoJy5vdXRlci1saW5rJykuY2xpY2soZnVuY3Rpb24oKXsNCiAgICAJb3Blbl9uZXdfd2luZG93KCQodGhpcykuYXR0cignaHJlZicpKTsNCiAgICAJcmV0dXJuIGZhbHNlOw0KICAgIH0pOw0KfSkoKTsNCg0KLy/ngrnlh7vlm77moIcNCiAgICAgICAgZnVuY3Rpb24gTGluayhzaXRlX2NvZGUpIHsNCiAgICAgICAgICAgIC8v6I635Y+W6K+l56uZ54K56ZyA6KaB57qg6ZSZ6aG16Z2i55qEdXJs5Zyw5Z2ADQogICAgICAgICAgICB2YXIgdXJsID0gZ2V0Q3VyclVybCgpOw0KICAgICAgICAgICAgLy/ot7Povazoh7PnuqDplJnns7vnu5/loavlhpnpobXpnaIgDQogICAgICAgICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly96Znd6Z2wud3d3Lmdvdi5jbi9leHBvc3VyZS9qaXVjdW8uaHRtbD9zaXRlX2NvZGU9IiArIHNpdGVfY29kZSArICImdXJsPSIgKyBlbmNvZGVVUklDb21wb25lbnQodXJsKSk7DQogICAgICAgIH0NCiAgICAgICAgLy/ojrflj5bor6Xnq5nngrnpnIDopoHnuqDplJnpobXpnaLnmoR1cmzlnLDlnYANCiAgICAgICAgZnVuY3Rpb24gZ2V0Q3VyclVybCgpIHsNCiAgICAgICAgICAgIHZhciB1cmwgPSAiIjsNCiAgICAgICAgICAgIGlmIChwYXJlbnQgIT09IHdpbmRvdykgew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIHVybCA9IHdpbmRvdy50b3AubG9jYXRpb24uaHJlZjsNCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHVybCA9IHdpbmRvdy50b3AuZG9jdW1lbnQucmVmZXJyZXI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHVybC5sZW5ndGggPT0gMCkNCiAgICAgICAgICAgICAgICB1cmwgPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOw0KICAgICAgICAgICAgcmV0dXJuIHVybDsNCiAgICAgICAgfQ0KPC9zY3JpcHQ+IA0KPC9ib2R5Pg0KPC9odG1sPg==
76
- recorded_at: Thu, 30 Jun 2022 17:16:51 GMT
145
+ DQoNCg0KDQoNCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPuWbveWutuagh+WHhnxHQi9UIDIwMjIzLTIwMDY8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+DQo8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiIC8+DQo8bGluayBocmVmPSIuLi9jc3MvcWJjeC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQo8bGluayBocmVmPSIvYnpnay9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2J6Z2svanMvanF1ZXJ5LTEuMTEuMy5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0nL2J6Z2svanMvYm9vdHN0cmFwLmpzJz48L3NjcmlwdD4NCjxtZXRhIG5hbWU9InZpZXdwb3J0Ig0KCWNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBtYXhpbXVtLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCi5tdHJ7aGVpZ2h0OiAyNXB4O30NCmJvZHl7YmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTt9DQoudGl0bGV7Zm9udC13ZWlnaHQ6Ym9sZDt9DQoudGl0bGUsLmNvbnRlbnR7cGFkZGluZzoxMHB4IDA7Ym9yZGVyLXRvcDoxcHggI2RkZCBzb2xpZDt9ICANCi5zbWdnIGxpe3BhZGRpbmc6MCAyMnB4O21hcmdpbjoxNXB4IDA7bGluZS1oZWlnaHQ6MjVweDt9DQouc3RhdGVtZW50VWwgbGl7YmFja2dyb3VuZDp1cmwoJy4uL2ltYWdlcy9wb2ludC5wbmcnKSBuby1yZXBlYXQgOHB4IDZweDtsZXR0ZXItc3BhY2luZzoxcHg7fQ0KLm1rMSAubGFiZWx7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjEycHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6NHB4IDZweDtjdXJzb3I6cG9pbnRlcjt9DQo8L3N0eWxlPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KY29uc3Qgc3VwcG9ydGVkID0gKGZ1bmN0aW9uKCkgew0KICAgIHRyeSB7DQogICAgICAgIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgPT09ICJvYmplY3QiDQogICAgICAgICAgICAmJiB0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUgPT09ICJmdW5jdGlvbiIpIHsNCiAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVWludDhBcnJheS5vZigweDAsIDB4NjEsIDB4NzMsIDB4NmQsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDApKTsNCiAgICAgICAgICAgIGlmIChtb2R1bGUgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5Nb2R1bGUpDQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUpIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuSW5zdGFuY2U7DQogICAgICAgIH0NCiAgICB9IGNhdGNoIChlKSB7DQogICAgfQ0KICAgIHJldHVybiBmYWxzZTsNCn0pKCk7DQoNClN0cmluZy5wcm90b3R5cGUudHJpbT1mdW5jdGlvbigpew0KICAgIHJldHVybiB0aGlzLnJlcGxhY2UoLyheXHMqKXwoXHMqJCkvZywgIiIpOw0KIH0NCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQoJJCgnLnh6X2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXZhciBlbCA9ICQodGhpcyk7DQoJCXNob3dHYihlbC5hdHRyKCdkYXRhLXZhbHVlJyksJ2Rvd25sb2FkJyk7DQoJfSk7DQoJJCgnLmNrX2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXZhciBlbCA9ICQodGhpcyk7DQoJCWlmKHN1cHBvcnRlZCkgew0KCQkJc2hvd0diKGVsLmF0dHIoJ2RhdGEtdmFsdWUnKSwnb25saW5lJyk7DQoJCX0gZWxzZSB7DQoJCQkkKCcjbXlNb2RhbCcpLm1vZGFsKCdzaG93Jyk7DQoJCX0NCgl9KTsNCgkkKCcuZm8nKS5jbGljayhmdW5jdGlvbigpIHsNCgkJdmFyIGVsID0gJCh0aGlzKTsNCgkJc2hvd0diKGVsLmF0dHIoJ2RhdGEtdmFsdWUnKSk7DQoJfSk7DQoJJCgnLmZrX2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXZhciBlbCA9ICQodGhpcyk7DQoJCXdpbmRvdy5vcGVuKCcvYnpnay9nYi9yZXZpZXc/aGNubz0nK2VsLmF0dHIoJ2RhdGEtdmFsdWUnKSk7DQoJfSk7DQoJLyogJCgnLmNvbnRlbnQnKS5lYWNoKGZ1bmN0aW9uKCl7IA0KCQlpZigkKHRoaXMpLmh0bWwoKS50cmltKCk9PScnKXsgDQoJCQkkKHRoaXMpLmhpZGUoKTsgDQoJCQkkKHRoaXMpLnByZXYoKS5oaWRlKCkNCgkJCQ0KCQl9DQoJfSk7ICovDQp9KTsNCmZ1bmN0aW9uIHNob3dHYihnYkNvZGUsdHlwZSl7DQoJdmFyIHVybCA9ICJodHRwOi8vYy5nYjY4OC5jbi9iemdrL2diL3Nob3dHYj90eXBlPSIrdHlwZSsiJmhjbm89IiArIGdiQ29kZTsNCgl3aW5kb3cub3Blbih1cmwpOw0KfQ0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keT4NCgkNCg0KPHN0eWxlPg0KCUBtZWRpYSAobWF4LXdpZHRoOiA1NjhweCkgew0KCSAgI3hzTWFpbkxvZ297d2lkdGg6OTAlO3otaW5kZXg6MTAwMDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MTVweDtkaXNwbGF5OmJsb2NrfQ0KCSAgI3hzU3ViTG9nb3tmbG9hdDpyaWdodDt6LWluZGV4OjEwMDA7bWFyZ2luOjVweCA1JTt9DQoJICAjeHNRd0xvZ297ZmxvYXQ6bGVmdDt3aWR0aDo1MCU7ei1pbmRleDoxMDAwO21hcmdpbjo3cHggNSU7fSANCgl9DQoJQG1lZGlhIChtaW4td2lkdGg6IDU2OHB4KXsNCgkgICN4c01haW5Mb2dve2Zsb2F0OmxlZnQ7d2lkdGg6OTAlO3otaW5kZXg6MTAwMDttYXJnaW4tdG9wOjE1cHg7bWFyZ2luLWxlZnQ6NiU7fQ0KCSAgI3hzU3ViTG9nb3t3aWR0aDozMyU7ei1pbmRleDoxMDAwO21hcmdpbi10b3A6NDBweDttYXJnaW4tcmlnaHQ6MSU7fQ0KCSAgI3hzUXdMb2dve2Zsb2F0OnJpZ2h0O3dpZHRoOjkwJTt6LWluZGV4OjEwMDA7bWFyZ2luOjE1cHggNSU7bWFyZ2luLWxlZnQ6NiU7fQ0KCSAgLnhzRGl2e3dpZHRoOjY1JX0NCgl9IA0KCS5wb3BvdmVyIC5wb3BvdmVyLXRpdGxle3RleHQtYWxpZ246Y2VudGVyO30gDQoJI3NhY0xvZ297dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjEycHg7ei1pbmRleDoxMDAwO3RvcDoxMHB4O2xlZnQ6MjBweDtjb2xvcjojRTRFNEU0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO30NCgkjc2FjTG9nbzpob3Zlcntjb2xvcjp3aGl0ZTt0ZXh0LWRlY29yYXRpb246bm9uZTt9DQoJI3NhY0xvZ286dmlzaXRlZHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0NCjwvc3R5bGU+DQo8c2NyaXB0Pg0KJChmdW5jdGlvbigpew0KCSQoJyNtb2JpbGVFd20nKS5wb3BvdmVyKHtodG1sOnRydWV9KTsNCn0pDQo8L3NjcmlwdD4gDQo8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9iYW5uZXJiZy5qcGcpOyI+DQoJDQoJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCgkJDQoJCTxkaXYgY2xhc3M9InJvdyBoaWRkZW4teHMgaGlkZGVuLXNtIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjE4MHB4OyI+IA0KCQkJDQoJCQk8aW1nIHNyYz0iLi4vaW1hZ2VzL21haW4tbG9nby5wbmciIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7dG9wOjUwcHg7bGVmdDozMHB4OyIvPiAgDQoJCQk8aW1nIHNyYz0iLi4vaW1hZ2VzL3F3ZmIucG5nIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RvcDoxMTVweDtsZWZ0OjMwcHg7Ii8+ICANCgkJCTxpbWcgc3JjPSIuLi9pbWFnZXMvc3ViLWxvZ28ucG5nIiB3aWR0aD0iMzA0IiBoZWlnaHQ9IjUzIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RvcDo2NXB4O3JpZ2h0OjQwcHg7Ii8+IA0KCQkJPGltZyBzcmM9Ii4uL2ltYWdlcy9sb2dvNC5qcGciIHdpZHRoPSI4MDIiIGhlaWdodD0iMTgwIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk7dG9wOjA7cmlnaHQ6MDsiLz4gDQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJyb3cgdmlzaWJsZS14cyB2aXNpYmxlLXNtIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uL2ltYWdlcy9sb2dvNC5qcGcnKSI+DQoJCQk8ZGl2IGNsYXNzPSJ4c0RpdiI+DQoJCQk8aW1nIGlkPSJ4c01haW5Mb2dvIiBzcmM9Ii4uL2ltYWdlcy9tYWluLWxvZ28ucG5nIiBzdHlsZT0iIi8+DQoJCQk8aW1nIGlkPSJ4c1F3TG9nbyIgc3JjPSIuLi9pbWFnZXMvcXdmYi5wbmciIHN0eWxlPSIiLz4gDQoJCQk8L2Rpdj4NCgkJCTxpbWcgaWQ9InhzU3ViTG9nbyIgc3JjPSIuLi9pbWFnZXMvc3ViLWxvZ28ucG5nIiB3aWR0aD0iMzAlIiBzdHlsZT0iIi8+IA0KCQk8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2Pg0KDQo8bmF2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWRlZmF1bHQgbmF2YmFyLXN0YXRpYy10b3AiIHJvbGU9Im5hdmlnYXRpb24iIHN0eWxlPSJiYWNrZ3JvdW5kOiMxMTU4ODM7Ym9yZGVyOjA7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmciPiAgDQoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQo8ZGl2IGNsYXNzPSJuYXZiYXItaGVhZGVyIiA+DQogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im5hdmJhci10b2dnbGUgY29sbGFwc2VkIiBzdHlsZT0ibWFyZ2luOjA7bWFyZ2luLXRvcDotMnB4O3BhZGRpbmc6NXB4OyIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI2JzLWV4YW1wbGUtbmF2YmFyLWNvbGxhcHNlLTEiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4NCiAgICAgICAgPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBuYXZpZ2F0aW9uPC9zcGFuPg0KICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KICAgICAgPC9idXR0b24+DQogICAgICA8YSBzdHlsZT0iZm9udC1zaXplOjE1cHg7IiBjbGFzcz0ibmF2YmFyLWJyYW5kICIgIGhyZWY9Ii9iemdrL2diL2luZGV4IiA+6aaWJm5ic3A76aG1PC9hPg0KICAgIDwvZGl2Pg0KDQogICAgPCEtLSBDb2xsZWN0IHRoZSBuYXYgbGlua3MsIGZvcm1zLCBhbmQgb3RoZXIgY29udGVudCBmb3IgdG9nZ2xpbmcgLS0+DQogICAgPGRpdiBjbGFzcz0iY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlIiBpZD0iYnMtZXhhbXBsZS1uYXZiYXItY29sbGFwc2UtMSI+DQogICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2Ij4NCiAgICAgICAgDQogICAgICAgIDxsaSBjbGFzcz0iIj48YSBocmVmPSIvYnpnay9nYi9zdGRfbGlzdF90eXBlP3AucDE9MSZwLnA5MD1jaXJjdWxhdGlvbl9kYXRlJnAucDkxPWRlc2MiPuW8uuWItuaAp+WbveWutuagh+WHhjwvYT48L2xpPg0KICAgICAgICA8bGkgY2xhc3M9IiI+PGEgaHJlZj0iL2J6Z2svZ2Ivc3RkX2xpc3RfdHlwZT9wLnAxPTImcC5wOTA9Y2lyY3VsYXRpb25fZGF0ZSZwLnA5MT1kZXNjIj7mjqjojZDmgKflm73lrrbmoIflh4Y8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9Ii9iemdrL2diL3N0ZF9saXN0X3R5cGU/cC5wMT0zJnAucDkwPWNpcmN1bGF0aW9uX2RhdGUmcC5wOTE9ZGVzYyI+5oyH5a+85oCn5oqA5pyv5paH5Lu2PC9hPjwvbGk+DQoJCQkJDQogICAgICAgIA0KICAgICAgPC91bD4NCiAgICAgIDx1bCBjbGFzcz0ibmF2IG5hdmJhci1uYXYgbmF2YmFyLXJpZ2h0Ij4NCiAgICAgIAkNCiAgICAgIAkNCiAgICAgIAkNCiAgICAgIAkNCiAgICAgIAk8bGkgY2xhc3M9IiI+PGEgaHJlZj0iL2J6Z2svZ2IvaGVscCI+5biu5YqpPC9hPjwvbGk+DQogICAgICAJPGxpIGNsYXNzPSIiPjxhIGhyZWY9Ii9iemdrL2diL2NvbnRhY3QiPuiBlOezu+aIkeS7rDwvYT48L2xpPg0KICAgICAgCQ0KICAgICAgPC91bD4NCiAgICAgIDwhLS0gPGZvcm0gY2xhc3M9Im5hdmJhci1mb3JtIG5hdmJhci1yaWdodCIgcm9sZT0ic2VhcmNoIiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyI+DQogICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbSIgc3R5bGU9IndpZHRoOjMwMHB4O21hcmdpbjowIGF1dG87bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6NHB4OyI+DQoJCQkJCQkJCQk8aW5wdXQgcGxhY2Vob2xkZXI9Iuivt+i+k+WFpeWFs+mUruWtlyIgb25rZXlkb3duPSJpZihldmVudC5rZXlDb2RlPT0xMykgc2VhcmNoKCcnLCQodGhpcykudmFsKCkpOyIgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgYXJpYS1sYWJlbD0iLi4uIj4NCgkJCQkJCQkJCTxzcGFuIGNsYXNzPSJpbnB1dC1ncm91cC1idG4iPg0KCQkJCQkJCQkJCTxidXR0b24gaWQ9InNlYXJjaEJ0biIgY2xhc3M9ImJ0biBidG4td2FybmluZyIgdHlwZT0iYnV0dG9uIiA+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNlYXJjaCI+PC9zcGFuPg0KCQkJCQkJCQkJCTwvYnV0dG9uPg0KCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCiAgICAgIDwvZm9ybT4gLS0+DQogICAgPC9kaXY+PCEtLSAvLm5hdmJhci1jb2xsYXBzZSAtLT4NCiAgPC9kaXY+PCEtLSAvLmNvbnRhaW5lci1mbHVpZCAtLT4NCgk8L25hdj4NCgk8ZGl2IGNsYXNzPSJyZXBiZzEiIHN0eWxlPSJtaW4taGVpZ2h0OmluaXRpYWw7Ij4NCgk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCTxkaXYgY2xhc3M9InJvdyI+DQoJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiI+DQoJCTxkaXYgY2xhc3M9ImJvcjIiPg0KCQkNCgkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0ibWsxIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIg0KCQkJY2VsbHBhZGRpbmc9IjAiPg0KCQkJPHRyPg0KCQkJCTx0ZCB3aWR0aD0iNTYwIiBhbGlnbj0ibGVmdCI+PGgxPuagh+WHhuWPt++8mkdCL1QgMjAyMjMtMjAwNiA8L2gxPjwvdGQ+DQoJCQk8L3RyPg0KCQk8L3RhYmxlPg0KCQk8dGFibGUgd2lkdGg9IjEwMCUiIGNsYXNzPSJ0ZGxpc3QiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4NCiAgCQkJPHRyPg0KICAgIAkJCTx0ZD7kuK3mlofmoIflh4blkI3np7DvvJo8Yj7mo4nnn63nu5I8L2I+PC90ZD4NCiAgICAJCQkNCiAgCQkJPC90cj4NCiAJCQk8dHI+DQogICAgCQkJPHRkPuiLseaWh+agh+WHhuWQjeensO+8mkNvdHRvbiBsaW50ZXI8L3RkPg0KICAgIAkJPC90cj4NCiAgICAJCTx0cj4NCgkJCQk8dGQgYWxpZ249ImxlZnQiPuagh+WHhueKtuaAge+8mjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyIgY2xhc3M9InRleHQtZGFuZ2VyIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAxMHB4OyI+6KKr5Luj5pu/PC9zcGFuPjwvdGQ+DQoJCQk8L3RyPg0KICAgIAkJPHRyPg0KICAgIAkJCTx0ZCBzdHlsZT0icGFkZGluZy10b3A6MjBweDsiPg0KCQkJCQkgDQoJCQkJCSAgDQoJCQkJCSAgPGJ1dHRvbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjIwcHgiIGRhdGEtdmFsdWU9IjA4M0I0OEZBNzJEQkQzQjlCREU3NDUwN0JDMzE3MzZBIiBjbGFzcz0iYnRuIGZrX2J0biBidG4tc20gYnRuLXN1Y2Nlc3MiPuWunuaWveS/oeaBr+WPjemmiDwvYnV0dG9uPg0KCQkJCQk8c3BhbiBjbGFzcz0idGV4dC1kYW5nZXIiID4NCgkJCQkJIA0KCQkJCQkgCQ0KCQkJCQkgCSAJ6KKr5Luj5pu/5Y+K5bqf5q2i5qCH5YeG5LiN5o+Q5L6b5qCH5YeG5paH5pys6ZiF6K+75pyN5YqhIA0KCQkJCQkgCSAgDQoJCQkJCSAJDQoJCQkJCSANCgkJCQkJPC9zcGFuPg0KICAgIAkJCTwvdGQ+DQogICAgCQk8L3RyPg0KICAgICAgPC90YWJsZT4NCgkJDQoJCTxkaXYgY2xhc3M9ImxpbmUiPjwvZGl2Pg0KCQk8ZGl2IGNsc3NzPSJyb3cgZGV0YWlsIj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMiB0aXRsZSI+DQoJCQnkuK3lm73moIflh4bliIbnsbvlj7fvvIhDQ1PvvIkNCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC00IGNvbnRlbnQiPg0KCQkJQjMyDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMiB0aXRsZSI+DQoJCQnlm73pmYXmoIflh4bliIbnsbvlj7fvvIhJQ1PvvIkNCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC00IGNvbnRlbnQiPg0KCQkJNTkuMDYwLjEwDQoJCQk8L2Rpdj4NCgkJCTxkaXYgc3R5bGU9ImNsZWFyOmJvdGgiPjwvZGl2Pg0KCQk8L2Rpdj4NCgkJPGRpdiBjbHNzcz0icm93Ij4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMiB0aXRsZSI+DQoJCQnlj5HluIPml6XmnJ8NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC00IGNvbnRlbnQiPg0KCQkJMjAwNi0wMy0xMA0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5a6e5pa95pel5pyfDQoJCQk8L2Rpdj4NCgkJCSA8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTQgY29udGVudCI+DQoJCQkyMDA2LTA5LTAxDQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJCTxkaXYgY2xzc3M9InJvdyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5Li7566h6YOo6ZeoDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtNCBjb250ZW50Ij4NCgkJCeWbveWutuW4guWcuuebkeedo+euoeeQhuaAu+WxgA0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5b2S5Y+j6YOo6ZeoDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtNCBjb250ZW50Ij4NCgkJCeWbveWutuW4guWcuuebkeedo+euoeeQhuaAu+WxgA0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCQk8ZGl2IGNsc3NzPSJyb3ciPg0KCQkJPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1tZC0yIHRpdGxlIj4NCgkJCeWPkeW4g+WNleS9jQ0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTEwIGNvbnRlbnQiPg0KCQkJ5Lit5Y2O5Lq65rCR5YWx5ZKM5Zu95Zu95a626LSo6YeP55uR552j5qOA6aqM5qOA55ar5oC75bGA44CB5Lit5Zu95Zu95a625qCH5YeG5YyW566h55CG5aeU5ZGY5LyaDQoJCQk8L2Rpdj4NCgkJCTxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4NCgkJPC9kaXY+DQoJCTxkaXYgY2xzc3M9InJvdyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wteHMtMTIgY29sLW1kLTIgdGl0bGUiPg0KCQkJ5aSH5rOoDQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtbWQtMTAgY29udGVudCI+DQoJCQkyMDA2LTA5LTAx5a6e5pa9DQoJCQk8L2Rpdj4NCgkJCQ0KCQk8L2Rpdj4NCgkJPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg0KCQkNCgkJDQoJPC9kaXY+DQoJPC9kaXY+DQoJPC9kaXY+DQoJPC9kaXY+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0ibW9kYWwgYnMtZXhhbXBsZS1tb2RhbC1zbSIgaWQ9Im15TW9kYWwiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9Im15TW9kYWxMYWJlbCI+DQoJCTxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyIgcm9sZT0iZG9jdW1lbnQiPg0KCQkJPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQoJCQkJPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4NCgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4mdGltZXM7PC9zcGFuPjwvYnV0dG9uPg0KCQkJCQk8aDQgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0ibXlNb2RhbExhYmVsIj7lnKjnur/pooTop4jmj5DnpLo8L2g0Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPiANCgkJCQkJ5b2T5YmN5rWP6KeI5Zmo5pqC5LiN5pSv5oyB5qCH5YeG5YWo5paH5Zyo57q/6aKE6KeI5pyN5Yqh77yM6K+35L2/55So546w5Luj5rWP6KeI5Zmo77yIQ2hyb21l44CBRmlyZWZveOOAgU9wZXJh44CBTWljcm9zb2Z0IEVkZ2XjgIEzNjDlronlhajmtY/op4jlmajjgIHmkJzni5fmtY/op4jlmajjgIHnjI7osbnmtY/op4jlmajjgIHlgrLmuLjmtY/op4jlmajnrYnvvInph43mlrDmiZPlvIDlvZPliY3pobXpnaLnu6fnu63ov5vooYzmoIflh4blhajmlofpooTop4jjgIINCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+55+l6YGT5LqGPC9idXR0b24+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJDQo8ZGl2IGNsYXNzPSJmb290Ij4NCjx0YWJsZSBzdHlsZT0ibWFyZ2luOiAwIGF1dG87Ij4NCjx0cj4NCjx0ZD4NCgnniYjmnYPmiYDmnInvvJrlm73lrrbmoIflh4bljJbnrqHnkIblp5TlkZjkvJogPGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+5LqsSUNQ5aSHMDkwMDEyMznlj7c8YnIvPiDnvZHnq5nmioDmnK/mlK/mjIHvvJrlm73lrrbluILlnLrnm5HnnaPnrqHnkIbmgLvlsYDlm73lrrbmoIflh4bmioDmnK/lrqHor4TkuK3lv4MgPGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+DQoJ5pSv5oyB55S16K+d77yaMDEwLTgyMjYxMDU2PGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+PGJyIGNsYXNzPSJoaWRkZW4tbGcgaGlkZGVuLW1kIi8+DQo8L3RkPg0KPHRkPg0KPGEgc3R5bGU9Im1hcmdpbi1sZWZ0OjE1cHg7IiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iamF2YXNjcmlwdDpyZXR1cm4gdm9pZCgwKTsiIG9uY2xpY2s9IkxpbmsoJ2JtMzEzNzAwMDEnKSI+PGltZyBzcmM9Ii9iemdrLy9pbWFnZXMvaml1Y3VvLnBuZyIgc3R5bGU9IndpZHRoOiAxMjBweDsiLz48L2E+DQo8YSBzdHlsZT0ibWFyZ2luLWxlZnQ6MTVweDsiIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2JzenMuY29uYWMuY24vc2l0ZW5hbWU/bWV0aG9kPXNob3cmaWQ9QTFCODYwMDZBQTczNkNEMkUwNTMxMDI5MUFBQzRDQzciPjxpbWcgc3JjPSIvYnpnay8vaW1hZ2VzL2R6amcucG5nIiAvPjwvYT4NCjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjwvZGl2Pg0KPHNjcmlwdD4NCnZhciAgX2htdCAgPSAgX2htdCAgfHwgIFtdOw0KDQpmdW5jdGlvbiBvcGVuX25ld193aW5kb3coZnVsbF9saW5rKXsNCgl3aW5kb3cub3BlbignamF2YXNjcmlwdDp3aW5kb3cubmFtZTsnLCAnPHNjcmlwdD5sb2NhdGlvbi5yZXBsYWNlKCInK2Z1bGxfbGluaysnIik8XC9zY3JpcHQ+Jyk7DQp9DQoNCihmdW5jdGlvbigpICB7DQogICAgdmFyICBobSAgPSAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7DQogICAgaG0uc3JjICA9ICAiaHR0cHM6Ly9obS5iYWlkdS5jb20vaG0uanM/NTA3NTg5MTNlNmYwZGZjOWRlYWNiZmViY2UzNjM3ZTQiOw0KICAgIHZhciAgcyAgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyAgDQogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSwgIHMpOw0KICAgIA0KICAgIA0KICAgICQoJy5vdXRlci1saW5rJykuY2xpY2soZnVuY3Rpb24oKXsNCiAgICAJb3Blbl9uZXdfd2luZG93KCQodGhpcykuYXR0cignaHJlZicpKTsNCiAgICAJcmV0dXJuIGZhbHNlOw0KICAgIH0pOw0KfSkoKTsNCg0KLy/ngrnlh7vlm77moIcNCiAgICAgICAgZnVuY3Rpb24gTGluayhzaXRlX2NvZGUpIHsNCiAgICAgICAgICAgIC8v6I635Y+W6K+l56uZ54K56ZyA6KaB57qg6ZSZ6aG16Z2i55qEdXJs5Zyw5Z2ADQogICAgICAgICAgICB2YXIgdXJsID0gZ2V0Q3VyclVybCgpOw0KICAgICAgICAgICAgLy/ot7Povazoh7PnuqDplJnns7vnu5/loavlhpnpobXpnaIgDQogICAgICAgICAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly96Znd6Z2wud3d3Lmdvdi5jbi9leHBvc3VyZS9qaXVjdW8uaHRtbD9zaXRlX2NvZGU9IiArIHNpdGVfY29kZSArICImdXJsPSIgKyBlbmNvZGVVUklDb21wb25lbnQodXJsKSk7DQogICAgICAgIH0NCiAgICAgICAgLy/ojrflj5bor6Xnq5nngrnpnIDopoHnuqDplJnpobXpnaLnmoR1cmzlnLDlnYANCiAgICAgICAgZnVuY3Rpb24gZ2V0Q3VyclVybCgpIHsNCiAgICAgICAgICAgIHZhciB1cmwgPSAiIjsNCiAgICAgICAgICAgIGlmIChwYXJlbnQgIT09IHdpbmRvdykgew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIHVybCA9IHdpbmRvdy50b3AubG9jYXRpb24uaHJlZjsNCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHVybCA9IHdpbmRvdy50b3AuZG9jdW1lbnQucmVmZXJyZXI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHVybC5sZW5ndGggPT0gMCkNCiAgICAgICAgICAgICAgICB1cmwgPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOw0KICAgICAgICAgICAgcmV0dXJuIHVybDsNCiAgICAgICAgfQ0KPC9zY3JpcHQ+IA0KPC9ib2R5Pg0KPC9odG1sPg==
146
+ recorded_at: Sat, 20 Aug 2022 16:00:52 GMT
77
147
  recorded_with: VCR 6.1.0
@@ -23,7 +23,7 @@ http_interactions:
23
23
  Connection:
24
24
  - keep-alive
25
25
  Content-Length:
26
- - '331'
26
+ - '329'
27
27
  Cache-Control:
28
28
  - max-age=300
29
29
  Content-Security-Policy:
@@ -31,7 +31,7 @@ http_interactions:
31
31
  Content-Type:
32
32
  - text/plain; charset=utf-8
33
33
  Etag:
34
- - W/"b1eac519d4e68ff52844599c51bfe47fc81a6b71ac36762aede48fa0694673ab"
34
+ - W/"6144cb99b96ca0b912fc503025bf900d0d407186a80a5604a7583d0e1351ea0e"
35
35
  Strict-Transport-Security:
36
36
  - max-age=31536000
37
37
  X-Content-Type-Options:
@@ -41,29 +41,29 @@ http_interactions:
41
41
  X-Xss-Protection:
42
42
  - 1; mode=block
43
43
  X-Github-Request-Id:
44
- - 8856:BE8F:1780FC:194470:62BEC912
44
+ - E998:8649:28370B:2D40C5:630104F9
45
45
  Accept-Ranges:
46
46
  - bytes
47
47
  Date:
48
- - Fri, 01 Jul 2022 10:14:42 GMT
48
+ - Sat, 20 Aug 2022 15:59:53 GMT
49
49
  Via:
50
50
  - 1.1 varnish
51
51
  X-Served-By:
52
- - cache-vie6381-VIE
52
+ - cache-vie6328-VIE
53
53
  X-Cache:
54
54
  - MISS
55
55
  X-Cache-Hits:
56
56
  - '0'
57
57
  X-Timer:
58
- - S1656670482.232463,VS0,VE169
58
+ - S1661011193.493366,VS0,VE172
59
59
  Vary:
60
60
  - Authorization,Accept-Encoding,Origin
61
61
  Access-Control-Allow-Origin:
62
62
  - "*"
63
63
  X-Fastly-Request-Id:
64
- - ade89169bb67fa2a97865991de3b85c75e7fa6d5
64
+ - d4e3245c27ac50448537487b5d26e624924c429e
65
65
  Expires:
66
- - Fri, 01 Jul 2022 10:19:42 GMT
66
+ - Sat, 20 Aug 2022 16:04:53 GMT
67
67
  Source-Age:
68
68
  - '0'
69
69
  body:
@@ -85,7 +85,7 @@ http_interactions:
85
85
  docnumber: service-names-port-numbers
86
86
  date:
87
87
  - type: updated
88
- value: '2021-11-12'
88
+ value: '2022-08-16'
89
89
  contributor:
90
90
  - organization:
91
91
  name:
@@ -97,6 +97,6 @@ http_interactions:
97
97
  - en
98
98
  script:
99
99
  - Latn
100
- fetched: '2022-07-01'
101
- recorded_at: Fri, 01 Jul 2022 10:14:42 GMT
100
+ fetched: '2022-08-20'
101
+ recorded_at: Sat, 20 Aug 2022 15:59:53 GMT
102
102
  recorded_with: VCR 6.1.0