Merge ~ack/maas:resource-pools-2.4 into maas:2.4

Proposed by Alberto Donato
Status: Merged
Merged at revision: 786679366806f408368e651b44d2af2282e15e19
Proposed branch: ~ack/maas:resource-pools-2.4
Merge into: maas:2.4
Diff against target: 6862 lines (+2422/-1271)
96 files modified
dev/null (+0/-145)
src/maasserver/api/machines.py (+11/-4)
src/maasserver/api/nodes.py (+9/-0)
src/maasserver/api/pods.py (+21/-3)
src/maasserver/api/resourcepools.py (+90/-0)
src/maasserver/api/tests/test_commissioning.py (+0/-4)
src/maasserver/api/tests/test_enlistment.py (+2/-0)
src/maasserver/api/tests/test_maas.py (+1/-2)
src/maasserver/api/tests/test_machine.py (+13/-0)
src/maasserver/api/tests/test_machines.py (+59/-39)
src/maasserver/api/tests/test_nodes.py (+28/-2)
src/maasserver/api/tests/test_pods.py (+101/-1)
src/maasserver/api/tests/test_resourcepool.py (+105/-0)
src/maasserver/api/tests/test_resourcepools.py (+59/-0)
src/maasserver/api/tests/test_tag.py (+13/-14)
src/maasserver/api/users.py (+1/-0)
src/maasserver/config.py (+0/-4)
src/maasserver/context_processors.py (+2/-6)
src/maasserver/forms/__init__.py (+7/-77)
src/maasserver/forms/pods.py (+17/-21)
src/maasserver/forms/tests/test_machine.py (+1/-0)
src/maasserver/forms/tests/test_node.py (+1/-0)
src/maasserver/forms/tests/test_pods.py (+212/-134)
src/maasserver/forms/tests/test_resourcepool.py (+0/-31)
src/maasserver/forms/tests/test_user.py (+0/-20)
src/maasserver/migrations/builtin/maasserver/0141_add_default_usergroup.py (+4/-4)
src/maasserver/migrations/builtin/maasserver/0157_drop_usergroup_and_role.py (+48/-0)
src/maasserver/migrations/builtin/maasserver/0158_pod_default_pool_to_pod.py (+20/-0)
src/maasserver/migrations/builtin/maasserver/0159_pod_storage_pools.py (+43/-0)
src/maasserver/migrations/builtin/maasserver/0160_storage_pools_notification.py (+37/-0)
src/maasserver/migrations/builtin/maasserver/0161_userprofile_auth_last_check_no_now_default.py (+23/-0)
src/maasserver/models/__init__.py (+3/-19)
src/maasserver/models/bmc.py (+10/-6)
src/maasserver/models/node.py (+1/-7)
src/maasserver/models/resourcepool.py (+0/-120)
src/maasserver/models/tests/test_bmc.py (+12/-13)
src/maasserver/models/tests/test_node.py (+5/-80)
src/maasserver/models/tests/test_resourcepool.py (+0/-155)
src/maasserver/models/tests/test_userprofile.py (+0/-15)
src/maasserver/models/user.py (+0/-5)
src/maasserver/models/userprofile.py (+0/-8)
src/maasserver/node_action.py (+22/-1)
src/maasserver/node_constraint_filter_forms.py (+45/-0)
src/maasserver/static/css/build.css (+1/-1)
src/maasserver/static/js/angular/controllers/add_hardware.js (+23/-5)
src/maasserver/static/js/angular/controllers/node_details.js (+19/-2)
src/maasserver/static/js/angular/controllers/nodes_list.js (+105/-26)
src/maasserver/static/js/angular/controllers/pod_details.js (+7/-2)
src/maasserver/static/js/angular/controllers/pods_list.js (+7/-3)
src/maasserver/static/js/angular/controllers/tests/test_add_hardware.js (+19/-3)
src/maasserver/static/js/angular/controllers/tests/test_node_details.js (+34/-7)
src/maasserver/static/js/angular/controllers/tests/test_nodes_list.js (+196/-2)
src/maasserver/static/js/angular/controllers/tests/test_pod_details.js (+20/-2)
src/maasserver/static/js/angular/controllers/tests/test_pods_list.js (+22/-2)
src/maasserver/static/js/angular/directives/machines_table.js (+4/-7)
src/maasserver/static/js/angular/directives/tests/test_machines_table.js (+6/-21)
src/maasserver/static/js/angular/factories/machines.js (+3/-0)
src/maasserver/static/js/angular/factories/resourcepools.js (+42/-0)
src/maasserver/static/js/angular/factories/tests/test_machines.js (+1/-1)
src/maasserver/static/js/angular/factories/tests/test_resourcepools.js (+42/-0)
src/maasserver/static/js/angular/filters/nodes.js (+3/-0)
src/maasserver/static/js/angular/filters/tests/test_nodes.js (+15/-0)
src/maasserver/static/js/angular/maas.js (+2/-5)
src/maasserver/static/js/bundle/maas-min.js (+1/-1)
src/maasserver/static/js/bundle/maas-min.js.map (+1/-1)
src/maasserver/static/partials/cards/machine.html (+1/-1)
src/maasserver/static/partials/machines-table.html (+6/-12)
src/maasserver/static/partials/node-details.html (+1/-1)
src/maasserver/static/partials/nodes-list.html (+145/-25)
src/maasserver/static/partials/pod-details.html (+22/-14)
src/maasserver/static/partials/pods-list.html (+2/-0)
src/maasserver/static/scss/_maas.scss (+4/-0)
src/maasserver/static/scss/_tables.scss (+2/-2)
src/maasserver/templates/maasserver/base.html (+3/-0)
src/maasserver/templates/maasserver/index.html (+6/-0)
src/maasserver/templates/maasserver/js-conf.html (+1/-2)
src/maasserver/testing/factory.py (+5/-40)
src/maasserver/tests/test_auth.py (+0/-11)
src/maasserver/tests/test_node_action.py (+13/-27)
src/maasserver/tests/test_node_constraint_filter_forms.py (+70/-0)
src/maasserver/triggers/__init__.py (+6/-0)
src/maasserver/triggers/testing.py (+16/-0)
src/maasserver/triggers/tests/test_init.py (+6/-0)
src/maasserver/triggers/tests/test_websocket_listener.py (+214/-0)
src/maasserver/triggers/websocket.py (+66/-0)
src/maasserver/urls_api.py (+14/-1)
src/maasserver/websockets/base.py (+4/-0)
src/maasserver/websockets/handlers/__init__.py (+2/-0)
src/maasserver/websockets/handlers/machine.py (+8/-0)
src/maasserver/websockets/handlers/node.py (+3/-6)
src/maasserver/websockets/handlers/pod.py (+5/-0)
src/maasserver/websockets/handlers/resourcepool.py (+68/-0)
src/maasserver/websockets/handlers/tests/test_machine.py (+9/-14)
src/maasserver/websockets/handlers/tests/test_pod.py (+30/-84)
src/maasserver/websockets/handlers/tests/test_resourcepool.py (+89/-0)
src/maasserver/websockets/tests/test_protocol.py (+2/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
MAAS Maintainers Pending
Review via email: mp+347227@code.launchpad.net

Commit message

LP: #1773454 - Assigning multiple machines to a newly created pool only does for the first machine

LP: #1773456 - make machine counts on the pool listing page links to machine listing with filters

LP: #1773437 - fix the initial value of the object tracking adding a pool

Rename Pod.default_pool to Pod.pool.
It was originaly default_pool, since pools are tied to permissions, but pods
weren't covered. Now that pools don't deal with permissions, it was decided to
name it pool, since pods will most be part of the RBAC work later.
I renamed the DB patches, since we want to backport this change.

Allow speciying a resource pool when composing a machine in a pod.

Ensure that default resource pool for pods can be managed via the API.

Add ability to change default_storage_pool on a pod. Add storage_pool id on block-device output. Add default flag on storage pools output on a pod.

Fix the get_pod_storage_pools method.
It called self.list_pools() with arguments, but list_pools() doesn't
accept any arguments.
Tests were passing, since list_pools() was mocked in the tests. I added
a new fake, which can be used to mock things at a lower level, so that
more of the functionality can be tested.

Upgrade from using default_storage_pool power parameter to using the new default_storage_pool foreign key set on the Pod.
This allows the old path to work by handling the default_storage_pool set on the power_parameters to still propagate to the rack controller. The new way overrides this setting on compose and on refresh of the pod the setting in power_parameters in the pod is migrated to the model.

add configauth option to select which candid domain to authenticate users with

Model and discovery storage pools on virsh pods. Add storage pools to API output for pods.

Allow specifying default resource pool when creating or editing pods in the UI.

add form to edit a pool

add form field for resource pool selection when creating a machine

drop IS_PREMIUM flag, expose resource pools UI

drop UserGroup and Role models, and related logic

add resource pools API

Don't allow non-admins to add or delete resource pools.
Show the Pools top-level link on the settings page. Before the link would
disappear if you went to the settings page.

add resource pools UI

Description of the change

DO NOT MERGE, the MP is only for having CI running tests

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b resource-pools-2.4 lp:~ack/maas/+git/maas into -b 2.4 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 253923935db8ba612a087b3814bd1cf9df582fb4

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b resource-pools-2.4 lp:~ack/maas/+git/maas into -b 2.4 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 786679366806f408368e651b44d2af2282e15e19

review: Approve
Revision history for this message
Alberto Donato (ack) wrote :

This ran successfully through CI: http://162.213.35.104:8080/job/maas-git-manual/244/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/api/machines.py b/src/maasserver/api/machines.py
2index 1335011..35ed712 100644
3--- a/src/maasserver/api/machines.py
4+++ b/src/maasserver/api/machines.py
5@@ -128,6 +128,7 @@ DISPLAYED_MACHINE_FIELDS = (
6 'ip_addresses',
7 ('interface_set', DISPLAYED_INTERFACE_FIELDS),
8 'zone',
9+ 'pool',
10 'disable_ipv4',
11 'constraints_by_type',
12 'boot_disk',
13@@ -1462,6 +1463,15 @@ class MachinesHandler(NodesHandler, PowersMixin):
14 exclude, this parameter must be repeated in the request with each
15 value.
16 :type not_in_zone: unicode (accepts multiple)
17+ :param pool: Resource pool name the machine must belong to.
18+ :type pool: unicode
19+ :param not_in_pool: List of resource pool from which the machine must
20+ not be acquired.
21+
22+ If multiple pools are specified, the machine must NOT be associated
23+ with ANY of them. To request multiple pools to exclude, this
24+ parameter must be repeated in the request with each value.
25+ :type not_in_pool: unicode (accepts multiple)
26 :param pod: Pod the machine must be located in.
27 :type pod: unicode
28 :param not_pod: Pod the machine must not be located in.
29@@ -1662,10 +1672,7 @@ class MachinesHandler(NodesHandler, PowersMixin):
30 "architecture": architecture,
31 "storage": storage,
32 }
33- # Only match allocation if Pod's zone matches.
34- pods = Pod.objects.filter(
35- Q(default_pool__role__users=request.user) |
36- Q(default_pool__role__groups__users=request.user))
37+ pods = Pod.objects.all()
38 if zone is not None:
39 pods = pods.filter(zone__name=zone)
40 if pods:
41diff --git a/src/maasserver/api/nodes.py b/src/maasserver/api/nodes.py
42index b60e029..e61bf9b 100644
43--- a/src/maasserver/api/nodes.py
44+++ b/src/maasserver/api/nodes.py
45@@ -209,6 +209,8 @@ def filtered_nodes_list_from_request(request, model=None):
46 the nodes in the domain will be returned.
47 :param zone: An optional name for a physical zone. Only events relating to
48 the nodes in the zone will be returned.
49+ :param pool: An optional name for a resource pool. Only nodes belonging
50+ to the pool will be returned.
51 :param agent_name: An optional agent name. Only events relating to the
52 nodes with matching agent names will be returned.
53 """
54@@ -239,6 +241,9 @@ def filtered_nodes_list_from_request(request, model=None):
55 match_zone_name = request.GET.get('zone', None)
56 if match_zone_name is not None:
57 nodes = nodes.filter(zone__name=match_zone_name)
58+ match_pool_name = request.GET.get('pool', None)
59+ if match_pool_name is not None:
60+ nodes = nodes.filter(pool__name=match_pool_name)
61 match_agent_name = request.GET.get('agent_name', None)
62 if match_agent_name is not None:
63 nodes = nodes.filter(agent_name=match_agent_name)
64@@ -593,6 +598,10 @@ class NodesHandler(OperationsHandler):
65 to the nodes in the zone will be returned.
66 :type zone: unicode
67
68+ :param pool: An optional name for a resource pool. Only nodes belonging
69+ to the pool will be returned.
70+ :type pool: unicode
71+
72 :param agent_name: An optional agent name. Only nodes relating to the
73 nodes with matching agent names will be returned.
74 :type agent_name: unicode
75diff --git a/src/maasserver/api/pods.py b/src/maasserver/api/pods.py
76index 2f3c1ae..6bfdcbf 100644
77--- a/src/maasserver/api/pods.py
78+++ b/src/maasserver/api/pods.py
79@@ -42,6 +42,7 @@ DISPLAYED_POD_FIELDS = (
80 'zone',
81 'cpu_over_commit_ratio',
82 'memory_over_commit_ratio',
83+ 'pool',
84 )
85
86
87@@ -98,12 +99,23 @@ class PodHandler(OperationsHandler):
88 def update(self, request, id):
89 """Update a specific Pod.
90
91- :param name: Name for the pod (optional).
92+ :param name: Name for the pod
93 :type name: unicode
94- :param cpu_over_commit_ratio: CPU over commit ratio (optional).
95+ :param pool: Name of resource pool this pod belongs and that
96+ composed machines get assigned to by default.
97+ :type pool: unicode
98+ :param cpu_over_commit_ratio: CPU over commit ratio
99 :type cpu_over_commit_ratio: unicode
100- :param memory_over_commit_ratio: Memory over commit ratio (optional).
101+ :param memory_over_commit_ratio: Memory over commit ratio
102 :type memory_over_commit_ratio: unicode
103+ :param power_address: Address for power control of the pod
104+ :type power_address: unicode
105+ :param power_pass: Password for power control of the pod
106+ :type power_pass: unicode
107+ :param zone: Name of the zone for the pod
108+ :type zone: unicode
109+ :param tags: A tag or tags (separated by comma) for the pod.
110+ :type tags: unicode
111
112 Note: 'type' cannot be updated on a Pod. The Pod must be deleted and
113 re-added to change the type.
114@@ -194,6 +206,9 @@ class PodHandler(OperationsHandler):
115 :type domain: unicode
116 :param zone: ID of zone place the newly composed machine in.
117 :type zone: unicode
118+ :param pool: ID of resource pool to place the newly composed machine
119+ in.
120+ :type pool: unicode
121
122 Returns 404 if the pod is not found.
123 Returns 403 if the user does not have permission to compose machine.
124@@ -298,6 +313,9 @@ class PodsHandler(OperationsHandler):
125 :type name: unicode
126 :param zone: Name of the zone for the pod (optional).
127 :type zone: unicode
128+ :param pool: Name of resource pool this pod belongs and that
129+ composed machines get assigned to by default (optional).
130+ :type pool: unicode
131 :param tags: A tag or tags (separated by comma) for the pod (optional).
132 :type tags: unicode
133
134diff --git a/src/maasserver/api/resourcepools.py b/src/maasserver/api/resourcepools.py
135new file mode 100644
136index 0000000..cb232d9
137--- /dev/null
138+++ b/src/maasserver/api/resourcepools.py
139@@ -0,0 +1,90 @@
140+# Copyright 2018 Canonical Ltd. This software is licensed under the
141+# GNU Affero General Public License version 3 (see the file LICENSE).
142+
143+"""API handlers: `ResourcePool`."""
144+
145+__all__ = [
146+ 'ResourcePoolHandler',
147+ 'ResourcePoolsHandler',
148+]
149+
150+from maasserver.api.support import (
151+ AnonymousOperationsHandler,
152+ ModelCollectionOperationsHandler,
153+ ModelOperationsHandler,
154+)
155+from maasserver.forms import ResourcePoolForm
156+from maasserver.models import ResourcePool
157+
158+
159+DISPLAYED_RESOURCEPOOL_FIELDS = (
160+ 'id',
161+ 'name',
162+ 'description',
163+)
164+
165+
166+class AnonResourcePoolHandler(AnonymousOperationsHandler):
167+ """Anonymous access to a resource pool."""
168+ read = create = update = delete = None
169+ model = ResourcePool
170+ fields = DISPLAYED_RESOURCEPOOL_FIELDS
171+
172+
173+class ResourcePoolHandler(ModelOperationsHandler):
174+ """Manage a resource pool."""
175+
176+ model = ResourcePool
177+ fields = DISPLAYED_RESOURCEPOOL_FIELDS
178+ model_form = ResourcePoolForm
179+ handler_url_name = 'resourcepool_handler'
180+ api_doc_section_name = 'Resource pool'
181+
182+ def read(self, request, id):
183+ """GET request. Return resource pool.
184+
185+ Returns 404 if the resource pool is not found.
186+ """
187+ return super().read(request, id=id)
188+
189+ def update(self, request, id):
190+ """PUT request. Update resource pool.
191+
192+ Returns 404 if the resource pool is not found.
193+ """
194+ return super().update(request, id=id)
195+
196+ def delete(self, request, id):
197+ """DELETE request. Delete resource pool.
198+
199+ Returns 404 if the resource pool is not found.
200+ Returns 204 if the resource pool is successfully deleted.
201+ """
202+ return super().delete(request, id=id)
203+
204+
205+class ResourcePoolsHandler(ModelCollectionOperationsHandler):
206+ """Manage resource pools."""
207+
208+ model_manager = ResourcePool.objects
209+ fields = DISPLAYED_RESOURCEPOOL_FIELDS
210+ model_form = ResourcePoolForm
211+ handler_url_name = 'resourcepools_handler'
212+ api_doc_section_name = 'Resource pools'
213+
214+ def create(self, request):
215+ """Create a new resource pool.
216+
217+ :param name: Identifier-style name for the new resource pool.
218+ :type name: unicode
219+ :param description: Free-form description of the new resource pool.
220+ :type description: unicode
221+ """
222+ return super().create(request)
223+
224+ def read(self, request):
225+ """List resource pools.
226+
227+ Get a listing of all the resource pools.
228+ """
229+ return super().read(request)
230diff --git a/src/maasserver/api/tests/test_commissioning.py b/src/maasserver/api/tests/test_commissioning.py
231index 22e80df..f88c81c 100644
232--- a/src/maasserver/api/tests/test_commissioning.py
233+++ b/src/maasserver/api/tests/test_commissioning.py
234@@ -326,10 +326,6 @@ class NodeCommissionResultHandlerAPITest(APITestCase.ForUser):
235 owner=factory.make_User(), with_empty_script_sets=True)
236 for script_result in node.current_commissioning_script_set:
237 self.store_result(script_result, exit_status=0)
238- node = factory.make_Node(
239- pool=factory.make_ResourcePool(), with_empty_script_sets=True)
240- for script_result in node.current_commissioning_script_set:
241- self.store_result(script_result, exit_status=0)
242
243 url = reverse('node_results_handler')
244 response = self.client.get(url)
245diff --git a/src/maasserver/api/tests/test_enlistment.py b/src/maasserver/api/tests/test_enlistment.py
246index 0087243..3319116 100644
247--- a/src/maasserver/api/tests/test_enlistment.py
248+++ b/src/maasserver/api/tests/test_enlistment.py
249@@ -546,6 +546,7 @@ class SimpleUserLoggedInEnlistmentAPITest(APITestCase.ForUser):
250 'storage',
251 'memory',
252 'swap_size',
253+ 'pool',
254 'zone',
255 'disable_ipv4',
256 'address_ttl',
257@@ -743,6 +744,7 @@ class AdminLoggedInEnlistmentAPITest(APITestCase.ForAdmin):
258 'memory',
259 'swap_size',
260 'zone',
261+ 'pool',
262 'disable_ipv4',
263 'address_ttl',
264 'boot_disk',
265diff --git a/src/maasserver/api/tests/test_maas.py b/src/maasserver/api/tests/test_maas.py
266index d7b8a04..4d268fa 100644
267--- a/src/maasserver/api/tests/test_maas.py
268+++ b/src/maasserver/api/tests/test_maas.py
269@@ -41,8 +41,7 @@ FORBIDDEN_NAMES = {
270 "omapi_key", "rpc_region_certificate",
271 "rpc_shared_secret", "commissioning_osystem",
272 "active_discovery_last_scan", "uuid", "external_auth_url",
273- "external_auth_user", "external_auth_key",
274- "macaroon_private_key",
275+ "external_auth_user", "external_auth_key", "macaroon_private_key",
276 }
277
278
279diff --git a/src/maasserver/api/tests/test_machine.py b/src/maasserver/api/tests/test_machine.py
280index 46df780..524f41b 100644
281--- a/src/maasserver/api/tests/test_machine.py
282+++ b/src/maasserver/api/tests/test_machine.py
283@@ -203,6 +203,19 @@ class TestMachineAPI(APITestCase.ForUser):
284 parsed_result['zone']['name'],
285 parsed_result['zone']['description']])
286
287+ def test_GET_returns_pool(self):
288+ pool = factory.make_ResourcePool()
289+ machine = factory.make_Node(pool=pool)
290+ response = self.client.get(self.get_machine_uri(machine))
291+ self.assertEqual(http.client.OK, response.status_code)
292+ result = json_load_bytes(response.content)
293+ self.assertEqual(
294+ result['pool'],
295+ {'id': pool.id,
296+ 'name': pool.name,
297+ 'description': pool.description,
298+ 'resource_uri': reverse('resourcepool_handler', args=[pool.id])})
299+
300 def test_GET_returns_boot_interface(self):
301 machine = factory.make_Node(interface=True)
302 machine.boot_interface = machine.interface_set.first()
303diff --git a/src/maasserver/api/tests/test_machines.py b/src/maasserver/api/tests/test_machines.py
304index 4f0a65e..882454e 100644
305--- a/src/maasserver/api/tests/test_machines.py
306+++ b/src/maasserver/api/tests/test_machines.py
307@@ -346,12 +346,12 @@ class TestMachinesAPI(APITestCase.ForUser):
308 ])
309
310 # Because of fields `status_action`, `status_message`,
311- # `default_gateways`, `health_status` and 'special_filesystems' the
312- # number of queries is not the same but it is proportional to the
313- # number of machines.
314+ # `default_gateways`, `health_status`, 'special_filesystems' and
315+ # 'resource_pool' the number of queries is not the same but it is
316+ # proportional to the number of machines.
317 DEFAULT_NUM = 61
318- self.assertEqual(DEFAULT_NUM + (10 * 5), num_queries1)
319- self.assertEqual(DEFAULT_NUM + (20 * 5), num_queries2)
320+ self.assertEqual(DEFAULT_NUM + (10 * 6), num_queries1)
321+ self.assertEqual(DEFAULT_NUM + (20 * 6), num_queries2)
322
323 def test_GET_without_machines_returns_empty_list(self):
324 # If there are no machines to list, the "read" op still works but
325@@ -680,7 +680,7 @@ class TestMachinesAPI(APITestCase.ForUser):
326 self.assertEqual(machine.system_id, parsed_result['system_id'])
327 self.assertThat(mock_compose, MockCalledOnceWith())
328
329- def test_POST_allocate_returns_a_composed_machine_with_pool_access(self):
330+ def test_POST_allocate_returns_a_composed_machine(self):
331 # The "allocate" operation returns a composed machine.
332 def compose_machine(*args, **kwargs):
333 return factory.make_Node(
334@@ -692,9 +692,9 @@ class TestMachinesAPI(APITestCase.ForUser):
335 "amd64/generic", "i386/generic",
336 "armhf/generic", "arm64/generic"
337 ]
338- pool = factory.make_ResourcePool(users=[self.user])
339+ pool = factory.make_ResourcePool()
340 pod = factory.make_Pod(
341- architectures=architectures, default_pool=pool)
342+ architectures=architectures, pool=pool)
343 pod.hints.cores = random.randint(8, 16)
344 pod.hints.memory = random.randint(4096, 8192)
345 pod.hints.save()
346@@ -716,37 +716,6 @@ class TestMachinesAPI(APITestCase.ForUser):
347 response.content.decode(settings.DEFAULT_CHARSET))
348 self.assertEqual(pod_machine_hostname, parsed_result['hostname'])
349
350- def test_POST_allocate_no_composed_machine_with_no_pool_access(self):
351- # The "allocate" operation returns a composed machine.
352- def compose_machine(*args, **kwargs):
353- return factory.make_Node(
354- status=NODE_STATUS.READY, owner=None, with_boot_disk=True,
355- bmc=pod)
356- architectures = [
357- "amd64/generic", "i386/generic",
358- "armhf/generic", "arm64/generic"
359- ]
360- pool = factory.make_ResourcePool(users=[])
361- pod = factory.make_Pod(
362- architectures=architectures, default_pool=pool)
363- pod.hints.cores = random.randint(8, 16)
364- pod.hints.memory = random.randint(4096, 8192)
365- pod.hints.save()
366- mock_list_all_usable_architectures = self.patch(
367- forms_module, 'list_all_usable_architectures')
368- mock_list_all_usable_architectures.return_value = sorted(
369- pod.architectures)
370- mock_compose = self.patch(ComposeMachineForm, 'compose')
371- mock_compose.side_effect = compose_machine
372- response = self.client.post(
373- reverse('machines_handler'), {
374- 'op': 'allocate',
375- 'cpu_count': pod.hints.cores,
376- 'mem': pod.hints.memory,
377- 'arch': 'amd64'
378- })
379- self.assertEqual(http.client.CONFLICT, response.status_code)
380-
381 def test_POST_allocate_returns_a_composed_machine_with_zone(self):
382 # The "allocate" operation returns a composed machine with zone of Pod.
383 available_status = NODE_STATUS.READY
384@@ -1396,6 +1365,37 @@ class TestMachinesAPI(APITestCase.ForUser):
385 })
386 self.assertEqual(http.client.BAD_REQUEST, response.status_code)
387
388+ def test_POST_allocate_allocates_machine_by_pool(self):
389+ node1 = factory.make_Node(
390+ status=NODE_STATUS.READY, with_boot_disk=True)
391+ factory.make_Node(status=NODE_STATUS.READY, with_boot_disk=True)
392+ pool = factory.make_ResourcePool(nodes=[node1])
393+ response = self.client.post(reverse('machines_handler'), {
394+ 'op': 'allocate',
395+ 'pool': pool.name,
396+ })
397+ self.assertThat(response, HasStatusCode(http.client.OK))
398+ response_json = json.loads(
399+ response.content.decode(settings.DEFAULT_CHARSET))
400+ self.assertEqual(node1.system_id, response_json['system_id'])
401+
402+ def test_POST_allocate_allocates_machine_by_pool_fails_if_no_machine(self):
403+ factory.make_Node(
404+ status=NODE_STATUS.READY, with_boot_disk=True)
405+ pool = factory.make_ResourcePool()
406+ response = self.client.post(reverse('machines_handler'), {
407+ 'op': 'allocate',
408+ 'pool': pool.name,
409+ })
410+ self.assertThat(response, HasStatusCode(http.client.CONFLICT))
411+
412+ def test_POST_allocate_rejects_unknown_pool(self):
413+ response = self.client.post(reverse('machines_handler'), {
414+ 'op': 'allocate',
415+ 'pool': factory.make_name('pool'),
416+ })
417+ self.assertEqual(http.client.BAD_REQUEST, response.status_code)
418+
419 def test_POST_allocate_allocates_machine_by_tags_comma_separated(self):
420 machine = factory.make_Node(
421 status=NODE_STATUS.READY, with_boot_disk=True)
422@@ -1713,6 +1713,26 @@ class TestMachinesAPI(APITestCase.ForUser):
423 response.content.decode(settings.DEFAULT_CHARSET))['system_id']
424 self.assertEqual(eligible_machine.system_id, system_id)
425
426+ def test_POST_allocate_obeys_not_in_pool(self):
427+ # Pool we don't want to acquire from.
428+ node1 = factory.make_Node(
429+ status=NODE_STATUS.READY, with_boot_disk=True)
430+ node2 = factory.make_Node(
431+ status=NODE_STATUS.READY, with_boot_disk=True)
432+ pool1 = factory.make_ResourcePool(nodes=[node1])
433+ factory.make_ResourcePool(nodes=[node2])
434+
435+ response = self.client.post(
436+ reverse('machines_handler'),
437+ {
438+ 'op': 'allocate',
439+ 'not_in_pool': [pool1.name],
440+ })
441+ self.assertEqual(http.client.OK, response.status_code)
442+ system_id = json.loads(
443+ response.content.decode(settings.DEFAULT_CHARSET))['system_id']
444+ self.assertEqual(node2.system_id, system_id)
445+
446 def test_POST_allocate_sets_a_token(self):
447 # "acquire" should set the Token being used in the request on
448 # the Machine that is allocated.
449diff --git a/src/maasserver/api/tests/test_nodes.py b/src/maasserver/api/tests/test_nodes.py
450index 6d24982..2e145fd 100644
451--- a/src/maasserver/api/tests/test_nodes.py
452+++ b/src/maasserver/api/tests/test_nodes.py
453@@ -127,8 +127,10 @@ def extract_system_ids_from_nodes(nodes):
454
455
456 class RequestFixture:
457- def __init__(self, dict, fields):
458- self.user = factory.make_User()
459+ def __init__(self, dict, fields, user=None):
460+ if user is None:
461+ user = factory.make_User()
462+ self.user = user
463 self.GET = get_overridden_query_dict(dict, QueryDict(''), fields)
464
465
466@@ -320,6 +322,30 @@ class TestFilteredNodesListFromRequest(APITestCase.ForUser):
467 [node.system_id for node in nodes],
468 extract_system_ids_from_nodes(node_list))
469
470+ def test_node_list_with_pool_filters_by_pool(self):
471+ pool1 = factory.make_ResourcePool()
472+ pool2 = factory.make_ResourcePool()
473+ node1 = factory.make_Node(pool=pool1)
474+ factory.make_Node(pool=pool2)
475+
476+ query = RequestFixture({'pool': pool1.name}, 'pool', self.user)
477+ node_list = nodes_module.filtered_nodes_list_from_request(query)
478+
479+ self.assertSequenceEqual(
480+ [node1.system_id], extract_system_ids_from_nodes(node_list))
481+
482+ def test_node_list_without_pool_does_not_filter(self):
483+ nodes = [
484+ factory.make_Node(pool=factory.make_ResourcePool())
485+ for _ in range(3)]
486+
487+ query = RequestFixture({}, '', self.user)
488+ node_list = nodes_module.filtered_nodes_list_from_request(query)
489+
490+ self.assertSequenceEqual(
491+ [node.system_id for node in nodes],
492+ extract_system_ids_from_nodes(node_list))
493+
494
495 class TestNodesAPI(APITestCase.ForUser):
496 """Tests for /api/2.0/nodes/."""
497diff --git a/src/maasserver/api/tests/test_pods.py b/src/maasserver/api/tests/test_pods.py
498index a5e7535..75eb374 100644
499--- a/src/maasserver/api/tests/test_pods.py
500+++ b/src/maasserver/api/tests/test_pods.py
501@@ -120,7 +120,8 @@ class TestPodsAPI(APITestCase.ForUser, PodMixin):
502 'zone',
503 'available',
504 'cpu_over_commit_ratio',
505- 'memory_over_commit_ratio'
506+ 'memory_over_commit_ratio',
507+ 'pool',
508 ],
509 list(parsed_result[0]))
510 self.assertItemsEqual(
511@@ -165,6 +166,17 @@ class TestPodsAPI(APITestCase.ForUser, PodMixin):
512 parsed_result = json_load_bytes(response.content)
513 self.assertEqual(parsed_result['type'], pod_info['type'])
514
515+ def test_create_creates_pod_with_default_resource_pool(self):
516+ self.become_admin()
517+ discovered_pod, _, _ = self.fake_pod_discovery()
518+ pod_info = self.make_pod_info()
519+ pool = factory.make_ResourcePool()
520+ pod_info['pool'] = pool.name
521+ response = self.client.post(reverse('pods_handler'), pod_info)
522+ self.assertEqual(http.client.OK, response.status_code)
523+ parsed_result = json_load_bytes(response.content)
524+ self.assertEqual(pool.id, parsed_result['pool']['id'])
525+
526 def test_create_duplicate_provides_nice_error(self):
527 self.become_admin()
528 pod_info = self.make_pod_info()
529@@ -242,6 +254,38 @@ class TestPodAPI(APITestCase.ForUser, PodMixin):
530 self.assertEqual(
531 http.client.FORBIDDEN, response.status_code, response.content)
532
533+ def test_PUT_updates(self):
534+ self.become_admin()
535+ pod = factory.make_Pod(pod_type='virsh')
536+ new_name = factory.make_name('pod')
537+ new_tags = [factory.make_name('tag'), factory.make_name('tag')]
538+ new_pool = factory.make_ResourcePool()
539+ new_zone = factory.make_Zone()
540+ new_power_parameters = {
541+ 'default_storage_pool': factory.make_name('storage-pool'),
542+ 'power_address': 'qemu+ssh://1.2.3.4/system',
543+ 'power_pass': factory.make_name('pass'),
544+ }
545+ discovered_pod, _, _ = self.fake_pod_discovery()
546+ response = self.client.put(get_pod_uri(pod), {
547+ 'name': new_name,
548+ 'tags': ','.join(new_tags),
549+ 'default_storage_pool': new_power_parameters[
550+ 'default_storage_pool'],
551+ 'power_address': new_power_parameters['power_address'],
552+ 'power_pass': new_power_parameters['power_pass'],
553+ 'zone': new_zone.name,
554+ 'pool': new_pool.name,
555+ })
556+ self.assertEqual(
557+ http.client.OK, response.status_code, response.content)
558+ pod.refresh_from_db()
559+ self.assertEqual(new_name, pod.name)
560+ self.assertEqual(new_pool, pod.pool)
561+ self.assertItemsEqual(new_tags, pod.tags)
562+ self.assertEqual(new_power_parameters, pod.power_parameters)
563+ self.assertEqual(new_zone, pod.zone)
564+
565 def test_PUT_updates_discovers_syncs_and_returns_pod(self):
566 self.become_admin()
567 pod_info = self.make_pod_info()
568@@ -261,6 +305,27 @@ class TestPodAPI(APITestCase.ForUser, PodMixin):
569 self.assertEqual(new_name, parsed_output['name'])
570 self.assertEqual(discovered_pod.cores, parsed_output['total']['cores'])
571
572+ def test_PUT_update_minimal(self):
573+ self.become_admin()
574+ pod_info = self.make_pod_info()
575+ power_parameters = {
576+ 'default_storage_pool': factory.make_name(),
577+ 'power_address': pod_info['power_address'],
578+ 'power_pass': pod_info['power_pass'],
579+ }
580+ pod = factory.make_Pod(
581+ pod_type=pod_info['type'], parameters=power_parameters)
582+ new_name = factory.make_name('pool')
583+ self.fake_pod_discovery()
584+ response = self.client.put(get_pod_uri(pod), {
585+ 'name': new_name,
586+ })
587+ self.assertEqual(
588+ http.client.OK, response.status_code, response.content)
589+ pod.refresh_from_db()
590+ self.assertEqual(new_name, pod.name)
591+ self.assertEqual(power_parameters, pod.power_parameters)
592+
593 def test_refresh_requires_admin(self):
594 pod = factory.make_Pod()
595 response = self.client.post(get_pod_uri(pod), {
596@@ -328,6 +393,8 @@ class TestPodAPI(APITestCase.ForUser, PodMixin):
597 def test_compose_composes_with_defaults(self):
598 self.become_admin()
599 pod = self.make_pod_with_hints()
600+ pod.pool = factory.make_ResourcePool()
601+ pod.save()
602
603 # Mock the RPC client.
604 client = MagicMock()
605@@ -351,6 +418,39 @@ class TestPodAPI(APITestCase.ForUser, PodMixin):
606 parsed_machine = json_load_bytes(response.content)
607 self.assertItemsEqual(
608 parsed_machine.keys(), ['resource_uri', 'system_id'])
609+ machine = Machine.objects.get(system_id=parsed_machine['system_id'])
610+ self.assertEqual(machine.pool, pod.pool)
611+
612+ def test_compose_composes_with_pool(self):
613+ self.become_admin()
614+ pod = self.make_pod_with_hints()
615+
616+ # Mock the RPC client.
617+ client = MagicMock()
618+ mock_getClient = self.patch(pods, "getClientFromIdentifiers")
619+ mock_getClient.return_value = succeed(client)
620+
621+ # Mock the result of the composed machine.
622+ composed_machine, pod_hints = self.make_compose_machine_result(pod)
623+ mock_compose_machine = self.patch(pods, "compose_machine")
624+ mock_compose_machine.return_value = succeed(
625+ (composed_machine, pod_hints))
626+
627+ # Mock start_commissioning so it doesn't use post commit hooks.
628+ self.patch(Machine, "start_commissioning")
629+
630+ pool = factory.make_ResourcePool()
631+ response = self.client.post(get_pod_uri(pod), {
632+ 'op': 'compose',
633+ 'pool': pool.id,
634+ })
635+ self.assertEqual(
636+ http.client.OK, response.status_code, response.content)
637+ parsed_machine = json_load_bytes(response.content)
638+ self.assertItemsEqual(
639+ parsed_machine.keys(), ['resource_uri', 'system_id'])
640+ machine = Machine.objects.get(system_id=parsed_machine['system_id'])
641+ self.assertEqual(machine.pool, pool)
642
643 def test_compose_raises_error_when_to_large_request(self):
644 self.become_admin()
645diff --git a/src/maasserver/api/tests/test_resourcepool.py b/src/maasserver/api/tests/test_resourcepool.py
646new file mode 100644
647index 0000000..7e93e43
648--- /dev/null
649+++ b/src/maasserver/api/tests/test_resourcepool.py
650@@ -0,0 +1,105 @@
651+# Copyright 2018 Canonical Ltd. This software is licensed under the
652+# GNU Affero General Public License version 3 (see the file LICENSE).
653+
654+"""Tests for resource pool API."""
655+
656+
657+import http.client
658+import json
659+
660+from django.conf import settings
661+from maasserver.models import ResourcePool
662+from maasserver.testing.api import APITestCase
663+from maasserver.testing.factory import factory
664+from maasserver.utils.django_urls import reverse
665+from maasserver.utils.orm import reload_object
666+
667+
668+class TestResourcePoolAPI(APITestCase.ForUser):
669+
670+ def test_handler_path(self):
671+ self.assertEqual(
672+ reverse('resourcepool_handler', args=[123]),
673+ '/MAAS/api/2.0/resourcepool/123/')
674+
675+ def test_POST_disallowed_for_creation(self):
676+ self.become_admin()
677+ name = factory.make_name('name')
678+ description = factory.make_name('description')
679+ response = self.client.post(
680+ reverse('resourcepool_handler', args=[123]),
681+ {'name': name, 'description': description})
682+ self.assertEqual(response.status_code, http.client.METHOD_NOT_ALLOWED)
683+
684+ def test_GET_returns_pool(self):
685+ pool = factory.make_ResourcePool()
686+ response = self.client.get(
687+ reverse('resourcepool_handler', args=[pool.id]), {})
688+ self.assertEqual(response.status_code, http.client.OK)
689+ result = json.loads(
690+ response.content.decode(settings.DEFAULT_CHARSET))
691+ self.assertEqual(result['name'], pool.name)
692+ self.assertEqual(result['description'], pool.description)
693+ self.assertEqual(
694+ result['resource_uri'],
695+ '/MAAS/api/2.0/resourcepool/{}/'.format(pool.id))
696+
697+ def test_PUT_updates_pool(self):
698+ self.become_admin()
699+ pool = factory.make_ResourcePool()
700+ new_name = factory.make_name('name')
701+ new_description = factory.make_name('description')
702+ response = self.client.put(
703+ reverse('resourcepool_handler', args=[pool.id]),
704+ {'name': new_name, 'description': new_description})
705+ self.assertEqual(response.status_code, http.client.OK)
706+ pool = reload_object(pool)
707+ self.assertEqual(pool.name, new_name)
708+ self.assertEqual(pool.description, new_description)
709+
710+ def test_PUT_missing(self):
711+ self.become_admin()
712+ description = factory.make_string()
713+ response = self.client.get(
714+ reverse('resourcepool_handler', args=[-1]),
715+ {'description': description})
716+ self.assertEqual(response.status_code, http.client.NOT_FOUND)
717+
718+ def test_PUT_requires_admin(self):
719+ pool = factory.make_ResourcePool()
720+ response = self.client.put(
721+ reverse('resourcepool_handler', args=[pool.id]),
722+ {'description': factory.make_string()})
723+ self.assertEqual(response.status_code, http.client.FORBIDDEN)
724+
725+ def test_DELETE_removes_pool(self):
726+ self.become_admin()
727+ pool = factory.make_ResourcePool()
728+ response = self.client.delete(
729+ reverse('resourcepool_handler', args=[pool.id]), {})
730+ self.assertEqual(response.status_code, http.client.NO_CONTENT)
731+ self.assertIsNone(reload_object(pool))
732+
733+ def test_DELETE_default_pool_denied(self):
734+ self.become_admin()
735+ response = self.client.delete(
736+ reverse('resourcepool_handler', args=[0]),
737+ {})
738+ self.assertEqual(response.status_code, http.client.BAD_REQUEST)
739+ self.assertIsNotNone(ResourcePool.objects.get_default_resource_pool())
740+
741+ def test_DELETE_requires_admin(self):
742+ pool = factory.make_ResourcePool()
743+ response = self.client.delete(
744+ reverse('resourcepool_handler', args=[pool.id]), {})
745+ self.assertEqual(response.status_code, http.client.FORBIDDEN)
746+
747+ def test_DELETE_is_idempotent(self):
748+ self.become_admin()
749+ pool = factory.make_ResourcePool()
750+ response = self.client.delete(
751+ reverse('resourcepool_handler', args=[pool.id]))
752+ self.assertEqual(response.status_code, http.client.NO_CONTENT)
753+ response = self.client.delete(
754+ reverse('resourcepool_handler', args=[pool.id]))
755+ self.assertEqual(response.status_code, http.client.NO_CONTENT)
756diff --git a/src/maasserver/api/tests/test_resourcepools.py b/src/maasserver/api/tests/test_resourcepools.py
757new file mode 100644
758index 0000000..8cac703
759--- /dev/null
760+++ b/src/maasserver/api/tests/test_resourcepools.py
761@@ -0,0 +1,59 @@
762+# Copyright 2018 Canonical Ltd. This software is licensed under the
763+# GNU Affero General Public License version 3 (see the file LICENSE).
764+
765+"""Tests for resource pools API."""
766+
767+import http.client
768+import json
769+from operator import attrgetter
770+
771+from django.conf import settings
772+from maasserver.models import ResourcePool
773+from maasserver.testing.api import APITestCase
774+from maasserver.testing.factory import factory
775+from maasserver.utils.django_urls import reverse
776+
777+
778+class TestResourcePoolsAPI(APITestCase.ForUser):
779+
780+ def test_handler_path(self):
781+ self.assertEqual(
782+ '/MAAS/api/2.0/resourcepools/', reverse('resourcepools_handler'))
783+
784+ def test_create_pool(self):
785+ self.become_admin()
786+ name = factory.make_name('name')
787+ description = factory.make_name('description')
788+ response = self.client.post(
789+ reverse('resourcepools_handler'),
790+ {'name': name, 'description': description})
791+ self.assertEqual(response.status_code, http.client.OK)
792+ pool = ResourcePool.objects.get(name=name)
793+ self.assertEqual(pool.description, description)
794+
795+ def test_create_requires_admin(self):
796+ name = factory.make_name('name')
797+ description = factory.make_name('description')
798+ response = self.client.post(
799+ reverse('resourcepools_handler'),
800+ {'name': name, 'description': description})
801+ self.assertEqual(response.status_code, http.client.FORBIDDEN)
802+
803+ def test_list_returns_pools_list(self):
804+ pools = [factory.make_ResourcePool() for _ in range(3)]
805+ # include the default pool
806+ pools.append(ResourcePool.objects.get_default_resource_pool())
807+ pools.sort(key=attrgetter('name'))
808+ response = self.client.get(reverse('resourcepools_handler'), {})
809+ self.assertEqual(
810+ http.client.OK, response.status_code, response.content)
811+ result = json.loads(
812+ response.content.decode(settings.DEFAULT_CHARSET))
813+ self.assertItemsEqual(
814+ [(pool['name'], pool['description'], pool['resource_uri'])
815+ for pool in result],
816+ [(
817+ pool.name,
818+ pool.description,
819+ reverse('resourcepool_handler', args=[pool.id]))
820+ for pool in pools])
821diff --git a/src/maasserver/api/tests/test_tag.py b/src/maasserver/api/tests/test_tag.py
822index f89f8a0..682721c 100644
823--- a/src/maasserver/api/tests/test_tag.py
824+++ b/src/maasserver/api/tests/test_tag.py
825@@ -139,7 +139,7 @@ class TestTagAPI(APITestCase.ForUser):
826 def test_GET_nodes_returns_nodes(self):
827 tag = factory.make_Tag()
828 machine = factory.make_Node()
829- device = factory.make_Device(owner=self.user)
830+ device = factory.make_Device()
831 rack = factory.make_RackController()
832 region = factory.make_RegionController()
833 # Create a second node that isn't tagged.
834@@ -189,7 +189,7 @@ class TestTagAPI(APITestCase.ForUser):
835 parsed_result_2 = json.loads(
836 response2.content.decode(settings.DEFAULT_CHARSET))
837 self.assertEqual(
838- [http.client.OK, http.client.OK, 3, 6],
839+ [http.client.OK, http.client.OK, 6, 12],
840 [
841 response1.status_code,
842 response2.status_code,
843@@ -198,10 +198,10 @@ class TestTagAPI(APITestCase.ForUser):
844 ])
845
846 # Because of fields `status_action`, `status_message`,
847- # `default_gateways`, `health_status` and 'special_filesystems' the
848- # number of queries is not the same but it is proportional to the
849- # number of machines.
850- self.assertEquals(num_queries1, num_queries2 - (3 * 5))
851+ # `default_gateways`, `health_status`, 'special_filesystems' and
852+ # 'resource_pool' the number of queries is not the same but it is
853+ # proportional to the number of machines.
854+ self.assertEquals(num_queries1, num_queries2 - (3 * 6))
855
856 def test_GET_machines_returns_machines(self):
857 tag = factory.make_Tag()
858@@ -259,14 +259,15 @@ class TestTagAPI(APITestCase.ForUser):
859 ])
860
861 # Because of fields `status_action`, `status_message`,
862- # `default_gateways`, and `health_status` the number of queries is not
863- # the same but it is proportional to the number of machines.
864- self.assertEquals(num_queries1, num_queries2 - (3 * 5))
865+ # `default_gateways`, `health_status` and 'resource_pool', the number
866+ # of queries is not the same but it is proportional to the number of
867+ # machines.
868+ self.assertEquals(num_queries1, num_queries2 - (3 * 6))
869
870 def test_GET_devices_returns_devices(self):
871 tag = factory.make_Tag()
872 machine = factory.make_Node()
873- device = factory.make_Device(owner=self.user)
874+ device = factory.make_Device()
875 rack = factory.make_RackController()
876 region = factory.make_RegionController()
877 # Create a second node that isn't tagged.
878@@ -292,7 +293,7 @@ class TestTagAPI(APITestCase.ForUser):
879
880 tag = factory.make_Tag()
881 for _ in range(3):
882- device = factory.make_Device(owner=self.user)
883+ device = factory.make_Device()
884 device.tags.add(tag)
885 num_queries1, response1 = count_queries(
886 self.client.get, self.get_tag_uri(tag), {'op': 'devices'})
887@@ -310,7 +311,7 @@ class TestTagAPI(APITestCase.ForUser):
888 parsed_result_2 = json.loads(
889 response2.content.decode(settings.DEFAULT_CHARSET))
890 self.assertEqual(
891- [http.client.OK, http.client.OK, 3, 3],
892+ [http.client.OK, http.client.OK, 3, 6],
893 [
894 response1.status_code,
895 response2.status_code,
896@@ -483,11 +484,9 @@ class TestTagAPI(APITestCase.ForUser):
897 user2 = factory.make_User()
898 node1 = factory.make_Node()
899 node2 = factory.make_Node(status=NODE_STATUS.ALLOCATED, owner=user2)
900- node3 = factory.make_Node(pool=factory.make_ResourcePool())
901 tag = factory.make_Tag()
902 node1.tags.add(tag)
903 node2.tags.add(tag)
904- node3.tags.add(tag)
905
906 response = self.client.get(self.get_tag_uri(tag), {'op': 'nodes'})
907
908diff --git a/src/maasserver/api/users.py b/src/maasserver/api/users.py
909index 5764aa4..6c19b8c 100644
910--- a/src/maasserver/api/users.py
911+++ b/src/maasserver/api/users.py
912@@ -112,6 +112,7 @@ class UserHandler(OperationsHandler):
913 )
914
915 def read(self, request, username):
916+ """Return user details."""
917 return get_object_or_404(User, username=username)
918
919 @admin_method
920diff --git a/src/maasserver/config.py b/src/maasserver/config.py
921index ead2df1..0b613bd 100644
922--- a/src/maasserver/config.py
923+++ b/src/maasserver/config.py
924@@ -4,7 +4,6 @@
925 """Configuration for the MAAS region."""
926
927 __all__ = [
928- "IS_PREMIUM",
929 "RegionConfiguration",
930 ]
931
932@@ -24,9 +23,6 @@ from provisioningserver.utils.config import (
933 )
934
935
936-IS_PREMIUM = False
937-
938-
939 class RegionConfigurationMeta(ConfigurationMeta):
940 """Local meta-configuration for the MAAS region."""
941
942diff --git a/src/maasserver/context_processors.py b/src/maasserver/context_processors.py
943index 9acf3c1..958a5d0 100644
944--- a/src/maasserver/context_processors.py
945+++ b/src/maasserver/context_processors.py
946@@ -8,10 +8,7 @@ __all__ = [
947 ]
948
949 from django.conf import settings
950-from maasserver.config import (
951- IS_PREMIUM,
952- RegionConfiguration,
953-)
954+from maasserver.config import RegionConfiguration
955 from maasserver.models import (
956 Config,
957 RegionController,
958@@ -50,6 +47,5 @@ def global_options(request):
959 'completed_intro': Config.objects.get_config('completed_intro'),
960 'user_completed_intro': user_completed_intro,
961 'analytics_user_id': analytics_user_id,
962- 'maas_uuid': uuid,
963- 'is_premium': IS_PREMIUM
964+ 'maas_uuid': uuid
965 }
966diff --git a/src/maasserver/forms/__init__.py b/src/maasserver/forms/__init__.py
967index 3a88e75..9c4eacd 100644
968--- a/src/maasserver/forms/__init__.py
969+++ b/src/maasserver/forms/__init__.py
970@@ -40,8 +40,6 @@ __all__ = [
971 "list_all_usable_architectures",
972 "MAASForm",
973 "MachineForm",
974- "ManageResourcePoolsAssociationForm",
975- "ManageUserGroupsForm",
976 "NetworksListingForm",
977 "NewUserCreationForm",
978 "NetworkDiscoveryForm",
979@@ -64,7 +62,6 @@ __all__ = [
980 "UpdateRaidForm",
981 "UpdateVirtualBlockDeviceForm",
982 "UpdateVolumeGroupForm",
983- "UserGroupForm",
984 "WindowsForm",
985 "ZoneForm",
986 ]
987@@ -160,7 +157,6 @@ from maasserver.models import (
988 SSHKey,
989 SSLKey,
990 Tag,
991- UserGroup,
992 VirtualBlockDevice,
993 VolumeGroup,
994 Zone,
995@@ -193,8 +189,6 @@ from maasserver.utils.osystems import (
996 validate_min_hwe_kernel,
997 )
998 from maasserver.utils.threads import deferToDatabase
999-from maasserver.worker_user import user_name as worker_username
1000-from metadataserver.nodeinituser import user_name as node_init_username
1001 from netaddr import (
1002 IPNetwork,
1003 valid_ipv6,
1004@@ -967,7 +961,10 @@ class AdminNodeForm(NodeForm):
1005 label="Physical zone", required=False,
1006 initial=Zone.objects.get_default_zone,
1007 queryset=Zone.objects.all(), to_field_name='name')
1008-
1009+ pool = forms.ModelChoiceField(
1010+ label="Resource pool", required=False,
1011+ initial=ResourcePool.objects.get_default_resource_pool,
1012+ queryset=ResourcePool.objects.all(), to_field_name='name')
1013 cpu_count = forms.IntegerField(
1014 required=False, initial=0, label="CPU Count")
1015 memory = forms.IntegerField(
1016@@ -1046,6 +1043,9 @@ class AdminMachineForm(MachineForm, AdminNodeForm, WithPowerTypeMixin):
1017 zone = self.cleaned_data.get('zone')
1018 if zone:
1019 machine.zone = zone
1020+ pool = self.cleaned_data.get('pool')
1021+ if pool:
1022+ machine.pool = pool
1023 WithPowerTypeMixin.set_values(self, machine)
1024 if kwargs.get('commit', True):
1025 machine.save(*args, **kwargs)
1026@@ -1410,54 +1410,6 @@ class DeleteUserForm(Form):
1027 help_text="Transfer resources owned by the user to this user.")
1028
1029
1030-class UserGroupForm(MAASModelForm):
1031- """Form for managing a user group."""
1032-
1033- class Meta:
1034- model = UserGroup
1035- fields = (
1036- 'name',
1037- 'description',
1038- 'local',
1039- )
1040-
1041- def clean(self):
1042- if self.is_update and not self.instance.local:
1043- raise ValidationError("Can't edit non-local group")
1044- return super().clean()
1045-
1046- def clean_local(self):
1047- new_local = self.cleaned_data['local']
1048- if self.is_update and new_local != self.instance.local:
1049- raise ValidationError("Can't change user group type")
1050-
1051- # if not specified, apply the field default (when creating an object)
1052- if not self.is_update and 'local' not in self.data:
1053- self.cleaned_data['local'] = self.fields['local'].initial
1054- return self.cleaned_data['local']
1055-
1056-
1057-class ManageUserGroupsForm(Form):
1058- """A form to add/remove users with groups."""
1059-
1060- user = forms.ModelMultipleChoiceField(
1061- queryset=User.objects.filter(is_active=True).exclude(
1062- username__in=(worker_username, node_init_username)),
1063- label="User group to add/remove ", required=True)
1064-
1065-
1066-class ManageResourcePoolsAssociationForm(Form):
1067- """A form to grant/revoke access to resource pools.
1068-
1069- It's used to manage user and user groups association with resource pools.
1070-
1071- """
1072-
1073- pool = forms.ModelMultipleChoiceField(
1074- queryset=ResourcePool.objects.all(),
1075- label="Resource pool to grant/revoke access to", required=True)
1076-
1077-
1078 class ConfigForm(Form):
1079 """A base class for forms that save the content of their fields into
1080 Config objects.
1081@@ -2024,28 +1976,6 @@ class ResourcePoolForm(MAASModelForm):
1082 'description',
1083 )
1084
1085- def save(self):
1086- pool = super().save()
1087- user_ids = set(self.data.getlist('users'))
1088- if user_ids:
1089- self._update_linked(
1090- pool.users, pool.grant_user, pool.revoke_user, User, user_ids)
1091- group_ids = set(self.data.getlist('groups'))
1092- if group_ids:
1093- self._update_linked(
1094- pool.groups, pool.grant_group, pool.revoke_group, UserGroup,
1095- group_ids)
1096- return pool
1097-
1098- def _update_linked(self, current_set, grant, revoke, model, ids):
1099- current_ids = set(current_set.values_list('id', flat=True))
1100- to_add = model.objects.filter(id__in=(ids - current_ids))
1101- to_remove = model.objects.filter(id__in=(current_ids - ids))
1102- for entry in to_remove:
1103- revoke(entry)
1104- for entry in to_add:
1105- grant(entry)
1106-
1107
1108 class NodeMACAddressChoiceField(forms.ModelMultipleChoiceField):
1109 """A ModelMultipleChoiceField which shows the name of the MACs."""
1110diff --git a/src/maasserver/forms/pods.py b/src/maasserver/forms/pods.py
1111index ec339c4..8bd067d 100644
1112--- a/src/maasserver/forms/pods.py
1113+++ b/src/maasserver/forms/pods.py
1114@@ -83,6 +83,7 @@ class PodForm(MAASModelForm):
1115 'name',
1116 'tags',
1117 'zone',
1118+ 'pool',
1119 'cpu_over_commit_ratio',
1120 'memory_over_commit_ratio',
1121 ]
1122@@ -96,6 +97,11 @@ class PodForm(MAASModelForm):
1123 initial=Zone.objects.get_default_zone,
1124 queryset=Zone.objects.all(), to_field_name='name')
1125
1126+ pool = forms.ModelChoiceField(
1127+ label="Default pool of created machines", required=False,
1128+ initial=lambda: ResourcePool.objects.get_default_resource_pool().name,
1129+ queryset=ResourcePool.objects.all(), to_field_name='name')
1130+
1131 cpu_over_commit_ratio = forms.FloatField(
1132 label="CPU over commit ratio", initial=1, required=False,
1133 min_value=0, max_value=10)
1134@@ -134,10 +140,7 @@ class PodForm(MAASModelForm):
1135 self.initial['type'] = self.instance.power_type
1136 if instance is not None:
1137 self.initial['zone'] = instance.zone.name
1138- self.initial['cpu_over_commit_ratio'] = (
1139- instance.cpu_over_commit_ratio)
1140- self.initial['memory_over_commit_ratio'] = (
1141- instance.memory_over_commit_ratio)
1142+ self.initial['pool'] = instance.pool.name
1143
1144 def _clean_fields(self):
1145 """Override to dynamically add fields based on the value of `type`
1146@@ -148,10 +151,14 @@ class PodForm(MAASModelForm):
1147 # selected type for the pod.
1148 if len(self.errors) == 0:
1149 driver_fields = get_driver_parameters_from_json(
1150- self.drivers_orig, None, scope=SETTING_SCOPE.BMC)
1151+ self.drivers_orig, scope=SETTING_SCOPE.BMC)
1152 self.param_fields = (
1153 driver_fields[self.cleaned_data['type']].field_dict)
1154 self.fields.update(self.param_fields)
1155+ if not self.is_new:
1156+ for key, value in self.instance.power_parameters.items():
1157+ if key not in self.data:
1158+ self.data[key] = value
1159 super(PodForm, self)._clean_fields()
1160
1161 def clean(self):
1162@@ -185,7 +192,7 @@ class PodForm(MAASModelForm):
1163 # Convert the BMC to a Pod and set as the instance for
1164 # the PodForm.
1165 bmc.bmc_type = BMC_TYPE.POD
1166- bmc.default_pool = (
1167+ bmc.pool = (
1168 ResourcePool.objects.get_default_resource_pool())
1169 return bmc.as_pod()
1170 else:
1171@@ -199,25 +206,10 @@ class PodForm(MAASModelForm):
1172 if existing_obj is not None:
1173 self.instance = existing_obj
1174 self.instance = super(PodForm, self).save(commit=False)
1175- if tags:
1176- self.instance.tags = tags
1177- if zone:
1178- self.instance.zone = zone
1179- if cpu_over_commit_ratio:
1180- self.instance.cpu_over_commit_ratio = cpu_over_commit_ratio
1181- if memory_over_commit_ratio:
1182- self.instance.memory_over_commit_ratio = (
1183- memory_over_commit_ratio)
1184 self.instance.power_type = power_type
1185 self.instance.power_parameters = power_parameters
1186 return self.instance
1187
1188- tags = self.cleaned_data.get('tags')
1189- zone = self.cleaned_data.get('zone')
1190- cpu_over_commit_ratio = self.cleaned_data.get(
1191- 'cpu_over_commit_ratio')
1192- memory_over_commit_ratio = self.cleaned_data.get(
1193- 'memory_over_commit_ratio')
1194 power_type = self.cleaned_data['type']
1195 # Set power_parameters to the generated param_fields.
1196 power_parameters = {
1197@@ -367,6 +359,9 @@ class ComposeMachineForm(forms.Form):
1198 self.fields['zone'] = ModelChoiceField(
1199 required=False, queryset=Zone.objects.all())
1200 self.initial['zone'] = Zone.objects.get_default_zone()
1201+ self.fields['pool'] = ModelChoiceField(
1202+ required=False, queryset=ResourcePool.objects.all())
1203+ self.initial['pool'] = self.pod.pool
1204 self.fields['storage'] = CharField(
1205 validators=[storage_validator], required=False)
1206 self.initial['storage'] = 'root:8(local)'
1207@@ -438,6 +433,7 @@ class ComposeMachineForm(forms.Form):
1208 skip_commissioning=skip_commissioning,
1209 creation_type=creation_type,
1210 domain=self.get_value_for('domain'),
1211+ pool=self.get_value_for('pool'),
1212 zone=self.get_value_for('zone'))
1213 self.pod.sync_hints(pod_hints)
1214 return created_machine
1215diff --git a/src/maasserver/forms/tests/test_machine.py b/src/maasserver/forms/tests/test_machine.py
1216index cf65b88..17a91bf 100644
1217--- a/src/maasserver/forms/tests/test_machine.py
1218+++ b/src/maasserver/forms/tests/test_machine.py
1219@@ -364,6 +364,7 @@ class TestAdminMachineForm(MAASServerTestCase):
1220 'zone',
1221 'power_type',
1222 'power_parameters',
1223+ 'pool',
1224 ],
1225 list(form.fields))
1226
1227diff --git a/src/maasserver/forms/tests/test_node.py b/src/maasserver/forms/tests/test_node.py
1228index b33fffb..0fe0041 100644
1229--- a/src/maasserver/forms/tests/test_node.py
1230+++ b/src/maasserver/forms/tests/test_node.py
1231@@ -120,6 +120,7 @@ class TestAdminNodeForm(MAASServerTestCase):
1232 'cpu_count',
1233 'memory',
1234 'zone',
1235+ 'pool',
1236 ],
1237 list(form.fields))
1238
1239diff --git a/src/maasserver/forms/tests/test_pods.py b/src/maasserver/forms/tests/test_pods.py
1240index 27ca1fa..f427767 100644
1241--- a/src/maasserver/forms/tests/test_pods.py
1242+++ b/src/maasserver/forms/tests/test_pods.py
1243@@ -30,6 +30,8 @@ from maasserver.forms.pods import (
1244 )
1245 from maasserver.models.bmc import Pod
1246 from maasserver.models.node import Machine
1247+from maasserver.models.resourcepool import ResourcePool
1248+from maasserver.models.zone import Zone
1249 from maasserver.testing.factory import factory
1250 from maasserver.testing.testcase import (
1251 MAASServerTestCase,
1252@@ -90,29 +92,21 @@ def make_pod_with_hints():
1253
1254 class TestPodForm(MAASTransactionServerTestCase):
1255
1256+ def setUp(self):
1257+ super().setUp()
1258+ self.request = MagicMock()
1259+ self.request.user = factory.make_User()
1260+
1261 def make_pod_info(self):
1262 # Use virsh pod type as the required fields are specific to the
1263 # type of pod being created.
1264 pod_type = 'virsh'
1265 pod_ip_adddress = factory.make_ipv4_address()
1266 pod_power_address = 'qemu+ssh://user@%s/system' % pod_ip_adddress
1267- pod_password = factory.make_name('password')
1268- pod_default_storage_pool = factory.make_name('default_pool')
1269- pod_tags = [
1270- factory.make_name("tag")
1271- for _ in range(3)
1272- ]
1273- pod_cpu_over_commit_ratio = random.randint(0, 10)
1274- pod_memory_over_commit_ratio = random.randint(0, 10)
1275 return {
1276 'type': pod_type,
1277 'power_address': pod_power_address,
1278- 'power_pass': pod_password,
1279- 'default_storage_pool': pod_default_storage_pool,
1280 'ip_address': pod_ip_adddress,
1281- 'tags': ",".join(pod_tags),
1282- 'cpu_over_commit_ratio': pod_cpu_over_commit_ratio,
1283- 'memory_over_commit_ratio': pod_memory_over_commit_ratio,
1284 }
1285
1286 def fake_pod_discovery(self):
1287@@ -147,6 +141,7 @@ class TestPodForm(MAASTransactionServerTestCase):
1288 'tags',
1289 'type',
1290 'zone',
1291+ 'pool',
1292 'cpu_over_commit_ratio',
1293 'memory_over_commit_ratio',
1294 ], list(form.fields))
1295@@ -154,29 +149,13 @@ class TestPodForm(MAASTransactionServerTestCase):
1296 def test_creates_pod_with_discovered_information(self):
1297 discovered_pod, discovered_racks, failed_racks = (
1298 self.fake_pod_discovery())
1299- zone = factory.make_Zone()
1300 pod_info = self.make_pod_info()
1301- pod_info['zone'] = zone.name
1302- request = MagicMock()
1303- request.user = factory.make_User()
1304- form = PodForm(data=pod_info, request=request)
1305+ form = PodForm(data=pod_info, request=self.request)
1306 self.assertTrue(form.is_valid(), form._errors)
1307 pod = form.save()
1308- self.assertThat(pod, MatchesStructure(
1309- architectures=Equals(['amd64/generic']),
1310- name=MatchesAll(Not(Is(None)), Not(Equals(''))),
1311- cores=Equals(discovered_pod.cores),
1312- memory=Equals(discovered_pod.memory),
1313- cpu_speed=Equals(discovered_pod.cpu_speed),
1314- zone=Equals(zone),
1315- power_type=Equals(pod_info['type']),
1316- power_parameters=Equals({
1317- 'power_address': pod_info['power_address'],
1318- 'power_pass': pod_info['power_pass'],
1319- 'default_storage_pool': pod_info['default_storage_pool'],
1320- }),
1321- ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1322- ))
1323+ self.assertEqual(discovered_pod.cores, pod.cores)
1324+ self.assertEqual(discovered_pod.memory, pod.memory)
1325+ self.assertEqual(discovered_pod.cpu_speed, pod.cpu_speed)
1326 routable_racks = [
1327 relation.rack_controller
1328 for relation in pod.routable_rack_relationships.all()
1329@@ -190,38 +169,103 @@ class TestPodForm(MAASTransactionServerTestCase):
1330 self.assertItemsEqual(routable_racks, discovered_racks)
1331 self.assertItemsEqual(not_routable_racks, failed_racks)
1332
1333- def test_creates_pod_with_name(self):
1334+ def test_creates_pod_with_only_required(self):
1335 discovered_pod, discovered_racks, failed_racks = (
1336 self.fake_pod_discovery())
1337- zone = factory.make_Zone()
1338 pod_info = self.make_pod_info()
1339- pod_info['zone'] = zone.name
1340- request = MagicMock()
1341- request.user = factory.make_User()
1342- pod_name = factory.make_name('pod')
1343- pod_info['name'] = pod_name
1344- form = PodForm(data=pod_info, request=request)
1345+ form = PodForm(data=pod_info, request=self.request)
1346 self.assertTrue(form.is_valid(), form._errors)
1347 pod = form.save()
1348 self.assertThat(pod, MatchesStructure(
1349 architectures=Equals(['amd64/generic']),
1350- name=Equals(pod_name),
1351+ name=MatchesAll(Not(Is(None)), Not(Equals(''))),
1352 cores=Equals(discovered_pod.cores),
1353 memory=Equals(discovered_pod.memory),
1354 cpu_speed=Equals(discovered_pod.cpu_speed),
1355- zone=Equals(zone),
1356+ zone=Equals(Zone.objects.get_default_zone()),
1357+ pool=Equals(
1358+ ResourcePool.objects.get_default_resource_pool()),
1359 power_type=Equals(pod_info['type']),
1360 power_parameters=Equals({
1361 'power_address': pod_info['power_address'],
1362- 'power_pass': pod_info['power_pass'],
1363- 'default_storage_pool': pod_info['default_storage_pool'],
1364+ 'power_pass': '',
1365+ 'default_storage_pool': '',
1366 }),
1367 ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1368 ))
1369
1370+ def test_creates_pod_with_name(self):
1371+ self.fake_pod_discovery()
1372+ pod_info = self.make_pod_info()
1373+ pod_name = factory.make_name('pod')
1374+ pod_info['name'] = pod_name
1375+ form = PodForm(data=pod_info, request=self.request)
1376+ self.assertTrue(form.is_valid(), form._errors)
1377+ pod = form.save()
1378+ self.assertEqual(pod_name, pod.name)
1379+
1380+ def test_creates_pod_with_power_parameters(self):
1381+ self.fake_pod_discovery()
1382+ pod_info = self.make_pod_info()
1383+ pod_info['power_pass'] = factory.make_name('pass')
1384+ pod_info['default_storage_pool'] = factory.make_name('storage')
1385+ form = PodForm(data=pod_info, request=self.request)
1386+ self.assertTrue(form.is_valid(), form._errors)
1387+ pod = form.save()
1388+ self.assertEqual(
1389+ pod_info['power_address'], pod.power_parameters['power_address'])
1390+ self.assertEqual(
1391+ pod_info['power_pass'], pod.power_parameters['power_pass'])
1392+ self.assertEqual(
1393+ pod_info['default_storage_pool'],
1394+ pod.power_parameters['default_storage_pool'])
1395+
1396+ def test_creates_pod_with_overcommit(self):
1397+ self.fake_pod_discovery()
1398+ pod_info = self.make_pod_info()
1399+ pod_info['cpu_over_commit_ratio'] = random.randint(0, 10)
1400+ pod_info['memory_over_commit_ratio'] = random.randint(0, 10)
1401+ form = PodForm(data=pod_info, request=self.request)
1402+ self.assertTrue(form.is_valid(), form._errors)
1403+ pod = form.save()
1404+ self.assertEqual(
1405+ pod_info['cpu_over_commit_ratio'], pod.cpu_over_commit_ratio)
1406+ self.assertEqual(
1407+ pod_info['memory_over_commit_ratio'], pod.memory_over_commit_ratio)
1408+
1409+ def test_creates_pod_with_tags(self):
1410+ self.fake_pod_discovery()
1411+ pod_info = self.make_pod_info()
1412+ tags = [factory.make_name('tag'), factory.make_name('tag')]
1413+ pod_info['tags'] = ','.join(tags)
1414+ form = PodForm(data=pod_info, request=self.request)
1415+ self.assertTrue(form.is_valid(), form._errors)
1416+ pod = form.save()
1417+ self.assertItemsEqual(tags, pod.tags)
1418+
1419+ def test_creates_pod_with_zone(self):
1420+ self.fake_pod_discovery()
1421+ pod_info = self.make_pod_info()
1422+ zone = factory.make_Zone()
1423+ pod_info['zone'] = zone.name
1424+ form = PodForm(data=pod_info, request=self.request)
1425+ self.assertTrue(form.is_valid(), form._errors)
1426+ pod = form.save()
1427+ self.assertEqual(zone.id, pod.zone.id)
1428+
1429+ def test_creates_pod_with_pool(self):
1430+ self.fake_pod_discovery()
1431+ pod_info = self.make_pod_info()
1432+ pool = factory.make_ResourcePool()
1433+ pod_info['pool'] = pool.name
1434+ form = PodForm(data=pod_info, request=self.request)
1435+ self.assertTrue(form.is_valid(), form._errors)
1436+ pod = form.save()
1437+ self.assertEqual(pool.id, pod.pool.id)
1438+
1439 @wait_for_reactor
1440 @inlineCallbacks
1441- def test_creates_pod_with_discovered_information_in_twisted(self):
1442+ def test_creates_pod_with_in_twisted(self):
1443 discovered_pod, discovered_racks, failed_racks = yield deferToDatabase(
1444 self.fake_pod_discovery)
1445 pods_module.discover_pod.return_value = succeed(
1446@@ -229,15 +273,15 @@ class TestPodForm(MAASTransactionServerTestCase):
1447 zone = yield deferToDatabase(factory.make_Zone)
1448 pod_info = yield deferToDatabase(self.make_pod_info)
1449 pod_info['zone'] = zone.name
1450- request = MagicMock()
1451- request.user = yield deferToDatabase(factory.make_User)
1452- form = yield deferToDatabase(PodForm, data=pod_info, request=request)
1453+ pod_info['name'] = factory.make_name('pod')
1454+ form = yield deferToDatabase(
1455+ PodForm, data=pod_info, request=self.request)
1456 is_valid = yield deferToDatabase(form.is_valid)
1457 self.assertTrue(is_valid, form._errors)
1458 pod = yield form.save()
1459 self.assertThat(pod, MatchesStructure(
1460 architectures=Equals(['amd64/generic']),
1461- name=MatchesAll(Not(Is(None)), Not(Equals(''))),
1462+ name=Equals(pod_info['name']),
1463 cores=Equals(discovered_pod.cores),
1464 memory=Equals(discovered_pod.memory),
1465 cpu_speed=Equals(discovered_pod.cpu_speed),
1466@@ -245,8 +289,8 @@ class TestPodForm(MAASTransactionServerTestCase):
1467 power_type=Equals(pod_info['type']),
1468 power_parameters=Equals({
1469 'power_address': pod_info['power_address'],
1470- 'power_pass': pod_info['power_pass'],
1471- 'default_storage_pool': pod_info['default_storage_pool'],
1472+ 'power_pass': '',
1473+ 'default_storage_pool': '',
1474 }),
1475 ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1476 ))
1477@@ -269,50 +313,13 @@ class TestPodForm(MAASTransactionServerTestCase):
1478
1479 @wait_for_reactor
1480 @inlineCallbacks
1481- def test_creates_pod_with_name_in_twisted(self):
1482- discovered_pod, discovered_racks, failed_racks = yield deferToDatabase(
1483- self.fake_pod_discovery)
1484- pods_module.discover_pod.return_value = succeed(
1485- pods_module.discover_pod.return_value)
1486- zone = yield deferToDatabase(factory.make_Zone)
1487- pod_info = yield deferToDatabase(self.make_pod_info)
1488- pod_info['zone'] = zone.name
1489- pod_name = factory.make_name('pod')
1490- pod_info['name'] = pod_name
1491- request = MagicMock()
1492- request.user = yield deferToDatabase(factory.make_User)
1493- form = yield deferToDatabase(PodForm, data=pod_info, request=request)
1494- is_valid = yield deferToDatabase(form.is_valid)
1495- self.assertTrue(is_valid, form._errors)
1496- pod = yield form.save()
1497- self.assertThat(pod, MatchesStructure(
1498- architectures=Equals(['amd64/generic']),
1499- name=Equals(pod_name),
1500- cores=Equals(discovered_pod.cores),
1501- memory=Equals(discovered_pod.memory),
1502- cpu_speed=Equals(discovered_pod.cpu_speed),
1503- zone=Equals(zone),
1504- power_type=Equals(pod_info['type']),
1505- power_parameters=Equals({
1506- 'power_address': pod_info['power_address'],
1507- 'power_pass': pod_info['power_pass'],
1508- 'default_storage_pool': pod_info['default_storage_pool'],
1509- }),
1510- ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1511- ))
1512-
1513- @wait_for_reactor
1514- @inlineCallbacks
1515 def test_doesnt_create_pod_when_discovery_fails_in_twisted(self):
1516 discovered_pod, discovered_racks, failed_racks = yield deferToDatabase(
1517 self.fake_pod_discovery)
1518 pods_module.discover_pod.return_value = fail(factory.make_exception())
1519- zone = yield deferToDatabase(factory.make_Zone)
1520 pod_info = yield deferToDatabase(self.make_pod_info)
1521- pod_info['zone'] = zone.name
1522- request = MagicMock()
1523- request.user = yield deferToDatabase(factory.make_User)
1524- form = yield deferToDatabase(PodForm, data=pod_info, request=request)
1525+ form = yield deferToDatabase(
1526+ PodForm, data=pod_info, request=self.request)
1527 is_valid = yield deferToDatabase(form.is_valid)
1528 self.assertTrue(is_valid, form._errors)
1529 with ExpectedException(PodProblem):
1530@@ -325,12 +332,8 @@ class TestPodForm(MAASTransactionServerTestCase):
1531
1532 def test_prevents_duplicate_pod(self):
1533 discovered_pod, _, _ = self.fake_pod_discovery()
1534- zone = factory.make_Zone()
1535 pod_info = self.make_pod_info()
1536- pod_info['zone'] = zone.name
1537- request = MagicMock()
1538- request.user = factory.make_User()
1539- form = PodForm(data=pod_info, request=request)
1540+ form = PodForm(data=pod_info, request=self.request)
1541 self.assertTrue(form.is_valid(), form._errors)
1542 form.save()
1543 new_form = PodForm(data=pod_info)
1544@@ -339,37 +342,61 @@ class TestPodForm(MAASTransactionServerTestCase):
1545
1546 def test_takes_over_bmc_with_pod(self):
1547 discovered_pod, _, _ = self.fake_pod_discovery()
1548- zone = factory.make_Zone()
1549 pod_info = self.make_pod_info()
1550- pod_info['zone'] = zone.name
1551 bmc = factory.make_BMC(
1552- zone=zone, tags=pod_info['tags'].split(','),
1553 power_type=pod_info['type'],
1554 power_parameters={
1555 'power_address': pod_info['power_address'],
1556- 'power_pass': pod_info['power_pass'],
1557- 'default_storage_pool': pod_info['default_storage_pool'],
1558+ 'power_pass': '',
1559+ 'default_storage_pool': '',
1560 })
1561- request = MagicMock()
1562- request.user = factory.make_User()
1563- form = PodForm(data=pod_info, request=request)
1564+ form = PodForm(data=pod_info, request=self.request)
1565 self.assertTrue(form.is_valid(), form._errors)
1566 pod = form.save()
1567 self.assertEquals(bmc.id, pod.id)
1568 self.assertEquals(BMC_TYPE.POD, reload_object(bmc).bmc_type)
1569
1570+ def test_updates_existing_pod_minimal(self):
1571+ self.fake_pod_discovery()
1572+ zone = factory.make_Zone()
1573+ pool = factory.make_ResourcePool()
1574+ cpu_over_commit = random.randint(0, 10)
1575+ memory_over_commit = random.randint(0, 10)
1576+ power_parameters = {
1577+ 'default_storage_pool': factory.make_name(),
1578+ 'power_address': 'qemu+ssh://1.2.3.4/system',
1579+ 'power_pass': 'pass',
1580+ }
1581+ orig_pod = factory.make_Pod(
1582+ pod_type='virsh', zone=zone, pool=pool,
1583+ cpu_over_commit_ratio=cpu_over_commit,
1584+ memory_over_commit_ratio=memory_over_commit,
1585+ parameters=power_parameters)
1586+ new_name = factory.make_name("pod")
1587+ form = PodForm(
1588+ data={'name': new_name}, request=self.request, instance=orig_pod)
1589+ self.assertTrue(form.is_valid(), form._errors)
1590+ pod = form.save()
1591+ self.assertEqual(new_name, pod.name)
1592+ self.assertEqual(zone, pod.zone)
1593+ self.assertEqual(pool, pod.pool)
1594+ self.assertEqual(cpu_over_commit, pod.cpu_over_commit_ratio)
1595+ self.assertEqual(memory_over_commit, pod.memory_over_commit_ratio)
1596+ self.assertEqual(memory_over_commit, pod.memory_over_commit_ratio)
1597+ self.assertEqual(power_parameters, pod.power_parameters)
1598+
1599 def test_updates_existing_pod(self):
1600 discovered_pod, discovered_racks, failed_racks = (
1601 self.fake_pod_discovery())
1602 zone = factory.make_Zone()
1603+ pool = factory.make_ResourcePool()
1604 pod_info = self.make_pod_info()
1605 pod_info['zone'] = zone.name
1606+ pod_info['pool'] = pool.name
1607 orig_pod = factory.make_Pod(pod_type=pod_info['type'])
1608 new_name = factory.make_name("pod")
1609 pod_info['name'] = new_name
1610- request = MagicMock()
1611- request.user = factory.make_User()
1612- form = PodForm(data=pod_info, request=request, instance=orig_pod)
1613+ form = PodForm(data=pod_info, request=self.request, instance=orig_pod)
1614 self.assertTrue(form.is_valid(), form._errors)
1615 pod = form.save()
1616 self.assertThat(pod, MatchesStructure(
1617@@ -381,11 +408,12 @@ class TestPodForm(MAASTransactionServerTestCase):
1618 memory=Equals(discovered_pod.memory),
1619 cpu_speed=Equals(discovered_pod.cpu_speed),
1620 zone=Equals(zone),
1621+ pool=Equals(pool),
1622 power_type=Equals(pod_info['type']),
1623 power_parameters=Equals({
1624 'power_address': pod_info['power_address'],
1625- 'power_pass': pod_info['power_pass'],
1626- 'default_storage_pool': pod_info['default_storage_pool'],
1627+ 'power_pass': '',
1628+ 'default_storage_pool': '',
1629 }),
1630 ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1631 ))
1632@@ -410,16 +438,16 @@ class TestPodForm(MAASTransactionServerTestCase):
1633 pods_module.discover_pod.return_value = succeed(
1634 pods_module.discover_pod.return_value)
1635 zone = yield deferToDatabase(factory.make_Zone)
1636+ pool = yield deferToDatabase(factory.make_ResourcePool)
1637 pod_info = yield deferToDatabase(self.make_pod_info)
1638 pod_info['zone'] = zone.name
1639+ pod_info['pool'] = pool.name
1640 orig_pod = yield deferToDatabase(
1641 factory.make_Pod, pod_type=pod_info['type'])
1642 new_name = factory.make_name("pod")
1643 pod_info['name'] = new_name
1644- request = MagicMock()
1645- request.user = yield deferToDatabase(factory.make_User)
1646 form = yield deferToDatabase(
1647- PodForm, data=pod_info, request=request, instance=orig_pod)
1648+ PodForm, data=pod_info, request=self.request, instance=orig_pod)
1649 is_valid = yield deferToDatabase(form.is_valid)
1650 self.assertTrue(is_valid, form._errors)
1651 pod = yield form.save()
1652@@ -435,8 +463,8 @@ class TestPodForm(MAASTransactionServerTestCase):
1653 power_type=Equals(pod_info['type']),
1654 power_parameters=Equals({
1655 'power_address': pod_info['power_address'],
1656- 'power_pass': pod_info['power_pass'],
1657- 'default_storage_pool': pod_info['default_storage_pool'],
1658+ 'power_pass': '',
1659+ 'default_storage_pool': '',
1660 }),
1661 ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1662 ))
1663@@ -462,10 +490,11 @@ class TestPodForm(MAASTransactionServerTestCase):
1664 self.fake_pod_discovery())
1665 zone = factory.make_Zone()
1666 pod_info = self.make_pod_info()
1667- orig_pod = factory.make_Pod(zone=zone, pod_type=pod_info['type'])
1668- request = MagicMock()
1669- request.user = factory.make_User()
1670- form = PodForm(data=pod_info, request=request, instance=orig_pod)
1671+ power_parameters = {'power_address': pod_info['power_address']}
1672+ orig_pod = factory.make_Pod(
1673+ zone=zone, pod_type=pod_info['type'],
1674+ parameters=power_parameters)
1675+ form = PodForm(data=pod_info, request=self.request, instance=orig_pod)
1676 pod = form.discover_and_sync_pod()
1677 self.assertThat(pod, MatchesStructure(
1678 id=Equals(orig_pod.id),
1679@@ -477,8 +506,8 @@ class TestPodForm(MAASTransactionServerTestCase):
1680 cpu_speed=Equals(discovered_pod.cpu_speed),
1681 zone=Equals(zone),
1682 power_type=Equals(pod_info['type']),
1683- power_parameters=Equals({}),
1684- ip_address=Is(None),
1685+ power_parameters=Equals(power_parameters),
1686+ ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1687 ))
1688 routable_racks = [
1689 relation.rack_controller
1690@@ -502,12 +531,12 @@ class TestPodForm(MAASTransactionServerTestCase):
1691 pods_module.discover_pod.return_value)
1692 zone = yield deferToDatabase(factory.make_Zone)
1693 pod_info = yield deferToDatabase(self.make_pod_info)
1694+ power_parameters = {'power_address': pod_info['power_address']}
1695 orig_pod = yield deferToDatabase(
1696- factory.make_Pod, zone=zone, pod_type=pod_info['type'])
1697- request = MagicMock()
1698- request.user = yield deferToDatabase(factory.make_User)
1699+ factory.make_Pod, zone=zone, pod_type=pod_info['type'],
1700+ parameters=power_parameters)
1701 form = yield deferToDatabase(
1702- PodForm, data=pod_info, request=request, instance=orig_pod)
1703+ PodForm, data=pod_info, request=self.request, instance=orig_pod)
1704 pod = yield form.discover_and_sync_pod()
1705 self.assertThat(pod, MatchesStructure(
1706 id=Equals(orig_pod.id),
1707@@ -519,8 +548,8 @@ class TestPodForm(MAASTransactionServerTestCase):
1708 cpu_speed=Equals(discovered_pod.cpu_speed),
1709 zone=Equals(zone),
1710 power_type=Equals(pod_info['type']),
1711- power_parameters=Equals({}),
1712- ip_address=Is(None),
1713+ power_parameters=Equals(power_parameters),
1714+ ip_address=MatchesStructure(ip=Equals(pod_info['ip_address'])),
1715 ))
1716
1717 def validate_rack_routes():
1718@@ -541,9 +570,7 @@ class TestPodForm(MAASTransactionServerTestCase):
1719
1720 def test_raises_unable_to_discover_because_no_racks(self):
1721 self.patch(pods_module, "discover_pod").return_value = ({}, {})
1722- zone = factory.make_Zone()
1723 pod_info = self.make_pod_info()
1724- pod_info['zone'] = zone.name
1725 form = PodForm(data=pod_info)
1726 self.assertTrue(form.is_valid(), form._errors)
1727 error = self.assertRaises(PodProblem, form.save)
1728@@ -556,9 +583,7 @@ class TestPodForm(MAASTransactionServerTestCase):
1729 def test_raises_unable_to_discover_because_no_racks_in_twisted(self):
1730 self.patch(pods_module, "discover_pod").return_value = succeed(
1731 ({}, {}))
1732- zone = yield deferToDatabase(factory.make_Zone)
1733 pod_info = yield deferToDatabase(self.make_pod_info)
1734- pod_info['zone'] = zone.name
1735 form = yield deferToDatabase(PodForm, data=pod_info)
1736 is_valid = yield deferToDatabase(form.is_valid)
1737 self.assertTrue(is_valid, form._errors)
1738@@ -580,9 +605,7 @@ class TestPodForm(MAASTransactionServerTestCase):
1739 self.patch(pods_module, "discover_pod").return_value = ({}, {
1740 failed_rack.system_id: exc,
1741 })
1742- zone = factory.make_Zone()
1743 pod_info = self.make_pod_info()
1744- pod_info['zone'] = zone.name
1745 form = PodForm(data=pod_info)
1746 self.assertTrue(form.is_valid(), form._errors)
1747 error = self.assertRaises(PodProblem, form.save)
1748@@ -596,9 +619,7 @@ class TestPodForm(MAASTransactionServerTestCase):
1749 self.patch(pods_module, "discover_pod").return_value = succeed(({}, {
1750 failed_rack.system_id: exc,
1751 }))
1752- zone = yield deferToDatabase(factory.make_Zone)
1753 pod_info = yield deferToDatabase(self.make_pod_info)
1754- pod_info['zone'] = zone.name
1755 form = yield deferToDatabase(PodForm, data=pod_info)
1756 is_valid = yield deferToDatabase(form.is_valid)
1757 self.assertTrue(is_valid, form._errors)
1758@@ -686,6 +707,15 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
1759 IsInstance(MinValueValidator),
1760 MatchesStructure(limit_value=Equals(300))))))
1761
1762+ def test__sets_up_pool_default(self):
1763+ request = MagicMock()
1764+ pod = make_pod_with_hints()
1765+ pool = factory.make_ResourcePool()
1766+ pod.pool = pool
1767+ pod.save()
1768+ form = ComposeMachineForm(request=request, pod=pod)
1769+ self.assertEqual(pool, form.initial['pool'])
1770+
1771 def test__get_requested_machine_uses_all_initial_values(self):
1772 request = MagicMock()
1773 pod = make_pod_with_hints()
1774@@ -920,6 +950,54 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
1775 domain=Equals(domain),
1776 zone=Equals(zone))))
1777
1778+ def test__compose_sets_resource_pool(self):
1779+ request = MagicMock()
1780+ pod = make_pod_with_hints()
1781+
1782+ # Mock the RPC client.
1783+ client = MagicMock()
1784+ mock_getClient = self.patch(pods_module, "getClientFromIdentifiers")
1785+ mock_getClient.return_value = succeed(client)
1786+
1787+ # Mock the result of the composed machine.
1788+ composed_machine, pod_hints = self.make_compose_machine_result(pod)
1789+ mock_compose_machine = self.patch(pods_module, "compose_machine")
1790+ mock_compose_machine.return_value = succeed(
1791+ (composed_machine, pod_hints))
1792+
1793+ pool = factory.make_ResourcePool()
1794+ form = ComposeMachineForm(data={
1795+ "pool": pool.id,
1796+ "skip_commissioning": 'true',
1797+ }, request=request, pod=pod)
1798+ self.assertTrue(form.is_valid())
1799+ created_machine = form.compose()
1800+ self.assertEqual(pool, created_machine.pool)
1801+
1802+ def test__compose_uses_pod_pool(self):
1803+ request = MagicMock()
1804+ pod = make_pod_with_hints()
1805+ pod.pool = factory.make_ResourcePool()
1806+ pod.save()
1807+
1808+ # Mock the RPC client.
1809+ client = MagicMock()
1810+ mock_getClient = self.patch(pods_module, "getClientFromIdentifiers")
1811+ mock_getClient.return_value = succeed(client)
1812+
1813+ # Mock the result of the composed machine.
1814+ composed_machine, pod_hints = self.make_compose_machine_result(pod)
1815+ mock_compose_machine = self.patch(pods_module, "compose_machine")
1816+ mock_compose_machine.return_value = succeed(
1817+ (composed_machine, pod_hints))
1818+
1819+ form = ComposeMachineForm(data={
1820+ "skip_commissioning": 'true',
1821+ }, request=request, pod=pod)
1822+ self.assertTrue(form.is_valid())
1823+ created_machine = form.compose()
1824+ self.assertEqual(pod.pool, created_machine.pool)
1825+
1826 def test__compose_check_over_commit_ratios_raises_error_for_cores(self):
1827 request = MagicMock()
1828 pod = make_pod_with_hints()
1829diff --git a/src/maasserver/forms/tests/test_resourcepool.py b/src/maasserver/forms/tests/test_resourcepool.py
1830index cacb8ee..0769d2a 100644
1831--- a/src/maasserver/forms/tests/test_resourcepool.py
1832+++ b/src/maasserver/forms/tests/test_resourcepool.py
1833@@ -25,20 +25,6 @@ class TestResourcePost(MAASServerTestCase):
1834 self.assertIsNotNone(pool)
1835 self.assertEqual(pool.description, description)
1836
1837- def test_creates_pool_users_groups(self):
1838- user1 = factory.make_User()
1839- user2 = factory.make_User()
1840- group1 = factory.make_UserGroup()
1841- group2 = factory.make_UserGroup()
1842- data = {
1843- 'name': factory.make_name('pool'),
1844- 'users': [user1.id, user2.id],
1845- 'groups': [group1.id, group2.id]}
1846- form = ResourcePoolForm(data=data)
1847- pool = form.save()
1848- self.assertCountEqual(pool.users, [user1, user2])
1849- self.assertCountEqual(pool.groups, [group1, group2])
1850-
1851 def test_updates_pool(self):
1852 pool = factory.make_ResourcePool()
1853 new_description = factory.make_string()
1854@@ -48,23 +34,6 @@ class TestResourcePost(MAASServerTestCase):
1855 pool = reload_object(pool)
1856 self.assertEqual(pool.description, new_description)
1857
1858- def test_updates_pool_users_groups(self):
1859- user1 = factory.make_User()
1860- user2 = factory.make_User()
1861- user3 = factory.make_User()
1862- group1 = factory.make_UserGroup()
1863- group2 = factory.make_UserGroup()
1864- group3 = factory.make_UserGroup()
1865- pool = factory.make_ResourcePool(
1866- users=[user1, user2], groups=[group1, group2])
1867- data = {
1868- 'users': [user1.id, user3.id],
1869- 'groups': [group1.id, group3.id]}
1870- form = ResourcePoolForm(data=data, instance=pool)
1871- pool = form.save()
1872- self.assertCountEqual(pool.users, [user1, user3])
1873- self.assertCountEqual(pool.groups, [group1, group3])
1874-
1875 def test_renames_pool(self):
1876 pool = factory.make_ResourcePool()
1877 new_name = factory.make_name('pool')
1878diff --git a/src/maasserver/forms/tests/test_user.py b/src/maasserver/forms/tests/test_user.py
1879index 965ff33..3e08f7a 100644
1880--- a/src/maasserver/forms/tests/test_user.py
1881+++ b/src/maasserver/forms/tests/test_user.py
1882@@ -8,7 +8,6 @@ __all__ = []
1883 from django.contrib.auth.models import User
1884 from maasserver.forms import (
1885 EditUserForm,
1886- ManageResourcePoolsAssociationForm,
1887 NewUserCreationForm,
1888 ProfileForm,
1889 )
1890@@ -137,22 +136,3 @@ class TestNewUserCreationForm(MAASServerTestCase):
1891 form = NewUserCreationForm(params)
1892 user = form.save()
1893 self.assertFalse(user.has_usable_password())
1894-
1895-
1896-class TestManageResourcePoolsAssociationForm(MAASServerTestCase):
1897-
1898- def test_resource_pools(self):
1899- pool1 = factory.make_ResourcePool()
1900- pool2 = factory.make_ResourcePool()
1901- params = {'pool': [str(pool1.id), str(pool2.id)]}
1902- form = ManageResourcePoolsAssociationForm(params)
1903- self.assertTrue(form.is_valid())
1904- self.assertCountEqual(form.cleaned_data['pool'], [pool1, pool2])
1905-
1906- def test_pool_required(self):
1907- form = ManageResourcePoolsAssociationForm({})
1908- self.assertFalse(form.is_valid())
1909-
1910- def test_unknown_pool(self):
1911- form = ManageResourcePoolsAssociationForm({'pool': [-1]})
1912- self.assertFalse(form.is_valid())
1913diff --git a/src/maasserver/forms/tests/test_usergroup.py b/src/maasserver/forms/tests/test_usergroup.py
1914deleted file mode 100644
1915index ff3c5d8..0000000
1916--- a/src/maasserver/forms/tests/test_usergroup.py
1917+++ /dev/null
1918@@ -1,96 +0,0 @@
1919-# Copyright 2018 Canonical Ltd. This software is licensed under the
1920-# GNU Affero General Public License version 3 (see the file LICENSE).
1921-
1922-"""Tests for `UserGroupForm`."""
1923-
1924-__all__ = []
1925-
1926-from maasserver.forms import (
1927- ManageUserGroupsForm,
1928- UserGroupForm,
1929-)
1930-from maasserver.models import UserGroup
1931-from maasserver.testing.factory import factory
1932-from maasserver.testing.testcase import MAASServerTestCase
1933-from maasserver.utils.orm import reload_object
1934-from maasserver.worker_user import get_worker_user
1935-from metadataserver.nodeinituser import get_node_init_user
1936-
1937-
1938-class TestManageUserGroupsForm(MAASServerTestCase):
1939-
1940- def test_get_users(self):
1941- user1 = factory.make_User()
1942- user2 = factory.make_User()
1943- form = ManageUserGroupsForm(
1944- data={'user': [str(user1.id), str(user2.id)]})
1945- self.assertTrue(form.is_valid())
1946- self.assertCountEqual(form.cleaned_data['user'], [user1, user2])
1947-
1948- def test_node_init_user_not_valid(self):
1949- user = get_node_init_user()
1950- form = ManageUserGroupsForm(data={'user': [str(user.id)]})
1951- self.assertFalse(form.is_valid())
1952-
1953- def test_worker_user_not_valid(self):
1954- user = get_worker_user()
1955- form = ManageUserGroupsForm(data={'user': [str(user.id)]})
1956- self.assertFalse(form.is_valid())
1957-
1958-
1959-class TestUserGroupForm(MAASServerTestCase):
1960- """Tests for `UserGroupForm`."""
1961-
1962- def test_creates_usergroup(self):
1963- name = factory.make_name('usergroup')
1964- description = factory.make_string()
1965- form = UserGroupForm(
1966- data={'name': name, 'description': description})
1967- form.save()
1968- group = UserGroup.objects.get(name=name)
1969- self.assertIsNotNone(group)
1970- self.assertEqual(group.description, description)
1971- self.assertTrue(group.local)
1972-
1973- def test_creates_usergroup_not_local(self):
1974- name = factory.make_name('usergroup')
1975- form = UserGroupForm(
1976- data={'name': name, 'local': False})
1977- form.save()
1978- group = UserGroup.objects.get(name=name)
1979- self.assertFalse(group.local)
1980-
1981- def test_updates_usergroup(self):
1982- group = factory.make_UserGroup()
1983- new_description = factory.make_string()
1984- form = UserGroupForm(
1985- data={'description': new_description},
1986- instance=group)
1987- form.save()
1988- group = reload_object(group)
1989- self.assertEqual(group.description, new_description)
1990-
1991- def test_update_usergroup_no_change_local(self):
1992- group = factory.make_UserGroup()
1993- form = UserGroupForm(data={'local': False}, instance=group)
1994- self.assertFalse(form.is_valid())
1995- self.assertEqual(
1996- form.errors['local'].as_data()[0].message,
1997- "Can't change user group type")
1998-
1999- def test_update_usergroup_not_local_no_change(self):
2000- group = factory.make_UserGroup(local=False)
2001- form = UserGroupForm(
2002- data={'name': factory.make_name()}, instance=group)
2003- self.assertFalse(form.is_valid())
2004- self.assertEqual(
2005- form.errors['__all__'].as_data()[0].message,
2006- "Can't edit non-local group")
2007-
2008- def test_renames_group(self):
2009- group = factory.make_UserGroup()
2010- new_name = factory.make_name('group')
2011- form = UserGroupForm(data={'name': new_name}, instance=group)
2012- form.save()
2013- group = reload_object(group)
2014- self.assertEqual(group.name, new_name)
2015diff --git a/src/maasserver/migrations/builtin/maasserver/0141_add_default_usergroup.py b/src/maasserver/migrations/builtin/maasserver/0141_add_default_usergroup.py
2016index c3eb2be..df1ad9c 100644
2017--- a/src/maasserver/migrations/builtin/maasserver/0141_add_default_usergroup.py
2018+++ b/src/maasserver/migrations/builtin/maasserver/0141_add_default_usergroup.py
2019@@ -2,14 +2,14 @@ from datetime import datetime
2020
2021 from django.conf import settings
2022 from django.db import migrations
2023-from maasserver.models.usergroup import (
2024- DEFAULT_USERGROUP_DESCRIPTION,
2025- DEFAULT_USERGROUP_NAME,
2026-)
2027 from maasserver.worker_user import user_name as worker_username
2028 from metadataserver.nodeinituser import user_name as node_init_username
2029
2030
2031+DEFAULT_USERGROUP_NAME = 'default'
2032+DEFAULT_USERGROUP_DESCRIPTION = 'Default user group'
2033+
2034+
2035 def forwards(apps, schema_editor):
2036 User = apps.get_model(settings.AUTH_USER_MODEL)
2037 UserGroup = apps.get_model('maasserver', 'UserGroup')
2038diff --git a/src/maasserver/migrations/builtin/maasserver/0157_drop_usergroup_and_role.py b/src/maasserver/migrations/builtin/maasserver/0157_drop_usergroup_and_role.py
2039new file mode 100644
2040index 0000000..3983a77
2041--- /dev/null
2042+++ b/src/maasserver/migrations/builtin/maasserver/0157_drop_usergroup_and_role.py
2043@@ -0,0 +1,48 @@
2044+# -*- coding: utf-8 -*-
2045+# Generated by Django 1.11.11 on 2018-05-14 08:54
2046+from __future__ import unicode_literals
2047+
2048+from django.db import migrations
2049+
2050+
2051+class Migration(migrations.Migration):
2052+
2053+ dependencies = [
2054+ ('maasserver', '0156_drop_ssh_unique_key_index'),
2055+ ]
2056+
2057+ operations = [
2058+ migrations.RemoveField(
2059+ model_name='role',
2060+ name='groups',
2061+ ),
2062+ migrations.RemoveField(
2063+ model_name='role',
2064+ name='resource_pools',
2065+ ),
2066+ migrations.RemoveField(
2067+ model_name='role',
2068+ name='users',
2069+ ),
2070+ migrations.RemoveField(
2071+ model_name='usergroup',
2072+ name='users',
2073+ ),
2074+ migrations.RemoveField(
2075+ model_name='usergroupmembership',
2076+ name='group',
2077+ ),
2078+ migrations.RemoveField(
2079+ model_name='usergroupmembership',
2080+ name='user',
2081+ ),
2082+ migrations.DeleteModel(
2083+ name='Role',
2084+ ),
2085+ migrations.DeleteModel(
2086+ name='UserGroup',
2087+ ),
2088+ migrations.DeleteModel(
2089+ name='UserGroupMembership',
2090+ ),
2091+ ]
2092diff --git a/src/maasserver/migrations/builtin/maasserver/0158_pod_default_pool_to_pod.py b/src/maasserver/migrations/builtin/maasserver/0158_pod_default_pool_to_pod.py
2093new file mode 100644
2094index 0000000..7e947b0
2095--- /dev/null
2096+++ b/src/maasserver/migrations/builtin/maasserver/0158_pod_default_pool_to_pod.py
2097@@ -0,0 +1,20 @@
2098+# -*- coding: utf-8 -*-
2099+# Generated by Django 1.11.11 on 2018-05-25 12:22
2100+from __future__ import unicode_literals
2101+
2102+from django.db import migrations
2103+
2104+
2105+class Migration(migrations.Migration):
2106+
2107+ dependencies = [
2108+ ('maasserver', '0157_drop_usergroup_and_role'),
2109+ ]
2110+
2111+ operations = [
2112+ migrations.RenameField(
2113+ model_name='bmc',
2114+ old_name='default_pool',
2115+ new_name='pool',
2116+ ),
2117+ ]
2118diff --git a/src/maasserver/migrations/builtin/maasserver/0159_pod_storage_pools.py b/src/maasserver/migrations/builtin/maasserver/0159_pod_storage_pools.py
2119new file mode 100644
2120index 0000000..fd05e8c
2121--- /dev/null
2122+++ b/src/maasserver/migrations/builtin/maasserver/0159_pod_storage_pools.py
2123@@ -0,0 +1,43 @@
2124+# -*- coding: utf-8 -*-
2125+# Generated by Django 1.11.11 on 2018-05-04 09:43
2126+from __future__ import unicode_literals
2127+
2128+from django.db import (
2129+ migrations,
2130+ models,
2131+)
2132+import django.db.models.deletion
2133+import maasserver.models.cleansave
2134+
2135+
2136+class Migration(migrations.Migration):
2137+
2138+ dependencies = [
2139+ ('maasserver', '0158_pod_default_pool_to_pod'),
2140+ ]
2141+
2142+ operations = [
2143+ migrations.CreateModel(
2144+ name='PodStoragePool',
2145+ fields=[
2146+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
2147+ ('name', models.CharField(max_length=255)),
2148+ ('pool_id', models.CharField(max_length=255)),
2149+ ('pool_type', models.CharField(max_length=255)),
2150+ ('path', models.CharField(max_length=4095)),
2151+ ('storage', models.BigIntegerField(default=0)),
2152+ ('pod', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='storage_pools', to='maasserver.BMC')),
2153+ ],
2154+ bases=(maasserver.models.cleansave.CleanSave, models.Model),
2155+ ),
2156+ migrations.AddField(
2157+ model_name='bmc',
2158+ name='default_storage_pool',
2159+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='maasserver.PodStoragePool'),
2160+ ),
2161+ migrations.AddField(
2162+ model_name='physicalblockdevice',
2163+ name='storage_pool',
2164+ field=models.ForeignKey(blank=True, help_text='Storage pool that this block device belongs to', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='block_devices', to='maasserver.PodStoragePool'),
2165+ ),
2166+ ]
2167diff --git a/src/maasserver/migrations/builtin/maasserver/0160_storage_pools_notification.py b/src/maasserver/migrations/builtin/maasserver/0160_storage_pools_notification.py
2168new file mode 100644
2169index 0000000..36646da
2170--- /dev/null
2171+++ b/src/maasserver/migrations/builtin/maasserver/0160_storage_pools_notification.py
2172@@ -0,0 +1,37 @@
2173+# -*- coding: utf-8 -*-
2174+# Generated by Django 1.11.11 on 2018-04-04 09:38
2175+from __future__ import unicode_literals
2176+
2177+import datetime
2178+
2179+from django.db import (
2180+ migrations,
2181+ models,
2182+)
2183+from maasserver.enum import BMC_TYPE
2184+
2185+
2186+def forwards(apps, schema_editor):
2187+ BMC = apps.get_model('maasserver', 'BMC')
2188+ Notification = apps.get_model('maasserver', 'Notification')
2189+ for pod in BMC.objects.filter(bmc_type=BMC_TYPE.POD, power_type='virsh'):
2190+ now = datetime.datetime.utcnow()
2191+ Notification.objects.create(admins=True, message=(
2192+ "Pod %s needs to be refreshed to gather storage pool "
2193+ "information." % pod.name), created=now, updated=now)
2194+
2195+
2196+def backwards(apps, schema_editor):
2197+ # No reason just can't go backwards, but keep the notifications.
2198+ pass
2199+
2200+
2201+class Migration(migrations.Migration):
2202+
2203+ dependencies = [
2204+ ('maasserver', '0159_pod_storage_pools'),
2205+ ]
2206+
2207+ operations = [
2208+ migrations.RunPython(forwards, backwards),
2209+ ]
2210diff --git a/src/maasserver/migrations/builtin/maasserver/0161_userprofile_auth_last_check_no_now_default.py b/src/maasserver/migrations/builtin/maasserver/0161_userprofile_auth_last_check_no_now_default.py
2211new file mode 100644
2212index 0000000..1fcceca
2213--- /dev/null
2214+++ b/src/maasserver/migrations/builtin/maasserver/0161_userprofile_auth_last_check_no_now_default.py
2215@@ -0,0 +1,23 @@
2216+# -*- coding: utf-8 -*-
2217+# Generated by Django 1.11.11 on 2018-05-23 08:48
2218+from __future__ import unicode_literals
2219+
2220+from django.db import (
2221+ migrations,
2222+ models,
2223+)
2224+
2225+
2226+class Migration(migrations.Migration):
2227+
2228+ dependencies = [
2229+ ('maasserver', '0160_storage_pools_notification'),
2230+ ]
2231+
2232+ operations = [
2233+ migrations.AlterField(
2234+ model_name='userprofile',
2235+ name='auth_last_check',
2236+ field=models.DateTimeField(blank=True, null=True),
2237+ ),
2238+ ]
2239diff --git a/src/maasserver/models/__init__.py b/src/maasserver/models/__init__.py
2240index 75d2f34..2904e6b 100644
2241--- a/src/maasserver/models/__init__.py
2242+++ b/src/maasserver/models/__init__.py
2243@@ -65,7 +65,6 @@ __all__ = [
2244 'RegionControllerProcessEndpoint',
2245 'RegionRackRPCConnection',
2246 'ResourcePool',
2247- 'Role',
2248 'RootKey',
2249 'Service',
2250 'signals',
2251@@ -79,8 +78,6 @@ __all__ = [
2252 'Tag',
2253 'Template',
2254 'UnknownInterface',
2255- 'UserGroup',
2256- 'UserGroupMembership',
2257 'UserProfile',
2258 'VersionedTextFile',
2259 'VirtualBlockDevice',
2260@@ -174,11 +171,7 @@ from maasserver.models.regioncontrollerprocessendpoint import (
2261 RegionControllerProcessEndpoint,
2262 )
2263 from maasserver.models.regionrackrpcconnection import RegionRackRPCConnection
2264-from maasserver.models.resourcepool import (
2265- create_resource_pool,
2266- ResourcePool,
2267-)
2268-from maasserver.models.role import Role
2269+from maasserver.models.resourcepool import ResourcePool
2270 from maasserver.models.rootkey import RootKey
2271 from maasserver.models.service import Service
2272 from maasserver.models.space import Space
2273@@ -191,10 +184,6 @@ from maasserver.models.switch import Switch
2274 from maasserver.models.tag import Tag
2275 from maasserver.models.template import Template
2276 from maasserver.models.user import create_user
2277-from maasserver.models.usergroup import (
2278- UserGroup,
2279- UserGroupMembership,
2280-)
2281 from maasserver.models.userprofile import UserProfile
2282 from maasserver.models.versionedtextfile import VersionedTextFile
2283 from maasserver.models.virtualblockdevice import VirtualBlockDevice
2284@@ -210,7 +199,6 @@ from provisioningserver.utils import is_instance_or_subclass
2285
2286 # Connect post-creation methods for models.
2287 post_save.connect(create_user, sender=User)
2288-post_save.connect(create_resource_pool, sender=ResourcePool)
2289
2290
2291 # Monkey patch django.contrib.auth.models.User to force email to be unique and
2292@@ -342,12 +330,8 @@ class MAASAuthorizationBackend(ModelBackend):
2293
2294 if isinstance(obj, Node):
2295 if perm == NODE_PERMISSION.VIEW:
2296- # users can see unowned machines if they're in a pool they have
2297- # access too. Other types of Node are always visible.
2298- return (
2299- obj.pool is None or
2300- ResourcePool.objects.user_can_access_pool(
2301- user, obj.pool))
2302+ # Any registered user can view a node regardless of its state.
2303+ return True
2304 elif perm == NODE_PERMISSION.EDIT:
2305 return obj.owner == user and not obj.locked
2306 elif perm == NODE_PERMISSION.LOCK:
2307diff --git a/src/maasserver/models/bmc.py b/src/maasserver/models/bmc.py
2308index b2c1966..4a372ab 100644
2309--- a/src/maasserver/models/bmc.py
2310+++ b/src/maasserver/models/bmc.py
2311@@ -177,7 +177,7 @@ class BMC(CleanSave, TimestampedModel):
2312 local_disks = IntegerField(blank=False, null=False, default=-1)
2313 iscsi_storage = BigIntegerField( # Bytes
2314 blank=False, null=False, default=-1)
2315- default_pool = ForeignKey(
2316+ pool = ForeignKey(
2317 ResourcePool, default=None, null=True, blank=True, editable=True,
2318 on_delete=PROTECT)
2319 zone = ForeignKey(
2320@@ -458,16 +458,16 @@ class Pod(BMC):
2321 _machine_name_re = re.compile(r'[a-z][a-z0-9-]+$', flags=re.I)
2322
2323 def __init__(self, *args, **kwargs):
2324- if 'default_pool' not in kwargs:
2325- kwargs['default_pool'] = (
2326+ if 'pool' not in kwargs:
2327+ kwargs['pool'] = (
2328 ResourcePool.objects.get_default_resource_pool())
2329 super(Pod, self).__init__(
2330 bmc_type=BMC_TYPE.POD, *args, **kwargs)
2331
2332 def clean(self):
2333 super().clean()
2334- if self.default_pool is None:
2335- raise ValidationError('A pod needs to have a default pool')
2336+ if self.pool is None:
2337+ raise ValidationError('A pod needs to have a pool')
2338
2339 def unique_error_message(self, model_class, unique_check):
2340 if unique_check == ('power_type', 'power_parameters', 'ip_address'):
2341@@ -643,6 +643,10 @@ class Pod(BMC):
2342 if zone is None:
2343 zone = self.zone
2344
2345+ pool = kwargs.pop('pool', None)
2346+ if pool is None:
2347+ pool = self.pool
2348+
2349 # Create the machine.
2350 machine = Machine(
2351 hostname=discovered_machine.hostname,
2352@@ -653,7 +657,7 @@ class Pod(BMC):
2353 memory=discovered_machine.memory,
2354 power_state=discovered_machine.power_state,
2355 creation_type=creation_type,
2356- pool=self.default_pool,
2357+ pool=pool,
2358 zone=zone, **kwargs)
2359 machine.bmc = self
2360 machine.instance_power_parameters = discovered_machine.power_parameters
2361diff --git a/src/maasserver/models/node.py b/src/maasserver/models/node.py
2362index e5274cf..51468ec 100644
2363--- a/src/maasserver/models/node.py
2364+++ b/src/maasserver/models/node.py
2365@@ -464,9 +464,7 @@ class BaseNodeManager(Manager, NodeQueriesMixin):
2366 NODE_TYPE.REGION_AND_RACK_CONTROLLER,
2367 ]))
2368 if perm == NODE_PERMISSION.VIEW:
2369- pools = ResourcePool.objects.get_user_resource_pools(user)
2370- return nodes.filter(
2371- Q(owner__isnull=True, pool__in=pools) | Q(owner=user))
2372+ return nodes.filter(Q(owner__isnull=True) | Q(owner=user))
2373 elif perm == NODE_PERMISSION.EDIT:
2374 return nodes.filter(owner=user)
2375 elif perm == NODE_PERMISSION.ADMIN:
2376@@ -1598,10 +1596,6 @@ class Node(CleanSave, TimestampedModel):
2377 if self.is_machine:
2378 if not self.pool:
2379 self.pool = ResourcePool.objects.get_default_resource_pool()
2380- elif self.owner and not ResourcePool.objects.user_can_access_pool(
2381- self.owner, self.pool):
2382- raise ValidationError(
2383- "User doesn't have access to the resource pool")
2384 elif self.pool:
2385 raise ValidationError(
2386 {'pool': ["Can't assign to a resource pool."]})
2387diff --git a/src/maasserver/models/resourcepool.py b/src/maasserver/models/resourcepool.py
2388index ff5a1ce..377db23 100644
2389--- a/src/maasserver/models/resourcepool.py
2390+++ b/src/maasserver/models/resourcepool.py
2391@@ -11,21 +11,16 @@ __all__ = [
2392
2393 from datetime import datetime
2394
2395-from django.contrib.auth.models import User
2396 from django.core.exceptions import ValidationError
2397 from django.db.models import (
2398 CharField,
2399- Count,
2400 Manager,
2401- Q,
2402 TextField,
2403 )
2404 from maasserver import DefaultMeta
2405 from maasserver.fields import MODEL_NAME_VALIDATOR
2406 from maasserver.models.cleansave import CleanSave
2407 from maasserver.models.timestampedmodel import TimestampedModel
2408-from maasserver.worker_user import user_name as worker_username
2409-from metadataserver.nodeinituser import user_name as node_init_username
2410
2411
2412 DEFAULT_RESOURCEPOOL_NAME = 'default'
2413@@ -48,19 +43,6 @@ class ResourcePoolManager(Manager):
2414 'updated': now})
2415 return pool
2416
2417- def get_user_resource_pools(self, user):
2418- """Return ResourcePools a User has access to."""
2419- return self.model.objects.filter(
2420- Q(role__users=user) | Q(role__groups__users=user))
2421-
2422- def user_can_access_pool(self, user, pool):
2423- """Whether a User has access to a ResourcePool."""
2424- # maas internal users need to be able to own any node
2425- admin_usernames = (worker_username, node_init_username)
2426- if user.username in admin_usernames:
2427- return True
2428- return self.get_user_resource_pools(user).filter(pk=pool.pk).exists()
2429-
2430
2431 class ResourcePool(CleanSave, TimestampedModel):
2432 """A resource pool."""
2433@@ -79,24 +61,6 @@ class ResourcePool(CleanSave, TimestampedModel):
2434 def __str__(self):
2435 return self.name
2436
2437- @property
2438- def users(self):
2439- """Return users that have access to the pool.
2440-
2441- XXX This should be dropped once we implement full RBAC, and the logic
2442- moved to methods in Role.
2443- """
2444- return self._get_pool_role().users.all()
2445-
2446- @property
2447- def groups(self):
2448- """Return groups that have access to the pool.
2449-
2450- XXX This should be dropped once we implement full RBAC, and the logic
2451- moved to methods in Role.
2452- """
2453- return self._get_pool_role().groups.all()
2454-
2455 def is_default(self):
2456 """Whether this is the default pool."""
2457 return self.id == 0
2458@@ -108,88 +72,4 @@ class ResourcePool(CleanSave, TimestampedModel):
2459 if self.node_set.exists():
2460 raise ValidationError(
2461 'Pool has machines in it, it cannot be deleted.')
2462- self._get_pool_role().delete()
2463 super().delete()
2464-
2465- def grant_user(self, user):
2466- """Grant user access to the resource pool.
2467-
2468- XXX This should be dropped once we implement full RBAC, and the logic
2469- moved to methods in Role.
2470- """
2471- role = self._get_pool_role()
2472- role.users.add(user)
2473-
2474- def revoke_user(self, user):
2475- """Revoke user access to the resource pool.
2476-
2477- XXX This should be dropped once we implement full RBAC, and the logic
2478- moved to methods in Role.
2479- """
2480- from maasserver.models.node import Machine
2481- from maasserver.models.role import Role
2482- has_machines = Machine.objects.filter(pool=self, owner=user).exists()
2483- has_access_through_roles = Role.objects.filter(
2484- groups__users=user, resource_pools=self).exists()
2485- if has_machines and not has_access_through_roles:
2486- raise ValidationError(
2487- 'User has machines in the pool, it cannot be revoked.')
2488- role = self._get_pool_role()
2489- role.users.remove(user)
2490-
2491- def grant_group(self, group):
2492- """Grant group access to the resource pool.
2493-
2494- XXX This should be dropped once we implement full RBAC, and the logic
2495- moved to methods in Role.
2496- """
2497- role = self._get_pool_role()
2498- role.groups.add(group)
2499-
2500- def revoke_group(self, group):
2501- """Revoke group access to the resource pool.
2502-
2503- XXX This should be dropped once we implement full RBAC, and the logic
2504- moved to methods in Role.
2505- """
2506- # check that users that have machines in the pool can still access them
2507- # either directly or via other groups
2508- users_with_direct_access = User.objects.filter(
2509- role__resource_pools=self).values('id')
2510- users_with_other_group_access = User.objects.filter(
2511- usergroup__role__resource_pools=self).annotate(
2512- usergroup_count=Count('usergroup')).filter(
2513- usergroup_count__gt=1).values('id')
2514- users_with_machines = User.objects.filter(node__pool=self).values('id')
2515- excluded_users = users_with_machines.difference(
2516- users_with_direct_access).difference(users_with_other_group_access)
2517- if excluded_users.exists():
2518- raise ValidationError(
2519- "Can't remove group from pool, some users have machines that"
2520- " would become unaccessible.")
2521-
2522- # remove the group
2523- role = self._get_pool_role()
2524- role.groups.remove(group)
2525-
2526- def _get_pool_role(self):
2527- """Return the Role associated to the pool.
2528-
2529- Until full RBAC is implemented, each ResourcePool is assigned to a
2530- single role.
2531- """
2532- return self.role_set.first()
2533-
2534-
2535-# When a resource pool is created is created, create a default role associated
2536-# to it.
2537-def create_resource_pool(sender, instance, created, **kwargs):
2538- if not created:
2539- return
2540-
2541- from maasserver.models.role import Role
2542- role = Role(
2543- name='role-{}'.format(instance.name),
2544- description='Default role for resource pool {}'.format(instance.name))
2545- role.save()
2546- role.resource_pools.add(instance)
2547diff --git a/src/maasserver/models/role.py b/src/maasserver/models/role.py
2548deleted file mode 100644
2549index 2f3b94e..0000000
2550--- a/src/maasserver/models/role.py
2551+++ /dev/null
2552@@ -1,27 +0,0 @@
2553-# Copyright 2012-2017 Canonical Ltd. This software is licensed under the
2554-# GNU Affero General Public License version 3 (see the file LICENSE).
2555-
2556-"""User roles and permissions."""
2557-
2558-from django.contrib.auth.models import User
2559-from django.db.models import (
2560- CharField,
2561- ManyToManyField,
2562- Model,
2563- TextField,
2564-)
2565-from maasserver.fields import MODEL_NAME_VALIDATOR
2566-from maasserver.models.resourcepool import ResourcePool
2567-from maasserver.models.usergroup import UserGroup
2568-
2569-
2570-class Role(Model):
2571- """A role defines user access to resource pools."""
2572-
2573- name = CharField(
2574- max_length=255, unique=True, blank=False,
2575- validators=[MODEL_NAME_VALIDATOR])
2576- description = TextField(blank=True, editable=True)
2577- users = ManyToManyField(User)
2578- groups = ManyToManyField(UserGroup)
2579- resource_pools = ManyToManyField(ResourcePool)
2580diff --git a/src/maasserver/models/tests/test_bmc.py b/src/maasserver/models/tests/test_bmc.py
2581index d0fbbf5..f8c0fe5 100644
2582--- a/src/maasserver/models/tests/test_bmc.py
2583+++ b/src/maasserver/models/tests/test_bmc.py
2584@@ -663,27 +663,26 @@ class TestPod(MAASServerTestCase):
2585 ),
2586 machines=machines)
2587
2588- def test_create_with_default_pool(self):
2589+ def test_create_with_pool(self):
2590 pool = ResourcePool.objects.get_default_resource_pool()
2591- pod = Pod(power_type='virsh', power_parameters={}, default_pool=pool)
2592+ pod = Pod(power_type='virsh', power_parameters={}, pool=pool)
2593 pod.save()
2594- self.assertEqual(pool, pod.default_pool)
2595+ self.assertEqual(pool, pod.pool)
2596
2597- def test_create_with_no_default_pool(self):
2598+ def test_create_with_no_pool(self):
2599 pod = Pod(power_type='virsh', power_parameters={})
2600 pod.save()
2601 self.assertEqual(
2602- ResourcePool.objects.get_default_resource_pool(),
2603- pod.default_pool)
2604+ ResourcePool.objects.get_default_resource_pool(), pod.pool)
2605
2606 def test_save_with_no_pool(self):
2607 pod = Pod(power_type='virsh', power_parameters={})
2608- pod.default_pool = None
2609+ pod.pool = None
2610 self.assertRaises(ValidationError, pod.save)
2611
2612- def test_no_delete_default_pool(self):
2613+ def test_no_delete_pod_pool(self):
2614 pool = factory.make_ResourcePool()
2615- pod = Pod(power_type='virsh', power_parameters={}, default_pool=pool)
2616+ pod = Pod(power_type='virsh', power_parameters={}, pool=pool)
2617 pod.save()
2618 self.assertRaises(ProtectedError, pool.delete)
2619
2620@@ -878,7 +877,7 @@ class TestPod(MAASServerTestCase):
2621 machine = pod.create_machine(discovered_machine, factory.make_User())
2622 self.assertNotEqual(machine.hostname, 'invalid_name')
2623
2624- def test_create_machine_pod_default_pool(self):
2625+ def test_create_machine_pod_pool(self):
2626 discovered_machine = self.make_discovered_machine()
2627 self.patch(Machine, "set_default_storage_layout")
2628 self.patch(Machine, "set_initial_networking_configuration")
2629@@ -888,7 +887,7 @@ class TestPod(MAASServerTestCase):
2630 fabric=fabric, dhcp_on=True,
2631 primary_rack=factory.make_RackController())
2632 pool = factory.make_ResourcePool()
2633- pod = factory.make_Pod(default_pool=pool)
2634+ pod = factory.make_Pod(pool=pool)
2635 machine = pod.create_machine(discovered_machine, factory.make_User())
2636 self.assertEqual(pool, machine.pool)
2637
2638@@ -1459,8 +1458,8 @@ class TestPodDelete(MAASTransactionServerTestCase):
2639 yield pod.async_delete()
2640 self.assertThat(
2641 client, MockCalledOnceWith(
2642- DecomposeMachine, type=pod.power_type, context={},
2643- pod_id=pod.id, name=pod.name))
2644+ DecomposeMachine, type=pod.power_type,
2645+ context=pod.power_parameters, pod_id=pod.id, name=pod.name))
2646 decomposable_machine = yield deferToDatabase(
2647 reload_object, decomposable_machine)
2648 delete_machine = yield deferToDatabase(reload_object, delete_machine)
2649diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
2650index aa2808d..a5a4a07 100644
2651--- a/src/maasserver/models/tests/test_node.py
2652+++ b/src/maasserver/models/tests/test_node.py
2653@@ -90,7 +90,6 @@ from maasserver.models import (
2654 Service,
2655 Subnet,
2656 UnknownInterface,
2657- UserGroup,
2658 VLAN,
2659 VLANInterface,
2660 )
2661@@ -476,25 +475,6 @@ class TestMachineManager(MAASServerTestCase):
2662 [],
2663 list(Machine.objects.get_available_machines_for_acquisition(user)))
2664
2665- def test_get_available_machines_only_in_accessible_pools(self):
2666- user = factory.make_User()
2667- machine = self.make_machine()
2668- # the user doesn't have access to this pool
2669- self.make_machine(pool=factory.make_ResourcePool())
2670- self.assertCountEqual(
2671- Machine.objects.get_available_machines_for_acquisition(user),
2672- [machine])
2673-
2674- def test_get_availalble_machines_includes_accessible_via_group(self):
2675- user = factory.make_User()
2676- group = factory.make_UserGroup(users=[user])
2677- machine = self.make_machine()
2678- pool = factory.make_ResourcePool(nodes=[machine])
2679- factory.make_Role(groups=[group], pools=[pool])
2680- self.assertCountEqual(
2681- Machine.objects.get_available_machines_for_acquisition(user),
2682- [machine])
2683-
2684
2685 class TestControllerManager(MAASServerTestCase):
2686
2687@@ -1068,35 +1048,13 @@ class TestNode(MAASServerTestCase):
2688 ValidationError, factory.make_Node, node_type=NODE_TYPE.DEVICE,
2689 pool=pool)
2690
2691- def test_pool_and_owner_with_access(self):
2692- pool = factory.make_ResourcePool()
2693- user = factory.make_User()
2694- pool.grant_user(user)
2695- node = factory.make_Node(owner=user, pool=pool)
2696- self.assertEqual(node.pool, pool)
2697-
2698- def test_pool_and_owner_without_access(self):
2699- pool = factory.make_ResourcePool()
2700- user = factory.make_User()
2701- self.assertRaises(
2702- ValidationError, factory.make_Node, owner=user, pool=pool)
2703-
2704 def test_update_pool(self):
2705 pool = factory.make_ResourcePool()
2706- user = factory.make_User()
2707- pool.grant_user(user)
2708- node = factory.make_Node(owner=user)
2709+ node = factory.make_Node()
2710 node.pool = pool
2711 node.save()
2712 self.assertEqual(node.pool, pool)
2713
2714- def test_update_pool_no_user_access(self):
2715- pool = factory.make_ResourcePool()
2716- user = factory.make_User()
2717- node = factory.make_Node(owner=user)
2718- node.pool = pool
2719- self.assertRaises(ValidationError, node.save)
2720-
2721 def test_lock(self):
2722 user = factory.make_User()
2723 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2724@@ -4941,14 +4899,13 @@ class NodeManagerTest(MAASServerTestCase):
2725 """get_nodes with perm=NODE_PERMISSION.VIEW lists the nodes a user
2726 has access to.
2727
2728- When run for a regular user it returns unowned nodes in accessible
2729- pools, and nodes owned by that user.
2730+ When run for a regular user it returns unowned nodes and nodes owned by
2731+ that user.
2732
2733 """
2734 user = factory.make_User()
2735 visible_nodes = [self.make_node(owner) for owner in [None, user]]
2736 self.make_node(factory.make_User())
2737- factory.make_Node(pool=factory.make_ResourcePool())
2738 self.assertItemsEqual(
2739 visible_nodes, Node.objects.get_nodes(user, NODE_PERMISSION.VIEW))
2740
2741@@ -4994,10 +4951,7 @@ class NodeManagerTest(MAASServerTestCase):
2742 # Node that we'll exclude from from_nodes:
2743 factory.make_Node(owner=user)
2744 # Node that will be ignored on account of belonging to someone else:
2745- invisible_node1 = factory.make_Node(owner=factory.make_User())
2746- # Node that will be ignored on account of being in a pool the user
2747- # doesn't have access to
2748- invisible_node2 = factory.make_Node(pool=factory.make_ResourcePool())
2749+ invisible_node = factory.make_Node(owner=factory.make_User())
2750
2751 self.assertItemsEqual(
2752 [matching_node],
2753@@ -5005,8 +4959,7 @@ class NodeManagerTest(MAASServerTestCase):
2754 user, NODE_PERMISSION.VIEW,
2755 from_nodes=Node.objects.filter(id__in=(
2756 matching_node.id,
2757- invisible_node1.id,
2758- invisible_node2.id
2759+ invisible_node.id,
2760 ))))
2761
2762 def test_get_nodes_with_edit_perm_for_user_lists_owned_nodes(self):
2763@@ -5083,7 +5036,6 @@ class NodeManagerTest(MAASServerTestCase):
2764 user_visible_nodes = [self.make_node(user), self.make_node(None)]
2765 admin_visible_nodes = user_visible_nodes + [
2766 self.make_node(factory.make_User()),
2767- self.make_node(pool=factory.make_ResourcePool()),
2768 factory.make_RackController(owner=user),
2769 factory.make_RackController(owner=None),
2770 factory.make_RegionController(),
2771@@ -5097,24 +5049,6 @@ class NodeManagerTest(MAASServerTestCase):
2772 user_visible_nodes,
2773 Node.objects.get_nodes(user, NODE_PERMISSION.VIEW))
2774
2775- def test_get_nodes_only_from_accessible_pools(self):
2776- user = factory.make_User()
2777- pool = factory.make_ResourcePool()
2778- node = factory.make_Node()
2779- # the user doesn't have access to the pool
2780- factory.make_Node(pool=pool)
2781- self.assertCountEqual(
2782- Node.objects.get_nodes(user, NODE_PERMISSION.VIEW),
2783- [node])
2784-
2785- def test_get_nodes_no_accessible_pool(self):
2786- user = factory.make_User()
2787- default_usergroup = UserGroup.objects.get_default_usergroup()
2788- default_usergroup.remove(user)
2789- factory.make_Node()
2790- self.assertCountEqual(
2791- Node.objects.get_nodes(user, NODE_PERMISSION.VIEW), [])
2792-
2793 def test_filter_nodes_by_spaces(self):
2794 # Create a throwaway node and a throwaway space.
2795 # (to ensure they are filtered out.)
2796@@ -5286,15 +5220,6 @@ class NodeManagerTest(MAASServerTestCase):
2797 self.assertEqual(node, rack)
2798 self.assertIsInstance(rack, RackController)
2799
2800- def test_get_node_or_404_user_not_in_pool(self):
2801- pool = factory.make_ResourcePool()
2802- user = factory.make_User()
2803- node = factory.make_Node(pool=pool)
2804- self.assertRaises(
2805- PermissionDenied,
2806- Node.objects.get_node_or_404,
2807- node.system_id, user, NODE_PERMISSION.VIEW)
2808-
2809 def test_netboot_on(self):
2810 node = factory.make_Node(netboot=False)
2811 node.set_netboot(True)
2812diff --git a/src/maasserver/models/tests/test_resourcepool.py b/src/maasserver/models/tests/test_resourcepool.py
2813index f8efdb2..8984826 100644
2814--- a/src/maasserver/models/tests/test_resourcepool.py
2815+++ b/src/maasserver/models/tests/test_resourcepool.py
2816@@ -9,12 +9,9 @@ from maasserver.models.resourcepool import (
2817 DEFAULT_RESOURCEPOOL_NAME,
2818 ResourcePool,
2819 )
2820-from maasserver.models.role import Role
2821 from maasserver.testing.factory import factory
2822 from maasserver.testing.testcase import MAASServerTestCase
2823 from maasserver.utils.orm import reload_object
2824-from maasserver.worker_user import get_worker_user
2825-from metadataserver.nodeinituser import get_node_init_user
2826
2827
2828 class TestResourcePoolManager(MAASServerTestCase):
2829@@ -34,61 +31,6 @@ class TestResourcePoolManager(MAASServerTestCase):
2830 ResourcePool.objects.get_default_resource_pool().name,
2831 DEFAULT_RESOURCEPOOL_NAME)
2832
2833- def test_get_user_resource_pools_user_in_role(self):
2834- user = factory.make_User()
2835- default_pool = ResourcePool.objects.get_default_resource_pool()
2836- pool1 = factory.make_ResourcePool()
2837- pool2 = factory.make_ResourcePool()
2838- factory.make_ResourcePool() # a pool the user doesn't have access to
2839- factory.make_Role(users=[user], pools=[pool1, pool2])
2840- self.assertCountEqual(
2841- ResourcePool.objects.get_user_resource_pools(user),
2842- [default_pool, pool1, pool2])
2843-
2844- def test_get_user_resource_pools_user_group_in_role(self):
2845- user = factory.make_User()
2846- default_pool = ResourcePool.objects.get_default_resource_pool()
2847- pool1 = factory.make_ResourcePool()
2848- pool2 = factory.make_ResourcePool()
2849- factory.make_ResourcePool() # a pool the user doesn't have access to
2850- group = factory.make_UserGroup(users=[user])
2851- factory.make_Role(groups=[group], pools=[pool1, pool2])
2852- self.assertCountEqual(
2853- ResourcePool.objects.get_user_resource_pools(user),
2854- [default_pool, pool1, pool2])
2855-
2856- def test_get_user_resource_pools_role_direct_and_via_group(self):
2857- user = factory.make_User()
2858- group = factory.make_UserGroup(users=[user])
2859- default_pool = ResourcePool.objects.get_default_resource_pool()
2860- pool1 = factory.make_ResourcePool()
2861- pool2 = factory.make_ResourcePool()
2862- factory.make_Role(users=[user], pools=[pool1])
2863- factory.make_Role(groups=[group], pools=[pool2])
2864- self.assertCountEqual(
2865- ResourcePool.objects.get_user_resource_pools(user),
2866- [default_pool, pool1, pool2])
2867-
2868- def test_user_can_access_pool(self):
2869- user = factory.make_User()
2870- pool = factory.make_ResourcePool()
2871- manager = ResourcePool.objects
2872- self.assertFalse(manager.user_can_access_pool(user, pool))
2873- pool.grant_user(user)
2874- self.assertTrue(manager.user_can_access_pool(user, pool))
2875-
2876- def test_user_can_access_pool_worker_user(self):
2877- user = get_worker_user()
2878- pool = factory.make_ResourcePool()
2879- self.assertTrue(
2880- ResourcePool.objects.user_can_access_pool(user, pool))
2881-
2882- def test_user_can_access_pool_node_init_user(self):
2883- user = get_node_init_user()
2884- pool = factory.make_ResourcePool()
2885- self.assertTrue(
2886- ResourcePool.objects.user_can_access_pool(user, pool))
2887-
2888
2889 class TestResourcePool(MAASServerTestCase):
2890
2891@@ -108,31 +50,11 @@ class TestResourcePool(MAASServerTestCase):
2892 def test_is_default_false(self):
2893 self.assertFalse(factory.make_ResourcePool().is_default())
2894
2895- def test_users(self):
2896- user1 = factory.make_User()
2897- user2 = factory.make_User()
2898- factory.make_User()
2899- pool = factory.make_ResourcePool(users=[user1, user2])
2900- self.assertCountEqual(pool.users, [user1, user2])
2901-
2902- def test_groups(self):
2903- group1 = factory.make_UserGroup()
2904- group2 = factory.make_UserGroup()
2905- factory.make_UserGroup()
2906- pool = factory.make_ResourcePool(groups=[group1, group2])
2907- self.assertCountEqual(pool.groups, [group1, group2])
2908-
2909 def test_delete(self):
2910 pool = factory.make_ResourcePool()
2911 pool.delete()
2912 self.assertIsNone(reload_object(pool))
2913
2914- def test_delete_removes_role(self):
2915- pool = factory.make_ResourcePool()
2916- role = pool.role_set.first()
2917- pool.delete()
2918- self.assertIsNone(reload_object(role))
2919-
2920 def test_delete_default_fails(self):
2921 pool = ResourcePool.objects.get_default_resource_pool()
2922 self.assertRaises(ValidationError, pool.delete)
2923@@ -141,80 +63,3 @@ class TestResourcePool(MAASServerTestCase):
2924 pool = ResourcePool.objects.get_default_resource_pool()
2925 factory.make_Node(pool=pool)
2926 self.assertRaises(ValidationError, pool.delete)
2927-
2928- def test_create_adds_predefined_role(self):
2929- name = factory.make_name()
2930- pool = factory.make_ResourcePool(name=name)
2931- role = Role.objects.get(name='role-{}'.format(name))
2932- self.assertCountEqual(role.resource_pools.all(), [pool])
2933-
2934- def test_grant_user(self):
2935- user = factory.make_User()
2936- pool = factory.make_ResourcePool()
2937- pool.grant_user(user)
2938- self.assertIn(
2939- pool,
2940- ResourcePool.objects.get_user_resource_pools(user))
2941-
2942- def test_revoke_user(self):
2943- user = factory.make_User()
2944- pool = factory.make_ResourcePool()
2945- pool.grant_user(user)
2946- pool.revoke_user(user)
2947- self.assertNotIn(
2948- pool, ResourcePool.objects.get_user_resource_pools(user))
2949-
2950- def test_revoke_user_with_machine_in_pool_fail(self):
2951- user = factory.make_User()
2952- node = factory.make_Node(owner=user)
2953- pool = factory.make_ResourcePool(users=[user], nodes=[node])
2954- # default_pool = ResourcePool.objects.get_default_resource_pool()
2955- self.assertRaises(ValidationError, pool.revoke_user, user)
2956-
2957- def test_revoke_user_with_machine_access_via_group(self):
2958- user = factory.make_User()
2959- group = factory.make_UserGroup(users=[user])
2960- pool = factory.make_ResourcePool(groups=[group], users=[user])
2961- factory.make_Node(owner=user, pool=pool)
2962- pool.revoke_user(user)
2963- self.assertIn(pool, ResourcePool.objects.get_user_resource_pools(user))
2964-
2965- def test_grant_group(self):
2966- user = factory.make_User()
2967- group = factory.make_UserGroup(users=[user])
2968- pool = factory.make_ResourcePool()
2969- pool.grant_group(group)
2970- self.assertIn(
2971- pool, ResourcePool.objects.get_user_resource_pools(user))
2972-
2973- def test_revoke_group(self):
2974- user = factory.make_User()
2975- group = factory.make_UserGroup(users=[user])
2976- pool = factory.make_ResourcePool(groups=[group])
2977- pool.revoke_group(group)
2978- self.assertNotIn(
2979- pool, ResourcePool.objects.get_user_resource_pools(user))
2980-
2981- def test_revoke_group_with_owned_machine_fail(self):
2982- user = factory.make_User()
2983- group = factory.make_UserGroup(users=[user])
2984- pool = factory.make_ResourcePool(groups=[group])
2985- factory.make_Node(owner=user, pool=pool)
2986- self.assertRaises(ValidationError, pool.revoke_group, group)
2987-
2988- def test_revoke_group_with_machine_direct_access(self):
2989- user = factory.make_User()
2990- group = factory.make_UserGroup(users=[user])
2991- pool = factory.make_ResourcePool(groups=[group], users=[user])
2992- factory.make_Node(owner=user, pool=pool)
2993- pool.revoke_group(group)
2994- self.assertIn(pool, ResourcePool.objects.get_user_resource_pools(user))
2995-
2996- def test_revoke_group_with_machine_other_group_access(self):
2997- user = factory.make_User()
2998- group1 = factory.make_UserGroup(users=[user])
2999- group2 = factory.make_UserGroup(users=[user])
3000- pool = factory.make_ResourcePool(groups=[group1, group2])
3001- factory.make_Node(owner=user, pool=pool)
3002- pool.revoke_group(group1)
3003- self.assertIn(pool, ResourcePool.objects.get_user_resource_pools(user))
3004diff --git a/src/maasserver/models/tests/test_role.py b/src/maasserver/models/tests/test_role.py
3005deleted file mode 100644
3006index 1cf92b2..0000000
3007--- a/src/maasserver/models/tests/test_role.py
3008+++ /dev/null
3009@@ -1,42 +0,0 @@
3010-# Copyright 2013-2017 Canonical Ltd. This software is licensed under the
3011-# GNU Affero General Public License version 3 (see the file LICENSE).
3012-
3013-"""Test Role objects."""
3014-
3015-from maasserver.testing.factory import factory
3016-from maasserver.testing.testcase import MAASServerTestCase
3017-
3018-
3019-class TestRole(MAASServerTestCase):
3020- """Tests for :class:`Role`."""
3021-
3022- def test_init(self):
3023- name = factory.make_name('name')
3024- description = factory.make_name('description')
3025- role = factory.make_Role(name=name, description=description)
3026- self.assertEqual(role.name, name)
3027- self.assertEqual(role.description, description)
3028-
3029- def test_related_users(self):
3030- user1 = factory.make_User()
3031- user2 = factory.make_User()
3032- role = factory.make_Role()
3033- role.users.add(user1)
3034- role.users.add(user2)
3035- self.assertCountEqual(role.users.all(), [user1, user2])
3036-
3037- def test_related_group(self):
3038- group1 = factory.make_UserGroup()
3039- group2 = factory.make_UserGroup()
3040- role = factory.make_Role()
3041- role.groups.add(group1)
3042- role.groups.add(group2)
3043- self.assertCountEqual(role.groups.all(), [group1, group2])
3044-
3045- def test_related_resource_pools(self):
3046- pool1 = factory.make_ResourcePool()
3047- pool2 = factory.make_ResourcePool()
3048- role = factory.make_Role()
3049- role.resource_pools.add(pool1)
3050- role.resource_pools.add(pool2)
3051- self.assertCountEqual(role.resource_pools.all(), [pool1, pool2])
3052diff --git a/src/maasserver/models/tests/test_usergroup.py b/src/maasserver/models/tests/test_usergroup.py
3053deleted file mode 100644
3054index edb0361..0000000
3055--- a/src/maasserver/models/tests/test_usergroup.py
3056+++ /dev/null
3057@@ -1,187 +0,0 @@
3058-# Copyright 2018 Canonical Ltd. This software is licensed under the
3059-# GNU Affero General Public License version 3 (see the file LICENSE).
3060-
3061-"""Test UserGroup objects."""
3062-
3063-from django.core.exceptions import ValidationError
3064-from maasserver.models import ResourcePool
3065-from maasserver.models.usergroup import (
3066- DEFAULT_USERGROUP_DESCRIPTION,
3067- DEFAULT_USERGROUP_NAME,
3068- UserGroup,
3069-)
3070-from maasserver.testing.factory import factory
3071-from maasserver.testing.testcase import MAASServerTestCase
3072-from maasserver.utils.orm import reload_object
3073-from maasserver.worker_user import get_worker_user
3074-from metadataserver.nodeinituser import get_node_init_user
3075-
3076-
3077-class TestUserGroupManager(MAASServerTestCase):
3078- """Tests for `UserGroup` manager."""
3079-
3080- def test_get_default_usergroup_returns_default(self):
3081- group = UserGroup.objects.get_default_usergroup()
3082- self.assertEqual(group.id, 0)
3083- self.assertEqual(group.name, DEFAULT_USERGROUP_NAME)
3084- self.assertEqual(group.description, DEFAULT_USERGROUP_DESCRIPTION)
3085- self.assertIsNotNone(group.created)
3086- self.assertIsNotNone(group.updated)
3087-
3088- def test_get_default_usergroup_ignores_other_groups(self):
3089- factory.make_UserGroup()
3090- self.assertEqual(
3091- UserGroup.objects.get_default_usergroup().name,
3092- DEFAULT_USERGROUP_NAME)
3093-
3094- def test_get_remote_group_names(self):
3095- remote1 = factory.make_UserGroup(local=False)
3096- remote2 = factory.make_UserGroup(local=False)
3097- factory.make_UserGroup(local=True)
3098- self.assertEqual(
3099- UserGroup.objects.get_remote_group_names(),
3100- {remote1.name, remote2.name})
3101-
3102- def test_user_assigned_to_default_group(self):
3103- default_group = UserGroup.objects.get_default_usergroup()
3104- user = factory.make_User()
3105- self.assertIn(user, default_group.users.all())
3106-
3107- def test_worker_user_not_in_default_group(self):
3108- default_group = UserGroup.objects.get_default_usergroup()
3109- self.assertNotIn(get_worker_user(), default_group.users.all())
3110-
3111- def test_node_init_user_not_in_default_group(self):
3112- default_group = UserGroup.objects.get_default_usergroup()
3113- self.assertNotIn(get_node_init_user(), default_group.users.all())
3114-
3115-
3116-class TestUserGroup(MAASServerTestCase):
3117-
3118- def test_init(self):
3119- name = factory.make_name('name')
3120- description = factory.make_name('description')
3121- group = UserGroup(name=name, description=description)
3122- group.save()
3123- group = reload_object(group)
3124- self.assertEqual(group.name, name)
3125- self.assertEqual(group.description, description)
3126- self.assertTrue(group.local)
3127-
3128- def test_not_local(self):
3129- group = UserGroup(
3130- name=factory.make_name(), description=factory.make_name(),
3131- local=False)
3132- group.save()
3133- group = reload_object(group)
3134- self.assertFalse(group.local)
3135-
3136- def test_is_default_true(self):
3137- self.assertTrue(
3138- UserGroup.objects.get_default_usergroup().is_default())
3139-
3140- def test_is_default_false(self):
3141- self.assertFalse(factory.make_UserGroup().is_default())
3142-
3143- def test_delete(self):
3144- group = factory.make_UserGroup()
3145- group.delete()
3146- self.assertIsNone(reload_object(group))
3147-
3148- def test_delete_default_fails(self):
3149- group = UserGroup.objects.get_default_usergroup()
3150- self.assertRaises(ValidationError, group.delete)
3151-
3152- def test_delete_with_user_losing_access_fails(self):
3153- user = factory.make_User()
3154- group = factory.make_UserGroup(users=[user])
3155- node = factory.make_Node(owner=user)
3156- factory.make_ResourcePool(groups=[group], nodes=[node])
3157- self.assertRaises(ValidationError, group.delete)
3158-
3159- def test_delete_with_user_direct_access(self):
3160- user = factory.make_User()
3161- group = factory.make_UserGroup(users=[user])
3162- node = factory.make_Node(owner=user)
3163- pool = factory.make_ResourcePool(
3164- groups=[group], users=[user], nodes=[node])
3165- group.delete()
3166- self.assertIn(
3167- pool, ResourcePool.objects.get_user_resource_pools(user))
3168-
3169- def test_delete_with_other_group_access(self):
3170- user = factory.make_User()
3171- group1 = factory.make_UserGroup(users=[user])
3172- group2 = factory.make_UserGroup(users=[user])
3173- node = factory.make_Node(owner=user)
3174- pool = factory.make_ResourcePool(groups=[group1, group2], nodes=[node])
3175- group1.delete()
3176- self.assertIn(
3177- pool, ResourcePool.objects.get_user_resource_pools(user))
3178-
3179- def test_delete_user_unrelated_resources(self):
3180- user = factory.make_User()
3181- group1 = factory.make_UserGroup(users=[user])
3182- group2 = factory.make_UserGroup(users=[user])
3183- node = factory.make_Node(owner=user)
3184- factory.make_ResourcePool(groups=[group1])
3185- pool2 = factory.make_ResourcePool(groups=[group2], nodes=[node])
3186- group1.delete()
3187- self.assertIn(
3188- pool2, ResourcePool.objects.get_user_resource_pools(user))
3189-
3190- def test_add_user(self):
3191- user = factory.make_User()
3192- group = factory.make_UserGroup()
3193- group.add(user)
3194- self.assertCountEqual(group.users.all(), [user])
3195-
3196- def test_add_user_already_in_group(self):
3197- user = factory.make_User()
3198- group = factory.make_UserGroup(users=[user])
3199- group.add(user)
3200- self.assertCountEqual(group.users.all(), [user])
3201-
3202- def test_remove_user(self):
3203- user1 = factory.make_User()
3204- user2 = factory.make_User()
3205- group = factory.make_UserGroup(users=[user1, user2])
3206- group.remove(user1)
3207- self.assertCountEqual(group.users.all(), [user2])
3208-
3209- def test_remove_user_would_lose_machine_access(self):
3210- user = factory.make_User()
3211- group = factory.make_UserGroup(users=[user])
3212- pool = factory.make_ResourcePool()
3213- factory.make_Role(pools=[pool], groups=[group])
3214- factory.make_Node(owner=user, pool=pool)
3215- self.assertRaises(ValidationError, group.remove, user)
3216-
3217- def test_remove_user_with_other_group_access_to_machine(self):
3218- user = factory.make_User()
3219- group1 = factory.make_UserGroup(users=[user])
3220- group2 = factory.make_UserGroup(users=[user])
3221- pool = factory.make_ResourcePool()
3222- factory.make_Role(pools=[pool], groups=[group1])
3223- factory.make_Role(pools=[pool], groups=[group2])
3224- factory.make_Node(owner=user, pool=pool)
3225- group1.remove(user)
3226- self.assertTrue(ResourcePool.objects.user_can_access_pool(user, pool))
3227-
3228- def test_remove_user_with_other_group_access_to_machine_same_role(self):
3229- user = factory.make_User()
3230- group1 = factory.make_UserGroup(users=[user])
3231- group2 = factory.make_UserGroup(users=[user])
3232- pool = factory.make_ResourcePool()
3233- factory.make_Role(pools=[pool], groups=[group1, group2])
3234- factory.make_Node(owner=user, pool=pool)
3235- group1.remove(user)
3236- self.assertTrue(ResourcePool.objects.user_can_access_pool(user, pool))
3237-
3238- def test_remove_user_with_direct_access_to_machine(self):
3239- user = factory.make_User()
3240- group = factory.make_UserGroup(users=[user])
3241- pool = factory.make_ResourcePool(users=[user])
3242- factory.make_Role(pools=[pool], groups=[group])
3243- group.remove(user)
3244- self.assertTrue(ResourcePool.objects.user_can_access_pool(user, pool))
3245diff --git a/src/maasserver/models/tests/test_userprofile.py b/src/maasserver/models/tests/test_userprofile.py
3246index 8a0efac..9fa2ba1 100644
3247--- a/src/maasserver/models/tests/test_userprofile.py
3248+++ b/src/maasserver/models/tests/test_userprofile.py
3249@@ -6,7 +6,6 @@
3250 __all__ = []
3251
3252 from django.contrib.auth.models import User
3253-from django.core.exceptions import ValidationError
3254 from maasserver.exceptions import CannotDeleteUserException
3255 from maasserver.models import (
3256 FileStorage,
3257@@ -140,20 +139,6 @@ class UserProfileTest(MAASServerTestCase):
3258 self.assertEqual(reload_object(ipaddress).user, new_user)
3259 self.assertEqual(reload_object(iprange).user, new_user)
3260
3261- def test_transfer_resources_missing_target_access(self):
3262- user = factory.make_User()
3263- pool = factory.make_ResourcePool(users=[user])
3264- node = factory.make_Node(owner=user, pool=pool)
3265- new_user = factory.make_User()
3266- error = self.assertRaises(
3267- ValidationError, user.userprofile.transfer_resources, new_user)
3268- self.assertEqual(
3269- error.message,
3270- "Can't transfer machines to new user, user missing access target"
3271- " resource pool(s)")
3272- # owner didn't change
3273- self.assertEqual(reload_object(node).owner, user)
3274-
3275 def test_manager_all_users(self):
3276 users = set(factory.make_User() for _ in range(3))
3277 all_users = set(UserProfile.objects.all_users())
3278diff --git a/src/maasserver/models/user.py b/src/maasserver/models/user.py
3279index 369783f..267840a 100644
3280--- a/src/maasserver/models/user.py
3281+++ b/src/maasserver/models/user.py
3282@@ -87,11 +87,6 @@ def create_user(sender, instance, created, **kwargs):
3283 # Create initial authorisation token.
3284 profile.create_authorisation_token()
3285
3286- # Assign the user to the default group
3287- from maasserver.models import UserGroup
3288- default_group = UserGroup.objects.get_default_usergroup()
3289- default_group.add(instance)
3290-
3291
3292 def get_creds_tuple(token):
3293 """Return API credentials as tuple, as used in :class:`MAASOAuth`.
3294diff --git a/src/maasserver/models/usergroup.py b/src/maasserver/models/usergroup.py
3295deleted file mode 100644
3296index 38ce656..0000000
3297--- a/src/maasserver/models/usergroup.py
3298+++ /dev/null
3299@@ -1,145 +0,0 @@
3300-# Copyright 2018 Canonical Ltd. This software is licensed under the
3301-# GNU Affero General Public License version 3 (see the file LICENSE).
3302-
3303-"""UserGroup model"""
3304-
3305-__all__ = [
3306- "DEFAULT_USERGROUP_DESCRIPTION",
3307- "DEFAULT_USERGROUP_NAME",
3308- "UserGroup",
3309-]
3310-
3311-from datetime import datetime
3312-
3313-from django.contrib.auth.models import User
3314-from django.core.exceptions import ValidationError
3315-from django.db.models import (
3316- BooleanField,
3317- CASCADE,
3318- CharField,
3319- Count,
3320- ForeignKey,
3321- Manager,
3322- ManyToManyField,
3323- Model,
3324- Q,
3325- TextField,
3326-)
3327-from maasserver import DefaultMeta
3328-from maasserver.fields import MODEL_NAME_VALIDATOR
3329-from maasserver.models import (
3330- Node,
3331- ResourcePool,
3332-)
3333-from maasserver.models.cleansave import CleanSave
3334-from maasserver.models.timestampedmodel import TimestampedModel
3335-
3336-
3337-DEFAULT_USERGROUP_NAME = 'default'
3338-DEFAULT_USERGROUP_DESCRIPTION = 'Default user group'
3339-
3340-
3341-class UserGroupManager(Manager):
3342- """Manager for the :class:`UserGroup` model."""
3343-
3344- def get_default_usergroup(self):
3345- """Return the default user group."""
3346- now = datetime.now()
3347- group, _ = self.get_or_create(
3348- id=0,
3349- defaults={
3350- 'id': 0,
3351- 'name': DEFAULT_USERGROUP_NAME,
3352- 'description': DEFAULT_USERGROUP_DESCRIPTION,
3353- 'created': now,
3354- 'updated': now})
3355- return group
3356-
3357- def get_remote_group_names(self):
3358- """Return names of groups related to external authentication."""
3359- return frozenset(
3360- self.filter(local=False).values_list('name', flat=True))
3361-
3362-
3363-class UserGroup(CleanSave, TimestampedModel):
3364- """A Group of Users."""
3365-
3366- objects = UserGroupManager()
3367-
3368- name = CharField(
3369- max_length=256, unique=True, editable=True,
3370- validators=[MODEL_NAME_VALIDATOR])
3371- description = TextField(null=False, blank=True)
3372- local = BooleanField(blank=True, default=True)
3373- users = ManyToManyField(User, through='UserGroupMembership')
3374-
3375- class Meta(DefaultMeta):
3376-
3377- ordering = ['name']
3378-
3379- def __str__(self):
3380- return self.name
3381-
3382- def is_default(self):
3383- """Whether this is the default user group."""
3384- return self.id == 0
3385-
3386- def delete(self):
3387- if self.is_default():
3388- raise ValidationError(
3389- 'This is the default user group, it cannot be deleted.')
3390-
3391- # check if by removing the group, any user would lose access to
3392- # machines in related resource pools
3393- nodes = Node.objects.filter(
3394- owner__isnull=False, pool__role__groups=self)
3395- # get a list of tuples with (User ID, Node ID) for users that have a
3396- # single way of accessing nodes in pool related to the group being
3397- # removed through user groups
3398- affected_users = User.objects.filter(
3399- usergroup__role__resource_pools__node__in=nodes).annotate(
3400- access_count=Count('usergroup')).filter(
3401- access_count__lte=1).values('id', 'node')
3402- # remove tuples where users can access machines through a direct
3403- # relation with roles associated to resource pools
3404- affected_users = affected_users.difference(
3405- User.objects.filter(
3406- role__resource_pools__node__in=nodes).values('id', 'node'))
3407- if affected_users:
3408- raise ValidationError(
3409- "Can't remove group, some users have machines that"
3410- " would become unaccessible")
3411-
3412- super().delete()
3413-
3414- def add(self, user):
3415- """Add a user to this group."""
3416- if user in self.users.all():
3417- return
3418- UserGroupMembership.objects.create(user=user, group=self)
3419-
3420- def remove(self, user):
3421- """Remove a user from this group."""
3422- self._check_pools_accessibility_without_group(user)
3423- UserGroupMembership.objects.filter(user=user, group=self).delete()
3424-
3425- def _check_pools_accessibility_without_group(self, user):
3426- """Check required pools are still accessible after removing user."""
3427- # pools that are required to be accessible by the user because of owned
3428- # resources
3429- required_pools = ResourcePool.objects.filter(node__owner=user)
3430- # pools that are accessible after removing the user from the group
3431- from maasserver.models import Role
3432- roles = Role.objects.filter(
3433- Q(users=user) | (Q(groups__users=user) & ~Q(groups=self)))
3434- pools = ResourcePool.objects.filter(role__in=roles)
3435- if required_pools.difference(pools):
3436- raise ValidationError(
3437- "Can't remove user from group, owned machines are in pools"
3438- " that would become unaccessible.")
3439-
3440-
3441-class UserGroupMembership(Model):
3442-
3443- user = ForeignKey(User, on_delete=CASCADE)
3444- group = ForeignKey(UserGroup, on_delete=CASCADE)
3445diff --git a/src/maasserver/models/userprofile.py b/src/maasserver/models/userprofile.py
3446index d8a79c4..d587f5c 100644
3447--- a/src/maasserver/models/userprofile.py
3448+++ b/src/maasserver/models/userprofile.py
3449@@ -9,7 +9,6 @@ __all__ = [
3450
3451
3452 from django.contrib.auth.models import User
3453-from django.core.exceptions import ValidationError
3454 from django.db.models import (
3455 BooleanField,
3456 CASCADE,
3457@@ -21,7 +20,6 @@ from django.db.models import (
3458 from django.shortcuts import get_object_or_404
3459 from maasserver import DefaultMeta
3460 from maasserver.exceptions import CannotDeleteUserException
3461-from maasserver.models import ResourcePool
3462 from maasserver.models.cleansave import CleanSave
3463 from piston3.models import Token
3464
3465@@ -105,12 +103,6 @@ class UserProfile(CleanSave, Model):
3466 :type new_owner: maasserver.models.UserProfile
3467
3468 """
3469- user_pools = ResourcePool.objects.get_user_resource_pools(new_owner)
3470- nodes = self.user.node_set
3471- if nodes.exists() and nodes.exclude(pool__in=user_pools).exists():
3472- raise ValidationError(
3473- "Can't transfer machines to new user,"
3474- " user missing access target resource pool(s)")
3475 self.user.node_set.update(owner=new_owner)
3476 self.user.staticipaddress_set.update(user=new_owner)
3477 self.user.iprange_set.update(user=new_owner)
3478diff --git a/src/maasserver/node_action.py b/src/maasserver/node_action.py
3479index 6cc9097..10ba760 100644
3480--- a/src/maasserver/node_action.py
3481+++ b/src/maasserver/node_action.py
3482@@ -39,7 +39,10 @@ from maasserver.exceptions import (
3483 NodeActionError,
3484 StaticIPAddressExhaustion,
3485 )
3486-from maasserver.models import Zone
3487+from maasserver.models import (
3488+ ResourcePool,
3489+ Zone,
3490+)
3491 from maasserver.node_status import (
3492 is_failed_status,
3493 NON_MONITORED_STATUSES,
3494@@ -223,6 +226,23 @@ class SetZone(NodeAction):
3495 self.node.set_zone(zone)
3496
3497
3498+class SetPool(NodeAction):
3499+ """Set the resource pool of a node."""
3500+ name = "set-pool"
3501+ display = "Set resource pool"
3502+ display_sentence = "Pool set"
3503+ actionable_statuses = ALL_STATUSES
3504+ permission = NODE_PERMISSION.EDIT
3505+ node_permission = NODE_PERMISSION.ADMIN
3506+ for_type = {NODE_TYPE.MACHINE}
3507+
3508+ def execute(self, pool_id=None):
3509+ """See `NodeAction.execute`."""
3510+ pool = ResourcePool.objects.get(id=pool_id)
3511+ self.node.pool = pool
3512+ self.node.save()
3513+
3514+
3515 class Commission(NodeAction):
3516 """Accept a node into the MAAS, and start the commissioning process."""
3517 name = "commission"
3518@@ -657,6 +677,7 @@ ACTION_CLASSES = (
3519 Lock,
3520 Unlock,
3521 SetZone,
3522+ SetPool,
3523 ImportImages,
3524 Delete,
3525 )
3526diff --git a/src/maasserver/node_constraint_filter_forms.py b/src/maasserver/node_constraint_filter_forms.py
3527index 84cf84c..8b052b5 100644
3528--- a/src/maasserver/node_constraint_filter_forms.py
3529+++ b/src/maasserver/node_constraint_filter_forms.py
3530@@ -33,6 +33,7 @@ from maasserver.models import (
3531 Filesystem,
3532 Interface,
3533 Pod,
3534+ ResourcePool,
3535 Subnet,
3536 Tag,
3537 VLAN,
3538@@ -581,6 +582,15 @@ class AcquireNodeForm(RenamableFieldsForm):
3539 'invalid_list': "Invalid parameter: must list physical zones.",
3540 })
3541
3542+ pool = forms.CharField(label="Resource pool", required=False)
3543+
3544+ not_in_pool = ValidatorMultipleChoiceField(
3545+ validator=MODEL_NAME_VALIDATOR,
3546+ label="Not in resource pool", required=False,
3547+ error_messages={
3548+ 'invalid_list': "Invalid parameter: must list resource pools.",
3549+ })
3550+
3551 storage = forms.CharField(
3552 validators=[storage_validator], label="Storage", required=False)
3553
3554@@ -673,6 +683,28 @@ class AcquireNodeForm(RenamableFieldsForm):
3555 return None
3556 return value
3557
3558+ def clean_pool(self):
3559+ value = self.cleaned_data[self.get_field_name('pool')]
3560+ if value:
3561+ nonexistent_names = detect_nonexistent_names(ResourcePool, [value])
3562+ if nonexistent_names:
3563+ error_msg = "No such pool: '%s'." % value
3564+ set_form_error(self, self.get_field_name('pool'), error_msg)
3565+ return None
3566+ return value
3567+ return None
3568+
3569+ def clean_not_in_pool(self):
3570+ value = self.cleaned_data[self.get_field_name('not_in_pool')]
3571+ if not value:
3572+ return None
3573+ nonexistent_names = detect_nonexistent_names(ResourcePool, value)
3574+ if nonexistent_names:
3575+ error_msg = "No such pool(s): %s." % ', '.join(nonexistent_names)
3576+ set_form_error(self, self.get_field_name('not_in_pool'), error_msg)
3577+ return None
3578+ return value
3579+
3580 def _clean_specifiers(self, model, specifiers):
3581 if not specifiers:
3582 return None
3583@@ -770,6 +802,7 @@ class AcquireNodeForm(RenamableFieldsForm):
3584 filtered_nodes = self.filter_by_mem(filtered_nodes)
3585 filtered_nodes = self.filter_by_tags(filtered_nodes)
3586 filtered_nodes = self.filter_by_zone(filtered_nodes)
3587+ filtered_nodes = self.filter_by_pool(filtered_nodes)
3588 filtered_nodes = self.filter_by_subnets(filtered_nodes)
3589 filtered_nodes = self.filter_by_vlans(filtered_nodes)
3590 filtered_nodes = self.filter_by_fabrics(filtered_nodes)
3591@@ -881,6 +914,18 @@ class AcquireNodeForm(RenamableFieldsForm):
3592 filtered_nodes = filtered_nodes.exclude(zone__in=not_in_zones)
3593 return filtered_nodes
3594
3595+ def filter_by_pool(self, filtered_nodes):
3596+ pool_name = self.cleaned_data.get(self.get_field_name('pool'))
3597+ if pool_name:
3598+ pool = ResourcePool.objects.get(name=pool_name)
3599+ filtered_nodes = filtered_nodes.filter(pool=pool)
3600+ not_in_pool = self.cleaned_data.get(self.get_field_name('not_in_pool'))
3601+ if not_in_pool:
3602+ pools_to_exclude = ResourcePool.objects.filter(
3603+ name__in=not_in_pool)
3604+ filtered_nodes = filtered_nodes.exclude(pool__in=pools_to_exclude)
3605+ return filtered_nodes
3606+
3607 def filter_by_tags(self, filtered_nodes):
3608 tags = self.cleaned_data.get(self.get_field_name('tags'))
3609 if tags:
3610diff --git a/src/maasserver/static/css/build.css b/src/maasserver/static/css/build.css
3611index 49c4871..c971c91 100644
3612--- a/src/maasserver/static/css/build.css
3613+++ b/src/maasserver/static/css/build.css
3614@@ -1 +1 @@
3615-button,.p-button,.p-button--neutral,.p-button--brand,.p-button--positive,.p-button--negative,.p-button--base{transition-duration:0.165s;transition-property:background-color;transition-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);border-radius:.125rem;border-style:solid;border-width:1px;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-size:1rem;font-weight:300;line-height:1rem;outline:none;padding:.75rem 1.5rem;text-align:center;text-decoration:none;width:100%}button:focus,.p-button:focus,.p-button--neutral:focus,.p-button--brand:focus,.p-button--positive:focus,.p-button--negative:focus,.p-button--base:focus{outline:1px solid #19b6ee;outline-offset:2px}@media (max-width: 459px){button+button,.p-button+button,.p-button--neutral+button,.p-button--brand+button,.p-button--positive+button,.p-button--negative+button,.p-button--base+button,button+.p-button,.p-button+.p-button,.p-button--neutral+.p-button,.p-button--brand+.p-button,.p-button--positive+.p-button,.p-button--negative+.p-button,.p-button--base+.p-button,button+.p-button--neutral,.p-button+.p-button--neutral,.p-button--neutral+.p-button--neutral,.p-button--brand+.p-button--neutral,.p-button--positive+.p-button--neutral,.p-button--negative+.p-button--neutral,.p-button--base+.p-button--neutral,button+.p-button--brand,.p-button+.p-button--brand,.p-button--neutral+.p-button--brand,.p-button--brand+.p-button--brand,.p-button--positive+.p-button--brand,.p-button--negative+.p-button--brand,.p-button--base+.p-button--brand,button+.p-button--positive,.p-button+.p-button--positive,.p-button--neutral+.p-button--positive,.p-button--brand+.p-button--positive,.p-button--positive+.p-button--positive,.p-button--negative+.p-button--positive,.p-button--base+.p-button--positive,button+.p-button--negative,.p-button+.p-button--negative,.p-button--neutral+.p-button--negative,.p-button--brand+.p-button--negative,.p-button--positive+.p-button--negative,.p-button--negative+.p-button--negative,.p-button--base+.p-button--negative,button+.p-button--base,.p-button+.p-button--base,.p-button--neutral+.p-button--base,.p-button--brand+.p-button--base,.p-button--positive+.p-button--base,.p-button--negative+.p-button--base,.p-button--base+.p-button--base{margin-top:1rem}}@media (min-width: 460px){button+button,.p-button+button,.p-button--neutral+button,.p-button--brand+button,.p-button--positive+button,.p-button--negative+button,.p-button--base+button,button+.p-button,.p-button+.p-button,.p-button--neutral+.p-button,.p-button--brand+.p-button,.p-button--positive+.p-button,.p-button--negative+.p-button,.p-button--base+.p-button,button+.p-button--neutral,.p-button+.p-button--neutral,.p-button--neutral+.p-button--neutral,.p-button--brand+.p-button--neutral,.p-button--positive+.p-button--neutral,.p-button--negative+.p-button--neutral,.p-button--base+.p-button--neutral,button+.p-button--brand,.p-button+.p-button--brand,.p-button--neutral+.p-button--brand,.p-button--brand+.p-button--brand,.p-button--positive+.p-button--brand,.p-button--negative+.p-button--brand,.p-button--base+.p-button--brand,button+.p-button--positive,.p-button+.p-button--positive,.p-button--neutral+.p-button--positive,.p-button--brand+.p-button--positive,.p-button--positive+.p-button--positive,.p-button--negative+.p-button--positive,.p-button--base+.p-button--positive,button+.p-button--negative,.p-button+.p-button--negative,.p-button--neutral+.p-button--negative,.p-button--brand+.p-button--negative,.p-button--positive+.p-button--negative,.p-button--negative+.p-button--negative,.p-button--base+.p-button--negative,button+.p-button--base,.p-button+.p-button--base,.p-button--neutral+.p-button--base,.p-button--brand+.p-button--base,.p-button--positive+.p-button--base,.p-button--negative+.p-button--base,.p-button--base+.p-button--base{margin-left:1rem}}@media only screen and (min-width: 460px){button,.p-button,.p-button--neutral,.p-button--brand,.p-button--positive,.p-button--negative,.p-button--base{width:auto}}button:active,.p-button:active,.p-button--neutral:active,.p-button--brand:active,.p-button--positive:active,.p-button--negative:active,.p-button--base:active,button:focus,.p-button:focus,.p-button--neutral:focus,.p-button--brand:focus,.p-button--positive:focus,.p-button--negative:focus,.p-button--base:focus,button:hover,.p-button:hover,.p-button--neutral:hover,.p-button--brand:hover,.p-button--positive:hover,.p-button--negative:hover,.p-button--base:hover{text-decoration:none}button:disabled,.p-button:disabled,.p-button--neutral:disabled,.p-button--brand:disabled,.p-button--positive:disabled,.p-button--negative:disabled,.p-button--base:disabled,button.is--disabled,.is--disabled.p-button,.is--disabled.p-button--neutral,.is--disabled.p-button--brand,.is--disabled.p-button--positive,.is--disabled.p-button--negative,.is--disabled.p-button--base{cursor:not-allowed;opacity:.5}.p-card--highlighted,.p-contextual-menu__dropdown,.p-modal__dialog,.p-tooltip__message,.p-tabs,.p-card,.p-card--overlay{background:#fff;border-radius:2px;color:#111;padding:1.25rem}.p-card--highlighted .p-card__header,.p-contextual-menu__dropdown .p-card__header,.p-modal__dialog .p-card__header,.p-tooltip__message .p-card__header,.p-tabs .p-card__header,.p-card .p-card__header,.p-card--overlay .p-card__header{border-bottom:1px solid #cdcdcd;margin-bottom:.75rem;padding-bottom:.75rem}.p-card--highlighted .p-card__header>.p-link--soft,.p-contextual-menu__dropdown .p-card__header>.p-link--soft,.p-modal__dialog .p-card__header>.p-link--soft,.p-tooltip__message .p-card__header>.p-link--soft,.p-tabs .p-card__header>.p-link--soft,.p-card .p-card__header>.p-link--soft,.p-card--overlay .p-card__header>.p-link--soft{display:inline-block;overflow:auto}.p-card--highlighted .p-card__header img,.p-contextual-menu__dropdown .p-card__header img,.p-modal__dialog .p-card__header img,.p-tooltip__message .p-card__header img,.p-tabs .p-card__header img,.p-card .p-card__header img,.p-card--overlay .p-card__header img{max-height:2rem}.p-card--highlighted .p-card__title,.p-contextual-menu__dropdown .p-card__title,.p-modal__dialog .p-card__title,.p-tooltip__message .p-card__title,.p-tabs .p-card__title,.p-card .p-card__title,.p-card--overlay .p-card__title{margin-top:0}.p-card--highlighted,.p-contextual-menu__dropdown,.p-modal__dialog,.p-tooltip__message,.p-tabs{box-shadow:0 1px 5px 1px rgba(17,17,17,0.2)}.p-breadcrumbs::after,.p-matrix__item::after,.p-navigation::after,.p-navigation--sidebar::after,.p-list::after,.p-stepped-list--detailed::after,.p-inline-images::after,.u-clearfix::after{clear:both;content:'';display:block}html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:bold}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}blockquote{border-left:2px solid #666}blockquote>cite{display:block}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}button{background-color:#fff;border-color:#cdcdcd;color:#111;line-height:1rem}button:visited{color:#111}button:active,button:hover{background-color:#f7f7f7;border-color:#cdcdcd}button:disabled:active,button:disabled:hover,button.is--disabled:active,button.is--disabled:hover{background-color:transparent;border-color:#cdcdcd}button .p-link--external{color:currentColor}label{cursor:pointer;display:block;font-size:1rem;line-height:1.5}label.has-error{color:#c7162b}label.has-caution{color:#f99b11}label.has-warning{color:#f99b11}label.has-success{color:#0e8420}label.has-information{color:#335280}[type='text'],[type='date'],[type='datetime'],[type='datatime-local'],[type='month'],[type='time'],[type='week'],[type='color'],[type='number'],[type='search'],[type='password'],[type='email'],[type='url'],[type='tel']{appearance:textfield;background-color:#fff;border:1px solid #cdcdcd;border-radius:.125rem;box-shadow:inset 0 1px 2px rgba(0,0,0,0.12);color:#111;font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-size:1rem;font-weight:300;outline:none;padding:.5rem .75rem;vertical-align:baseline;width:100%}[type='text']:focus,[type='date']:focus,[type='datetime']:focus,[type='datatime-local']:focus,[type='month']:focus,[type='time']:focus,[type='week']:focus,[type='color']:focus,[type='number']:focus,[type='search']:focus,[type='password']:focus,[type='email']:focus,[type='url']:focus,[type='tel']:focus{outline:1px solid #19b6ee;outline-offset:2px}[type='text']:active,[type='date']:active,[type='datetime']:active,[type='datatime-local']:active,[type='month']:active,[type='time']:active,[type='week']:active,[type='color']:active,[type='number']:active,[type='search']:active,[type='password']:active,[type='email']:active,[type='url']:active,[type='tel']:active{border-color:#666;color:#111;outline:none}[type='text']::placeholder,[type='date']::placeholder,[type='datetime']::placeholder,[type='datatime-local']::placeholder,[type='month']::placeholder,[type='time']::placeholder,[type='week']::placeholder,[type='color']::placeholder,[type='number']::placeholder,[type='search']::placeholder,[type='password']::placeholder,[type='email']::placeholder,[type='url']::placeholder,[type='tel']::placeholder{color:#666;opacity:1}[type='text'][disabled],[type='text'][disabled='disabled'],[type='date'][disabled],[type='date'][disabled='disabled'],[type='datetime'][disabled],[type='datetime'][disabled='disabled'],[type='datatime-local'][disabled],[type='datatime-local'][disabled='disabled'],[type='month'][disabled],[type='month'][disabled='disabled'],[type='time'][disabled],[type='time'][disabled='disabled'],[type='week'][disabled],[type='week'][disabled='disabled'],[type='color'][disabled],[type='color'][disabled='disabled'],[type='number'][disabled],[type='number'][disabled='disabled'],[type='search'][disabled],[type='search'][disabled='disabled'],[type='password'][disabled],[type='password'][disabled='disabled'],[type='email'][disabled],[type='email'][disabled='disabled'],[type='url'][disabled],[type='url'][disabled='disabled'],[type='tel'][disabled],[type='tel'][disabled='disabled']{cursor:not-allowed;opacity:.5}[type='text'][readonly],[type='text'][readonly='readonly'],[type='date'][readonly],[type='date'][readonly='readonly'],[type='datetime'][readonly],[type='datetime'][readonly='readonly'],[type='datatime-local'][readonly],[type='datatime-local'][readonly='readonly'],[type='month'][readonly],[type='month'][readonly='readonly'],[type='time'][readonly],[type='time'][readonly='readonly'],[type='week'][readonly],[type='week'][readonly='readonly'],[type='color'][readonly],[type='color'][readonly='readonly'],[type='number'][readonly],[type='number'][readonly='readonly'],[type='search'][readonly],[type='search'][readonly='readonly'],[type='password'][readonly],[type='password'][readonly='readonly'],[type='email'][readonly],[type='email'][readonly='readonly'],[type='url'][readonly],[type='url'][readonly='readonly'],[type='tel'][readonly],[type='tel'][readonly='readonly']{color:#cdcdcd;cursor:default}[type='text'][readonly]:hover,[type='text'][readonly]:active,[type='text'][readonly='readonly']:hover,[type='text'][readonly='readonly']:active,[type='date'][readonly]:hover,[type='date'][readonly]:active,[type='date'][readonly='readonly']:hover,[type='date'][readonly='readonly']:active,[type='datetime'][readonly]:hover,[type='datetime'][readonly]:active,[type='datetime'][readonly='readonly']:hover,[type='datetime'][readonly='readonly']:active,[type='datatime-local'][readonly]:hover,[type='datatime-local'][readonly]:active,[type='datatime-local'][readonly='readonly']:hover,[type='datatime-local'][readonly='readonly']:active,[type='month'][readonly]:hover,[type='month'][readonly]:active,[type='month'][readonly='readonly']:hover,[type='month'][readonly='readonly']:active,[type='time'][readonly]:hover,[type='time'][readonly]:active,[type='time'][readonly='readonly']:hover,[type='time'][readonly='readonly']:active,[type='week'][readonly]:hover,[type='week'][readonly]:active,[type='week'][readonly='readonly']:hover,[type='week'][readonly='readonly']:active,[type='color'][readonly]:hover,[type='color'][readonly]:active,[type='color'][readonly='readonly']:hover,[type='color'][readonly='readonly']:active,[type='number'][readonly]:hover,[type='number'][readonly]:active,[type='number'][readonly='readonly']:hover,[type='number'][readonly='readonly']:active,[type='search'][readonly]:hover,[type='search'][readonly]:active,[type='search'][readonly='readonly']:hover,[type='search'][readonly='readonly']:active,[type='password'][readonly]:hover,[type='password'][readonly]:active,[type='password'][readonly='readonly']:hover,[type='password'][readonly='readonly']:active,[type='email'][readonly]:hover,[type='email'][readonly]:active,[type='email'][readonly='readonly']:hover,[type='email'][readonly='readonly']:active,[type='url'][readonly]:hover,[type='url'][readonly]:active,[type='url'][readonly='readonly']:hover,[type='url'][readonly='readonly']:active,[type='tel'][readonly]:hover,[type='tel'][readonly]:active,[type='tel'][readonly='readonly']:hover,[type='tel'][readonly='readonly']:active{border-color:#666;outline:none}[type='text'].has-error,[type='date'].has-error,[type='datetime'].has-error,[type='datatime-local'].has-error,[type='month'].has-error,[type='time'].has-error,[type='week'].has-error,[type='color'].has-error,[type='number'].has-error,[type='search'].has-error,[type='password'].has-error,[type='email'].has-error,[type='url'].has-error,[type='tel'].has-error{border:1px solid #c7162b}[type='text'].has-caution,[type='date'].has-caution,[type='datetime'].has-caution,[type='datatime-local'].has-caution,[type='month'].has-caution,[type='time'].has-caution,[type='week'].has-caution,[type='color'].has-caution,[type='number'].has-caution,[type='search'].has-caution,[type='password'].has-caution,[type='email'].has-caution,[type='url'].has-caution,[type='tel'].has-caution{border:1px solid #f99b11}[type='text'].has-warning,[type='date'].has-warning,[type='datetime'].has-warning,[type='datatime-local'].has-warning,[type='month'].has-warning,[type='time'].has-warning,[type='week'].has-warning,[type='color'].has-warning,[type='number'].has-warning,[type='search'].has-warning,[type='password'].has-warning,[type='email'].has-warning,[type='url'].has-warning,[type='tel'].has-warning{border:1px solid #f99b11}[type='text'].has-success,[type='date'].has-success,[type='datetime'].has-success,[type='datatime-local'].has-success,[type='month'].has-success,[type='time'].has-success,[type='week'].has-success,[type='color'].has-success,[type='number'].has-success,[type='search'].has-success,[type='password'].has-success,[type='email'].has-success,[type='url'].has-success,[type='tel'].has-success{border:1px solid #0e8420}[type='text'].has-information,[type='date'].has-information,[type='datetime'].has-information,[type='datatime-local'].has-information,[type='month'].has-information,[type='time'].has-information,[type='week'].has-information,[type='color'].has-information,[type='number'].has-information,[type='search'].has-information,[type='password'].has-information,[type='email'].has-information,[type='url'].has-information,[type='tel'].has-information{border:1px solid #335280}[type='file']{width:100%}[type='file']:focus{outline:1px solid #19b6ee;outline-offset:2px}[type='reset']{display:none}[type='search']{-moz-appearance:none;-webkit-appearance:none;appearance:none;border-radius:0}[type='search']::-webkit-search-results-decoration{display:none}[type='search']::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button;cursor:pointer}[type='checkbox'],[type='radio']{float:left;height:1.5rem;margin-bottom:0;margin-right:.75rem;outline:none;padding:0;vertical-align:middle;width:auto;min-height:1.5rem}[type='checkbox']:focus,[type='radio']:focus{outline:1px solid #19b6ee;outline-offset:0}[type='checkbox'][disabled]+label,[type='checkbox'][disabled='disabled']+label,[type='radio'][disabled]+label,[type='radio'][disabled='disabled']+label{cursor:not-allowed;opacity:.5}[type='checkbox']+label,[type='radio']+label{vertical-align:middle;width:100%}[type='submit']{background-color:#0e8420;color:#fff;padding:.75rem 1.5rem}[type='submit']:hover{background-color:#04280a;cursor:pointer}select{appearance:textfield;background-color:#fff;border:1px solid #cdcdcd;border-radius:.125rem;box-shadow:inset 0 1px 2px rgba(0,0,0,0.12);color:#111;font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-size:1rem;font-weight:300;outline:none;padding:.5rem .75rem;vertical-align:baseline;width:100%;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjRweCIgd2lkdGg9IjEwcHgiIHZlcnNpb249IjEuMSIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCAxMCA0Ij4gPHRpdGxlPmFjY29yZGlvbi1vcGVuPC90aXRsZT4gPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+IDxnIGlkPSJmaWx0ZXItcGFuZWwiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2tldGNoOnR5cGU9Ik1TUGFnZSIgZmlsbD0ibm9uZSI+ICA8ZyBpZD0iYWNjb3JkaW9uLW9wZW4iIGZpbGw9IiM4ODgiIHNrZXRjaDp0eXBlPSJNU0FydGJvYXJkR3JvdXAiPiAgIDxwYXRoIGlkPSJjaGV2cm9uIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIiBkPSJtNi4zNjEgMC44NjIzYzAuNTE4IDAuMzY1IDEuMDUyIDAuNzc4MSAxLjYwMSAxLjIzOCAwLjU0OSAwLjQ1ODUgMS4wODkgMC45NTE4IDEuNjIxIDEuNDc3MiAwLjE0MiAwLjE0MDQgMC4yODEgMC4yODIxIDAuNDE1IDAuNDIyNWgtMS41NDFjLTAuMzA0LTAuMjg4OC0wLjYyLTAuNTcwOS0wLjk0Ny0wLjg0NjMtMC4xMzc5LTAuMTE2MS0wLjI3NjgtMC4yMjk3LTAuNDE2OC0wLjM0MDgtMC4xNjM2LTAuMTI5Ny0wLjMyODYtMC4yNTU4LTAuNDk1NC0wLjM3ODMtMC4wODUyLTAuMDYyNS0wLjE3MDgtMC4xMjQxLTAuMjU2OC0wLjE4NDYtMC4zOTctMC4yODIxLTAuOTM1LTAuNjI1Ny0xLjMxNS0wLjg0NzZoLTAuMDU0Yy0wLjM4IDAuMjIxOS0wLjkxOCAwLjU2NTUtMS4zMTUgMC44NDc2LTAuMzk4IDAuMjgwNy0wLjc4OCAwLjU4MjktMS4xNjkgMC45MDM3LTAuMzI3IDAuMjc1NC0wLjY0MyAwLjU1NzUtMC45NDcgMC44NDYzaC0xLjU0MWMwLjEzNS0wLjE0MDQgMC4yNzMtMC4yODIxIDAuNDE1LTAuNDIyNSAwLjUzMi0wLjUyNTQgMS4wNzItMS4wMTg3IDEuNjIxLTEuNDc3MiAwLjU1LTAuNDU5OSAxLjA4My0wLjg3MyAxLjYwMS0xLjIzOCAwLjUxOS0wLjM2NDk3IDAuOTczLTAuNjUyNDEgMS4zNjItMC44NjIzIDAuMzkgMC4yMDk4OSAwLjg0NCAwLjQ5NzMzIDEuMzYyIDAuODYyM3oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuOTk5IDIpIHJvdGF0ZSgxODApIHRyYW5zbGF0ZSgtNC45OTkgLTIpIi8+ICA8L2c+IDwvZz48L3N2Zz4=") no-repeat;background-position:right 1.25rem center;color:#111;min-height:24px;text-indent:.01px;text-overflow:''}select:focus{outline:1px solid #19b6ee;outline-offset:2px}select:active{border-color:#666;color:#111;outline:none}select::placeholder{color:#666;opacity:1}select[disabled],select[disabled='disabled']{cursor:not-allowed;opacity:.5}select[readonly],select[readonly='readonly']{color:#cdcdcd;cursor:default}select[readonly]:hover,select[readonly]:active,select[readonly='readonly']:hover,select[readonly='readonly']:active{border-color:#666;outline:none}select.has-error{border:1px solid #c7162b}select.has-caution{border:1px solid #f99b11}select.has-warning{border:1px solid #f99b11}select.has-success{border:1px solid #0e8420}select.has-information{border:1px solid #335280}select:hover{cursor:pointer}select[multiple],select[size]{background-image:none;height:auto;padding:.35rem .8125rem}select[multiple] option,select[size] option{font-weight:300;margin:.5rem 0}textarea{appearance:textfield;background-color:#fff;border:1px solid #cdcdcd;border-radius:.125rem;box-shadow:inset 0 1px 2px rgba(0,0,0,0.12);color:#111;font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-size:1rem;font-weight:300;outline:none;padding:.5rem .75rem;vertical-align:baseline;width:100%;margin-top:.5rem;overflow:auto;vertical-align:top}textarea:focus{outline:1px solid #19b6ee;outline-offset:2px}textarea:active{border-color:#666;color:#111;outline:none}textarea::placeholder{color:#666;opacity:1}textarea[disabled],textarea[disabled='disabled']{cursor:not-allowed;opacity:.5}textarea[readonly],textarea[readonly='readonly']{color:#cdcdcd;cursor:default}textarea[readonly]:hover,textarea[readonly]:active,textarea[readonly='readonly']:hover,textarea[readonly='readonly']:active{border-color:#666;outline:none}textarea.has-error{border:1px solid #c7162b}textarea.has-caution{border:1px solid #f99b11}textarea.has-warning{border:1px solid #f99b11}textarea.has-success{border:1px solid #0e8420}textarea.has-information{border:1px solid #335280}fieldset{background-color:#f7f7f7;border-radius:.125rem;color:#111;padding:.9375rem 1.25rem}fieldset+fieldset{margin-top:1.25rem}@media screen and (min-width: 768px){fieldset+fieldset{margin-top:1.75rem}}@media screen and (min-width: 1030px){fieldset+fieldset{margin-top:2rem}}fieldset h3{border-bottom:1px dotted #666;padding-bottom:.625rem}form+*{margin-top:.5rem}form *+input,form *+select{margin-top:.75rem}form *+label{margin-top:1.25rem}form *+input[type="checkbox"],form *+input[type="radio"],form *+button,form *+input[type="submit"]{margin-top:1rem}form *+input[type="checkbox"]+label,form *+input[type="radio"]+label,form *+button+label,form *+input[type="submit"]+label{margin-top:1rem}code,samp,kbd{font-family:"Ubuntu Mono", Consolas, Monaco, Courier, monospace;font-weight:300;text-align:left}pre,code{direction:ltr;hyphens:none;line-height:1.5;margin-bottom:0;margin-top:0;tab-size:4;white-space:pre-wrap;word-spacing:normal;word-wrap:break-word}pre+pre,code+pre,pre+code,code+code{margin-top:1.25rem}@media screen and (min-width: 768px){pre+pre,code+pre,pre+code,code+code{margin-top:1.75rem}}@media screen and (min-width: 1030px){pre+pre,code+pre,pre+code,code+code{margin-top:2rem}}pre{background-color:#f7f7f7;border:1px solid #cdcdcd;border-radius:2px;color:#111;overflow:auto;padding:1rem;text-align:left;text-shadow:none}a{color:#007aa6;text-decoration:none}a:focus{outline:thin dotted #cdcdcd}a:hover{cursor:pointer;text-decoration:underline}a:visited{color:#005573}ol,ul{margin-bottom:0;margin-left:1rem;padding-left:1rem}ol ul,ol ol,ul ul,ul ol{margin-bottom:0}nav ol,nav ul{list-style:none;list-style-image:none}ol li+li,ul li+li{margin-top:.5rem}ol li>ul,ol li>ol,ul li>ul,ul li>ol{margin-top:.5rem}li{margin:0 0 .5rem;padding:0}dl{margin-bottom:0}dt{border-top:1px dotted #666;font-size:1rem;font-weight:400;margin-top:1rem;padding-top:1rem}dt:first-of-type{border-top:0}dd{margin-left:1rem;margin-top:.5rem}hr{border:0;border-top:1px solid #cdcdcd;height:0;margin:1rem 0}img{border:0;border-radius:2px;height:auto;max-width:100%}svg:not(:root){overflow:hidden}figure{margin-bottom:0;margin-left:0;width:100%}*+figure{margin-top:1.25rem}@media screen and (min-width: 768px){*+figure{margin-top:1.75rem}}@media screen and (min-width: 1030px){*+figure{margin-top:2rem}}figure caption,figure figcaption{display:block;font-style:italic;margin-top:.5rem;width:100%}object,iframe,embed,canvas,video,audio{display:block;margin:0 auto 20px;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}table{border:0;border-collapse:collapse;overflow-x:auto;width:100%}th,td{padding:.75rem 0}td{font-weight:300;text-align:left;vertical-align:middle}thead th{border-collapse:separate;border-spacing:0 .5rem;font-weight:400;text-align:left}thead tr{border-bottom:1px solid #666}tbody tr{border-bottom:1px solid #cdcdcd}tbody tr:last-child{border-bottom:0}tbody th{font-weight:400;text-align:left}@font-face{font-family:'Ubuntu';font-style:normal;font-weight:300;src:url("/MAAS/static/assets/fonts/e8c07df6-Ubuntu-L_W.woff2") format("woff2"),url("/MAAS/static/assets/fonts/8619add2-Ubuntu-L_W.woff") format("woff")}@font-face{font-family:'Ubuntu';font-style:normal;font-weight:400;src:url("/MAAS/static/assets/fonts/fff37993-Ubuntu-R_W.woff2") format("woff2"),url("/MAAS/static/assets/fonts/7af50859-Ubuntu-R_W.woff") format("woff")}@font-face{font-family:'Ubuntu';font-style:italic;font-weight:300;src:url("/MAAS/static/assets/fonts/f8097dea-Ubuntu-LI_W.woff2") format("woff2"),url("/MAAS/static/assets/fonts/8be89d02-Ubuntu-LI_W.woff") format("woff")}@font-face{font-family:'Ubuntu';font-style:italic;font-weight:400;src:url("/MAAS/static/assets/fonts/fca66073-ubuntu-ri-webfont.woff2") format("woff2"),url("/MAAS/static/assets/fonts/f0898c72-ubuntu-ri-webfont.woff") format("woff")}@font-face{font-family:'Ubuntu';font-style:normal;font-weight:100;src:url("/MAAS/static/assets/fonts/7f100985-Ubuntu-Th_W.woff2") format("woff2"),url("/MAAS/static/assets/fonts/502cc3a1-Ubuntu-Th_W.woff") format("woff")}@font-face{font-family:'Ubuntu Mono';font-style:normal;font-weight:300;src:url("/MAAS/static/assets/fonts/fdd692b9-UbuntuMono-R_W.woff2") format("woff2"),url("/MAAS/static/assets/fonts/85edb898-UbuntuMono-R_W.woff") format("woff")}@font-face{font-family:'Ubuntu Mono';font-style:normal;font-weight:400;src:url("/MAAS/static/assets/fonts/fdd692b9-UbuntuMono-R_W.woff2") format("woff2"),url("/MAAS/static/assets/fonts/85edb898-UbuntuMono-R_W.woff") format("woff")}*{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:subpixel-antialiased}html{font-size:16px}body{color:#111;font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;font-weight:300;line-height:1.5}h1,h2,h3,h4,h5,h6,[class^="p-heading--"]{font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;margin:0}h1+*{margin-top:1rem}@media screen and (min-width: 1030px){h1+*{margin-top:1.5rem}}h5+*,h6+*{margin-top:.5rem}@media screen and (min-width: 1030px){h5+*,h6+*{margin-top:.75rem}}p{max-width:35em;margin-bottom:0}.u-align--center p{margin-left:auto;margin-right:auto}.u-align--left p{margin-right:auto}.u-align--right p{margin-left:auto}p+p{margin-top:1rem}@media screen and (min-width: 1030px){p+p{margin-top:1.5rem}}button,input,select,textarea{font-family:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}h1{max-width:20em;font-size:2rem;font-weight:300;line-height:1.3125}.u-align--center h1{margin-left:auto;margin-right:auto}.u-align--left h1{margin-right:auto}.u-align--right h1{margin-left:auto}@media only screen and (min-width: 1030px){h1{font-size:3rem;line-height:1.25}}h2{max-width:20em;font-size:1.75rem;font-weight:300;line-height:1.2857}.u-align--center h2{margin-left:auto;margin-right:auto}.u-align--left h2{margin-right:auto}.u-align--right h2{margin-left:auto}@media only screen and (min-width: 1030px){h2{font-size:2.25rem;line-height:1.333}}h3{max-width:25em;font-size:1.5rem;font-weight:300;line-height:1.333}.u-align--center h3{margin-left:auto;margin-right:auto}.u-align--left h3{margin-right:auto}.u-align--right h3{margin-left:auto}@media only screen and (min-width: 1030px){h3{font-size:1.75rem;line-height:1.287}}h4{max-width:25em;font-size:1.375rem;font-weight:300;line-height:1.2727}.u-align--center h4{margin-left:auto;margin-right:auto}.u-align--left h4{margin-right:auto}.u-align--right h4{margin-left:auto}@media only screen and (min-width: 1030px){h4{font-size:1.5rem;line-height:1.333}}h5{max-width:35em;font-size:1.125rem;font-weight:300;line-height:1.333}.u-align--center h5{margin-left:auto;margin-right:auto}.u-align--left h5{margin-right:auto}.u-align--right h5{margin-left:auto}@media only screen and (min-width: 1030px){h5{font-size:1.25rem;line-height:1.4}}h6{max-width:35em;font-size:1rem;font-weight:400;line-height:1.5}.u-align--center h6{margin-left:auto;margin-right:auto}.u-align--left h6{margin-right:auto}.u-align--right h6{margin-left:auto}li{margin-bottom:0;margin-top:0;padding-bottom:0}li>ul,li>ol{padding-top:0}li>ul>li:last-of-type,li>ol>li:last-of-type{padding-bottom:0}blockquote{margin-bottom:0;margin-left:0;padding-left:1.5rem}blockquote>p{font-size:1rem;font-style:italic;margin-top:.75rem}blockquote>cite{font-size:1rem;font-style:normal;margin-top:.75rem}strong{font-weight:400}small{font-size:.875rem}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}*+*{margin-top:1.25rem}@media screen and (min-width: 768px){*+*{margin-top:1.75rem}}@media screen and (min-width: 1030px){*+*{margin-top:2rem}}*>p:first-child{margin-top:0}*+h1,*+.p-heading--one{margin-top:2rem}@media screen and (min-width: 1030px){*+h1,*+.p-heading--one{margin-top:3.75rem}}*+h2,*+.p-heading--two,*+h3,*+.p-heading--three,*+h4,*+.p-heading--four,*+h5,*+.p-heading--five,*+h6,*+.p-heading--six{margin-top:1.5rem}@media screen and (min-width: 1030px){*+h2,*+.p-heading--two,*+h3,*+.p-heading--three,*+h4,*+.p-heading--four,*+h5,*+.p-heading--five,*+h6,*+.p-heading--six{margin-top:2rem}}h2+*,h2+.row,.p-heading--two+*,.p-heading--two+.row,h3+*,h3+.row,.p-heading--three+*,.p-heading--three+.row,h4+*,h4+.row,.p-heading--four+*,.p-heading--four+.row{margin-top:.5rem}@media screen and (min-width: 1030px){h2+*,h2+.row,.p-heading--two+*,.p-heading--two+.row,h3+*,h3+.row,.p-heading--three+*,.p-heading--three+.row,h4+*,h4+.row,.p-heading--four+*,.p-heading--four+.row{margin-top:1rem}}.row ~ .row{margin-top:1.25rem}@media screen and (min-width: 768px){.row ~ .row{margin-top:1.75rem}}@media screen and (min-width: 1030px){.row ~ .row{margin-top:2rem}}.p-accordion{border-bottom:1px solid #cdcdcd}.p-accordion__list{list-style-type:none;margin:0;padding:0}.p-accordion__group{border-top:1px solid #cdcdcd;margin:0}.p-accordion__tab{background-position:top 1.25rem right 1rem;background-repeat:no-repeat;border:0;padding:1rem 2.5rem 1rem .75rem;text-align:left;transition-duration:0s;width:100%;z-index:2}.p-accordion__tab[aria-expanded='true']{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 16 16'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a'/%3E%3Cpath stroke='%23888' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='%23888' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}.p-accordion__tab[aria-expanded='false']{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='15' width='15' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 16 16'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h16v16H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a'/%3E%3Cpath stroke='%23888' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='%23888' d='M7 4h1v7H7z'/%3E%3Cpath fill='%23888' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}.p-accordion__tab:focus{outline:1px solid #007aa6;outline-offset:2px}.p-accordion__panel{border-top:1px solid #cdcdcd;margin:0;padding:.75rem .75rem .75rem 1.5rem}.p-accordion__panel[aria-hidden='true']{display:none}.p-aside{border-top:1px solid #cdcdcd;font-size:.875rem;padding:0 1.5rem}@media (min-width: 768px){.p-aside{border-left:1px solid #cdcdcd;border-top:0;padding:0 1rem}}.p-aside__header{color:#666;font-size:1rem;line-height:1.5;margin-bottom:.5rem;text-transform:uppercase}.p-aside__section{padding:1.5rem 0}.p-aside__section:not(:last-child){border-bottom:1px dotted #cdcdcd}.p-aside__nav{list-style:none;margin:0;padding:0}.p-aside__nav .p-aside__link{border-bottom:0;color:#111;margin-bottom:.5rem}.p-aside__nav .p-aside__link:visited{color:#111}.p-aside__nav .p-aside__link:hover{color:#007aa6}.p-aside__nav .p-aside__link.is-active{font-weight:400;padding-left:.5rem}.p-breadcrumbs{list-style:none;margin:0;padding:0;width:100%}.p-breadcrumbs__item{float:left;margin:0 0 .25rem .25rem;position:relative}.p-breadcrumbs__item:not(:first-of-type){text-indent:1rem}.p-breadcrumbs__item:not(:first-of-type)::before{content:'\203A';left:-.75rem;position:absolute;top:0}.p-button{background-color:#fff;border-color:#cdcdcd;color:#111}.p-button:visited{color:#111}.p-button:active,.p-button:hover{background-color:#f7f7f7;border-color:#cdcdcd}.p-button:disabled:active,.p-button:disabled:hover,.p-button.is--disabled:active,.p-button.is--disabled:hover{background-color:#fff;border-color:#fff}.p-button .p-link--external{color:currentColor}.p-button--neutral{background-color:#fff;border-color:#cdcdcd;color:#111}.p-button--neutral:visited{color:#111}.p-button--neutral:active,.p-button--neutral:hover{background-color:#f7f7f7;border-color:#cdcdcd}.p-button--neutral:disabled:active,.p-button--neutral:disabled:hover,.p-button--neutral.is--disabled:active,.p-button--neutral.is--disabled:hover{background-color:transparent;border-color:#cdcdcd}.p-button--neutral .p-link--external{color:currentColor}.p-button--brand{background-color:#e95420;border-color:#e95420;color:#fff}.p-button--brand:visited{color:#fff}.p-button--brand:active,.p-button--brand:hover{background-color:#c34113;border-color:#c34113}.p-button--brand:disabled:active,.p-button--brand:disabled:hover,.p-button--brand.is--disabled:active,.p-button--brand.is--disabled:hover{background-color:#e95420;border-color:#e95420}.p-button--brand .p-link--external{color:currentColor}.p-button--positive{background-color:#0e8420;border-color:#0e8420;color:#fff}.p-button--positive:visited{color:#fff}.p-button--positive:active,.p-button--positive:hover{background-color:#095615;border-color:#095615}.p-button--positive:disabled:active,.p-button--positive:disabled:hover,.p-button--positive.is--disabled:active,.p-button--positive.is--disabled:hover{background-color:#0e8420;border-color:#0e8420}.p-button--positive .p-link--external{color:currentColor}.p-button--negative{background-color:#c7162b;border-color:#c7162b;color:#fff}.p-button--negative:visited{color:#fff}.p-button--negative:active,.p-button--negative:hover{background-color:#991121;border-color:#991121}.p-button--negative:disabled:active,.p-button--negative:disabled:hover,.p-button--negative.is--disabled:active,.p-button--negative.is--disabled:hover{background-color:#c7162b;border-color:#c7162b}.p-button--negative .p-link--external{color:currentColor}.p-button--base{background-color:transparent;border-color:transparent;color:#111}.p-button--base:visited{color:#111}.p-button--base:active,.p-button--base:hover{background-color:#f7f7f7;border-color:transparent}.p-button--base:disabled:active,.p-button--base:disabled:hover,.p-button--base.is--disabled:active,.p-button--base.is--disabled:hover{background-color:transparent;border-color:#cdcdcd}.p-button--base .p-link--external{color:currentColor}@media (max-width: 768px){[class^="p-button"].is-inline{margin-top:1.2rem}}@media (min-width: 768px){[class^="p-button"].is-inline{margin-left:.75rem;width:auto}}.p-card{border:1px solid #cdcdcd;margin-bottom:2rem;margin-top:0}.p-card .p-card{margin-top:0}.p-card--overlay{background:rgba(255,255,255,0.85);border-radius:0}.p-code-numbered{background:#fff;color:#111;counter-reset:line-numbering;padding:1rem 0 0;position:relative}.p-code-numbered::before{background-color:#fff;width:4.5rem}.p-code-numbered .code-line{background:#f7f7f7;color:#111;display:block;margin:-1.5rem 0 0 0;padding:.5rem 1rem 0 5.5rem;position:relative}.p-code-numbered .code-line:first-child,.p-code-numbered .code-line:first-child::before{padding-top:1.25rem}.p-code-numbered .code-line:last-child,.p-code-numbered .code-line:last-child::before{padding-bottom:1rem}.p-code-numbered .code-line::before{background:#fff;border-right:1px solid #cdcdcd;color:#666;content:counter(line-numbering);counter-increment:line-numbering;display:inline-block;height:9999px;left:0;margin-right:1rem;max-height:100%;padding:.5rem 1rem 1rem 1rem;pointer-events:none;position:absolute;text-align:right;top:0;user-select:none;width:4.5rem}.p-code-snippet{background-color:#fff;border:1px solid #cdcdcd;border-radius:2px;color:#111;display:flex;overflow:hidden;position:relative;transition:border .2s, background-color .2s;width:100%}.p-code-snippet__input{background-color:transparent;background-image:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" width="16" height="15.999999" viewBox="0 0 16 15.999999"><g><g style="display:inline"><g style="display:inline"><path style="opacity:0.21171169;fill:none;stroke:none" d="M-.0000032.00002047h15.9999936v15.9999936H-.0000032z"/><path style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:%23808080;fill-opacity:1;stroke:none" d="M2.6660124 2.00000047c-1.77777926 0-2.6660156.0013069-2.6660156 2.0683594v8.8652346c0 2.067046.88823634 2.066406 2.6660156 2.066406h10.6679684c1.77778 0 2.666016.00064 2.666016-2.066406v-8.7988284c0-2.1333325-.888236-2.1347656-2.666016-2.1347656H2.6660124zm1.2792969 1.890625h1.1015625v1.1425781c.3388576.0282222.6418942.0778287.9101562.1484375.2682622.0635378.4794546.127873.6347657.1914063l-.2636719 1.046875c-.2047288-.0776578-.4480911-.1520607-.7304688-.2226563-.2753242-.0705955-.5930895-.1054687-.953125-.1054687-.381213 0-.6687661.0716995-.859375.2128906-.1906042.1341333-.2851562.3205247-.2851562.5605469 0 .141191.0275088.2605439.0839844.359375.0564755.0917777.1429083.1762529.2558594.2539062.1129509.0705956.2497361.1422952.4121093.2128906.1623688.0635334.3460569.1305764.5507813.2011719.2894399.1129555.560311.232304.8144531.359375.2612043.1200089.4871256.2661159.6777344.4355469.1906043.1623688.3394192.3561248.4453125.5820312.112951.2259022.1699219.4940697.1699218.8046878 0 .465928-.1441538.868173-.4335937 1.207031s-.7660922.557414-1.4296875.65625v1.324219H3.9453093v-1.292969c-.5082842-.035289-.9225545-.102332-1.2402344-.201172-.3106176-.105893-.5419546-.200441-.6972656-.285156l.359375-1.00586c.2259066.112956.4967733.214868.8144531.306641.3247377.091773.6921094.138672 1.1015625.138672.4871065 0 .8223128-.0717 1.0058594-.212891.1906088-.148248.2871094-.342004.2871094-.582031 0-.1623686-.0395298-.3038192-.1171875-.423828-.0776533-.1200133-.186934-.2265861-.328125-.3183594-.1411911-.0917733-.3101459-.1762485-.5078125-.2539062-.1906044-.0776533-.4037544-.157472-.6367188-.2421875-.2188488-.0776533-.4374056-.1667895-.65625-.265625-.2117866-.0988311-.4055469-.218184-.5820312-.359375-.1694311-.1482489-.3062161-.3245681-.4121094-.5292969-.1058933-.2047244-.1601563-.455451-.1601563-.7519531e-7-.4871065.146107-.9013768.4355469-1.2402344.2894444-.3459154.7339269-.5671801 1.3339844-.6660156v-1.1855469zm4.0546875 8.095703h3.990234v.996094h-3.990234v-.996094z"/></g></g></g></svg>');background-position:8px center;background-repeat:no-repeat;border:0;box-shadow:inset 0 1px 2px 0 rgba(0,0,0,0.12);color:#666;font-family:"Ubuntu Mono", Consolas, Monaco, Courier, monospace;font-size:1em;font-weight:300;padding:8px 8px 8px 32px;width:100%}.p-code-snippet__action{background-color:#f7f7f7;background-image:url('data:image/svg+xml;utf8, <svg width="80" height="87" viewBox="0 0 80 87" xmlns="http://www.w3.org/2000/svg"><g fill="%23666" fill-rule="evenodd"><path d="M52.934 9H69.23c2.36 0 4.23.265 5.805 1 1.574.733 2.834 2.06 3.58 3.738 1.49 3.355 1.33 7.46 1.383 13.067l.002.01v42.37l-.002.013c-.052 5.608.107 9.71-1.384 13.066-.745 1.678-2.005 3.003-3.58 3.737-1.574.735-3.444 1-5.804 1H20.768c-2.36 0-4.228-.265-5.803-1-1.574-.733-2.835-2.058-3.58-3.736-1.232-2.77-1.338-6.05-1.367-10.264h4.016c.082 4.27.29 7.142.89 8.535.36.828.757 1.3 1.678 1.74.92.44 2.385.725 4.484.725h47.828c2.1 0 3.563-.285 4.484-.726.92-.44 1.318-.91 1.677-1.74.717-1.656.873-5.403.925-11.11V26.548c-.052-5.69-.21-9.428-.925-11.082-.36-.828-.756-1.3-1.677-1.742-.92-.44-2.385-.723-4.484-.723H51.226c.908-1.126 1.518-2.5 1.708-4zm-15.87 0c.19 1.5.8 2.874 1.707 4H21.087c-2.1 0-3.563.283-4.484.723-.92.44-1.318.914-1.677 1.743-.715 1.653-.873 5.392-.925 11.08V54h-4V26.806c.052-5.61-.107-9.713 1.384-13.068.746-1.678 2.007-3.005 3.58-3.74C16.54 9.266 18.41 9 20.77 9h16.295z"/><path d="M56.99 9v12.005H33V9h8c0 2.234 1.764 4.002 3.995 4.002 2.232 0 4-1.768 4-4.002h7.996z" fill-rule="nonzero"/><path d="M52.998 7.998c0 4.395-3.606 8-8 8-4.393 0-7.998-3.605-7.998-8S40.605 0 45 0c4.392 0 7.998 3.603 7.998 7.998zm-4 0C49 5.766 47.233 4 45 4c-2.233 0-4 1.766-4 3.998s1.767 4 4 4c2.234 0 4-1.768 4-4z" fill-rule="nonzero"/><path d="M42 36h28v4H42zM42 48h28v4H42zM50 60h20v4H50z"/><path d="M22 50s10.67 5.13 20 12.524h-.002-.01-.003C32.145 70.152 22 75 22 75V50z" fill-rule="nonzero"/><path d="M0 58h22v10H0z"/></g></svg>');background-position:center;background-repeat:no-repeat;background-size:1rem;border-color:transparent;border-left:1px solid #cdcdcd;border-radius:0;display:block;flex:1;height:100%;padding:0;position:absolute;right:0;text-indent:-9999px;top:0;width:40px}.p-code-snippet__action:hover{border-color:transparent;border-left:1px solid #cdcdcd}.p-contextual-menu,.p-contextual-menu--left,.p-contextual-menu--center{display:inline-block;margin:0;position:relative}.p-contextual-menu__dropdown{display:none;margin:0;max-width:330px;min-width:155px;padding:0;position:absolute;right:0;top:calc(100% + .5rem);z-index:1}.p-contextual-menu__dropdown::before,.p-contextual-menu__dropdown::after{border-bottom:8px solid rgba(17,17,17,0.05);border-left:8px solid transparent;border-right:8px solid transparent;bottom:100%;content:'';height:0;pointer-events:none;position:absolute;right:.75rem;width:0}.p-contextual-menu__dropdown::after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;right:.85rem}.p-contextual-menu__dropdown[aria-hidden="false"]{display:block}.p-contextual-menu__group{display:block;padding:.25rem 0}.p-contextual-menu__group+.p-contextual-menu__group{border-top:1px solid #cdcdcd;margin:0}.p-contextual-menu__link{border:0;clear:both;color:#111;display:block;line-height:1.5rem;margin:0;overflow:hidden;padding:.25rem .75rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.p-contextual-menu__link:hover{background-color:#f7f7f7;text-decoration:none}.p-contextual-menu--left .p-contextual-menu__dropdown{left:0}.p-contextual-menu--left .p-contextual-menu__dropdown::before,.p-contextual-menu--left .p-contextual-menu__dropdown::after{left:.75rem;right:initial}.p-contextual-menu--left .p-contextual-menu__dropdown::after{left:.85rem}.p-contextual-menu--center .p-contextual-menu__dropdown{left:50%;transform:translateX(-50%)}.p-contextual-menu--center .p-contextual-menu__dropdown::before,.p-contextual-menu--center .p-contextual-menu__dropdown::after{left:50%;right:initial;transform:translateX(-50%)}@media (min-width: 768px){.p-divider{display:flex}}.p-divider__block{border-bottom:1px solid #cdcdcd}.p-divider__block:last-child{border-bottom:0}@media (max-width: 768px){.p-divider__block{padding-bottom:1.5rem}}@media (min-width: 768px){.p-divider__block{border-bottom:0;padding-right:1rem}.p-divider__block:not(:nth-child(1))::before{border-left:1px solid #cdcdcd;content:'';height:100%;left:-1rem;position:absolute}.p-divider__block:last-child{padding-right:0}}.p-footer{border-top:1px solid #cdcdcd;font-size:.875rem;line-height:1.5;padding-bottom:1rem;padding-top:1rem}@media (min-width: 768px){.p-footer{padding-bottom:1.5rem;padding-top:1.5rem}}.p-footer__copy{margin-bottom:0}.p-footer__links{margin:0;padding:.75rem 0 0}@media (min-width: 768px){.p-footer__links{margin-top:0;padding-top:1rem}}.p-footer__nav{margin-top:0}.p-footer__item{display:block;margin-bottom:.25rem}@media (min-width: 768px){.p-footer__item{display:inline-block}}.p-footer__item:last-child a::after{opacity:0}.p-footer__link{border-bottom:0;color:#111}.p-footer__link:visited{color:#000}.p-footer__link:hover{color:#007aa6}@media (min-width: 768px){.p-footer__link{margin-right:1rem;position:relative}.p-footer__link::after{content:'\00b7';display:inline-block;font-size:1.5rem;position:absolute;right:-.75rem;top:-.65rem}}.p-footer__link:hover::after{color:#111}@media screen and (max-width: 400px){@-ms-viewport{width:320px}}img{max-width:100%;height:auto}@media \0screen{img{width:auto}}.row{*zoom:1;margin-right:auto;margin-left:auto;max-width:1440px;padding-left:20px;padding-right:20px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row .row{margin-right:0;margin-left:0;max-width:none;padding-right:0;padding-left:0}.mobile-col-1,.mobile-col-2,.mobile-col-3{display:block;float:left;min-height:1px;position:relative;*margin-right:-1px;margin-left:7.80829%}.row .mobile-col-1:first-child,.row .mobile-col-2:first-child,.row .mobile-col-3:first-child,.first-mobile-col{margin-left:0}.mobile-col-1{width:19.14379%}.mobile-col-2{width:46.09586%}.mobile-col-3{width:73.04793%}@media screen and (min-width: 620px){.tablet-col-1,.tablet-col-2,.tablet-col-3,.tablet-col-4,.tablet-col-5{display:block;float:left;min-height:1px;position:relative;*margin-right:-1px;margin-left:4.93155%}.row .tablet-col-1:first-child,.row .tablet-col-2:first-child,.row .tablet-col-3:first-child,.row .tablet-col-4:first-child,.row .tablet-col-5:first-child,.first-tablet-col{margin-left:0}.tablet-col-1{width:12.55704%}.tablet-col-2{width:30.04563%}.tablet-col-3{width:47.53423%}.tablet-col-4{width:65.02282%}.tablet-col-5{width:82.51141%}}@media screen and (min-width: 768px){.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11{display:block;float:left;min-height:1px;position:relative;*margin-right:-1px;margin-left:3.2877%}.row .col-1:first-child,.row .col-2:first-child,.row .col-3:first-child,.row .col-4:first-child,.row .col-5:first-child,.row .col-6:first-child,.row .col-7:first-child,.row .col-8:first-child,.row .col-9:first-child,.row .col-10:first-child,.row .col-11:first-child,.first-col{margin-left:0}.col-1{width:5.31961%}.col-2{width:13.92692%}.col-3{width:22.53423%}.col-4{width:31.14153%}.col-5{width:39.74884%}.col-6{width:48.35615%}.col-7{width:56.96346%}.col-8{width:65.57077%}.col-9{width:74.17808%}.col-10{width:82.78538%}.col-11{width:91.39269%}.prefix-1{padding-left:8.60731%}.prefix-2{padding-left:17.21462%}.prefix-3{padding-left:25.82192%}.prefix-4{padding-left:34.42923%}.prefix-5{padding-left:43.03654%}.prefix-6{padding-left:51.64385%}.prefix-7{padding-left:60.25116%}.prefix-8{padding-left:68.85847%}.prefix-9{padding-left:77.46577%}.prefix-10{padding-left:86.07308%}.prefix-11{padding-left:94.68039%}.suffix-1{padding-right:8.60731%}.suffix-2{padding-right:17.21462%}.suffix-3{padding-right:25.82192%}.suffix-4{padding-right:34.42923%}.suffix-5{padding-right:43.03654%}.suffix-6{padding-right:51.64385%}.suffix-7{padding-right:60.25116%}.suffix-8{padding-right:68.85847%}.suffix-9{padding-right:77.46577%}.suffix-10{padding-right:86.07308%}.suffix-11{padding-right:94.68039%}.push-1{left:8.60731%}.push-2{left:17.21462%}.push-3{left:25.82192%}.push-4{left:34.42923%}.push-5{left:43.03654%}.push-6{left:51.64385%}.push-7{left:60.25116%}.push-8{left:68.85847%}.push-9{left:77.46577%}.push-10{left:86.07308%}.push-11{left:94.68039%}.pull-1{right:8.60731%}.pull-2{right:17.21462%}.pull-3{right:25.82192%}.pull-4{right:34.42923%}.pull-5{right:43.03654%}.pull-6{right:51.64385%}.pull-7{right:60.25116%}.pull-8{right:68.85847%}.pull-9{right:77.46577%}.pull-10{right:86.07308%}.pull-11{right:94.68039%}.col-11 .col-1,.col-11 .col-2,.col-11 .col-3,.col-11 .col-4,.col-11 .col-5,.col-11 .col-6,.col-11 .col-7,.col-11 .col-8,.col-11 .col-9,.col-11 .col-10{margin-left:3.59733%}.col-11 .col-1{width:5.82061%}.col-11 .col-2{width:15.23855%}.col-11 .col-3{width:24.65649%}.col-11 .col-4{width:34.07442%}.col-11 .col-5{width:43.49236%}.col-11 .col-6{width:52.9103%}.col-11 .col-7{width:62.32824%}.col-11 .col-8{width:71.74618%}.col-11 .col-9{width:81.16412%}.col-11 .col-10{width:90.58206%}.col-10 .col-1,.col-10 .col-2,.col-10 .col-3,.col-10 .col-4,.col-10 .col-5,.col-10 .col-6,.col-10 .col-7,.col-10 .col-8,.col-10 .col-9{margin-left:3.97135%}.col-10 .col-1{width:6.42578%}.col-10 .col-2{width:16.82292%}.col-10 .col-3{width:27.22005%}.col-10 .col-4{width:37.61719%}.col-10 .col-5{width:48.01432%}.col-10 .col-6{width:58.41146%}.col-10 .col-7{width:68.80859%}.col-10 .col-8{width:79.20573%}.col-10 .col-9{width:89.60286%}.col-9 .col-1,.col-9 .col-2,.col-9 .col-3,.col-9 .col-4,.col-9 .col-5,.col-9 .col-6,.col-9 .col-7,.col-9 .col-8{margin-left:4.43217%}.col-9 .col-1{width:7.1714%}.col-9 .col-2{width:18.77498%}.col-9 .col-3{width:30.37855%}.col-9 .col-4{width:41.98213%}.col-9 .col-5{width:53.5857%}.col-9 .col-6{width:65.18928%}.col-9 .col-7{width:76.79285%}.col-9 .col-8{width:88.39643%}.col-8 .col-1,.col-8 .col-2,.col-8 .col-3,.col-8 .col-4,.col-8 .col-5,.col-8 .col-6,.col-8 .col-7{margin-left:5.01397%}.col-8 .col-1{width:8.11278%}.col-8 .col-2{width:21.23952%}.col-8 .col-3{width:34.36627%}.col-8 .col-4{width:47.49301%}.col-8 .col-5{width:60.61976%}.col-8 .col-6{width:73.74651%}.col-8 .col-7{width:86.87325%}.col-7 .col-1,.col-7 .col-2,.col-7 .col-3,.col-7 .col-4,.col-7 .col-5,.col-7 .col-6{margin-left:5.77159%}.col-7 .col-1{width:9.33863%}.col-7 .col-2{width:24.44886%}.col-7 .col-3{width:39.55909%}.col-7 .col-4{width:54.66932%}.col-7 .col-5{width:69.77954%}.col-7 .col-6{width:84.88977%}.col-6 .col-1,.col-6 .col-2,.col-6 .col-3,.col-6 .col-4,.col-6 .col-5{margin-left:6.79893%}.col-6 .col-1{width:11.00089%}.col-6 .col-2{width:28.80072%}.col-6 .col-3{width:46.60054%}.col-6 .col-4{width:64.40036%}.col-6 .col-5{width:82.20018%}.col-5 .col-1,.col-5 .col-2,.col-5 .col-3,.col-5 .col-4{margin-left:8.27118%}.col-5 .col-1{width:13.38305%}.col-5 .col-2{width:35.03729%}.col-5 .col-3{width:56.69153%}.col-5 .col-4{width:78.34576%}.col-4 .col-1,.col-4 .col-2,.col-4 .col-3{margin-left:10.55728%}.col-4 .col-1{width:17.08204%}.col-4 .col-2{width:44.72136%}.col-4 .col-3{width:72.36068%}.col-3 .col-1,.col-3 .col-2{margin-left:14.5898%}.col-3 .col-1{width:23.6068%}.col-3 .col-2{width:61.8034%}.col-2 .col-1{margin-left:23.6068%}.col-2 .col-1{width:38.1966%}}.row .center-col{float:none;margin-left:auto !important;margin-right:auto}@media screen and (max-width: 619px){.hidden-mobile,.visible-tablet,.visible-desktop{display:none !important}}@media screen and (min-width: 620px) and (max-width: 767px){.visible-mobile,.hidden-tablet,.visible-desktop{display:none !important}}@media screen and (min-width: 768px){.visible-mobile,.visible-tablet,.hidden-desktop{display:none !important}}[class*="col-"],.row{margin-top:0}@media screen and (max-width: 767px){[class*="col-"]+[class*="col-"]{margin-top:20px}}[grid-demo] [class*="col-"]{background:#cdcdcd;margin-bottom:1rem}[grid-outline] [class*="col-"]{outline:1px solid #fff;padding:.25rem}.p-heading--one{max-width:20em;font-size:2rem;font-weight:300;line-height:1.3125}.u-align--center .p-heading--one{margin-left:auto;margin-right:auto}.u-align--left .p-heading--one{margin-right:auto}.u-align--right .p-heading--one{margin-left:auto}@media only screen and (min-width: 1030px){.p-heading--one{font-size:3rem;line-height:1.25}}.p-heading--two{max-width:20em;font-size:1.75rem;font-weight:300;line-height:1.2857}.u-align--center .p-heading--two{margin-left:auto;margin-right:auto}.u-align--left .p-heading--two{margin-right:auto}.u-align--right .p-heading--two{margin-left:auto}@media only screen and (min-width: 1030px){.p-heading--two{font-size:2.25rem;line-height:1.333}}.p-heading--three{max-width:25em;font-size:1.5rem;font-weight:300;line-height:1.333}.u-align--center .p-heading--three{margin-left:auto;margin-right:auto}.u-align--left .p-heading--three{margin-right:auto}.u-align--right .p-heading--three{margin-left:auto}@media only screen and (min-width: 1030px){.p-heading--three{font-size:1.75rem;line-height:1.287}}.p-heading--four{max-width:25em;font-size:1.375rem;font-weight:300;line-height:1.2727}.u-align--center .p-heading--four{margin-left:auto;margin-right:auto}.u-align--left .p-heading--four{margin-right:auto}.u-align--right .p-heading--four{margin-left:auto}@media only screen and (min-width: 1030px){.p-heading--four{font-size:1.5rem;line-height:1.333}}.p-heading--five{max-width:35em;font-size:1.125rem;font-weight:300;line-height:1.333}.u-align--center .p-heading--five{margin-left:auto;margin-right:auto}.u-align--left .p-heading--five{margin-right:auto}.u-align--right .p-heading--five{margin-left:auto}@media only screen and (min-width: 1030px){.p-heading--five{font-size:1.25rem;line-height:1.4}}.p-heading--six{max-width:35em;font-size:1rem;font-weight:400;line-height:1.5}.u-align--center .p-heading--six{margin-left:auto;margin-right:auto}.u-align--left .p-heading--six{margin-right:auto}.u-align--right .p-heading--six{margin-left:auto}.p-heading-icon{margin-bottom:2rem}@media (min-width: 768px){.p-heading-icon{margin-bottom:0}}.p-heading-icon__header{align-items:center;display:flex;margin-bottom:1rem}@media (min-width: 1030px){.p-heading-icon__header{margin-bottom:1.5rem}}.p-heading-icon__title{max-width:25em;font-size:1.5rem;font-weight:300;line-height:1.333;margin-bottom:0;margin-top:0}.u-align--center .p-heading-icon__title{margin-left:auto;margin-right:auto}.u-align--left .p-heading-icon__title{margin-right:auto}.u-align--right .p-heading-icon__title{margin-left:auto}@media only screen and (min-width: 1030px){.p-heading-icon__title{font-size:1.75rem;line-height:1.287}}.p-heading-icon__img{align-self:flex-start;flex-shrink:0;height:2.5rem;margin-right:1rem;width:2.5rem}@media (min-width: 768px){.p-heading-icon__img{height:3.75rem;width:3.75rem}}.p-image--bordered{border-color:#cdcdcd;border-style:solid;border-width:1px}.p-image--shadowed{box-shadow:0 1px 5px 1px rgba(205,205,205,0.2)}.p-media-object{display:flex}.p-media-object__details{margin-top:0}.p-media-object__image{align-self:flex-start;border-radius:.25rem;flex-basis:inherit;flex-shrink:0;margin-right:1rem;max-height:3.75rem;max-width:3.75rem;vertical-align:middle;width:auto}@media (min-width: 768px){.p-media-object__image{max-height:4.5rem;max-width:4.5rem}}.p-media-object__image.is-round{border-radius:50%}.p-media-object__title{max-width:25em;font-size:1.375rem;font-weight:300;line-height:1.2727;margin-bottom:.5rem}.u-align--center .p-media-object__title{margin-left:auto;margin-right:auto}.u-align--left .p-media-object__title{margin-right:auto}.u-align--right .p-media-object__title{margin-left:auto}@media only screen and (min-width: 1030px){.p-media-object__title{font-size:1.5rem;line-height:1.333}}.p-media-object__content{margin-top:.25rem}.p-media-object__meta-list{list-style:none;margin:1rem 0 0;padding-left:0}.p-media-object__meta-list-item{color:#111;font-size:.875em;margin-bottom:.4rem;padding-left:1.75rem}.p-media-object__meta-list-item--date{color:#111;font-size:.875em;margin-bottom:.4rem;padding-left:1.75rem;background-repeat:no-repeat;background-size:1.25rem 1.25rem;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90"><g transform="translate(0 -962.362)"><path color="%23000" fill="none" stroke-width="7.5" overflow="visible" enable-background="accumulate" d="M0 962.362h90v90H0z"/><path d="M35.914 968.362v9c0 4.837-4.078 8.914-8.914 8.914-4.836 0-8.914-4.077-8.914-8.914v-8.547C7.56 969.892 6 973.59 6 986.362v42c0 18 3 18 30 18h18c27 0 30 0 30-18v-42c0-12.773-1.56-16.47-12.086-17.547v8.547c0 4.837-4.078 8.914-8.914 8.914-4.836 0-8.914-4.077-8.914-8.914v-9H35.914zm.086 24h18c24 0 24 0 24 12v24c0 12 0 12-24 12H36c-24 0-24 0-24-12v-24c0-12 0-12 24-12z" fill="%23aea79f"/><rect width="6" height="18" x="24" y="962.362" ry="3" color="%23000" fill="%23aea79f" stroke-width=".1" overflow="visible" enable-background="accumulate"/><rect ry="3" y="962.362" x="60" height="18" width="6" color="%23000" fill="%23aea79f" stroke-width=".1" overflow="visible" enable-background="accumulate"/><path style="text-align:center;line-height:125%;-inkscape-font-specification:Ubuntu Medium" d="M33.336 1001.364v.01c-1.8 0-3.5.348-5.087 1.043-1.548.663-2.913 1.553-4.08 2.664l-.352.337 3.06 4.335.474-.472c.158-.158.425-.388.787-.673l.01-.013.01-.012c.342-.295.74-.582 1.194-.86.467-.27 1.002-.507 1.607-.71.577-.19 1.206-.288 1.896-.288 1.048 0 1.885.26 2.58.768.626.46.964 1.222.964 2.497 0 .56-.114 1.1-.35 1.647-.246.538-.58 1.082-1.006 1.635h-.002c-.408.535-.896 1.088-1.466 1.658-.582.582-1.192 1.176-1.827 1.785h-.004c-.827.8-1.653 1.613-2.48 2.44-.846.845-1.61 1.748-2.292 2.704h-.002c-.692.967-1.26 2.02-1.702 3.15-.426 1.134-.635 2.372-.635 3.707v.72c0 .31.015.583.046.828l.064.493h18.65v-5.197H31.386c.072-.144.057-.21.18-.392l.006-.012h.002c.33-.507.727-1.034 1.192-1.576.47-.548.966-1.096 1.488-1.645l.008-.01c.527-.553.998-1.027 1.413-1.416h.007c.8-.775 1.6-1.56 2.4-2.36h.007c.813-.844 1.534-1.7 2.163-2.576h.002c.66-.906 1.197-1.83 1.613-2.773.428-.994.645-2.02.645-3.054 0-2.528-.756-4.605-2.28-6.102-1.524-1.55-3.862-2.28-6.9-2.28zm16.626.635v.01l-.024.537c-.106 2.31-.24 4.618-.4 6.927-.158 2.277-.384 4.688-.676 7.233l-.07.628h.632c2.187 0 3.982.12 5.37.353h.004c1.42.23 2.518.58 3.283 1.01h.01c.804.44 1.316.945 1.6 1.512.302.606.46 1.297.46 2.1 0 .514-.094.994-.278 1.457-.174.414-.456.79-.876 1.14h-.016c-.375.333-.9.615-1.582.836-.677.193-1.514.298-2.51.298-1.48 0-2.72-.144-3.718-.42-1.012-.31-1.79-.596-2.3-.84l-.638-.304-1.17 5.187.394.198c.32.16.74.313 1.287.477.553.167 1.168.315 1.847.45.703.163 1.43.3 2.184.407.77.11 1.527.163 2.273.163 1.826 0 3.44-.214 4.84-.66h.008c1.386-.473 2.56-1.12 3.502-1.948.94-.827 1.647-1.823 2.105-2.967.454-1.135.68-2.365.68-3.678 0-2.868-1.023-5.22-3.034-6.892-1.888-1.617-4.76-2.472-8.434-2.75.033-.27.064-.51.097-.834.055-.535.096-1.096.123-1.68l.002-.025c.052-.575.09-1.138.117-1.688l.003-.027c.035-.38.054-.693.077-1.02h10.055V1002H49.962z" font-size="35.345" font-weight="500" letter-spacing="0" word-spacing="0" text-anchor="middle" fill="%23aea79f" font-family="Ubuntu"/></g></svg>')}.p-media-object__meta-list-item--location{color:#111;font-size:.875em;margin-bottom:.4rem;padding-left:1.75rem;background-repeat:no-repeat;background-size:1.25rem 1.25rem;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90"><g color="%23000"><path d="M45 0C30.088 0 18 12.088 18 27c0 .562.03 1.103.063 1.656.013.248.012.497.03.75.02.23.07.46.095.688C20.22 51.854 41.922 90 45 90c3.078 0 24.78-38.146 26.813-59.906.02-.232.076-.46.093-.688.022-.248.016-.5.03-.75.032-.56.064-1.12.064-1.656C72 12.088 59.912 0 45 0zm0 18c4.97 0 9 4.03 9 9s-4.03 9-9 9-9-4.03-9-9 4.03-9 9-9z" fill="%23aea79f" stroke-width="3" overflow="visible" enable-background="accumulate"/><path fill="none" stroke-width="7.5" overflow="visible" enable-background="accumulate" d="M0 0h90v90H0z"/></g></svg>')}.p-media-object__meta-list-item--venue{color:#111;font-size:.875em;margin-bottom:.4rem;padding-left:1.75rem;background-repeat:no-repeat;background-size:1.25rem 1.25rem;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90" viewBox="0 0 90 90.000001"><g transform="translate(-111.967 -929.337)" color="%23000"><path fill="none" stroke-width="4" overflow="visible" enable-background="accumulate" d="M111.967 929.336h90v90h-90z"/><circle r="6.5" cy="24.5" cx="23.5" transform="matrix(1.846 0 0 1.846 113.583 929.105)" fill="%23aea79f" stroke-width="2" overflow="visible" enable-background="accumulate"/><circle r="21" cy="45" cx="45" transform="matrix(1.429 0 0 1.429 92.682 910.05)" fill="none" stroke="%23aea79f" stroke-width="4.2" stroke-linejoin="round" overflow="visible" enable-background="accumulate"/><path d="M152.967 931.736l8-2.4v15h-8zM160.967 1016.336h-8v-12h8zM198.967 970.336v8h-12v-8zM114.967 978.336v-8h12v8z" overflow="visible" fill="%23aea79f" stroke-width="6" enable-background="accumulate"/></g></svg>')}.p-media-object--large{display:flex}.p-media-object--large .p-media-object__image{max-height:4.5rem;max-width:4.5rem}@media (min-width: 768px){.p-media-object--large .p-media-object__image{max-height:6rem;max-width:6rem}}.p-media-object--large .p-media-object__title{max-width:20em;font-size:2rem;font-weight:300;line-height:1.3125}.u-align--center .p-media-object--large .p-media-object__title{margin-left:auto;margin-right:auto}.u-align--left .p-media-object--large .p-media-object__title{margin-right:auto}.u-align--right .p-media-object--large .p-media-object__title{margin-left:auto}@media only screen and (min-width: 1030px){.p-media-object--large .p-media-object__title{font-size:3rem;line-height:1.25}}.p-media-object--large .p-media-object__content{margin-top:.75rem}.p-modal{align-items:center;background:rgba(17,17,17,0.75);content:'';display:flex;height:100vh;justify-content:center;left:0;margin:0;overflow:scroll;padding:1.5rem;position:absolute;top:0;width:100%}.p-modal__dialog{bottom:1.5rem;left:1.5rem;max-width:1440px;overflow:scroll;position:absolute;right:1.5rem;top:1.5rem;width:auto}@media screen and (min-width: 768px){.p-modal__dialog{bottom:initial;left:initial;overflow:visible;position:relative;right:initial;top:initial}}.p-modal__header{display:flex;justify-content:space-between;margin:0}.p-modal__title{max-width:25em;font-size:1.375rem;font-weight:300;line-height:1.2727;align-self:flex-end;margin:0}.u-align--center .p-modal__title{margin-left:auto;margin-right:auto}.u-align--left .p-modal__title{margin-right:auto}.u-align--right .p-modal__title{margin-left:auto}@media only screen and (min-width: 1030px){.p-modal__title{font-size:1.5rem;line-height:1.333}}.p-modal__close{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='90' width='90'%3E%3Cg color='%23000'%3E%3Cpath fill='none' d='M0 0h90v90H0z'/%3E%3Cpath d='M14.52 6L6 14.52 36.48 45 6 75.49 14.52 84 45 53.52 75.48 84 84 75.49 53.52 45 84 14.52 75.48 6 45 36.49z' fill='%23888'/%3E%3C/g%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:1rem;border:0;box-sizing:content-box;height:1rem;margin:-1rem -1rem 0 0;padding:1rem;text-indent:-999em;width:1rem}.p-modal__close:focus{outline:1px solid #007aa6;outline-offset:2px}.p-matrix{list-style:none;margin:0;padding:0}@media (min-width: 620px){.p-matrix{display:flex;flex-wrap:wrap}}.p-matrix__item{border-top:1px dotted #666;display:flex;flex-direction:row;margin-top:0;padding:1rem 0}.p-matrix__item:empty{display:none}.p-matrix__item:first-child{border-top:0}@media (min-width: 620px){.p-matrix__item{border-right:1px dotted #666;border-top:1px dotted #666;margin-bottom:0;padding:1rem;width:33.333%}.p-matrix__item:empty{display:block}.p-matrix__item:first-child,.p-matrix__item:nth-child(3n+1){padding-left:0}.p-matrix__item:last-child,.p-matrix__item:nth-child(3n){padding-right:0}.p-matrix__item:nth-child(-n+3){border-top:0}.p-matrix__item:nth-child(2n){border-right:1px dotted #666;padding-right:1rem}.p-matrix__item:nth-child(3n){border-right:0;padding-right:0}}.p-matrix__img,.p-matrix__content{align-self:flex-start;margin-top:0}.p-matrix__img{margin-right:1rem;max-width:3.75rem}.p-matrix__content{display:flex;flex-direction:column;justify-content:center}.p-matrix__title{margin-bottom:.5rem;margin-top:0}.p-matrix__desc{margin-top:0}.p-matrix__link{border-top:0}.p-muted-heading{font-size:.875rem;text-transform:uppercase}.p-navigation{background-color:#000;border-bottom:1px solid transparent;color:#f7f7f7;margin-top:0;position:relative;width:100%;height:3rem}.p-navigation .row{padding:0}@media (max-width: 870px){.p-navigation{height:auto}}@media (max-width: 870px){.p-navigation .p-navigation__banner{overflow:hidden;position:relative}}.p-navigation .p-navigation__toggle--open,.p-navigation .p-navigation__toggle--close,.p-navigation .p-navigation__link{color:#f7f7f7}.p-navigation .p-navigation__toggle--open:hover,.p-navigation .p-navigation__toggle--close:hover,.p-navigation .p-navigation__link:hover{border-bottom:0;text-decoration:underline}.p-navigation .p-navigation__toggle--open:visited,.p-navigation .p-navigation__toggle--close:visited,.p-navigation .p-navigation__link:visited{color:#f7f7f7}.p-navigation .p-navigation__toggle--close{display:none}.p-navigation .p-navigation__toggle--open,.p-navigation .p-navigation__toggle--close{margin:0;position:absolute;right:1rem;top:calc(50% - .75rem)}@media (min-width: 871px){.p-navigation .p-navigation__toggle--open,.p-navigation .p-navigation__toggle--close{display:none}}.p-navigation .p-navigation__logo{max-width:25em;font-size:1.375rem;font-weight:300;line-height:1.2727;align-items:center;display:flex;float:left;margin:.75rem .5rem}.u-align--center .p-navigation .p-navigation__logo{margin-left:auto;margin-right:auto}.u-align--left .p-navigation .p-navigation__logo{margin-right:auto}.u-align--right .p-navigation .p-navigation__logo{margin-left:auto}@media only screen and (min-width: 1030px){.p-navigation .p-navigation__logo{font-size:1.5rem;line-height:1.333}}@media (min-width: 871px){.p-navigation .p-navigation__logo{margin:.5rem 1.25rem}}.p-navigation .p-navigation__image{float:left;height:2rem}.p-navigation .p-navigation__link{border-bottom:0;display:block;margin-top:0}@media (min-width: 871px){.p-navigation .p-navigation__link{display:block;float:left;width:auto}}.p-navigation .p-navigation__link,.p-navigation .p-navigation__link>a{border-bottom:0;display:block}.p-navigation .p-navigation__link:hover,.p-navigation .p-navigation__link>a:hover{text-decoration:none}.p-navigation .p-navigation__link:last-child{margin-bottom:0}.p-navigation .p-navigation__links,.p-navigation .p-navigation__links--right{background-color:#cdcdcd;clear:both;margin:0;padding:0}@media (min-width: 871px){.p-navigation .p-navigation__links,.p-navigation .p-navigation__links--right{background-color:transparent;clear:none;flex-shrink:0;float:left}}.p-navigation .p-navigation__links .p-navigation__link,.p-navigation .p-navigation__links--right .p-navigation__link{border-left:1px solid #cdcdcd}.p-navigation .p-navigation__links .p-navigation__link:hover,.p-navigation .p-navigation__links--right .p-navigation__link:hover{background-color:#f7f7f7}@media (max-width: 870px){.p-navigation .p-navigation__links .p-navigation__link,.p-navigation .p-navigation__links--right .p-navigation__link{background-color:#fff;border-left:0;border-top:1px solid #cdcdcd;color:#111;text-align:left}}.p-navigation .p-navigation__links .p-navigation__link>a,.p-navigation .p-navigation__links--right .p-navigation__link>a{border-bottom:3px solid transparent}.p-navigation .p-navigation__links .p-navigation__link.is-selected>a,.p-navigation .p-navigation__links--right .p-navigation__link.is-selected>a{border-bottom-color:#666}.p-navigation .p-navigation__links .p-navigation__link>a,.p-navigation .p-navigation__links--right .p-navigation__link>a,.p-navigation .p-navigation__links>a,.p-navigation .p-navigation__links--right>a{color:#111;font-size:.875rem;padding:0.8125rem .5rem 0.625rem .5rem}@media (min-width: 871px){.p-navigation .p-navigation__links .p-navigation__link>a,.p-navigation .p-navigation__links--right .p-navigation__link>a,.p-navigation .p-navigation__links>a,.p-navigation .p-navigation__links--right>a{color:#f7f7f7;padding-left:1.25rem;padding-right:1.25rem}}.p-navigation .p-navigation__links:last-of-type,.p-navigation .p-navigation__links--right:last-of-type{border-right:1px solid #cdcdcd}@media (max-width: 870px){.p-navigation .p-navigation__links:last-of-type,.p-navigation .p-navigation__links--right:last-of-type{border-bottom:0;border-right:0}}.p-navigation .p-navigation__nav{display:none;margin-top:0}@media (min-width: 871px){.p-navigation .p-navigation__nav{display:flex}}.p-navigation .p-navigation__nav>.p-search-box{align-self:center;margin-left:auto;margin-top:0;max-width:20rem;order:1;width:100%}@media (max-width: 870px){.p-navigation .p-navigation__nav>.p-search-box{max-width:inherit;order:-1;top:0}}@media (max-width: 870px){.p-navigation .p-navigation__nav>.p-search-box>.p-search-box__input,.p-navigation .p-navigation__nav>.p-search-box .p-search-box__button,.p-navigation .p-navigation__nav>.p-search-box .p-search-box__reset{border-bottom:0}}.p-navigation:target .p-navigation__toggle--open{display:none}@media (max-width: 870px){.p-navigation:target .p-navigation__toggle--close{display:inline-block}}.p-navigation:target .p-navigation__nav{display:flex;flex-direction:row}@media (max-width: 870px){.p-navigation:target .p-navigation__nav{flex-direction:column}}.p-navigation--sidebar{background-color:#fff;border-bottom:1px solid #cdcdcd;color:#111;margin-top:0;position:relative;width:100%;border-bottom:0;height:auto}.p-navigation--sidebar .row{padding:0}@media (max-width: 870px){.p-navigation--sidebar{height:auto}}@media (max-width: 870px){.p-navigation--sidebar .p-navigation__banner{overflow:hidden;position:relative}}.p-navigation--sidebar .p-navigation__toggle--open,.p-navigation--sidebar .p-navigation__toggle--close,.p-navigation--sidebar .p-navigation__link{color:#111}.p-navigation--sidebar .p-navigation__toggle--open:hover,.p-navigation--sidebar .p-navigation__toggle--close:hover,.p-navigation--sidebar .p-navigation__link:hover{border-bottom:0;text-decoration:underline}.p-navigation--sidebar .p-navigation__toggle--open:visited,.p-navigation--sidebar .p-navigation__toggle--close:visited,.p-navigation--sidebar .p-navigation__link:visited{color:#111}.p-navigation--sidebar .p-navigation__toggle--close{display:none}.p-navigation--sidebar .p-navigation__toggle--open,.p-navigation--sidebar .p-navigation__toggle--close{margin:0;position:absolute;right:1rem;top:calc(50% - .75rem)}@media (min-width: 871px){.p-navigation--sidebar .p-navigation__toggle--open,.p-navigation--sidebar .p-navigation__toggle--close{display:none}}.p-navigation--sidebar .p-navigation__logo{max-width:25em;font-size:1.375rem;font-weight:300;line-height:1.2727;align-items:center;display:flex;float:left;margin:.75rem .5rem}.u-align--center .p-navigation--sidebar .p-navigation__logo{margin-left:auto;margin-right:auto}.u-align--left .p-navigation--sidebar .p-navigation__logo{margin-right:auto}.u-align--right .p-navigation--sidebar .p-navigation__logo{margin-left:auto}@media only screen and (min-width: 1030px){.p-navigation--sidebar .p-navigation__logo{font-size:1.5rem;line-height:1.333}}@media (min-width: 871px){.p-navigation--sidebar .p-navigation__logo{margin:.5rem 1.25rem}}.p-navigation--sidebar .p-navigation__image{float:left;height:2rem}.p-navigation--sidebar .p-navigation__link{border-bottom:0;display:block;margin-top:0}@media (min-width: 871px){.p-navigation--sidebar .p-navigation__link{display:block;float:left;width:auto}}.p-navigation--sidebar .p-navigation__link,.p-navigation--sidebar .p-navigation__link>a{border-bottom:0;display:block}.p-navigation--sidebar .p-navigation__link:hover,.p-navigation--sidebar .p-navigation__link>a:hover{text-decoration:none}.p-navigation--sidebar .p-navigation__link:last-child{margin-bottom:0}.p-navigation--sidebar .p-navigation__links,.p-navigation--sidebar .p-navigation .p-navigation__links--right,.p-navigation .p-navigation--sidebar .p-navigation__links--right{background-color:#cdcdcd;clear:both;margin:0;padding:0}@media (min-width: 871px){.p-navigation--sidebar .p-navigation__links,.p-navigation--sidebar .p-navigation .p-navigation__links--right,.p-navigation .p-navigation--sidebar .p-navigation__links--right{background-color:transparent;clear:none;flex-shrink:0;float:left}}.p-navigation--sidebar .p-navigation__links .p-navigation__link,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link{border-left:1px solid #cdcdcd}.p-navigation--sidebar .p-navigation__links .p-navigation__link:hover,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link:hover,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link:hover{background-color:#f7f7f7}@media (max-width: 870px){.p-navigation--sidebar .p-navigation__links .p-navigation__link,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link{background-color:#fff;border-left:0;border-top:1px solid #cdcdcd;color:#111;text-align:left}}.p-navigation--sidebar .p-navigation__links .p-navigation__link>a,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link>a,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link>a{border-bottom:3px solid transparent}.p-navigation--sidebar .p-navigation__links .p-navigation__link.is-selected>a,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link.is-selected>a,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link.is-selected>a{border-bottom-color:#666}.p-navigation--sidebar .p-navigation__links .p-navigation__link>a,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link>a,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link>a,.p-navigation--sidebar .p-navigation__links>a,.p-navigation--sidebar .p-navigation .p-navigation__links--right>a,.p-navigation .p-navigation--sidebar .p-navigation__links--right>a{color:#111;font-size:.875rem;padding:0.8125rem .5rem 0.625rem .5rem}@media (min-width: 871px){.p-navigation--sidebar .p-navigation__links .p-navigation__link>a,.p-navigation--sidebar .p-navigation .p-navigation__links--right .p-navigation__link>a,.p-navigation .p-navigation--sidebar .p-navigation__links--right .p-navigation__link>a,.p-navigation--sidebar .p-navigation__links>a,.p-navigation--sidebar .p-navigation .p-navigation__links--right>a,.p-navigation .p-navigation--sidebar .p-navigation__links--right>a{color:#111;padding-left:1.25rem;padding-right:1.25rem}}.p-navigation--sidebar .p-navigation__links:last-of-type,.p-navigation--sidebar .p-navigation .p-navigation__links--right:last-of-type,.p-navigation .p-navigation--sidebar .p-navigation__links--right:last-of-type{border-right:1px solid #cdcdcd}@media (max-width: 870px){.p-navigation--sidebar .p-navigation__links:last-of-type,.p-navigation--sidebar .p-navigation .p-navigation__links--right:last-of-type,.p-navigation .p-navigation--sidebar .p-navigation__links--right:last-of-type{border-bottom:0;border-right:0}}.p-navigation--sidebar .p-navigation__nav{display:none;margin-top:0}@media (min-width: 871px){.p-navigation--sidebar .p-navigation__nav{display:flex}}.p-navigation--sidebar .p-navigation__nav>.p-search-box{align-self:center;margin-left:auto;margin-top:0;max-width:20rem;order:1;width:100%}@media (max-width: 870px){.p-navigation--sidebar .p-navigation__nav>.p-search-box{max-width:inherit;order:-1;top:0}}@media (max-width: 870px){.p-navigation--sidebar .p-navigation__nav>.p-search-box>.p-search-box__input,.p-navigation--sidebar .p-navigation__nav>.p-search-box .p-search-box__button,.p-navigation--sidebar .p-navigation__nav>.p-search-box .p-search-box__reset{border-bottom:0}}.p-navigation--sidebar:target .p-navigation__toggle--open{display:none}@media (max-width: 870px){.p-navigation--sidebar:target .p-navigation__toggle--close{display:inline-block}}.p-navigation--sidebar:target .p-navigation__nav{display:flex;flex-direction:row}@media (max-width: 870px){.p-navigation--sidebar:target .p-navigation__nav{flex-direction:column}}.p-navigation--sidebar .p-navigation__logo{margin:0 1rem 0 0}.p-navigation--sidebar .p-navigation__tagline{color:#666;display:inline-block;margin-top:.2rem}.p-navigation--sidebar .sidebar__cta{margin-top:0}.p-navigation--sidebar .sidebar__cta .p-inline-list{display:inline-block}.p-navigation--sidebar .sidebar__cta [class^="p-icon"]{cursor:pointer}@media (min-width: 871px){.p-navigation--sidebar .sidebar__cta{display:none}}.p-navigation--sidebar .sidebar__content{background:#fff;margin-top:.75rem;padding-bottom:1rem;width:100%}@media (min-width: 871px){.p-navigation--sidebar .sidebar__content{display:block !important}}.p-navigation--sidebar .sidebar__link{color:#111;display:block;padding:.5rem 0;position:relative}.p-navigation--sidebar .sidebar__link:hover{color:#007aa6}.p-navigation--sidebar .sidebar__link:focus{outline:0}.p-navigation--sidebar .is-selected{font-weight:bold}.p-navigation--sidebar .sidebar__first-level{padding-left:0}.p-navigation--sidebar .sidebar__third-level{background-color:#666;margin-right:-4rem;padding-left:4rem;position:relative;right:3rem}.p-navigation--sidebar .sidebar__second-level,.p-navigation--sidebar .sidebar__third-level{display:none;list-style:none;margin-left:0;padding-bottom:.5rem;padding-top:.5rem}.p-icon--minus{display:none}.is-selected .p-icon--minus{display:block}.is-selected .p-icon--plus{display:none}.is-selected+.sidebar__second-level,.is-selected+.sidebar__third-level{display:block}.p-navigation--sidebar .sidebar__second-level .is-deepest-level,.p-navigation--sidebar .sidebar__third-level .is-deepest-level{background-color:#f7f7f7}.p-navigation--sidebar .p-icon--plus,.p-navigation--sidebar .p-icon--minus{perspective:800px;perspective-origin:50% 100px;position:absolute;right:1rem;top:.75rem;transition:all .5s ease-in-out}.p-link--soft{color:#111}.p-link--soft:visited{color:#111;text-decoration:none}.p-link--soft:hover{color:#007aa6}.p-link--soft.is-selected{font-weight:400}.p-link--strong{color:currentColor;font-weight:400}.p-link--strong:visited{color:currentColor}.p-link--strong:hover{color:#007aa6;text-decoration:underline}.p-link--inverted{color:#f7f7f7;font-weight:400}.p-link--inverted:hover{color:#f7f7f7}.p-link--inverted:visited{color:#dedede}@supports (mask-size: 1em) or (-webkit-mask-size: 1em){.p-link--external::after{-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23111' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E") no-repeat 0 0/cover;background-color:currentColor;content:'';margin:0 0 0 .25em;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23111' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E") no-repeat 0 0/cover;padding-right:.75em}.p-link--no-underline{border:0}}@supports not ((mask-size: 1em) or (-webkit-mask-size: 1em)){.p-link--external{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23007aa6' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23007aa6' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23007aa6' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E");background-position:top right;background-repeat:no-repeat;background-size:.75em;margin-top:-.25em;padding:.25em 1em 0 0}.p-link--external.p-link--strong,.p-link--external.p-link--soft,.p-link--external.sidebar__link{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23111' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}.p-link--external.p-link--soft:hover,.p-link--external.sidebar__link:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23007aa6' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23007aa6' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23007aa6' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}.p-link--external.p-link--inverted{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23f7f7f7' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23f7f7f7' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23f7f7f7' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}.p-link--external.p-link--inverted:visited{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23dedede' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23dedede' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23dedede' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}.p-link--external.sidebar__link{display:inline-block;padding:0 1em 1em 0}.p-link--no-underline{border:0}.p-button .p-link--external,.p-button--neutral .p-link--external,.p-button--base .p-link--external{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23111' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23111' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E");padding-top:0}.p-button--positive .p-link--external{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23fff' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E");padding-top:0}.p-button--negative .p-link--external{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23fff' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E");padding-top:0}.p-button--brand .p-link--external{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23fff' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E");padding-top:0}.p-strip--dark * .p-link--external.p-link--soft,.p-strip--accent * .p-link--external.p-link--soft,.p-strip--image.is-dark * .p-link--external.p-link--soft{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23fff' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}.p-strip--dark * .p-link--external.p-link--soft:hover,.p-strip--accent * .p-link--external.p-link--soft:hover,.p-strip--image.is-dark * .p-link--external.p-link--soft:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23007aa6' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23007aa6' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23007aa6' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}.p-strip--dark * .p-link--external.p-link--strong,.p-strip--accent * .p-link--external.p-link--strong,.p-strip--image.is-dark * .p-link--external.p-link--strong{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.75em' height='0.75em' viewBox='0 0 16 16' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M4.867 1.313C.6 1.32.067 1.443.067 4.51v6.4c0 3.2.533 3.2 5.333 3.2h2.133c4.8 0 5.334 0 5.334-3.2v-1.6h-1.6v1.068c0 2.133 0 2.133-4.267 2.133H5.933c-4.266 0-4.266 0-4.266-2.132V5.044c0-1.93.034-2.112 3.2-2.13v-1.6z'/%3E%3Cpath d='M-1-1h16v16H-1'/%3E%3Cpath fill='%23fff' d='M6.435 2.16c.11-.446 7.113-2.196 7.448-1.86.335.334-1.416 7.335-1.863 7.447-.447.112-5.697-5.14-5.586-5.586z'/%3E%3Cpath fill='%23fff' d='M9.032 3.38L4.705 7.708l1.767 1.767L10.8 5.148'/%3E%3C/g%3E%3C/svg%3E")}}.p-top{border-bottom:1px dotted #cdcdcd;clear:both;margin:20px 0}.p-top__link{background:#fff;color:#111;float:right;margin-right:5px;padding:0 5px;position:relative;text-decoration:none;top:-.725rem}.p-list-tree__item--group::after,.p-list-tree .p-list-tree[aria-hidden="false"]::after{background-position:center;background-repeat:no-repeat;content:' ';display:block;height:.9375rem;left:-1rem;pointer-events:none;position:absolute;top:.4rem;width:.9375rem}.p-list-tree{border-left:1px solid #cdcdcd;list-style-type:none;margin-left:1rem;padding:0 0 0 .5rem}.p-list-tree__item{margin-top:.25rem;padding-left:.8rem;position:relative}.p-list-tree__item::before{background:#cdcdcd;content:' ';display:block;height:1px;left:-.5rem;pointer-events:none;position:absolute;top:.8rem;width:.625rem}.p-list-tree__item--group::after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='15' width='15' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a' fill='%23FFF'/%3E%3Cpath stroke='%23888' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='%23888' d='M7 4h1v7H7z'/%3E%3Cpath fill='%23888' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}.p-list-tree__toggle{background:transparent;border:0;font-weight:normal;margin:0 0 0 -1.75rem;padding:0 0 0 1.75rem;transition-duration:0s;width:auto}.p-list-tree__toggle:hover{background:transparent;color:#007aa6;text-decoration:underline}.p-list-tree__toggle:focus{background:transparent;outline:1px dotted #cdcdcd}.p-list-tree .p-list-tree{display:none;margin-left:0}.p-list-tree .p-list-tree[aria-hidden="false"]{display:block}.p-list-tree .p-list-tree[aria-hidden="false"]::after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='15' width='15' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a' fill='%23FFF'/%3E%3Cpath stroke='%23888' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='%23888' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E");z-index:1}.p-list{list-style:none;margin-left:0;padding-left:0}.p-list__item{margin-top:.6667rem}.p-list--divided{list-style:none;margin-left:0;padding-left:0}.p-list--divided .p-list__item{margin-top:0;padding-bottom:.63rem;padding-top:.63rem;border-bottom:1px dotted #cdcdcd}.p-list--divided .p-list__item:last-of-type,.p-list--divided .p-list__item .last-item{border-bottom:0}.p-list--divided.is-split .p-list__item:last-of-type{border-bottom:1px dotted #cdcdcd}.is-ticked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle fill='%23e95420' cx='7' cy='7' r='7'/%3E%3Cpath fill='%23fff' d='M6.1 10.813L2.41 8.105l1.184-1.613L5.9 8.187l4.393-4.394 1.414 1.414z' /%3E%3C/svg%3E");background-position:0 .3rem;background-repeat:no-repeat;padding-left:25px}.p-list--divided .is-ticked{background-position:0 1rem}.p-inline-list{margin-left:0;padding-left:0}.p-inline-list__item{display:inline;list-style:none;margin-right:1.25rem}.p-inline-list__item:last-of-type,.p-inline-list__item .last-item{margin-right:0}.p-inline-list--middot{margin-left:0;padding-left:0}.p-inline-list--middot .p-inline-list__item{display:inline;list-style:none;margin-right:1.25rem;margin-right:1.25em;position:relative}.p-inline-list--middot .p-inline-list__item:last-of-type,.p-inline-list--middot .p-inline-list__item .last-item{margin-right:0}.p-inline-list--middot .p-inline-list__item::after{color:#666;content:'\00b7';font-size:1.4em;line-height:0;position:absolute;right:-.5em;top:.4em}.p-inline-list--middot .p-inline-list__item:hover::after{color:#666}.p-inline-list--middot .p-inline-list__item:last-of-type::after,.p-inline-list--middot .p-inline-list__item .last-item::after{content:''}.p-list-step{list-style:none;margin-left:4rem;padding:0}.p-list-step__title{margin-top:0;position:relative}.p-list-step__item{clear:both;margin-left:0;margin-top:1.5rem;width:100%}.p-list-step__item:first-child{margin-top:.75rem}@media only screen and (min-width: 1030px){.p-list-step__item:first-child{margin-top:0}}.p-list-step__bullet{background-color:#666;border-radius:50%;color:#fff;display:inline-block;font-size:1.5rem;height:3rem;line-height:3rem;margin-left:-4rem;margin-top:-.4em;position:absolute;text-align:center;width:3rem}@media (min-width: 1030px){.p-list-step__bullet{margin-top:-.15em}}.p-stepped-list--detailed{list-style:none;margin-left:0;padding:0 2rem 0 4rem}@media (max-width: 1440px){.p-stepped-list--detailed{margin-top:2.5rem}}.p-stepped-list--detailed .p-list-step__item{margin-bottom:3rem}@media (min-width: 768px){.p-stepped-list--detailed .p-list-step__item{display:flex;margin:0}.p-stepped-list--detailed .p-list-step__item>:nth-child(2n){display:block;float:left;min-height:1px;position:relative;*margin-right:-1px;width:48.35615%;margin-left:3.2877%}.p-stepped-list--detailed .p-list-step__item>:nth-child(2n+1){display:block;float:left;min-height:1px;position:relative;*margin-right:-1px;width:48.35615%}}@media (min-width: 768px){.p-stepped-list--detailed .p-list-step__title{padding-top:2.5rem}}@media only screen and (min-width: 1030px){.p-stepped-list--detailed .p-list-step__title+*{margin-top:0}}@media (min-width: 768px){.p-stepped-list--detailed .p-list-step__content{border-bottom:1px solid #f7f7f7;padding:2.5rem 0}}@media (min-width: 768px){@supports (columns: 1){[class*='p-list'].is-split{column-gap:2rem;columns:2}[class*='p-list'].is-split .p-list__item{display:inline-block;width:100%}}@supports not (columns: 1){[class*='p-list'].is-split{display:flex;flex-wrap:wrap}[class*='p-list'].is-split .p-list__item{width:calc(50% - .5rem)}}[class*='p-list'].is-split:nth-child(2n-1){margin-right:1rem}}.p-tooltip{position:relative}.p-tooltip__message{background-color:#111;border:0;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;min-width:155px;padding:.5rem .75rem;position:absolute;text-align:left;text-decoration:initial;top:100%;transform:translateX(0%) translateY(13px);white-space:pre;z-index:1}.p-tooltip__message::before{border-bottom:8px solid #111;border-left:8px solid transparent;border-right:8px solid transparent;bottom:100%;content:'';height:0;left:.75rem;pointer-events:none;position:absolute;width:0}.p-tooltip:focus .p-tooltip__message,.p-tooltip:hover .p-tooltip__message{display:inline;text-decoration:initial}.p-tooltip--btm-center .p-tooltip__message{bottom:inherit;left:50%;top:100%;transform:translateX(-50%) translateY(13px)}.p-tooltip--btm-center .p-tooltip__message::before{left:50%;transform:translateX(-50%)}.p-tooltip--btm-right .p-tooltip__message{bottom:inherit;left:initial;right:0;top:100%;transform:translateY(13px)}.p-tooltip--btm-right .p-tooltip__message::before{left:initial;right:.75rem}.p-tooltip--top-left .p-tooltip__message{bottom:100%;left:0;top:initial;transform:translateX(0%) translateY(-13px)}.p-tooltip--top-left .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #111;bottom:-1rem;left:.75rem}.p-tooltip--top-center .p-tooltip__message{bottom:100%;left:50%;top:initial;transform:translateX(-50%) translateY(-13px)}.p-tooltip--top-center .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #111;bottom:-1rem;left:50%;transform:translateX(-50%)}.p-tooltip--top-right .p-tooltip__message{bottom:100%;left:initial;right:0;top:initial;transform:translateX(0%) translateY(-13px)}.p-tooltip--top-right .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #111;bottom:-1rem;left:initial;right:.75rem}.p-tooltip--right .p-tooltip__message{bottom:inherit;left:100%;top:50%;transform:translateX(14px) translateY(-50%)}.p-tooltip--right .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid #111;border-top:8px solid transparent;bottom:inherit;left:0;top:50%;transform:translateX(-16px) translateY(-50%)}.p-tooltip--left .p-tooltip__message{bottom:inherit;left:-16px;top:50%;transform:translateX(-100%) translateY(-50%)}.p-tooltip--left .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid #111;border-right:8px solid transparent;border-top:8px solid transparent;bottom:inherit;left:100%;top:50%;transform:translateX(0) translateY(-50%)}.p-icon,.p-icon--plus,.p-icon--minus,.p-icon--expand,.p-icon--collapse,.p-icon--chevron,.p-icon--close,.p-icon--help,.p-icon--information,.p-icon--info,.p-icon--delete,.p-icon--error,.p-icon--power-error,.p-icon--warning,.p-icon--external-link,.p-icon--contextual-menu,.p-icon--menu,.p-icon--code,.p-icon--copy,.p-icon--search,.p-icon--success,.p-icon--pass,.p-icon--share,.p-icon--user,.p-icon--question,.p-icon--spinner,.p-icon--facebook,.p-icon--google,.p-icon--twitter,.p-icon--instagram,.p-icon--linkedin,.p-icon--youtube,.p-icon--canonical,.p-icon--ubuntu,.p-icon--edit,.p-icon--status-failed,.p-icon--status-in-progress,.p-icon--status-queued,.p-icon--status-succeeded,.p-icon--status-waiting,.p-icon--timed-out,.p-icon--success-muted,.p-icon--locked,.p-icon--compose-machine,.p-icon--account,.p-icon--mount,.p-icon--unmount,.p-icon--partition,.p-icon--debug,.p-icon--remove,.p-icon--settings,.p-icon--sync,.p-icon--system-shutdown,.p-icon--tags,.p-icon--logical-volume,.p-icon--pending,.p-icon--running,.p-icon--power-on,.p-icon--power-off{height:1rem;width:1rem;background-position:center;background-repeat:no-repeat;background-size:contain;display:inline-block;margin:0;overflow:hidden;padding:0;position:relative;text-indent:999em;top:-2px;vertical-align:sub}.p-icon--plus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='9' width='9' viewBox='0 0 9 9'%3E%3Cg fill='rgba(102,102,102,0.999999)' fill-rule='evenodd'%3E%3Cpath d='M4 0h1v9H4z'/%3E%3Cpath d='M0 5V4h9v1z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--plus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='9' width='9' viewBox='0 0 9 9'%3E%3Cg fill='rgba(205,205,205,0.999999)' fill-rule='evenodd'%3E%3Cpath d='M4 0h1v9H4z'/%3E%3Cpath d='M0 5V4h9v1z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--minus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='9' width='9' viewBox='0 0 9 9'%3E%3Cpath d='M0 5V4h9v1z' fill='rgba(102,102,102,0.999999)' fill-rule='evenodd'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--minus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='9' width='9' viewBox='0 0 9 9'%3E%3Cpath d='M0 5V4h9v1z' fill='rgba(205,205,205,0.999999)' fill-rule='evenodd'/%3E%3C/svg%3E")}.p-icon--expand{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='15' width='15' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a'/%3E%3Cpath stroke='rgba(102,102,102,0.999999)' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='rgba(102,102,102,0.999999)' d='M7 4h1v7H7z'/%3E%3Cpath fill='rgba(102,102,102,0.999999)' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--expand{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='15' width='15' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a'/%3E%3Cpath stroke='rgba(205,205,205,0.999999)' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='rgba(205,205,205,0.999999)' d='M7 4h1v7H7z'/%3E%3Cpath fill='rgba(205,205,205,0.999999)' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--collapse{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='15' width='15' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a'/%3E%3Cpath stroke='rgba(102,102,102,0.999999)' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='rgba(102,102,102,0.999999)' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--collapse{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='15' width='15' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cpath id='a' d='M0 0h15v15H0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cuse xlink:href='%23a'/%3E%3Cpath stroke='rgba(205,205,205,0.999999)' d='M.5.5h14v14H.5z'/%3E%3Cpath fill='rgba(205,205,205,0.999999)' d='M4 8V7h7v1z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--chevron{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='4' width='10' viewBox='0 0 10 4'%3E%3Cpath d='M3.637 3.1377c-.518-.365-1.052-.7781-1.601-1.238C1.487 1.4412.947.9479.415.4225.273.2821.134.1404 0 0h1.541c.304.2888.62.5709.947.8463.1379.1161.2768.2297.4168.3408.1636.1297.3286.2558.4954.3783.0852.0625.1708.1241.2568.1846.397.2821.935.6257 1.315.8476h.054c.38-.2219.918-.5655 1.315-.8476.398-.2807.788-.5829 1.169-.9037.327-.2754.643-.5575.947-.8463h1.541c-.135.1404-.273.2821-.415.4225-.532.5254-1.072 1.0187-1.621 1.4772-.55.4599-1.083.873-1.601 1.238-.519.36497-.973.6524-1.362.8623-.39-.2099-.844-.49733-1.362-.8623z' fill='rgba(102,102,102,0.999999)' fill-rule='evenodd'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--chevron{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='4' width='10' viewBox='0 0 10 4'%3E%3Cpath d='M3.637 3.1377c-.518-.365-1.052-.7781-1.601-1.238C1.487 1.4412.947.9479.415.4225.273.2821.134.1404 0 0h1.541c.304.2888.62.5709.947.8463.1379.1161.2768.2297.4168.3408.1636.1297.3286.2558.4954.3783.0852.0625.1708.1241.2568.1846.397.2821.935.6257 1.315.8476h.054c.38-.2219.918-.5655 1.315-.8476.398-.2807.788-.5829 1.169-.9037.327-.2754.643-.5575.947-.8463h1.541c-.135.1404-.273.2821-.415.4225-.532.5254-1.072 1.0187-1.621 1.4772-.55.4599-1.083.873-1.601 1.238-.519.36497-.973.6524-1.362.8623-.39-.2099-.844-.49733-1.362-.8623z' fill='rgba(205,205,205,0.999999)' fill-rule='evenodd'/%3E%3C/svg%3E")}.p-icon--close{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='90' width='90'%3E%3Cg color='%23%7B$color%7D'%3E%3Cpath fill='none' d='M0 0h90v90H0z'/%3E%3Cpath d='M14.52 6L6 14.52 36.48 45 6 75.49 14.52 84 45 53.52 75.48 84 84 75.49 53.52 45 84 14.52 75.48 6 45 36.49z' fill='rgba(102,102,102,0.999999)'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--close{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='90' width='90'%3E%3Cg color='%23%7B$color%7D'%3E%3Cpath fill='none' d='M0 0h90v90H0z'/%3E%3Cpath d='M14.52 6L6 14.52 36.48 45 6 75.49 14.52 84 45 53.52 75.48 84 84 75.49 53.52 45 84 14.52 75.48 6 45 36.49z' fill='rgba(205,205,205,0.999999)'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--help{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cpath fill='none' color='%23%7B$color%7D' d='M-.00296.00236h16.00008v16.00008H-.00296z'/%3E%3Cpath d='M8.00375 5.22905q-.4309 0-.82487.1108-.39397.0985-.82487.33243l-.4186-1.145q.4556-.25855 1.0342-.4063.59098-.16004 1.20657-.16004.73867 0 1.2188.2093.48016.19698.76334.50477.28317.3078.39397.6772.1108.36937.1108.7141 0 .4186-.16003.751-.14773.3324-.38165.61558t-.50477.5417q-.27086.24625-.5048.5171-.2339.25854-.39395.554-.14775.2955-.14775.66485v.14773q0 .07388.01233.14775H7.302q-.0246-.1231-.03695-.25852-.01234-.14774-.01234-.27085 0-.4063.1355-.7264.13543-.3201.3447-.59098t.4432-.50477q.24625-.23393.45555-.46785.2093-.2339.34473-.48014.13543-.24624.13543-.5417 0-.4063-.2832-.66485-.2709-.2709-.8249-.2709zm.98 6.78005q0 .4309-.28316.70172-.2832.27086-.7018.27086-.4063 0-.70176-.27086-.28317-.27085-.28317-.70173 0-.4309.28317-.7018.2955-.2832.70175-.2832.4186 0 .70173.28317.28313.27086.28313.70174z' fill='rgba(102,102,102,0.999999)'/%3E%3Cpath d='M2.06372 1.00237c-.59096 0-1.0664.47546-1.0664 1.0664v11.8674c0 .59095.47545 1.0664 1.0664 1.0664h11.8674c.59094 0 1.0664-.47546 1.0664-1.0664V2.06877c0-.59096-.47547-1.0664-1.0664-1.0664zm-.0664 1h12.00006v12.00006H1.99732z' fill='rgba(102,102,102,0.999999)' color='%23%7B$color%7D'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--help{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cpath fill='none' color='%23%7B$color%7D' d='M-.00296.00236h16.00008v16.00008H-.00296z'/%3E%3Cpath d='M8.00375 5.22905q-.4309 0-.82487.1108-.39397.0985-.82487.33243l-.4186-1.145q.4556-.25855 1.0342-.4063.59098-.16004 1.20657-.16004.73867 0 1.2188.2093.48016.19698.76334.50477.28317.3078.39397.6772.1108.36937.1108.7141 0 .4186-.16003.751-.14773.3324-.38165.61558t-.50477.5417q-.27086.24625-.5048.5171-.2339.25854-.39395.554-.14775.2955-.14775.66485v.14773q0 .07388.01233.14775H7.302q-.0246-.1231-.03695-.25852-.01234-.14774-.01234-.27085 0-.4063.1355-.7264.13543-.3201.3447-.59098t.4432-.50477q.24625-.23393.45555-.46785.2093-.2339.34473-.48014.13543-.24624.13543-.5417 0-.4063-.2832-.66485-.2709-.2709-.8249-.2709zm.98 6.78005q0 .4309-.28316.70172-.2832.27086-.7018.27086-.4063 0-.70176-.27086-.28317-.27085-.28317-.70173 0-.4309.28317-.7018.2955-.2832.70175-.2832.4186 0 .70173.28317.28313.27086.28313.70174z' fill='rgba(205,205,205,0.999999)'/%3E%3Cpath d='M2.06372 1.00237c-.59096 0-1.0664.47546-1.0664 1.0664v11.8674c0 .59095.47545 1.0664 1.0664 1.0664h11.8674c.59094 0 1.0664-.47546 1.0664-1.0664V2.06877c0-.59096-.47547-1.0664-1.0664-1.0664zm-.0664 1h12.00006v12.00006H1.99732z' fill='rgba(205,205,205,0.999999)' color='%23%7B$color%7D'/%3E%3C/svg%3E")}.p-icon--information,.p-icon--info{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cg color='%23000'%3E%3Cpath d='M2.07 1c-.59095 0-1.0664.47546-1.0664 1.0664v11.867c0 .59095.47546 1.0664 1.0664 1.0664h11.867c.59095 0 1.0664-.47546 1.0664-1.0664V2.0664C15.0034 1.47545 14.52794 1 13.937 1zm-.0664 1h12v12h-12z' fill='rgba(102,102,102,0.999999)'/%3E%3Cpath d='M7 4v2h2V4zm0 3v5h2V7z' fill='rgba(102,102,102,0.999999)'/%3E%3Cpath fill='none' d='M0 0h16v16H0z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--information,[class$="--dark"] .p-icon--info{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cg color='%23000'%3E%3Cpath d='M2.07 1c-.59095 0-1.0664.47546-1.0664 1.0664v11.867c0 .59095.47546 1.0664 1.0664 1.0664h11.867c.59095 0 1.0664-.47546 1.0664-1.0664V2.0664C15.0034 1.47545 14.52794 1 13.937 1zm-.0664 1h12v12h-12z' fill='rgba(205,205,205,0.999999)'/%3E%3Cpath d='M7 4v2h2V4zm0 3v5h2V7z' fill='rgba(205,205,205,0.999999)'/%3E%3Cpath fill='none' d='M0 0h16v16H0z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--delete{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cg color='%23000'%3E%3Cpath opacity='.114' fill='none' d='M0 0h16v16H0z'/%3E%3Cpath opacity='.114' fill='none' d='M0 0h16v16H0z'/%3E%3Cpath opacity='.114' fill='none' d='M0 0h16v16H0z'/%3E%3Cpath style='text-decoration-color:%23000000;isolation:auto;mix-blend-mode:normal;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none' d='M2 4v1h2V4H2zm11 0v1h2V4h-2zM2 6v8.5059c0 .82235.67765 1.5 1.5 1.5h10c.82235 0 1.5-.67765 1.5-1.5V6h-2v7.5059c0 .28565-.21435.5-.5.5h-8c-.28565 0-.5-.21435-.5-.5V6H2z' fill='rgba(102,102,102,0.999999)' solid-color='%23000000'/%3E%3Cpath d='M6 0v3h1V1h3v2h1V0H6zM5 6h1v6H5zm3 0h1v6H8zm3 0h1v6h-1z' fill='rgba(102,102,102,0.999999)'/%3E%3Cpath style='text-decoration-color:%23000000;isolation:auto;mix-blend-mode:normal;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none' d='M3.5 2C2.67765 2 2 2.67764 2 3.5V5h13V3.5c0-.82236-.67765-1.5-1.5-1.5h-10zM2 6v8.0059h2V6H2zm11 0v8.0059h2V6h-2z' fill='rgba(102,102,102,0.999999)' solid-color='%23000000'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--delete{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cg color='%23000'%3E%3Cpath opacity='.114' fill='none' d='M0 0h16v16H0z'/%3E%3Cpath opacity='.114' fill='none' d='M0 0h16v16H0z'/%3E%3Cpath opacity='.114' fill='none' d='M0 0h16v16H0z'/%3E%3Cpath style='text-decoration-color:%23000000;isolation:auto;mix-blend-mode:normal;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none' d='M2 4v1h2V4H2zm11 0v1h2V4h-2zM2 6v8.5059c0 .82235.67765 1.5 1.5 1.5h10c.82235 0 1.5-.67765 1.5-1.5V6h-2v7.5059c0 .28565-.21435.5-.5.5h-8c-.28565 0-.5-.21435-.5-.5V6H2z' fill='rgba(205,205,205,0.999999)' solid-color='%23000000'/%3E%3Cpath d='M6 0v3h1V1h3v2h1V0H6zM5 6h1v6H5zm3 0h1v6H8zm3 0h1v6h-1z' fill='rgba(205,205,205,0.999999)'/%3E%3Cpath style='text-decoration-color:%23000000;isolation:auto;mix-blend-mode:normal;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none' d='M3.5 2C2.67765 2 2 2.67764 2 3.5V5h13V3.5c0-.82236-.67765-1.5-1.5-1.5h-10zM2 6v8.0059h2V6H2zm11 0v8.0059h2V6h-2z' fill='rgba(205,205,205,0.999999)' solid-color='%23000000'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--error,.p-icon--power-error{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16.000017 16.000017' width='16'%3E%3Cg stroke-width='1.5' color='%23000'%3E%3Cpath d='M8 0C3.5906 0 0 3.5906 0 8s3.5906 8 8 8 8-3.5906 8-8-3.5906-8-8-8z' fill='%23c7162b'/%3E%3Cpath fill='none' d='M0 0h16v16H0z'/%3E%3Cpath d='M5 5l6 6m0-6l-6 6' stroke-dashoffset='.8' stroke='%23fff' fill='none'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--error,[class$="--dark"] .p-icon--power-error{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16.000017 16.000017' width='16'%3E%3Cg stroke-width='1.5' color='%23000'%3E%3Cpath d='M8 0C3.5906 0 0 3.5906 0 8s3.5906 8 8 8 8-3.5906 8-8-3.5906-8-8-8z' fill='%23c7162b'/%3E%3Cpath fill='none' d='M0 0h16v16H0z'/%3E%3Cpath d='M5 5l6 6m0-6l-6 6' stroke-dashoffset='.8' stroke='%23fff' fill='none'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--warning{background-image:url("data:image/svg+xml,%3Csvg xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/' id='svg5918' height='16' viewBox='0 0 16.000017 16.000017' width='16' version='1.1'%3E%3Cg id='layer1' transform='translate(-182.94 -560.72)'%3E%3Cg id='g6413' transform='translate(-769.06 364.36)'%3E%3Crect id='rect6415' style='color:%23000000' stroke-dashoffset='0.6' height='16' width='16' stroke-dasharray='1.5, 1.50000000000000000' y='196.36' x='952' stroke-width='1.5' fill='none'/%3E%3Cpath id='path4389' stroke-linejoin='round' style='color:%23000000' fill='%23f99b11' transform='matrix(2.28 0 0 2.437 -1228.8 -294.16)' stroke='%23f99b11' stroke-width='.84848' d='m963.07 207.03h-6.1498l3.08-5.33z'/%3E%3Cpath id='rect4391' stroke-linejoin='round' style='color:%23000000' d='m7 5v5h2v-5h-2zm0 6v2h2v-2h-2z' transform='translate(952 196.36)' stroke-width='2' fill='%23111'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--warning{background-image:url("data:image/svg+xml,%3Csvg xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/' id='svg5918' height='16' viewBox='0 0 16.000017 16.000017' width='16' version='1.1'%3E%3Cg id='layer1' transform='translate(-182.94 -560.72)'%3E%3Cg id='g6413' transform='translate(-769.06 364.36)'%3E%3Crect id='rect6415' style='color:%23000000' stroke-dashoffset='0.6' height='16' width='16' stroke-dasharray='1.5, 1.50000000000000000' y='196.36' x='952' stroke-width='1.5' fill='none'/%3E%3Cpath id='path4389' stroke-linejoin='round' style='color:%23000000' fill='%23f99b11' transform='matrix(2.28 0 0 2.437 -1228.8 -294.16)' stroke='%23f99b11' stroke-width='.84848' d='m963.07 207.03h-6.1498l3.08-5.33z'/%3E%3Cpath id='rect4391' stroke-linejoin='round' style='color:%23000000' d='m7 5v5h2v-5h-2zm0 6v2h2v-2h-2z' transform='translate(952 196.36)' stroke-width='2' fill='%23111'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.p-icon--external-link{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 16' width='16'%3E%3Cpath fill='none' d='M.00344.00146h16.00008v16.00008H.00344z'/%3E%3Cpath d='M8.58148 2.06814S12.20818.6308 15.99952-.0052c.002.00066.002.00066.002.002v.00598h.002c-.70734 3.96468-2.08 7.40603-2.08 7.40603l-5.34205-5.34z' fill='rgba(102,102,102,0.999999)'/%3E%3Cpath stroke-linejoin='round' d='M7.8708 8.12817l4.44537-4.4447' stroke='rgba(102,102,102,0.999999)' stroke-width='2.00001' fill='none'/%3E%3Cpath d='M1.50345 2.00147c-.822 0-1.5.678-1.5 1.5v11.00006c0 .822.678 1.5 1.5 1.5H12.5035c.822 0 1.5-.678 1.5-1.5V9.0015h-2v4.50003c0 .286-.21467.5-.5.5H2.50345c-.28533 0-.5-.214-.5-.5V4.50148c0-.28533.21467-.5.5-.5h4.50002v-2H1.50345z' fill='rgba(102,102,102,0.999999)'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--external-link{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 16' width='16'%3E%3Cpath fill='none' d='M.00344.00146h16.00008v16.00008H.00344z'/%3E%3Cpath d='M8.58148 2.06814S12.20818.6308 15.99952-.0052c.002.00066.002.00066.002.002v.00598h.002c-.70734 3.96468-2.08 7.40603-2.08 7.40603l-5.34205-5.34z' fill='rgba(205,205,205,0.999999)'/%3E%3Cpath stroke-linejoin='round' d='M7.8708 8.12817l4.44537-4.4447' stroke='rgba(205,205,205,0.999999)' stroke-width='2.00001' fill='none'/%3E%3Cpath d='M1.50345 2.00147c-.822 0-1.5.678-1.5 1.5v11.00006c0 .822.678 1.5 1.5 1.5H12.5035c.822 0 1.5-.678 1.5-1.5V9.0015h-2v4.50003c0 .286-.21467.5-.5.5H2.50345c-.28533 0-.5-.214-.5-.5V4.50148c0-.28533.21467-.5.5-.5h4.50002v-2H1.50345z' fill='rgba(205,205,205,0.999999)'/%3E%3C/svg%3E")}.p-icon--contextual-menu{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='14' width='6' viewBox='0 0 6 14'%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cpath d='M-10-6h26v26h-26z'/%3E%3Cpath fill-rule='nonzero' fill='rgba(102,102,102,0.999999)' d='M0 0v2h6V0M0 6v2h6V6m-6 6v2h6v-2'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--contextual-menu{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='14' width='6' viewBox='0 0 6 14'%3E%3Cg fill-rule='evenodd' fill='none'%3E%3Cpath d='M-10-6h26v26h-26z'/%3E%3Cpath fill-rule='nonzero' fill='rgba(205,205,205,0.999999)' d='M0 0v2h6V0M0 6v2h6V6m-6 6v2h6v-2'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--menu{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='19' width='25' viewBox='0 0 79 60'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='rgba(102,102,102,0.999999)' d='M.995 0h78v12h-78zm0 24h78v12h-78zm0 24h78v12h-78z'/%3E%3Cpath d='M-5.005-15h90v90h-90z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--menu{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='19' width='25' viewBox='0 0 79 60'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='rgba(205,205,205,0.999999)' d='M.995 0h78v12h-78zm0 24h78v12h-78zm0 24h78v12h-78z'/%3E%3Cpath d='M-5.005-15h90v90h-90z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--code{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E %3Cpath opacity='.21171' fill='none' d='M.00504.00156h16.00008v16.00008H.00504z'/%3E%3Cpath d='M2.67105 2.00157c-1.7778 0-2.666.0013-2.666 2.0684v8.86566c0 2.067.88823 2.066 2.666 2.066H13.3391c1.77802 0 2.66602.001 2.66602-2.066V4.13638c0-2.1334-.888-2.1348-2.666-2.1348H2.67104zm1.2793 1.8906h1.10162V5.0348c.3388.0282.6419.0778.9101.1484.2683.0636.4795.1279.6348.1914l-.2637 1.0469c-.2047-.0776-.4481-.152-.7304-.2226-.2754-.0706-.5931-.1055-.9532-.1055-.3812 0-.6687.0717-.8593.2129-.1906.1341-.2852.3205-.2852.5605 0 .1412.0275.2606.084.3594.0565.0918.1429.1763.2558.2539.113.0706.2498.1423.4122.2129.1623.0635.346.1306.5507.2012.2895.1129.5603.2323.8145.3594.2612.12.4871.2661.6777.4355.1906.1624.3394.3561.4453.582.113.2259.17.4941.17.8045 0 .466-.1442.86802-.4336 1.20702-.2895.339-.7661.558-1.4297.657v1.324h-1.1016v-1.293c-.5083-.036-.9225-.103-1.24022-.201-.3106-.106-.542-.201-.6973-.286l.3594-1.005c.2259.113.4968.214.8144.306.3248.092.6922.139 1.1016.139.4871 0 .82232-.072 1.00592-.213.1906-.148.2871-.342.2871-.582 0-.1624-.0396-.3039-.1172-.4239-.0777-.12-.1869-.2266-.3281-.3183-.1412-.0918-.3102-.1763-.5079-.2539-.1906-.0777-.4037-.1575-.6367-.2422-.2188-.0777-.4374-.16682-.6562-.26572-.2118-.0988-.40562-.2181-.58212-.3593-.1694-.1483-.3062-.3246-.4121-.5293s-.1601-.4555-.1601-.752c0-.4871.1461-.9014.4355-1.2402.2895-.3459.734-.5672 1.334-.666V3.89217zm4.05473 8.09545h3.99002v.996H8.00508v-.996z' fill='rgba(102,102,102,0.999999)'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--code{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E %3Cpath opacity='.21171' fill='none' d='M.00504.00156h16.00008v16.00008H.00504z'/%3E%3Cpath d='M2.67105 2.00157c-1.7778 0-2.666.0013-2.666 2.0684v8.86566c0 2.067.88823 2.066 2.666 2.066H13.3391c1.77802 0 2.66602.001 2.66602-2.066V4.13638c0-2.1334-.888-2.1348-2.666-2.1348H2.67104zm1.2793 1.8906h1.10162V5.0348c.3388.0282.6419.0778.9101.1484.2683.0636.4795.1279.6348.1914l-.2637 1.0469c-.2047-.0776-.4481-.152-.7304-.2226-.2754-.0706-.5931-.1055-.9532-.1055-.3812 0-.6687.0717-.8593.2129-.1906.1341-.2852.3205-.2852.5605 0 .1412.0275.2606.084.3594.0565.0918.1429.1763.2558.2539.113.0706.2498.1423.4122.2129.1623.0635.346.1306.5507.2012.2895.1129.5603.2323.8145.3594.2612.12.4871.2661.6777.4355.1906.1624.3394.3561.4453.582.113.2259.17.4941.17.8045 0 .466-.1442.86802-.4336 1.20702-.2895.339-.7661.558-1.4297.657v1.324h-1.1016v-1.293c-.5083-.036-.9225-.103-1.24022-.201-.3106-.106-.542-.201-.6973-.286l.3594-1.005c.2259.113.4968.214.8144.306.3248.092.6922.139 1.1016.139.4871 0 .82232-.072 1.00592-.213.1906-.148.2871-.342.2871-.582 0-.1624-.0396-.3039-.1172-.4239-.0777-.12-.1869-.2266-.3281-.3183-.1412-.0918-.3102-.1763-.5079-.2539-.1906-.0777-.4037-.1575-.6367-.2422-.2188-.0777-.4374-.16682-.6562-.26572-.2118-.0988-.40562-.2181-.58212-.3593-.1694-.1483-.3062-.3246-.4121-.5293s-.1601-.4555-.1601-.752c0-.4871.1461-.9014.4355-1.2402.2895-.3459.734-.5672 1.334-.666V3.89217zm4.05473 8.09545h3.99002v.996H8.00508v-.996z' fill='rgba(205,205,205,0.999999)'/%3E%3C/svg%3E")}.p-icon--copy{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='17' width='16' viewBox='0 0 16 17'%3E%3Cg fill='rgba(102,102,102,0.999999)' fill-rule='evenodd'%3E%3Cpath d='M10.587 1.8h3.259c.472 0 .846.053 1.161.1998s.567.4122.716.7478c.298.671.266 1.4917.277 2.6133V13.84c-.011 1.121.021 1.942-.277 2.613-.149.335-.401.6-.716.747s-.689.2-1.161.2H4.1537c-.4721 0-.8457-.053-1.1606-.2s-.5672-.412-.7163-.747c-.2461-.554-.2674-1.21-.2732-2.053h.8033c.0162.854.0576 1.428.1781 1.707.0717.166.1513.26.3355.348s.477.145.8967.145h9.5658c.42 0 .712-.057.897-.145.184-.088.263-.182.335-.348.143-.331.175-1.081.185-2.222V5.3093c-.01-1.1377-.042-1.8856-.185-2.2162-.072-.1657-.151-.2603-.335-.3484-.185-.0882-.477-.1447-.897-.1447h-3.538c.182-.2253.304-.5001.342-.8zm-3.1744 0c.038.2999.1601.5747.3417.8H4.2172c-.4197 0-.7125.0565-.8967.1447-.1842.0881-.2638.1828-.3355.3484-.1431.3307-.1746 1.0785-.185 2.2162V10.8H2V5.3609c.0104-1.1216-.0214-1.9423.2768-2.6133.1491-.3356.4014-.601.7163-.7478S3.6816 1.8 4.1537 1.8h3.2589z'/%3E%3Cpath fill-rule='nonzero' d='M11.3982 1.8v2.4009h-4.798V1.8h1.5997c0 .4469.353.8003.7992.8003.4463 0 .7997-.3534.7997-.8003h1.5994z'/%3E%3Cpath fill-rule='nonzero' d='M10.6 1.5996c0 .879-.7215 1.6-1.6002 1.6-.8788 0-1.5998-.721-1.5998-1.6C7.4.72063 8.121 0 8.9998 0 9.8785 0 10.6.72063 10.6 1.5996zm-.8002 0c0-.4464-.3533-.7996-.8-.7996-.4468 0-.8001.3532-.8001.7996 0 .4465.3533.8.8001.8.4467 0 .8-.3535.8-.8z'/%3E%3Cpath d='M8.4 7.2H14v1H8.4zm0 2.4H14v1H8.4zM10 12h4v1h-4z'/%3E%3Cpath fill-rule='nonzero' d='M4.40017 10s2.1338 1.0262 3.9998 2.5047h-.0029c-1.9683 1.5257-3.9971 2.4955-3.9971 2.4955L4.40014 10z'/%3E%3Cpath d='M0 11.6h4.4v2H0z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--copy{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='17' width='16' viewBox='0 0 16 17'%3E%3Cg fill='rgba(205,205,205,0.999999)' fill-rule='evenodd'%3E%3Cpath d='M10.587 1.8h3.259c.472 0 .846.053 1.161.1998s.567.4122.716.7478c.298.671.266 1.4917.277 2.6133V13.84c-.011 1.121.021 1.942-.277 2.613-.149.335-.401.6-.716.747s-.689.2-1.161.2H4.1537c-.4721 0-.8457-.053-1.1606-.2s-.5672-.412-.7163-.747c-.2461-.554-.2674-1.21-.2732-2.053h.8033c.0162.854.0576 1.428.1781 1.707.0717.166.1513.26.3355.348s.477.145.8967.145h9.5658c.42 0 .712-.057.897-.145.184-.088.263-.182.335-.348.143-.331.175-1.081.185-2.222V5.3093c-.01-1.1377-.042-1.8856-.185-2.2162-.072-.1657-.151-.2603-.335-.3484-.185-.0882-.477-.1447-.897-.1447h-3.538c.182-.2253.304-.5001.342-.8zm-3.1744 0c.038.2999.1601.5747.3417.8H4.2172c-.4197 0-.7125.0565-.8967.1447-.1842.0881-.2638.1828-.3355.3484-.1431.3307-.1746 1.0785-.185 2.2162V10.8H2V5.3609c.0104-1.1216-.0214-1.9423.2768-2.6133.1491-.3356.4014-.601.7163-.7478S3.6816 1.8 4.1537 1.8h3.2589z'/%3E%3Cpath fill-rule='nonzero' d='M11.3982 1.8v2.4009h-4.798V1.8h1.5997c0 .4469.353.8003.7992.8003.4463 0 .7997-.3534.7997-.8003h1.5994z'/%3E%3Cpath fill-rule='nonzero' d='M10.6 1.5996c0 .879-.7215 1.6-1.6002 1.6-.8788 0-1.5998-.721-1.5998-1.6C7.4.72063 8.121 0 8.9998 0 9.8785 0 10.6.72063 10.6 1.5996zm-.8002 0c0-.4464-.3533-.7996-.8-.7996-.4468 0-.8001.3532-.8001.7996 0 .4465.3533.8.8001.8.4467 0 .8-.3535.8-.8z'/%3E%3Cpath d='M8.4 7.2H14v1H8.4zm0 2.4H14v1H8.4zM10 12h4v1h-4z'/%3E%3Cpath fill-rule='nonzero' d='M4.40017 10s2.1338 1.0262 3.9998 2.5047h-.0029c-1.9683 1.5257-3.9971 2.4955-3.9971 2.4955L4.40014 10z'/%3E%3Cpath d='M0 11.6h4.4v2H0z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--search{background-image:url("data:image/svg+xml,%3Csvg xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/' id='svg5918' height='16' viewBox='0 0 16 15.999999' width='16' version='1.1'%3E%3Cg id='layer1' transform='translate(-182.94 -560.72)'%3E%3Cg id='g5346' transform='translate(-769.06 404.36)'%3E%3Cg id='g4355' transform='matrix(.66667 0 0 .66667 877.33 -129.21)'%3E%3Crect id='rect4357' opacity='.05' style='color:%23000000' transform='scale(1,-1)' height='24' width='24' y='-452.36' x='112' fill='none'/%3E%3Cpath id='path4359' d='m129.93 444.03-2.2704 2.2732 6.07 6.0699l2.27-2.27z' fill='rgba(102,102,102,0.999999)'/%3E%3Cellipse id='ellipse4361' stroke-linejoin='round' stroke='rgba(102,102,102,0.999999)' d='m 131.97944,438.86221 a 9.4794664,9.4794722 0 0 1 -9.47946,9.47948 9.4794664,9.4794722 0 0 1 -9.47947,-9.47948 9.4794664,9.4794722 0 0 1 9.47947,-9.47947 9.4794664,9.4794722 0 0 1 9.47946,9.47947 z' rx='9.4795' ry='9.4795' cy='438.86' cx='122.5' stroke-linecap='round' stroke-width='2.041' fill='none'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--search{background-image:url("data:image/svg+xml,%3Csvg xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/' id='svg5918' height='16' viewBox='0 0 16 15.999999' width='16' version='1.1'%3E%3Cg id='layer1' transform='translate(-182.94 -560.72)'%3E%3Cg id='g5346' transform='translate(-769.06 404.36)'%3E%3Cg id='g4355' transform='matrix(.66667 0 0 .66667 877.33 -129.21)'%3E%3Crect id='rect4357' opacity='.05' style='color:%23000000' transform='scale(1,-1)' height='24' width='24' y='-452.36' x='112' fill='none'/%3E%3Cpath id='path4359' d='m129.93 444.03-2.2704 2.2732 6.07 6.0699l2.27-2.27z' fill='rgba(205,205,205,0.999999)'/%3E%3Cellipse id='ellipse4361' stroke-linejoin='round' stroke='rgba(205,205,205,0.999999)' d='m 131.97944,438.86221 a 9.4794664,9.4794722 0 0 1 -9.47946,9.47948 9.4794664,9.4794722 0 0 1 -9.47947,-9.47948 9.4794664,9.4794722 0 0 1 9.47947,-9.47947 9.4794664,9.4794722 0 0 1 9.47946,9.47947 z' rx='9.4795' ry='9.4795' cy='438.86' cx='122.5' stroke-linecap='round' stroke-width='2.041' fill='none'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.p-icon--success,.p-icon--pass{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17'%3E%3Cg transform='translate(1 1)' fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='%230f8420' stroke-width='1.5' fill='%230f8420' cx='7.25001' cy='7.25001' r='7.25001'/%3E%3Cpath fill='%23fff' d='M11.0503 4.17345l-.0659.0577-4.73475 4.14722-2.77557-2.38094-.83906.94888 3.61532 3.80373L11.75 4.96278l-.6997-.7893'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--success,[class$="--dark"] .p-icon--pass{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17'%3E%3Cg transform='translate(1 1)' fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='%230f8420' stroke-width='1.5' fill='%230f8420' cx='7.25001' cy='7.25001' r='7.25001'/%3E%3Cpath fill='%23fff' d='M11.0503 4.17345l-.0659.0577-4.73475 4.14722-2.77557-2.38094-.83906.94888 3.61532 3.80373L11.75 4.96278l-.6997-.7893'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--share{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E %3Cg color='%23000'%3E%3Cpath style='block-progression:tb;text-decoration-line:none;text-indent:0;text-transform:none' d='M11.43043.01183c-.54808.024-1.08607.2379-1.50094.59685l-.9515.79772v.57328c0 .54444-.05096 1.03708-.15367 1.48908-.1027.452-.2868.83975-.54365 1.1582-.24655.32874-.57748.58174-.99868.7564-.4212.1849-.95268.27773-1.5896.27773-.6228 0-1.073-.0409-1.56896-.1123-.92847.5446-1.36282 1.3827-1.36282 2.4937s.52968 1.73186 1.36287 2.52913c.4423-.05295 1.0325-.07682 1.56895-.07682.6369 0 1.1684.09284 1.5896.27776.4212.1746.75213.42763.99866.7564.25683.3184.44093.70027.54365 1.15227.10274.452.15365.95054.15365 1.495v.41364l.9219.78c.48745.4409 1.15734.6736 1.8132.6298.65584-.0438 1.2888-.36366 1.7133-.86557.42444-.5019.63465-1.1792.56896-1.8332-.06566-.654-.4064-1.27594-.92213-1.6834l-.65002-.54956h-1.6959c-.4412 0-.8487-.06145-1.2291-.18316-.38035-.1141-.71126-.2985-.99273-.54956-.27386-.2434-.49027-.55332-.65002-.93368-.1597-.3728-.24224-.8182-.24224-1.3355 0-.51726.08256-.96694.2423-1.34734.15977-.38032.37618-.69027.65004-.9336.28146-.24346.6124-.42785.99274-.54956.38036-.1141.78787-.1713 1.22914-.17137h1.5364l.82144-.68547c.79765-.6458 1.11565-1.82208.75205-2.78188-.3637-.95974-1.38132-1.63-2.40665-1.58508z' fill='rgba(102,102,102,0.999999)'/%3E%3Cpath opacity='.1' fill='none' d='M-.00296.00516h16.00008v16.00008H-.00296z'/%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--share{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E %3Cg color='%23000'%3E%3Cpath style='block-progression:tb;text-decoration-line:none;text-indent:0;text-transform:none' d='M11.43043.01183c-.54808.024-1.08607.2379-1.50094.59685l-.9515.79772v.57328c0 .54444-.05096 1.03708-.15367 1.48908-.1027.452-.2868.83975-.54365 1.1582-.24655.32874-.57748.58174-.99868.7564-.4212.1849-.95268.27773-1.5896.27773-.6228 0-1.073-.0409-1.56896-.1123-.92847.5446-1.36282 1.3827-1.36282 2.4937s.52968 1.73186 1.36287 2.52913c.4423-.05295 1.0325-.07682 1.56895-.07682.6369 0 1.1684.09284 1.5896.27776.4212.1746.75213.42763.99866.7564.25683.3184.44093.70027.54365 1.15227.10274.452.15365.95054.15365 1.495v.41364l.9219.78c.48745.4409 1.15734.6736 1.8132.6298.65584-.0438 1.2888-.36366 1.7133-.86557.42444-.5019.63465-1.1792.56896-1.8332-.06566-.654-.4064-1.27594-.92213-1.6834l-.65002-.54956h-1.6959c-.4412 0-.8487-.06145-1.2291-.18316-.38035-.1141-.71126-.2985-.99273-.54956-.27386-.2434-.49027-.55332-.65002-.93368-.1597-.3728-.24224-.8182-.24224-1.3355 0-.51726.08256-.96694.2423-1.34734.15977-.38032.37618-.69027.65004-.9336.28146-.24346.6124-.42785.99274-.54956.38036-.1141.78787-.1713 1.22914-.17137h1.5364l.82144-.68547c.79765-.6458 1.11565-1.82208.75205-2.78188-.3637-.95974-1.38132-1.63-2.40665-1.58508z' fill='rgba(205,205,205,0.999999)'/%3E%3Cpath opacity='.1' fill='none' d='M-.00296.00516h16.00008v16.00008H-.00296z'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--user{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cpath opacity='.12' fill='none' color='%23000' d='M15.99712 15.99764V-.00244H-.00296v16.00008z'/%3E%3Cpath style='text-decoration-color:%23000000;font-variant-numeric:normal;text-decoration-line:none;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;text-decoration-style:solid;font-variant-ligatures:normal;isolation:auto;text-transform:none' d='M8 0c-.58695 0-1.1418.10894-1.6514.3285-.5077.20905-.9549.5159-1.3285.9126h-.004c-.3639.39866-.64495.87812-.84373 1.426l-.0004.00078c-.201.54442-.2987 1.142-.2987 1.7858 0 .65375.0976 1.2568.2995 1.8026.1991.53846.4805 1.0121.84333 1.4094h.004c.24914.26457.53124.49022.84138.6767-.2581.0661-.70193.1437-.95618.2367-.87872.3216-1.6169.76604-2.1965 1.3342h-.004c-.57248.57683-1.0024 1.2577-1.2858 2.0294h-.00188c-.26293.76528-.39372 1.5885-.39372 2.4642v1.5719l13.956.022v-1.5719c0-.89103-.13914-1.7007-.41997-2.4673-.2675-.77566-.70083-1.4607-1.2918-2.0383-.57886-.56752-1.3161-1.0114-2.1935-1.3329h-.00085c-.24834-.0934-.68582-.1703-.93915-.2359.31-.18754.58985-.41474.83383-.68152.3734-.39722.66126-.87175.8608-1.4114.20188-.54586.2999-1.1489.2999-1.8026 0-.64467-.0984-1.243-.2999-1.7881-.19934-.54883-.48702-1.0289-.8616-1.4272-.36395-.3976-.8067-.70485-1.3138-.91377C9.14352.10993 8.58846.001 8.00116.001z' fill='rgba(102,102,102,0.999999)' color='%23000' solid-color='%23000000' white-space='normal'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--user{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 15.999999' width='16'%3E%3Cpath opacity='.12' fill='none' color='%23000' d='M15.99712 15.99764V-.00244H-.00296v16.00008z'/%3E%3Cpath style='text-decoration-color:%23000000;font-variant-numeric:normal;text-decoration-line:none;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;text-decoration-style:solid;font-variant-ligatures:normal;isolation:auto;text-transform:none' d='M8 0c-.58695 0-1.1418.10894-1.6514.3285-.5077.20905-.9549.5159-1.3285.9126h-.004c-.3639.39866-.64495.87812-.84373 1.426l-.0004.00078c-.201.54442-.2987 1.142-.2987 1.7858 0 .65375.0976 1.2568.2995 1.8026.1991.53846.4805 1.0121.84333 1.4094h.004c.24914.26457.53124.49022.84138.6767-.2581.0661-.70193.1437-.95618.2367-.87872.3216-1.6169.76604-2.1965 1.3342h-.004c-.57248.57683-1.0024 1.2577-1.2858 2.0294h-.00188c-.26293.76528-.39372 1.5885-.39372 2.4642v1.5719l13.956.022v-1.5719c0-.89103-.13914-1.7007-.41997-2.4673-.2675-.77566-.70083-1.4607-1.2918-2.0383-.57886-.56752-1.3161-1.0114-2.1935-1.3329h-.00085c-.24834-.0934-.68582-.1703-.93915-.2359.31-.18754.58985-.41474.83383-.68152.3734-.39722.66126-.87175.8608-1.4114.20188-.54586.2999-1.1489.2999-1.8026 0-.64467-.0984-1.243-.2999-1.7881-.19934-.54883-.48702-1.0289-.8616-1.4272-.36395-.3976-.8067-.70485-1.3138-.91377C9.14352.10993 8.58846.001 8.00116.001z' fill='rgba(205,205,205,0.999999)' color='%23000' solid-color='%23000000' white-space='normal'/%3E%3C/svg%3E")}.p-icon--question{background-image:url("data:image/svg+xml,%3Csvg xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/' id='svg5918' height='16' viewBox='0 0 16 15.999999' width='16' version='1.1'%3E%3Cg id='layer1' transform='translate(-182.94 -560.72)'%3E%3Cg id='g5346' transform='translate(-769.06 404.36)'%3E%3Cg id='g4401' transform='matrix(.66667 0 0 .66667 877.33 -315.88)'%3E%3Crect id='rect4403' style='color:%23000000' height='24' width='24' y='708.36' x='112' stroke-width='7.5' fill='none'/%3E%3Cpath id='path3229' stroke-linejoin='round' style='color:%23000000' d='m124 708.36c-6.6163 0-12 5.3837-12 12s5.3837 12 12 12 12-5.3837 12-12-5.3837-12-12-12z' stroke-linecap='round' stroke-width='1.875' fill='%23335280'/%3E%3Cpath id='path4405' d='m124.01 716.2q-0.64636 0-1.2373 0.16621-0.59095 0.14774-1.2373 0.49862l-0.62789-1.7175q0.68329-0.38781 1.5512-0.60942 0.88643-0.24007 1.8098-0.24007 1.108 0 1.8282 0.31394 0.72023 0.29548 1.145 0.75716 0.42475 0.46168 0.59095 1.0157 0.16621 0.55401 0.16621 1.0711 0 0.62788-0.24007 1.1265-0.22161 0.49861-0.57249 0.92336t-0.75715 0.81256q-0.40628 0.36934-0.75716 0.77562-0.35088 0.38781-0.59095 0.83103-0.22161 0.44321-0.22161 0.99723 0 0.0923 0 0.2216 0 0.11081 0.0185 0.22161h-1.9206q-0.0369-0.18467-0.0554-0.38781-0.0185-0.22161-0.0185-0.40628 0-0.60942 0.20314-1.0896 0.20314-0.48014 0.51708-0.88642t0.66482-0.75716q0.36934-0.35088 0.68329-0.70176 0.31394-0.35087 0.51708-0.72022 0.20314-0.36934 0.20314-0.81256 0-0.60941-0.42475-0.99723-0.40628-0.40628-1.2373-0.40628z' fill='%23fff'/%3E%3Cpath id='path4407' d='m125.48 726.37q0 0.64635-0.42474 1.0526-0.42475 0.40628-1.0526 0.40628-0.60942 0-1.0526-0.40628-0.42475-0.40628-0.42475-1.0526 0-0.64635 0.42475-1.0526 0.44321-0.42475 1.0526-0.42475 0.62789 0 1.0526 0.42475 0.42474 0.40628 0.42474 1.0526z' fill='%23fff'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}[class$="--dark"] .p-icon--question{background-image:url("data:image/svg+xml,%3Csvg xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/' id='svg5918' height='16' viewBox='0 0 16 15.999999' width='16' version='1.1'%3E%3Cg id='layer1' transform='translate(-182.94 -560.72)'%3E%3Cg id='g5346' transform='translate(-769.06 404.36)'%3E%3Cg id='g4401' transform='matrix(.66667 0 0 .66667 877.33 -315.88)'%3E%3Crect id='rect4403' style='color:%23000000' height='24' width='24' y='708.36' x='112' stroke-width='7.5' fill='none'/%3E%3Cpath id='path3229' stroke-linejoin='round' style='color:%23000000' d='m124 708.36c-6.6163 0-12 5.3837-12 12s5.3837 12 12 12 12-5.3837 12-12-5.3837-12-12-12z' stroke-linecap='round' stroke-width='1.875' fill='%23335280'/%3E%3Cpath id='path4405' d='m124.01 716.2q-0.64636 0-1.2373 0.16621-0.59095 0.14774-1.2373 0.49862l-0.62789-1.7175q0.68329-0.38781 1.5512-0.60942 0.88643-0.24007 1.8098-0.24007 1.108 0 1.8282 0.31394 0.72023 0.29548 1.145 0.75716 0.42475 0.46168 0.59095 1.0157 0.16621 0.55401 0.16621 1.0711 0 0.62788-0.24007 1.1265-0.22161 0.49861-0.57249 0.92336t-0.75715 0.81256q-0.40628 0.36934-0.75716 0.77562-0.35088 0.38781-0.59095 0.83103-0.22161 0.44321-0.22161 0.99723 0 0.0923 0 0.2216 0 0.11081 0.0185 0.22161h-1.9206q-0.0369-0.18467-0.0554-0.38781-0.0185-0.22161-0.0185-0.40628 0-0.60942 0.20314-1.0896 0.20314-0.48014 0.51708-0.88642t0.66482-0.75716q0.36934-0.35088 0.68329-0.70176 0.31394-0.35087 0.51708-0.72022 0.20314-0.36934 0.20314-0.81256 0-0.60941-0.42475-0.99723-0.40628-0.40628-1.2373-0.40628z' fill='%23fff'/%3E%3Cpath id='path4407' d='m125.48 726.37q0 0.64635-0.42474 1.0526-0.42475 0.40628-1.0526 0.40628-0.60942 0-1.0526-0.40628-0.42475-0.40628-0.42475-1.0526 0-0.64635 0.42475-1.0526 0.44321-0.42475 1.0526-0.42475 0.62789 0 1.0526 0.42475 0.42474 0.40628 0.42474 1.0526z' fill='%23fff'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.p-icon--spinner{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24' viewBox='0 0 24 24'%3E%3Ctitle%3Espinner-dark-grey%3C/title%3E%3Cpath d='M7.49 23.123c2.78 1.125 5.978 1.213 8.975 0 4.247-1.72 6.972-5.603 7.424-9.87l-1.136-.118c-.408 3.86-2.875 7.374-6.717 8.93-2.71 1.098-5.605 1.018-8.118 0l-.43 1.058zm-2.21-1.176c-1.913-1.29-3.475-3.148-4.404-5.45C-1.284 11.146.686 5.15 5.28 2.05l.638.946C1.76 5.802-.02 11.228 1.934 16.068c.84 2.086 2.254 3.766 3.985 4.933l-.64.947zm18.61-11.2c-.115-1.088-.38-2.178-.81-3.242-2.478-6.142-9.457-9.11-15.59-6.628l.43 1.057c5.546-2.245 11.86.44 14.103 5.998.388.963.63 1.95.733 2.933l1.134-.12z' fill='rgba(102,102,102,0.999999)' fill-rule='nonzero'/%3E%3C/svg%3E")}[class$="--dark"] .p-icon--spinner{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24' viewBox='0 0 24 24'%3E%3Ctitle%3Espinner-dark-grey%3C/title%3E%3Cpath d='M7.49 23.123c2.78 1.125 5.978 1.213 8.975 0 4.247-1.72 6.972-5.603 7.424-9.87l-1.136-.118c-.408 3.86-2.875 7.374-6.717 8.93-2.71 1.098-5.605 1.018-8.118 0l-.43 1.058zm-2.21-1.176c-1.913-1.29-3.475-3.148-4.404-5.45C-1.284 11.146.686 5.15 5.28 2.05l.638.946C1.76 5.802-.02 11.228 1.934 16.068c.84 2.086 2.254 3.766 3.985 4.933l-.64.947zm18.61-11.2c-.115-1.088-.38-2.178-.81-3.242-2.478-6.142-9.457-9.11-15.59-6.628l.43 1.057c5.546-2.245 11.86.44 14.103 5.998.388.963.63 1.95.733 2.933l1.134-.12z' fill='rgba(205,205,205,0.999999)' fill-rule='nonzero'/%3E%3C/svg%3E")}.p-icon--facebook{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:0 0}.p-icon--facebook:hover{background-position-y:-56px}.p-icon--google{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-55px 0}.p-icon--google:hover{background-position-y:-56px}.p-icon--twitter{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-111px 0}.p-icon--twitter:hover{background-position-y:-56px}.p-icon--instagram{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-167px 0}.p-icon--instagram:hover{background-position-y:-56px}.p-icon--linkedin{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-223px 0}.p-icon--linkedin:hover{background-position-y:-56px}.p-icon--youtube{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-279px 0}.p-icon--youtube:hover{background-position-y:-56px}.p-icon--canonical{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-334px 0}.p-icon--canonical:hover{background-position-y:-56px}.p-icon--ubuntu{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9Ijk2cHgiIHdpZHRoPSI0MzJweCIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDQzMiA5NiI+PCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4yICg0NDQ5NikgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiA8dGl0bGU+dmFuaWxsYS1zb2NpYWwtc3ByaXRlPC90aXRsZT4KIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogPGRlZnM+CiAgPGNpcmNsZSBpZD0icGF0aC0xIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICA8cG9seWdvbiBpZD0icGF0aC0zIiBwb2ludHM9IjAuMDA4ODg3MSAxOC4zNjcgMC4wMDg4ODcxIDAuMDA1OTI0OCAyNi4wNjkgMC4wMDU5MjQ4IDI2LjA2OSAxOC4zNjciLz4KICA8cG9seWdvbiBpZD0icGF0aC01IiBwb2ludHM9IjAgMjguNDc5IDI4LjQ3MyAyOC40NzkgMjguNDczIDAuMDA4OTg1NCAwIDAuMDA4OTg1NCIvPgogIDxjaXJjbGUgaWQ9InBhdGgtNyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgPHBvbHlnb24gaWQ9InBhdGgtOSIgcG9pbnRzPSIwLjAwODg4NzEgMTguMzY3IDAuMDA4ODg3MSAwLjAwNTkyNDggMjYuMDY5IDAuMDA1OTI0OCAyNi4wNjkgMTguMzY3Ii8+CiAgPHBvbHlnb24gaWQ9InBhdGgtMTEiIHBvaW50cz0iMCAyOC40NzkgMjguNDczIDI4LjQ3OSAyOC40NzMgMC4wMDg5ODU0IDAgMC4wMDg5ODU0Ii8+CiA8L2RlZnM+CiA8ZyBpZD0iUGFnZS0xIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiPgogIDxnIGlkPSJ2YW5pbGxhLXNvY2lhbC1zcHJpdGUiPgogICA8ZyBpZD0iZmFjZWJvay1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDU2KSI+CiAgICA8ZyBpZD0icGF0aDQyNDEiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz4KICAgICA8L21hc2s+CiAgICAgPHVzZSBpZD0iTWFzayIgeGxpbms6aHJlZj0iI3BhdGgtMSIgZmlsbD0iIzNCNTk5OCIvPgogICAgIDxwYXRoIG1hc2s9InVybCgjbWFzay0yKSIgZD0ibTMwLjAzNyAxMC4wMDFjLTMuOTIgMC02LjYwMyAyLjQ0OS02LjYwMyA2Ljk0NXYzLjUyNmgtNC40MzR2NS4yNTVoNC40MzR2MTQuMjczYzEuODItMC4yNDYgMy42LTAuNzI4IDUuMjk5LTEuNDM4di0xMi44MzVoNC40MjRsMC42Ni01LjI1NWgtNS4wODR2LTMuMDAyYzAtMS41MjIgMC40NzktMy4wODUgMi41NS0yLjU2M2gyLjcxN3YtNC43Yy0wLjQ2OS0wLjA2NC0yLjA4NS0wLjIwNy0zLjk2My0wLjIwN3YwLjAwMXoiIGZpbGw9IiNmZmYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3NzI5NTMiIGQ9Im0zNTYgODguNzM1Yy03LjA0IDAtMTIuNzQtNS43LTEyLjc0LTEyLjczNiAwLTcuMDM0IDUuNy0xMi43MzQgMTIuNzQtMTIuNzM0czEyLjc0IDUuNyAxMi43NCAxMi43MzRjMCA3LjAzNi01LjcgMTIuNzM2LTEyLjc0IDEyLjczNnptMjAtMTIuNzM1YzAgMTEuMDQ1LTguOTUgMjAtMjAgMjBzLTIwLTguOTU1LTIwLTIwYzAtMTEuMDQ2IDguOTUtMjAgMjAtMjBzMjAgOC45NTQgMjAgMjB6bS0yMC0xNS4xMzVjLTguMzYgMC0xNS4xNCA2Ljc3Ny0xNS4xNCAxNS4xMzUgMCA4LjM2IDYuNzggMTUuMTM1IDE1LjE0IDE1LjEzNXMxNS4xNC02Ljc3NSAxNS4xNC0xNS4xMzVjMC04LjM1OC02Ljc4LTE1LjEzNS0xNS4xNC0xNS4xMzV6Ii8+CiAgIDxnIGlkPSJjb2Zfb3JhbmdlX2hleC1jb3B5LTIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzkyIDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNFOTU0MjAiIGQ9Im0zOS45MDYgMjAuMDEzYzAgMTAuOTg3LTguOTA1IDE5Ljg5My0xOS44OTIgMTkuODkzLTEwLjk4NiAwLTE5Ljg5Mi04LjkwNi0xOS44OTItMTkuODkzLTAuMDAwMzItMTAuOTg2IDguOTA1OS0xOS44OTEgMTkuODkyLTE5Ljg5MSAxMC45ODctMC4wMDAzMiAxOS44OTIgOC45MDU0IDE5Ljg5MiAxOS44OTF6Ii8+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiIGQ9Im05LjY5MDIgMjAuMDEzYzAgMS40MTMtMS4xNDUxIDIuNTU4LTIuNTU4NiAyLjU1OC0xLjQxMTcgMC0yLjU1NjktMS4xNDUtMi41NTY5LTIuNTU4IDAtMS40MTIgMS4xNDUyLTIuNTU3IDIuNTU2OS0yLjU1NyAxLjQxMzUgMCAyLjU1ODYgMS4xNDUgMi41NTg2IDIuNTU3em0xNC41NTEgMTIuNDM2YzAuNzA2IDEuMjIzIDIuMjcgMS42NDIgMy40OTMgMC45MzZzMS42NDItMi4yNyAwLjkzNi0zLjQ5NGMtMC43MDYtMS4yMjMtMi4yNy0xLjY0MS0zLjQ5My0wLjkzNS0xLjIyMyAwLjcwNy0xLjY0MiAyLjI3LTAuOTM2IDMuNDkzem00LjQyOS0yMi4zMTNjMC43MDYtMS4yMjM0IDAuMjg4LTIuNzg3NC0wLjkzNi0zLjQ5MjktMS4yMjItMC43MDYzLTIuNzg3LTAuMjg3Mi0zLjQ5MyAwLjkzNTctMC43MDYgMS4yMjMyLTAuMjg3IDIuNzg3MiAwLjkzNiAzLjQ5MzJzMi43ODggMC4yODcgMy40OTMtMC45MzZ6bS04LjY1NiAyLjU4NGMzLjgxMSAwIDYuOTM4IDIuOTIyIDcuMjY1IDYuNjQ4bDMuNzAxLTAuMDU5Yy0wLjE3NS0yLjc2OC0xLjM3Ni01LjI1OC0zLjIyNy03LjA5NC0wLjk4IDAuMzc4LTIuMTE2IDAuMzI2LTMuMDk3LTAuMjQtMC45ODEtMC41NjctMS41OTQtMS41MjYtMS43NTYtMi41NjUzLTAuOTItMC4yNDk4LTEuODg4LTAuMzgzNi0yLjg4Ni0wLjM4MzYtMS43NSAwLTMuNDA0IDAuNDA5My00Ljg3NCAxLjEzNjlsMS44MDEgMy4yMzRjMC45MzQtMC40MzMgMS45NzYtMC42NzcgMy4wNzMtMC42Nzd6bS03LjI5NCA3LjI5M2MwLTIuNDY3IDEuMjI2LTQuNjQ4IDMuMTAyLTUuOTY3bC0xLjkwMS0zLjE3N2MtMi4yMDEgMS40Ny0zLjg0MSAzLjcxMi00LjUzMjQgNi4zNDEgMC44MTg0IDAuNjYgMS4zNDM0IDEuNjcgMS4zNDM0IDIuODAzIDAgMS4xMzUtMC41MjUgMi4xNDUtMS4zNDM0IDIuODA0IDAuNjkxNCAyLjYyOSAyLjMzMTQgNC44NzIgNC41MzI0IDYuMzQzbDEuOTAxLTMuMTc3Yy0xLjg3Ni0xLjMyLTMuMTAyLTMuNTAxLTMuMTAyLTUuOTd6bTcuMjk0IDcuMjk1Yy0xLjA5NyAwLTIuMTM5LTAuMjQ0LTMuMDczLTAuNjc4bC0xLjgwMSAzLjIzNGMxLjQ3IDAuNzI5IDMuMTI0IDEuMTM3IDQuODc0IDEuMTM3IDAuOTk4IDAgMS45NjYtMC4xMzIgMi44ODYtMC4zODMgMC4xNjItMS4wMzkgMC43NzUtMS45OTkgMS43NTYtMi41NjQgMC45ODEtMC41NjcgMi4xMTctMC42MTggMy4wOTctMC4yNCAxLjg1MS0xLjgzNyAzLjA1Mi00LjMyNyAzLjIyNy03LjA5NmwtMy43MDEtMC4wNThjLTAuMzI3IDMuNzI2LTMuNDU0IDYuNjQ4LTcuMjY1IDYuNjQ4eiIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5rZWRpbi1jb3B5LTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNCA1NikiPgogICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbC1ydWxlPSJub256ZXJvIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiIGZpbGw9IiMwMDcxQTEiLz4KICAgIDxnIGlkPSJHcm91cC0yIiBmaWxsPSIjRkZGRkZFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4IDgpIj4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBkPSJtMy4wNjk2IDAuNDA1NzhjMS41MDY4IDAgMi43MzE3IDEuMjMzMSAyLjczMTcgMi43NTA5IDAgMS41MTkzLTEuMjI0OSAyLjc1MjQtMi43MzE3IDIuNzUyNC0xLjUxMDkgMC0yLjczMzUtMS4yMzMxLTIuNzMzNS0yLjc1MjQgMC4wMDAwMS0xLjUxNzggMS4yMjI2LTIuNzUwOSAyLjczMzUtMi43NTA5di0wLjAwMDAyem0tMi4zNTc5IDIyLjg2Mmg0LjcxMzd2LTE1LjI3MWwtNC43MTM3LTAuMDAwMyAwLjAwMDAyIDE1LjI3MXoiLz4KICAgICA8cGF0aCBpZD0iRmlsbC01IiBkPSJtOC4zODIgNy45OTY3aDQuNTIxdjIuMDg3M2gwLjA2M2MwLjYyOS0xLjIwMTEgMi4xNjctMi40NjY5IDQuNDYtMi40NjY5IDQuNzczIDAgNS42NTQgMy4xNjI5IDUuNjU0IDcuMjczOXY4LjM3N2gtNC43MXYtNy40MjZjMC0xLjc3MS0wLjAzMi00LjA0OS0yLjQ0OS00LjA0OS0yLjQ1MyAwLTIuODI5IDEuOTI5LTIuODI5IDMuOTJ2Ny41NTVoLTQuNzF2LTE1LjI3MSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJ5b3V0dWJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyODAgNTYpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjRDkyNTJBIi8+CiAgICA8ZyBpZD0ieXRfaWNvbl9yZ2IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcgMTEpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTQiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay00KSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWdvbiBpZD0iRmlsbC00IiBwb2ludHM9IjE3LjE4MiA5LjE4MzUgMTAuMzY4IDUuMzA3MyAxMC4zNjggMTMuMDYiIGZpbGw9IiNEOTI1MkEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iZ29vZ2xlLXBsdXMtY29weS0yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiNERDRCMzkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2IDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyLWNvcHkiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEyIDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjMURBMUYyIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJMb2dvX194MjAxNF9fRklYRUQiIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguOSAxMS40KSI+CiAgICAgPHBhdGggaWQ9IlNoYXBlIiBkPSJtNy40NCAxOS4xNWM4Ljg3IDAgMTMuNzItNy4zNSAxMy43Mi0xMy43MiAwLTAuMjEgMC0wLjQyLTAuMDEtMC42MiAwLjk0LTAuNjggMS43Ni0xLjUzIDIuNDEtMi41LTAuODYgMC4zOC0xLjc5IDAuNjQtMi43NyAwLjc2IDEtMC42IDEuNzYtMS41NCAyLjEyLTIuNjctMC45MyAwLjU1LTEuOTYgMC45NS0zLjA2IDEuMTctMC44OC0wLjk0LTIuMTMtMS41Mi0zLjUyLTEuNTItMi42NiAwLTQuODIgMi4xNi00LjgyIDQuODIgMCAwLjM4IDAuMDQgMC43NSAwLjEzIDEuMS00LjAxLTAuMi03LjU2LTIuMTItOS45NC01LjA0LTAuNDEgMC43MS0wLjY1IDEuNTQtMC42NSAyLjQyIDAgMS42NyAwLjg1IDMuMTUgMi4xNSA0LjAxLTAuNzktMC4wMi0xLjUzLTAuMjQtMi4xOC0wLjZ2MC4wNmMwIDIuMzQgMS42NiA0LjI4IDMuODcgNC43My0wLjQgMC4xMS0wLjgzIDAuMTctMS4yNyAwLjE3LTAuMzEgMC0wLjYxLTAuMDMtMC45MS0wLjA5IDAuNjEgMS45MiAyLjM5IDMuMzEgNC41IDMuMzUtMS42NSAxLjI5LTMuNzMgMi4wNi01Ljk5IDIuMDYtMC4zOSAwLTAuNzctMC4wMi0xLjE1LTAuMDcgMi4xMSAxLjM4IDQuNjUgMi4xOCA3LjM3IDIuMTgiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0iaW5zdGFncmFtLWNvcHktMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDU2KSI+CiAgICA8ZyBpZD0iRGFya19CbHVlIiBmaWxsPSIjRkIzOTU4IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIvPgogICAgPC9nPgogICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDYpIj4KICAgICA8ZyBpZD0iR3JvdXAtMyI+CiAgICAgIDxtYXNrIGlkPSJtYXNrLTYiIGZpbGw9IndoaXRlIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtNSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay02KSIgZD0ibTE0LjIzNyAwLjAwODk4NTRjLTMuODY3IDAtNC4zNTE3IDAuMDE2Mzg5LTUuODcwMSAwLjA4NTY3My0xLjUxNTQgMC4wNjkxMTItMi41NTAzIDAuMzA5OC0zLjQ1NTggMC42NjE3Ni0wLjkzNjIgMC4zNjM3OC0xLjczMDEgMC44NTA1OC0yLjUyMTcgMS42NDItMC43OTE0IDAuNzkxNS0xLjI3ODIgMS41ODU1LTEuNjQyIDIuNTIxNy0wLjM1MTkzIDAuOTA1NS0wLjU5MjYxIDEuOTQwNC0wLjY2MTczIDMuNDU1Ny0wLjA2OTI4MSAxLjUxODUtMC4wODU2NyAyLjAwMzItMC4wODU2NyA1Ljg3MDIgMCAzLjg2NiAwLjAxNjM4OSA0LjM1MSAwLjA4NTY3MiA1Ljg2OSAwLjA2OTExOCAxLjUxNiAwLjMwOTggMi41NTEgMC42NjE3NiAzLjQ1NiAwLjM2Mzc3IDAuOTM2IDAuODUwNTcgMS43MyAxLjY0MiAyLjUyMiAwLjc5MTYgMC43OTEgMS41ODU1IDEuMjc4IDIuNTIxNyAxLjY0MiAwLjkwNTUgMC4zNTIgMS45NDA0IDAuNTkyIDMuNDU1OCAwLjY2MSAxLjUxODQgMC4wNyAyLjAwMzEgMC4wODYgNS44NzAxIDAuMDg2IDMuODY2IDAgNC4zNTEtMC4wMTYgNS44NjktMC4wODYgMS41MTYtMC4wNjkgMi41NTEtMC4zMDkgMy40NTYtMC42NjEgMC45MzYtMC4zNjQgMS43My0wLjg1MSAyLjUyMi0xLjY0MiAwLjc5MS0wLjc5MiAxLjI3OC0xLjU4NiAxLjY0Mi0yLjUyMiAwLjM1Mi0wLjkwNSAwLjU5Mi0xLjk0IDAuNjYxLTMuNDU2IDAuMDctMS41MTggMC4wODYtMi4wMDMgMC4wODYtNS44NjkgMC0zLjg2Ny0wLjAxNi00LjM1MTctMC4wODYtNS44NzAyLTAuMDY5LTEuNTE1My0wLjMwOS0yLjU1MDItMC42NjEtMy40NTU3LTAuMzY0LTAuOTM2Mi0wLjg1MS0xLjczMDItMS42NDItMi41MjE3LTAuNzkyLTAuNzkxNC0xLjU4Ni0xLjI3ODItMi41MjItMS42NDItMC45MDUtMC4zNTE5NC0xLjk0LTAuNTkyNjMtMy40NTYtMC42NjE3NC0xLjUxOC0wLjA2OTI4Ni0yLjAwMy0wLjA4NTY3NS01Ljg2OS0wLjA4NTY3NXptMCAyLjU2NTFjMy44MDEgMCA0LjI1MSAwLjAxNDYgNS43NTIgMC4wODMgMS4zODggMC4wNjMzIDIuMTQyIDAuMjk1MyAyLjY0NCAwLjQ5MDIgMC42NjQgMC4yNTgzIDEuMTM5IDAuNTY2OCAxLjYzNyAxLjA2NXMwLjgwNyAwLjk3MjQgMS4wNjUgMS42MzY5YzAuMTk1IDAuNTAxNyAwLjQyNyAxLjI1NTUgMC40OSAyLjY0MzYgMC4wNjggMS41MDEyIDAuMDgzIDEuOTUxMiAwLjA4MyA1Ljc1MzIgMCAzLjgwMS0wLjAxNSA0LjI1MS0wLjA4MyA1Ljc1Mi0wLjA2MyAxLjM4OC0wLjI5NSAyLjE0Mi0wLjQ5IDIuNjQ0LTAuMjU4IDAuNjY0LTAuNTY3IDEuMTM5LTEuMDY1IDEuNjM3cy0wLjk3MyAwLjgwNy0xLjYzNyAxLjA2NWMtMC41MDIgMC4xOTUtMS4yNTYgMC40MjctMi42NDQgMC40OS0xLjUwMSAwLjA2OC0xLjk1MSAwLjA4My01Ljc1MiAwLjA4My0zLjgwMiAwLTQuMjUyMi0wLjAxNS01Ljc1MzItMC4wODMtMS4zODgxLTAuMDYzLTIuMTQxOS0wLjI5NS0yLjY0MzUtMC40OS0wLjY2NDYtMC4yNTgtMS4xMzg4LTAuNTY3LTEuNjM3LTEuMDY1LTAuNDk4MS0wLjQ5OC0wLjgwNjctMC45NzMtMS4wNjUtMS42MzctMC4xOTQ5LTAuNTAyLTAuNDI2OC0xLjI1Ni0wLjQ5MDEtMi42NDQtMC4wNjg1LTEuNTAxLTAuMDgzMS0xLjk1MS0wLjA4MzEtNS43NTIgMC0zLjgwMiAwLjAxNDYtNC4yNTIgMC4wODMxLTUuNzUzMiAwLjA2MzMtMS4zODgxIDAuMjk1Mi0yLjE0MTkgMC40OTAxLTIuNjQzNiAwLjI1ODMtMC42NjQ1IDAuNTY2OC0xLjEzODcgMS4wNjUtMS42MzY5czAuOTcyNC0wLjgwNjcgMS42MzctMS4wNjVjMC41MDE2LTAuMTk0OSAxLjI1NTQtMC40MjY5IDIuNjQzNS0wLjQ5MDIgMS41MDEyLTAuMDY4NCAxLjk1MTItMC4wODMgNS43NTMyLTAuMDgzeiIvPgogICAgIDwvZz4KICAgICA8cGF0aCBpZD0iRmlsbC00IiBmaWxsPSIjZmZmIiBkPSJtMTQuMjQgMTguOTkxYy0yLjYyMSAwLTQuNzQ1OS0yLjEyNS00Ljc0NTktNC43NDUgMC0yLjYyMSAyLjEyNDktNC43NDYgNC43NDU5LTQuNzQ2IDIuNjIgMCA0Ljc0NSAyLjEyNSA0Ljc0NSA0Ljc0NiAwIDIuNjItMi4xMjUgNC43NDUtNC43NDUgNC43NDV6bTAtMTIuMDU2Yy00LjAzOCAwLTcuMzExMSAzLjI3MzEtNy4zMTExIDcuMzExMSAwIDQuMDM3IDMuMjczMSA3LjMxIDcuMzExMSA3LjMxIDQuMDM3IDAgNy4zMS0zLjI3MyA3LjMxLTcuMzEgMC00LjAzOC0zLjI3My03LjMxMTEtNy4zMS03LjMxMTF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZmlsbD0iI2ZmZiIgZD0ibTIzLjU0MSA2LjY0NjFjMCAwLjk0MzUtMC43NjUgMS43MDgzLTEuNzA5IDEuNzA4My0wLjk0MyAwLTEuNzA4LTAuNzY0OC0xLjcwOC0xLjcwODMgMC0wLjk0MzYgMC43NjUtMS43MDg1IDEuNzA4LTEuNzA4NSAwLjk0NCAwIDEuNzA5IDAuNzY0OSAxLjcwOSAxLjcwODUiLz4KICAgIDwvZz4KICAgPC9nPgogICA8cGF0aCBpZD0iY2Fub25pY2FsLWRlZmF1bHQiIGZpbGwtcnVsZT0ibm9uemVybyIgZmlsbD0iIzY2NiIgZD0ibTM1NiAzMi43MzVjLTcuMDQgMC0xMi43NC01LjctMTIuNzQtMTIuNzM2IDAtNy4wMzQgNS43LTEyLjczNCAxMi43NC0xMi43MzQgNy4wNC0wLjAwMDUgMTIuNzQgNS43IDEyLjc0IDEyLjczNCAwIDcuMDM2LTUuNyAxMi43MzYtMTIuNzQgMTIuNzM2em0yMC0xMi43MzVjMCAxMS4wNDUtOC45NSAyMC0yMCAyMHMtMjAtOC45NTUtMjAtMjBjMC0xMS4wNDYgOC45NS0yMCAyMC0yMHMyMCA4Ljk1MzYgMjAgMjB6bS0yMC0xNS4xMzRjLTguMzYgMC0xNS4xNCA2Ljc3NjUtMTUuMTQgMTUuMTM0IDAgOC4zNiA2Ljc4IDE1LjEzNSAxNS4xNCAxNS4xMzVzMTUuMTQtNi43NzUgMTUuMTQtMTUuMTM1YzAtOC4zNTgtNi43OC0xNS4xMzQtMTUuMTQtMTUuMTM0eiIvPgogICA8ZyBpZD0iY29mX29yYW5nZV9oZXgtY29weSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTIpIj4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iIzY2NiIgZD0ibTM5LjkwNiAyMC4wMTNjMCAxMC45ODctOC45MDUgMTkuODkzLTE5Ljg5MiAxOS44OTMtMTAuOTg2IDAtMTkuODkyLTguOTA2LTE5Ljg5Mi0xOS44OTMtMC4wMDAzMi0xMC45ODYgOC45MDU5LTE5Ljg5MSAxOS44OTItMTkuODkxIDEwLjk4Ny0wLjAwMDMyIDE5Ljg5MiA4LjkwNTQgMTkuODkyIDE5Ljg5MXoiLz4KICAgIDxwYXRoIGlkPSJTaGFwZSIgZmlsbD0iI2ZmZiIgZD0ibTkuNjkwMiAyMC4wMTNjMCAxLjQxMy0xLjE0NTEgMi41NTgtMi41NTg2IDIuNTU4LTEuNDExNyAwLTIuNTU2OS0xLjE0NS0yLjU1NjktMi41NTggMC0xLjQxMiAxLjE0NTItMi41NTcgMi41NTY5LTIuNTU3IDEuNDEzNSAwIDIuNTU4NiAxLjE0NSAyLjU1ODYgMi41NTd6bTE0LjU1MSAxMi40MzZjMC43MDYgMS4yMjMgMi4yNyAxLjY0MiAzLjQ5MyAwLjkzNnMxLjY0Mi0yLjI3IDAuOTM2LTMuNDk0Yy0wLjcwNi0xLjIyMy0yLjI3LTEuNjQxLTMuNDkzLTAuOTM1LTEuMjIzIDAuNzA3LTEuNjQyIDIuMjctMC45MzYgMy40OTN6bTQuNDI5LTIyLjMxM2MwLjcwNi0xLjIyMzQgMC4yODgtMi43ODc0LTAuOTM2LTMuNDkyOS0xLjIyMi0wLjcwNjMtMi43ODctMC4yODcyLTMuNDkzIDAuOTM1Ny0wLjcwNiAxLjIyMzItMC4yODcgMi43ODcyIDAuOTM2IDMuNDkzMnMyLjc4OCAwLjI4NyAzLjQ5My0wLjkzNnptLTguNjU2IDIuNTg0YzMuODExIDAgNi45MzggMi45MjIgNy4yNjUgNi42NDhsMy43MDEtMC4wNTljLTAuMTc1LTIuNzY4LTEuMzc2LTUuMjU4LTMuMjI3LTcuMDk0LTAuOTggMC4zNzgtMi4xMTYgMC4zMjYtMy4wOTctMC4yNC0wLjk4MS0wLjU2Ny0xLjU5NC0xLjUyNi0xLjc1Ni0yLjU2NTMtMC45Mi0wLjI0OTgtMS44ODgtMC4zODM2LTIuODg2LTAuMzgzNi0xLjc1IDAtMy40MDQgMC40MDkzLTQuODc0IDEuMTM2OWwxLjgwMSAzLjIzNGMwLjkzNC0wLjQzMyAxLjk3Ni0wLjY3NyAzLjA3My0wLjY3N3ptLTcuMjk0IDcuMjkzYzAtMi40NjcgMS4yMjYtNC42NDggMy4xMDItNS45NjdsLTEuOTAxLTMuMTc3Yy0yLjIwMSAxLjQ3LTMuODQxIDMuNzEyLTQuNTMyNCA2LjM0MSAwLjgxODQgMC42NiAxLjM0MzQgMS42NyAxLjM0MzQgMi44MDMgMCAxLjEzNS0wLjUyNSAyLjE0NS0xLjM0MzQgMi44MDQgMC42OTE0IDIuNjI5IDIuMzMxNCA0Ljg3MiA0LjUzMjQgNi4zNDNsMS45MDEtMy4xNzdjLTEuODc2LTEuMzItMy4xMDItMy41MDEtMy4xMDItNS45N3ptNy4yOTQgNy4yOTVjLTEuMDk3IDAtMi4xMzktMC4yNDQtMy4wNzMtMC42NzhsLTEuODAxIDMuMjM0YzEuNDcgMC43MjkgMy4xMjQgMS4xMzcgNC44NzQgMS4xMzcgMC45OTggMCAxLjk2Ni0wLjEzMiAyLjg4Ni0wLjM4MyAwLjE2Mi0xLjAzOSAwLjc3NS0xLjk5OSAxLjc1Ni0yLjU2NCAwLjk4MS0wLjU2NyAyLjExNy0wLjYxOCAzLjA5Ny0wLjI0IDEuODUxLTEuODM3IDMuMDUyLTQuMzI3IDMuMjI3LTcuMDk2bC0zLjcwMS0wLjA1OGMtMC4zMjcgMy43MjYtMy40NTQgNi42NDgtNy4yNjUgNi42NDh6Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Imdvb2dsZS1wbHVzIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM2NjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2KSI+CiAgICA8cGF0aCBpZD0iU2hhcGUiIGQ9Im0yMCAwYy0xMS4wNDUgMC0yMCA4Ljk1NS0yMCAyMHM4Ljk1NSAyMCAyMCAyMCAyMC04Ljk1NSAyMC0yMC04Ljk1NS0yMC0yMC0yMHptLTQuODYyIDI2LjgwNWMtMy43NjMgMC02LjgwNDctMy4wNDItNi44MDQ3LTYuODA1czMuMDQxNy02LjgwNSA2LjgwNDctNi44MDVjMS44MzkgMCAzLjM3NCAwLjY3IDQuNTU5IDEuNzc4bC0xLjg0NSAxLjc4Yy0wLjUwNy0wLjQ4Ni0xLjM5LTEuMDUtMi43MTQtMS4wNS0yLjMyMyAwLTQuMjE4IDEuOTI1LTQuMjE4IDQuMjk5IDAgMi4zNzMgMS44OTcgNC4yOTggNC4yMTggNC4yOTggMi42OTQgMCAzLjcwNy0xLjkzNyAzLjg2LTIuOTM3aC0zLjg2di0yLjMzM2g2LjQyNWMwLjA2IDAuMzQgMC4xMDcgMC42OCAwLjEwNyAxLjEyOCAwLjAwMiAzLjg4Ny0yLjYwNSA2LjY0Ny02LjUzMiA2LjY0N3ptMTYuNTI5LTUuODMzaC0yLjkxN3YyLjkxNmgtMS45NDV2LTIuOTE2aC0yLjkxN3YtMS45NDRoMi45MTd2LTIuOTE2aDEuOTQ1djIuOTE2aDIuOTE3djEuOTQ0eiIvPgogICA8L2c+CiAgIDxnIGlkPSJ0d2l0dGVyIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMikiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiI+CiAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTG9nb19feDIwMTRfX0ZJWEVEIiBmaWxsPSIjZmZmIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjkgMTEuNCkiPgogICAgIDxwYXRoIGlkPSJTaGFwZSIgZD0ibTcuNDQgMTkuMTVjOC44NyAwIDEzLjcyLTcuMzUgMTMuNzItMTMuNzIgMC0wLjIxIDAtMC40Mi0wLjAxLTAuNjIgMC45NC0wLjY4IDEuNzYtMS41MyAyLjQxLTIuNS0wLjg2IDAuMzgtMS43OSAwLjY0LTIuNzcgMC43NiAxLTAuNiAxLjc2LTEuNTQgMi4xMi0yLjY3LTAuOTMgMC41NS0xLjk2IDAuOTUtMy4wNiAxLjE3LTAuODgtMC45NC0yLjEzLTEuNTItMy41Mi0xLjUyLTIuNjYgMC00LjgyIDIuMTYtNC44MiA0LjgyIDAgMC4zOCAwLjA0IDAuNzUgMC4xMyAxLjEtNC4wMS0wLjItNy41Ni0yLjEyLTkuOTQtNS4wNC0wLjQxIDAuNzEtMC42NSAxLjU0LTAuNjUgMi40MiAwIDEuNjcgMC44NSAzLjE1IDIuMTUgNC4wMS0wLjc5LTAuMDItMS41My0wLjI0LTIuMTgtMC42djAuMDZjMCAyLjM0IDEuNjYgNC4yOCAzLjg3IDQuNzMtMC40IDAuMTEtMC44MyAwLjE3LTEuMjcgMC4xNy0wLjMxIDAtMC42MS0wLjAzLTAuOTEtMC4wOSAwLjYxIDEuOTIgMi4zOSAzLjMxIDQuNSAzLjM1LTEuNjUgMS4yOS0zLjczIDIuMDYtNS45OSAyLjA2LTAuMzkgMC0wLjc3LTAuMDItMS4xNS0wLjA3IDIuMTEgMS4zOCA0LjY1IDIuMTggNy4zNyAyLjE4Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImZhY2Vib2siPgogICAgPGcgaWQ9InBhdGg0MjQxIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgIDxtYXNrIGlkPSJtYXNrLTgiIGZpbGw9IndoaXRlIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC03Ii8+CiAgICAgPC9tYXNrPgogICAgIDx1c2UgaWQ9Ik1hc2siIHhsaW5rOmhyZWY9IiNwYXRoLTciIGZpbGw9IiM2NjY2NjYiLz4KICAgICA8cGF0aCBtYXNrPSJ1cmwoI21hc2stOCkiIGQ9Im0zMC4wMzcgMTAuMDAxYy0zLjkyIDAtNi42MDMgMi40NDktNi42MDMgNi45NDV2My41MjZoLTQuNDM0djUuMjU1aDQuNDM0djE0LjI3M2MxLjgyLTAuMjQ2IDMuNi0wLjcyOCA1LjI5OS0xLjQzOHYtMTIuODM1aDQuNDI0bDAuNjYtNS4yNTVoLTUuMDg0di0zLjAwMmMwLTEuNTIyIDAuNDc5LTMuMDg1IDIuNTUtMi41NjNoMi43MTd2LTQuN2MtMC40NjktMC4wNjQtMi4wODUtMC4yMDctMy45NjMtMC4yMDd2MC4wMDF6IiBmaWxsPSIjZmZmIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmtlZGluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjQpIj4KICAgIDxjaXJjbGUgaWQ9Ik92YWwiIGZpbGwtcnVsZT0ibm9uemVybyIgY3k9IjIwIiBjeD0iMjAiIHI9IjIwIiBmaWxsPSIjNjY2Ii8+CiAgICA8ZyBpZD0iR3JvdXAtMiIgZmlsbD0iI0ZGRkZGRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA4KSI+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZD0ibTMuMDY5NiAwLjQwNTc4YzEuNTA2OCAwIDIuNzMxNyAxLjIzMzEgMi43MzE3IDIuNzUwOSAwIDEuNTE5My0xLjIyNDkgMi43NTI0LTIuNzMxNyAyLjc1MjQtMS41MTA5IDAtMi43MzM1LTEuMjMzMS0yLjczMzUtMi43NTI0IDAuMDAwMDEtMS41MTc4IDEuMjIyNi0yLjc1MDkgMi43MzM1LTIuNzUwOXYtMC4wMDAwMnptLTIuMzU3OSAyMi44NjJoNC43MTM3di0xNS4yNzFsLTQuNzEzNy0wLjAwMDMgMC4wMDAwMiAxNS4yNzF6Ii8+CiAgICAgPHBhdGggaWQ9IkZpbGwtNSIgZD0ibTguMzgyIDcuOTk2N2g0LjUyMXYyLjA4NzNoMC4wNjNjMC42MjktMS4yMDExIDIuMTY3LTIuNDY2OSA0LjQ2LTIuNDY2OSA0Ljc3MyAwIDUuNjU0IDMuMTYyOSA1LjY1NCA3LjI3Mzl2OC4zNzdoLTQuNzF2LTcuNDI2YzAtMS43NzEtMC4wMzItNC4wNDktMi40NDktNC4wNDktMi40NTMgMC0yLjgyOSAxLjkyOS0yLjgyOSAzLjkydjcuNTU1aC00Ljcxdi0xNS4yNzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ieW91dHViZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgwKSI+CiAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGN5PSIyMCIgY3g9IjIwIiByPSIyMCIgZmlsbD0iIzY2NiIvPgogICAgPGcgaWQ9Inl0X2ljb25fcmdiIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDExKSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMCIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC05Ii8+CiAgICAgIDwvbWFzaz4KICAgICAgPHBhdGggaWQ9IkZpbGwtMSIgZmlsbD0iI2ZmZiIgbWFzaz0idXJsKCNtYXNrLTEwKSIgZD0ibTI1LjUyNCAyLjg2OGMtMC4zLTEuMTI4OS0xLjE4My0yLjAxNzktMi4zMDUtMi4zMTk3LTIuMDMyLTAuNTQ4My0xMC4xODUtMC41NDgzLTEwLjE4NS0wLjU0ODNzLTguMTUxNSAwLTEwLjE4NCAwLjU0ODM0Yy0xLjEyMiAwLjMwMTcyLTIuMDA1NCAxLjE5MDgtMi4zMDUyIDIuMzE5Ny0wLjU0NDggMi4wNDYxLTAuNTQ0OCA2LjMxNTQtMC41NDQ4IDYuMzE1NHMwIDQuMjY4NiAwLjU0NDc4IDYuMzE1NmMwLjI5OTggMS4xMjkgMS4xODMyIDIuMDE4IDIuMzA0NyAyLjMyIDIuMDMzIDAuNTQ4IDEwLjE4NCAwLjU0OCAxMC4xODQgMC41NDhzOC4xNTMgMCAxMC4xODUtMC41NDhjMS4xMjItMC4zMDIgMi4wMDUtMS4xOTEgMi4zMDUtMi4zMiAwLjU0NS0yLjA0NyAwLjU0NS02LjMxNTYgMC41NDUtNi4zMTU2czAtNC4yNjkzLTAuNTQ1LTYuMzE1NCIvPgogICAgIDwvZz4KICAgICA8cG9seWxpbmUgaWQ9IkZpbGwtNCIgcG9pbnRzPSIxMC4zNjggMTMuMDYgMTcuMTgyIDkuMTgzNSAxMC4zNjggNS4zMDczIDEwLjM2OCAxMy4wNiIgZmlsbD0iIzY2NiIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJpbnN0YWdyYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2OCkiPgogICAgPGcgaWQ9IkRhcmtfQmx1ZSIgZmlsbD0iIzY2NiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBjeT0iMjAiIGN4PSIyMCIgcj0iMjAiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiA2KSI+CiAgICAgPGcgaWQ9Ikdyb3VwLTMiPgogICAgICA8bWFzayBpZD0ibWFzay0xMiIgZmlsbD0id2hpdGUiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xMSIvPgogICAgICA8L21hc2s+CiAgICAgIDxwYXRoIGlkPSJGaWxsLTEiIGZpbGw9IiNmZmYiIG1hc2s9InVybCgjbWFzay0xMikiIGQ9Im0xNC4yMzcgMC4wMDg5ODU0Yy0zLjg2NyAwLTQuMzUxNyAwLjAxNjM4OS01Ljg3MDEgMC4wODU2NzMtMS41MTU0IDAuMDY5MTEyLTIuNTUwMyAwLjMwOTgtMy40NTU4IDAuNjYxNzYtMC45MzYyIDAuMzYzNzgtMS43MzAxIDAuODUwNTgtMi41MjE3IDEuNjQyLTAuNzkxNCAwLjc5MTUtMS4yNzgyIDEuNTg1NS0xLjY0MiAyLjUyMTctMC4zNTE5MyAwLjkwNTUtMC41OTI2MSAxLjk0MDQtMC42NjE3MyAzLjQ1NTctMC4wNjkyODEgMS41MTg1LTAuMDg1NjcgMi4wMDMyLTAuMDg1NjcgNS44NzAyIDAgMy44NjYgMC4wMTYzODkgNC4zNTEgMC4wODU2NzIgNS44NjkgMC4wNjkxMTggMS41MTYgMC4zMDk4IDIuNTUxIDAuNjYxNzYgMy40NTYgMC4zNjM3NyAwLjkzNiAwLjg1MDU3IDEuNzMgMS42NDIgMi41MjIgMC43OTE2IDAuNzkxIDEuNTg1NSAxLjI3OCAyLjUyMTcgMS42NDIgMC45MDU1IDAuMzUyIDEuOTQwNCAwLjU5MiAzLjQ1NTggMC42NjEgMS41MTg0IDAuMDcgMi4wMDMxIDAuMDg2IDUuODcwMSAwLjA4NiAzLjg2NiAwIDQuMzUxLTAuMDE2IDUuODY5LTAuMDg2IDEuNTE2LTAuMDY5IDIuNTUxLTAuMzA5IDMuNDU2LTAuNjYxIDAuOTM2LTAuMzY0IDEuNzMtMC44NTEgMi41MjItMS42NDIgMC43OTEtMC43OTIgMS4yNzgtMS41ODYgMS42NDItMi41MjIgMC4zNTItMC45MDUgMC41OTItMS45NCAwLjY2MS0zLjQ1NiAwLjA3LTEuNTE4IDAuMDg2LTIuMDAzIDAuMDg2LTUuODY5IDAtMy44NjctMC4wMTYtNC4zNTE3LTAuMDg2LTUuODcwMi0wLjA2OS0xLjUxNTMtMC4zMDktMi41NTAyLTAuNjYxLTMuNDU1Ny0wLjM2NC0wLjkzNjItMC44NTEtMS43MzAyLTEuNjQyLTIuNTIxNy0wLjc5Mi0wLjc5MTQtMS41ODYtMS4yNzgyLTIuNTIyLTEuNjQyLTAuOTA1LTAuMzUxOTQtMS45NC0wLjU5MjYzLTMuNDU2LTAuNjYxNzQtMS41MTgtMC4wNjkyODYtMi4wMDMtMC4wODU2NzUtNS44NjktMC4wODU2NzV6bTAgMi41NjUxYzMuODAxIDAgNC4yNTEgMC4wMTQ2IDUuNzUyIDAuMDgzIDEuMzg4IDAuMDYzMyAyLjE0MiAwLjI5NTMgMi42NDQgMC40OTAyIDAuNjY0IDAuMjU4MyAxLjEzOSAwLjU2NjggMS42MzcgMS4wNjVzMC44MDcgMC45NzI0IDEuMDY1IDEuNjM2OWMwLjE5NSAwLjUwMTcgMC40MjcgMS4yNTU1IDAuNDkgMi42NDM2IDAuMDY4IDEuNTAxMiAwLjA4MyAxLjk1MTIgMC4wODMgNS43NTMyIDAgMy44MDEtMC4wMTUgNC4yNTEtMC4wODMgNS43NTItMC4wNjMgMS4zODgtMC4yOTUgMi4xNDItMC40OSAyLjY0NC0wLjI1OCAwLjY2NC0wLjU2NyAxLjEzOS0xLjA2NSAxLjYzN3MtMC45NzMgMC44MDctMS42MzcgMS4wNjVjLTAuNTAyIDAuMTk1LTEuMjU2IDAuNDI3LTIuNjQ0IDAuNDktMS41MDEgMC4wNjgtMS45NTEgMC4wODMtNS43NTIgMC4wODMtMy44MDIgMC00LjI1MjItMC4wMTUtNS43NTMyLTAuMDgzLTEuMzg4MS0wLjA2My0yLjE0MTktMC4yOTUtMi42NDM1LTAuNDktMC42NjQ2LTAuMjU4LTEuMTM4OC0wLjU2Ny0xLjYzNy0xLjA2NS0wLjQ5ODEtMC40OTgtMC44MDY3LTAuOTczLTEuMDY1LTEuNjM3LTAuMTk0OS0wLjUwMi0wLjQyNjgtMS4yNTYtMC40OTAxLTIuNjQ0LTAuMDY4NS0xLjUwMS0wLjA4MzEtMS45NTEtMC4wODMxLTUuNzUyIDAtMy44MDIgMC4wMTQ2LTQuMjUyIDAuMDgzMS01Ljc1MzIgMC4wNjMzLTEuMzg4MSAwLjI5NTItMi4xNDE5IDAuNDkwMS0yLjY0MzYgMC4yNTgzLTAuNjY0NSAwLjU2NjgtMS4xMzg3IDEuMDY1LTEuNjM2OXMwLjk3MjQtMC44MDY3IDEuNjM3LTEuMDY1YzAuNTAxNi0wLjE5NDkgMS4yNTU0LTAuNDI2OSAyLjY0MzUtMC40OTAyIDEuNTAxMi0wLjA2ODQgMS45NTEyLTAuMDgzIDUuNzUzMi0wLjA4M3oiLz4KICAgICA8L2c+CiAgICAgPHBhdGggaWQ9IkZpbGwtNCIgZmlsbD0iI2ZmZiIgZD0ibTE0LjI0IDE4Ljk5MWMtMi42MjEgMC00Ljc0NTktMi4xMjUtNC43NDU5LTQuNzQ1IDAtMi42MjEgMi4xMjQ5LTQuNzQ2IDQuNzQ1OS00Ljc0NiAyLjYyIDAgNC43NDUgMi4xMjUgNC43NDUgNC43NDYgMCAyLjYyLTIuMTI1IDQuNzQ1LTQuNzQ1IDQuNzQ1em0wLTEyLjA1NmMtNC4wMzggMC03LjMxMTEgMy4yNzMxLTcuMzExMSA3LjMxMTEgMCA0LjAzNyAzLjI3MzEgNy4zMSA3LjMxMTEgNy4zMSA0LjAzNyAwIDcuMzEtMy4yNzMgNy4zMS03LjMxIDAtNC4wMzgtMy4yNzMtNy4zMTExLTcuMzEtNy4zMTExeiIvPgogICAgIDxwYXRoIGlkPSJGaWxsLTUiIGZpbGw9IiNmZmYiIGQ9Im0yMy41NDEgNi42NDYxYzAgMC45NDM1LTAuNzY1IDEuNzA4My0xLjcwOSAxLjcwODMtMC45NDMgMC0xLjcwOC0wLjc2NDgtMS43MDgtMS43MDgzIDAtMC45NDM2IDAuNzY1LTEuNzA4NSAxLjcwOC0xLjcwODUgMC45NDQgMCAxLjcwOSAwLjc2NDkgMS43MDkgMS43MDg1Ii8+CiAgICA8L2c+CiAgIDwvZz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=");background-size:430px 96px;height:42px;width:42px;background-position:-390px 0}.p-icon--ubuntu:hover{background-position-y:-56px}.p-icon--medium{height:1.25rem;width:1.25rem}.p-icon--large{height:1.5rem;width:1.5rem}.p-icon--x-large{height:1.75rem;width:1.75rem}.p-icon--x-large{height:2.25rem;width:2.25rem}.p-icon--xx-large{height:3rem;width:3rem}[class*="p-button-"] [class*="p-icon-"]{top:-1px;vertical-align:middle}.p-tooltip{position:relative}.p-tooltip__message{background-color:#111;border:0;color:#fff;display:none;font-size:.875rem;left:0;line-height:1.5;min-width:155px;padding:.5rem .75rem;position:absolute;text-align:left;text-decoration:initial;top:100%;transform:translateX(0%) translateY(13px);white-space:pre;z-index:1}.p-tooltip__message::before{border-bottom:8px solid #111;border-left:8px solid transparent;border-right:8px solid transparent;bottom:100%;content:'';height:0;left:.75rem;pointer-events:none;position:absolute;width:0}.p-tooltip:focus .p-tooltip__message,.p-tooltip:hover .p-tooltip__message{display:inline;text-decoration:initial}.p-tooltip--btm-center .p-tooltip__message{bottom:inherit;left:50%;top:100%;transform:translateX(-50%) translateY(13px)}.p-tooltip--btm-center .p-tooltip__message::before{left:50%;transform:translateX(-50%)}.p-tooltip--btm-right .p-tooltip__message{bottom:inherit;left:initial;right:0;top:100%;transform:translateY(13px)}.p-tooltip--btm-right .p-tooltip__message::before{left:initial;right:.75rem}.p-tooltip--top-left .p-tooltip__message{bottom:100%;left:0;top:initial;transform:translateX(0%) translateY(-13px)}.p-tooltip--top-left .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #111;bottom:-1rem;left:.75rem}.p-tooltip--top-center .p-tooltip__message{bottom:100%;left:50%;top:initial;transform:translateX(-50%) translateY(-13px)}.p-tooltip--top-center .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #111;bottom:-1rem;left:50%;transform:translateX(-50%)}.p-tooltip--top-right .p-tooltip__message{bottom:100%;left:initial;right:0;top:initial;transform:translateX(0%) translateY(-13px)}.p-tooltip--top-right .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #111;bottom:-1rem;left:initial;right:.75rem}.p-tooltip--right .p-tooltip__message{bottom:inherit;left:100%;top:50%;transform:translateX(14px) translateY(-50%)}.p-tooltip--right .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid transparent;border-right:8px solid #111;border-top:8px solid transparent;bottom:inherit;left:0;top:50%;transform:translateX(-16px) translateY(-50%)}.p-tooltip--left .p-tooltip__message{bottom:inherit;left:-16px;top:50%;transform:translateX(-100%) translateY(-50%)}.p-tooltip--left .p-tooltip__message::before{border-bottom:8px solid transparent;border-left:8px solid #111;border-right:8px solid transparent;border-top:8px solid transparent;bottom:inherit;left:100%;top:50%;transform:translateX(0) translateY(-50%)}.p-inline-images{display:block;list-style:none;margin-left:0;padding-left:0;text-align:center}.p-inline-images__item{display:inline-block;margin:1.875rem;max-height:5.625rem;max-width:5.625rem;overflow:hidden;text-align:center;vertical-align:middle}@media (min-width: 768px){.p-inline-images__item{margin:1.875rem;max-height:11.25rem;max-width:11.25rem}}.p-inline-images__item *{max-height:3rem;max-width:7rem;width:100%}@media only screen and (min-width: 768px){.p-inline-images__item *{max-height:5.5rem;max-width:9rem}}.p-inline-images__img{display:inline-block;margin:2rem;max-width:6rem;text-align:center;vertical-align:middle;width:100%}@media (min-width: 768px){.p-inline-images__img{margin:3rem;max-width:11.25rem}}.p-notification{background-color:#fff;border:0;border-color:#666;border-radius:.125rem;border-style:solid;border-top-width:3px;box-shadow:0 1px 5px 1px rgba(0,0,0,0.2);color:#111;display:flex;font-size:1rem;overflow:hidden;padding:.625rem;text-align:center}.p-notification__response{background-position:0 4px;background-repeat:no-repeat;background-size:16px 16px;margin:0;padding-right:.75rem;text-align:left}.p-notification__status{font-weight:400;margin-right:.3125rem}.p-notification__action{border-bottom:0;margin-left:.3125rem}.p-notification .p-icon--close{background-size:1rem;border:0;margin:0 -.25rem auto auto;padding:.75rem}.p-notification__response{max-width:60em}.p-notification--positive{background-color:#fff;border:0;border-color:#666;border-radius:.125rem;border-style:solid;border-top-width:3px;box-shadow:0 1px 5px 1px rgba(0,0,0,0.2);color:#111;display:flex;font-size:1rem;overflow:hidden;padding:.625rem;text-align:center;border-color:#0e8420}.p-notification--positive .p-notification__response{background-image:url("data:image/svg+xml,%3Csvg width='17px' height='17px' viewBox='0 0 17 17' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='notification-success' transform='translate(1.000000, 1.000000)'%3E%3Cg id='Page-3---colours'%3E%3Cg id='Notifications---single'%3E%3Cg id='Group'%3E%3Cg id='ICON'%3E%3Ccircle id='circle6710' stroke='%230e8420' stroke-width='1.5' fill='%230e8420' cx='7.2500086' cy='7.2500086' r='7.2500086'%3E%3C/circle%3E%3Cpolygon id='path6712' fill='%23fff' points='11.0502986 4.1734486 10.9843986 4.2311486 6.2496486 8.3783686 3.4740786 5.9974286 2.6350186 6.9463086 6.2503386 10.7500186 11.7500086 4.9627786 11.0502986 4.1734886'%3E%3C/polygon%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");padding-left:1.5rem}.p-notification--caution{background-color:#fff;border:0;border-color:#666;border-radius:.125rem;border-style:solid;border-top-width:3px;box-shadow:0 1px 5px 1px rgba(0,0,0,0.2);color:#111;display:flex;font-size:1rem;overflow:hidden;padding:.625rem;text-align:center;border-color:#f99b11}.p-notification--caution .p-notification__response{background-image:url("data:image/svg+xml,%3Csvg width='17px' height='17px' viewBox='0 0 17 17' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='notification-caution' transform='translate(1.000000, 1.000000)'%3E%3Cg id='Page-3---colours'%3E%3Cg id='Notifications---single'%3E%3Cg id='Group'%3E%3Cg id='ICON'%3E%3Ccircle id='circle5432' stroke='%23f99b11' stroke-width='1.5' fill='%23f99b11' cx='7.2500086' cy='7.2500086' r='7.2500086'%3E%3C/circle%3E%3Cpath d='M6.2500086,3.2500086 L6.2500086,8.2500086 L8.2500086,8.2500086 L8.2500086,3.2500086 L6.2500086,3.2500086 L6.2500086,3.2500086 L6.2500086,3.2500086 Z M6.2500086,9.2500086 L6.2500086,11.2500086 L8.2500086,11.2500086 L8.2500086,9.2500086 L6.2500086,9.2500086 L6.2500086,9.2500086 L6.2500086,9.2500086 Z' id='rect5434' fill='%23fff'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");padding-left:1.5rem}.p-notification--negative{background-color:#fff;border:0;border-color:#666;border-radius:.125rem;border-style:solid;border-top-width:3px;box-shadow:0 1px 5px 1px rgba(0,0,0,0.2);color:#111;display:flex;font-size:1rem;overflow:hidden;padding:.625rem;text-align:center;border-color:#c7162b}.p-notification--negative .p-notification__response{background-image:url("data:image/svg+xml,%3Csvg width='16px' height='17px' viewBox='0 0 16 17' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='Page-3---colours' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='Notifications---single' transform='translate(-215.000000, -271.000000)'%3E%3Cg id='Group' transform='translate(205.000000, 254.000000)'%3E%3Cg id='ICON' transform='translate(10.000000, 17.000000)'%3E%3Crect id='rect6415' x='0' y='0.36218' width='16' height='16'%3E%3C/rect%3E%3Ccircle id='circle6417' stroke='%23c7162b' stroke-width='1.5' fill='%23c7162b' cx='8' cy='8.36218' r='7.2500086'%3E%3C/circle%3E%3Cpath d='M5.00001,5.36218 L11.00001,11.36218' id='path6479-8' stroke='%23fff' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M11.00001,5.36218 L5.00001,11.36218' id='path6481-8' stroke='%23fff' stroke-width='1.5'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");padding-left:1.5rem}.p-notification--information{background-color:#fff;border:0;border-color:#666;border-radius:.125rem;border-style:solid;border-top-width:3px;box-shadow:0 1px 5px 1px rgba(0,0,0,0.2);color:#111;display:flex;font-size:1rem;overflow:hidden;padding:.625rem;text-align:center;border-color:#335280}.p-pull-quote{border:0;margin:2rem 0 1rem;padding-left:2rem;padding-right:1.25rem;position:relative}@media (min-width: 768px){.p-pull-quote{margin:1.5rem 0 1.5rem}}.p-pull-quote>p{max-width:25em;font-size:1.5rem;font-weight:300;line-height:1.333;font-style:normal}.u-align--center .p-pull-quote>p{margin-left:auto;margin-right:auto}.u-align--left .p-pull-quote>p{margin-right:auto}.u-align--right .p-pull-quote>p{margin-left:auto}@media only screen and (min-width: 1030px){.p-pull-quote>p{font-size:1.75rem;line-height:1.287}}.p-pull-quote>p:first-of-type::before{color:#cdcdcd;display:inline-block;font-size:2.134rem;font-weight:bold;line-height:1rem;max-width:1.25rem;content:'\201C\2002';margin-left:-1.5rem;padding-right:1.5rem;position:relative;top:.1rem}@media (min-width: 768px){.p-pull-quote>p:first-of-type::before{font-size:2.5rem}}@media (min-width: 1030px){.p-pull-quote>p:first-of-type::before{font-size:3rem}}@media (min-width: 768px){.p-pull-quote>p:first-of-type::before{margin-left:-1.9rem;padding-right:1.9rem;top:.4rem}}.p-pull-quote>p:last-of-type{margin-bottom:0}.p-pull-quote>p:last-of-type::after{color:#cdcdcd;display:inline-block;font-size:2.134rem;font-weight:bold;line-height:1rem;max-width:1.25rem;content:'\2002\201E';margin-left:.5rem;margin-top:-.5rem;position:absolute}@media (min-width: 768px){.p-pull-quote>p:last-of-type::after{font-size:2.5rem}}@media (min-width: 1030px){.p-pull-quote>p:last-of-type::after{font-size:3rem}}.p-pull-quote__citation{display:inline-block;font-size:1.25rem;font-style:italic;line-height:1.5;margin-top:.75rem;width:100%}@media screen and (max-width: 768px){.p-table--mobile-card thead{display:none}.p-table--mobile-card tr{align-items:flex-end;background:#fff;border-radius:2px;border-width:0;box-shadow:0 1px 5px 1px rgba(17,17,17,0.2);display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center;padding:1.5rem;width:100%}.p-table--mobile-card tr+tr{margin-top:1rem}.p-table--mobile-card td{margin:0;padding:0;width:100%}.p-table--mobile-card td+td{padding-top:.75rem}.p-table--mobile-card td[aria-label]{flex-basis:50%;max-width:50%;position:relative;text-align:right}.p-table--mobile-card td[aria-label]::before{content:attr(aria-label);display:block;font-weight:500;height:100%;left:-100%;position:absolute;text-align:left;width:100%}.p-table--mobile-card .p-contextual-menu,.p-table--mobile-card .p-contextual-menu--left,.p-table--mobile-card .p-contextual-menu--center{width:100%}.p-table--mobile-card .p-contextual-menu [role="menuitem"],.p-table--mobile-card .p-contextual-menu--left [role="menuitem"],.p-table--mobile-card .p-contextual-menu--center [role="menuitem"]{display:none}.p-table--mobile-card .p-contextual-menu__dropdown{box-shadow:none;display:block;max-width:100%;position:relative}.p-table--mobile-card .p-contextual-menu__dropdown::before{display:none}.p-table--mobile-card .p-contextual-menu__group{padding:0}.p-table--mobile-card .p-contextual-menu__group+.p-contextual-menu__group{margin-top:.75rem;padding-top:.75rem}.p-table--mobile-card .p-contextual-menu__link{border-color:#cdcdcd;border-radius:.125rem;border-style:solid;border-width:1px;box-sizing:border-box;color:#000;cursor:pointer;display:block;line-height:1rem;outline:none;padding:.75rem 1.5rem;text-align:center;text-decoration:none;width:100%}.p-table--mobile-card .p-contextual-menu__link+.p-contextual-menu__link{margin-top:.5rem}}.p-search-box__button,.p-search-box__reset{background:#fff;border-bottom:1px solid #cdcdcd;border-top:1px solid #cdcdcd;display:block;height:100%;margin:0;padding:0 .75rem;position:absolute;top:0;width:2.5rem}.p-search-box__button:hover,.p-search-box__reset:hover{background:inherit}.p-search-box__button:hover:disabled,.p-search-box__reset:hover:disabled{cursor:not-allowed}.p-search-box{box-shadow:inset 0 1px 2px rgba(0,0,0,0.12);display:flex;position:relative}.p-search-box__input{border-radius:2px;box-shadow:none;flex-grow:2}.p-search-box__input::-webkit-search-cancel-button{-webkit-appearance:none}.p-search-box__input:not(:valid) ~ .p-search-box__reset{display:none}.p-search-box__button{right:0}.p-search-box__reset{border-left:0;border-right:0;right:2.5rem}.p-slider{appearance:none;border-radius:3px;margin:.75rem 0;padding:0;width:100%}.p-slider::-webkit-slider-runnable-track{border:1px solid #cdcdcd;border-radius:3px;height:6px}.p-slider::-webkit-slider-thumb{appearance:none;background:#fff;border:0;border-radius:2px;box-shadow:0 0 2px 1px rgba(0,0,0,0.2);height:24px;margin-top:-10.5px;width:24px}.p-slider::-webkit-slider-thumb:hover{cursor:pointer}.p-slider::-moz-range-track{background:#fff;border:1px solid #cdcdcd;border-radius:2px;height:4px}.p-slider::-moz-range-progress{background-color:#335280;border-radius:2px;height:4px}.p-slider::-moz-range-thumb{background:#fff;border:0;border-radius:2px;box-shadow:0 0 2px 1px rgba(0,0,0,0.2);height:24px;width:24px}.p-slider::-moz-range-thumb:hover{cursor:pointer}.p-slider::-moz-focus-outer{border:0}.p-slider::-ms-track{background:transparent;border-color:transparent;border-width:12px;color:transparent;height:6px;width:calc(100% - ($thumb-size / 2))}.p-slider::-ms-fill-lower{background:#335280;border:1px solid #cdcdcd;border-radius:2px}.p-slider::-ms-fill-upper{background:#fff;border:1px solid #cdcdcd;border-radius:2px}.p-slider::-ms-thumb{background:#fff;border:0;border-radius:2px;box-shadow:0 0 2px 1px rgba(0,0,0,0.2);height:24px;margin:0 2px;width:24px}.p-slider::-ms-thumb:hover{cursor:pointer}.p-slider::-ms-tooltip{display:none}.p-slider:focus{outline:none}.p-slider:focus::-webkit-slider-thumb{outline:1px solid #19b6ee;outline-offset:2px}.p-slider:focus::-moz-range-thumb{outline:1px solid #19b6ee;outline-offset:2px}.p-slider:focus::-ms-thumb{outline:1px solid #19b6ee;outline-offset:2px}.p-slider:disabled{opacity:.5}.p-slider__wrapper{align-items:center;display:inline-flex;width:100%}.p-slider__input{height:2.625em;margin:0 0 0 1rem;min-width:3.5em;text-align:center;width:5%}.p-strip{clear:both;margin-top:0;padding:2rem 0;width:100%;background-color:transparent}@media only screen and (min-width: 1030px){.p-strip{padding:4rem 0}}.p-strip--light{clear:both;margin-top:0;padding:2rem 0;width:100%;background-color:#f7f7f7}@media only screen and (min-width: 1030px){.p-strip--light{padding:4rem 0}}.p-strip--dark{clear:both;margin-top:0;padding:2rem 0;width:100%;background-color:#111;color:#f7f7f7}@media only screen and (min-width: 1030px){.p-strip--dark{padding:4rem 0}}.p-strip--accent{clear:both;margin-top:0;padding:2rem 0;width:100%;background-color:#e95420;color:#111}@media only screen and (min-width: 1030px){.p-strip--accent{padding:4rem 0}}.p-strip--image{clear:both;margin-top:0;padding:2rem 0;width:100%;background-repeat:no-repeat;background-size:cover}@media only screen and (min-width: 1030px){.p-strip--image{padding:4rem 0}}.p-strip--image.is-light{color:#000}.p-strip--image.is-dark{color:#fff}[class^='p-strip'].is-bordered{border-bottom:1px solid #cdcdcd}[class^='p-strip'].is-shallow{padding:1.5rem 0}@media only screen and (min-width: 1030px){[class^='p-strip'].is-shallow{padding:2.5rem 0}}[class^='p-strip'].is-deep{padding:3rem 0}@media only screen and (min-width: 1030px){[class^='p-strip'].is-deep{padding:6rem 0}}.p-switch{align-items:stretch;border:0;display:inline-flex;font-size:.875rem;height:2rem;padding:initial;position:relative;width:4rem}.p-switch:focus{outline:1px solid #007aa6;outline-offset:3px}.p-switch :first-child,.p-switch :last-child{box-shadow:inset 0 2px 5px 0 rgba(17,17,17,0.2);line-height:2rem;margin:0;text-align:center;width:50%}.p-switch :first-child{background-color:#335280;border-radius:2px 0 0 2px;color:#fff}.p-switch :last-child{background-color:#cdcdcd;border-radius:0 2px 2px 0}.p-switch::before{transition-duration:0.5s;transition-property:all;transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);background-color:#fff;border-radius:2px;box-shadow:0 1px 5px 1px rgba(17,17,17,0.2);content:'';display:block;height:100%;left:0;max-height:2rem;padding:0;position:absolute;top:0;width:50%}.p-switch[aria-checked='true']::before{left:50%}.p-table--sortable th[role="columnheader"][aria-sort="ascending"]::after,.p-table--sortable [role="columnheader"].is-sorted.sort-asc::after,.p-table--sortable th[role="columnheader"][aria-sort="descending"]::after,.p-table--sortable [role="columnheader"].is-sorted.sort-desc::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='4' width='10' viewBox='0 0 10 4'%3E%3Cpath d='M3.637 3.138c-.518-.365-1.052-.778-1.6-1.238C1.486 1.44.946.948.414.423.273.283.135.14 0 0h1.54c.305.29.62.57.948.846.138.116.277.23.417.34.163.13.328.257.495.38.085.062.17.123.257.184.397.282.935.626 1.315.848h.054c.38-.222.918-.566 1.315-.848.4-.28.79-.583 1.17-.904C7.837.57 8.153.29 8.457 0h1.54c-.134.14-.272.282-.414.422C9.05.948 8.51 1.442 7.963 1.9c-.55.46-1.084.873-1.602 1.238S5.39 3.79 5 4c-.39-.21-.845-.497-1.363-.862z' fill='%23888' fill-rule='evenodd'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:100%;content:'';display:inline-block;height:.4rem;margin-left:.5rem;vertical-align:middle;width:1rem}.p-table--sortable{table-layout:fixed}.p-table--sortable th[role="columnheader"][aria-sort],.p-table--sortable [role="columnheader"]{align-items:center;cursor:pointer;white-space:nowrap}.p-table--sortable th[role="columnheader"][aria-sort="descending"]::after,.p-table--sortable [role="columnheader"].is-sorted.sort-desc::after{transform:rotate(180deg)}.p-table--sortable th[role="columnheader"][aria-sort]:hover,.p-table--sortable [role="columnheader"]:hover{color:#007aa6;text-decoration:underline}.p-tabs{border-radius:0;overflow:hidden;padding:0;position:relative}.p-tabs::before{background:linear-gradient(to right, rgba(255,255,255,0), #fff 50%);bottom:0;color:#666;content:'\203A';display:block;font-size:2rem;height:3rem;padding-right:1.5rem;pointer-events:none;position:absolute;right:0;text-align:right;top:0;width:5rem;z-index:10}@media screen and (min-width: 768px){.p-tabs::before{display:none}}.p-tabs__list{margin:0 auto;overflow-x:auto;padding:0 0 0 1.5rem;position:relative;white-space:nowrap;width:100%}@media screen and (min-width: 768px){.p-tabs__list{max-width:1440px;overflow:hidden;padding:0 1.5rem}}.p-tabs__item{display:inline-block;float:none;margin:0;padding:0;width:auto}@media screen and (min-width: 768px){.p-tabs__item{float:left}}.p-tabs__item:last-child{margin-right:3rem}@media screen and (min-width: 768px){.p-tabs__item:last-child{margin-right:0}}.p-tabs__link{border-bottom:3px solid transparent;color:#000;display:inline-block;padding:.75rem}.p-tabs__link:visited,.p-tabs__link:active{color:#000}.p-tabs__link:hover{border-bottom:3px solid #cdcdcd;text-decoration:none}.p-tabs__link[aria-selected="true"],.p-tabs__link.is-active{border-bottom:3px solid #666}.p-table-expanding{display:flex;flex-flow:column nowrap;justify-content:space-between}.p-table-expanding tbody{margin:0}.p-table-expanding tr{display:flex;flex-flow:row;flex-wrap:wrap;margin:0;width:100%}.p-table-expanding tr+tr{margin:0}.p-table-expanding th,.p-table-expanding td{align-self:baseline;display:flex;flex-basis:0;flex-flow:row nowrap;flex-grow:1;margin:0;word-break:break-word}.p-table-expanding th.p-table-expanding__panel,.p-table-expanding td.p-table-expanding__panel{border-top:1px solid #cdcdcd;flex-basis:100%;max-width:100%}.p-table-expanding th.p-table-expanding__panel[aria-hidden="true"],.p-table-expanding td.p-table-expanding__panel[aria-hidden="true"]{display:none}.p-table-expanding th.p-table-expanding__panel .row,.p-table-expanding td.p-table-expanding__panel .row{max-width:100%;padding:0;width:100%}.p-form-validation{color:#111;line-height:1.5;margin-top:1.25rem;position:relative}.p-form-validation .p-form-validation__input{background-position:calc(100% - 1rem) .75rem;background-repeat:no-repeat;padding:.5rem 2.5rem .5rem .75rem}.p-form-validation .p-form-validation__icon{position:relative}.p-form-validation .p-form-validation__icon::after{position:absolute;right:.75rem;top:calc(50% - .5rem)}.p-form-validation__message{font-size:.875rem;margin-top:.5rem}.is-error .p-form-validation__input{background-image:url("/MAAS/static/assets/fonts/4b0cd7fc-icon-error.svg");border-color:#c7162b}.is-success .p-form-validation__input{background-image:url("/MAAS/static/assets/fonts/94949185-icon-success.svg");border-color:#0e8420}.is-caution .p-form-validation__input{background-image:url("/MAAS/static/assets/fonts/db30f04c-icon-caution.svg");border-color:#f99b11}.p-form-help-text{color:#666;font-size:.875rem;margin-top:.5rem}.p-form--stacked{width:100%}@media screen and (min-width: 768px){.p-form--stacked .p-form__group{align-items:baseline;display:flex;flex-flow:wrap}.p-form--stacked .p-form__group+.p-form__group{margin-top:.75rem}}@media screen and (min-width: 768px){.p-form--stacked .p-form__label{flex-basis:25%;flex-grow:1;margin:0;max-width:25%;padding-right:.75rem}}@media screen and (min-width: 768px){.p-form--stacked .p-form__control{flex-basis:75%;flex-grow:1;margin:0;max-width:75%}}@media screen and (min-width: 768px){.p-form--inline{align-items:baseline;display:inline-flex;flex-direction:row}.p-form--inline>*{margin:0}}@media screen and (min-width: 768px){.p-form--inline .p-form__group{display:inline-flex;width:auto}.p-form--inline .p-form__group+.p-form__group,.p-form--inline .p-form__group+[class*="p-button"]{margin-left:1.5rem}.p-form--inline .p-form__group .p-form__label,.p-form--inline .p-form__group .p-form__control,.p-form--inline .p-form__group .p-form-validation__message{align-self:baseline;box-sizing:border-box}.p-form--inline .p-form__group .p-form__label{flex-shrink:0;padding-right:1rem}.p-form--inline .p-form__group .p-form__control{display:inline-block;margin:0}.p-form--inline .p-form__group .p-form-validation__message,.p-form--inline .p-form__group .p-form-help-text{clear:both;margin-top:.25rem;min-width:100%;width:0}}.p-form--inline [class*="p-button"]{flex:initial;flex-shrink:0;margin-top:0}form+[class*="p-button"]{margin-top:1.5rem}.p-pagination__link--previous::before,.p-pagination__link--next::after{color:#666;content:'\203A';font-size:2rem;position:absolute;top:1rem}.p-pagination{display:flex;width:100%}.p-pagination__link,.p-pagination__link--previous,.p-pagination__link--next{margin-top:0;padding:1rem;position:relative;width:50%}.p-pagination__link:hover,.p-pagination__link--previous:hover,.p-pagination__link--next:hover{background:#f7f7f7;text-decoration:none}.p-pagination__link--previous{padding-left:2.5rem;text-align:left}@media (max-width: 460px){.p-pagination__link--previous{width:auto}.p-pagination__link--previous:only-child{width:100%}.p-pagination__link--previous:not(:only-child) *{display:none;max-width:.5rem;padding-left:1.5rem}}.p-pagination__link--previous::before{left:.75rem;transform:scaleX(-1)}.p-pagination__link--next{padding-right:2.5rem;text-align:right}@media (max-width: 460px){.p-pagination__link--next{width:100%}}.p-pagination__link--next:only-child{margin-left:auto}.p-pagination__link--next::after{right:.75rem}.p-pagination__label,.p-pagination__title{color:#111;display:block;margin-top:0;width:100%}.p-pagination__label{margin-bottom:.5rem}.p-pagination__title{font-size:1.125rem}@media (min-width: 620px){.p-pagination__title{font-size:1.25rem}}.u-animation--spin{animation:spin 1s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.u-float--right{float:right !important}.u-float--left{float:left !important}.u-float-right{float:right !important}@media (max-width: 620px){.u-float-right--small{float:right !important}}@media (min-width: 768px) and (max-width: 1030px){.u-float-right--medium{float:right !important}}@media (min-width: 1030px){.u-float-right--large{float:right !important}}.u-float-left{float:left !important}@media (max-width: 620px){.u-float-left--small{float:left !important}}@media (min-width: 768px) and (max-width: 1030px){.u-float-left--medium{float:left !important}}@media (min-width: 1030px){.u-float-left--large{float:left !important}}.u-embedded-media{height:0;max-width:100%;overflow:hidden;padding-bottom:56.25%;position:relative}.u-embedded-media__element{height:100%;left:0;position:absolute;top:0;width:100%}@media only screen and (min-width: 768px){.u-equal-height{display:flex}}.u-align--center{justify-content:center !important;margin-left:auto !important;margin-right:auto !important;text-align:center !important}.u-align--left{justify-content:flex-start !important;margin-right:auto !important;text-align:left !important}.u-align--right{justify-content:flex-end !important;margin-left:auto !important;text-align:right !important}.u-no-margin{margin:0 !important}.u-no-margin--top{margin-top:0 !important}.u-no-margin--right{margin-right:0 !important}.u-no-margin--bottom{margin-bottom:0 !important}.u-no-margin--left{margin-left:0 !important}.u-no-padding{padding:0 !important}.u-no-padding--top{padding-top:0 !important}.u-no-padding--right{padding-right:0 !important}.u-no-padding--bottom{padding-bottom:0 !important}.u-no-padding--left{padding-left:0 !important}.u-hide{display:none !important}@media screen and (max-width: 768px){.u-hide--small{display:none !important}}@media (min-width: 768px) and (max-width: 1030px){.u-hide--medium{display:none !important}}@media screen and (min-width: 1030px){.u-hide--large{display:none !important}}@media (min-width: 768px){.u-image-position{position:relative}.u-image-position .u-image-position--top,.u-image-position .u-image-position--bottom,.u-image-position .u-image-position--left,.u-image-position .u-image-position--right{margin:0;position:absolute}.u-image-position [class*='col-']{position:static}.u-image-position--top{top:0}.u-image-position--bottom{bottom:0}.u-image-position--left{left:0}.u-image-position--right{right:0}}.u-show{display:inherit !important}@media screen and (max-width: 768px){.u-show--small{display:inherit !important}}@media (min-width: 768px) and (max-width: 1030px){.u-show--medium{display:inherit !important}}@media screen and (min-width: 1030px){.u-show--large{display:inherit !important}}.u-off-screen{height:1px !important;left:-10000px !important;overflow:hidden !important;position:absolute !important;top:auto !important;width:1px !important}@media (min-width: 768px){.u-vertically-center{align-items:center !important;display:flex !important}}.u-hidden{display:none !important}@media screen and (max-width: 768px){.u-hidden--small{display:none !important}}@media (min-width: 768px) and (max-width: 1030px){.u-hidden--medium{display:none !important}}@media screen and (min-width: 1030px){.u-hidden--large{display:none !important}}.u-visible{display:inherit !important}@media screen and (max-width: 768px){.u-visible--small{display:inherit !important}}@media (min-width: 768px) and (max-width: 1030px){.u-visible--medium{display:inherit !important}}@media screen and (min-width: 1030px){.u-visible--large{display:inherit !important}}.p-sticky-header{background-color:#fff;border-bottom:1px solid #cdcdcd}.p-footer__link{color:#007aa6}.p-footer__link::after{color:#111}body{background-color:#f7f7f7}maas-obj-field[type="text"],maas-obj-field[type="password"]{background-color:transparent;border:0;border-radius:0;box-shadow:none;padding:0}textarea{min-height:175px}.p-table-expanding__panel{background-color:#fff;margin-left:0 !important}.p-table-expanding__panel .p-form-validation .p-form-validation__input{padding:.5rem .75rem}.p-table--mobile-card td[aria-label]{min-height:2rem}@media (max-width: 768px){.p-table--mobile-card td,.p-table--mobile-card tr{overflow-x:visible}}table input[type="radio"],table input[type="checkbox"]{float:none}table form input[type="radio"],table form input[type="checkbox"]{float:left}table th,table td{display:table-cell !important;flex-basis:auto !important;flex-grow:0;margin-left:3.2877% !important}table th:first-child,table td:first-child{margin-left:0 !important}table tr.is-active{background-color:#fff}.u-float-none{float:none !important}.p-form--inline,.p-form--inline .p-form__group{width:100%}p:empty,ul:empty,label:empty{margin:0;padding:0}.tags .input{width:100% !important}.row ~ .row,*+*{margin-top:1.5rem}th,td{padding:.5rem 0}dl dt:first-of-type{margin-top:0;padding-top:0}.p-navigation--sidebar{background:#fff}.p-navigation--sidebar .sidebar__content{top:0;padding:1rem}.u-float--none{float:none !important}.u-remove-max-width{max-width:none}.p-navigation--sidebar .sidebar__content{position:relative}.p-contextual-menu__dropdown{display:block}.p-form__controls{margin-top:0;white-space:normal}select{-moz-appearance:none;-webkit-appearance:none;appearance:none;padding-right:2.3rem}maas-obj-field[type="password"]{background:transparent;border:0}.p-list-tree .p-list-tree::after{display:none !important}.editable{padding:.5rem 1rem;border:1px solid transparent}.editable:hover,.editable.editmode{border:1px solid #cdcdcd}.page-header__title-domain{display:inline-block;width:auto;font-size:2.25rem;line-height:1.167}.p-inline-list__item div{display:inline-block}.col-12{width:100%}.errorlist{list-style:none;display:inline-block;margin-left:0}.sidebar__second-level .is-active{background:transparent url("../assets/images/89c10794-remove.svg") top .75rem right 1.5rem no-repeat;background-size:12px}.p-form__control [type='checkbox']{height:auto;min-height:auto}.p-script-expander{border-color:#cdcdcd;border-bottom-style:dotted;border-bottom-width:1px}.p-script-expander__content{overflow:hidden;width:100%;margin-top:0}.p-script-expander__controls{vertical-align:top}.p-contextual-menu__dropdown{width:100%}.p-inline-list--settings .p-inline-list__item{display:inline-block;margin-right:1.5rem}.p-inline-list--settings [type='checkbox']{float:none}.p-inline-list--settings label{display:inline}.p-button--base.is-small{padding:.5rem;margin:0}.p-tooltip__message{margin:0}.u-upper-case--first{text-transform:capitalize}.u-no-wrap{white-space:nowrap}.u-wrap{white-space:normal}table{overflow-x:visible}table tr{padding:0 1rem}a:visited{color:#007aa6}.p-icon{padding-right:.75rem}.p-icon--edit{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg width='22' height='22' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eedit%3c/title%3e%3cg fill='%23666666' fill-rule='evenodd'%3e%3cpath d='M17 15h5v1h-5zm-3 3h8v1h-8zm-3 3h11v1H11zm5.75-21L3.47 13.517S.956 17.465 0 21.987v.004l.002.004V22c4.532-.955 8.48-3.472 8.48-3.472L22 5.25 16.75 0zM4.51 14.555L7.454 17.5c-.2.114-2.99 2.064-5.544 2.602V20.093l-.002-.003c.537-2.546 2.485-5.334 2.602-5.537v.002z'/%3e%3cpath d='M2.234 18l1.85 1.85L1 21'/%3e%3c/g%3e%3c/svg%3e")}[class$="--dark"] .p-icon--edit{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg width='22' height='22' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eedit%3c/title%3e%3cg fill='%23CDCDCD' fill-rule='evenodd'%3e%3cpath d='M17 15h5v1h-5zm-3 3h8v1h-8zm-3 3h11v1H11zm5.75-21L3.47 13.517S.956 17.465 0 21.987v.004l.002.004V22c4.532-.955 8.48-3.472 8.48-3.472L22 5.25 16.75 0zM4.51 14.555L7.454 17.5c-.2.114-2.99 2.064-5.544 2.602V20.093l-.002-.003c.537-2.546 2.485-5.334 2.602-5.537v.002z'/%3e%3cpath d='M2.234 18l1.85 1.85L1 21'/%3e%3c/g%3e%3c/svg%3e")}.p-icon--status-failed{background:url('data:image/svg+xml;utf8,%3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23C7162B" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23C7162B" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-in-progress{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23335280" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23335280" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-queued{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23666666" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23666666" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-succeeded{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%230E8420" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%230E8420" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-waiting{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23F99B11" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23F99B11" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--timed-out{background-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' height='16px' width='16px' version='1.1' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 16 16'%3E%3Ctitle%3Etimed out%3C/title%3E%3Cg id='Page-1' fill-rule='evenodd' fill='none'%3E%3Cg id='smoke-testing-status' transform='translate%28-62 -206%29'%3E%3Cg id='timed-out' transform='translate%2850 191%29'%3E%3Cg transform='translate%2812 15%29'%3E%3Crect id='rect4970' y='0.00002' x='0' height='16' width='16'/%3E%3Ccircle id='circle4972' stroke-width='1.5' cy='8' stroke='%23E95420' cx='8' r='7.25'/%3E%3Cpolyline id='path839' stroke='%23E95420' stroke-width='2' points='11.8 11.8 7.9999 8 7.9999 3'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A")}.p-icon--success-muted{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17'%3E%3Cg transform='translate(1 1)' fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='%23CDCDCD' stroke-width='1.5' fill='%23CDCDCD' cx='7.25001' cy='7.25001' r='7.25001'/%3E%3Cpath fill='%23fff' d='M11.0503 4.17345l-.0659.0577-4.73475 4.14722-2.77557-2.38094-.83906.94888 3.61532 3.80373L11.75 4.96278l-.6997-.7893'/%3E%3C/g%3E%3C/svg%3E")}.p-icon--locked{background-image:url("data:image/svg+xml,%3Csvg width='16px' height='16px' viewBox='0 0 16 16' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M8,3e-05 C5.7926,3e-05 4,1.79263 4,4.00003 L4,7.00003 L2,7.00003 L2,15.99953 L14,15.99953 L14,7.00003 L12,7.00003 L12,4.00003 C12,1.79263 10.207,3e-05 8,3e-05 L8,0 L8,3e-05 Z M8,1.00003 C9.6706,1.00003 11,2.32933 11,4.00003 L11,7.00003 L5,7.00003 L5,4.00003 C5,2.32933 6.3293,1.00003 8,1.00003 Z M9,9.50003 L9,13.99953 L7,13.99953 L7,9.99953 L9,9.50003 L9,9.50003 Z' id='padlock-icon'%3E%3C/path%3E%3C/defs%3E%3Cg id='padlock-16'%3E%3Cuse id='lock-icon' fill='%23666666' fill-rule='nonzero' xlink:href='%23padlock-icon'%3E%3C/use%3E%3C/g%3E%3C/svg%3E%0A")}.p-icon--status-waiting{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23666666" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23666666" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-succeeded{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%230E8420" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%230E8420" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-queued{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23CDCDCD" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23CDCDCD" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-in-progress{background:url('data:image/svg+xml;utf8, %3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23335280" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23335280" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--status-failed{background:url('data:image/svg+xml;utf8,%3Csvg width="16px" height="16px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="status-queued" transform="translate(1, 1)"%3E%3Cg id="Page-1"%3E%3Cg id="status-queued"%3E%3Cg id="Group"%3E%3Ccircle id="Oval" stroke="%23C7162B" stroke-width="2" cx="6" cy="6" r="6"%3E%3C/circle%3E%3Ccircle id="Oval-Copy" class="status-circle" fill="%23C7162B" cx="6" cy="6" r="4"%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.p-icon--compose-machine{background:url('data:image/svg+xml;utf8,%3Csvg width="149" height="105" viewBox="0 0 149 105" xmlns="http://www.w3.org/2000/svg"%3E%3Ctitle%3Ecompose-machine%3C/title%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cpath d="M9.746 1.845H37.3c5.98 0 7.723 1.735 7.723 7.68v85.64c0 5.946-1.744 7.68-7.723 7.68H9.746c-5.98 0-7.723-1.734-7.723-7.68V9.525c0-5.945 1.744-7.68 7.723-7.68z" stroke="%23CDCDCD" stroke-width="3"/%3E%3Cpath d="M13.49 86.845c-2.48 0-4.502 2.018-4.502 4.5 0 2.48 2.02 4.5 4.502 4.5 2.48 0 4.498-2.02 4.498-4.5 0-2.482-2.017-4.5-4.498-4.5z" stroke="%23CDCDCD" stroke-width="2"/%3E%3Cpath fill="%23CDCDCD" d="M8.476 8.346v1H38.54v-1M8.436 13.372v1H38.5v-1M8.476 18.346v1H38.54v-1M8.436 23.372v1H38.5v-1"/%3E%3Cg%3E%3Cpath d="M111.746 1.845H139.3c5.98 0 7.723 1.735 7.723 7.68v85.64c0 5.946-1.744 7.68-7.723 7.68h-27.554c-5.98 0-7.723-1.734-7.723-7.68V9.525c0-5.945 1.744-7.68 7.723-7.68z" stroke="%23CDCDCD" stroke-width="3"/%3E%3Cpath d="M115.49 86.845c-2.48 0-4.502 2.018-4.502 4.5 0 2.48 2.02 4.5 4.502 4.5 2.48 0 4.498-2.02 4.498-4.5 0-2.482-2.017-4.5-4.498-4.5z" stroke="%23CDCDCD" stroke-width="2"/%3E%3Cpath fill="%23CDCDCD" d="M110.476 8.346v1h30.065v-1M110.436 13.372v1H140.5v-1M110.476 18.346v1h30.065v-1M110.436 23.372v1H140.5v-1"/%3E%3C/g%3E%3Cg%3E%3Cpath d="M60.746 1.845H88.3c5.98 0 7.723 1.735 7.723 7.68v85.64c0 5.946-1.744 7.68-7.723 7.68H60.746c-5.98 0-7.723-1.734-7.723-7.68V9.525c0-5.945 1.744-7.68 7.723-7.68z" stroke="%23CDCDCD" stroke-width="3"/%3E%3Cpath d="M64.49 86.845c-2.48 0-4.502 2.018-4.502 4.5 0 2.48 2.02 4.5 4.502 4.5 2.48 0 4.498-2.02 4.498-4.5 0-2.482-2.017-4.5-4.498-4.5z" stroke="%23CDCDCD" stroke-width="2"/%3E%3Cpath fill="%23CDCDCD" d="M59.476 8.346v1H89.54v-1M59.436 13.372v1H89.5v-1M59.476 18.346v1H89.54v-1M59.436 23.372v1H89.5v-1"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:100% 100%}.p-icon--account{background-imag

Subscribers

People subscribed via source and target branches