relaton 1.7.8 → 1.8.pre4

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 -1
  3. data/.rubocop.yml +1 -1
  4. data/lib/relaton.rb +1 -0
  5. data/lib/relaton/config.rb +4 -3
  6. data/lib/relaton/db.rb +110 -53
  7. data/lib/relaton/db_cache.rb +55 -99
  8. data/lib/relaton/registry.rb +2 -1
  9. data/lib/relaton/util.rb +2 -0
  10. data/lib/relaton/version.rb +1 -1
  11. data/relaton.gemspec +22 -19
  12. data/spec/relaton/db_cache_spec.rb +2 -2
  13. data/spec/relaton/db_spec.rb +17 -0
  14. data/spec/relaton/regirtry_spec.rb +9 -1
  15. data/spec/relaton_spec.rb +48 -7
  16. data/spec/spec_helper.rb +4 -0
  17. data/spec/vcr_cassetes/19133_2005.yml +17 -17
  18. data/spec/vcr_cassetes/api_relaton_org.yml +51 -0
  19. data/spec/vcr_cassetes/api_relaton_org_unavailable.yml +182 -0
  20. data/spec/vcr_cassetes/async_fetch.yml +2046 -1615
  21. data/spec/vcr_cassetes/bsi_bs_en_iso_8848.yml +17 -17
  22. data/spec/vcr_cassetes/cc_dir_10005_2019.yml +16 -16
  23. data/spec/vcr_cassetes/cen_en_10160_1999.yml +249 -0
  24. data/spec/vcr_cassetes/cie_001_1980.yml +7 -7
  25. data/spec/vcr_cassetes/ecma_6.yml +7 -7
  26. data/spec/vcr_cassetes/fisp_140.yml +8 -10
  27. data/spec/vcr_cassetes/gb_t_20223_2006.yml +11 -11
  28. data/spec/vcr_cassetes/iec_60050_102_2007.yml +28 -28
  29. data/spec/vcr_cassetes/iec_combined_included.yml +85 -85
  30. data/spec/vcr_cassetes/ieee_528_2019.yml +37 -37
  31. data/spec/vcr_cassetes/iho_b_11.yml +7 -7
  32. data/spec/vcr_cassetes/iso_111111119115_1.yml +4 -4
  33. data/spec/vcr_cassetes/iso_19115.yml +17 -17
  34. data/spec/vcr_cassetes/iso_19115_1.yml +17 -17
  35. data/spec/vcr_cassetes/iso_19115_1_2.yml +36 -36
  36. data/spec/vcr_cassetes/iso_awi_14093.yml +182 -0
  37. data/spec/vcr_cassetes/iso_combined_applied.yml +36 -36
  38. data/spec/vcr_cassetes/iso_combined_included.yml +35 -35
  39. data/spec/vcr_cassetes/itu_combined_included.yml +741 -669
  40. data/spec/vcr_cassetes/ogc_19_025r1.yml +1247 -1163
  41. data/spec/vcr_cassetes/omg_ami4ccm_1_0.yml +43 -0
  42. data/spec/vcr_cassetes/rfc_8341.yml +7 -7
  43. data/spec/vcr_cassetes/sp_800_38b.yml +8 -10
  44. data/spec/vcr_cassetes/un_rtade_cefact_2004_32.yml +29 -29
  45. data/spec/vcr_cassetes/w3c_json_ld11.yml +17 -17
  46. metadata +91 -46
  47. data/spec/vcr_cassetes/iso_awi_24229.yml +0 -182
  48. data/spec/vcr_cassetes/ogm_ami4ccm_1_0.yml +0 -43
@@ -1,43 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://www.omg.org/spec/AMI4CCM/1.0
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - "*/*"
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 200
19
- message: ''
20
- headers:
21
- Date:
22
- - Wed, 21 Apr 2021 09:46:43 GMT
23
- Server:
24
- - Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3
25
- Cache-Control:
26
- - max-age=86400, public
27
- Etag:
28
- - W/"0eaeb6b799537314ea45749cc9311925d"
29
- Vary:
30
- - accept-encoding
31
- Content-Type:
32
- - text/html;charset=UTF-8
33
- Content-Language:
34
- - en-US
35
- Transfer-Encoding:
36
- - chunked
37
- body:
38
- encoding: ASCII-8BIT
39
- string: !binary |-
40
- PCFET0NUWVBFIEhUTUw+CjxodG1sIGxhbmc9ImVuIiBjbGFzcz0ianMgbm8tdG91Y2ggY3NzdHJhbnNmb3JtczNkIGNzc3RyYW5zaXRpb25zIj4KCgoKCgoKCgoKCgo8aGVhZD4KICAgIDx0aXRsZT5BYm91dCB0aGUgQXN5bmNocm9ub3VzIE1ldGhvZCBJbnZvY2F0aW9uIGZvciBDQ00gU3BlY2lmaWNhdGlvbiBWZXJzaW9uIDEuMDwvdGl0bGU+CiAgICA8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vanNvbiIgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vMS4wL0Fib3V0LUFNSTRDQ00vIi8+CiAgICAKICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNLzEuMC9BYm91dC1BTUk0Q0NNLyIvPgogICAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3JkZit4bWwiIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNLzEuMC9BYm91dC1BTUk0Q0NNLyIvPgogICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj5bIHsKICAiQGlkIiA6ICJodHRwOi8vd3d3Lm9tZy5vcmcvdGVjaHByb2Nlc3MvYWIvU3BlY2lmaWNhdGlvbk1ldGFkYXRhL2NhdGVnb3J5IiwKICAiQHR5cGUiIDogWyAiaHR0cDovL3d3dy53My5vcmcvMjAwMi8wNy9vd2wjQW5ub3RhdGlvblByb3BlcnR5IiBdCn0sIHsKICAiQGlkIiA6ICJodHRwOi8vd3d3Lm9tZy5vcmcvdGVjaHByb2Nlc3MvYWIvU3BlY2lmaWNhdGlvbk1ldGFkYXRhL2NyZWF0aW9uRGF0ZSIsCiAgIkB0eXBlIiA6IFsgImh0dHA6Ly93d3cudzMub3JnLzIwMDIvMDcvb3dsI0Fubm90YXRpb25Qcm9wZXJ0eSIgXQp9LCB7CiAgIkBpZCIgOiAiaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vIiwKICAiQHR5cGUiIDogWyAiaHR0cDovL3d3dy53My5vcmcvMjAwMi8wNy9vd2wjTmFtZWRJbmRpdmlkdWFsIiwgImh0dHA6Ly93d3cub21nLm9yZy90ZWNocHJvY2Vzcy9hYi9TcGVjaWZpY2F0aW9uTWV0YWRhdGEvU3BlY2lmaWNhdGlvbiIgXSwKICAiaHR0cDovL3d3dy5vbWcub3JnL3RlY2hwcm9jZXNzL2FiL1NwZWNpZmljYXRpb25NZXRhZGF0YS9jYXRlZ29yeSIgOiBbIHsKICAgICJAdmFsdWUiIDogImNvbXBvbmVudC1hcmNoaXRlY3R1cmUiCiAgfSwgewogICAgIkB2YWx1ZSIgOiAiY29yYmEtcGxhdGZvcm0iCiAgfSwgewogICAgIkB2YWx1ZSIgOiAiZG9tYWluIgogIH0gXSwKICAiaHR0cDovL3d3dy5vbWcub3JnL3RlY2hwcm9jZXNzL2FiL1NwZWNpZmljYXRpb25NZXRhZGF0YS9wdWJsaWNhdGlvbkRhdGUiIDogWyB7CiAgICAiQHR5cGUiIDogImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2RhdGVUaW1lIiwKICAgICJAdmFsdWUiIDogIjIwMTMtMDMtMzFUMDA6MDA6MDAtMDQwMCIKICB9IF0sCiAgImh0dHA6Ly93d3cub21nLm9yZy90ZWNocHJvY2Vzcy9hYi9TcGVjaWZpY2F0aW9uTWV0YWRhdGEvc3BlY2lmaWNhdGlvbkFiYnJldmlhdGlvbiIgOiBbIHsKICAgICJAdmFsdWUiIDogIkFNSTRDQ00iCiAgfSBdLAogICJodHRwOi8vd3d3Lm9tZy5vcmcvdGVjaHByb2Nlc3MvYWIvU3BlY2lmaWNhdGlvbk1ldGFkYXRhL3NwZWNpZmljYXRpb25BYnN0cmFjdCIgOiBbIHsKICAgICJAdmFsdWUiIDogIlRoaXMgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIGEgbWVjaGFuaXNtIHRvIHBlcmZvcm0gYXN5bmNocm9ub3VzIG1ldGhvZCBpbnZvY2F0aW9uIGZvciBDQ00gKEFNSTRDQ00pLiIKICB9IF0sCiAgImh0dHA6Ly93d3cub21nLm9yZy90ZWNocHJvY2Vzcy9hYi9TcGVjaWZpY2F0aW9uTWV0YWRhdGEvc3BlY2lmaWNhdGlvblRpdGxlIiA6IFsgewogICAgIkB2YWx1ZSIgOiAiQXN5bmNocm9ub3VzIE1ldGhvZCBJbnZvY2F0aW9uIGZvciBDQ00iCiAgfSBdLAogICJodHRwOi8vd3d3Lm9tZy5vcmcvdGVjaHByb2Nlc3MvYWIvU3BlY2lmaWNhdGlvbk1ldGFkYXRhL3NwZWNpZmljYXRpb25VUkwiIDogWyB7CiAgICAiQGlkIiA6ICJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS9BYm91dC1BTUk0Q0NNLyIKICB9IF0KfSwgewogICJAaWQiIDogImh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNL0Fib3V0LUFNSTRDQ00vIiwKICAiQHR5cGUiIDogWyAiaHR0cDovL3d3dy53My5vcmcvMjAwMi8wNy9vd2wjT250b2xvZ3kiIF0sCiAgImh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9saWNlbnNlIiA6IFsgewogICAgIkBpZCIgOiAiaHR0cDovL3d3dy5vbWcub3JnL3RlY2hwcm9jZXNzL2FiL1NwZWNpZmljYXRpb25NZXRhZGF0YS9NSVRMaWNlbnNlIgogIH0gXSwKICAiaHR0cDovL3d3dy5vbWcub3JnL3RlY2hwcm9jZXNzL2FiL1NwZWNpZmljYXRpb25NZXRhZGF0YS9jcmVhdGlvbkRhdGUiIDogWyB7CiAgICAiQHR5cGUiIDogImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2RhdGVUaW1lIiwKICAgICJAdmFsdWUiIDogIjIwMTMtMDMtMzFUMDA6MDA6MDAtMDQwMCIKICB9IF0sCiAgImh0dHA6Ly93d3cub21nLm9yZy90ZWNocHJvY2Vzcy9hYi9TcGVjaWZpY2F0aW9uTWV0YWRhdGEvZmlsZW5hbWUiIDogWyB7CiAgICAiQHZhbHVlIiA6ICJBYm91dC1BTUk0Q0NNIgogIH0gXSwKICAiaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hI2xhYmVsIiA6IFsgewogICAgIkB2YWx1ZSIgOiAiQWJvdXQgdGhlIEFzeW5jaHJvbm91cyBNZXRob2QgSW52b2NhdGlvbiBmb3IgQ0NNIFNwZWNpZmljYXRpb24gVmVyc2lvbiAxLjAiCiAgfSBdLAogICJodHRwOi8vd3d3LnczLm9yZy8yMDAyLzA3L293bCNpbXBvcnRzIiA6IFsgewogICAgIkBpZCIgOiAiaHR0cDovL3d3dy5vbWcub3JnL3RlY2hwcm9jZXNzL2FiL1NwZWNpZmljYXRpb25NZXRhZGF0YS8iCiAgfSBdLAogICJodHRwOi8vd3d3LnczLm9yZy8yMDAyLzA3L293bCN2ZXJzaW9uSVJJIiA6IFsgewogICAgIkBpZCIgOiAiaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vMS4wL0Fib3V0LUFNSTRDQ00vIgogIH0gXSwKICAiaHR0cDovL3d3dy53My5vcmcvMjAwMi8wNy9vd2wjdmVyc2lvbkluZm8iIDogWyB7CiAgICAiQHZhbHVlIiA6ICJHZW5lcmF0ZWQgb24gMjAyMS0wNC0xNVQxOTowMjoyNC0wNDAwIgogIH0gXQp9IF08L3NjcmlwdD4KCiAgICA8IS0tIEhFQUQgSU5DTFVERSBCRUdJTiAtLT4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+CgogICAgPCEtLSBNb2JpbGUgU3BlY2lmaWMgTWV0YXMKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPTAiPgoKICAgIDwhLS0gR29vZ2xlIFdlYiBGb250cwogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8bGluayBocmVmPSIvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9QW50b258TXVsaTozMDAsNDAwLDQwMGl0YWxpYywzMDBpdGFsaWN8T3N3YWxkIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KCiAgICA8IS0tIEdsb2JhbCBTaXRlIFRhZyAoZ3RhZy5qcykgLSBHb29nbGUgQW5hbHl0aWNzIC0tPgogICAgPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9VUEtMTA2OTQxNDg4LTEiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKICAgICAgICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKX07CiAgICAgICAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTsKICAgICAgICBndGFnKCdjb25maWcnLCAnVUEtMTA2OTQxNDg4LTEnKTsKICAgIDwvc2NyaXB0PgogICAgPCEtLSBHb29nbGUgQW5hbHl0aWNzIC0tPgoKICAgIDwhLS0gQ1NTCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDwhLS0gQmFzZSArIFZlbmRvcnMgQ1NTIC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3d3dy5vbWcub3JnL2Nzcy9ib290c3RyYXAubWluLmNzcyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvY3NzL2ZvbnRzL2ZvbnQtYXdlc29tZS9jc3MvZm9udC1hd2Vzb21lLmNzcyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvdmVuZG9yL293bC1jYXJvdXNlbC9vd2wuY2Fyb3VzZWwuY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy93d3cub21nLm9yZy92ZW5kb3Ivb3dsLWNhcm91c2VsL293bC50aGVtZS5jc3MiIG1lZGlhPSJzY3JlZW4iPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9tYWduaWZpYy1wb3B1cC9tYWduaWZpYy1wb3B1cC5jc3MiIG1lZGlhPSJzY3JlZW4iPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9tZWRpYWVsZW1lbnQvbWVkaWFlbGVtZW50cGxheWVyLmNzcyIgLz4KCiAgICA8IS0tIFRoZW1lIENTUy0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3d3dy5vbWcub3JnL2Nzcy90aGVtZS5jc3MiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3d3dy5vbWcub3JnL2Nzcy90aGVtZS1lbGVtZW50cy5jc3MiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3d3dy5vbWcub3JnL2Nzcy9hbmltYXRlLm1pbi5jc3MiPgoKICAgIDwhLS0gU2tpbiBDU1MgLS0+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvY3NzL3NraW5zL3RlYWwuY3NzIj4KCiAgICA8IS0tIEN1c3RvbSBDU1MtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy93d3cub21nLm9yZy9jc3MvY3VzdG9tLmNzcyI+CgogICAgPCEtLSBIZWFkIExpYnMgLS0+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvbW9kZXJuaXpyLmpzIj48L3NjcmlwdD4KCiAgICA8IS0tW2lmIGx0IElFIDldPgogICAgPHNjcmlwdCBzcmM9Imh0dHA6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJ2ZW5kb3IvcmVzcG9uZC5taW4uanMiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CgogICAgPCEtLVtpZiBJRV0+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9pZS5jc3MiPgogICAgPCFbZW5kaWZdLS0+CgogICAgPCEtLSBGYXZpY29ucwogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvaW1hZ2VzL2Zhdmljb24uaWNvIj4KICAgIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iLy93d3cub21nLm9yZy9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPgogICAgPGxpbmsgcmVsPSJpY29uIiBzaXplcz0iNzJ4NzIiIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIj4KICAgIDxsaW5rIHJlbD0iaWNvbiIgc2l6ZXM9IjExNHgxMTQiIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tMTE0eDExNC5wbmciPgogICAgPGxpbmsgcmVsPSJpY29uIiBzaXplcz0iMTQ0eDE0NCIgaHJlZj0iLy93d3cub21nLm9yZy9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xNDR4MTQ0LnBuZyI+CgogICAgPCEtLSBzb3J0YWJsZSB0YWJsZXMgLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvc29ydGFibGUvMC44LjAvanMvc29ydGFibGUubWluLmpzIiBpbnRlZ3JpdHk9InNoYTI1Ni1nQ3RkQTFjTEsyRWhRWkNNaGh2R3pVc1dNL2ZzeHRKMklJbVVKKzRVT1A4PSIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3NvcnRhYmxlLzAuOC4wL2Nzcy9zb3J0YWJsZS10aGVtZS1taW5pbWFsLm1pbi5jc3MiIGludGVncml0eT0ic2hhMjU2LWxVcGE1WnpLK2ZFSm5jNEx0ZUdlaEYvSUVZUWVhT012a0h4bjd5Y24xKzQ9IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiAvPjwhLS0gc29ydGFibGUgdGFibGVzIC0tPgoKICAgIDwhLS0gSW5zdGFuY2VCZWdpbkVkaXRhYmxlIG5hbWU9ImhlYWQiIC0tPgogICAgPCEtLSBJbnN0YW5jZUVuZEVkaXRhYmxlIC0tPgogICAgPHN0eWxlIGlkPSJmaXQtdmlkcy1zdHlsZSI+CiAgICAgICAgLmZsdWlkLXdpZHRoLXZpZGVvLXdyYXBwZXJ7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjA7fQogICAgICAgIC5mbHVpZC13aWR0aC12aWRlby13cmFwcGVyIGlmcmFtZSwuZmx1aWQtd2lkdGgtdmlkZW8td3JhcHBlciBvYmplY3QsLmZsdWlkLXdpZHRoLXZpZGVvLXdyYXBwZXIgZW1iZWQge3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO30KICAgIDwvc3R5bGU+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgIC5zdC1pbnN0YWxsLVVKd2ttUHpnakhCQ3hIeXh6Q2FqIC5zdC11aS1yZXN1bHQKICAgICAgICAuc3QtdWktdHlwZS1oZWFkaW5nIHsgY29sb3I6IzAwODlkNyAhaW1wb3J0YW50IH0KICAgICAgICAuc3QtaW5zdGFsbC1VSndrbVB6Z2pIQkN4SHl4ekNhaiAuc3QtdWktcmVzdWx0IGVtIHtmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZC1jb2xvcjojZjZmY2ZlICFpbXBvcnRhbnR9CgogICAgICAgIHVsLmRkLWxpc3QgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL3NjcmlwdC5jcmF6eWVnZy5jb20vcGFnZXMvc2NyaXB0cy8wMTA0Lzg2MTcuanMiIGFzeW5jPSJhc3luYyI+PC9zY3JpcHQ+CiAgICA8IS0tIEhFQUQgSU5DTFVERSBFTkQgLS0+Cgo8L2hlYWQ+Cjxib2R5PgoKICAgIDwhLS0gQk9EWSBIRUFERVIgSU5DTFVERSBCRUdJTiAtLT4KICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciBoZWFkZXItZGVmYXVsdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRvcCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdG9wLWxlZnQiPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iaGVhZGVyLXRvcC1uYXYiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cub21nLm9yZy9pbmRleC5odG0iPjxzcGFuIHN0eWxlPSJjb2xvcjp3aGl0ZSI+SG9tZTwvc3Bhbj48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvc2l0ZS1tYXAuaHRtIj48c3BhbiBzdHlsZT0iY29sb3I6d2hpdGUiPlNpdGUgTWFwPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cub21nLm9yZy9sZWdhbC9pbmRleC5odG0iPjxzcGFuIHN0eWxlPSJjb2xvcjp3aGl0ZSI+TGVnYWw8L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImhlYWRlci10b3AtbmF2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL09iamVjdC1NYW5hZ2VtZW50LUdyb3VwLTE3MTUzNDQxMDAyMi8iPjxpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmYSBmYS1mYWNlYm9vayI+PC9pPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDs8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vb2JqZWN0bWdtdGdyb3VwIj48aSBjbGFzcz0iZmEgZmEtdHdpdHRlciI+PC9pPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDs8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9ncm91cHMvNjY3OTkiPjxpIGNsYXNzPSJmYSBmYS1saW5rZWRpbiI+PC9pPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDs8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9ibG9nLm9tZy5vcmcvIj48aQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmYSBmYS1wZW5jaWwtc3F1YXJlLW8iPjwvaT48L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDdHVUajF3dHl3b2pZTlpveVBlWUFGdyI+PGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZmEgZmEteW91dHViZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdG9wLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIEFkZFNlYXJjaCAtLT4KICAgICAgICAgICAgICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hZGRzZWFyY2guY29tL2pzLz9rZXk9YTc3ZmIxZWIyYzNjOGZhZmUyYjMwMTgyNDM2OWVkOTcmY2F0ZWdvcmllcz0weHd3dy5vbWcub3JnIj48L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8IS0tIEFkZFNlYXJjaCAtLT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItbWFpbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICANCg0KDQoJCTxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBmaG1tIj4NCgkJCQkJCTxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPg0KCQkJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibmF2YmFyLXRvZ2dsZSI+DQoJCQkJCQkJCTxpIGNsYXNzPSJmYSBmYS1iYXJzIj48L2k+DQoJCQkJCQkJPC9idXR0b24+DQoJCQkJCQkJPCEtLSBMb2dvIC0tPg0KCQkJCQkJCTxkaXYgY2xhc3M9ImxvZ28iPg0KCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2luZGV4Lmh0bSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvaW1hZ2VzL2xvZ29zL09NRy1sb2dvLXdlYi1zbS5zdmciIGFsdD0iT01HIGxvZ28iPjwvYT4JDQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPCEtLSBMb2dvIC8gRW5kIC0tPg0KCQkJCQkJPC9kaXY+PCEtLSBlbmQgbmF2YmFyLWhlYWRlciAtLT4NCg0KCQkJCQkJPGRpdiBpZD0ibWFpbi1uYXYiIGNsYXNzPSJuYXZiYXItY29sbGFwc2UgY29sbGFwc2UiPg0KCQkJCQkJCTx1bCBjbGFzcz0ibmF2IG5hdmJhci1uYXYiPg0KCQkJCQkJCQk8IS0tPGxpIGNsYXNzPSJkcm9wZG93biI+DQoJCQkJCQkJCQk8YSBocmVmPSJhYm91dC9pbmRleC5odG0iIGRhdGEtdG9nZ2xlPSIiIGNsYXNzPSIiPkFib3V0IHVzIDxiIGNsYXNzPSIiPjwvYj48L2E+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQkJCQ0KCQkJCQkJCQk8L2xpPi0tPg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTwhLS0gQWJvdXQgLS0+DQoJCQkJCQkJCSA8bGkgY2xhc3M9ImRyb3Bkb3duIj4NCgkJCQkJCQkJCTxhIGhyZWY9IiMiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSI+QWJvdXQgPGIgY2xhc3M9ImNhcmV0Ij48L2I+PC9hPg0KCQkJCQkJCQkJPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IiByb2xlPSJtZW51Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2Fib3V0L2luZGV4Lmh0bSI+TWlzc2lvbiAmYW1wOyBWaXNpb248L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2Fib3V0L09NRy1UZWNobmljYWwtUGxlbmFyaWVzLnBkZiI+U3RydWN0dXJlICZhbXA7IEdvdmVybmFuY2U8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3doeS1qb2luLmh0bSI+V2h5IEpvaW4gT01HPC9hPjwvbGk+DQogICAgICAJCQkJCQkJCQ0KCQkJCQkJCQkgICA8L3VsPg0KCQkJCQkJCQk8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFib3V0IC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZXNvdXJjZSBIdWIgbWVudSAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biI+DQoJCQkJCQkJCQk8YSBocmVmPSIjIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiPlJlc291cmNlIEh1YiA8YiBjbGFzcz0iY2FyZXQiPjwvYj48L2E+DQoJCQkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiIHJvbGU9Im1lbnUiPg0KCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2V2ZW50cy9pbmRleC5odG0iPkV2ZW50czwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2hvdC10b3BpY3MvaW5kZXguaHRtIj5Ib3QgVG9waWNzPC9hPjwvbGk+DQoJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vcHViLm9tZy5vcmcvIj5PTUcgU3RhbmRhcmRpemU8L2E+PC9saT4NCgkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9uZXdzL3ByZXNzcm9vbS5odG0iPlByZXNzIFJvb208L2E+PC9saT4NCgkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9vbWctZGlyZWN0b3JpZXMuaHRtIj5WZW5kb3IgRGlyZWN0b3JpZXM8L2E+PC9saT4NCgkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy93ZWJpbmFycy9pbmRleC5odG0iPldlYmluYXJzPC9hPjwvbGk+DQoJCQkJCQkJCQkgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvbmV3cy93aGl0ZXBhcGVycy9pbmRleC5odG0iPldoaXRlIFBhcGVyczwvYT48L2xpPg0KCQkJCQkJCQkJPC91bD4NCgkJCQkJCQkJPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVzb3VyY2UgSHViIG1lbnUgLS0+DQoNCgkJCQkJCQkNCgkJCQkJCQkJCTwhLS0gU3BlY3MgLS0+DQoJCQkJCQkJCTxsaSBjbGFzcz0iZHJvcGRvd24gZmhtbS1mdyI+DQoJCQkJCQkJCQk8YSBocmVmPSIjIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiPk9NRyBTcGVjaWZpY2F0aW9ucyA8YiBjbGFzcz0iY2FyZXQiPjwvYj48L2E+DQoJCQkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZnVsbCI+DQoJCQkJCQkJCQkJPGxpIGNsYXNzPSJmaG1tLWNvbnRlbnQiPg0KCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPg0KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTMiPg0KCQkJCQkJCQkJCQkJCTxoMyBjbGFzcz0idGl0bGUiPlNwZWNpZmljYXRpb25zPC9oMz4NCgkJCQkJCQkJCQkJCQk8dWw+DQoJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvIj5BZG9wdGVkIFNwZWNpZmljYXRpb25zPC9hPjwvbGk+DQoJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3RlY2hwcm9jZXNzL2ZheHZvdGVzLyIgdGFyZ2V0PSJfYmxhbmsiPkZheHZvdGVzIFN0YXR1czwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCSAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaXNzdWVzLm9tZy5vcmcvaXNzdWVzL2xpc3RzIj5Jc3N1ZXM8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3B1YmxpY19zY2hlZHVsZS8iPlJGSSAmYW1wOyBSRlA8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvY2dpLWJpbi9kb2M/c21zYy8yMDE4LTA4LTAxIj5TcGVjaWZpY2F0aW9uIEd1aWRlbGluZXM8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvdGVjaG5vbG9neS9kb2N1bWVudHMvdmF1bHQuaHRtIj5TcGVjaWZpY2F0aW9uIFZhdWx0PC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCQkJCQkJCQkJCQkJICA8L3VsPg0KCQkJCQkJCQkJCQkJPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTMiPg0KCQkJCQkJCQkJCQkJCTxoMyBjbGFzcz0idGl0bGUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvaW5kdXN0cmllcy9pbmRleC5odG0iPkluZHVzdHJpZXM8L2E+PC9oMz4NCgkJCQkJCQkJCQkJCQk8dWw+DQoJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2luZHVzdHJpZXMvZmluYW5jZS5odG0iPkZpbmFuY2U8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvaW5kdXN0cmllcy9nb3Zlcm5tZW50Lmh0bSI+R292ZXJubWVudDwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9pbmR1c3RyaWVzL2hlYWx0aGNhcmUuaHRtIj5IZWFsdGhjYXJlPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2luZHVzdHJpZXMvbWFudWZhY3R1cmluZy5odG0iPk1hbnVmYWN0dXJpbmc8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvaW5kdXN0cmllcy9taWxpdGFyeS5odG0iPk1pbGl0YXJ5PC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2luZHVzdHJpZXMvcmV0YWlsLmh0bSI+UmV0YWlsPC9hPjwvbGk+DQoJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2luZHVzdHJpZXMvc3BhY2UuaHRtIj5TcGFjZSBFeHBsb3JhdGlvbjwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQk8L3VsPg0KCQkJCQkJCQkJCQkJPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTMiPg0KCQkJCQkJCQkJCQkJCTxoMyBjbGFzcz0idGl0bGUiPkRvY3VtZW50IEhlbHA8L2gzPg0KCQkJCQkJCQkJCQkJCTx1bD4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvdGVjaG5vbG9neS9kb3dubG9hZC5odG0iPkRvd25sb2FkIEluc3RydWN0aW9uczwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCSAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvY2dpLWJpbi9kb2M/aGgiPkhvdyB0byBGaW5kIGEgRG9jdW1lbnQ8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vaXNzdWVzLm9tZy5vcmcvaXNzdWVzL2NyZWF0ZS1uZXctaXNzdWUiPlJlcG9ydCBhbiBJc3N1ZTwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9jZ2ktYmluL2FwcHMvZG9jbGlzdC5wbCI+U2VhcmNoIERvY3VtZW50czwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9tZW1iZXJzX2RvY3NlYXJjaC5odG0iPlNlYXJjaCBEb2N1bWVudHMgKEZ1bGwpPC9hPjwvbGk+DQoJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2dldHRpbmdzdGFydGVkL3Rlcm1zX2FuZF9hY3Jvbnltcy5odG0iPlRlcm1zICZhbXA7IEFjcm9ueW1zPC9hPjwvbGk+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCTwvdWw+DQoJCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTMiPg0KCQkJCQkJCQkJCQkJCTxoMyBjbGFzcz0idGl0bGUiPk9NRyBpbiBBY3Rpb24hPC9oMz4NCgkJCQkJCQkJCQkJCQk8dWw+DQoJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3B1YmxpY19zY2hlZHVsZS8iPldvcmsgaW4gUHJvZ3Jlc3M8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvdGVjaG5vbG9neS9yZmMtZm9ybS5odG0iPlJGQyBDb21tZW50cyBGb3JtPC9hPjwvbGk+DQoJCQkJCQkJCQkJCQkJICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2hvbWVwYWdlcy9pbmRleC5odG0iPlRlY2hub2xvZ3kgQ29tbWl0dGVlcyBEaXJlY3Rvcnk8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvYWJvdXQvb21nLXN0YW5kYXJkcy1pbnRyb2R1Y3Rpb24uaHRtIj5Qb3B1bGFyIE9NRyBTdGFuZGFyZHM8L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvZXZlbnRzL3N0dWRlbnQtcG9zdGVyLXNlc3Npb24tcHJvZ3JhbS9pbmRleC5odG0iPlN0dWRlbnQgUmVzZWFyY2g8L2E+PC9saT4NCgkJCQkJCQkJCQkJCSAgPC91bD4NCgkJCQkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQk8L2xpPg0KCQkJCQkJCQkJPC91bD4NCgkJCQkJCQkJPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNwZWNzIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQcm9ncmFtcyAtLT4NCgkJCQkJCQkJDQoJCQkJCQkJCTxsaSBjbGFzcz0iZHJvcGRvd24gZHJvcGRvd24tcmlnaHQgZmhtbS1mdyI+DQoJCQkJCQkJCQk8YSBocmVmPSIjIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiPlByb2dyYW1zIDxiIGNsYXNzPSJjYXJldCI+PC9iPjwvYT4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IGZ1bGwiPg0KCQkJCQkJCQkJCTxsaSBjbGFzcz0iZmhtbS1jb250ZW50IHdpdGhvdXRkZXNjIj4NCgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0icm93Ij4NCgkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4NCgkJCQkJCQkJCQkJCQk8aDMgY2xhc3M9InRpdGxlIj5DZXJ0aWZpY2F0aW9uczwvaDM+DQoJCQkJCQkJCQkJCQkJPHVsPg0KCQkJCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9vY3VwLTIvaW5kZXguaHRtIj5PQ1VQIDIgLSBVTUwgQ2VydGlmaWNhdGlvbjwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9vY2ViLTIvaW5kZXguaHRtIj5PQ0VCIDIgLSBCUE0gQ2VydGlmaWNhdGlvbjwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9vY3NtcC9pbmRleC5odG0iPk9DU01QIC0gU3lzTUwgQ2VydGlmaWNhdGlvbjwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9vY3Jlcy9pbmRleC5odG0iPk9DUkVTIC0gUmVhbC10aW1lIENlcnRpZmljYXRpb248L2E+PC9saT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvY2dpLWJpbi9zZWFyY2hjZXJ0LmNnaSIgdGFyZ2V0PSJfYmxhbmsiPkNlcnRpZmllZCBQcm9mZXNzaW9uYWxzIERpcmVjdG9yeTwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCTwvdWw+DQoJCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4NCgkJCQkJCQkJCQkJCQk8aDMgY2xhc3M9InRpdGxlIj5NYW5hZ2VkIFByb2dyYW1zPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYnBtLXBsdXMub3JnLyIgb25jbGljaz0idHJhY2tPdXRib3VuZExpbmsoJ2h0dHBzOi8vd3d3LmJwbS1wbHVzLm9yZy8nKTsgcmV0dXJuIGZhbHNlOyI+PGkgY2xhc3M9ImZhIGZhLWhlYXJ0YmVhdCI+PC9pPiBCUE0mIzQzOyBIZWFsdGg8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaXQtY2lzcS5vcmciIG9uY2xpY2s9InRyYWNrT3V0Ym91bmRMaW5rKCdodHRwczovL2l0LWNpc3Eub3JnJyk7IHJldHVybiBmYWxzZTsiPjxpIGNsYXNzPSJmYSBmYS1jb2RlIj48L2k+IENvbnNvcnRpdW0gZm9yIEluZm9ybWF0aW9uICZhbXA7IFNvZnR3YXJlIFF1YWxpdHkgIC0gQ0lTUTwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmRkcy1mb3VuZGF0aW9uLm9yZy8iIG9uY2xpY2s9InRyYWNrT3V0Ym91bmRMaW5rKCdodHRwczovL3d3dy5kZHMtZm91bmRhdGlvbi5vcmcvJyk7IHJldHVybiBmYWxzZTsiPjxpIGNsYXNzPSJmYSBmYS1jb25uZWN0ZGV2ZWxvcCI+PC9pPiBERFMgRm91bmRhdGlvbjwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmlpY29uc29ydGl1bS5vcmcvIiBvbmNsaWNrPSJ0cmFja091dGJvdW5kTGluaygnaHR0cHM6Ly93d3cuaWljb25zb3J0aXVtLm9yZy8nKTsgcmV0dXJuIGZhbHNlOyI+PGkgY2xhc3M9ImZhIGZhLWdlYXIiPjwvaT4gSW5kdXN0cmlhbCBJbnRlcm5ldCBDb25zb3J0aXVtIC0gSUlDPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KCQkJCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQkJCTwvZGl2PjwhLS0gZW5kIHJvdyAtLT4NCgkJCQkJCQkJCQk8L2xpPjwhLS0gZW5kIGdyaWQgZGVtbyAtLT4NCgkJCQkJCQkJCTwvdWw+PCEtLSBlbmQgZHJvcCBkb3duIG1lbnUgLS0+DQoJCQkJCQkJCTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByb2dyYW1zIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCTwhLS0gTWVtYmVyc2hpcCAtLT4NCgkJCQkJCQkJIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KCQkJCQkJCQkJPGEgaHJlZj0iIyIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIj5NZW1iZXJzaGlwIDxiIGNsYXNzPSJjYXJldCI+PC9iPjwvYT4NCgkJCQkJCQkJCTx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgcm9sZT0ibWVudSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9hYm91dC9uZXctdG8tb21nLmh0bSI+TmV3IHRvIE9NRz88L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2JlLWEtbWVtYmVyLmh0bSI+QmVjb21lIGEgTWVtYmVyPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9jZ2ktYmluL2FwcHMvbWVtYmVyc2VhcmNoLnBsIj5DdXJyZW50IE1lbWJlcnM8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL2Fib3V0L2xpYWlzb24uaHRtIj5QYXJ0bmVyczwvYT48L2xpPg0KICAgICANCgkJCQkJCQkJICAgPC91bD4NCgkJCQkJCQkJPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBNZW1iZXJzaGlwIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQkJPCEtLSBNZW1iZXJzaGlwIC0tPg0KCQkJCQkJCQkgPGxpIGNsYXNzPSJkcm9wZG93biI+DQoJCQkJCQkJCQk8YSBocmVmPSIjIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiPk1lbWJlcnMgQXJlYSA8YiBjbGFzcz0iY2FyZXQiPjwvYj48L2E+DQoJCQkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiIHJvbGU9Im1lbnUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvbWVtYmVycy8iPjxpIGNsYXNzPSJmYSBmYS1sb2NrIj48L2k+TG9nLUluPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9sb2dpbi9pbmRleC5odG0iPjxpIGNsYXNzPSJmYSBmYS11bmxvY2siPjwvaT5Mb2ctSW4gQXNzaXN0YW5jZTwvYT48L2xpPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkNCgkJCQkJCQkJICAgPC91bD4NCgkJCQkJCQkJPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBNZW1iZXJzaGlwIC0tPg0KCQkJCQkJCTwvdWw+PCEtLSBlbmQgbmF2IG5hdmJhci1uYXYgLS0+DQoJCQkJCQk8L2Rpdj48IS0tIGVuZCAjbWFpbi1uYXYgLS0+DQoNCgkJCQkJPC9uYXY+DQoNCg0KDQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2hlYWRlcj4KICAgIDwhLS0gQk9EWSBIRUFERVIgSU5DTFVERSBFTkQgLS0+CgoKPGRpdiBjbGFzcz0ibWFpbiIgcm9sZT0ibWFpbiI+IDwhLS0gTWFpbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJwYWdlLWhlYWRpbmciIHJvbGU9Im5hdmlnYXRpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOSI+CiAgICAgICAgICAgICAgICAgICAgPGgxPkFib3V0IHRoZSBBc3luY2hyb25vdXMgTWV0aG9kIEludm9jYXRpb24gZm9yIENDTSBTcGVjaWZpY2F0aW9uIFZlcnNpb24gMS4wPC9oMT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJtZW51IiBjbGFzcz0iYnJlYWRjcnVtYiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgY2xhc3M9ImFjdGl2ZSI+MS4wPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS8iPkFNSTRDQ008L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYyI+U3BlY2lmaWNhdGlvbnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPGRpdiBjbGFzcz0icGFnZS1jb250ZW50IiByb2xlPSJkaXJlY3RvcnkiPgogICAgICAgIDxzZWN0aW9uIGlkPSJkb2N1bWVudC1tZXRhZGF0YSIgcm9sZT0iY29tcGxlbWVudGFyeSIgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InNwZWMtYWNyb255bSBjb2wtbWQtMyI+QU1JNENDTeKEojwvaDE+CiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InNwZWMtbmFtZSIgc3R5bGU9InRleHQtdHJhbnNmb3JtOiBub25lIj5Bc3luY2hyb25vdXMgTWV0aG9kIEludm9jYXRpb24gZm9yIENDTTwvaDE+CgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMSI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtanVzdGlmeSI+VGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgYSBtZWNoYW5pc20gdG8gcGVyZm9ybSBhc3luY2hyb25vdXMgbWV0aG9kIGludm9jYXRpb24gZm9yIENDTSAoQU1JNENDTSkuPC9wPgogICAgICAgICAgICAgICAgICAgIDxkbCBjbGFzcz0iZGwtaG9yaXpvbnRhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gdGl0bGUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5UaXRsZTo8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+QXN5bmNocm9ub3VzIE1ldGhvZCBJbnZvY2F0aW9uIGZvciBDQ008L2RkPgoKICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBhY3JvbnltIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+QWNyb255bTo8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+QU1JNENDTeKEojwvZGQ+CgogICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gdmVyc2lvbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0PlZlcnNpb246PC9kdD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi1ib3R0b206IDA7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4xLjA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgdmVyc2lvbiB3YXMgc3VwZXJzZWRlZCBieSBhIG5ld2VyIGludmVudG9yeS4gVGhlIGxhdGVzdCB2ZXJzaW9uIGNhbiBiZSBmb3VuZCBoZXJlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vIj5BTUk0Q0NNPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGRvY3VtZW50IHN0YXR1cyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0PkRvY3VtZW50IFN0YXR1czo8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9InJpZ2h0IiBkYXRhLWNvbnRhaW5lcj0nYm9keScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJGb3JtYWwgU3BlY2lmaWNhdGlvbnMgaGF2ZSBiZWVuIGFwcHJvdmVkIGJ5IE9NRyBCb2FyZCBvZiBEaXJlY3RvcnMgYW5kIGhhdmUgYmVlbiBlZGl0ZWQuIj5mb3JtYWwg4pOYPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBwdWJsaWNhdGlvbiBkYXRlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+UHVibGljYXRpb24gRGF0ZTo8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+TWFyY2ggMjAxMzwvZGQ+CgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gY2F0ZWdvcmllcyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5DYXRlZ29yaWVzOjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIHJvbGU9Imdyb3VwIiBjbGFzcz0ibGlzdC1pbmxpbmUgZGQtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJsaXN0aXRlbSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXh0LWNhcGl0YWxpemUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvY2F0ZWdvcnkvY29yYmEtcGxhdGZvcm0vIj48ZW0+Q29yYmEgUGxhdGZvcm08L2VtPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRleHQtY2FwaXRhbGl6ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9jYXRlZ29yeS9jb21wb25lbnQtYXJjaGl0ZWN0dXJlLyI+PGVtPkNvbXBvbmVudCBBcmNoaXRlY3R1cmU8L2VtPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRleHQtY2FwaXRhbGl6ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9jYXRlZ29yeS9kb21haW4vIj48ZW0+RG9tYWluPC9lbT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGlwciBtb2RlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJyaWdodCIgZGF0YS1jb250YWluZXI9J2JvZHknIGRhdGEtaHRtbD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Ik9NRyZhbXA7IzM5O3MgUG9saWN5IG9uIEludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHMgaXMgZGVzaWduZWQgdG8gZW5hYmxlIHRoZSBvcGVuIGRldmVsb3BtZW50LCBkaXNzZW1pbmF0aW9uLCBhbmQgdXNlIG9mIGl0cyBzcGVjaWZpY2F0aW9ucywgYW5kIHRoZWlyIGJyb2FkIGltcGxlbWVudGF0aW9uIGFuZCB1cHRha2UuIFNwZWNpZmljYXRpb25zLCBpbmNsdWRpbmcgRmluYWxpemF0aW9uL1JldmlzaW9uIFRhc2sgRm9yY2UgUmVwb3J0cyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIGRlY2xhcmVkIEludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHMgc3RhdGVtZW50IGJhc2VkIG9uIGVpdGhlciBSQU5ELCBSRiBvbiBMaW1pdGVkIFRlcm1zLCBvciBOb24tQXNzZXJ0LiZsdDtici8mZ3Q7U2VlIHRoZSBPTUcgUG9saWN5IFN0YXRlbWVudCwgSW50ZWxsZWN0dWFsIFByb3BlcnR5IFJpZ2h0cywgY2xpY2sgdGhlIGxpbmsgZm9yIGRldGFpbHMuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vZG9jLm9tZy5vcmcvaXByIj5JUFIgTW9kZSDik5g8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJyaWdodCIgZGF0YS1jb250YWluZXI9J2JvZHknCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJFYWNoIE9ibGlnYXRlZCBQYXJ0eSBpbiBhbiBSRiBvbiBMaW1pdGVkIFRlcm1zIElQUiBNb2RlIEFkb3B0aW9uIG9yIFJldmlzaW9uIFByb2Nlc3MgY292ZW5hbnRzIHRoYXQgaXQgd2lsbCBncmFudCB0byBhbiB1bnJlc3RyaWN0ZWQgbnVtYmVyIG9mIGFwcGxpY2FudHMgYSByb3lhbHR5IGFuZCBmZWUgZnJlZSwgbm9uZXhjbHVzaXZlLCB3b3JsZHdpZGUsIG5vbi1zdWJsaWNlbnNhYmxlLCBwZXJwZXR1YWwgcGF0ZW50IGxpY2Vuc2UgdG8gaXRzIEVzc2VudGlhbCBDbGFpbXMiPlJGLUxpbWl0ZWQg4pOYPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIFNwZWNpZmljYXRpb24gZG9jdW1lbnRzIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogNXB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRvd25sb2FkLWRvY3VtZW50IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vMS4wL1BERiIgdGl0bGU9IkNsaWNrIHRvIERvd25sb2FkIFNwZWNpZmljYXRvbiBEb2N1bWVudCIgZGF0YS1zcGVjPSJBTUk0Q0NNLzEuMCIgZGF0YS1sYWJlbD0iQU1JNENDTS8xLjAvUERGIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZmlsZS1wZGYtbyBmYS0zeCI+PC9pPjxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlY2lmaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGhyIGNsYXNzPSJjb250YWluZXLigJ0vIj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gVGFibGUgb2YgQ29udGVudHMgLS0+CiAgICAgICAgPHNlY3Rpb24gaWQ9InRvYyIgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxoMiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIxIj5UYWJsZSBPZiBDb250ZW50czwvaDI+CiAgICAgICAgICAgIDx1bCByb2xlPSJkaXJlY3RvcnkiIGNsYXNzPSJ0b2MiPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b2NsaW5lIj48YSBjbGFzcz0idGV4dC1pbmZvIiBocmVmPSIjZG9jdW1lbnQtbWV0YWRhdGEiPkFib3V0IHRoZSBTcGVjaWZpY2F0aW9uPC9hPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b2NsaW5lIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idGV4dC1pbmZvIiBocmVmPSIjY29tcGFuaWVzIj5Db21wYW5pZXMgdGhhdCBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIFNwZWNpZmljYXRpb248L2E+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b2NsaW5lIj48YSBjbGFzcz0idGV4dC1pbmZvIiBocmVmPSIjZG9jdW1lbnRzIj5TcGVjaWZpY2F0aW9uIERvY3VtZW50czwvYT4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRvYyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9jbGluZSI+PGEgY2xhc3M9InRleHQtaW5mbyIgaHJlZj0iI2RvY3Mtbm9ybWF0aXZlLXN1cHBvcnRpbmciPk5vcm1hdGl2ZSBEb2N1bWVudHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b2NsaW5lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0ZXh0LWluZm8iIGhyZWY9IiNkb2NzLW5vcm1hdGl2ZS1tYWNoaW5lIj5Ob3JtYXRpdmUgTWFjaGluZSBSZWFkYWJsZSBEb2N1bWVudHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9jbGluZSI+PGEgY2xhc3M9InRleHQtaW5mbyIgaHJlZj0iI3NwZWMtdmVyc2lvbnMiPkhpc3Rvcnk8L2E+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJ0b2MiPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b2NsaW5lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0ZXh0LWluZm8iIGhyZWY9IiNzcGVjLXZlcnNpb25zLWZvcm1hbCI+Rm9ybWFsIFZlcnNpb25zPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b2NsaW5lIj48YSBjbGFzcz0idGV4dC1pbmZvIiBocmVmPSIjaW52ZW50b3J5LWxpbmtzIj5MaW5rczwvYT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxociBjbGFzcz0iY29udGFpbmVy4oCdLyI+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDxzZWN0aW9uIGlkPSJjb21wYW5pZXMiIGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8aDIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMSI+Q29tcGFuaWVzIHRoYXQgaGF2ZSBjb250cmlidXRlZCB0byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBTcGVjaWZpY2F0aW9uPC9oMj4KICAgICAgICAgICAgPHVsIHJvbGU9ImRpcmVjdG9yeSIgY2xhc3M9InRvYyI+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvY2xpbmUiPgogICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCDCqSAyMDEzCiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InRleHQtaW5mbyIgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL2NvbXBhbnkvb2JqZWN0LW1hbmFnZW1lbnQtZ3JvdXAvIj5PYmplY3QgTWFuYWdlbWVudCBHcm91cDwvYT4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvY2xpbmUiPgogICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCDCqSAyMDExLTIwMTIKICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idGV4dC1pbmZvIiBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvY29tcGFueS9yZW1lZHktaXQvIj5SZW1lZHkgSVQ8L2E+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8aHIgY2xhc3M9ImNvbnRhaW5lcuKAnS8iPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8c2VjdGlvbiBpZD0iaXNzdWVzIiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGgyIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjEiPklzc3VlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzcGVjaWZpY2F0aW9uPC9oMj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGlzc3Vlcy1saW5rcyI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY29sLW1kLTIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaXNzdWVzLm9tZy5vcmcvaXNzdWVzL3NwZWMvQU1JNENDTS8xLjAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbGlzdCBmYS0zeCI+PC9pPjxici8+CiAgICAgICAgICAgICAgICAgICAgICAgIElzc3VlcyBSZXBvcnRlZCBpbiB0aGlzIFNwZWNpZmljYXRpb24KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY29sLW1kLTIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaXNzdWVzLm9tZy5vcmcvaXNzdWVzL3NwZWMvQU1JNENDTS8xLjAvZml4ZWQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZmxhZy1jaGVja2VyZWQgZmEtM3giPjwvaT48YnIvPgogICAgICAgICAgICAgICAgICAgICAgICBJc3N1ZXMgRml4ZWQgaW4gdGhpcyBTcGVjaWZpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNvbC1tZC0yIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2lzc3Vlcy5vbWcub3JnL2lzc3Vlcy9jcmVhdGUtbmV3LWlzc3VlP3NwZWNpZmljYXRpb249QU1JNENDTSUyMzEuMCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jb21tZW50aW5nIGZhLTN4Ij48L2k+PGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0IGFuIGlzc3VlCiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNvbC1tZC0yIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2lzc3Vlcy5vbWcub3JnL2Jyb3dzZS9BTUk0Q0NNMTIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdXNlcnMgZmEtM3giPjwvaT48YnIvPgogICAgICAgICAgICAgICAgICAgICAgICBJc3N1ZSBUcmFja2VyIChNZW1iZXJzIE9ubHkpCiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGhyIGNsYXNzPSJjb250YWluZXLigJ0vIj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGlkPSJkb2N1bWVudHMiIGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8aDIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMSI+U3BlY2lmaWNhdGlvbiBEb2N1bWVudHM8L2gyPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udGFpbmVyIiBpZD0iZG9jcy1ub3JtYXRpdmUtc3VwcG9ydGluZyI+CiAgICAgICAgICAgICAgICA8aDMgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMiI+Tm9ybWF0aXZlIERvY3VtZW50czwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4KICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtc3RyaXBlZCI+CiAgICAgICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2wteHMtNSI+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9ImNvbC14cy0xIj5Gb3JtYXQ8L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9ImNvbC14cy0zIj5VUkw8L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9ImNvbC14cy0yIj5PTUcgRmlsZSBJRDwvdGg+CiAgICAgICAgPC90cj4KICAgICAgICA8L3RoZWFkPgogICAgICAgIDx0Ym9keT4KICAgICAgICA8dHI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8dGQgY2xhc3M9ImRvY3VtZW50LWV4cGxhbmF0aW9uIj5TcGVjaWZpY2F0aW9uPC90ZD4KICAgICAgICAgICAgPHRkIGNsYXNzPSJkb2N1bWVudC1mb3JtYXQiPlBERjwvdGQ+CiAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkb3dubG9hZC1kb2N1bWVudCIKICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS8xLjAvUERGIiBkYXRhLXNwZWM9IkFNSTRDQ00vMS4wIiBkYXRhLWxhYmVsPSJBTUk0Q0NNLzEuMC9QREYiPkFNSTRDQ00vMS4wL1BERjwvYT4KICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBjbGFzcz0iZG9jdW1lbnQtbnVtYmVyIgogICAgICAgICAgICAgICAgdGl0bGU9IjQ3NDkyMCI+Zm9ybWFsLzEzLTA0LTAxPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgo8L2Rpdj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udGFpbmVyIiBpZD0iZG9jcy1ub3JtYXRpdmUtbWFjaGluZSI+CiAgICAgICAgICAgICAgICA8aDMgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMiI+Tm9ybWF0aXZlIE1hY2hpbmUgUmVhZGFibGUgRG9jdW1lbnRzPC9oMz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJlc3BvbnNpdmUiPgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zdHJpcGVkIj4KICAgICAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGggY2xhc3M9ImNvbC14cy01Ij5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sLXhzLTEiPkZvcm1hdDwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sLXhzLTMiPlVSTDwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sLXhzLTIiPk9NRyBGaWxlIElEPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgogICAgICAgIDx0cj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDx0ZCBjbGFzcz0iZG9jdW1lbnQtZXhwbGFuYXRpb24iPkFzeW5jaHJvbm91cyBNZXRob2QgSW52b2NhdGlvbiBmb3IgQ0NNIEZURiB6aXBwZWQgSURMIGZpbGU8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9ImRvY3VtZW50LWZvcm1hdCI+SURMPC90ZD4KICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRvd25sb2FkLWRvY3VtZW50IgogICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNLzIwMTIwNzA3L2FtaTRjY20uaWRsIiBkYXRhLXNwZWM9IkFNSTRDQ00vMS4wIiBkYXRhLWxhYmVsPSJBTUk0Q0NNLzIwMTIwNzA3L2FtaTRjY20uaWRsIj5BTUk0Q0NNLzIwMTIwNzA3L2FtaTRjY20uaWRsPC9hPgogICAgICAgICAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGNsYXNzPSJkb2N1bWVudC1udW1iZXIiCiAgICAgICAgICAgICAgICB0aXRsZT0iNDczOTE4Ij5wdGMvMTItMDctMDc8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CjwvZGl2PgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPGhyIGNsYXNzPSJjb250YWluZXLigJ0vIj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGlkPSJzcGVjLXZlcnNpb25zIiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGgyIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjEiPkhpc3Rvcnk8L2gyPgogICAgICAgICAgICAKICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImNvbnRhaW5lciIgaWQ9InNwZWMtdmVyc2lvbnMtZm9ybWFsIj4KICAgICAgICAgICAgICAgIDxoMyByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIyIj5Gb3JtYWwgVmVyc2lvbnM8L2gzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zdHJpcGVkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbC14cy0yIj5WZXJzaW9uPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sLXhzLTMiPkFkb3B0aW9uIERhdGU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2wteHMtNyI+VVJMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MS4wPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5NYXJjaCAyMDEzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS8xLjAvIj5odHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS8xLjAvPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDxociBjbGFzcz0iY29udGFpbmVy4oCdLyI+CiAgICAgICAgPC9zZWN0aW9uPgoKCiAgICAgICAgPHNlY3Rpb24gaWQ9ImludmVudG9yeS1saW5rcyIgcm9sZT0iY29tcGxlbWVudGFyeSIgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxoMiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIxIj5MaW5rczwvaDI+CiAgICAgICAgICAgIDxkbCBjbGFzcz0iZGwtaG9yaXpvbnRhbCI+CiAgICAgICAgICAgICAgICA8ZHQ+VGhpcyBEb2N1bWVudDo8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNLzEuMC9BYm91dC1BTUk0Q0NNLyI+aHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vMS4wL0Fib3V0LUFNSTRDQ00vPC9hPgogICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9InNtYWxsIj5SREY8L2R0PgogICAgICAgICAgICAgICAgPGRkIGNsYXNzPSJzbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vMS4wL0Fib3V0LUFNSTRDQ00ucmRmIj5odHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS8xLjAvQWJvdXQtQU1JNENDTS5yZGY8L2E+CiAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgIDxkdCBjbGFzcz0ic21hbGwiPkpTT04tTEQ8L2R0PgogICAgICAgICAgICAgICAgPGRkIGNsYXNzPSJzbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vMS4wL0Fib3V0LUFNSTRDQ00uanNvbmxkIj5odHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS8xLjAvQWJvdXQtQU1JNENDTS5qc29ubGQ8L2E+CiAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkdD5MYXRlc3QgRG9jdW1lbnQ6PC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNLyI+aHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CgogICAgICAgICAgICAgICAgICAgIDxkdCBjbGFzcz0ic21hbGwiPlJERjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPSJzbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNL0Fib3V0LUFNSTRDQ00ucmRmIj5odHRwczovL3d3dy5vbWcub3JnL3NwZWMvQU1JNENDTS9BYm91dC1BTUk0Q0NNLnJkZjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9InNtYWxsIj5KU09OLUxEPC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9InNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cub21nLm9yZy9zcGVjL0FNSTRDQ00vQWJvdXQtQU1JNENDTS5qc29ubGQiPmh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9BTUk0Q0NNL0Fib3V0LUFNSTRDQ00uanNvbmxkPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICA8ZHQ+TWVtYmVycyBPbmx5PC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5vbWcub3JnL21lbWJlcnMvc3BlYy9BTUk0Q0NNLzEuMC8iPmh0dHBzOi8vd3d3Lm9tZy5vcmcvbWVtYmVycy9zcGVjL0FNSTRDQ00vMS4wLzwvYT4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8IS0tIGtleXdvcmRzIC0tPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+IDwhLS0gUGFnZSBDb250ZW50IC8gRW5kIC0tPgo8L2Rpdj4gPCEtLSBNYWluIC8gRW5kIC0tPgoKICAgIDwhLS0gQk9EWSBGT09URVIgSU5DTFVERSBCRUdJTiAtLT4KICAgIDwhLS0gRm9vdGVyIC0tPgogICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIiBpZD0iZm9vdGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItd2lkZ2V0cyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBXaWRnZXQgOjogQ3VzdG9tIE1lbnUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldF9uYXZfbWVudSB3aWRnZXQgd2lkZ2V0X19mb290ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ3aWRnZXQtdGl0bGUiPkN1c3RvbSBMaW5rczwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cub21nLm9yZy9nZXR0aW5nc3RhcnRlZC9ib2RfcHVibGljLmh0bSI+Qm9hcmQgb2YgRGlyZWN0b3JzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cub21nLm9yZy9sZWdhbC9pbmRleC5odG0iPkxlZ2FsPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL3d3dy5vbWcub3JnL2Fib3V0L2xpYWlzb24uaHRtIj5MaWFpc29uIFJlbGF0aW9uczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cub21nLm9yZy9hYm91dC9zdGFmZi5odG0iPk1lZXQgT3VyIFN0YWZmPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvV2lkZ2V0IDo6IEN1c3RvbSBNZW51IC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00IGNvbC1tZC02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBXaWRnZXQgOjogVGV4dCBXaWRnZXQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldF90ZXh0IHdpZGdldCB3aWRnZXRfX2Zvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IndpZGdldC10aXRsZSI+QWJvdXQgVXM8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBPYmplY3QgTWFuYWdlbWVudCBHcm91cCZyZWc7IChPTUcmcmVnOykgaXMgYW4gaW50ZXJuYXRpb25hbCwgb3BlbiBtZW1iZXJzaGlwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QtZm9yLXByb2ZpdCB0ZWNobm9sb2d5IHN0YW5kYXJkcyBjb25zb3J0aXVtLjwvcD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Rm91bmRlZCBpbiAxOTg5LCBPTUcgc3RhbmRhcmRzIGFyZSBkcml2ZW4gYnkgdmVuZG9ycywgZW5kLXVzZXJzLCBhY2FkZW1pYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0aXR1dGlvbnMgYW5kIGdvdmVybm1lbnQgYWdlbmNpZXMuIE9NRyBUYXNrIEZvcmNlcyBkZXZlbG9wIGVudGVycHJpc2UgaW50ZWdyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmRzIGZvciBhIHdpZGUgcmFuZ2Ugb2YgdGVjaG5vbG9naWVzIGFuZCBhbiBldmVuIHdpZGVyIHJhbmdlIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZHVzdHJpZXMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3Lm9tZy5vcmcvYWJvdXQvaW5kZXguaHRtIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5MZWFybiBNb3JlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC9XaWRnZXQgOjogVGV4dCBXaWRnZXQgLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFdpZGdldCA6OiBDb250YWN0cyBJbmZvIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0cy13aWRnZXQgd2lkZ2V0IHdpZGdldF9fZm9vdGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0id2lkZ2V0LXRpdGxlIj5Db250YWN0IFVzPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImNvbnRhY3RzLWluZm8tbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1tYXAtbWFya2VyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDlDIE1lZHdheSBSb2FkLCBQTUIgMjc0PGJyPiBNaWxmb3JkLCBNQSAwMTc1NyBVU0EKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcGhvbmUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGguKzEgNzgxIDQ0NC0wNDA0PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZheCArMSA3ODEtNDQ0LTAzMjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZW52ZWxvcGUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWl0ZW0iPgoJCQkJCQkJCQkJCQkJPGEgaHJlZj0ibWFpbHRvOmluZm9Ab21nLm9yZyI+aW5mb0BvbWcub3JnPC9hPgoJCQkJCQkJCQkJCQk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvV2lkZ2V0IDo6IENvbnRhY3RzIEluZm8gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvcHlyaWdodCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0ICZjb3B5OyAyMDIxIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3d3dy5vbWcub3JnL2luZGV4Lmh0bSI+T2JqZWN0IE1hbmFnZW1lbnQgR3JvdXAmcmVnOywKICAgICAgICAgICAgICAgICAgICAgICAgT01HJnJlZzs8L2E+ICZuYnNwO3wgJm5ic3A7QWxsIFJpZ2h0cyBSZXNlcnZlZAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsLWxpbmtzLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvY2lhbC1saW5rcy10eHQiPkNvbm5lY3Qgd2l0aCB1czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ic29jaWFsLWxpbmtzIHNvY2lhbC1saW5rc19fZGFyayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9PYmplY3QtTWFuYWdlbWVudC1Hcm91cC0xNzE1MzQ0MTAwMjIvIj48aQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZhIGZhLWZhY2Vib29rIj48L2k+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vb2JqZWN0bWdtdGdyb3VwIj48aSBjbGFzcz0iZmEgZmEtdHdpdHRlciI+PC9pPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vZ3JvdXBzLzY2Nzk5Ij48aSBjbGFzcz0iZmEgZmEtbGlua2VkaW4iPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2Jsb2cub21nLm9yZy8iPjxpIGNsYXNzPSJmYSBmYS1wZW5jaWwtc3F1YXJlLW8iPjwvaT48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ3R1VGoxd3R5d29qWU5ab3lQZVlBRnciPjxpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZmEgZmEteW91dHViZSI+PC9pPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vYi8xMTIzMDM0NjE5OTU4NzAzMTUxNTYvMTEyMzAzNDYxOTk1ODcwMzE1MTU2L3Bvc3RzIj48aQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmYSBmYS1nb29nbGUtcGx1cyI+PC9pPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtcnNzIj48L2k+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZm9vdGVyPgogICAgPCEtLSBGb290ZXIgLyBFbmQgLS0+CgogICAgPCEtLSBKYXZhc2NyaXB0IEZpbGVzCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDxzY3JpcHQgc3JjPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9qcXVlcnktMS4xMS4wLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvanF1ZXJ5LW1pZ3JhdGUtMS4yLjEubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9oZWFkaGVzaXZlLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvZmhtbS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvanF1ZXJ5LmZsaWNrcmZlZWQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii8vd3d3Lm9tZy5vcmcvdmVuZG9yL2lzb3RvcGUvaXNvdG9wZS5wa2dkLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvaXNvdG9wZS9qcXVlcnkuaW1hZ2VzbG9hZGVkLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvbWFnbmlmaWMtcG9wdXAvanF1ZXJ5Lm1hZ25pZmljLXBvcHVwLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9vd2wtY2Fyb3VzZWwvb3dsLmNhcm91c2VsLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3IvanF1ZXJ5LmZpdHZpZHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii8vd3d3Lm9tZy5vcmcvdmVuZG9yL2pxdWVyeS5hcHBlYXIuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii8vd3d3Lm9tZy5vcmcvdmVuZG9yL2pxdWVyeS5zdGVsbGFyLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy92ZW5kb3Ivc25hcC5zdmctbWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIvL3d3dy5vbWcub3JnL3ZlbmRvci9tZWRpYWVsZW1lbnQvbWVkaWFlbGVtZW50LWFuZC1wbGF5ZXIubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0iIiBzcmM9Ii8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzIj48L3NjcmlwdD4KCiAgICA8c2NyaXB0IHNyYz0iLy93d3cub21nLm9yZy9qcy9jdXN0b20uanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9zZWxlY3QyLzQuMC4zL2pzL3NlbGVjdDIubWluLmpzIgogICAgICAgICAgICBpbnRlZ3JpdHk9InNoYTI1Ni0rbVdkL0c2OVM0cXRnUG93U0VMSWVWQXY3K0Z1TDg3MVdYYW9sZ1hucndRPSIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3NlbGVjdDIvNC4wLjMvY3NzL3NlbGVjdDIubWluLmNzcyIKICAgICAgICAgIGludGVncml0eT0ic2hhMjU2LXhKT1pIZnB4TFIvdWhoMUJ3WUZTNWZobU9BZElSUWFpT3VsNUYvYjd2M3M9IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgc2VhcmNoQm94ID0gJCgiI3NwZWNzLXNlYXJjaC1ib3giKTsKICAgICAgICAgICAgc2VhcmNoQm94LnNlbGVjdDIoewogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICJUeXBlIFNwZWNpZmljYXRpb25zLCBDYXRlZ29yaWVzIG9yIEtleXdvcmRzIiwKICAgICAgICAgICAgICAgIGFsbG93Q2xlYXI6IHRydWUsCiAgICAgICAgICAgICAgICBtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDogNQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgc2VhcmNoQm94Lm9uKCJzZWxlY3QyOnNlbGVjdCIsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IGUuY3VycmVudFRhcmdldC52YWx1ZTsKICAgICAgICAgICAgICAgIHNlYXJjaEJveC52YWwoW10pLnRyaWdnZXIoImNoYW5nZSIpOwogICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaHJlZi5lbmRzV2l0aCgiLyIpKQogICAgICAgICAgICAgICAgICAgIHBhdGggPSAiLyIgKyBwYXRoOwogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArIHBhdGg7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkKCIjc3BlY3Mtc2VhcmNoLWJ1dHRvbiIpLmhpZGUoKTsKICAgICAgICAgICAgJCgiYS5kb3dubG9hZC1kb2N1bWVudCIpLmNsaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGd0YWcoJ2V2ZW50JywgJ2Rvd25sb2FkJywgewogICAgICAgICAgICAgICAgICAgICdldmVudF9jYXRlZ29yeSc6ICdkb3dubG9hZHMnLAogICAgICAgICAgICAgICAgICAgICdldmVudF9hY3Rpb24nOiAkKHRoaXMpLmRhdGEoInNwZWMiKSwKICAgICAgICAgICAgICAgICAgICAnZXZlbnRfbGFiZWwnOiAkKHRoaXMpLmRhdGEoImxhYmVsIikKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICAkKCdbZGF0YS10b2dnbGU9InRvb2x0aXAiXScpLnRvb2x0aXAoKQogICAgPC9zY3JpcHQ+CgogICAgPCEtLSBCT0RZIEZPT1RFUiBJTkNMVURFIEVORCAtLT4KCjwvYm9keT4KPC9odG1sPg==
41
- http_version:
42
- recorded_at: Wed, 21 Apr 2021 09:46:44 GMT
43
- recorded_with: VCR 5.1.0