From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <klark.devel@gmail.com>
X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on
 sa.local.altlinux.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
 DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no
 version=3.4.1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1728522080; x=1729126880; darn=lists.altlinux.org; 
 h=in-reply-to:content-language:references:to:from:subject:user-agent
 :mime-version:date:message-id:from:to:cc:subject:date:message-id
 :reply-to; bh=qtPd6y7Lu005e2IpxR+X2Zu3gwAGESGMZ71SCQELxqY=;
 b=OyA1ql+p87WDBoQZetxHxClOTSAjpWjPkGxeN1ezBRLIRmU69gZ9WUeIJbO/0FbYeX
 qPGek2aImSZpiOx3XpHFH1MmpC2zUDeqwLuQu52LSSdjmWyEt2lTmVqjDTA56NzrJ6v9
 t0AZKX7RZE+qcV7PqhmwOAueG9KpXorWrYueFqbHcTsc3faQ/ZHSxplrHv4/F8YK+lIS
 38Kwa1mDWJvRImR0rdCldbeBLUEKwxrXdrclngqw/cUZna+97cfJmuONR+dMebvoJHV1
 VjBYpE4cUYqge18hk4LJH5msyxwatfEL3cWEWBALkJoR8JmwWrJ/03PDghPgKmHuHx25
 gOOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1728522080; x=1729126880;
 h=in-reply-to:content-language:references:to:from:subject:user-agent
 :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=qtPd6y7Lu005e2IpxR+X2Zu3gwAGESGMZ71SCQELxqY=;
 b=FgriAMQJkAgxl63fLkDItQEfANZvFW/fm6cQoHVYcp/OmnOyOqa2tfN1d+AC4Gz0ao
 gr4NnkFnUM9r/9s2NnnPTLM3rZrPjuaRA38g32xrxiioaZtsM6oJDRJzRD3q+vT0lF8j
 KmF3hgFiQXNvttB92TMYA+lEE439DLcSnXtRwI6v/R/+Dpi+91ZiMVJmB9lvc47mLDdF
 vSm3fnlOo31viBoIvTdjWe4b/VPotCwDYGS9WgT2IW9J8KW++U9zpzEKgXzcFaG1wZo8
 Fxq7rPw3eKeXjMkiDY6MNlU/s9BqDfbrgjTMG7XxFM6WTpTPM4hoxGAmbcFKS51jVlTm
 gOtg==
X-Gm-Message-State: AOJu0YzjKoyHYW6Ev+td6UJPqJvJrOpKed+04CsnAU/n1NVNQ1r18YkM
 6EUg3Xmm0s1/nVjv6JvJhHmLilpF+9RFGjIokA/J4v6qN1vsidF0ZwO6jA==
X-Google-Smtp-Source: AGHT+IHlVs1SD+RwhAku4TWIs34XEy06t6PRVTiNDXNBZBe1yMZa9d6SeVE9FImFPPPWhqJxAEdnMw==
X-Received: by 2002:ac2:4c48:0:b0:533:c9d:a01f with SMTP id
 2adb3069b0e04-539c488d913mr3957924e87.4.1728522079712; 
 Wed, 09 Oct 2024 18:01:19 -0700 (PDT)
Content-Type: multipart/mixed; boundary="------------3D689Ls3nP4PR5eWhG20ADiR"
Message-ID: <0b88a4bf-6636-4bfe-8f39-e56dbec47a6e@gmail.com>
Date: Thu, 10 Oct 2024 04:01:15 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Leonid Krivoshein <klark.devel@gmail.com>
To: devel-distro@lists.altlinux.org
References: <aeb9c0be-fd5b-4697-a52f-edccdcd32da8@ya.ru>
 <ldu7fxlnxjznumg4iudq25qsuz4natm2ig2ycs2xojmm2ft6w2@dgahkmv4rvbt>
 <a14a5ee7-c097-4366-93f6-5aa09b9f6289@gmail.com>
Content-Language: ru, en-US
In-Reply-To: <a14a5ee7-c097-4366-93f6-5aa09b9f6289@gmail.com>
Subject: Re: [devel-distro]
 =?utf-8?b?0J/RgNC40LzQtdGAINGE0LDQudC70LAg0YDQsNC3?=
 =?utf-8?b?0LzQtdGC0LrQuCDQuCDQvtC/0LjRgdCw0L3QuNGP?=
X-BeenThere: devel-distro@lists.altlinux.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: Distributions development <devel-distro@lists.altlinux.org>
List-Id: Distributions development <devel-distro.lists.altlinux.org>
List-Unsubscribe: <https://lists.altlinux.org/mailman/options/devel-distro>,
 <mailto:devel-distro-request@lists.altlinux.org?subject=unsubscribe>
List-Archive: <http://lists.altlinux.org/pipermail/devel-distro>
List-Post: <mailto:devel-distro@lists.altlinux.org>
List-Help: <mailto:devel-distro-request@lists.altlinux.org?subject=help>
List-Subscribe: <https://lists.altlinux.org/mailman/listinfo/devel-distro>,
 <mailto:devel-distro-request@lists.altlinux.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Oct 2024 01:01:24 -0000
Archived-At: <http://lore.altlinux.org/devel-distro/0b88a4bf-6636-4bfe-8f39-e56dbec47a6e@gmail.com/>
List-Archive: <http://lore.altlinux.org/devel-distro/>

This is a multi-part message in MIME format.
--------------3D689Ls3nP4PR5eWhG20ADiR
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 10/10/24 01:08, Leonid Krivoshein wrote:
>> [...]
>>> По результатам обсуждения я сформулировал следующие тезисы:
>>> 1. Графический интерфейс инсталлятора представляет собой конфигуратор,
>>> который создаёт сценарий автоустановки (kickstart-файл)
>> Я не считаю, что у нас возможна совместимость с redhat в этом вопросе.
>> Поэтому я предлагаю придумать этому файлу другой формат и название.
>> Взяв у коллег лучшее, естественно.
>>
>> Формат должен быть документирован, его корректность и наличие
>> всех необходимых полей должны быть проверяемы программно (т.е.
>> нужна схема).
>
> Да. Yaml. СхемЫ тоже на Yaml. Есть возражения? Во множественном, т.к. 
> модульность, схемы будут разделены по пакетам. Важна строгая 
> типизация, давно обсуждали это и кажется Иван Захарящев даже что-то 
> делал для этого с woo.
>

Разметка дисков -- существенная часть установщика. Давно хочу написать 
этот бэкенд и уже примеряюсь к инструментарию, хотя архитектура Volume 
Slicer (vs) созрела окончательно в прошлом году.

Всегда считал, что описание разметки -- весьма непростая сущность, оно 
не обязано быть в том же формате, что и файл ответов, хотя служит тем же 
целям. Если вдруг это совпадёт, будет здорово, можно вложить одно 
Yaml-дерево в другое, но всегда можно использовать просто ссылку на 
отдельный файл.

Для предметного обсуждения приложил пару файлов одной и той же 
развесистой разметки и краткое описание основных разделов. Ключи в 
описаниях блочных сущностный должны просто соответствовать длинным 
опциям, создающим эти блочные сущности. К примеру, "homehost: FIXED" в 
файле разметки превратится в "--homehost FIXED" при вызове mdadm. Такой 
подход позволяет полностью сохранить семантику при работе с внешними 
утилитами.

Для проверки схемы используется pydantic. Выбирал из десятка похожих 
проектов. В результате схема описывается где-то в Yaml-файлах, где-то 
прямо в коде. Пример рабочих сниппетов для лучшего понимания:

def to_kebab(s: str) -> str:
     return s.replace('_', '-')

...

class Filesystem(BaseModel):
     id: int | None = None
     fstype: str | None = None
     label: str | None = None
     uuid: UUID | None = None
     no_discard: bool | None = None

     model_config = ConfigDict(
         alias_generator=AliasGenerator(
             validation_alias=to_snake,
             serialization_alias=to_kebab,
         )
     )

     def model_post_init(self, __context: Any) -> None:
         if self.fstype is None:
             self.fstype = self.__class__.__name__
         self.id = id(self)

     @model_validator(mode='after')
     def check_fstype(self) -> Self:
         print(f'fields of the {self.fstype} filesystem are checked')
         return self
...

class vfat(Filesystem):
     uuid: str | None = Field(
         default=None,
         min_length=9,
         max_lenght=9,
         pattern=r'^[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}$'
     )
...

Сама разбивалка должна получиться не очень сложной, т.к. используется 
много внешнего и готового. Например, для чтения используется lsblk с 
выводом в json, pyudev, нативные утилиты, типа dumpe2fs. Ближайшее 
чем-то похожее решение -- blivet, который немного залочен на RedHat и 
построен вокруг libblockdev. При желании его можно использовать, в 
Debian смогли прикрутить. Ещё чем-то очень отдалённо напоминает 
libstorage-ng, которая использует DOM/XML-дерево (XML-файл разметки).


-- 
WBR, Leonid Krivoshein.

--------------3D689Ls3nP4PR5eWhG20ADiR
Content-Type: application/x-yaml; name="condtree.yaml"
Content-Disposition: attachment; filename="condtree.yaml"
Content-Transfer-Encoding: base64

IyBjb25kdHJlZS55YW1sIC0tIEFuIGV4YW1wbGUgb2YgdGhlIGNvbXBsZXggZGlzayBsYXlv
dXQuCiMKIyBUaGlzIGZpbGUgaXMgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKIyB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24sIHdoaWNoCiMgc2hvdWxkIGJlIGluY2x1ZGVkIHdpdGggc291cmNlcyBhcyB0aGUg
ZmlsZSBMSUNFTlNFLgojCiMgQ29weXJpZ2h0IChDKSAyMDIzLTIwMjQsIEFMVCBMaW51eCBU
ZWFtCiMgQXV0aG9yOiBMZW9uaWQgS3Jpdm9zaGVpbiA8a2xhcmtAYWx0bGludXgub3JnPgot
LS0KCmdlbmVyYWw6CgogICMgVm9sdW1lIFNsaWNlciBDb25kZW5zZWQgVHJlZSwgVmVyc2lv
biAxLjAKICBkYXRhLWZvcm1hdDogVlNDVC8xLjAKCiAgIyBDb21tb24gb3B0aW9ucwogIHNz
ZC1hdXRvLWRldGVjdDogdHJ1ZQogIHNlYXJjaC1yZW1vdmFibGU6IGZhbHNlCiAgYWxsLWRp
c2tzLWJvb3RhYmxlOiBmYWxzZQoKZGVmYXVsdHM6CgogIHBhcnQ6CiAgICBwYXJ0dHlwZTog
UgogIGx2OgogICAgbmFtZTogInt7SUR9fSIKICByYWlkOgogICAgbGV2ZWw6IHJhaWQxCiAg
ICBob21laG9zdDogRklYRUQKICAgIG5hbWU6ICJ7e0lEfX0iCgp0YXJnZXRzOgoKICAjIE5W
TUVAMSAtPiAvZGV2L252bWUwbjEsCiAgIyBOVk1FQDIgLT4gL2Rldi9udm1lMW4xCiAgIwog
IE5WTUU6CiAgICBxLXR5OiAyCiAgICBrcGF0dGVybjogbnZtZT9uMQogICAgbWluLXNpemU6
IDQxMEdCCiAgICBtYXgtc2l6ZTogNTYwR0IKICAgIHRyYW46IG52bWUKICAgIGJvb3RhYmxl
OiB0cnVlCgogICMgU0FUQUAxIC0+IC9kZXYvc2RhLAogICMgU0FUQUAyIC0+IC9kZXYvc2Ri
LAogICMgU0FUQUAzIC0+IC9kZXYvc2RjLAogICMgU0FUQUA0IC0+IC9kZXYvc2RkCiAgIwog
IFNBVEE6CiAgICBxLXR5OiA0CiAgICBrcGF0dGVybjogc2Q/CiAgICBtaW4tc2l6ZTogMTUw
MEdCCiAgICB0cmFuOiBzYXRhCiAgICByb3RhOiB0cnVlCgpjcmVhdGU6CgogICMgTlZNRS1E
T1NAMSAtPiBkb3MoL2Rldi9udm1lMG4xKSwKICAjIE5WTUUtRE9TQDIgLT4gZG9zKC9kZXYv
bnZtZTFuMSkKICAjCiAgTlZNRS1ET1M6CiAgICBvbi1lYWNoOiBOVk1FCiAgICBiZGV2OiBw
dHRhYmxlCiAgICBwdHR5cGU6IGRvcwogICAgd2lwZTogc2lnbgoKICAgICMgUGFydGl0aW9u
cyBpbnNpZGUgZWFjaCB0YWJsZQogICAgIwogICAgY2hpbGRyZW46CgogICAgICAjIHN3YXBA
MSAtPiAvZGV2L252bWUwbjFwMSwKICAgICAgIyBzd2FwQDIgLT4gL2Rldi9udm1lMW4xcDEK
ICAgICAgIwogICAgICBzd2FwOgogICAgICAgIHNpemU6IDhHCiAgICAgICAgcHJpbWFyeTog
dHJ1ZQoKICAgICAgIyBib290QDEgLT4gL2Rldi9udm1lMG4xcDIsCiAgICAgICMgYm9vdEAy
IC0+IC9kZXYvbnZtZTFuMXAyCiAgICAgICMKICAgICAgYm9vdDoKICAgICAgICBzaXplOiA1
MDBNCiAgICAgICAgcHJpbWFyeTogdHJ1ZQogICAgICAgIGFjdGl2ZTogdHJ1ZQoKICAgICAg
IyBmYWtlQDEgLT4gL2Rldi9udm1lMG4xcDMsCiAgICAgICMgZmFrZUAyIC0+IC9kZXYvbnZt
ZTFuMXAzCiAgICAgICMKICAgICAgZmFrZToKICAgICAgICBzaXplOiAyRwogICAgICAgIHBy
aW1hcnk6IHRydWUKCiAgICAgICMgcm9vdEAxIC0+IC9kZXYvbnZtZTBuMXA1LAogICAgICAj
IHJvb3RAMiAtPiAvZGV2L252bWUxbjFwNQogICAgICAjCiAgICAgIHJvb3Q6CiAgICAgICAg
c2l6ZTogNEcKCiAgICAgICMgZmFzdEAxIC0+IC9kZXYvbnZtZTBuMXA2LAogICAgICAjIGZh
c3RAMiAtPiAvZGV2L252bWUxbjFwNgogICAgICAjCiAgICAgIGZhc3Q6CiAgICAgICAgc2l6
ZTogR1JPVwogICAgICAgIG1pbi1zaXplOiAxRwoKICAjCiAgIyBMaW51eCBzb2Z0d2FyZSBS
QUlEIGFuZCBETS1jcnlwdCBzZXR1cAogICMKCiAgIyAvZGV2L21kL0JPT1QgLT4gW2Jvb3RA
MSwgYm9vdEAyXQogICMKICBCT09UOgogICAgb3ZlcjogYm9vdAogICAgYmRldjogcmFpZAog
ICAgbWV0YWRhdGE6ICIxLjAiCgogICAgIyBbQk9PVF0gIi9ib290IiAtPiAvZGV2L21kL0JP
T1QKICAgICMKICAgIG92ZXJsYXBzOgogICAgICBmc3R5cGU6IGV4dDQKICAgICAgbGFiZWw6
IEJPT1QKICAgICAgZnN0YWI6IG5vZGV2LG5vc3VpZCxub2F0aW1lCiAgICAgIGRtb2RlOiAi
MDcwMCIKICAgICAgbXBvaW50OiAvYm9vdAoKICAjIC9kZXYvbWQvUk9PVCAtPiBbZmFrZUAx
LCBmYWtlQDJdCiAgIwogIFJPT1Q6CiAgICBvdmVyOiBmYWtlCiAgICBiZGV2OiByYWlkCgog
ICAgIyBbU1lTVEVNXSAiL21udC9mYWtlcm9vdCIgLT4gL2Rldi9tZC9ST09UCiAgICAjCiAg
ICBvdmVybGFwczoKICAgICAgZnN0eXBlOiBleHQ0CiAgICAgIGxhYmVsOiBTWVNURU0KICAg
ICAgZnN0YWI6IG5vYXV0byxub2F0aW1lCiAgICAgIG1wb2ludDogL21udC9mYWtlcm9vdAoK
ICAjIC9kZXYvbWQvUlgwMCAtPiBbcm9vdEAxLCByb290QDJdCiAgIwogIFJYMDA6CiAgICBv
dmVyOiByb290CiAgICBiZGV2OiByYWlkCgogICAgIyAvZGV2L21hcHBlci9SWDAwX2NyeXB0
MSAtPiAvZGV2L21kL1JYMDAKICAgICMKICAgIG92ZXJsYXBzOgogICAgICBiZGV2OiBjcnlw
dAogICAgICBsdWtzOiB2MgogICAgICBjcnlwdHRhYjogZGlzY2FyZAoKICAgICAgIyBbQ1JZ
UFRPUk9PVF0gIi8iIC0+IC9kZXYvbWFwcGVyL1JYMDBfY3J5cHQxCiAgICAgICMKICAgICAg
b3ZlcmxhcHM6CiAgICAgICAgZnN0eXBlOiBleHQyCiAgICAgICAgbGFiZWw6IENSWVBUT1JP
T1QKICAgICAgICBmc3RhYjogbm9hdGltZQogICAgICAgIHdpcGU6IHplcm8KICAgICAgICBt
cG9pbnQ6IC8KCiAgIyAvZGV2L21kL1NYMDAgLT4gW3N3YXBAMSwgc3dhcEAyXQogICMKICBT
WDAwOgogICAgb3Zlcjogc3dhcAogICAgYmRldjogcmFpZAoKICAgICMgL2Rldi9tYXBwZXIv
U1gwMF9jcnlwdDEgLT4gL2Rldi9tZC9TWDAwCiAgICAjCiAgICBvdmVybGFwczoKICAgICAg
YmRldjogY3J5cHQKICAgICAgY3J5cHR0YWI6ICJwbGFpbjY0LGNpcGhlcj1hZXMteHRzLWVz
c2l2OnNoYTI1Nixzd2FwLGRpc2NhcmQiCiAgICAgIGtleS1maWxlOiAvZGV2L3VyYW5kb20K
ICAgICAga2V5ZmlsZS1zaXplOiA2NAoKICAgICAgIyBbQ1JZUFRPU1dBUF0gLT4gL2Rldi9t
YXBwZXIvU1gwMF9jcnlwdDEKICAgICAgIwogICAgICBvdmVybGFwczoKICAgICAgICBmc3R5
cGU6IHN3YXAKICAgICAgICBsYWJlbDogQ1JZUFRPU1dBUAogICAgICAgIHdpcGU6IHplcm8K
ICAgICAgICBtcG9pbnQ6IHN3YXAKCiAgIyAvZGV2L21kL0ZBU1QgLT4gW2Zhc3RAMSwgZmFz
dEAyXQogICMKICBGQVNUOgogICAgb3ZlcjogZmFzdAogICAgYmRldjogcmFpZAogICAgd2lw
ZTogcmFuZG9tCgogICAgIyAvZGV2L21hcHBlci9GQVNUX2NyeXB0IC0+IC9kZXYvbWQvRkFT
VAogICAgIwogICAgb3ZlcmxhcHM6CiAgICAgIEZBU1RfY3J5cHQ6CiAgICAgICAgYmRldjog
Y3J5cHQKICAgICAgICBjcnlwdHRhYjogInBsYWluNjQsY2lwaGVyPWFlcy14dHMtZXNzaXY6
c2hhMjU2LGRpc2NhcmQiCiAgICAgICAga2V5LWZpbGU6IC9ldGMvY2FjaGUua2V5CgogICMg
L2Rldi9tZC9TTE9XIC0+IFtTQVRBQDEsIFNBVEFAMiwgU0FUQUAzLCBTQVRBQDRdCiAgIwog
IFNMT1c6CiAgICBvdmVyOiBTQVRBCiAgICBiZGV2OiByYWlkCiAgICBsZXZlbDogcmFpZDEw
CiAgICB3aXBlOiByYW5kb20KCiAgICAjIC9kZXYvbWFwcGVyL1NMT1dfY3J5cHQgLT4gL2Rl
di9tZC9TTE9XCiAgICAjCiAgICBvdmVybGFwczoKICAgICAgU0xPV19jcnlwdDoKICAgICAg
ICBiZGV2OiBjcnlwdAogICAgICAgIGNyeXB0dGFiOiAicGxhaW42NCxjaXBoZXI9YWVzLXh0
cy1lc3NpdjpzaGEyNTYiCiAgICAgICAga2V5LWZpbGU6IC9ldGMvc3RvcmFnZS5rZXkKCiAg
IwogICMgTG9naWNhbCBWb2x1bWUgTWFuYWdtZW50IChMVk0yKQogICMKCiAgIyAvZGV2L3N0
b3JhZ2UvIChWb2x1bWUgR3JvdXApCiAgIwogIHN0b3JhZ2U6CiAgICBvdmVyOiBbU0xPV19j
cnlwdCwgRkFTVF9jcnlwdF0KICAgIGJkZXY6IHZnCiAgICBleHRlbnQtc2l6ZTogNjRNCgog
ICAgIyBMb2dpY2FsIFZvbHVtZXMKICAgICMKICAgIGNoaWxkcmVuOgoKICAgICAgIyAvZGV2
L3N0b3JhZ2UvaG9tZV9qb3VybmFsCiAgICAgICMKICAgICAgaG9tZV9qb3VybmFsOgogICAg
ICAgIHB2OiBGQVNUX2NyeXB0CiAgICAgICAgc2l6ZTogMjU2TQoKICAgICAgIyAvZGV2L3N0
b3JhZ2UvZGF0YV9qb3VybmFsCiAgICAgICMKICAgICAgZGF0YV9qb3VybmFsOgogICAgICAg
IHB2OiBGQVNUX2NyeXB0CiAgICAgICAgc2l6ZTogMjU2TQoKICAgICAgIyAvZGV2L3N0b3Jh
Z2UvZF9wb29sX2NhY2hlCiAgICAgICMKICAgICAgZF9wb29sX2NhY2hlOgogICAgICAgIHR5
cGU6IGNhY2hlLXBvb2wKICAgICAgICBwdjogRkFTVF9jcnlwdAogICAgICAgIHNpemU6IDJH
CiAgICAgICAgY2FjaGVtb2RlOiB3cml0ZWJhY2sKICAgICAgICBjaHVua3NpemU6IDY0Cgog
ICAgICAjIC9kZXYvc3RvcmFnZS9iYWNrdXAKICAgICAgIwogICAgICBiYWNrdXA6CiAgICAg
ICAgcHY6IFNMT1dfY3J5cHQKICAgICAgICBzaXplOiA1MTJHCiAgICAgICAgY2h1bmtzaXpl
OiAyNTYKCiAgICAgICAgIyBbQkFDS1VQXSAiL21udC9iYWNrdXAiIC0+IC9kZXYvc3RvcmFn
ZS9iYWNrdXAKICAgICAgICAjCiAgICAgICAgb3ZlcmxhcHM6CiAgICAgICAgICBmc3R5cGU6
IHhmcwogICAgICAgICAgbGFiZWw6IEJBQ0tVUAogICAgICAgICAgbm8tZGlzY2FyZDogdHJ1
ZQogICAgICAgICAgZnN0YWI6IG5vYXV0byxub2Rldixub3N1aWQscmVsYXRpbWUKICAgICAg
ICAgIG1wb2ludDogL21udC9iYWNrdXAKCiAgICAgICMgL2Rldi9zdG9yYWdlL2RfcG9vbAog
ICAgICAjCiAgICAgIGRfcG9vbDoKICAgICAgICB0eXBlOiB0aGlucG9vbAogICAgICAgIHB2
OiBTTE9XX2NyeXB0MQogICAgICAgIHNpemU6IDEwMEcKICAgICAgICBjaHVua3NpemU6IDY0
CiAgICAgICAgY2FjaGVkZXZpY2U6IGRfcG9vbF9jYWNoZQoKICAgICAgICAjIFZvbHVtZXMg
aW5zaWRlIHRoaW5wb29sCiAgICAgICAgIwogICAgICAgIGNoaWxkcmVuOgoKICAgICAgICAg
ICMgL2Rldi9zdG9yYWdlL2hvbWVsdgogICAgICAgICAgIwogICAgICAgICAgaG9tZWx2Ogog
ICAgICAgICAgICBzaXplOiA1MTJNCiAgICAgICAgICAgIHZpcnR1YWxzaXplOiA0VAoKICAg
ICAgICAgICAgIyBbSE9NRV0gIi9ob21lIiAtPgogICAgICAgICAgICAjIFsvZGV2L3N0b3Jh
Z2UvaG9tZWx2LCAvZGV2L3N0b3JhZ2UvaG9tZV9qb3VyYWxdCiAgICAgICAgICAgICMKICAg
ICAgICAgICAgb3ZlcmxhcHM6CiAgICAgICAgICAgICAgZnN0eXBlOiBqZnMKICAgICAgICAg
ICAgICBsYWJlbDogSE9NRQogICAgICAgICAgICAgIGpvdXJuYWw6IGhvbWVfam91cm5hbAog
ICAgICAgICAgICAgIGZzdGFiOiBub2Rldixub2V4ZWMsbm9hdGltZQogICAgICAgICAgICAg
IG1wb2ludDogL2hvbWUKCiAgICAgICAgICAjIC9kZXYvc3RvcmFnZS9kYXRhbHYKICAgICAg
ICAgICMKICAgICAgICAgIGRhdGFsdjoKICAgICAgICAgICAgc2l6ZTogNTEyTQogICAgICAg
ICAgICB2aXJ0dWFsc2l6ZTogNFQKCiAgICAgICAgICAgICMgW0RBVEFdICIvbW50L2RhdGEi
IC0+CiAgICAgICAgICAgICMgWy9kZXYvc3RvcmFnZS9kYXRhbHYsIC9kZXYvc3RvcmFnZS9k
YXRhX2pvdXJhbF0KICAgICAgICAgICAgIwogICAgICAgICAgICBvdmVybGFwczoKICAgICAg
ICAgICAgICBmc3R5cGU6IGpmcwogICAgICAgICAgICAgIGxhYmVsOiBEQVRBCiAgICAgICAg
ICAgICAgam91cm5hbDogZGF0YV9qb3VybmFsCiAgICAgICAgICAgICAgZnN0YWI6IG5vZGV2
LG5vZXhlYyxub2F0aW1lCiAgICAgICAgICAgICAgbXBvaW50OiAvbW50L2RhdGEK
--------------3D689Ls3nP4PR5eWhG20ADiR
Content-Type: application/x-yaml; name="exp-list.yaml"
Content-Disposition: attachment; filename="exp-list.yaml"
Content-Transfer-Encoding: base64

IyBleHAtbGlzdC55YW1sIC0tIEFuIGV4YW1wbGUgb2YgdGhlIGNvbXBsZXggZGlzayBsYXlv
dXQuCiMKIyBUaGlzIGZpbGUgaXMgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKIyB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24sIHdoaWNoCiMgc2hvdWxkIGJlIGluY2x1ZGVkIHdpdGggc291cmNlcyBhcyB0aGUg
ZmlsZSBDT1BZSU5HLgojCiMgQ29weXJpZ2h0IChDKSAyMDIzLTIwMjQsIEFMVCBMaW51eCBU
ZWFtCiMgQXV0aG9yOiBMZW9uaWQgS3Jpdm9zaGVpbiA8a2xhcmtAYWx0bGludXgub3JnPgot
LS0KCmdlbmVyYWw6CgogICMgVm9sdW1lIFNsaWNlciBFeHBhbmRlZCBMaXN0LCBWZXJzaW9u
IDEuMAogIGRhdGEtZm9ybWF0OiBWU0VMLzEuMAoKICAjIENvbW1vbiBvcHRpb25zCiAgc3Nk
LWF1dG8tZGV0ZWN0OiB0cnVlCiAgc2VhcmNoLXJlbW92YWJsZTogZmFsc2UKICBhbGwtZGlz
a3MtYm9vdGFibGU6IGZhbHNlCgphY3RpdmF0ZToKCiAgLSBkaXNrCiAgLSBwdHRhYmxlCiAg
LSByYWlkCiAgLSBjcnlwdAogIC0gbHZtMgogIC0gZXh0NAogIC0gZXh0MgogIC0gc3dhcAog
IC0geGZzCiAgLSBqZnMKCnRhcmdldHM6CgogICMgL2Rldi9udm1lMG4xCiAgLSBpZDogTlZN
RUAxCiAgICBiZGV2OiBkaXNrCiAgICBrcGF0dGVybjogbnZtZT9uMQogICAgbWluLXNpemU6
IDQxMEdCCiAgICBtYXgtc2l6ZTogNTYwR0IKICAgIHRyYW46IG52bWUKICAgIGJvb3RhYmxl
OiB0cnVlCgogICMgL2Rldi9udm1lMW4xCiAgLSBpZDogTlZNRUAyCiAgICBiZGV2OiBkaXNr
CiAgICBrcGF0dGVybjogbnZtZT9uMQogICAgbWluLXNpemU6IDQxMEdCCiAgICBtYXgtc2l6
ZTogNTYwR0IKICAgIHRyYW46IG52bWUKICAgIGJvb3RhYmxlOiB0cnVlCgogICMgL2Rldi9z
ZGEKICAtIGlkOiBTQVRBQDEKICAgIGJkZXY6IGRpc2sKICAgIGtwYXR0ZXJuOiBzZD8KICAg
IG1pbi1zaXplOiAxNTAwR0IKICAgIHRyYW46IHNhdGEKICAgIHJvdGE6IHRydWUKCiAgIyAv
ZGV2L3NkYgogIC0gaWQ6IFNBVEFAMgogICAgYmRldjogZGlzawogICAga3BhdHRlcm46IHNk
PwogICAgbWluLXNpemU6IDE1MDBHQgogICAgdHJhbjogc2F0YQogICAgcm90YTogdHJ1ZQoK
ICAjIC9kZXYvc2RjCiAgLSBpZDogU0FUQUAzCiAgICBiZGV2OiBkaXNrCiAgICBrcGF0dGVy
bjogc2Q/CiAgICBtaW4tc2l6ZTogMTUwMEdCCiAgICB0cmFuOiBzYXRhCiAgICByb3RhOiB0
cnVlCgogICMgL2Rldi9zZGQKICAtIGlkOiBTQVRBQDQKICAgIGJkZXY6IGRpc2sKICAgIGtw
YXR0ZXJuOiBzZD8KICAgIG1pbi1zaXplOiAxNTAwR0IKICAgIHRyYW46IHNhdGEKICAgIHJv
dGE6IHRydWUKCmNyZWF0ZToKCiAgIyBkb3MoL2Rldi9udm1lMG4xKQogIC0gaWQ6IE5WTUUt
RE9TQDEKICAgIG92ZXI6IE5WTUVAMQogICAgYmRldjogcHR0YWJsZQogICAgcHR0eXBlOiBk
b3MKICAgIHdpcGU6IHNpZ24KCiAgIyAvZGV2L252bWUwbjFwMQogIC0gaWQ6IHN3YXBAMQog
ICAgaW5zaWRlOiBOVk1FLURPU0AxCiAgICBiZGV2OiBwYXJ0CiAgICBzaXplOiA4RwogICAg
cHJpbWFyeTogdHJ1ZQogICAgcGFydHR5cGU6IFIKCiAgIyAvZGV2L252bWUwbjFwMgogIC0g
aWQ6IGJvb3RAMQogICAgaW5zaWRlOiBOVk1FLURPU0AxCiAgICBiZGV2OiBwYXJ0CiAgICBz
aXplOiA1MDBNCiAgICBwcmltYXJ5OiB0cnVlCiAgICBhY3RpdmU6IHRydWUKICAgIHBhcnR0
eXBlOiBSCgogICMgL2Rldi9udm1lMG4xcDMKICAtIGlkOiBmYWtlQDEKICAgIGluc2lkZTog
TlZNRS1ET1NAMQogICAgYmRldjogcGFydAogICAgc2l6ZTogMkcKICAgIHByaW1hcnk6IHRy
dWUKICAgIHBhcnR0eXBlOiBSCgogICMgL2Rldi9udm1lMG4xcDUKICAtIGlkOiByb290QDEK
ICAgIGluc2lkZTogTlZNRS1ET1NAMQogICAgYmRldjogcGFydAogICAgc2l6ZTogNEcKICAg
IHBhcnR0eXBlOiBSCgogICMgL2Rldi9udm1lMG4xcDYKICAtIGlkOiBmYXN0QDEKICAgIGlu
c2lkZTogTlZNRS1ET1NAMQogICAgc2l6ZTogR1JPVwogICAgbWluLXNpemU6IDFHCiAgICBw
YXJ0dHlwZTogUgoKICAjIGRvcygvZGV2L252bWUwbjEpCiAgLSBlbmQtb2Y6IE5WTUUtRE9T
QDEKCiAgIyBkb3MoL2Rldi9udm1lMW4xKQogIC0gaWQ6IE5WTUUtRE9TQDIKICAgIG92ZXI6
IE5WTUVAMgogICAgYmRldjogcHR0YWJsZQogICAgcHR0eXBlOiBkb3MKICAgIHdpcGU6IHNp
Z24KCiAgIyAvZGV2L252bWUxbjFwMQogIC0gaWQ6IHN3YXBAMgogICAgaW5zaWRlOiBOVk1F
LURPU0AyCiAgICBiZGV2OiBwYXJ0CiAgICBzaXplOiA4RwogICAgcHJpbWFyeTogdHJ1ZQog
ICAgcGFydHR5cGU6IFIKCiAgIyAvZGV2L252bWUxbjFwMgogIC0gaWQ6IGJvb3RAMgogICAg
aW5zaWRlOiBOVk1FLURPU0AyCiAgICBiZGV2OiBwYXJ0CiAgICBzaXplOiA1MDBNCiAgICBw
cmltYXJ5OiB0cnVlCiAgICBhY3RpdmU6IHRydWUKICAgIHBhcnR0eXBlOiBSCgogICMgL2Rl
di9udm1lMW4xcDMKICAtIGlkOiBmYWtlQDIKICAgIGluc2lkZTogTlZNRS1ET1NAMgogICAg
YmRldjogcGFydAogICAgc2l6ZTogMkcKICAgIHByaW1hcnk6IHRydWUKICAgIHBhcnR0eXBl
OiBSCgogICMgL2Rldi9udm1lMW4xcDUKICAtIGlkOiByb290QDIKICAgIGluc2lkZTogTlZN
RS1ET1NAMgogICAgYmRldjogcGFydAogICAgc2l6ZTogNEcKICAgIHBhcnR0eXBlOiBSCgog
ICMgL2Rldi9udm1lMW4xcDYKICAtIGlkOiBmYXN0QDIKICAgIGluc2lkZTogTlZNRS1ET1NA
MgogICAgYmRldjogcGFydAogICAgc2l6ZTogR1JPVwogICAgbWluLXNpemU6IDFHCiAgICBw
YXJ0dHlwZTogUgoKICAjIGRvcygvZGV2L252bWUxbjEpCiAgLSBlbmQtb2Y6IE5WTUUtRE9T
QDIKCiAgIwogICMgTGludXggc29mdHdhcmUgUkFJRAogICMKCiAgIyAvZGV2L21kL0JPT1Qg
LT4gW2Jvb3RAMSwgYm9vdEAyXQogICMKICAtIGlkOiBCT09UCiAgICBvdmVyOiBbYm9vdEAx
LCBib290QDJdCiAgICBiZGV2OiByYWlkCiAgICBsZXZlbDogcmFpZDEKICAgIG1ldGFkYXRh
OiAiMS4wIgogICAgaG9tZWhvc3Q6IEZJWEVECiAgICBuYW1lOiBCT09UCgogICMgL2Rldi9t
ZC9ST09UIC0+IFtmYWtlQDEsIGZha2VAMl0KICAjCiAgLSBpZDogUk9PVAogICAgb3Zlcjog
W2Zha2VAMSwgZmFrZUAyXQogICAgYmRldjogcmFpZAogICAgbGV2ZWw6IHJhaWQxCiAgICBo
b21laG9zdDogRklYRUQKICAgIG5hbWU6IFJPT1QKCiAgIyAvZGV2L21kL1JYMDAgLT4gW3Jv
b3RAMSwgcm9vdEAyXQogICMKICAtIGlkOiBSWDAwCiAgICBvdmVyOiBbcm9vdEAxLCByb290
QDJdCiAgICBiZGV2OiByYWlkCiAgICBsZXZlbDogcmFpZDEKICAgIGhvbWVob3N0OiBGSVhF
RAogICAgbmFtZTogUlgwMAoKICAjIC9kZXYvbWQvU1gwMCAtPiBbc3dhcEAxLCBzd2FwQDJd
CiAgIwogIC0gaWQ6IFNYMDAKICAgIG92ZXI6IFtzd2FwQDEsIHN3YXBAMl0KICAgIGJkZXY6
IHJhaWQKICAgIGxldmVsOiByYWlkMQogICAgaG9tZWhvc3Q6IEZJWEVECiAgICBuYW1lOiBT
WDAwCgogICMgL2Rldi9tZC9GQVNUIC0+IFtmYXN0QDEsIGZhc3RAMl0KICAjCiAgLSBpZDog
RkFTVAogICAgb3ZlcjogW2Zhc3RAMSwgZmFzdEAyXQogICAgYmRldjogcmFpZAogICAgbGV2
ZWw6IHJhaWQxCiAgICBob21laG9zdDogRklYRUQKICAgIG5hbWU6IEZBU1QKICAgIHdpcGU6
IHJhbmRvbQoKICAjIC9kZXYvbWQvU0xPVyAtPiBbU0FUQUAxLCBTQVRBQDIsIFNBVEFAMywg
U0FUQUA0XQogICMKICAtIGlkOiBTTE9XCiAgICBvdmVyOiBbU0FUQUAxLCBTQVRBQDIsIFNB
VEFAMywgU0FUQUA0XQogICAgYmRldjogcmFpZAogICAgbGV2ZWw6IHJhaWQxMAogICAgaG9t
ZWhvc3Q6IEZJWEVECiAgICBuYW1lOiBTTE9XCiAgICB3aXBlOiByYW5kb20KCiAgIwogICMg
RE0tY3J5cHQgc2V0dXAKICAjCgogICMgL2Rldi9tYXBwZXIvUlgwMF9jcnlwdDEgLT4gL2Rl
di9tZC9SWDAwCiAgIwogIC0gaWQ6IFJYMDBfY3J5cHQxCiAgICBvdmVyOiBSWDAwCiAgICBi
ZGV2OiBjcnlwdAogICAgbHVrczogdjIKICAgIGNyeXB0dGFiOiBkaXNjYXJkCgogICMgL2Rl
di9tYXBwZXIvU1gwMF9jcnlwdDEgLT4gL2Rldi9tZC9TWDAwCiAgIwogIC0gaWQ6IFNYMDBf
Y3J5cHQxCiAgICBvdmVyOiBTWDAwCiAgICBiZGV2OiBjcnlwdAogICAgY3J5cHR0YWI6ICJw
bGFpbjY0LGNpcGhlcj1hZXMteHRzLWVzc2l2OnNoYTI1Nixzd2FwLGRpc2NhcmQiCiAgICBr
ZXktZmlsZTogL2Rldi91cmFuZG9tCiAgICBrZXlmaWxlLXNpemU6IDY0CgogICMgL2Rldi9t
YXBwZXIvRkFTVF9jcnlwdCAtPiAvZGV2L21kL0ZBU1QKICAjCiAgLSBpZDogRkFTVF9jcnlw
dAogICAgb3ZlcjogRkFTVAogICAgYmRldjogY3J5cHQKICAgIGNyeXB0dGFiOiAicGxhaW42
NCxjaXBoZXI9YWVzLXh0cy1lc3NpdjpzaGEyNTYsZGlzY2FyZCIKICAgIGtleS1maWxlOiAv
ZXRjL2NhY2hlLmtleQoKICAjIC9kZXYvbWFwcGVyL1NMT1dfY3J5cHQgLT4gL2Rldi9tZC9T
TE9XCiAgIwogIC0gaWQ6IFNMT1dfY3J5cHQKICAgIG92ZXI6IFNMT1cKICAgIGJkZXY6IGNy
eXB0CiAgICBjcnlwdHRhYjogInBsYWluNjQsY2lwaGVyPWFlcy14dHMtZXNzaXY6c2hhMjU2
IgogICAga2V5LWZpbGU6IC9ldGMvc3RvcmFnZS5rZXkKCiAgIwogICMgTG9naWNhbCBWb2x1
bWUgTWFuYWdtZW50IChMVk0yKQogICMKCiAgIyAvZGV2L3N0b3JhZ2UvIChWb2x1bWUgR3Jv
dXApCiAgIwogIC0gaWQ6IHN0b3JhZ2UKICAgIG92ZXI6IFtTTE9XX2NyeXB0LCBGQVNUX2Ny
eXB0XQogICAgYmRldjogdmcKICAgIGV4dGVudC1zaXplOiA2NE0KCiAgIyAvZGV2L3N0b3Jh
Z2UvaG9tZV9qb3VybmFsCiAgIwogIC0gaWQ6IGhvbWVfam91cm5hbAogICAgaW5zaWRlOiBz
dG9yYWdlCiAgICBwdjogRkFTVF9jcnlwdAogICAgYmRldjogbHYKICAgIHNpemU6IDI1Nk0K
ICAgIG5hbWU6IGhvbWVfam91cm5hbAoKICAjIC9kZXYvc3RvcmFnZS9kYXRhX2pvdXJuYWwK
ICAjCiAgLSBpZDogZGF0YV9qb3VybmFsCiAgICBpbnNpZGU6IHN0b3JhZ2UKICAgIHB2OiBG
QVNUX2NyeXB0CiAgICBiZGV2OiBsdgogICAgc2l6ZTogMjU2TQogICAgbmFtZTogZGF0YV9q
b3VybmFsCgogICMgL2Rldi9zdG9yYWdlL2RfcG9vbF9jYWNoZQogICMKICAtIGlkOiBkX3Bv
b2xfY2FjaGUKICAgIGluc2lkZTogc3RvcmFnZQogICAgcHY6IEZBU1RfY3J5cHQKICAgIGJk
ZXY6IGx2CiAgICB0eXBlOiBjYWNoZS1wb29sCiAgICBzaXplOiAyRwogICAgbmFtZTogZF9w
b29sX2NhY2hlCiAgICBjYWNoZW1vZGU6IHdyaXRlYmFjawogICAgY2h1bmtzaXplOiA2NAoK
ICAjIC9kZXYvc3RvcmFnZS9iYWNrdXAKICAjCiAgLSBpZDogYmFja3VwCiAgICBpbnNpZGU6
IHN0b3JhZ2UKICAgIHB2OiBTTE9XX2NyeXB0CiAgICBiZGV2OiBsdgogICAgc2l6ZTogNTEy
RwogICAgbmFtZTogYmFja3VwCiAgICBjaHVua3NpemU6IDI1NgoKICAjIC9kZXYvc3RvcmFn
ZS9kX3Bvb2wKICAjCiAgLSBpZDogZF9wb29sCiAgICBpbnNpZGU6IHN0b3JhZ2UKICAgIHB2
OiBTTE9XX2NyeXB0MQogICAgYmRldjogbHYKICAgIHR5cGU6IHRoaW5wb29sCiAgICBzaXpl
OiAxMDBHCiAgICBuYW1lOiBkX3Bvb2wKICAgIGNodW5rc2l6ZTogNjQKICAgIGNhY2hlZGV2
aWNlOiBkX3Bvb2xfY2FjaGUKCiAgIyAvZGV2L3N0b3JhZ2UvaG9tZWx2CiAgIwogIC0gaWQ6
IGhvbWVsdgogICAgaW5zaWRlOiBkX3Bvb2wKICAgIGJkZXY6IGx2CiAgICBzaXplOiA1MTJN
CiAgICBuYW1lOiBob21lbHYKICAgIHZpcnR1YWxzaXplOiA0VAoKICAjIC9kZXYvc3RvcmFn
ZS9kYXRhbHYKICAjCiAgLSBpZDogZGF0YWx2CiAgICBpbnNpZGU6IGRfcG9vbAogICAgYmRl
djogbHYKICAgIHNpemU6IDUxMk0KICAgIG5hbWU6IGRhdGFsdgogICAgdmlydHVhbHNpemU6
IDRUCgogICMgL2Rldi9zdG9yYWdlL2RfcG9vbAogIC0gZW5kLW9mOiBkX3Bvb2wKCiAgIyAv
ZGV2L3N0b3JhZ2UvCiAgLSBlbmQtb2Y6IHN0b3JhZ2UKCnZvbHVtZXM6CgogICMgW0NSWVBU
T1JPT1RdICIvIiAtPiAvZGV2L21hcHBlci9SWDAwX2NyeXB0MQogICMKICAtIG92ZXI6IFJY
MDBfY3J5cHQxCiAgICBmc3R5cGU6IGV4dDIKICAgIGxhYmVsOiBDUllQVE9ST09UCiAgICBm
c3RhYjogbm9hdGltZQogICAgd2lwZTogemVybwogICAgbXBvaW50OiAvCgogICMgW0JPT1Rd
ICIvYm9vdCIgLT4gL2Rldi9tZC9CT09UCiAgIwogIC0gb3ZlcjogQk9PVAogICAgZnN0eXBl
OiBleHQ0CiAgICBsYWJlbDogQk9PVAogICAgZnN0YWI6IG5vZGV2LG5vc3VpZCxub2F0aW1l
CiAgICBkbW9kZTogIjA3MDAiCiAgICBtcG9pbnQ6IC9ib290CgogICMgW0hPTUVdICIvaG9t
ZSIgLT4KICAjIFsvZGV2L3N0b3JhZ2UvaG9tZWx2LCAvZGV2L3N0b3JhZ2UvaG9tZV9qb3Vy
YWxdCiAgIwogIC0gb3ZlcjogaG9tZWx2CiAgICBmc3R5cGU6IGpmcwogICAgbGFiZWw6IEhP
TUUKICAgIGpvdXJuYWw6IGhvbWVfam91cm5hbAogICAgZnN0YWI6IG5vZGV2LG5vZXhlYyxu
b2F0aW1lCiAgICBtcG9pbnQ6IC9ob21lCgogICMgW0JBQ0tVUF0gIi9tbnQvYmFja3VwIiAt
PiAvZGV2L3N0b3JhZ2UvYmFja3VwCiAgIwogIC0gb3ZlcjogYmFja3VwCiAgICBmc3R5cGU6
IHhmcwogICAgbGFiZWw6IEJBQ0tVUAogICAgbm8tZGlzY2FyZDogdHJ1ZQogICAgZnN0YWI6
IG5vYXV0byxub2Rldixub3N1aWQscmVsYXRpbWUKICAgIG1wb2ludDogL21udC9iYWNrdXAK
CiAgIyBbREFUQV0gIi9tbnQvZGF0YSIgLT4KICAjIFsvZGV2L3N0b3JhZ2UvZGF0YWx2LCAv
ZGV2L3N0b3JhZ2UvZGF0YV9qb3VyYWxdCiAgIwogIC0gb3ZlcjogZGF0YWx2CiAgICBmc3R5
cGU6IGpmcwogICAgbGFiZWw6IERBVEEKICAgIGpvdXJuYWw6IGRhdGFfam91cm5hbAogICAg
ZnN0YWI6IG5vZGV2LG5vZXhlYyxub2F0aW1lCiAgICBtcG9pbnQ6IC9tbnQvZGF0YQoKICAj
IFtTWVNURU1dICIvbW50L2Zha2Vyb290IiAtPiAvZGV2L21kL1JPT1QKICAjCiAgLSBvdmVy
OiBST09UCiAgICBmc3R5cGU6IGV4dDQKICAgIGxhYmVsOiBTWVNURU0KICAgIGZzdGFiOiBu
b2F1dG8sbm9hdGltZQogICAgbXBvaW50OiAvbW50L2Zha2Vyb290CgogICMgW0NSWVBUT1NX
QVBdIC0+IC9kZXYvbWFwcGVyL1NYMDBfY3J5cHQxCiAgIwogIC0gb3ZlcjogU1gwMF9jcnlw
dDEKICAgIGZzdHlwZTogc3dhcAogICAgbGFiZWw6IENSWVBUT1NXQVAKICAgIHdpcGU6IHpl
cm8KICAgIG1wb2ludDogc3dhcAo=
--------------3D689Ls3nP4PR5eWhG20ADiR
Content-Type: text/markdown; charset=UTF-8; name="layout-ru.md"
Content-Disposition: attachment; filename="layout-ru.md"
Content-Transfer-Encoding: base64

IyDQpNC+0YDQvNCw0YIg0YTQsNC50LvQsCDRgNCw0LfQvNC10YLQutC4INC00LjRgdC60L7Q
sgoKIyMgVlNDVC8xLjA6IFZvbHVtZSBTbGljZXIgQ29uZGVuc2VkIFRyZWUsIFZlcnNpb24g
MS4wCgrQmNGB0YXQvtC00L3Ri9C5INGE0LDQudC7INGBINCz0LvRg9Cx0L7QutC+0Lkg0LjQ
tdGA0LDRgNGF0LjQtdC5INCy0LvQvtC20LXQvdC90L7RgdGC0LgsINC/0L7Qt9Cy0L7Qu9GP
0Y7RidC40Lkg0L7Qv9GA0LXQtNC10LvQuNGC0YwK0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQ
vtC00L3QuNGFINGB0YPRidC90L7RgdGC0LXQuSDQvtGCINC00YDRg9Cz0LjRhSDQsdC10Lcg
0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LjQtNC10L3RgtC40YTQuNC60LDRhtC40LgK
0LrQsNC20LTQvtC5INCx0LvQvtGH0L3QvtC5INGB0YPRidC90L7RgdGC0LguINCSINGH0LjR
gdC70LUg0L7RgdC+0LHQtdC90L3QvtGB0YLQtdC5OiDQv9C+0LTQtNC10YDQttC60LAg0L3Q
sNCx0L7RgNC+0LIg0LTQuNGB0LrQvtCyLArQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQsNGP
INC40LTQtdC90YLQuNGE0LjQutCw0YbQuNGPINGD0LfQu9C+0LIg0LTQtdGA0LXQstCwINGD
0YHRgtGA0L7QudGB0YLQsiwg0L/QvtC00LTQtdGA0LbQutCwINC30L3QsNGH0LXQvdC40LkK
0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINCx0LvQvtGH0L3Ri9GFINGB0YPRidC9
0L7RgdGC0LXQuSDQuCDRhNCw0LnQu9C+0LLRi9GFINGB0LjRgdGC0LXQvC4g0JIg0Y3RgtC+
0Lwg0YTQvtGA0LzQsNGC0LUK0LTQvtC/0YPRgdC60LDQtdGC0YHRjyDQvtC/0YDQtdC00LXQ
u9C10L3QuNC1INCz0YDRg9C/0L8g0LTQuNGB0LrQvtCyINC/0L7QtCDQvtCx0YnQuNC8INC4
0LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0L7QvCDQuCDQs9GA0YPQv9C/CtC+0L/QtdGA0LDR
htC40LksINCy0YvQv9C+0LvQvdGP0LXQvNGL0YUg0L3QsNC0INC90LjQvNC4INC/0L4g0L7Q
tNC90L7QvNGDINC/0YDQuNC90YbQuNC/0YMuCgrQn9C10YDQstGL0Lkg0YPRgNC+0LLQtdC9
0Ywg0YTQsNC50LvQsCDRgNCw0LfQvNC10YLQutC4INC/0YDQtdC00YPRgdC80LDRgtGA0LjQ
stCw0LXRgiDRgdC70LXQtNGD0Y7RidC40LUg0YHQtdC60YbQuNC4OgoKKiBgZ2VuZXJhbGA6
INC40L3RhNC+0YDQvNCw0YbQuNGPINC+INGE0L7RgNC80LDRgtC1INC00LDQvdC90YvRhSDQ
uCDQs9C70L7QsdCw0LvRjNC90YvQtSDQvtC/0YbQuNC4CiogYGRlZmF1bHRzYDog0LfQvdCw
0YfQtdC90LjRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTRgNGD0LPQuNGF
INGB0LXQutGG0LjQuSDRjdGC0L7Qs9C+INGE0LDQudC70LAKKiBgYWN0aXZhdGVgOiDQvtC/
0LjRgdCw0L3QuNGPINC/0L7QtNGB0LjRgdGC0LXQvCwg0LfQsNC00LXQudGB0YLQstC+0LLQ
sNC90L3Ri9GFINC00L4g0L3QsNGH0LDQu9CwINGA0LDQt9C80LXRgtC60LgKKiBgcHJvdGVj
dGVkYDog0L7Qv9C40YHQsNC90LjRjyDQstGB0LXRhSDQuNGB0LrQu9GO0YfQsNC10LzRi9GF
ICjQt9Cw0YnQuNGJ0LDQtdC80YvRhSkg0LTQuNGB0LrQvtCyCiogYHRhcmdldHNgOiDQvtC/
0LjRgdCw0L3QuNGPINCy0YHQtdGFINCy0LrQu9GO0YfQsNC10LzRi9GFINGG0LXQu9C10LLR
i9GFINC00LjRgdC60L7QsgoqIGBsYXlvdXRgOiDQvtC/0LjRgdCw0L3QuNC1INC/0YDQvtCy
0LXRgNGP0LXQvNGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyINGB0YPRidC10YHRgtCy0YPRjtGJ
0LXQuSDRgNCw0LfQvNC10YLQutC4CiogYGRlbGV0ZWA6INGB0L/QuNGB0L7QuiDRg9C00LDQ
u9GP0LXQvNGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyINGB0YPRidC10YHRgtCy0YPRjtGJ0LXQ
uSDRgNCw0LfQvNC10YLQutC4CiogYGNoYW5nZWA6INC+0L/QuNGB0LDQvdC40LUg0LjQt9C8
0LXQvdC10L3QuNC5INGB0YPRidC10YHRgtCy0YPRjtGJ0LXQuSDRgNCw0LfQvNC10YLQutC4
CiogYGNyZWF0ZWA6INC+0L/QuNGB0LDQvdC40LUg0LLQvdC+0LLRjCDRgdC+0LfQtNCw0LLQ
sNC10LzRi9GFINGN0LvQtdC80LXQvdGC0L7QsiDQsdGD0LTRg9GJ0LXQuSDRgNCw0LfQvNC1
0YLQutC4CiogYHZvbHVtZXNgOiDRgdC/0LjRgdC+0Log0YTQvtGA0LzQsNGC0LjRgNGD0LXQ
vNGL0YUg0YLQvtC80L7QsiDQuCDQvNC+0L3RgtC40YDRg9C10LzRi9GFINGE0LDQudC70L7Q
stGL0YUg0YHQuNGB0YLQtdC8CgrQntCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LzQuCDRj9Cy0LvR
j9GO0YLRgdGPINGB0LXQutGG0LjQuCBgZ2VuZXJhbGAg0LggYHRhcmdldHNgLiDQntGB0YLQ
sNC70YzQvdGL0LUg0LfQsNCy0LjRgdGP0YIK0L7RgiDRgtC+0LPQviwg0YfRgtC+INC80Ysg
0YXQvtGC0LjQvCDRgdC00LXQu9Cw0YLRjCDQv9GA0Lgg0L/QvtC80L7RidC4INC00LDQvdC9
0L7Qs9C+INGE0LDQudC70LAg0YDQsNC30LzQtdGC0LrQuCDQtNC40YHQutC+0LIuCgojIyBW
U0VMLzEuMDogVm9sdW1lIFNsaWNlciBFeHBhbmRlZCBMaXN0LCBWZXJzaW9uIDEuMAoK0JLQ
vdGD0YLRgNC10L3QvdC40Lkg0YTQvtGA0LzQsNGCINGA0LDQt9Cy0ZHRgNC90YPRgtC+0LPQ
viDRgdC/0LjRgdC60LAsINCyINC60L7RgtC+0YDQvtC8INGB0L7RhdGA0LDQvdGR0L0g0YLQ
vtC70YzQutC+INC/0LXRgNCy0YvQuQrRg9GA0L7QstC10L3RjCDQuNGB0YXQvtC00L3QvtCz
0L4g0YTQvtGA0LzQsNGC0LAuINCS0YHQtdC8INGD0LfQu9Cw0Lwg0L/RgNC40YHQstC+0LXQ
vdGLINC60LDQutC40LUt0YLQviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGLLArQtdGB
0LvQuCDQuNGFINC90LUg0LHRi9C70L4g0LIg0LjRgdGF0L7QtNC90L7QvCDRhNCw0LnQu9C1
LiDQndCw0LHQvtGA0Ysg0LTQuNGB0LrQvtCyINC4INC+0L/QtdGA0LDRhtC40Lkg0L3QsNC0
INC90LjQvNC4INC/0L7QtArQvtCx0YnQuNC8INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA
0L7QvCDRgNCw0LfQstGR0YDQvdGD0YLRiyDQtNC+INC40L3QtNC40LLQuNC00YPQsNC70YzQ
vdGL0YUg0LTQuNGB0LrQvtCyINC4INC+0L/QtdGA0LDRhtC40LksCtC60LDQttC00LDRjyDQ
v9C+0LQg0YHQstC+0LjQvCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNC+0LwuINCa0LDQ
ttC00LDRjyDQsdC70L7Rh9C90LDRjyDRgdGD0YnQvdC+0YHRgtGMINC/0LXRgNC10L3QtdGB
0LXQvdCwINC90LAK0LLRgtC+0YDQvtC5INGD0YDQvtCy0LXQvdGMINGB0L7QvtGC0LLQtdGC
0YHRgtCy0YPRjtGJ0LXQs9C+INGA0LDQt9C00LXQu9CwLiDQmtCw0LbQtNCw0Y8g0YTQsNC5
0LvQvtCy0LDRjyDRgdC40YHRgtC10LzQsCDQv9C10YDQtdC90LXRgdC10L3QsArQuNC3INGA
0LDQt9C00LXQu9CwIGBjcmVhdGVgINCyINGA0LDQt9C00LXQuyBgdm9sdW1lc2AuINCS0YHQ
tSDQsdC70L7Rh9C90YvQtSDRgdGD0YnQvdC+0YHRgtC4INC4INGE0LDQudC70L7QstGL0LUK
0YHQuNGB0YLQtdC80Ysg0L3QsNGB0YvRidC10L3RiyDQtNC10YTQvtC70YLQvdGL0LzQuCDQ
t9C90LDRh9C10L3QuNGP0LzQuCDQuCDQuNC90YTQvtGA0LzQsNGG0LjQtdC5INC+INC/0L7Q
t9C40YbQuNC+0L3QuNGA0L7QstCw0L3QuNC4CtCx0LvQvtC60LAg0LIg0LjRgdGF0L7QtNC9
0L7QvCDRhNCw0LnQu9C1LiDQoNCw0LfQtNC10Lsg0LfQvdCw0YfQtdC90LjQuSDQv9C+INGD
0LzQvtC70YfQsNC90LjRjiDRg9C00LDQu9GR0L0uINCU0L7QsdCw0LLQu9C10L3RiwrQt9Cw
0LzRi9C60LDQvdC40Y8g0LHQu9C+0YfQvdGL0YUg0YPRgdGC0YDQvtC50YHRgtCyLCDQuNC8
0LXRjtGJ0LjRhSDQtNC+0YfQtdGA0L3QuNC1INGD0YHRgtGA0L7QudGB0YLQstCwLgoK0J/Q
tdGA0LLRi9C5INGD0YDQvtCy0LXQvdGMINGE0LDQudC70LAg0YDQsNC30LzQtdGC0LrQuCDQ
v9GA0LXQtNGD0YHQvNCw0YLRgNC40LLQsNC10YIg0YHQu9C10LTRg9GO0YnQuNC1INGB0LXQ
utGG0LjQuDoKCiogYGdlbmVyYWxgOiDQuNC90YTQvtGA0LzQsNGG0LjRjyDQviDRhNC+0YDQ
vNCw0YLQtSDQtNCw0L3QvdGL0YUg0Lgg0LPQu9C+0LHQsNC70YzQvdGL0LUg0L7Qv9GG0LjQ
uAoqIGBhY3RpdmF0ZWA6INC+0L/QuNGB0LDQvdC40Y8g0L/QvtC00YHQuNGB0YLQtdC8LCDQ
t9Cw0LTQtdC50YHRgtCy0L7QstCw0L3QvdGL0YUg0LTQviDQvdCw0YfQsNC70LAg0YDQsNC3
0LzQtdGC0LrQuAoqIGBwcm90ZWN0ZWRgOiDQvtC/0LjRgdCw0L3QuNGPINCy0YHQtdGFINC4
0YHQutC70Y7Rh9Cw0LXQvNGL0YUgKNC30LDRidC40YnQsNC10LzRi9GFKSDQtNC40YHQutC+
0LIKKiBgdGFyZ2V0c2A6INC+0L/QuNGB0LDQvdC40Y8g0LLRgdC10YUg0LLQutC70Y7Rh9Cw
0LXQvNGL0YUg0YbQtdC70LXQstGL0YUg0LTQuNGB0LrQvtCyCiogYGxheW91dGA6INC+0L/Q
uNGB0LDQvdC40LUg0L/RgNC+0LLQtdGA0Y/QtdC80YvRhSDRjdC70LXQvNC10L3RgtC+0LIg
0YHRg9GJ0LXRgdGC0LLRg9GO0YnQtdC5INGA0LDQt9C80LXRgtC60LgKKiBgZGVsZXRlYDog
0YHQv9C40YHQvtC6INGD0LTQsNC70Y/QtdC80YvRhSDRjdC70LXQvNC10L3RgtC+0LIg0YHR
g9GJ0LXRgdGC0LLRg9GO0YnQtdC5INGA0LDQt9C80LXRgtC60LgKKiBgY2hhbmdlYDog0L7Q
v9C40YHQsNC90LjQtSDQuNC30LzQtdC90LXQvdC40Lkg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQ
tdC5INGA0LDQt9C80LXRgtC60LgKKiBgY3JlYXRlYDog0L7Qv9C40YHQsNC90LjQtSDQstC9
0L7QstGMINGB0L7Qt9C00LDQstCw0LXQvNGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyINCx0YPQ
tNGD0YnQtdC5INGA0LDQt9C80LXRgtC60LgKKiBgdm9sdW1lc2A6INGB0L/QuNGB0L7QuiDR
hNC+0YDQvNCw0YLQuNGA0YPQtdC80YvRhSDRgtC+0LzQvtCyINC4INC80L7QvdGC0LjRgNGD
0LXQvNGL0YUg0YTQsNC50LvQvtCy0YvRhSDRgdC40YHRgtC10LwKCtCe0LHRj9C30LDRgtC1
0LvRjNC90YvQvNC4INGP0LLQu9GP0Y7RgtGB0Y8g0YHQtdC60YbQuNC4IGBnZW5lcmFsYCDQ
uCBgdGFyZ2V0c2AuINCe0YHRgtCw0LvRjNC90YvQtSDQt9Cw0LLQuNGB0Y/RggrQvtGCINGC
0L7Qs9C+LCDRh9GC0L4g0LzRiyDRhdC+0YLQuNC8INGB0LTQtdC70LDRgtGMINC/0YDQuCDQ
v9C+0LzQvtGJ0Lgg0LTQsNC90L3QvtCz0L4g0YTQsNC50LvQsCDRgNCw0LfQvNC10YLQutC4
INC00LjRgdC60L7Qsi4KCiMjINCh0LXQutGG0LjRjyBnZW5lcmFsCgrQntC/0YDQtdC00LXQ
u9GP0LXRgiDQv9C+INGB0YPRgtC4INC00LLQtSDQstC10YnQuDoKCiogYGRhdGEtZm9ybWF0
YDog0YTQvtGA0LzQsNGCINC00LDQvdC90YvRhSAowqtWU0NULzEuMMK7INC70LjQsdC+IMKr
VlNFTC8xLjDCuyksIMKrYXV0b8K7CiAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINGN0YLQ
viDQv9C+0LvQtSDQvNC+0LbQvdC+INGB0LTQtdC70LDRgtGMINC90LXQvtCx0Y/Qt9Cw0YLQ
tdC70YzQvdGL0LwsINC10YHQu9C4INC+0L/RgNC10LTQtdC70LjRgtGMCiAg0YLQuNC/INC0
0LDQvdC90YvRhSDQvtC60LDQttC10YLRgdGPINCy0L7Qt9C80L7QttC90YvQvCDQsNCy0YLQ
vtC80LDRgtC40YfQtdGB0LrQuC4KKiBgKmA6INCz0LvQvtCx0LDQu9GM0L3Ri9C1INGE0LvQ
sNCz0Lgg0Lgg0L7Qv9GG0LjQuCwg0L/QtdGA0LXQsdC40LLQsNGO0YnQuNC1INC00LXRhNC+
0LvRgtC90YvQtSDQt9C90LDRh9C10L3QuNGPIHZzLAogINC90L4g0LjQvNC10Y7RidC40LUg
0LzQtdC90YzRiNC40Lkg0L/RgNC40L7RgNC40YLQtdGCLCDRh9C10Lwg0L7Qv9GG0LjQuCDQ
utC+0LzQsNC90LTQvdC+0Lkg0YHRgtGA0L7QutC4LgoKIyMg0KHQtdC60YbQuNGPIGRlZmF1
bHRzCgrQn9C+0LfQstC+0LvRj9C10YIg0L7Qv9GA0LXQtNC10LvQuNGC0Ywg0LfQvdCw0YfQ
tdC90LjRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTRgNGD0LPQuNGFINGB
0LXQutGG0LjQuSDRjdGC0L7Qs9C+INGE0LDQudC70LAK0L/QtdGA0YHQvtC90LDQu9GM0L3Q
viDQtNC70Y8g0LrQsNC20LTQvtCz0L4g0YLQuNC/0LAg0L7Qv9C40YHRi9Cy0LDQtdC80L7Q
uSDQsdC70L7Rh9C90L7QuSDRgdGD0YnQvdC+0YHRgtC4INC70LjQsdC+INGE0LDQudC70L7Q
stC+0LkK0YHQuNGB0YLQtdC80YsuINCd0LDQv9GA0LjQvNC10YAsINC10YHQu9C4INC80Ysg
0YXQvtGC0LjQvCwg0YfRgtC+0LHRiyDQstGB0LUg0YDQsNC30LTQtdC70Ysg0YHQvtC30LTQ
sNCy0LDQu9C40YHRjCDRgSDRgtC40L/QvtC8ClJBSUQsINC80L7QttC90L4g0YPQutCw0LfQ
sNGC0Ywg0LTQu9GPINCx0LvQvtGH0L3QvtC5INGB0YPRidC90L7RgdGC0LggYHBhcnRgINC0
0LXRhNC+0LvRgtC90L7QtSDQt9C90LDRh9C10L3QuNC1OgoKYGBgCmRlZmF1bHRzOgogIHBh
cnQ6CiAgICBwYXJ0dHlwZTogUgpgYGAKCtCh0LXQutGG0LjRjyDQv9C+0LTQtNC10YDQttC4
0LLQsNC10YLRgdGPINGC0L7Qu9GM0LrQviDQsiDQuNGB0YXQvtC00L3QvtC8INGE0LDQudC7
0LUg0YLQuNC/0LAgYENvbmRlbnNlZCBUcmVlYCwg0L7QvdCwCtGD0LTQsNC70Y/QtdGC0YHR
jyDQv9GA0Lgg0YDQsNC30LLRkdGA0YLRi9Cy0LDQvdC40LggwqvRgdC20LDRgtC+0LPQviDQ
tNC10YDQtdCy0LDCuyDQstC+INCy0L3Rg9GC0YDQtdC90L3QuNC5INGE0L7RgNC80LDRgiDR
gdC/0LjRgdC60LAuCgojIyDQodC10LrRhtC40Y8gYWN0aXZhdGUKCtCc0L7QttC10YIg0LLQ
utC70Y7Rh9Cw0YLRjCDQvtC/0LjRgdCw0L3QuNC1INC30LDQtNC10LnRgdGC0LLQvtCy0LDQ
vdC90YvRhSDQsiDRgNCw0LfQvNC10YLQutC1INC/0L7QtNGB0LjRgdGC0LXQvCDQuCDRhNCw
0LnQu9C+0LLRi9GFCtGB0LjRgdGC0LXQvCwg0L/RgNC+0LLQtdGA0Y/QtdC80YvRhSDQuCDQ
sNC60YLQuNCy0LjRgNGD0LXQvNGL0YUg0LTQviDQvdCw0YfQsNC70LAg0L/RgNC+0YbQtdC0
0YPRgNGLINGA0LDQt9C80LXRgtC60LguINCd0LDQv9GA0LjQvNC10YAsCtGC0LDQutC40YUs
INC60LDQujogYG11bHRpcGF0aGAsIGBpc2NzaWAsIGBmY29lYCwgYGFvZWAsIGBpcG9pYmAs
IGByYWlkYCwgYGx2bTJgLApgZXh0NGAsIGBzd2FwYCwgYGpmc2AsIGB4ZnNgLCBgYnRyZnNg
LCDQuNGC0LQuINCe0L/QuNGB0LDQvdC40LUg0L/QvtC00YHQuNGB0YLQtdC8INC90LXQvtCx
0YXQvtC00LjQvNC+CtC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QuNGPINCy0YHQtdGFINC9
0LXQvtCx0YXQvtC00LjQvNGL0YUg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5INC90LAg0YbQ
tdC70LXQstC+0Lkg0YHQuNGB0YLQtdC80LUg0Lgg0LfQsNC/0YPRgdC60LAK0LrQvtC80LDQ
vdC0LCDRgdC70YPQttCxLCDQt9Cw0LPRgNGD0LfQutC4INC80L7QtNGD0LvQtdC5INGP0LTR
gNCwLCDRg9GB0YLQsNC90L7QstC60Lgg0YHQvtC10LTQuNC90LXQvdC40LksINCyINGC0L7Q
vCDRh9C40YHQu9C1LArRgSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8INCw0YPRgtC1
0L3RgtC40YTQuNC60LDRhtC40L7QvdC90YvRhSDQtNCw0L3QvdGL0YUsINGH0YLQviDQv9C+
0LfQstC+0LvQuNGCINC+0LHQvdCw0YDRg9C20LjRgtGMINC40LvQuArQv9C+0LTQutC70Y7R
h9C40YLRjCDQsdC70L7Rh9C90YvQtSDRg9GB0YLRgNC+0LnRgdGC0LLQsCDRiNGC0LDRgtC9
0YvQvNC4INGB0YDQtdC00YHQstCw0LzQuCBMaW51eCDRj9C00YDQsCDQuCB1c2Vyc3BhY2UK
0LXRidGRINC00L4g0YLQvtCz0L4sINC60LDQuiDQsdGD0LTQtdGCINC30LDQv9GD0YnQtdC9
INC/0YDQvtGG0LXRgdGBINC+0LHQvdCw0YDRg9C20LXQvdC40Y8g0YbQtdC70LXQstGL0YUg
0LTQuNGB0LrQvtCyLgoK0J3QtdGCINC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INC/0LXR
gNC10YfQuNGB0LvRj9GC0Ywg0LLRgdC1INC30LDQtNC10LnRgdGC0LLQvtCy0LDQvdC90YvQ
tSDQv9C+0LTRgdC40YHRgtC10LzRiyDQsiDQuNGB0YXQvtC00L3QvtC8CtGE0LDQudC70LUg
0YLQuNC/0LAgYENvbmRlbnNlZCBUcmVlYCwg0L7QvdC4INC30LDQvdC+0LLQviDQvtC/0YDQ
tdC00LXQu9GP0Y7RgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0L/RgNC4CtGA
0LDQt9Cy0ZHRgNGC0YvQstCw0L3QuNC4IMKr0YHQttCw0YLQvtCz0L4g0LTQtdGA0LXQstCw
wrsg0LLQviDQstC90YPRgtGA0LXQvdC90LjQuSDRhNC+0YDQvNCw0YIg0YHQv9C40YHQutCw
LgoKIyMg0KHQtdC60YbQuNGPIHByb3RlY3RlZAoK0J/QtdGA0LXQtCDQv9C+0LjRgdC60L7Q
vCDRhtC10LvQtdCy0YvRhSDQtNC40YHQutC+0LIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQ
sNC60YLQuNCy0LDRhtC40Y8g0L/QvtC00YHQuNGB0YLQtdC8LCDQuNGB0LrQu9GO0YfQsNGO
0YLRgdGPCtCy0YHQtSDQtNC40YHQutC4INC4INGA0LDQt9C00LXQu9GLLCDQutC+0YLQvtGA
0YvQtSDRgdC80L7QvdGC0LjRgNC+0LLQsNC90Ysg0LIg0L3QsNGB0YLQvtGP0YnQuNC5INC8
0L7QvNC10L3Rgi4g0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L4K0LjRgdC60LvRjtGH0LDR
jtGC0YHRjyDQtNC40YHQutC4LCDRg9C60LDQt9Cw0L3QvdGL0LUg0LIg0LrQvtC80LDQvdC0
0L3QvtC5INGB0YLRgNC+0LrQtSwg0Lgg0LTQuNGB0LrQuCwg0L7Qv9C40YHQsNC90LjRjyDQ
utC+0YLQvtGA0YvRhQrQv9C10YDQtdGH0LjRgdC70LXQvdGLINCyINC90LDRgdGC0L7Rj9GJ
0LXQuSDRgdC10LrRhtC40Lgg0YTQsNC50LvQsCDRgNCw0LfQvNC10YLQutC4LgoKIyMg0KHQ
tdC60YbQuNGPIHRhcmdldHMKCtCS0YLQvtGA0L7QuSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdGL
0Lkg0YDQsNC30LTQtdC7LCDQsiDQutC+0YLQvtGA0L7QvCDQvtC/0LjRgdGL0LLQsNC10YLR
gdGPINC60LDQttC00YvQuSDRhtC10LvQtdCy0L7QuSDQtNC40YHQuiDQuNC70LgK0L3QsNCx
0L7RgCDRhtC10LvQtdCy0YvRhSDQtNC40YHQutC+0LIsINGB0L7QvtGC0LLQtdGC0YHRgtCy
0YPRjtGJ0LjQtSDQt9Cw0LTQsNC90L3Ri9C8INC60YDQuNGC0LXRgNC40Y/QvC4g0JrQsNC2
0LTQsNGPINGB0LvQtdC00YPRjtGJ0LDRjwrRgdC10LrRhtC40Y8g0YTQsNC50LvQsCDQvtC/
0LjRgdGL0LLQsNC10YIg0LHQu9C+0YfQvdGL0LUg0YHRg9GJ0L3QvtGB0YLQuCwg0LrQvtGC
0L7RgNGL0LUg0YHRgtGA0L7Rj9GC0YHRjyDQv9C+0LLQtdGA0YUg0YbQtdC70LXQstGL0YUK
0LTQuNGB0LrQvtCyLgoKIyMg0KHQtdC60YbQuNGPIGxheW91dAoK0JIg0L3QtdC5INC+0L/Q
uNGB0YvQstCw0Y7RgtGB0Y8g0LHQu9C+0YfQvdGL0LUg0YHRg9GJ0L3QvtGB0YLQuCDQuCDR
hNCw0LnQu9C+0LLRi9C1INGB0LjRgdGC0LXQvNGLLCDQutC+0YLQvtGA0YvQtSDQtNC+0LvQ
ttC90Ysg0LHRi9GC0YwK0L/RgNC+0LLQtdGA0LXQvdGLINC00L4g0LLQvdC10YHQtdC90LjR
jyDQsiDRgNCw0LfQvNC10YLQutGDINC60LDQutC40YUt0LvQuNCx0L4g0LjQt9C80LXQvdC1
0L3QuNC5LiDQndCw0L/RgNC40LzQtdGALCDQtdGB0LvQuCDQvNGLCtGB0L7QsdC40YDQsNC1
0LzRgdGPINGD0LTQsNC70LjRgtGMINC00LLQsCDRgNCw0LfQtNC10LvQsCDRgSDQv9C+0YDR
j9C00LrQvtCy0YvQvNC4INC90L7QvNC10YDQsNC80LggNSDQuCA2LCDRgdC+0LfQtNCw0YLR
jCDQvdC+0LLRi9C5CtGA0LDQt9C00LXQuyDQuCDQvtGC0YTQvtGA0LzQsNGC0LjRgNC+0LLQ
sNGC0Ywg0LXQs9C+LCDQsiDQtNCw0L3QvdC+0Lkg0YHQtdC60YbQuNC4INC80Ysg0L7Qv9C4
0YHRi9Cy0LDQtdC8INGB0YPRidC10YHRgtCy0YPRjtGJ0YPRjgrRgtCw0LHQu9C40YbRgyDR
gNCw0LfQtNC10LvQvtCyINC4LCDQv9C+INC80LXQvdGM0YjQtdC5INC80LXRgNC1LCDRg9C0
0LDQu9GP0LXQvNGL0LUg0YDQsNC30LTQtdC70Ysg0YEg0L3QvtC80LXRgNCw0LzQuCA1INC4
IDYuCgojIyDQodC10LrRhtC40Y8gZGVsZXRlCgrQkiDQvdC10Lkg0YLQvtC70YzQutC+INC/
0LXRgNC10YfQuNGB0LvRj9GO0YLRgdGPINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0Ysg
0LHQu9C+0YfQvdGL0YUg0YHRg9GJ0L3QvtGB0YLQtdC5INC4INGE0LDQudC70L7QstGL0YUK
0YHQuNGB0YLQtdC8LCDQutC+0YLQvtGA0YvQtSDQsdGL0LvQuCDQvtC/0LjRgdCw0L3RiyDQ
siDRgdC10LrRhtC40LggYGxheW91dGAsINC4INC60L7RgtC+0YDRi9C1INC00L7Qu9C20L3R
iyDQsdGL0YLRjArRgNC10LrRg9GA0YHQuNCy0L3QviDRg9C00LDQu9C10L3Riy4g0KPQtNCw
0LvQtdC90LjQtSDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCy0YHQtdCz0LTQsCDQsiDRg9C6
0LDQt9Cw0L3QvdC+0Lwg0L/QvtGA0Y/QtNC60LUK0YLQvtC70YzQutC+INC/0L7RgdC70LUg
0L/RgNC+0LLQtdGA0LrQuCDQuCDQtNC+INCy0L3QtdGB0LXQvdC40Y8g0LrQsNC60LjRhS3Q
u9C40LHQviDQuNC90YvRhSDQuNC30LzQtdC90LXQvdC40LkuCgojIyDQodC10LrRhtC40Y8g
Y2hhbmdlCgrQntC/0LjRgdGL0LLQsNC10YIg0LjQt9C80LXQvdC10L3QuNGPINC+0YLQtNC1
0LvRjNC90YvRhSDRgdCy0L7QudGB0YLQsiDQsdC70L7Rh9C90YvRhSDRgdGD0YnQvdC+0YHR
gtC10Lkg0Lgg0YTQsNC50LvQvtCy0YvRhSDRgdC40YHRgtC10LwK0LIg0YPQttC1INGB0YPR
idC10YHRgtCy0YPRjtGJ0LXQuSDRgNCw0LfQvNC10YLQutC1LCDQvtC/0LjRgdCw0L3QvdC+
0Lkg0YDQsNC90LXQtSDQsiDRgdC10LrRhtC40LggYGxheW91dGAg0Lgg0YEg0YPRh9GR0YLQ
vtC8CtGD0LbQtSDQstGL0L/QvtC70L3QtdC90L3Ri9GFINC6INC00LDQvdC90L7QvNGDINC8
0L7QvNC10L3RgtGDINGD0LTQsNC70LXQvdC40LksINC10YHQu9C4INGC0LDQutC+0LLRi9C1
INCx0YvQu9C4INGD0LrQsNC30LDQvdGLINCyCtGB0LXQutGG0LjQuCBgZGVsZXRlYC4g0JfQ
tNC10YHRjCDQvNC+0LbQvdC+INC/0LXRgNC10L7Qv9GA0LXQtNC10LvQuNGC0Ywg0L3QsNC3
0LLQsNC90LjRjyDRgtC+0LzQvtCyLCDQuNGFIFVVSUQn0YssCtCy0YvQv9C+0LvQvdC40YLR
jCDQvtGH0LjRgdGC0LrRgywg0YPQvNC10L3RjNGI0LjRgtGMINC40LvQuCDRg9Cy0LXQu9C4
0YfQuNGC0Ywg0YDQsNC30LzQtdGA0Ysg0YDQsNC30LTQtdC70L7QsiDQuCDQtNGA0YPQs9C4
0LUK0L/QvtC00LTQtdGA0LbQuNCy0LDQtdC80YvQtSDQvtC/0LXRgNCw0YbQuNC4LCDQstGL
0L/QvtC70L3Rj9C10LzRi9C1INCy0YHQtdCz0LTQsCDQsiDRg9C60LDQt9Cw0L3QvdC+0Lwg
0L/QvtGA0Y/QtNC60LUuCgojIyDQodC10LrRhtC40Y8gY3JlYXRlCgrQntC/0LjRgdGL0LLQ
sNC10YIg0LLRgdC1INCy0L3QvtCy0Ywg0YHQvtC30LTQsNCy0LDQtdC80YvQtSDRjdC70LXQ
vNC10L3RgtGLINCx0YPQtNGD0YnQtdC5INGA0LDQt9C80LXRgtC60LguINCe0L3QuCDRgdC+
0LfQtNCw0Y7RgtGB0Y8K0LvQuNCx0L4g0L/QvtCy0LXRgNGFINGG0LXQu9GL0YUg0LTQuNGB
0LrQvtCyLCDQvtC/0LjRgdCw0L3QvdGL0YUg0YDQsNC90LXQtSDQsiDRgdC10LrRhtC40Lgg
YHRhcmdldHNgLCDQu9C40LHQviDQv9C+0LLQtdGA0YUK0Y3Qu9C10LzQtdC90YLQvtCyINGB
0YPRidC10YHRgtCy0YPRjtGJ0LXQuSDRgNCw0LfQvNC10YLQutC4LCDQvtC/0LjRgdCw0L3Q
vdC+0Lkg0YDQsNC90LXQtSDQsiDRgdC10LrRhtC40LggYGxheW91dGAsINC90L4g0YEK0YPR
h9GR0YLQvtC8INGD0LbQtSDQstGL0L/QvtC70L3QtdC90L3Ri9GFINC6INC00LDQvdC90L7Q
vNGDINC80L7QvNC10L3RgtGDINGD0LTQsNC70LXQvdC40LksINC10YHQu9C4INGC0LDQutC+
0LLRi9C1INCx0YvQu9C4INGD0LrQsNC30LDQvdGLCtCyINGB0LXQutGG0LjQuCBgZGVsZXRl
YCwg0Lgg0YEg0YPRh9GR0YLQvtC8INGD0LbQtSDQstGL0L/QvtC70L3QtdC90L3Ri9GFINC6
INC00LDQvdC90L7QvNGDINC80L7QvNC10L3RgtGDINC40LfQvNC10L3QtdC90LjQuSwK0LXR
gdC70Lgg0YLQsNC60L7QstGL0LUg0LHRi9C70Lgg0YPQutCw0LfQsNC90Ysg0LIg0YHQtdC6
0YbQuNC4IGBjaGFuZ2VgLiDQn9GA0Lgg0LrQvtC90LLQtdGA0YLQuNGA0L7QstCw0L3QuNC4
INCy0L4g0LLQvdGD0YLRgNC10L3QvdC40LkK0YTQvtGA0LzQsNGCINC40Lcg0YHQtdC60YbQ
uNC4IGBjcmVhdGVgINGD0LTQsNC70Y/RjtGC0YHRjyDQvtC/0LjRgdCw0L3QuNGPINGE0L7R
gNC80LDRgtC40YDRg9C10LzRi9GFINGE0LDQudC70L7QstGL0YUg0YHQuNGB0YLQtdC8LgoK
IyMg0KHQtdC60YbQuNGPIHZvbHVtZXMKCtCe0L/QuNGB0YvQstCw0LXRgiDQstGB0LUg0LLQ
vdC+0LLRjCDRgdC+0LfQtNCw0LLQsNC10LzRi9C1INGE0LDQudC70L7QstGL0LUg0YHQuNGB
0YLQtdC80YssINGCLtC1LiDRgtC+0LvRjNC60L4g0YLQviwg0YfRgtC+CtC00L7Qu9C20L3Q
viDQsdGL0YLRjCDQvtGC0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90L4uINCY0YUg0LzQvtC2
0L3QviDQvtC/0LjRgdGL0LLQsNGC0Ywg0Lgg0LIg0YHQtdC60YbQuNC4IGBjcmVhdGVgINCy
CtC40YHRhdC+0LTQvdC+0Lwg0YTQsNC50LvQtSDRgNCw0LfQvNC10YLQutC4LCDQvdC+INCy
0L4g0LLQvdGD0YLRgNC10L3QvdC10Lwg0YTQvtGA0LzQsNGC0LUg0L7QvdC4INCy0YHQtSDQ
sdGD0LTRg9GCINC/0LXRgNC10L3QtdGB0L3RiwrQsiDRgdC10LrRhtC40Y4gYHZvbHVtZXNg
LiDQkiDRgdC10LrRhtC40LggYGxheW91dGAg0L/QtdGA0LXRh9C40YHQu9GP0Y7RgtGB0Y8g
0YLQvtC70YzQutC+INGC0LUg0YTQsNC50LvQvtCy0YvQtQrRgdC40YHRgtC10LzRiywg0LrQ
vtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQv9GA0L7QstC10YDQtdC90YssINC60L7RgtC+0YDR
i9C1INC00L7Qu9C20L3RiyDRgdGD0YnQtdGB0YLQstC+0LLQsNGC0Ywg0L3QsCDQvNC+0LzQ
tdC90YIK0LfQsNC/0YPRgdC60LAg0YPRgtC40LvQuNGC0YssINC4INC60L7RgtC+0YDRi9C1
INC80L7Qs9GD0YIg0LHRi9GC0Ywg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdGLINCyINC/0YDQ
vtGG0LXRgdGB0LUg0LrQsNGB0LrQsNC00L3QvtCz0L4K0LzQvtC90YLQuNGA0L7QstCw0L3Q
uNGPINGC0L7QvNC+0LIsINC90L4g0L7QvdC4INC90LUg0YPRh9Cw0YHRgtCy0YPRjtGCINCy
INC+0YLQtNC10LvRjNC90L7QuSDQvtC/0LXRgNCw0YbQuNC4INGE0L7RgNC80LDRgtC40YDQ
vtCy0LDQvdC40Y8uCgo=

--------------3D689Ls3nP4PR5eWhG20ADiR--