iml 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,59 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://www.imdb.com/find?q=lethal%20weapon&ref_=nv_sr_fn
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- X-Forwarded-For:
11
- - 35.228.112.200
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- User-Agent:
17
- - Ruby
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- Server:
24
- - Server
25
- Date:
26
- - Fri, 06 Jul 2018 23:43:22 GMT
27
- Content-Type:
28
- - text/html;charset=UTF-8
29
- Transfer-Encoding:
30
- - chunked
31
- Connection:
32
- - keep-alive
33
- Strict-Transport-Security:
34
- - max-age=47474747; includeSubDomains; preload
35
- X-Frame-Options:
36
- - SAMEORIGIN
37
- Content-Security-Policy:
38
- - frame-ancestors 'self' imdb.com *.imdb.com *.media-imdb.com withoutabox.com
39
- *.withoutabox.com amazon.com *.amazon.com amazon.co.uk *.amazon.co.uk amazon.de
40
- *.amazon.de translate.google.com images.google.com www.google.com www.google.co.uk
41
- search.aol.com bing.com www.bing.com
42
- Content-Language:
43
- - en-US
44
- Set-Cookie:
45
- - session-id-time=2161640602; Domain=.imdb.com; Expires=Thu, 25-Jul-2086 02:57:29
46
- GMT; Path=/; Secure
47
- - session-id=000-0000000-0000000; Domain=.imdb.com; Expires=Thu, 25-Jul-2086
48
- 02:57:29 GMT; Path=/; Secure
49
- - uu=BCYko1J7DUk3K3xn6QIkB-fo0bkNuVwK4n8QfLqZTSpaKrqa78-5u3lV9F7rYH6OWt1ffI0-4Z19%0D%0ARrZQtlhclTmLTGoxJ3ziIdCT2WRU6TZ5BTtkM4_gWHugXwE2nhVdQIfRtjOdYFza6NWWKMomj-y3%0D%0ACX6_20qi0ISV4KyxVTd5NQ51l0R_9f6JSue-Hr2UwoOwb5Smw5KNjFdFODhcYKHscJ6W_KDu5DZY%0D%0AhTXUu2YXdrFq2qsHR1vk-pmLa-DWmIUz0q2T-UKpueAX6Yvy6W9uANwo5lL8WIap9UVCaFywm-w%0D%0A;
50
- Domain=.imdb.com; Expires=Thu, 25-Jul-2086 02:57:29 GMT; Path=/; Secure
51
- Vary:
52
- - Accept-Encoding,User-Agent
53
- body:
54
- encoding: ASCII-8BIT
55
- string: !binary |-
56
- CgoKCjwhRE9DVFlQRSBodG1sPgo8aHRtbAogICAgeG1sbnM6b2c9Imh0dHA6Ly9vZ3AubWUvbnMjIgogICAgeG1sbnM6ZmI9Imh0dHA6Ly93d3cuZmFjZWJvb2suY29tLzIwMDgvZmJtbCI+CiAgICA8aGVhZD4KICAgICAgICAgCiAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+CgogICAgPG1ldGEgbmFtZT0iYXBwbGUtaXR1bmVzLWFwcCIgY29udGVudD0iYXBwLWlkPTM0Mjc5MjUyNSwgYXBwLWFyZ3VtZW50PWltZGI6Ly8vP3NyYz1tZG90Ij4KCgoKICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIElNRGJUaW1lcj17c3RhcnR0aW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxwdDonamF2YSd9Ozwvc2NyaXB0PgoKPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV0ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV0KCJiYiIsICJMb2FkVGl0bGUiLCB7d2I6IDF9KTsKICAgIH0KPC9zY3JpcHQ+CiAgPHNjcmlwdD4oZnVuY3Rpb24odCl7ICh0LmV2ZW50cyA9IHQuZXZlbnRzIHx8IHt9KVsiY3NtX2hlYWRfcHJlX3RpdGxlIl0gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsgfSkoSU1EYlRpbWVyKTs8L3NjcmlwdD4KICAgICAgICA8dGl0bGU+RmluZCAtIElNRGI8L3RpdGxlPgogIDxzY3JpcHQ+KGZ1bmN0aW9uKHQpeyAodC5ldmVudHMgPSB0LmV2ZW50cyB8fCB7fSlbImNzbV9oZWFkX3Bvc3RfdGl0bGUiXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOyB9KShJTURiVGltZXIpOzwvc2NyaXB0Pgo8c2NyaXB0PgogICAgaWYgKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJykgewogICAgICB1ZXQoImJlIiwgIkxvYWRUaXRsZSIsIHt3YjogMX0pOwogICAgfQo8L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV4ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV4KCJsZCIsICJMb2FkVGl0bGUiLCB7d2I6IDF9KTsKICAgIH0KPC9zY3JpcHQ+CgogICAgICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5pbWRiLmNvbS9maW5kIiAvPgogICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHA6Ly93d3cuaW1kYi5jb20vZmluZCIgLz4KCjxzY3JpcHQ+CiAgICBpZiAodHlwZW9mIHVldCA9PSAnZnVuY3Rpb24nKSB7CiAgICAgIHVldCgiYmIiLCAiTG9hZEljb25zIiwge3diOiAxfSk7CiAgICB9Cjwvc2NyaXB0PgogIDxzY3JpcHQ+KGZ1bmN0aW9uKHQpeyAodC5ldmVudHMgPSB0LmV2ZW50cyB8fCB7fSlbImNzbV9oZWFkX3ByZV9pY29uIl0gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsgfSkoSU1EYlRpbWVyKTs8L3NjcmlwdD4KICAgICAgICA8bGluayBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2ltYWdlcy9zYWZhcmktZmF2aWNvbi01MTc2MTEzODEuX0NCNDk5NjEzNjkyXy5zdmciIG1hc2sgcmVsPSJpY29uIiBzaXplcz0iYW55Ij4KICAgICAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL2ljbyIgaHJlZj0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvaW1kYi9pbWFnZXMvZmF2aWNvbi0yMTY1ODA2OTcwLl9DQjQ5OTYxMzU1Nl8uaWNvIiAvPgogICAgICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMDAwMDAwIiAvPgogICAgICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2ltYWdlcy9kZXNrdG9wLWZhdmljb24tMjE2NTgwNjk3MC5fQ0I0OTk2MDM4MzhfLmljbyIgLz4KICAgICAgICA8bGluayBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2ltYWdlcy9tb2JpbGUvYXBwbGUtdG91Y2gtaWNvbi13ZWItNDE1MTY1OTE4OC5fQ0I0OTk2MTM2MDlfLnBuZyIgcmVsPSJhcHBsZS10b3VjaC1pY29uIj4gCiAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvaW1kYi9pbWFnZXMvbW9iaWxlL2FwcGxlLXRvdWNoLWljb24td2ViLTc2eDc2LTUzNTM2MjQ4Ll9DQjQ5OTYwMzgzMV8ucG5nIiByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Nng3NiI+IAogICAgICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvaW1hZ2VzL21vYmlsZS9hcHBsZS10b3VjaC1pY29uLXdlYi0xMjB4MTIwLTI0NDI4Nzg0NzEuX0NCNDk5NjEzNjQ1Xy5wbmciIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjEyMHgxMjAiPiAKICAgICAgICA8bGluayBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2ltYWdlcy9tb2JpbGUvYXBwbGUtdG91Y2gtaWNvbi13ZWItMTUyeDE1Mi0xNDc1ODIzNjQxLl9DQjQ5OTYwMzgzNV8ucG5nIiByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxNTJ4MTUyIj4gICAgICAgICAgICAKICAgICAgICA8bGluayByZWw9InNlYXJjaCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgaHJlZj0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvaW1kYi9pbWFnZXMvaW1kYnNlYXJjaC0zMzQ5NDY4ODgwLl9DQjQ5OTU1ODg3OV8ueG1sIiB0aXRsZT0iSU1EYiIgLz4KICA8c2NyaXB0PihmdW5jdGlvbih0KXsgKHQuZXZlbnRzID0gdC5ldmVudHMgfHwge30pWyJjc21faGVhZF9wb3N0X2ljb24iXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOyB9KShJTURiVGltZXIpOzwvc2NyaXB0Pgo8c2NyaXB0PgogICAgaWYgKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJykgewogICAgICB1ZXQoImJlIiwgIkxvYWRJY29ucyIsIHt3YjogMX0pOwogICAgfQo8L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV4ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV4KCJsZCIsICJMb2FkSWNvbnMiLCB7d2I6IDF9KTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgCgoKICAgICAgICA8bGluayByZWw9J2ltYWdlX3NyYycgaHJlZj0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvaW1kYi9pbWFnZXMvbG9nb3MvaW1kYl9mYl9sb2dvLTE3MzA4NjgzMjUuX0NCNDk5NjA2OTgyXy5wbmciPgogICAgICAgIDxtZXRhIHByb3BlcnR5PSdvZzppbWFnZScgY29udGVudD0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvaW1kYi9pbWFnZXMvbG9nb3MvaW1kYl9mYl9sb2dvLTE3MzA4NjgzMjUuX0NCNDk5NjA2OTgyXy5wbmciIC8+CgogICAgPG1ldGEgcHJvcGVydHk9J2ZiOmFwcF9pZCcgY29udGVudD0nMTE1MTA5NTc1MTY5NzI3JyAvPgoKICAgIDxtZXRhIHByb3BlcnR5PSdvZzp0aXRsZScgY29udGVudD0iIiAvPgogICAgPG1ldGEgcHJvcGVydHk9J29nOnNpdGVfbmFtZScgY29udGVudD0nSU1EYicgLz4KICAgIDxtZXRhIG5hbWU9InRpdGxlIiBjb250ZW50PSJJTURiIiAvPgogICAgICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiIC8+CiAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSIiIC8+CiAgICAgICAgPG1ldGEgbmFtZT0icmVxdWVzdF9pZCIgY29udGVudD0iSlZERUpSOEU2TlQ0WDhBUk1UMUQiIC8+Cgo8c2NyaXB0PgogICAgaWYgKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJykgewogICAgICB1ZXQoImJiIiwgIkxvYWRDU1MiLCB7d2I6IDF9KTsKICAgIH0KPC9zY3JpcHQ+CiAgPHNjcmlwdD4oZnVuY3Rpb24odCl7ICh0LmV2ZW50cyA9IHQuZXZlbnRzIHx8IHt9KVsiY3NtX2hlYWRfcHJlX2NzcyJdID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7IH0pKElNRGJUaW1lcik7PC9zY3JpcHQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvY3NzL2NvbGxlY3Rpb25zL2NvbnN1bWVyc2l0ZS0xNTczMjE3Njc3Ll9DQjQ3NjkyNzgwNl8uY3NzIiAvPgo8IS0tIGg9aWNzLWM0MnhsLTMtMWItOTJjODVmMzQudXMtZWFzdC0xIC0tPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2Nzcy9zaXRlL2NvbnN1bWVyLW5hdmJhci1tZWdhLTM3OTYxMTQyMDQuX0NCNDczOTk0NTMxXy5jc3MiIC8+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvY3NzL2FwcC9jb25zdW1lcnNpdGUvZmluZC0xNDM3OTQ0NDU2Ll9DQjQ5OTU1ODg2MF8uY3NzIiAvPgo8IS0tW2lmIElFXT48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2Nzcy9jb2xsZWN0aW9ucy9pZS0zNTc5MTUzNDQ3Ll9DQjQ5ODcyNDAzNV8uY3NzIiAvPjwhW2VuZGlmXS0tPgoKICAgICAgICA8bm9zY3JpcHQ+CiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvY3NzL3doZWVsL25vanMtMjgyNzE1NjM0OS5fQ0I0OTk2MTM1MDJfLmNzcyI+CiAgICAgICAgPC9ub3NjcmlwdD4KICA8c2NyaXB0PihmdW5jdGlvbih0KXsgKHQuZXZlbnRzID0gdC5ldmVudHMgfHwge30pWyJjc21faGVhZF9wb3N0X2NzcyJdID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7IH0pKElNRGJUaW1lcik7PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgICBpZiAodHlwZW9mIHVldCA9PSAnZnVuY3Rpb24nKSB7CiAgICAgIHVldCgiYmUiLCAiTG9hZENTUyIsIHt3YjogMX0pOwogICAgfQo8L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV4ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV4KCJsZCIsICJMb2FkQ1NTIiwge3diOiAxfSk7CiAgICB9Cjwvc2NyaXB0PgoKPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV0ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV0KCJiYiIsICJMb2FkSlMiLCB7d2I6IDF9KTsKICAgIH0KPC9zY3JpcHQ+CiAgPHNjcmlwdD4oZnVuY3Rpb24odCl7ICh0LmV2ZW50cyA9IHQuZXZlbnRzIHx8IHt9KVsiY3NtX2hlYWRfcHJlX2FkcyJdID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7IH0pKElNRGJUaW1lcik7PC9zY3JpcHQ+CiAgICAgICAgCiAgICAgICAgPHNjcmlwdCAgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgICAgLy8gZW5zdXJlcyBqcyBkb2Vzbid0IGRpZSBpZiBhZHMgc2VydmljZSBmYWlscy4gIAogICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgbmVlZCB0byBkZWZpbmUgdGhlIGpzIGhlcmUsIHNpbmNlIGFkIGpzIGlzIGJlaW5nIHJlbmRlcmVkIGlubGluZSBhZnRlciB0aGlzLgogICAgICAgICAgICAoZnVuY3Rpb24oZikgewogICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgamF2YXNjcmlwdCwgd2hlbiB0aGUgYWQgU2VydmljZSBjYWxsIGZhaWxzLiAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmKCh3aW5kb3cuY3NtID09IG51bGwgfHwgd2luZG93LmdlbmVyaWMgPT0gbnVsbCB8fCB3aW5kb3cuY29uc29sZUxvZyA9PSBudWxsKSkgewogICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLmxvZykgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygib25lIG9yIG1vcmUgb2Ygd2luZG93LmNzbSwgd2luZG93LmdlbmVyaWMgb3Igd2luZG93LmNvbnNvbGVMb2cgaGFzIGJlZW4gc3R1YmJlZC4uLiIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgd2luZG93LmNzbSA9IHdpbmRvdy5jc20gfHwgeyBtZWFzdXJlOmYsIHJlY29yZDpmLCBkdXJhdGlvbjpmLCBsaXN0ZW46ZiwgbWV0cmljczp7fSB9OwogICAgICAgICAgICAgICAgd2luZG93LmdlbmVyaWMgPSB3aW5kb3cuZ2VuZXJpYyB8fCB7IG1vbml0b3Jpbmc6IHsgc3RhcnRfdGltaW5nOiBmLCBzdG9wX3RpbWluZzogZiB9IH07CiAgICAgICAgICAgICAgICB3aW5kb3cuY29uc29sZUxvZyA9IHdpbmRvdy5jb25zb2xlTG9nIHx8IGY7CiAgICAgICAgICAgIH0pKGZ1bmN0aW9uKCkge30pOwogICAgICAgIDwvc2NyaXB0PgogIDxzY3JpcHQ+CiAgICBpZiAoJ2NzbScgaW4gd2luZG93KSB7CiAgICAgIGNzbS5tZWFzdXJlKCdjc21faGVhZF9kZWxpdmVyeV9maW5pc2hlZCcpOwogICAgfQogIDwvc2NyaXB0Pgo8c2NyaXB0PgogICAgaWYgKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJykgewogICAgICB1ZXQoImJlIiwgIkxvYWRKUyIsIHt3YjogMX0pOwogICAgfQo8L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV4ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV4KCJsZCIsICJMb2FkSlMiLCB7d2I6IDF9KTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgCiAgICA8L2hlYWQ+CiAgICA8Ym9keSBpZD0ic3R5bGVndWlkZS12MiIgY2xhc3M9ImZpeGVkIj4KICAgICAgICAKPHNjcmlwdD4KICAgIGlmICh0eXBlb2YgdWV0ID09ICdmdW5jdGlvbicpIHsKICAgICAgdWV0KCJiYiIpOwogICAgfQo8L3NjcmlwdD4KICA8c2NyaXB0PgogICAgaWYgKCdjc20nIGluIHdpbmRvdykgewogICAgICBjc20ubWVhc3VyZSgnY3NtX2JvZHlfZGVsaXZlcnlfc3RhcnRlZCcpOwogICAgfQogIDwvc2NyaXB0PgogICAgICAgIDxkaXYgaWQ9IndyYXBwZXIiPgogICAgICAgICAgICA8ZGl2IGlkPSJyb290IiBjbGFzcz0icmVkZXNpZ24iPgo8c2NyaXB0PgogICAgaWYgKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJykgewogICAgICB1ZXQoIm5zIik7CiAgICB9Cjwvc2NyaXB0Pgo8ZGl2IGlkPSJuYjIwIiBjbGFzcz0ibmF2YmFyU3ByaXRlIj4KPGRpdiBpZD0ic3VwZXJ0YWIiPgkKCTwhLS0gbm8gY29udGVudCByZWNlaXZlZCBmb3Igc2xvdDogdG9wX2FkIC0tPgoJCjwvZGl2PgogIDxkaXYgaWQ9Im5hdmJhciIgY2xhc3M9Im5hdmJhclNwcml0ZSI+Cjxub3NjcmlwdD4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2Nzcy9zaXRlL2NvbnN1bWVyLW5hdmJhci1uby1qcy0zNjUyNzgyOTg5Ll9DQjQ5OTYwMzc3Nl8uY3NzIiAvPgo8L25vc2NyaXB0Pgo8c3BhbiBpZD0iaG9tZV9pbWdfaG9sZGVyIj4KPGEgaHJlZj0iLz9yZWZfPW52X2hvbWUiCnRpdGxlPSJIb21lIiBjbGFzcz0ibmF2YmFyU3ByaXRlIiBpZD0iaG9tZV9pbWciID48L2E+ICA8c3BhbiBjbGFzcz0iYWx0X2xvZ28iPgogICAgPGEgaHJlZj0iLz9yZWZfPW52X2hvbWUiCnRpdGxlPSJIb21lIiA+SU1EYjwvYT4KICA8L3NwYW4+Cjwvc3Bhbj4KPGZvcm0KIG1ldGhvZD0iZ2V0IgogYWN0aW9uPSIvZmluZCIKIGNsYXNzPSJuYXYtc2VhcmNoYmFyLWlubmVyIgogaWQ9Im5hdmJhci1mb3JtIgoKPgogIDxkaXYgaWQ9Im5iX3NlYXJjaCI+CiAgICA8bm9zY3JpcHQ+PGRpdiBpZD0ibW9yZV9pZl9ub19qYXZhc2NyaXB0Ij48YSBocmVmPSIvc2VhcmNoLyI+TW9yZTwvYT48L2Rpdj48L25vc2NyaXB0PgogICAgPGJ1dHRvbiBpZD0ibmF2YmFyLXN1Ym1pdC1idXR0b24iIGNsYXNzPSJwcmltYXJ5IGJ0biIgdHlwZT0ic3VibWl0Ij48ZGl2IGNsYXNzPSJtYWduaWZ5aW5nZ2xhc3MgbmF2YmFyU3ByaXRlIj48L2Rpdj48L2J1dHRvbj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZl8iIHZhbHVlPSJudl9zcl9mbiIgLz4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBhdXRvY29tcGxldGU9Im9mZiIgdmFsdWU9ImxldGhhbCB3ZWFwb24iIG5hbWU9InEiIGlkPSJuYXZiYXItcXVlcnkiIHBsYWNlaG9sZGVyPSJGaW5kIE1vdmllcywgVFYgc2hvd3MsIENlbGVicml0aWVzIGFuZCBtb3JlLi4uIj4KICAgIDxkaXYgY2xhc3M9InF1aWNrc2VhcmNoX2Ryb3Bkb3duX3dyYXBwZXIiPgogICAgICA8c2VsZWN0IG5hbWU9InMiIGlkPSJxdWlja3NlYXJjaCIgY2xhc3M9InF1aWNrc2VhcmNoX2Ryb3Bkb3duIG5hdmJhclNwcml0ZSBoaWRkZW4iPgogICAgICAgIDxvcHRpb24gdmFsdWU9ImFsbCIgPkFsbDwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9InR0IiA+VGl0bGVzPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZXAiID5UViBFcGlzb2Rlczwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9Im5tIiA+TmFtZXM8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJjbyIgPkNvbXBhbmllczwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9Imt3IiA+S2V5d29yZHM8L29wdGlvbj4KICAgICAgPC9zZWxlY3Q+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9Im5hdmJhci1zdWdnZXN0aW9uc2VhcmNoIiBjbGFzcz0nY2Vsd2lkZ2V0JyBjZWxfd2lkZ2V0X2lkPSdTdWdnZXN0aW9uU2VhcmNoV2lkZ2V0Jz48L2Rpdj4KICA8L2Rpdj4KPC9mb3JtPgo8ZGl2IGlkPSJtZWdhTWVudSI+CiAgICA8dWwgaWQ9ImNvbnN1bWVyX21haW5fbmF2IiBjbGFzcz0ibWFpbl9uYXYiPgogICAgICAgIDxsaSBjbGFzcz0ic3BhY2VyIj48L2xpPgogICAgICAgIDxsaSBjbGFzcz0iY3NzX25hdl9pdGVtIiBpZD0ibmF2VGl0bGVNZW51Ij4KICAgICAgICAgICAgPHAgY2xhc3M9Im5hdkNhdGVnb3J5Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9tb3ZpZXMtaW4tdGhlYXRlcnMvP3JlZl89bnZfdHBfaW50aF8xIgo+TW92aWVzPC9hPiwKICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jaGFydC90b3B0di8/cmVmXz1udl90cF90djI1MF8yIgo+VFY8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAmIDxhIGhyZWY9Ii9zaG93dGltZXMvP3JlZl89bnZfdHBfc2hfMyIKPlNob3d0aW1lczwvYT48L3A+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3duQXJyb3ciPjwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBpZD0ibmF2TWVudTEiIGNsYXNzPSJzdWJfbmF2Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0aXRsZU1lbnVJbWFnZSIgc3R5bGU9ImJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9pYS5tZWRpYS1pbWRiLmNvbS9pbWFnZXMvTS9NVjVCT1RrMk1UazVPVEV6TlY1Qk1sNUJhbkJuWGtGdFpUY3dORGczTWpVNE13QEAuX1YxLl9TWTQwMF9DUjUwLDUwLDQxMCwzMTVfLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGl0bGU9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJ0aWdvCiwgIzczIG9uIElNRGIgVG9wIFJhdGVkIE1vdmllcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii90aXRsZS90dDAwNTIzNTcvP3JlZl89bnZfbXZfZGZsdF8xIiBjbGFzcz0iZmFsbGJhY2siPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3RpdGxlL3R0MDA1MjM1Ny8/cmVmXz1udl9tdl9kZmx0XzIiIGlkPSJ0aXRsZU1lbnVJbWFnZUNsaWNrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVydGlnbwo8L3N0cm9uZz4gKDE5NTgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jaGFydC90b3A/cmVmXz1udl9tdl9kZmx0XzMiIGlkPSJ0aXRsZU1lbnVJbWFnZVNlY29uZGFyeUNsaWNrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzxzdHJvbmc+NzM8L3N0cm9uZz4gb24gSU1EYiBUb3AgUmF0ZWQgTW92aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiAmcmFxdW87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViTmF2TGlzdENvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgPGg1Pk1PVklFUzwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL21vdmllcy1pbi10aGVhdGVycy8/cmVmXz1udl9tdl9pbnRoXzEiCj5JbiBUaGVhdGVyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3Nob3d0aW1lcy8/cmVmXz1udl9tdl9zaF8yIgo+U2hvd3RpbWVzICYgVGlja2V0czwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3RyYWlsZXJzLz9yZWZfPW52X212X3RyXzMiCj5MYXRlc3QgVHJhaWxlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9tb3ZpZXMtY29taW5nLXNvb24vP3JlZl89bnZfbXZfY3NfNCIKPkNvbWluZyBTb29uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2FsZW5kYXIvP3JlZl89bnZfbXZfY2FsXzUiCj5SZWxlYXNlIENhbGVuZGFyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2hhcnQvdG9wP3JlZl89bnZfbXZfMjUwXzYiCj5Ub3AgUmF0ZWQgTW92aWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvaW5kaWEvdG9wLXJhdGVkLWluZGlhbi1tb3ZpZXM/cmVmXz1udl9tdl8yNTBfaW5fNyIKPlRvcCBSYXRlZCBJbmRpYW4gTW92aWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2hhcnQvbW92aWVtZXRlcj9yZWZfPW52X212X21wbV84Igo+TW9zdCBQb3B1bGFyIE1vdmllczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPGg1PkNIQVJUUyAmIFRSRU5EUzwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NoYXJ0Lz9yZWZfPW52X2NoX2NodF8xIgo+Qm94IE9mZmljZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3NlYXJjaC90aXRsZT9jb3VudD0xMDAmZ3JvdXBzPW9zY2FyX2Jlc3RfcGljdHVyZV93aW5uZXJzJnNvcnQ9eWVhcixkZXNjJnJlZl89bnZfY2hfb3NjXzIiCj5Pc2NhciBXaW5uZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZ2VucmUvP3JlZl89bnZfY2hfZ3JfMyIKPk1vc3QgUG9wdWxhciBieSBHZW5yZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yk5hdkxpc3RDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgIDxoNT5UViAmIFZJREVPPC9oNT4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvdHYvP3JlZl89bnZfdHZ2X3R2XzEiCj5JTURiIFRWPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2hhcnQvdG9wdHYvP3JlZl89bnZfdHZ2XzI1MF8zIgo+VG9wIFJhdGVkIFRWIFNob3dzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2hhcnQvdHZtZXRlcj9yZWZfPW52X3R2dl9tcHR2XzQiCj5Nb3N0IFBvcHVsYXIgVFYgU2hvd3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9zZWN0aW9ucy9kdmQvP3JlZl89bnZfdHZ2X2R2ZF81Igo+RFZEICYgQmx1LVJheTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPGg1PlNQRUNJQUwgRkVBVFVSRVM8L2g1PgogICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9hbWF6b24tb3JpZ2luYWxzLz9yZWZfPW52X3NmX2Ftc18xIgo+QW1hem9uIE9yaWdpbmFsczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2ltZGJwaWNrcy9zdW1tZXItbW92aWUtZ3VpZGUvbHMwNjg0NDk1NTAvP3JlZl89bnZfc2Zfc3RfMiIKPlN1bW1lciBNb3ZpZSBHdWlkZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3N0YXItd2Fycy8/cmVmXz1udl9zZl9zdHdfMyIKPlN0YXIgV2FyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2ltZGJwaWNrcy8/cmVmXz1udl9zZl9waWNrc180Igo+SU1EYiBQaWNrczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3N1cGVyaGVyb2VzLz9yZWZfPW52X3NmX3N1cHJfNSIKPlN1cGVyaGVyb2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZmFtaWx5LWVudGVydGFpbm1lbnQtZ3VpZGUvP3JlZl89bnZfc2ZfZmFtXzYiCj5GYW1pbHk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii92aWRlby1nYW1lcy8/cmVmXz1udl9zZl92aWRnXzciCj5WaWRlbyBHYW1lczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9InNwYWNlciI+PC9saT4KICAgICAgICA8bGkgY2xhc3M9ImNzc19uYXZfaXRlbSIgaWQ9Im5hdk5hbWVNZW51Ij4KICAgICAgICAgICAgPHAgY2xhc3M9Im5hdkNhdGVnb3J5Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9zZWFyY2gvbmFtZT9nZW5kZXI9bWFsZSxmZW1hbGUmcmVmXz1udl90cF9jZWxfMSIKPkNlbGViczwvYT4sCiAgICAgICAgICAgICAgICA8YSBocmVmPSIvYXdhcmRzLWNlbnRyYWwvP3JlZl89bnZfdHBfYXdyZF8yIgo+RXZlbnRzPC9hPjxiciAvPgogICAgICAgICAgICAgICAgJiA8YSBocmVmPSIvZ2FsbGVyeS9yZzc4NDk2NDM1Mj9yZWZfPW52X3RwX3BoXzMiCj5QaG90b3M8L2E+PC9wPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG93bkFycm93Ij48L3NwYW4+CiAgICAgICAgICAgIDxkaXYgaWQ9Im5hdk1lbnUyIiBjbGFzcz0ic3ViX25hdiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibmFtZU1lbnVJbWFnZSIgc3R5bGU9ImJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9pYS5tZWRpYS1pbWRiLmNvbS9pbWFnZXMvTS9NVjVCTWpBMU56a3lOakF6TlY1Qk1sNUJhbkJuWGtGdFpUY3dOell5T1RVeE9RQEAuX1YxLl9TWDI1MF9DUjAsMCwyNTAsMzE1Xy5qcGcnKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRpdGxlPSJBbm5lIEhhdGhhd2F5LCAjMTA2IG9uIFNUQVJtZXRlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9uYW1lL25tMDAwNDI2Ni8/cmVmXz1udl9jZWxfZGZsdF8xIiBjbGFzcz0iZmFsbGJhY2siPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL25hbWUvbm0wMDA0MjY2Lz9yZWZfPW52X2NlbF9kZmx0XzIiIGlkPSJuYW1lQWRDbGljayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QW5uZSBIYXRoYXdheTwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4gJnJhcXVvOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM8c3Ryb25nPjEwNjwvc3Ryb25nPiBvbiBTVEFSbWV0ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJOYXZMaXN0Q29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICA8aDU+Q0VMRUJTPC9oNT4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3NlYXJjaC9uYW1lP2JpcnRoX21vbnRoZGF5PTA3LTA2JnJlZmluZT1iaXJ0aF9tb250aGRheSZyZWZfPW52X2NlbF9icm5fMSIKPkJvcm4gVG9kYXk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9uZXdzL2NlbGVicml0eT9yZWZfPW52X2NlbF9ud18yIgo+Q2VsZWJyaXR5IE5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9zZWFyY2gvbmFtZT9nZW5kZXI9bWFsZSxmZW1hbGUmcmVmXz1udl9jZWxfbV8zIgo+TW9zdCBQb3B1bGFyIENlbGViczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPGg1PlBIT1RPUzwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2dhbGxlcnkvcmcxODU5ODIwMjg4P3JlZl89bnZfcGhfbHNfMSIKPkxhdGVzdCBTdGlsbHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9nYWxsZXJ5L3JnMTYyNDkzOTI2ND9yZWZfPW52X3BoX2xwXzIiCj5MYXRlc3QgUG9zdGVyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2dhbGxlcnkvcmcxNjQxNzE2NDgwP3JlZl89bnZfcGhfbHZfMyIKPlBob3RvcyBXZSBMb3ZlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViTmF2TGlzdENvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgPGg1PkVWRU5UUzwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2F3YXJkcy1jZW50cmFsLz9yZWZfPW52X2V2X2F3cmRfMSIKPkF3YXJkcyBDZW50cmFsPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZmVzdGl2YWwtY2VudHJhbC8/cmVmXz1udl9ldl9mY18yIgo+RmVzdGl2YWwgQ2VudHJhbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL29zY2Fycy8/cmVmXz1udl9ldl9hY2RfMyIKPk9zY2FyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2dvbGRlbi1nbG9iZXMvP3JlZl89bnZfZXZfZ2dfNCIKPkdvbGRlbiBHbG9iZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9zdW5kYW5jZS8/cmVmXz1udl9ldl9zdW5fNSIKPlN1bmRhbmNlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2FubmVzLz9yZWZfPW52X2V2X2Nhbl82Igo+Q2FubmVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY29taWMtY29uLz9yZWZfPW52X2V2X2NvbWljXzciCj5Db21pYy1Db248L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9lbW15cy8/cmVmXz1udl9ldl9ydGVfOCIKPkVtbXkgQXdhcmRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvdmVuaWNlLz9yZWZfPW52X2V2X3ZlbmljZV85Igo+VmVuaWNlIEZpbG0gRmVzdGl2YWw8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii90b3JvbnRvLz9yZWZfPW52X2V2X3Rvcl8xMCIKPlRvcm9udG8gRmlsbSBGZXN0aXZhbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2Zlc3RpdmFsLWNlbnRyYWwvdHJpYmVjYT9yZWZfPW52X2V2X3RyYl8xMSIKPlRyaWJlY2E8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9zeHN3Lz9yZWZfPW52X2V2X3N4c3dfMTIiCj5TWFNXPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZXZlbnQvYWxsLz9yZWZfPW52X2V2X2FsbF8xMyIKPkFsbCBFdmVudHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJzcGFjZXIiPjwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJjc3NfbmF2X2l0ZW0iIGlkPSJuYXZOZXdzTWVudSI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJuYXZDYXRlZ29yeSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvbmV3cy90b3A/cmVmXz1udl90cF9ud18xIgo+TmV3czwvYT4gJjxiciAvPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iL2N6b25lLz9yZWZfPW52X2NtX2N6XzIiCj5Db21tdW5pdHk8L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvd25BcnJvdyI+PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGlkPSJuYXZNZW51MyIgY2xhc3M9InN1Yl9uYXYiPgogICAgICAgICAgICAgICAgPGRpdiBpZD0ibGF0ZXN0SGVhZGxpbmVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJOYXZMaXN0Q29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGg1PkxBVEVTVCBIRUFETElORVM8L2g1PgogICAgPHVsIGNsYXNzPSJpcGwtc2ltcGxlLWxpc3QiPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5ld3NfaXRlbSI+CjxhIGhyZWY9Ii9uZXdzL25pNjIxMjIzMzQ/cmVmXz1udl9ud190bl8xIgo+IENvbWljLUNvbiAyMDE4OiBGcmlkYXkgU2NoZWR1bGUgSW5jbHVkZXMg4oCYRHIuIEhvcnJpYmxl4oCZIFJldW5pb24sIOKAmFZlbm9t4oCZLCDigJhHbGFzc+KAmSBhbmQgTW9yZQo8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICA8c21hbGw+CiAgICAgICAgICAgICAgICA8c3Bhbj41IGhvdXJzIGFnbzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPnw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj5Db2xsaWRlci5jb208L3NwYW4+CiAgICAgICAgICAgICAgICA8L3NtYWxsPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5ld3NfaXRlbSI+CjxhIGhyZWY9Ii9uZXdzL25pNjIxMjI2Njg/cmVmXz1udl9ud190bl8yIgo+IE1hcmdvdCBSb2JiaWUgc2F5cyBSLXJhdGVkIEJpcmRzIG9mIFByZXkgbW92aWUgY291bGQgc2hvb3QgaW4gSmFudWFyeQo8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICA8c21hbGw+CiAgICAgICAgICAgICAgICA8c3Bhbj4yNyBtaW51dGVzIGFnbzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPnw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj5Kb0Jsbzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvc21hbGw+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmV3c19pdGVtIj4KPGEgaHJlZj0iL25ld3Mvbmk2MjEyMjI3Nj9yZWZfPW52X253X3RuXzMiCj4gS2VyaSBSdXNzZWxsIGlzIFNldCB0byBTdGFyIGluIFN0YXIgV2FyczogRXBpc29kZSBJWAo8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICA8c21hbGw+CiAgICAgICAgICAgICAgICA8c3Bhbj42IGhvdXJzIGFnbzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPnw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj5HZWVrVHlyYW50PC9zcGFuPgogICAgICAgICAgICAgICAgPC9zbWFsbD4KICAgICAgICAgICAgPC9saT4KICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yk5hdkxpc3RDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgIDxoNT5ORVdTPC9oNT4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvbmV3cy90b3A/cmVmXz1udl9ud190cF8xIgo+VG9wIE5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9uZXdzL21vdmllP3JlZl89bnZfbndfbXZfMiIKPk1vdmllIE5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9uZXdzL3R2P3JlZl89bnZfbndfdHZfMyIKPlRWIE5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9uZXdzL2NlbGVicml0eT9yZWZfPW52X253X2NlbF80Igo+Q2VsZWJyaXR5IE5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9uZXdzL2luZGllP3JlZl89bnZfbndfaW5kXzUiCj5JbmRpZSBOZXdzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8aDU+Q09NTVVOSVRZPC9oNT4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY3pvbmUvP3JlZl89bnZfY21fY3pfMiIKPkNvbnRyaWJ1dG9yIFpvbmU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9wb2xsLz9yZWZfPW52X2NtX3BsXzMiCj5Qb2xsczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9InNwYWNlciI+PC9saT4KICAgICAgICA8bGkgY2xhc3M9ImNzc19uYXZfaXRlbSIgaWQ9Im5hdldhdGNobGlzdE1lbnUiPgo8cCBjbGFzcz0ibmF2Q2F0ZWdvcnkgc2luZ2xlTGluZSB3YXRjaGxpc3QiPgogICAgPGEgaHJlZj0iL2xpc3Qvd2F0Y2hsaXN0P3JlZl89bnZfd2xfYWxsXzAiCj5XYXRjaGxpc3Q8L2E+CjwvcD4KPHNwYW4gY2xhc3M9ImRvd25BcnJvdyI+PC9zcGFuPgo8ZGl2IGlkPSJuYXZNZW51NCIgY2xhc3M9InN1Yl9uYXYiPgogICAgPGg1PgogICAgICAgICAgICBZT1VSIFdBVENITElTVAogICAgPC9oNT4KICAgIDx1bCBpZD0ibmF2V2F0Y2hsaXN0Ij4KICAgIDwvdWw+CiAgICA8c2NyaXB0PgogICAgaWYgKCEoJ2ltZGInIGluIHdpbmRvdykpIHsgd2luZG93LmltZGIgPSB7fTsgfQogICAgd2luZG93LmltZGIud2F0Y2hsaXN0VGVhc2VyRGF0YSA9IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZiA6ICIvbGlzdC93YXRjaGxpc3QiLAogICAgICAgICAgICAgICAgc3JjIDogImh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvaW1hZ2VzL25hdmJhci93YXRjaGxpc3Rfc2xvdDFfbG9nZ2VkX291dC0xNjcwMDQ2MzM3Ll9DQjQ5OTU1ODYzNF8uanBnIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBocmVmIDogIi9zZWFyY2gvdGl0bGU/Y291bnQ9MTAwJnRpdGxlX3R5cGU9ZmVhdHVyZSx0dl9zZXJpZXMiLAogICAgICAgICAgICAgICAgc3JjIDogImh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvaW1hZ2VzL25hdmJhci93YXRjaGxpc3Rfc2xvdDJfcG9wdWxhci00MDkwNzU3MTk3Ll9DQjQ5OTYwMzc5OF8uanBnIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBocmVmIDogIi9jaGFydC90b3AiLAogICAgICAgICAgICAgICAgc3JjIDogImh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvaW1hZ2VzL25hdmJhci93YXRjaGxpc3Rfc2xvdDNfdG9wMjUwLTU3NTc5OTk2Ni5fQ0I0OTk2MDY5NjVfLmpwZyIKICAgICAgICAgICAgICAgIH0KICAgIF07CiAgICA8L3NjcmlwdD4KPC9kaXY+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9InNwYWNlciI+PC9saT4KICAgIDwvdWw+CjwvZGl2Pgo8ZGl2IGlkPSJuYl9leHRyYSI+CiAgICA8dWwgaWQ9Im5iX2V4dHJhX25hdiIgY2xhc3M9Im1haW5fbmF2Ij4KICAgICAgICA8bGkgY2xhc3M9ImNzc19uYXZfaXRlbSIgaWQ9Im5hdlByb01lbnUiPgogICAgPHAgY2xhc3M9Im5hdkNhdGVnb3J5Ij4KPGEgaHJlZj0iaHR0cHM6Ly9wcm8uaW1kYi5jb20vc2lnbnVwL2luZGV4Lmh0bWw/cmY9Y29uc19uYl9obSZyZWZfPWNvbnNfbmJfaG0iCj4gPGltZyBhbHQ9IklNRGJQcm8gTWVudSIgc3JjPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2ltYWdlcy9uYXZiYXIvaW1kYnByb19sb2dvX25iLTMwMDA0NzM4MjYuX0NCNDk5NjAzODEzXy5wbmciIC8+CjwvYT4gICAgPC9wPgogICAgPHNwYW4gY2xhc3M9ImRvd25BcnJvdyI+PC9zcGFuPgo8ZGl2IGlkPSJuYXZNZW51UHJvIiBjbGFzcz0iaW1kYi1wcm8tYWQtc2hhcmVkIGltZGItcHJvLWFkLXJlZGVzaWduIHN1Yl9uYXYiPgo8YSBocmVmPSJodHRwczovL3Byby5pbWRiLmNvbS9zaWdudXAvaW5kZXguaHRtbD9yZj1jb25zX25iX2htJnJlZl89Y29uc19uYl9obSIKY2xhc3M9ImltZGItcHJvLWFkX19saW5rIiA+IDxkaXYgaWQ9InByb0FkIiBjbGFzcz0iaW1kYi1wcm8tYWRfX2ltYWdlIj4KPGltZyBhbHQ9IkdvIHRvIElNRGJQcm8iIGhlaWdodD0iMTQ1IiB3aWR0aD0iMTI3IgpzcmM9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvaW1hZ2VzL25hdmJhci9pbWRicHJvX25hdmJhcl9tZW51X3VzZXItMjA3NDg2OTQxNi5fQ0I0NzQwMTc3MDZfLnBuZyIKc3Jjc2V0PSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9pbWRiL2ltYWdlcy9uYXZiYXIvaW1kYnByb19uYXZiYXJfbWVudV91c2VyLTIwNzQ4Njk0MTYuX0NCNDc0MDE3NzA2Xy5wbmcgMXgsCmh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvaW1hZ2VzL25hdmJhci9pbWRicHJvX25hdmJhcl9tZW51X3VzZXJfMngtMjQ0MjU5NDU3Ll9DQjQ3NDAxNzcwMF8ucG5nIDJ4Ii8+CjwvZGl2Pgo8c2VjdGlvbiBjbGFzcz0iaW1kYi1wcm8tYWRfX2NvbnRlbnQiPgo8ZGl2IGNsYXNzPSJpbWRiLXByby1hZF9fdGl0bGUiPlRoZSBlc3NlbnRpYWwgcmVzb3VyY2UgZm9yIGVudGVydGFpbm1lbnQgcHJvZmVzc2lvbmFsczwvZGl2Pgo8cCBjbGFzcz0iaW1kYi1wcm8tYWRfX2xpbmUiPkZpbmQgaW5kdXN0cnkgY29udGFjdHMgJmFtcDsgdGFsZW50IHJlcHJlc2VudGF0aW9uPC9wPgo8cCBjbGFzcz0iaW1kYi1wcm8tYWRfX2xpbmUiPkFjY2VzcyBpbi1kZXZlbG9wbWVudCB0aXRsZXMgbm90IGF2YWlsYWJsZSBvbiBJTURiPC9wPgo8cCBjbGFzcz0iaW1kYi1wcm8tYWRfX2xpbmUiPkdldCB0aGUgbGF0ZXN0IG5ld3MgZnJvbSBsZWFkaW5nIGluZHVzdHJ5IHRyYWRlczwvcD4KPHAgY2xhc3M9ImltZGItcHJvLWFkX19saW5lIj5DbGFpbSB5b3VyIHBhZ2UgYW5kIGNvbnRyb2wgeW91ciBicmFuZCBhY3Jvc3MgSU1EYiAmIEFtYXpvbjwvcD4KPGRpdiBjbGFzcz0iaW1kYi1wcm8tbmV3X19idXR0b24iPgo8c3ZnIHdpZHRoPSIxNzVweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMTcyIDI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8dGl0bGU+VHJ5SU1EYlByb0ZyZWU8L3RpdGxlPgo8ZyBpZD0idHJ5SU1EYlByb0ZyZWUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgo8cmVjdCBpZD0idHJ5SU1EYlByb0ZyZWVCdXR0b24iIHN0cm9rZT0iI0E4ODczNCIgZmlsbD0iI0YxQzI0MSIgeD0iMSIgeT0iMSIgd2lkdGg9IjE3MCIgaGVpZ2h0PSIyOCIgcng9IjMiPjwvcmVjdD4KPHRleHQgaWQ9InRyeUlNRGJQcm9GcmVlVGV4dCI+Cjx0c3BhbiB4PSIzMyIgeT0iMTkiPlRyeSBJTURiUHJvIEZyZWU8L3RzcGFuPgo8L3RleHQ+CjwvZz4KPC9zdmc+CjwvZGl2Pgo8L3NlY3Rpb24+CjwvYT48L2Rpdj4KICAgICAgICA8L2xpPgogICAgICAgIDxsaSBjbGFzcz0ic3BhY2VyIj48c3BhbiBjbGFzcz0iZ2hvc3QiPnw8L3NwYW4+PC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGVscC5pbWRiLmNvbS9pbWRiP3JlZl89Y29uc19uYl9obHAiCj5IZWxwPC9hPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJzb2NpYWwiPgoKICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mb2xfZmImdG9rZW49QkNZZ0JVemJseDZUS3JETlc4ME4zVS1LandNU1ZkTEQ3cDF5emdQZ0JDaXdNdzIwcHdWM19hZUhUNmE2Y3JrYTE1UFVPcWFWRXJMRiUwRCUwQVBLVHJsNXA5VUZNMXlhb3N1bkU3eTA1dktpY2ZLZ0lLb2VBaEI1Y3lrVmdfUmYyMlUxdXNRUHJzWVBmdEpYaHhCZzB5bXpTQ1d4clolMEQlMEFkU3V6T1VhaVZWOHRDUlZSN2xjMnd6RmYtOTJ4cXpiTlhUX0pjdlVPenFzaCUwRCUwQSZyZWZfPW52X2ZvbF9mYiIKdGl0bGU9IkZvbGxvdyBJTURiIG9uIEZhY2Vib29rIiB0YXJnZXQ9Il9ibGFuayIgPiA8c3BhbiBjbGFzcz0iZGVza3RvcC1zcHJpdGUgZm9sbG93LWZhY2Vib29rIiA+PC9zcGFuPgo8L2E+CiAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249Zm9sX3R3JnRva2VuPUJDWWkxQnBEZjBRaHJyTl9iR011VC1fQTNZNk9MTXlFNEdzTHBQOFBtNk1ndXVzbTNweUE3emN5Mko2aFZyMkpab091a3kwcVd5MnElMEQlMEFZb3RlQkE4VE5JbGhCRkR5WEk4X1NHZ05iSkJ3VDFkemh3QXlUdjMtOG1KSnZtdThueDdETWd0N29yWm5mQ25RZy11SUQzUjI4dEp3JTBEJTBBUmJHcFhXOENZZExsZjB5ZXJvWnQ2MEY2eFN0by1wYmJPMHRqWGpGOHVRTmQlMEQlMEEmcmVmXz1udl9mb2xfdHciCnRpdGxlPSJGb2xsb3cgSU1EYiBvbiBUd2l0dGVyIiB0YXJnZXQ9Il9ibGFuayIgPiA8c3BhbiBjbGFzcz0iZGVza3RvcC1zcHJpdGUgZm9sbG93LXR3aXR0ZXIiID48L3NwYW4+CjwvYT4KICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mb2xfaW5zdCZ0b2tlbj1CQ1lrMnAwaklSZWtaYUxTZU5EQjBZNFZ0UVBuZUttOFFENU92SzFTaGFPSzV3Z2hqcTdFVklRX045Ui1JTkNLQTFkRnVpSm9jcEgyJTBEJTBBU0NKdjlPOENSa3dsaEQyam1XRDBwcDV5T1owYXBVVzR3RlYtUGNWYVM4ZjViQ3ZGdFo3YTNaZWVYeGVMWjEtUGZqcldUODRIMGh5YSUwRCUwQTR4YXk5ZjFaSlAzRXFlU0tyeGx0cEFMSnppdkhadElOMWctNnBwRGJZSVA4JTBEJTBBJnJlZl89bnZfZm9sX2luc3QiCnRpdGxlPSJGb2xsb3cgSU1EYiBvbiBJbnN0YWdyYW0iIHRhcmdldD0iX2JsYW5rIiA+IDxzcGFuIGNsYXNzPSJkZXNrdG9wLXNwcml0ZSBmb2xsb3ctaW5zdGFncmFtIiA+PC9zcGFuPgo8L2E+CiAgICAgICAgPC9saT4KICAgIDwvdWw+CjwvZGl2Pgo8ZGl2IGlkPSJuYl9wZXJzb25hbCI+CiAgICA8dWwgaWQ9ImNvbnN1bWVyX3VzZXJfbmF2IiBjbGFzcz0ibWFpbl9uYXYiPgogICAgICAgICAgICA8bGkgY2xhc3M9ImNzc19uYXZfbWVudSBub19hcnJvdyIgaWQ9Im5hdlVzZXJNZW51Ij4KICAgICAgICAgICAgPHAgY2xhc3M9Im5hdkNhdGVnb3J5IHNpbmdsZUxpbmUiPgogICAgICAgICAgICAgICAgPGEgaWQ9ImZhY2Vib29rLXNpZ25pbi1saW5rIiBocmVmPSJodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS92Mi44L29hdXRoL2F1dGhvcml6ZT9jbGllbnRfaWQ9MTI3MDU5OTYwNjczODI5JnNjb3BlPWVtYWlsJTJDdXNlcl9hYm91dF9tZSUyQ3VzZXJfYmlydGhkYXkmc3RhdGU9ZXlJME9XVTJZeUk2SW1SaE1qa2lMQ0oxSWpvaWFIUjBjSE02THk5M2QzY3VhVzFrWWk1amIyMHZQM0psWmw4OWJuWmZabUpmYkdkcGJpSXNJbTFoYm5WaGJFeHBibXNpT2lKbVlXeHpaU0o5JnJlZGlyZWN0X3VyaT1odHRwcyUzQSUyRiUyRnd3dy5pbWRiLmNvbSUyRnJlZ2lzdHJhdGlvbiUyRmZhY2Vib29raGFuZGxlciUyRiIgY2xhc3M9InNpZ25pbi1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZhY2Vib29rLWxvZ28iPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaWduaW4tZmFjZWJvb2stdGV4dCI+U2lnbiBpbiB3aXRoIEZhY2Vib29rPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9yZWdpc3RyYXRpb24vc2lnbmluP3U9L2ZpbmQlM0ZxJTNEbGV0aGFsJTJCd2VhcG9uJTI2cmVmXyUzRG52X3NyX2ZuJnJlZl89bnZfdXNyX2xnaW5fMSIKcmVsPSJsb2dpbiIgY2xhc3M9InNpZ25pbi1vdGhlci1vcHRpb25zLXRleHQiIGlkPSJuYmxvZ2luIiA+T3RoZXIgU2lnbiBpbiBvcHRpb25zPC9hPgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgIDwvbGk+CiAgICA8L3VsPgo8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CgkKCTwhLS0gbm8gY29udGVudCByZWNlaXZlZCBmb3Igc2xvdDogbmF2c3RyaXAgLS0+CgkKCQoJPCEtLSBubyBjb250ZW50IHJlY2VpdmVkIGZvciBzbG90OiBpbmplY3RlZF9uYXZzdHJpcCAtLT4KCQo8c2NyaXB0PgogICAgaWYgKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJykgewogICAgICB1ZXQoIm5lIik7CiAgICB9Cjwvc2NyaXB0PgogICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJwYWdlY29udGVudCIgY2xhc3M9InBhZ2Vjb250ZW50Ij4KCQoJPCEtLSBubyBjb250ZW50IHJlY2VpdmVkIGZvciBzbG90OiBpbmplY3RlZF9iaWxsYm9hcmQgLS0+CgkKPGRpdiBpZD0iY29udGVudC0yLXdpZGUiPgogICAgPGRpdiBpZD0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXJ0aWNsZSI+CiAgICAgICA8aDEgY2xhc3M9ImZpbmRIZWFkZXIiPlJlc3VsdHMgZm9yIDxzcGFuIGNsYXNzPSJmaW5kU2VhcmNoVGVybSI+ImxldGhhbCB3ZWFwb24iPC9zcGFuPjwvaDE+CgoKICAgICAgICA8ZGl2IGlkPSJmaW5kU3ViSGVhZGVyIj48c3BhbiBpZD0iZmluZFN1YkhlYWRlckxhYmVsIj5KdW1wIHRvOjwvc3Bhbj4KICAgICAgICAgICAgICA8YSBocmVmPSIjdHQiPlRpdGxlczwvYT4gCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imdob3N0Ij58PC9zcGFuPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNubSI+TmFtZXM8L2E+IAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnaG9zdCI+fDwvc3Bhbj4KICAgICAgICAgICAgICA8YSBocmVmPSIja3ciPktleXdvcmRzPC9hPiAKICAgICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KCjxkaXYgY2xhc3M9ImZpbmRTZWN0aW9uIj4KPGgzIGNsYXNzPSJmaW5kU2VjdGlvbkhlYWRlciI+PGEgbmFtZT0idHQiPjwvYT5UaXRsZXM8L2gzPgo8dGFibGUgY2xhc3M9ImZpbmRMaXN0Ij4KPHRyIGNsYXNzPSJmaW5kUmVzdWx0IG9kZCI+IDx0ZCBjbGFzcz0icHJpbWFyeV9waG90byI+IDxhIGhyZWY9Ii90aXRsZS90dDUxNjQxOTYvP3JlZl89Zm5fYWxfdHRfMSIgPjxpbWcgc3JjPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvTS9NVjVCTWpBM01qVTJNVGM1TVY1Qk1sNUJhbkJuWGtGdFpUZ3dNRGszTWpjM09URUAuX1YxX1VYMzJfQ1IwLDAsMzIsNDRfQUxfLmpwZyIgLz48L2E+IDwvdGQ+IDx0ZCBjbGFzcz0icmVzdWx0X3RleHQiPiA8YSBocmVmPSIvdGl0bGUvdHQ1MTY0MTk2Lz9yZWZfPWZuX2FsX3R0XzEiID5MZXRoYWwgV2VhcG9uPC9hPiAoMjAxNikgKFRWIFNlcmllcykgPC90ZD4gPC90cj48dHIgY2xhc3M9ImZpbmRSZXN1bHQgZXZlbiI+IDx0ZCBjbGFzcz0icHJpbWFyeV9waG90byI+IDxhIGhyZWY9Ii90aXRsZS90dDAwOTM0MDkvP3JlZl89Zm5fYWxfdHRfMiIgPjxpbWcgc3JjPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvTS9NVjVCWlRsbE5XTmxaamN0TVdRd01TMDBaRGMzTFRnNVpqTXROemhtTnpoak1tVmhZVEZsWGtFeVhrRnFjR2RlUVhWeU5UYzFOVFF4T0RJQC5fVjFfVVgzMl9DUjAsMCwzMiw0NF9BTF8uanBnIiAvPjwvYT4gPC90ZD4gPHRkIGNsYXNzPSJyZXN1bHRfdGV4dCI+IDxhIGhyZWY9Ii90aXRsZS90dDAwOTM0MDkvP3JlZl89Zm5fYWxfdHRfMiIgPkxldGhhbCBXZWFwb248L2E+ICgxOTg3KSA8L3RkPiA8L3RyPjx0ciBjbGFzcz0iZmluZFJlc3VsdCBvZGQiPiA8dGQgY2xhc3M9InByaW1hcnlfcGhvdG8iPiA8YSBocmVmPSIvdGl0bGUvdHQwMzAxNTQzLz9yZWZfPWZuX2FsX3R0XzMiID48aW1nIHNyYz0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL00vTVY1Qk9UVmhNREJsTmpBdE5qazRZUzAwT0RNMUxXSTVOalV0WkdRNVkyUmxOVFZpWkdRd1hrRXlYa0ZxY0dkZVFYVnlOakV4T0RFMU1EY0AuX1YxX1VZNDRfQ1IwLDAsMzIsNDRfQUxfLmpwZyIgLz48L2E+IDwvdGQ+IDx0ZCBjbGFzcz0icmVzdWx0X3RleHQiPiA8YSBocmVmPSIvdGl0bGUvdHQwMzAxNTQzLz9yZWZfPWZuX2FsX3R0XzMiID5MZXRoYWwgV2VhcG9uPC9hPiAoMTk5MikgKFZpZGVvIEdhbWUpIDwvdGQ+IDwvdHI+PHRyIGNsYXNzPSJmaW5kUmVzdWx0IGV2ZW4iPiA8dGQgY2xhc3M9InByaW1hcnlfcGhvdG8iPiA8YSBocmVmPSIvdGl0bGUvdHQwMDk3NzMzLz9yZWZfPWZuX2FsX3R0XzQiID48aW1nIHNyYz0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL00vTVY1QllUZzBZbUUxTTJJdE5HTTJPQzAwTW1aakxUZ3dNVE10WmpsbU9HRTROMkV5TlRWaFhrRXlYa0ZxY0dkZVFYVnlNVFF4TnpNek5ESUAuX1YxX1VYMzJfQ1IwLDAsMzIsNDRfQUxfLmpwZyIgLz48L2E+IDwvdGQ+IDx0ZCBjbGFzcz0icmVzdWx0X3RleHQiPiA8YSBocmVmPSIvdGl0bGUvdHQwMDk3NzMzLz9yZWZfPWZuX2FsX3R0XzQiID5MZXRoYWwgV2VhcG9uIDI8L2E+ICgxOTg5KSA8L3RkPiA8L3RyPjx0ciBjbGFzcz0iZmluZFJlc3VsdCBvZGQiPiA8dGQgY2xhc3M9InByaW1hcnlfcGhvdG8iPiA8YSBocmVmPSIvdGl0bGUvdHQwMTIyMTUxLz9yZWZfPWZuX2FsX3R0XzUiID48aW1nIHNyYz0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL00vTVY1QlltVTJZVFl3WW1VdE1UWXpPQzAwWXpKbUxUazFORGt0TXpVNFl6QTNOamMxWm1ZMFhrRXlYa0ZxY0dkZVFYVnlORGszTnpVMk1UUUAuX1YxX1VYMzJfQ1IwLDAsMzIsNDRfQUxfLmpwZyIgLz48L2E+IDwvdGQ+IDx0ZCBjbGFzcz0icmVzdWx0X3RleHQiPiA8YSBocmVmPSIvdGl0bGUvdHQwMTIyMTUxLz9yZWZfPWZuX2FsX3R0XzUiID5MZXRoYWwgV2VhcG9uIDQ8L2E+ICgxOTk4KSA8L3RkPiA8L3RyPjx0ciBjbGFzcz0iZmluZFJlc3VsdCBldmVuIj4gPHRkIGNsYXNzPSJwcmltYXJ5X3Bob3RvIj4gPGEgaHJlZj0iL3RpdGxlL3R0MDEwNDcxNC8/cmVmXz1mbl9hbF90dF82IiA+PGltZyBzcmM9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9NL01WNUJPVEZsTmpJME5EUXRNemxrTkMwMFpEVTBMV0UwT0RrdFltSTJPVGMyWWpabFptVmxYa0V5WGtGcWNHZGVRWFZ5TVRReE56TXpORElALl9WMV9VWDMyX0NSMCwwLDMyLDQ0X0FMXy5qcGciIC8+PC9hPiA8L3RkPiA8dGQgY2xhc3M9InJlc3VsdF90ZXh0Ij4gPGEgaHJlZj0iL3RpdGxlL3R0MDEwNDcxNC8/cmVmXz1mbl9hbF90dF82IiA+TGV0aGFsIFdlYXBvbiAzPC9hPiAoMTk5MikgPC90ZD4gPC90cj48L3RhYmxlPgo8ZGl2IGNsYXNzPSJmaW5kTW9yZU1hdGNoZXMiPgogICAgICAgIFZpZXc6Jm5ic3A7IDxhIGhyZWY9Ii9maW5kP3E9bGV0aGFsJTIwd2VhcG9uJnM9dHQmcmVmXz1mbl9hbF90dF9tciIKPk1vcmUgdGl0bGUgbWF0Y2hlczwvYT4KICAgICAgICAgICAgJm5ic3A7b3ImbmJzcDsKICAgICAgICAgICAgPGEgaHJlZj0iL2ZpbmQ/cT1sZXRoYWwlMjB3ZWFwb24mcz10dCZleGFjdD10cnVlJnJlZl89Zm5fYWxfdHRfZXgiCj5FeGFjdCB0aXRsZSBtYXRjaGVzPC9hPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZpbmRTZWN0aW9uIj4KPGgzIGNsYXNzPSJmaW5kU2VjdGlvbkhlYWRlciI+PGEgbmFtZT0ibm0iPjwvYT5OYW1lczwvaDM+Cjx0YWJsZSBjbGFzcz0iZmluZExpc3QiPgo8dHIgY2xhc3M9ImZpbmRSZXN1bHQgb2RkIj4gPHRkIGNsYXNzPSJwcmltYXJ5X3Bob3RvIj4gPGEgaHJlZj0iL25hbWUvbm0wMDg1Nzc0Lz9yZWZfPWZuX2FsX25tXzEiID48aW1nIHNyYz0iaHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL00vTVY1Qk9EUmlNR1V6WW1NdE56SXdNUzAwWmpOaUxUZ3lZamN0WkRBMU1XWTVPVEUzTlRnMVhrRXlYa0ZxY0dkZVFYVnlORFV6T1RRNU1qWUAuX1YxX1VZNDRfQ1IyLDAsMzIsNDRfQUxfLmpwZyIgLz48L2E+IDwvdGQ+IDx0ZCBjbGFzcz0icmVzdWx0X3RleHQiPiA8YSBocmVmPSIvbmFtZS9ubTAwODU3NzQvP3JlZl89Zm5fYWxfbm1fMSIgPlN0ZXZlIEJsYWNrbWFuPC9hPiAoSSkgPHNtYWxsPihBY3RvciwgPGEgaHJlZj0iL3RpdGxlL3R0Mzk2MDY4Ni8/cmVmXz1mbl9hbF9ubV8xYSIgPldXRiBTaG90Z3VuIFNhdHVyZGF5IE5pZ2h0PC9hPiAoMTk5NykpPC9zbWFsbD4gPGJyLz5uaWNrbmFtZSA8aT4iVGhlIExldGhhbCBXZWFwb24iPC9pPiA8L3RkPiA8L3RyPjwvdGFibGU+CjxkaXYgY2xhc3M9ImZpbmRNb3JlTWF0Y2hlcyI+CiAgICAgICAgVmlldzombmJzcDsgPGEgaHJlZj0iL2ZpbmQ/cT1sZXRoYWwlMjB3ZWFwb24mcz1ubSZyZWZfPWZuX2FsX25tX21yIgo+TW9yZSBuYW1lIG1hdGNoZXM8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iZmluZFNlY3Rpb24iPgo8aDMgY2xhc3M9ImZpbmRTZWN0aW9uSGVhZGVyIj48YSBuYW1lPSJrdyI+PC9hPktleXdvcmRzPC9oMz4KPHRhYmxlIGNsYXNzPSJmaW5kTGlzdCI+Cjx0ciBjbGFzcz0iZmluZFJlc3VsdCBvZGQiPiA8dGQgY2xhc3M9InJlc3VsdF90ZXh0IiBjb2xzcGFuPSIyIj4gPGEgaHJlZj0iL2tleXdvcmQvbGV0aGFsLXdlYXBvbi8/cmVmXz1mbl9hbF9rd18xIiA+bGV0aGFsLXdlYXBvbjwvYT4gKDIgdGl0bGVzKSA8L3RkPiA8L3RyPjx0ciBjbGFzcz0iZmluZFJlc3VsdCBldmVuIj4gPHRkIGNsYXNzPSJyZXN1bHRfdGV4dCIgY29sc3Bhbj0iMiI+IDxhIGhyZWY9Ii9rZXl3b3JkL2xlc3MtbGV0aGFsLXdlYXBvbi8/cmVmXz1mbl9hbF9rd18yIiA+bGVzcy1sZXRoYWwtd2VhcG9uPC9hPiAoNiB0aXRsZXMpIDwvdGQ+IDwvdHI+PHRyIGNsYXNzPSJmaW5kUmVzdWx0IG9kZCI+IDx0ZCBjbGFzcz0icmVzdWx0X3RleHQiIGNvbHNwYW49IjIiPiA8YSBocmVmPSIva2V5d29yZC9ub24tbGV0aGFsLXdlYXBvbi8/cmVmXz1mbl9hbF9rd18zIiA+bm9uLWxldGhhbC13ZWFwb248L2E+ICgxIHRpdGxlKSA8L3RkPiA8L3RyPjwvdGFibGU+CjxkaXYgY2xhc3M9ImZpbmRNb3JlTWF0Y2hlcyI+CiAgICAgICAgVmlldzombmJzcDsgPGEgaHJlZj0iL2ZpbmQ/cT1sZXRoYWwlMjB3ZWFwb24mcz1rdyZyZWZfPWZuX2FsX2t3X21yIgo+TW9yZSBrZXl3b3JkIG1hdGNoZXM8L2E+CiAgICAgICAgICAgICZuYnNwO29yJm5ic3A7CiAgICAgICAgICAgIDxhIGhyZWY9Ii9maW5kP3E9bGV0aGFsJTIwd2VhcG9uJnM9a3cmZXhhY3Q9dHJ1ZSZyZWZfPWZuX2FsX2t3X2V4Igo+RXhhY3Qga2V5d29yZCBtYXRjaGVzPC9hPgo8L2Rpdj4KPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJzaWRlYmFyIj4KCQoJPCEtLSBubyBjb250ZW50IHJlY2VpdmVkIGZvciBzbG90OiB0b3BfcmhzIC0tPgoJCgo8ZGl2IGNsYXNzPSJhdXgtY29udGVudC13aWRnZXQtMyI+CjxoMz5DYXRlZ29yeSBTZWFyY2g8L2gzPgo8cD5TZWFyY2ggZm9yICJsZXRoYWwgd2VhcG9uIiB3aXRoaW4gYSBzcGVjaWZpYyBjYXRlZ29yeToKPHVsIGNsYXNzPSJmaW5kRmlsdGVyTGlzdCI+CjxsaSBjbGFzcz0iZmlsdGVyQWN0aXZlIj5BbGw8L2xpPgo8bGkgPjxhIGhyZWY9Ii9maW5kP3E9bGV0aGFsJTIwd2VhcG9uJnM9bm0mcmVmXz1mbl9ubSIKPk5hbWU8L2E+IDxzcGFuPihhY3Rvciwgd3JpdGVyLCBkaXJlY3RvciwgZXRjKTwvc3Bhbj48L2xpPgo8bGkgPjxhIGhyZWY9Ii9maW5kP3E9bGV0aGFsJTIwd2VhcG9uJnM9dHQmcmVmXz1mbl90dCIKPlRpdGxlPC9hPiA8c3Bhbj4obW92aWUsIFRWLCB2aWRlbyBnYW1lKTwvc3Bhbj48L2xpPgogICA8dWwgY2xhc3M9ImZpbmRUaXRsZVN1YmZpbHRlckxpc3QiPgogICAgICAgPGxpID48YSBocmVmPSIvZmluZD9xPWxldGhhbCUyMHdlYXBvbiZzPXR0JnR0eXBlPWZ0JnJlZl89Zm5fZnQiCj5Nb3ZpZTwvYT48L2xpPgogICAgICAgPGxpID48YSBocmVmPSIvZmluZD9xPWxldGhhbCUyMHdlYXBvbiZzPXR0JnR0eXBlPXR2JnJlZl89Zm5fdHYiCj5UVjwvYT48L2xpPgogICAgICAgPGxpID48YSBocmVmPSIvZmluZD9xPWxldGhhbCUyMHdlYXBvbiZzPXR0JnR0eXBlPWVwJnJlZl89Zm5fZXAiCj5UViBFcGlzb2RlPC9hPjwvbGk+CiAgICAgICA8bGkgPjxhIGhyZWY9Ii9maW5kP3E9bGV0aGFsJTIwd2VhcG9uJnM9dHQmdHR5cGU9dmcmcmVmXz1mbl92ZyIKPlZpZGVvIEdhbWU8L2E+PC9saT4KICAgPC91bD4KPGxpID48YSBocmVmPSIvZmluZD9xPWxldGhhbCUyMHdlYXBvbiZzPWNvJnJlZl89Zm5fY28iCj5Db21wYW55PC9hPjwvbGk+CjxsaSA+PGEgaHJlZj0iL2ZpbmQ/cT1sZXRoYWwlMjB3ZWFwb24mcz1rdyZyZWZfPWZuX2t3Igo+S2V5d29yZDwvYT48L2xpPgoKPGxpPjxhIGhyZWY9Ii9zZWFyY2gvdGl0bGUtdGV4dD9wbG90PWxldGhhbCUyMHdlYXBvbiZyZWZfPWZuX3BsIgo+UGxvdCBTdW1tYXJpZXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii9zZWFyY2gvbmFtZS10ZXh0P2Jpbz1sZXRoYWwlMjB3ZWFwb24mcmVmXz1mbl9iaSIKPkJpb2dyYXBoaWVzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvc2VhcmNoL3RpdGxlLXRleHQ/cXVvdGVzPWxldGhhbCUyMHdlYXBvbiZyZWZfPWZuX3F1Igo+UXVvdGVzPC9hPjwvbGk+CjwvdWw+CjwvZGl2PgoJCgk8IS0tIG5vIGNvbnRlbnQgcmVjZWl2ZWQgZm9yIHNsb3Q6IHJoc19jb3JuZXJzdG9uZSAtLT4KCQo8ZGl2IGNsYXNzPSJhdXgtY29udGVudC13aWRnZXQtMyI+CiAgICA8aDM+QWRkaXRpb25hbCBTZWFyY2ggT3B0aW9uczwvaDM+CiAgICA8dWwgY2xhc3M9ImZpbmRTZWFyY2hPcHRpb25zTGlzdCI+CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9zZWFyY2gvP3JlZl89Zm5fYXNyIgo+QWR2YW5jZWQgU2VhcmNoPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9zZWFyY2gvdGl0bGU/cmVmXz1mbl9hc3JfdHQiCj5BZHZhbmNlZCBUaXRsZSBTZWFyY2g8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iL3NlYXJjaC9uYW1lP3JlZl89Zm5fYXNyX25tIgo+QWR2YW5jZWQgTmFtZSBTZWFyY2g8L2E+PC9saT4KICAgIDwvdWw+CiAgICA8aHIgLz4KPGRpdiBjbGFzcz0iZmluZEVuYWJsZUFkdWx0VG9nZ2xlIj4KICAgIDxhIGhyZWY9Ii9yZWdpc3Rlci9sb2dpbj9yZWZfPWZuX2FkIgo+TG9nIGluPC9hPiB0byBlbmFibGUgYWR1bHQgdGl0bGVzL25hbWVzIGluIHlvdXIgc2VhcmNoZXMuCjwvZGl2Pgo8L2Rpdj4KCgkKCTwhLS0gbm8gY29udGVudCByZWNlaXZlZCBmb3Igc2xvdDogYm90dG9tX3JocyAtLT4KCQogICAgPC9kaXY+CjwvZGl2PgogICAgICAgICAgICAgICAgICAgPGJyIGNsYXNzPSJjbGVhciIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICA8ZGl2IGlkPSJmb290ZXIiIGNsYXNzPSJmdCI+CiAgICAgICAgICAgIDxkaXYgaWQ9InJ2aS1kaXYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVjZW50bHktdmlld2VkIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iY2xlYXJfcnZpIiBocmVmPSIjIj5DbGVhciB5b3VyIGhpc3Rvcnk8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzPlJlY2VudGx5IFZpZXdlZDwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGJyIGNsZWFyPSJhbGwiIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW1zIj4mbmJzcDs8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGJyIGNsYXNzPSJjbGVhciI+CiAgICAgICAgICAgIDwvZGl2PgoKCQoJPCEtLSBubyBjb250ZW50IHJlY2VpdmVkIGZvciBzbG90OiBib3R0b21fYWQgLS0+CgkKCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGZvb3Rlci1ncmlkLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZm9vdGVyLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wgb3V0c2lkZSI+CiAgICA8aDM+SU1EYiBFdmVyeXdoZXJlPC9oMz4KICAgIDxkaXYgY2xhc3M9ImFwcC1saW5rcyI+CiAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnRfYXBwX2FwcGxlJnRva2VuPUJDWW01SHFmeFNVakJzNzJwdktBZXpidXVzQnlqMFZiNk1XQ0ZoMldCQ0tJYUpRLVpWc2NIMDJXendMWkJaMGF6SHhrNXNEcGxoNm8lMEQlMEFicDdocjl5eHd5TXRoVGFaWEM1ZkFHNmZoRnhBTU4tSzRoMWxOaTlzZDJkSUYxYjlvdGFGSm9tMEI2enpLdmV4OFhEQVI1QW9NTF84JTBEJTBBaF92RnRqeGpIT1JmMHEta3VQbmE5aFFQWDNybHBpWHNsSVQ2VkUwaUdicnJpTUpMaml3b1U0SEJzX2txV0JYby1nJTBEJTBBJnJlZl89ZnRfYXBwX2FwcGxlIgp0aXRsZT0iR2V0IHRoZSBJTURiIEFwcCBvbiB0aGUgQXBwbGUgQXBwIFN0b3JlIiB0YXJnZXQ9Il9ibGFuayIgPiA8c3BhbiBjbGFzcz0iZGVza3RvcC1zcHJpdGUgYXBwc3RvcmUtYXBwbGUiID48L3NwYW4+CjwvYT4KICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mdF9hcHBfZ29vZ2xlJnRva2VuPUJDWXU4ek5QMGY1c081dXRZMnNyLUxaamdDMkJCWHdXNGI0c2NyVGlqbkRmOEdXcGFXRzd3ak5QaU4ySHNVeGs3Q1FuQ2xsUWZSaUclMEQlMEFldXJNckFlQVVSN1o4NzZFbHpQbXFCOWNsYV9aY0RCMW40aWZ1S1FlR2JlY2ROQ1pCeVNvYzVuSGZVSUJtRk04cDJTdGFlU0FibVlNJTBEJTBBdklOTFVMNnhrU2VTZTRvLVdFYTlxMDFjaHhxM1RWRUhzbjI0YTIxWVR2djJxcm91MzhBUXFYYllWbmlaWU5yZkhBJTBEJTBBJnJlZl89ZnRfYXBwX2dvb2dsZSIKdGl0bGU9IkdldCB0aGUgSU1EYiBhcHAgb24gR29vZ2xlIFBsYXkiIHRhcmdldD0iX2JsYW5rIiA+IDxzcGFuIGNsYXNzPSJkZXNrdG9wLXNwcml0ZSBhcHBzdG9yZS1nb29nbGUiID48L3NwYW4+CjwvYT4KICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mdF9hcHBfYW1hem9uJnRva2VuPUJDWWxGTktHQkFtbkdZdEQyWXpQb1VqODAxUW1jbndIcEVuanBXejYwM2g5MWVaUzZMdC1vRzByR29fWG1QcEw4NFRJUkxKMHIyTE8lMEQlMEFkNE9QVzJSZFdCdGsxU0U4bGNKUS1FR2lWWG0wWjZPV2JzdnNaSUx3Q01SZGFJemFfRWFfdktiOWcxdW1kbmZ1MjNqamp4SzhOc3k4JTBEJTBBSUpnTlF1S2ItYWpfR0lfbW5UUDR6NDJEb1hwdm53enFsbHdwckE4WS1WY1ZiRDdTYUpQeWo3UW9aX3ZybDdBbE5BTnhpV1luZ01aYSUwRCUwQUl0R1BncnVLUGdfU0R6QV96b05OVDNocWZtWEFuTUJqT0YwcWdibXMzMHhmVXdNYUxFN3lPdzlmNTBsT3dudWhYc2hpZV9iMDlVamUlMEQlMEFlRi1nblYwNFE1NkI2QkIyUHFlOTdfM1JjdUVMdUM2ZW9pbEZtMDU2b1V0YjY4YnRxUVhaVlNTSVRoSzY3MGFJXzBxeTN4UUgxTFdPJTBEJTBBa29TOUtfQUNCVkkzel9tYzdWOENGOGpweGFmQlpRJTBEJTBBJnJlZl89ZnRfYXBwX2FtYXpvbiIKdGl0bGU9IkdldCB0aGUgSU1EYiBhcHAgb24gQW1hem9uIEFwcHN0b3JlIGZvciBBbmRyb2lkIiB0YXJnZXQ9Il9ibGFuayIgPiA8c3BhbiBjbGFzcz0iZGVza3RvcC1zcHJpdGUgYXBwc3RvcmUtYW1hem9uIiA+PC9zcGFuPgo8L2E+CiAgICA8L2Rpdj4KCiAgICA8cD5GaW5kIHNob3d0aW1lcywgd2F0Y2ggdHJhaWxlcnMsIGJyb3dzZSBwaG90b3MsIHRyYWNrIHlvdXIgV2F0Y2hsaXN0IGFuZCByYXRlIHlvdXIgZmF2b3JpdGUgbW92aWVzIGFuZCBUViBzaG93cyBvbiB5b3VyIHBob25lIG9yIHRhYmxldCE8L3A+CgogICAgPGEgaHJlZj0iaHR0cHM6Ly9tLmltZGIuY29tP3JlZl89ZnRfbWRvdCIKY2xhc3M9InRvdWNobGluayIgPklNRGIgTW9iaWxlIHNpdGU8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbCBjZW50ZXIiPgogIDxkaXYgY2xhc3M9ImxpbmstYmFyIGljb24tbGluay1iYXIiPgogICAgPGgzPgogICAgICBGb2xsb3cgSU1EYiBvbgogICAgICA8ZGl2PgoKICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mb2xfZmImdG9rZW49QkNZbGZpTDNfMHh5a1ZkZDZ3aU16RVhiR0VERkRuVE5sQUJwdkRLMnB6aHFLaXNtUTFsREV4X0Rzc3k0YnhBUmZuX0Y5LWY0MGZYWCUwRCUwQVFyNnJ6Z19RaEl4NmVMbmhhRFdDSDFWN2U5WFhScHRIWXo0dzgxSkUxOWVCb3lpaTZsTHU0Q1pOTkpqcEZ2RkZubUNGclEzS0dnTGMlMEQlMEFRNDh0cXNLVG4tdlBScXJmRGducnpEMm1wa3dibnhycG9kOEJIc2FtLTA5USUwRCUwQSZyZWZfPWZ0X2ZvbF9mYiIKdGl0bGU9IkZvbGxvdyBJTURiIG9uIEZhY2Vib29rIiB0YXJnZXQ9Il9ibGFuayIgPiA8c3BhbiBjbGFzcz0iZGVza3RvcC1zcHJpdGUgZm9sbG93LWZhY2Vib29rIiA+PC9zcGFuPgo8L2E+CiAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249Zm9sX3R3JnRva2VuPUJDWWp1SDR0MFU5dk9mMjhITG00RjNKX3FFd2R5eEJoVnRERy1HOXVrNVJhU2I2OUNMZ2hQTXBTUEpvdDdMTFFrekd5ZjJSTXo5OGslMEQlMEFhS01IVGFxMnN1M2ljc2l4WWZCc3RpYk1YOVlzc3cxVkJQckx1U2R6YWlQcV9RUm5ZVjhEVVFoVlZmVW9XVEhZOTNKa2RFMlNfSGE2JTBEJTBBUUU0QVIwVG95Vm53djA0bW5YQ2lpTFZBN2lIZjNGX1ZNeEhXM3FfRnR1RW4lMEQlMEEmcmVmXz1mdF9mb2xfdHciCnRpdGxlPSJGb2xsb3cgSU1EYiBvbiBUd2l0dGVyIiB0YXJnZXQ9Il9ibGFuayIgPiA8c3BhbiBjbGFzcz0iZGVza3RvcC1zcHJpdGUgZm9sbG93LXR3aXR0ZXIiID48L3NwYW4+CjwvYT4KICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mb2xfaW5zdCZ0b2tlbj1CQ1loMmQ3Uy05akE0Ump5OE10UmQtYTVDQjhhN0FTOTBMb05LRDlLRHNwcWs5eUQwZU9qVl8tdTR0YXZ1NUNtNFdRNXJhejV2MHZKJTBEJTBBY0FfNzVTM2NlR0RVR1FpSjN3VnpodGh2ZC1UMWZsM25YYU91d3dvbWV6WkZIZUhtNm54eTk1LXBtSGFUdDBaU2lBMXVvTTU2V2hNeiUwRCUwQXhkUnY4Mzl5ZFliSVA4am5iVjVzc0t0cFNwcVBHOE1fNTBuUk93RXVnWGNYJTBEJTBBJnJlZl89ZnRfZm9sX2luc3QiCnRpdGxlPSJGb2xsb3cgSU1EYiBvbiBJbnN0YWdyYW0iIHRhcmdldD0iX2JsYW5rIiA+IDxzcGFuIGNsYXNzPSJkZXNrdG9wLXNwcml0ZSBmb2xsb3ctaW5zdGFncmFtIiA+PC9zcGFuPgo8L2E+CiAgICAgIDwvZGl2PgogICAgPC9oMz4KICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sIG91dHNpZGUiPgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wgY29sLTQiPgogICAgICAgICAgICA8dWwgY2xhc3M9InVuc3R5bGVkIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvP3JlZl89ZnRfaG0iCj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NoYXJ0L3RvcD9yZWZfPWZ0XzI1MCIKPlRvcCBSYXRlZCBNb3ZpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY2hhcnQvP3JlZl89ZnRfY2h0Igo+Qm94IE9mZmljZTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii90di8/cmVmXz1mdF90diIKPlRWPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL21vdmllcy1jb21pbmctc29vbi8/cmVmXz1mdF9jcyIKPkNvbWluZyBTb29uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2Eyej9yZWZfPWZ0X3NpIgo+U2l0ZSBJbmRleDwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9zZWFyY2g/cmVmXz1mdF9zciIKPlNlYXJjaDwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9tb3ZpZXMtaW4tdGhlYXRlcnMvP3JlZl89ZnRfaW50aCIKPkluIFRoZWF0ZXJzPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sIGNvbC00Ij4KICAgICAgICAgICAgPHVsIGNsYXNzPSJ1bnN0eWxlZCI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmltZGIuY29tL2ltZGI/cmVmXz1mdF9jb24iCj5Db250YWN0IFVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+ICAgICAgICA8YSBocmVmPSJodHRwczovL3NlY3VyZS5pbWRiLmNvbS9yZWdpc3Rlci1pbWRiL2Zvcm0tdjI/cmVmXz1mdF9yZWciCj5SZWdpc3RlcjwvYT4KPC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvbmV3cy8/cmVmXz1mdF9udyIKPk5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ic3BhY2VyIj48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9wcmVzc3Jvb20vP3JlZl89ZnRfcHIiCj5QcmVzcyBSb29tPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9hZHZlcnRpc2luZy5hbWF6b24uY29tL2xwL2ltZGI/cmVmXz1mdF9hZCIKPkFkdmVydGlzaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2pvYnM/cmVmXz1mdF9qYiIKPkpvYnM8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wgY29sLTQiPgogICAgICAgICAgICA8dWwgY2xhc3M9InVuc3R5bGVkIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3Byby5pbWRiLmNvbS9zaWdudXAvaW5kZXguaHRtbD9yZj1jb25zX2Z0X2htJnJlZl89Y29uc19mdF9obSIKPklNRGJQcm88L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT4gICAgPGEgaHJlZj0iL29mZnNpdGUvP3BhZ2UtYWN0aW9uPWZ0LW1vam8mdG9rZW49QkNZckpHa0k3ckVGOV8zcHA2TXFtNUEtcTVjeFhoUmdCMVdTdUpRel9hR3VNSTM1UklhZnd2UFFkT3lBMGlsV1hjZVJqRXJiQjZFSSUwRCUwQXUzYUFoMi1YeDBWOTVlRTVDcTZ6M3dhdVBSMFRZOThQdS1OTGZtamxkOS05bzl4R29RZWN2UC1OQVo3SzBkYlcwZDdabnJ0eU9mYWwlMEQlMEExOFdCb3daVGY4RFRsVzIyN0YyNWdkM3pkaU1ra1hkQXZYWld3SzZDRU1zVyUwRCUwQSZyZWZfPWZ0X2JvbSIKPkJveCBPZmZpY2UgTW9qbzwvYT4KPC9saT4KICAgICAgICAgICAgICAgIDxsaT4gICAgPGEgaHJlZj0iL29mZnNpdGUvP3BhZ2UtYWN0aW9uPWZ0LXdhYiZ0b2tlbj1CQ1lrUXNZc2JqdHhoQlFReXVFcjVsY25PWHRoamQ1YVJuSVRORlFBWDRuWms2QllTVXpMb1F2Y0syRWQ3N0liQlBlQXRGNUhkajk2JTBEJTBBX2ZZOVpfelhRR1M3ME5BaHJJUnk0clV1Z1ctVG96bDk0aDZxUHJkT1p3YlVneFB4dmFqTi00SDFqVjJvTzBHNS0tNnV0Mk1TLTJBSiUwRCUwQVlJQnUxeXBPV1AybVIwX0dtQzVZRjYxelc2cGhuMXZibVVEeWp3WUdMZlAtJTBEJTBBJnJlZl89ZnRfd2FiIgo+V2l0aG91dGFib3g8L2E+CjwvbGk+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InNwYWNlciI+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY29uZGl0aW9ucz9yZWZfPWZ0X2NvdSIKPkNvbmRpdGlvbnMgb2YgVXNlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3ByaXZhY3k/cmVmXz1mdF9wdmMiCj5Qcml2YWN5IFBvbGljeTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPiAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnQtaWJhJnRva2VuPUJDWXZHTEF5VHBpNDFxS2FNYU9tc3NPUXNHMTM0SGk5UTQ4YTJBdzJhVDdZNDNrMXZxblNhazU3SUdvdVdQWUxmWkpCdEVfQnhvWkElMEQlMEFiLTJHX21ZV0thT1lZNi1aY2JZNlo5YVVPYVBsM2dETEhJMnd1am5EU2NyazhiMXEwU3RZdDNHeC1UMVVyYlJrVzFwR0pBWXpLZVYyJTBEJTBBX29HeV9UNTFuVGdWbGYzSjZNUzByWXNMY3JHbVRUcGp0aEVQbG03Wmg3OGxtQy1CVUV1d3REUzJ1MVYtT2FnajBCUjRKZkVNdTZBaCUwRCUwQWk3R0k2Tk83LV9BJTBEJTBBJnJlZl89ZnRfaWJhIgo+SW50ZXJlc3QtQmFzZWQgQWRzPC9hPgo8L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJzcGFjZXIiPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnQtY29weSBmbG9hdC1yaWdodCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvY29uZGl0aW9ucyIKPkNvcHlyaWdodCAmY29weTs8L2E+IDE5OTAtMjAxOAogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmltZGIuY29tL2ltZGI/cmVmXz1jb25zX2Z0cl9pbWRiIgo+SU1EYi5jb20sIEluYy48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgQW4gPHNwYW4gaWQ9ImFtYXpvbl9sb2dvIiBjbGFzcz0iZm9vdGVyX2xvZ28iIGFsaWduPSJtaWRkbGUiPkFtYXpvbi5jb208L3NwYW4+IGNvbXBhbnkuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKCgogICAgPHRhYmxlIGNsYXNzPSJmb290ZXIiIGlkPSJhbWF6b24tYWZmaWxpYXRlcyI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY29sc3Bhbj0iOCI+CiAgICAgICAgICAgICAgICBBbWF6b24gQWZmaWxpYXRlcwogICAgICAgICAgICA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgoKICAgIDx0ZD4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnQtYWl2JnRva2VuPUJDWWlkRjdLZnB0V0J5TVpySmV5TnRQc0lQQ2lBeVoyRXRmTmQ5aFdXamI5S2ZmdGpRZmRwOW1odGczM2l4RkI5NUZzVDF2d0ZMTm8lMEQlMEE5cUhZMjkzM010cUo2d0dpN1JVNWVSTVk5TndiTHNuUjFOSzl5NTlZekNGTno4c01DdEhROWpFMG9GOTA4b1lIV2cwRTNIM0xfenRsJTBEJTBBOVRsbVREc1F4cTREUWZwMm1MZkZWUUlXdzRsR2tFSUJOUzFnQVpNNFh3azM1SFdoazkyVTJpNGpoakxzWk1WN2wwcU5MekFsajIxSSUwRCUwQXV3c3JGUHJuYVhvJTBEJTBBIiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLWxpbmsiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1uYW1lIj5BbWF6b24gVmlkZW88L3NwYW4+PGJyPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1kZXNjIj5XYXRjaCBNb3ZpZXMgJjxicj5UViBPbmxpbmU8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgIDwvdGQ+CgogICAgPHRkPgogICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxhIGhyZWY9Ii9vZmZzaXRlLz9wYWdlLWFjdGlvbj1mdC1waXYmdG9rZW49QkNZaGEySlF6ZHdfLUkzSTBuQU5vRW9FY0xPaHNwRVN2N29BckpQbGFjUlVaUUtJbkNuYlplaXpzdFZNenJGSkNSR3Z5REJRYm9UNiUwRCUwQTlmNEV0UnllQ0d3RkN4RWVSSDI3U1ROTlZxd1lGVW40MUlHVEx4Q25BRHNkeklzM01xRVY5NmN1M1lqUGd1alY3UFVaa1hKb2hiV3IlMEQlMEFtVV9QeVA4eDEtRGt1VmFmU1R6aEctSXMyWVJmT1N5b2NUZExVZnlRTW1kWjgzZ1pmVnVPZzNkQ3cyVnIwQ1h4eVFZcHlWc2VzVlhzJTBEJTBBbkJiWnNVNl8zTU0lMEQlMEEiIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbGluayI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLW5hbWUiPlByaW1lIFZpZGVvPC9zcGFuPjxicj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtZGVzYyI+VW5saW1pdGVkIFN0cmVhbWluZzxicj5vZiBNb3ZpZXMgJiBUVjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgPC90ZD4KCiAgICA8dGQ+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGEgaHJlZj0iL29mZnNpdGUvP3BhZ2UtYWN0aW9uPWZ0LWFtem4tZGUmdG9rZW49QkNZdnpvckxDT25SRVk2YWFJRURKbk1GWm1GRDFkM1pCQ1Q5V3FjYk5ubWY3SnV1NTNZSERwOTRtcTVkUlQ0YlRPaWtkcThNZTJ4byUwRCUwQXFxMWRBX3JuMWNpMm1rT0RmeUFVZ29JN0czUDVodGFaSDZyeDR1dzFna2tGZTVlWUVUamw0LTd6NW93Y2ExWGVidEVEOUV0Z0ZTakwlMEQlMEF3WThPYW5vVGZWU3I2NDV4aTdFeGRKZ3hSaXIwSUh2cXNyNHRyTm1xTkdSQnVsZ09sbUY3ODNNQ0hYekNHRHJEcDg5UnVXTUJqMXBXJTBEJTBBamtfOEZ3SjNUb28lMEQlMEEiIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbGluayI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLW5hbWUiPkFtYXpvbiBHZXJtYW55PC9zcGFuPjxicj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtZGVzYyI+QnV5IE1vdmllcyBvbjxicj5EVkQgJiBCbHUtcmF5PC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L3RkPgoKICAgIDx0ZD4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnQtYW16bi1pdCZ0b2tlbj1CQ1lpN0ZGd3BtUmNfdENUOXZoMEQ1aFI4SHpFREZQN2hUTld1SFpCY2VLelVPb0pWXzZHRzNVb1RiZl9ZNEhUUEs0dWJmZTBFdGhLJTBEJTBBOENQRFlUZzg1NnMtY2p2X3dmTG9NbXdvVk56RTN1UHdTSFpOSEgyRUhGQUQydDB6NlY2Ri1hUEItNmNUQXpMdmtEbUhLUXRfY0tScCUwRCUwQWtVcnZvcC1XZllGYXFhWUphWjRVd2xraTRkRDZkT1dtY0FmcGVpRW9IdGRCOHVyempsbWtIT05nLU03YkthZmVxQzZvV2dHRFJKTWMlMEQlMEEwSlpiMHB0NndpOCUwRCUwQSIgY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1saW5rIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbmFtZSI+QW1hem9uIEl0YWx5PC9zcGFuPjxicj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtZGVzYyI+QnV5IE1vdmllcyBvbjxicj5EVkQgJiBCbHUtcmF5PC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L3RkPgoKICAgIDx0ZD4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnQtYW16bi1mciZ0b2tlbj1CQ1l1UG90NVk3cDFzbUpScTl1bmNONHVXM2lfRmwzUXpTQ2otWWN4UDFyQ3F5RGcyU05kQzV5QVJHY25qVWgyMmZBRThoYW9rZGZIJTBEJTBBNG1ueTNCYU8ybUdyYm5XMU4xYmRHSE0wQWlWRDJwaS1vc0U0Qzl1MVNKTUFJQ3ZuQ04zWEFqNEZPdTZCVkFsYXlKLW8zZmkxcXBPZCUwRCUwQXJMNWYzYjdUaTVVTFQ2dXA0T29nem95cWdQa3ExZWNEdUI3cHBqZlI0YXVINHNWVXZySEUwUEFLSGpvLTgwTS00eFNSbHg5ZGFSWXQlMEQlMEE4NlFFUktnOWtiOCUwRCUwQSIgY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1saW5rIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbmFtZSI+QW1hem9uIEZyYW5jZTwvc3Bhbj48YnI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLWRlc2MiPkJ1eSBNb3ZpZXMgb248YnI+RFZEICYgQmx1LXJheTwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgPC90ZD4KCiAgICA8dGQ+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGEgaHJlZj0iL29mZnNpdGUvP3BhZ2UtYWN0aW9uPWZ0LWFtem4taW4mdG9rZW49QkNZdkFaamN2NDVDMDM3bHBuSC1Hak5Gclp2QUQ0WWdxcklBNmhNYTl5N2VLajBqQ01EQW0zTmhBRlh2cUpYdk9WWXJsRDRvNEEzbSUwRCUwQThQV1ljZ3lkdVRscG1wVF9pX2N2S2JWOTlRM3gwSm9QQ3I2OTlKSWJHWmNGRGdGNDc4a3lkTDNlWmRmZktMWEJvYTdhSnJqb3UzVXUlMEQlMEFlbV9wdmNEdXk0UGp5WEIwdUpzbkp4TVhKQnZkQy1xeWVEcERaYlVyLTNpZUhtanV1cUxnaGtibHdmS3p5SmpJdlBfeGRrdFlCQXBqJTBEJTBBR1YwakdiOS1CNGpXRXoxRUx4dHFyRWw4STQ2MF90ZmQlMEQlMEEiIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbGluayI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLW5hbWUiPkFtYXpvbiBJbmRpYTwvc3Bhbj48YnI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLWRlc2MiPkJ1eSBNb3ZpZSBhbmQ8YnI+VFYgU2hvdyBEVkRzPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L3RkPgoKICAgIDx0ZD4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnQtYW16bi1kcHImdG9rZW49QkNZclJheDJqVzM3b0tGaEtJN1pOTjZWQnNwY1A2a09hVzAxSmY5NFhaTjZEbGxBSVFBVmFEb3ZGcUZXbHY2V0o2b2x2Q3VqMUhwXyUwRCUwQTZtNzUxVXFpR0gtcndtZEx1cXF5c0RUZ0dXVTFJa2FkbTlIMmkydy0wUHJFakZOLXZVRUozRi1XY2VMLXVCYjROWk9oQ1lfSlhSWVclMEQlMEFZTVUtWS1RX3dGdU41SjNXRDVxdWVvcyUwRCUwQSIgY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1saW5rIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbmFtZSI+RFBSZXZpZXc8L3NwYW4+PGJyPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1kZXNjIj5EaWdpdGFsPGJyPlBob3RvZ3JhcGh5PC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L3RkPgoKICAgIDx0ZD4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8YSBocmVmPSIvb2Zmc2l0ZS8/cGFnZS1hY3Rpb249ZnQtYW16bi1hdWQmdG9rZW49QkNZbGhlWmIycEtzanhDWUotZWhyMDZQTjloU2UyczJObTRQWFRfdE5jY1AtQTIyc1M3RHZjaEdKbXNUZ0VYZDhuY0RteXNTM2NzOCUwRCUwQWV2VEJVRjBvZTFwdVRUYnFBWHpNblRYMFNDN2UxX3BYYTRSS09LM1RTWXFfaGhaaUcwTEJGTm1PZTVrR0I2blVUWlZjWkV2QkhhbGglMEQlMEFhTUJjdjh1SjFaM0MtRnJndlJ1c0RPYyUwRCUwQSIgY2xhc3M9ImFtYXpvbi1hZmZpbGlhdGUtc2l0ZS1saW5rIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWF6b24tYWZmaWxpYXRlLXNpdGUtbmFtZSI+QXVkaWJsZTwvc3Bhbj48YnI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1hem9uLWFmZmlsaWF0ZS1zaXRlLWRlc2MiPkRvd25sb2FkPGJyPkF1ZGlvIEJvb2tzPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3RhYmxlPgogICAgICA8L2Rpdj4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICB0cnkgewogICAgICAgICAgICB3aW5kb3cubHVtaWVyZVBsYXllciA9IHdpbmRvdy5sdW1pZXJlUGxheWVyIHx8IHt9OwogICAgICAgICAgICB3aW5kb3cubHVtaWVyZVBsYXllci53ZWJsYWIgPSBKU09OLnBhcnNlKCd7IklNREJfVklERU9fUExBWUVSXzE1MjI1OCI6IlQxIiwiSU1EQl9WSURFT19QTEFZRVJfMTYwMDU0IjoiQyIsIklNREJfVklERU9fUExBWUVSXzE1MjY1MSI6IlQxIiwiSU1EQl9WSURFT19QTEFZRVJfMTU2NjUwIjoiVDEifScpOwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGlmICh3aW5kb3cudWVMb2dFcnJvcikgewogICAgICAgICAgICAgICAgd2luZG93LnVlTG9nRXJyb3IoZXJyb3IsIHsKICAgICAgICAgICAgICAgICAgICBsb2dMZXZlbDogIldBUk4iLAogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0aW9uOiAidmlkZW9wbGF5ZXIiLAogICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJGYWlsZWQgdG8gcGFyc2Ugd2VibGFicyBmb3IgdmlkZW8gcGxheWVyLiIKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zY3JpcHQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvanMvY29sbGVjdGlvbnMvY29tbW9uLTE4MTg0MTMwMDQuX0NCNDk5NjAzNzYxXy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvanMvY29sbGVjdGlvbnMvanF1ZXJ5LTIxMzQzMjI2MzQuX0NCNDk5NTU5MDA3Xy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ltZGIvanMvY29sbGVjdGlvbnMvY29uc3VtZXJzaXRlLTI2MDYyMzA1OTUuX0NCNDczOTkwNjQ1Xy5qcyI+PC9zY3JpcHQ+CgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0ibG9naW4iPgooZnVuY3Rpb24oKXsKICAgIHZhciByZWFkeVRpbWVvdXQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICBpZiAod2luZG93LmpRdWVyeSAmJiB3aW5kb3cuaW1kYiAmJiB3aW5kb3cuaW1kYi5sb2dpbl9saWdodGJveCkgewogICAgICAgICAgICBjbGVhclRpbWVvdXQocmVhZHlUaW1lb3V0KTsKICAgICAgICAgICAgd2luZG93LmltZGIubG9naW5fbGlnaHRib3goKTsKICAgICAgICB9CiAgICB9LCAxMDApOwp9KSgpOwo8L3NjcmlwdD4KCgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlcnZlcnRpbWUiIHRpbWU9IjM1Ii8+CgoKCjxzY3JpcHQ+CiAgICBpZiAodHlwZW9mIHVldCA9PSAnZnVuY3Rpb24nKSB7CiAgICAgIHVldCgiYmUiKTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgCiAgICA8L2JvZHk+CjwvaHRtbD4KCg==
57
- http_version:
58
- recorded_at: Fri, 06 Jul 2018 23:43:22 GMT
59
- recorded_with: VCR 4.0.0
@@ -1,71 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # IMDB scraping
4
- class IML::IMDB
5
- attr_accessor :result
6
- attr_accessor :doc
7
-
8
- # Start a IMDB query
9
- # @return [Array<Media::Movie, Media::TVSeries>] Array of Media objects
10
- def initialize(query)
11
- query = CGI.escape(query)
12
- html = open("https://www.imdb.com/find?q=#{query}&ref_=nv_sr_fn", 'X-Forwarded-For' => '35.228.112.200').read
13
- @doc = Nokogiri::HTML(html)
14
- @result = []
15
- search
16
- end
17
-
18
- private
19
-
20
- def parsable_element(elem)
21
- elem.children[1] && (elem.css('i').first || elem.children[1].child.to_s) && elem.children[1].attr(:href) =~ /title/
22
- end
23
-
24
- def title_first_choice(elem)
25
- elem.css('i').first && elem.css('i').first.child.to_s.delete('"')
26
- end
27
-
28
- def parse_title(elem)
29
- title_first_choice(elem) || elem.children[1].child.to_s
30
- end
31
-
32
- def fetch_type(elem)
33
- elem.children[2].to_s.strip
34
- end
35
-
36
- def tv?(elem)
37
- fetch_type(elem).match(/\((?<year>\d{4})\) \(TV Series\)/) || false
38
- end
39
-
40
- def movie?(elem)
41
- fetch_type(elem).match(/\((?<year>\d{4})\)/) || false
42
- end
43
-
44
- def game?(elem)
45
- fetch_type(elem).match(/Video Game/) || false
46
- end
47
-
48
- def processable_elements
49
- @processable_elements ||= @doc.css('.result_text').select { |e| parsable_element(e) && !game?(e) }
50
- end
51
-
52
- def href(elem)
53
- elem.children[1].attr(:href)
54
- end
55
-
56
- def year(elem)
57
- fetch_type(elem).match(/\((?<year>\d{4})\)/).named_captures['year']
58
- end
59
-
60
- def search
61
- processable_elements.each do |elem|
62
- attrs = { title: parse_title(elem), href: href(elem), year: year(elem) }
63
- if tv?(elem)
64
- media = IML::TVSeries.new(attrs)
65
- elsif movie?(elem)
66
- media = IML::Movie.new(attrs)
67
- end
68
- result.push media
69
- end
70
- end
71
- end