# 비서 에이전트 세팅가이드 (Claude 실행판)

> 버전: v9 · 2026-09-07 · Windows 전용  
> 실행 주체: 이미 설치되고 로그인된 Claude Code  
> 설계: 공통 영혼 본체는 Claude·Codex 중립, 최초 실행 절차만 Claude Code 전용  
> 목표: 새 설치·옛 설치 업데이트·USB 복원·고장 수리에 온톨로지 목록 카드 체계까지 반영  
> 호환 기준: 내장 설치 엔진·상태파일 형식은 검증된 v7 유지, 온톨로지 추가 설치 묶음·기록은 v8 세대 이름(`ontology-v8`) 유지

---

## 0. 이 파일을 받은 Claude Code가 바로 할 일

이 문서는 사람에게 명령어를 가르치는 설명서가 아니라, **Claude Code가 직접 실행하는 작업 계약서**다. 사용자가 “이 가이드대로 세팅해 줘”라고 하면 다음 순서를 지킨다.

1. 먼저 읽기 전용으로 현재 컴퓨터와 기존 자료를 살핀다.
2. 영혼 폴더를 찾는다. 없으면 이름 하나만 묻고 `C:\<영혼 이름>`을 만든다.
3. 기존 설치인지, 새 설치인지, USB에서 복원하는 것인지 자동 판정하고 기존 온톨로지 유무를 따로 확인한다.
4. R/D/P/S/T 구조와 폴더 아이콘 결정이 없을 때만 로컬 HTML 질문 화면을 연다.
5. 모든 변경을 거래 단위로 준비하고 검사한다.
6. 기존 Claude·Codex가 실행 중이면 강제로 끄지 않는다. 안전한 준비만 끝낸 뒤 다음 자연스러운 소환 때 전환한다.
7. 고정된 필수 도구를 Claude와 Codex 양쪽에 연결하고 실제 동작을 검사한다. 이어서 6-5절의 온톨로지 추가 설치·카드·조회·검사를 마친다.
8. 사용자는 명령어를 복사하지 않는다. Claude Code가 자동 처리하며, 사용자만 할 수 있는 로그인·UAC·복구 암호 보관 같은 순간에만 쉬운 말로 부탁한다.

첫 안내는 길게 말하지 않는다.

> “기존 자료는 하나도 지우지 않고, 먼저 현재 상태를 확인한 뒤 안전하게 이어서 세팅할게요.”

### 0-1. 이 가이드가 말하는 “영혼 폴더”

영혼 폴더는 비서의 **이삿짐 상자 하나**다. 작업 자료, 규칙, 공용 기억, 도구 원본, 암호화된 비밀, 설치 기록을 한 루트 아래에 모은다. 이름은 `IRIS`로 고정하지 않는다. 사용자가 정한 이름을 쓴다.

- 올바른 위치: `C:\<영혼 이름>`
- 예: 이름이 `NOVA`라면 `C:\NOVA`
- 바탕화면에서 Claude Code를 열어 이 가이드를 읽는 것은 괜찮다.
- 그러나 바탕화면에는 설치 파일, 임시 파일, 질문 결과, 바로가기, 캐시를 **절대 쓰지 않는다**.
- 영혼 이름을 알기 전에는 어디에도 새 파일을 쓰지 않는다.

### 0-2. 현실적인 시작 조건

Markdown 파일 혼자서는 실행 에이전트를 설치하거나 로그인할 수 없다. 새 컴퓨터에는 이 파일을 읽을 수 있는 Claude Code 하나가 먼저 설치·로그인되어 있어야 한다. 그 뒤 실행 중인 에이전트가 다른 쪽 에이전트와 나머지 환경을 자동으로 설치한다.

USB에서 복원해도 Windows 프로그램, 드라이버, Microsoft Office, 한컴오피스, 브라우저 로그인, OAuth 로그인, 기기 암호화 열쇠는 새 컴퓨터에서 다시 확인하거나 연결해야 할 수 있다. 따라서 “완전히 같은 물리적 컴퓨터”가 아니라 **같은 자료·규칙·공용 기억을 가진 같은 영혼**을 복원한다고 설명한다.

### 0-3. Claude 실행판과 Codex 실행판의 관계

6부 이후의 영혼 구조와 공용 기억은 에이전트 중립이다. 그러나 이 파일은 **이미 실행 중인 Claude Code가 최초 설치를 맡는 Claude 실행판**이다. Claude 전용 플러그인 명령과 Codex 전용 설정 명령을 서로 같은 절차라고 주장하면 안 된다. 두 실행판은 같은 내장 엔진을 사용하되, 지금 이 파일을 실제로 읽고 실행하는 에이전트에 맞춰 첫 안내와 `sourceGuide.edition`만 정확히 기록한다.

### 0-4. v8·v9에서 달라진 것과 그대로 읽어야 할 번호

온톨로지(ontology)는 **폴더마다 목록 카드를 붙이고, 카드 사이의 연결을 기록하는 규칙**이다. 폴더를 다른 구조로 옮기는 작업이 아니다. 이름이 바뀌어도 같은 항목을 찾고, 어떤 설명서를 따라야 하는지와 현재 진행 상태를 어디서 읽어야 하는지 확인한다.

| 번호·파일 | 뜻 | 이 가이드의 처리 |
|---|---|---|
| 가이드 `v9` | 사람이 읽는 이번 배포판 | 2026-09-07 — v8(2026-09-05, 공개 전 판)의 배포 정화(공개용으로 개인 예시 이름 제거)·의존성 절차 보강 재발행 |
| 온톨로지 묶음 `v8` (`ontology-v8`, `install-ontology-v8.py`, `ontology-v8-receipt.json`) | 추가 설치 부품의 세대 이름 | 가이드 v9에서도 이름을 바꾸지 않음 |
| 설치 엔진 `v7`·`schemaVersion: 7` | 기존 설치 프로그램이 이해하는 상태파일 형식 | 내장 원본과 기존 `soul-state.json` 유지 |
| `sourceGuide.version: "7"` | v7 엔진이 기록하는 설치 출처 | v8·v9라는 이유로 값을 바꾸지 않음 |
| `ontology-v8-receipt.json` | v8 추가 설치 결과 기록 | 부품 설치 여부와 미완료 항목 확인 |
| 온톨로지 명세·그래프의 버전 | 카드 규칙과 연결 목록의 별도 형식 | 서로 같다고 가정하지 않음 |

기존 `C:\IRIS`는 먼저 카드·도구·지침을 확인한다. 이미 온톨로지가 있으면 배포용 도구로 갈아끼우지 않고 현재 도구로 운영 검사를 한다. **온톨로지만 갱신하려고 에이전트 권한·홈·로그인·스킬을 다시 설치하지 않는다.** 비어 있는 새 영혼에는 v7 기반 설치를 마친 뒤 v8 추가 묶음을 적용한다. 같은 영혼의 USB 복원은 기존 카드 ID(항목 고유번호)를 보존한다. 다른 사람의 새 영혼은 개인 카드·계정·저장소 목록을 가져오지 않고 자기 폴더에서 새 ID를 만든다.

이 문서에 남아 있는 `bootstrap-v7.ps1`, `v7-lock.json`, `schemaVersion: 7`은 오타가 아니다. 외부 도구 버전은 v7의 고정 기준을 유지하며, 이번 v8·v9 작업이 제품 최신 버전 재조사를 뜻하지 않는다. `ontology-v8`·`install-ontology-v8.py`·`ontology-v8-receipt.json`의 v8도 부품 세대 이름이며 가이드 번호(v9)와 다르다.

---

## 1. 절대 계약 — 어떤 경우에도 어기지 않는다

### 1-1. 무삭제·무손실

파일을 먼저 두 종류로 나눈다.

- **사용자 소유**: 작업 자료, 기존 지침, 기억, 세션, 시크릿, 실제 Git 저장소와 그 기록
- **설치기 소유**: 이 가이드가 새로 만든 상태파일, 거래 일지, 생성 세대, 연결표, 임시 시험물

설치기는 사용자 소유 자료와 보존 대상으로 채택한 사본을 삭제하지 않는다. 설치기 소유 파일만 이전 세대 백업을 만든 뒤 원자 교체하거나, 검증된 임시물을 정리할 수 있다. Claude·Codex 자체 프로그램이 보존기간에 따라 캐시나 옛 세션을 자동 정리하는 것까지 “절대 무삭제”라고 거짓 보장하지 않는다. 발견 가능한 native session은 다음 재시작 전에 안전한 snapshot을 만들고, 앞으로의 자동 정리 보존기간을 길게 설정한다.

- 이름이 낡았거나 중복되어도 먼저 보존한다. 새 구조가 검증된 뒤 설치기 소유 연결부만 `legacy-날짜` 또는 `history`로 옮겨 남긴다.
- 일반 파일 복사는 **심볼릭 링크·정션을 따라 재귀하지 않는다**. 링크 자체와 실제 대상 위치를 따로 기록하고, 필요한 실제 파일만 새 위치에 복사한다.
- 기존 `CLAUDE.md`가 `@AGENTS.md` 한 줄이 아니라 실제 내용을 담고 있으면 덮어쓰지 않는다. 내용을 보존하고 충돌 보고서를 만든다.
- 기존 작업 폴더 번호와 이름을 자동으로 다시 매기지 않는다.
- 기존 온톨로지 카드의 `id`, `relations`, `aliases`, `truth`, `drawers`와 개인 등록부를 보존한다. 기존 도구 묶음과 새 배포 묶음을 일부 파일씩 섞지 않는다.
- 사용자 작업 파일이 설치 실패로 바뀌었어도 과거 백업으로 통째로 되돌리지 않는다. 설치가 소유한 작은 설정과 연결표만 복구한다.

### 1-2. 자동 처리와 질문의 경계

다음은 묻지 말고 자동 처리한다.

- 설치 방식, 도구 선택, 버전 선택, 저장 경로, 위험 권한 모드
- 정상 설치된 필수 프로그램의 재사용
- 재개 가능한 실패의 재시도와 검사
- 새 컴퓨터의 기기별 임시·캐시 폴더 생성

다음만 사용자에게 묻거나 행동을 요청할 수 있다.

- 영혼을 찾지 못했을 때 영혼 이름
- 아직 결정되지 않은 R/D/P/S/T 구조와 폴더 아이콘
- 서로 다른 영혼 ID가 충돌할 때 어느 영혼이 맞는지
- UAC(Windows 관리자 권한 확인 창), 로그인, 복구 암호의 외부 보관
- USB가 여러 개일 때 내보낼 대상
- 최초 전환을 위해 현재 Claude Code를 자연 종료한 뒤 `소환하기.cmd`를 한 번 더 여는 행동
- 결제·발송·게시·예약·제출처럼 바깥세상에 되돌리기 어려운 행동
- 과금 방식, 프록시, 조직 보안정책을 바꾸는 행동

위험 권한을 켠다는 것은 매번 터미널 허락을 묻지 않는다는 뜻이지, 결제나 발송까지 마음대로 한다는 뜻이 아니다.

### 1-3. 자동 전역 위험 권한

두 에이전트 모두 다음 값을 **질문 없이 사용자 전역 설정에 적용**한다. 기존 설정 파일 전체를 갈아끼우지 말고 해당 키만 병합한다.

Claude `settings.json`:

```json
{
  "permissions": { "defaultMode": "bypassPermissions" },
  "skipDangerousModePermissionPrompt": true
}
```

Codex `config.toml`:

```toml
approval_policy = "never"
sandbox_mode = "danger-full-access"
web_search = "live"
project_root_markers = ["soul-state.json"]

[features]
multi_agent = true
memories = false

[shell_environment_policy]
inherit = "core"
ignore_default_excludes = false
```

Claude에는 발견 가능한 native session·memory를 다음 재시작 전에 snapshot하고 `cleanupPeriodDays: 36500`을 먼저 병합한다. 공용 기억이 정상인지 확인한 뒤 `autoMemoryEnabled: false`를 병합한다. Codex에는 그 뒤 위 `memories = false`를 병합한다.

새 프로세스를 열어 실제 적용값을 확인한다. 조직 정책이 이 값을 막으면 정책을 우회하지 말고 `lifecycle=blocked`, `blockedReason=policy`로 보고한다.

### 1-4. 바탕화면 금지와 쓰기 허용 범위

쓰기 전에 모든 경로를 절대경로와 **최종 실제 경로**로 바꾸고, 존재하는 모든 부모의 reparse point(정션·심볼릭 링크)를 검사한다.

- 허용: 영혼 폴더 아래
- 예외 허용: 사용자가 고른 USB 대상, 정확히 열거된 사용자 환경변수·에이전트 홈 연결부, 잠금표에 도구별로 적힌 OS 관리 위치
- OS 관리 위치의 예: WinGet·MSI가 쓰는 Program Files/AppData/레지스트리, 브라우저 엔진, PATH 등록. 목적·설치기·예상 부작용을 `externalWrites`에 정확히 적는다.
- 절대 금지: 현재/공용/OneDrive로 리디렉션된 모든 바탕화면의 실제 경로. 다른 허용 규칙보다 먼저 거부한다.
- 금지: 허용목록 밖, 해석되지 않은 환경변수, 와일드카드, `..`, 부모 정션을 통한 탈출

Windows 전체 `TEMP`를 영구 변경하지 않는다. 소환기가 시작한 Claude·Codex와 설치 자식 프로세스에만 영혼 내부의 기기별 `TEMP`, npm, pip, Playwright 캐시를 넣는다.

위험 권한 모드는 Windows의 격리벽이 아니다. 설정 엔진·명령 훅·PATH shim은 허용목록 밖 쓰기를 거부하지만, 악성 플러그인이나 prompt injection(문서 속 문장이 에이전트를 속이는 공격)을 OS 수준에서 완전히 막는다고 약속하지 않는다. 설치기는 서명·지문이 맞는 고정 도구만 활성화하고 외부 쓰기 감사를 남긴다.

---

## 2. Claude 실행판 부트스트랩

### 2-1. 영혼 찾기

처음에는 읽기만 한다. 현재 폴더, 드라이브 바로 아래의 후보, `soul-state.json`, R/D/P/S/T 폴더, `_agent` 폴더를 확인한다.

1. 현재 위치가 `C:\<이름>`이고 `soul-state.json` 또는 알아볼 수 있는 기존 R/D/P/S/T 구조가 있으면 그곳을 후보로 삼는다.
2. 현재 위치가 바탕화면·다운로드·다른 하위 폴더이고 확실한 후보를 찾지 못하면 사용자에게 **영혼 이름 하나만** 묻는다.
3. 이름을 받으면 `C:\<영혼 이름>`을 사용한다. 이미 있으면 새로 만들지 않고 먼저 내용을 살핀다.
4. 이름에는 Windows에서 금지된 문자 `<>:"/\\|?*`, 끝의 점·공백, 예약 이름을 허용하지 않는다.
5. 루트가 확정된 뒤의 첫 쓰기는 그 루트 생성 또는 `_agent\setup` 준비여야 한다.
6. 새 빈 영혼에는 **부록 H-1의 전체 내장 파일 추출을 먼저 끝낸 뒤** UUID를 만들고 `structureDecision.status`와 `iconDecision.status`를 `wizard-paused`로 둔 최소 `soul-state.json`을 만든다. 그래야 내장 wizard가 그 폴더를 자기 영혼으로 안전하게 확인할 수 있다. 기존 구조·아이콘이 유효한 레거시 영혼은 발견 결과로 `approved` 결정을 합성한다. 질문 완료 뒤 같은 파일의 결정 필드만 원자적으로 갱신하며 UUID는 바꾸지 않는다.

추가 안전검사를 모두 통과해야 한다.

- 경로는 `C:\` 바로 아래 정확히 한 단계여야 하며 볼륨은 NTFS여야 한다.
- `Windows`, `Users`, `Program Files`, `Program Files (x86)`, `ProgramData`, `PerfLogs`, `Recovery`, `$Recycle.Bin`, `System Volume Information`은 대소문자와 관계없이 거부한다.
- 새 영혼 표지가 없는 비어 있지 않은 폴더는 자동 채택하지 않는다. 확실한 레거시 표지가 없으면 `soul-conflict`로 돌려 다른 이름을 받는다.
- 루트 자체나 부모가 reparse point이면 신규 영혼으로 쓰지 않는다. 최종 실제 경로가 어떤 바탕화면·OneDrive 바탕화면·C 드라이브 밖을 가리켜도 거부한다.
- 새 영혼에는 현재 Windows 사용자와 SYSTEM을 중심으로 private NTFS ACL(파일 접근 권한표)을 적용한다. Administrators 포함 여부는 정책에 기록한다. 기존 영혼의 사용자 지정 공유 권한은 몰래 제거하지 않고 ACL 백업과 충돌 보고서를 만든다.

컴퓨터 전체를 무작정 훑지 않는다. 알려진 에이전트 환경변수와 `C:\` 바로 아래 후보만 좁게 확인한다. 후보가 둘 이상이고 영혼 ID가 다르면 자동 병합하지 않는다.

### 2-2. 휴대형 에이전트 홈

영혼 안의 다음 폴더를 정식 원본으로 사용한다.

```text
CLAUDE_CONFIG_DIR=<영혼>\_agent\claude
CODEX_HOME=<영혼>\_agent\codex
```

기존 값이 이미 정확하면 다시 쓰지 않는다. 다른 위치를 가리키면 원본을 보존한 채 준비 영역에 복사·검증하고, 안전한 전환 시점에 환경변수와 연결부만 바꾼다. Claude와 Codex의 자체 세션 기록은 서로 합치지 않는다.

### 2-3. 새 프로세스 규칙

환경변수와 위험 권한은 실행 중인 프로세스에 소급 적용되지 않는다. 설정 뒤에는 새 프로세스로 검증한다. 사용자 전역 환경변수와 검증된 PATH shim도 거래로 전환해 터미널에서 직접 `claude`·`codex`를 실행해도 같은 영혼 홈으로 들어가게 한다. 소환기는 같은 값을 자식 프로세스에 한 번 더 주입한다. 옛 홈으로 갈 수 있는 직접 실행은 검출해 중단하므로 두 홈이 갈라지는 split-brain(기억이 두 군데로 갈라지는 상태)을 허용하지 않는다.

실행 중인 Claude·Codex를 강제로 종료하지 않는다. 전환이 필요하면 `pending-finalize`로 표시하고, 사용자에게 현재 Claude Code를 자연 종료한 뒤 루트 `소환하기.cmd`를 한 번 더 열어 달라고 안내한다. 그 다음 자동 검사까지 통과하기 전에는 완료라고 말하지 않는다.

---

## 3. 읽기 전용 발견과 상태 판정

### 3-1. 발견 목록

값을 바꾸기 전에 다음을 기록한다. 시크릿은 값이 아니라 키 이름과 존재 여부만 기록한다.

- 영혼 루트, 볼륨 형식, 남은 용량, 쓰기 가능 여부
- `soul-state.json`의 스키마 버전과 영혼 ID
- R/D/P/S/T 폴더 수, 이름 형식, 각 폴더의 `AGENTS.md`·`CLAUDE.md` 존재 여부
- R·D·P의 목록 카드 유무·중복 ID·기존 본문, `IRIS-온톨로지.md`, `_ontology/registry.yml`, `graph.json`, 지도·온톨로지 뷰 생성기의 존재
- 온톨로지 신선도 검사 결과와 실제 검사 방식(폴더 경로만인지 카드·등록부·명세까지인지), 기존 훅·야간 검사 설정 여부
- `.git`이 커밋 없는 표지판인지 실제 저장소인지
- Claude/Codex 홈, 버전, 설정, 세션·메모리 파일, 실행 중 프로세스
- 링크·정션의 원래 경로와 실제 대상
- 루트와 민감 폴더의 NTFS ACL, 볼륨 형식, 모든 부모 reparse point
- `_icons`, `.ico`, `desktop.ini`, 폴더 속성, 실제 아이콘 적용 대상
- Git·WinGet·Node LTS·Python 3.12·Claude·Codex 설치 상태
- 필수 스킬·MCP·플러그인의 버전, 커밋, 파일 지문
- 기존 시크릿 저장소의 위치, 키 이름 집합, 서비스계정 JSON·인증서·SSH 키·OAuth token·credential 파일 포인터, 중복·차이 개수
- provider base URL·프록시·구독/종량 과금 경로의 존재와 설정 위치(값은 비밀 처리)
- Office·한컴오피스처럼 기능시험에 필요한 외부 프로그램

발견 결과는 `_agent\setup\transactions\<거래ID>\discovery.json`에 저장한다. 시크릿 값, 토큰, 쿠키는 넣지 않는다.

### 3-2. 일곱 가지 상태

| 상태 | 쉬운 뜻 | 자동 행동 |
|---|---|---|
| `new` | 빈 상자 | 새 영혼을 만든다 |
| `restore` | USB 이삿짐 | 암호와 지문을 확인하고 C 드라이브에 복원한다 |
| `legacy-update` | 옛 가이드로 쓰던 영혼 | 필요한 v7 연결부와 v8 온톨로지 묶음을 구분해 준비한다 |
| `healthy` | 이미 정상 | 바꿀 것 없이 검사만 한다 |
| `repair` | 일부가 없거나 깨짐 | 손상된 관리 부품만 고친다 |
| `newer-schema` | 내장 엔진보다 높은 상태파일 형식 | 쓰지 말고 중단한다 |
| `soul-conflict` | 다른 영혼 두 개가 만남 | 병합하지 말고 사용자에게 묻는다 |

R/D/P/S/T 중 S나 T가 없는 것은 사용자가 “아직 필요 없음”으로 결정했다면 고장이 아니다. `soul-state.json`에 `deferred`로 기록해 같은 질문을 반복하지 않는다.

### 3-3. 상태파일 원칙

루트 `soul-state.json`은 **설치 엔진이 읽는 영혼 식별·설치 상태 기록**이다. 업무 진행 상태와 폴더 관계의 정본은 아니다. 온톨로지가 자리 잡아도 이 가이드에서는 삭제하거나 형식을 올리지 않는다. 다음을 지킨다.

- `soulId`는 처음 한 번 만든 UUID(겹치지 않는 식별번호)이고 이름을 바꿔도 유지한다.
- 루트 경로는 휴대를 위해 `.`로 기록하고, 기기별 실제 경로는 host 기록에 둔다.
- JSON은 같은 폴더에 임시 파일을 만든 뒤 원자적으로 교체한다. 반쯤 쓴 파일을 남기지 않는다.
- 상태 스키마가 내장 v7 엔진의 지원값보다 높으면 추측해서 낮추지 않는다. 가이드 번호 8과 비교하지 않는다.
- 영혼 정체성과 설치 진행 상태만 기록하고 활성 세대 포인터는 넣지 않는다.

활성 세대의 유일한 원본은 `_agent\setup\active-generation.json`이다. `soul-state.json`에는 `activeGeneration`을 두지 않는다. 여러 설정과 링크는 일지에 따라 재실행 가능하게 순서대로 바꾸고, 단일 활성 포인터만 마지막에 원자 교체한다.

`soulId`는 영혼 전체의 식별번호, 공용 기억의 `scopeId`는 작업 범위 식별번호, `iris:xxxxxxxx`는 온톨로지 항목 식별번호다. 세 번호는 목적이 다르므로 서로 복사하거나 대체하지 않는다. v8의 추가 설치 사실은 `_agent/setup/ontology-v8-receipt.json`으로 확인한다.

---

## 4. 거래·재개·되돌림

설치는 집을 고치는 일과 같다. 자재를 먼저 옆방에 준비하고 검사한 뒤, 마지막에 문고리만 바꾼다.

### 4-1. 거래 폴더

각 실행은 `_agent\setup\transactions\<UUID>`를 만들고 아래를 둔다.

```text
plan.json            무엇을 하려는지
journal.jsonl        끝난 동작을 한 줄씩 추가한 일지
discovery.json       변경 전 상태
before\              교체 직전 작은 설정·연결표 백업
staging\             새 부품 준비 영역
reports\             사람이 읽는 검사 결과
READY                 전환 준비 완료 표지
COMMITTED             전환·검증 완료 표지
```

### 4-2. 잠금과 동시 실행

- 잠금 파일은 새로 만들 때만 성공하는 방식으로 만든다. `PID`, 시작 시각, host ID, 거래 ID, 무작위 nonce를 기록한다.
- 같은 범위와 부모↔자식 범위에서는 Claude와 Codex 중 한 명만 파일을 쓴다.
- 서로 독립된 형제 프로젝트는 함께 작업해도 된다.
- 루트 설정, 내보내기, 설치, 기억 축약은 전역 잠금을 사용한다.
- 오래된 잠금도 바로 삭제하지 않는다. 프로세스와 시작 시각을 확인한 뒤 `history`로 이름을 바꾼다.

### 4-3. 준비와 전환

1. 기존 원본의 경로·크기·SHA-256(파일 지문)을 기록한다.
2. 링크를 따라가지 않는 복사로 새 영역을 준비한다.
3. 복사본의 파일 수·크기·지문을 원본과 비교한다.
4. 폐기 가능한 시험 자료로 새 부품을 검사한다.
5. `READY`를 만든다.
6. Claude 또는 Codex가 실행 중이면 여기서 멈추고 `pending-finalize`로 둔다.
7. 모두 자연 종료된 다음 현재 설정이 준비 이후 바뀌었는지 다시 본다.
8. 바뀌었다면 오래된 설정 전체를 덮지 말고 필요한 키만 최신 파일에 다시 병합한다.
9. 연결표·환경변수·작은 설정을 원자적으로 전환한다.
10. 기능시험이 모두 통과한 뒤 `active-generation.json`을 맨 마지막에 바꾸고 `COMMITTED`를 만든다.

실행 중에는 immutable(작업 중 바뀌지 않는) 도구 원본만 staging한다. live Claude/Codex 홈, SQLite와 WAL, JSONL 세션, settings는 일반 복사하지 않는다. 해당 홈을 쓰는 PID·프로세스 시작시각·열린 handle을 함께 확인하고, 모두 자연 종료된 뒤 복사하거나 데이터베이스가 제공하는 online backup을 사용한다. 각 일지와 활성 포인터는 flush·fsync(디스크에 실제 기록됐음을 확인하는 동작) 뒤 다음 단계로 간다.

중간에 실패하면 마지막 성공 동작 다음부터 재개한다. 전환 전 실패는 옛 환경이 그대로 살아 있다. 전환 후 실패는 설치가 바꾼 연결표와 작은 설정만 되돌린다.

---

## 5. R/D/P/S/T와 아이콘 HTML 질문 화면

### 5-1. 언제 여는가

다음 중 하나라도 결정 기록이 없을 때만 연다.

- 작업 구조 R/D/P/S/T
- 폴더 아이콘

우선순위는 **발견 → 유효성 검사 → 결정 기록 합성 → 질문**이다. 기존의 유효한 구조나 아이콘이 있으면 discovery가 현재 상태를 승인 레코드로 합성하고 다시 묻지 않는다. 폴더가 많다는 이유로 새 번호를 만들거나 정리하지 않는다.

### 5-2. 질문 화면의 안전한 방식

- `_agent\setup\wizard` 안에 CSS·JavaScript를 모두 포함한 단일 HTML을 만든다.
- PowerShell의 로컬 TCP 서버를 `127.0.0.1`에만 연다. 외부 네트워크에는 열지 않는다.
- 256비트 무작위 토큰을 URL 조각(`#token=...`)으로 전달하고, 제출할 때 요청 헤더로 확인한다.
- 답은 다운로드 파일로 만들지 않고 로컬 서버에 `POST`로 바로 보낸다.
- 임시 파일·로그·결과는 모두 영혼 안에 둔다.
- 한 화면에는 한 가지 생각만 보여 준다. 큰 글씨, 큰 버튼, 쉬운 예시와 이전 버튼을 제공한다.
- 마지막 화면에는 생성될 구조를 나무 모양으로 보여 주고 **“이대로 만들기” 한 번만** 받는다.
- “잠시 멈추기”와 “취소”를 제공한다. 창을 닫거나 일정 시간 입력이 없으면 답을 쓰지 않고 서버를 닫아 토큰을 폐기한다. 상태는 `wizard-paused`로 남겨 다음 실행 때 새 토큰으로 이어 연다.
- 제출이 끝나면 서버를 닫고 토큰을 폐기한다.

### 5-3. 꼭 물을 내용

1. **R, Role(역할)**: “이 비서와 어떤 역할로 일하나요?” 예: 교사, 연구자, 사업가
2. **D, Domain(계속되는 분야)**: “선택한 역할에서 계속 관리할 큰 분야는 무엇인가요?”
3. **P, Project(끝이 있는 일)**: “선택한 분야에서 지금 진행할 구체적인 일은 무엇인가요?”
4. **S, Step(순서가 있는 단계)**: “선택한 일을 어떤 큰 순서로 나눌까요?”
5. **T, Task(필요할 때만 쓰는 세부 작업)**: “선택한 단계 안을 더 나눌 필요가 있나요?”
6. **폴더 아이콘**: 기존 `.ico` 가져오기, 로컬에서 만드는 색상 배지, Windows 기본 모양 중 하나를 반드시 명시적으로 선택

각 화면에는 “하나 더 추가”, 순서 변경, 삭제, 부모 선택, “지금은 정하지 않음”이 있다. 기존 노드는 읽기 전용으로 보여 주고 삭제·재번호화하지 않는다. 새 번호는 같은 부모 아래 비어 있는 다음 번호를 자동 제안하고, 한글 이름을 받으면 영문 이름과 허용 태그를 제안하되 사용자가 마지막 화면에서 확인한다.

승인 결과는 단답이 아니라 다음 필드를 가진 node 배열이다: `id`, `parentId`, `level`, `nameKo`, `nameEn`, `tag`, `order`, `status`. 부모가 승인되지 않은 자식은 만들 수 없다. 새 영혼에는 R을 하나 이상 받는다. D/P/S/T는 정직한 답이 없으면 해당 하위 트리 전체를 `deferred`로 명시할 수 있고, T는 항상 선택 사항이다. 이것은 누락이 아니라 결정이다. 가짜 이름이나 `기타`, `임시 프로젝트` 같은 자리표시자 폴더를 만들지 않는다.

### 5-4. 승인 뒤에만 생성

- 사용자가 승인하기 전에는 R/D/P/S/T 폴더를 만들지 않는다.
- 요청한 단계까지만 만든다. 다만 해당 D의 `AGENTS.md`가 표준 S 구조를 선언했으면 새 P와 함께 그 S 구조·각 S의 미니 지침을 생성할 수 있다.
- 새 위계 폴더·유틸에는 그 레벨에만 고유한 한 줄 `AGENTS.md`와 `CLAUDE.md` 껍데기를 만든다. R·D·P에는 6-5절에 따라 머리말 카드도 붙인다. S·T는 별도 카드를 만들지 않는다.
- 산출물·원문·촬영 자료만 담는 폴더는 부모 카드 `drawers:`에 서랍으로 선언한다. 선언된 서랍과 그 하위, 프로그램이 만드는 임시 출력 폴더에는 지침 파일을 넣지 않는다. `_`로 시작하는 재사용 유틸은 이 면제 대상이 아니다.
- 기존 파일과 이름이 충돌하면 덮어쓰지 않고 충돌 항목을 화면에 되돌려 보여 준다.
- 아이콘 결정은 루트 폴더에 적용한다. `mode=default|imported|generated`, nullable `relativePath`, `sourceHash`, `target=root`를 기록한다. `default`이면 `.ico`와 `desktop.ini`를 만들지 않는다. 가져오기 화면에는 파일 선택과 미리보기를 제공하고, imported/generated만 영혼 안의 상대경로를 사용한다. 기존 하위 폴더별 아이콘은 발견해 별도 mapping으로 보존한다.

---

## 6. 영혼 폴더의 표준 구조

```text
C:\<영혼 이름>\
  소환하기.cmd
  soul-state.json
  AGENTS.md
  CLAUDE.md
  IRIS-온톨로지.md             목록 카드 규칙의 정본
  <영혼 이름>-구조지도.html       폴더 구조를 그린 거울
  <영혼 이름>-온톨로지-뷰.html    카드·관계를 그린 거울
  _ontology\
    registry.yml             도구·계정·저장소 등록부
    graph.json               카드·연결을 모아 만든 결과
    build_graph.py
    query.py
    validate.py
    check_fresh.py
    render_view.py
    requirements.txt         온톨로지 도구 의존성(PyYAML 고정 버전)
  _map-generator\
    build_map.py
  _icons\
    soul.ico
  R...\D...\P...\S...\T...
  _agent\
    shared\
      handoff\<scope-id>\
        CURRENT.md
        MEMORY.md
        events\from-claude\<uuid>.json
        events\from-codex\<uuid>.json
        revisions\
        native-sessions.json
      secrets\
        vault.age
      skills\
        superpowers\v6.3.0\
        k-skill\v0.4.3\
      tools\
      registry\
      schemas\
    claude\
    codex\
    runtime\hosts\<host-id>\
    setup\
      active-generation.json    활성 세대의 유일한 포인터
      install-ontology-v8.py     추가 설치기
      ontology-v8\              검증된 배포 부품
      ontology-v8-receipt.json   추가 설치 결과
    history\
    backups\
    logs\
    export\
```

### 6-1. 모든 것이 영혼 안에 있다는 뜻

정식 원본은 영혼 안에 둔다. Windows가 정해 둔 외부 위치에는 **재생성 가능한 손잡이**만 남을 수 있다.

| 영혼 안의 정식 원본 | 밖에 남을 수 있는 예외 |
|---|---|
| 규칙·작업자료·공용 기억 | 없음 |
| 암호화된 시크릿 | 복구 암호는 영혼과 다른 안전한 장소 |
| 스킬·MCP 원본과 잠금표 | Windows 등록값·정션·PATH 같은 손잡이 |
| Claude·Codex 설정과 기록 | 설치된 실행 파일, OS 자격증명, 브라우저 로그인 |
| 내보내기 도구 | USB 드라이브 자체 |

예외는 `runtime\hosts\<host-id>\exceptions.json`에 이유와 재생성 방법을 기록한다. 밖의 파일을 정식 원본으로 조용히 남겨 두지 않는다.

Google Workspace처럼 프로그램이 `%USERPROFILE%\.workspace-mcp` 같은 고정 위치만 받는 경우도 같은 원칙을 쓴다. 일반 첨부 자료는 reparse point를 따라가지 않는 안정 사본을 `_agent\shared\portable-state\<프로그램>`에 만들고, 암호화 키·OAuth token(로그인을 이어 주는 비밀표)은 시크릿 금고에 넣는다. 기존 외부 폴더는 삭제하거나 무검증 junction으로 바꾸지 않는다. 새 PC에서 소비 프로그램의 안전한 경로 재연결 방식이 검증되지 않았으면 자료는 이미 영혼 안에 보존된 상태로 두고 `pendingCapabilities`에 “로그인 또는 경로 재연결 필요”를 기록한다. 즉, USB에는 내용이 빠지지 않지만 해당 프로그램을 다시 켜는 마지막 로그인은 필요할 수 있다.

### 6-2. 프로젝트 경계와 기존 루트 Git

새 영혼의 v7 기반 설치는 Codex의 `project_root_markers = ["soul-state.json"]`로 루트 경계를 잡는다. 그래서 이번 신규 설치 절차에서는 커밋 없는 루트 `.git`을 새로 만들지 않는다. 실제 코드 프로젝트의 `.git`은 자기 폴더에 그대로 둔다.

**기존 IRIS는 루트 `.git`을 상위 지침 상속의 표지판으로 쓰고 있다. 이 파일을 지우거나 역할이 끝났다고 판단하지 않는다.** 신규 marker 방식과 기존 경계를 구분하며, 온톨로지 추가 설치는 어느 쪽 경계도 바꾸지 않는다. v7 launcher의 Git deny shim(잘못된 위치의 Git 변경을 막는 실행 연결부)은 작업 위치의 실제 repository root를 확인해, 그것이 영혼 루트의 표지판 저장소와 같을 때 `commit`, `branch`, `worktree` 등 변경 명령을 막는다. 실행 전후 refs와 worktree 목록도 같아야 한다. 기존 루트가 커밋이 있는 실제 저장소라면 정상 사용자 저장소로 보존한다.

Codex 사용자 전역 `AGENTS.md`는 루트 원본의 재생성 가능한 hardlink로 연결하고, nested 실제 Git 안에서 시작할 때 launcher가 repo 경계 위쪽의 R/D 지침을 `developer_instructions`로 합성해 주입한다. Claude는 루트 경계 때문에 native 프로젝트 상태가 넓게 묶일 수 있으므로 그 상태에 의존하지 않고 공용 scope 장부를 기준으로 삼으며, 범위 전용 도구는 launcher 어댑터가 그 프로세스에 주입한다.

### 6-3. 지침 원본

각 레벨의 규칙 원본은 `AGENTS.md`다. Claude용 `CLAUDE.md`는 보통 다음 한 줄뿐이다.

```text
@AGENTS.md
```

상위 규칙을 하위 파일에 반복하지 않는다. 전역 규칙은 루트, 역할 정체성은 R, 분야 규칙은 D, 프로젝트 고유사항은 P에 둔다. 기존 내용형 `CLAUDE.md`는 보존하고 사람이 읽는 충돌 보고서로 알린다.

### 6-4. 구조지도

온톨로지 설치 뒤 정식 구조지도는 `_map-generator/build_map.py`가 `_ontology/graph.json`을 읽어 만드는 `<영혼 이름>-구조지도.html`이다. `<영혼 이름>-온톨로지-뷰.html`은 같은 그래프와 등록부의 카드·관계를 살펴보는 화면이다. 둘 다 인터넷 없이 여는 HTML 파일이며 **손으로 고치지 않는다**. 예를 들어 NOVA의 출력은 `NOVA-구조지도.html`·`NOVA-온톨로지-뷰.html`, 현재 IRIS의 출력은 `IRIS-구조지도.html`·`IRIS-온톨로지-뷰.html`이다. 카드 규칙의 명세 파일명 `IRIS-온톨로지.md`는 영혼 이름과 관계없이 고정한다.

v7 엔진이 만든 `<영혼 이름>-구조지도.html`은 초기 설치 확인용이다. v8 온톨로지 생성기는 같은 경로에 그래프 기반 지도를 만든다. v7 설치·수리를 다시 실행한 뒤에도 온톨로지 그래프와 지도를 마지막으로 재생성한다. 보고서에는 실제 정식 지도 경로를 적는다.

### 6-5. 목록 카드 체계의 설치와 첫 생성

이삿짐 상자의 **내용 목록**을 만든다고 생각하면 된다. 파일을 옮기는 대신 폴더의 설명문 맨 위에 작은 카드를 붙인다. 컴파일(compile, 여러 카드와 연결을 한 목록으로 모으는 작업)을 하면 그래프(graph, 항목과 연결을 모은 목록)가 생긴다.

```text
① 기존 체계 확인·추가 설치 계획
    ↓
② 충돌 없는 부품 추가·카드 초안 검토
    ↓
③ 카드 작성·그래프 생성
    ↓
④ 규칙 검사·지도와 온톨로지 뷰 생성
```

아래 명령은 **영혼 루트에서 에이전트가 실행**한다. 사용자가 복사할 필요는 없다. 명령 하나가 실패하면 원인을 확인하기 전 다음 쓰기로 넘어가지 않는다.

**① 기존 체계 확인.** 부록 H에서 추가 설치기와 배포 부품을 추출·지문 검사한 뒤 계획을 읽는다.

```powershell
python _agent/setup/install-ontology-v8.py
```

기본 실행은 계획만 출력한다. 기존 `_ontology`·명세·지도 생성기가 있으면 그대로 보존하며, 기존 IRIS용 운영 검사를 적용한다. 새 배포 도구 몇 개만 기존 폴더에 덧대어 서로 다른 버전을 섞지 않는다. 기존 지침에 필요한 규칙이 빠졌다면 6-9절의 병합 후보를 검토한다.

**② 부품 추가·카드 초안 검토.** 새 체계가 필요한 경우 충돌 없는 파일만 추가한다.

```powershell
python _agent/setup/install-ontology-v8.py --apply
python -m pip install -r _ontology/requirements.txt
python _ontology/build_graph.py --init
```

새 부품은 파이썬 라이브러리 `PyYAML` 하나에 의존한다. 위 두 번째 줄이 `--apply`가 놓아 준 `_ontology/requirements.txt`로 그 라이브러리를 온톨로지 명령을 실행할 그 `python` 환경에 직접 설치한다(인터넷 필요). 같은 버전(6.0.3)이 이미 있으면 그대로 넘어가고, 다른 버전이 있으면 6.0.3으로 바꾼다. 이 줄을 건너뛰면 이어지는 카드·검증·화면 명령이 `ModuleNotFoundError: No module named 'yaml'`로 멈춘다. ①에서 `existing-ontology-preserved`가 나왔으면 놓인 파일이 없으므로 이 줄은 건너뛴다. 추가 설치기는 R/D/P/S/T 작업 폴더나 개인 카드를 만들어 넣지 않는다. 첫 카드 명령은 초안 리포트를 만들 뿐 기존 `AGENTS.md` 본문을 바꾸지 않는다. 기존 카드 ID, 폴더별 상태 체계, 상태 문서 위치, 서랍 목록, 관계의 실제 대상을 확인한다. 사람이 정해야 할 업무 상태를 임의로 채우지 않는다. 3층 규칙 판단이 필요하면 기존 결정 범위에서 해결하고, 새로운 결정은 사용자에게 남긴다. `--apply`가 남기는 `_agent/setup/ontology-v8-installing.json`은 복사 완료 표시 파일이며 그대로 두어도 된다.

초안 리포트의 '태그 종류를 못 정한 노드' 목록에 P가 있는 것은 정상이다. `세부 지역`·`논문 단위`·`확장 포인트` 세 종류는 폴더 이름으로 판정하지 않고 **카드에 사람이 적는다**. ③에서 쓴 뒤 그 P의 `AGENTS.md` 머리말 `tags:`에 기록된 `kind: 미분류`를 맞는 종류로 고치고 `python _ontology/build_graph.py --compile`을 다시 실행한다. 고치기 전까지 ④의 검사 #2가 실패(종료 코드 1)하는 것은 사람의 결정을 기다린다는 뜻이며, 임의 종류를 넣어 통과시키지 않는다.

**③ 카드 작성.** 초안이 실제 폴더와 맞고 변경 범위가 확정되면 쓴다.

```powershell
python _ontology/build_graph.py --init --write
python _ontology/build_graph.py --verify-write
python _ontology/build_graph.py --compile
```

쓰기 전 사본(`AGENTS.md.정리백업-<날짜>`, 카드가 확정되면 지워도 된다)을 각 폴더에 보존하고, 기존 카드의 ID를 유지한다. 새 ID가 중복되지 않는지와 머리말 아래 기존 본문이 그대로인지 확인한다. `--verify-write`는 파싱 확인을 보조할 뿐 본문 보존·모든 규칙 통과를 대신하지 않는다. `--compile`만 실행해 생긴 임시 ID를 영구 카드 ID가 이미 저장된 것으로 오해하지 않는다.

**④ 검사와 화면 생성.** 도구 실행 여부와 리포트 내용을 둘 다 확인한다.

```powershell
python _ontology/validate.py
python _ontology/query.py stats
python _map-generator/build_map.py
python _ontology/render_view.py
python _ontology/check_fresh.py
```

카드 파싱·ID 중복·링크 대상·신선도를 확인하고, 두 HTML이 현재 항목을 표시하는지 연다. 검증 결과의 실패·경고·검사 대상 없음은 6-8절처럼 구분해 보고한다. 결과 파일 경로는 각 명령이 출력한 값을 사용한다.

### 6-6. 카드에 무엇을 적고 어디에서 읽는가

정본은 **방법과 규칙의 기준 문서**이고, 진실 소스는 **현재 상태 값이 적힌 자리**다. 카드에는 상태 값을 복사하지 않고 그 자리를 적는다. 같은 문서가 둘을 겸할 수도 있지만 두 역할은 별개다.

| 대상·표기 | 아주 쉬운 뜻 | 기록 원칙 |
|---|---|---|
| R·D·P의 머리말 | `AGENTS.md` 맨 위 `---` 사이의 YAML 카드 | YAML은 항목 이름과 값을 줄로 적는 형식. 본문은 유지 |
| `id: iris:xxxxxxxx` | 이름이 바뀌어도 같은 항목임을 아는 고유번호 | 소문자 영숫자 8자, 한 번 부여하면 유지 |
| S·T | P 안의 단계와 작업 | 별도 카드를 만들지 않고 부모 ID·코드로 유도 |
| `aliases` | 이 폴더가 예전에 쓰던 이름 | 개명·이동 전에 옛 이름을 추가 |
| `status_scheme` | 어떤 종류의 상태를 쓰는가 | 분야 지침이 선언한 체계 적용 |
| `truth` | 지금 상태를 읽을 파일·문단 | 상태 체계가 `none`인 P는 불필요 |
| `drawers` | 자료를 담기만 하는 하위 폴더 목록 | 부모 R·D·P 카드의 상대경로로 선언 |
| `relations` | 다른 항목과의 연결 | 의존하는 쪽에만 적고 반대 방향은 자동 계산 |
| `registry.yml` | 도구·사람·계정·저장소 등록부 | 실제 필요한 공개 식별정보·위치만, 비밀값 금지 |
| `graph.json` | 카드와 연결을 모아 만든 결과 | 생성된 거울이므로 손편집 금지 |

상태 체계는 업무의 `task5`, 연구의 `funnel`·`ladder`, 주제 검토의 `topic3`, 책 제작의 `book`, 상태 단계가 없는 `none`을 구분한다. 기존 카드의 체계·상태 위치를 우선 보존하며, 새 영혼에 현재 IRIS의 R 번호별 업무 의미를 무조건 이식하지 않는다. 신규 배포 도구는 상태 문서가 없는 빈 P를 `none`으로 시작하고, 실제 `업무진행-체크리스트.md`가 있으면 `task5`와 해당 `truth`를 사용한다. 분야 지침의 별도 체계와 초안의 자동 추정은 사실 확인을 거친다.

카드 규칙의 정본은 `IRIS-온톨로지.md`다. **종류 목록, 관계 도장 14종, 검사 14종, 태그 용도 11종**은 닫힌 목록이다. 새 말이 필요하면 명세·전역 규칙을 먼저 바꾸어야 하며, 특정 하위 지침에서 임의로 늘리지 않는다. 관계 이름은 다음을 사용한다.

| 관계 | 의미 | 관계 | 의미 |
|---|---|---|---|
| `contains` | 안에 포함된 항목 | `canonical` | 따를 방법·표준 |
| `truth_at` | 현재 상태가 적힌 곳 | `template` | 복제해 쓴 틀 |
| `mirror_of` | 자동 생성 사본의 원본 | `promoted_from` | 프로젝트가 된 후보 주제 |
| `owner` | 실제 주인 항목 | `extends` | 직전 프로젝트에서 확장 |
| `sibling_group` | 같은 분야의 형제 묶음 | `stored_at` | 바깥 저장소 |
| `uses_tool` | 의존하는 도구·계정 | `governed_by` | 적용 규칙·결정 |
| `involves` | 관련 사람 | `about` | 기억이 가리키는 항목 |

`contains`와 그 역방향 `part_of`는 폴더 배치에서 계산하며, `truth_at`은 카드의 `truth` 속성으로 선언한다. 14개 이름이 모두 직접 `relations`에 두 번 쓰라는 뜻은 아니다. 대상 종류와 역방향 규칙은 명세 3절을 따른다.

### 6-7. 작업할 때 조회·갱신하는 순서

먼저 현재 목록을 확인한 뒤 필요한 항목만 찾는다. 아래 `<검색어>`, `<항목 ID 또는 상대경로>`는 실제 값으로 바꾼다.

```powershell
python _ontology/check_fresh.py
python _ontology/query.py where "<검색어>"
python _ontology/query.py show "<항목 ID 또는 상대경로>"
python _ontology/query.py canonical "<항목 ID 또는 상대경로>"
python _ontology/query.py inbound "<항목 ID 또는 상대경로>"
```

`where`는 위치, `show`는 카드와 관계, `canonical`은 따라야 할 정본, `inbound`는 해당 항목을 참조하는 대상을 보여 준다. 이동·개명 전에 들어오는 참조와 실제 파일을 함께 확인한다. 조회에서 없다는 결과는 **등록 목록에 없다는 뜻**일 수 있으므로 실제 파일까지 없다고 단정하지 않는다. 동명이인이면 전체 상대경로나 ID로 좁힌다.

R/D/P 폴더를 만들거나 이름·위치·격리 상태를 바꾼 작업은 같은 턴에 **필요한 카드 작성 → 그래프 컴파일 → 검증 → 구조지도 → 온톨로지 뷰 → 신선도 확인**까지 이어 간다. 기존 ID를 유지하고 `aliases`에 옛 이름을 남긴다. 카드의 관계·상태 위치, 등록부, 명세가 바뀌어도 다시 컴파일한다.

신선도(최신 자료와 목록이 일치하는지)는 검사 구현을 구분한다. 현재 IRIS 도구의 `tree_fingerprint`는 R/D/P **경로 목록**만 비교한다. 이 검사에서 최신이라고 나와도 카드 관계나 등록부 내용이 최신이라는 뜻은 아니다. v8 새 설치용 배포 도구는 카드·등록부·명세의 내용 지문도 추가로 비교한다. 어느 방식이든 업무 상태 문서의 내용과 모든 규칙을 검증해 주는 것은 아니다.

### 6-8. 검증 결과를 읽는 법

검증은 카드를 점검할 뿐 자동으로 폴더를 개명하거나 지우지 않는다. 명령이 끝났다는 사실과 규칙 위반이 없다는 사실을 나누어 보고한다. 기존 IRIS의 `validate.py`는 실패 항목이 있어도 리포트 생성 자체는 성공할 수 있다. 종료코드만 보아 “문제 없음”이라고 말하지 않는다.

| 결과 | 뜻 | 처리 |
|---|---|---|
| 1층 형식 실패 | 카드 문법·ID·관계 이름이 맞지 않음 | 해당 카드의 근거를 확인해 수정 |
| 2층 정합 실패 | 카드의 대상 파일·서랍·링크가 실물과 다름 | 실물과 카드 중 무엇이 맞는지 확인 |
| 3층 규칙 실패 | 이름·형제 번호·도메인별 규칙에 어긋남 | 자동 개명·이동 금지, 결정할 항목으로 기록 |
| 경고·해석됨 | 재생성 필요·옛 이름으로 해석되는 참조 등 | 의미를 읽고 필요한 후속 작업 기록 |
| 검사 대상 0·검사 불가 | 확인할 자료가 없거나 검사가 적용되지 않음 | 통과율 계산에서 무조건 성공으로 세지 않음 |

v8 신규 배포 검증기는 종료코드 `0`을 실패·판독불능 없음, `1`을 실패, `2`를 판독불능으로 구분한다. 그래도 대상 없음은 검사 자료가 없다는 뜻이므로 리포트를 읽는다. 실행 전후 실패 수를 비교할 수 있지만, 기존 규칙 위반을 이번 설치 고장으로 합치거나 숨기지 않는다. 새로 생긴 카드 파싱 실패·ID 변경·본문 손상·대상 누락이 있으면 완료로 표시하지 않는다. 그래프의 노드 수는 그 구현이 수집한 항목 수이고, 실물 파일 전체 수나 모든 종류의 구현 완료율이 아니다.

### 6-9. 지침·자동 점검의 실제 적용 범위

신규 루트 지침은 부록 B-3과 같은 제작 원본 `V8-RootAgents.md`를 사용한다. 배포 묶음의 실제 위치는 `_agent/setup/ontology-v8/root-v8.md`다. 추가 설치기는 기존 루트가 v7 엔진이 막 생성한 최소 원본과 정확히 일치할 때만 v8 원본으로 바꾼다. 온톨로지를 새로 추가하는데 사용자가 고친 기존 `AGENTS.md`가 있으면 보존하고 `_agent/setup/ontology-v8-root-merge.md`에 병합 후보를 제공한다. 후보 파일이 생겼다는 사실은 활성 지침 반영 완료를 뜻하지 않는다. 기존 지침과 비교한 뒤 중복·충돌 없이 필요한 규칙을 반영하고 확인해야 한다.

루트 지침에 하드링크(hardlink, 같은 실제 파일을 다른 경로에서도 읽게 하는 연결)가 있으면 그 연결을 유지한다. 자동 반영 대상인 원형 v7 지침은 먼저 백업한 뒤 같은 실제 파일의 내용을 갱신해 루트와 연결된 Codex 지침이 함께 바뀌게 한다. 사용자 수정 지침은 이 자동 반영 대상이 아니다.

이미 온톨로지가 있어 `existing-ontology-preserved`가 나온 경우에는 부품·지침·추가 설치 기록을 새로 쓰지 않는다. 이때는 명령 출력에 남은 보존 결과를 기록하고 기존 지침을 직접 대조한다. 새 설치 기록이 없다는 이유로 기존 도구가 고장났다고 판단하지 않는다.

| 실행 주체·장치 | 기존 IRIS에서 확인할 것 | 새 영혼에서 반드시 할 일 |
|---|---|---|
| Codex | 세션 시작 때 직접 `check_fresh.py` 실행 | 같은 절차를 루트 지침에 적용 |
| Claude Code | 실제 SessionStart·PostToolUse 훅 설정과 경로 | 자동 훅이 미설정이면 세션 시작·구조 변경 후 직접 검사 |
| 야간 검사 | 실제 백업·예약 작업 연결과 최근 로그 | 미설정으로 보고, 작업 요청·권한 범위에 맞게 별도 연결 |

훅(hook, 정해진 사건 뒤에 자동으로 부르는 작은 실행 연결)과 Windows 예약 작업은 **Python 파일을 복사했다고 자동으로 연결되지 않는다**. 이 v8 추가 설치기는 새 전역 훅이나 야간 예약 작업이 설치됐다고 보장하지 않는다. 기존 IRIS의 연결은 보존하며, 새 영혼의 미설정 항목은 수동 운영 절차와 함께 분명히 보고한다.

---

## 7. 휴대 설정·시크릿·기억·USB

### 7-1. 시크릿 금고

API 키와 토큰의 휴대 원본은 `_agent\shared\secrets\vault.age` 하나다. `age`는 파일을 암호화하는 도구다.

- 원문 `.env`를 USB에 넣지 않는다.
- 기존 `.env`가 있으면 삭제·덮어쓰기하지 않는다.
- 키 이름 집합은 기록할 수 있지만 비밀값의 평범한 SHA 지문은 저장하지 않는다. 비교는 메모리 안에서 직접 하거나 거래마다 만든 비밀키 HMAC(비밀키가 있어야 계산 가능한 비교표)만 사용하고 거래가 끝나면 비교키를 폐기한다.
- 외부 기존 `.env`를 현재 사용 중인 원본으로 판정했다면 그 내용을 새 금고의 active 항목으로 가져온다.
- 영혼 내부의 다른 값은 encrypted-legacy로 함께 보존한다. 자동으로 버리지 않는다.
- `.env`뿐 아니라 서비스계정 JSON, 인증서, SSH 개인키, OAuth refresh token, 환경변수가 가리키는 credential 파일도 분류한다. 휴대 가능한 것은 vault 안의 개별 항목을 정식 원본으로 삼고, Windows·브라우저·앱이 자체 관리하는 토큰만 host 예외로 기록한다.
- 부모 에이전트에 모든 키를 한꺼번에 풀지 않는다. Codex `shell_environment_policy`와 MCP별 allowlist로 각 자식 프로세스에 필요한 키·파일만 잠깐 주입하고, 나머지 환경은 scrub(민감값 제거)한다. 평문 임시 파일을 남기지 않는다.
- vault 변경은 새 임시 암호문 생성 → 복호화 왕복 검증 → flush/fsync → 같은 폴더 원자 교체 → 이전 암호문 세대 보존 순서다.

같은 PC에서는 DPAPI(Windows 사용자 계정에 묶어 암호를 푸는 기능)로 편하게 열 수 있다. 그러나 DPAPI는 다른 PC에서 그대로 풀리지 않는다. 따라서 복구 암호는 사용자가 종이·암호관리자 등 **영혼 밖의 안전한 장소**에 보관해야 한다. 복구 암호를 영혼이나 USB 안에 같이 저장하지 않는다.

복구 암호는 엔진이 충분히 긴 무작위 문구로 만든다. 운영체제의 안전한 로컬 확인창에서 한 번만 크게 보여 주고 종이나 암호관리자에 저장하도록 쉬운 말로 안내한다. 저장 확인 뒤 사용자가 직접 다시 입력하게 하며, dummy vault로 암호화·복호화 왕복을 통과해야 한다. 명령 인수, 자동 clipboard, 로그, transcript에 암호를 남기지 않는다. R/D/P/S/T 구조와 아이콘 인터뷰는 별도로 단일 오프라인 HTML 화면을 사용한다.

### 7-1-1. 기존 API 경로와 과금 보호

기존 `ANTHROPIC_BASE_URL` 같은 provider base URL, 로컬 프록시, 구독/종량 과금 경로는 보호 설정이다. 발견한 값을 그대로 보존하고, unset·baseURL override·직접 API endpoint probe를 하지 않는다. 429·quota 오류가 나도 프록시를 우회하거나 과금 채널을 바꾸지 않는다. 바꾸려면 사용자의 명시적 사전 승인이 필요하다. 시험은 설정과 로컬 프록시 존재만 확인하며 Anthropic 직결 호출을 하지 않는다.

### 7-2. 공용 기억

Claude와 Codex는 숨은 내부 상태까지 하나가 될 수 없다. 대신 같은 작업대장을 읽고 쓰게 한다.

- `CURRENT.md`: 지금 하는 일, 다음 행동, 막힌 점
- `MEMORY.md`: 오래 유지할 사용자 결정과 검증된 사실
- `events`: 각 에이전트가 남기는 수정 불가 사건 봉투
- `revisions`: 축약 전 이전 버전
- `native-sessions.json`: Claude 세션 ID와 Codex 세션 ID를 각각 정확히 연결

두 에이전트는 사건 파일만 새로 쓴다. reducer(사건을 순서대로 모아 최신 대장을 만드는 단일 정리기)만 `CURRENT.md`와 `MEMORY.md`를 원자적으로 갱신한다.

scope는 경로 문자열이 아니라 영구 UUID를 가진다. 각 관리 작업 폴더의 숨은 scope marker와 registry가 UUID↔현재 상대경로 alias를 연결하므로 폴더 이름을 바꿔도 기억이 이어진다. reducer는 scope 잠금 아래 단조 증가 sequence를 배정해 서로 다른 PC 시계가 어긋나도 사건 순서를 확정한다.

공용 기억의 scope UUID를 온톨로지 `iris:` ID로 바꾸지 않는다. 기억과 폴더를 연결해야 할 때는 명세의 `about` 관계를 사용한다. 온톨로지 검증기의 기억 검색 위치는 `_ontology/registry.yml`의 `memory_stores`와 실제 설치 경로가 맞는지 확인한다. 기존 IRIS의 Claude 기억 경로를 다른 새 영혼에 복사하지 않는다.

기록에서 다음 세 종류를 섞지 않는다.

1. 사용자가 직접 한 말
2. 사용자가 승인한 결정
3. 에이전트가 추정한 내용

기존 Claude/Codex 자체 기억과 세션은 보존한다. 유용한 내용을 공용 기억 후보로 먼저 옮기고 확인한 다음, 앞으로 만들어질 중복 장기기억의 생성·주입만 끈다. 기존 기록을 삭제하지 않는다.

에이전트를 바꾸면 “같은 사람의 뇌를 순간 이동”하는 것이 아니라 **같은 장부와 작업실을 쓰는 서로 다른 비서가 교대**한다고 설명한다.

### 7-3. 크래시와 외부 행동

세션이 갑자기 끝나면 사용자 파일을 되돌리지 않는다. 다음 시작 때 `recovery-detected` 사건을 남기고 실제 파일을 다시 확인한다. 이메일 발송·예약·결제처럼 외부 행동의 성공 여부를 확인하지 못했다면 `unknown`으로 기록하고 자동 재시도하지 않는다.

### 7-4. USB 내보내기

실행 중인 세션 데이터베이스를 단순 복사하면 가방 지퍼를 열어 둔 채 이사하는 것과 같다. 다음 중 하나일 때만 내보낸다.

- Claude와 Codex가 모두 자연 종료됨
- 해당 데이터베이스가 제공하는 안전한 백업 방식으로 일관된 사본을 만듦

전체 export 잠금을 잡은 뒤 고정 파일 목록과 지문을 먼저 확정한다. live 데이터베이스는 안전한 backup 결과로 바꾸고, 현재 거래 폴더·잠금·`_agent\export` staging·최종 export 자체는 payload에서 제외한다. reparse point와 NTFS ADS(숨은 보조 데이터 스트림)는 따라가지 않는다.

파일 목록과 내부 manifest를 포함한 staging을 Windows tar 형식의 단일 archive로 만든 뒤, 그 **파일 스트림**을 age로 암호화한다. age가 폴더를 직접 암호화한다고 표현하지 않는다. 공개 manifest에는 암호문 파일명·크기·SHA-256, 최소 soul ID, 복원기와 age의 기대 해시만 두며 내부 경로 목록은 암호문 안에 둔다.

USB에는 다음을 만든다. 같은 날 여러 번 내보내도 겹치지 않도록 날짜·시각·UUID를 모두 쓴다.

```text
<영혼 이름>-export-<날짜시각>-<UUID>\
  복원하기.cmd              편의 사본, 검증 전 실행 금지
  tools\age\               편의 사본, 검증 전 실행 금지
  manifest.json             최소 공개 정보만
  manifest.sha256
  <영혼 이름>.tar.age       내부 manifest를 포함한 암호화 archive
```

USB의 실행 파일은 공격자가 바꿀 수 있으므로 바로 실행하지 않는다. 새 컴퓨터에서 이 가이드를 읽는 신뢰된 Claude Code가 가이드에 내장된 복원기 hash와 공식 age hash를 먼저 대조하거나 공식 원본을 다시 받는다. archive를 풀기 전에 각 상대경로의 `..`, 절대경로, reparse/ADS를 거부한다. USB에서 직접 일하지 않고 새 컴퓨터의 `C:\<영혼 이름>` staging으로 복원한 뒤 새 host ID를 만든다.

같은 `soulId`이면 무손실 업데이트한다. 같은 상대경로가 양쪽에서 서로 다른 내용이면 어느 쪽도 덮지 않고 양쪽 conflict copy와 비교 보고서를 만든 뒤 사용자 결정을 받는다. 다른 ID이면 자동 병합하지 않는다. OS 프로그램과 로그인 손잡이는 다시 연결한다.

---

## 8. 고정 필수 도구

“상황에 따라 골라 설치”하지 않는다. 아래 표가 기본 세트다. 이미 정상인 정확한 버전은 재설치하지 않는다. 도구 원본은 영혼 안에 고정하고 Claude와 Codex가 각자 맞는 연결부로 같은 원본을 사용한다.

### 8-1. 기반 프로그램

| 능력 | 고정 기준 | 설치 원칙 |
|---|---|---|
| Windows 패키지 확인 | WinGet 1.29.290 | 없거나 고장일 때만 공식 경로로 복구 |
| 설치 실행기 | Windows PowerShell 5.1 호환 | Windows 기본 환경에서 먼저 작동, 선택적으로 고정 pwsh 추가 |
| 버전·코드 관리 | Git 2.54.0.windows.1 | `Git.Git`, 정상 버전 재사용 |
| JavaScript 실행 | Node.js 24.17.0 LTS | LTS만 사용 |
| Python 실행 | Python 3.12.10 | 3.12 전용 환경 사용 |
| Python 도구 격리 | uv 0.11.21 | 도구별 가상환경 |
| 온톨로지 도구 의존성 | PyYAML 6.0.3 | `_ontology/requirements.txt`로 온톨로지 명령을 실행할 `python` 환경에 고정 설치(uv 가상환경 아님, 인터넷 필요, 버전만 고정·해시 잠금 없음) |
| 시크릿·USB 암호화 | age 1.3.1 | 공식 Windows amd64 zip, SHA-256 `c56e8ce22f7e80cb85ad946cc82d198767b056366201d3e1a2b93d865be38154` |
| Claude 실행 | 공식 stable channel, 최소 2.1.241 | Claude 실행판에서는 선행 설치, Codex 실행판에서는 설치 후 영혼 연결부에 등록 |
| Codex 실행 | 공식 stable channel, 최소 0.149.0 | Codex 실행판에서는 선행 설치, Claude 실행판에서는 설치 후 영혼 연결부에 등록 |

Claude/Codex 자체 CLI는 공식 stable channel을 따르고 최소 호환버전·실제 설치 버전·바이너리 hash를 기록한다. 나머지 third-party 확장은 새 가이드가 나오기 전까지 자동으로 `latest`를 좇지 않는다.

### 8-2. 공통 능력 — Claude와 Codex 모두 필수

| 능력 | 고정 원본 | 쉬운 설명 |
|---|---|---|
| Superpowers | v6.3.0, commit `b36e0829c6d0140e93cfef2ca599b1b07d4a7797`, 14 skills | 일을 설계하고 검증하는 습관 모음 |
| self-improve MCP | v0.1.0, 기준 commit `6e761b763710b780128de144a79fcb37f37ed8b6` | 실수와 교정을 다음 작업에 반영 |
| 실시간 검색 | 각 에이전트의 native live search | 최신 공개 정보를 직접 확인 |
| 브라우저 조작 | `@playwright/mcp` 0.0.79 | 공개 웹 화면을 열고 읽고 조작 |
| 한국 생활 기술 | `@nomadamas/k-skill` 0.4.3, 고정 tarball과 publish commit에서 확인한 118개 | 한국 생활·공공데이터 심부름 |
| 한글 자동화 | `hwp-form-automation-mcp` commit `825f8a13dba0876f4f8e81222c1e35155bc68e8e` | HWP 문서 작성·변환 |
| 엑셀 자동화 | `excel-engine-mcp` commit `4684bb17a8d1f160dfe7b18e2a454ecb947da74e` | Excel 계산·출력 |
| 파워포인트 자동화 | `ppt-engine-mcp` commit `32ec4d80c2f3ffd10e5017583c57297b8e6a9041` | PPT 변환·검사 |
| 워드 자동화 | `word-engine-mcp` commit `e8fe5990cfc9caa9a75276cc73ae409064154684` | Word 목차·비교·출력 |
| PDF 자동화 | `pdf-engine-mcp` commit `b8acf47b4088aeed14983fac5ca1452a72fb5559` | PDF 병합·분할·추출 |

Office나 한컴오피스가 없어도 MCP의 고정 원본과 등록은 준비한다. 실제 앱이 필요한 기능만 `pendingCapabilities[]`에 넣는다. PDF처럼 외부 앱이 필요 없는 기능은 반드시 시험한다.

### 8-3. Claude 전용 연결부

| 도구 | 역할 |
|---|---|
| `frontend-design` | Claude에서 화면 디자인 품질을 높이는 공식 플러그인 |
| `insane-search` | 일반 검색으로 원문 확보가 어려운 공개 사이트를 보조하는 검색 플러그인 |
| Superpowers 공식 플러그인 등록 | 영혼 안의 고정 v6.3.0 원본에 연결 |

### 8-4. Codex 전용 연결부

| 도구 | 역할 |
|---|---|
| UI/UX Pro Max CLI 2.15.0 | Codex용 화면·UX 설계 기술. CLI package metadata는 MIT지만 동봉 README는 skill asset에 CC-BY-NC-4.0을 적으므로 상업 결과물에는 권리 확인 전 사용하지 않음 |
| native live web search | 별도 우회 플러그인 대신 Codex의 실시간 검색을 기본 사용 |
| Superpowers local skills | 같은 고정 v6.3.0 원본을 Codex 스킬로 연결 |

Codex 공개 curated 목록의 Superpowers 5.1.3을 최신으로 부르지 않는다. v6.3.0 원본의 스킬만 연결된 경우에는 정직하게 **“Superpowers skill set”**이라고 보고하고 전체 Claude 플러그인과 동일하다고 말하지 않는다.

### 8-5. 제외 도구

- OpenAI Templates: 공통 능력과 겹치므로 설치하지 않는다.
- Claude `document-skills`: 문서 MCP들과 겹치므로 새 설치에서는 넣지 않는다.
- 레거시 `document-skills`가 있으면 파일·기록은 보존하고 활성화만 끈다.

### 8-6. 설치와 등록 규칙

- `latest`, `main`, 무버전 `npx`를 런타임 명령에 쓰지 않는다.
- Git 원본은 정확한 commit, npm은 정확한 version, 내려받은 바이너리는 SHA-256으로 고정한다.
- 잠금표는 `_agent\setup\manifests\v7-lock.json`에 둔다.
- 내장 `prepare-sources-v7.ps1`은 기본값이 읽기 전용 계획이다. 실제 준비 모드에서도 live agent home·settings·session DB·active pointer는 건드리지 않고, setup staging에서 commit·SHA-256·npm integrity를 검증한 **새 복사본**만 비어 있는 canonical 경로에 승격한다.
- 이미 canonical 경로가 있으면 덮어쓰지 않는다. 안정적인 no-follow inventory와 기존 receipt를 확인하고, 내용이 다르면 새 거래 폴더에 보존한 채 충돌로 멈춘다.
- npm 도구는 top package의 고정 integrity뿐 아니라 설치 때 확정된 전체 `package-lock.json` 지문도 generation과 source receipt에 기록한다. 이후 같은 세대의 수리·복원은 그 lock으로 `npm ci`를 사용하며 임의의 transitive latest를 다시 고르지 않는다.
- 원본 하나를 영혼 안에 두고 Claude/Codex용 어댑터만 따로 만든다.
- self-improve는 Claude에서는 플러그인 안의 MCP로, Codex에서는 같은 `server/index.js`를 직접 가리키는 MCP로 등록한다. 기록 저장소 `SELF_IMPROVE_DIR`도 영혼 내부 공용 상대경로로 통일한다.
- Superpowers에는 `SUPERPOWERS_DISABLE_TELEMETRY=1`을 넣고, 루트 `AGENTS.md`의 Design-First 사용자 승인 규칙이 Superpowers workflow보다 우선한다고 명시한다.
- 개발 중인 더러운 Git 저장소는 reset, pull, stash, checkout, overwrite하지 않는다. 현재 작업 트리를 별도 고정 스냅샷으로 복사해 사용한다.
- 도구의 설치 성공과 에이전트에 보이는 것을 각각 검사한다.
- Superpowers는 양쪽 새 프로세스에서 14개 스킬 각각의 resolved path와 tree hash가 영혼의 v6.3.0 canonical 원본인지 확인한다. 낡은 curated 5.1.3 등이 앞에서 가리면 bytes를 보존한 채 비활성화한다. 하나라도 틀리면 `machineReady=false`를 유지한다.

---

## 9. 소환기와 교대 장부

### 9-1. 소환기란 무엇인가

`소환하기.cmd`는 영혼을 실행하는 **현관문**이다. 필수 파일이다. 더블클릭하면 자기 위치 `%~dp0`로 영혼 루트를 찾기 때문에 폴더 이름이 바뀌어도 하드코딩된 경로에 의존하지 않는다.

소환기는 다음을 자동 처리한다.

1. `soul-state.json`과 파일 지문 검사
2. 미완료 거래 재개 또는 안전한 finalizer 실행
3. 현재 PC용 `CLAUDE_CONFIG_DIR`, `CODEX_HOME`, TEMP·캐시를 자식 프로세스에만 주입
4. 기본은 정확한 이전 세션 계속하기, 명시적 메뉴에서는 Claude / Codex / 작업 범위 / 새 작업 선택
5. 실행 전 공용 대장 축약, 실행 뒤 사건 봉투 정리
6. 고장이면 repair 모드로 진입

기존 소환 스크립트가 있으면 비상용으로 보존한다. 새 소환기가 검증되기 전에 이름을 바꾸거나 덮어쓰지 않는다.

더블클릭 기본 행동은 메뉴가 아니라 **마지막 작업 범위에서 마지막 에이전트의 정확한 세션 이어하기**다. Shift 실행이나 `--menu`처럼 사용자가 명시했을 때만 선택 화면을 연다. 첫 전환이 `pending-finalize`이면 에이전트를 열기 전에 finalizer와 검사를 먼저 끝낸다.

### 9-2. 정확한 이어하기

`--last`처럼 마지막 세션을 막연히 잡지 않는다. `native-sessions.json`에서 에이전트 종류와 scope ID에 맞는 정확한 세션 ID를 읽는다. 해당 세션이 없거나 불완전하면 공용 `CURRENT.md`를 바탕으로 새 세션을 시작한다.

각 harness의 SessionStart/SessionEnd adapter는 실제 session ID, cwd, scope UUID, host ID, 시작·종료 시각을 기록한다. resume 명령의 성공과 시작된 session ID를 다시 확인한다. 새 host나 버전 차이로 native resume가 안 되면 고유 세션을 억지로 변환하지 않고 CURRENT에서 새 세션을 연다.

### 9-3. 범위 ID

scope ID는 처음 한 번 만든 영구 UUID다. registry가 UUID와 현재 상대경로 alias를 연결하고, 폴더 안 marker가 이름 변경을 따라간다. 같은 프로젝트를 Claude로 하다가 Codex로 바꿔도 같은 scope의 장부를 읽는다. 부모와 자식 scope의 동시 쓰기는 막고, 읽기만 하는 작업은 허용한다.

이 registry는 공용 기억의 범위 연결표다. `_ontology/registry.yml`의 외부 도구·계정·저장소 목록과는 다른 파일이므로 합치지 않는다.

---

## 10. 검사·수리·완료 보고

### 10-1. 안전한 시험 재료

시험은 `_agent\setup\tests\fixtures` 아래의 폐기 가능한 가짜 파일만 사용한다. 실제 이메일 전송, 게시, 구매, 예약, 제출, 로그인 변경, 유료 API 호출을 시험하지 않는다.

### 10-2. 필수 검사

1. 설치기 소유 launcher·config·adapter에 영혼 이름이나 과거 PC 경로가 하드코딩되지 않았는지 검사. 보존한 옛 session/log의 과거 경로는 수정하지 않고 정보로만 보고
2. 바탕화면 쓰기 0건, 잠금표의 OS-managed 허용목록 밖 쓰기 0건인지 검사
3. `soul-state.json`을 두 번 읽고 써도 같은 결과인지 검사
4. 설치를 두 번 실행해도 중복·손상이 없는지 검사
5. 각 거래 단계에서 중단한 뒤 마지막 성공 지점부터 재개되는지 검사
6. 에이전트가 하나라도 실행 중일 때 설정·연결표·active generation이 바뀌지 않는지 검사
7. Claude와 Codex가 각각 루트 및 작업 폴더의 `AGENTS.md`를 읽는지 검사
8. Claude와 Codex에서 Superpowers, self-improve, Playwright, k-skill, 문서 MCP가 발견되는지 검사
9. Codex에서 UI/UX Pro Max와 live search가 보이는지, Claude에서 frontend-design과 insane-search가 보이는지 검사
10. 공용 사건 두 개를 reducer가 순서대로 CURRENT/MEMORY에 반영하는지 검사
11. 같은 scope 동시 쓰기가 차단되고 형제 scope는 허용되는지 검사
12. dummy fixture 금고를 올바른 복구 암호로 열고 틀린 암호는 거부하는지 검사. 실제 금고로 실패시험하지 않음
13. USB 묶음의 manifest와 파일 지문이 맞는지 검사
14. 외부 앱이 없는 MCP는 `pending`으로, 고장으로 오판하지 않는지 검사
15. v8 추가 묶음의 지문, 기존 파일 보존, 재실행 시 중복·덮어쓰기 없음, 다른 영혼 루트에서의 동작 검사
16. 카드의 ID 유지·중복 없음·본문 보존, 그래프 조회·정본 조회, 검증 리포트의 실패·경고·미검사 구분
17. 그래프와 구조지도·온톨로지 뷰가 현재 폴더를 가리키며, 쓰기 뒤 신선도 확인이 성공하는지 검사
18. 활성 루트 지침에 운영 절차가 반영됐는지와 훅·야간 검사 설정 여부를 실제 파일로 확인

위 목록은 설치 종류에 따라 적용 범위를 기록한다. 기존 IRIS에서 온톨로지 운영 검사만 했다면 1~14의 전체 신규 설치 시험까지 이번에 다시 통과했다고 보고하지 않는다.

### 10-3. 완료 상태를 정직하게 나누기

| 표시 | 뜻 |
|---|---|
| `soul-content-healthy` | 자료·규칙·기억·도구 원본·암호화 금고가 정상 |
| `machineReady=true/false` | 이 PC에서 두 에이전트와 필수 능력 시험 통과 여부 |
| `pendingCapabilities[]` | Office·HWP·로그인처럼 외부 조건으로 남은 기능 목록 |
| `pending-finalize` | 실행 중인 에이전트가 자연 종료되면 전환 가능 |
| `blocked` | 정책·영혼 충돌·더 최신 스키마 때문에 자동 진행 불가 |

v7의 `machineReady=true`는 v8 온톨로지 완료의 증거가 아니다. v8 추가 설치 절차는 추가 설치 기록, 활성 지침 반영, 카드·그래프·조회·화면 생성 결과를 별도로 보고한다. 기존 온톨로지를 보존한 경우도 “새 도구 설치”와 “기존 도구 운영 확인”을 구분한다. 병합 후보만 있고 지침이 미반영이면 그 사실을 남긴다.

추가 설치기의 `files-installed`는 **온톨로지 파일 배치만 끝났다는 뜻**이며, 이때 기록의 `setupVerified: false`는 운영 검사를 아직 하지 않았다는 뜻이다. 후속 카드 생성·컴파일·검증·지도 확인 결과를 별도로 확인한 뒤 최종 완료 여부를 보고한다.

### 10-4. 보고서는 아무것도 모르는 사람에게 설명한다

마지막 보고와 오류 보고는 사용자가 컴퓨터 용어를 전혀 모른다고 가정하고 매우 친절하고 쉽게 쓴다. 전문용어와 영어 약어는 처음 나올 때 바로 쉬운 말로 풀어 쓴다. 예를 들어 `pending-finalize`라고만 쓰지 않고 “지금 실행 중인 비서가 안전하게 닫힌 뒤 마지막 연결을 마친다는 뜻”이라고 설명한다. 코드·해시·경로만 던져 놓지 말고, 각각이 왜 필요한지와 사용자가 무엇을 하면 되는지를 함께 말한다.

보고 순서는 다음과 같이 고정한다.

1. **우리가 하려던 일** — 무엇을 안전하게 옮기거나 설치하려 했는지
2. **기존 자료의 안전** — 파일·자료·기억·세션을 보존했는지
3. **현재 결과** — 영혼 내용이 건강한지, 이 컴퓨터에서 바로 쓸 수 있는지
4. **남은 일의 뜻** — 외부 프로그램·로그인·자연 종료처럼 남은 조건이 무엇이며 왜 필요한지
5. **사용자가 할 일** — 버튼이나 파일 이름까지 포함해 한 단계씩 안내

진행 수치를 말할 때는 코드블록 안에 `█`·`░` 20칸의 프로그레스바를 함께 표시한다. 퍼센트는 내림하며, 완료 수와 전체 수의 기준을 적는다. 전체 수를 모르면 `진행중(총량 미확인)`으로 표시한다. 상태 꼬리표는 완료·진행중·대기·막힘·보류를 사용한다.

기술자를 위한 상세값은 그 뒤에 “확인용 상세 정보”로 분리한다. 본문을 읽기 위해 상세값을 이해해야 하는 구조로 만들지 않는다. 좋은 결과는 왜 좋은지, 나쁜 결과는 기존 자료가 여전히 안전한지까지 함께 설명한다. 마지막에는 “다음부터 `소환하기.cmd`만 열면 되는가?”에 한 문장으로 답한다.

---

## 부록 A. `soul-state.json` 최소 스키마

아래는 **내장 v7 엔진의 실제 형식**이다. 가이드 번호가 v9로 올라가도 `schemaVersion`, `sourceGuide.version`, `sourceGuide.date`를 새 번호로 고쳐 쓰지 않는다. v8 추가 설치 출처·결과는 별도 `ontology-v8-receipt.json`에 남는다.

```json
{
  "schemaVersion": 7,
  "soulId": "00000000-0000-0000-0000-000000000000",
  "displayName": "<영혼 이름>",
  "root": ".",
  "lifecycle": "pending-finalize",
  "createdAt": "ISO-8601 UTC",
  "updatedAt": "ISO-8601 UTC",
  "sourceGuide": {
    "edition": "Claude 실행판",
    "version": "7",
    "date": "2026-08-24"
  },
  "structureDecision": {
    "status": "approved",
    "approvedAt": "ISO-8601 UTC",
    "decisionHash": "SHA-256 of non-secret decision JSON",
    "approvedNodeIds": [],
    "deferredLevels": []
  },
  "iconDecision": {
    "status": "approved",
    "mode": "default",
    "relativePath": null,
    "sourceHash": null,
    "target": "root"
  },
  "pendingTransaction": null,
  "blockedReason": null,
  "machineReady": false,
  "pendingCapabilities": [],
  "knownHosts": []
}
```

`structureDecision.status`는 `approved`, `partially-deferred`, `wizard-paused` 중 하나다. 실제 파일에는 JSON Schema 검증을 적용한다. 알 수 없는 기존 필드는 버리지 않는다. 활성 세대는 이 파일이 아니라 `_agent/setup/active-generation.json`에서만 읽는다.

---

## 부록 B. 폴더 이름과 지침 템플릿

### B-1. 이름

- Role: `R0X-한글(English)`
- Domain: `D0X-한글(English)`
- Project: `P0X-한글(English)`
- Step: `S0X-한글(English)`
- Task: `T0X-한글(English)`
- 코드와 이름 사이 `-`, 한글과 영문 괄호 사이 공백 없음
- 재사용 도구 폴더: `_english-lowercase`만 허용, 여러 단어는 `-`로 연결
- 태그는 반전각 `〖 〗`만 사용하고, 루트 `AGENTS.md`의 닫힌 목록에 정의된 용도만 사용
- 도메인 그룹 접두는 `〖그룹〗D01-이름`처럼 `〗`와 D 사이에 공백 없음
- `.NN` 미세 하위 표기는 표준 R/D/P/S/T로 표현할 수 없을 때만 사용
- 태그 앞 공백은 규칙에 맞추며, 소프트웨어/산출물 종류에 한해 ` 〖Web〗〖App〗`처럼 같은 종류 태그를 연속 병기 가능
- 세부영역 형제 D는 같은 D 번호를 공유하며 무태그 D 하나를 표준·공통으로 둘 수 있음
- 그룹 접두 안에서는 D 번호가 단계일 수 있고 분야를 이름으로 구분 가능
- 서랍은 부모 카드 `drawers:` 선언으로 판정하며 이름 형식·코드 강제 없음
- 분야별 표준 S 선언이 있으면 새 P와 함께 해당 단계·미니 지침 생성 가능

### B-2. 새 폴더의 `AGENTS.md`

S·T·유틸의 미니 지침 본문은 다음과 같다. R·D·P는 같은 본문 **앞에** 도구가 만든 머리말 카드를 붙인다. 서랍·자동 출력 폴더의 면제 범위는 5-4절을 따른다.

```markdown
# <폴더명>

<이 레벨에만 고유한 정체성 또는 목적 한 줄>

<!-- 상위 AGENTS.md 규칙 재서술 금지 -->
```

`CLAUDE.md`:

```text
@AGENTS.md
```

R·D·P 머리말의 간단한 예시는 아래와 같다. 이는 `status_scheme: none`인 P의 설명용 예시이며 복사해서 같은 ID를 여러 폴더에 쓰지 않는다. 새 ID는 생성기로 만들고 업무 상태가 있는 P라면 실제 `truth` 위치와 맞는 체계를 적는다.

```yaml
---
id: iris:a1b2c3d4
type: project
code: P01
status_scheme: none
lifecycle: active
aliases: []
drawers: []
---
```

### B-3. 새 영혼의 루트 `AGENTS.md` 최소 원본

아래는 새 영혼용 **활성 지침 원본**이며 제작 파일 `V8-RootAgents.md`, 배포 파일 `_agent/setup/ontology-v8/root-v8.md`와 같다. `<영혼 이름>`만 확정된 이름으로 바꾼다. 개인 이메일·키 값·기기 절대경로는 넣지 않는다. 추가 설치기는 수정되지 않은 v7 최소 원본에만 자동 반영하고, 온톨로지를 새로 추가할 때 기존 사용자 지침에는 병합 후보를 제공한다. 후보 검토와 실제 반영이 끝나야 운영 지침 적용 완료다. 기존 온톨로지 전체 보존 결과라면 6-9절처럼 기존 지침을 직접 대조한다.

```markdown
# <영혼 이름> Workspace — 전역 지침

이 파일은 모든 하위 작업 폴더에서 공통으로 읽는 규칙 원본이다. IRIS 형식의 폴더와 목록 카드 체계를 사용하며, 각 하위 지침에는 자기 레벨에 고유한 규칙만 둔다.

## 사용자 응대

- 전문용어는 처음 나올 때 쉬운 말로 풀고, 한 번에 한 생각씩 설명한다.
- 실행 전에는 무엇을 할지 알리고, 완료 후에는 결과와 남은 일을 쉬운 말로 보고한다.
- 정말 필요한 결정만 한 번에 하나씩 묻는다. 이미 승인·위임된 범위는 반복 확인하지 않는다.
- 진행 수치를 말할 때는 코드블록 안에 `█`·`░` 20칸, 내림한 퍼센트, 완료 수/전체 수, 상태를 함께 쓴다. 상태는 완료·진행중·대기·막힘·보류만 사용한다. 전체 수를 모르면 `진행중(총량 미확인)`으로 적는다.

## 안전

- 설치기는 사용자 소유 파일·자료·기억·세션·Git 기록을 삭제하거나 덮어쓰지 않는다.
- 결제·발송·게시·예약·제출 등 외부 행동은 기존 사용자 승인 범위에서만 실행한다.
- 시크릿 원문을 지침·코드·등록부·로그에 쓰지 않는다. 금고의 상대경로 포인터만 둔다.
- 바탕화면에는 파일·임시물·캐시·바로가기를 쓰지 않는다.
- 기존 `.git`은 보존한다. 커밋 없는 루트 표지판 저장소에서 commit·branch·worktree를 만들지 않는다.

## 설계 우선

실질적인 작업 전에는 설계를 독립된 조각으로 나누고, 첫 조각부터 하나씩 쉬운 말로 설명하며 빈틈·위험·개선안을 함께 점검한다. 사용자 피드백으로 해당 조각을 확정한 뒤 다음 조각으로 넘어가며 모든 조각이 확정된 뒤 실행한다. 전문용어는 처음 나올 때 풀이한다. 사용자가 특정 하위 영역의 상시 설계를 명시적으로 위임하고 그 하위 `AGENTS.md`가 자체 설계·독립 비판·수정·검증을 규정한 경우에만 사용자 확정 대기를 그 절차로 대체한다. 사람이 해야 하는 행위, 되돌리기 어려운 외부 결정, 지출·권한 확대는 이 예외의 승인이 아니다. 사용자의 현재 명시적 지시와 이미 허용된 범위를 먼저 확인하며, 이 규칙은 스킬의 작업 방식보다 우선한다.

## 폴더 계층

- Role `R0X-한글(English)`: 사용자의 역할.
- Domain `D0X-한글(English)`: 계속 관리하는 분야.
- Project `P0X-한글(English)`: 끝이 있는 구체적인 일.
- Step `S0X-한글(English)`: 일처리 순서의 큰 단계.
- Task `T0X-한글(English)`: 필요할 때만 만드는 세부 작업.
- 코드와 이름은 `-`로 잇고 영문 괄호 앞에는 공백을 넣지 않는다. 요청받은 폴더만 만들며 기존 번호를 다시 매기지 않는다.
- D가 표준 S 구조를 선언했다면 새 P와 함께 해당 S·미니 지침을 만들 수 있다.
- 모든 위계 폴더·재사용 유틸에는 고유 정체성 한 줄과 상위 규칙 재서술 금지 주석을 담은 `AGENTS.md`, `@AGENTS.md` 한 줄짜리 `CLAUDE.md`를 만든다.
- R·D·P의 `AGENTS.md`에는 온톨로지 머리말 카드도 만든다. S·T는 별도 카드를 만들지 않는다.
- 재사용 유틸 이름은 `_english-lowercase` 형식만 쓴다. 소문자 영어 여러 단어는 `-`로 연결한다.
- 산출물·원문·촬영 자료를 담기만 하는 폴더는 이름이 아니라 내용으로 서랍을 판정하고 부모 R·D·P 카드의 `drawers:`에 상대경로를 선언한다. 서랍은 위계 코드를 강제하지 않으며 선언된 서랍과 그 하위에는 지침 파일을 만들지 않는다.
- 프로그램이 만들고 지우는 자동 출력 폴더, 코드 저장소 내부·vendor 원본·에이전트 홈·캐시·`.git` 내부에는 지침을 주입하지 않는다. 재사용 `_` 유틸 자체는 면제하지 않는다.
- `.NN` 미세 하위 표기는 표준 위계로 표현할 수 없을 때만 쓴다. 물리적으로 형제 폴더이므로 의미상 부모의 지침이 자동 상속된다고 가정하지 않는다.
- 도메인 그룹은 실폴더 대신 `〖그룹〗D01-이름(English)` 접두를 쓰며 `〗`와 D 사이에 공백을 넣지 않는다. D 번호는 그룹 안에서 새로 시작한다.
- 세부영역 형제 D는 같은 번호·서로 다른 태그로 구별하며, 무태그 D 하나를 표준·공통 도메인으로 둘 수 있다. 그룹 접두 안에서는 번호가 단계이고 분야는 이름으로 구분될 수 있다.

## 태그 용도

반전각 `〖 〗`의 용도는 아래 11종으로 닫혀 있다. 새 용도는 전역 규칙과 `IRIS-온톨로지.md`를 먼저 고친 뒤 쓴다. 한 폴더에 서로 다른 종류를 섞지 않는다. 소프트웨어/산출물 종류에 한해 ` 〖Web〗〖App〗`처럼 같은 종류 태그의 복수 병기를 허용한다. 전각 `【 】`·대괄호·중괄호는 폴더명에 쓰지 않는다.

| 용도 | 적용 범위·예시 |
|---|---|
| 기간/연도 | P: `〖2026년.1학기〗`·`〖2026년〗`·`〖2026년 여름방학〗` |
| 소프트웨어/산출물 종류 | P: `〖MCP〗`·`〖Web〗`·`〖App〗`·`〖Local App〗`·`〖Plugin〗` |
| 담당자 | P: `〖홍길동 선생님〗` |
| 가족 구성원 | 보험 분야 P의 주피보험자: `〖남편〗`·`〖아내〗` |
| 학년반·분반 | T: `〖1학년 1반〗`·`〖A반〗` |
| 연도·학년반 | 담임 분야 P: `〖2026년 1학년 5반〗` |
| 세부 지역 | 여행 분야 P: `〖코론〗`·`〖세부〗` |
| 세부영역 | 연구 D: 같은 D 번호, `〖물리학〗`·`〖물리 교육〗` |
| 논문 단위 | 같은 주제에서 갈라지는 연구 P: `〖석사논문〗`·`〖방법론〗` |
| 확장 포인트 | 순차 확장 여정 P: `〖베이스라인〗`·`〖센서 추가〗` |
| 도메인 그룹 접두 | D 코드 앞: `〖교재〗D01-…`, 그룹 안 D 번호 새 시작 |

※ `세부 지역`·`논문 단위`·`확장 포인트`는 폴더 이름으로 자동 판정하지 않는다. 해당 P 카드의 `tags:`에 `kind`를 직접 적는다(적기 전까지 `미분류`로 기록되고 검사 #2가 실패한다).

## 목록 카드와 정본

- 목록 카드의 종류·고유번호·관계·상태 체계·이름 검사 정본은 루트 `IRIS-온톨로지.md`다. 종류 목록·관계 14종·검사 14종을 하위에서 임의로 늘리지 않는다.
- 폴더명이 코드·태그의 원본이다. R·D·P 카드의 `iris:` 고유번호는 한 번 부여하면 유지한다. 개명·이동 전에 `aliases:`에 옛 이름을 남긴다.
- 관계는 의존하는 쪽 한 곳에 적는다. 역방향은 도구가 계산한다.
- `canonical`은 방법·표준의 정본, `truth`는 현재 상태를 읽을 자리다. 카드에 현재 상태 값을 복사하지 않는다. `status_scheme: none`인 P에는 `truth`가 필수가 아니다.
- 외부 사람·도구·계정·저장소는 `_ontology/registry.yml`에서 실제 필요한 항목만 관리한다. 비밀값은 넣지 않는다.
- `soul-state.json`은 설치 엔진의 상태 기록으로 보존한다. `soulId`·공용 기억 `scopeId`·온톨로지 `iris:` ID를 서로 바꾸거나 복사하지 않는다.

## 조회·갱신·검사

- Codex와 Claude 모두 세션 시작 때 `python _ontology/check_fresh.py`를 실행한다. 기존 Claude 훅이 실행했으면 결과를 확인하며, 훅이 있다고 추정만 하지 않는다.
- 신선도 불일치면 `python _ontology/build_graph.py --compile`로 재생성한다. 새 R·D·P에는 먼저 `--init` 초안을 검토한 뒤 `--init --write`로 카드를 붙인다.
- 항목은 `python _ontology/query.py where "검색어"`, 정본은 `canonical "ID 또는 상대경로"`, 들어오는 참조는 `inbound "ID 또는 상대경로"`로 찾는다. 실제 파일도 확인한다.
- R/D/P 생성·개명·이동·격리 또는 카드·등록부·명세 변경 뒤에는 같은 턴에 카드 확인 → `build_graph.py --compile` → `validate.py` → `_map-generator/build_map.py` → `_ontology/render_view.py` → `check_fresh.py` 순서로 갱신한다. 모든 명령은 영혼 루트에서 실행한다.
- `_ontology/graph.json`·`<영혼 이름>-구조지도.html`·`<영혼 이름>-온톨로지-뷰.html`은 생성된 거울이다. 손으로 수정하지 않는다. 명세 파일명 `IRIS-온톨로지.md`는 영혼 이름과 관계없이 고정한다.
- 신선도는 구현에 따라 경로만 또는 카드·등록부·명세 지문까지 비교한다. 최신 판정이 업무 상태 확인이나 모든 규칙 통과를 뜻하지 않는다.
- 검증 리포트의 실패·경고·해석됨·검사 대상 없음·검사 불가를 구분한다. 명령 종료 성공만으로 규칙 통과라고 보고하지 않는다. 3층 규칙 실패는 자동 개명·이동하지 않는다.
- 훅·야간 예약 검사는 실제 설정과 최근 실행 결과를 확인한다. 도구 파일만 존재하면 자동 점검은 미설정일 수 있다.

## 지침과 작업 범위

- 실행 폴더와 모든 조상 `AGENTS.md`를 함께 적용한다. 전역은 루트, 역할 정체성은 R, 분야 규칙은 D, 프로젝트 고유사항은 P에 둔다.
- 지침 이외의 스킬·도구·설정·기억이 중간 조상 폴더에서 자동 상속된다고 가정하지 않는다. 전역 능력은 사용자 전역 연결부, 특정 영역 전용 능력은 해당 영역에 둔다.
- 새 영혼의 v7 설치는 Codex `project_root_markers=["soul-state.json"]`을 사용한다. 기존 `.git` 기반 경계는 유지하며 온톨로지 설치가 바꾸지 않는다.

## 공용 기억과 동시 쓰기

- v7 공용 기억을 사용하면 `_agent/shared/handoff/<scope-id>`의 같은 CURRENT·MEMORY·events를 읽는다. 기존 영혼의 기억 배치는 확인 없이 바꾸지 않는다.
- 사용자 발언, 승인된 결정, 에이전트 추정을 구별한다.
- 같은 범위와 부모↔자식 범위는 한 에이전트만 쓰고 의미 충돌은 자동 병합하지 않는다.
- 기존 에이전트 고유 세션과 기억은 삭제하거나 서로 합치지 않는다. 온톨로지 기억 검사는 등록부의 `memory_stores`가 실제 경로인지 먼저 확인한다.
```

세부 태그 표기나 조직 규칙의 변경은 활성 루트 지침과 온톨로지 명세를 함께 대조해 반영한다. 하위 지침에서 닫힌 목록을 임의로 늘리지 않는다.

---

## 부록 C. HTML 질문 화면과 아이콘

- 서버는 `127.0.0.1`만 bind한다.
- `Origin`, `Host`, 무작위 토큰, 요청 크기, JSON 필드를 모두 검증한다.
- 제출 전까지 답은 브라우저 메모리에만 두고, 승인된 JSON만 거래 staging에 원자 저장한다.
- 구조 JSON은 node 배열과 부모 관계를 schema로 검증하고, 기존 번호는 변경 요청으로 제출되지 못하게 한다.
- 외부 CDN, 외부 폰트, 분석 스크립트, 네트워크 요청을 쓰지 않는다.
- 선택한 기존 `.ico`는 읽기만 한 뒤 영혼 안으로 복사하고 SHA-256을 기록한다.
- 로컬 배지는 Windows의 `System.Drawing`으로 색상·문자를 그려 `.ico`로 저장한다.
- Windows 기본을 골라도 `mode=default`, `relativePath=null` 결정을 상태파일에 기록하고 `desktop.ini`는 만들지 않는다.
- imported/generated일 때만 `desktop.ini`를 만든 뒤 해당 폴더와 파일 속성을 설정하고 Explorer를 새로 고친다.
- timeout·창 닫기·잠시 멈추기에서는 승인 JSON을 만들지 않고 토큰과 listener를 폐기한다. 다음 실행은 새 토큰으로 재개한다.

---

## 부록 D. 업데이트·복원·되돌림

### D-1. 레거시 업데이트

아래 1~7은 **v7 기반 설치 자체에 갱신이 필요한 경우**의 절차다. 온톨로지만 필요한 기존 영혼은 기반을 재추출·재설치하지 않고 6-5절의 추가 묶음과 운영 검사를 적용한다.

1. 옛 구조와 에이전트 홈을 읽기 전용으로 목록화한다.
2. 새 `_agent\shared`, `setup`, `runtime`를 staging에 만든다.
3. 외부 스킬 정션은 실제 대상을 평파일로 복사하고 지문을 맞춘다.
4. 내용형 `CLAUDE.md`, 더러운 Git 저장소, 기존 메모리·세션을 별도 보존 목록에 넣는다.
5. 새 설정 후보는 현재 설정에 필요한 키만 병합해 만든다.
6. 실행 중인 에이전트가 있으면 `READY`까지만 만든다.
7. 다음 자연 종료 뒤 연결부를 바꾸고 검사한다.

3번은 immutable 스킬·도구 원본에만 해당한다. 실행 중인 native home·세션·SQLite/WAL·settings는 6번 이전에 일반 복사하지 않는다. 옛 커밋 없는 루트 `.git`은 그대로 보존하고, fresh 영혼은 `soul-state.json` marker를 사용한다.

### D-2. 복원

1. USB manifest와 암호화 묶음 지문을 먼저 확인한다.
2. 영혼 ID와 이름을 확인한다.
3. `C:\<영혼 이름>`의 새 staging에 푼다. USB에서 직접 실행하지 않는다.
4. 같은 ID의 기존 영혼이면 없는 파일과 새 세대만 추가한다. 같은 상대경로의 내용이 다르면 양쪽 conflict copy와 비교표를 만든다.
5. 다른 ID면 중지한다.
6. 새 host ID, DPAPI 래퍼, 환경변수, 로그인 손잡이를 만든다.

복원한 카드 ID·관계·옛 이름·개인 등록부를 그대로 유지한다. 폴더 경로가 바뀌면 실제 도구가 새 루트를 찾는지 확인하고 그래프·두 HTML을 다시 만든다. 새 영혼용 빈 등록부로 복원된 등록부를 덮지 않는다. 기존 IRIS 도구와 새 배포 도구를 일부 파일씩 합치지 않는다.

### D-3. 되돌림

- 사용자 작업 파일과 세션 DB는 되돌림 대상이 아니다.
- 설치가 바꾼 환경변수, 설정 키, 정션, active generation만 이전 값으로 복구한다.
- 실패한 staging과 보고서는 원인 분석을 위해 보존한다.

---

## 부록 E. 시크릿과 USB 세부 규칙

- `age` 바이너리도 버전·SHA-256을 고정해 영혼의 도구 원본에 둔다.
- 자동 복구문구 입력에는 기본 `age -p`를 억지로 자동화하지 않는다. age 1.3.1에 공식 동봉된 `age-plugin-batchpass.exe`의 지문도 확인하고, 자식 프로세스에서만 `age -j batchpass`와 일시적인 passphrase 환경을 사용한 뒤 즉시 지운다.
- vault를 열어 둔 채 프로세스가 종료되면 평문 버퍼와 임시 파일이 남지 않았는지 검사한다.
- 로그 필터는 `*_KEY`, `*_TOKEN`, `*_SECRET`, `PASSWORD`, 쿠키·Authorization 헤더를 마스킹한다.
- 시크릿 비교 결과는 `같음 N`, `다름 N`, `한쪽에만 있음 N`처럼 개수만 보고한다.
- 내보내기 전에 거래 잠금과 같은 scope의 쓰기 작업이 없는지 확인한다.
- 복원기는 공개 정보만 담고, 복구 암호를 인수·파일·명령 기록에 남기지 않는다.

---

## 부록 F. 기억·훅·잠금

사건 파일의 최소 필드:

```json
{
  "eventId": "UUID",
  "scopeId": "영구 UUID",
  "scopePathAlias": "현재 상대경로",
  "sequence": 1,
  "agent": "claude-or-codex",
  "nativeSessionId": "에이전트별 세션 ID",
  "createdAt": "ISO-8601 UTC",
  "kind": "user-directive|approved-decision|observation|inference|recovery-detected",
  "summary": "시크릿이 없는 짧은 내용",
  "evidence": [],
  "supersedes": []
}
```

- 사건 파일 이름은 UUID라 두 에이전트가 같은 파일을 덮지 않는다.
- reducer는 scope 잠금 아래 다음 sequence를 배정하고, 처리한 event ID를 기록해 두 번 적용하지 않는다.
- 의미가 충돌하면 자동 병합하지 않고 CURRENT에 `decision-needed`로 올린다.
- 훅 실패 때문에 사용자의 본 작업을 잃지 않는다. 사건 기록 실패를 별도 큐에 남긴다.

---

## 부록 G. 도구 잠금표와 어댑터

`_agent/setup/manifests/v7-lock.json`은 아래 내용을 UTF-8로 그대로 만든다. 다운로드한 값으로 기대 hash를 새로 계산해 덮어쓰지 않는다.

```json
{
  "schemaVersion": 7,
  "lockId": "assistant-soul-v7-2026-08-24",
  "generatedAt": "2026-08-24T00:00:00+09:00",
  "platform": "windows-x64",
  "policies": {
    "desktopWrites": "deny-always",
    "thirdPartyUpdates": "exact-only",
    "agentCliUpdates": "official-stable-with-minimum",
    "anthropicDirectProbe": "forbidden",
    "canonicalGenerationPointer": "_agent/setup/active-generation.json",
    "freshProjectRootMarker": "soul-state.json"
  },
  "externalWrites": [
    {
      "owner": "winget-and-os-installers",
      "purpose": "Install required native applications",
      "allowedRoots": [
        "%ProgramFiles%",
        "%ProgramFiles(x86)%",
        "%LOCALAPPDATA%/Microsoft/WinGet",
        "%LOCALAPPDATA%/Programs",
        "%ProgramData%/Microsoft/WinGet",
        "%WINDIR%/Installer"
      ],
      "allowedRegistry": [
        "HKCU/Environment",
        "HKCU/Software/Microsoft/Windows/CurrentVersion/Uninstall",
        "HKLM/Software/Microsoft/Windows/CurrentVersion/Uninstall"
      ]
    },
    {
      "owner": "agent-home-pointers",
      "purpose": "Make direct CLI launches resolve to the portable homes",
      "allowedRoots": ["%USERPROFILE%"],
      "allowedRegistry": ["HKCU/Environment"]
    }
  ],
  "foundations": [
    {"id":"powershell","policy":"windows-inbox","minimumVersion":"5.1","verify":["$PSVersionTable.PSVersion"]},
    {"id":"winget","packageId":"Microsoft.AppInstaller","version":"1.29.290","policy":"reuse-or-official-repair"},
    {"id":"git","packageId":"Git.Git","version":"2.54.0.windows.1","policy":"exact-winget"},
    {"id":"node","packageId":"OpenJS.NodeJS.LTS","version":"24.17.0","policy":"exact-winget"},
    {"id":"python","packageId":"Python.Python.3.12","version":"3.12.10","policy":"exact-winget"},
    {
      "id":"uv",
      "version":"0.11.21",
      "source":"https://files.pythonhosted.org/packages/3d/51/e682e060813424467f14ae964dd7022f8fc537fea5803b5aab0ba1eca9cc/uv-0.11.21-py3-none-win_amd64.whl",
        "sha256":"d956ba9470d5267cc0ea3d7572cac3bf045bc78adad5b031b5558c6df13d2e19",
        "license":"Apache-2.0 OR MIT",
        "canonicalRelativePath":"_agent/shared/tools/uv/0.11.21"
    },
    {
      "id":"age",
      "version":"1.3.1",
      "source":"https://github.com/FiloSottile/age/releases/download/v1.3.1/age-v1.3.1-windows-amd64.zip",
      "sha256":"c56e8ce22f7e80cb85ad946cc82d198767b056366201d3e1a2b93d865be38154",
      "license":"BSD-3-Clause",
      "canonicalRelativePath":"_agent/shared/tools/age/1.3.1"
    },
    {
      "id":"claude-code",
      "channel":"official-stable",
      "minimumVersion":"2.1.241",
      "install":"official-native-installer",
      "recordObservedBinaryHash":true
    },
    {
      "id":"codex-cli",
      "channel":"official-stable",
      "minimumVersion":"0.149.0",
      "fallbackPackage":"@openai/codex@0.149.0",
        "fallbackIntegrity":"sha512-i4dryj2Y1j+00Mb5n+0n71EYnTK9/KDc2cdFo/dXD0d1oTog2bhUssKDEIOnKmnEf51P0Z/HJTWvTKw/UHyOvQ==",
        "fallbackCanonicalRelativePath":"_agent/shared/tools/codex/0.149.0",
        "recordObservedBinaryHash":true
    }
  ],
  "pythonRuntimes": [
    {
      "id": "document-mcp",
      "pythonVersion": "3.12",
      "requirementsInRelativePath": "manifests/python-locks/document-mcp/requirements.in",
      "requirementsInSha256": "1476fb7cc8e73ce4fae2701c7a308d17c623c0d9eca80c4dcbaa0eaa28d81639",
      "requirementsLockRelativePath": "manifests/python-locks/document-mcp/requirements.lock",
      "requirementsLockSha256": "a2085c24af30b2b2032764f6eb87bfc4aa261e710e433c3f7ca461b4457a228f",
      "wheelhouseRelativePath": "_agent/shared/tools/python-wheelhouse/document-mcp-v7",
      "runtimeRelativePath": "_agent/runtime/hosts/<host>/venvs/document-mcp-v7",
      "expectedPackageCount": 43,
      "installPolicy": "offline-hash-locked-wheelhouse"
    }
  ],
  "extensions": [
    {
      "id":"superpowers",
      "version":"6.3.0",
      "source":"https://github.com/obra/superpowers.git",
      "tagObject":"86babb696875227929e85420f287d6309374b93f",
      "commit":"b36e0829c6d0140e93cfef2ca599b1b07d4a7797",
      "expectedSkillCount":14,
      "canonicalRelativePath":"_agent/shared/skills/superpowers/v6.3.0",
      "license":"MIT",
      "env":{"SUPERPOWERS_DISABLE_TELEMETRY":"1"},
      "claudeAdapter":{"type":"local-plugin-marketplace","scope":"user","plugin":"superpowers"},
      "codexAdapter":{"type":"local-skills","reportName":"Superpowers skill set"},
      "verify":["resolved-paths","tree-hash","skill-count","no-shadow-5.1.3"]
    },
    {
      "id":"self-improve",
      "version":"0.1.0",
      "source":"https://github.com/Feynman520/d06-p01-self-improve.git",
      "commit":"6e761b763710b780128de144a79fcb37f37ed8b6",
      "canonicalRelativePath":"_agent/shared/tools/self-improve/0.1.0",
      "license":"MIT",
      "entry":"server/index.js",
      "claudeAdapter":{"type":"local-plugin-with-mcp","scope":"user"},
      "codexAdapter":{"type":"stdio-mcp","command":"node","args":["<canonical>/server/index.js"]},
      "env":{"SELF_IMPROVE_DIR":"_agent/shared/self-improvement"},
      "verify":["mcp-initialize","tools-list-4"]
    },
    {
      "id":"playwright-mcp",
      "version":"0.0.79",
      "package":"@playwright/mcp@0.0.79",
      "source":"https://registry.npmjs.org/@playwright/mcp/-/mcp-0.0.79.tgz",
      "integrity":"sha512-VpqD4a3vFyGQMY9sh3UJiO6wjcurggkljKfAyCHL0QWGY5m6Ehr3MNsAAHPDHO//n13g0PCjpHatAOiulrqdZQ==",
      "npmPackageJsonRelativePath":"manifests/npm-locks/playwright-mcp/package.json",
      "npmPackageJsonSha256":"fa2d7833c338aa21877bb5e774d56961cff851b778959a8729a9de66506c3210",
      "npmLockRelativePath":"manifests/npm-locks/playwright-mcp/package-lock.json",
      "npmLockSha256":"f8511018d48f23b36084a9134d6fc70e2b23cca324a3d4ba01353c59135121bd",
      "canonicalRelativePath":"_agent/shared/tools/npm/playwright-mcp/0.0.79",
      "license":"Apache-2.0",
      "entry":"node_modules/@playwright/mcp/cli.js",
      "claudeAdapter":{"type":"stdio-mcp","name":"playwright"},
      "codexAdapter":{"type":"stdio-mcp","name":"playwright"},
      "verify":["mcp-initialize","public-local-fixture"]
    },
    {
      "id":"k-skill",
      "version":"0.4.3",
      "package":"@nomadamas/k-skill@0.4.3",
      "source":"https://registry.npmjs.org/@nomadamas/k-skill/-/k-skill-0.4.3.tgz",
      "integrity":"sha512-YyG5nK5a3ljShzZ7NiyTSAZ7rbvX3chXFur/H7CylHbw8upX+gic3miB/CiJRryqbWUAIY86i7LDNPKhBdFYSA==",
      "npmPackageJsonRelativePath":"manifests/npm-locks/k-skill/package.json",
      "npmPackageJsonSha256":"c61259537ca057223c9ff9ec4921fd8f6e155f3bca7ad211934967e790070eac",
      "npmLockRelativePath":"manifests/npm-locks/k-skill/package-lock.json",
      "npmLockSha256":"97c8c0a83259db51f22ebb3839590296b6de915ab0b86a71d96efa76dc3f6c65",
      "skillSource":"https://github.com/NomaDamas/k-skill.git",
      "skillSourceCommit":"e6a39968e5dd76b6130f26e3ccc58a12d5e6811c",
      "skillSubdir":".",
      "expectedSkillCount":118,
      "canonicalRelativePath":"_agent/shared/skills/k-skill/v0.4.3",
      "license":"MIT",
      "claudeAdapter":{"type":"local-skills-links"},
      "codexAdapter":{"type":"local-skills-links"},
      "verify":["skill-count","resolved-paths","tree-hash"]
    },
    {
      "id":"frontend-design",
      "source":"https://github.com/anthropics/claude-plugins-official.git",
      "commit":"340e33aef211d95769d252324854497af871dafe",
      "canonicalRelativePath":"_agent/shared/tools/claude/frontend-design/340e33a",
      "license":"Apache-2.0",
      "claudeAdapter":{"type":"local-plugin-marketplace","scope":"user"},
      "verify":["plugin-resolved-path","skill-load"]
    },
    {
      "id":"insane-search",
      "version":"0.14.1",
      "source":"https://github.com/fivetaku/insane-search.git",
      "commit":"09cac571545f88e56dce237f02ffe89b923f1bd4",
      "canonicalRelativePath":"_agent/shared/tools/claude/insane-search/0.14.1",
      "license":"MIT",
      "claudeAdapter":{"type":"local-plugin-marketplace","scope":"user"},
      "verify":["plugin-resolved-path","local-fixture-search"]
    },
    {
      "id":"ui-ux-pro-max",
      "version":"2.15.0",
      "package":"ui-ux-pro-max-cli@2.15.0",
      "source":"https://registry.npmjs.org/ui-ux-pro-max-cli/-/ui-ux-pro-max-cli-2.15.0.tgz",
      "integrity":"sha512-D0J/C40xrzzi5si6ZLtRGbEE5v3QjL7d4wJNnasmP3yfDSrGiuqVCdwQiqCNnIkbqOuVoA/uonR2o1WKXh3urw==",
      "npmPackageJsonRelativePath":"manifests/npm-locks/ui-ux-pro-max/package.json",
      "npmPackageJsonSha256":"702139e69a85ed8b79f6116eb2761299d916edfa6a151815f360524996d7b19c",
      "npmLockRelativePath":"manifests/npm-locks/ui-ux-pro-max/package-lock.json",
      "npmLockSha256":"04901e8aa2155ae4cafc01881a74276fb17032746ea9db02ad86d0f0675e9aa0",
      "canonicalRelativePath":"_agent/shared/tools/npm/ui-ux-pro-max/2.15.0",
      "license":"MIT CLI metadata; bundled skill assets state CC-BY-NC-4.0 in package README",
      "entry":"node_modules/ui-ux-pro-max-cli/dist/index.js",
      "codexAdapter":{"type":"cli-generate-skill","args":["init","--ai","codex","--offline"]},
      "verify":["resolved-path","skill-load"]
    },
    {
      "id":"hwp-automation","source":"https://github.com/Feynman520/d01-p01-hwp-form-automation-mcp.git","commit":"825f8a13dba0876f4f8e81222c1e35155bc68e8e","canonicalRelativePath":"_agent/shared/tools/document-mcp/hwp/825f8a1","license":"MIT","entry":"server.py","requires":["Hangul Office"],"adapters":["claude-stdio-mcp","codex-stdio-mcp"],"verify":["mcp-initialize"]},
    {
      "id":"excel-automation","source":"https://github.com/Feynman520/d01-p02-excel-engine-mcp.git","commit":"4684bb17a8d1f160dfe7b18e2a454ecb947da74e","canonicalRelativePath":"_agent/shared/tools/document-mcp/excel/4684bb1","license":"MIT","entry":"server.py","requires":["Microsoft Excel"],"adapters":["claude-stdio-mcp","codex-stdio-mcp"],"verify":["mcp-initialize"]},
    {
      "id":"ppt-automation","source":"https://github.com/Feynman520/d01-p03-ppt-engine-mcp.git","commit":"32ec4d80c2f3ffd10e5017583c57297b8e6a9041","canonicalRelativePath":"_agent/shared/tools/document-mcp/ppt/32ec4d8","license":"MIT","entry":"server.py","requires":["Microsoft PowerPoint"],"adapters":["claude-stdio-mcp","codex-stdio-mcp"],"verify":["mcp-initialize"]},
    {
      "id":"word-automation","source":"https://github.com/Feynman520/d01-p04-word-engine-mcp.git","commit":"e8fe5990cfc9caa9a75276cc73ae409064154684","canonicalRelativePath":"_agent/shared/tools/document-mcp/word/e8fe599","license":"MIT","entry":"server.py","requires":["Microsoft Word"],"adapters":["claude-stdio-mcp","codex-stdio-mcp"],"verify":["mcp-initialize"]},
    {
      "id":"pdf-automation","source":"https://github.com/Feynman520/d01-p05-pdf-engine-mcp.git","commit":"b8acf47b4088aeed14983fac5ca1452a72fb5559","canonicalRelativePath":"_agent/shared/tools/document-mcp/pdf/b8acf47","license":"MIT","entry":"server.py","requires":[],"adapters":["claude-stdio-mcp","codex-stdio-mcp"],"verify":["mcp-initialize"]}
  ],
  "excluded": [
    {"id":"openai-templates","action":"do-not-install"},
    {"id":"document-skills","action":"preserve-bytes-disable-adapter"}
  ]
}
```

설치기가 새 버전을 발견해도 자동 승격하지 않는다. 새 가이드나 검증된 잠금표가 나온 뒤 별도 거래로 올린다.

---

## 부록 H. 내장 실행 엔진과 소환기

이 가이드는 설명만 하고 구현을 즉석에서 다시 짜게 두지 않는다. 각 `FILE-BEGIN`에는 경로·바이트 수·두 지문이 JSON으로 적혀 있고, 바로 아래 `base64` 블록에는 **원본 파일 바이트를 글자로 안전하게 옮긴 인코딩(base64, 이진 데이터를 영문자·숫자로 표현하는 방식)**이 들어 있다. 공백과 줄바꿈을 제거해 base64를 해독한 뒤 `size`와 `runtimeSha256`을 먼저 확인하고, UTF-8 BOM(파일 맨 앞의 문자 인코딩 표지)을 제거하고 줄바꿈을 LF로 통일한 값으로 `normalizedSha256`도 확인한다. 해독된 바이트를 줄바꿈 변환 없이 그대로 표시된 상대경로에 저장하며, 하나라도 다르면 실행하지 않는다.

v7 기반 내장 원본은 PowerShell `.ps1`·`.psm1`이 **UTF-8 BOM + CRLF**, JSON·Markdown·CMD·TOML·`requirements.in`·`requirements.lock`이 **UTF-8 no BOM + CRLF**다. v8 Python·명세·화면 등 추가 원본은 각 블록의 실제 바이트와 지문이 기준이다. 줄바꿈을 임의로 바꾸지 않는다. 이 형식은 사람이 다시 타이핑하라는 뜻이 아니라, 해독한 원본 바이트가 맞는지 검사하는 추가 계약이다.

- 추출 대상은 확정된 영혼 루트 아래뿐이다. 가이드가 바탕화면에 있어도 바탕화면에 추출하지 않는다.
- `소환하기.cmd`는 `%~dp0` 외의 루트 추론을 하지 않는다.
- PowerShell 실행기는 `$PSScriptRoot`, Python 추가 도구는 자기 파일 위치·검증된 설치 루트로 영혼을 찾는다.
- `%CD%`, 현재 터미널 위치, 특정 사용자 이름, 특정 영혼 이름을 하드코딩하지 않는다.
- 기본 실행은 마지막 범위·마지막 에이전트의 정확한 세션을 이어 간다. 선택 메뉴는 `--menu`를 명시한 경우에만 연다.
- pending generation이 있으면 원본 준비 → 안전한 finalizer → 어댑터 적용·검사 → finalizer 재확인 순서를 자동 실행하고, `machineReady=true` 전에는 에이전트를 열지 않는다.
- 사용자가 직접 해야 하는 단계가 나타나면 한 번에 하나만 설명하고, 끝나면 자동 검사를 다시 시작한다.
- 온톨로지 설치 뒤 구조가 바뀌면 카드 확인 → 그래프 컴파일 → 검증 → 두 화면 생성 순서로 갱신한다. 지도 HTML 손편집은 금지한다.

### H-1. 파일 추출 순서

**먼저 한 번만 하는 추출기 준비.** 확정된 영혼 루트 아래 `_agent/setup/extract-guide-v8.py`의 `FILE-BEGIN` 블록 하나를 읽는다. base64를 해독하고 `size`, `runtimeSha256`, `normalizedSha256`을 모두 대조한 뒤 표시된 경로에 원본 바이트를 쓴다. 이 Python 추출기는 아래 나머지 파일을 안전하게 꺼내는 도구다. 같은 경로의 기존 파일이 다르면 덮지 않고 충돌을 보고한다. Python이 없다면 고정 기준의 설치 상태부터 확인·준비하며, 이 추출기를 Python 없이 실행할 수 있다고 말하지 않는다.

그 다음 가이드 전체 검증을 수행한다. `<가이드 경로>`는 실제 받은 Markdown 파일이고 `C:\NOVA`는 확정한 영혼 루트로 바꾼다. 아래 값은 실행 예시다.

```powershell
python _agent/setup/extract-guide-v8.py --guide "<가이드 경로>" --root "C:\NOVA" --component ontology --verify-only
```

추출기는 **선택하지 않은 부품까지 가이드 전체 블록의 지문을 먼저 확인**하고, 검증이 끝나야 선택한 부품을 쓴다. 기존의 다른 파일은 덮어쓰지 않는다.

| 설치 상황 | 추출 인수 | 다음 순서 |
|---|---|---|
| 아직 상태파일을 만들지 않은 새 영혼 | `--component all` | v7 기반 설치 → v8 추가 설치 |
| 기존 영혼·온톨로지 갱신·같은 영혼 복원 | `--component ontology` | v7 기반 보존 → v8 추가 설치 또는 기존 온톨로지 운영 검사 |

**새 영혼은** 앞에서 최소 상태파일을 만들기 전에 `--component all`로 전체 부품부터 추출한다. 이후 2-1절의 최소 상태파일과 구조 결정을 진행한다. 초기화된 `soul-state.json`이 있는 루트에 전체 추출을 시도하면 거부된다. 처음 한 파일을 준비하는 예외를 제외하면 전체 블록 검증 전 설치 파일을 나누어 쓰지 않는다.

```powershell
python _agent/setup/extract-guide-v8.py --guide "<가이드 경로>" --root "C:\NOVA" --component all
```

1. 전체 추출 뒤 v7 기반 PowerShell 구문과 원본 지문을 확인한다.
2. Windows PowerShell 5.1로 `_agent/setup/bootstrap-v7.ps1 -SourceEdition "Claude"`을 실행한다. `sourceGuide.edition`은 현재 실행판, version/date는 v7 엔진 원형을 유지한다.
3. bootstrap이 루트 `소환하기.cmd`를 마지막에 만든다. 기존 동명 파일이 다르면 덮어쓰지 않는다. 실행 중인 에이전트의 자연 종료·finalize가 필요하면 그 절차를 먼저 마친다.
4. v7 기반 설치 뒤 6-5절대로 `install-ontology-v8.py`의 계획을 읽고 `--apply`를 실행한다. 카드·그래프·검증·두 화면까지 마친다.

**기존 영혼은** 아래 추가 부품만 추출한다. 에이전트 홈·설정·세션을 바꾸는 v7 파일을 다시 꺼내지 않는다.

```powershell
python _agent/setup/extract-guide-v8.py --guide "<가이드 경로>" --root "C:\NOVA" --component ontology
python _agent/setup/install-ontology-v8.py
python _agent/setup/install-ontology-v8.py --apply
python -m pip install -r _ontology/requirements.txt   # 결과가 existing-ontology-preserved가 아닐 때만(files-installed 또는 files-installed-root-merge-pending)
```

`existing-ontology-preserved` 결과는 기존 도구 묶음을 그대로 보존했다는 뜻이다. 이때는 새 파일을 놓지 않았으므로 `_ontology/requirements.txt`가 없고, 마지막 pip 줄은 건너뛴다(기존 도구의 의존성은 기존 방식대로 관리한다). `files-installed`와 `files-installed-root-merge-pending`은 둘 다 파일을 놓았으므로 pip 줄을 실행한다. 그 경우 6-5~9절에 따라 **기존 도구**로 상태를 점검하고 필요한 지침만 검토한다. 추출 단계에서 live agent home·settings·session DB·WAL을 건드리지 않는다. v7 기반 수리가 따로 필요한 기존 영혼은 보존된 기존 엔진의 수리 절차를 이용하며, v8 추가 설치를 그 수리와 혼동하지 않는다.

### H-2. 내장 파일 원문

아래 파일 블록들이 이 가이드의 실행 가능한 기준 원본이다. 눈에 보이는 base64 글자 자체가 원문은 아니며, 해독하고 두 지문을 통과한 바이트가 원문이다.

<!-- V7-FILE-BLOCKS-BEGIN -->

<!-- FILE-BEGIN {"path":"_agent/setup/AGENTS.md","encoding":"base64","size":180,"runtimeSha256":"aef9cdd95ad962d06ced7b5a8dabbb4077bd076a5e28bd4e20a1e4343ca657ee","normalizedSha256":"62b87dd72f94f951773c9aeb1842e6082951adf66bcd9fc61a048be4efecc077"} -->
```base64
IyDshKTsuZjCt+ydtOyghCDsg4Htg5wNCg0K7J20IO2PtOuNlOuKlCDsmIHtmLwg7ISk7LmYwrfs
l4XrjbDsnbTtirjsnZgg7Yq4656c7J6t7IWYIOyDge2DnOyZgCDrs7Xqtawg6riw66Gd66eMIOq0
gOumrO2VnOuLpC4NCg0KPCEtLSDsg4HsnIQgQUdFTlRTLm1kIOq3nOy5mSDsnqzshJzsiKAg6riI
7KeAIC0tPg0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/apply-adapters-v7.ps1","encoding":"base64","size":143430,"runtimeSha256":"549498bb881576456bdabd8f1486021f24423898ffdf0065e47eecae1f4f1388","normalizedSha256":"58dc094e2a80e50ed01d15ffe7eacb3a4df2f380d9e2f9c80f8ae43bc9b2361a"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIEFwcGxpZXMgb25l
IGdlbmVyYXRpb24ncyBwaW5uZWQgQ2xhdWRlL0NvZGV4IGFkYXB0ZXJzIGFuZCB3cml0ZXMgc21v
a2UgZXZpZGVuY2UuDQoNCi5ERVNDUklQVElPTg0KICBUaGlzIHNjcmlwdCBydW5zIG9ubHkgYWZ0
ZXIgYm90aCBoYXJuZXNzZXMgc3RvcC4gSXQgdmFsaWRhdGVzIGV2ZXJ5IGNhbm9uaWNhbA0KICBz
b3VyY2UgYWdhaW5zdCBpdHMgc291cmNlLXByb29mIG9yIGNsZWFuIEdpdCBjb21taXQgYmVmb3Jl
IGFueSBhZGFwdGVyIHdyaXRlLg0KICBNaXNzaW5nIHNvdXJjZXMgcmV0dXJuIHBlbmRpbmctc291
cmNlIHdpdGggemVybyBhZGFwdGVyIHdyaXRlcy4gSXQgcHJlc2VydmVzDQogIHVucmVsYXRlZCBz
dGF0ZSwgcmVwbGFjZXMgb25seSB0aGUgY2xvc2VkIG1hbmFnZWQgTUNQIG5hbWUgc2V0IGFmdGVy
IGENCiAgdmVyaWZpZWQgZnVsbC1ieXRlIGJhY2t1cCwgcmVmdXNlcyBhbWJpZ3VpdHksIHVzZXMg
b25seSBsb2NhbCBwbHVnaW4vY29uZmlnDQogIG9wZXJhdGlvbnMsIGFuZCBuZXZlciBzZW5kcyBh
IG1vZGVsIHJlcXVlc3Qgb3IgY2hhbmdlcyBwcm94eS9iYXNlLVVSTCB2YWx1ZXMuDQojPg0KW0Nt
ZGxldEJpbmRpbmcoKV0NCnBhcmFtKA0KICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0NCiAgICBb
VmFsaWRhdGVQYXR0ZXJuKCdeW0EtWmEtejAtOV1bQS1aYS16MC05Ll8tXXswLDEyN30kJyldDQog
ICAgW3N0cmluZ10kR2VuZXJhdGlvbklkLA0KDQogICAgW3N3aXRjaF0kUGxhbk9ubHksDQoNCiAg
ICBbUGFyYW1ldGVyKERvbnRTaG93KV1bc3RyaW5nXSRUZXN0Um9vdCwNCiAgICBbUGFyYW1ldGVy
KERvbnRTaG93KV1bc3dpdGNoXSRUZXN0Tm9MaXZlQWdlbnRzLA0KICAgIFtQYXJhbWV0ZXIoRG9u
dFNob3cpXVtzdHJpbmddJFRlc3RFeHRlcm5hbFByb2ZpbGVSb290LA0KICAgIFtQYXJhbWV0ZXIo
RG9udFNob3cpXVtoYXNodGFibGVdJFRlc3RDYXBhYmlsaXR5U3RhdGUsDQogICAgW1BhcmFtZXRl
cihEb250U2hvdyldW3N3aXRjaF0kVGVzdE5hdHVyYWxIb21lTWlncmF0aW9uT25seSwNCiAgICBb
UGFyYW1ldGVyKERvbnRTaG93KV0NCiAgICBbVmFsaWRhdGVTZXQoJ25vbmUnLCAnYWZ0ZXItcmVu
YW1lLWJlZm9yZS1qdW5jdGlvbicsICdqdW5jdGlvbi1jcmVhdGUnLCAnanVuY3Rpb24tdmVyaWZ5
JyldDQogICAgW3N0cmluZ10kVGVzdEhvbWVNaWdyYXRpb25GYWlsdXJlUG9pbnQgPSAnbm9uZScN
CikNCg0KU2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0DQokRXJyb3JBY3Rpb25QcmVmZXJl
bmNlID0gJ1N0b3AnDQokbW9kdWxlUGF0aCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdlbmdp
bmVcU291bC5FbmdpbmUucHNtMScNCkltcG9ydC1Nb2R1bGUgLU5hbWUgJG1vZHVsZVBhdGggLUZv
cmNlIC1FcnJvckFjdGlvbiBTdG9wDQokc2NyaXB0OlV0ZjhOb0JvbSA9IE5ldy1PYmplY3QgVGV4
dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0KJHNjcmlwdDpNYW5hZ2VkTWNwTmFtZXMgPSBAKA0KICAg
ICdod3AtYXV0b21hdGlvbicsICdleGNlbC1hdXRvbWF0aW9uJywgJ3BwdC1hdXRvbWF0aW9uJywg
J3dvcmQtYXV0b21hdGlvbicsDQogICAgJ3BkZi1hdXRvbWF0aW9uJywgJ3NlbGYtaW1wcm92ZScs
ICdwbGF5d3JpZ2h0Jw0KKQ0KDQpmdW5jdGlvbiBUZXN0LVBhdGhCZWxvdyB7DQogICAgcGFyYW0o
W3N0cmluZ10kUGF0aCwgW3N0cmluZ10kUGFyZW50LCBbc3dpdGNoXSRBbGxvd1BhcmVudCkNCiAg
ICAkZnVsbFBhdGggPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQYXRoKS5UcmltRW5kKCdcJywg
Jy8nKQ0KICAgICRmdWxsUGFyZW50ID0gW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgkUGFyZW50KS5U
cmltRW5kKCdcJywgJy8nKQ0KICAgIGlmICgkZnVsbFBhdGguRXF1YWxzKCRmdWxsUGFyZW50LCBb
U3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgeyByZXR1cm4gW2Jvb2xdJEFs
bG93UGFyZW50IH0NCiAgICByZXR1cm4gJGZ1bGxQYXRoLlN0YXJ0c1dpdGgoJGZ1bGxQYXJlbnQg
KyBbSU8uUGF0aF06OkRpcmVjdG9yeVNlcGFyYXRvckNoYXIsIFtTdHJpbmdDb21wYXJpc29uXTo6
T3JkaW5hbElnbm9yZUNhc2UpDQp9DQoNCmZ1bmN0aW9uIFJlc29sdmUtQWRhcHRlclJvb3Qgew0K
ICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsNCiAgICAg
ICAgJHJvb3QgPSBHZXQtU291bFJvb3QNCiAgICAgICAgW3ZvaWRdKEFzc2VydC1Tb3VsUm9vdCAt
UGF0aCAkcm9vdCAtUmVxdWlyZUluaXRpYWxpemVkKQ0KICAgICAgICByZXR1cm4gJHJvb3QNCiAg
ICB9DQogICAgJHJvb3QgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRUZXN0Um9vdCkuVHJpbUVu
ZCgnXCcsICcvJykNCiAgICAkZml4dHVyZUJvdW5kYXJ5ID0gSm9pbi1QYXRoIChHZXQtU291bEVu
Z2luZUxheW91dCkuU2V0dXBEaXJlY3RvcnkgJ3Rlc3RzXGZpeHR1cmVzJw0KICAgIGlmICgtbm90
IChUZXN0LVBhdGhCZWxvdyAtUGF0aCAkcm9vdCAtUGFyZW50ICRmaXh0dXJlQm91bmRhcnkpKSB7
IHRocm93ICdUZXN0Um9vdCBpcyBwZXJtaXR0ZWQgb25seSBiZWxvdyBzZXR1cC90ZXN0cy9maXh0
dXJlcy4nIH0NCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHJvb3QpDQog
ICAgcmV0dXJuICRyb290DQp9DQoNCmZ1bmN0aW9uIEdldC1Nb2R1bGVBcmd1bWVudHMgew0KICAg
IHBhcmFtKFtzdHJpbmddJFN0YXRlRGlyZWN0b3J5KQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsgcmV0dXJuIEB7fSB9DQogICAgcmV0dXJuIEB7IFRl
c3RTZXR1cERpcmVjdG9yeSA9ICRTdGF0ZURpcmVjdG9yeSB9DQp9DQoNCmZ1bmN0aW9uIEdldC1P
cHRpb25hbFByb3BlcnR5VmFsdWUgew0KICAgIHBhcmFtKCRPYmplY3QsIFtzdHJpbmddJE5hbWUp
DQogICAgJHByb3BlcnR5ID0gJE9iamVjdC5QU09iamVjdC5Qcm9wZXJ0aWVzWyROYW1lXQ0KICAg
IGlmICgkbnVsbCAtZXEgJHByb3BlcnR5KSB7IHJldHVybiAkbnVsbCB9DQogICAgcmV0dXJuICRw
cm9wZXJ0eS5WYWx1ZQ0KfQ0KDQpmdW5jdGlvbiBHZXQtVGV4dFNoYTI1NiB7DQogICAgcGFyYW0o
W0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRUZXh0KQ0KICAgICRhbGdvcml0aG0gPSBbU2Vj
dXJpdHkuQ3J5cHRvZ3JhcGh5LlNIQTI1Nl06OkNyZWF0ZSgpDQogICAgdHJ5IHsgcmV0dXJuIChb
Qml0Q29udmVydGVyXTo6VG9TdHJpbmcoJGFsZ29yaXRobS5Db21wdXRlSGFzaChbVGV4dC5FbmNv
ZGluZ106OlVURjguR2V0Qnl0ZXMoJFRleHQpKSkpLlJlcGxhY2UoJy0nLCAnJykuVG9Mb3dlcklu
dmFyaWFudCgpIH0NCiAgICBmaW5hbGx5IHsgJGFsZ29yaXRobS5EaXNwb3NlKCkgfQ0KfQ0KDQpm
dW5jdGlvbiBJbml0aWFsaXplLUFkYXB0ZXJEaXJlY3Rvcnkgew0KICAgIHBhcmFtKFtzdHJpbmdd
JFBhdGgsIFtzdHJpbmddJFRpdGxlKQ0KICAgIFt2b2lkXShBc3NlcnQtU291bE93bmVkUGF0aCAt
UGF0aCAkUGF0aCkNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCkp
IHsgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkUGF0aCkgfQ0KICAgICRp
dGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3Rv
cA0KICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpS
ZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICJNYW5hZ2VkIGFkYXB0ZXIgZGlyZWN0b3J5IGlz
IGEgcmVwYXJzZSBwb2ludDogJFBhdGgiIH0NCiAgICAkYWdlbnRzUGF0aCA9IEpvaW4tUGF0aCAk
UGF0aCAnQUdFTlRTLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRh
Z2VudHNQYXRoKSkgew0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGgg
JGFnZW50c1BhdGggLVRleHQgIiMgJFRpdGxlYHJgbmByYG5UaGlzIGRpcmVjdG9yeSBjb250YWlu
cyBzZXR1cC1vd25lZCBhZGFwdGVyIHN0YXRlIG9ubHkuYHJgbmByYG48IS0tIERvIG5vdCByZXN0
YXRlIGluaGVyaXRlZCBBR0VOVFMubWQgcnVsZXMuIC0tPmByYG4iKQ0KICAgIH0NCiAgICAkY2xh
dWRlUGF0aCA9IEpvaW4tUGF0aCAkUGF0aCAnQ0xBVURFLm1kJw0KICAgIGlmICgtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVQYXRoKSkgeyBbdm9pZF0oV3JpdGUtU291bFV0ZjhB
dG9taWMgLVBhdGggJGNsYXVkZVBhdGggLVRleHQgIkBBR0VOVFMubWRgcmBuIikgfQ0KICAgIHJl
dHVybiAkUGF0aA0KfQ0KDQpmdW5jdGlvbiBJbml0aWFsaXplLU5hdGl2ZUFnZW50RGlyZWN0b3J5
IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgIFt2b2lkXShBc3NlcnQtU291bE93bmVk
UGF0aCAtUGF0aCAkUGF0aCkNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
UGF0aCkpIHsgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkUGF0aCkgfQ0K
ICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rp
b24gU3RvcA0KICAgIGlmICgtbm90ICRpdGVtLlBTSXNDb250YWluZXIgLW9yICgkaXRlbS5BdHRy
aWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsN
CiAgICAgICAgdGhyb3cgIk5hdGl2ZSBhZ2VudCBob21lIG11c3QgYmUgYSByZWFsIGRpcmVjdG9y
eTogJFBhdGgiDQogICAgfQ0KICAgICMgQUdFTlRTLm1kIGFuZCBDTEFVREUubWQgYXJlIGludGVu
dGlvbmFsbHkgbm90IHNjYWZmb2xkZWQgaGVyZS4gTmF0aXZlDQogICAgIyBoYXJuZXNzIGhvbWVz
IGFyZSBjb25maWd1cmF0aW9uL3N0YXRlIHJvb3RzLCBub3Qgd29ya3NwYWNlIGluc3RydWN0aW9u
IHJvb3RzLg0KICAgIHJldHVybiAkUGF0aA0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTm9MaXZlQWdl
bnQgew0KICAgIGlmICgkVGVzdE5vTGl2ZUFnZW50cykgew0KICAgICAgICBpZiAoW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7IHRocm93ICdUZXN0Tm9MaXZlQWdlbnRz
IGlzIGZvcmJpZGRlbiBvdXRzaWRlIGEgZml4dHVyZSBzb3VsLicgfQ0KICAgICAgICByZXR1cm4N
CiAgICB9DQogICAgJGxpdmUgPSBAKEdldC1MaXZlU291bEFnZW50UHJvY2VzcykNCiAgICBpZiAo
JGxpdmUuQ291bnQgLWd0IDApIHsgdGhyb3cgJ0FkYXB0ZXIgYXBwbGljYXRpb24gcmVxdWlyZXMg
emVybyBsaXZlIENsYXVkZS9Db2RleCBwcm9jZXNzZXMuJyB9DQp9DQoNCmZ1bmN0aW9uIEdldC1B
cHBseVZhdWx0UmVhZGluZXNzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290KQ0KICAgIGlmICgt
bm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRlc3RSb290KSkgeyByZXR1cm4gW3Bz
Y3VzdG9tb2JqZWN0XUB7IHJlYWR5ID0gJHRydWU7IHRlc3RPbmx5ID0gJHRydWUgfSB9DQogICAg
JHZhdWx0U2NyaXB0ID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ3NlY3JldHMtdmF1bHQucHMx
Jw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICR2YXVsdFNjcmlwdCAtUGF0
aFR5cGUgTGVhZikpIHsgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyByZWFkeSA9ICRmYWxzZTsg
cmVhc29uID0gJ3ZhdWx0LXNjcmlwdC1taXNzaW5nJyB9IH0NCiAgICAkc3RhdHVzID0gJiAkdmF1
bHRTY3JpcHQgLUFjdGlvbiBTdGF0dXMgLVNvdWxSb290ICRSb290DQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICByZWFkeSA9IFtib29sXSRzdGF0dXMuaW5pdGlhbGl6ZWQg
LWFuZCBbYm9vbF0kc3RhdHVzLmN1cnJlbnRIb3N0RHBhcGkNCiAgICAgICAgcmVhc29uID0gaWYg
KC1ub3QgW2Jvb2xdJHN0YXR1cy5pbml0aWFsaXplZCkgeyAndmF1bHQtbm90LWluaXRpYWxpemVk
JyB9IGVsc2VpZiAoLW5vdCBbYm9vbF0kc3RhdHVzLmN1cnJlbnRIb3N0RHBhcGkpIHsgJ2hvc3Qt
dW5sb2NrLW1pc3NpbmcnIH0gZWxzZSB7ICdyZWFkeScgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24g
R2V0LUFkYXB0ZXJXcml0ZXJHdWFyZFBhdGhzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290KQ0K
ICAgICRwYXRocyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtz
dHJpbmddDQogICAgZm9yZWFjaCAoJHJlbGF0aXZlIGluIEAoDQogICAgICAgICdfYWdlbnRcY2xh
dWRlXHNldHRpbmdzLmpzb24nLCAnX2FnZW50XGNsYXVkZVwuY2xhdWRlLmpzb24nLCAnX2FnZW50
XGNsYXVkZVxoaXN0b3J5Lmpzb25sJywNCiAgICAgICAgJ19hZ2VudFxjb2RleFxjb25maWcudG9t
bCcsICdfYWdlbnRcY29kZXhcLmNvZGV4LWdsb2JhbC1zdGF0ZS5qc29uJywNCiAgICAgICAgJ19h
Z2VudFxjb2RleFxzdGF0ZV81LnNxbGl0ZScsICdfYWdlbnRcY29kZXhcc3RhdGVfNS5zcWxpdGUt
d2FsJywgJ19hZ2VudFxjb2RleFxzdGF0ZV81LnNxbGl0ZS1zaG0nDQogICAgKSkgeyAkcGF0aHMu
QWRkKChKb2luLVBhdGggJFJvb3QgJHJlbGF0aXZlKSkgfQ0KICAgICRjb2RleEhvbWUgPSBKb2lu
LVBhdGggJFJvb3QgJ19hZ2VudFxjb2RleCcNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkY29kZXhIb21lIC1QYXRoVHlwZSBDb250YWluZXIpIHsNCiAgICAgICAgZm9yZWFjaCAoJGZp
bGUgaW4gR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJGNvZGV4SG9tZSAtRmlsdGVyICcqLnNx
bGl0ZSonIC1GaWxlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcCkgeyAkcGF0aHMuQWRkKCRmaWxl
LkZ1bGxOYW1lKSB9DQogICAgfQ0KICAgIHJldHVybiBAKCRwYXRocy5Ub0FycmF5KCkpDQp9DQoN
CmZ1bmN0aW9uIEFzc2VydC1BZGFwdGVyV3JpdGVyRnJlZSB7DQogICAgcGFyYW0oW3N0cmluZ1td
XSRQYXRocykNCiAgICBmb3JlYWNoICgkcGF0aCBpbiBAKCRQYXRocyB8IFNvcnQtT2JqZWN0IC1V
bmlxdWUpKSB7DQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXRo
IC1QYXRoVHlwZSBMZWFmKSkgeyBjb250aW51ZSB9DQogICAgICAgICRpdGVtID0gR2V0LUl0ZW0g
LUxpdGVyYWxQYXRoICRwYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAgICBpZiAo
KCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50
KSAtbmUgMCkgeyB0aHJvdyAiUHJvdGVjdGVkIGFkYXB0ZXIgY29uZmlnL3N0YXRlIHJlcGFyc2Ug
cG9pbnQgYmxvY2tlZDogJHBhdGgiIH0NCiAgICAgICAgJHN0cmVhbSA9ICRudWxsDQogICAgICAg
IHRyeSB7DQogICAgICAgICAgICAkc3RyZWFtID0gTmV3LU9iamVjdCBJTy5GaWxlU3RyZWFtKCRw
YXRoLCBbSU8uRmlsZU1vZGVdOjpPcGVuLCBbSU8uRmlsZUFjY2Vzc106OlJlYWQsIFtJTy5GaWxl
U2hhcmVdOjpOb25lKQ0KICAgICAgICB9IGNhdGNoIFtJTy5JT0V4Y2VwdGlvbl0gew0KICAgICAg
ICAgICAgdGhyb3cgIkEgcHJvdGVjdGVkIGFkYXB0ZXIgY29uZmlnLCBkYXRhYmFzZSwgV0FMLCBv
ciBoaXN0b3J5IGZpbGUgc3RpbGwgaGFzIGEgd3JpdGVyOiAkcGF0aCINCiAgICAgICAgfSBmaW5h
bGx5IHsNCiAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJHN0cmVhbSkgeyAkc3RyZWFtLkRpc3Bv
c2UoKSB9DQogICAgICAgIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Qcm90ZWN0ZWRFbnZp
cm9ubWVudEZpbmdlcnByaW50cyB7DQogICAgJHJlY29yZHMgPSBOZXctT2JqZWN0IFN5c3RlbS5D
b2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRuYW1lIGluIEAo
DQogICAgICAgICdBTlRIUk9QSUNfQkFTRV9VUkwnLCAnQU5USFJPUElDX0FQSV9LRVknLCAnQU5U
SFJPUElDX0FVVEhfVE9LRU4nLA0KICAgICAgICAnSFRUUF9QUk9YWScsICdIVFRQU19QUk9YWScs
ICdBTExfUFJPWFknLCAnTk9fUFJPWFknDQogICAgKSkgew0KICAgICAgICAkdmFsdWUgPSBbRW52
aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCRuYW1lLCAnUHJvY2VzcycpDQogICAg
ICAgICRyZWNvcmRzLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIG5hbWUgPSAk
bmFtZQ0KICAgICAgICAgICAgZXhpc3RzID0gJG51bGwgLW5lICR2YWx1ZQ0KICAgICAgICAgICAg
c2hhMjU2ID0gaWYgKCRudWxsIC1lcSAkdmFsdWUpIHsgJG51bGwgfSBlbHNlIHsgR2V0LVRleHRT
aGEyNTYgLVRleHQgJHZhbHVlIH0NCiAgICAgICAgfSkNCiAgICB9DQogICAgcmV0dXJuIEAoJHJl
Y29yZHMuVG9BcnJheSgpKQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtRmluZ2VycHJpbnRTZXRFcXVh
bCB7DQogICAgcGFyYW0oW29iamVjdFtdXSRCZWZvcmUsIFtvYmplY3RbXV0kQWZ0ZXIsIFtzdHJp
bmddJERlc2NyaXB0aW9uKQ0KICAgICRiZWZvcmVUZXh0ID0gJEJlZm9yZSB8IENvbnZlcnRUby1K
c29uIC1EZXB0aCAxMiAtQ29tcHJlc3MNCiAgICAkYWZ0ZXJUZXh0ID0gJEFmdGVyIHwgQ29udmVy
dFRvLUpzb24gLURlcHRoIDEyIC1Db21wcmVzcw0KICAgIGlmICgkYmVmb3JlVGV4dCAtY25lICRh
ZnRlclRleHQpIHsgdGhyb3cgIiREZXNjcmlwdGlvbiBjaGFuZ2VkIGR1cmluZyBhZGFwdGVyIGFw
cGxpY2F0aW9uLiIgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQtUHJvdGVjdGVkSnNvbkZpbmdlcnByaW50
cyB7DQogICAgcGFyYW0oJE9iamVjdCwgW3N0cmluZ10kUHJlZml4ID0gJycpDQogICAgJHJlY29y
ZHMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0K
ICAgIGlmICgkbnVsbCAtZXEgJE9iamVjdCkgeyByZXR1cm4gQCgpIH0NCiAgICBmb3JlYWNoICgk
cHJvcGVydHkgaW4gQCgkT2JqZWN0LlBTT2JqZWN0LlByb3BlcnRpZXMpKSB7DQogICAgICAgICRw
YXRoID0gaWYgKFtzdHJpbmddOjpJc051bGxPckVtcHR5KCRQcmVmaXgpKSB7ICRwcm9wZXJ0eS5O
YW1lIH0gZWxzZSB7ICIkUHJlZml4LiQoJHByb3BlcnR5Lk5hbWUpIiB9DQogICAgICAgIGlmICgk
cHJvcGVydHkuTmFtZSAtbWF0Y2ggJyg/aSkoYmFzZS4/dXJsfHByb3h5fGFudGhyb3BpYy4qKD86
a2V5fHRva2VufGF1dGgpKScpIHsNCiAgICAgICAgICAgICRzZXJpYWxpemVkID0gJHByb3BlcnR5
LlZhbHVlIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDMyIC1Db21wcmVzcw0KICAgICAgICAgICAg
JHJlY29yZHMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJHBhdGg7IHNoYTI1NiA9IEdl
dC1UZXh0U2hhMjU2IC1UZXh0IChbc3RyaW5nXSRzZXJpYWxpemVkKSB9KQ0KICAgICAgICB9DQog
ICAgICAgICR2YWx1ZSA9ICRwcm9wZXJ0eS5WYWx1ZQ0KICAgICAgICBpZiAoJG51bGwgLW5lICR2
YWx1ZSAtYW5kIC1ub3QgKCR2YWx1ZSAtaXMgW3N0cmluZ10pIC1hbmQgLW5vdCAkdmFsdWUuR2V0
VHlwZSgpLklzVmFsdWVUeXBlKSB7DQogICAgICAgICAgICBpZiAoJHZhbHVlIC1pcyBbU3lzdGVt
LkFycmF5XSkgew0KICAgICAgICAgICAgICAgIGZvciAoJGluZGV4ID0gMDsgJGluZGV4IC1sdCAk
dmFsdWUuQ291bnQ7ICRpbmRleCsrKSB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRy
ZWNvcmQgaW4gQChHZXQtUHJvdGVjdGVkSnNvbkZpbmdlcnByaW50cyAtT2JqZWN0ICR2YWx1ZVsk
aW5kZXhdIC1QcmVmaXggIiRwYXRoWyRpbmRleF0iKSkgeyAkcmVjb3Jkcy5BZGQoJHJlY29yZCkg
fQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAg
ICAgZm9yZWFjaCAoJHJlY29yZCBpbiBAKEdldC1Qcm90ZWN0ZWRKc29uRmluZ2VycHJpbnRzIC1P
YmplY3QgJHZhbHVlIC1QcmVmaXggJHBhdGgpKSB7ICRyZWNvcmRzLkFkZCgkcmVjb3JkKSB9DQog
ICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJHJlY29yZHMgfCBT
b3J0LU9iamVjdCBwYXRoKQ0KfQ0KDQpmdW5jdGlvbiBHZXQtUHJvdGVjdGVkVG9tbEZpbmdlcnBy
aW50cyB7DQogICAgcGFyYW0oW3N0cmluZ1tdXSRMaW5lcykNCiAgICByZXR1cm4gQCgkTGluZXMg
fCBXaGVyZS1PYmplY3QgeyAkXyAtbWF0Y2ggJyg/aSkoYmFzZV91cmx8YmFzZS11cmx8cHJveHl8
YW50aHJvcGljKScgfSB8IEZvckVhY2gtT2JqZWN0IHsNCiAgICAgICAgW3BzY3VzdG9tb2JqZWN0
XUB7IHNoYTI1NiA9IEdldC1UZXh0U2hhMjU2IC1UZXh0ICRfIH0NCiAgICB9KQ0KfQ0KDQpmdW5j
dGlvbiBUZXN0LU1hbmFnZWRNY3BOYW1lIHsNCiAgICBwYXJhbShbc3RyaW5nXSROYW1lKQ0KICAg
IHJldHVybiBAKCRzY3JpcHQ6TWFuYWdlZE1jcE5hbWVzIHwgV2hlcmUtT2JqZWN0IHsgJF8uRXF1
YWxzKCROYW1lLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSB9KS5Db3Vu
dCAtZXEgMQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTWFuYWdlZE1jcERlZmluaXRpb25zIHsNCiAg
ICBwYXJhbShbb2JqZWN0W11dJERlZmluaXRpb25zKQ0KICAgICRzZWVuID0gQHt9DQogICAgZm9y
ZWFjaCAoJGRlZmluaXRpb24gaW4gQCgkRGVmaW5pdGlvbnMpKSB7DQogICAgICAgICRuYW1lID0g
W3N0cmluZ10kZGVmaW5pdGlvbi5uYW1lDQogICAgICAgIGlmICgtbm90IChUZXN0LU1hbmFnZWRN
Y3BOYW1lIC1OYW1lICRuYW1lKSkgeyB0aHJvdyAiVGhlIE1DUCBuYW1lIGlzIG5vdCBpbiB0aGUg
bG9ja2VkIG1hbmFnZWQtbmFtZSBzZXQ6ICRuYW1lIiB9DQogICAgICAgIGlmICgkc2Vlbi5Db250
YWluc0tleSgkbmFtZSkpIHsgdGhyb3cgIkFtYmlndW91cyBkdXBsaWNhdGUgbWFuYWdlZCBNQ1Ag
ZGVmaW5pdGlvbiByZXF1ZXN0ZWQ6ICRuYW1lIiB9DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNO
dWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJGRlZmluaXRpb24uY29tbWFuZCkgLW9yIEAoJGRlZmlu
aXRpb24uYXJncykuQ291bnQgLWx0IDEpIHsNCiAgICAgICAgICAgIHRocm93ICJNYW5hZ2VkIE1D
UCBkZWZpbml0aW9uIGlzIGluY29tcGxldGU6ICRuYW1lIg0KICAgICAgICB9DQogICAgICAgICRz
ZWVuWyRuYW1lXSA9ICR0cnVlDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBCYWNrdXAtQWRhcHRlckNv
bmZpZ0J5dGVzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRCYWNrdXBEaXJl
Y3RvcnksIFtzdHJpbmddJFByZWZpeCwgW3N0cmluZ10kRXh0ZW5zaW9uKQ0KICAgIGlmICgtbm90
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRQYXRoIC1QYXRoVHlwZSBMZWFmKSkgew0KICAgICAg
ICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IG9yaWdpbmFsU2hhMjU2ID0gJG51bGw7IGJhY2t1
cFBhdGggPSAkbnVsbDsgYmFja3VwU2hhMjU2ID0gJG51bGw7IG9yaWdpbmFsTGVuZ3RoID0gMCB9
DQogICAgfQ0KICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRQYXRoIC1Gb3JjZSAt
RXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmls
ZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICJBZGFwdGVyIGNvbmZp
ZyBpcyBhIHJlcGFyc2UgcG9pbnQ6ICRQYXRoIiB9DQogICAgJG9yaWdpbmFsSGFzaCA9IEdldC1T
b3VsU2hhMjU2IC1QYXRoICRQYXRoDQogICAgJGJhY2t1cCA9IEpvaW4tUGF0aCAkQmFja3VwRGly
ZWN0b3J5ICIkUHJlZml4LiRvcmlnaW5hbEhhc2guJEV4dGVuc2lvbiINCiAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmFja3VwIC1QYXRoVHlwZSBMZWFmKSkgeyBbSU8uRmls
ZV06OkNvcHkoJFBhdGgsICRiYWNrdXAsICRmYWxzZSkgfQ0KICAgICRiYWNrdXBIYXNoID0gR2V0
LVNvdWxTaGEyNTYgLVBhdGggJGJhY2t1cA0KICAgICRiYWNrdXBMZW5ndGggPSAoR2V0LUl0ZW0g
LUxpdGVyYWxQYXRoICRiYWNrdXAgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKS5MZW5ndGgNCiAg
ICBpZiAoJGJhY2t1cEhhc2ggLWNuZSAkb3JpZ2luYWxIYXNoIC1vciBbbG9uZ10kYmFja3VwTGVu
Z3RoIC1uZSBbbG9uZ10kaXRlbS5MZW5ndGgpIHsNCiAgICAgICAgdGhyb3cgIkZ1bGwtYnl0ZSBh
ZGFwdGVyIGNvbmZpZyBiYWNrdXAgdmVyaWZpY2F0aW9uIGZhaWxlZDogJFBhdGgiDQogICAgfQ0K
ICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgb3JpZ2luYWxTaGEyNTYgPSAk
b3JpZ2luYWxIYXNoDQogICAgICAgIGJhY2t1cFBhdGggPSAkYmFja3VwDQogICAgICAgIGJhY2t1
cFNoYTI1NiA9ICRiYWNrdXBIYXNoDQogICAgICAgIG9yaWdpbmFsTGVuZ3RoID0gW2xvbmddJGl0
ZW0uTGVuZ3RoDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQtVW5tYW5hZ2VkQ2xhdWRlTWNwRmlu
Z2VycHJpbnRzIHsNCiAgICBwYXJhbSgkU2VydmVycykNCiAgICAkcm93cyA9IE5ldy1PYmplY3Qg
U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yZWFjaCAoJHBy
b3BlcnR5IGluIEAoJFNlcnZlcnMuUFNPYmplY3QuUHJvcGVydGllcykpIHsNCiAgICAgICAgaWYg
KFRlc3QtTWFuYWdlZE1jcE5hbWUgLU5hbWUgJHByb3BlcnR5Lk5hbWUpIHsgY29udGludWUgfQ0K
ICAgICAgICAkc2VyaWFsaXplZCA9ICRwcm9wZXJ0eS5WYWx1ZSB8IENvbnZlcnRUby1Kc29uIC1E
ZXB0aCAzMiAtQ29tcHJlc3MNCiAgICAgICAgJHJvd3MuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBu
YW1lID0gW3N0cmluZ10kcHJvcGVydHkuTmFtZTsgc2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRl
eHQgKFtzdHJpbmddJHNlcmlhbGl6ZWQpIH0pDQogICAgfQ0KICAgIHJldHVybiBAKCRyb3dzIHwg
U29ydC1PYmplY3QgbmFtZSkNCn0NCg0KZnVuY3Rpb24gR2V0LVRvbWxNYW5hZ2VkSGVhZGVyUGF0
dGVybnMgew0KICAgIHBhcmFtKFtzdHJpbmddJE5hbWUpDQogICAgJGVzY2FwZWQgPSBbcmVnZXhd
OjpFc2NhcGUoJE5hbWUpDQogICAgJG5hbWVUb2tlbiA9ICcoPzp7MH18InswfSJ8Jyd7MH0nJykn
IC1mICRlc2NhcGVkDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICBiYXNl
ID0gIig/aW0pXlsgYHRdKlxbWyBgdF0qbWNwX3NlcnZlcnNbIGB0XSpcLlsgYHRdKiRuYW1lVG9r
ZW5bIGB0XSpcXVsgYHRdKig/OiMuKik/XHI/JCINCiAgICAgICAgZW52ID0gIig/aW0pXlsgYHRd
KlxbWyBgdF0qbWNwX3NlcnZlcnNbIGB0XSpcLlsgYHRdKiRuYW1lVG9rZW5bIGB0XSpcLlsgYHRd
KmVudlsgYHRdKlxdWyBgdF0qKD86Iy4qKT9ccj8kIg0KICAgICAgICBhbnlOZXN0ZWQgPSAiKD9p
bSleWyBgdF0qXFtbIGB0XSptY3Bfc2VydmVyc1sgYHRdKlwuWyBgdF0qJG5hbWVUb2tlblsgYHRd
KlwuWyBgdF0qKD8hZW52WyBgdF0qXF0pW15cXV0rXF1bIGB0XSooPzojLiopP1xyPyQiDQogICAg
fQ0KfQ0KDQpmdW5jdGlvbiBHZXQtVG9tbFNlY3Rpb25TcGFucyB7DQogICAgcGFyYW0oW3N0cmlu
Z10kVGV4dCwgW3N0cmluZ10kSGVhZGVyUGF0dGVybikNCiAgICAkaGVhZGVyUmVnZXggPSBOZXct
T2JqZWN0IFRleHQuUmVndWxhckV4cHJlc3Npb25zLlJlZ2V4KCRIZWFkZXJQYXR0ZXJuKQ0KICAg
ICRuZXh0SGVhZGVyUmVnZXggPSBOZXctT2JqZWN0IFRleHQuUmVndWxhckV4cHJlc3Npb25zLlJl
Z2V4KCcoP20pXlsgXHRdKlxbJykNCiAgICAkc3BhbnMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xs
ZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRtYXRjaCBpbiBAKCRo
ZWFkZXJSZWdleC5NYXRjaGVzKCRUZXh0KSkpIHsNCiAgICAgICAgJG5leHQgPSAkbmV4dEhlYWRl
clJlZ2V4Lk1hdGNoKCRUZXh0LCAkbWF0Y2guSW5kZXggKyAkbWF0Y2guTGVuZ3RoKQ0KICAgICAg
ICAkZW5kID0gaWYgKCRuZXh0LlN1Y2Nlc3MpIHsgJG5leHQuSW5kZXggfSBlbHNlIHsgJFRleHQu
TGVuZ3RoIH0NCiAgICAgICAgJHNwYW5zLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAg
ICAgIHN0YXJ0ID0gW2ludF0kbWF0Y2guSW5kZXgNCiAgICAgICAgICAgIGxlbmd0aCA9IFtpbnRd
KCRlbmQgLSAkbWF0Y2guSW5kZXgpDQogICAgICAgICAgICB0ZXh0ID0gJFRleHQuU3Vic3RyaW5n
KCRtYXRjaC5JbmRleCwgJGVuZCAtICRtYXRjaC5JbmRleCkNCiAgICAgICAgfSkNCiAgICB9DQog
ICAgcmV0dXJuIEAoJHNwYW5zLlRvQXJyYXkoKSkNCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LU5vQW1i
aWd1b3VzQ29kZXhNYW5hZ2VkU2VjdGlvbnMgew0KICAgIHBhcmFtKFtzdHJpbmddJFRleHQpDQog
ICAgZm9yZWFjaCAoJG5hbWUgaW4gJHNjcmlwdDpNYW5hZ2VkTWNwTmFtZXMpIHsNCiAgICAgICAg
JHBhdHRlcm5zID0gR2V0LVRvbWxNYW5hZ2VkSGVhZGVyUGF0dGVybnMgLU5hbWUgJG5hbWUNCiAg
ICAgICAgJGJhc2UgPSBAKEdldC1Ub21sU2VjdGlvblNwYW5zIC1UZXh0ICRUZXh0IC1IZWFkZXJQ
YXR0ZXJuICRwYXR0ZXJucy5iYXNlKQ0KICAgICAgICAkZW52ID0gQChHZXQtVG9tbFNlY3Rpb25T
cGFucyAtVGV4dCAkVGV4dCAtSGVhZGVyUGF0dGVybiAkcGF0dGVybnMuZW52KQ0KICAgICAgICAk
dW5leHBlY3RlZE5lc3RlZCA9IEAoW3JlZ2V4XTo6TWF0Y2hlcygkVGV4dCwgJHBhdHRlcm5zLmFu
eU5lc3RlZCkpDQogICAgICAgIGlmICgkYmFzZS5Db3VudCAtZ3QgMSAtb3IgJGVudi5Db3VudCAt
Z3QgMSAtb3IgJHVuZXhwZWN0ZWROZXN0ZWQuQ291bnQgLWd0IDApIHsNCiAgICAgICAgICAgIHRo
cm93ICJBbWJpZ3VvdXMgZHVwbGljYXRlIG9yIHVuc3VwcG9ydGVkIG5lc3RlZCBDb2RleCBNQ1Ag
c2VjdGlvbjogJG5hbWUiDQogICAgICAgIH0NCiAgICAgICAgaWYgKCRlbnYuQ291bnQgLWd0IDAg
LWFuZCAkYmFzZS5Db3VudCAtZXEgMCkgeyB0aHJvdyAiT3JwaGFuIENvZGV4IE1DUCBlbnZpcm9u
bWVudCBzZWN0aW9uOiAkbmFtZSIgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gR2V0LVVubWFuYWdl
ZENvZGV4TWNwRmluZ2VycHJpbnRzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRUZXh0KQ0KICAgICRh
bGxIZWFkZXJzID0gTmV3LU9iamVjdCBUZXh0LlJlZ3VsYXJFeHByZXNzaW9ucy5SZWdleCgnKD9p
bSleWyBcdF0qXFtbIFx0XSptY3Bfc2VydmVyc1sgXHRdKlwuW15cXV0rXF1bIFx0XSooPzojLiop
P1xyPyQnKQ0KICAgICRuZXh0SGVhZGVyID0gTmV3LU9iamVjdCBUZXh0LlJlZ3VsYXJFeHByZXNz
aW9ucy5SZWdleCgnKD9tKV5bIFx0XSpcWycpDQogICAgJHJvd3MgPSBOZXctT2JqZWN0IFN5c3Rl
bS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRvcmRpbmFsID0gMA0KICAg
IGZvcmVhY2ggKCRtYXRjaCBpbiBAKCRhbGxIZWFkZXJzLk1hdGNoZXMoJFRleHQpKSkgew0KICAg
ICAgICAkbWFuYWdlZCA9ICRmYWxzZQ0KICAgICAgICBmb3JlYWNoICgkbmFtZSBpbiAkc2NyaXB0
Ok1hbmFnZWRNY3BOYW1lcykgew0KICAgICAgICAgICAgJHBhdHRlcm5zID0gR2V0LVRvbWxNYW5h
Z2VkSGVhZGVyUGF0dGVybnMgLU5hbWUgJG5hbWUNCiAgICAgICAgICAgIGlmIChbcmVnZXhdOjpJ
c01hdGNoKCRtYXRjaC5WYWx1ZSwgJHBhdHRlcm5zLmJhc2UpIC1vciBbcmVnZXhdOjpJc01hdGNo
KCRtYXRjaC5WYWx1ZSwgJHBhdHRlcm5zLmVudikgLW9yIFtyZWdleF06OklzTWF0Y2goJG1hdGNo
LlZhbHVlLCAkcGF0dGVybnMuYW55TmVzdGVkKSkgew0KICAgICAgICAgICAgICAgICRtYW5hZ2Vk
ID0gJHRydWUNCiAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgfQ0KICAgICAgICB9
DQogICAgICAgIGlmICgkbWFuYWdlZCkgeyBjb250aW51ZSB9DQogICAgICAgICRuZXh0ID0gJG5l
eHRIZWFkZXIuTWF0Y2goJFRleHQsICRtYXRjaC5JbmRleCArICRtYXRjaC5MZW5ndGgpDQogICAg
ICAgICRlbmQgPSBpZiAoJG5leHQuU3VjY2VzcykgeyAkbmV4dC5JbmRleCB9IGVsc2UgeyAkVGV4
dC5MZW5ndGggfQ0KICAgICAgICAkc2VjdGlvbiA9ICRUZXh0LlN1YnN0cmluZygkbWF0Y2guSW5k
ZXgsICRlbmQgLSAkbWF0Y2guSW5kZXgpLlRyaW1FbmQoImByIiwgImBuIikNCiAgICAgICAgJHJv
d3MuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBvcmRpbmFsID0gJG9yZGluYWw7IGhlYWRlciA9ICRt
YXRjaC5WYWx1ZS5UcmltKCk7IHNoYTI1NiA9IEdldC1UZXh0U2hhMjU2IC1UZXh0ICRzZWN0aW9u
IH0pDQogICAgICAgICRvcmRpbmFsKysNCiAgICB9DQogICAgcmV0dXJuIEAoJHJvd3MuVG9BcnJh
eSgpKQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTm9BbWJpZ3VvdXNNYW5hZ2VkTWNwQ29uZmlndXJh
dGlvbiB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCkNCiAgICAkY2xhdWRlUGF0aCA9IEpvaW4t
UGF0aCAkUm9vdCAnX2FnZW50XGNsYXVkZVwuY2xhdWRlLmpzb24nDQogICAgaWYgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGNsYXVkZVBhdGggLVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgJGNs
YXVkZVN0YXRlID0gKFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJGNsYXVkZVBhdGgsICRzY3JpcHQ6
VXRmOE5vQm9tKSB8IENvbnZlcnRGcm9tLUpzb24gLUVycm9yQWN0aW9uIFN0b3ApDQogICAgICAg
ICRzZXJ2ZXJzUHJvcGVydHkgPSAkY2xhdWRlU3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1snbWNw
U2VydmVycyddDQogICAgICAgIGlmICgkbnVsbCAtbmUgJHNlcnZlcnNQcm9wZXJ0eSkgew0KICAg
ICAgICAgICAgaWYgKCRudWxsIC1lcSAkc2VydmVyc1Byb3BlcnR5LlZhbHVlIC1vciAkc2VydmVy
c1Byb3BlcnR5LlZhbHVlIC1pcyBbc3RyaW5nXSAtb3IgJHNlcnZlcnNQcm9wZXJ0eS5WYWx1ZS5H
ZXRUeXBlKCkuSXNWYWx1ZVR5cGUpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAnQ2xhdWRlIG1j
cFNlcnZlcnMgbXVzdCBiZSBhIEpTT04gb2JqZWN0LicNCiAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgIGZvcmVhY2ggKCRuYW1lIGluICRzY3JpcHQ6TWFuYWdlZE1jcE5hbWVzKSB7DQogICAgICAg
ICAgICAgICAgJG1hdGNoZXMgPSBAKCRzZXJ2ZXJzUHJvcGVydHkuVmFsdWUuUFNPYmplY3QuUHJv
cGVydGllcyB8IFdoZXJlLU9iamVjdCB7ICRfLk5hbWUuRXF1YWxzKCRuYW1lLCBbU3RyaW5nQ29t
cGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSB9KQ0KICAgICAgICAgICAgICAgIGlmICgkbWF0
Y2hlcy5Db3VudCAtZ3QgMSkgeyB0aHJvdyAiQW1iaWd1b3VzIGR1cGxpY2F0ZSBDbGF1ZGUgTUNQ
IGRlZmluaXRpb246ICRuYW1lIiB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQog
ICAgJGNvZGV4UGF0aCA9IEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNvZGV4XGNvbmZpZy50b21s
Jw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjb2RleFBhdGggLVBhdGhUeXBlIExl
YWYpIHsNCiAgICAgICAgQXNzZXJ0LU5vQW1iaWd1b3VzQ29kZXhNYW5hZ2VkU2VjdGlvbnMgLVRl
eHQgKFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJGNvZGV4UGF0aCwgJHNjcmlwdDpVdGY4Tm9Cb20p
KQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gQWRkLUJpbmRpbmdFdmlkZW5jZSB7DQogICAgcGFyYW0o
W2hhc2h0YWJsZV0kVGFibGUsIFtzdHJpbmddJEJpbmRpbmdJZCwgJEV2aWRlbmNlKQ0KICAgIGlm
IChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRCaW5kaW5nSWQpIC1vciAkbnVsbCAtZXEg
JEV2aWRlbmNlKSB7IHRocm93ICdCaW5kaW5nIGV2aWRlbmNlIGlzIGluY29tcGxldGUuJyB9DQog
ICAgJGV2aWRlbmNlU3RhdHVzUHJvcGVydHkgPSAkRXZpZGVuY2UuUFNPYmplY3QuUHJvcGVydGll
c1snc21va2VTdGF0dXMnXQ0KICAgICRldmlkZW5jZVN0YXR1cyA9IGlmICgkbnVsbCAtZXEgJGV2
aWRlbmNlU3RhdHVzUHJvcGVydHkpIHsgJ3N0YXRpYy1wYXNzZWQnIH0gZWxzZSB7IFtzdHJpbmdd
JGV2aWRlbmNlU3RhdHVzUHJvcGVydHkuVmFsdWUgfQ0KICAgIGlmIChAKCdwYXNzZWQnLCAnc3Rh
dGljLXBhc3NlZCcpIC1ub3Rjb250YWlucyAkZXZpZGVuY2VTdGF0dXMpIHsgdGhyb3cgIlVuc3Vw
cG9ydGVkIGJpbmRpbmcgc21va2Ugc3RhdHVzOiAkZXZpZGVuY2VTdGF0dXMiIH0NCiAgICBpZiAo
JFRhYmxlLkNvbnRhaW5zS2V5KCRCaW5kaW5nSWQpKSB7DQogICAgICAgICRwcmlvciA9ICRUYWJs
ZVskQmluZGluZ0lkXQ0KICAgICAgICAkdHlwZXMgPSBAKFtzdHJpbmddJHByaW9yLnZlcmlmaWNh
dGlvblR5cGUsIFtzdHJpbmddJEV2aWRlbmNlLnZlcmlmaWNhdGlvblR5cGUpIHwgU29ydC1PYmpl
Y3QgLVVuaXF1ZQ0KICAgICAgICAkVGFibGVbJEJpbmRpbmdJZF0gPSBbcHNjdXN0b21vYmplY3Rd
QHsNCiAgICAgICAgICAgIGV2aWRlbmNlU2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgKFtz
dHJpbmddJHByaW9yLmV2aWRlbmNlU2hhMjU2ICsgJ3wnICsgW3N0cmluZ10kRXZpZGVuY2UuZXZp
ZGVuY2VTaGEyNTYpDQogICAgICAgICAgICB2ZXJpZmljYXRpb25UeXBlID0gKCR0eXBlcyAtam9p
biAnKycpDQogICAgICAgICAgICByZXNvbHZlZFBhdGhDb3VudCA9IFtpbnRdJHByaW9yLnJlc29s
dmVkUGF0aENvdW50ICsgW2ludF0kRXZpZGVuY2UucmVzb2x2ZWRQYXRoQ291bnQNCiAgICAgICAg
ICAgIHNtb2tlU3RhdHVzID0gJChpZiAoW3N0cmluZ10kcHJpb3Iuc21va2VTdGF0dXMgLWVxICdw
YXNzZWQnIC1vciAkZXZpZGVuY2VTdGF0dXMgLWVxICdwYXNzZWQnKSB7ICdwYXNzZWQnIH0gZWxz
ZSB7ICdzdGF0aWMtcGFzc2VkJyB9KQ0KICAgICAgICB9DQogICAgfSBlbHNlIHsNCiAgICAgICAg
JFRhYmxlWyRCaW5kaW5nSWRdID0gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICBldmlk
ZW5jZVNoYTI1NiA9IFtzdHJpbmddJEV2aWRlbmNlLmV2aWRlbmNlU2hhMjU2DQogICAgICAgICAg
ICB2ZXJpZmljYXRpb25UeXBlID0gW3N0cmluZ10kRXZpZGVuY2UudmVyaWZpY2F0aW9uVHlwZQ0K
ICAgICAgICAgICAgcmVzb2x2ZWRQYXRoQ291bnQgPSBbaW50XSRFdmlkZW5jZS5yZXNvbHZlZFBh
dGhDb3VudA0KICAgICAgICAgICAgc21va2VTdGF0dXMgPSAkZXZpZGVuY2VTdGF0dXMNCiAgICAg
ICAgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gQ29weS1BZGFwdGVyVHJlZU5vRm9sbG93IHsNCiAg
ICBwYXJhbShbc3RyaW5nXSRTb3VyY2UsIFtzdHJpbmddJERlc3RpbmF0aW9uKQ0KICAgICRzb3Vy
Y2VJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRTb3VyY2UgLUZvcmNlIC1FcnJvckFjdGlv
biBTdG9wDQogICAgaWYgKC1ub3QgJHNvdXJjZUl0ZW0uUFNJc0NvbnRhaW5lciAtb3IgKCRzb3Vy
Y2VJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50
KSAtbmUgMCkgew0KICAgICAgICB0aHJvdyAiQWRhcHRlciBwYXlsb2FkIHJvb3QgbXVzdCBiZSBh
IHJlYWwgZGlyZWN0b3J5OiAkU291cmNlIg0KICAgIH0NCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkRGVzdGluYXRpb24pIHsgdGhyb3cgIkFkYXB0ZXIgY29weSBkZXN0aW5hdGlvbiBh
bHJlYWR5IGV4aXN0czogJERlc3RpbmF0aW9uIiB9DQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06
OkNyZWF0ZURpcmVjdG9yeSgkRGVzdGluYXRpb24pDQogICAgZm9yZWFjaCAoJGl0ZW0gaW4gR2V0
LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJFNvdXJjZSAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3Ap
IHsNCiAgICAgICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRl
c106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgIkFkYXB0ZXIgcGF5bG9hZCByZXBhcnNl
IHBvaW50IGJsb2NrZWQ6ICQoJGl0ZW0uRnVsbE5hbWUpIiB9DQogICAgICAgICR0YXJnZXQgPSBK
b2luLVBhdGggJERlc3RpbmF0aW9uICRpdGVtLk5hbWUNCiAgICAgICAgaWYgKCRpdGVtLlBTSXND
b250YWluZXIpIHsgQ29weS1BZGFwdGVyVHJlZU5vRm9sbG93IC1Tb3VyY2UgJGl0ZW0uRnVsbE5h
bWUgLURlc3RpbmF0aW9uICR0YXJnZXQgfQ0KICAgICAgICBlbHNlIHsgW0lPLkZpbGVdOjpDb3B5
KCRpdGVtLkZ1bGxOYW1lLCAkdGFyZ2V0LCAkZmFsc2UpIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9u
IEdldC1QbHVnaW5QYXlsb2FkRGVzY3JpcHRvciB7DQogICAgcGFyYW0oJEV4dGVuc2lvbiwgW3N0
cmluZ10kU291cmNlUGF0aCkNCiAgICAkaWQgPSBbc3RyaW5nXSRFeHRlbnNpb24uaWQNCiAgICAk
YWRhcHRlciA9IEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJEV4dGVuc2lvbiAnY2xhdWRlQWRh
cHRlcicNCiAgICAkcmVxdWVzdGVkTmFtZSA9IFtzdHJpbmddKEdldC1PcHRpb25hbFByb3BlcnR5
VmFsdWUgJGFkYXB0ZXIgJ3BsdWdpbicpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJHJlcXVlc3RlZE5hbWUpKSB7ICRyZXF1ZXN0ZWROYW1lID0gJGlkIH0NCiAgICAkbWFy
a2V0cGxhY2VQYXRoID0gSm9pbi1QYXRoICRTb3VyY2VQYXRoICcuY2xhdWRlLXBsdWdpblxtYXJr
ZXRwbGFjZS5qc29uJw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRtYXJrZXRwbGFj
ZVBhdGggLVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgJG1hcmtldHBsYWNlID0gUmVhZC1Tb3Vs
SnNvbiAtUGF0aCAkbWFya2V0cGxhY2VQYXRoDQogICAgICAgICRyZWNvcmRzID0gQCgkbWFya2V0
cGxhY2UucGx1Z2lucyB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8ubmFtZSAtY2VxICRyZXF1
ZXN0ZWROYW1lIH0pDQogICAgICAgIGlmICgkcmVjb3Jkcy5Db3VudCAtbmUgMSkgeyB0aHJvdyAi
Q2Fub25pY2FsIG1hcmtldHBsYWNlIGRvZXMgbm90IGNvbnRhaW4gZXhhY3RseSBvbmUgJyRyZXF1
ZXN0ZWROYW1lJyBwbHVnaW4uIiB9DQogICAgICAgICRzb3VyY2VWYWx1ZSA9IEdldC1PcHRpb25h
bFByb3BlcnR5VmFsdWUgJHJlY29yZHNbMF0gJ3NvdXJjZScNCiAgICAgICAgaWYgKC1ub3QgKCRz
b3VyY2VWYWx1ZSAtaXMgW3N0cmluZ10pIC1vciBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNl
KFtzdHJpbmddJHNvdXJjZVZhbHVlKSkgew0KICAgICAgICAgICAgdGhyb3cgIlBsdWdpbiAnJHJl
cXVlc3RlZE5hbWUnIGlzIG5vdCBhIGxvY2FsIHBheWxvYWQgaW4gaXRzIHBpbm5lZCBtYXJrZXRw
bGFjZS4iDQogICAgICAgIH0NCiAgICAgICAgJHBheWxvYWRQYXRoID0gW0lPLlBhdGhdOjpHZXRG
dWxsUGF0aCgoSm9pbi1QYXRoICRTb3VyY2VQYXRoIChbc3RyaW5nXSRzb3VyY2VWYWx1ZSkuUmVw
bGFjZSgnLycsICdcJykpKS5UcmltRW5kKCdcJywgJy8nKQ0KICAgICAgICBpZiAoLW5vdCAoVGVz
dC1QYXRoQmVsb3cgLVBhdGggJHBheWxvYWRQYXRoIC1QYXJlbnQgJFNvdXJjZVBhdGggLUFsbG93
UGFyZW50KSkgeyB0aHJvdyAiUGx1Z2luIHBheWxvYWQgZXNjYXBlcyBpdHMgY2Fub25pY2FsIHNv
dXJjZTogJHJlcXVlc3RlZE5hbWUiIH0NCiAgICB9IGVsc2Ugew0KICAgICAgICAkcGF5bG9hZFBh
dGggPSAkU291cmNlUGF0aA0KICAgIH0NCiAgICAkcGx1Z2luTWFuaWZlc3RQYXRoID0gSm9pbi1Q
YXRoICRwYXlsb2FkUGF0aCAnLmNsYXVkZS1wbHVnaW5ccGx1Z2luLmpzb24nDQogICAgaWYgKC1u
b3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBsdWdpbk1hbmlmZXN0UGF0aCAtUGF0aFR5cGUg
TGVhZikpIHsgdGhyb3cgIlBpbm5lZCBsb2NhbCBwbHVnaW4gaGFzIG5vIC5jbGF1ZGUtcGx1Z2lu
L3BsdWdpbi5qc29uOiAkcmVxdWVzdGVkTmFtZSIgfQ0KICAgICRwbHVnaW5NYW5pZmVzdCA9IFJl
YWQtU291bEpzb24gLVBhdGggJHBsdWdpbk1hbmlmZXN0UGF0aA0KICAgIGlmICgtbm90IFtzdHJp
bmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10oR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1
ZSAkcGx1Z2luTWFuaWZlc3QgJ25hbWUnKSkgLWFuZCBbc3RyaW5nXSRwbHVnaW5NYW5pZmVzdC5u
YW1lIC1jbmUgJHJlcXVlc3RlZE5hbWUpIHsNCiAgICAgICAgdGhyb3cgIlBpbm5lZCBwbHVnaW4g
bWFuaWZlc3QgbmFtZSBkaWZmZXJzIGZyb20gdGhlIGxvY2s6ICRyZXF1ZXN0ZWROYW1lIg0KICAg
IH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IHBsdWdpbk5hbWUgPSAkcmVxdWVzdGVk
TmFtZTsgcGF5bG9hZFBhdGggPSAkcGF5bG9hZFBhdGggfQ0KfQ0KDQpmdW5jdGlvbiBQdWJsaXNo
LUxvY2FsUGx1Z2luTWFya2V0cGxhY2Ugew0KICAgIHBhcmFtKFtzdHJpbmddJFN0YXRlRGlyZWN0
b3J5LCAkRXh0ZW5zaW9uLCBbc3RyaW5nXSRTb3VyY2VQYXRoKQ0KICAgICRkZXNjcmlwdG9yID0g
R2V0LVBsdWdpblBheWxvYWREZXNjcmlwdG9yIC1FeHRlbnNpb24gJEV4dGVuc2lvbiAtU291cmNl
UGF0aCAkU291cmNlUGF0aA0KICAgICRwaW4gPSBHZXQtRXhwZWN0ZWRQaW4gLUV4dGVuc2lvbiAk
RXh0ZW5zaW9uDQogICAgJHBpblRva2VuID0gKEdldC1UZXh0U2hhMjU2IC1UZXh0ICgkcGluLmtp
bmQgKyAnfCcgKyAkcGluLnZhbHVlKSkuU3Vic3RyaW5nKDAsIDEyKQ0KICAgICRzYWZlSWQgPSAo
W3JlZ2V4XTo6UmVwbGFjZSgoW3N0cmluZ10kRXh0ZW5zaW9uLmlkKS5Ub0xvd2VySW52YXJpYW50
KCksICdbXmEtejAtOS1dJywgJy0nKSkuVHJpbSgnLScpDQogICAgaWYgKFtzdHJpbmddOjpJc051
bGxPcldoaXRlU3BhY2UoJHNhZmVJZCkpIHsgdGhyb3cgJ1BsdWdpbiBpZCBjYW5ub3QgZm9ybSBh
IHNhZmUgbWFya2V0cGxhY2UgbmFtZS4nIH0NCiAgICAkbWFya2V0cGxhY2VOYW1lID0gInNvdWwt
djctJHNhZmVJZC0kcGluVG9rZW4iDQogICAgJGFkYXB0ZXJSb290ID0gSW5pdGlhbGl6ZS1BZGFw
dGVyRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJFN0YXRlRGlyZWN0b3J5ICdhZGFwdGVycycp
IC1UaXRsZSAnU2V0dXAtb3duZWQgYWRhcHRlcnMnDQogICAgJG1hcmtldHBsYWNlUm9vdCA9IElu
aXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRhZGFwdGVyUm9vdCAn
Y2xhdWRlLW1hcmtldHBsYWNlcycpIC1UaXRsZSAnQ29udGVudC1hZGRyZXNzZWQgQ2xhdWRlIG1h
cmtldHBsYWNlcycNCiAgICAkd3JhcHBlclBhdGggPSBKb2luLVBhdGggJG1hcmtldHBsYWNlUm9v
dCAkbWFya2V0cGxhY2VOYW1lDQogICAgJHNvdXJjZURpZ2VzdCA9IEdldC1QYXlsb2FkVHJlZURp
Z2VzdCAtUGF0aCAkZGVzY3JpcHRvci5wYXlsb2FkUGF0aA0KDQogICAgaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJHdyYXBwZXJQYXRoIC1QYXRoVHlwZSBDb250YWluZXIpKSB7DQog
ICAgICAgICR0ZW1wb3JhcnlQYXRoID0gSm9pbi1QYXRoICRtYXJrZXRwbGFjZVJvb3QgKCcuJyAr
ICRtYXJrZXRwbGFjZU5hbWUgKyAnLm5ldy4nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmco
J04nKSkNCiAgICAgICAgW3ZvaWRdKEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAk
dGVtcG9yYXJ5UGF0aCAtVGl0bGUgIiRtYXJrZXRwbGFjZU5hbWUgd3JhcHBlciIpDQogICAgICAg
ICRtZXRhZGF0YURpcmVjdG9yeSA9IEpvaW4tUGF0aCAkdGVtcG9yYXJ5UGF0aCAnLmNsYXVkZS1w
bHVnaW4nDQogICAgICAgICRwbHVnaW5zRGlyZWN0b3J5ID0gSm9pbi1QYXRoICR0ZW1wb3JhcnlQ
YXRoICdwbHVnaW5zJw0KICAgICAgICBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0
b3J5KCRtZXRhZGF0YURpcmVjdG9yeSkNCiAgICAgICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNy
ZWF0ZURpcmVjdG9yeSgkcGx1Z2luc0RpcmVjdG9yeSkNCiAgICAgICAgJHBheWxvYWREZXN0aW5h
dGlvbiA9IEpvaW4tUGF0aCAkcGx1Z2luc0RpcmVjdG9yeSAkZGVzY3JpcHRvci5wbHVnaW5OYW1l
DQogICAgICAgIENvcHktQWRhcHRlclRyZWVOb0ZvbGxvdyAtU291cmNlICRkZXNjcmlwdG9yLnBh
eWxvYWRQYXRoIC1EZXN0aW5hdGlvbiAkcGF5bG9hZERlc3RpbmF0aW9uDQogICAgICAgICRtYW5p
ZmVzdCA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBuYW1lID0gJG1hcmtldHBsYWNlTmFtZQ0K
ICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnU2V0dXAtb3duZWQgY29udGVudC1hZGRyZXNzZWQg
bG9jYWwgbWFya2V0cGxhY2UnDQogICAgICAgICAgICBvd25lciA9IFtvcmRlcmVkXUB7IG5hbWUg
PSAnU291bCBzZXR1cCcgfQ0KICAgICAgICAgICAgcGx1Z2lucyA9IEAoW29yZGVyZWRdQHsNCiAg
ICAgICAgICAgICAgICBuYW1lID0gJGRlc2NyaXB0b3IucGx1Z2luTmFtZQ0KICAgICAgICAgICAg
ICAgIHZlcnNpb24gPSBbc3RyaW5nXShHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRFeHRlbnNp
b24gJ3ZlcnNpb24nKQ0KICAgICAgICAgICAgICAgIHNvdXJjZSA9ICIuL3BsdWdpbnMvJCgkZGVz
Y3JpcHRvci5wbHVnaW5OYW1lKSINCiAgICAgICAgICAgIH0pDQogICAgICAgIH0NCiAgICAgICAg
W3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGggJG1ldGFkYXRhRGly
ZWN0b3J5ICdtYXJrZXRwbGFjZS5qc29uJykgLVZhbHVlICRtYW5pZmVzdCkNCiAgICAgICAgW3Zv
aWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGggJHRlbXBvcmFyeVBhdGgg
J3dyYXBwZXItcHJvb2YuanNvbicpIC1WYWx1ZSAoW29yZGVyZWRdQHsNCiAgICAgICAgICAgIHNj
aGVtYVZlcnNpb24gPSAxDQogICAgICAgICAgICBpZCA9IFtzdHJpbmddJEV4dGVuc2lvbi5pZA0K
ICAgICAgICAgICAgcGluS2luZCA9ICRwaW4ua2luZA0KICAgICAgICAgICAgcGluVmFsdWUgPSAk
cGluLnZhbHVlDQogICAgICAgICAgICBwbHVnaW5OYW1lID0gJGRlc2NyaXB0b3IucGx1Z2luTmFt
ZQ0KICAgICAgICAgICAgbWFya2V0cGxhY2VOYW1lID0gJG1hcmtldHBsYWNlTmFtZQ0KICAgICAg
ICAgICAgcGF5bG9hZFRyZWVTaGEyNTYgPSAkc291cmNlRGlnZXN0DQogICAgICAgIH0pKQ0KICAg
ICAgICB0cnkgeyBbSU8uRGlyZWN0b3J5XTo6TW92ZSgkdGVtcG9yYXJ5UGF0aCwgJHdyYXBwZXJQ
YXRoKSB9DQogICAgICAgIGNhdGNoIHsNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICR3cmFwcGVyUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyB0aHJvdyB9
DQogICAgICAgICAgICB0aHJvdyAiQSBjb25jdXJyZW50IGxvY2FsIG1hcmtldHBsYWNlIHB1Ymxp
c2ggY29sbGlkZWQ7IHRoZSB1bnRydXN0ZWQgdGVtcG9yYXJ5IGNvcHkgd2FzIHByZXNlcnZlZDog
JHRlbXBvcmFyeVBhdGgiDQogICAgICAgIH0NCiAgICB9DQoNCiAgICAkcHJvb2YgPSBSZWFkLVNv
dWxKc29uIC1QYXRoIChKb2luLVBhdGggJHdyYXBwZXJQYXRoICd3cmFwcGVyLXByb29mLmpzb24n
KQ0KICAgICRwdWJsaXNoZWRQYXlsb2FkID0gSm9pbi1QYXRoICR3cmFwcGVyUGF0aCAoJ3BsdWdp
bnNcJyArICRkZXNjcmlwdG9yLnBsdWdpbk5hbWUpDQogICAgaWYgKFtzdHJpbmddJHByb29mLmlk
IC1jbmUgW3N0cmluZ10kRXh0ZW5zaW9uLmlkIC1vciBbc3RyaW5nXSRwcm9vZi5waW5LaW5kIC1j
bmUgJHBpbi5raW5kIC1vcg0KICAgICAgICBbc3RyaW5nXSRwcm9vZi5waW5WYWx1ZSAtY25lICRw
aW4udmFsdWUgLW9yIFtzdHJpbmddJHByb29mLm1hcmtldHBsYWNlTmFtZSAtY25lICRtYXJrZXRw
bGFjZU5hbWUgLW9yDQogICAgICAgIFtzdHJpbmddJHByb29mLnBheWxvYWRUcmVlU2hhMjU2IC1j
bmUgJHNvdXJjZURpZ2VzdCAtb3IgKEdldC1QYXlsb2FkVHJlZURpZ2VzdCAtUGF0aCAkcHVibGlz
aGVkUGF5bG9hZCkgLWNuZSAkc291cmNlRGlnZXN0KSB7DQogICAgICAgIHRocm93ICJFeGlzdGlu
ZyBzZXR1cC1vd25lZCBtYXJrZXRwbGFjZSBkaWZmZXJzIGZyb20gaXRzIGltbXV0YWJsZSBzb3Vy
Y2U6ICRtYXJrZXRwbGFjZU5hbWUiDQogICAgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3Rd
QHsNCiAgICAgICAgcGx1Z2luTmFtZSA9ICRkZXNjcmlwdG9yLnBsdWdpbk5hbWUNCiAgICAgICAg
c2FmZUlkID0gJHNhZmVJZA0KICAgICAgICBtYXJrZXRwbGFjZU5hbWUgPSAkbWFya2V0cGxhY2VO
YW1lDQogICAgICAgIHdyYXBwZXJQYXRoID0gJHdyYXBwZXJQYXRoDQogICAgICAgIGluc3RhbGxT
cGVjID0gIiQoJGRlc2NyaXB0b3IucGx1Z2luTmFtZSlAJG1hcmtldHBsYWNlTmFtZSINCiAgICAg
ICAgZW5hYmxlZEtleSA9ICIkKCRkZXNjcmlwdG9yLnBsdWdpbk5hbWUpQCRtYXJrZXRwbGFjZU5h
bWUiDQogICAgICAgIGV2aWRlbmNlU2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgKCRzb3Vy
Y2VEaWdlc3QgKyAnfCcgKyAkbWFya2V0cGxhY2VOYW1lICsgJ3wnICsgJHdyYXBwZXJQYXRoKQ0K
ICAgICAgICB2ZXJpZmljYXRpb25UeXBlID0gJ2xvY2FsLW1hcmtldHBsYWNlLWNvbW1hbmQtcGx1
cy1zdGF0aWMtcGF5bG9hZCcNCiAgICAgICAgcmVzb2x2ZWRQYXRoQ291bnQgPSAxDQogICAgfQ0K
fQ0KDQpmdW5jdGlvbiBHZXQtRXhwZWN0ZWRCaW5kaW5nIHsNCiAgICBwYXJhbSgkU291cmNlTG9j
aykNCiAgICAkYmluZGluZ3MgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmlj
Lkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRleHRlbnNpb24gaW4gQCgkU291cmNlTG9jay5l
eHRlbnNpb25zKSkgew0KICAgICAgICAkaWQgPSBbc3RyaW5nXSRleHRlbnNpb24uaWQNCiAgICAg
ICAgaWYgKCRudWxsIC1uZSAoR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAkZXh0ZW5zaW9uICdj
bGF1ZGVBZGFwdGVyJykpIHsgJGJpbmRpbmdzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgYmluZGlu
Z0lkID0gIiRpZGA6Y2xhdWRlIjsgaWQgPSAkaWQ7IGhhcm5lc3MgPSAnY2xhdWRlJyB9KSB9DQog
ICAgICAgIGlmICgkbnVsbCAtbmUgKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJGV4dGVuc2lv
biAnY29kZXhBZGFwdGVyJykpIHsgJGJpbmRpbmdzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgYmlu
ZGluZ0lkID0gIiRpZGA6Y29kZXgiOyBpZCA9ICRpZDsgaGFybmVzcyA9ICdjb2RleCcgfSkgfQ0K
ICAgICAgICBmb3JlYWNoICgkYWRhcHRlciBpbiBAKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUg
JGV4dGVuc2lvbiAnYWRhcHRlcnMnKSkgew0KICAgICAgICAgICAgaWYgKFtzdHJpbmddJGFkYXB0
ZXIgLW1hdGNoICcoP2kpXmNsYXVkZS0nKSB7ICRiaW5kaW5ncy5BZGQoW3BzY3VzdG9tb2JqZWN0
XUB7IGJpbmRpbmdJZCA9ICIkaWRgOmNsYXVkZSI7IGlkID0gJGlkOyBoYXJuZXNzID0gJ2NsYXVk
ZScgfSkgfQ0KICAgICAgICAgICAgZWxzZWlmIChbc3RyaW5nXSRhZGFwdGVyIC1tYXRjaCAnKD9p
KV5jb2RleC0nKSB7ICRiaW5kaW5ncy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IGJpbmRpbmdJZCA9
ICIkaWRgOmNvZGV4IjsgaWQgPSAkaWQ7IGhhcm5lc3MgPSAnY29kZXgnIH0pIH0NCiAgICAgICAg
fQ0KICAgIH0NCiAgICByZXR1cm4gQCgkYmluZGluZ3MgfCBTb3J0LU9iamVjdCBiaW5kaW5nSWQg
LVVuaXF1ZSkNCn0NCg0KZnVuY3Rpb24gR2V0LVBheWxvYWRUcmVlRGlnZXN0IHsNCiAgICBwYXJh
bShbc3RyaW5nXSRQYXRoKQ0KICAgICRpbnZlbnRvcnkgPSBAKEdldC1Tb3VsVHJlZUludmVudG9y
eSAtUGF0aCAkUGF0aCB8IFdoZXJlLU9iamVjdCB7ICRfLnBhdGggLW5lICdzb3VyY2UtcHJvb2Yu
anNvbicgfSkNCiAgICBpZiAoQCgkaW52ZW50b3J5IHwgV2hlcmUtT2JqZWN0IHsgJF8ua2luZCAt
ZXEgJ3JlcGFyc2UtYmxvY2tlZCcgLW9yICgkXy5raW5kIC1lcSAnZmlsZScgLWFuZCAtbm90ICRf
LnN0YWJsZSkgfSkuQ291bnQgLWd0IDApIHsNCiAgICAgICAgdGhyb3cgIkNhbm9uaWNhbCBzb3Vy
Y2UgaXMgdW5zdGFibGUgb3IgY29udGFpbnMgYSByZXBhcnNlIHBvaW50OiAkUGF0aCINCiAgICB9
DQogICAgJHJvd3MgPSBAKCRpbnZlbnRvcnkgfCBGb3JFYWNoLU9iamVjdCB7ICd7MH18ezF9fHsy
fXx7M30nIC1mICRfLnBhdGgsICRfLmtpbmQsICRfLmxlbmd0aCwgJF8uc2hhMjU2IH0pDQogICAg
cmV0dXJuIEdldC1UZXh0U2hhMjU2IC1UZXh0ICgkcm93cyAtam9pbiAiYG4iKQ0KfQ0KDQpmdW5j
dGlvbiBHZXQtRXhwZWN0ZWRQaW4gew0KICAgIHBhcmFtKCRFeHRlbnNpb24pDQogICAgZm9yZWFj
aCAoJG5hbWUgaW4gQCgnY29tbWl0JywgJ2ludGVncml0eScsICdzaGEyNTYnLCAndmVyc2lvbicp
KSB7DQogICAgICAgICR2YWx1ZSA9IFtzdHJpbmddKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUg
JEV4dGVuc2lvbiAkbmFtZSkNCiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hp
dGVTcGFjZSgkdmFsdWUpKSB7IHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsga2luZCA9ICRuYW1l
OyB2YWx1ZSA9ICR2YWx1ZSB9IH0NCiAgICB9DQogICAgdGhyb3cgIk5vIGltbXV0YWJsZSBwaW4g
aXMgYXZhaWxhYmxlIGZvciAkKCRFeHRlbnNpb24uaWQpLiINCn0NCg0KZnVuY3Rpb24gVGVzdC1D
YW5vbmljYWxTb3VyY2Ugew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QsICRFeHRlbnNpb24pDQog
ICAgJHJlbGF0aXZlID0gW3N0cmluZ10kRXh0ZW5zaW9uLmNhbm9uaWNhbFJlbGF0aXZlUGF0aA0K
ICAgICRwYXRoID0gSm9pbi1QYXRoICRSb290ICRyZWxhdGl2ZS5SZXBsYWNlKCcvJywgJ1wnKQ0K
ICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXRoIC1QYXRoVHlwZSBDb250
YWluZXIpKSB7DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgaWQgPSBbc3RyaW5n
XSRFeHRlbnNpb24uaWQ7IHJlYWR5ID0gJGZhbHNlOyByZWFzb24gPSAnbWlzc2luZyc7IHBhdGgg
PSAkcGF0aDsgcGF5bG9hZFRyZWVTaGEyNTYgPSAkbnVsbCB9DQogICAgfQ0KICAgICRpdGVtID0g
R2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRwYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAg
IGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNl
UG9pbnQpIC1uZSAwKSB7DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgaWQgPSBb
c3RyaW5nXSRFeHRlbnNpb24uaWQ7IHJlYWR5ID0gJGZhbHNlOyByZWFzb24gPSAncmVwYXJzZS1i
bG9ja2VkJzsgcGF0aCA9ICRwYXRoOyBwYXlsb2FkVHJlZVNoYTI1NiA9ICRudWxsIH0NCiAgICB9
DQogICAgJHBpbiA9IEdldC1FeHBlY3RlZFBpbiAtRXh0ZW5zaW9uICRFeHRlbnNpb24NCiAgICAk
cGF5bG9hZERpZ2VzdCA9IEdldC1QYXlsb2FkVHJlZURpZ2VzdCAtUGF0aCAkcGF0aA0KICAgICRw
cm9vZlBhdGggPSBKb2luLVBhdGggJHBhdGggJ3NvdXJjZS1wcm9vZi5qc29uJw0KICAgICR2ZXJp
ZmllZCA9ICRmYWxzZQ0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwcm9vZlBhdGgg
LVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgJHByb29mID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAk
cHJvb2ZQYXRoDQogICAgICAgICR2ZXJpZmllZCA9IFtzdHJpbmddJHByb29mLmlkIC1jZXEgW3N0
cmluZ10kRXh0ZW5zaW9uLmlkIC1hbmQgW3N0cmluZ10kcHJvb2YucGluS2luZCAtY2VxICRwaW4u
a2luZCAtYW5kDQogICAgICAgICAgICBbc3RyaW5nXSRwcm9vZi5waW5WYWx1ZSAtY2VxICRwaW4u
dmFsdWUgLWFuZCBbc3RyaW5nXSRwcm9vZi5wYXlsb2FkVHJlZVNoYTI1NiAtY2VxICRwYXlsb2Fk
RGlnZXN0DQogICAgfSBlbHNlaWYgKCRwaW4ua2luZCAtZXEgJ2NvbW1pdCcgLWFuZCAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRwYXRoICcuZ2l0JykpKSB7DQogICAgICAgICRn
aXQgPSBHZXQtQ29tbWFuZCBnaXQgLUNvbW1hbmRUeXBlIEFwcGxpY2F0aW9uIC1FcnJvckFjdGlv
biBTaWxlbnRseUNvbnRpbnVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0KICAgICAgICBpZiAo
JG51bGwgLW5lICRnaXQpIHsNCiAgICAgICAgICAgICRoZWFkID0gKCYgJGdpdC5Tb3VyY2UgLUMg
JHBhdGggcmV2LXBhcnNlIEhFQUQgMj4kbnVsbCB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDEpLlRy
aW0oKQ0KICAgICAgICAgICAgJGRpcnR5ID0gQCgmICRnaXQuU291cmNlIC1DICRwYXRoIHN0YXR1
cyAtLXBvcmNlbGFpbiAyPiRudWxsKQ0KICAgICAgICAgICAgJHZlcmlmaWVkID0gJExBU1RFWElU
Q09ERSAtZXEgMCAtYW5kICRoZWFkIC1jZXEgJHBpbi52YWx1ZSAtYW5kICRkaXJ0eS5Db3VudCAt
ZXEgMA0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICgtbm90ICR2ZXJpZmllZCkgew0KICAgICAg
ICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gW3N0cmluZ10kRXh0ZW5zaW9uLmlkOyBy
ZWFkeSA9ICRmYWxzZTsgcmVhc29uID0gJ3Bpbi1vci10cmVlLXByb29mLW1pc21hdGNoJzsgcGF0
aCA9ICRwYXRoOyBwYXlsb2FkVHJlZVNoYTI1NiA9ICRwYXlsb2FkRGlnZXN0IH0NCiAgICB9DQog
ICAgJGVudHJ5ID0gW3N0cmluZ10oR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAkRXh0ZW5zaW9u
ICdlbnRyeScpDQogICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkZW50
cnkpIC1hbmQgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRwYXRoICRl
bnRyeS5SZXBsYWNlKCcvJywgJ1wnKSkgLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgIHJldHVy
biBbcHNjdXN0b21vYmplY3RdQHsgaWQgPSBbc3RyaW5nXSRFeHRlbnNpb24uaWQ7IHJlYWR5ID0g
JGZhbHNlOyByZWFzb24gPSAnZW50cnktbWlzc2luZyc7IHBhdGggPSAkcGF0aDsgcGF5bG9hZFRy
ZWVTaGEyNTYgPSAkcGF5bG9hZERpZ2VzdCB9DQogICAgfQ0KICAgIHJldHVybiBbcHNjdXN0b21v
YmplY3RdQHsgaWQgPSBbc3RyaW5nXSRFeHRlbnNpb24uaWQ7IHJlYWR5ID0gJHRydWU7IHJlYXNv
biA9ICd2ZXJpZmllZCc7IHBhdGggPSAkcGF0aDsgcGF5bG9hZFRyZWVTaGEyNTYgPSAkcGF5bG9h
ZERpZ2VzdCB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Ta2lsbFNvdXJjZURpcmVjdG9yeSB7DQogICAg
cGFyYW0oW3N0cmluZ10kU291cmNlUGF0aCkNCiAgICByZXR1cm4gQChHZXQtQ2hpbGRJdGVtIC1M
aXRlcmFsUGF0aCAkU291cmNlUGF0aCAtUmVjdXJzZSAtRmlsdGVyICdTS0lMTC5tZCcgLUZpbGUg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wIHwgRm9yRWFjaC1PYmplY3Qgew0KICAgICAgICAkcGFy
ZW50ID0gJF8uRGlyZWN0b3J5DQogICAgICAgIGlmICgoJHBhcmVudC5BdHRyaWJ1dGVzIC1iYW5k
IFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgIlNraWxs
IHNvdXJjZSByZXBhcnNlIHBvaW50IGJsb2NrZWQ6ICQoJHBhcmVudC5GdWxsTmFtZSkiIH0NCiAg
ICAgICAgJHBhcmVudC5GdWxsTmFtZQ0KICAgIH0gfCBTZWxlY3QtT2JqZWN0IC1VbmlxdWUpDQp9
DQoNCmZ1bmN0aW9uIEdldC1MaW5rVGFyZ2V0UGF0aCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0
aCkNCiAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkUGF0aCAtRm9yY2UgLUVycm9y
QWN0aW9uIFN0b3ANCiAgICAkdGFyZ2V0UHJvcGVydHkgPSAkaXRlbS5QU09iamVjdC5Qcm9wZXJ0
aWVzWydUYXJnZXQnXQ0KICAgIGlmICgkbnVsbCAtZXEgJHRhcmdldFByb3BlcnR5KSB7IHJldHVy
biAkbnVsbCB9DQogICAgJHRhcmdldCA9IEAoJHRhcmdldFByb3BlcnR5LlZhbHVlIHwgU2VsZWN0
LU9iamVjdCAtRmlyc3QgMSkNCiAgICBpZiAoJHRhcmdldC5Db3VudCAtZXEgMCkgeyByZXR1cm4g
JG51bGwgfQ0KICAgIHJldHVybiBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKFtzdHJpbmddJHRhcmdl
dFswXSkuVHJpbUVuZCgnXCcsICcvJykNCn0NCg0KZnVuY3Rpb24gQWRkLVNraWxsTGlua3Mgew0K
ICAgIHBhcmFtKFtzdHJpbmddJEhhcm5lc3NIb21lLCBbc3RyaW5nXSRFeHRlbnNpb25JZCwgW3N0
cmluZ10kU291cmNlUGF0aCwgJEV4cGVjdGVkU2tpbGxDb3VudCkNCiAgICAkc2tpbGxzUm9vdCA9
IEluaXRpYWxpemUtTmF0aXZlQWdlbnREaXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkSGFybmVz
c0hvbWUgJ3NraWxscycpDQogICAgJHNraWxsU291cmNlcyA9IEAoR2V0LVNraWxsU291cmNlRGly
ZWN0b3J5IC1Tb3VyY2VQYXRoICRTb3VyY2VQYXRoKQ0KICAgIGlmICgkc2tpbGxTb3VyY2VzLkNv
dW50IC1lcSAwKSB7IHRocm93ICJObyBTS0lMTC5tZCB3YXMgZm91bmQgZm9yIHJlcXVpcmVkIHNr
aWxsIGFkYXB0ZXI6ICRFeHRlbnNpb25JZCIgfQ0KICAgIGlmICgkbnVsbCAtbmUgJEV4cGVjdGVk
U2tpbGxDb3VudCAtYW5kICRza2lsbFNvdXJjZXMuQ291bnQgLW5lIFtpbnRdJEV4cGVjdGVkU2tp
bGxDb3VudCkgew0KICAgICAgICB0aHJvdyAiUmVxdWlyZWQgc2tpbGwgY291bnQgZGlmZmVycyBm
b3IgJEV4dGVuc2lvbklkLiBFeHBlY3RlZCAkKFtpbnRdJEV4cGVjdGVkU2tpbGxDb3VudCksIGZv
dW5kICQoJHNraWxsU291cmNlcy5Db3VudCkuIg0KICAgIH0NCiAgICAkZXZpZGVuY2VSb3dzID0g
TmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICBm
b3JlYWNoICgkc2tpbGxTb3VyY2UgaW4gJHNraWxsU291cmNlcykgew0KICAgICAgICAkbmFtZSA9
IFNwbGl0LVBhdGggJHNraWxsU291cmNlIC1MZWFmDQogICAgICAgICR0YXJnZXQgPSBKb2luLVBh
dGggJHNraWxsc1Jvb3QgJG5hbWUNCiAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
JHRhcmdldCkgew0KICAgICAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHRh
cmdldCAtRm9yY2UNCiAgICAgICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8u
RmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAgICAgICAgICAg
JHJlc29sdmVkID0gR2V0LUxpbmtUYXJnZXRQYXRoIC1QYXRoICR0YXJnZXQNCiAgICAgICAgICAg
ICAgICBpZiAoJG51bGwgLWVxICRyZXNvbHZlZCAtb3IgLW5vdCAkcmVzb2x2ZWQuRXF1YWxzKFtJ
Ty5QYXRoXTo6R2V0RnVsbFBhdGgoJHNraWxsU291cmNlKS5UcmltRW5kKCdcJywgJy8nKSwgW1N0
cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsNCiAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgIkV4aXN0aW5nIHNraWxsIGxpbmsgcG9pbnRzIGVsc2V3aGVyZSBhbmQgaXMgcHJl
c2VydmVkOiAkdGFyZ2V0Ig0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZWlm
ICgoR2V0LVBheWxvYWRUcmVlRGlnZXN0IC1QYXRoICR0YXJnZXQpIC1jbmUgKEdldC1QYXlsb2Fk
VHJlZURpZ2VzdCAtUGF0aCAkc2tpbGxTb3VyY2UpKSB7DQogICAgICAgICAgICAgICAgdGhyb3cg
IkV4aXN0aW5nIHNraWxsIGRpcmVjdG9yeSBkaWZmZXJzIGFuZCBpcyBwcmVzZXJ2ZWQ6ICR0YXJn
ZXQiDQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBbdm9pZF0o
TmV3LUl0ZW0gLUl0ZW1UeXBlIEp1bmN0aW9uIC1QYXRoICR0YXJnZXQgLVRhcmdldCAkc2tpbGxT
b3VyY2UgLUVycm9yQWN0aW9uIFN0b3ApDQogICAgICAgIH0NCiAgICAgICAgJGV2aWRlbmNlUm93
cy5BZGQoIiRuYW1lfCRza2lsbFNvdXJjZSIpDQogICAgfQ0KICAgIHJldHVybiBbcHNjdXN0b21v
YmplY3RdQHsNCiAgICAgICAgZXZpZGVuY2VTaGEyNTYgPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAo
JGV2aWRlbmNlUm93cyAtam9pbiAiYG4iKQ0KICAgICAgICB2ZXJpZmljYXRpb25UeXBlID0gJ3Jl
c29sdmVkLXNraWxsLXBhdGhzLWFuZC1jb3VudCcNCiAgICAgICAgcmVzb2x2ZWRQYXRoQ291bnQg
PSAkc2tpbGxTb3VyY2VzLkNvdW50DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBQdWJsaXNoLUdlbmVy
YXRlZFNraWxsTGluayB7DQogICAgcGFyYW0oW3N0cmluZ10kSGFybmVzc0hvbWUsIFtzdHJpbmdd
JFNraWxsTmFtZSwgW3N0cmluZ10kUHVibGlzaGVkU2tpbGxQYXRoKQ0KICAgICRza2lsbHNSb290
ID0gSW5pdGlhbGl6ZS1OYXRpdmVBZ2VudERpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRIYXJu
ZXNzSG9tZSAnc2tpbGxzJykNCiAgICAkdGFyZ2V0ID0gSm9pbi1QYXRoICRza2lsbHNSb290ICRT
a2lsbE5hbWUNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkdGFyZ2V0KSB7DQogICAg
ICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICR0YXJnZXQgLUZvcmNlIC1FcnJvckFj
dGlvbiBTdG9wDQogICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0
dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAgICAgICAkcmVzb2x2ZWQg
PSBHZXQtTGlua1RhcmdldFBhdGggLVBhdGggJHRhcmdldA0KICAgICAgICAgICAgaWYgKCRudWxs
IC1lcSAkcmVzb2x2ZWQgLW9yIC1ub3QgJHJlc29sdmVkLkVxdWFscyhbSU8uUGF0aF06OkdldEZ1
bGxQYXRoKCRQdWJsaXNoZWRTa2lsbFBhdGgpLlRyaW1FbmQoJ1wnLCAnLycpLCBbU3RyaW5nQ29t
cGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgICAgICAgICAgICAgIHRocm93ICJF
eGlzdGluZyBnZW5lcmF0ZWQgc2tpbGwgbGluayBwb2ludHMgZWxzZXdoZXJlIGFuZCBpcyBwcmVz
ZXJ2ZWQ6ICR0YXJnZXQiDQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZWlmICgoR2V0LVBh
eWxvYWRUcmVlRGlnZXN0IC1QYXRoICR0YXJnZXQpIC1jbmUgKEdldC1QYXlsb2FkVHJlZURpZ2Vz
dCAtUGF0aCAkUHVibGlzaGVkU2tpbGxQYXRoKSkgew0KICAgICAgICAgICAgdGhyb3cgIkV4aXN0
aW5nIGdlbmVyYXRlZCBza2lsbCBkaWZmZXJzIGFuZCBpcyBwcmVzZXJ2ZWQ6ICR0YXJnZXQiDQog
ICAgICAgIH0NCiAgICB9IGVsc2Ugew0KICAgICAgICBbdm9pZF0oTmV3LUl0ZW0gLUl0ZW1UeXBl
IEp1bmN0aW9uIC1QYXRoICR0YXJnZXQgLVRhcmdldCAkUHVibGlzaGVkU2tpbGxQYXRoIC1FcnJv
ckFjdGlvbiBTdG9wKQ0KICAgIH0NCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAoSm9pbi1QYXRoICR0YXJnZXQgJ1NLSUxMLm1kJykgLVBhdGhUeXBlIExlYWYpKSB7IHRocm93
ICJHZW5lcmF0ZWQgc2tpbGwgaXMgbm90IHZpc2libGUgdGhyb3VnaCBpdHMgQ29kZXggbGluazog
JHRhcmdldCIgfQ0KICAgIHJldHVybiAkdGFyZ2V0DQp9DQoNCmZ1bmN0aW9uIEdldC1LU2tpbGxQ
YWNrYWdlRW50cnkgew0KICAgIHBhcmFtKFtzdHJpbmddJFNvdXJjZVBhdGgpDQogICAgJHBhY2th
Z2VSb290ID0gSm9pbi1QYXRoICRTb3VyY2VQYXRoICdub2RlX21vZHVsZXNcQG5vbWFkYW1hc1xr
LXNraWxsJw0KICAgICRwYWNrYWdlUGF0aCA9IEpvaW4tUGF0aCAkcGFja2FnZVJvb3QgJ3BhY2th
Z2UuanNvbicNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGFja2FnZVBh
dGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICdQaW5uZWQgay1za2lsbCBwYWNrYWdlLmpzb24g
aXMgbWlzc2luZy4nIH0NCiAgICAkcGFja2FnZSA9IFJlYWQtU291bEpzb24gLVBhdGggJHBhY2th
Z2VQYXRoDQogICAgJGJpbiA9IEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJHBhY2thZ2UgJ2Jp
bicNCiAgICAkcmVsYXRpdmUgPSAkbnVsbA0KICAgIGlmICgkYmluIC1pcyBbc3RyaW5nXSkgeyAk
cmVsYXRpdmUgPSBbc3RyaW5nXSRiaW4gfQ0KICAgIGVsc2VpZiAoJG51bGwgLW5lICRiaW4pIHsN
CiAgICAgICAgJG5hbWVkID0gJGJpbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydrLXNraWxsJ10NCiAg
ICAgICAgaWYgKCRudWxsIC1uZSAkbmFtZWQpIHsgJHJlbGF0aXZlID0gW3N0cmluZ10kbmFtZWQu
VmFsdWUgfQ0KICAgICAgICBlbHNlaWYgKEAoJGJpbi5QU09iamVjdC5Qcm9wZXJ0aWVzKS5Db3Vu
dCAtZXEgMSkgeyAkcmVsYXRpdmUgPSBbc3RyaW5nXSRiaW4uUFNPYmplY3QuUHJvcGVydGllc1sw
XS5WYWx1ZSB9DQogICAgfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRy
ZWxhdGl2ZSkpIHsgdGhyb3cgJ1Bpbm5lZCBrLXNraWxsIHBhY2thZ2UgaGFzIG5vIGRldGVybWlu
aXN0aWMgQ0xJIGJpbiBlbnRyeS4nIH0NCiAgICAkZW50cnkgPSBbSU8uUGF0aF06OkdldEZ1bGxQ
YXRoKChKb2luLVBhdGggJHBhY2thZ2VSb290ICRyZWxhdGl2ZS5SZXBsYWNlKCcvJywgJ1wnKSkp
DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aEJlbG93IC1QYXRoICRlbnRyeSAtUGFyZW50ICRwYWNr
YWdlUm9vdCkgLW9yIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGVudHJ5IC1QYXRoVHlw
ZSBMZWFmKSkgew0KICAgICAgICB0aHJvdyAnUGlubmVkIGstc2tpbGwgQ0xJIGJpbiBlbnRyeSBl
c2NhcGVzIG9yIGlzIG1pc3NpbmcuJw0KICAgIH0NCiAgICByZXR1cm4gJGVudHJ5DQp9DQoNCmZ1
bmN0aW9uIFB1Ymxpc2gtS1NraWxsRGVyaXZlZFNldCB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9v
dCwgW3N0cmluZ10kU3RhdGVEaXJlY3RvcnksICRFeHRlbnNpb24sIFtzdHJpbmddJFNvdXJjZVBh
dGgpDQogICAgJG1hdGVyaWFsaXplZCA9IEpvaW4tUGF0aCAkU291cmNlUGF0aCAnbWF0ZXJpYWxp
emVkLXNraWxscycNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbWF0ZXJp
YWxpemVkIC1QYXRoVHlwZSBDb250YWluZXIpKSB7IHRocm93ICdQaW5uZWQgay1za2lsbCBtYXRl
cmlhbGl6ZWQtc2tpbGxzIGRpcmVjdG9yeSBpcyBtaXNzaW5nLicgfQ0KICAgICRleHBlY3RlZENv
dW50ID0gW2ludF0oR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAkRXh0ZW5zaW9uICdleHBlY3Rl
ZFNraWxsQ291bnQnKQ0KICAgICRyYXdTa2lsbENvdW50ID0gQChHZXQtU2tpbGxTb3VyY2VEaXJl
Y3RvcnkgLVNvdXJjZVBhdGggJG1hdGVyaWFsaXplZCkuQ291bnQNCiAgICBpZiAoJHJhd1NraWxs
Q291bnQgLW5lICRleHBlY3RlZENvdW50KSB7IHRocm93ICJQaW5uZWQgay1za2lsbCBjb3VudCBk
aWZmZXJzLiBFeHBlY3RlZCAkZXhwZWN0ZWRDb3VudCwgZm91bmQgJHJhd1NraWxsQ291bnQuIiB9
DQogICAgJHBpbiA9IEdldC1FeHBlY3RlZFBpbiAtRXh0ZW5zaW9uICRFeHRlbnNpb24NCiAgICAk
cGluVG9rZW4gPSAoR2V0LVRleHRTaGEyNTYgLVRleHQgKCRwaW4ua2luZCArICd8JyArICRwaW4u
dmFsdWUgKyAnfCcgKyBbc3RyaW5nXShHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRFeHRlbnNp
b24gJ3NraWxsU291cmNlQ29tbWl0JykpKS5TdWJzdHJpbmcoMCwgMTIpDQogICAgJGFkYXB0ZXJS
b290ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJFN0YXRl
RGlyZWN0b3J5ICdhZGFwdGVycycpIC1UaXRsZSAnU2V0dXAtb3duZWQgYWRhcHRlcnMnDQogICAg
JGRlcml2ZWRSb290ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5IC1QYXRoIChKb2luLVBh
dGggJGFkYXB0ZXJSb290ICdkZXJpdmVkLXNraWxscycpIC1UaXRsZSAnRGVyaXZlZCBwaW5uZWQg
c2tpbGxzJw0KICAgICRrU2tpbGxSb290ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5IC1Q
YXRoIChKb2luLVBhdGggJGRlcml2ZWRSb290ICdrLXNraWxsJykgLVRpdGxlICdEZXJpdmVkIGst
c2tpbGwgc2V0cycNCiAgICAkcHVibGlzaGVkID0gSm9pbi1QYXRoICRrU2tpbGxSb290ICRwaW5U
b2tlbg0KICAgICRyYXdEaWdlc3QgPSBHZXQtUGF5bG9hZFRyZWVEaWdlc3QgLVBhdGggJG1hdGVy
aWFsaXplZA0KDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHB1Ymxpc2hl
ZCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgew0KICAgICAgICAkdGVtcG9yYXJ5ID0gSm9pbi1QYXRo
ICRrU2tpbGxSb290ICgnLicgKyAkcGluVG9rZW4gKyAnLm5ldy4nICsgW2d1aWRdOjpOZXdHdWlk
KCkuVG9TdHJpbmcoJ04nKSkNCiAgICAgICAgQ29weS1BZGFwdGVyVHJlZU5vRm9sbG93IC1Tb3Vy
Y2UgJG1hdGVyaWFsaXplZCAtRGVzdGluYXRpb24gJHRlbXBvcmFyeQ0KICAgICAgICAkcmVwbGFj
ZW1lbnRDb3VudCA9IDANCiAgICAgICAgZm9yZWFjaCAoJG1hcmtkb3duIGluIEdldC1DaGlsZEl0
ZW0gLUxpdGVyYWxQYXRoICR0ZW1wb3JhcnkgLVJlY3Vyc2UgLUZpbHRlciAnKi5tZCcgLUZpbGUg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKSB7DQogICAgICAgICAgICAkdGV4dCA9IFtJTy5GaWxl
XTo6UmVhZEFsbFRleHQoJG1hcmtkb3duLkZ1bGxOYW1lLCAkc2NyaXB0OlV0ZjhOb0JvbSkNCiAg
ICAgICAgICAgICR1cGRhdGVkID0gW3JlZ2V4XTo6UmVwbGFjZSgkdGV4dCwgJyg/aSlcYm5weCg/
OlwuY21kKT9ccysoPzoteVxzKyk/QG5vbWFkYW1hcy9rLXNraWxsQDAoPzpcLlswLTl4Kl0rKXsw
LDJ9JywgJ2stc2tpbGwtc291bC5jbWQnKQ0KICAgICAgICAgICAgaWYgKCR1cGRhdGVkIC1jbmUg
JHRleHQpIHsNCiAgICAgICAgICAgICAgICAkcmVwbGFjZW1lbnRDb3VudCsrDQogICAgICAgICAg
ICAgICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoICRtYXJrZG93bi5GdWxsTmFt
ZSAtVGV4dCAkdXBkYXRlZCkNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAo
JHJlcGxhY2VtZW50Q291bnQgLWx0IDEpIHsgdGhyb3cgJ1Bpbm5lZCBrLXNraWxsIHNldCBjb250
YWluZWQgbm8gZmxvYXRpbmcgMC54IENMSSBpbnZvY2F0aW9uIHRvIHJlcGxhY2UuJyB9DQogICAg
ICAgIFt2b2lkXShXcml0ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICR0ZW1wb3Jh
cnkgJ2Rlcml2ZWQtcHJvb2YuanNvbicpIC1WYWx1ZSAoW29yZGVyZWRdQHsNCiAgICAgICAgICAg
IHNjaGVtYVZlcnNpb24gPSAxDQogICAgICAgICAgICBpZCA9ICdrLXNraWxsJw0KICAgICAgICAg
ICAgcGluS2luZCA9ICRwaW4ua2luZA0KICAgICAgICAgICAgcGluVmFsdWUgPSAkcGluLnZhbHVl
DQogICAgICAgICAgICBza2lsbFNvdXJjZUNvbW1pdCA9IFtzdHJpbmddKEdldC1PcHRpb25hbFBy
b3BlcnR5VmFsdWUgJEV4dGVuc2lvbiAnc2tpbGxTb3VyY2VDb21taXQnKQ0KICAgICAgICAgICAg
cmF3VHJlZVNoYTI1NiA9ICRyYXdEaWdlc3QNCiAgICAgICAgICAgIHJlcGxhY2VtZW50RmlsZUNv
dW50ID0gJHJlcGxhY2VtZW50Q291bnQNCiAgICAgICAgfSkpDQogICAgICAgIFtJTy5EaXJlY3Rv
cnldOjpNb3ZlKCR0ZW1wb3JhcnksICRwdWJsaXNoZWQpDQogICAgfQ0KDQogICAgJHByb29mID0g
UmVhZC1Tb3VsSnNvbiAtUGF0aCAoSm9pbi1QYXRoICRwdWJsaXNoZWQgJ2Rlcml2ZWQtcHJvb2Yu
anNvbicpDQogICAgaWYgKFtzdHJpbmddJHByb29mLnBpbktpbmQgLWNuZSAkcGluLmtpbmQgLW9y
IFtzdHJpbmddJHByb29mLnBpblZhbHVlIC1jbmUgJHBpbi52YWx1ZSAtb3INCiAgICAgICAgW3N0
cmluZ10kcHJvb2YucmF3VHJlZVNoYTI1NiAtY25lICRyYXdEaWdlc3QgLW9yIFtpbnRdJHByb29m
LnJlcGxhY2VtZW50RmlsZUNvdW50IC1sdCAxKSB7DQogICAgICAgIHRocm93ICdFeGlzdGluZyBk
ZXJpdmVkIGstc2tpbGwgc2V0IGRpZmZlcnMgZnJvbSBpdHMgaW1tdXRhYmxlIHByb29mLicNCiAg
ICB9DQogICAgaWYgKEAoR2V0LVNraWxsU291cmNlRGlyZWN0b3J5IC1Tb3VyY2VQYXRoICRwdWJs
aXNoZWQpLkNvdW50IC1uZSAkZXhwZWN0ZWRDb3VudCkgeyB0aHJvdyAnRGVyaXZlZCBrLXNraWxs
IGNvdW50IGRpZmZlcnMgYWZ0ZXIgcHVibGljYXRpb24uJyB9DQogICAgaWYgKEAoR2V0LUNoaWxk
SXRlbSAtTGl0ZXJhbFBhdGggJHB1Ymxpc2hlZCAtUmVjdXJzZSAtRmlsdGVyICcqLm1kJyAtRmls
ZSAtRm9yY2UgfCBTZWxlY3QtU3RyaW5nIC1QYXR0ZXJuICcoP2kpXGJucHgoPzpcLmNtZCk/XHMr
KD86LXlccyspP0Bub21hZGFtYXMvay1za2lsbEAwKD86XC5bMC05eCpdKyl7MCwyfScpLkNvdW50
IC1ndCAwKSB7DQogICAgICAgIHRocm93ICdBIGZsb2F0aW5nIGstc2tpbGwgMC54IGNvbW1hbmQg
cmVtYWlucyBpbiB0aGUgZGVyaXZlZCBhZGFwdGVyLicNCiAgICB9DQoNCiAgICAkcGFja2FnZUVu
dHJ5ID0gR2V0LUtTa2lsbFBhY2thZ2VFbnRyeSAtU291cmNlUGF0aCAkU291cmNlUGF0aA0KICAg
ICRzaGltUm9vdCA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRo
ICRSb290ICdfYWdlbnRcc2hhcmVkXHNoaW1zJykgLVRpdGxlICdQaW5uZWQgY29tbWFuZCBzaGlt
cycNCiAgICAkc2hpbVBhdGggPSBKb2luLVBhdGggJHNoaW1Sb290ICdrLXNraWxsLXNvdWwuY21k
Jw0KICAgICRyZWxhdGl2ZUVudHJ5ID0gJHBhY2thZ2VFbnRyeS5TdWJzdHJpbmcoJFJvb3QuVHJp
bUVuZCgnXCcsICcvJykuTGVuZ3RoKS5UcmltU3RhcnQoJ1wnLCAnLycpDQogICAgJHNoaW1UZXh0
ID0gIkBlY2hvIG9mZmByYG5ub2RlIGAiJX5kcDAuLlwuLlwuLlwkcmVsYXRpdmVFbnRyeWAiICUq
YHJgbiINCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc2hpbVBhdGggLVBhdGhUeXBl
IExlYWYpIHsNCiAgICAgICAgJGV4aXN0aW5nU2hpbSA9IFtJTy5GaWxlXTo6UmVhZEFsbFRleHQo
JHNoaW1QYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkNCiAgICAgICAgaWYgKCRleGlzdGluZ1NoaW0g
LWNuZSAkc2hpbVRleHQpIHsgdGhyb3cgJ0V4aXN0aW5nIGstc2tpbGwgc2hpbSBkaWZmZXJzIGFu
ZCBpcyBwcmVzZXJ2ZWQuJyB9DQogICAgfSBlbHNlIHsgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRv
bWljIC1QYXRoICRzaGltUGF0aCAtVGV4dCAkc2hpbVRleHQpIH0NCg0KICAgIHJldHVybiBbcHNj
dXN0b21vYmplY3RdQHsNCiAgICAgICAgcGF0aCA9ICRwdWJsaXNoZWQNCiAgICAgICAgZXhwZWN0
ZWRTa2lsbENvdW50ID0gJGV4cGVjdGVkQ291bnQNCiAgICAgICAgc2hpbVBhdGggPSAkc2hpbVBh
dGgNCiAgICAgICAgZXZpZGVuY2VTaGEyNTYgPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAoJHJhd0Rp
Z2VzdCArICd8JyArIChHZXQtUGF5bG9hZFRyZWVEaWdlc3QgLVBhdGggJHB1Ymxpc2hlZCkgKyAn
fCcgKyAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJHNoaW1QYXRoKSkNCiAgICB9DQp9DQoNCmZ1bmN0
aW9uIEludm9rZS1Db2RleFNraWxsR2VuZXJhdG9yIHsNCiAgICBwYXJhbShbc3RyaW5nXSRTdGF0
ZURpcmVjdG9yeSwgW3N0cmluZ10kR2VuZXJhdGlvbkRpcmVjdG9yeSwgW3N0cmluZ10kQ29kZXhI
b21lLCAkRXh0ZW5zaW9uLCBbc3RyaW5nXSRTb3VyY2VQYXRoKQ0KICAgICRlbnRyeSA9IFtzdHJp
bmddKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJEV4dGVuc2lvbiAnZW50cnknKQ0KICAgICRh
ZGFwdGVyID0gR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAkRXh0ZW5zaW9uICdjb2RleEFkYXB0
ZXInDQogICAgJGFyZ3VtZW50cyA9IEAoKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJGFkYXB0
ZXIgJ2FyZ3MnKSB8IEZvckVhY2gtT2JqZWN0IHsgW3N0cmluZ10kXyB9KQ0KICAgIGlmIChbc3Ry
aW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRlbnRyeSkgLW9yICRhcmd1bWVudHMuQ291bnQgLWVx
IDApIHsgdGhyb3cgJ0NvZGV4IHNraWxsIGdlbmVyYXRvciBlbnRyeSBvciBhcmd1bWVudHMgYXJl
IG1pc3NpbmcuJyB9DQogICAgaWYgKEAoJGFyZ3VtZW50cyB8IFdoZXJlLU9iamVjdCB7ICRfIC1l
cSAnLS1nbG9iYWwnIH0pLkNvdW50IC1ndCAwKSB7IHRocm93ICdHbG9iYWwgZ2VuZXJhdG9yIG91
dHB1dCBpcyBibG9ja2VkOyBnZW5lcmF0aW9uIG11c3Qgc3RheSBpbnNpZGUgdGhlIHNvdWwgc3Rh
Z2luZyBkaXJlY3RvcnkuJyB9DQogICAgJGVudHJ5UGF0aCA9IEpvaW4tUGF0aCAkU291cmNlUGF0
aCAkZW50cnkuUmVwbGFjZSgnLycsICdcJykNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkZW50cnlQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAiQ29kZXggc2tpbGwg
Z2VuZXJhdG9yIGVudHJ5IGlzIG1pc3Npbmc6ICRlbnRyeVBhdGgiIH0NCg0KICAgICRzdGFnaW5n
UGFyZW50ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJEdl
bmVyYXRpb25EaXJlY3RvcnkgJ2FkYXB0ZXItc3RhZ2luZycpIC1UaXRsZSAnR2VuZXJhdGlvbiBh
ZGFwdGVyIHN0YWdpbmcnDQogICAgJHN0YWdpbmdQYXRoID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGly
ZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJHN0YWdpbmdQYXJlbnQgKCd1aS11eC0nICsgW2d1aWRd
OjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKSkpIC1UaXRsZSAnVUkgVVggZ2VuZXJhdG9yIHN0YWdp
bmcnDQogICAgJHRlbXBvcmFyeUNvZGV4SG9tZSA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9y
eSAtUGF0aCAoSm9pbi1QYXRoICRzdGFnaW5nUGF0aCAnY29kZXgtaG9tZScpIC1UaXRsZSAnVGVt
cG9yYXJ5IENvZGV4IGhvbWUnDQogICAgJGdlbmVyYXRvckVudmlyb25tZW50ID0gQHsgQ09ERVhf
SE9NRSA9ICR0ZW1wb3JhcnlDb2RleEhvbWU7IENJID0gJzEnIH0NCiAgICAkY29tbWFuZFJlc3Vs
dCA9IEludm9rZS1Mb2NhbEhhcm5lc3NDb21tYW5kIC1Db21tYW5kTmFtZSAnbm9kZScgLUFyZ3Vt
ZW50cyAoQCgkZW50cnlQYXRoKSArICRhcmd1bWVudHMpIC1FbnZpcm9ubWVudCAkZ2VuZXJhdG9y
RW52aXJvbm1lbnQgLVdvcmtpbmdEaXJlY3RvcnkgJHN0YWdpbmdQYXRoDQogICAgJGdlbmVyYXRl
ZCA9IEpvaW4tUGF0aCAkc3RhZ2luZ1BhdGggJy5hZ2VudHNcc2tpbGxzXHVpLXV4LXByby1tYXgn
DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkZ2VuZXJh
dGVkICdTS0lMTC5tZCcpIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAnVGhlIHBpbm5lZCBVSSBV
WCBDTEkgZGlkIG5vdCBnZW5lcmF0ZSB0aGUgZXhwZWN0ZWQgQ29kZXggU0tJTEwubWQuJyB9DQog
ICAgZm9yZWFjaCAoJHJlcXVpcmVkRGlyZWN0b3J5IGluIEAoJ2RhdGEnLCAnc2NyaXB0cycpKSB7
DQogICAgICAgICRyZXF1aXJlZFBhdGggPSBKb2luLVBhdGggJGdlbmVyYXRlZCAkcmVxdWlyZWRE
aXJlY3RvcnkNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHJlcXVp
cmVkUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyB0aHJvdyAiVGhlIGdlbmVyYXRlZCBVSSBV
WCBza2lsbCBoYXMgbm8gcmVhbCAkcmVxdWlyZWREaXJlY3RvcnkgZGlyZWN0b3J5LiIgfQ0KICAg
ICAgICAkcmVxdWlyZWRJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRyZXF1aXJlZFBhdGgg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgIGlmICgoJHJlcXVpcmVkSXRlbS5BdHRy
aWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsg
dGhyb3cgIkdlbmVyYXRlZCBVSSBVWCAkcmVxdWlyZWREaXJlY3RvcnkgaXMgYSByZXBhcnNlIHBv
aW50LiIgfQ0KICAgIH0NCiAgICAkZ2VuZXJhdGVkRGlnZXN0ID0gR2V0LVBheWxvYWRUcmVlRGln
ZXN0IC1QYXRoICRnZW5lcmF0ZWQNCiAgICAkcGluID0gR2V0LUV4cGVjdGVkUGluIC1FeHRlbnNp
b24gJEV4dGVuc2lvbg0KICAgICRwaW5Ub2tlbiA9IChHZXQtVGV4dFNoYTI1NiAtVGV4dCAoJHBp
bi5raW5kICsgJ3wnICsgJHBpbi52YWx1ZSkpLlN1YnN0cmluZygwLCAxMikNCiAgICAkYWRhcHRl
clJvb3QgPSBJbml0aWFsaXplLUFkYXB0ZXJEaXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkU3Rh
dGVEaXJlY3RvcnkgJ2FkYXB0ZXJzJykgLVRpdGxlICdTZXR1cC1vd25lZCBhZGFwdGVycycNCiAg
ICAkZ2VuZXJhdGVkUm9vdCA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAoSm9p
bi1QYXRoICRhZGFwdGVyUm9vdCAnZ2VuZXJhdGVkLXNraWxscycpIC1UaXRsZSAnQ29udGVudC1h
ZGRyZXNzZWQgZ2VuZXJhdGVkIHNraWxscycNCiAgICAkdWlSb290ID0gSW5pdGlhbGl6ZS1BZGFw
dGVyRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJGdlbmVyYXRlZFJvb3QgJ3VpLXV4LXByby1t
YXgnKSAtVGl0bGUgJ1VJIFVYIGdlbmVyYXRlZCBza2lsbHMnDQogICAgJHB1Ymxpc2hlZCA9IEpv
aW4tUGF0aCAkdWlSb290ICRwaW5Ub2tlbg0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRwdWJsaXNoZWQgLVBhdGhUeXBlIENvbnRhaW5lcikgew0KICAgICAgICBpZiAoKEdldC1QYXls
b2FkVHJlZURpZ2VzdCAtUGF0aCAkcHVibGlzaGVkKSAtY25lICRnZW5lcmF0ZWREaWdlc3QpIHsg
dGhyb3cgJ0V4aXN0aW5nIGdlbmVyYXRlZCBVSSBVWCBza2lsbCBkaWZmZXJzIGZyb20gdGhlIHBp
bm5lZCBDTEkgcmVzdWx0LicgfQ0KICAgIH0gZWxzZSB7DQogICAgICAgIFtJTy5EaXJlY3Rvcnld
OjpNb3ZlKCRnZW5lcmF0ZWQsICRwdWJsaXNoZWQpDQogICAgfQ0KICAgICRyZXNvbHZlZFRhcmdl
dCA9IFB1Ymxpc2gtR2VuZXJhdGVkU2tpbGxMaW5rIC1IYXJuZXNzSG9tZSAkQ29kZXhIb21lIC1T
a2lsbE5hbWUgJ3VpLXV4LXByby1tYXgnIC1QdWJsaXNoZWRTa2lsbFBhdGggJHB1Ymxpc2hlZA0K
ICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgZXZpZGVuY2VTaGEyNTYgPSBH
ZXQtVGV4dFNoYTI1NiAtVGV4dCAoJGNvbW1hbmRSZXN1bHQub3V0cHV0U2hhMjU2ICsgJ3wnICsg
JGdlbmVyYXRlZERpZ2VzdCArICd8JyArICRyZXNvbHZlZFRhcmdldCkNCiAgICAgICAgdmVyaWZp
Y2F0aW9uVHlwZSA9ICdwaW5uZWQtY2xpLWdlbmVyYXRpb24tYW5kLXJlc29sdmVkLXNraWxsLXBh
dGgnDQogICAgICAgIHJlc29sdmVkUGF0aENvdW50ID0gMQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24g
R2V0LU5hdHVyYWxIb21lUHJvZmlsZVBhdGggew0KICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051
bGxPcldoaXRlU3BhY2UoJFRlc3RSb290KSkgew0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkVGVzdEV4dGVybmFsUHJvZmlsZVJvb3QpKSB7IHJldHVybiAkbnVsbCB9
DQogICAgICAgICRjYW5kaWRhdGUgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRUZXN0RXh0ZXJu
YWxQcm9maWxlUm9vdCkuVHJpbUVuZCgnXCcsICcvJykNCiAgICAgICAgJGZpeHR1cmVCb3VuZGFy
eSA9IEpvaW4tUGF0aCAoR2V0LVNvdWxFbmdpbmVMYXlvdXQpLlNldHVwRGlyZWN0b3J5ICd0ZXN0
c1xmaXh0dXJlcycNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aEJlbG93IC1QYXRoICRjYW5k
aWRhdGUgLVBhcmVudCAkZml4dHVyZUJvdW5kYXJ5KSkgew0KICAgICAgICAgICAgdGhyb3cgJ1Rl
c3RFeHRlcm5hbFByb2ZpbGVSb290IGlzIHBlcm1pdHRlZCBvbmx5IGJlbG93IHNldHVwL3Rlc3Rz
L2ZpeHR1cmVzLicNCiAgICAgICAgfQ0KICAgICAgICBpZiAoVGVzdC1QYXRoQmVsb3cgLVBhdGgg
JGNhbmRpZGF0ZSAtUGFyZW50ICRUZXN0Um9vdCAtQWxsb3dQYXJlbnQpIHsNCiAgICAgICAgICAg
IHRocm93ICdUaGUgZml4dHVyZSBleHRlcm5hbCBwcm9maWxlIG11c3QgYmUgb3V0c2lkZSBpdHMg
Zml4dHVyZSBzb3VsIHJvb3QuJw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkY2FuZGlkYXRl
DQogICAgfQ0KICAgICRwcm9maWxlUGF0aCA9IFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgo
W0Vudmlyb25tZW50K1NwZWNpYWxGb2xkZXJdOjpVc2VyUHJvZmlsZSkNCiAgICBpZiAoW3N0cmlu
Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkcHJvZmlsZVBhdGgpKSB7IHRocm93ICdUaGUgY3VycmVu
dCB1c2VyIHByb2ZpbGUgcGF0aCBpcyB1bmF2YWlsYWJsZS4nIH0NCiAgICByZXR1cm4gW0lPLlBh
dGhdOjpHZXRGdWxsUGF0aCgkcHJvZmlsZVBhdGgpLlRyaW1FbmQoJ1wnLCAnLycpDQp9DQoNCmZ1
bmN0aW9uIEdldC1Ob0ZvbGxvd0ZpbGVTbmFwc2hvdCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0
aCkNCiAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkUGF0aCAtRm9yY2UgLUVycm9y
QWN0aW9uIFN0b3ANCiAgICBpZiAoJGl0ZW0uUFNJc0NvbnRhaW5lciAtb3IgKCRpdGVtLkF0dHJp
YnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgew0K
ICAgICAgICB0aHJvdyAiQSBtaWdyYXRpb24gZmlsZSBtdXN0IGJlIGEgcmVhbCBmaWxlOiAkUGF0
aCINCiAgICB9DQogICAgJGJlZm9yZUxlbmd0aCA9IFtsb25nXSRpdGVtLkxlbmd0aA0KICAgICRi
ZWZvcmVXcml0ZSA9ICRpdGVtLkxhc3RXcml0ZVRpbWVVdGMNCiAgICAkc3RyZWFtID0gJG51bGwN
CiAgICAkYWxnb3JpdGhtID0gJG51bGwNCiAgICB0cnkgew0KICAgICAgICAkc3RyZWFtID0gTmV3
LU9iamVjdCBJTy5GaWxlU3RyZWFtKCRpdGVtLkZ1bGxOYW1lLCBbSU8uRmlsZU1vZGVdOjpPcGVu
LCBbSU8uRmlsZUFjY2Vzc106OlJlYWQsIFtJTy5GaWxlU2hhcmVdOjpSZWFkKQ0KICAgICAgICAk
YWxnb3JpdGhtID0gW1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAg
ICAgICAkc2hhID0gKFtCaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkYWxnb3JpdGhtLkNvbXB1dGVI
YXNoKCRzdHJlYW0pKSkuUmVwbGFjZSgnLScsICcnKS5Ub0xvd2VySW52YXJpYW50KCkNCiAgICB9
IGZpbmFsbHkgew0KICAgICAgICBpZiAoJG51bGwgLW5lICRhbGdvcml0aG0pIHsgJGFsZ29yaXRo
bS5EaXNwb3NlKCkgfQ0KICAgICAgICBpZiAoJG51bGwgLW5lICRzdHJlYW0pIHsgJHN0cmVhbS5E
aXNwb3NlKCkgfQ0KICAgIH0NCiAgICAkaXRlbS5SZWZyZXNoKCkNCiAgICBpZiAoJGJlZm9yZUxl
bmd0aCAtbmUgW2xvbmddJGl0ZW0uTGVuZ3RoIC1vciAkYmVmb3JlV3JpdGUgLW5lICRpdGVtLkxh
c3RXcml0ZVRpbWVVdGMpIHsNCiAgICAgICAgdGhyb3cgIkEgbWlncmF0aW9uIGZpbGUgY2hhbmdl
ZCB3aGlsZSBpdCB3YXMgYmVpbmcgaW52ZW50b3JpZWQ6ICRQYXRoIg0KICAgIH0NCiAgICByZXR1
cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGxlbmd0aCA9IFtsb25nXSRpdGVtLkxlbmd0aDsgc2hhMjU2
ID0gJHNoYSB9DQp9DQoNCmZ1bmN0aW9uIEdldC1OYXR1cmFsSG9tZUludmVudG9yeSB7DQogICAg
cGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICAkcm9vdCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgo
JFBhdGgpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgJHJvb3RJdGVtID0gR2V0LUl0ZW0gLUxpdGVy
YWxQYXRoICRyb290IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgtbm90ICRyb290
SXRlbS5QU0lzQ29udGFpbmVyIC1vciAoJHJvb3RJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZp
bGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgew0KICAgICAgICB0aHJvdyAiQSBu
YXR1cmFsLWhvbWUgaW52ZW50b3J5IHJvb3QgbXVzdCBiZSBhIHJlYWwgZGlyZWN0b3J5OiAkcm9v
dCINCiAgICB9DQogICAgJGVudHJpZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5H
ZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRxdWV1ZSA9IE5ldy1PYmplY3QgJ1N5c3RlbS5Db2xs
ZWN0aW9ucy5HZW5lcmljLlF1ZXVlW29iamVjdF0nDQogICAgJHF1ZXVlLkVucXVldWUoW3BzY3Vz
dG9tb2JqZWN0XUB7IGRpcmVjdG9yeSA9ICRyb290SXRlbTsgZm9yYmlkZGVuQW5jZXN0b3IgPSAk
ZmFsc2UgfSkNCiAgICB3aGlsZSAoJHF1ZXVlLkNvdW50IC1ndCAwKSB7DQogICAgICAgICRjdXJz
b3IgPSAkcXVldWUuRGVxdWV1ZSgpDQogICAgICAgIGZvcmVhY2ggKCRpdGVtIGluICRjdXJzb3Iu
ZGlyZWN0b3J5LkVudW1lcmF0ZUZpbGVTeXN0ZW1JbmZvcygpKSB7DQogICAgICAgICAgICAkcmVs
YXRpdmUgPSAkaXRlbS5GdWxsTmFtZS5TdWJzdHJpbmcoJHJvb3QuTGVuZ3RoKS5UcmltU3RhcnQo
J1wnLCAnLycpLlJlcGxhY2UoJ1wnLCAnLycpDQogICAgICAgICAgICAkaXNSZXBhcnNlID0gKCgk
aXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkg
LW5lIDApDQogICAgICAgICAgICAkaXNJbnN0cnVjdGlvbk5hbWUgPSAkaXRlbS5OYW1lLkVxdWFs
cygnQUdFTlRTLm1kJywgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkgLW9y
DQogICAgICAgICAgICAgICAgJGl0ZW0uTmFtZS5FcXVhbHMoJ0NMQVVERS5tZCcsIFtTdHJpbmdD
b21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpDQogICAgICAgICAgICAkZm9yYmlkZGVuID0g
W2Jvb2xdJGN1cnNvci5mb3JiaWRkZW5BbmNlc3RvciAtb3IgJGlzSW5zdHJ1Y3Rpb25OYW1lDQog
ICAgICAgICAgICBpZiAoJGlzUmVwYXJzZSkgew0KICAgICAgICAgICAgICAgICR0YXJnZXRQcm9w
ZXJ0eSA9ICRpdGVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ1RhcmdldCddDQogICAgICAgICAgICAg
ICAgJGxpbmtUeXBlUHJvcGVydHkgPSAkaXRlbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydMaW5rVHlw
ZSddDQogICAgICAgICAgICAgICAgJHRhcmdldFRleHQgPSBpZiAoJG51bGwgLWVxICR0YXJnZXRQ
cm9wZXJ0eSkgeyAnJyB9IGVsc2UgeyBAKCR0YXJnZXRQcm9wZXJ0eS5WYWx1ZSkgLWpvaW4gJ3wn
IH0NCiAgICAgICAgICAgICAgICAkbGlua1R5cGUgPSBpZiAoJG51bGwgLWVxICRsaW5rVHlwZVBy
b3BlcnR5KSB7ICd1bmtub3duJyB9IGVsc2UgeyBbc3RyaW5nXSRsaW5rVHlwZVByb3BlcnR5LlZh
bHVlIH0NCiAgICAgICAgICAgICAgICAkZW50cmllcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7DQog
ICAgICAgICAgICAgICAgICAgIHBhdGggPSAkcmVsYXRpdmU7IGtpbmQgPSAncmVwYXJzZSc7IGxl
bmd0aCA9ICRudWxsDQogICAgICAgICAgICAgICAgICAgIHNoYTI1NiA9IEdldC1UZXh0U2hhMjU2
IC1UZXh0ICgkbGlua1R5cGUgKyAnfCcgKyAkdGFyZ2V0VGV4dCkNCiAgICAgICAgICAgICAgICAg
ICAgZm9yYmlkZGVuSW5zdHJ1Y3Rpb24gPSAkZm9yYmlkZGVuDQogICAgICAgICAgICAgICAgfSkN
CiAgICAgICAgICAgIH0gZWxzZWlmICgkaXRlbSAtaXMgW0lPLkRpcmVjdG9yeUluZm9dKSB7DQog
ICAgICAgICAgICAgICAgJGVudHJpZXMuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAg
ICAgICAgICAgICBwYXRoID0gJHJlbGF0aXZlOyBraW5kID0gJ2RpcmVjdG9yeSc7IGxlbmd0aCA9
ICRudWxsOyBzaGEyNTYgPSAkbnVsbDsgZm9yYmlkZGVuSW5zdHJ1Y3Rpb24gPSAkZm9yYmlkZGVu
DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAkcXVldWUuRW5xdWV1ZShbcHNj
dXN0b21vYmplY3RdQHsgZGlyZWN0b3J5ID0gJGl0ZW07IGZvcmJpZGRlbkFuY2VzdG9yID0gJGZv
cmJpZGRlbiB9KQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkc25hcHNo
b3QgPSBHZXQtTm9Gb2xsb3dGaWxlU25hcHNob3QgLVBhdGggJGl0ZW0uRnVsbE5hbWUNCiAgICAg
ICAgICAgICAgICAkZW50cmllcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAg
ICAgICAgIHBhdGggPSAkcmVsYXRpdmU7IGtpbmQgPSAnZmlsZSc7IGxlbmd0aCA9ICRzbmFwc2hv
dC5sZW5ndGg7IHNoYTI1NiA9ICRzbmFwc2hvdC5zaGEyNTY7IGZvcmJpZGRlbkluc3RydWN0aW9u
ID0gJGZvcmJpZGRlbg0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9DQogICAgICAg
IH0NCiAgICB9DQogICAgcmV0dXJuIEAoJGVudHJpZXMgfCBTb3J0LU9iamVjdCBwYXRoKQ0KfQ0K
DQpmdW5jdGlvbiBHZXQtTmF0dXJhbEhvbWVJbnZlbnRvcnlEaWdlc3Qgew0KICAgIHBhcmFtKFtv
YmplY3RbXV0kSW52ZW50b3J5KQ0KICAgICRyb3dzID0gQCgkSW52ZW50b3J5IHwgU29ydC1PYmpl
Y3QgcGF0aCB8IEZvckVhY2gtT2JqZWN0IHsNCiAgICAgICAgJ3swfXx7MX18ezJ9fHszfXx7NH0n
IC1mIFtzdHJpbmddJF8ucGF0aCwgW3N0cmluZ10kXy5raW5kLCBbc3RyaW5nXSRfLmxlbmd0aCwg
W3N0cmluZ10kXy5zaGEyNTYsIFtib29sXSRfLmZvcmJpZGRlbkluc3RydWN0aW9uDQogICAgfSkN
CiAgICByZXR1cm4gR2V0LVRleHRTaGEyNTYgLVRleHQgKCRyb3dzIC1qb2luICJgbiIpDQp9DQoN
CmZ1bmN0aW9uIE5ldy1OYXR1cmFsSG9tZU1lcmdlUGxhbiB7DQogICAgcGFyYW0oW3N0cmluZ10k
RXh0ZXJuYWxQYXRoLCBbc3RyaW5nXSRJbnRlcm5hbFBhdGgpDQogICAgJGV4dGVybmFsSW52ZW50
b3J5ID0gQChHZXQtTmF0dXJhbEhvbWVJbnZlbnRvcnkgLVBhdGggJEV4dGVybmFsUGF0aCkNCiAg
ICAkaW50ZXJuYWxJbnZlbnRvcnkgPSBAKEdldC1OYXR1cmFsSG9tZUludmVudG9yeSAtUGF0aCAk
SW50ZXJuYWxQYXRoKQ0KICAgICRpbnRlcm5hbEJ5UGF0aCA9IEB7fQ0KICAgIGZvcmVhY2ggKCRl
bnRyeSBpbiAkaW50ZXJuYWxJbnZlbnRvcnkpIHsgJGludGVybmFsQnlQYXRoW1tzdHJpbmddJGVu
dHJ5LnBhdGhdID0gJGVudHJ5IH0NCiAgICAkZGlyZWN0b3JpZXMgPSBOZXctT2JqZWN0IFN5c3Rl
bS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRjb3BpZXMgPSBOZXctT2Jq
ZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRjb25mbGlj
dHMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0K
ICAgICRmb3JiaWRkZW4gPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxp
c3Rbb2JqZWN0XQ0KICAgICRzYW1lQ291bnQgPSAwDQogICAgZm9yZWFjaCAoJGV4dGVybmFsIGlu
ICRleHRlcm5hbEludmVudG9yeSkgew0KICAgICAgICBpZiAoW2Jvb2xdJGV4dGVybmFsLmZvcmJp
ZGRlbkluc3RydWN0aW9uKSB7DQogICAgICAgICAgICAkZm9yYmlkZGVuLkFkZChbcHNjdXN0b21v
YmplY3RdQHsgcGF0aCA9IFtzdHJpbmddJGV4dGVybmFsLnBhdGg7IGtpbmQgPSBbc3RyaW5nXSRl
eHRlcm5hbC5raW5kIH0pDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICB9DQogICAgICAg
ICRyZWxhdGl2ZSA9IFtzdHJpbmddJGV4dGVybmFsLnBhdGgNCiAgICAgICAgaWYgKC1ub3QgJGlu
dGVybmFsQnlQYXRoLkNvbnRhaW5zS2V5KCRyZWxhdGl2ZSkpIHsNCiAgICAgICAgICAgIGlmIChb
c3RyaW5nXSRleHRlcm5hbC5raW5kIC1lcSAnZGlyZWN0b3J5Jykgew0KICAgICAgICAgICAgICAg
ICRkaXJlY3Rvcmllcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IHBhdGggPSAkcmVsYXRpdmUgfSkN
CiAgICAgICAgICAgIH0gZWxzZWlmIChbc3RyaW5nXSRleHRlcm5hbC5raW5kIC1lcSAnZmlsZScp
IHsNCiAgICAgICAgICAgICAgICAkY29waWVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9
ICRyZWxhdGl2ZTsgbGVuZ3RoID0gW2xvbmddJGV4dGVybmFsLmxlbmd0aDsgc2hhMjU2ID0gW3N0
cmluZ10kZXh0ZXJuYWwuc2hhMjU2IH0pDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg
ICAgICAgICRjb25mbGljdHMuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgICAg
ICAgICBwYXRoID0gJHJlbGF0aXZlOyByZWFzb24gPSAnZXh0ZXJuYWwtcmVwYXJzZS1ub3QtbWVy
Z2VkJzsgZXh0ZXJuYWxLaW5kID0gJ3JlcGFyc2UnOyBpbnRlcm5hbEtpbmQgPSAnbWlzc2luZycN
CiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxTaGEyNTYgPSBbc3RyaW5nXSRleHRlcm5hbC5z
aGEyNTY7IGludGVybmFsU2hhMjU2ID0gJG51bGwNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgfQ0KICAgICAgICAkaW50ZXJu
YWwgPSAkaW50ZXJuYWxCeVBhdGhbJHJlbGF0aXZlXQ0KICAgICAgICBpZiAoW3N0cmluZ10kZXh0
ZXJuYWwua2luZCAtbmUgW3N0cmluZ10kaW50ZXJuYWwua2luZCkgew0KICAgICAgICAgICAgJGNv
bmZsaWN0cy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAgICAgcGF0aCA9ICRy
ZWxhdGl2ZTsgcmVhc29uID0gJ3R5cGUtZGlmZmVyZW5jZSc7IGV4dGVybmFsS2luZCA9IFtzdHJp
bmddJGV4dGVybmFsLmtpbmQ7IGludGVybmFsS2luZCA9IFtzdHJpbmddJGludGVybmFsLmtpbmQN
CiAgICAgICAgICAgICAgICBleHRlcm5hbFNoYTI1NiA9IFtzdHJpbmddJGV4dGVybmFsLnNoYTI1
NjsgaW50ZXJuYWxTaGEyNTYgPSBbc3RyaW5nXSRpbnRlcm5hbC5zaGEyNTYNCiAgICAgICAgICAg
IH0pDQogICAgICAgIH0gZWxzZWlmIChbc3RyaW5nXSRleHRlcm5hbC5raW5kIC1lcSAnZmlsZScg
LWFuZA0KICAgICAgICAgICAgKFtsb25nXSRleHRlcm5hbC5sZW5ndGggLW5lIFtsb25nXSRpbnRl
cm5hbC5sZW5ndGggLW9yIFtzdHJpbmddJGV4dGVybmFsLnNoYTI1NiAtY25lIFtzdHJpbmddJGlu
dGVybmFsLnNoYTI1NikpIHsNCiAgICAgICAgICAgICRjb25mbGljdHMuQWRkKFtwc2N1c3RvbW9i
amVjdF1Aew0KICAgICAgICAgICAgICAgIHBhdGggPSAkcmVsYXRpdmU7IHJlYXNvbiA9ICdieXRl
LWRpZmZlcmVuY2UnOyBleHRlcm5hbEtpbmQgPSAnZmlsZSc7IGludGVybmFsS2luZCA9ICdmaWxl
Jw0KICAgICAgICAgICAgICAgIGV4dGVybmFsU2hhMjU2ID0gW3N0cmluZ10kZXh0ZXJuYWwuc2hh
MjU2OyBpbnRlcm5hbFNoYTI1NiA9IFtzdHJpbmddJGludGVybmFsLnNoYTI1Ng0KICAgICAgICAg
ICAgfSkNCiAgICAgICAgfSBlbHNlaWYgKFtzdHJpbmddJGV4dGVybmFsLmtpbmQgLWVxICdyZXBh
cnNlJyAtYW5kIFtzdHJpbmddJGV4dGVybmFsLnNoYTI1NiAtY25lIFtzdHJpbmddJGludGVybmFs
LnNoYTI1Nikgew0KICAgICAgICAgICAgJGNvbmZsaWN0cy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7
DQogICAgICAgICAgICAgICAgcGF0aCA9ICRyZWxhdGl2ZTsgcmVhc29uID0gJ3JlcGFyc2UtdGFy
Z2V0LWRpZmZlcmVuY2UnOyBleHRlcm5hbEtpbmQgPSAncmVwYXJzZSc7IGludGVybmFsS2luZCA9
ICdyZXBhcnNlJw0KICAgICAgICAgICAgICAgIGV4dGVybmFsU2hhMjU2ID0gW3N0cmluZ10kZXh0
ZXJuYWwuc2hhMjU2OyBpbnRlcm5hbFNoYTI1NiA9IFtzdHJpbmddJGludGVybmFsLnNoYTI1Ng0K
ICAgICAgICAgICAgfSkNCiAgICAgICAgfSBlbHNlIHsgJHNhbWVDb3VudCsrIH0NCiAgICB9DQog
ICAgJGRpcmVjdG9yeUNhbmRpZGF0ZXMgPSBAKCRkaXJlY3Rvcmllcy5Ub0FycmF5KCkpDQogICAg
JGNvcHlDYW5kaWRhdGVzID0gQCgkY29waWVzLlRvQXJyYXkoKSkNCiAgICAkY29uZmxpY3RQYXRo
cyA9IEAoJGNvbmZsaWN0cy5Ub0FycmF5KCkgfCBGb3JFYWNoLU9iamVjdCB7IFtzdHJpbmddJF8u
cGF0aCB9KQ0KICAgIGlmICgkY29uZmxpY3RQYXRocy5Db3VudCAtZ3QgMCkgew0KICAgICAgICAk
ZGlyZWN0b3J5Q2FuZGlkYXRlcyA9IEAoJGRpcmVjdG9yeUNhbmRpZGF0ZXMgfCBXaGVyZS1PYmpl
Y3Qgew0KICAgICAgICAgICAgJGNhbmRpZGF0ZSA9IFtzdHJpbmddJF8ucGF0aA0KICAgICAgICAg
ICAgQCgkY29uZmxpY3RQYXRocyB8IFdoZXJlLU9iamVjdCB7DQogICAgICAgICAgICAgICAgJGNh
bmRpZGF0ZS5FcXVhbHMoJF8sIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2Up
IC1vcg0KICAgICAgICAgICAgICAgICAgICAkY2FuZGlkYXRlLlN0YXJ0c1dpdGgoJF8gKyAnLycs
IFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpDQogICAgICAgICAgICB9KS5D
b3VudCAtZXEgMA0KICAgICAgICB9KQ0KICAgICAgICAkY29weUNhbmRpZGF0ZXMgPSBAKCRjb3B5
Q2FuZGlkYXRlcyB8IFdoZXJlLU9iamVjdCB7DQogICAgICAgICAgICAkY2FuZGlkYXRlID0gW3N0
cmluZ10kXy5wYXRoDQogICAgICAgICAgICBAKCRjb25mbGljdFBhdGhzIHwgV2hlcmUtT2JqZWN0
IHsNCiAgICAgICAgICAgICAgICAkY2FuZGlkYXRlLkVxdWFscygkXywgW1N0cmluZ0NvbXBhcmlz
b25dOjpPcmRpbmFsSWdub3JlQ2FzZSkgLW9yDQogICAgICAgICAgICAgICAgICAgICRjYW5kaWRh
dGUuU3RhcnRzV2l0aCgkXyArICcvJywgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3Jl
Q2FzZSkNCiAgICAgICAgICAgIH0pLkNvdW50IC1lcSAwDQogICAgICAgIH0pDQogICAgfQ0KICAg
ICRwbGFuQ29yZSA9IFtvcmRlcmVkXUB7DQogICAgICAgIGV4dGVybmFsSW52ZW50b3J5U2hhMjU2
ID0gR2V0LU5hdHVyYWxIb21lSW52ZW50b3J5RGlnZXN0IC1JbnZlbnRvcnkgJGV4dGVybmFsSW52
ZW50b3J5DQogICAgICAgIGludGVybmFsSW52ZW50b3J5U2hhMjU2ID0gR2V0LU5hdHVyYWxIb21l
SW52ZW50b3J5RGlnZXN0IC1JbnZlbnRvcnkgJGludGVybmFsSW52ZW50b3J5DQogICAgICAgIGRp
cmVjdG9yaWVzVG9DcmVhdGUgPSBAKCRkaXJlY3RvcnlDYW5kaWRhdGVzIHwgU29ydC1PYmplY3Qg
eyAoW3N0cmluZ10kXy5wYXRoIC1zcGxpdCAnLycpLkNvdW50IH0sIHBhdGgpDQogICAgICAgIGZp
bGVzVG9Db3B5ID0gQCgkY29weUNhbmRpZGF0ZXMgfCBTb3J0LU9iamVjdCBwYXRoKQ0KICAgICAg
ICBjb25mbGljdHMgPSBAKCRjb25mbGljdHMuVG9BcnJheSgpIHwgU29ydC1PYmplY3QgcGF0aCkN
CiAgICAgICAgZm9yYmlkZGVuSW5zdHJ1Y3Rpb25zID0gQCgkZm9yYmlkZGVuLlRvQXJyYXkoKSB8
IFNvcnQtT2JqZWN0IHBhdGgpDQogICAgICAgIGJ5dGVFcXVhbEVudHJ5Q291bnQgPSAkc2FtZUNv
dW50DQogICAgfQ0KICAgICRwbGFuU2hhID0gR2V0LVRleHRTaGEyNTYgLVRleHQgKCRwbGFuQ29y
ZSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAxNiAtQ29tcHJlc3MpDQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICBleHRlcm5hbEludmVudG9yeSA9ICRleHRlcm5hbEludmVu
dG9yeQ0KICAgICAgICBpbnRlcm5hbEludmVudG9yeSA9ICRpbnRlcm5hbEludmVudG9yeQ0KICAg
ICAgICBleHRlcm5hbEludmVudG9yeVNoYTI1NiA9ICRwbGFuQ29yZS5leHRlcm5hbEludmVudG9y
eVNoYTI1Ng0KICAgICAgICBpbnRlcm5hbEludmVudG9yeVNoYTI1NiA9ICRwbGFuQ29yZS5pbnRl
cm5hbEludmVudG9yeVNoYTI1Ng0KICAgICAgICBkaXJlY3Rvcmllc1RvQ3JlYXRlID0gJHBsYW5D
b3JlLmRpcmVjdG9yaWVzVG9DcmVhdGUNCiAgICAgICAgZmlsZXNUb0NvcHkgPSAkcGxhbkNvcmUu
ZmlsZXNUb0NvcHkNCiAgICAgICAgY29uZmxpY3RzID0gJHBsYW5Db3JlLmNvbmZsaWN0cw0KICAg
ICAgICBmb3JiaWRkZW5JbnN0cnVjdGlvbnMgPSAkcGxhbkNvcmUuZm9yYmlkZGVuSW5zdHJ1Y3Rp
b25zDQogICAgICAgIGJ5dGVFcXVhbEVudHJ5Q291bnQgPSAkc2FtZUNvdW50DQogICAgICAgIHBs
YW5TaGEyNTYgPSAkcGxhblNoYQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gQ29weS1OYXR1cmFsSG9t
ZVBsYW5GaWxlcyB7DQogICAgcGFyYW0oW3N0cmluZ10kRXh0ZXJuYWxQYXRoLCBbc3RyaW5nXSRJ
bnRlcm5hbFBhdGgsICRQbGFuKQ0KICAgIGZvcmVhY2ggKCRlbnRyeSBpbiBAKCRQbGFuLmRpcmVj
dG9yaWVzVG9DcmVhdGUpKSB7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IEpvaW4tUGF0aCAkSW50
ZXJuYWxQYXRoIChbc3RyaW5nXSRlbnRyeS5wYXRoKS5SZXBsYWNlKCcvJywgJ1wnKQ0KICAgICAg
ICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJGRlc3RpbmF0aW9uKQ0KICAgICAg
ICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGVzdGluYXRpb24pIHsNCiAgICAgICAgICAg
ICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRkZXN0aW5hdGlvbiAtRm9yY2UgLUVycm9y
QWN0aW9uIFN0b3ANCiAgICAgICAgICAgIGlmICgtbm90ICRpdGVtLlBTSXNDb250YWluZXIgLW9y
ICgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2lu
dCkgLW5lIDApIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAiQSBwbGFubmVkIG1lcmdlIGRpcmVj
dG9yeSBjb2xsaWRlZCBiZWZvcmUgY3JlYXRpb246ICRkZXN0aW5hdGlvbiINCiAgICAgICAgICAg
IH0NCiAgICAgICAgfSBlbHNlIHsgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9y
eSgkZGVzdGluYXRpb24pIH0NCiAgICB9DQogICAgZm9yZWFjaCAoJGVudHJ5IGluIEAoJFBsYW4u
ZmlsZXNUb0NvcHkpKSB7DQogICAgICAgICRyZWxhdGl2ZSA9IChbc3RyaW5nXSRlbnRyeS5wYXRo
KS5SZXBsYWNlKCcvJywgJ1wnKQ0KICAgICAgICAkc291cmNlID0gSm9pbi1QYXRoICRFeHRlcm5h
bFBhdGggJHJlbGF0aXZlDQogICAgICAgICRkZXN0aW5hdGlvbiA9IEpvaW4tUGF0aCAkSW50ZXJu
YWxQYXRoICRyZWxhdGl2ZQ0KICAgICAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBh
dGggJGRlc3RpbmF0aW9uKQ0KICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGVz
dGluYXRpb24pIHsgdGhyb3cgIkEgcGxhbm5lZCBtZXJnZSBmaWxlIGNvbGxpZGVkIGJlZm9yZSBj
cmVhdGlvbjogJGRlc3RpbmF0aW9uIiB9DQogICAgICAgICRzb3VyY2VTbmFwc2hvdCA9IEdldC1O
b0ZvbGxvd0ZpbGVTbmFwc2hvdCAtUGF0aCAkc291cmNlDQogICAgICAgIGlmIChbbG9uZ10kc291
cmNlU25hcHNob3QubGVuZ3RoIC1uZSBbbG9uZ10kZW50cnkubGVuZ3RoIC1vciBbc3RyaW5nXSRz
b3VyY2VTbmFwc2hvdC5zaGEyNTYgLWNuZSBbc3RyaW5nXSRlbnRyeS5zaGEyNTYpIHsNCiAgICAg
ICAgICAgIHRocm93ICJBIGxlZ2FjeSBmaWxlIGNoYW5nZWQgYWZ0ZXIgdGhlIG1lcmdlIHBsYW4g
d2FzIHJlY29yZGVkOiAkc291cmNlIg0KICAgICAgICB9DQogICAgICAgICRwYXJlbnQgPSBTcGxp
dC1QYXRoIC1QYXJlbnQgJGRlc3RpbmF0aW9uDQogICAgICAgIFt2b2lkXShBc3NlcnQtU291bE93
bmVkUGF0aCAtUGF0aCAkcGFyZW50KQ0KICAgICAgICAkdGVtcG9yYXJ5ID0gSm9pbi1QYXRoICRw
YXJlbnQgKCcuc291bC1ob21lLW1lcmdlLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygn
TicpICsgJy50bXAnKQ0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgW0lPLkZpbGVdOjpDb3B5
KCRzb3VyY2UsICR0ZW1wb3JhcnksICRmYWxzZSkNCiAgICAgICAgICAgICR0ZW1wb3JhcnlTbmFw
c2hvdCA9IEdldC1Ob0ZvbGxvd0ZpbGVTbmFwc2hvdCAtUGF0aCAkdGVtcG9yYXJ5DQogICAgICAg
ICAgICBpZiAoW2xvbmddJHRlbXBvcmFyeVNuYXBzaG90Lmxlbmd0aCAtbmUgW2xvbmddJGVudHJ5
Lmxlbmd0aCAtb3IgW3N0cmluZ10kdGVtcG9yYXJ5U25hcHNob3Quc2hhMjU2IC1jbmUgW3N0cmlu
Z10kZW50cnkuc2hhMjU2KSB7DQogICAgICAgICAgICAgICAgdGhyb3cgIkEgY29waWVkIGxlZ2Fj
eSBmaWxlIGZhaWxlZCBieXRlIHZlcmlmaWNhdGlvbjogJHNvdXJjZSINCiAgICAgICAgICAgIH0N
CiAgICAgICAgICAgIFtJTy5GaWxlXTo6TW92ZSgkdGVtcG9yYXJ5LCAkZGVzdGluYXRpb24pDQog
ICAgICAgICAgICAkZGVzdGluYXRpb25TbmFwc2hvdCA9IEdldC1Ob0ZvbGxvd0ZpbGVTbmFwc2hv
dCAtUGF0aCAkZGVzdGluYXRpb24NCiAgICAgICAgICAgIGlmIChbbG9uZ10kZGVzdGluYXRpb25T
bmFwc2hvdC5sZW5ndGggLW5lIFtsb25nXSRlbnRyeS5sZW5ndGggLW9yIFtzdHJpbmddJGRlc3Rp
bmF0aW9uU25hcHNob3Quc2hhMjU2IC1jbmUgW3N0cmluZ10kZW50cnkuc2hhMjU2KSB7DQogICAg
ICAgICAgICAgICAgdGhyb3cgIkEgbWVyZ2VkIGxlZ2FjeSBmaWxlIGZhaWxlZCBpdHMgZmluYWwg
Ynl0ZSB2ZXJpZmljYXRpb246ICRkZXN0aW5hdGlvbiINCiAgICAgICAgICAgIH0NCiAgICAgICAg
fSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICR0ZW1w
b3JhcnkgLVBhdGhUeXBlIExlYWYpIHsgW0lPLkZpbGVdOjpEZWxldGUoJHRlbXBvcmFyeSkgfQ0K
ICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBBZGQtTmF0dXJhbEhvbWVKb3VybmFsIHsN
CiAgICBwYXJhbShbc3RyaW5nXSRTdGF0ZURpcmVjdG9yeSwgW3N0cmluZ10kVHlwZSwgJERhdGEp
DQogICAgJGFyZ3VtZW50cyA9IEdldC1Nb2R1bGVBcmd1bWVudHMgLVN0YXRlRGlyZWN0b3J5ICRT
dGF0ZURpcmVjdG9yeQ0KICAgIFt2b2lkXShBZGQtU291bEpvdXJuYWxFbnRyeSAtVHlwZSAkVHlw
ZSAtRGF0YSAkRGF0YSBAYXJndW1lbnRzKQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1OYXR1cmFsSG9t
ZU1hcmtlciB7DQogICAgcGFyYW0oW3N0cmluZ10kTWFya2VyUGF0aCwgJE1hcmtlcikNCiAgICBb
dm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggJE1hcmtlclBhdGggLVZhbHVlICRNYXJr
ZXIpDQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1OYXR1cmFsSG9tZUV4dGVybmFsUGF0aEFsbG93ZWQg
ew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJEFsbG93TGlzdFBhdGgpDQogICAg
W3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRBbGxvd0xpc3RQYXRoIC1WYWx1ZSAo
W29yZGVyZWRdQHsNCiAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgZW50cmllcyA9
IEAoW29yZGVyZWRdQHsgb3duZXIgPSAnc291bC1zZXR1cCc7IGtpbmQgPSAnanVuY3Rpb24nOyBw
YXRoID0gJFBhdGg7IGFsbG93RGVzY2VuZGFudHMgPSAkZmFsc2UgfSkNCiAgICB9KSkNCiAgICBp
ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7DQogICAgICAgIFt2
b2lkXShBc3NlcnQtU291bFNldHVwRXh0ZXJuYWxQYXRoIC1QYXRoICRQYXRoIC1BbGxvd0xpc3RQ
YXRoICRBbGxvd0xpc3RQYXRoIC1LaW5kICdqdW5jdGlvbicpDQogICAgICAgIHJldHVybg0KICAg
IH0NCiAgICAkcHJvZmlsZSA9IEdldC1OYXR1cmFsSG9tZVByb2ZpbGVQYXRoDQogICAgaWYgKC1u
b3QgKFRlc3QtUGF0aEJlbG93IC1QYXRoICRQYXRoIC1QYXJlbnQgJHByb2ZpbGUpKSB7IHRocm93
ICdGaXh0dXJlIG1pZ3JhdGlvbiBhdHRlbXB0ZWQgdG8gZXNjYXBlIFRlc3RFeHRlcm5hbFByb2Zp
bGVSb290LicgfQ0KfQ0KDQpmdW5jdGlvbiBSZW1vdmUtT3duZWROYXR1cmFsSG9tZUp1bmN0aW9u
IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRFeHBlY3RlZFRhcmdldCkNCiAg
ICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCkpIHsgcmV0dXJuIH0NCiAg
ICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9u
IFN0b3ANCiAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVz
XTo6UmVwYXJzZVBvaW50KSAtZXEgMCkgew0KICAgICAgICB0aHJvdyAiSnVuY3Rpb24gcm9sbGJh
Y2sgcmVmdXNlZCB0byByZW1vdmUgYSByZWFsIGRpcmVjdG9yeTogJFBhdGgiDQogICAgfQ0KICAg
ICR0YXJnZXQgPSBHZXQtTGlua1RhcmdldFBhdGggLVBhdGggJFBhdGgNCiAgICBpZiAoJG51bGwg
LWVxICR0YXJnZXQgLW9yIC1ub3QgJHRhcmdldC5FcXVhbHMoW0lPLlBhdGhdOjpHZXRGdWxsUGF0
aCgkRXhwZWN0ZWRUYXJnZXQpLlRyaW1FbmQoJ1wnLCAnLycpLCBbU3RyaW5nQ29tcGFyaXNvbl06
Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgICAgICB0aHJvdyAiSnVuY3Rpb24gcm9sbGJhY2sg
cmVmdXNlZCB0byByZW1vdmUgYW4gdW5leHBlY3RlZCBsaW5rOiAkUGF0aCINCiAgICB9DQogICAg
W0lPLkRpcmVjdG9yeV06OkRlbGV0ZSgkUGF0aCwgJGZhbHNlKQ0KfQ0KDQpmdW5jdGlvbiBJbnZv
a2UtT25lTmF0dXJhbEhvbWVNaWdyYXRpb24gew0KICAgIHBhcmFtKA0KICAgICAgICBbc3RyaW5n
XSROYW1lLA0KICAgICAgICBbc3RyaW5nXSRFeHRlcm5hbFBhdGgsDQogICAgICAgIFtzdHJpbmdd
JEludGVybmFsUGF0aCwNCiAgICAgICAgW3N0cmluZ10kU3RhdGVEaXJlY3RvcnksDQogICAgICAg
IFtzdHJpbmddJEdlbmVyYXRpb25EaXJlY3RvcnkNCiAgICApDQogICAgQXNzZXJ0LU5vTGl2ZUFn
ZW50DQogICAgJGludGVybmFsID0gSW5pdGlhbGl6ZS1OYXRpdmVBZ2VudERpcmVjdG9yeSAtUGF0
aCAkSW50ZXJuYWxQYXRoDQogICAgJG1hcmtlclJvb3QgPSBJbml0aWFsaXplLUFkYXB0ZXJEaXJl
Y3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkU3RhdGVEaXJlY3RvcnkgJ3JlY292ZXJ5JykgLVRpdGxl
ICdTZXR1cCByZWNvdmVyeSBzdGF0ZScNCiAgICAkbWFya2VyUm9vdCA9IEluaXRpYWxpemUtQWRh
cHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRtYXJrZXJSb290ICduYXR1cmFsLWhvbWVz
JykgLVRpdGxlICdOYXR1cmFsIGhvbWUgcmVjb3ZlcnkgbWFya2VycycNCiAgICAkbWFya2VyUGF0
aCA9IEpvaW4tUGF0aCAkbWFya2VyUm9vdCAoJE5hbWUgKyAnLmpzb24nKQ0KICAgICRoaXN0b3J5
Um9vdCA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRTdGF0
ZURpcmVjdG9yeSAnaGlzdG9yeScpIC1UaXRsZSAnU2V0dXAgbWlncmF0aW9uIGhpc3RvcnknDQog
ICAgJGhpc3RvcnlSb290ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5IC1QYXRoIChKb2lu
LVBhdGggJGhpc3RvcnlSb290ICdsZWdhY3ktbmF0dXJhbC1ob21lcycpIC1UaXRsZSAnTGVnYWN5
IG5hdHVyYWwgaGFybmVzcyBob21lcycNCiAgICAkbmFtZUhpc3RvcnkgPSBJbml0aWFsaXplLUFk
YXB0ZXJEaXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkaGlzdG9yeVJvb3QgJE5hbWUpIC1UaXRs
ZSAiJE5hbWUgaG9tZSBvcmlnaW5hbHMiDQogICAgJGFsbG93TGlzdFBhdGggPSBKb2luLVBhdGgg
JEdlbmVyYXRpb25EaXJlY3RvcnkgKCJleHRlcm5hbC0kTmFtZS1ob21lLWFsbG93bGlzdC5qc29u
IikNCiAgICBBc3NlcnQtTmF0dXJhbEhvbWVFeHRlcm5hbFBhdGhBbGxvd2VkIC1QYXRoICRFeHRl
cm5hbFBhdGggLUFsbG93TGlzdFBhdGggJGFsbG93TGlzdFBhdGgNCg0KICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRFeHRlcm5hbFBhdGgpIHsNCiAgICAgICAgJGV4aXN0aW5nID0gR2V0
LUl0ZW0gLUxpdGVyYWxQYXRoICRFeHRlcm5hbFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9w
DQogICAgICAgIGlmICgoJGV4aXN0aW5nLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1
dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgew0KICAgICAgICAgICAgJHRhcmdldCA9IEdldC1M
aW5rVGFyZ2V0UGF0aCAtUGF0aCAkRXh0ZXJuYWxQYXRoDQogICAgICAgICAgICBpZiAoJG51bGwg
LW5lICR0YXJnZXQgLWFuZCAkdGFyZ2V0LkVxdWFscyhbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRp
bnRlcm5hbCkuVHJpbUVuZCgnXCcsICcvJyksIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbEln
bm9yZUNhc2UpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICAgICAgICAgICAgICBuYW1lID0gJE5hbWU7IHN0YXR1cyA9ICdleGlzdGluZy12ZXJp
ZmllZC1qdW5jdGlvbic7IHBlbmRpbmcgPSAkZmFsc2U7IHByZXNlcnZlZE9yaWdpbmFsUGF0aCA9
ICRudWxsDQogICAgICAgICAgICAgICAgICAgIGxlZ2FjeVNuYXBzaG90U2hhMjU2ID0gJG51bGw7
IGludGVybmFsU25hcHNob3RTaGEyNTYgPSBHZXQtTmF0dXJhbEhvbWVJbnZlbnRvcnlEaWdlc3Qg
LUludmVudG9yeSBAKEdldC1OYXR1cmFsSG9tZUludmVudG9yeSAtUGF0aCAkaW50ZXJuYWwpDQog
ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGhyb3cgIkV4aXN0
aW5nIG5hdHVyYWwgJE5hbWUgaG9tZSBpcyBhIGZvcmVpZ24gcmVwYXJzZSBwb2ludCBhbmQgaXMg
cHJlc2VydmVkLiINCiAgICAgICAgfQ0KICAgICAgICBpZiAoLW5vdCAkZXhpc3RpbmcuUFNJc0Nv
bnRhaW5lcikgeyB0aHJvdyAiRXhpc3RpbmcgbmF0dXJhbCAkTmFtZSBob21lIGlzIG5vdCBhIGRp
cmVjdG9yeSBhbmQgaXMgcHJlc2VydmVkLiIgfQ0KICAgIH0NCg0KICAgICRvcmlnaW5hbEFscmVh
ZHlSZW5hbWVkID0gJGZhbHNlDQogICAgJHJlY292ZXJlZE9yaWdpbmFsUGF0aCA9ICRudWxsDQog
ICAgJHJlY292ZXJlZFBsYW4gPSAkbnVsbA0KICAgICRjb3BpZWRGaWxlQ291bnQgPSAwDQogICAg
JHJlY292ZXJ5TWFya2VyID0gaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJG1hcmtlclBhdGgg
LVBhdGhUeXBlIExlYWYpIHsgUmVhZC1Tb3VsSnNvbiAtUGF0aCAkbWFya2VyUGF0aCB9IGVsc2Ug
eyAkbnVsbCB9DQogICAgaWYgKCRudWxsIC1uZSAkcmVjb3ZlcnlNYXJrZXIgLWFuZCBAKCdyZWFk
eS10by1yZW5hbWUnLCAnZXh0ZXJuYWwtcmVuYW1lZCcpIC1jb250YWlucyBbc3RyaW5nXSRyZWNv
dmVyeU1hcmtlci5zdGF0dXMpIHsNCiAgICAgICAgJHJlY292ZXJ5SGlzdG9yeSA9IFtzdHJpbmdd
JHJlY292ZXJ5TWFya2VyLnByZXNlcnZlZE9yaWdpbmFsUGF0aA0KICAgICAgICAkZXh0ZXJuYWxQ
cmVzZW50ID0gVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkRXh0ZXJuYWxQYXRoDQogICAgICAgICRo
aXN0b3J5UHJlc2VudCA9IC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkcmVjb3Zl
cnlIaXN0b3J5KSAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRyZWNvdmVyeUhpc3Rvcnkg
LVBhdGhUeXBlIENvbnRhaW5lcikNCiAgICAgICAgaWYgKC1ub3QgJGV4dGVybmFsUHJlc2VudCAt
YW5kICRoaXN0b3J5UHJlc2VudCkgew0KICAgICAgICAgICAgJGhpc3RvcnlJbnZlbnRvcnkgPSBA
KEdldC1OYXR1cmFsSG9tZUludmVudG9yeSAtUGF0aCAkcmVjb3ZlcnlIaXN0b3J5KQ0KICAgICAg
ICAgICAgaWYgKChHZXQtTmF0dXJhbEhvbWVJbnZlbnRvcnlEaWdlc3QgLUludmVudG9yeSAkaGlz
dG9yeUludmVudG9yeSkgLWNuZSBbc3RyaW5nXSRyZWNvdmVyeU1hcmtlci5leHRlcm5hbEludmVu
dG9yeVNoYTI1Nikgew0KICAgICAgICAgICAgICAgIHRocm93ICJJbnRlcnJ1cHRlZCAkTmFtZSBo
b21lIHJlY292ZXJ5IGZvdW5kIGNoYW5nZWQgcHJlc2VydmVkIGJ5dGVzOyBubyBwYXRoIHdhcyBj
aGFuZ2VkLiINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRyZWNvdmVyeVBsYW4gPSBOZXct
TmF0dXJhbEhvbWVNZXJnZVBsYW4gLUV4dGVybmFsUGF0aCAkcmVjb3ZlcnlIaXN0b3J5IC1JbnRl
cm5hbFBhdGggJGludGVybmFsDQogICAgICAgICAgICAkY29waWVkRmlsZUNvdW50ID0gQCgkcmVj
b3ZlcnlQbGFuLmZpbGVzVG9Db3B5KS5Db3VudA0KICAgICAgICAgICAgQ29weS1OYXR1cmFsSG9t
ZVBsYW5GaWxlcyAtRXh0ZXJuYWxQYXRoICRyZWNvdmVyeUhpc3RvcnkgLUludGVybmFsUGF0aCAk
aW50ZXJuYWwgLVBsYW4gJHJlY292ZXJ5UGxhbg0KICAgICAgICAgICAgJHJlY292ZXJ5UGxhbiA9
IE5ldy1OYXR1cmFsSG9tZU1lcmdlUGxhbiAtRXh0ZXJuYWxQYXRoICRyZWNvdmVyeUhpc3Rvcnkg
LUludGVybmFsUGF0aCAkaW50ZXJuYWwNCiAgICAgICAgICAgIGlmIChAKCRyZWNvdmVyeVBsYW4u
Y29uZmxpY3RzKS5Db3VudCAtZ3QgMCAtb3IgQCgkcmVjb3ZlcnlQbGFuLmZpbGVzVG9Db3B5KS5D
b3VudCAtZ3QgMCkgew0KICAgICAgICAgICAgICAgICRyZWNvdmVyeU1hcmtlci5zdGF0dXMgPSAn
cGVuZGluZy1jb25mbGljdCcNCiAgICAgICAgICAgICAgICAkcmVjb3ZlcnlNYXJrZXIuY29uZmxp
Y3RzID0gQCgkcmVjb3ZlcnlQbGFuLmNvbmZsaWN0cykNCiAgICAgICAgICAgICAgICBXcml0ZS1O
YXR1cmFsSG9tZU1hcmtlciAtTWFya2VyUGF0aCAkbWFya2VyUGF0aCAtTWFya2VyICRyZWNvdmVy
eU1hcmtlcg0KICAgICAgICAgICAgICAgIEFkZC1OYXR1cmFsSG9tZUpvdXJuYWwgLVN0YXRlRGly
ZWN0b3J5ICRTdGF0ZURpcmVjdG9yeSAtVHlwZSAnbmF0dXJhbC1ob21lLnBlbmRpbmctY29uZmxp
Y3QnIC1EYXRhIEB7DQogICAgICAgICAgICAgICAgICAgIGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0
aW9uSWQ7IG5hbWUgPSAkTmFtZTsgY29uZmxpY3RDb3VudCA9IEAoJHJlY292ZXJ5UGxhbi5jb25m
bGljdHMpLkNvdW50OyByZWNvdmVyeSA9ICR0cnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAg
bmFtZSA9ICROYW1lOyBzdGF0dXMgPSAncGVuZGluZy1jb25mbGljdCc7IHBlbmRpbmcgPSAkdHJ1
ZTsgY29uZmxpY3RzID0gQCgkcmVjb3ZlcnlQbGFuLmNvbmZsaWN0cykNCiAgICAgICAgICAgICAg
ICAgICAgcHJlc2VydmVkT3JpZ2luYWxQYXRoID0gJHJlY292ZXJ5SGlzdG9yeTsgbGVnYWN5U25h
cHNob3RTaGEyNTYgPSBbc3RyaW5nXSRyZWNvdmVyeU1hcmtlci5leHRlcm5hbEludmVudG9yeVNo
YTI1Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRvcmln
aW5hbEFscmVhZHlSZW5hbWVkID0gJHRydWUNCiAgICAgICAgICAgICRyZWNvdmVyZWRPcmlnaW5h
bFBhdGggPSAkcmVjb3ZlcnlIaXN0b3J5DQogICAgICAgICAgICAkcmVjb3ZlcmVkUGxhbiA9ICRy
ZWNvdmVyeVBsYW4NCiAgICAgICAgfSBlbHNlaWYgKCRleHRlcm5hbFByZXNlbnQgLWFuZCAkaGlz
dG9yeVByZXNlbnQpIHsNCiAgICAgICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAg
ICAgICAgICAgICAgICBuYW1lID0gJE5hbWU7IHN0YXR1cyA9ICdwZW5kaW5nLXJlY292ZXJ5LWFt
YmlndWl0eSc7IHBlbmRpbmcgPSAkdHJ1ZTsgY29uZmxpY3RzID0gQCgpDQogICAgICAgICAgICAg
ICAgcHJlc2VydmVkT3JpZ2luYWxQYXRoID0gJHJlY292ZXJ5SGlzdG9yeTsgbGVnYWN5U25hcHNo
b3RTaGEyNTYgPSBbc3RyaW5nXSRyZWNvdmVyeU1hcmtlci5leHRlcm5hbEludmVudG9yeVNoYTI1
Ng0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2VpZiAoLW5vdCAkZXh0ZXJuYWxQcmVzZW50
IC1hbmQgLW5vdCAkaGlzdG9yeVByZXNlbnQpIHsNCiAgICAgICAgICAgIHRocm93ICJJbnRlcnJ1
cHRlZCAkTmFtZSBob21lIHJlY292ZXJ5IGNhbm5vdCBmaW5kIGVpdGhlciB0aGUgZXh0ZXJuYWwg
b3JpZ2luYWwgb3IgaXRzIHByZXNlcnZlZCBoaXN0b3J5IHBhdGguIg0KICAgICAgICB9DQogICAg
fQ0KDQogICAgJGhhZE9yaWdpbmFsID0gJG9yaWdpbmFsQWxyZWFkeVJlbmFtZWQgLW9yIChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRFeHRlcm5hbFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikNCiAg
ICAkZXh0ZXJuYWxJbnZlbnRvcnkgPSBAKCkNCiAgICAkZXh0ZXJuYWxEaWdlc3QgPSBHZXQtTmF0
dXJhbEhvbWVJbnZlbnRvcnlEaWdlc3QgLUludmVudG9yeSBAKCkNCiAgICAkcGxhbiA9ICRudWxs
DQogICAgaWYgKCRvcmlnaW5hbEFscmVhZHlSZW5hbWVkKSB7DQogICAgICAgICRwbGFuID0gJHJl
Y292ZXJlZFBsYW4NCiAgICAgICAgJGV4dGVybmFsSW52ZW50b3J5ID0gQCgkcGxhbi5leHRlcm5h
bEludmVudG9yeSkNCiAgICAgICAgJGV4dGVybmFsRGlnZXN0ID0gW3N0cmluZ10kcmVjb3ZlcnlN
YXJrZXIuZXh0ZXJuYWxJbnZlbnRvcnlTaGEyNTYNCiAgICB9IGVsc2VpZiAoJGhhZE9yaWdpbmFs
KSB7DQogICAgICAgICRwbGFuID0gTmV3LU5hdHVyYWxIb21lTWVyZ2VQbGFuIC1FeHRlcm5hbFBh
dGggJEV4dGVybmFsUGF0aCAtSW50ZXJuYWxQYXRoICRpbnRlcm5hbA0KICAgICAgICAkY29waWVk
RmlsZUNvdW50ID0gQCgkcGxhbi5maWxlc1RvQ29weSkuQ291bnQNCiAgICAgICAgJGV4dGVybmFs
SW52ZW50b3J5ID0gQCgkcGxhbi5leHRlcm5hbEludmVudG9yeSkNCiAgICAgICAgJGV4dGVybmFs
RGlnZXN0ID0gW3N0cmluZ10kcGxhbi5leHRlcm5hbEludmVudG9yeVNoYTI1Ng0KICAgICAgICAk
cGxhblJlY29yZCA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBzY2hlbWFWZXJzaW9uID0gMTsg
Z2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZDsgbmFtZSA9ICROYW1lOyBzdGF0dXMgPSAnbWVy
Z2UtcGxhbm5lZCcNCiAgICAgICAgICAgIGV4dGVybmFsUGF0aCA9IFtJTy5QYXRoXTo6R2V0RnVs
bFBhdGgoJEV4dGVybmFsUGF0aCk7IGludGVybmFsUGF0aCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBh
dGgoJGludGVybmFsKQ0KICAgICAgICAgICAgZXh0ZXJuYWxJbnZlbnRvcnlTaGEyNTYgPSAkZXh0
ZXJuYWxEaWdlc3Q7IGludGVybmFsSW52ZW50b3J5U2hhMjU2ID0gW3N0cmluZ10kcGxhbi5pbnRl
cm5hbEludmVudG9yeVNoYTI1Ng0KICAgICAgICAgICAgcGxhblNoYTI1NiA9IFtzdHJpbmddJHBs
YW4ucGxhblNoYTI1NjsgZGlyZWN0b3JpZXNUb0NyZWF0ZSA9IEAoJHBsYW4uZGlyZWN0b3JpZXNU
b0NyZWF0ZSkNCiAgICAgICAgICAgIGZpbGVzVG9Db3B5ID0gQCgkcGxhbi5maWxlc1RvQ29weSk7
IGNvbmZsaWN0cyA9IEAoJHBsYW4uY29uZmxpY3RzKQ0KICAgICAgICAgICAgZm9yYmlkZGVuSW5z
dHJ1Y3Rpb25zID0gQCgkcGxhbi5mb3JiaWRkZW5JbnN0cnVjdGlvbnMpOyBwcmVzZXJ2ZWRPcmln
aW5hbFBhdGggPSAkbnVsbA0KICAgICAgICAgICAgcmVjb3JkZWRBdFV0YyA9IFtEYXRlVGltZV06
OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgICAgIH0NCiAgICAgICAgV3JpdGUtTmF0dXJhbEhv
bWVNYXJrZXIgLU1hcmtlclBhdGggJG1hcmtlclBhdGggLU1hcmtlciAkcGxhblJlY29yZA0KICAg
ICAgICBBZGQtTmF0dXJhbEhvbWVKb3VybmFsIC1TdGF0ZURpcmVjdG9yeSAkU3RhdGVEaXJlY3Rv
cnkgLVR5cGUgJ25hdHVyYWwtaG9tZS5tZXJnZS1wbGFubmVkJyAtRGF0YSBAew0KICAgICAgICAg
ICAgZ2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZDsgbmFtZSA9ICROYW1lOyBwbGFuU2hhMjU2
ID0gW3N0cmluZ10kcGxhbi5wbGFuU2hhMjU2DQogICAgICAgICAgICBjb3B5Q291bnQgPSBAKCRw
bGFuLmZpbGVzVG9Db3B5KS5Db3VudDsgY29uZmxpY3RDb3VudCA9IEAoJHBsYW4uY29uZmxpY3Rz
KS5Db3VudA0KICAgICAgICB9DQogICAgICAgIENvcHktTmF0dXJhbEhvbWVQbGFuRmlsZXMgLUV4
dGVybmFsUGF0aCAkRXh0ZXJuYWxQYXRoIC1JbnRlcm5hbFBhdGggJGludGVybmFsIC1QbGFuICRw
bGFuDQogICAgICAgICRmcmVzaEV4dGVybmFsID0gQChHZXQtTmF0dXJhbEhvbWVJbnZlbnRvcnkg
LVBhdGggJEV4dGVybmFsUGF0aCkNCiAgICAgICAgaWYgKChHZXQtTmF0dXJhbEhvbWVJbnZlbnRv
cnlEaWdlc3QgLUludmVudG9yeSAkZnJlc2hFeHRlcm5hbCkgLWNuZSAkZXh0ZXJuYWxEaWdlc3Qp
IHsNCiAgICAgICAgICAgICRwbGFuUmVjb3JkLnN0YXR1cyA9ICdwZW5kaW5nLXNvdXJjZS1jaGFu
Z2VkJw0KICAgICAgICAgICAgV3JpdGUtTmF0dXJhbEhvbWVNYXJrZXIgLU1hcmtlclBhdGggJG1h
cmtlclBhdGggLU1hcmtlciAkcGxhblJlY29yZA0KICAgICAgICAgICAgcmV0dXJuIFtwc2N1c3Rv
bW9iamVjdF1Aew0KICAgICAgICAgICAgICAgIG5hbWUgPSAkTmFtZTsgc3RhdHVzID0gJ3BlbmRp
bmctc291cmNlLWNoYW5nZWQnOyBwZW5kaW5nID0gJHRydWU7IGNvbmZsaWN0cyA9IEAoKQ0KICAg
ICAgICAgICAgICAgIHByZXNlcnZlZE9yaWdpbmFsUGF0aCA9ICRudWxsOyBsZWdhY3lTbmFwc2hv
dFNoYTI1NiA9ICRleHRlcm5hbERpZ2VzdA0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAg
ICAgICRwbGFuID0gTmV3LU5hdHVyYWxIb21lTWVyZ2VQbGFuIC1FeHRlcm5hbFBhdGggJEV4dGVy
bmFsUGF0aCAtSW50ZXJuYWxQYXRoICRpbnRlcm5hbA0KICAgICAgICBpZiAoQCgkcGxhbi5jb25m
bGljdHMpLkNvdW50IC1ndCAwKSB7DQogICAgICAgICAgICAkcGxhblJlY29yZC5zdGF0dXMgPSAn
cGVuZGluZy1jb25mbGljdCcNCiAgICAgICAgICAgICRwbGFuUmVjb3JkLmNvbmZsaWN0cyA9IEAo
JHBsYW4uY29uZmxpY3RzKQ0KICAgICAgICAgICAgV3JpdGUtTmF0dXJhbEhvbWVNYXJrZXIgLU1h
cmtlclBhdGggJG1hcmtlclBhdGggLU1hcmtlciAkcGxhblJlY29yZA0KICAgICAgICAgICAgQWRk
LU5hdHVyYWxIb21lSm91cm5hbCAtU3RhdGVEaXJlY3RvcnkgJFN0YXRlRGlyZWN0b3J5IC1UeXBl
ICduYXR1cmFsLWhvbWUucGVuZGluZy1jb25mbGljdCcgLURhdGEgQHsNCiAgICAgICAgICAgICAg
ICBnZW5lcmF0aW9uSWQgPSAkR2VuZXJhdGlvbklkOyBuYW1lID0gJE5hbWU7IGNvbmZsaWN0Q291
bnQgPSBAKCRwbGFuLmNvbmZsaWN0cykuQ291bnQ7IHJlY292ZXJ5ID0gJGZhbHNlDQogICAgICAg
ICAgICB9DQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAg
ICAgICAgbmFtZSA9ICROYW1lOyBzdGF0dXMgPSAncGVuZGluZy1jb25mbGljdCc7IHBlbmRpbmcg
PSAkdHJ1ZTsgY29uZmxpY3RzID0gQCgkcGxhbi5jb25mbGljdHMpDQogICAgICAgICAgICAgICAg
Y29waWVkRmlsZUNvdW50ID0gQCgkcGxhblJlY29yZC5maWxlc1RvQ29weSkuQ291bnQ7IGZvcmJp
ZGRlbkluc3RydWN0aW9uQ291bnQgPSBAKCRwbGFuLmZvcmJpZGRlbkluc3RydWN0aW9ucykuQ291
bnQNCiAgICAgICAgICAgICAgICBwcmVzZXJ2ZWRPcmlnaW5hbFBhdGggPSAkbnVsbDsgbGVnYWN5
U25hcHNob3RTaGEyNTYgPSAkZXh0ZXJuYWxEaWdlc3QNCiAgICAgICAgICAgIH0NCiAgICAgICAg
fQ0KICAgICAgICBpZiAoQCgkcGxhbi5maWxlc1RvQ29weSkuQ291bnQgLWd0IDAgLW9yIEAoJHBs
YW4uZGlyZWN0b3JpZXNUb0NyZWF0ZSkuQ291bnQgLWd0IDApIHsNCiAgICAgICAgICAgIHRocm93
ICJOYXR1cmFsICROYW1lIGhvbWUgbWVyZ2UgZGlkIG5vdCBjb252ZXJnZSBhZnRlciB2ZXJpZmll
ZCBjb3BpZXMuIg0KICAgICAgICB9DQogICAgfQ0KDQogICAgJHByZXNlcnZlZE9yaWdpbmFsID0g
JHJlY292ZXJlZE9yaWdpbmFsUGF0aA0KICAgIGlmICgkaGFkT3JpZ2luYWwgLWFuZCAtbm90ICRv
cmlnaW5hbEFscmVhZHlSZW5hbWVkKSB7DQogICAgICAgICRwcmVzZXJ2ZWRPcmlnaW5hbCA9IEpv
aW4tUGF0aCAkbmFtZUhpc3RvcnkgKCdleHRlcm5hbC1vcmlnaW5hbC0nICsgJGV4dGVybmFsRGln
ZXN0LlN1YnN0cmluZygwLCAxNikgKyAnLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygn
TicpKQ0KICAgICAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHByZXNlcnZl
ZE9yaWdpbmFsKQ0KICAgICAgICAkZXh0ZXJuYWxWb2x1bWUgPSBbSU8uUGF0aF06OkdldFBhdGhS
b290KFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJEV4dGVybmFsUGF0aCkpDQogICAgICAgICRoaXN0
b3J5Vm9sdW1lID0gW0lPLlBhdGhdOjpHZXRQYXRoUm9vdChbSU8uUGF0aF06OkdldEZ1bGxQYXRo
KCRwcmVzZXJ2ZWRPcmlnaW5hbCkpDQogICAgICAgIGlmICgtbm90ICRleHRlcm5hbFZvbHVtZS5F
cXVhbHMoJGhpc3RvcnlWb2x1bWUsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNh
c2UpKSB7DQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAg
ICAgICAgbmFtZSA9ICROYW1lOyBzdGF0dXMgPSAncGVuZGluZy1jcm9zcy12b2x1bWUtcHJlc2Vy
dmF0aW9uJzsgcGVuZGluZyA9ICR0cnVlOyBjb25mbGljdHMgPSBAKCkNCiAgICAgICAgICAgICAg
ICBwcmVzZXJ2ZWRPcmlnaW5hbFBhdGggPSAkbnVsbDsgbGVnYWN5U25hcHNob3RTaGEyNTYgPSAk
ZXh0ZXJuYWxEaWdlc3QNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICAkcmVh
ZHlNYXJrZXIgPSBbb3JkZXJlZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMTsgZ2VuZXJh
dGlvbklkID0gJEdlbmVyYXRpb25JZDsgbmFtZSA9ICROYW1lDQogICAgICAgIHN0YXR1cyA9ICQo
aWYgKCRvcmlnaW5hbEFscmVhZHlSZW5hbWVkKSB7ICdleHRlcm5hbC1yZW5hbWVkJyB9IGVsc2Vp
ZiAoJGhhZE9yaWdpbmFsKSB7ICdyZWFkeS10by1yZW5hbWUnIH0gZWxzZSB7ICdyZWFkeS10by1s
aW5rLWVtcHR5JyB9KQ0KICAgICAgICBleHRlcm5hbFBhdGggPSBbSU8uUGF0aF06OkdldEZ1bGxQ
YXRoKCRFeHRlcm5hbFBhdGgpOyBpbnRlcm5hbFBhdGggPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRo
KCRpbnRlcm5hbCkNCiAgICAgICAgZXh0ZXJuYWxJbnZlbnRvcnlTaGEyNTYgPSAkZXh0ZXJuYWxE
aWdlc3QNCiAgICAgICAgaW50ZXJuYWxJbnZlbnRvcnlTaGEyNTYgPSBHZXQtTmF0dXJhbEhvbWVJ
bnZlbnRvcnlEaWdlc3QgLUludmVudG9yeSBAKEdldC1OYXR1cmFsSG9tZUludmVudG9yeSAtUGF0
aCAkaW50ZXJuYWwpDQogICAgICAgIHBsYW5TaGEyNTYgPSAkKGlmICgkbnVsbCAtZXEgJHBsYW4p
IHsgJG51bGwgfSBlbHNlIHsgW3N0cmluZ10kcGxhbi5wbGFuU2hhMjU2IH0pDQogICAgICAgIGNv
bmZsaWN0cyA9IEAoKTsgcHJlc2VydmVkT3JpZ2luYWxQYXRoID0gJHByZXNlcnZlZE9yaWdpbmFs
DQogICAgICAgIGZvcmJpZGRlbkluc3RydWN0aW9uQ291bnQgPSAkKGlmICgkbnVsbCAtZXEgJHBs
YW4pIHsgMCB9IGVsc2UgeyBAKCRwbGFuLmZvcmJpZGRlbkluc3RydWN0aW9ucykuQ291bnQgfSkN
CiAgICAgICAgcmVjb3JkZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycp
DQogICAgfQ0KICAgIFdyaXRlLU5hdHVyYWxIb21lTWFya2VyIC1NYXJrZXJQYXRoICRtYXJrZXJQ
YXRoIC1NYXJrZXIgJHJlYWR5TWFya2VyDQogICAgQWRkLU5hdHVyYWxIb21lSm91cm5hbCAtU3Rh
dGVEaXJlY3RvcnkgJFN0YXRlRGlyZWN0b3J5IC1UeXBlICduYXR1cmFsLWhvbWUucmVhZHknIC1E
YXRhIEB7DQogICAgICAgIGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0aW9uSWQ7IG5hbWUgPSAkTmFt
ZTsgbWFya2VyU2hhMjU2ID0gR2V0LVNvdWxTaGEyNTYgLVBhdGggJG1hcmtlclBhdGg7IGhhZE9y
aWdpbmFsID0gJGhhZE9yaWdpbmFsDQogICAgfQ0KDQogICAgaWYgKCRoYWRPcmlnaW5hbCAtYW5k
IC1ub3QgJG9yaWdpbmFsQWxyZWFkeVJlbmFtZWQpIHsNCiAgICAgICAgaWYgKFRlc3QtUGF0aCAt
TGl0ZXJhbFBhdGggJHByZXNlcnZlZE9yaWdpbmFsKSB7IHRocm93ICJQcmVzZXJ2ZWQtb3JpZ2lu
YWwgZGVzdGluYXRpb24gYWxyZWFkeSBleGlzdHM6ICRwcmVzZXJ2ZWRPcmlnaW5hbCIgfQ0KICAg
ICAgICBbSU8uRGlyZWN0b3J5XTo6TW92ZSgkRXh0ZXJuYWxQYXRoLCAkcHJlc2VydmVkT3JpZ2lu
YWwpDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICAkbW92ZWRJbnZlbnRvcnkgPSBAKEdldC1O
YXR1cmFsSG9tZUludmVudG9yeSAtUGF0aCAkcHJlc2VydmVkT3JpZ2luYWwpDQogICAgICAgICAg
ICBpZiAoKEdldC1OYXR1cmFsSG9tZUludmVudG9yeURpZ2VzdCAtSW52ZW50b3J5ICRtb3ZlZElu
dmVudG9yeSkgLWNuZSAkZXh0ZXJuYWxEaWdlc3QpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAn
VGhlIHByZXNlcnZlZCBkaXJlY3RvcnkgaW52ZW50b3J5IGRpZmZlcnMgZnJvbSB0aGUgcHJlLXJl
bmFtZSBpbnZlbnRvcnkuJw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIHsNCiAgICAg
ICAgICAgICRtb3ZlVmVyaWZpY2F0aW9uRmFpbHVyZSA9ICRfDQogICAgICAgICAgICBpZiAoLW5v
dCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkRXh0ZXJuYWxQYXRoKSAtYW5kIChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRwcmVzZXJ2ZWRPcmlnaW5hbCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgew0K
ICAgICAgICAgICAgICAgIFtJTy5EaXJlY3RvcnldOjpNb3ZlKCRwcmVzZXJ2ZWRPcmlnaW5hbCwg
JEV4dGVybmFsUGF0aCkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRyZWFkeU1hcmtlci5z
dGF0dXMgPSAncmVzdG9yZWQtYWZ0ZXItbW92ZS12ZXJpZmljYXRpb24tZmFpbHVyZScNCiAgICAg
ICAgICAgIFdyaXRlLU5hdHVyYWxIb21lTWFya2VyIC1NYXJrZXJQYXRoICRtYXJrZXJQYXRoIC1N
YXJrZXIgJHJlYWR5TWFya2VyDQogICAgICAgICAgICBBZGQtTmF0dXJhbEhvbWVKb3VybmFsIC1T
dGF0ZURpcmVjdG9yeSAkU3RhdGVEaXJlY3RvcnkgLVR5cGUgJ25hdHVyYWwtaG9tZS5tb3ZlLXZl
cmlmaWNhdGlvbi1yb2xsYmFjaycgLURhdGEgQHsNCiAgICAgICAgICAgICAgICBnZW5lcmF0aW9u
SWQgPSAkR2VuZXJhdGlvbklkOyBuYW1lID0gJE5hbWU7IG9yaWdpbmFsUmVzdG9yZWQgPSAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkRXh0ZXJuYWxQYXRoIC1QYXRoVHlwZSBDb250YWluZXIpDQog
ICAgICAgICAgICB9DQogICAgICAgICAgICB0aHJvdyAiTW92ZWQgbmF0dXJhbCAkTmFtZSBob21l
IGZhaWxlZCBpdHMgYnl0ZSBpbnZlbnRvcnkgY2hlY2sgYW5kIHdhcyByZXN0b3JlZC4gJCgkbW92
ZVZlcmlmaWNhdGlvbkZhaWx1cmUuRXhjZXB0aW9uLk1lc3NhZ2UpIg0KICAgICAgICB9DQogICAg
ICAgICRyZWFkeU1hcmtlci5zdGF0dXMgPSAnZXh0ZXJuYWwtcmVuYW1lZCcNCiAgICAgICAgV3Jp
dGUtTmF0dXJhbEhvbWVNYXJrZXIgLU1hcmtlclBhdGggJG1hcmtlclBhdGggLU1hcmtlciAkcmVh
ZHlNYXJrZXINCiAgICAgICAgQWRkLU5hdHVyYWxIb21lSm91cm5hbCAtU3RhdGVEaXJlY3Rvcnkg
JFN0YXRlRGlyZWN0b3J5IC1UeXBlICduYXR1cmFsLWhvbWUuZXh0ZXJuYWwtcmVuYW1lZCcgLURh
dGEgQHsNCiAgICAgICAgICAgIGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0aW9uSWQ7IG5hbWUgPSAk
TmFtZTsgZXh0ZXJuYWxJbnZlbnRvcnlTaGEyNTYgPSAkZXh0ZXJuYWxEaWdlc3QNCiAgICAgICAg
fQ0KICAgICAgICBpZiAoJFRlc3RIb21lTWlncmF0aW9uRmFpbHVyZVBvaW50IC1lcSAnYWZ0ZXIt
cmVuYW1lLWJlZm9yZS1qdW5jdGlvbicpIHsNCiAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNO
dWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsgdGhyb3cgJ0EgbmF0dXJhbC1ob21lIGZhaWx1
cmUgaG9vayBpcyBmb3JiaWRkZW4gb3V0c2lkZSBmaXh0dXJlcy4nIH0NCiAgICAgICAgICAgIHRo
cm93ICdURVNUOiBzaW11bGF0ZWQgaW50ZXJydXB0aW9uIGFmdGVyIHJlbmFtZSBhbmQgYmVmb3Jl
IGp1bmN0aW9uLicNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHRyeSB7DQogICAgICAgIGlmICgk
VGVzdEhvbWVNaWdyYXRpb25GYWlsdXJlUG9pbnQgLWVxICdqdW5jdGlvbi1jcmVhdGUnKSB7DQog
ICAgICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7
IHRocm93ICdBIG5hdHVyYWwtaG9tZSBmYWlsdXJlIGhvb2sgaXMgZm9yYmlkZGVuIG91dHNpZGUg
Zml4dHVyZXMuJyB9DQogICAgICAgICAgICB0aHJvdyAnVEVTVDogc2ltdWxhdGVkIGp1bmN0aW9u
IGNyZWF0aW9uIGZhaWx1cmUuJw0KICAgICAgICB9DQogICAgICAgIFt2b2lkXShOZXctSXRlbSAt
SXRlbVR5cGUgSnVuY3Rpb24gLVBhdGggJEV4dGVybmFsUGF0aCAtVGFyZ2V0ICRpbnRlcm5hbCAt
RXJyb3JBY3Rpb24gU3RvcCkNCiAgICAgICAgaWYgKCRUZXN0SG9tZU1pZ3JhdGlvbkZhaWx1cmVQ
b2ludCAtZXEgJ2p1bmN0aW9uLXZlcmlmeScpIHsNCiAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6
SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsgdGhyb3cgJ0EgbmF0dXJhbC1ob21lIGZh
aWx1cmUgaG9vayBpcyBmb3JiaWRkZW4gb3V0c2lkZSBmaXh0dXJlcy4nIH0NCiAgICAgICAgICAg
IHRocm93ICdURVNUOiBzaW11bGF0ZWQganVuY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWx1cmUuJw0K
ICAgICAgICB9DQogICAgICAgICRyZXNvbHZlZCA9IEdldC1MaW5rVGFyZ2V0UGF0aCAtUGF0aCAk
RXh0ZXJuYWxQYXRoDQogICAgICAgIGlmICgkbnVsbCAtZXEgJHJlc29sdmVkIC1vciAtbm90ICRy
ZXNvbHZlZC5FcXVhbHMoW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgkaW50ZXJuYWwpLlRyaW1FbmQo
J1wnLCAnLycpLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAg
ICAgICAgICAgdGhyb3cgIk5hdHVyYWwgJE5hbWUgaG9tZSBqdW5jdGlvbiB2ZXJpZmljYXRpb24g
ZmFpbGVkLiINCiAgICAgICAgfQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICAkanVuY3Rpb25GYWls
dXJlID0gJF8NCiAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJEV4dGVybmFsUGF0
aCkgeyBSZW1vdmUtT3duZWROYXR1cmFsSG9tZUp1bmN0aW9uIC1QYXRoICRFeHRlcm5hbFBhdGgg
LUV4cGVjdGVkVGFyZ2V0ICRpbnRlcm5hbCB9DQogICAgICAgIGlmICgkaGFkT3JpZ2luYWwgLWFu
ZCAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRFeHRlcm5hbFBhdGgpIC1hbmQgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJHByZXNlcnZlZE9yaWdpbmFsIC1QYXRoVHlwZSBDb250YWluZXIp
KSB7DQogICAgICAgICAgICBbSU8uRGlyZWN0b3J5XTo6TW92ZSgkcHJlc2VydmVkT3JpZ2luYWws
ICRFeHRlcm5hbFBhdGgpDQogICAgICAgICAgICAkcmVzdG9yZWRJbnZlbnRvcnkgPSBAKEdldC1O
YXR1cmFsSG9tZUludmVudG9yeSAtUGF0aCAkRXh0ZXJuYWxQYXRoKQ0KICAgICAgICAgICAgaWYg
KChHZXQtTmF0dXJhbEhvbWVJbnZlbnRvcnlEaWdlc3QgLUludmVudG9yeSAkcmVzdG9yZWRJbnZl
bnRvcnkpIC1jbmUgJGV4dGVybmFsRGlnZXN0KSB7DQogICAgICAgICAgICAgICAgdGhyb3cgIk5h
dHVyYWwgJE5hbWUgaG9tZSBqdW5jdGlvbiBmYWlsZWQsIGFuZCByZXN0b3JlZCBieXRlcyBkaWQg
bm90IG1hdGNoIHRoZSBvcmlnaW5hbCBpbnZlbnRvcnkuIE9yaWdpbmFsIGVycm9yOiAkKCRqdW5j
dGlvbkZhaWx1cmUuRXhjZXB0aW9uLk1lc3NhZ2UpIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9
DQogICAgICAgICRyZWFkeU1hcmtlci5zdGF0dXMgPSAncmVzdG9yZWQtYWZ0ZXItanVuY3Rpb24t
ZmFpbHVyZScNCiAgICAgICAgV3JpdGUtTmF0dXJhbEhvbWVNYXJrZXIgLU1hcmtlclBhdGggJG1h
cmtlclBhdGggLU1hcmtlciAkcmVhZHlNYXJrZXINCiAgICAgICAgQWRkLU5hdHVyYWxIb21lSm91
cm5hbCAtU3RhdGVEaXJlY3RvcnkgJFN0YXRlRGlyZWN0b3J5IC1UeXBlICduYXR1cmFsLWhvbWUu
anVuY3Rpb24tcm9sbGJhY2snIC1EYXRhIEB7DQogICAgICAgICAgICBnZW5lcmF0aW9uSWQgPSAk
R2VuZXJhdGlvbklkOyBuYW1lID0gJE5hbWU7IG9yaWdpbmFsUmVzdG9yZWQgPSAkaGFkT3JpZ2lu
YWwNCiAgICAgICAgfQ0KICAgICAgICB0aHJvdyAiTmF0dXJhbCAkTmFtZSBob21lIGp1bmN0aW9u
IGZhaWxlZDsgdGhlIG9yaWdpbmFsIHdhcyByZXN0b3JlZCBpbW1lZGlhdGVseS4gJCgkanVuY3Rp
b25GYWlsdXJlLkV4Y2VwdGlvbi5NZXNzYWdlKSINCiAgICB9DQoNCiAgICAkcmVhZHlNYXJrZXIu
c3RhdHVzID0gJ2NvbXBsZXRlZCcNCiAgICAkcmVhZHlNYXJrZXIuY29tcGxldGVkQXRVdGMgPSBb
RGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgIFdyaXRlLU5hdHVyYWxIb21lTWFy
a2VyIC1NYXJrZXJQYXRoICRtYXJrZXJQYXRoIC1NYXJrZXIgJHJlYWR5TWFya2VyDQogICAgQWRk
LU5hdHVyYWxIb21lSm91cm5hbCAtU3RhdGVEaXJlY3RvcnkgJFN0YXRlRGlyZWN0b3J5IC1UeXBl
ICduYXR1cmFsLWhvbWUuY29tcGxldGVkJyAtRGF0YSBAew0KICAgICAgICBnZW5lcmF0aW9uSWQg
PSAkR2VuZXJhdGlvbklkOyBuYW1lID0gJE5hbWU7IHByZXNlcnZlZE9yaWdpbmFsID0gKCRudWxs
IC1uZSAkcHJlc2VydmVkT3JpZ2luYWwpDQogICAgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmpl
Y3RdQHsNCiAgICAgICAgbmFtZSA9ICROYW1lDQogICAgICAgIHN0YXR1cyA9ICQoaWYgKCRoYWRP
cmlnaW5hbCkgeyAnbWVyZ2VkLW9yaWdpbmFsLXByZXNlcnZlZC1hbmQtbGlua2VkJyB9IGVsc2Ug
eyAnY3JlYXRlZC12ZXJpZmllZC1qdW5jdGlvbicgfSkNCiAgICAgICAgcGVuZGluZyA9ICRmYWxz
ZQ0KICAgICAgICBjb25mbGljdHMgPSBAKCkNCiAgICAgICAgY29waWVkRmlsZUNvdW50ID0gJGNv
cGllZEZpbGVDb3VudA0KICAgICAgICBmb3JiaWRkZW5JbnN0cnVjdGlvbkNvdW50ID0gJChpZiAo
JG51bGwgLWVxICRwbGFuKSB7IDAgfSBlbHNlIHsgQCgkcGxhbi5mb3JiaWRkZW5JbnN0cnVjdGlv
bnMpLkNvdW50IH0pDQogICAgICAgIGxlZ2FjeVNuYXBzaG90U2hhMjU2ID0gJChpZiAoJGhhZE9y
aWdpbmFsKSB7ICRleHRlcm5hbERpZ2VzdCB9IGVsc2UgeyAkbnVsbCB9KQ0KICAgICAgICBpbnRl
cm5hbFNuYXBzaG90U2hhMjU2ID0gW3N0cmluZ10kcmVhZHlNYXJrZXIuaW50ZXJuYWxJbnZlbnRv
cnlTaGEyNTYNCiAgICAgICAgcHJlc2VydmVkT3JpZ2luYWxQYXRoID0gJHByZXNlcnZlZE9yaWdp
bmFsDQogICAgICAgIHZhdWx0UmVxdWlyZWRCZWZvcmVNb3ZlID0gJHRydWUNCiAgICAgICAgcGxh
aW50ZXh0RHVwbGljYXRlQ3JlYXRlZCA9ICRmYWxzZQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gSW5p
dGlhbGl6ZS1BZ2VudFN0YW5kYXJkSG9tZSB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW3N0
cmluZ10kU3RhdGVEaXJlY3RvcnksIFtzdHJpbmddJEdlbmVyYXRpb25EaXJlY3RvcnksIFtib29s
XSRFbmFibGVFeHRlcm5hbENvbnZlcnNpb24gPSAkdHJ1ZSkNCiAgICAkc2hhcmVkUm9vdCA9IElu
aXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRSb290ICdfYWdlbnRc
c2hhcmVkJykgLVRpdGxlICdTaGFyZWQgYWdlbnQgcmVzb3VyY2VzJw0KICAgICRpbnRlcm5hbEhv
bWUgPSBJbml0aWFsaXplLU5hdGl2ZUFnZW50RGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJHNo
YXJlZFJvb3QgJ2FnZW50LXN0YW5kYXJkLWhvbWUnKQ0KICAgIFt2b2lkXShJbml0aWFsaXplLU5h
dGl2ZUFnZW50RGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJGludGVybmFsSG9tZSAnc2tpbGxz
JykpDQogICAgJHByb2ZpbGVQYXRoID0gR2V0LU5hdHVyYWxIb21lUHJvZmlsZVBhdGgNCiAgICBp
ZiAoJG51bGwgLWVxICRwcm9maWxlUGF0aCAtb3IgLW5vdCAkRW5hYmxlRXh0ZXJuYWxDb252ZXJz
aW9uKSB7DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIHBh
dGggPSAkaW50ZXJuYWxIb21lOyBleHRlcm5hbEp1bmN0aW9uID0gJG51bGw7IGxlZ2FjeVNuYXBz
aG90ID0gJG51bGw7IHRlc3RPbmx5ID0gKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZSgkVGVzdFJvb3QpKQ0KICAgICAgICAgICAgbWlncmF0aW9uRXZpZGVuY2UgPSBbcHNjdXN0b21v
YmplY3RdQHsgbmFtZSA9ICdhZ2VudC1zdGFuZGFyZCc7IHN0YXR1cyA9ICdwZW5kaW5nLXZhdWx0
LWJlZm9yZS1uYXR1cmFsLWhvbWUtY29udmVyc2lvbic7IHBlbmRpbmcgPSAkZmFsc2UgfQ0KICAg
ICAgICB9DQogICAgfQ0KICAgICRtaWdyYXRpb24gPSBJbnZva2UtT25lTmF0dXJhbEhvbWVNaWdy
YXRpb24gLU5hbWUgJ2FnZW50LXN0YW5kYXJkJyAtRXh0ZXJuYWxQYXRoIChKb2luLVBhdGggJHBy
b2ZpbGVQYXRoICcuYWdlbnRzJykgYA0KICAgICAgICAtSW50ZXJuYWxQYXRoICRpbnRlcm5hbEhv
bWUgLVN0YXRlRGlyZWN0b3J5ICRTdGF0ZURpcmVjdG9yeSAtR2VuZXJhdGlvbkRpcmVjdG9yeSAk
R2VuZXJhdGlvbkRpcmVjdG9yeQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAg
ICAgcGF0aCA9ICRpbnRlcm5hbEhvbWUNCiAgICAgICAgZXh0ZXJuYWxKdW5jdGlvbiA9ICQoaWYg
KFtib29sXSRtaWdyYXRpb24ucGVuZGluZykgeyAkbnVsbCB9IGVsc2UgeyBKb2luLVBhdGggJHBy
b2ZpbGVQYXRoICcuYWdlbnRzJyB9KQ0KICAgICAgICBsZWdhY3lTbmFwc2hvdCA9ICRtaWdyYXRp
b24ucHJlc2VydmVkT3JpZ2luYWxQYXRoDQogICAgICAgIHRlc3RPbmx5ID0gKC1ub3QgW3N0cmlu
Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKQ0KICAgICAgICBtaWdyYXRpb25Fdmlk
ZW5jZSA9ICRtaWdyYXRpb24NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIENvbnZlcnQtTmF0dXJhbEhh
cm5lc3NIb21lcyB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kU3RhdGVEaXJl
Y3RvcnksIFtzdHJpbmddJEdlbmVyYXRpb25EaXJlY3RvcnkpDQogICAgJHByb2ZpbGVQYXRoID0g
R2V0LU5hdHVyYWxIb21lUHJvZmlsZVBhdGgNCiAgICBpZiAoJG51bGwgLWVxICRwcm9maWxlUGF0
aCkgeyByZXR1cm4gQCgpIH0NCiAgICAkcmVzdWx0cyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxl
Y3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yZWFjaCAoJHJlY29yZCBpbiBAKA0K
ICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgbmFtZSA9ICdjbGF1ZGUnOyBleHRlcm5hbCA9IChK
b2luLVBhdGggJHByb2ZpbGVQYXRoICcuY2xhdWRlJyk7IGludGVybmFsID0gKEpvaW4tUGF0aCAk
Um9vdCAnX2FnZW50XGNsYXVkZScpIH0sDQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBuYW1l
ID0gJ2NvZGV4JzsgZXh0ZXJuYWwgPSAoSm9pbi1QYXRoICRwcm9maWxlUGF0aCAnLmNvZGV4Jyk7
IGludGVybmFsID0gKEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNvZGV4JykgfQ0KICAgICkpIHsN
CiAgICAgICAgJHJlc3VsdCA9IEludm9rZS1PbmVOYXR1cmFsSG9tZU1pZ3JhdGlvbiAtTmFtZSAk
cmVjb3JkLm5hbWUgLUV4dGVybmFsUGF0aCAkcmVjb3JkLmV4dGVybmFsIC1JbnRlcm5hbFBhdGgg
JHJlY29yZC5pbnRlcm5hbCBgDQogICAgICAgICAgICAtU3RhdGVEaXJlY3RvcnkgJFN0YXRlRGly
ZWN0b3J5IC1HZW5lcmF0aW9uRGlyZWN0b3J5ICRHZW5lcmF0aW9uRGlyZWN0b3J5DQogICAgICAg
ICRyZXN1bHRzLkFkZCgkcmVzdWx0KQ0KICAgICAgICBpZiAoW2Jvb2xdJHJlc3VsdC5wZW5kaW5n
KSB7IGJyZWFrIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJHJlc3VsdHMuVG9BcnJheSgpKQ0KfQ0K
DQpmdW5jdGlvbiBTbmFwc2hvdC1Xb3Jrc3BhY2VNY3BBdHRhY2htZW50cyB7DQogICAgcGFyYW0o
W3N0cmluZ10kUm9vdCkNCiAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNl
KCRUZXN0Um9vdCkpIHsgcmV0dXJuIEAoKSB9DQogICAgJHByb2ZpbGVQYXRoID0gW0Vudmlyb25t
ZW50XTo6R2V0Rm9sZGVyUGF0aChbRW52aXJvbm1lbnQrU3BlY2lhbEZvbGRlcl06OlVzZXJQcm9m
aWxlKQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRwcm9maWxlUGF0aCkp
IHsgcmV0dXJuIEAoKSB9DQogICAgJHdvcmtzcGFjZVBhdGggPSBKb2luLVBhdGggJHByb2ZpbGVQ
YXRoICcud29ya3NwYWNlLW1jcCcNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkd29ya3NwYWNlUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyByZXR1cm4gQCgpIH0NCiAg
ICAkd29ya3NwYWNlSXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkd29ya3NwYWNlUGF0aCAt
Rm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICBpZiAoKCR3b3Jrc3BhY2VJdGVtLkF0dHJpYnV0
ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJv
dyAnRXh0ZXJuYWwgd29ya3NwYWNlIE1DUCBzdGF0ZSBpcyBhIHJlcGFyc2UgcG9pbnQgYW5kIHdh
cyBub3QgZm9sbG93ZWQuJyB9DQogICAgJGF0dGFjaG1lbnRzID0gSm9pbi1QYXRoICR3b3Jrc3Bh
Y2VQYXRoICdhdHRhY2htZW50cycNCiAgICAkc25hcHNob3RQYXRoID0gJG51bGwNCiAgICAkc25h
cHNob3REaWdlc3QgPSAkbnVsbA0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRhdHRh
Y2htZW50cyAtUGF0aFR5cGUgQ29udGFpbmVyKSB7DQogICAgICAgICRzbmFwc2hvdERpZ2VzdCA9
IEdldC1QYXlsb2FkVHJlZURpZ2VzdCAtUGF0aCAkYXR0YWNobWVudHMNCiAgICAgICAgJHBvcnRh
YmxlUm9vdCA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRS
b290ICdfYWdlbnRcc2hhcmVkXHBvcnRhYmxlLXN0YXRlJykgLVRpdGxlICdQb3J0YWJsZSBhcHBs
aWNhdGlvbiBzdGF0ZScNCiAgICAgICAgJG1jcFJvb3QgPSBJbml0aWFsaXplLUFkYXB0ZXJEaXJl
Y3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkcG9ydGFibGVSb290ICd3b3Jrc3BhY2UtbWNwJykgLVRp
dGxlICdXb3Jrc3BhY2UgTUNQIHBvcnRhYmxlIHN0YXRlJw0KICAgICAgICAkc25hcHNob3RzID0g
SW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJG1jcFJvb3QgJ2F0
dGFjaG1lbnQtc25hcHNob3RzJykgLVRpdGxlICdXb3Jrc3BhY2UgTUNQIGF0dGFjaG1lbnQgc25h
cHNob3RzJw0KICAgICAgICAkc25hcHNob3RQYXRoID0gSm9pbi1QYXRoICRzbmFwc2hvdHMgJHNu
YXBzaG90RGlnZXN0DQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRz
bmFwc2hvdFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgQ29weS1BZGFwdGVyVHJlZU5vRm9s
bG93IC1Tb3VyY2UgJGF0dGFjaG1lbnRzIC1EZXN0aW5hdGlvbiAkc25hcHNob3RQYXRoIH0NCiAg
ICAgICAgaWYgKChHZXQtUGF5bG9hZFRyZWVEaWdlc3QgLVBhdGggJHNuYXBzaG90UGF0aCkgLWNu
ZSAkc25hcHNob3REaWdlc3QpIHsgdGhyb3cgJ1dvcmtzcGFjZSBNQ1AgYXR0YWNobWVudCBzbmFw
c2hvdCB2ZXJpZmljYXRpb24gZmFpbGVkLicgfQ0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bEpz
b25BdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkbWNwUm9vdCAnYXR0YWNobWVudHMtY3VycmVudC5q
c29uJykgLVZhbHVlIChbb3JkZXJlZF1Aew0KICAgICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDEN
CiAgICAgICAgICAgIHNuYXBzaG90VHJlZVNoYTI1NiA9ICRzbmFwc2hvdERpZ2VzdA0KICAgICAg
ICAgICAgY2FwdHVyZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQog
ICAgICAgICAgICBzb3VyY2VQcmVzZXJ2ZWQgPSAkdHJ1ZQ0KICAgICAgICB9KSkNCiAgICB9DQog
ICAgcmV0dXJuIEAoW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIGlkID0gJ3dvcmtzcGFjZS1t
Y3AtY29uc3VtZXItcGF0aCcNCiAgICAgICAgc3RhdHVzID0gJ3BlbmRpbmctY2FwYWJpbGl0eScN
CiAgICAgICAgZXhwbGFuYXRpb24gPSAnQXR0YWNobWVudHMgd2VyZSBjb3BpZWQgaW50byB0aGUg
c291bCwgYW5kIGNyZWRlbnRpYWwtbGlrZSBmaWxlcyBhcmUgdmF1bHQgY2FwdHVyZSBjYW5kaWRh
dGVzLiBUaGUgTUNQIGNvbnN1bWVyIHN0aWxsIG5lZWRzIGEgdmVyaWZpZWQgcGF0aCByZWNvbm5l
Y3Qgb3IgYSBuZXcgbG9naW4gb24gYW5vdGhlciBjb21wdXRlci4nDQogICAgICAgIGF0dGFjaG1l
bnRzU25hcHNob3RUcmVlU2hhMjU2ID0gJHNuYXBzaG90RGlnZXN0DQogICAgICAgIGF0dGFjaG1l
bnRzU25hcHNob3RQYXRoID0gJHNuYXBzaG90UGF0aA0KICAgICAgICBleHRlcm5hbFNvdXJjZVBy
ZXNlcnZlZCA9ICR0cnVlDQogICAgfSkNCn0NCg0KZnVuY3Rpb24gR2V0LUV4dGVybmFsRG9jdW1l
bnRDYXBhYmlsaXRpZXMgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQoNCiAgICAkYXBwbGlj
YXRpb25JZHMgPSBAKCdod3AtYXV0b21hdGlvbicsICdleGNlbC1hdXRvbWF0aW9uJywgJ3dvcmQt
YXV0b21hdGlvbicsICdwcHQtYXV0b21hdGlvbicpDQogICAgaWYgKCRudWxsIC1uZSAkVGVzdENh
cGFiaWxpdHlTdGF0ZSkgew0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZSgkVGVzdFJvb3QpKSB7IHRocm93ICdUZXN0Q2FwYWJpbGl0eVN0YXRlIGlzIGZvcmJpZGRlbiBv
dXRzaWRlIGEgZml4dHVyZSBzb3VsLicgfQ0KICAgICAgICBmb3JlYWNoICgka2V5IGluIEAoJFRl
c3RDYXBhYmlsaXR5U3RhdGUuS2V5cykpIHsNCiAgICAgICAgICAgIGlmICgkYXBwbGljYXRpb25J
ZHMgLW5vdGNvbnRhaW5zIFtzdHJpbmddJGtleSkgeyB0aHJvdyAiVW5rbm93biBmaXh0dXJlIGRv
Y3VtZW50IGNhcGFiaWxpdHk6ICRrZXkiIH0NCiAgICAgICAgICAgIGlmICgkVGVzdENhcGFiaWxp
dHlTdGF0ZVska2V5XSAtaXNub3QgW2Jvb2xdKSB7IHRocm93ICJGaXh0dXJlIGRvY3VtZW50IGNh
cGFiaWxpdHkgbXVzdCBiZSBCb29sZWFuOiAka2V5IiB9DQogICAgICAgIH0NCiAgICB9DQoNCiAg
ICAkc3BlY2lmaWNhdGlvbnMgPSBAKA0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAg
ICAgICAgIGlkID0gJ2h3cC1hdXRvbWF0aW9uJzsgYXBwbGljYXRpb24gPSAnSGFuY29tIEhhbmd1
bCc7IGV4ZWN1dGFibGUgPSAnSHdwLmV4ZScNCiAgICAgICAgICAgIHJlZ2lzdHJ5UGF0aHMgPSBA
KA0KICAgICAgICAgICAgICAgICdSZWdpc3RyeTo6SEtFWV9DTEFTU0VTX1JPT1RcSFdQRnJhbWUu
SHdwT2JqZWN0JywNCiAgICAgICAgICAgICAgICAnUmVnaXN0cnk6OkhLRVlfQ0xBU1NFU19ST09U
XEhXUEZyYW1lLkh3cE9iamVjdC4xJywNCiAgICAgICAgICAgICAgICAnUmVnaXN0cnk6OkhLRVlf
Q0xBU1NFU19ST09UXEhXUEZyYW1lLkh3cE9iamVjdC4yJywNCiAgICAgICAgICAgICAgICAnUmVn
aXN0cnk6OkhLRVlfTE9DQUxfTUFDSElORVxTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJy
ZW50VmVyc2lvblxBcHAgUGF0aHNcSHdwLmV4ZScsDQogICAgICAgICAgICAgICAgJ1JlZ2lzdHJ5
OjpIS0VZX0xPQ0FMX01BQ0hJTkVcU09GVFdBUkVcV09XNjQzMk5vZGVcTWljcm9zb2Z0XFdpbmRv
d3NcQ3VycmVudFZlcnNpb25cQXBwIFBhdGhzXEh3cC5leGUnLA0KICAgICAgICAgICAgICAgICdS
ZWdpc3RyeTo6SEtFWV9DVVJSRU5UX1VTRVJcU09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3NcQ3Vy
cmVudFZlcnNpb25cQXBwIFBhdGhzXEh3cC5leGUnDQogICAgICAgICAgICApDQogICAgICAgIH0s
DQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgaWQgPSAnZXhjZWwtYXV0
b21hdGlvbic7IGFwcGxpY2F0aW9uID0gJ01pY3Jvc29mdCBFeGNlbCc7IGV4ZWN1dGFibGUgPSAn
RVhDRUwuRVhFJw0KICAgICAgICAgICAgcmVnaXN0cnlQYXRocyA9IEAoDQogICAgICAgICAgICAg
ICAgJ1JlZ2lzdHJ5OjpIS0VZX0NMQVNTRVNfUk9PVFxFeGNlbC5BcHBsaWNhdGlvbicsDQogICAg
ICAgICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0xPQ0FMX01BQ0hJTkVcU09GVFdBUkVcTWljcm9z
b2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cQXBwIFBhdGhzXEVYQ0VMLkVYRScsDQogICAgICAg
ICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0xPQ0FMX01BQ0hJTkVcU09GVFdBUkVcV09XNjQzMk5v
ZGVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cQXBwIFBhdGhzXEVYQ0VMLkVYRScs
DQogICAgICAgICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0NVUlJFTlRfVVNFUlxTT0ZUV0FSRVxN
aWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxBcHAgUGF0aHNcRVhDRUwuRVhFJw0KICAg
ICAgICAgICAgKQ0KICAgICAgICB9LA0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAg
ICAgICAgIGlkID0gJ3dvcmQtYXV0b21hdGlvbic7IGFwcGxpY2F0aW9uID0gJ01pY3Jvc29mdCBX
b3JkJzsgZXhlY3V0YWJsZSA9ICdXSU5XT1JELkVYRScNCiAgICAgICAgICAgIHJlZ2lzdHJ5UGF0
aHMgPSBAKA0KICAgICAgICAgICAgICAgICdSZWdpc3RyeTo6SEtFWV9DTEFTU0VTX1JPT1RcV29y
ZC5BcHBsaWNhdGlvbicsDQogICAgICAgICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0xPQ0FMX01B
Q0hJTkVcU09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cQXBwIFBhdGhz
XFdJTldPUkQuRVhFJywNCiAgICAgICAgICAgICAgICAnUmVnaXN0cnk6OkhLRVlfTE9DQUxfTUFD
SElORVxTT0ZUV0FSRVxXT1c2NDMyTm9kZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lv
blxBcHAgUGF0aHNcV0lOV09SRC5FWEUnLA0KICAgICAgICAgICAgICAgICdSZWdpc3RyeTo6SEtF
WV9DVVJSRU5UX1VTRVJcU09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25c
QXBwIFBhdGhzXFdJTldPUkQuRVhFJw0KICAgICAgICAgICAgKQ0KICAgICAgICB9LA0KICAgICAg
ICBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIGlkID0gJ3BwdC1hdXRvbWF0aW9uJzsg
YXBwbGljYXRpb24gPSAnTWljcm9zb2Z0IFBvd2VyUG9pbnQnOyBleGVjdXRhYmxlID0gJ1BPV0VS
UE5ULkVYRScNCiAgICAgICAgICAgIHJlZ2lzdHJ5UGF0aHMgPSBAKA0KICAgICAgICAgICAgICAg
ICdSZWdpc3RyeTo6SEtFWV9DTEFTU0VTX1JPT1RcUG93ZXJQb2ludC5BcHBsaWNhdGlvbicsDQog
ICAgICAgICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0xPQ0FMX01BQ0hJTkVcU09GVFdBUkVcTWlj
cm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cQXBwIFBhdGhzXFBPV0VSUE5ULkVYRScsDQog
ICAgICAgICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0xPQ0FMX01BQ0hJTkVcU09GVFdBUkVcV09X
NjQzMk5vZGVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cQXBwIFBhdGhzXFBPV0VS
UE5ULkVYRScsDQogICAgICAgICAgICAgICAgJ1JlZ2lzdHJ5OjpIS0VZX0NVUlJFTlRfVVNFUlxT
T0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxBcHAgUGF0aHNcUE9XRVJQ
TlQuRVhFJw0KICAgICAgICAgICAgKQ0KICAgICAgICB9DQogICAgKQ0KDQogICAgJHByb2dyYW1S
b290cyA9IEAoDQogICAgICAgIFtFbnZpcm9ubWVudF06OkdldEVudmlyb25tZW50VmFyaWFibGUo
J1Byb2dyYW1GaWxlcycsICdQcm9jZXNzJyksDQogICAgICAgIFtFbnZpcm9ubWVudF06OkdldEVu
dmlyb25tZW50VmFyaWFibGUoJ1Byb2dyYW1GaWxlcyh4ODYpJywgJ1Byb2Nlc3MnKQ0KICAgICkg
fCBXaGVyZS1PYmplY3QgeyAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJF8pIH0g
fCBTb3J0LU9iamVjdCAtVW5pcXVlDQogICAgJG9mZmljZVN1YnBhdGhzID0gQCgNCiAgICAgICAg
J01pY3Jvc29mdCBPZmZpY2Vccm9vdFxPZmZpY2UxNicsICdNaWNyb3NvZnQgT2ZmaWNlXE9mZmlj
ZTE2JywNCiAgICAgICAgJ01pY3Jvc29mdCBPZmZpY2Vccm9vdFxPZmZpY2UxNScsICdNaWNyb3Nv
ZnQgT2ZmaWNlXE9mZmljZTE1Jw0KICAgICkNCiAgICAkcm93cyA9IE5ldy1PYmplY3QgU3lzdGVt
LkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yZWFjaCAoJHNwZWNpZmlj
YXRpb24gaW4gJHNwZWNpZmljYXRpb25zKSB7DQogICAgICAgICRldmlkZW5jZSA9IE5ldy1PYmpl
Y3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgICAgICRyZWFk
eSA9ICRmYWxzZQ0KICAgICAgICAkbWV0aG9kID0gJ3JlZ2lzdHJ5LW9yLWZpbGUtcmVhZC1vbmx5
Jw0KICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9v
dCkpIHsNCiAgICAgICAgICAgICRtZXRob2QgPSAnZml4dHVyZS1vdmVycmlkZScNCiAgICAgICAg
ICAgICRyZWFkeSA9ICRudWxsIC1uZSAkVGVzdENhcGFiaWxpdHlTdGF0ZSAtYW5kICRUZXN0Q2Fw
YWJpbGl0eVN0YXRlLkNvbnRhaW5zS2V5KFtzdHJpbmddJHNwZWNpZmljYXRpb24uaWQpIC1hbmQg
W2Jvb2xdJFRlc3RDYXBhYmlsaXR5U3RhdGVbW3N0cmluZ10kc3BlY2lmaWNhdGlvbi5pZF0NCiAg
ICAgICAgICAgICRldmlkZW5jZS5BZGQoImZpeHR1cmU6JCgkc3BlY2lmaWNhdGlvbi5pZCk6JHJl
YWR5IikNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRyZWdpc3RyeVBh
dGggaW4gQCgkc3BlY2lmaWNhdGlvbi5yZWdpc3RyeVBhdGhzKSkgew0KICAgICAgICAgICAgICAg
IGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRyZWdpc3RyeVBhdGggLUVycm9yQWN0aW9uIFNp
bGVudGx5Q29udGludWUpIHsNCiAgICAgICAgICAgICAgICAgICAgJGV2aWRlbmNlLkFkZCgicmVn
aXN0cnk6JHJlZ2lzdHJ5UGF0aCIpDQogICAgICAgICAgICAgICAgICAgICRyZWFkeSA9ICR0cnVl
DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yZWFjaCAo
JHByb2dyYW1Sb290IGluICRwcm9ncmFtUm9vdHMpIHsNCiAgICAgICAgICAgICAgICBpZiAoW3N0
cmluZ10kc3BlY2lmaWNhdGlvbi5pZCAtZXEgJ2h3cC1hdXRvbWF0aW9uJykgeyBjb250aW51ZSB9
DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHN1YnBhdGggaW4gJG9mZmljZVN1YnBhdGhzKSB7
DQogICAgICAgICAgICAgICAgICAgICRjYW5kaWRhdGUgPSBKb2luLVBhdGggKEpvaW4tUGF0aCAk
cHJvZ3JhbVJvb3QgJHN1YnBhdGgpIChbc3RyaW5nXSRzcGVjaWZpY2F0aW9uLmV4ZWN1dGFibGUp
DQogICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYW5kaWRh
dGUgLVBhdGhUeXBlIExlYWYgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUpIHsNCiAgICAg
ICAgICAgICAgICAgICAgICAgICRldmlkZW5jZS5BZGQoImZpbGU6JGNhbmRpZGF0ZSIpDQogICAg
ICAgICAgICAgICAgICAgICAgICAkcmVhZHkgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgICRy
b3dzLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIGlkID0gW3N0cmluZ10kc3Bl
Y2lmaWNhdGlvbi5pZA0KICAgICAgICAgICAgYXBwbGljYXRpb24gPSBbc3RyaW5nXSRzcGVjaWZp
Y2F0aW9uLmFwcGxpY2F0aW9uDQogICAgICAgICAgICBhcHBsaWNhdGlvblJlcXVpcmVkID0gJHRy
dWUNCiAgICAgICAgICAgIHN0YXR1cyA9ICQoaWYgKCRyZWFkeSkgeyAncmVhZHknIH0gZWxzZSB7
ICdwZW5kaW5nLWNhcGFiaWxpdHknIH0pDQogICAgICAgICAgICByZWFzb24gPSAkKGlmICgkcmVh
ZHkpIHsgJG51bGwgfSBlbHNlIHsgJ3JlcXVpcmVkLWRlc2t0b3AtYXBwbGljYXRpb24tbm90LWRl
dGVjdGVkJyB9KQ0KICAgICAgICAgICAgZGV0ZWN0aW9uTWV0aG9kID0gJG1ldGhvZA0KICAgICAg
ICAgICAgZXZpZGVuY2UgPSBAKCRldmlkZW5jZS5Ub0FycmF5KCkpDQogICAgICAgICAgICByZWFk
T25seURldGVjdGlvbiA9ICR0cnVlDQogICAgICAgICAgICBjb21JbnN0YW50aWF0ZWQgPSAkZmFs
c2UNCiAgICAgICAgfSkNCiAgICB9DQogICAgJHJvd3MuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICBpZCA9ICdwZGYtYXV0b21hdGlvbicNCiAgICAgICAgYXBwbGljYXRpb24gPSAkbnVs
bA0KICAgICAgICBhcHBsaWNhdGlvblJlcXVpcmVkID0gJGZhbHNlDQogICAgICAgIHN0YXR1cyA9
ICdyZWFkeScNCiAgICAgICAgcmVhc29uID0gJG51bGwNCiAgICAgICAgZGV0ZWN0aW9uTWV0aG9k
ID0gJ2xvY2tlZC1weXRob24tcnVudGltZScNCiAgICAgICAgZXZpZGVuY2UgPSBAKCdhcHBsaWNh
dGlvbi1pbmRlcGVuZGVudCcpDQogICAgICAgIHJlYWRPbmx5RGV0ZWN0aW9uID0gJHRydWUNCiAg
ICAgICAgY29tSW5zdGFudGlhdGVkID0gJGZhbHNlDQogICAgfSkNCiAgICByZXR1cm4gQCgkcm93
cy5Ub0FycmF5KCkpDQp9DQoNCmZ1bmN0aW9uIEdldC1Eb2N1bWVudFB5dGhvblJ1bnRpbWVDb250
cmFjdCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXSRTb3VyY2VMb2NrLCBbUGFy
YW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUm9vdCkNCg0KICAgICRyZWNvcmRzID0gQCgkU291
cmNlTG9jay5weXRob25SdW50aW1lcyB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8uaWQgLWNl
cSAnZG9jdW1lbnQtbWNwJyB9KQ0KICAgIGlmICgkcmVjb3Jkcy5Db3VudCAtbmUgMSkgeyB0aHJv
dyAnVGhlIHNvdXJjZSBsb2NrIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBkb2N1bWVudC1tY3Ag
UHl0aG9uIHJ1bnRpbWUuJyB9DQogICAgJHJlY29yZCA9ICRyZWNvcmRzWzBdDQogICAgaWYgKFtz
dHJpbmddJHJlY29yZC5weXRob25WZXJzaW9uIC1jbmUgJzMuMTInIC1vcg0KICAgICAgICBbc3Ry
aW5nXSRyZWNvcmQuaW5zdGFsbFBvbGljeSAtY25lICdvZmZsaW5lLWhhc2gtbG9ja2VkLXdoZWVs
aG91c2UnIC1vcg0KICAgICAgICBbaW50XSRyZWNvcmQuZXhwZWN0ZWRQYWNrYWdlQ291bnQgLWx0
IDEpIHsNCiAgICAgICAgdGhyb3cgJ1RoZSBsb2NrZWQgZG9jdW1lbnQtbWNwIFB5dGhvbiBydW50
aW1lIGNvbnRyYWN0IGlzIHVuc3VwcG9ydGVkLicNCiAgICB9DQoNCiAgICAkcmVxdWlyZW1lbnRz
TG9ja1BhdGggPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBhdGggJFBTU2NyaXB0Um9v
dCAoW3N0cmluZ10kcmVjb3JkLnJlcXVpcmVtZW50c0xvY2tSZWxhdGl2ZVBhdGgpLlJlcGxhY2Uo
Jy8nLCAnXCcpKSkNCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHJlcXVp
cmVtZW50c0xvY2tQYXRoKQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRy
ZXF1aXJlbWVudHNMb2NrUGF0aCAtUGF0aFR5cGUgTGVhZikgLW9yDQogICAgICAgIC1ub3QgKEdl
dC1Tb3VsU2hhMjU2IC1QYXRoICRyZXF1aXJlbWVudHNMb2NrUGF0aCkuRXF1YWxzKFtzdHJpbmdd
JHJlY29yZC5yZXF1aXJlbWVudHNMb2NrU2hhMjU2LCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGlu
YWxJZ25vcmVDYXNlKSkgew0KICAgICAgICB0aHJvdyAnVGhlIGVtYmVkZGVkIGRvY3VtZW50LW1j
cCByZXF1aXJlbWVudHMgbG9jayBpcyBtaXNzaW5nIG9yIGhhcyBhIGRpZmZlcmVudCBoYXNoLicN
CiAgICB9DQogICAgJHdoZWVsaG91c2VQYXRoID0gSm9pbi1QYXRoICRSb290IChbc3RyaW5nXSRy
ZWNvcmQud2hlZWxob3VzZVJlbGF0aXZlUGF0aCkuUmVwbGFjZSgnLycsICdcJykNCiAgICBbdm9p
ZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHdoZWVsaG91c2VQYXRoKQ0KICAgICRob3N0
TmFtZSA9IFtFbnZpcm9ubWVudF06Ok1hY2hpbmVOYW1lLlRvTG93ZXJJbnZhcmlhbnQoKQ0KICAg
ICRydW50aW1lUmVsYXRpdmUgPSAoW3N0cmluZ10kcmVjb3JkLnJ1bnRpbWVSZWxhdGl2ZVBhdGgp
LlJlcGxhY2UoJzxob3N0PicsICRob3N0TmFtZSkuUmVwbGFjZSgnLycsICdcJykNCiAgICAkcnVu
dGltZVBhdGggPSBKb2luLVBhdGggJFJvb3QgJHJ1bnRpbWVSZWxhdGl2ZQ0KICAgIFt2b2lkXShB
c3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkcnVudGltZVBhdGgpDQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICByZWNvcmQgPSAkcmVjb3JkDQogICAgICAgIHJlcXVpcmVt
ZW50c0xvY2tQYXRoID0gJHJlcXVpcmVtZW50c0xvY2tQYXRoDQogICAgICAgIHJlcXVpcmVtZW50
c0xvY2tTaGEyNTYgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAkcmVxdWlyZW1lbnRzTG9ja1BhdGgN
CiAgICAgICAgd2hlZWxob3VzZVBhdGggPSAkd2hlZWxob3VzZVBhdGgNCiAgICAgICAgcnVudGlt
ZVBhdGggPSAkcnVudGltZVBhdGgNCiAgICAgICAgcHl0aG9uQ29tbWFuZCA9IEpvaW4tUGF0aCAk
cnVudGltZVBhdGggJ1NjcmlwdHNccHl0aG9uLmV4ZScNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIFRl
c3QtRG9jdW1lbnRXaGVlbGhvdXNlUmVhZHkgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0
b3J5KV0kQ29udHJhY3QpDQoNCiAgICAkcHJvb2ZQYXRoID0gSm9pbi1QYXRoICRDb250cmFjdC53
aGVlbGhvdXNlUGF0aCAnd2hlZWxob3VzZS1wcm9vZi5qc29uJw0KICAgICR3aGVlbFBhdGggPSBK
b2luLVBhdGggJENvbnRyYWN0LndoZWVsaG91c2VQYXRoICd3aGVlbHMnDQogICAgaWYgKC1ub3Qg
KFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJENvbnRyYWN0LndoZWVsaG91c2VQYXRoIC1QYXRoVHlw
ZSBDb250YWluZXIpIC1vcg0KICAgICAgICAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRw
cm9vZlBhdGggLVBhdGhUeXBlIExlYWYpIC1vcg0KICAgICAgICAtbm90IChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICR3aGVlbFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikpIHsNCiAgICAgICAgcmV0
dXJuIFtwc2N1c3RvbW9iamVjdF1AeyByZWFkeSA9ICRmYWxzZTsgcmVhc29uID0gJ2RvY3VtZW50
LW1jcC13aGVlbGhvdXNlLW1pc3NpbmcnOyBwYXRoID0gJENvbnRyYWN0LndoZWVsaG91c2VQYXRo
IH0NCiAgICB9DQogICAgdHJ5IHsNCiAgICAgICAgJHJvb3RJdGVtID0gR2V0LUl0ZW0gLUxpdGVy
YWxQYXRoICRDb250cmFjdC53aGVlbGhvdXNlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3AN
CiAgICAgICAgaWYgKCgkcm9vdEl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0
ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICd3aGVlbGhvdXNlIGlzIGEgcmVwYXJz
ZSBwb2ludCcgfQ0KICAgICAgICAkcHJvb2YgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRwcm9vZlBh
dGgNCiAgICAgICAgaWYgKFtzdHJpbmddJHByb29mLnJlcXVpcmVtZW50c0xvY2tTaGEyNTYgLWNu
ZSBbc3RyaW5nXSRDb250cmFjdC5yZXF1aXJlbWVudHNMb2NrU2hhMjU2IC1vcg0KICAgICAgICAg
ICAgW3N0cmluZ10kcHJvb2YucHl0aG9uVmVyc2lvbiAtY25lIFtzdHJpbmddJENvbnRyYWN0LnJl
Y29yZC5weXRob25WZXJzaW9uKSB7IHRocm93ICd3aGVlbGhvdXNlIHByb29mIGRpZmZlcnMgZnJv
bSBsb2NrJyB9DQogICAgICAgICRmaWxlcyA9IEAoR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGgg
JHdoZWVsUGF0aCAtRmlsdGVyICcqLndobCcgLUZpbGUgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9w
IHwgU29ydC1PYmplY3QgTmFtZSkNCiAgICAgICAgJHByb29mRmlsZXMgPSBAKCRwcm9vZi5maWxl
cykNCiAgICAgICAgaWYgKCRmaWxlcy5Db3VudCAtbmUgW2ludF0kQ29udHJhY3QucmVjb3JkLmV4
cGVjdGVkUGFja2FnZUNvdW50IC1vciAkcHJvb2ZGaWxlcy5Db3VudCAtbmUgJGZpbGVzLkNvdW50
KSB7IHRocm93ICd3aGVlbCBjb3VudCBkaWZmZXJzIGZyb20gbG9jaycgfQ0KICAgICAgICBmb3Ig
KCRpbmRleCA9IDA7ICRpbmRleCAtbHQgJGZpbGVzLkNvdW50OyAkaW5kZXgrKykgew0KICAgICAg
ICAgICAgaWYgKCgkZmlsZXNbJGluZGV4XS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmli
dXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDAgLW9yDQogICAgICAgICAgICAgICAgW3N0cmluZ10k
cHJvb2ZGaWxlc1skaW5kZXhdLm5hbWUgLWNuZSAkZmlsZXNbJGluZGV4XS5OYW1lIC1vcg0KICAg
ICAgICAgICAgICAgIFtsb25nXSRwcm9vZkZpbGVzWyRpbmRleF0ubGVuZ3RoIC1uZSBbbG9uZ10k
ZmlsZXNbJGluZGV4XS5MZW5ndGggLW9yDQogICAgICAgICAgICAgICAgW3N0cmluZ10kcHJvb2ZG
aWxlc1skaW5kZXhdLnNoYTI1NiAtY25lIChHZXQtU291bFNoYTI1NiAtUGF0aCAkZmlsZXNbJGlu
ZGV4XS5GdWxsTmFtZSkpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAnd2hlZWwgaW52ZW50b3J5
IGRpZmZlcnMgZnJvbSBwcm9vZicNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBy
ZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IHJlYWR5ID0gJHRydWU7IHJlYXNvbiA9ICRudWxsOyBw
YXRoID0gJENvbnRyYWN0LndoZWVsaG91c2VQYXRoOyBwcm9vZlNoYTI1NiA9IEdldC1Tb3VsU2hh
MjU2IC1QYXRoICRwcm9vZlBhdGg7IHdoZWVsQ291bnQgPSAkZmlsZXMuQ291bnQgfQ0KICAgIH0g
Y2F0Y2ggew0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IHJlYWR5ID0gJGZhbHNl
OyByZWFzb24gPSAkXy5FeGNlcHRpb24uTWVzc2FnZTsgcGF0aCA9ICRDb250cmFjdC53aGVlbGhv
dXNlUGF0aCB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBJbnZva2UtRG9jdW1lbnRQeXRob25Db21t
YW5kIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmdd
JENvbW1hbmQsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nW11dJEFyZ3Vt
ZW50cywNCiAgICAgICAgW3N0cmluZ10kV29ya2luZ0RpcmVjdG9yeQ0KICAgICkNCg0KICAgIGlm
ICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRDb21tYW5kIC1QYXRoVHlwZSBMZWFmKSkg
eyB0aHJvdyAiRG9jdW1lbnQgUHl0aG9uIGNvbW1hbmQgaXMgbWlzc2luZzogJENvbW1hbmQiIH0N
CiAgICAkb2xkTG9jYXRpb24gPSAkbnVsbA0KICAgICRzYXZlZFByZWZlcmVuY2UgPSAkRXJyb3JB
Y3Rpb25QcmVmZXJlbmNlDQogICAgdHJ5IHsNCiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106Oklz
TnVsbE9yV2hpdGVTcGFjZSgkV29ya2luZ0RpcmVjdG9yeSkpIHsgJG9sZExvY2F0aW9uID0gR2V0
LUxvY2F0aW9uOyBTZXQtTG9jYXRpb24gLUxpdGVyYWxQYXRoICRXb3JraW5nRGlyZWN0b3J5IH0N
CiAgICAgICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICdDb250aW51ZScNCiAgICAgICAgJG91
dHB1dCA9IEAoJiAkQ29tbWFuZCBAQXJndW1lbnRzIDI+JjEpDQogICAgICAgICRleGl0Q29kZSA9
ICRMQVNURVhJVENPREUNCiAgICB9IGZpbmFsbHkgew0KICAgICAgICAkRXJyb3JBY3Rpb25QcmVm
ZXJlbmNlID0gJHNhdmVkUHJlZmVyZW5jZQ0KICAgICAgICBpZiAoJG51bGwgLW5lICRvbGRMb2Nh
dGlvbikgeyBTZXQtTG9jYXRpb24gLUxpdGVyYWxQYXRoICRvbGRMb2NhdGlvbi5QYXRoIH0NCiAg
ICB9DQogICAgaWYgKCRleGl0Q29kZSAtbmUgMCkgew0KICAgICAgICAkc2FmZVRhaWwgPSBAKCRv
dXRwdXQgfCBTZWxlY3QtT2JqZWN0IC1MYXN0IDEyKSAtam9pbiBbRW52aXJvbm1lbnRdOjpOZXdM
aW5lDQogICAgICAgIHRocm93ICJEb2N1bWVudCBQeXRob24gY29tbWFuZCBmYWlsZWQgd2l0aCBl
eGl0IGNvZGUgJGV4aXRDb2RlLmBuJHNhZmVUYWlsIg0KICAgIH0NCiAgICByZXR1cm4gQCgkb3V0
cHV0IHwgRm9yRWFjaC1PYmplY3QgeyBbc3RyaW5nXSRfIH0pDQp9DQoNCmZ1bmN0aW9uIEdldC1T
eXN0ZW1QeXRob24zMTJJbnZvY2F0aW9uIHsNCiAgICAkY2FuZGlkYXRlcyA9IE5ldy1PYmplY3Qg
U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJHB5ID0gR2V0LUNv
bW1hbmQgLU5hbWUgJ3B5LmV4ZScgLUNvbW1hbmRUeXBlIEFwcGxpY2F0aW9uIC1FcnJvckFjdGlv
biBTaWxlbnRseUNvbnRpbnVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0KICAgIGlmICgkbnVs
bCAtbmUgJHB5KSB7ICRjYW5kaWRhdGVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9IFtz
dHJpbmddJHB5LlNvdXJjZTsgcHJlZml4ID0gQCgnLTMuMTInKSB9KSB9DQogICAgJHB5dGhvbiA9
IEdldC1Db21tYW5kIC1OYW1lICdweXRob24uZXhlJyAtQ29tbWFuZFR5cGUgQXBwbGljYXRpb24g
LUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxDQog
ICAgaWYgKCRudWxsIC1uZSAkcHl0aG9uKSB7ICRjYW5kaWRhdGVzLkFkZChbcHNjdXN0b21vYmpl
Y3RdQHsgcGF0aCA9IFtzdHJpbmddJHB5dGhvbi5Tb3VyY2U7IHByZWZpeCA9IEAoKSB9KSB9DQog
ICAgZm9yZWFjaCAoJGNhbmRpZGF0ZSBpbiAkY2FuZGlkYXRlcykgew0KICAgICAgICB0cnkgew0K
ICAgICAgICAgICAgJG91dHB1dCA9IEAoSW52b2tlLURvY3VtZW50UHl0aG9uQ29tbWFuZCAtQ29t
bWFuZCAkY2FuZGlkYXRlLnBhdGggLUFyZ3VtZW50cyBAKCRjYW5kaWRhdGUucHJlZml4ICsgQCgn
LWMnLCAnaW1wb3J0IHN5czsgcHJpbnQoZiJ7c3lzLnZlcnNpb25faW5mby5tYWpvcn0ue3N5cy52
ZXJzaW9uX2luZm8ubWlub3J9IiknKSkpDQogICAgICAgICAgICBpZiAoKCRvdXRwdXQgLWpvaW4g
ImBuIikuVHJpbSgpIC1jZXEgJzMuMTInKSB7IHJldHVybiAkY2FuZGlkYXRlIH0NCiAgICAgICAg
fSBjYXRjaCB7IH0NCiAgICB9DQogICAgdGhyb3cgJ0NQeXRob24gMy4xMiBpcyB1bmF2YWlsYWJs
ZSBmb3IgdGhlIGRvY3VtZW50IE1DUCBydW50aW1lLicNCn0NCg0KZnVuY3Rpb24gVGVzdC1Eb2N1
bWVudFB5dGhvblJ1bnRpbWUgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kQ29u
dHJhY3QsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kV2hlZWxob3VzZVN0YXR1cywgW3N0cmluZ10k
UnVudGltZVBhdGgpDQoNCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkUnVu
dGltZVBhdGgpKSB7ICRSdW50aW1lUGF0aCA9IFtzdHJpbmddJENvbnRyYWN0LnJ1bnRpbWVQYXRo
IH0NCiAgICAkcHl0aG9uQ29tbWFuZCA9IEpvaW4tUGF0aCAkUnVudGltZVBhdGggJ1NjcmlwdHNc
cHl0aG9uLmV4ZScNCiAgICAkcHJvb2ZQYXRoID0gSm9pbi1QYXRoICRSdW50aW1lUGF0aCAncnVu
dGltZS1wcm9vZi5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRS
dW50aW1lUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSAtb3INCiAgICAgICAgLW5vdCAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkcHl0aG9uQ29tbWFuZCAtUGF0aFR5cGUgTGVhZikgLW9yDQogICAg
ICAgIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHByb29mUGF0aCAtUGF0aFR5cGUgTGVh
ZikpIHsNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyByZWFkeSA9ICRmYWxzZTsg
cmVhc29uID0gJ3J1bnRpbWUtb3ItcHJvb2YtbWlzc2luZyc7IHBhdGggPSAkUnVudGltZVBhdGg7
IHB5dGhvbkNvbW1hbmQgPSAkcHl0aG9uQ29tbWFuZCB9DQogICAgfQ0KICAgIHRyeSB7DQogICAg
ICAgICRydW50aW1lSXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkUnVudGltZVBhdGggLUZv
cmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgICRweXRob25JdGVtID0gR2V0LUl0ZW0gLUxp
dGVyYWxQYXRoICRweXRob25Db21tYW5kIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAg
ICBpZiAoKCRydW50aW1lSXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106
OlJlcGFyc2VQb2ludCkgLW5lIDAgLW9yDQogICAgICAgICAgICAoJHB5dGhvbkl0ZW0uQXR0cmli
dXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRo
cm93ICdydW50aW1lIGNvbnRhaW5zIGEgcmVwYXJzZSBwb2ludCBhdCBpdHMgdHJ1c3QgYm91bmRh
cnknIH0NCiAgICAgICAgJHByb29mID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkcHJvb2ZQYXRoDQog
ICAgICAgIGlmIChbc3RyaW5nXSRwcm9vZi5yZXF1aXJlbWVudHNMb2NrU2hhMjU2IC1jbmUgW3N0
cmluZ10kQ29udHJhY3QucmVxdWlyZW1lbnRzTG9ja1NoYTI1NiAtb3INCiAgICAgICAgICAgIFtz
dHJpbmddJHByb29mLndoZWVsaG91c2VQcm9vZlNoYTI1NiAtY25lIFtzdHJpbmddJFdoZWVsaG91
c2VTdGF0dXMucHJvb2ZTaGEyNTYgLW9yDQogICAgICAgICAgICAtbm90IChbc3RyaW5nXSRwcm9v
Zi5weXRob25WZXJzaW9uKS5TdGFydHNXaXRoKCczLjEyLicsIFtTdHJpbmdDb21wYXJpc29uXTo6
T3JkaW5hbCkpIHsNCiAgICAgICAgICAgIHRocm93ICdydW50aW1lIHByb29mIGRpZmZlcnMgZnJv
bSBpdHMgbG9jayBvciB3aGVlbGhvdXNlJw0KICAgICAgICB9DQogICAgICAgIGlmIChbc3RyaW5n
XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsNCiAgICAgICAgICAgICR2ZXJzaW9u
ID0gQChJbnZva2UtRG9jdW1lbnRQeXRob25Db21tYW5kIC1Db21tYW5kICRweXRob25Db21tYW5k
IC1Bcmd1bWVudHMgQCgnLWMnLCAnaW1wb3J0IHN5czsgcHJpbnQoIi4iLmpvaW4obWFwKHN0ciwg
c3lzLnZlcnNpb25faW5mb1s6M10pKSknKSkNCiAgICAgICAgICAgIGlmICgtbm90ICgoJHZlcnNp
b24gLWpvaW4gImBuIikuVHJpbSgpKS5TdGFydHNXaXRoKCczLjEyLicsIFtTdHJpbmdDb21wYXJp
c29uXTo6T3JkaW5hbCkpIHsgdGhyb3cgJ3J1bnRpbWUgaXMgbm90IENQeXRob24gMy4xMicgfQ0K
ICAgICAgICAgICAgW3ZvaWRdKEludm9rZS1Eb2N1bWVudFB5dGhvbkNvbW1hbmQgLUNvbW1hbmQg
JHB5dGhvbkNvbW1hbmQgLUFyZ3VtZW50cyBAKCctYycsICdpbXBvcnQgbWNwLCBweWh3cHgsIHdp
bjMyY29tLmNsaWVudCwgcHlwZGYsIHB5cGRmaXVtMiwgUElMOyBwcmludCgiZG9jdW1lbnQtcnVu
dGltZS1vayIpJykpDQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1A
eyByZWFkeSA9ICR0cnVlOyByZWFzb24gPSAkbnVsbDsgcGF0aCA9ICRSdW50aW1lUGF0aDsgcHl0
aG9uQ29tbWFuZCA9ICRweXRob25Db21tYW5kOyBwcm9vZlNoYTI1NiA9IEdldC1Tb3VsU2hhMjU2
IC1QYXRoICRwcm9vZlBhdGggfQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICByZXR1cm4gW3BzY3Vz
dG9tb2JqZWN0XUB7IHJlYWR5ID0gJGZhbHNlOyByZWFzb24gPSAkXy5FeGNlcHRpb24uTWVzc2Fn
ZTsgcGF0aCA9ICRSdW50aW1lUGF0aDsgcHl0aG9uQ29tbWFuZCA9ICRweXRob25Db21tYW5kIH0N
CiAgICB9DQp9DQoNCmZ1bmN0aW9uIEVuc3VyZS1Eb2N1bWVudFB5dGhvblJ1bnRpbWUgew0KICAg
IHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kQ29udHJhY3QsIFtQYXJhbWV0ZXIoTWFuZGF0
b3J5KV0kV2hlZWxob3VzZVN0YXR1cywgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFJv
b3QpDQoNCiAgICBpZiAoLW5vdCAkV2hlZWxob3VzZVN0YXR1cy5yZWFkeSkgeyB0aHJvdyAiRG9j
dW1lbnQgTUNQIHdoZWVsaG91c2UgaXMgbm90IHJlYWR5OiAkKCRXaGVlbGhvdXNlU3RhdHVzLnJl
YXNvbikiIH0NCiAgICAkZXhpc3RpbmcgPSBUZXN0LURvY3VtZW50UHl0aG9uUnVudGltZSAtQ29u
dHJhY3QgJENvbnRyYWN0IC1XaGVlbGhvdXNlU3RhdHVzICRXaGVlbGhvdXNlU3RhdHVzDQogICAg
aWYgKCRleGlzdGluZy5yZWFkeSkgeyByZXR1cm4gJGV4aXN0aW5nIH0NCiAgICBpZiAoLW5vdCBb
c3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsNCiAgICAgICAgdGhyb3cg
IkZpeHR1cmUgZG9jdW1lbnQgUHl0aG9uIHJ1bnRpbWUgaXMgbWlzc2luZyBvciBpbnZhbGlkOiAk
KCRleGlzdGluZy5yZWFzb24pIg0KICAgIH0NCg0KICAgICRzeXN0ZW1QeXRob24gPSBHZXQtU3lz
dGVtUHl0aG9uMzEySW52b2NhdGlvbg0KICAgICRydW50aW1lUGFyZW50ID0gU3BsaXQtUGF0aCAt
UGFyZW50IChbc3RyaW5nXSRDb250cmFjdC5ydW50aW1lUGF0aCkNCiAgICAkaG9zdFJvb3QgPSBT
cGxpdC1QYXRoIC1QYXJlbnQgJHJ1bnRpbWVQYXJlbnQNCiAgICBbdm9pZF0oSW5pdGlhbGl6ZS1B
ZGFwdGVyRGlyZWN0b3J5IC1QYXRoICRob3N0Um9vdCAtVGl0bGUgJ0hvc3QgcnVudGltZSBzdGF0
ZScpDQogICAgW3ZvaWRdKEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAtUGF0aCAkcnVudGlt
ZVBhcmVudCAtVGl0bGUgJ0hvc3QgUHl0aG9uIHZpcnR1YWwgZW52aXJvbm1lbnRzJykNCiAgICAk
c3RhZ2luZ1Jvb3QgPSBJbml0aWFsaXplLUFkYXB0ZXJEaXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0
aCAkaG9zdFJvb3QgJ3ZlbnYtc3RhZ2luZycpIC1UaXRsZSAnSG9zdCB2aXJ0dWFsIGVudmlyb25t
ZW50IHN0YWdpbmcnDQogICAgJHN0YWdlUGF0aCA9IEpvaW4tUGF0aCAkc3RhZ2luZ1Jvb3QgKCdk
b2N1bWVudC1tY3AtdjctJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykpDQogICAg
W3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQYXRoIC1QYXRoICRzdGFnZVBhdGgpDQoNCiAgICBbdm9p
ZF0oSW52b2tlLURvY3VtZW50UHl0aG9uQ29tbWFuZCAtQ29tbWFuZCAkc3lzdGVtUHl0aG9uLnBh
dGggLUFyZ3VtZW50cyBAKCRzeXN0ZW1QeXRob24ucHJlZml4ICsgQCgnLW0nLCAndmVudicsICRz
dGFnZVBhdGgpKSkNCiAgICAkc3RhZ2VQeXRob24gPSBKb2luLVBhdGggJHN0YWdlUGF0aCAnU2Ny
aXB0c1xweXRob24uZXhlJw0KICAgIFt2b2lkXShJbnZva2UtRG9jdW1lbnRQeXRob25Db21tYW5k
IC1Db21tYW5kICRzdGFnZVB5dGhvbiAtQXJndW1lbnRzIEAoDQogICAgICAgICctbScsICdwaXAn
LCAnaW5zdGFsbCcsICctLW5vLWluZGV4JywgJy0tZmluZC1saW5rcycsIChKb2luLVBhdGggJENv
bnRyYWN0LndoZWVsaG91c2VQYXRoICd3aGVlbHMnKSwNCiAgICAgICAgJy0tcmVxdWlyZS1oYXNo
ZXMnLCAnLS1kaXNhYmxlLXBpcC12ZXJzaW9uLWNoZWNrJywgJy0tcmVxdWlyZW1lbnQnLCAkQ29u
dHJhY3QucmVxdWlyZW1lbnRzTG9ja1BhdGgNCiAgICApKQ0KICAgIFt2b2lkXShJbnZva2UtRG9j
dW1lbnRQeXRob25Db21tYW5kIC1Db21tYW5kICRzdGFnZVB5dGhvbiAtQXJndW1lbnRzIEAoJy1t
JywgJ3BpcCcsICdjaGVjaycpKQ0KICAgIFt2b2lkXShJbnZva2UtRG9jdW1lbnRQeXRob25Db21t
YW5kIC1Db21tYW5kICRzdGFnZVB5dGhvbiAtQXJndW1lbnRzIEAoJy1jJywgJ2ltcG9ydCBtY3As
IHB5aHdweCwgd2luMzJjb20uY2xpZW50LCBweXBkZiwgcHlwZGZpdW0yLCBQSUw7IHByaW50KCJk
b2N1bWVudC1ydW50aW1lLW9rIiknKSkNCiAgICAkdmVyc2lvbiA9ICgoSW52b2tlLURvY3VtZW50
UHl0aG9uQ29tbWFuZCAtQ29tbWFuZCAkc3RhZ2VQeXRob24gLUFyZ3VtZW50cyBAKCctYycsICdp
bXBvcnQgc3lzOyBwcmludCgiLiIuam9pbihtYXAoc3RyLCBzeXMudmVyc2lvbl9pbmZvWzozXSkp
KScpKSAtam9pbiAiYG4iKS5UcmltKCkNCiAgICBpZiAoLW5vdCAkdmVyc2lvbi5TdGFydHNXaXRo
KCczLjEyLicsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbCkpIHsgdGhyb3cgJ1ByZXBhcmVk
IGRvY3VtZW50IHJ1bnRpbWUgaXMgbm90IENQeXRob24gMy4xMi4nIH0NCiAgICAkZnJlZXplID0g
KChJbnZva2UtRG9jdW1lbnRQeXRob25Db21tYW5kIC1Db21tYW5kICRzdGFnZVB5dGhvbiAtQXJn
dW1lbnRzIEAoJy1tJywgJ3BpcCcsICdmcmVlemUnLCAnLS1hbGwnKSkgfCBTb3J0LU9iamVjdCkg
LWpvaW4gImBuIg0KICAgICRhZ2VudHNQYXRoID0gSm9pbi1QYXRoICRzdGFnZVBhdGggJ0FHRU5U
Uy5tZCcNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYWdlbnRzUGF0aCkp
IHsgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoICRhZ2VudHNQYXRoIC1UZXh0ICIj
IERvY3VtZW50IE1DUCBob3N0IHJ1bnRpbWVgcmBuYHJgblRoaXMgZ2VuZXJhdGVkIGVudmlyb25t
ZW50IHJ1bnMgdGhlIGZpdmUgbG9ja2VkIGRvY3VtZW50IE1DUCBzZXJ2ZXJzIG9uIHRoaXMgaG9z
dC5gcmBuYHJgbjwhLS0gRG8gbm90IHJlc3RhdGUgaW5oZXJpdGVkIEFHRU5UUy5tZCBydWxlcy4g
LS0+YHJgbiIpIH0NCiAgICAkY2xhdWRlUGF0aCA9IEpvaW4tUGF0aCAkc3RhZ2VQYXRoICdDTEFV
REUubWQnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNsYXVkZVBhdGgp
KSB7IFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkY2xhdWRlUGF0aCAtVGV4dCAi
QEFHRU5UUy5tZGByYG4iKSB9DQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRo
IChKb2luLVBhdGggJHN0YWdlUGF0aCAncnVudGltZS1wcm9vZi5qc29uJykgLVZhbHVlIChbb3Jk
ZXJlZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBpZCA9ICdkb2N1bWVu
dC1tY3AnDQogICAgICAgIHB5dGhvblZlcnNpb24gPSAkdmVyc2lvbg0KICAgICAgICByZXF1aXJl
bWVudHNMb2NrU2hhMjU2ID0gW3N0cmluZ10kQ29udHJhY3QucmVxdWlyZW1lbnRzTG9ja1NoYTI1
Ng0KICAgICAgICB3aGVlbGhvdXNlUHJvb2ZTaGEyNTYgPSBbc3RyaW5nXSRXaGVlbGhvdXNlU3Rh
dHVzLnByb29mU2hhMjU2DQogICAgICAgIGluc3RhbGxlZEZyZWV6ZVNoYTI1NiA9IEdldC1UZXh0
U2hhMjU2IC1UZXh0ICRmcmVlemUNCiAgICAgICAgcHJlcGFyZWRBdFV0YyA9IFtEYXRlVGltZV06
OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgfSkpDQogICAgJHByZXBhcmVkID0gVGVzdC1Eb2N1
bWVudFB5dGhvblJ1bnRpbWUgLUNvbnRyYWN0ICRDb250cmFjdCAtV2hlZWxob3VzZVN0YXR1cyAk
V2hlZWxob3VzZVN0YXR1cyAtUnVudGltZVBhdGggJHN0YWdlUGF0aA0KICAgIGlmICgtbm90ICRw
cmVwYXJlZC5yZWFkeSkgeyB0aHJvdyAiUHJlcGFyZWQgZG9jdW1lbnQgcnVudGltZSBmYWlsZWQg
dmVyaWZpY2F0aW9uOiAkKCRwcmVwYXJlZC5yZWFzb24pIiB9DQoNCiAgICAkcHJlc2VydmVkID0g
JG51bGwNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkQ29udHJhY3QucnVudGltZVBh
dGgpIHsNCiAgICAgICAgJGhpc3RvcnlSb290ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0b3J5
IC1QYXRoIChKb2luLVBhdGggJGhvc3RSb290ICd2ZW52LWhpc3RvcnknKSAtVGl0bGUgJ1ByZXNl
cnZlZCBob3N0IHZpcnR1YWwgZW52aXJvbm1lbnRzJw0KICAgICAgICAkcHJlc2VydmVkID0gSm9p
bi1QYXRoICRoaXN0b3J5Um9vdCAoJ2RvY3VtZW50LW1jcC12Ny0nICsgW0RhdGVUaW1lXTo6VXRj
Tm93LlRvU3RyaW5nKCd5eXl5TU1kZFRISG1tc3NmZmZaJykgKyAnLScgKyBbZ3VpZF06Ok5ld0d1
aWQoKS5Ub1N0cmluZygnTicpKQ0KICAgICAgICBbSU8uRGlyZWN0b3J5XTo6TW92ZShbc3RyaW5n
XSRDb250cmFjdC5ydW50aW1lUGF0aCwgJHByZXNlcnZlZCkNCiAgICB9DQogICAgdHJ5IHsNCiAg
ICAgICAgW0lPLkRpcmVjdG9yeV06Ok1vdmUoJHN0YWdlUGF0aCwgW3N0cmluZ10kQ29udHJhY3Qu
cnVudGltZVBhdGgpDQogICAgfSBjYXRjaCB7DQogICAgICAgIGlmICgkbnVsbCAtbmUgJHByZXNl
cnZlZCAtYW5kIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJENvbnRyYWN0LnJ1bnRpbWVQ
YXRoKSAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwcmVzZXJ2ZWQgLVBhdGhUeXBlIENv
bnRhaW5lcikpIHsNCiAgICAgICAgICAgIFtJTy5EaXJlY3RvcnldOjpNb3ZlKCRwcmVzZXJ2ZWQs
IFtzdHJpbmddJENvbnRyYWN0LnJ1bnRpbWVQYXRoKQ0KICAgICAgICB9DQogICAgICAgIHRocm93
DQogICAgfQ0KICAgICR2ZXJpZmllZCA9IFRlc3QtRG9jdW1lbnRQeXRob25SdW50aW1lIC1Db250
cmFjdCAkQ29udHJhY3QgLVdoZWVsaG91c2VTdGF0dXMgJFdoZWVsaG91c2VTdGF0dXMNCiAgICBp
ZiAoLW5vdCAkdmVyaWZpZWQucmVhZHkpIHsgdGhyb3cgIlB1Ymxpc2hlZCBkb2N1bWVudCBydW50
aW1lIGZhaWxlZCB2ZXJpZmljYXRpb246ICQoJHZlcmlmaWVkLnJlYXNvbikiIH0NCiAgICAkdmVy
aWZpZWQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBwcmVzZXJ2
ZWRQcmV2aW91c1BhdGggLVZhbHVlICRwcmVzZXJ2ZWQNCiAgICByZXR1cm4gJHZlcmlmaWVkDQp9
DQoNCmZ1bmN0aW9uIEdldC1NY3BEZWZpbml0aW9uIHsNCiAgICBwYXJhbSgkRXh0ZW5zaW9uLCBb
c3RyaW5nXSRTb3VyY2VQYXRoLCBbc3RyaW5nXSRSb290LCAkQWRhcHRlciwgW3N0cmluZ10kRG9j
dW1lbnRQeXRob25Db21tYW5kKQ0KICAgICRpZCA9IFtzdHJpbmddJEV4dGVuc2lvbi5pZA0KICAg
ICRlbnRyeSA9IFtzdHJpbmddKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJEV4dGVuc2lvbiAn
ZW50cnknKQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRlbnRyeSkpIHsg
cmV0dXJuICRudWxsIH0NCiAgICAkZW50cnlQYXRoID0gSm9pbi1QYXRoICRTb3VyY2VQYXRoICRl
bnRyeS5SZXBsYWNlKCcvJywgJ1wnKQ0KICAgICRjb21tYW5kID0gaWYgKFtJTy5QYXRoXTo6R2V0
RXh0ZW5zaW9uKCRlbnRyeVBhdGgpIC1lcSAnLnB5Jykgew0KICAgICAgICBpZiAoW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkRG9jdW1lbnRQeXRob25Db21tYW5kKSkgeyB0aHJvdyAiTG9j
a2VkIGRvY3VtZW50IFB5dGhvbiBydW50aW1lIHdhcyBub3Qgc3VwcGxpZWQgZm9yICRpZC4iIH0N
CiAgICAgICAgJERvY3VtZW50UHl0aG9uQ29tbWFuZA0KICAgIH0gZWxzZSB7ICdub2RlJyB9DQog
ICAgJGVudmlyb25tZW50ID0gTmV3LU9iamVjdCBwc29iamVjdA0KICAgIGlmICgkaWQgLWVxICdz
ZWxmLWltcHJvdmUnKSB7DQogICAgICAgICRlbnZpcm9ubWVudCB8IEFkZC1NZW1iZXIgLU1lbWJl
clR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdTRUxGX0lNUFJPVkVfRElSJyAtVmFsdWUgKEpvaW4t
UGF0aCAkUm9vdCAnX2FnZW50XHNoYXJlZFxzZWxmLWltcHJvdmVtZW50JykNCiAgICB9DQogICAg
JGNvbmZpZ3VyZWROYW1lID0gaWYgKCRudWxsIC1lcSAkQWRhcHRlcikgeyAkbnVsbCB9IGVsc2Ug
eyBbc3RyaW5nXShHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRBZGFwdGVyICduYW1lJykgfQ0K
ICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRjb25maWd1cmVkTmFtZSkpIHsg
JGNvbmZpZ3VyZWROYW1lID0gJGlkIH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQog
ICAgICAgIGV4dGVuc2lvbklkID0gJGlkDQogICAgICAgIG5hbWUgPSAkY29uZmlndXJlZE5hbWUN
CiAgICAgICAgY29tbWFuZCA9ICRjb21tYW5kDQogICAgICAgIHNtb2tlQ29tbWFuZCA9ICQoaWYg
KC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpIC1hbmQgW0lPLlBh
dGhdOjpHZXRFeHRlbnNpb24oJGVudHJ5UGF0aCkgLWVxICcucHknKSB7ICdub2RlJyB9IGVsc2Ug
eyAkY29tbWFuZCB9KQ0KICAgICAgICBhcmdzID0gQCgkZW50cnlQYXRoKQ0KICAgICAgICBlbnYg
PSAkZW52aXJvbm1lbnQNCiAgICAgICAgc291cmNlUGF0aCA9ICRTb3VyY2VQYXRoDQogICAgICAg
IHZlcmlmeSA9IEAoKEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJEV4dGVuc2lvbiAndmVyaWZ5
JykpDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQtT3JDcmVhdGVKc29uT2JqZWN0IHsNCiAgICBw
YXJhbSgkUGFyZW50LCBbc3RyaW5nXSROYW1lKQ0KICAgICRwcm9wZXJ0eSA9ICRQYXJlbnQuUFNP
YmplY3QuUHJvcGVydGllc1skTmFtZV0NCiAgICBpZiAoJG51bGwgLWVxICRwcm9wZXJ0eSkgeyAk
dmFsdWUgPSBOZXctT2JqZWN0IHBzb2JqZWN0OyAkUGFyZW50IHwgQWRkLU1lbWJlciBOb3RlUHJv
cGVydHkgJE5hbWUgJHZhbHVlOyByZXR1cm4gJHZhbHVlIH0NCiAgICBpZiAoJG51bGwgLWVxICRw
cm9wZXJ0eS5WYWx1ZSAtb3IgJHByb3BlcnR5LlZhbHVlIC1pcyBbc3RyaW5nXSAtb3IgJHByb3Bl
cnR5LlZhbHVlLkdldFR5cGUoKS5Jc1ZhbHVlVHlwZSkgeyB0aHJvdyAiRXhwZWN0ZWQgSlNPTiBv
YmplY3QgYXQgJE5hbWUuIiB9DQogICAgcmV0dXJuICRwcm9wZXJ0eS5WYWx1ZQ0KfQ0KDQpmdW5j
dGlvbiBTZXQtQ2xhdWRlTWNwRGVmaW5pdGlvbnMgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3Qs
IFtvYmplY3RbXV0kRGVmaW5pdGlvbnMsIFtzdHJpbmddJEJhY2t1cERpcmVjdG9yeSkNCiAgICBB
c3NlcnQtTWFuYWdlZE1jcERlZmluaXRpb25zIC1EZWZpbml0aW9ucyAkRGVmaW5pdGlvbnMNCiAg
ICAkcGF0aCA9IEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNsYXVkZVwuY2xhdWRlLmpzb24nDQog
ICAgJHRleHQgPSBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0aCAtUGF0aFR5cGUgTGVh
ZikgeyBbSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRwYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkgfSBl
bHNlIHsgJ3t9JyB9DQogICAgJGJhY2t1cCA9IEJhY2t1cC1BZGFwdGVyQ29uZmlnQnl0ZXMgLVBh
dGggJHBhdGggLUJhY2t1cERpcmVjdG9yeSAkQmFja3VwRGlyZWN0b3J5IC1QcmVmaXggJ2NsYXVk
ZS1zdGF0ZScgLUV4dGVuc2lvbiAnanNvbicNCiAgICAkc3RhdGUgPSAkdGV4dCB8IENvbnZlcnRG
cm9tLUpzb24gLUVycm9yQWN0aW9uIFN0b3ANCiAgICAkYmVmb3JlUHJvdGVjdGVkID0gQChHZXQt
UHJvdGVjdGVkSnNvbkZpbmdlcnByaW50cyAtT2JqZWN0ICRzdGF0ZSkNCiAgICAkc2VydmVycyA9
IEdldC1PckNyZWF0ZUpzb25PYmplY3QgLVBhcmVudCAkc3RhdGUgLU5hbWUgJ21jcFNlcnZlcnMn
DQogICAgJGJlZm9yZVVubWFuYWdlZCA9IEAoR2V0LVVubWFuYWdlZENsYXVkZU1jcEZpbmdlcnBy
aW50cyAtU2VydmVycyAkc2VydmVycykNCiAgICAkb3BlcmF0aW9ucyA9IE5ldy1PYmplY3QgU3lz
dGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yZWFjaCAoJGRlZmlu
aXRpb24gaW4gJERlZmluaXRpb25zKSB7DQogICAgICAgICRtYXRjaGVzID0gQCgkc2VydmVycy5Q
U09iamVjdC5Qcm9wZXJ0aWVzIHwgV2hlcmUtT2JqZWN0IHsgJF8uTmFtZS5FcXVhbHMoW3N0cmlu
Z10kZGVmaW5pdGlvbi5uYW1lLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNl
KSB9KQ0KICAgICAgICBpZiAoJG1hdGNoZXMuQ291bnQgLWd0IDEpIHsgdGhyb3cgIkFtYmlndW91
cyBkdXBsaWNhdGUgQ2xhdWRlIE1DUCBkZWZpbml0aW9uOiAkKCRkZWZpbml0aW9uLm5hbWUpIiB9
DQogICAgICAgICRleGlzdGluZyA9IGlmICgkbWF0Y2hlcy5Db3VudCAtZXEgMSkgeyAkbWF0Y2hl
c1swXSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICR2YWx1ZSA9IFtvcmRlcmVkXUB7IHR5cGUg
PSAnc3RkaW8nOyBjb21tYW5kID0gJGRlZmluaXRpb24uY29tbWFuZDsgYXJncyA9IEAoJGRlZmlu
aXRpb24uYXJncykgfQ0KICAgICAgICBpZiAoQCgkZGVmaW5pdGlvbi5lbnYuUFNPYmplY3QuUHJv
cGVydGllcykuQ291bnQgLWd0IDApIHsgJHZhbHVlLmVudiA9ICRkZWZpbml0aW9uLmVudiB9DQog
ICAgICAgICRuZXdUZXh0ID0gJHZhbHVlIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDIwIC1Db21w
cmVzcw0KICAgICAgICAkbmV3SGFzaCA9IEdldC1UZXh0U2hhMjU2IC1UZXh0ICRuZXdUZXh0DQog
ICAgICAgICRwcmV2aW91c0hhc2ggPSAkbnVsbA0KICAgICAgICAkYWN0aW9uID0gJ2FkZGVkJw0K
ICAgICAgICBpZiAoJG51bGwgLW5lICRleGlzdGluZykgew0KICAgICAgICAgICAgJGV4aXN0aW5n
VGV4dCA9ICRleGlzdGluZy5WYWx1ZSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAyMCAtQ29tcHJl
c3MNCiAgICAgICAgICAgICRwcmV2aW91c0hhc2ggPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAkZXhp
c3RpbmdUZXh0DQogICAgICAgICAgICBpZiAoJGV4aXN0aW5nVGV4dCAtY2VxICRuZXdUZXh0IC1h
bmQgJGV4aXN0aW5nLk5hbWUgLWNlcSBbc3RyaW5nXSRkZWZpbml0aW9uLm5hbWUpIHsNCiAgICAg
ICAgICAgICAgICAkYWN0aW9uID0gJ3VuY2hhbmdlZCcNCiAgICAgICAgICAgIH0gZWxzZSB7DQog
ICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10k
YmFja3VwLmJhY2t1cFBhdGgpKSB7IHRocm93ICJBIGxlZ2FjeSBDbGF1ZGUgTUNQIHJlcGxhY2Vt
ZW50IGhhcyBubyBmdWxsLWJ5dGUgYmFja3VwOiAkKCRkZWZpbml0aW9uLm5hbWUpIiB9DQogICAg
ICAgICAgICAgICAgJHNlcnZlcnMuUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoW3N0cmluZ10k
ZXhpc3RpbmcuTmFtZSkNCiAgICAgICAgICAgICAgICAkc2VydmVycyB8IEFkZC1NZW1iZXIgLU1l
bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIChbc3RyaW5nXSRkZWZpbml0aW9uLm5hbWUpIC1W
YWx1ZSAoW3BzY3VzdG9tb2JqZWN0XSR2YWx1ZSkNCiAgICAgICAgICAgICAgICAkYWN0aW9uID0g
J3JlcGxhY2VkJw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg
JHNlcnZlcnMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAoW3N0
cmluZ10kZGVmaW5pdGlvbi5uYW1lKSAtVmFsdWUgKFtwc2N1c3RvbW9iamVjdF0kdmFsdWUpDQog
ICAgICAgIH0NCiAgICAgICAgJG9wZXJhdGlvbnMuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICAgICAgaGFybmVzcyA9ICdjbGF1ZGUnDQogICAgICAgICAgICBuYW1lID0gW3N0cmluZ10k
ZGVmaW5pdGlvbi5uYW1lDQogICAgICAgICAgICBhY3Rpb24gPSAkYWN0aW9uDQogICAgICAgICAg
ICBwcmV2aW91c0RlZmluaXRpb25TaGEyNTYgPSAkcHJldmlvdXNIYXNoDQogICAgICAgICAgICBh
cHBsaWVkRGVmaW5pdGlvblNoYTI1NiA9ICRuZXdIYXNoDQogICAgICAgICAgICBvcmlnaW5hbENv
bmZpZ1NoYTI1NiA9IFtzdHJpbmddJGJhY2t1cC5vcmlnaW5hbFNoYTI1Ng0KICAgICAgICAgICAg
YmFja3VwUGF0aCA9IFtzdHJpbmddJGJhY2t1cC5iYWNrdXBQYXRoDQogICAgICAgICAgICBiYWNr
dXBTaGEyNTYgPSBbc3RyaW5nXSRiYWNrdXAuYmFja3VwU2hhMjU2DQogICAgICAgIH0pDQogICAg
fQ0KICAgICRhZnRlclByb3RlY3RlZCA9IEAoR2V0LVByb3RlY3RlZEpzb25GaW5nZXJwcmludHMg
LU9iamVjdCAkc3RhdGUpDQogICAgQXNzZXJ0LUZpbmdlcnByaW50U2V0RXF1YWwgLUJlZm9yZSAk
YmVmb3JlUHJvdGVjdGVkIC1BZnRlciAkYWZ0ZXJQcm90ZWN0ZWQgLURlc2NyaXB0aW9uICdDbGF1
ZGUgcHJveHkvYmFzZS1VUkwvYXV0aCBmaWVsZHMnDQogICAgQXNzZXJ0LUZpbmdlcnByaW50U2V0
RXF1YWwgLUJlZm9yZSAkYmVmb3JlVW5tYW5hZ2VkIC1BZnRlciBAKEdldC1Vbm1hbmFnZWRDbGF1
ZGVNY3BGaW5nZXJwcmludHMgLVNlcnZlcnMgJHNlcnZlcnMpIC1EZXNjcmlwdGlvbiAnVW5tYW5h
Z2VkIENsYXVkZSBNQ1AgZGVmaW5pdGlvbnMnDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRv
bWljIC1QYXRoICRwYXRoIC1WYWx1ZSAkc3RhdGUpDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVj
dF1Aew0KICAgICAgICBjb25maWdTaGEyNTYgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAkcGF0aA0K
ICAgICAgICBiYWNrdXAgPSAkYmFja3VwDQogICAgICAgIG9wZXJhdGlvbnMgPSBAKCRvcGVyYXRp
b25zLlRvQXJyYXkoKSkNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIFNldC1DbGF1ZGVQbHVnaW5FbmFi
bGVtZW50IHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290LCBbb2JqZWN0W11dJFBsdWdpbnMsIFtz
dHJpbmddJEJhY2t1cERpcmVjdG9yeSkNCiAgICAkcGF0aCA9IEpvaW4tUGF0aCAkUm9vdCAnX2Fn
ZW50XGNsYXVkZVxzZXR0aW5ncy5qc29uJw0KICAgICR0ZXh0ID0gaWYgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJHBhdGggLVBhdGhUeXBlIExlYWYpIHsgW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgk
cGF0aCwgJHNjcmlwdDpVdGY4Tm9Cb20pIH0gZWxzZSB7ICd7fScgfQ0KICAgICRvcmlnaW5hbEhh
c2ggPSBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0aCAtUGF0aFR5cGUgTGVhZikgeyBH
ZXQtU291bFNoYTI1NiAtUGF0aCAkcGF0aCB9IGVsc2UgeyAkbnVsbCB9DQogICAgaWYgKCRudWxs
IC1uZSAkb3JpZ2luYWxIYXNoKSB7DQogICAgICAgICRiYWNrdXAgPSBKb2luLVBhdGggJEJhY2t1
cERpcmVjdG9yeSAiY2xhdWRlLXNldHRpbmdzLiRvcmlnaW5hbEhhc2guanNvbiINCiAgICAgICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGJhY2t1cCkpIHsgW0lPLkZpbGVdOjpD
b3B5KCRwYXRoLCAkYmFja3VwLCAkZmFsc2UpIH0NCiAgICB9DQogICAgJHNldHRpbmdzID0gJHRl
eHQgfCBDb252ZXJ0RnJvbS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wDQogICAgJGJlZm9yZVByb3Rl
Y3RlZCA9IEAoR2V0LVByb3RlY3RlZEpzb25GaW5nZXJwcmludHMgLU9iamVjdCAkc2V0dGluZ3Mp
DQogICAgJGVuYWJsZWQgPSBHZXQtT3JDcmVhdGVKc29uT2JqZWN0IC1QYXJlbnQgJHNldHRpbmdz
IC1OYW1lICdlbmFibGVkUGx1Z2lucycNCiAgICBmb3JlYWNoICgkcGx1Z2luIGluICRQbHVnaW5z
KSB7DQogICAgICAgICRwcmVmaXggPSAiJCgkcGx1Z2luLnBsdWdpbk5hbWUpQHNvdWwtdjctJCgk
cGx1Z2luLnNhZmVJZCktIg0KICAgICAgICBmb3JlYWNoICgkcHJvcGVydHkgaW4gQCgkZW5hYmxl
ZC5QU09iamVjdC5Qcm9wZXJ0aWVzKSkgew0KICAgICAgICAgICAgaWYgKCRwcm9wZXJ0eS5OYW1l
LlN0YXJ0c1dpdGgoJHByZWZpeCwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsKSAtYW5kICRw
cm9wZXJ0eS5OYW1lIC1jbmUgW3N0cmluZ10kcGx1Z2luLmVuYWJsZWRLZXkpIHsNCiAgICAgICAg
ICAgICAgICAkcHJvcGVydHkuVmFsdWUgPSAkZmFsc2UNCiAgICAgICAgICAgIH0NCiAgICAgICAg
fQ0KICAgICAgICAkZXhpc3RpbmcgPSAkZW5hYmxlZC5QU09iamVjdC5Qcm9wZXJ0aWVzW1tzdHJp
bmddJHBsdWdpbi5lbmFibGVkS2V5XQ0KICAgICAgICBpZiAoJG51bGwgLWVxICRleGlzdGluZykg
eyAkZW5hYmxlZCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIChb
c3RyaW5nXSRwbHVnaW4uZW5hYmxlZEtleSkgLVZhbHVlICR0cnVlIH0NCiAgICAgICAgZWxzZSB7
ICRleGlzdGluZy5WYWx1ZSA9ICR0cnVlIH0NCiAgICB9DQogICAgJGFmdGVyUHJvdGVjdGVkID0g
QChHZXQtUHJvdGVjdGVkSnNvbkZpbmdlcnByaW50cyAtT2JqZWN0ICRzZXR0aW5ncykNCiAgICBB
c3NlcnQtRmluZ2VycHJpbnRTZXRFcXVhbCAtQmVmb3JlICRiZWZvcmVQcm90ZWN0ZWQgLUFmdGVy
ICRhZnRlclByb3RlY3RlZCAtRGVzY3JpcHRpb24gJ0NsYXVkZSBwcm94eS9iYXNlLVVSTC9hdXRo
IGZpZWxkcycNCiAgICBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggJHBhdGggLVZh
bHVlICRzZXR0aW5ncykNCiAgICByZXR1cm4gR2V0LVNvdWxTaGEyNTYgLVBhdGggJHBhdGgNCn0N
Cg0KZnVuY3Rpb24gUXVvdGUtVG9tbExpdGVyYWwgew0KICAgIHBhcmFtKFtzdHJpbmddJFZhbHVl
KQ0KICAgIGlmICgkVmFsdWUuQ29udGFpbnMoIiciKSkgeyB0aHJvdyAnQSBUT01MIGFkYXB0ZXIg
dmFsdWUgY29udGFpbnMgYW4gdW5zdXBwb3J0ZWQgYXBvc3Ryb3BoZS4nIH0NCiAgICByZXR1cm4g
IickVmFsdWUnIg0KfQ0KDQpmdW5jdGlvbiBOZXctQ29kZXhNY3BCbG9jayB7DQogICAgcGFyYW0o
JERlZmluaXRpb24pDQogICAgJGFyZ3NUZXh0ID0gQCgkRGVmaW5pdGlvbi5hcmdzIHwgRm9yRWFj
aC1PYmplY3QgeyBRdW90ZS1Ub21sTGl0ZXJhbCAoW3N0cmluZ10kXykgfSkgLWpvaW4gJywgJw0K
ICAgICRibG9jayA9ICJbbWNwX3NlcnZlcnMuJCgkRGVmaW5pdGlvbi5uYW1lKV1gcmBuY29tbWFu
ZCA9ICQoUXVvdGUtVG9tbExpdGVyYWwgJERlZmluaXRpb24uY29tbWFuZClgcmBuYXJncyA9IFsk
YXJnc1RleHRdYHJgbiINCiAgICBpZiAoQCgkRGVmaW5pdGlvbi5lbnYuUFNPYmplY3QuUHJvcGVy
dGllcykuQ291bnQgLWd0IDApIHsNCiAgICAgICAgJGJsb2NrICs9ICJgcmBuW21jcF9zZXJ2ZXJz
LiQoJERlZmluaXRpb24ubmFtZSkuZW52XWByYG4iDQogICAgICAgIGZvcmVhY2ggKCRwcm9wZXJ0
eSBpbiAkRGVmaW5pdGlvbi5lbnYuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAg
JGJsb2NrICs9ICIkKCRwcm9wZXJ0eS5OYW1lKSA9ICQoUXVvdGUtVG9tbExpdGVyYWwgKFtzdHJp
bmddJHByb3BlcnR5LlZhbHVlKSlgcmBuIg0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiAk
YmxvY2sNCn0NCg0KZnVuY3Rpb24gU2V0LUNvZGV4TWNwRGVmaW5pdGlvbnMgew0KICAgIHBhcmFt
KFtzdHJpbmddJFJvb3QsIFtvYmplY3RbXV0kRGVmaW5pdGlvbnMsIFtzdHJpbmddJEJhY2t1cERp
cmVjdG9yeSkNCiAgICBBc3NlcnQtTWFuYWdlZE1jcERlZmluaXRpb25zIC1EZWZpbml0aW9ucyAk
RGVmaW5pdGlvbnMNCiAgICAkcGF0aCA9IEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNvZGV4XGNv
bmZpZy50b21sJw0KICAgICR0ZXh0ID0gaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhdGgg
LVBhdGhUeXBlIExlYWYpIHsgW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkcGF0aCwgJHNjcmlwdDpV
dGY4Tm9Cb20pIH0gZWxzZSB7ICcnIH0NCiAgICAkYmVmb3JlUHJvdGVjdGVkID0gQChHZXQtUHJv
dGVjdGVkVG9tbEZpbmdlcnByaW50cyAtTGluZXMgQCgkdGV4dCAtc3BsaXQgImByP2BuIikpDQog
ICAgJGJlZm9yZVVubWFuYWdlZCA9IEAoR2V0LVVubWFuYWdlZENvZGV4TWNwRmluZ2VycHJpbnRz
IC1UZXh0ICR0ZXh0KQ0KICAgICRiYWNrdXAgPSBCYWNrdXAtQWRhcHRlckNvbmZpZ0J5dGVzIC1Q
YXRoICRwYXRoIC1CYWNrdXBEaXJlY3RvcnkgJEJhY2t1cERpcmVjdG9yeSAtUHJlZml4ICdjb2Rl
eC1jb25maWcnIC1FeHRlbnNpb24gJ3RvbWwnDQogICAgQXNzZXJ0LU5vQW1iaWd1b3VzQ29kZXhN
YW5hZ2VkU2VjdGlvbnMgLVRleHQgJHRleHQNCiAgICAkb3BlcmF0aW9ucyA9IE5ldy1PYmplY3Qg
U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yZWFjaCAoJGRl
ZmluaXRpb24gaW4gJERlZmluaXRpb25zKSB7DQogICAgICAgICRwYXR0ZXJucyA9IEdldC1Ub21s
TWFuYWdlZEhlYWRlclBhdHRlcm5zIC1OYW1lIChbc3RyaW5nXSRkZWZpbml0aW9uLm5hbWUpDQog
ICAgICAgICRiYXNlU3BhbnMgPSBAKEdldC1Ub21sU2VjdGlvblNwYW5zIC1UZXh0ICR0ZXh0IC1I
ZWFkZXJQYXR0ZXJuICRwYXR0ZXJucy5iYXNlKQ0KICAgICAgICAkZW52U3BhbnMgPSBAKEdldC1U
b21sU2VjdGlvblNwYW5zIC1UZXh0ICR0ZXh0IC1IZWFkZXJQYXR0ZXJuICRwYXR0ZXJucy5lbnYp
DQogICAgICAgIGlmICgkYmFzZVNwYW5zLkNvdW50IC1ndCAxIC1vciAkZW52U3BhbnMuQ291bnQg
LWd0IDEpIHsgdGhyb3cgIkFtYmlndW91cyBkdXBsaWNhdGUgQ29kZXggTUNQIGRlZmluaXRpb246
ICQoJGRlZmluaXRpb24ubmFtZSkiIH0NCiAgICAgICAgJG5ld0Jsb2NrID0gTmV3LUNvZGV4TWNw
QmxvY2sgLURlZmluaXRpb24gJGRlZmluaXRpb24NCiAgICAgICAgJGV4aXN0aW5nU3BhbnMgPSBA
KCRiYXNlU3BhbnMgKyAkZW52U3BhbnMgfCBTb3J0LU9iamVjdCBzdGFydCkNCiAgICAgICAgJHBy
ZXZpb3VzVGV4dCA9IEAoJGV4aXN0aW5nU3BhbnMgfCBGb3JFYWNoLU9iamVjdCB7IFtzdHJpbmdd
JF8udGV4dCB9KSAtam9pbiAnJw0KICAgICAgICAkcHJldmlvdXNIYXNoID0gaWYgKCRleGlzdGlu
Z1NwYW5zLkNvdW50IC1ndCAwKSB7IEdldC1UZXh0U2hhMjU2IC1UZXh0ICRwcmV2aW91c1RleHQg
fSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAkYWN0aW9uID0gaWYgKCRleGlzdGluZ1NwYW5zLkNv
dW50IC1lcSAwKSB7ICdhZGRlZCcgfSBlbHNlIHsgJ3JlcGxhY2VkJyB9DQogICAgICAgICRub3Jt
YWxpemVkRXhpc3RpbmcgPSAkcHJldmlvdXNUZXh0LlJlcGxhY2UoImByYG4iLCAiYG4iKS5Ucmlt
KCkNCiAgICAgICAgJG5vcm1hbGl6ZWROZXcgPSAkbmV3QmxvY2suUmVwbGFjZSgiYHJgbiIsICJg
biIpLlRyaW0oKQ0KICAgICAgICBpZiAoJGV4aXN0aW5nU3BhbnMuQ291bnQgLWd0IDAgLWFuZCAk
bm9ybWFsaXplZEV4aXN0aW5nIC1jZXEgJG5vcm1hbGl6ZWROZXcpIHsNCiAgICAgICAgICAgICRh
Y3Rpb24gPSAndW5jaGFuZ2VkJw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgaWYgKCRl
eGlzdGluZ1NwYW5zLkNvdW50IC1ndCAwIC1hbmQgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZShbc3RyaW5nXSRiYWNrdXAuYmFja3VwUGF0aCkpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAi
QSBsZWdhY3kgQ29kZXggTUNQIHJlcGxhY2VtZW50IGhhcyBubyBmdWxsLWJ5dGUgYmFja3VwOiAk
KCRkZWZpbml0aW9uLm5hbWUpIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yZWFjaCAo
JHNwYW4gaW4gQCgkZXhpc3RpbmdTcGFucyB8IFNvcnQtT2JqZWN0IHN0YXJ0IC1EZXNjZW5kaW5n
KSkgew0KICAgICAgICAgICAgICAgICR0ZXh0ID0gJHRleHQuUmVtb3ZlKFtpbnRdJHNwYW4uc3Rh
cnQsIFtpbnRdJHNwYW4ubGVuZ3RoKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKC1u
b3QgW3N0cmluZ106OklzTnVsbE9yRW1wdHkoJHRleHQpIC1hbmQgLW5vdCAkdGV4dC5FbmRzV2l0
aCgiYG4iLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7ICR0ZXh0ICs9ICJgcmBuIiB9
DQogICAgICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCR0ZXh0
KSkgeyAkdGV4dCArPSAiYHJgbiIgfQ0KICAgICAgICAgICAgJHRleHQgKz0gJG5ld0Jsb2NrDQog
ICAgICAgIH0NCiAgICAgICAgJG9wZXJhdGlvbnMuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICAgICAgaGFybmVzcyA9ICdjb2RleCcNCiAgICAgICAgICAgIG5hbWUgPSBbc3RyaW5nXSRk
ZWZpbml0aW9uLm5hbWUNCiAgICAgICAgICAgIGFjdGlvbiA9ICRhY3Rpb24NCiAgICAgICAgICAg
IHByZXZpb3VzRGVmaW5pdGlvblNoYTI1NiA9ICRwcmV2aW91c0hhc2gNCiAgICAgICAgICAgIGFw
cGxpZWREZWZpbml0aW9uU2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgJG5ld0Jsb2NrDQog
ICAgICAgICAgICBvcmlnaW5hbENvbmZpZ1NoYTI1NiA9IFtzdHJpbmddJGJhY2t1cC5vcmlnaW5h
bFNoYTI1Ng0KICAgICAgICAgICAgYmFja3VwUGF0aCA9IFtzdHJpbmddJGJhY2t1cC5iYWNrdXBQ
YXRoDQogICAgICAgICAgICBiYWNrdXBTaGEyNTYgPSBbc3RyaW5nXSRiYWNrdXAuYmFja3VwU2hh
MjU2DQogICAgICAgIH0pDQogICAgfQ0KICAgICRhZnRlclByb3RlY3RlZCA9IEAoR2V0LVByb3Rl
Y3RlZFRvbWxGaW5nZXJwcmludHMgLUxpbmVzIEAoJHRleHQgLXNwbGl0ICJgcj9gbiIpKQ0KICAg
IEFzc2VydC1GaW5nZXJwcmludFNldEVxdWFsIC1CZWZvcmUgJGJlZm9yZVByb3RlY3RlZCAtQWZ0
ZXIgJGFmdGVyUHJvdGVjdGVkIC1EZXNjcmlwdGlvbiAnQ29kZXggcHJveHkvYmFzZS1VUkwvcHJv
dmlkZXIgbGluZXMnDQogICAgQXNzZXJ0LUZpbmdlcnByaW50U2V0RXF1YWwgLUJlZm9yZSAkYmVm
b3JlVW5tYW5hZ2VkIC1BZnRlciBAKEdldC1Vbm1hbmFnZWRDb2RleE1jcEZpbmdlcnByaW50cyAt
VGV4dCAkdGV4dCkgLURlc2NyaXB0aW9uICdVbm1hbmFnZWQgQ29kZXggTUNQIGRlZmluaXRpb25z
Jw0KICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkcGF0aCAtVGV4dCAkdGV4
dCkNCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIGNvbmZpZ1NoYTI1NiA9
IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRwYXRoDQogICAgICAgIGJhY2t1cCA9ICRiYWNrdXANCiAg
ICAgICAgb3BlcmF0aW9ucyA9IEAoJG9wZXJhdGlvbnMuVG9BcnJheSgpKQ0KICAgIH0NCn0NCg0K
ZnVuY3Rpb24gSW52b2tlLUxvY2FsSGFybmVzc0NvbW1hbmQgew0KICAgIHBhcmFtKFtzdHJpbmdd
JENvbW1hbmROYW1lLCBbc3RyaW5nW11dJEFyZ3VtZW50cywgW2hhc2h0YWJsZV0kRW52aXJvbm1l
bnQsIFtzdHJpbmddJFdvcmtpbmdEaXJlY3RvcnkpDQogICAgJGNvbW1hbmQgPSBHZXQtQ29tbWFu
ZCAkQ29tbWFuZE5hbWUgLUNvbW1hbmRUeXBlIEFwcGxpY2F0aW9uIC1FcnJvckFjdGlvbiBTaWxl
bnRseUNvbnRpbnVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0KICAgIGlmICgkbnVsbCAtZXEg
JGNvbW1hbmQpIHsgdGhyb3cgIlJlcXVpcmVkIGxvY2FsIGhhcm5lc3MgY29tbWFuZCBpcyBtaXNz
aW5nOiAkQ29tbWFuZE5hbWUiIH0NCiAgICAkc2F2ZWQgPSBAe30NCiAgICAkcHJpb3JMb2NhdGlv
biA9ICRudWxsDQogICAgJHByaW9yRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJEVycm9yQWN0aW9u
UHJlZmVyZW5jZQ0KICAgIHRyeSB7DQogICAgICAgIGZvcmVhY2ggKCRlbnRyeSBpbiAkRW52aXJv
bm1lbnQuR2V0RW51bWVyYXRvcigpKSB7DQogICAgICAgICAgICAkc2F2ZWRbJGVudHJ5LktleV0g
PSBbRW52aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCRlbnRyeS5LZXksICdQcm9j
ZXNzJykNCiAgICAgICAgICAgIFtFbnZpcm9ubWVudF06OlNldEVudmlyb25tZW50VmFyaWFibGUo
JGVudHJ5LktleSwgW3N0cmluZ10kZW50cnkuVmFsdWUsICdQcm9jZXNzJykNCiAgICAgICAgfQ0K
ICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRXb3JraW5nRGly
ZWN0b3J5KSkgew0KICAgICAgICAgICAgJHByaW9yTG9jYXRpb24gPSBHZXQtTG9jYXRpb24NCiAg
ICAgICAgICAgIFNldC1Mb2NhdGlvbiAtTGl0ZXJhbFBhdGggJFdvcmtpbmdEaXJlY3RvcnkNCiAg
ICAgICAgfQ0KICAgICAgICAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJ0NvbnRpbnVlJw0KICAg
ICAgICAkb3V0cHV0ID0gKCYgJGNvbW1hbmQuU291cmNlIEBBcmd1bWVudHMgMj4mMSB8IE91dC1T
dHJpbmcpDQogICAgICAgICRleGl0Q29kZSA9ICRMQVNURVhJVENPREUNCiAgICB9IGZpbmFsbHkg
ew0KICAgICAgICAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJHByaW9yRXJyb3JBY3Rpb25QcmVm
ZXJlbmNlDQogICAgICAgIGlmICgkbnVsbCAtbmUgJHByaW9yTG9jYXRpb24pIHsgU2V0LUxvY2F0
aW9uIC1MaXRlcmFsUGF0aCAkcHJpb3JMb2NhdGlvbi5QYXRoIH0NCiAgICAgICAgZm9yZWFjaCAo
JGVudHJ5IGluICRzYXZlZC5HZXRFbnVtZXJhdG9yKCkpIHsgW0Vudmlyb25tZW50XTo6U2V0RW52
aXJvbm1lbnRWYXJpYWJsZSgkZW50cnkuS2V5LCAkZW50cnkuVmFsdWUsICdQcm9jZXNzJykgfQ0K
ICAgIH0NCiAgICBpZiAoJGV4aXRDb2RlIC1uZSAwKSB7IHRocm93ICJMb2NhbCAkQ29tbWFuZE5h
bWUgY29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJGV4aXRDb2RlLiIgfQ0KICAgIHJldHVy
biBbcHNjdXN0b21vYmplY3RdQHsgY29tbWFuZCA9ICRjb21tYW5kLlNvdXJjZTsgYXJndW1lbnRz
ID0gQCgkQXJndW1lbnRzKTsgb3V0cHV0U2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgJG91
dHB1dCB9DQp9DQoNCmZ1bmN0aW9uIENvbnZlcnRUby1OYXRpdmVBcmd1bWVudCB7DQogICAgcGFy
YW0oW0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRWYWx1ZSkNCiAgICBpZiAoJFZhbHVlLkxl
bmd0aCAtZXEgMCkgeyByZXR1cm4gJyIiJyB9DQogICAgaWYgKCRWYWx1ZSAtbm90bWF0Y2ggJ1tc
cyJdJykgeyByZXR1cm4gJFZhbHVlIH0NCiAgICAkYnVpbGRlciA9IE5ldy1PYmplY3QgVGV4dC5T
dHJpbmdCdWlsZGVyDQogICAgW3ZvaWRdJGJ1aWxkZXIuQXBwZW5kKCciJykNCiAgICAkYmFja3Ns
YXNoZXMgPSAwDQogICAgZm9yZWFjaCAoJGNoYXJhY3RlciBpbiAkVmFsdWUuVG9DaGFyQXJyYXko
KSkgew0KICAgICAgICBpZiAoJGNoYXJhY3RlciAtZXEgJ1wnKSB7ICRiYWNrc2xhc2hlcysrOyBj
b250aW51ZSB9DQogICAgICAgIGlmICgkY2hhcmFjdGVyIC1lcSAnIicpIHsNCiAgICAgICAgICAg
IFt2b2lkXSRidWlsZGVyLkFwcGVuZCgoJ1wnICogKCgkYmFja3NsYXNoZXMgKiAyKSArIDEpKSkN
CiAgICAgICAgICAgIFt2b2lkXSRidWlsZGVyLkFwcGVuZCgnIicpDQogICAgICAgICAgICAkYmFj
a3NsYXNoZXMgPSAwDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICB9DQogICAgICAgIGlm
ICgkYmFja3NsYXNoZXMgLWd0IDApIHsgW3ZvaWRdJGJ1aWxkZXIuQXBwZW5kKCgnXCcgKiAkYmFj
a3NsYXNoZXMpKTsgJGJhY2tzbGFzaGVzID0gMCB9DQogICAgICAgIFt2b2lkXSRidWlsZGVyLkFw
cGVuZCgkY2hhcmFjdGVyKQ0KICAgIH0NCiAgICBpZiAoJGJhY2tzbGFzaGVzIC1ndCAwKSB7IFt2
b2lkXSRidWlsZGVyLkFwcGVuZCgoJ1wnICogKCRiYWNrc2xhc2hlcyAqIDIpKSkgfQ0KICAgIFt2
b2lkXSRidWlsZGVyLkFwcGVuZCgnIicpDQogICAgcmV0dXJuICRidWlsZGVyLlRvU3RyaW5nKCkN
Cn0NCg0KZnVuY3Rpb24gUmVhZC1NY3BKc29uUnBjUmVzcG9uc2Ugew0KICAgIHBhcmFtKA0KICAg
ICAgICBbSU8uU3RyZWFtUmVhZGVyXSRSZWFkZXIsDQogICAgICAgIFtpbnRdJEV4cGVjdGVkSWQs
DQogICAgICAgIFtEYXRlVGltZV0kRGVhZGxpbmVVdGMNCiAgICApDQogICAgd2hpbGUgKFtEYXRl
VGltZV06OlV0Y05vdyAtbHQgJERlYWRsaW5lVXRjKSB7DQogICAgICAgICRyZW1haW5pbmcgPSBb
aW50XVtNYXRoXTo6TWF4KDEsIFtNYXRoXTo6TWluKFtpbnRdOjpNYXhWYWx1ZSwgKCREZWFkbGlu
ZVV0YyAtIFtEYXRlVGltZV06OlV0Y05vdykuVG90YWxNaWxsaXNlY29uZHMpKQ0KICAgICAgICAk
cmVhZFRhc2sgPSAkUmVhZGVyLlJlYWRMaW5lQXN5bmMoKQ0KICAgICAgICBpZiAoLW5vdCAkcmVh
ZFRhc2suV2FpdCgkcmVtYWluaW5nKSkgeyB0aHJvdyAiTUNQIEpTT04tUlBDIHJlc3BvbnNlICRF
eHBlY3RlZElkIHRpbWVkIG91dC4iIH0NCiAgICAgICAgJGxpbmUgPSAkcmVhZFRhc2suUmVzdWx0
DQogICAgICAgIGlmICgkbnVsbCAtZXEgJGxpbmUpIHsgdGhyb3cgIk1DUCBwcm9jZXNzIGNsb3Nl
ZCBzdGRvdXQgYmVmb3JlIHJlc3BvbnNlICRFeHBlY3RlZElkLiIgfQ0KICAgICAgICBpZiAoW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkbGluZSkpIHsgY29udGludWUgfQ0KICAgICAgICB0
cnkgeyAkbWVzc2FnZSA9ICRsaW5lIHwgQ29udmVydEZyb20tSnNvbiAtRXJyb3JBY3Rpb24gU3Rv
cCB9DQogICAgICAgIGNhdGNoIHsgdGhyb3cgJ01DUCBwcm9jZXNzIHdyb3RlIG5vbi1KU09OIGRh
dGEgdG8gc3Rkb3V0LicgfQ0KICAgICAgICAkaWRQcm9wZXJ0eSA9ICRtZXNzYWdlLlBTT2JqZWN0
LlByb3BlcnRpZXNbJ2lkJ10NCiAgICAgICAgaWYgKCRudWxsIC1lcSAkaWRQcm9wZXJ0eSAtb3Ig
W3N0cmluZ10kaWRQcm9wZXJ0eS5WYWx1ZSAtY25lIFtzdHJpbmddJEV4cGVjdGVkSWQpIHsgY29u
dGludWUgfQ0KICAgICAgICAkZXJyb3JQcm9wZXJ0eSA9ICRtZXNzYWdlLlBTT2JqZWN0LlByb3Bl
cnRpZXNbJ2Vycm9yJ10NCiAgICAgICAgaWYgKCRudWxsIC1uZSAkZXJyb3JQcm9wZXJ0eSAtYW5k
ICRudWxsIC1uZSAkZXJyb3JQcm9wZXJ0eS5WYWx1ZSkgeyB0aHJvdyAiTUNQIEpTT04tUlBDIHJl
c3BvbnNlICRFeHBlY3RlZElkIHJldHVybmVkIGFuIGVycm9yLiIgfQ0KICAgICAgICAkcmVzdWx0
UHJvcGVydHkgPSAkbWVzc2FnZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydyZXN1bHQnXQ0KICAgICAg
ICBpZiAoJG51bGwgLWVxICRyZXN1bHRQcm9wZXJ0eSkgeyB0aHJvdyAiTUNQIEpTT04tUlBDIHJl
c3BvbnNlICRFeHBlY3RlZElkIGhhcyBubyByZXN1bHQuIiB9DQogICAgICAgIHJldHVybiAkcmVz
dWx0UHJvcGVydHkuVmFsdWUNCiAgICB9DQogICAgdGhyb3cgIk1DUCBKU09OLVJQQyByZXNwb25z
ZSAkRXhwZWN0ZWRJZCB0aW1lZCBvdXQuIg0KfQ0KDQpmdW5jdGlvbiBJbnZva2UtTWNwUHJvdG9j
b2xTbW9rZSB7DQogICAgcGFyYW0oJERlZmluaXRpb24sIFtzdHJpbmddJFJvb3QsIFtpbnRdJFRp
bWVvdXRTZWNvbmRzID0gMjApDQogICAgaWYgKEAoJERlZmluaXRpb24udmVyaWZ5IHwgV2hlcmUt
T2JqZWN0IHsgW3N0cmluZ10kXyAtY2VxICdtY3AtaW5pdGlhbGl6ZScgfSkuQ291bnQgLWVxIDAp
IHsgcmV0dXJuICRudWxsIH0NCiAgICAkc21va2VDb21tYW5kUHJvcGVydHkgPSAkRGVmaW5pdGlv
bi5QU09iamVjdC5Qcm9wZXJ0aWVzWydzbW9rZUNvbW1hbmQnXQ0KICAgICRzbW9rZUNvbW1hbmQg
PSBpZiAoJG51bGwgLWVxICRzbW9rZUNvbW1hbmRQcm9wZXJ0eSAtb3IgW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZShbc3RyaW5nXSRzbW9rZUNvbW1hbmRQcm9wZXJ0eS5WYWx1ZSkpIHsgW3N0
cmluZ10kRGVmaW5pdGlvbi5jb21tYW5kIH0gZWxzZSB7IFtzdHJpbmddJHNtb2tlQ29tbWFuZFBy
b3BlcnR5LlZhbHVlIH0NCiAgICAkY29tbWFuZCA9IEdldC1Db21tYW5kIC1OYW1lICRzbW9rZUNv
bW1hbmQgLUNvbW1hbmRUeXBlIEFwcGxpY2F0aW9uIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRp
bnVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0KICAgIGlmICgkbnVsbCAtZXEgJGNvbW1hbmQp
IHsgdGhyb3cgIk1DUCBzbW9rZSBjb21tYW5kIGlzIG1pc3Npbmc6ICRzbW9rZUNvbW1hbmQiIH0N
CiAgICAkZW50cnlQYXRoID0gW3N0cmluZ10kRGVmaW5pdGlvbi5hcmdzWzBdDQogICAgaWYgKC1u
b3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGVudHJ5UGF0aCAtUGF0aFR5cGUgTGVhZikpIHsg
dGhyb3cgIk1DUCBzbW9rZSBlbnRyeSBpcyBtaXNzaW5nOiAkKCREZWZpbml0aW9uLmV4dGVuc2lv
bklkKSIgfQ0KICAgICRlbnRyeUl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGVudHJ5UGF0
aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICBpZiAoKCRlbnRyeUl0ZW0uQXR0cmlidXRl
cyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93
ICJNQ1Agc21va2UgZW50cnkgaXMgYSByZXBhcnNlIHBvaW50OiAkKCREZWZpbml0aW9uLmV4dGVu
c2lvbklkKSIgfQ0KDQogICAgJHNtb2tlUm9vdCA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9y
eSAtUGF0aCAoSm9pbi1QYXRoICRSb290ICdfYWdlbnRccnVudGltZScpIC1UaXRsZSAnQWdlbnQg
cnVudGltZSBzdGF0ZScNCiAgICAkc21va2VSb290ID0gSW5pdGlhbGl6ZS1BZGFwdGVyRGlyZWN0
b3J5IC1QYXRoIChKb2luLVBhdGggJHNtb2tlUm9vdCAnbWNwLXNtb2tlJykgLVRpdGxlICdNQ1Ag
cHJvdG9jb2wgc21va2Ugc3RhdGUnDQogICAgJHNtb2tlUm9vdCA9IEluaXRpYWxpemUtQWRhcHRl
ckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRzbW9rZVJvb3QgKFtFbnZpcm9ubWVudF06Ok1h
Y2hpbmVOYW1lLlRvTG93ZXJJbnZhcmlhbnQoKSkpIC1UaXRsZSAnSG9zdCBNQ1AgcHJvdG9jb2wg
c21va2Ugc3RhdGUnDQogICAgJHByb2Nlc3MgPSBOZXctT2JqZWN0IERpYWdub3N0aWNzLlByb2Nl
c3MNCiAgICAkc3RhcnQgPSBOZXctT2JqZWN0IERpYWdub3N0aWNzLlByb2Nlc3NTdGFydEluZm8N
CiAgICAkcmVzb2x2ZWRDb21tYW5kID0gW3N0cmluZ10kY29tbWFuZC5Tb3VyY2UNCiAgICAkbmF0
aXZlQXJndW1lbnRzID0gQCgkRGVmaW5pdGlvbi5hcmdzIHwgRm9yRWFjaC1PYmplY3QgeyBDb252
ZXJ0VG8tTmF0aXZlQXJndW1lbnQgLVZhbHVlIChbc3RyaW5nXSRfKSB9KSAtam9pbiAnICcNCiAg
ICBpZiAoW0lPLlBhdGhdOjpHZXRFeHRlbnNpb24oJHJlc29sdmVkQ29tbWFuZCkgLW1hdGNoICco
P2kpXlwuKGNtZHxiYXQpJCcpIHsNCiAgICAgICAgJGNvbW1hbmRTaGVsbCA9IFtFbnZpcm9ubWVu
dF06OkdldEVudmlyb25tZW50VmFyaWFibGUoJ0NvbVNwZWMnLCAnUHJvY2VzcycpDQogICAgICAg
IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRjb21tYW5kU2hlbGwpKSB7ICRjb21t
YW5kU2hlbGwgPSBKb2luLVBhdGggKFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmly
b25tZW50K1NwZWNpYWxGb2xkZXJdOjpTeXN0ZW0pKSAnY21kLmV4ZScgfQ0KICAgICAgICAkc3Rh
cnQuRmlsZU5hbWUgPSAkY29tbWFuZFNoZWxsDQogICAgICAgICRzdGFydC5Bcmd1bWVudHMgPSAn
L2QgL3MgL2MgIiInICsgJHJlc29sdmVkQ29tbWFuZCArICciICcgKyAkbmF0aXZlQXJndW1lbnRz
ICsgJyInDQogICAgfSBlbHNlIHsNCiAgICAgICAgJHN0YXJ0LkZpbGVOYW1lID0gJHJlc29sdmVk
Q29tbWFuZA0KICAgICAgICAkc3RhcnQuQXJndW1lbnRzID0gJG5hdGl2ZUFyZ3VtZW50cw0KICAg
IH0NCiAgICAkc3RhcnQuV29ya2luZ0RpcmVjdG9yeSA9IFtzdHJpbmddJERlZmluaXRpb24uc291
cmNlUGF0aA0KICAgICRzdGFydC5Vc2VTaGVsbEV4ZWN1dGUgPSAkZmFsc2UNCiAgICAkc3RhcnQu
Q3JlYXRlTm9XaW5kb3cgPSAkdHJ1ZQ0KICAgICRzdGFydC5SZWRpcmVjdFN0YW5kYXJkSW5wdXQg
PSAkdHJ1ZQ0KICAgICRzdGFydC5SZWRpcmVjdFN0YW5kYXJkT3V0cHV0ID0gJHRydWUNCiAgICAk
c3RhcnQuUmVkaXJlY3RTdGFuZGFyZEVycm9yID0gJHRydWUNCiAgICAkc3RhcnQuU3RhbmRhcmRP
dXRwdXRFbmNvZGluZyA9ICRzY3JpcHQ6VXRmOE5vQm9tDQogICAgJHN0YXJ0LlN0YW5kYXJkRXJy
b3JFbmNvZGluZyA9ICRzY3JpcHQ6VXRmOE5vQm9tDQogICAgZm9yZWFjaCAoJHByb3BlcnR5IGlu
IEAoJERlZmluaXRpb24uZW52LlBTT2JqZWN0LlByb3BlcnRpZXMpKSB7ICRzdGFydC5FbnZpcm9u
bWVudFZhcmlhYmxlc1skcHJvcGVydHkuTmFtZV0gPSBbc3RyaW5nXSRwcm9wZXJ0eS5WYWx1ZSB9
DQogICAgJHN0YXJ0LkVudmlyb25tZW50VmFyaWFibGVzWydURU1QJ10gPSAkc21va2VSb290DQog
ICAgJHN0YXJ0LkVudmlyb25tZW50VmFyaWFibGVzWydUTVAnXSA9ICRzbW9rZVJvb3QNCiAgICAk
cHJvY2Vzcy5TdGFydEluZm8gPSAkc3RhcnQNCiAgICAkc3RkZXJyVGFzayA9ICRudWxsDQogICAg
dHJ5IHsNCiAgICAgICAgaWYgKC1ub3QgJHByb2Nlc3MuU3RhcnQoKSkgeyB0aHJvdyAiTUNQIHNt
b2tlIHByb2Nlc3MgZGlkIG5vdCBzdGFydDogJCgkRGVmaW5pdGlvbi5leHRlbnNpb25JZCkiIH0N
CiAgICAgICAgJHN0ZGVyclRhc2sgPSAkcHJvY2Vzcy5TdGFuZGFyZEVycm9yLlJlYWRUb0VuZEFz
eW5jKCkNCiAgICAgICAgJGRlYWRsaW5lID0gW0RhdGVUaW1lXTo6VXRjTm93LkFkZFNlY29uZHMo
JFRpbWVvdXRTZWNvbmRzKQ0KICAgICAgICAkaW5pdGlhbGl6ZVJlcXVlc3QgPSBbb3JkZXJlZF1A
ew0KICAgICAgICAgICAganNvbnJwYyA9ICcyLjAnDQogICAgICAgICAgICBpZCA9IDENCiAgICAg
ICAgICAgIG1ldGhvZCA9ICdpbml0aWFsaXplJw0KICAgICAgICAgICAgcGFyYW1zID0gW29yZGVy
ZWRdQHsNCiAgICAgICAgICAgICAgICBwcm90b2NvbFZlcnNpb24gPSAnMjAyNC0xMS0wNScNCiAg
ICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBbb3JkZXJlZF1Ae30NCiAgICAgICAgICAgICAg
ICBjbGllbnRJbmZvID0gW29yZGVyZWRdQHsgbmFtZSA9ICdzb3VsLXY3LXN0YXRpYy1zbW9rZSc7
IHZlcnNpb24gPSAnMS4wJyB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgJHBy
b2Nlc3MuU3RhbmRhcmRJbnB1dC5Xcml0ZUxpbmUoKCRpbml0aWFsaXplUmVxdWVzdCB8IENvbnZl
cnRUby1Kc29uIC1EZXB0aCAyMCAtQ29tcHJlc3MpKQ0KICAgICAgICAkcHJvY2Vzcy5TdGFuZGFy
ZElucHV0LkZsdXNoKCkNCiAgICAgICAgJGluaXRpYWxpemVSZXN1bHQgPSBSZWFkLU1jcEpzb25S
cGNSZXNwb25zZSAtUmVhZGVyICRwcm9jZXNzLlN0YW5kYXJkT3V0cHV0IC1FeHBlY3RlZElkIDEg
LURlYWRsaW5lVXRjICRkZWFkbGluZQ0KICAgICAgICAkcHJvdG9jb2xQcm9wZXJ0eSA9ICRpbml0
aWFsaXplUmVzdWx0LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Byb3RvY29sVmVyc2lvbiddDQogICAg
ICAgICRzZXJ2ZXJJbmZvUHJvcGVydHkgPSAkaW5pdGlhbGl6ZVJlc3VsdC5QU09iamVjdC5Qcm9w
ZXJ0aWVzWydzZXJ2ZXJJbmZvJ10NCiAgICAgICAgaWYgKCRudWxsIC1lcSAkcHJvdG9jb2xQcm9w
ZXJ0eSAtb3IgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRwcm90b2NvbFBy
b3BlcnR5LlZhbHVlKSAtb3IgJG51bGwgLWVxICRzZXJ2ZXJJbmZvUHJvcGVydHkpIHsNCiAgICAg
ICAgICAgIHRocm93ICJNQ1AgaW5pdGlhbGl6ZSByZXN1bHQgaXMgaW5jb21wbGV0ZTogJCgkRGVm
aW5pdGlvbi5leHRlbnNpb25JZCkiDQogICAgICAgIH0NCiAgICAgICAgJGluaXRpYWxpemVkID0g
W29yZGVyZWRdQHsganNvbnJwYyA9ICcyLjAnOyBtZXRob2QgPSAnbm90aWZpY2F0aW9ucy9pbml0
aWFsaXplZCc7IHBhcmFtcyA9IFtvcmRlcmVkXUB7fSB9DQogICAgICAgICRwcm9jZXNzLlN0YW5k
YXJkSW5wdXQuV3JpdGVMaW5lKCgkaW5pdGlhbGl6ZWQgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGgg
MTAgLUNvbXByZXNzKSkNCiAgICAgICAgJHRvb2xzUmVxdWVzdCA9IFtvcmRlcmVkXUB7IGpzb25y
cGMgPSAnMi4wJzsgaWQgPSAyOyBtZXRob2QgPSAndG9vbHMvbGlzdCc7IHBhcmFtcyA9IFtvcmRl
cmVkXUB7fSB9DQogICAgICAgICRwcm9jZXNzLlN0YW5kYXJkSW5wdXQuV3JpdGVMaW5lKCgkdG9v
bHNSZXF1ZXN0IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDEwIC1Db21wcmVzcykpDQogICAgICAg
ICRwcm9jZXNzLlN0YW5kYXJkSW5wdXQuRmx1c2goKQ0KICAgICAgICAkdG9vbHNSZXN1bHQgPSBS
ZWFkLU1jcEpzb25ScGNSZXNwb25zZSAtUmVhZGVyICRwcm9jZXNzLlN0YW5kYXJkT3V0cHV0IC1F
eHBlY3RlZElkIDIgLURlYWRsaW5lVXRjICRkZWFkbGluZQ0KICAgICAgICAkdG9vbHNQcm9wZXJ0
eSA9ICR0b29sc1Jlc3VsdC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0b29scyddDQogICAgICAgIGlm
ICgkbnVsbCAtZXEgJHRvb2xzUHJvcGVydHkpIHsgdGhyb3cgIk1DUCB0b29scy9saXN0IHJlc3Vs
dCBpcyBpbmNvbXBsZXRlOiAkKCREZWZpbml0aW9uLmV4dGVuc2lvbklkKSIgfQ0KICAgICAgICAk
dG9vbHMgPSBAKCR0b29sc1Byb3BlcnR5LlZhbHVlKQ0KICAgICAgICAkcmVxdWlyZXNGb3VyID0g
QCgkRGVmaW5pdGlvbi52ZXJpZnkgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfIC1jZXEgJ3Rv
b2xzLWxpc3QtNCcgfSkuQ291bnQgLWd0IDANCiAgICAgICAgaWYgKCRyZXF1aXJlc0ZvdXIgLWFu
ZCAkdG9vbHMuQ291bnQgLW5lIDQpIHsgdGhyb3cgIk1DUCB0b29scy9saXN0IGNvdW50IG1pc21h
dGNoIGZvciAkKCREZWZpbml0aW9uLmV4dGVuc2lvbklkKTogZXhwZWN0ZWQgNCwgZm91bmQgJCgk
dG9vbHMuQ291bnQpLiIgfQ0KICAgICAgICAkdG9vbE5hbWVzID0gQCgkdG9vbHMgfCBGb3JFYWNo
LU9iamVjdCB7IFtzdHJpbmddJF8ubmFtZSB9IHwgU29ydC1PYmplY3QpDQogICAgICAgIGlmIChA
KCR0b29sTmFtZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNl
KCRfKSB9KS5Db3VudCAtZ3QgMCkgeyB0aHJvdyAnTUNQIHRvb2xzL2xpc3QgcmV0dXJuZWQgYSB0
b29sIHdpdGhvdXQgYSBuYW1lLicgfQ0KICAgICAgICAkc2VydmVyTmFtZSA9IFtzdHJpbmddJHNl
cnZlckluZm9Qcm9wZXJ0eS5WYWx1ZS5uYW1lDQogICAgICAgICRzZXJ2ZXJWZXJzaW9uID0gW3N0
cmluZ10kc2VydmVySW5mb1Byb3BlcnR5LlZhbHVlLnZlcnNpb24NCiAgICAgICAgcmV0dXJuIFtw
c2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgZXZpZGVuY2VTaGEyNTYgPSBHZXQtVGV4dFNo
YTI1NiAtVGV4dCAoKFtzdHJpbmddJHByb3RvY29sUHJvcGVydHkuVmFsdWUpICsgJ3wnICsgJHNl
cnZlck5hbWUgKyAnfCcgKyAkc2VydmVyVmVyc2lvbiArICd8JyArICgkdG9vbE5hbWVzIC1qb2lu
ICd8JykpDQogICAgICAgICAgICB2ZXJpZmljYXRpb25UeXBlID0gJChpZiAoJHJlcXVpcmVzRm91
cikgeyAnbmV3LXByb2Nlc3MtbWNwLWluaXRpYWxpemUtYW5kLXRvb2xzLWxpc3QtNCcgfSBlbHNl
IHsgJ25ldy1wcm9jZXNzLW1jcC1pbml0aWFsaXplLWFuZC10b29scy1saXN0JyB9KQ0KICAgICAg
ICAgICAgcmVzb2x2ZWRQYXRoQ291bnQgPSAxDQogICAgICAgICAgICBzbW9rZVN0YXR1cyA9ICdw
YXNzZWQnDQogICAgICAgICAgICB0b29sQ291bnQgPSAkdG9vbHMuQ291bnQNCiAgICAgICAgfQ0K
ICAgIH0gZmluYWxseSB7DQogICAgICAgIHRyeSB7IGlmICgkbnVsbCAtbmUgJHByb2Nlc3MgLWFu
ZCAkcHJvY2Vzcy5TdGFydEluZm8uUmVkaXJlY3RTdGFuZGFyZElucHV0KSB7ICRwcm9jZXNzLlN0
YW5kYXJkSW5wdXQuQ2xvc2UoKSB9IH0gY2F0Y2ggeyB9DQogICAgICAgIGlmICgkbnVsbCAtbmUg
JHByb2Nlc3MpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3Qg
JHByb2Nlc3MuSGFzRXhpdGVkIC1hbmQgLW5vdCAkcHJvY2Vzcy5XYWl0Rm9yRXhpdCgxNTAwKSkg
eyAkcHJvY2Vzcy5LaWxsKCk7IFt2b2lkXSRwcm9jZXNzLldhaXRGb3JFeGl0KDUwMDApIH0NCiAg
ICAgICAgICAgIH0gY2F0Y2ggeyB0cnkgeyBpZiAoLW5vdCAkcHJvY2Vzcy5IYXNFeGl0ZWQpIHsg
JHByb2Nlc3MuS2lsbCgpIH0gfSBjYXRjaCB7IH0gfQ0KICAgICAgICAgICAgaWYgKCRudWxsIC1u
ZSAkc3RkZXJyVGFzaykgeyB0cnkgeyBbdm9pZF0kc3RkZXJyVGFzay5XYWl0KDEwMDApIH0gY2F0
Y2ggeyB9IH0NCiAgICAgICAgICAgICRwcm9jZXNzLkRpc3Bvc2UoKQ0KICAgICAgICB9DQogICAg
fQ0KfQ0KDQppZiAoJFRlc3ROYXR1cmFsSG9tZU1pZ3JhdGlvbk9ubHkpIHsNCiAgICBpZiAoW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpIC1vciBbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRUZXN0RXh0ZXJuYWxQcm9maWxlUm9vdCkpIHsNCiAgICAgICAgdGhyb3cg
J1Rlc3ROYXR1cmFsSG9tZU1pZ3JhdGlvbk9ubHkgcmVxdWlyZXMgYm90aCBUZXN0Um9vdCBhbmQg
VGVzdEV4dGVybmFsUHJvZmlsZVJvb3QuJw0KICAgIH0NCiAgICAkdGVzdE1pZ3JhdGlvblJvb3Qg
PSBSZXNvbHZlLUFkYXB0ZXJSb290DQogICAgJHRlc3RTdGF0ZURpcmVjdG9yeSA9IEpvaW4tUGF0
aCAkdGVzdE1pZ3JhdGlvblJvb3QgJ19hZ2VudFxzZXR1cCcNCiAgICBbdm9pZF0oSW5pdGlhbGl6
ZS1BZGFwdGVyRGlyZWN0b3J5IC1QYXRoICR0ZXN0U3RhdGVEaXJlY3RvcnkgLVRpdGxlICdGaXh0
dXJlIHNldHVwIHN0YXRlJykNCiAgICAkdGVzdEdlbmVyYXRpb25EaXJlY3RvcnkgPSBKb2luLVBh
dGggJHRlc3RTdGF0ZURpcmVjdG9yeSAoJ2dlbmVyYXRpb25zXCcgKyAkR2VuZXJhdGlvbklkKQ0K
ICAgICR0ZXN0R2VuZXJhdGlvblBhcmVudCA9IEluaXRpYWxpemUtQWRhcHRlckRpcmVjdG9yeSAt
UGF0aCAoU3BsaXQtUGF0aCAtUGFyZW50ICR0ZXN0R2VuZXJhdGlvbkRpcmVjdG9yeSkgLVRpdGxl
ICdGaXh0dXJlIGdlbmVyYXRpb25zJw0KICAgIFt2b2lkXShJbml0aWFsaXplLUFkYXB0ZXJEaXJl
Y3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkdGVzdEdlbmVyYXRpb25QYXJlbnQgJEdlbmVyYXRpb25J
ZCkgLVRpdGxlICdGaXh0dXJlIGdlbmVyYXRpb24nKQ0KICAgICR0ZXN0TW9kdWxlQXJndW1lbnRz
ID0gR2V0LU1vZHVsZUFyZ3VtZW50cyAtU3RhdGVEaXJlY3RvcnkgJHRlc3RTdGF0ZURpcmVjdG9y
eQ0KICAgICR0ZXN0TWlncmF0aW9uTG9jayA9IE5ldy1Tb3VsT3BlcmF0aW9uTG9jayAtTmFtZSAn
bmF0dXJhbC1ob21lLXRlc3QnIEB0ZXN0TW9kdWxlQXJndW1lbnRzDQogICAgdHJ5IHsNCiAgICAg
ICAgQXNzZXJ0LU5vTGl2ZUFnZW50DQogICAgICAgICR0ZXN0TmF0dXJhbEhvbWVzID0gQChDb252
ZXJ0LU5hdHVyYWxIYXJuZXNzSG9tZXMgLVJvb3QgJHRlc3RNaWdyYXRpb25Sb290IC1TdGF0ZURp
cmVjdG9yeSAkdGVzdFN0YXRlRGlyZWN0b3J5IC1HZW5lcmF0aW9uRGlyZWN0b3J5ICR0ZXN0R2Vu
ZXJhdGlvbkRpcmVjdG9yeSkNCiAgICAgICAgJHRlc3RQZW5kaW5nID0gQCgkdGVzdE5hdHVyYWxI
b21lcyB8IFdoZXJlLU9iamVjdCB7IFtib29sXShHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRf
ICdwZW5kaW5nJykgfSkNCiAgICAgICAgJHRlc3RBZ2VudFN0YW5kYXJkID0gJG51bGwNCiAgICAg
ICAgaWYgKCR0ZXN0UGVuZGluZy5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgJHRlc3RBZ2Vu
dFN0YW5kYXJkID0gSW5pdGlhbGl6ZS1BZ2VudFN0YW5kYXJkSG9tZSAtUm9vdCAkdGVzdE1pZ3Jh
dGlvblJvb3QgLVN0YXRlRGlyZWN0b3J5ICR0ZXN0U3RhdGVEaXJlY3RvcnkgYA0KICAgICAgICAg
ICAgICAgIC1HZW5lcmF0aW9uRGlyZWN0b3J5ICR0ZXN0R2VuZXJhdGlvbkRpcmVjdG9yeSAtRW5h
YmxlRXh0ZXJuYWxDb252ZXJzaW9uICR0cnVlDQogICAgICAgICAgICBpZiAoJG51bGwgLW5lICR0
ZXN0QWdlbnRTdGFuZGFyZC5taWdyYXRpb25FdmlkZW5jZSAtYW5kIFtib29sXShHZXQtT3B0aW9u
YWxQcm9wZXJ0eVZhbHVlICR0ZXN0QWdlbnRTdGFuZGFyZC5taWdyYXRpb25FdmlkZW5jZSAncGVu
ZGluZycpKSB7DQogICAgICAgICAgICAgICAgJHRlc3RQZW5kaW5nICs9ICR0ZXN0QWdlbnRTdGFu
ZGFyZC5taWdyYXRpb25FdmlkZW5jZQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAg
IHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIHN0YXR1cyA9ICQoaWYgKCR0
ZXN0UGVuZGluZy5Db3VudCAtZ3QgMCkgeyAncGVuZGluZy1uYXR1cmFsLWhvbWUtbWVyZ2UnIH0g
ZWxzZSB7ICduYXR1cmFsLWhvbWUtbWlncmF0aW9uLXZlcmlmaWVkJyB9KQ0KICAgICAgICAgICAg
bmF0dXJhbEhhcm5lc3NIb21lcyA9ICR0ZXN0TmF0dXJhbEhvbWVzDQogICAgICAgICAgICBhZ2Vu
dFN0YW5kYXJkSG9tZSA9ICR0ZXN0QWdlbnRTdGFuZGFyZA0KICAgICAgICAgICAgcGVuZGluZyA9
IEAoJHRlc3RQZW5kaW5nKQ0KICAgICAgICAgICAgbm9Nb2RlbENhbGwgPSAkdHJ1ZQ0KICAgICAg
ICB9DQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAgRXhpdC1Tb3VsT3BlcmF0aW9uTG9jayAtTG9j
ayAkdGVzdE1pZ3JhdGlvbkxvY2sNCiAgICB9DQp9DQoNCiRyb290ID0gUmVzb2x2ZS1BZGFwdGVy
Um9vdA0KJHN0YXRlRGlyZWN0b3J5ID0gSm9pbi1QYXRoICRyb290ICdfYWdlbnRcc2V0dXAnDQok
bW9kdWxlQXJndW1lbnRzID0gR2V0LU1vZHVsZUFyZ3VtZW50cyAtU3RhdGVEaXJlY3RvcnkgJHN0
YXRlRGlyZWN0b3J5DQokZ2VuZXJhdGlvbkRpcmVjdG9yeSA9IEpvaW4tUGF0aCAkc3RhdGVEaXJl
Y3RvcnkgKCdnZW5lcmF0aW9uc1wnICsgJEdlbmVyYXRpb25JZCkNCiRtYW5pZmVzdFBhdGggPSBK
b2luLVBhdGggJGdlbmVyYXRpb25EaXJlY3RvcnkgJ2dlbmVyYXRpb24uanNvbicNCmlmICgtbm90
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRtYW5pZmVzdFBhdGggLVBhdGhUeXBlIExlYWYpKSB7
IHRocm93ICdHZW5lcmF0aW9uIG1hbmlmZXN0IGlzIG1pc3NpbmcuJyB9DQokbWFuaWZlc3QgPSBS
ZWFkLVNvdWxKc29uIC1QYXRoICRtYW5pZmVzdFBhdGgNCmlmIChAKCdwZW5kaW5nLWFkYXB0ZXJz
LWFuZC1zbW9rZScsICdwZW5kaW5nLXNlY3JldHMtdmF1bHQnLCAncGVuZGluZy1leHRlcm5hbC1o
b21lLW1pZ3JhdGlvbicsICdyZWFkeScpIC1ub3Rjb250YWlucyBbc3RyaW5nXSRtYW5pZmVzdC5z
dGF0dXMpIHsgdGhyb3cgIkdlbmVyYXRpb24gaXMgbm90IHJlYWR5IGZvciBhZGFwdGVyczogJCgk
bWFuaWZlc3Quc3RhdHVzKSIgfQ0KJHNvdWxTdGF0ZSA9IFJlYWQtU291bEpzb24gLVBhdGggKEpv
aW4tUGF0aCAkcm9vdCAnc291bC1zdGF0ZS5qc29uJykNCmlmIChbc3RyaW5nXSRtYW5pZmVzdC5z
b3VsSWQgLWNuZSBbc3RyaW5nXSRzb3VsU3RhdGUuc291bElkKSB7IHRocm93ICdHZW5lcmF0aW9u
IGJlbG9uZ3MgdG8gYW5vdGhlciBzb3VsLicgfQ0KJHNvdXJjZUxvY2tQYXRoID0gSm9pbi1QYXRo
ICRnZW5lcmF0aW9uRGlyZWN0b3J5ICdzb3VyY2UtbG9jay5qc29uJw0KJHNvdXJjZUxvY2sgPSBS
ZWFkLVNvdWxKc29uIC1QYXRoICRzb3VyY2VMb2NrUGF0aA0KJHNvdXJjZUxvY2tTaGEgPSBHZXQt
U291bFNoYTI1NiAtUGF0aCAkc291cmNlTG9ja1BhdGgNCmlmICgkc291cmNlTG9ja1NoYSAtY25l
IFtzdHJpbmddJG1hbmlmZXN0LnNvdXJjZUxvY2tTaGEyNTYpIHsgdGhyb3cgJ0dlbmVyYXRpb24g
c291cmNlLWxvY2sgaGFzaCBkb2VzIG5vdCBtYXRjaCBpdHMgaW1tdXRhYmxlIG1hbmlmZXN0Licg
fQ0KJGV4cGVjdGVkQmluZGluZ3MgPSBAKEdldC1FeHBlY3RlZEJpbmRpbmcgLVNvdXJjZUxvY2sg
JHNvdXJjZUxvY2spDQokZG9jdW1lbnRQeXRob25Db250cmFjdCA9IEdldC1Eb2N1bWVudFB5dGhv
blJ1bnRpbWVDb250cmFjdCAtU291cmNlTG9jayAkc291cmNlTG9jayAtUm9vdCAkcm9vdA0KJGRv
Y3VtZW50V2hlZWxob3VzZVN0YXR1cyA9IFRlc3QtRG9jdW1lbnRXaGVlbGhvdXNlUmVhZHkgLUNv
bnRyYWN0ICRkb2N1bWVudFB5dGhvbkNvbnRyYWN0DQoNCiRzb3VyY2VSZXN1bHRzID0gTmV3LU9i
amVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCmZvcmVhY2ggKCRl
eHRlbnNpb24gaW4gQCgkc291cmNlTG9jay5leHRlbnNpb25zKSkgeyAkc291cmNlUmVzdWx0cy5B
ZGQoKFRlc3QtQ2Fub25pY2FsU291cmNlIC1Sb290ICRyb290IC1FeHRlbnNpb24gJGV4dGVuc2lv
bikpIH0NCiRub3RSZWFkeSA9IEAoJHNvdXJjZVJlc3VsdHMgfCBXaGVyZS1PYmplY3QgeyAtbm90
ICRfLnJlYWR5IH0pDQppZiAoLW5vdCAkZG9jdW1lbnRXaGVlbGhvdXNlU3RhdHVzLnJlYWR5KSB7
DQogICAgJG5vdFJlYWR5ICs9IFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9ICdkb2N1bWVudC1tY3At
cHl0aG9uLXdoZWVsaG91c2UnOyByZWFkeSA9ICRmYWxzZTsgcmVhc29uID0gW3N0cmluZ10kZG9j
dW1lbnRXaGVlbGhvdXNlU3RhdHVzLnJlYXNvbjsgcGF0aCA9IFtzdHJpbmddJGRvY3VtZW50V2hl
ZWxob3VzZVN0YXR1cy5wYXRoIH0NCn0NCmlmICgkbm90UmVhZHkuQ291bnQgLWd0IDApIHsNCiAg
ICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIGdlbmVyYXRpb25JZCA9ICRHZW5l
cmF0aW9uSWQNCiAgICAgICAgc3RhdHVzID0gJ3BlbmRpbmctc291cmNlJw0KICAgICAgICBtYWNo
aW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgYWRhcHRlcldyaXRlcyA9IDANCiAgICAgICAgbWlz
c2luZ09ySW52YWxpZFNvdXJjZXMgPSBAKCRub3RSZWFkeSB8IFNlbGVjdC1PYmplY3QgaWQsIHJl
YXNvbiwgcGF0aCkNCiAgICB9DQp9DQoNCiRwbGFuID0gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAg
Z2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZA0KICAgIHN0YXR1cyA9ICdzb3VyY2VzLXZlcmlm
aWVkJw0KICAgIGV4cGVjdGVkQmluZGluZ3MgPSAkZXhwZWN0ZWRCaW5kaW5ncw0KICAgIHNvdXJj
ZUNvdW50ID0gJHNvdXJjZVJlc3VsdHMuQ291bnQNCiAgICBkb2N1bWVudFB5dGhvbldoZWVsaG91
c2UgPSAkZG9jdW1lbnRXaGVlbGhvdXNlU3RhdHVzDQogICAgbm9Nb2RlbENhbGwgPSAkdHJ1ZQ0K
ICAgIHByb3h5RW52aXJvbm1lbnRUb3VjaGVkID0gJGZhbHNlDQp9DQppZiAoJFBsYW5Pbmx5KSB7
IHJldHVybiAkcGxhbiB9DQoNCkFzc2VydC1Ob0FtYmlndW91c01hbmFnZWRNY3BDb25maWd1cmF0
aW9uIC1Sb290ICRyb290DQpBc3NlcnQtTm9MaXZlQWdlbnQNCiRsb2NrID0gTmV3LVNvdWxPcGVy
YXRpb25Mb2NrIC1OYW1lICdnbG9iYWwtbWlncmF0aW9uJyBAbW9kdWxlQXJndW1lbnRzDQp0cnkg
ew0KICAgIEFzc2VydC1Ob0xpdmVBZ2VudA0KICAgIEFzc2VydC1BZGFwdGVyV3JpdGVyRnJlZSAt
UGF0aHMgKEdldC1BZGFwdGVyV3JpdGVyR3VhcmRQYXRocyAtUm9vdCAkcm9vdCkNCiAgICAkcHJv
dGVjdGVkRW52aXJvbm1lbnRCZWZvcmUgPSBAKEdldC1Qcm90ZWN0ZWRFbnZpcm9ubWVudEZpbmdl
cnByaW50cykNCiAgICAkZG9jdW1lbnRQeXRob25SdW50aW1lID0gRW5zdXJlLURvY3VtZW50UHl0
aG9uUnVudGltZSAtQ29udHJhY3QgJGRvY3VtZW50UHl0aG9uQ29udHJhY3QgLVdoZWVsaG91c2VT
dGF0dXMgJGRvY3VtZW50V2hlZWxob3VzZVN0YXR1cyAtUm9vdCAkcm9vdA0KICAgICRjbGF1ZGVI
b21lID0gSm9pbi1QYXRoICRyb290ICdfYWdlbnRcY2xhdWRlJw0KICAgICRjb2RleEhvbWUgPSBK
b2luLVBhdGggJHJvb3QgJ19hZ2VudFxjb2RleCcNCiAgICAkYXBwbHlWYXVsdFJlYWRpbmVzcyA9
IEdldC1BcHBseVZhdWx0UmVhZGluZXNzIC1Sb290ICRyb290DQogICAgJGV4dGVybmFsSG9tZXNS
ZWFkeSA9IFtib29sXSRhcHBseVZhdWx0UmVhZGluZXNzLnJlYWR5DQogICAgJG5hdHVyYWxIb21l
RXZpZGVuY2UgPSBpZiAoJGV4dGVybmFsSG9tZXNSZWFkeSkgew0KICAgICAgICBAKENvbnZlcnQt
TmF0dXJhbEhhcm5lc3NIb21lcyAtUm9vdCAkcm9vdCAtU3RhdGVEaXJlY3RvcnkgJHN0YXRlRGly
ZWN0b3J5IC1HZW5lcmF0aW9uRGlyZWN0b3J5ICRnZW5lcmF0aW9uRGlyZWN0b3J5KQ0KICAgIH0g
ZWxzZSB7DQogICAgICAgIEAoW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICBzdGF0dXMg
PSAncGVuZGluZy12YXVsdC1iZWZvcmUtbmF0dXJhbC1ob21lLWNvbnZlcnNpb24nDQogICAgICAg
ICAgICByZWFzb24gPSBbc3RyaW5nXSRhcHBseVZhdWx0UmVhZGluZXNzLnJlYXNvbg0KICAgICAg
ICAgICAgcGxhaW50ZXh0RHVwbGljYXRlQ3JlYXRlZCA9ICRmYWxzZQ0KICAgICAgICB9KQ0KICAg
IH0NCiAgICAkcGVuZGluZ05hdHVyYWxIb21lcyA9IEAoJG5hdHVyYWxIb21lRXZpZGVuY2UgfCBX
aGVyZS1PYmplY3QgeyBbYm9vbF0oR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAkXyAncGVuZGlu
ZycpIH0pDQogICAgaWYgKCRwZW5kaW5nTmF0dXJhbEhvbWVzLkNvdW50IC1ndCAwKSB7DQogICAg
ICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIGdlbmVyYXRpb25JZCA9
ICRHZW5lcmF0aW9uSWQNCiAgICAgICAgICAgIHN0YXR1cyA9ICdwZW5kaW5nLW5hdHVyYWwtaG9t
ZS1tZXJnZScNCiAgICAgICAgICAgIG1hY2hpbmVSZWFkeSA9ICRmYWxzZQ0KICAgICAgICAgICAg
YWRhcHRlcldyaXRlcyA9IDANCiAgICAgICAgICAgIG5hdHVyYWxIYXJuZXNzSG9tZXMgPSAkbmF0
dXJhbEhvbWVFdmlkZW5jZQ0KICAgICAgICAgICAgY29uZmxpY3RQYXRocyA9IEAoJHBlbmRpbmdO
YXR1cmFsSG9tZXMgfCBGb3JFYWNoLU9iamVjdCB7IEAoJF8uY29uZmxpY3RzKSB8IEZvckVhY2gt
T2JqZWN0IHsgW3N0cmluZ10kXy5wYXRoIH0gfSB8IFNvcnQtT2JqZWN0IC1VbmlxdWUpDQogICAg
ICAgICAgICBub01vZGVsQ2FsbCA9ICR0cnVlDQogICAgICAgICAgICBhY3RpdmVQb2ludGVyQ2hh
bmdlZCA9ICRmYWxzZQ0KICAgICAgICB9DQogICAgfQ0KICAgICRhZ2VudFN0YW5kYXJkID0gSW5p
dGlhbGl6ZS1BZ2VudFN0YW5kYXJkSG9tZSAtUm9vdCAkcm9vdCAtU3RhdGVEaXJlY3RvcnkgJHN0
YXRlRGlyZWN0b3J5IC1HZW5lcmF0aW9uRGlyZWN0b3J5ICRnZW5lcmF0aW9uRGlyZWN0b3J5IGAN
CiAgICAgICAgLUVuYWJsZUV4dGVybmFsQ29udmVyc2lvbiAkZXh0ZXJuYWxIb21lc1JlYWR5DQog
ICAgaWYgKCRudWxsIC1uZSAkYWdlbnRTdGFuZGFyZC5taWdyYXRpb25FdmlkZW5jZSAtYW5kIFti
b29sXShHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRhZ2VudFN0YW5kYXJkLm1pZ3JhdGlvbkV2
aWRlbmNlICdwZW5kaW5nJykpIHsNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZA0KICAgICAgICAgICAgc3Rh
dHVzID0gJ3BlbmRpbmctbmF0dXJhbC1ob21lLW1lcmdlJw0KICAgICAgICAgICAgbWFjaGluZVJl
YWR5ID0gJGZhbHNlDQogICAgICAgICAgICBhZGFwdGVyV3JpdGVzID0gMA0KICAgICAgICAgICAg
bmF0dXJhbEhhcm5lc3NIb21lcyA9IEAoJG5hdHVyYWxIb21lRXZpZGVuY2UpICsgQCgkYWdlbnRT
dGFuZGFyZC5taWdyYXRpb25FdmlkZW5jZSkNCiAgICAgICAgICAgIGNvbmZsaWN0UGF0aHMgPSBA
KCRhZ2VudFN0YW5kYXJkLm1pZ3JhdGlvbkV2aWRlbmNlLmNvbmZsaWN0cyB8IEZvckVhY2gtT2Jq
ZWN0IHsgW3N0cmluZ10kXy5wYXRoIH0gfCBTb3J0LU9iamVjdCAtVW5pcXVlKQ0KICAgICAgICAg
ICAgbm9Nb2RlbENhbGwgPSAkdHJ1ZQ0KICAgICAgICAgICAgYWN0aXZlUG9pbnRlckNoYW5nZWQg
PSAkZmFsc2UNCiAgICAgICAgfQ0KICAgIH0NCiAgICAkZXh0ZXJuYWxDYXBhYmlsaXRpZXMgPSBA
KEdldC1FeHRlcm5hbERvY3VtZW50Q2FwYWJpbGl0aWVzIC1Sb290ICRyb290KQ0KICAgICRwZW5k
aW5nQ2FwYWJpbGl0eVJvd3MgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmlj
Lkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRjYXBhYmlsaXR5IGluIEAoU25hcHNob3QtV29y
a3NwYWNlTWNwQXR0YWNobWVudHMgLVJvb3QgJHJvb3QpKSB7ICRwZW5kaW5nQ2FwYWJpbGl0eVJv
d3MuQWRkKCRjYXBhYmlsaXR5KSB9DQogICAgZm9yZWFjaCAoJGNhcGFiaWxpdHkgaW4gQCgkZXh0
ZXJuYWxDYXBhYmlsaXRpZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLnN0YXR1cyAtZXEg
J3BlbmRpbmctY2FwYWJpbGl0eScgfSkpIHsgJHBlbmRpbmdDYXBhYmlsaXR5Um93cy5BZGQoJGNh
cGFiaWxpdHkpIH0NCiAgICAkcGVuZGluZ0NhcGFiaWxpdGllcyA9IEAoJHBlbmRpbmdDYXBhYmls
aXR5Um93cy5Ub0FycmF5KCkpDQogICAgJGJhY2t1cERpcmVjdG9yeSA9IEluaXRpYWxpemUtQWRh
cHRlckRpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5ICdiYWNr
dXBzXGFkYXB0ZXJzJykgLVRpdGxlICdBZGFwdGVyIGNvbmZpZyBiYWNrdXBzJw0KICAgICRiaW5k
aW5nc0V2aWRlbmNlID0gQHt9DQogICAgJGNsYXVkZU1jcCA9IE5ldy1PYmplY3QgU3lzdGVtLkNv
bGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJGNvZGV4TWNwID0gTmV3LU9iamVj
dCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICAkcGx1Z2luT3Bl
cmF0aW9ucyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmpl
Y3RdDQogICAgJG1hbmFnZWRNY3BEZWZpbml0aW9uQ2hhbmdlcyA9IE5ldy1PYmplY3QgU3lzdGVt
LkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJGtTa2lsbERlcml2ZWQgPSAk
bnVsbA0KDQogICAgZm9yZWFjaCAoJGV4dGVuc2lvbiBpbiBAKCRzb3VyY2VMb2NrLmV4dGVuc2lv
bnMpKSB7DQogICAgICAgICRpZCA9IFtzdHJpbmddJGV4dGVuc2lvbi5pZA0KICAgICAgICAkc291
cmNlID0gQCgkc291cmNlUmVzdWx0cyB8IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1lcSAkaWQgfSlb
MF0NCiAgICAgICAgJGNsYXVkZUFkYXB0ZXIgPSBHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRl
eHRlbnNpb24gJ2NsYXVkZUFkYXB0ZXInDQogICAgICAgICRjb2RleEFkYXB0ZXIgPSBHZXQtT3B0
aW9uYWxQcm9wZXJ0eVZhbHVlICRleHRlbnNpb24gJ2NvZGV4QWRhcHRlcicNCiAgICAgICAgJGFk
YXB0ZXJWYWx1ZSA9IEdldC1PcHRpb25hbFByb3BlcnR5VmFsdWUgJGV4dGVuc2lvbiAnYWRhcHRl
cnMnDQogICAgICAgICRhZGFwdGVycyA9IGlmICgkbnVsbCAtZXEgJGFkYXB0ZXJWYWx1ZSkgeyBA
KCkgfSBlbHNlIHsgQCgkYWRhcHRlclZhbHVlKSB9DQogICAgICAgICRza2lsbFNvdXJjZVBhdGgg
PSAkc291cmNlLnBhdGgNCiAgICAgICAgaWYgKCRpZCAtY2VxICdrLXNraWxsJykgew0KICAgICAg
ICAgICAgJGtTa2lsbERlcml2ZWQgPSBQdWJsaXNoLUtTa2lsbERlcml2ZWRTZXQgLVJvb3QgJHJv
b3QgLVN0YXRlRGlyZWN0b3J5ICRzdGF0ZURpcmVjdG9yeSAtRXh0ZW5zaW9uICRleHRlbnNpb24g
LVNvdXJjZVBhdGggJHNvdXJjZS5wYXRoDQogICAgICAgICAgICAkc2tpbGxTb3VyY2VQYXRoID0g
JGtTa2lsbERlcml2ZWQucGF0aA0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKCRudWxsIC1uZSAk
Y2xhdWRlQWRhcHRlcikgew0KICAgICAgICAgICAgJHR5cGUgPSBbc3RyaW5nXSRjbGF1ZGVBZGFw
dGVyLnR5cGUNCiAgICAgICAgICAgIGlmICgkdHlwZSAtbWF0Y2ggJ15sb2NhbC1wbHVnaW4nKSB7
DQogICAgICAgICAgICAgICAgJHBsdWdpbiA9IFB1Ymxpc2gtTG9jYWxQbHVnaW5NYXJrZXRwbGFj
ZSAtU3RhdGVEaXJlY3RvcnkgJHN0YXRlRGlyZWN0b3J5IC1FeHRlbnNpb24gJGV4dGVuc2lvbiAt
U291cmNlUGF0aCAkc291cmNlLnBhdGgNCiAgICAgICAgICAgICAgICAkcGx1Z2luIHwgQWRkLU1l
bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgaWQgLVZhbHVlICRpZA0KICAgICAg
ICAgICAgICAgICRwbHVnaW5PcGVyYXRpb25zLkFkZCgkcGx1Z2luKQ0KICAgICAgICAgICAgfQ0K
ICAgICAgICAgICAgaWYgKCR0eXBlIC1tYXRjaCAnc2tpbGwnKSB7DQogICAgICAgICAgICAgICAg
JGNvdW50VmFsdWUgPSBHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlICRleHRlbnNpb24gJ2V4cGVj
dGVkU2tpbGxDb3VudCcNCiAgICAgICAgICAgICAgICAkZXhwZWN0ZWRDb3VudCA9IGlmICgkbnVs
bCAtZXEgJGNvdW50VmFsdWUpIHsgW051bGxhYmxlW2ludF1dJG51bGwgfSBlbHNlIHsgW051bGxh
YmxlW2ludF1dW2ludF0kY291bnRWYWx1ZSB9DQogICAgICAgICAgICAgICAgJHNraWxsRXZpZGVu
Y2UgPSBBZGQtU2tpbGxMaW5rcyAtSGFybmVzc0hvbWUgJGNsYXVkZUhvbWUgLUV4dGVuc2lvbklk
ICRpZCAtU291cmNlUGF0aCAkc2tpbGxTb3VyY2VQYXRoIC1FeHBlY3RlZFNraWxsQ291bnQgJGV4
cGVjdGVkQ291bnQNCiAgICAgICAgICAgICAgICBBZGQtQmluZGluZ0V2aWRlbmNlIC1UYWJsZSAk
YmluZGluZ3NFdmlkZW5jZSAtQmluZGluZ0lkICIkaWRgOmNsYXVkZSIgLUV2aWRlbmNlICRza2ls
bEV2aWRlbmNlDQogICAgICAgICAgICB9DQogICAgICAgICAgICAkZGVmaW5pdGlvbiA9IEdldC1N
Y3BEZWZpbml0aW9uIC1FeHRlbnNpb24gJGV4dGVuc2lvbiAtU291cmNlUGF0aCAkc291cmNlLnBh
dGggLVJvb3QgJHJvb3QgLUFkYXB0ZXIgJGNsYXVkZUFkYXB0ZXIgLURvY3VtZW50UHl0aG9uQ29t
bWFuZCAkZG9jdW1lbnRQeXRob25SdW50aW1lLnB5dGhvbkNvbW1hbmQNCiAgICAgICAgICAgIGlm
ICgkbnVsbCAtbmUgJGRlZmluaXRpb24gLWFuZCAoJHR5cGUgLW1hdGNoICdtY3AnIC1vciAkaWQg
LWVxICdzZWxmLWltcHJvdmUnKSkgeyAkY2xhdWRlTWNwLkFkZCgkZGVmaW5pdGlvbikgfQ0KICAg
ICAgICB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgJGNvZGV4QWRhcHRlcikgew0KICAgICAgICAg
ICAgJHR5cGUgPSBbc3RyaW5nXSRjb2RleEFkYXB0ZXIudHlwZQ0KICAgICAgICAgICAgaWYgKCR0
eXBlIC1jZXEgJ2NsaS1nZW5lcmF0ZS1za2lsbCcpIHsNCiAgICAgICAgICAgICAgICAkc2tpbGxF
dmlkZW5jZSA9IEludm9rZS1Db2RleFNraWxsR2VuZXJhdG9yIC1TdGF0ZURpcmVjdG9yeSAkc3Rh
dGVEaXJlY3RvcnkgLUdlbmVyYXRpb25EaXJlY3RvcnkgJGdlbmVyYXRpb25EaXJlY3RvcnkgLUNv
ZGV4SG9tZSAkY29kZXhIb21lIC1FeHRlbnNpb24gJGV4dGVuc2lvbiAtU291cmNlUGF0aCAkc291
cmNlLnBhdGgNCiAgICAgICAgICAgICAgICBBZGQtQmluZGluZ0V2aWRlbmNlIC1UYWJsZSAkYmlu
ZGluZ3NFdmlkZW5jZSAtQmluZGluZ0lkICIkaWRgOmNvZGV4IiAtRXZpZGVuY2UgJHNraWxsRXZp
ZGVuY2UNCiAgICAgICAgICAgIH0gZWxzZWlmICgkdHlwZSAtbWF0Y2ggJ3NraWxsJykgew0KICAg
ICAgICAgICAgICAgICRjb3VudFZhbHVlID0gR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAkZXh0
ZW5zaW9uICdleHBlY3RlZFNraWxsQ291bnQnDQogICAgICAgICAgICAgICAgJGV4cGVjdGVkQ291
bnQgPSBpZiAoJG51bGwgLWVxICRjb3VudFZhbHVlKSB7IFtOdWxsYWJsZVtpbnRdXSRudWxsIH0g
ZWxzZSB7IFtOdWxsYWJsZVtpbnRdXVtpbnRdJGNvdW50VmFsdWUgfQ0KICAgICAgICAgICAgICAg
ICRza2lsbEV2aWRlbmNlID0gQWRkLVNraWxsTGlua3MgLUhhcm5lc3NIb21lICRjb2RleEhvbWUg
LUV4dGVuc2lvbklkICRpZCAtU291cmNlUGF0aCAkc2tpbGxTb3VyY2VQYXRoIC1FeHBlY3RlZFNr
aWxsQ291bnQgJGV4cGVjdGVkQ291bnQNCiAgICAgICAgICAgICAgICBBZGQtQmluZGluZ0V2aWRl
bmNlIC1UYWJsZSAkYmluZGluZ3NFdmlkZW5jZSAtQmluZGluZ0lkICIkaWRgOmNvZGV4IiAtRXZp
ZGVuY2UgJHNraWxsRXZpZGVuY2UNCiAgICAgICAgICAgICAgICBpZiAoJGlkIC1jZXEgJ2stc2tp
bGwnKSB7DQogICAgICAgICAgICAgICAgICAgICR1bml2ZXJzYWxFdmlkZW5jZSA9IEFkZC1Ta2ls
bExpbmtzIC1IYXJuZXNzSG9tZSAkYWdlbnRTdGFuZGFyZC5wYXRoIC1FeHRlbnNpb25JZCAkaWQg
LVNvdXJjZVBhdGggJHNraWxsU291cmNlUGF0aCAtRXhwZWN0ZWRTa2lsbENvdW50ICRleHBlY3Rl
ZENvdW50DQogICAgICAgICAgICAgICAgICAgIEFkZC1CaW5kaW5nRXZpZGVuY2UgLVRhYmxlICRi
aW5kaW5nc0V2aWRlbmNlIC1CaW5kaW5nSWQgIiRpZGA6Y29kZXgiIC1FdmlkZW5jZSAkdW5pdmVy
c2FsRXZpZGVuY2UNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAg
ICAkZGVmaW5pdGlvbiA9IEdldC1NY3BEZWZpbml0aW9uIC1FeHRlbnNpb24gJGV4dGVuc2lvbiAt
U291cmNlUGF0aCAkc291cmNlLnBhdGggLVJvb3QgJHJvb3QgLUFkYXB0ZXIgJGNvZGV4QWRhcHRl
ciAtRG9jdW1lbnRQeXRob25Db21tYW5kICRkb2N1bWVudFB5dGhvblJ1bnRpbWUucHl0aG9uQ29t
bWFuZA0KICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkZGVmaW5pdGlvbiAtYW5kICR0eXBlIC1t
YXRjaCAnbWNwJykgeyAkY29kZXhNY3AuQWRkKCRkZWZpbml0aW9uKSB9DQogICAgICAgIH0NCiAg
ICAgICAgZm9yZWFjaCAoJGFkYXB0ZXIgaW4gJGFkYXB0ZXJzKSB7DQogICAgICAgICAgICAkZGVm
aW5pdGlvbiA9IEdldC1NY3BEZWZpbml0aW9uIC1FeHRlbnNpb24gJGV4dGVuc2lvbiAtU291cmNl
UGF0aCAkc291cmNlLnBhdGggLVJvb3QgJHJvb3QgLUFkYXB0ZXIgJG51bGwgLURvY3VtZW50UHl0
aG9uQ29tbWFuZCAkZG9jdW1lbnRQeXRob25SdW50aW1lLnB5dGhvbkNvbW1hbmQNCiAgICAgICAg
ICAgIGlmICgkbnVsbCAtZXEgJGRlZmluaXRpb24pIHsgdGhyb3cgIkRvY3VtZW50IGFkYXB0ZXIg
aGFzIG5vIGV4ZWN1dGFibGUgZW50cnk6ICRpZCIgfQ0KICAgICAgICAgICAgaWYgKFtzdHJpbmdd
JGFkYXB0ZXIgLW1hdGNoICcoP2kpXmNsYXVkZS0nKSB7ICRjbGF1ZGVNY3AuQWRkKCRkZWZpbml0
aW9uKSB9DQogICAgICAgICAgICBlbHNlaWYgKFtzdHJpbmddJGFkYXB0ZXIgLW1hdGNoICcoP2kp
XmNvZGV4LScpIHsgJGNvZGV4TWNwLkFkZCgkZGVmaW5pdGlvbikgfQ0KICAgICAgICB9DQogICAg
fQ0KDQogICAgJGhhcm5lc3NFbnZpcm9ubWVudCA9IEB7DQogICAgICAgIENMQVVERV9DT05GSUdf
RElSID0gJGNsYXVkZUhvbWUNCiAgICAgICAgQ09ERVhfSE9NRSA9ICRjb2RleEhvbWUNCiAgICAg
ICAgU1VQRVJQT1dFUlNfRElTQUJMRV9URUxFTUVUUlkgPSAnMScNCiAgICB9DQogICAgZm9yZWFj
aCAoJHBsdWdpbiBpbiAkcGx1Z2luT3BlcmF0aW9ucykgew0KICAgICAgICAkbWFya2V0UmVzdWx0
ID0gSW52b2tlLUxvY2FsSGFybmVzc0NvbW1hbmQgLUNvbW1hbmROYW1lICdjbGF1ZGUnIC1Bcmd1
bWVudHMgQCgncGx1Z2luJywgJ21hcmtldHBsYWNlJywgJ2FkZCcsICRwbHVnaW4ud3JhcHBlclBh
dGgpIC1FbnZpcm9ubWVudCAkaGFybmVzc0Vudmlyb25tZW50DQogICAgICAgICRpbnN0YWxsUmVz
dWx0ID0gSW52b2tlLUxvY2FsSGFybmVzc0NvbW1hbmQgLUNvbW1hbmROYW1lICdjbGF1ZGUnIC1B
cmd1bWVudHMgQCgncGx1Z2luJywgJ2luc3RhbGwnLCAkcGx1Z2luLmluc3RhbGxTcGVjLCAnLS1z
Y29wZScsICd1c2VyJykgLUVudmlyb25tZW50ICRoYXJuZXNzRW52aXJvbm1lbnQNCiAgICAgICAg
QWRkLUJpbmRpbmdFdmlkZW5jZSAtVGFibGUgJGJpbmRpbmdzRXZpZGVuY2UgLUJpbmRpbmdJZCAi
JCgkcGx1Z2luLmlkKWA6Y2xhdWRlIiAtRXZpZGVuY2UgKFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICAgICAgZXZpZGVuY2VTaGEyNTYgPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAoJHBsdWdpbi5l
dmlkZW5jZVNoYTI1NiArICd8JyArICRtYXJrZXRSZXN1bHQub3V0cHV0U2hhMjU2ICsgJ3wnICsg
JGluc3RhbGxSZXN1bHQub3V0cHV0U2hhMjU2KQ0KICAgICAgICAgICAgdmVyaWZpY2F0aW9uVHlw
ZSA9ICRwbHVnaW4udmVyaWZpY2F0aW9uVHlwZQ0KICAgICAgICAgICAgcmVzb2x2ZWRQYXRoQ291
bnQgPSAkcGx1Z2luLnJlc29sdmVkUGF0aENvdW50DQogICAgICAgIH0pDQogICAgfQ0KICAgIGlm
ICgkcGx1Z2luT3BlcmF0aW9ucy5Db3VudCAtZ3QgMCkgeyBbdm9pZF0oU2V0LUNsYXVkZVBsdWdp
bkVuYWJsZW1lbnQgLVJvb3QgJHJvb3QgLVBsdWdpbnMgQCgkcGx1Z2luT3BlcmF0aW9ucy5Ub0Fy
cmF5KCkpIC1CYWNrdXBEaXJlY3RvcnkgJGJhY2t1cERpcmVjdG9yeSkgfQ0KDQogICAgQXNzZXJ0
LUZpbmdlcnByaW50U2V0RXF1YWwgLUJlZm9yZSAkcHJvdGVjdGVkRW52aXJvbm1lbnRCZWZvcmUg
LUFmdGVyIEAoR2V0LVByb3RlY3RlZEVudmlyb25tZW50RmluZ2VycHJpbnRzKSAtRGVzY3JpcHRp
b24gJ1Byb3RlY3RlZCBwcm94eS9hdXRoIHByb2Nlc3MgZW52aXJvbm1lbnQnDQogICAgQXNzZXJ0
LU5vTGl2ZUFnZW50DQogICAgQXNzZXJ0LUFkYXB0ZXJXcml0ZXJGcmVlIC1QYXRocyAoR2V0LUFk
YXB0ZXJXcml0ZXJHdWFyZFBhdGhzIC1Sb290ICRyb290KQ0KDQogICAgaWYgKCRjbGF1ZGVNY3Au
Q291bnQgLWd0IDApIHsNCiAgICAgICAgJGNvbmZpZ1Jlc3VsdCA9IFNldC1DbGF1ZGVNY3BEZWZp
bml0aW9ucyAtUm9vdCAkcm9vdCAtRGVmaW5pdGlvbnMgQCgkY2xhdWRlTWNwLlRvQXJyYXkoKSB8
IFNvcnQtT2JqZWN0IG5hbWUpIC1CYWNrdXBEaXJlY3RvcnkgJGJhY2t1cERpcmVjdG9yeQ0KICAg
ICAgICAkaGFzaCA9IFtzdHJpbmddJGNvbmZpZ1Jlc3VsdC5jb25maWdTaGEyNTYNCiAgICAgICAg
Zm9yZWFjaCAoJG9wZXJhdGlvbiBpbiBAKCRjb25maWdSZXN1bHQub3BlcmF0aW9ucykpIHsgJG1h
bmFnZWRNY3BEZWZpbml0aW9uQ2hhbmdlcy5BZGQoJG9wZXJhdGlvbikgfQ0KICAgICAgICBmb3Jl
YWNoICgkZGVmaW5pdGlvbiBpbiAkY2xhdWRlTWNwKSB7DQogICAgICAgICAgICBBZGQtQmluZGlu
Z0V2aWRlbmNlIC1UYWJsZSAkYmluZGluZ3NFdmlkZW5jZSAtQmluZGluZ0lkICIkKCRkZWZpbml0
aW9uLmV4dGVuc2lvbklkKWA6Y2xhdWRlIiAtRXZpZGVuY2UgKFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICAgICAgICAgIGV2aWRlbmNlU2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgKCRo
YXNoICsgJ3wnICsgJGRlZmluaXRpb24ubmFtZSArICd8JyArIFtzdHJpbmddJGRlZmluaXRpb24u
YXJnc1swXSkNCiAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25UeXBlID0gJ3N0YXRpYy1tY3At
Y29uZmlnLWVudHJ5Jw0KICAgICAgICAgICAgICAgIHJlc29sdmVkUGF0aENvdW50ID0gMQ0KICAg
ICAgICAgICAgfSkNCiAgICAgICAgICAgICRwcm90b2NvbEV2aWRlbmNlID0gSW52b2tlLU1jcFBy
b3RvY29sU21va2UgLURlZmluaXRpb24gJGRlZmluaXRpb24gLVJvb3QgJHJvb3QNCiAgICAgICAg
ICAgIGlmICgkbnVsbCAtbmUgJHByb3RvY29sRXZpZGVuY2UpIHsNCiAgICAgICAgICAgICAgICBB
ZGQtQmluZGluZ0V2aWRlbmNlIC1UYWJsZSAkYmluZGluZ3NFdmlkZW5jZSAtQmluZGluZ0lkICIk
KCRkZWZpbml0aW9uLmV4dGVuc2lvbklkKWA6Y2xhdWRlIiAtRXZpZGVuY2UgJHByb3RvY29sRXZp
ZGVuY2UNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoJGNvZGV4TWNw
LkNvdW50IC1ndCAwKSB7DQogICAgICAgICRjb25maWdSZXN1bHQgPSBTZXQtQ29kZXhNY3BEZWZp
bml0aW9ucyAtUm9vdCAkcm9vdCAtRGVmaW5pdGlvbnMgQCgkY29kZXhNY3AuVG9BcnJheSgpIHwg
U29ydC1PYmplY3QgbmFtZSkgLUJhY2t1cERpcmVjdG9yeSAkYmFja3VwRGlyZWN0b3J5DQogICAg
ICAgICRoYXNoID0gW3N0cmluZ10kY29uZmlnUmVzdWx0LmNvbmZpZ1NoYTI1Ng0KICAgICAgICBm
b3JlYWNoICgkb3BlcmF0aW9uIGluIEAoJGNvbmZpZ1Jlc3VsdC5vcGVyYXRpb25zKSkgeyAkbWFu
YWdlZE1jcERlZmluaXRpb25DaGFuZ2VzLkFkZCgkb3BlcmF0aW9uKSB9DQogICAgICAgIGZvcmVh
Y2ggKCRkZWZpbml0aW9uIGluICRjb2RleE1jcCkgew0KICAgICAgICAgICAgQWRkLUJpbmRpbmdF
dmlkZW5jZSAtVGFibGUgJGJpbmRpbmdzRXZpZGVuY2UgLUJpbmRpbmdJZCAiJCgkZGVmaW5pdGlv
bi5leHRlbnNpb25JZClgOmNvZGV4IiAtRXZpZGVuY2UgKFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICAgICAgICAgIGV2aWRlbmNlU2hhMjU2ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgKCRoYXNo
ICsgJ3wnICsgJGRlZmluaXRpb24ubmFtZSArICd8JyArIFtzdHJpbmddJGRlZmluaXRpb24uYXJn
c1swXSkNCiAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25UeXBlID0gJ3N0YXRpYy1tY3AtY29u
ZmlnLWVudHJ5Jw0KICAgICAgICAgICAgICAgIHJlc29sdmVkUGF0aENvdW50ID0gMQ0KICAgICAg
ICAgICAgfSkNCiAgICAgICAgICAgICRwcm90b2NvbEV2aWRlbmNlID0gSW52b2tlLU1jcFByb3Rv
Y29sU21va2UgLURlZmluaXRpb24gJGRlZmluaXRpb24gLVJvb3QgJHJvb3QNCiAgICAgICAgICAg
IGlmICgkbnVsbCAtbmUgJHByb3RvY29sRXZpZGVuY2UpIHsNCiAgICAgICAgICAgICAgICBBZGQt
QmluZGluZ0V2aWRlbmNlIC1UYWJsZSAkYmluZGluZ3NFdmlkZW5jZSAtQmluZGluZ0lkICIkKCRk
ZWZpbml0aW9uLmV4dGVuc2lvbklkKWA6Y29kZXgiIC1FdmlkZW5jZSAkcHJvdG9jb2xFdmlkZW5j
ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgJGNsYXVkZVNtb2tlID0g
SW52b2tlLUxvY2FsSGFybmVzc0NvbW1hbmQgLUNvbW1hbmROYW1lICdjbGF1ZGUnIC1Bcmd1bWVu
dHMgQCgnLS12ZXJzaW9uJykgLUVudmlyb25tZW50ICRoYXJuZXNzRW52aXJvbm1lbnQNCiAgICAk
Y29kZXhTbW9rZSA9IEludm9rZS1Mb2NhbEhhcm5lc3NDb21tYW5kIC1Db21tYW5kTmFtZSAnY29k
ZXgnIC1Bcmd1bWVudHMgQCgnLS12ZXJzaW9uJykgLUVudmlyb25tZW50ICRoYXJuZXNzRW52aXJv
bm1lbnQNCiAgICBBc3NlcnQtRmluZ2VycHJpbnRTZXRFcXVhbCAtQmVmb3JlICRwcm90ZWN0ZWRF
bnZpcm9ubWVudEJlZm9yZSAtQWZ0ZXIgQChHZXQtUHJvdGVjdGVkRW52aXJvbm1lbnRGaW5nZXJw
cmludHMpIC1EZXNjcmlwdGlvbiAnUHJvdGVjdGVkIHByb3h5L2F1dGggcHJvY2VzcyBlbnZpcm9u
bWVudCcNCiAgICBBc3NlcnQtTm9MaXZlQWdlbnQNCiAgICBBc3NlcnQtQWRhcHRlcldyaXRlckZy
ZWUgLVBhdGhzIChHZXQtQWRhcHRlcldyaXRlckd1YXJkUGF0aHMgLVJvb3QgJHJvb3QpDQogICAg
JGJpbmRpbmdSb3dzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0
W29iamVjdF0NCiAgICBmb3JlYWNoICgkZXhwZWN0ZWQgaW4gJGV4cGVjdGVkQmluZGluZ3MpIHsN
CiAgICAgICAgaWYgKC1ub3QgJGJpbmRpbmdzRXZpZGVuY2UuQ29udGFpbnNLZXkoW3N0cmluZ10k
ZXhwZWN0ZWQuYmluZGluZ0lkKSkgeyB0aHJvdyAiQWRhcHRlciBwcm9kdWNlZCBubyBzdGF0aWMg
ZXZpZGVuY2U6ICQoJGV4cGVjdGVkLmJpbmRpbmdJZCkiIH0NCiAgICAgICAgJGV2aWRlbmNlID0g
JGJpbmRpbmdzRXZpZGVuY2VbW3N0cmluZ10kZXhwZWN0ZWQuYmluZGluZ0lkXQ0KICAgICAgICAk
YmluZGluZ1Jvd3MuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgYmluZGluZ0lk
ID0gW3N0cmluZ10kZXhwZWN0ZWQuYmluZGluZ0lkDQogICAgICAgICAgICBhcHBsaWVkID0gJHRy
dWUNCiAgICAgICAgICAgIHNtb2tlU3RhdHVzID0gW3N0cmluZ10kZXZpZGVuY2Uuc21va2VTdGF0
dXMNCiAgICAgICAgICAgIHZlcmlmaWNhdGlvblR5cGUgPSBbc3RyaW5nXSRldmlkZW5jZS52ZXJp
ZmljYXRpb25UeXBlDQogICAgICAgICAgICByZXNvbHZlZFBhdGhDb3VudCA9IFtpbnRdJGV2aWRl
bmNlLnJlc29sdmVkUGF0aENvdW50DQogICAgICAgICAgICBldmlkZW5jZVNoYTI1NiA9IFtzdHJp
bmddJGV2aWRlbmNlLmV2aWRlbmNlU2hhMjU2DQogICAgICAgIH0pDQogICAgfQ0KDQogICAgJGFk
YXB0ZXJQbGFuUGF0aCA9IEpvaW4tUGF0aCAkZ2VuZXJhdGlvbkRpcmVjdG9yeSAnYWRhcHRlci1h
cHBseS1wbGFuLmpzb24nDQogICAgJGFkYXB0ZXJQbGFuU2hhID0gR2V0LVNvdWxTaGEyNTYgLVBh
dGggJGFkYXB0ZXJQbGFuUGF0aA0KICAgICRtYXJrZXIgPSBbb3JkZXJlZF1Aew0KICAgICAgICBz
Y2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBnZW5lcmF0aW9uSWQgPSAkR2VuZXJhdGlvbklkDQog
ICAgICAgIHNvdWxJZCA9IFtzdHJpbmddJHNvdWxTdGF0ZS5zb3VsSWQNCiAgICAgICAgY29tcGxl
dGUgPSAkdHJ1ZQ0KICAgICAgICBjb21wbGV0ZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5U
b1N0cmluZygnbycpDQogICAgICAgIHNvdXJjZUxvY2tTaGEyNTYgPSBbc3RyaW5nXSRtYW5pZmVz
dC5zb3VyY2VMb2NrU2hhMjU2DQogICAgICAgIHNvdXJjZVBheWxvYWRQcm9vZlNoYTI1NiA9IEdl
dC1UZXh0U2hhMjU2IC1UZXh0IChAKCRzb3VyY2VSZXN1bHRzIHwgU29ydC1PYmplY3QgaWQgfCBG
b3JFYWNoLU9iamVjdCB7ICIkKCRfLmlkKXwkKCRfLnBheWxvYWRUcmVlU2hhMjU2KSIgfSkgLWpv
aW4gImBuIikNCiAgICAgICAgYWRhcHRlclBsYW5TaGEyNTYgPSAkYWRhcHRlclBsYW5TaGENCiAg
ICAgICAgYmluZGluZ3MgPSBAKCRiaW5kaW5nUm93cy5Ub0FycmF5KCkpDQogICAgICAgIGhhcm5l
c3NDb25maWdTbW9rZSA9IEAoDQogICAgICAgICAgICBbb3JkZXJlZF1AeyBoYXJuZXNzID0gJ2Ns
YXVkZSc7IHN0YXR1cyA9ICdwYXNzZWQnOyB2ZXJpZmljYXRpb25UeXBlID0gJ25ldy1wcm9jZXNz
LXZlcnNpb24nOyBldmlkZW5jZVNoYTI1NiA9ICRjbGF1ZGVTbW9rZS5vdXRwdXRTaGEyNTYgfSwN
CiAgICAgICAgICAgIFtvcmRlcmVkXUB7IGhhcm5lc3MgPSAnY29kZXgnOyBzdGF0dXMgPSAncGFz
c2VkJzsgdmVyaWZpY2F0aW9uVHlwZSA9ICduZXctcHJvY2Vzcy12ZXJzaW9uJzsgZXZpZGVuY2VT
aGEyNTYgPSAkY29kZXhTbW9rZS5vdXRwdXRTaGEyNTYgfQ0KICAgICAgICApDQogICAgICAgIG5v
TW9kZWxDYWxsID0gJHRydWUNCiAgICAgICAgcHJveHlFbnZpcm9ubWVudFRvdWNoZWQgPSAkZmFs
c2UNCiAgICAgICAgZXh0ZXJuYWxIb21lc1JlYWR5ID0gJGV4dGVybmFsSG9tZXNSZWFkeQ0KICAg
ICAgICBuYXR1cmFsSGFybmVzc0hvbWVzID0gJG5hdHVyYWxIb21lRXZpZGVuY2UNCiAgICAgICAg
YWdlbnRTdGFuZGFyZEhvbWUgPSBbb3JkZXJlZF1AeyBwYXRoID0gJGFnZW50U3RhbmRhcmQucGF0
aDsgbGVnYWN5U25hcHNob3QgPSAkYWdlbnRTdGFuZGFyZC5sZWdhY3lTbmFwc2hvdCB9DQogICAg
ICAgIGRvY3VtZW50UHl0aG9uUnVudGltZSA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBwYXRo
ID0gW3N0cmluZ10kZG9jdW1lbnRQeXRob25SdW50aW1lLnBhdGgNCiAgICAgICAgICAgIHB5dGhv
bkNvbW1hbmQgPSBbc3RyaW5nXSRkb2N1bWVudFB5dGhvblJ1bnRpbWUucHl0aG9uQ29tbWFuZA0K
ICAgICAgICAgICAgcHJvb2ZTaGEyNTYgPSBbc3RyaW5nXSRkb2N1bWVudFB5dGhvblJ1bnRpbWUu
cHJvb2ZTaGEyNTYNCiAgICAgICAgICAgIHJlcXVpcmVtZW50c0xvY2tTaGEyNTYgPSBbc3RyaW5n
XSRkb2N1bWVudFB5dGhvbkNvbnRyYWN0LnJlcXVpcmVtZW50c0xvY2tTaGEyNTYNCiAgICAgICAg
ICAgIHdoZWVsaG91c2VQcm9vZlNoYTI1NiA9IFtzdHJpbmddJGRvY3VtZW50V2hlZWxob3VzZVN0
YXR1cy5wcm9vZlNoYTI1Ng0KICAgICAgICB9DQogICAgICAgIG1hbmFnZWRNY3BEZWZpbml0aW9u
Q2hhbmdlcyA9IEAoJG1hbmFnZWRNY3BEZWZpbml0aW9uQ2hhbmdlcy5Ub0FycmF5KCkpDQogICAg
ICAgIGV4dGVybmFsQ2FwYWJpbGl0aWVzID0gJGV4dGVybmFsQ2FwYWJpbGl0aWVzDQogICAgICAg
IHBlbmRpbmdDYXBhYmlsaXRpZXMgPSAkcGVuZGluZ0NhcGFiaWxpdGllcw0KICAgIH0NCiAgICAk
dmVyaWZpY2F0aW9uUGF0aCA9IEpvaW4tUGF0aCAkZ2VuZXJhdGlvbkRpcmVjdG9yeSAnYWRhcHRl
ci12ZXJpZmljYXRpb24uanNvbicNCiAgICBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBh
dGggJHZlcmlmaWNhdGlvblBhdGggLVZhbHVlICRtYXJrZXIpDQogICAgW3ZvaWRdKEFkZC1Tb3Vs
Sm91cm5hbEVudHJ5IC1UeXBlICdhZGFwdGVycy52ZXJpZmllZCcgLURhdGEgQHsNCiAgICAgICAg
Z2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZA0KICAgICAgICBhZGFwdGVyVmVyaWZpY2F0aW9u
U2hhMjU2ID0gR2V0LVNvdWxTaGEyNTYgLVBhdGggJHZlcmlmaWNhdGlvblBhdGgNCiAgICAgICAg
YmluZGluZ0NvdW50ID0gJGV4cGVjdGVkQmluZGluZ3MuQ291bnQNCiAgICAgICAgbWFuYWdlZE1j
cFJlcGxhY2VtZW50Q291bnQgPSBAKCRtYW5hZ2VkTWNwRGVmaW5pdGlvbkNoYW5nZXMgfCBXaGVy
ZS1PYmplY3QgeyBbc3RyaW5nXSRfLmFjdGlvbiAtZXEgJ3JlcGxhY2VkJyB9KS5Db3VudA0KICAg
ICAgICBub01vZGVsQ2FsbCA9ICR0cnVlDQogICAgfSBAbW9kdWxlQXJndW1lbnRzKQ0KICAgIHJl
dHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgZ2VuZXJhdGlvbklkID0gJEdlbmVyYXRp
b25JZA0KICAgICAgICBzdGF0dXMgPSAnYWRhcHRlcnMtYW5kLXNtb2tlLXZlcmlmaWVkJw0KICAg
ICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgdmVyaWZpY2F0aW9uUGF0aCA9ICR2
ZXJpZmljYXRpb25QYXRoDQogICAgICAgIGJpbmRpbmdDb3VudCA9ICRleHBlY3RlZEJpbmRpbmdz
LkNvdW50DQogICAgICAgIG5vTW9kZWxDYWxsID0gJHRydWUNCiAgICAgICAgYWN0aXZlUG9pbnRl
ckNoYW5nZWQgPSAkZmFsc2UNCiAgICAgICAgZXh0ZXJuYWxIb21lc1JlYWR5ID0gJGV4dGVybmFs
SG9tZXNSZWFkeQ0KICAgIH0NCn0gZmluYWxseSB7DQogICAgRXhpdC1Tb3VsT3BlcmF0aW9uTG9j
ayAtTG9jayAkbG9jaw0KfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/bootstrap-v7.ps1","encoding":"base64","size":97798,"runtimeSha256":"aa0aa5d2855c32987b62b318d68a2f11e25dc25e46bbf22b4e0c71164f3bda26","normalizedSha256":"197ea4d6c8943473db36ba1d864bf19dae5adcd8532ac91aff367a6d1914cf08"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIEluaXRpYWxpemVz
IG9yIHJlc3VtZXMgdGhlIHBvcnRhYmxlIGFzc2lzdGFudCBzb3VsIHRoYXQgY29udGFpbnMgdGhp
cyBzY3JpcHQuDQoNCi5ERVNDUklQVElPTg0KICBUaGUgc291bCByb290IGlzIGRlcml2ZWQgb25s
eSBmcm9tIHRoaXMgZmlsZSdzIGxvY2F0aW9uOg0KICA8c291bD5cX2FnZW50XHNldHVwXGJvb3Rz
dHJhcC12Ny5wczEuIFRoZSBib290c3RyYXAgYWNjZXB0cyBvbmx5IGEgcHJpc3RpbmUNCiAgc2V0
dXAgcGF5bG9hZCBvciBhbiBhbHJlYWR5IGluaXRpYWxpemVkIHY3LW9yLW9sZGVyIHNvdWwuIEl0
IG5ldmVyIHdyaXRlcyB0bw0KICBEZXNrdG9wLCBhZ2VudCBob21lcywgb3IgdGhlIGFjdGl2ZS1n
ZW5lcmF0aW9uIHBvaW50ZXIsIGFuZCBpdCBuZXZlciBydW5zIGENCiAgZmluYWxpemVyLiBBcHBy
b3ZlZCBSL0QvUC9TL1QgYW5kIGljb24gZGVjaXNpb25zIGFyZSBhcHBsaWVkIGJlZm9yZSB0aGUg
bWFwDQogIGFuZCBhIHN0YXRpYyBwZW5kaW5nIGdlbmVyYXRpb24gYXJlIHByZXBhcmVkLg0KIz4N
CltDbWRsZXRCaW5kaW5nKCldDQpwYXJhbSgNCiAgICAjIE9wdGlvbmFsIG5vbi1pbnRlcmFjdGl2
ZSBpbnB1dC4gSXQgbXVzdCBiZSBhbiBhcHByb3ZlZCB3aXphcmQtcmVzdWx0Lmpzb24NCiAgICAj
IGJlbG93IHRoaXMgc291bCdzIG93biBfYWdlbnRcc2V0dXBcdHJhbnNhY3Rpb25zIGRpcmVjdG9y
eS4NCiAgICBbc3RyaW5nXSRBcHByb3ZlZFdpemFyZFJlc3VsdFBhdGgsDQoNCiAgICAjIEludGVn
cmF0aW9uLXRlc3Qgb25seS4gVGhlIGJvb3RzdHJhcCByb290IGlzIHN0aWxsIGRlcml2ZWQgZnJv
bSB0aGlzDQogICAgIyBzY3JpcHQncyBsb2NhdGlvbjsgdGhpcyBzd2l0Y2ggbWVyZWx5IHBlcm1p
dHMgdGhhdCBkZXJpdmVkIHJvb3QgYmVsb3cgdGhlDQogICAgIyBlc3RhYmxpc2hlZCBzZXR1cCB0
ZXN0IGZpeHR1cmUgYm91bmRhcnkgaW5zdGVhZCBvZiBkaXJlY3RseSBiZWxvdyBDOlwuDQogICAg
W1BhcmFtZXRlcihEb250U2hvdyldDQogICAgW3N0cmluZ10kVGVzdEZpeHR1cmVCb3VuZGFyeSwN
Cg0KICAgICMgUmVjb3JkcyB3aGljaCBleGVjdXRpb24gZWRpdGlvbiBzdXBwbGllZCB0aGlzIGlk
ZW50aWNhbCBwb3J0YWJsZSBlbmdpbmUuDQogICAgIyBJdCBjaGFuZ2VzIHByb3ZlbmFuY2UgdGV4
dCBvbmx5OyBDbGF1ZGUgYW5kIENvZGV4IHNoYXJlIHRoZSBzYW1lIHBheWxvYWQuDQogICAgW1Zh
bGlkYXRlU2V0KCdDbGF1ZGUnLCAnQ29kZXgnKV0NCiAgICBbc3RyaW5nXSRTb3VyY2VFZGl0aW9u
ID0gJ0NsYXVkZScNCikNCg0KU2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0DQokRXJyb3JB
Y3Rpb25QcmVmZXJlbmNlID0gJ1N0b3AnDQoNCiRzY3JpcHQ6VXRmOE5vQm9tID0gTmV3LU9iamVj
dCBTeXN0ZW0uVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0KJHNjcmlwdDpQYXRoQ29tcGFyaXNv
biA9IFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlDQokc2NyaXB0
OlNjaGVtYVZlcnNpb24gPSA3DQoNCmZ1bmN0aW9uIEdldC1GdWxsUGF0aCB7DQogICAgcGFyYW0o
W1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kUGF0aCkNCiAgICByZXR1cm4g
W1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFBhdGgpLlRyaW1FbmQoJ1wnLCAnLycpDQp9
DQoNCmZ1bmN0aW9uIFRlc3QtUGF0aEluc2lkZSB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJh
bWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0
ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFBhcmVudCwNCiAgICAgICAgW3N3aXRjaF0k
QWxsb3dQYXJlbnQNCiAgICApDQogICAgJGZ1bGxQYXRoID0gR2V0LUZ1bGxQYXRoICRQYXRoDQog
ICAgJGZ1bGxQYXJlbnQgPSBHZXQtRnVsbFBhdGggJFBhcmVudA0KICAgIGlmICgkZnVsbFBhdGgu
RXF1YWxzKCRmdWxsUGFyZW50LCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKSkgeyByZXR1cm4gW2Jv
b2xdJEFsbG93UGFyZW50IH0NCiAgICByZXR1cm4gJGZ1bGxQYXRoLlN0YXJ0c1dpdGgoJGZ1bGxQ
YXJlbnQgKyBbU3lzdGVtLklPLlBhdGhdOjpEaXJlY3RvcnlTZXBhcmF0b3JDaGFyLCAkc2NyaXB0
OlBhdGhDb21wYXJpc29uKQ0KfQ0KDQpmdW5jdGlvbiBHZXQtUHJvcGVydHlWYWx1ZSB7DQogICAg
cGFyYW0oJE9iamVjdCwgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kTmFt
ZSwgJERlZmF1bHQgPSAkbnVsbCkNCiAgICBpZiAoJG51bGwgLWVxICRPYmplY3QpIHsgcmV0dXJu
ICREZWZhdWx0IH0NCiAgICAkcHJvcGVydHkgPSAkT2JqZWN0LlBTT2JqZWN0LlByb3BlcnRpZXNb
JE5hbWVdDQogICAgaWYgKCRudWxsIC1lcSAkcHJvcGVydHkpIHsgcmV0dXJuICREZWZhdWx0IH0N
CiAgICByZXR1cm4gJHByb3BlcnR5LlZhbHVlDQp9DQoNCmZ1bmN0aW9uIFNldC1Qcm9wZXJ0eVZh
bHVlIHsNCiAgICBwYXJhbSgkT2JqZWN0LCBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1b
c3RyaW5nXSROYW1lLCAkVmFsdWUpDQogICAgJHByb3BlcnR5ID0gJE9iamVjdC5QU09iamVjdC5Q
cm9wZXJ0aWVzWyROYW1lXQ0KICAgIGlmICgkbnVsbCAtZXEgJHByb3BlcnR5KSB7DQogICAgICAg
ICRPYmplY3QgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkTmFt
ZSAtVmFsdWUgJFZhbHVlDQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICAkcHJvcGVydHkuVmFs
dWUgPSAkVmFsdWUNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIENvbnZlcnRUby1DYW5vbmljYWxKc29u
IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV0kVmFsdWUpDQogICAg
cmV0dXJuICgkVmFsdWUgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggNjQgLUNvbXByZXNzKQ0KfQ0K
DQpmdW5jdGlvbiBHZXQtVGV4dFNoYTI1NiB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRv
cnkgPSAkdHJ1ZSldW0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRUZXh0KQ0KICAgICRhbGdv
cml0aG0gPSBbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0K
ICAgIHRyeSB7DQogICAgICAgICRieXRlcyA9ICRzY3JpcHQ6VXRmOE5vQm9tLkdldEJ5dGVzKCRU
ZXh0KQ0KICAgICAgICByZXR1cm4gKFtCaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkYWxnb3JpdGht
LkNvbXB1dGVIYXNoKCRieXRlcykpKS5SZXBsYWNlKCctJywgJycpLlRvTG93ZXJJbnZhcmlhbnQo
KQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgJGFsZ29yaXRobS5EaXNwb3NlKCkgfQ0KfQ0KDQpmdW5j
dGlvbiBHZXQtRmlsZVNoYTI1NiB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAk
dHJ1ZSldW3N0cmluZ10kUGF0aCkNCiAgICAkc3RyZWFtID0gW1N5c3RlbS5JTy5GaWxlXTo6T3Bl
bigkUGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9kZV06Ok9wZW4sIFtTeXN0ZW0uSU8uRmlsZUFjY2Vz
c106OlJlYWQsIFtTeXN0ZW0uSU8uRmlsZVNoYXJlXTo6UmVhZCkNCiAgICAkYWxnb3JpdGhtID0g
W1N5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkNCiAgICB0cnkg
eyByZXR1cm4gKFtCaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkYWxnb3JpdGhtLkNvbXB1dGVIYXNo
KCRzdHJlYW0pKSkuUmVwbGFjZSgnLScsICcnKS5Ub0xvd2VySW52YXJpYW50KCkgfQ0KICAgIGZp
bmFsbHkgeyAkYWxnb3JpdGhtLkRpc3Bvc2UoKTsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KfQ0KDQpm
dW5jdGlvbiBBc3NlcnQtTm9SZXBhcnNlUGF0aCB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJh
bWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0
ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJEJvdW5kYXJ5DQogICAgKQ0KICAgICRmdWxs
UGF0aCA9IEdldC1GdWxsUGF0aCAkUGF0aA0KICAgICRmdWxsQm91bmRhcnkgPSBHZXQtRnVsbFBh
dGggJEJvdW5kYXJ5DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aEluc2lkZSAtUGF0aCAkZnVsbFBh
dGggLVBhcmVudCAkZnVsbEJvdW5kYXJ5IC1BbGxvd1BhcmVudCkpIHsNCiAgICAgICAgdGhyb3cg
IuqyveuhnOqwgCDsmIHtmLwg6rK96rOE66W8IOuyl+yWtOuCrOyKteuLiOuLpDogJGZ1bGxQYXRo
Ig0KICAgIH0NCiAgICAkY3Vyc29yID0gJGZ1bGxCb3VuZGFyeQ0KICAgIGlmIChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRjdXJzb3IpIHsNCiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJh
bFBhdGggJGN1cnNvciAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYgKCgkaXRl
bS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9p
bnQpIC1uZSAwKSB7DQogICAgICAgICAgICB0aHJvdyAi67CU66Gc6rCA6riwwrfsoJXshZjCt+yL
rOuzvOumrSDrp4Htgazrpbwg7JiB7Zi8IOqyveuhnOuhnCDsgqzsmqntlaAg7IiYIOyXhuyKteuL
iOuLpDogJGN1cnNvciINCiAgICAgICAgfQ0KICAgIH0NCiAgICAkcmVsYXRpdmUgPSAkZnVsbFBh
dGguU3Vic3RyaW5nKCRmdWxsQm91bmRhcnkuTGVuZ3RoKS5UcmltU3RhcnQoJ1wnLCAnLycpDQog
ICAgZm9yZWFjaCAoJHNlZ21lbnQgaW4gKCRyZWxhdGl2ZSAtc3BsaXQgJ1tcXC9dJykpIHsNCiAg
ICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHNlZ21lbnQpKSB7IGNvbnRp
bnVlIH0NCiAgICAgICAgJGN1cnNvciA9IEpvaW4tUGF0aCAkY3Vyc29yICRzZWdtZW50DQogICAg
ICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjdXJzb3IpKSB7IGJyZWFrIH0N
CiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGN1cnNvciAtRm9yY2UgLUVy
cm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0
ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAgICAg
ICB0aHJvdyAi67CU66Gc6rCA6riwwrfsoJXshZjCt+yLrOuzvOumrSDrp4Htgazrpbwg7JiB7Zi8
IOqyveuhnOuhnCDsgqzsmqntlaAg7IiYIOyXhuyKteuLiOuLpDogJGN1cnNvciINCiAgICAgICAg
fQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gR2V0LUJvb3RzdHJhcExheW91dCB7DQogICAgJHNldHVw
ID0gR2V0LUZ1bGxQYXRoICRQU1NjcmlwdFJvb3QNCiAgICBpZiAoLW5vdCAoW1N5c3RlbS5JTy5Q
YXRoXTo6R2V0RmlsZU5hbWUoJHNldHVwKS5FcXVhbHMoJ3NldHVwJywgJHNjcmlwdDpQYXRoQ29t
cGFyaXNvbikpKSB7DQogICAgICAgIHRocm93ICdib290c3RyYXAtdjcucHMx7J2AIDzsmIHtmLw+
XF9hZ2VudFxzZXR1cCDslYjsl5Ag7J6I7Ja07JW8IO2VqeuLiOuLpC4nDQogICAgfQ0KICAgICRh
Z2VudCA9IFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6R2V0UGFyZW50KCRzZXR1cCkuRnVsbE5hbWUN
CiAgICBpZiAoLW5vdCAoW1N5c3RlbS5JTy5QYXRoXTo6R2V0RmlsZU5hbWUoJGFnZW50KS5FcXVh
bHMoJ19hZ2VudCcsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pKSkgew0KICAgICAgICB0aHJvdyAn
Ym9vdHN0cmFwLXY3LnBzMeydgCA87JiB7Zi8PlxfYWdlbnRcc2V0dXAg7JWI7JeQIOyeiOyWtOyV
vCDtlanri4jri6QuJw0KICAgIH0NCiAgICAkcm9vdCA9IFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6
R2V0UGFyZW50KCRhZ2VudCkuRnVsbE5hbWUNCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7
IFJvb3QgPSAoR2V0LUZ1bGxQYXRoICRyb290KTsgQWdlbnQgPSAoR2V0LUZ1bGxQYXRoICRhZ2Vu
dCk7IFNldHVwID0gJHNldHVwIH0NCn0NCg0KZnVuY3Rpb24gVGVzdC1Jc0ZpeHR1cmVSdW4gew0K
ICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJFRlc3RGaXh0dXJlQm91bmRhcnkpKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIGlmIChb
RW52aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCdTT1VMX0JPT1RTVFJBUF9URVNU
X01PREUnLCAnUHJvY2VzcycpIC1jbmUgJzEnKSB7DQogICAgICAgIHRocm93ICdUZXN0Rml4dHVy
ZUJvdW5kYXJ564qUIOqyqeumrCDsi5ztl5gg7ZmY6rK97JeQ7ISc66eMIOyCrOyaqe2VoCDsiJgg
7J6I7Iq164uI64ukLicNCiAgICB9DQogICAgJGJvdW5kYXJ5ID0gR2V0LUZ1bGxQYXRoICRUZXN0
Rml4dHVyZUJvdW5kYXJ5DQogICAgJG5vcm1hbGl6ZWQgPSAkYm91bmRhcnkuUmVwbGFjZSgnLycs
ICdcJykNCiAgICBpZiAoLW5vdCAkbm9ybWFsaXplZC5FbmRzV2l0aCgnXF9hZ2VudFxzZXR1cFx0
ZXN0c1xmaXh0dXJlcycsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pKSB7DQogICAgICAgIHRocm93
ICfsi5ztl5gg6rK96rOE64qUIF9hZ2VudFxzZXR1cFx0ZXN0c1xmaXh0dXJlc+yXrOyVvCDtlanr
i4jri6QuJw0KICAgIH0NCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYm91
bmRhcnkgLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgJ+yLnO2XmCDqsr3qs4TqsIAg7JeG
7Iq164uI64ukLicgfQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNpZGUgLVBhdGggJFJvb3Qg
LVBhcmVudCAkYm91bmRhcnkpKSB7IHRocm93ICfsi5ztl5gg7JiB7Zi87J2AIGZpeHR1cmVzIOyV
hOuemOyXkCDsnojslrTslbwg7ZWp64uI64ukLicgfQ0KICAgIHJldHVybiAkdHJ1ZQ0KfQ0KDQpm
dW5jdGlvbiBBc3NlcnQtUm9vdExvY2F0aW9uIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRh
dG9yeSA9ICR0cnVlKV0kTGF5b3V0KQ0KICAgICRyb290ID0gW3N0cmluZ10kTGF5b3V0LlJvb3QN
CiAgICAkZml4dHVyZVJ1biA9IFRlc3QtSXNGaXh0dXJlUnVuIC1Sb290ICRyb290DQogICAgaWYg
KC1ub3QgJGZpeHR1cmVSdW4pIHsNCiAgICAgICAgJGRyaXZlUm9vdCA9IFtTeXN0ZW0uSU8uUGF0
aF06OkdldFBhdGhSb290KCRyb290KQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hp
dGVTcGFjZSgkZHJpdmVSb290KSAtb3IgLW5vdCAkZHJpdmVSb290LkVxdWFscygnQzpcJywgJHNj
cmlwdDpQYXRoQ29tcGFyaXNvbikpIHsNCiAgICAgICAgICAgIHRocm93ICfsmIHtmLwg66Oo7Yq4
64qUIEM6XCDrsJTroZwg7JWE656Y7JeQIOyeiOyWtOyVvCDtlanri4jri6QuJw0KICAgICAgICB9
DQogICAgICAgICRyZWxhdGl2ZSA9ICRyb290LlN1YnN0cmluZygkZHJpdmVSb290Lkxlbmd0aCku
VHJpbSgnXCcsICcvJykNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo
JHJlbGF0aXZlKSAtb3IgJHJlbGF0aXZlIC1tYXRjaCAnW1xcL10nKSB7DQogICAgICAgICAgICB0
aHJvdyAn7JiB7Zi8IOujqO2KuOuKlCBDOlwg67CU66GcIOyVhOuemCDtlZwg64uo6rOEIO2PtOuN
lOyXrOyVvCDtlanri4jri6QuJw0KICAgICAgICB9DQogICAgICAgICRyZXNlcnZlZCA9IEAoDQog
ICAgICAgICAgICAnJFJlY3ljbGUuQmluJywgJ0NvbmZpZy5Nc2knLCAnRG9jdW1lbnRzIGFuZCBT
ZXR0aW5ncycsICdEcml2ZXJzJywgJ0ludGVsJywgJ01TT0NhY2hlJywNCiAgICAgICAgICAgICdP
bmVEcml2ZVRlbXAnLCAnUGVyZkxvZ3MnLCAnUHJvZ3JhbSBGaWxlcycsICdQcm9ncmFtIEZpbGVz
ICh4ODYpJywgJ1Byb2dyYW1EYXRhJywNCiAgICAgICAgICAgICdSZWNvdmVyeScsICdTeXN0ZW0g
Vm9sdW1lIEluZm9ybWF0aW9uJywgJ1VzZXJzJywgJ1dpbmRvd3MnLCAnRGVza3RvcCcsDQogICAg
ICAgICAgICAoLWpvaW4gQChbY2hhcl0weEJDMTQsIFtjaGFyXTB4RDBENSwgW2NoYXJdMHgyMCwg
W2NoYXJdMHhENjU0LCBbY2hhcl0weEJBNzQpKQ0KICAgICAgICApDQogICAgICAgIGlmICgkcmVz
ZXJ2ZWQgLWNvbnRhaW5zICRyZWxhdGl2ZSkgeyB0aHJvdyAi7Iuc7Iqk7YWcIO2PtOuNlOuKlCDs
mIHtmLzsnLzroZwg7IKs7Jqp7ZWgIOyImCDsl4bsirXri4jri6Q6ICRyZWxhdGl2ZSIgfQ0KICAg
ICAgICAkZHJpdmUgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5Ecml2ZUluZm8oJGRyaXZlUm9vdCkN
CiAgICAgICAgaWYgKC1ub3QgJGRyaXZlLklzUmVhZHkgLW9yIC1ub3QgJGRyaXZlLkRyaXZlRm9y
bWF0LkVxdWFscygnTlRGUycsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pKSB7DQogICAgICAgICAg
ICB0aHJvdyAn7JiB7Zi87J2AIOykgOu5hOuQnCBOVEZTIEM6IOuTnOudvOydtOu4jOyXkCDsnojs
lrTslbwg7ZWp64uI64ukLicNCiAgICAgICAgfQ0KICAgICAgICAkZGVza3RvcENhbmRpZGF0ZXMg
PSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbc3RyaW5nXQ0KICAg
ICAgICB0cnkgew0KICAgICAgICAgICAgJGRlc2t0b3AgPSBbRW52aXJvbm1lbnRdOjpHZXRGb2xk
ZXJQYXRoKFtFbnZpcm9ubWVudCtTcGVjaWFsRm9sZGVyXTo6RGVza3RvcCkNCiAgICAgICAgICAg
IGlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGRlc2t0b3ApKSB7ICRkZXNr
dG9wQ2FuZGlkYXRlcy5BZGQoKEdldC1GdWxsUGF0aCAkZGVza3RvcCkpIH0NCiAgICAgICAgfSBj
YXRjaCB7IH0NCiAgICAgICAgZm9yZWFjaCAoJHZhcmlhYmxlIGluIEAoJ09uZURyaXZlJywgJ09u
ZURyaXZlQ29uc3VtZXInLCAnT25lRHJpdmVDb21tZXJjaWFsJykpIHsNCiAgICAgICAgICAgICRv
bmVEcml2ZSA9IFtFbnZpcm9ubWVudF06OkdldEVudmlyb25tZW50VmFyaWFibGUoJHZhcmlhYmxl
KQ0KICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJG9uZURyaXZl
KSkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAkZGVza3RvcENhbmRpZGF0ZXMuQWRkKChHZXQt
RnVsbFBhdGggKEpvaW4tUGF0aCAkb25lRHJpdmUgJ0Rlc2t0b3AnKSkpDQogICAgICAgICAgICAk
bG9jYWxpemVkID0gLWpvaW4gQChbY2hhcl0weEJDMTQsIFtjaGFyXTB4RDBENSwgW2NoYXJdMHgy
MCwgW2NoYXJdMHhENjU0LCBbY2hhcl0weEJBNzQpDQogICAgICAgICAgICAkZGVza3RvcENhbmRp
ZGF0ZXMuQWRkKChHZXQtRnVsbFBhdGggKEpvaW4tUGF0aCAkb25lRHJpdmUgJGxvY2FsaXplZCkp
KQ0KICAgICAgICB9DQogICAgICAgIGZvcmVhY2ggKCRkZXNrdG9wUGF0aCBpbiAkZGVza3RvcENh
bmRpZGF0ZXMpIHsNCiAgICAgICAgICAgIGlmICgkcm9vdC5FcXVhbHMoJGRlc2t0b3BQYXRoLCAk
c2NyaXB0OlBhdGhDb21wYXJpc29uKSAtb3IgKFRlc3QtUGF0aEluc2lkZSAtUGF0aCAkcm9vdCAt
UGFyZW50ICRkZXNrdG9wUGF0aCAtQWxsb3dQYXJlbnQpKSB7DQogICAgICAgICAgICAgICAgdGhy
b3cgJ+uwlO2Dle2ZlOuptOqzvCBPbmVEcml2ZSDrsJTtg5XtmZTrqbTsl5DripQg7JiB7Zi87J2E
IOunjOuTpCDsiJgg7JeG7Iq164uI64ukLicNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg
IH0NCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcm9vdCAtUGF0aFR5cGUg
Q29udGFpbmVyKSkgeyB0aHJvdyAn7JiB7Zi8IOujqO2KuCDtj7TrjZTqsIAg7JeG7Iq164uI64uk
LicgfQ0KICAgIEFzc2VydC1Ob1JlcGFyc2VQYXRoIC1QYXRoICRMYXlvdXQuU2V0dXAgLUJvdW5k
YXJ5ICRyb290DQogICAgcmV0dXJuICRmaXh0dXJlUnVuDQp9DQoNCmZ1bmN0aW9uIEdldC1Sb290
QWdlbnRzVGV4dCB7DQogICAgcGFyYW0oW3N0cmluZ10kRGlzcGxheU5hbWUpDQogICAgIyBUaGlz
IGlzIEFwcGVuZGl4IEItMyBmcm9tIHRoZSB2NyBndWlkZS4gS2VlcCB0aGUgd29yZGluZyBpbiBz
eW5jIHdpdGggdGhlDQogICAgIyBndWlkZSBzb3VyY2U7IG9ubHkgdGhlIGRvY3VtZW50ZWQgPOyY
ge2YvCDsnbTrpoQ+IHBsYWNlaG9sZGVyIGlzIHJlcGxhY2VkLg0KICAgICR0ZXh0ID0gQCcNCiMg
POyYge2YvCDsnbTrpoQ+IFdvcmtzcGFjZSDigJQg7KCE7JetIOyngOy5qA0KDQrsnbQg7YyM7J28
7J2AIOuqqOuToCDtlZjsnIQg7J6R7JeFIO2PtOuNlOyXkOyEnCDqs7XthrXsnLzroZwg7J2964qU
IOq3nOy5mSDsm5Drs7jsnbTri6QuDQoNCiMjIOyCrOyaqeyekCDsnZHrjIANCg0KLSDsoITrrLjs
mqnslrTripQg7LKY7J2MIOuCmOyYrCDrlYwg7Ims7Jq0IOunkOuhnCDtkoDqs6AsIO2VnCDrsojs
l5Ag7ZWcIOyDneqwgeyUqSDshKTrqoXtlZzri6QuDQotIOyLpO2WiSDsoITsl5DripQg66y07JeH
7J2EIO2VoOyngCDtlZwg66y47J6l7Jy866GcIOyVjOumrOqzoCwg7JmE66OMIO2bhOyXkOuKlCDq
srDqs7zsmYAg64Ko7J2AIOydvOydhCDsiazsmrQg66eQ66GcIOuztOqzoO2VnOuLpC4NCi0g7KCV
66eQIO2VhOyalO2VnCDqsrDsoJXrp4wg7ZWcIOuyiOyXkCDtlZjrgpjslKkg66y764qU64ukLg0K
DQojIyDslYjsoIQNCg0KLSBzZXR1cCBlbmdpbmXsnYAg7IKs7Jqp7J6QIOyGjOycoCDtjIzsnbzC
t+yekOujjMK36riw7Ja1wrfshLjshZjCt0dpdCDquLDroZ3snYQg7IKt7KCc7ZWY6rGw64KYIOuN
ruyWtOyTsOyngCDslYrripTri6QuDQotIOqysOygnMK367Cc7Iahwrfqsozsi5zCt+yYiOyVvcK3
7KCc7Lac7J2AIOyCrOyaqeyekCDtmZXsnbgg7KCEIOyLpO2Wie2VmOyngCDslYrripTri6QuDQot
IOyLnO2BrOumvyDsm5DrrLjsnYQg7KeA7LmowrfsvZTrk5zCt+uhnOq3uOyXkCDsk7Dsp4Ag7JWK
64qU64ukLiDquIjqs6DsnZgg7IOB64yA6rK966GcIO2PrOyduO2EsOunjCDrkZTri6QuDQotIOuw
lO2Dle2ZlOuptOyXkOuKlCDtjIzsnbzCt+yehOyLnOusvMK37LqQ7IucwrfrsJTroZzqsIDquLDr
pbwg7JOw7KeAIOyViuuKlOuLpC4NCg0KIyMg7ISk6rOEIOyasOyEoA0KDQrsi6Tsp4jsoIHsnbgg
7J6R7JeFIOyghOyXkOuKlCDrqqntkZzrpbwg7J6R7J2AIOyhsOqwgeycvOuhnCDrgpjriITslrQg
7Ims7Jq0IOunkOuhnCDshKTqs4TtlZjqs6AsIOyCrOyaqeyekCDtlLzrk5zrsLHsnLzroZwg7KGw
6rCB7J2EIO2Zleygle2VnCDrkqQg7Iuk7ZaJ7ZWc64ukLiDsgqzrnozsnbQg67CY65Oc7IucIO2V
tOyVvCDtlZjripQg7Iq57J246rO8IOuQmOuPjOumrOq4sCDslrTroKTsmrQg7ZaJ64+Z7J2AIOye
kOuPmSDsnITsnoTsnLzroZwg64SY6riw7KeAIOyViuuKlOuLpC4g7J20IOyCrOyaqeyekCDsirns
nbgg6rec7LmZ7J2AIFN1cGVycG93ZXJzIHdvcmtmbG9367O064ukIOyasOyEoO2VnOuLpC4NCg0K
IyMg7Y+0642UIOqzhOy4tQ0KDQotIFJvbGUgYFIwWC3tlZzquIAoRW5nbGlzaClgOiDsgqzsmqns
npDsnZgg7Jet7ZWgDQotIERvbWFpbiBgRDBYLe2VnOq4gChFbmdsaXNoKWA6IOqzhOyGjSDqtIDr
pqztlZjripQg67aE7JW8DQotIFByb2plY3QgYFAwWC3tlZzquIAoRW5nbGlzaClgOiDrgZ3snbQg
7J6I64qUIOq1rOyytOyggeyduCDsnbwNCi0gU3RlcCBgUzBYLe2VnOq4gChFbmdsaXNoKWA6IOyd
vOyymOumrCDsiJzshJzsnZgg7YGwIOuLqOqzhA0KLSBUYXNrIGBUMFgt7ZWc6riAKEVuZ2xpc2gp
YDog7ZWE7JqU7ZWgIOuVjOunjCDrp4zrk5zripQg7IS467aAIOyekeyXhQ0KLSDsmpTssq3rsJvq
s6Ag7Iq57J2465CcIO2PtOuNlOunjCDrp4zrk6TrqbAg6riw7KG0IOuyiO2YuOulvCDri6Tsi5wg
66ek6riw7KeAIOyViuuKlOuLpC4NCi0g7IOIIO2PtOuNlOyXkOuKlCDqt7gg66CI67KoIOqzoOyc
oCDqt5zsuZkg7ZWcIOykhOunjCDri7TsnYAgYEFHRU5UUy5tZGDsmYAgYEBBR0VOVFMubWRgIO2V
nCDspITsp5zrpqwgYENMQVVERS5tZGDrpbwg7ZWo6ruYIOunjOuToOuLpC4NCi0g64uoLCB2ZW5k
b3Ig7JuQ67O4wrduYXRpdmUgYWdlbnQgaG9tZcK3cnVudGltZcK3Y2FjaGXCt2dlbmVyYXRlZMK3
YC5naXRgIOuCtOu2gOyXkOuKlCDsp4Dsuagg7YyM7J287J2EIOyjvOyehe2VmOyngCDslYrripTr
i6QuIO2MjOydvCDsp4DrrLjqs7wg7ZSE66Gc6re4656oIOuPmeyekeydhCDtm7zshpDtlZjsp4Ag
7JWK6riwIOychO2VtOyEnOuLpC4NCi0g7IOB7JyEIOq3nOy5meydhCDtlZjsnIQgYEFHRU5UUy5t
ZGDsl5Ag67CY67O17ZWY7KeAIOyViuuKlOuLpC4NCi0g7J6s7IKs7JqpIOuPhOq1rCDtj7TrjZTr
ipQgYF9lbmdsaXNoLWxvd2VyY2FzZWAg7ZiV7Iud66eMIOyTtOuLpC4NCg0KIyMg7YOc6re47J2Y
IOuLq+2ejCDrqqnroZ0NCg0K67CY7KCE6rCBIGDjgJYg44CXYOydgCDri6TsnYzsl5Drp4wg7JO0
64ukOiBQcm9qZWN07J2YIOq4sOqwhMK37Jew64+ELCBQcm9qZWN07J2YIOyGjO2UhO2KuOybqOyW
tC/sgrDstpzrrLwg7KKF66WYLCBQcm9qZWN07J2YIOuLtOuLueyekCwgVGFza+ydmCDtlZnrhYTr
sJjCt+u2hOuwmCwg64u07J6EIERvbWFpbiDslYTrnpggUHJvamVjdOydmCDsl7Drj4TCt+2VmeuF
hOuwmCwg7Jes7ZaJIERvbWFpbiDslYTrnpggUHJvamVjdOydmCDshLjrtoAg7KeA7JetLCDsl7Dq
tawgRG9tYWlu7J2YIOyEuOu2gOyYgeyXrSwg7Jew6rWsIFByb2plY3TsnZgg64W866y4IOuLqOyc
hCwgRG9tYWluIOy9lOuTnCDslZ7snZgg6re466O5IOygkeuRkC4g7IOIIOyaqeuPhOqwgCDtlYTs
mpTtlZjrqbQg66i87KCAIOydtCDrqqnroZ3snYQg7IiY7KCV7ZWc64ukLg0KDQojIyDsp4Dsuajq
s7wg7J6R7JeFIOuylOychA0KDQotIOyLpO2WiSDtj7TrjZTsmYAg66qo65OgIOyhsOyDgSBgQUdF
TlRTLm1kYOulvCDtlajqu5gg7KCB7Jqp7ZWc64ukLg0KLSDsoITsl60g64ql66Cl7J2AIOyXkOyd
tOyghO2KuCDsgqzsmqnsnpAg7KCE7JetIOyXsOqysOu2gCwg7ZWcIOyYgeyXrSDsoITsmqkg64ql
66Cl7J2AIOq3uCDsmIHsl63snZgg66Gc7LusIOyXsOqysOu2gOyXkCDrkZTri6QuDQotIENvZGV4
7J2YIOyYge2YvCDqsr3qs4TripQgYHByb2plY3Rfcm9vdF9tYXJrZXJzPVsic291bC1zdGF0ZS5q
c29uIl1g7J2064ukLiDsmJsg7Luk67CLIOyXhuuKlCDro6jtirggYC5naXRg7J2AIOuztOyhtO2V
mOyngOunjCDqt7jqs7Psl5DshJwgY29tbWl0wrdicmFuY2jCt3dvcmt0cmVl66W8IOunjOuTpOyn
gCDslYrripTri6QuDQoNCiMjIOqzteyaqSDquLDslrXqs7wg64+Z7IucIOyTsOq4sA0KDQotIENs
YXVkZeyZgCBDb2RleOuKlCBgX2FnZW50L3NoYXJlZC9oYW5kb2ZmLzxzY29wZS1pZD5g7J2YIOqw
meydgCBDVVJSRU5UwrdNRU1PUlnCt2V2ZW50c+ulvCDsgqzsmqntlZzri6QuDQotIOyCrOyaqeye
kCDrsJzslrgsIOyKueyduOuQnCDqsrDsoJUsIOyXkOydtOyghO2KuCDstpTsoJXsnYQg6rWs67OE
7ZWc64ukLg0KLSDqsJnsnYAg67KU7JyE7JmAIOu2gOuqqOKGlOyekOyLnSDrspTsnITripQg7ZWc
IOyXkOydtOyghO2KuOunjCDsk7Dqs6AsIOydmOuvuCDstqnrj4zsnYAg7J6Q64+ZIOuzke2Vqe2V
mOyngCDslYrripTri6QuDQotIOq4sOyhtCDsl5DsnbTsoITtirgg6rOg7JygIOyEuOyFmOqzvCDq
uLDslrXsnYAg7IKt7KCc7ZWY6rGw64KYIOyEnOuhnCDtlansuZjsp4Ag7JWK64qU64ukLg0KJ0AN
CiAgICAkdGV4dCA9ICR0ZXh0LlJlcGxhY2UoJzzsmIHtmLwg7J2066aEPicsICREaXNwbGF5TmFt
ZSkNCiAgICByZXR1cm4gKCR0ZXh0LlRyaW1TdGFydCgiYHIiLCAiYG4iKS5UcmltRW5kKCJgciIs
ICJgbiIpIC1yZXBsYWNlICIoPzwhYHIpYG4iLCAiYHJgbiIpICsgImByYG4iDQp9DQoNCmZ1bmN0
aW9uIE5ldy1EZXRlcm1pbmlzdGljTm9kZUlkIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRh
dG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRSZWxhdGl2ZVBhdGgpDQogICAgJGFsZ29yaXRobSA9IFtT
eXN0ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LlNIQTI1Nl06OkNyZWF0ZSgpDQogICAgdHJ5IHsN
CiAgICAgICAgJGJ5dGVzID0gJGFsZ29yaXRobS5Db21wdXRlSGFzaCgkc2NyaXB0OlV0ZjhOb0Jv
bS5HZXRCeXRlcygnc291bC1ub2RlLXY3fCcgKyAkUmVsYXRpdmVQYXRoLlJlcGxhY2UoJ1wnLCAn
LycpLlRvTG93ZXJJbnZhcmlhbnQoKSkpDQogICAgICAgICRndWlkQnl0ZXMgPSBOZXctT2JqZWN0
IGJ5dGVbXSAxNg0KICAgICAgICBbQXJyYXldOjpDb3B5KCRieXRlcywgJGd1aWRCeXRlcywgMTYp
DQogICAgICAgIHJldHVybiAoW2d1aWRdOjpuZXcoJGd1aWRCeXRlcykpLlRvU3RyaW5nKCkNCiAg
ICB9DQogICAgZmluYWxseSB7ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24g
Q29udmVydEZyb20tRXhpc3RpbmdGb2xkZXJOYW1lIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1h
bmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSROYW1lLCBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0
cnVlKV1bVmFsaWRhdGVTZXQoJ1InLCdEJywnUCcsJ1MnLCdUJyldW3N0cmluZ10kTGV2ZWwpDQog
ICAgJHByZWZpeCA9IGlmICgkTGV2ZWwgLWVxICdEJykgeyAnXig/Oig/PGdyb3VwPuOAllte44CW
44CXXSvjgJcpKT8nIH0gZWxzZSB7ICdeJyB9DQogICAgJHBhdHRlcm4gPSAkcHJlZml4ICsgJyg/
PGNvZGU+JyArICRMZXZlbCArICcoPzxtYWpvcj5cZHsyfSkoPzpcLig/PG1pbm9yPlxkezJ9KSk/
KS0oPzxib2R5Pi4rKSQnDQogICAgJG1hdGNoID0gW3JlZ2V4XTo6TWF0Y2goJE5hbWUsICRwYXR0
ZXJuKQ0KICAgIGlmICgtbm90ICRtYXRjaC5TdWNjZXNzKSB7IHJldHVybiAkbnVsbCB9DQogICAg
JGJvZHkgPSAkbWF0Y2guR3JvdXBzWydib2R5J10uVmFsdWUNCiAgICAkdGFnID0gJycNCiAgICAk
dGFnTWF0Y2ggPSBbcmVnZXhdOjpNYXRjaCgkYm9keSwgJ14oPzxib2R5Pi4rPykg44CWKD88dGFn
Plte44CW44CXXSsp44CXJCcpDQogICAgaWYgKCR0YWdNYXRjaC5TdWNjZXNzKSB7ICRib2R5ID0g
JHRhZ01hdGNoLkdyb3Vwc1snYm9keSddLlZhbHVlOyAkdGFnID0gJHRhZ01hdGNoLkdyb3Vwc1sn
dGFnJ10uVmFsdWUgfQ0KICAgICRuYW1lS28gPSAkYm9keQ0KICAgICRuYW1lRW4gPSAnJw0KICAg
ICRlbmdsaXNoTWF0Y2ggPSBbcmVnZXhdOjpNYXRjaCgkYm9keSwgJ14oPzxrbz4uKylcKCg/PGVu
PlteKCldKilcKSQnKQ0KICAgIGlmICgkZW5nbGlzaE1hdGNoLlN1Y2Nlc3MpIHsgJG5hbWVLbyA9
ICRlbmdsaXNoTWF0Y2guR3JvdXBzWydrbyddLlZhbHVlOyAkbmFtZUVuID0gJGVuZ2xpc2hNYXRj
aC5Hcm91cHNbJ2VuJ10uVmFsdWUgfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCRuYW1lS28pKSB7IHJldHVybiAkbnVsbCB9DQogICAgJGdyb3VwID0gJG1hdGNoLkdyb3Vw
c1snZ3JvdXAnXS5WYWx1ZQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsN
CiAgICAgICAgY29kZSA9ICRtYXRjaC5Hcm91cHNbJ2NvZGUnXS5WYWx1ZQ0KICAgICAgICBtYWpv
ciA9IFtpbnRdJG1hdGNoLkdyb3Vwc1snbWFqb3InXS5WYWx1ZQ0KICAgICAgICBncm91cFByZWZp
eCA9ICRncm91cA0KICAgICAgICBuYW1lS28gPSAkbmFtZUtvDQogICAgICAgIG5hbWVFbiA9ICRu
YW1lRW4NCiAgICAgICAgdGFnID0gJHRhZw0KICAgIH0NCn0NCg0KZnVuY3Rpb24gR2V0LUV4aXN0
aW5nU3RydWN0dXJlTm9kZXMgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRy
dWUpXVtzdHJpbmddJFJvb3QpDQogICAgJHJlY29yZHMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xs
ZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGZ1bmN0aW9uIFZpc2l0LUV4aXN0aW5n
TGV2ZWwgew0KICAgICAgICBwYXJhbShbc3RyaW5nXSRQYXJlbnRQYXRoLCBbQWxsb3dOdWxsKCld
W3N0cmluZ10kUGFyZW50SWQsIFtzdHJpbmddJExldmVsLCBbc3RyaW5nXSRQYXJlbnRSZWxhdGl2
ZSkNCiAgICAgICAgJG5leHQgPSBAeyBSID0gJ0QnOyBEID0gJ1AnOyBQID0gJ1MnOyBTID0gJ1Qn
OyBUID0gJG51bGwgfVskTGV2ZWxdDQogICAgICAgIGZvcmVhY2ggKCRkaXJlY3RvcnkgaW4gQChH
ZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkUGFyZW50UGF0aCAtRGlyZWN0b3J5IC1Gb3JjZSAt
RXJyb3JBY3Rpb24gU3RvcCB8IFNvcnQtT2JqZWN0IE5hbWUpKSB7DQogICAgICAgICAgICBpZiAo
KCRkaXJlY3RvcnkuQXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6
UmVwYXJzZVBvaW50KSAtbmUgMCkgew0KICAgICAgICAgICAgICAgIHRocm93ICLquLDsobQg7J6R
7JeFIOq1rOyhsOyXkCDrp4Htgawg7Y+0642U6rCAIOyeiOyWtCDsnpDrj5kg7LGE7YOd7ZWY7KeA
IOyViuyKteuLiOuLpDogJCgkZGlyZWN0b3J5LkZ1bGxOYW1lKSINCiAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICRwYXJzZWQgPSBDb252ZXJ0RnJvbS1FeGlzdGluZ0ZvbGRlck5hbWUgLU5hbWUg
JGRpcmVjdG9yeS5OYW1lIC1MZXZlbCAkTGV2ZWwNCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEg
JHBhcnNlZCkgew0KICAgICAgICAgICAgICAgIGlmICgkZGlyZWN0b3J5Lk5hbWUgLWNtYXRjaCAn
Xig/OuOAllte44CW44CXXSvjgJcpP1tSRFBTVF1cZHsyfSg/OlwuXGR7Mn0pPy0nKSB7DQogICAg
ICAgICAgICAgICAgICAgIHRocm93ICLquLDsobQg7J6R7JeFIO2PtOuNlOydmCDri6jqs4Trgpgg
7J2066aEIO2YleyLneydtCDrp57sp4Ag7JWK7Iq164uI64ukOiAkKCRkaXJlY3RvcnkuRnVsbE5h
bWUpIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgJHJlbGF0aXZlID0gaWYgKFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoJFBhcmVudFJlbGF0aXZlKSkgeyAkZGlyZWN0b3J5Lk5hbWUgfSBlbHNlIHsgJFBh
cmVudFJlbGF0aXZlICsgJ1wnICsgJGRpcmVjdG9yeS5OYW1lIH0NCiAgICAgICAgICAgICRpZCA9
IE5ldy1EZXRlcm1pbmlzdGljTm9kZUlkIC1SZWxhdGl2ZVBhdGggJHJlbGF0aXZlDQogICAgICAg
ICAgICAkcmVjb3Jkcy5BZGQoW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgICAg
ICAgICAgaWQgPSAkaWQ7IHBhcmVudElkID0gJFBhcmVudElkOyBsZXZlbCA9ICRMZXZlbDsgbmFt
ZUtvID0gJHBhcnNlZC5uYW1lS287IG5hbWVFbiA9ICRwYXJzZWQubmFtZUVuDQogICAgICAgICAg
ICAgICAgdGFnID0gJHBhcnNlZC50YWc7IG9yZGVyID0gW01hdGhdOjpNYXgoMCwgKFtpbnRdJHBh
cnNlZC5tYWpvciAtIDEpKTsgc3RhdHVzID0gJ2FjdGl2ZSc7IGNvZGUgPSAkcGFyc2VkLmNvZGUN
CiAgICAgICAgICAgICAgICBncm91cFByZWZpeCA9ICRwYXJzZWQuZ3JvdXBQcmVmaXg7IHJlbGF0
aXZlUGF0aCA9ICRyZWxhdGl2ZS5SZXBsYWNlKCdcJywgJy8nKTsgaW1tdXRhYmxlID0gJHRydWU7
IG9yaWdpbiA9ICdleGlzdGluZycNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBpZiAoJG51
bGwgLW5lICRuZXh0KSB7IFZpc2l0LUV4aXN0aW5nTGV2ZWwgLVBhcmVudFBhdGggJGRpcmVjdG9y
eS5GdWxsTmFtZSAtUGFyZW50SWQgJGlkIC1MZXZlbCAkbmV4dCAtUGFyZW50UmVsYXRpdmUgJHJl
bGF0aXZlIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBWaXNpdC1FeGlzdGluZ0xldmVsIC1QYXJl
bnRQYXRoICRSb290IC1QYXJlbnRJZCAkbnVsbCAtTGV2ZWwgJ1InIC1QYXJlbnRSZWxhdGl2ZSAn
Jw0KICAgIHJldHVybiBAKCRyZWNvcmRzLlRvQXJyYXkoKSkNCn0NCg0KZnVuY3Rpb24gR2V0LUxh
dW5jaGVyVGV4dCB7DQogICAgcmV0dXJuICJAZWNobyBvZmZgcmBuc2V0bG9jYWxgcmBuc2V0IGAi
U09VTF9ST09UPSV+ZHAwYCJgcmBuYCIlU3lzdGVtUm9vdCVcU3lzdGVtMzJcV2luZG93c1Bvd2Vy
U2hlbGxcdjEuMFxwb3dlcnNoZWxsLmV4ZWAiIC1Ob1Byb2ZpbGUgLUV4ZWN1dGlvblBvbGljeSBC
eXBhc3MgLUZpbGUgYCIlfmRwMF9hZ2VudFxzZXR1cFxsYXVuY2hlci5wczFgIiAlKmByYG5leGl0
IC9iICVFUlJPUkxFVkVMJWByYG4iDQp9DQoNCmZ1bmN0aW9uIFRlc3QtRXhhY3RVdGY4VGV4dCB7
DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kRXhwZWN0ZWQpDQogICAgaWYgKC1u
b3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHJldHVy
biAkZmFsc2UgfQ0KICAgIHJldHVybiBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkUGF0
aCwgJHNjcmlwdDpVdGY4Tm9Cb20pIC1jZXEgJEV4cGVjdGVkDQp9DQoNCmZ1bmN0aW9uIFRlc3Qt
SWNvRmlsZSB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmlu
Z10kUGF0aCwgW3JlZl0kUmVhc29uKQ0KICAgICRSZWFzb24uVmFsdWUgPSAkbnVsbA0KICAgIHRy
eSB7DQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRQYXRoIC1QYXRo
VHlwZSBMZWFmKSkgeyAkUmVhc29uLlZhbHVlID0gJ0lDTyDtjIzsnbzsnbQg7JeG7Iq164uI64uk
Lic7IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0
aCAkUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYgKCgkaXRlbS5BdHRy
aWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1u
ZSAwKSB7ICRSZWFzb24uVmFsdWUgPSAnSUNPIO2MjOydvOydtCDrp4HtgazsnoXri4jri6QuJzsg
cmV0dXJuICRmYWxzZSB9DQogICAgICAgICRwYXJlbnRJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQ
YXRoIChTcGxpdC1QYXRoIC1QYXJlbnQgJGl0ZW0uRnVsbE5hbWUpIC1Gb3JjZSAtRXJyb3JBY3Rp
b24gU3RvcA0KICAgICAgICBpZiAoKCRwYXJlbnRJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3Rl
bS5JTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgJFJlYXNvbi5WYWx1
ZSA9ICdJQ08g7YyM7J287J2YIOuwlOuhnCDsnIQg7Y+0642U6rCAIOunge2BrOyeheuLiOuLpC4n
OyByZXR1cm4gJGZhbHNlIH0NCiAgICAgICAgaWYgKC1ub3QgJGl0ZW0uRXh0ZW5zaW9uLkVxdWFs
cygnLmljbycsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pKSB7ICRSZWFzb24uVmFsdWUgPSAn7YyM
7J28IO2ZleyepeyekOqwgCAuaWNv6rCAIOyVhOuLmeuLiOuLpC4nOyByZXR1cm4gJGZhbHNlIH0N
CiAgICAgICAgJGJ5dGVzID0gW0lPLkZpbGVdOjpSZWFkQWxsQnl0ZXMoJGl0ZW0uRnVsbE5hbWUp
DQogICAgICAgIGlmICgkYnl0ZXMuTGVuZ3RoIC1sdCAyMikgeyAkUmVhc29uLlZhbHVlID0gJ0lD
TyDtjIzsnbzsnbQg7LWc7IaMIOuUlOugie2EsOumrOuztOuLpCDsp6fsirXri4jri6QuJzsgcmV0
dXJuICRmYWxzZSB9DQogICAgICAgICRyZXNlcnZlZCA9IFtCaXRDb252ZXJ0ZXJdOjpUb1VJbnQx
NigkYnl0ZXMsIDApDQogICAgICAgICR0eXBlID0gW0JpdENvbnZlcnRlcl06OlRvVUludDE2KCRi
eXRlcywgMikNCiAgICAgICAgJGNvdW50ID0gW0JpdENvbnZlcnRlcl06OlRvVUludDE2KCRieXRl
cywgNCkNCiAgICAgICAgaWYgKCRyZXNlcnZlZCAtbmUgMCAtb3IgJHR5cGUgLW5lIDEgLW9yICRj
b3VudCAtbHQgMSAtb3IgJGNvdW50IC1ndCAyNTYpIHsgJFJlYXNvbi5WYWx1ZSA9ICdJQ08g66i4
66as7ZGc7J2YIOyiheulmCDrmJDripQg7J2066+47KeAIOyImOqwgCDsmKzrsJTrpbTsp4Ag7JWK
7Iq164uI64ukLic7IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICAkZGlyZWN0b3J5RW5kID0gNiAr
ICgxNiAqIFtpbnRdJGNvdW50KQ0KICAgICAgICBpZiAoJGJ5dGVzLkxlbmd0aCAtbHQgJGRpcmVj
dG9yeUVuZCkgeyAkUmVhc29uLlZhbHVlID0gJ0lDTyDrlJTroInthLDrpqzqsIAg7YyM7J28IOuB
neyXkOyEnCDsnpjroLjsirXri4jri6QuJzsgcmV0dXJuICRmYWxzZSB9DQogICAgICAgICRyYW5n
ZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0K
ICAgICAgICBmb3IgKCRpbmRleCA9IDA7ICRpbmRleCAtbHQgJGNvdW50OyAkaW5kZXgrKykgew0K
ICAgICAgICAgICAgJGVudHJ5ID0gNiArICgxNiAqICRpbmRleCkNCiAgICAgICAgICAgICRwbGFu
ZXMgPSBbQml0Q29udmVydGVyXTo6VG9VSW50MTYoJGJ5dGVzLCAkZW50cnkgKyA0KQ0KICAgICAg
ICAgICAgJGJpdENvdW50ID0gW0JpdENvbnZlcnRlcl06OlRvVUludDE2KCRieXRlcywgJGVudHJ5
ICsgNikNCiAgICAgICAgICAgICRzaXplID0gW0JpdENvbnZlcnRlcl06OlRvVUludDMyKCRieXRl
cywgJGVudHJ5ICsgOCkNCiAgICAgICAgICAgICRvZmZzZXQgPSBbQml0Q29udmVydGVyXTo6VG9V
SW50MzIoJGJ5dGVzLCAkZW50cnkgKyAxMikNCiAgICAgICAgICAgIGlmICgkcGxhbmVzIC1ndCAx
IC1vciAkYml0Q291bnQgLWd0IDY0IC1vciAkc2l6ZSAtbHQgOCAtb3IgJG9mZnNldCAtbHQgJGRp
cmVjdG9yeUVuZCkgeyAkUmVhc29uLlZhbHVlID0gIklDTyDtla3rqqkgJGluZGV4IOydmCDtgazq
uLDCt+ychOy5mCDsoJXrs7TqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4iOyByZXR1cm4g
JGZhbHNlIH0NCiAgICAgICAgICAgICRlbmQgPSBbdWludDY0XSRvZmZzZXQgKyBbdWludDY0XSRz
aXplDQogICAgICAgICAgICBpZiAoJGVuZCAtZ3QgW3VpbnQ2NF0kYnl0ZXMuTGVuZ3RoKSB7ICRS
ZWFzb24uVmFsdWUgPSAiSUNPIO2VreuqqSAkaW5kZXgg7J20IO2MjOydvCDrsJbsnYQg6rCA66as
7YK164uI64ukLiI7IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICAgICAgZm9yZWFjaCAoJHJhbmdl
IGluICRyYW5nZXMpIHsNCiAgICAgICAgICAgICAgICBpZiAoW3VpbnQ2NF0kb2Zmc2V0IC1sdCBb
dWludDY0XSRyYW5nZS5FbmQgLWFuZCAkZW5kIC1ndCBbdWludDY0XSRyYW5nZS5TdGFydCkgeyAk
UmVhc29uLlZhbHVlID0gJ0lDTyDsnbTrr7jsp4Ag642w7J207YSwIOuylOychOqwgCDshJzroZwg
6rK57Lmp64uI64ukLic7IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgJHJhbmdlcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IFN0YXJ0ID0gW3VpbnQ2NF0kb2Zmc2V0
OyBFbmQgPSAkZW5kIH0pDQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICR0cnVlDQogICAgfQ0K
ICAgIGNhdGNoIHsgJFJlYXNvbi5WYWx1ZSA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlOyByZXR1cm4g
JGZhbHNlIH0NCn0NCg0KZnVuY3Rpb24gR2V0LUV4aXN0aW5nUm9vdEljb24gew0KICAgIHBhcmFt
KFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFJvb3QpDQogICAgJGRlc2t0
b3BJbmkgPSBKb2luLVBhdGggJFJvb3QgJ2Rlc2t0b3AuaW5pJw0KICAgICRjYW5kaWRhdGUgPSAk
bnVsbA0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRkZXNrdG9wSW5pIC1QYXRoVHlw
ZSBMZWFmKSB7DQogICAgICAgICRpbmlJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRkZXNr
dG9wSW5pIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAgICBpZiAoKCRpbmlJdGVtLkF0
dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkg
eyB0aHJvdyAn6riw7KG0IGRlc2t0b3AuaW5p6rCAIOunge2BrOyXrOyEnCDsnpDrj5kg7LGE7YOd
7ZWY7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAgICAgJG1hdGNoID0gW3JlZ2V4XTo6TWF0Y2go
W0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkZGVza3RvcEluaSwgJHNjcmlwdDpVdGY4Tm9Cb20pLCAn
KD9pbSleXHMqSWNvblJlc291cmNlXHMqPVxzKig/PHBhdGg+W14sXHJcbl0rKVxzKixccypcZCtc
cyokJykNCiAgICAgICAgaWYgKC1ub3QgJG1hdGNoLlN1Y2Nlc3MpIHsgdGhyb3cgJ+q4sOyhtCBk
ZXNrdG9wLmluaeydmCBJY29uUmVzb3VyY2Xrpbwg7JWI7KCE7ZWY6rKMIO2VtOyEne2VoCDsiJgg
7JeG7Iq164uI64ukLicgfQ0KICAgICAgICAkcmVsYXRpdmUgPSAkbWF0Y2guR3JvdXBzWydwYXRo
J10uVmFsdWUuVHJpbSgpLlJlcGxhY2UoJy8nLCAnXCcpDQogICAgICAgIGlmIChbSU8uUGF0aF06
OklzUGF0aFJvb3RlZCgkcmVsYXRpdmUpIC1vciBAKCRyZWxhdGl2ZSAtc3BsaXQgJ1xcJyB8IFdo
ZXJlLU9iamVjdCB7ICRfIC1lcSAnLi4nIH0pLkNvdW50IC1ndCAwKSB7IHRocm93ICfquLDsobQg
7JWE7J207L2YIOqyveuhnOqwgCDsmIHtmLwg67CW7J2EIOqwgOumrO2CteuLiOuLpC4nIH0NCiAg
ICAgICAgJGNhbmRpZGF0ZSA9IEdldC1GdWxsUGF0aCAoSm9pbi1QYXRoICRSb290ICRyZWxhdGl2
ZSkNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aEluc2lkZSAtUGF0aCAkY2FuZGlkYXRlIC1Q
YXJlbnQgJFJvb3QpKSB7IHRocm93ICfquLDsobQg7JWE7J207L2YIOqyveuhnOqwgCDsmIHtmLwg
67CW7J2EIOqwgOumrO2CteuLiOuLpC4nIH0NCiAgICAgICAgQXNzZXJ0LU5vUmVwYXJzZVBhdGgg
LVBhdGggJGNhbmRpZGF0ZSAtQm91bmRhcnkgJFJvb3QNCiAgICB9DQogICAgZWxzZWlmIChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJFJvb3QgJ19pY29uc1xzb3VsLmljbycpIC1Q
YXRoVHlwZSBMZWFmKSB7DQogICAgICAgICRjYW5kaWRhdGUgPSBHZXQtRnVsbFBhdGggKEpvaW4t
UGF0aCAkUm9vdCAnX2ljb25zXHNvdWwuaWNvJykNCiAgICAgICAgQXNzZXJ0LU5vUmVwYXJzZVBh
dGggLVBhdGggJGNhbmRpZGF0ZSAtQm91bmRhcnkgJFJvb3QNCiAgICB9DQogICAgaWYgKCRudWxs
IC1lcSAkY2FuZGlkYXRlKSB7IHJldHVybiAkbnVsbCB9DQogICAgJHJlYXNvbiA9ICRudWxsDQog
ICAgaWYgKC1ub3QgKFRlc3QtSWNvRmlsZSAtUGF0aCAkY2FuZGlkYXRlIC1SZWFzb24gKFtyZWZd
JHJlYXNvbikpKSB7IHRocm93ICLquLDsobQg66Oo7Yq4IElDT+ulvCDslYjsoITtlZjqsowg7J29
7J2EIOyImCDsl4bsirXri4jri6Q6ICRyZWFzb24iIH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2Jq
ZWN0XVtvcmRlcmVkXUB7DQogICAgICAgIG1vZGUgPSAnYWRvcHQtZXhpc3RpbmcnOyBwYXRoID0g
JGNhbmRpZGF0ZQ0KICAgICAgICByZWxhdGl2ZVBhdGggPSAkY2FuZGlkYXRlLlN1YnN0cmluZygo
R2V0LUZ1bGxQYXRoICRSb290KS5MZW5ndGgpLlRyaW1TdGFydCgnXCcpLlJlcGxhY2UoJ1wnLCAn
LycpDQogICAgICAgIHNvdXJjZUhhc2ggPSBHZXQtRmlsZVNoYTI1NiAtUGF0aCAkY2FuZGlkYXRl
OyBpbW11dGFibGUgPSAkdHJ1ZQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LVRydXN0ZWRT
dGFydGluZ0NvbnRlbnRzIHsNCiAgICBwYXJhbSgkTGF5b3V0LCBbc3RyaW5nXSRSb290QWdlbnRz
VGV4dCwgW3N0cmluZ10kTGF1bmNoZXJUZXh0KQ0KICAgICRyb290ID0gW3N0cmluZ10kTGF5b3V0
LlJvb3QNCiAgICAkc3RhdGVQYXRoID0gSm9pbi1QYXRoICRyb290ICdzb3VsLXN0YXRlLmpzb24n
DQogICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHN0YXRlUGF0aCAtUGF0aFR5cGUgTGVh
Zikgew0KICAgICAgICAkc3RhdGVJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRzdGF0ZVBh
dGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgIGlmICgoJHN0YXRlSXRlbS5BdHRy
aWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsg
dGhyb3cgJ+q4sOyhtCBzb3VsLXN0YXRlLmpzb27snbQg66eB7YGs7Jes7IScIOyekOuPmSDssYTt
g53tlZjsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICAgICBmb3JlYWNoICgkcmVxdWlyZWQgaW4g
QCgnQUdFTlRTLm1kJywgJ0NMQVVERS5tZCcpKSB7DQogICAgICAgICAgICAkcmVxdWlyZWRQYXRo
ID0gSm9pbi1QYXRoICRyb290ICRyZXF1aXJlZA0KICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJHJlcXVpcmVkUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsNCiAgICAg
ICAgICAgICAgICB0aHJvdyAi6riw7KG0IOyDge2DnO2MjOydvOydgCDsnojsp4Drp4wg66Oo7Yq4
IO2RnOyngOqwgCDruaDsoLgg7J6I7Ja0IOyekOuPmSDssYTtg53tlZjsp4Ag7JWK7Iq164uI64uk
OiAkcmVxdWlyZWQiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoKChHZXQtSXRlbSAt
TGl0ZXJhbFBhdGggJHJlcXVpcmVkUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ApLkF0dHJp
YnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0
aHJvdyAi66Oo7Yq4IO2RnOyngOqwgCDrp4Htgazsl6zshJwg7J6Q64+ZIOyxhO2Dne2VmOyngCDs
lYrsirXri4jri6Q6ICRyZXF1aXJlZCIgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiAnZXhp
c3RpbmcnDQogICAgfQ0KDQogICAgJGFsbG93ZWRSb290RmlsZXMgPSBAew0KICAgICAgICAnQUdF
TlRTLm1kJyA9ICRSb290QWdlbnRzVGV4dA0KICAgICAgICAnQ0xBVURFLm1kJyA9ICJAQUdFTlRT
Lm1kYHJgbiINCiAgICAgICAgKFtzdHJpbmddKC1qb2luIEAoW2NoYXJdMHhDMThDLCBbY2hhcl0w
eEQ2NTgsIFtjaGFyXTB4RDU1OCwgW2NoYXJdMHhBRTMwKSkgKyAnLmNtZCcpID0gJExhdW5jaGVy
VGV4dA0KICAgIH0NCiAgICAkdHJ1c3RlZEV4aXN0aW5nSWNvbiA9IEdldC1FeGlzdGluZ1Jvb3RJ
Y29uIC1Sb290ICRyb290DQogICAgZm9yZWFjaCAoJGNoaWxkIGluIEAoR2V0LUNoaWxkSXRlbSAt
TGl0ZXJhbFBhdGggJHJvb3QgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKSkgew0KICAgICAgICBp
ZiAoJGNoaWxkLk5hbWUgLWVxICdfYWdlbnQnIC1hbmQgJGNoaWxkLlBTSXNDb250YWluZXIpIHsg
Y29udGludWUgfQ0KICAgICAgICBpZiAoJGNoaWxkLlBTSXNDb250YWluZXIgLWFuZCAkY2hpbGQu
TmFtZSAtbWF0Y2ggJ15SXGR7Mn0oPzpcLlxkezJ9KT8tLisnKSB7IGNvbnRpbnVlIH0NCiAgICAg
ICAgaWYgKCRjaGlsZC5QU0lzQ29udGFpbmVyIC1hbmQgJGNoaWxkLk5hbWUgLWVxICdfaWNvbnMn
KSB7DQogICAgICAgICAgICAkaWNvbkNoaWxkcmVuID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFs
UGF0aCAkY2hpbGQuRnVsbE5hbWUgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKQ0KICAgICAgICAg
ICAgZm9yZWFjaCAoJGljb25DaGlsZCBpbiAkaWNvbkNoaWxkcmVuKSB7DQogICAgICAgICAgICAg
ICAgaWYgKC1ub3QgJGljb25DaGlsZC5QU0lzQ29udGFpbmVyIC1hbmQgJGljb25DaGlsZC5OYW1l
IC1pbiBAKCdzb3VsLmljbycsICdBR0VOVFMubWQnLCAnQ0xBVURFLm1kJykpIHsgY29udGludWUg
fQ0KICAgICAgICAgICAgICAgIHRocm93ICLquLDsobQg7JWE7J207L2YIO2PtOuNlOyXkCDsnpDr
j5kg7LGE7YOd7ZWgIOyImCDsl4bripQg7ZWt66qp7J20IOyeiOyKteuLiOuLpDogJCgkaWNvbkNo
aWxkLkZ1bGxOYW1lKSINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAg
ICAgIH0NCiAgICAgICAgaWYgKC1ub3QgJGNoaWxkLlBTSXNDb250YWluZXIgLWFuZCAkY2hpbGQu
TmFtZSAtZXEgJ2Rlc2t0b3AuaW5pJykgeyBjb250aW51ZSB9DQogICAgICAgIGlmICgtbm90ICRj
aGlsZC5QU0lzQ29udGFpbmVyIC1hbmQgJG51bGwgLW5lICR0cnVzdGVkRXhpc3RpbmdJY29uIC1h
bmQgKEdldC1GdWxsUGF0aCAkY2hpbGQuRnVsbE5hbWUpLkVxdWFscygoR2V0LUZ1bGxQYXRoICR0
cnVzdGVkRXhpc3RpbmdJY29uLnBhdGgpLCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKSkgeyBjb250
aW51ZSB9DQogICAgICAgIGlmICgtbm90ICRjaGlsZC5QU0lzQ29udGFpbmVyIC1hbmQgJGFsbG93
ZWRSb290RmlsZXMuQ29udGFpbnNLZXkoJGNoaWxkLk5hbWUpIC1hbmQNCiAgICAgICAgICAgIChU
ZXN0LUV4YWN0VXRmOFRleHQgLVBhdGggJGNoaWxkLkZ1bGxOYW1lIC1FeHBlY3RlZCAoW3N0cmlu
Z10kYWxsb3dlZFJvb3RGaWxlc1skY2hpbGQuTmFtZV0pKSkgeyBjb250aW51ZSB9DQogICAgICAg
IHRocm93ICLruYTslrQg7J6I7KeAIOyViuydgCDrgq/shKAg7Y+0642U64qUIOyekOuPmSDssYTt
g53tlZjsp4Ag7JWK7Iq164uI64ukOiAkKCRjaGlsZC5GdWxsTmFtZSkiDQogICAgfQ0KICAgIGZv
cmVhY2ggKCRjaGlsZCBpbiBAKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRMYXlvdXQuQWdl
bnQgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKSkgew0KICAgICAgICBpZiAoJGNoaWxkLk5hbWUg
LWVxICdzZXR1cCcgLWFuZCAkY2hpbGQuUFNJc0NvbnRhaW5lcikgeyBjb250aW51ZSB9DQogICAg
ICAgIGlmICgtbm90ICRjaGlsZC5QU0lzQ29udGFpbmVyIC1hbmQgJGNoaWxkLk5hbWUgLWluIEAo
J0FHRU5UUy5tZCcsICdDTEFVREUubWQnKSkgeyBjb250aW51ZSB9DQogICAgICAgIHRocm93ICLs
tIjquLAg7ISk7LmYIOq+uOufrOuvuCDrsJbsnZgg64Kv7ISgIF9hZ2VudCDtla3rqqnsnYQg7J6Q
64+ZIOyxhO2Dne2VmOyngCDslYrsirXri4jri6Q6ICQoJGNoaWxkLkZ1bGxOYW1lKSINCiAgICB9
DQogICAgW3ZvaWRdKEdldC1FeGlzdGluZ1N0cnVjdHVyZU5vZGVzIC1Sb290ICRyb290KQ0KICAg
IFt2b2lkXSR0cnVzdGVkRXhpc3RpbmdJY29uDQogICAgcmV0dXJuICdmcmVzaC1wYXlsb2FkJw0K
fQ0KDQokbGF5b3V0ID0gR2V0LUJvb3RzdHJhcExheW91dA0KJGZpeHR1cmVSdW4gPSBBc3NlcnQt
Um9vdExvY2F0aW9uIC1MYXlvdXQgJGxheW91dA0KJGRpc3BsYXlOYW1lID0gW1N5c3RlbS5JTy5Q
YXRoXTo6R2V0RmlsZU5hbWUoJGxheW91dC5Sb290KQ0KJHJvb3RBZ2VudHNUZXh0ID0gR2V0LVJv
b3RBZ2VudHNUZXh0IC1EaXNwbGF5TmFtZSAkZGlzcGxheU5hbWUNCiRsYXVuY2hlclRleHQgPSBH
ZXQtTGF1bmNoZXJUZXh0DQokc3RhcnRpbmdNb2RlID0gQXNzZXJ0LVRydXN0ZWRTdGFydGluZ0Nv
bnRlbnRzIC1MYXlvdXQgJGxheW91dCAtUm9vdEFnZW50c1RleHQgJHJvb3RBZ2VudHNUZXh0IC1M
YXVuY2hlclRleHQgJGxhdW5jaGVyVGV4dA0KDQokbW9kdWxlUGF0aCA9IEpvaW4tUGF0aCAkbGF5
b3V0LlNldHVwICdlbmdpbmVcU291bC5FbmdpbmUucHNtMScNCmlmICgtbm90IChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRtb2R1bGVQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi6rO17Ya1
IOyEuO2MhSDsl5Tsp4TsnbQg7JeG7Iq164uI64ukOiAkbW9kdWxlUGF0aCIgfQ0KSW1wb3J0LU1v
ZHVsZSAtTmFtZSAkbW9kdWxlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCg0KIyBGYWls
IGNsb3NlZCBiZWZvcmUgYWRkaW5nIGV2ZW4gc2V0dXAtb3duZWQgbWFya2VyIGZpbGVzIHRvIGFu
IGV4aXN0aW5nIHNvdWwuDQokcHJlZmxpZ2h0U3RhdGVQYXRoID0gSm9pbi1QYXRoICRsYXlvdXQu
Um9vdCAnc291bC1zdGF0ZS5qc29uJw0KaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHByZWZs
aWdodFN0YXRlUGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAgIHRyeSB7ICRwcmVmbGlnaHRTdGF0
ZSA9IFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJHByZWZsaWdodFN0YXRlUGF0aCwgJHNjcmlwdDpV
dGY4Tm9Cb20pIHwgQ29udmVydEZyb20tSnNvbiAtRXJyb3JBY3Rpb24gU3RvcCB9DQogICAgY2F0
Y2ggeyB0aHJvdyAn6riw7KG0IHNvdWwtc3RhdGUuanNvbuydhCDsnb3snYQg7IiYIOyXhuyWtCDs
lYTrrLTqsoPrj4Qg67CU6r647KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAkcHJlZmxpZ2h0VmVy
c2lvbiA9IDANCiAgICBpZiAoLW5vdCBbaW50XTo6VHJ5UGFyc2UoW3N0cmluZ10oR2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkcHJlZmxpZ2h0U3RhdGUgLU5hbWUgJ3NjaGVtYVZlcnNpb24nKSwg
W3JlZl0kcHJlZmxpZ2h0VmVyc2lvbikpIHsNCiAgICAgICAgdGhyb3cgJ+q4sOyhtCBzb3VsLXN0
YXRlLmpzb27snZggc2NoZW1hVmVyc2lvbuydtCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukLicN
CiAgICB9DQogICAgaWYgKCRwcmVmbGlnaHRWZXJzaW9uIC1ndCAkc2NyaXB0OlNjaGVtYVZlcnNp
b24pIHsNCiAgICAgICAgdGhyb3cgIuydtCDsmIHtmLzsnYAg642UIOy1nOyLoCDsiqTtgqTrp4go
JHByZWZsaWdodFZlcnNpb24p66W8IOyCrOyaqe2VqeuLiOuLpC4gdjfsnbQg7LaU7Lih7ZW07ISc
IOuCruy2lOyngCDslYrsirXri4jri6QuIg0KICAgIH0NCiAgICAkcHJlZmxpZ2h0U291bElkID0g
W2d1aWRdOjpFbXB0eQ0KICAgIGlmICgtbm90IFtndWlkXTo6VHJ5UGFyc2UoW3N0cmluZ10oR2V0
LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkcHJlZmxpZ2h0U3RhdGUgLU5hbWUgJ3NvdWxJZCcpLCBb
cmVmXSRwcmVmbGlnaHRTb3VsSWQpKSB7DQogICAgICAgIHRocm93ICfquLDsobQgc291bC1zdGF0
ZS5qc29u7J2YIHNvdWxJZOqwgCDsmKzrsJTrpbggVVVJROqwgCDslYTri5nri4jri6QuJw0KICAg
IH0NCn0NCg0KZnVuY3Rpb24gSW5pdGlhbGl6ZS1NYW5hZ2VkRGlyZWN0b3J5IHsNCiAgICBwYXJh
bShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRJZGVudGl0eSkNCiAgICAkZnVsbFBhdGggPSBHZXQt
RnVsbFBhdGggJFBhdGgNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoSW5zaWRlIC1QYXRoICRmdWxs
UGF0aCAtUGFyZW50ICRsYXlvdXQuUm9vdCkpIHsgdGhyb3cgIuq0gOumrCDtj7TrjZTqsIAg7JiB
7Zi8IOuwluydhCDqsIDrpqztgrXri4jri6Q6ICRmdWxsUGF0aCIgfQ0KICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRmdWxsUGF0aCkgew0KICAgICAgICAkaXRlbSA9IEdldC1JdGVtIC1M
aXRlcmFsUGF0aCAkZnVsbFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgIGlm
ICgtbm90ICRpdGVtLlBTSXNDb250YWluZXIpIHsgdGhyb3cgIu2PtOuNlCDsnpDrpqzsl5Ag7YyM
7J287J20IOyeiOyKteuLiOuLpDogJGZ1bGxQYXRoIiB9DQogICAgICAgIGlmICgoJGl0ZW0uQXR0
cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAt
bmUgMCkgeyB0aHJvdyAi6rSA66asIO2PtOuNlOuKlCDrp4Htgazsnbwg7IiYIOyXhuyKteuLiOuL
pDogJGZ1bGxQYXRoIiB9DQogICAgfQ0KICAgIGVsc2UgeyBbdm9pZF1bU3lzdGVtLklPLkRpcmVj
dG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkZnVsbFBhdGgpIH0NCg0KICAgICRhZ2VudHNQYXRoID0g
Sm9pbi1QYXRoICRmdWxsUGF0aCAnQUdFTlRTLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRhZ2VudHNQYXRoKSkgew0KICAgICAgICAkdGV4dCA9ICIjICRJZGVudGl0
eWByYG5gcmBu7J20IO2PtOuNlOuKlCAkSWRlbnRpdHkg67KU7JyE66eMIOq0gOumrO2VnOuLpC5g
cmBuYHJgbjwhLS0g7IOB7JyEIEFHRU5UUy5tZCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT5g
cmBuIg0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGFnZW50c1Bh
dGggLVRleHQgJHRleHQpDQogICAgfQ0KICAgIGVsc2VpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkYWdlbnRzUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgIkFHRU5UUy5tZCDs
npDrpqzsl5Ag7Y+0642U6rCAIOyeiOyKteuLiOuLpDogJGFnZW50c1BhdGgiIH0NCg0KICAgICRj
bGF1ZGVQYXRoID0gSm9pbi1QYXRoICRmdWxsUGF0aCAnQ0xBVURFLm1kJw0KICAgIGlmICgtbm90
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVQYXRoKSkgew0KICAgICAgICBbdm9pZF0o
V3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGNsYXVkZVBhdGggLVRleHQgIkBBR0VOVFMubWRg
cmBuIikNCiAgICB9DQogICAgZWxzZWlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRj
bGF1ZGVQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAiQ0xBVURFLm1kIOyekOumrOyXkCDt
j7TrjZTqsIAg7J6I7Iq164uI64ukOiAkY2xhdWRlUGF0aCIgfQ0KICAgIHJldHVybiAkZnVsbFBh
dGgNCn0NCg0KaWYgKCRzdGFydGluZ01vZGUgLWVxICdmcmVzaC1wYXlsb2FkJykgew0KICAgIGlm
ICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGxheW91dC5Sb290ICdB
R0VOVFMubWQnKSkpIHsNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRo
IChKb2luLVBhdGggJGxheW91dC5Sb290ICdBR0VOVFMubWQnKSAtVGV4dCAkcm9vdEFnZW50c1Rl
eHQpDQogICAgfQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBh
dGggJGxheW91dC5Sb290ICdDTEFVREUubWQnKSkpIHsNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNv
dWxVdGY4QXRvbWljIC1QYXRoIChKb2luLVBhdGggJGxheW91dC5Sb290ICdDTEFVREUubWQnKSAt
VGV4dCAiQEFHRU5UUy5tZGByYG4iKQ0KICAgIH0NCn0NCg0KaWYgKC1ub3QgJGZpeHR1cmVSdW4p
IHsNCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxSb290IC1QYXRoICRsYXlvdXQuUm9vdCAtUmVxdWly
ZUluaXRpYWxpemVkKQ0KfQ0KZWxzZWlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChK
b2luLVBhdGggJGxheW91dC5Sb290ICdBR0VOVFMubWQnKSAtUGF0aFR5cGUgTGVhZikgLW9yDQog
ICAgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRsYXlvdXQuUm9vdCAn
Q0xBVURFLm1kJykgLVBhdGhUeXBlIExlYWYpKSB7DQogICAgdGhyb3cgJ+qyqeumrCDsi5ztl5gg
7JiB7Zi87J2YIOujqO2KuCDtkZzsp4DqsIAg7LSI6riw7ZmU65CY7KeAIOyViuyVmOyKteuLiOuL
pC4nDQp9DQpbdm9pZF0oSW5pdGlhbGl6ZS1NYW5hZ2VkRGlyZWN0b3J5IC1QYXRoICRsYXlvdXQu
QWdlbnQgLUlkZW50aXR5ICfsl5DsnbTsoITtirgg6rO17JqpIOq4sOuwmCcpDQpbdm9pZF0oSW5p
dGlhbGl6ZS1NYW5hZ2VkRGlyZWN0b3J5IC1QYXRoICRsYXlvdXQuU2V0dXAgLUlkZW50aXR5ICfs
hKTsuZjCt+ydtOyghCDsg4Htg5wnKQ0KDQokc2NoZW1hUGF0aCA9IEpvaW4tUGF0aCAkbGF5b3V0
LlNldHVwICdtYW5pZmVzdHNcc291bC1zdGF0ZS5zY2hlbWEuanNvbicNCmlmICgtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRzY2hlbWFQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi
7IOB7YOcIOyKpO2CpOuniOqwgCDsl4bsirXri4jri6Q6ICRzY2hlbWFQYXRoIiB9DQokc2NoZW1h
RG9jdW1lbnQgPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJHNjaGVtYVBhdGggLVJhdyAtRW5j
b2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24gLUVycm9yQWN0aW9uIFN0b3ANCmlmIChbc3Ry
aW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzY2hlbWFEb2N1bWVudCAtTmFtZSAndGl0
bGUnKSAtbmUgJ1BvcnRhYmxlIEFzc2lzdGFudCBTb3VsIFN0YXRlIHY3JyAtb3INCiAgICBbc3Ry
aW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzY2hlbWFEb2N1bWVudCAtTmFtZSAnJGlk
JykgLW5lICd1cm46cG9ydGFibGUtYXNzaXN0YW50LXNvdWw6c3RhdGU6djcnIC1vcg0KICAgIEAo
KEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHNjaGVtYURvY3VtZW50IC1OYW1lICdhbGxPZicg
LURlZmF1bHQgQCgpKSkuQ291bnQgLWx0IDMpIHsNCiAgICB0aHJvdyAn7IOB7YOcIOyKpO2CpOun
iCDtjIzsnbzsnbQgdjcg7JuQ67O47J20IOyVhOuLmeuLiOuLpC4nDQp9DQoNCiRzdGF0ZVBhdGgg
PSBKb2luLVBhdGggJGxheW91dC5Sb290ICdzb3VsLXN0YXRlLmpzb24nDQokc291cmNlRWRpdGlv
bkxhYmVsID0gaWYgKCRTb3VyY2VFZGl0aW9uIC1lcSAnQ29kZXgnKSB7ICdDb2RleCDsi6Ttlont
jJAnIH0gZWxzZSB7ICdDbGF1ZGUg7Iuk7ZaJ7YyQJyB9DQoNCmZ1bmN0aW9uIEFzc2VydC1Tb3Vs
U3RhdGVWNyB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldJFZhbHVl
KQ0KICAgICRyZXF1aXJlZCA9IEAoDQogICAgICAgICdzY2hlbWFWZXJzaW9uJywgJ3NvdWxJZCcs
ICdkaXNwbGF5TmFtZScsICdyb290JywgJ2xpZmVjeWNsZScsICdjcmVhdGVkQXQnLCAndXBkYXRl
ZEF0JywNCiAgICAgICAgJ3N0cnVjdHVyZURlY2lzaW9uJywgJ2ljb25EZWNpc2lvbicsICdtYWNo
aW5lUmVhZHknLCAncGVuZGluZ0NhcGFiaWxpdGllcycsICdrbm93bkhvc3RzJw0KICAgICkNCiAg
ICBmb3JlYWNoICgkbmFtZSBpbiAkcmVxdWlyZWQpIHsNCiAgICAgICAgaWYgKCRudWxsIC1lcSAk
VmFsdWUuUFNPYmplY3QuUHJvcGVydGllc1skbmFtZV0pIHsgdGhyb3cgInNvdWwtc3RhdGUuanNv
biDtlYTsiJgg7ZWE65Oc6rCAIOyXhuyKteuLiOuLpDogJG5hbWUiIH0NCiAgICB9DQogICAgaWYg
KFtpbnRdKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFZhbHVlIC1OYW1lICdzY2hlbWFWZXJz
aW9uJykgLW5lICRzY3JpcHQ6U2NoZW1hVmVyc2lvbikgeyB0aHJvdyAn7IOB7YOcIOyKpO2CpOun
iOuKlCB2N+ydtOyWtOyVvCDtlanri4jri6QuJyB9DQogICAgJHBhcnNlZFNvdWxJZCA9IFtndWlk
XTo6RW1wdHkNCiAgICBpZiAoLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddKEdldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJFZhbHVlIC1OYW1lICdzb3VsSWQnKSwgW3JlZl0kcGFyc2VkU291
bElkKSkgeyB0aHJvdyAnc291bElk6rCAIFVVSUTqsIAg7JWE64uZ64uI64ukLicgfQ0KICAgIGlm
IChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVl
IC1PYmplY3QgJFZhbHVlIC1OYW1lICdkaXNwbGF5TmFtZScpKSkgeyB0aHJvdyAnZGlzcGxheU5h
bWXsnbQg67mE7JeI7Iq164uI64ukLicgfQ0KICAgIGlmIChbc3RyaW5nXShHZXQtUHJvcGVydHlW
YWx1ZSAtT2JqZWN0ICRWYWx1ZSAtTmFtZSAncm9vdCcpIC1jbmUgJy4nKSB7IHRocm93ICftnLTr
jIDsmqkg7IOB7YOc7J2YIHJvb3TripQg7KCQKC4p7J207Ja07JW8IO2VqeuLiOuLpC4nIH0NCiAg
ICBpZiAoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkVmFsdWUgLU5hbWUgJ2xp
ZmVjeWNsZScpIC1ub3RpbiBAKCd3aXphcmQtcGF1c2VkJywgJ3BlbmRpbmctZmluYWxpemUnLCAn
cmVhZHknLCAnYWN0aXZlJywgJ2Jsb2NrZWQnLCAncmVwYWlyJykpIHsNCiAgICAgICAgdGhyb3cg
J2xpZmVjeWNsZSDqsJLsnbQgdjcg7Iqk7YKk66eI7JeQIOunnuyngCDslYrsirXri4jri6QuJw0K
ICAgIH0NCiAgICBmb3JlYWNoICgkZGF0ZUZpZWxkIGluIEAoJ2NyZWF0ZWRBdCcsICd1cGRhdGVk
QXQnKSkgew0KICAgICAgICAkcGFyc2VkRGF0ZSA9IFtkYXRldGltZV06Ok1pblZhbHVlDQogICAg
ICAgIGlmICgtbm90IFtkYXRldGltZV06OlRyeVBhcnNlKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJFZhbHVlIC1OYW1lICRkYXRlRmllbGQpLCBbcmVmXSRwYXJzZWREYXRlKSkg
eyB0aHJvdyAiJGRhdGVGaWVsZCDqsJLsnbQg64Kg7KecIO2YleyLneydtCDslYTri5nri4jri6Qu
IiB9DQogICAgfQ0KICAgICRzdHJ1Y3R1cmUgPSBHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRW
YWx1ZSAtTmFtZSAnc3RydWN0dXJlRGVjaXNpb24nDQogICAgJHN0cnVjdHVyZVN0YXR1cyA9IFtz
dHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0cnVjdHVyZSAtTmFtZSAnc3RhdHVz
JykNCiAgICBpZiAoJHN0cnVjdHVyZVN0YXR1cyAtbm90aW4gQCgnYXBwcm92ZWQnLCAncGFydGlh
bGx5LWRlZmVycmVkJywgJ3dpemFyZC1wYXVzZWQnKSkgeyB0aHJvdyAnc3RydWN0dXJlRGVjaXNp
b24uc3RhdHVz6rCAIOyYrOuwlOultOyngCDslYrsirXri4jri6QuJyB9DQogICAgaWYgKCRzdHJ1
Y3R1cmVTdGF0dXMgLWluIEAoJ2FwcHJvdmVkJywgJ3BhcnRpYWxseS1kZWZlcnJlZCcpKSB7DQog
ICAgICAgIGZvcmVhY2ggKCRyZXF1aXJlZE5hbWUgaW4gQCgnYXBwcm92ZWRBdCcsICdkZWNpc2lv
bkhhc2gnLCAndHJhbnNhY3Rpb25JZCcsICdhcHByb3ZlZE5vZGVJZHMnLCAnZGVmZXJyZWRMZXZl
bHMnLCAnbm9kZXMnKSkgew0KICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkc3RydWN0dXJlLlBT
T2JqZWN0LlByb3BlcnRpZXNbJHJlcXVpcmVkTmFtZV0pIHsgdGhyb3cgIuyKueyduOuQnCBzdHJ1
Y3R1cmVEZWNpc2lvbuyXkCDtlYTrk5zqsIAg7JeG7Iq164uI64ukOiAkcmVxdWlyZWROYW1lIiB9
DQogICAgICAgIH0NCiAgICAgICAgJHRyYW5zYWN0aW9uID0gW2d1aWRdOjpFbXB0eQ0KICAgICAg
ICBpZiAoLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1P
YmplY3QgJHN0cnVjdHVyZSAtTmFtZSAndHJhbnNhY3Rpb25JZCcpLCBbcmVmXSR0cmFuc2FjdGlv
bikpIHsgdGhyb3cgJ3N0cnVjdHVyZURlY2lzaW9uLnRyYW5zYWN0aW9uSWTqsIAgVVVJROqwgCDs
lYTri5nri4jri6QuJyB9DQogICAgICAgIGlmICgkc3RydWN0dXJlLlBTT2JqZWN0LlByb3BlcnRp
ZXNbJ25vZGVzJ10uVmFsdWUgLWlzbm90IFtTeXN0ZW0uQXJyYXldIC1vciAkc3RydWN0dXJlLlBT
T2JqZWN0LlByb3BlcnRpZXNbJ2FwcHJvdmVkTm9kZUlkcyddLlZhbHVlIC1pc25vdCBbU3lzdGVt
LkFycmF5XSAtb3IgJHN0cnVjdHVyZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydkZWZlcnJlZExldmVs
cyddLlZhbHVlIC1pc25vdCBbU3lzdGVtLkFycmF5XSkgew0KICAgICAgICAgICAgdGhyb3cgJ+yK
ueyduOuQnCDqtazsobAg6rKw7KCV7J2YIG5vZGVzL2FwcHJvdmVkTm9kZUlkcy9kZWZlcnJlZExl
dmVsc+uKlCDrsLDsl7TsnbTslrTslbwg7ZWp64uI64ukLicNCiAgICAgICAgfQ0KICAgICAgICAk
bm9kZUlkcyA9IEB7fQ0KICAgICAgICBmb3JlYWNoICgkbm9kZSBpbiBAKCRzdHJ1Y3R1cmUubm9k
ZXMpKSB7DQogICAgICAgICAgICBmb3JlYWNoICgkcmVxdWlyZWROYW1lIGluIEAoJ2lkJywncGFy
ZW50SWQnLCdsZXZlbCcsJ25hbWVLbycsJ25hbWVFbicsJ3RhZycsJ29yZGVyJywncmVsYXRpdmVQ
YXRoJywnY29kZScsJ2ltbXV0YWJsZScsJ29yaWdpbicpKSB7DQogICAgICAgICAgICAgICAgaWYg
KCRudWxsIC1lcSAkbm9kZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRyZXF1aXJlZE5hbWVdKSB7IHRo
cm93ICLsoIHsmqkg64W465Oc7JeQIO2VhOuTnOqwgCDsl4bsirXri4jri6Q6ICRyZXF1aXJlZE5h
bWUiIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRub2RlR3VpZD1bZ3VpZF06OkVtcHR5
DQogICAgICAgICAgICBpZigtbm90W2d1aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRub2RlLmlkLFty
ZWZdJG5vZGVHdWlkKSl7dGhyb3cgJ+yggeyaqSDrhbjrk5wgaWTqsIAgVVVJROqwgCDslYTri5nr
i4jri6QuJ30NCiAgICAgICAgICAgICRub2RlS2V5PShbc3RyaW5nXSRub2RlR3VpZCkuVG9Mb3dl
ckludmFyaWFudCgpO2lmKCRub2RlSWRzLkNvbnRhaW5zS2V5KCRub2RlS2V5KSl7dGhyb3cgJ+yg
geyaqSDrhbjrk5wgaWTqsIAg7KSR67O165Cp64uI64ukLid9OyRub2RlSWRzWyRub2RlS2V5XT0k
bm9kZQ0KICAgICAgICAgICAgaWYoW3N0cmluZ10kbm9kZS5sZXZlbC1ub3RpbkAoJ1InLCdEJywn
UCcsJ1MnLCdUJyktb3Jbc3RyaW5nXSRub2RlLmNvZGUtbm90bWF0Y2ggJ15bUkRQU1RdWzAtOV17
Mn0oPzpcLlswLTldezJ9KT8kJyl7dGhyb3cgJ+yggeyaqSDrhbjrk5wgbGV2ZWwvY29kZeqwgCDs
mKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukLid9DQogICAgICAgICAgICBpZihbc3RyaW5nXTo6SXNO
dWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJG5vZGUubmFtZUtvKS1vciBbaW50XSRub2RlLm9yZGVy
LWx0IDAtb3JbaW50XSRub2RlLm9yZGVyLWd0IDk4KXt0aHJvdyAn7KCB7JqpIOuFuOuTnCDsnbTr
poQg65iQ64qUIOyInOyEnOqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukLid9DQogICAgICAg
ICAgICBpZigkbm9kZS5pbW11dGFibGUtaXNub3RbYm9vbF0tb3Jbc3RyaW5nXSRub2RlLm9yaWdp
bi1ub3RpbkAoJ2V4aXN0aW5nJywnYXBwcm92ZWQtbmV3Jykpe3Rocm93ICfsoIHsmqkg64W465Oc
IGltbXV0YWJsZS9vcmlnaW7snbQg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nfQ0KICAgICAg
ICAgICAgJHJlbGF0aXZlPVtzdHJpbmddJG5vZGUucmVsYXRpdmVQYXRoDQogICAgICAgICAgICBp
Zihbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRyZWxhdGl2ZSktb3JbSU8uUGF0aF06Oklz
UGF0aFJvb3RlZCgkcmVsYXRpdmUpLW9yQCgkcmVsYXRpdmUtc3BsaXQnWy9cXF0nfFdoZXJlLU9i
amVjdHskXy1lcScuLid9KS5Db3VudC1ndCAwKXt0aHJvdyAn7KCB7JqpIOuFuOuTnCDsg4HrjIDq
sr3roZzqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nfQ0KICAgICAgICB9DQogICAgfQ0K
ICAgICRpY29uID0gR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkVmFsdWUgLU5hbWUgJ2ljb25E
ZWNpc2lvbicNCiAgICAkaWNvblN0YXR1cyA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1P
YmplY3QgJGljb24gLU5hbWUgJ3N0YXR1cycpDQogICAgaWYgKCRpY29uU3RhdHVzIC1ub3RpbiBA
KCdhcHByb3ZlZCcsICd3aXphcmQtcGF1c2VkJykpIHsgdGhyb3cgJ2ljb25EZWNpc2lvbi5zdGF0
dXPqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICBpZiAoJGljb25TdGF0dXMg
LWVxICdhcHByb3ZlZCcpIHsNCiAgICAgICAgZm9yZWFjaCAoJHJlcXVpcmVkTmFtZSBpbiBAKCdt
b2RlJywgJ3JlbGF0aXZlUGF0aCcsICdzb3VyY2VIYXNoJywgJ3RhcmdldCcsICdjYXBhYmlsaXR5
U3RhdHVzJywgJ2RlY2lzaW9uSGFzaCcpKSB7DQogICAgICAgICAgICBpZiAoJG51bGwgLWVxICRp
Y29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJHJlcXVpcmVkTmFtZV0pIHsgdGhyb3cgIuyKueyduOuQ
nCBpY29uRGVjaXNpb27sl5Ag7ZWE65Oc6rCAIOyXhuyKteuLiOuLpDogJHJlcXVpcmVkTmFtZSIg
fQ0KICAgICAgICB9DQogICAgICAgIGlmIChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2Jq
ZWN0ICRpY29uIC1OYW1lICdtb2RlJykgLW5vdGluIEAoJ2RlZmF1bHQnLCAnaW1wb3J0ZWQnLCAn
Z2VuZXJhdGVkJywgJ2Fkb3B0LWV4aXN0aW5nJykpIHsgdGhyb3cgJ+yKueyduOuQnCBpY29uRGVj
aXNpb24ubW9kZeqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICAgICBpZiAo
W3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkaWNvbiAtTmFtZSAndGFyZ2V0Jykg
LWNuZSAncm9vdCcpIHsgdGhyb3cgJ2ljb25EZWNpc2lvbi50YXJnZXTsnYAgcm9vdOyXrOyVvCDt
lanri4jri6QuJyB9DQogICAgICAgIGlmIChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2Jq
ZWN0ICRpY29uIC1OYW1lICdjYXBhYmlsaXR5U3RhdHVzJykgLW5vdGluIEAoJ3JlYWR5JywgJ3Bl
bmRpbmcnKSkgeyB0aHJvdyAnaWNvbkRlY2lzaW9uLmNhcGFiaWxpdHlTdGF0dXPqsIAg7Jis67CU
66W07KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAgICAgJGljb25Nb2RlPVtzdHJpbmddKEdldC1Q
cm9wZXJ0eVZhbHVlIC1PYmplY3QgJGljb24gLU5hbWUgJ21vZGUnKTskaWNvbkhhc2g9W3N0cmlu
Z10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkaWNvbiAtTmFtZSAnc291cmNlSGFzaCcpDQog
ICAgICAgIGlmKCRpY29uTW9kZS1lcSdkZWZhdWx0Jy1hbmQtbm90W3N0cmluZ106OklzTnVsbE9y
V2hpdGVTcGFjZSgkaWNvbkhhc2gpKXt0aHJvdyAn6riw67O4IOyVhOydtOy9mOydgCBzb3VyY2VI
YXNo66W8IOqwgOyniCDsiJgg7JeG7Iq164uI64ukLid9DQogICAgICAgIGlmKCRpY29uTW9kZS1p
bkAoJ2ltcG9ydGVkJywnZ2VuZXJhdGVkJywnYWRvcHQtZXhpc3RpbmcnKS1hbmQkaWNvbkhhc2gt
bm90bWF0Y2gnXlswLTlhLWZdezY0fSQnKXt0aHJvdyAn7YyM7J28IOyVhOydtOy9mOydgCBzb3Vy
Y2VIYXNo6rCAIO2VhOyalO2VqeuLiOuLpC4nfQ0KICAgIH0NCiAgICBmb3JlYWNoICgkZGVjaXNp
b24gaW4gQCgkc3RydWN0dXJlLCAkaWNvbikpIHsNCiAgICAgICAgJGhhc2ggPSBbc3RyaW5nXShH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRkZWNpc2lvbiAtTmFtZSAnZGVjaXNpb25IYXNoJykN
CiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkaGFzaCkgLWFu
ZCAkaGFzaCAtbm90bWF0Y2ggJ15bMC05YS1mXXs2NH0kJykgeyB0aHJvdyAn6rKw7KCVIOyngOus
uOydgCDshozrrLjsnpAgU0hBLTI1NuydtOyWtOyVvCDtlanri4jri6QuJyB9DQogICAgfQ0KICAg
IGlmICgoR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkVmFsdWUgLU5hbWUgJ21hY2hpbmVSZWFk
eScpIC1pc25vdCBbYm9vbF0pIHsgdGhyb3cgJ21hY2hpbmVSZWFkeeuKlCB0cnVlL2ZhbHNl7Jes
7JW8IO2VqeuLiOuLpC4nIH0NCiAgICBpZiAoJFZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Bl
bmRpbmdDYXBhYmlsaXRpZXMnXS5WYWx1ZSAtaXNub3QgW1N5c3RlbS5BcnJheV0gLW9yDQogICAg
ICAgICRWYWx1ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydrbm93bkhvc3RzJ10uVmFsdWUgLWlzbm90
IFtTeXN0ZW0uQXJyYXldKSB7DQogICAgICAgIHRocm93ICdwZW5kaW5nQ2FwYWJpbGl0aWVz7JmA
IGtub3duSG9zdHPripQg67Cw7Je07J207Ja07JW8IO2VqeuLiOuLpC4nDQogICAgfQ0KICAgICRw
ZW5kaW5nVHJhbnNhY3Rpb24gPSBHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRWYWx1ZSAtTmFt
ZSAncGVuZGluZ1RyYW5zYWN0aW9uJw0KICAgIGlmICgkbnVsbCAtbmUgJHBlbmRpbmdUcmFuc2Fj
dGlvbiAtYW5kIC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRwZW5k
aW5nVHJhbnNhY3Rpb24pKSB7DQogICAgICAgICRwZW5kaW5nR3VpZCA9IFtndWlkXTo6RW1wdHkN
CiAgICAgICAgaWYgKC1ub3QgW2d1aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRwZW5kaW5nVHJhbnNh
Y3Rpb24sIFtyZWZdJHBlbmRpbmdHdWlkKSkgeyB0aHJvdyAncGVuZGluZ1RyYW5zYWN0aW9u7J20
IFVVSUTqsIAg7JWE64uZ64uI64ukLicgfQ0KICAgIH0NCiAgICAkYm9vdHN0cmFwU3RhdGUgPSBH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRWYWx1ZSAtTmFtZSAnYm9vdHN0cmFwJw0KICAgICRp
c1BlbmRpbmcgPSBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRWYWx1ZSAtTmFt
ZSAnbGlmZWN5Y2xlJykgLWVxICdwZW5kaW5nLWZpbmFsaXplJyAtb3INCiAgICAgICAgW3N0cmlu
Z10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkYm9vdHN0cmFwU3RhdGUgLU5hbWUgJ3N0YWdl
U3RhdHVzJykgLWVxICdwZW5kaW5nLWZpbmFsaXplJw0KICAgIGlmICgkaXNQZW5kaW5nIC1hbmQg
KEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFZhbHVlIC1OYW1lICdtYWNoaW5lUmVhZHknKSAt
bmUgJGZhbHNlKSB7DQogICAgICAgIHRocm93ICdwZW5kaW5nLWZpbmFsaXplIOyDge2DnOyXkOyE
nOuKlCBtYWNoaW5lUmVhZHnqsIAg67CY65Oc7IucIGZhbHNl7Jes7JW8IO2VqeuLiOuLpC4nDQog
ICAgfQ0KICAgIGlmIChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRWYWx1ZSAt
TmFtZSAnbGlmZWN5Y2xlJykgLWluIEAoJ3JlYWR5JywnYWN0aXZlJykgLWFuZCAoR2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkVmFsdWUgLU5hbWUgJ21hY2hpbmVSZWFkeScpIC1uZSAkdHJ1ZSkg
eyB0aHJvdyAncmVhZHkvYWN0aXZlIOyDge2DnOyXkOyEnOuKlCBtYWNoaW5lUmVhZHnqsIAgdHJ1
ZeyXrOyVvCDtlanri4jri6QuJyB9DQogICAgaWYgKCRudWxsIC1uZSAkYm9vdHN0cmFwU3RhdGUp
IHsNCiAgICAgICAgZm9yZWFjaCAoJHJlcXVpcmVkTmFtZSBpbiBAKCdzY2hlbWFWZXJzaW9uJywg
J3N0cnVjdHVyZURlY2lzaW9uSGFzaCcsICdpY29uRGVjaXNpb25IYXNoJywgJ21hcFJlbGF0aXZl
UGF0aCcsICdnZW5lcmF0aW9uSWQnLCAnc3RhZ2VTdGF0dXMnLCAnc3RhZ2VkQXQnKSkgew0KICAg
ICAgICAgICAgaWYgKCRudWxsIC1lcSAkYm9vdHN0cmFwU3RhdGUuUFNPYmplY3QuUHJvcGVydGll
c1skcmVxdWlyZWROYW1lXSkgeyB0aHJvdyAiYm9vdHN0cmFwIOyDge2DnOyXkCDtlYTrk5zqsIAg
7JeG7Iq164uI64ukOiAkcmVxdWlyZWROYW1lIiB9DQogICAgICAgIH0NCiAgICAgICAgaWYgKFtp
bnRdKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGJvb3RzdHJhcFN0YXRlIC1OYW1lICdzY2hl
bWFWZXJzaW9uJykgLW5lIDEgLW9yIFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3Qg
JGJvb3RzdHJhcFN0YXRlIC1OYW1lICdzdGFnZVN0YXR1cycpIC1ub3RpbiBAKCdwZW5kaW5nLWZp
bmFsaXplJywgJ3JlYWR5JykpIHsNCiAgICAgICAgICAgIHRocm93ICdib290c3RyYXAg7IOB7YOc
64qUIHYxIHBlbmRpbmctZmluYWxpemUg65iQ64qUIHJlYWR57Jes7JW8IO2VqeuLiOuLpC4nDQog
ICAgICAgIH0NCiAgICAgICAgaWYoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAk
Ym9vdHN0cmFwU3RhdGUgLU5hbWUgJ3N0YWdlU3RhdHVzJyktZXEncmVhZHknLWFuZFtzdHJpbmdd
KEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFZhbHVlIC1OYW1lICdsaWZlY3ljbGUnKS1ub3Rp
bkAoJ3JlYWR5JywnYWN0aXZlJykpe3Rocm93ICdib290c3RyYXAgcmVhZHnripQgbGlmZWN5Y2xl
IHJlYWR5L2FjdGl2ZeyZgCDtlajqu5gg6riw66Gd7ZW07JW8IO2VqeuLiOuLpC4nfQ0KICAgIH0N
Cn0NCg0KZnVuY3Rpb24gV3JpdGUtU3RhdGVBdG9taWMgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIo
TWFuZGF0b3J5ID0gJHRydWUpXSRWYWx1ZSkNCiAgICBBc3NlcnQtU291bFN0YXRlVjcgLVZhbHVl
ICRWYWx1ZQ0KICAgIFt2b2lkXShXcml0ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAkc3RhdGVQYXRo
IC1WYWx1ZSAkVmFsdWUpDQp9DQoNCmZ1bmN0aW9uIE5ldy1TdGF0ZU1pZ3JhdGlvbkJhY2t1cCB7
DQogICAgcGFyYW0oW2ludF0kRnJvbVZlcnNpb24pDQogICAgaWYgKCRGcm9tVmVyc2lvbiAtbHQg
MSAtb3IgJEZyb21WZXJzaW9uIC1ndCA2KSB7IHRocm93ICd2MX52NiDsg4Htg5zrp4wgdjfroZwg
7J207KCE7ZWgIOyImCDsnojsirXri4jri6QuJyB9DQogICAgJHN0YXRlSXRlbSA9IEdldC1JdGVt
IC1MaXRlcmFsUGF0aCAkc3RhdGVQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlm
ICgoJHN0YXRlSXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFy
c2VQb2ludCkgLW5lIDApIHsgdGhyb3cgJ+q4sOyhtCBzb3VsLXN0YXRlLmpzb27snbQg66eB7YGs
7Jes7IScIOydtOyghO2VmOyngCDslYrsirXri4jri6QuJyB9DQogICAgJHNvdXJjZUhhc2ggPSBH
ZXQtRmlsZVNoYTI1NiAtUGF0aCAkc3RhdGVQYXRoDQogICAgJG1pZ3JhdGlvblJvb3QgPSBJbml0
aWFsaXplLU1hbmFnZWREaXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkbGF5b3V0LlNldHVwICdt
aWdyYXRpb25zJykgLUlkZW50aXR5ICfsg4Htg5wg7Iqk7YKk66eIIOydtOyghCDquLDroZ0nDQog
ICAgJG1pZ3JhdGlvbkRpcmVjdG9yeSA9IEpvaW4tUGF0aCAkbWlncmF0aW9uUm9vdCAoInYkRnJv
bVZlcnNpb24tdG8tdjctIiArICRzb3VyY2VIYXNoLlN1YnN0cmluZygwLCAxNikpDQogICAgW3Zv
aWRdKEluaXRpYWxpemUtTWFuYWdlZERpcmVjdG9yeSAtUGF0aCAkbWlncmF0aW9uRGlyZWN0b3J5
IC1JZGVudGl0eSAidiRGcm9tVmVyc2lvbiDsg4Htg5zsnZggdjcg7J207KCEIOymneu5mSIpDQog
ICAgQXNzZXJ0LU5vUmVwYXJzZVBhdGggLVBhdGggJG1pZ3JhdGlvbkRpcmVjdG9yeSAtQm91bmRh
cnkgJGxheW91dC5Sb290DQogICAgJGJhY2t1cFBhdGggPSBKb2luLVBhdGggJG1pZ3JhdGlvbkRp
cmVjdG9yeSAnc291bC1zdGF0ZS5iZWZvcmUuanNvbicNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkYmFja3VwUGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICBpZiAoKEdldC1G
aWxlU2hhMjU2IC1QYXRoICRiYWNrdXBQYXRoKSAtY25lICRzb3VyY2VIYXNoKSB7IHRocm93ICfq
uLDsobQg7J207KCEIOuwseyXheydmCDsp4DrrLjsnbQg7JuQ67O46rO8IOuLrOudvCDspJHri6jt
lanri4jri6QuJyB9DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICAkdGVtcG9yYXJ5ID0gSm9p
bi1QYXRoICRtaWdyYXRpb25EaXJlY3RvcnkgKCcuYmVmb3JlLScgKyBbZ3VpZF06Ok5ld0d1aWQo
KS5Ub1N0cmluZygnTicpICsgJy50bXAnKQ0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgW0lP
LkZpbGVdOjpDb3B5KCRzdGF0ZVBhdGgsICR0ZW1wb3JhcnksICRmYWxzZSkNCiAgICAgICAgICAg
IGlmICgoR2V0LUZpbGVTaGEyNTYgLVBhdGggJHRlbXBvcmFyeSkgLWNuZSAkc291cmNlSGFzaCkg
eyB0aHJvdyAn7J207KCEIOyghCDrsLHsl4Ug7KeA66y47J20IOybkOuzuOqzvCDri6TrpoXri4jr
i6QuJyB9DQogICAgICAgICAgICBbSU8uRmlsZV06Ok1vdmUoJHRlbXBvcmFyeSwgJGJhY2t1cFBh
dGgpDQogICAgICAgIH0NCiAgICAgICAgZmluYWxseSB7IGlmIChUZXN0LVBhdGggLUxpdGVyYWxQ
YXRoICR0ZW1wb3JhcnkgLVBhdGhUeXBlIExlYWYpIHsgW0lPLkZpbGVdOjpEZWxldGUoJHRlbXBv
cmFyeSkgfSB9DQogICAgfQ0KICAgICRyZWNlaXB0UGF0aCA9IEpvaW4tUGF0aCAkbWlncmF0aW9u
RGlyZWN0b3J5ICdtaWdyYXRpb24tcmVjZWlwdC5qc29uJw0KICAgICRyZWNlaXB0ID0gW3BzY3Vz
dG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgIHNjaGVtYVZlcnNpb24gPSAxOyBzdGF0dXMg
PSAnYmFja3VwLXZlcmlmaWVkJzsgZnJvbVNjaGVtYVZlcnNpb24gPSAkRnJvbVZlcnNpb247IHRv
U2NoZW1hVmVyc2lvbiA9IDcNCiAgICAgICAgc291bElkID0gJG9yaWdpbmFsU291bElkOyBzb3Vy
Y2VSZWxhdGl2ZVBhdGggPSAnc291bC1zdGF0ZS5qc29uJw0KICAgICAgICBiYWNrdXBSZWxhdGl2
ZVBhdGggPSAkYmFja3VwUGF0aC5TdWJzdHJpbmcoJGxheW91dC5Sb290Lkxlbmd0aCkuVHJpbVN0
YXJ0KCdcJykuUmVwbGFjZSgnXCcsICcvJykNCiAgICAgICAgc291cmNlU2hhMjU2ID0gJHNvdXJj
ZUhhc2g7IHRhcmdldFNoYTI1NiA9ICRudWxsOyBwcmVwYXJlZEF0VXRjID0gW0RhdGVUaW1lXTo6
VXRjTm93LlRvU3RyaW5nKCdvJyk7IGNvbXBsZXRlZEF0VXRjID0gJG51bGwNCiAgICB9DQogICAg
aWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHJlY2VpcHRQYXRoIC1QYXRoVHlwZSBMZWFmKSB7
DQogICAgICAgICRwcmlvciA9IFJlYWQtU291bEpzb24gLVBhdGggJHJlY2VpcHRQYXRoDQogICAg
ICAgIGlmIChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRwcmlvciAtTmFtZSAn
c291cmNlU2hhMjU2JykgLWNuZSAkc291cmNlSGFzaCAtb3IgW2ludF0oR2V0LVByb3BlcnR5VmFs
dWUgLU9iamVjdCAkcHJpb3IgLU5hbWUgJ2Zyb21TY2hlbWFWZXJzaW9uJykgLW5lICRGcm9tVmVy
c2lvbikgew0KICAgICAgICAgICAgdGhyb3cgJ+q4sOyhtCDsnbTsoIQg7JiB7IiY7Kad7J20IO2Y
hOyerCDsm5Drs7jqs7wg66ee7KeAIOyViuyVhCDspJHri6jtlanri4jri6QuJw0KICAgICAgICB9
DQogICAgfQ0KICAgIGVsc2UgeyBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggJHJl
Y2VpcHRQYXRoIC1WYWx1ZSAkcmVjZWlwdCkgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3Rd
QHsgUmVjZWlwdFBhdGggPSAkcmVjZWlwdFBhdGg7IFJlY2VpcHQgPSAkcmVjZWlwdDsgU291cmNl
SGFzaCA9ICRzb3VyY2VIYXNoIH0NCn0NCg0KZnVuY3Rpb24gQ29tcGxldGUtU3RhdGVNaWdyYXRp
b25SZWNlaXB0IHsNCiAgICBwYXJhbSgkTWlncmF0aW9uKQ0KICAgICRyZWNlaXB0ID0gJE1pZ3Jh
dGlvbi5SZWNlaXB0DQogICAgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkcmVjZWlwdCAtTmFt
ZSAnc3RhdHVzJyAtVmFsdWUgJ2NvbXBsZXRlZCcNCiAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2Jq
ZWN0ICRyZWNlaXB0IC1OYW1lICd0YXJnZXRTaGEyNTYnIC1WYWx1ZSAoR2V0LUZpbGVTaGEyNTYg
LVBhdGggJHN0YXRlUGF0aCkNCiAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRyZWNlaXB0
IC1OYW1lICdjb21wbGV0ZWRBdFV0YycgLVZhbHVlIChbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJp
bmcoJ28nKSkNCiAgICBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggJE1pZ3JhdGlv
bi5SZWNlaXB0UGF0aCAtVmFsdWUgJHJlY2VpcHQpDQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1PclJl
Y292ZXItU3RhdGVNaWdyYXRpb25SZWNlaXB0IHsNCiAgICBwYXJhbSgkU3RhdGUpDQogICAgJHJl
bGF0aXZlID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkU3RhdGUgLU5hbWUg
J21pZ3JhdGlvblJlY2VpcHRSZWxhdGl2ZVBhdGgnKQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRyZWxhdGl2ZSkpIHsgcmV0dXJuIH0NCiAgICAkcmVjZWlwdFBhdGggPSBH
ZXQtRnVsbFBhdGggKEpvaW4tUGF0aCAkbGF5b3V0LlJvb3QgJHJlbGF0aXZlLlJlcGxhY2UoJy8n
LCAnXCcpKQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNpZGUgLVBhdGggJHJlY2VpcHRQYXRo
IC1QYXJlbnQgJGxheW91dC5Sb290KSAtb3IgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
cmVjZWlwdFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICfsg4Htg5zqsIAg6rCA66as7YKk
64qUIOydtOyghCDsmIHsiJjspp3snbQg7JeG6rGw64KYIOyYge2YvCDrsJbsnYQg6rCA66as7YK1
64uI64ukLicgfQ0KICAgIEFzc2VydC1Ob1JlcGFyc2VQYXRoIC1QYXRoICRyZWNlaXB0UGF0aCAt
Qm91bmRhcnkgJGxheW91dC5Sb290DQogICAgJHJlY2VpcHQgPSBSZWFkLVNvdWxKc29uIC1QYXRo
ICRyZWNlaXB0UGF0aA0KICAgICRiYWNrdXBSZWxhdGl2ZSA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0
eVZhbHVlIC1PYmplY3QgJHJlY2VpcHQgLU5hbWUgJ2JhY2t1cFJlbGF0aXZlUGF0aCcpDQogICAg
JGJhY2t1cFBhdGggPSBHZXQtRnVsbFBhdGggKEpvaW4tUGF0aCAkbGF5b3V0LlJvb3QgJGJhY2t1
cFJlbGF0aXZlLlJlcGxhY2UoJy8nLCAnXCcpKQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNp
ZGUgLVBhdGggJGJhY2t1cFBhdGggLVBhcmVudCAkbGF5b3V0LlJvb3QpIC1vciAtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRiYWNrdXBQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAn
7J207KCEIOyYgeyImOymneydmCDsm5Drs7gg67Cx7JeF7J20IOyXhuyKteuLiOuLpC4nIH0NCiAg
ICBBc3NlcnQtTm9SZXBhcnNlUGF0aCAtUGF0aCAkYmFja3VwUGF0aCAtQm91bmRhcnkgJGxheW91
dC5Sb290DQogICAgaWYgKChHZXQtRmlsZVNoYTI1NiAtUGF0aCAkYmFja3VwUGF0aCkgLWNuZSBb
c3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRyZWNlaXB0IC1OYW1lICdzb3VyY2VT
aGEyNTYnKSkgeyB0aHJvdyAn7J207KCEIOyYgeyImOymneydmCDsm5Drs7gg67Cx7JeFIOyngOus
uOydtCDri6TrpoXri4jri6QuJyB9DQogICAgJHN0YXR1cyA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0
eVZhbHVlIC1PYmplY3QgJHJlY2VpcHQgLU5hbWUgJ3N0YXR1cycpDQogICAgaWYgKCRzdGF0dXMg
LWVxICdiYWNrdXAtdmVyaWZpZWQnKSB7DQogICAgICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmpl
Y3QgJHJlY2VpcHQgLU5hbWUgJ3N0YXR1cycgLVZhbHVlICdjb21wbGV0ZWQnDQogICAgICAgIFNl
dC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHJlY2VpcHQgLU5hbWUgJ3RhcmdldFNoYTI1NicgLVZh
bHVlIChHZXQtRmlsZVNoYTI1NiAtUGF0aCAkc3RhdGVQYXRoKQ0KICAgICAgICBTZXQtUHJvcGVy
dHlWYWx1ZSAtT2JqZWN0ICRyZWNlaXB0IC1OYW1lICdjb21wbGV0ZWRBdFV0YycgLVZhbHVlIChb
RGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKSkNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNv
dWxKc29uQXRvbWljIC1QYXRoICRyZWNlaXB0UGF0aCAtVmFsdWUgJHJlY2VpcHQpDQogICAgfQ0K
ICAgIGVsc2VpZiAoJHN0YXR1cyAtbmUgJ2NvbXBsZXRlZCcgLW9yIFtzdHJpbmddKEdldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJHJlY2VpcHQgLU5hbWUgJ3RhcmdldFNoYTI1NicpIC1ub3RtYXRj
aCAnXlswLTlhLWZdezY0fSQnKSB7IHRocm93ICfsnbTsoIQg7JiB7IiY7KadIOyDge2DnOqwgCDs
mYTqsrDrkJjsp4Ag7JWK7JWY7Iq164uI64ukLicgfQ0KfQ0KDQokbm93ID0gW0RhdGVUaW1lXTo6
VXRjTm93LlRvU3RyaW5nKCdvJykNCiRtaWdyYXRpb24gPSAkbnVsbA0KaWYgKFRlc3QtUGF0aCAt
TGl0ZXJhbFBhdGggJHN0YXRlUGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAgICRzdGF0ZSA9IFJl
YWQtU291bEpzb24gLVBhdGggJHN0YXRlUGF0aA0KICAgICRleGlzdGluZ1ZlcnNpb25SYXcgPSBH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnc2NoZW1hVmVyc2lvbicNCiAg
ICAkZXhpc3RpbmdWZXJzaW9uID0gMA0KICAgIGlmICgkbnVsbCAtZXEgJGV4aXN0aW5nVmVyc2lv
blJhdyAtb3IgLW5vdCBbaW50XTo6VHJ5UGFyc2UoW3N0cmluZ10kZXhpc3RpbmdWZXJzaW9uUmF3
LCBbcmVmXSRleGlzdGluZ1ZlcnNpb24pKSB7DQogICAgICAgIHRocm93ICfquLDsobQgc291bC1z
dGF0ZS5qc29u7J2YIHNjaGVtYVZlcnNpb27snbQg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4n
DQogICAgfQ0KICAgIGlmICgkZXhpc3RpbmdWZXJzaW9uIC1ndCAkc2NyaXB0OlNjaGVtYVZlcnNp
b24pIHsNCiAgICAgICAgdGhyb3cgIuydtCDsmIHtmLzsnYAg642UIOy1nOyLoCDsiqTtgqTrp4go
JGV4aXN0aW5nVmVyc2lvbinrpbwg7IKs7Jqp7ZWp64uI64ukLiB2N+ydtCDstpTsuKHtlbTshJwg
64Ku7LaU7KeAIOyViuyKteuLiOuLpC4iDQogICAgfQ0KICAgICRzb3VsR3VpZCA9IFtndWlkXTo6
RW1wdHkNCiAgICBpZiAoLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddKEdldC1Qcm9wZXJ0
eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICdzb3VsSWQnKSwgW3JlZl0kc291bEd1aWQpKSB7
DQogICAgICAgIHRocm93ICfquLDsobQgc291bC1zdGF0ZS5qc29u7J2YIHNvdWxJZOqwgCDsmKzr
sJTrpbggVVVJROqwgCDslYTri5nri4jri6QuJw0KICAgIH0NCiAgICAkb3JpZ2luYWxTb3VsSWQg
PSBbc3RyaW5nXSRzb3VsR3VpZA0KICAgIGlmICgkZXhpc3RpbmdWZXJzaW9uIC1lcSAkc2NyaXB0
OlNjaGVtYVZlcnNpb24pIHsgQXNzZXJ0LU9yUmVjb3Zlci1TdGF0ZU1pZ3JhdGlvblJlY2VpcHQg
LVN0YXRlICRzdGF0ZSB9DQogICAgaWYgKCRleGlzdGluZ1ZlcnNpb24gLWx0ICRzY3JpcHQ6U2No
ZW1hVmVyc2lvbikgeyAkbWlncmF0aW9uID0gTmV3LVN0YXRlTWlncmF0aW9uQmFja3VwIC1Gcm9t
VmVyc2lvbiAkZXhpc3RpbmdWZXJzaW9uIH0NCiAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0
ICRzdGF0ZSAtTmFtZSAnc2NoZW1hVmVyc2lvbicgLVZhbHVlICRzY3JpcHQ6U2NoZW1hVmVyc2lv
bg0KICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICdkaXNwbGF5TmFt
ZScgLVZhbHVlICRkaXNwbGF5TmFtZQ0KICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0
YXRlIC1OYW1lICdyb290JyAtVmFsdWUgJy4nDQogICAgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVj
dCAkc3RhdGUgLU5hbWUgJ3VwZGF0ZWRBdCcgLVZhbHVlICRub3cNCiAgICBpZiAoJG51bGwgLWVx
ICRzdGF0ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydjcmVhdGVkQXQnXSkgeyBTZXQtUHJvcGVydHlW
YWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnY3JlYXRlZEF0JyAtVmFsdWUgJG5vdyB9DQogICAg
aWYgKCRudWxsIC1lcSAkc3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1snc291cmNlR3VpZGUnXSkg
ew0KICAgICAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnc291cmNl
R3VpZGUnIC1WYWx1ZSAoW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IGVkaXRpb24gPSAkc291
cmNlRWRpdGlvbkxhYmVsOyB2ZXJzaW9uID0gJzcnOyBkYXRlID0gJzIwMjYtMDgtMjQnIH0pDQog
ICAgfQ0KICAgIGlmICgkbnVsbCAtZXEgJHN0YXRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0cnVj
dHVyZURlY2lzaW9uJ10gLW9yIFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0
YXRlLnN0cnVjdHVyZURlY2lzaW9uIC1OYW1lICdzdGF0dXMnKSAtbm90aW4gQCgnYXBwcm92ZWQn
LCAncGFydGlhbGx5LWRlZmVycmVkJywgJ3dpemFyZC1wYXVzZWQnKSkgeyBTZXQtUHJvcGVydHlW
YWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnc3RydWN0dXJlRGVjaXNpb24nIC1WYWx1ZSAoW3Bz
Y3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IHN0YXR1cyA9ICd3aXphcmQtcGF1c2VkJyB9KSB9DQog
ICAgaWYgKCRudWxsIC1lcSAkc3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1snaWNvbkRlY2lzaW9u
J10gLW9yIFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlLmljb25EZWNp
c2lvbiAtTmFtZSAnc3RhdHVzJykgLW5vdGluIEAoJ2FwcHJvdmVkJywgJ3dpemFyZC1wYXVzZWQn
KSkgeyBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnaWNvbkRlY2lzaW9u
JyAtVmFsdWUgKFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBzdGF0dXMgPSAnd2l6YXJkLXBh
dXNlZCcgfSkgfQ0KICAgIGlmICgkbnVsbCAtZXEgJHN0YXRlLlBTT2JqZWN0LlByb3BlcnRpZXNb
J2xpZmVjeWNsZSddKSB7IFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICds
aWZlY3ljbGUnIC1WYWx1ZSAnd2l6YXJkLXBhdXNlZCcgfQ0KICAgIGlmICgkbnVsbCAtZXEgJHN0
YXRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlbmRpbmdUcmFuc2FjdGlvbiddKSB7IFNldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICdwZW5kaW5nVHJhbnNhY3Rpb24nIC1WYWx1
ZSAkbnVsbCB9DQogICAgaWYgKCRudWxsIC1lcSAkc3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1sn
YmxvY2tlZFJlYXNvbiddKSB7IFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1l
ICdibG9ja2VkUmVhc29uJyAtVmFsdWUgJG51bGwgfQ0KICAgIGlmICgkbnVsbCAtZXEgJHN0YXRl
LlBTT2JqZWN0LlByb3BlcnRpZXNbJ21hY2hpbmVSZWFkeSddIC1vciBbc3RyaW5nXShHZXQtUHJv
cGVydHlWYWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnbGlmZWN5Y2xlJykgLWVxICdwZW5kaW5n
LWZpbmFsaXplJyAtb3IgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAoR2V0LVBy
b3BlcnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ2Jvb3RzdHJhcCcpIC1OYW1lICdzdGFn
ZVN0YXR1cycpIC1lcSAncGVuZGluZy1maW5hbGl6ZScpIHsgU2V0LVByb3BlcnR5VmFsdWUgLU9i
amVjdCAkc3RhdGUgLU5hbWUgJ21hY2hpbmVSZWFkeScgLVZhbHVlICRmYWxzZSB9DQogICAgaWYg
KCRudWxsIC1lcSAkc3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1sncGVuZGluZ0NhcGFiaWxpdGll
cyddKSB7IFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICdwZW5kaW5nQ2Fw
YWJpbGl0aWVzJyAtVmFsdWUgQCgpIH0NCiAgICBpZiAoJG51bGwgLWVxICRzdGF0ZS5QU09iamVj
dC5Qcm9wZXJ0aWVzWydrbm93bkhvc3RzJ10pIHsgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAk
c3RhdGUgLU5hbWUgJ2tub3duSG9zdHMnIC1WYWx1ZSBAKCkgfQ0KDQogICAgIyBPbGRlciB2NyBk
cmFmdHMgY291bGQgc2F5ICJhcHByb3ZlZCIgd2hpbGUgb21pdHRpbmcgdGhlIGFscmVhZHktZXhp
c3RpbmcNCiAgICAjIGZvbGRlciBpbnZlbnRvcnkuIFJlY29uc3RydWN0IG9ubHkgdGhvc2UgcmVh
ZC1vbmx5IGZhY3RzOyBuZXZlciByZW5hbWUgb3INCiAgICAjIHJlbnVtYmVyIGEgZGlyZWN0b3J5
IGFuZCBuZXZlciBndWVzcyBvdmVyIGEgY29uZmxpY3Rpbmcgbm9uLWVtcHR5IGxpc3QuDQogICAg
JGRpc2NvdmVyZWRFeGlzdGluZ05vZGVzID0gQChHZXQtRXhpc3RpbmdTdHJ1Y3R1cmVOb2RlcyAt
Um9vdCAkbGF5b3V0LlJvb3QpDQogICAgJHN0cnVjdHVyZVN0YXRlID0gR2V0LVByb3BlcnR5VmFs
dWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ3N0cnVjdHVyZURlY2lzaW9uJw0KICAgIGlmIChbc3Ry
aW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdHJ1Y3R1cmVTdGF0ZSAtTmFtZSAnc3Rh
dHVzJykgLWluIEAoJ2FwcHJvdmVkJywgJ3BhcnRpYWxseS1kZWZlcnJlZCcpIC1hbmQNCiAgICAg
ICAgQCgoR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RydWN0dXJlU3RhdGUgLU5hbWUgJ25v
ZGVzJyAtRGVmYXVsdCBAKCkpIHwgV2hlcmUtT2JqZWN0IHsgJG51bGwgLW5lICRfIH0pLkNvdW50
IC1lcSAwIC1hbmQgJGRpc2NvdmVyZWRFeGlzdGluZ05vZGVzLkNvdW50IC1ndCAwKSB7DQogICAg
ICAgICRsZWdhY3lUcmFuc2FjdGlvbklkID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9i
amVjdCAkc3RydWN0dXJlU3RhdGUgLU5hbWUgJ3RyYW5zYWN0aW9uSWQnKQ0KICAgICAgICAkbGVn
YWN5VHJhbnNhY3Rpb25HdWlkID0gW2d1aWRdOjpFbXB0eQ0KICAgICAgICBpZiAoLW5vdCBbZ3Vp
ZF06OlRyeVBhcnNlKCRsZWdhY3lUcmFuc2FjdGlvbklkLCBbcmVmXSRsZWdhY3lUcmFuc2FjdGlv
bkd1aWQpKSB7ICRsZWdhY3lUcmFuc2FjdGlvbklkID0gTmV3LURldGVybWluaXN0aWNOb2RlSWQg
LVJlbGF0aXZlUGF0aCAoJ2xlZ2FjeS1zdHJ1Y3R1cmUtYXBwcm92YWwvJyArICRvcmlnaW5hbFNv
dWxJZCkgfQ0KICAgICAgICAkZGVmZXJyZWRMZXZlbHMgPSBAKChHZXQtUHJvcGVydHlWYWx1ZSAt
T2JqZWN0ICRzdHJ1Y3R1cmVTdGF0ZSAtTmFtZSAnZGVmZXJyZWRMZXZlbHMnIC1EZWZhdWx0IEAo
KSkgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfIC1pbiBAKCdSJywnRCcsJ1AnLCdTJywnVCcp
IH0pDQogICAgICAgICRzdHJ1Y3R1cmVDYW5vbmljYWwgPSBbcHNjdXN0b21vYmplY3RdW29yZGVy
ZWRdQHsgdHJhbnNhY3Rpb25JZCA9ICRsZWdhY3lUcmFuc2FjdGlvbklkOyBub2RlcyA9IEAoJGRp
c2NvdmVyZWRFeGlzdGluZ05vZGVzKTsgZGVmZXJyZWRMZXZlbHMgPSAkZGVmZXJyZWRMZXZlbHMg
fQ0KICAgICAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdHJ1Y3R1cmVTdGF0ZSAtTmFt
ZSAnYXBwcm92ZWRBdCcgLVZhbHVlIChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0
ICRzdHJ1Y3R1cmVTdGF0ZSAtTmFtZSAnYXBwcm92ZWRBdCcgLURlZmF1bHQgJG5vdykpDQogICAg
ICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0cnVjdHVyZVN0YXRlIC1OYW1lICd0cmFu
c2FjdGlvbklkJyAtVmFsdWUgJGxlZ2FjeVRyYW5zYWN0aW9uSWQNCiAgICAgICAgU2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkc3RydWN0dXJlU3RhdGUgLU5hbWUgJ2FwcHJvdmVkTm9kZUlkcycg
LVZhbHVlIEAoJGRpc2NvdmVyZWRFeGlzdGluZ05vZGVzIHwgRm9yRWFjaC1PYmplY3QgeyBbc3Ry
aW5nXSRfLmlkIH0pDQogICAgICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0cnVjdHVy
ZVN0YXRlIC1OYW1lICdkZWZlcnJlZExldmVscycgLVZhbHVlICRkZWZlcnJlZExldmVscw0KICAg
ICAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdHJ1Y3R1cmVTdGF0ZSAtTmFtZSAnbm9k
ZXMnIC1WYWx1ZSBAKCRkaXNjb3ZlcmVkRXhpc3RpbmdOb2RlcykNCiAgICAgICAgU2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkc3RydWN0dXJlU3RhdGUgLU5hbWUgJ2RlY2lzaW9uSGFzaCcgLVZh
bHVlIChHZXQtVGV4dFNoYTI1NiAtVGV4dCAoQ29udmVydFRvLUNhbm9uaWNhbEpzb24gLVZhbHVl
ICRzdHJ1Y3R1cmVDYW5vbmljYWwpKQ0KICAgIH0NCiAgICAkaWNvblN0YXRlID0gR2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ2ljb25EZWNpc2lvbicNCiAgICBpZiAoW3N0
cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkaWNvblN0YXRlIC1OYW1lICdzdGF0dXMn
KSAtZXEgJ3dpemFyZC1wYXVzZWQnKSB7DQogICAgICAgICRkZXRlY3RlZEljb24gPSBHZXQtRXhp
c3RpbmdSb290SWNvbiAtUm9vdCAkbGF5b3V0LlJvb3QNCiAgICAgICAgaWYgKCRudWxsIC1uZSAk
ZGV0ZWN0ZWRJY29uKSB7DQogICAgICAgICAgICAkaWNvbkNhbm9uaWNhbCA9IFtwc2N1c3RvbW9i
amVjdF1bb3JkZXJlZF1AeyBtb2RlPSdhZG9wdC1leGlzdGluZyc7IHNvdXJjZUhhc2g9W3N0cmlu
Z10kZGV0ZWN0ZWRJY29uLnNvdXJjZUhhc2g7IHJlbGF0aXZlUGF0aD1bc3RyaW5nXSRkZXRlY3Rl
ZEljb24ucmVsYXRpdmVQYXRoOyB0YXJnZXQ9J3Jvb3QnIH0NCiAgICAgICAgICAgICRpY29uU3Rh
dGUgPSBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsgc3RhdHVzPSdhcHByb3ZlZCc7IG1vZGU9
J2Fkb3B0LWV4aXN0aW5nJzsgcmVsYXRpdmVQYXRoPVtzdHJpbmddJGRldGVjdGVkSWNvbi5yZWxh
dGl2ZVBhdGg7IHNvdXJjZUhhc2g9W3N0cmluZ10kZGV0ZWN0ZWRJY29uLnNvdXJjZUhhc2g7IHRh
cmdldD0ncm9vdCc7IGNhcGFiaWxpdHlTdGF0dXM9J3JlYWR5JzsgZGVjaXNpb25IYXNoPShHZXQt
VGV4dFNoYTI1NiAtVGV4dCAoQ29udmVydFRvLUNhbm9uaWNhbEpzb24gLVZhbHVlICRpY29uQ2Fu
b25pY2FsKSkgfQ0KICAgICAgICAgICAgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RhdGUg
LU5hbWUgJ2ljb25EZWNpc2lvbicgLVZhbHVlICRpY29uU3RhdGUNCiAgICAgICAgfQ0KICAgIH0N
CiAgICBpZiAoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkaWNvblN0YXRlIC1O
YW1lICdzdGF0dXMnKSAtZXEgJ2FwcHJvdmVkJyAtYW5kIFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJGljb25TdGF0ZSAtTmFtZSAnbW9kZScpIC1lcSAnYWRvcHQtZXhpc3Rpbmcn
KSB7DQogICAgICAgICRyZWxhdGl2ZUljb24gPSBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAt
T2JqZWN0ICRpY29uU3RhdGUgLU5hbWUgJ3JlbGF0aXZlUGF0aCcpDQogICAgICAgICRhZG9wdGVk
ID0gJG51bGwNCiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgk
cmVsYXRpdmVJY29uKSkgew0KICAgICAgICAgICAgJGljb25DYW5kaWRhdGUgPSBHZXQtRnVsbFBh
dGggKEpvaW4tUGF0aCAkbGF5b3V0LlJvb3QgJHJlbGF0aXZlSWNvbi5SZXBsYWNlKCcvJywgJ1wn
KSkNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNpZGUgLVBhdGggJGljb25DYW5k
aWRhdGUgLVBhcmVudCAkbGF5b3V0LlJvb3QpKSB7IHRocm93ICfquLDsobQgaWNvbkRlY2lzaW9u
7J20IOyYge2YvCDrsJbsnYQg6rCA66as7YK164uI64ukLicgfQ0KICAgICAgICAgICAgQXNzZXJ0
LU5vUmVwYXJzZVBhdGggLVBhdGggJGljb25DYW5kaWRhdGUgLUJvdW5kYXJ5ICRsYXlvdXQuUm9v
dA0KICAgICAgICAgICAgJGljb1JlYXNvbiA9ICRudWxsDQogICAgICAgICAgICBpZiAoLW5vdCAo
VGVzdC1JY29GaWxlIC1QYXRoICRpY29uQ2FuZGlkYXRlIC1SZWFzb24gKFtyZWZdJGljb1JlYXNv
bikpKSB7IHRocm93ICLquLDsobQgaWNvbkRlY2lzaW9u7J2YIElDT+qwgCDsmKzrsJTrpbTsp4Ag
7JWK7Iq164uI64ukOiAkaWNvUmVhc29uIiB9DQogICAgICAgICAgICAkYWRvcHRlZCA9IFtwc2N1
c3RvbW9iamVjdF1AeyByZWxhdGl2ZVBhdGggPSAkcmVsYXRpdmVJY29uLlJlcGxhY2UoJ1wnLCAn
LycpOyBzb3VyY2VIYXNoID0gR2V0LUZpbGVTaGEyNTYgLVBhdGggJGljb25DYW5kaWRhdGUgfQ0K
ICAgICAgICB9DQogICAgICAgIGVsc2UgeyAkYWRvcHRlZCA9IEdldC1FeGlzdGluZ1Jvb3RJY29u
IC1Sb290ICRsYXlvdXQuUm9vdCB9DQogICAgICAgIGlmICgkbnVsbCAtZXEgJGFkb3B0ZWQpIHsg
dGhyb3cgJ2Fkb3B0LWV4aXN0aW5nIOyVhOydtOy9mCDqsrDsoJXsnYQg7ZmV7J247ZWgIOyLpOyg
nCBJQ0/qsIAg7JeG7Iq164uI64ukLicgfQ0KICAgICAgICAkaWNvbkNhbm9uaWNhbCA9IFtwc2N1
c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBtb2RlID0gJ2Fkb3B0LWV4aXN0aW5nJzsgc291cmNlSGFz
aCA9IFtzdHJpbmddJGFkb3B0ZWQuc291cmNlSGFzaDsgcmVsYXRpdmVQYXRoID0gW3N0cmluZ10k
YWRvcHRlZC5yZWxhdGl2ZVBhdGg7IHRhcmdldCA9ICdyb290JyB9DQogICAgICAgIFNldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJGljb25TdGF0ZSAtTmFtZSAncmVsYXRpdmVQYXRoJyAtVmFsdWUg
KFtzdHJpbmddJGFkb3B0ZWQucmVsYXRpdmVQYXRoKQ0KICAgICAgICBTZXQtUHJvcGVydHlWYWx1
ZSAtT2JqZWN0ICRpY29uU3RhdGUgLU5hbWUgJ3NvdXJjZUhhc2gnIC1WYWx1ZSAoW3N0cmluZ10k
YWRvcHRlZC5zb3VyY2VIYXNoKQ0KICAgICAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRp
Y29uU3RhdGUgLU5hbWUgJ3RhcmdldCcgLVZhbHVlICdyb290Jw0KICAgICAgICBTZXQtUHJvcGVy
dHlWYWx1ZSAtT2JqZWN0ICRpY29uU3RhdGUgLU5hbWUgJ2NhcGFiaWxpdHlTdGF0dXMnIC1WYWx1
ZSAncmVhZHknDQogICAgICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGljb25TdGF0ZSAt
TmFtZSAnZGVjaXNpb25IYXNoJyAtVmFsdWUgKEdldC1UZXh0U2hhMjU2IC1UZXh0IChDb252ZXJ0
VG8tQ2Fub25pY2FsSnNvbiAtVmFsdWUgJGljb25DYW5vbmljYWwpKQ0KICAgIH0NCiAgICBBc3Nl
cnQtU291bFN0YXRlVjcgLVZhbHVlICRzdGF0ZQ0KICAgIGlmICgkbnVsbCAtbmUgJG1pZ3JhdGlv
bikgew0KICAgICAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnbWln
cmF0aW9uUmVjZWlwdFJlbGF0aXZlUGF0aCcgLVZhbHVlICgkbWlncmF0aW9uLlJlY2VpcHRQYXRo
LlN1YnN0cmluZygkbGF5b3V0LlJvb3QuTGVuZ3RoKS5UcmltU3RhcnQoJ1wnKS5SZXBsYWNlKCdc
JywgJy8nKSkNCiAgICAgICAgV3JpdGUtU3RhdGVBdG9taWMgLVZhbHVlICRzdGF0ZQ0KICAgICAg
ICBDb21wbGV0ZS1TdGF0ZU1pZ3JhdGlvblJlY2VpcHQgLU1pZ3JhdGlvbiAkbWlncmF0aW9uDQog
ICAgfQ0KfQ0KZWxzZSB7DQogICAgJG9yaWdpbmFsU291bElkID0gW2d1aWRdOjpOZXdHdWlkKCku
VG9TdHJpbmcoKQ0KICAgICRkZXRlY3RlZEZyZXNoSWNvbiA9IEdldC1FeGlzdGluZ1Jvb3RJY29u
IC1Sb290ICRsYXlvdXQuUm9vdA0KICAgIGlmICgkbnVsbCAtbmUgJGRldGVjdGVkRnJlc2hJY29u
KSB7DQogICAgICAgICRmcmVzaEljb25DYW5vbmljYWwgPSBbcHNjdXN0b21vYmplY3RdW29yZGVy
ZWRdQHsgbW9kZT0nYWRvcHQtZXhpc3RpbmcnOyBzb3VyY2VIYXNoPVtzdHJpbmddJGRldGVjdGVk
RnJlc2hJY29uLnNvdXJjZUhhc2g7IHJlbGF0aXZlUGF0aD1bc3RyaW5nXSRkZXRlY3RlZEZyZXNo
SWNvbi5yZWxhdGl2ZVBhdGg7IHRhcmdldD0ncm9vdCcgfQ0KICAgICAgICAkZnJlc2hJY29uRGVj
aXNpb24gPSBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsgc3RhdHVzPSdhcHByb3ZlZCc7IG1v
ZGU9J2Fkb3B0LWV4aXN0aW5nJzsgcmVsYXRpdmVQYXRoPVtzdHJpbmddJGRldGVjdGVkRnJlc2hJ
Y29uLnJlbGF0aXZlUGF0aDsgc291cmNlSGFzaD1bc3RyaW5nXSRkZXRlY3RlZEZyZXNoSWNvbi5z
b3VyY2VIYXNoOyB0YXJnZXQ9J3Jvb3QnOyBjYXBhYmlsaXR5U3RhdHVzPSdyZWFkeSc7IGRlY2lz
aW9uSGFzaD0oR2V0LVRleHRTaGEyNTYgLVRleHQgKENvbnZlcnRUby1DYW5vbmljYWxKc29uIC1W
YWx1ZSAkZnJlc2hJY29uQ2Fub25pY2FsKSkgfQ0KICAgIH0NCiAgICBlbHNlIHsgJGZyZXNoSWNv
bkRlY2lzaW9uID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IHN0YXR1cyA9ICd3aXphcmQt
cGF1c2VkJyB9IH0NCiAgICAkc3RhdGUgPSBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsNCiAg
ICAgICAgc2NoZW1hVmVyc2lvbiA9ICRzY3JpcHQ6U2NoZW1hVmVyc2lvbg0KICAgICAgICBzb3Vs
SWQgPSAkb3JpZ2luYWxTb3VsSWQNCiAgICAgICAgZGlzcGxheU5hbWUgPSAkZGlzcGxheU5hbWUN
CiAgICAgICAgcm9vdCA9ICcuJw0KICAgICAgICBsaWZlY3ljbGUgPSAnd2l6YXJkLXBhdXNlZCcN
CiAgICAgICAgY3JlYXRlZEF0ID0gJG5vdw0KICAgICAgICB1cGRhdGVkQXQgPSAkbm93DQogICAg
ICAgIHNvdXJjZUd1aWRlID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IGVkaXRpb24gPSAk
c291cmNlRWRpdGlvbkxhYmVsOyB2ZXJzaW9uID0gJzcnOyBkYXRlID0gJzIwMjYtMDgtMjQnIH0N
CiAgICAgICAgc3RydWN0dXJlRGVjaXNpb24gPSBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsg
c3RhdHVzID0gJ3dpemFyZC1wYXVzZWQnIH0NCiAgICAgICAgaWNvbkRlY2lzaW9uID0gJGZyZXNo
SWNvbkRlY2lzaW9uDQogICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbiA9ICRudWxsDQogICAgICAg
IGJsb2NrZWRSZWFzb24gPSAkbnVsbA0KICAgICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAg
ICAgICAgcGVuZGluZ0NhcGFiaWxpdGllcyA9IEAoKQ0KICAgICAgICBrbm93bkhvc3RzID0gQCgp
DQogICAgfQ0KICAgIFdyaXRlLVN0YXRlQXRvbWljIC1WYWx1ZSAkc3RhdGUNCn0NCg0KZnVuY3Rp
b24gVGVzdC1EZWNpc2lvbkNvbXBsZXRlIHsNCiAgICBwYXJhbSgkU3RhdGUpDQogICAgJHN0cnVj
dHVyZSA9IEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFN0YXRlIC1OYW1lICdzdHJ1Y3R1cmVE
ZWNpc2lvbicNCiAgICAkaWNvbiA9IEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFN0YXRlIC1O
YW1lICdpY29uRGVjaXNpb24nDQogICAgJHN0cnVjdHVyZVN0YXR1cyA9IFtzdHJpbmddKEdldC1Q
cm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0cnVjdHVyZSAtTmFtZSAnc3RhdHVzJykNCiAgICAkaWNv
blN0YXR1cyA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGljb24gLU5hbWUg
J3N0YXR1cycpDQogICAgaWYgKCgkc3RydWN0dXJlU3RhdHVzIC1ub3RpbiBAKCdhcHByb3ZlZCcs
ICdwYXJ0aWFsbHktZGVmZXJyZWQnKSkgLW9yICRpY29uU3RhdHVzIC1uZSAnYXBwcm92ZWQnKSB7
IHJldHVybiAkZmFsc2UgfQ0KICAgICRrbm93bk5vZGVzID0gQCgoR2V0LVByb3BlcnR5VmFsdWUg
LU9iamVjdCAkc3RydWN0dXJlIC1OYW1lICdub2RlcycgLURlZmF1bHQgQCgpKSB8IFdoZXJlLU9i
amVjdCB7ICRudWxsIC1uZSAkXyB9KQ0KICAgICRrbm93blBhdGhzID0gQHt9DQogICAgZm9yZWFj
aCAoJG5vZGUgaW4gJGtub3duTm9kZXMpIHsgJGtub3duUGF0aHNbKFtzdHJpbmddKEdldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5hbWUgJ3JlbGF0aXZlUGF0aCcpKS5Ub0xvd2VySW52
YXJpYW50KCldID0gJHRydWUgfQ0KICAgIGZvcmVhY2ggKCRleGlzdGluZ05vZGUgaW4gQChHZXQt
RXhpc3RpbmdTdHJ1Y3R1cmVOb2RlcyAtUm9vdCAkbGF5b3V0LlJvb3QpKSB7DQogICAgICAgIGlm
ICgtbm90ICRrbm93blBhdGhzLkNvbnRhaW5zS2V5KChbc3RyaW5nXSRleGlzdGluZ05vZGUucmVs
YXRpdmVQYXRoKS5Ub0xvd2VySW52YXJpYW50KCkpKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIH0N
CiAgICByZXR1cm4gJHRydWUNCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LVNhZmVGb2xkZXJUZXh0IHsN
CiAgICBwYXJhbShbQWxsb3dOdWxsKCldW3N0cmluZ10kVmFsdWUsIFtzd2l0Y2hdJEFsbG93RW1w
dHksIFtzd2l0Y2hdJElzVGFnKQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNl
KCRWYWx1ZSkpIHsNCiAgICAgICAgaWYgKCRBbGxvd0VtcHR5KSB7IHJldHVybiB9DQogICAgICAg
IHRocm93ICftj7TrjZQg7J2066aE7J20IOu5hOyXiOyKteuLiOuLpC4nDQogICAgfQ0KICAgIGlm
ICgkVmFsdWUgLWNuZSAkVmFsdWUuVHJpbSgpIC1vciAkVmFsdWUuRW5kc1dpdGgoJy4nKSAtb3Ig
JFZhbHVlLkVuZHNXaXRoKCcgJykpIHsNCiAgICAgICAgdGhyb3cgIu2PtOuNlCDsnbTrpoTsnZgg
7JWe65KkIOqzteuwsSDrmJDripQg64GdIOygkOydgCDtl4jsmqnrkJjsp4Ag7JWK7Iq164uI64uk
OiAkVmFsdWUiDQogICAgfQ0KICAgIGZvcmVhY2ggKCRjaGFyYWN0ZXIgaW4gJFZhbHVlLlRvQ2hh
ckFycmF5KCkpIHsNCiAgICAgICAgaWYgKFtpbnRdW2NoYXJdJGNoYXJhY3RlciAtbHQgMzIgLW9y
ICc8PjoiL1x8PyonLkNvbnRhaW5zKFtzdHJpbmddJGNoYXJhY3RlcikpIHsNCiAgICAgICAgICAg
IHRocm93ICLtj7TrjZQg7J2066aE7JeQIFdpbmRvd3Mg6riI7KeAIOusuOyekOqwgCDsnojsirXr
i4jri6Q6ICRWYWx1ZSINCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoJFZhbHVlLkNvbnRhaW5z
KCfjgJYnKSAtb3IgJFZhbHVlLkNvbnRhaW5zKCfjgJcnKSkgeyB0aHJvdyAi67CY7KCE6rCBIOq0
hO2YuOuKlCDtg5zqt7gg6rCSIOyViOyXkCDsp4HsoJEg64Sj7KeAIOyViuyKteuLiOuLpDogJFZh
bHVlIiB9DQogICAgaWYgKCRJc1RhZyAtYW5kICRWYWx1ZS5MZW5ndGggLWd0IDgwKSB7IHRocm93
ICftg5zqt7jqsIAg64SI66y0IOq5geuLiOuLpC4nIH0NCiAgICBpZiAoLW5vdCAkSXNUYWcgLWFu
ZCAkVmFsdWUuTGVuZ3RoIC1ndCAxMDApIHsgdGhyb3cgJ+ydtOumhOydtCDrhIjrrLQg6rmB64uI
64ukLicgfQ0KfQ0KDQpmdW5jdGlvbiBDb252ZXJ0VG8tQXBwcm92ZWRQbGFuIHsNCiAgICBwYXJh
bSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldJFJlc3VsdCwNCiAgICAg
ICAgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kRXhwZWN0ZWRUcmFuc2Fj
dGlvbklkDQogICAgKQ0KICAgIGlmIChbaW50XShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRS
ZXN1bHQgLU5hbWUgJ3NjaGVtYVZlcnNpb24nIC1EZWZhdWx0IDApIC1uZSAxIC1vcg0KICAgICAg
ICBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRSZXN1bHQgLU5hbWUgJ3N0YXR1
cycpIC1uZSAnYXBwcm92ZWQnIC1vcg0KICAgICAgICAoR2V0LVByb3BlcnR5VmFsdWUgLU9iamVj
dCAkUmVzdWx0IC1OYW1lICdhcHByb3ZlZCcpIC1uZSAkdHJ1ZSkgew0KICAgICAgICB0aHJvdyAn
66eI67KV7IKsIOqysOqzvOqwgCDstZzsooUg7Iq57J24IOyDge2DnOqwgCDslYTri5nri4jri6Qu
Jw0KICAgIH0NCiAgICAkdHJhbnNhY3Rpb25HdWlkID0gW2d1aWRdOjpFbXB0eQ0KICAgIGlmICgt
bm90IFtndWlkXTo6VHJ5UGFyc2UoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAk
UmVzdWx0IC1OYW1lICd0cmFuc2FjdGlvbklkJyksIFtyZWZdJHRyYW5zYWN0aW9uR3VpZCkpIHsN
CiAgICAgICAgdGhyb3cgJ+uniOuyleyCrCDqsrDqs7zsnZgg6rGw656YIOuyiO2YuOqwgCDsmKzr
sJTrpbTsp4Ag7JWK7Iq164uI64ukLicNCiAgICB9DQogICAgaWYgKC1ub3QgKFtzdHJpbmddJHRy
YW5zYWN0aW9uR3VpZCkuRXF1YWxzKCRFeHBlY3RlZFRyYW5zYWN0aW9uSWQsICRzY3JpcHQ6UGF0
aENvbXBhcmlzb24pKSB7IHRocm93ICfrp4jrspXsgqwg6rKw6rO87J2YIOqxsOuemCDrsojtmLjq
sIAg6rKw6rO8IO2PtOuNlOyZgCDri6TrpoXri4jri6QuJyB9DQogICAgaWYgKFtzdHJpbmddKEdl
dC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFJlc3VsdCAtTmFtZSAnc291bElkJykgLWNuZSAkb3Jp
Z2luYWxTb3VsSWQpIHsgdGhyb3cgJ+uniOuyleyCrCDqsrDqs7zqsIAg7ZiE7J6sIOyYge2YvOyd
mCBzb3VsSWTsmYAg64uk66aF64uI64ukLicgfQ0KICAgICRsZXZlbHMgPSBAKCdSJywgJ0QnLCAn
UCcsICdTJywgJ1QnKQ0KICAgICRleHBlY3RlZFBhcmVudCA9IEB7IFIgPSAkbnVsbDsgRCA9ICdS
JzsgUCA9ICdEJzsgUyA9ICdQJzsgVCA9ICdTJyB9DQogICAgJG5vZGVzID0gQCgoR2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkUmVzdWx0IC1OYW1lICdub2RlcycgLURlZmF1bHQgQCgpKSkNCiAg
ICAkYnlJZCA9IEB7fQ0KICAgICRkaXNjb3ZlcmVkTm9kZXMgPSBAKEdldC1FeGlzdGluZ1N0cnVj
dHVyZU5vZGVzIC1Sb290ICRsYXlvdXQuUm9vdCkNCiAgICAkZGlzY292ZXJlZEJ5SWQgPSBAe30N
CiAgICBmb3JlYWNoICgkZXhpc3RpbmdOb2RlIGluICRkaXNjb3ZlcmVkTm9kZXMpIHsgJGRpc2Nv
dmVyZWRCeUlkWyhbc3RyaW5nXSRleGlzdGluZ05vZGUuaWQpLlRvTG93ZXJJbnZhcmlhbnQoKV0g
PSAkZXhpc3RpbmdOb2RlIH0NCiAgICBmb3JlYWNoICgkbm9kZSBpbiAkbm9kZXMpIHsNCiAgICAg
ICAgJGlkID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAn
aWQnKQ0KICAgICAgICAkZ3VpZFZhbHVlID0gW2d1aWRdOjpFbXB0eQ0KICAgICAgICBpZiAoLW5v
dCBbZ3VpZF06OlRyeVBhcnNlKCRpZCwgW3JlZl0kZ3VpZFZhbHVlKSkgeyB0aHJvdyAi64W465Oc
IGlk6rCAIFVVSUTqsIAg7JWE64uZ64uI64ukOiAkaWQiIH0NCiAgICAgICAgJGtleSA9ICRpZC5U
b0xvd2VySW52YXJpYW50KCkNCiAgICAgICAgaWYgKCRieUlkLkNvbnRhaW5zS2V5KCRrZXkpKSB7
IHRocm93ICLrhbjrk5wgaWTqsIAg7KSR67O165Cp64uI64ukOiAkaWQiIH0NCiAgICAgICAgJGxl
dmVsID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnbGV2
ZWwnKQ0KICAgICAgICBpZiAoJGxldmVscyAtbm90Y29udGFpbnMgJGxldmVsKSB7IHRocm93ICLs
lYwg7IiYIOyXhuuKlCDri6jqs4TsnoXri4jri6Q6ICRsZXZlbCIgfQ0KICAgICAgICAkc3RhdHVz
ID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnc3RhdHVz
JykNCiAgICAgICAgaWYgKCRzdGF0dXMgLW5vdGluIEAoJ2FjdGl2ZScsICdkZWZlcnJlZCcpKSB7
IHRocm93ICLrhbjrk5wg7IOB7YOc6rCAIOyYrOuwlOultOyngCDslYrsirXri4jri6Q6ICRpZCIg
fQ0KICAgICAgICAkaW1tdXRhYmxlID0gKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUg
LU5hbWUgJ2ltbXV0YWJsZScgLURlZmF1bHQgJGZhbHNlKSAtZXEgJHRydWUNCiAgICAgICAgaWYg
KCRpbW11dGFibGUgLWFuZCAtbm90ICRkaXNjb3ZlcmVkQnlJZC5Db250YWluc0tleSgka2V5KSkg
eyB0aHJvdyAi7ZmU66m07J20IOyhtOyerO2VmOyngCDslYrripQg7ZWt66qp7J2EIOq4sOyhtCDq
s6DsoJUg7ZWt66qp7Jy866GcIO2RnOyLnO2WiOyKteuLiOuLpDogJGlkIiB9DQogICAgICAgIGlm
ICgkZGlzY292ZXJlZEJ5SWQuQ29udGFpbnNLZXkoJGtleSkpIHsNCiAgICAgICAgICAgICRleHBl
Y3RlZE5vZGUgPSAkZGlzY292ZXJlZEJ5SWRbJGtleV0NCiAgICAgICAgICAgIGZvcmVhY2ggKCRm
aWVsZCBpbiBAKCdwYXJlbnRJZCcsICdsZXZlbCcsICduYW1lS28nLCAnbmFtZUVuJywgJ3RhZycs
ICdvcmRlcicsICdzdGF0dXMnLCAnY29kZScsICdyZWxhdGl2ZVBhdGgnLCAnb3JpZ2luJykpIHsN
CiAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAk
bm9kZSAtTmFtZSAkZmllbGQpIC1jbmUgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVj
dCAkZXhwZWN0ZWROb2RlIC1OYW1lICRmaWVsZCkpIHsgdGhyb3cgIuq4sOyhtCDqs6DsoJUg7ZWt
66qp7J2EIOuwlOq+uOqxsOuCmCDsnqzrsojtmLjtmZTtlaAg7IiYIOyXhuyKteuLiOuLpDogJGlk
ICgkZmllbGQpIiB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoLW5vdCAkaW1tdXRh
YmxlKSB7IHRocm93ICLquLDsobQg7ZWt66qp7J2YIGltbXV0YWJsZSDtkZzsi5zqsIAg67mg7KGM
7Iq164uI64ukOiAkaWQiIH0NCiAgICAgICAgfQ0KICAgICAgICBBc3NlcnQtU2FmZUZvbGRlclRl
eHQgLVZhbHVlIChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRub2RlIC1OYW1l
ICduYW1lS28nKSkNCiAgICAgICAgQXNzZXJ0LVNhZmVGb2xkZXJUZXh0IC1WYWx1ZSAoW3N0cmlu
Z10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnbmFtZUVuJykpIC1BbGxv
d0VtcHR5DQogICAgICAgIEFzc2VydC1TYWZlRm9sZGVyVGV4dCAtVmFsdWUgKFtzdHJpbmddKEdl
dC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5hbWUgJ3RhZycpKSAtQWxsb3dFbXB0eSAt
SXNUYWcNCiAgICAgICAgJG9yZGVyUmF3ID0gR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9k
ZSAtTmFtZSAnb3JkZXInDQogICAgICAgICRvcmRlclZhbHVlID0gMC4wDQogICAgICAgIGlmICgk
bnVsbCAtZXEgJG9yZGVyUmF3IC1vciAtbm90IFtkb3VibGVdOjpUcnlQYXJzZShbc3RyaW5nXSRv
cmRlclJhdywgW3JlZl0kb3JkZXJWYWx1ZSkgLW9yDQogICAgICAgICAgICAkb3JkZXJWYWx1ZSAt
bmUgW01hdGhdOjpGbG9vcigkb3JkZXJWYWx1ZSkgLW9yICRvcmRlclZhbHVlIC1sdCAwIC1vciAk
b3JkZXJWYWx1ZSAtZ3QgOTgpIHsNCiAgICAgICAgICAgIHRocm93ICLrhbjrk5wg7Iic7ISc64qU
IDB+OTgg7IKs7J20IOygleyImOyXrOyVvCDtlanri4jri6Q6ICRpZCINCiAgICAgICAgfQ0KICAg
ICAgICAkYnlJZFska2V5XSA9ICRub2RlDQogICAgfQ0KICAgIGZvcmVhY2ggKCRleGlzdGluZ05v
ZGUgaW4gJGRpc2NvdmVyZWROb2Rlcykgew0KICAgICAgICBpZiAoLW5vdCAkYnlJZC5Db250YWlu
c0tleSgoW3N0cmluZ10kZXhpc3RpbmdOb2RlLmlkKS5Ub0xvd2VySW52YXJpYW50KCkpKSB7IHRo
cm93ICLquLDsobQg7J6R7JeFIO2PtOuNlOulvCDsirnsnbgg66qp66Gd7JeQ7IScIOyCreygnO2V
oCDsiJgg7JeG7Iq164uI64ukOiAkKCRleGlzdGluZ05vZGUucmVsYXRpdmVQYXRoKSIgfQ0KICAg
IH0NCiAgICBpZiAoQCgkbm9kZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXShHZXQtUHJvcGVy
dHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdsZXZlbCcpIC1lcSAnUicgLWFuZCBbc3RyaW5nXShH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdzdGF0dXMnKSAtZXEgJ2FjdGl2ZScg
fSkuQ291bnQgLWx0IDEpIHsNCiAgICAgICAgdGhyb3cgJ+yKueyduOuQnCDsl63tlaAoUinsnbQg
7LWc7IaMIDHqsJwg7ZWE7JqU7ZWp64uI64ukLicNCiAgICB9DQoNCiAgICAkc2libGluZ0NvZGVz
ID0gQHt9DQogICAgJHNpYmxpbmdOYW1lcyA9IEB7fQ0KICAgIGZvcmVhY2ggKCRub2RlIGluICRu
b2Rlcykgew0KICAgICAgICAkaWQgPSBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0
ICRub2RlIC1OYW1lICdpZCcpDQogICAgICAgICRsZXZlbCA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0
eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5hbWUgJ2xldmVsJykNCiAgICAgICAgJHBhcmVudElkID0g
W3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAncGFyZW50SWQn
KQ0KICAgICAgICAkZXhwZWN0ZWQgPSAkZXhwZWN0ZWRQYXJlbnRbJGxldmVsXQ0KICAgICAgICBp
ZiAoJG51bGwgLWVxICRleHBlY3RlZCkgew0KICAgICAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkcGFyZW50SWQpKSB7IHRocm93ICJSIOuFuOuTnOuKlCDrtoDr
qqjrpbwg6rCA7KeIIOyImCDsl4bsirXri4jri6Q6ICRpZCIgfQ0KICAgICAgICB9DQogICAgICAg
IGVsc2Ugew0KICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHBh
cmVudElkKSAtb3IgLW5vdCAkYnlJZC5Db250YWluc0tleSgkcGFyZW50SWQuVG9Mb3dlckludmFy
aWFudCgpKSkgew0KICAgICAgICAgICAgICAgIHRocm93ICLrtoDrqqgg64W465Oc66W8IOywvuyn
gCDrqrvtlojsirXri4jri6Q6ICRpZCINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRwYXJl
bnQgPSAkYnlJZFskcGFyZW50SWQuVG9Mb3dlckludmFyaWFudCgpXQ0KICAgICAgICAgICAgaWYg
KFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHBhcmVudCAtTmFtZSAnbGV2ZWwn
KSAtbmUgJGV4cGVjdGVkKSB7IHRocm93ICIkbGV2ZWwg64uo6rOE7J2YIOu2gOuqqOuKlCAkZXhw
ZWN0ZWQg64uo6rOE7Jes7JW8IO2VqeuLiOuLpDogJGlkIiB9DQogICAgICAgICAgICBpZiAoW3N0
cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnc3RhdHVzJykgLWVx
ICdhY3RpdmUnIC1hbmQNCiAgICAgICAgICAgICAgICBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1
ZSAtT2JqZWN0ICRwYXJlbnQgLU5hbWUgJ3N0YXR1cycpIC1uZSAnYWN0aXZlJykgew0KICAgICAg
ICAgICAgICAgIHRocm93ICLrr7jro6wg67aA66qoIOyVhOuemOyXkCDsgqzsmqkg7KSR7J24IOye
kOyLneydtCDsnojsirXri4jri6Q6ICRpZCINCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg
ICAgICAkcGFyZW50S2V5ID0gJHBhcmVudElkLlRvTG93ZXJJbnZhcmlhbnQoKQ0KICAgICAgICAk
b3JkZXIgPSBbaW50XShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRub2RlIC1OYW1lICdvcmRl
cicpDQogICAgICAgICRub2RlQ29kZSA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmpl
Y3QgJG5vZGUgLU5hbWUgJ2NvZGUnKQ0KICAgICAgICAkZXhpc3RpbmdSZWxhdGl2ZSA9IFtzdHJp
bmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5hbWUgJ3JlbGF0aXZlUGF0aCcp
DQogICAgICAgICRjb2RlS2V5ID0gaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZSgkZXhpc3RpbmdSZWxhdGl2ZSkpIHsgIiRwYXJlbnRLZXl8JGxldmVsfGV4aXN0aW5nLSRleGlz
dGluZ1JlbGF0aXZlIiB9IGVsc2VpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkbm9k
ZUNvZGUpKSB7ICIkcGFyZW50S2V5fCRsZXZlbHxuZXctJG9yZGVyIiB9IGVsc2UgeyAiJHBhcmVu
dEtleXwkbGV2ZWx8JG5vZGVDb2RlIiB9DQogICAgICAgIGlmICgkc2libGluZ0NvZGVzLkNvbnRh
aW5zS2V5KCRjb2RlS2V5KSkgeyB0aHJvdyAi6rCZ7J2AIOychOy5mOydmCDrsojtmLjqsIAg6rK5
7Lmp64uI64ukOiAkbGV2ZWwkKCRvcmRlciArIDEpIiB9DQogICAgICAgICRzaWJsaW5nQ29kZXNb
JGNvZGVLZXldID0gJHRydWUNCiAgICAgICAgJG5hbWVLZXkgPSAiJHBhcmVudEtleXwkbGV2ZWx8
JCgoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnbmFtZUtv
JykpLlRvTG93ZXJJbnZhcmlhbnQoKSkiDQogICAgICAgIGlmICgkc2libGluZ05hbWVzLkNvbnRh
aW5zS2V5KCRuYW1lS2V5KSkgeyB0aHJvdyAi6rCZ7J2AIOychOy5mOydmCDsnbTrpoTsnbQg6rK5
7Lmp64uI64ukOiAkKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5h
bWUgJ25hbWVLbycpKSIgfQ0KICAgICAgICAkc2libGluZ05hbWVzWyRuYW1lS2V5XSA9ICR0cnVl
DQogICAgfQ0KDQogICAgJHJlY29yZHMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5H
ZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRsZXZlbCBpbiAkbGV2ZWxzKSB7DQog
ICAgICAgIGZvcmVhY2ggKCRub2RlIGluIEAoJG5vZGVzIHwgV2hlcmUtT2JqZWN0IHsgW3N0cmlu
Z10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkXyAtTmFtZSAnbGV2ZWwnKSAtZXEgJGxldmVs
IC1hbmQgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkXyAtTmFtZSAnc3RhdHVz
JykgLWVxICdhY3RpdmUnIH0gfCBTb3J0LU9iamVjdCBAeyBFeHByZXNzaW9uID0geyBbaW50XShH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdvcmRlcicpIH0gfSwgQHsgRXhwcmVz
c2lvbiA9IHsgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkXyAtTmFtZSAnbmFt
ZUtvJykgfSB9KSkgew0KICAgICAgICAgICAgJG9yZGVyID0gW2ludF0oR2V0LVByb3BlcnR5VmFs
dWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnb3JkZXInKQ0KICAgICAgICAgICAgJGlzSW1tdXRhYmxl
ID0gKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5hbWUgJ2ltbXV0YWJsZScgLURl
ZmF1bHQgJGZhbHNlKSAtZXEgJHRydWUNCiAgICAgICAgICAgICRjb2RlID0gW3N0cmluZ10oR2V0
LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFtZSAnY29kZScpDQogICAgICAgICAgICBp
ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkY29kZSkpIHsgJGNvZGUgPSAkbGV2ZWwg
KyAoJG9yZGVyICsgMSkuVG9TdHJpbmcoJzAwJykgfQ0KICAgICAgICAgICAgJGxhYmVsID0gJGNv
ZGUgKyAnLScgKyAoW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbm9kZSAtTmFt
ZSAnbmFtZUtvJykpLlRyaW0oKQ0KICAgICAgICAgICAgJG5hbWVFbiA9IChbc3RyaW5nXShHZXQt
UHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRub2RlIC1OYW1lICduYW1lRW4nKSkuVHJpbSgpDQogICAg
ICAgICAgICAkdGFnID0gKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUg
LU5hbWUgJ3RhZycpKS5UcmltKCkNCiAgICAgICAgICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051
bGxPcldoaXRlU3BhY2UoJG5hbWVFbikpIHsgJGxhYmVsICs9ICcoJyArICRuYW1lRW4gKyAnKScg
fQ0KICAgICAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkdGFn
KSkgeyAkbGFiZWwgKz0gJyDjgJYnICsgJHRhZyArICfjgJcnIH0NCiAgICAgICAgICAgICRwYXJl
bnRJZCA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG5vZGUgLU5hbWUgJ3Bh
cmVudElkJykNCiAgICAgICAgICAgICRwYXJlbnRSZWNvcmQgPSAkbnVsbA0KICAgICAgICAgICAg
aWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkcGFyZW50SWQpKSB7DQogICAg
ICAgICAgICAgICAgJHBhcmVudFJlY29yZCA9IEAoJHJlY29yZHMgfCBXaGVyZS1PYmplY3QgeyAk
Xy5pZCAtZXEgJHBhcmVudElkIH0pIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0KICAgICAgICAg
ICAgICAgIGlmICgkbnVsbCAtZXEgJHBhcmVudFJlY29yZCkgeyB0aHJvdyAi7Zmc7ISxIOu2gOuq
qCDqsr3roZzrpbwg6rOE7IKw7ZWY7KeAIOuqu+2WiOyKteuLiOuLpDogJHBhcmVudElkIiB9DQog
ICAgICAgICAgICB9DQogICAgICAgICAgICAkcmVsYXRpdmUgPSBpZiAoJGlzSW1tdXRhYmxlKSB7
IChbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRub2RlIC1OYW1lICdyZWxhdGl2
ZVBhdGgnKSkuUmVwbGFjZSgnLycsICdcJykgfSBlbHNlaWYgKCRudWxsIC1lcSAkcGFyZW50UmVj
b3JkKSB7ICRsYWJlbCB9IGVsc2UgeyBbc3RyaW5nXSRwYXJlbnRSZWNvcmQucmVsYXRpdmVQYXRo
ICsgJ1wnICsgJGxhYmVsIH0NCiAgICAgICAgICAgICRhYnNvbHV0ZSA9IEpvaW4tUGF0aCAkbGF5
b3V0LlJvb3QgJHJlbGF0aXZlDQogICAgICAgICAgICBpZiAoKEdldC1GdWxsUGF0aCAkYWJzb2x1
dGUpLkxlbmd0aCAtZ3QgMjQwKSB7IHRocm93ICLtj7TrjZQg6rK966Gc6rCAIOyViOyghCDtlZzr
j4QgMjQw7J6Q66W8IOuEmOyKteuLiOuLpDogJHJlbGF0aXZlIiB9DQogICAgICAgICAgICAkcmVj
b3Jkcy5BZGQoW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgaWQg
PSBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRub2RlIC1OYW1lICdpZCcpDQog
ICAgICAgICAgICAgICAgcGFyZW50SWQgPSAkKGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCRwYXJlbnRJZCkpIHsgJG51bGwgfSBlbHNlIHsgJHBhcmVudElkIH0pDQogICAgICAgICAg
ICAgICAgbGV2ZWwgPSAkbGV2ZWwNCiAgICAgICAgICAgICAgICBuYW1lS28gPSBbc3RyaW5nXShH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRub2RlIC1OYW1lICduYW1lS28nKQ0KICAgICAgICAg
ICAgICAgIG5hbWVFbiA9ICRuYW1lRW4NCiAgICAgICAgICAgICAgICB0YWcgPSAkdGFnDQogICAg
ICAgICAgICAgICAgb3JkZXIgPSAkb3JkZXINCiAgICAgICAgICAgICAgICByZWxhdGl2ZVBhdGgg
PSAkcmVsYXRpdmUuUmVwbGFjZSgnXCcsICcvJykNCiAgICAgICAgICAgICAgICBjb2RlID0gJGNv
ZGUNCiAgICAgICAgICAgICAgICBpbW11dGFibGUgPSAkaXNJbW11dGFibGUNCiAgICAgICAgICAg
ICAgICBvcmlnaW4gPSAkKGlmICgkaXNJbW11dGFibGUpIHsgJ2V4aXN0aW5nJyB9IGVsc2UgeyAn
YXBwcm92ZWQtbmV3JyB9KQ0KICAgICAgICAgICAgfSkNCiAgICAgICAgfQ0KICAgIH0NCiAgICAk
ZGVmZXJyZWQgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbc3Ry
aW5nXQ0KICAgICRkZWZlcnJlZE9iamVjdCA9IEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFJl
c3VsdCAtTmFtZSAnZGVmZXJyZWRMZXZlbHMnDQogICAgZm9yZWFjaCAoJGxldmVsIGluICRsZXZl
bHMpIHsNCiAgICAgICAgJGRlZmVycmVkVmFsdWUgPSBHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0
ICRkZWZlcnJlZE9iamVjdCAtTmFtZSAkbGV2ZWwgLURlZmF1bHQgJGZhbHNlDQogICAgICAgIGlm
ICgkZGVmZXJyZWRWYWx1ZSAtaXNub3QgW2Jvb2xdKSB7IHRocm93ICIkbGV2ZWwg64uo6rOE7J2Y
IOuvuOujuCDqsJLsnYAgdHJ1ZS9mYWxzZeyXrOyVvCDtlanri4jri6QuIiB9DQogICAgICAgIGlm
ICgkZGVmZXJyZWRWYWx1ZSAtZXEgJHRydWUpIHsNCiAgICAgICAgICAgIGlmIChAKCRub2RlcyB8
IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJF8gLU5h
bWUgJ2xldmVsJykgLWVxICRsZXZlbCAtYW5kIFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1P
YmplY3QgJF8gLU5hbWUgJ3N0YXR1cycpIC1lcSAnYWN0aXZlJyB9KS5Db3VudCAtZ3QgMCkgew0K
ICAgICAgICAgICAgICAgIHRocm93ICIkbGV2ZWwg64uo6rOEIOyghOyytOulvCDrr7jro6wg7IOB
7YOc7JmAIOyCrOyaqSDspJHsnbgg7ZWt66qp7J20IO2VqOq7mCDsnojsirXri4jri6QuIg0KICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgJGRlZmVycmVkLkFkZCgkbGV2ZWwpDQogICAgICAgIH0N
CiAgICB9DQogICAgJGljb24gPSBHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRSZXN1bHQgLU5h
bWUgJ2ljb24nDQogICAgJGljb25Nb2RlID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9i
amVjdCAkaWNvbiAtTmFtZSAnbW9kZScpDQogICAgaWYgKCRpY29uTW9kZSAtbm90aW4gQCgnZGVm
YXVsdCcsICdpbXBvcnRlZCcsICdnZW5lcmF0ZWQnLCAnYWRvcHQtZXhpc3RpbmcnKSkgeyB0aHJv
dyAn7JWE7J207L2YIOuwqeyLneydgCBkZWZhdWx0L2ltcG9ydGVkL2dlbmVyYXRlZC9hZG9wdC1l
eGlzdGluZyDspJEg7ZWY64KY7Jes7JW8IO2VqeuLiOuLpC4nIH0NCiAgICAkaWNvblBhdGggPSBb
c3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRpY29uIC1OYW1lICdwYXRoJykNCiAg
ICAkZXhpc3RpbmdSb290SWNvbiA9IEdldC1FeGlzdGluZ1Jvb3RJY29uIC1Sb290ICRsYXlvdXQu
Um9vdA0KICAgIGlmICgkbnVsbCAtbmUgJGV4aXN0aW5nUm9vdEljb24gLWFuZCAoJGljb25Nb2Rl
IC1uZSAnYWRvcHQtZXhpc3RpbmcnIC1vciAtbm90IChHZXQtRnVsbFBhdGggJGljb25QYXRoKS5F
cXVhbHMoKEdldC1GdWxsUGF0aCAkZXhpc3RpbmdSb290SWNvbi5wYXRoKSwgJHNjcmlwdDpQYXRo
Q29tcGFyaXNvbikpKSB7DQogICAgICAgIHRocm93ICfquLDsobQg66Oo7Yq4IOyVhOydtOy9mOyd
gCDqs6DsoJUg7ZWt66qp7J2066mwIOyKueyduCDqsrDqs7zsl5DshJwg6rWQ7LK07ZWY6rGw64KY
IO2VtOygnO2VoCDsiJgg7JeG7Iq164uI64ukLicNCiAgICB9DQogICAgaWYgKCRpY29uTW9kZSAt
ZXEgJ2ltcG9ydGVkJyAtYW5kIFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGljb25QYXRo
KSkgeyB0aHJvdyAn6rCA7KC47JisIOyVhOydtOy9mCDqsr3roZzqsIAg67mE7JeI7Iq164uI64uk
LicgfQ0KICAgIGlmICgkaWNvbk1vZGUgLWluIEAoJ2ltcG9ydGVkJywgJ2Fkb3B0LWV4aXN0aW5n
JykpIHsNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGljb25QYXRo
KSkgeyB0aHJvdyAn7LGE7YOd7ZWY6rGw64KYIOqwgOyguOyYrCBJQ08g6rK966Gc6rCAIOu5hOyX
iOyKteuLiOuLpC4nIH0NCiAgICAgICAgJGljb1JlYXNvbiA9ICRudWxsDQogICAgICAgIGlmICgt
bm90IChUZXN0LUljb0ZpbGUgLVBhdGggKEdldC1GdWxsUGF0aCAkaWNvblBhdGgpIC1SZWFzb24g
KFtyZWZdJGljb1JlYXNvbikpKSB7IHRocm93ICLslYTsnbTsvZgg7Iq57J247J2EIOyggeyaqe2V
oCDsiJgg7JeG7Iq164uI64ukOiAkaWNvUmVhc29uIiB9DQogICAgICAgIGlmICgkaWNvbk1vZGUg
LWVxICdhZG9wdC1leGlzdGluZycpIHsNCiAgICAgICAgICAgICRmdWxsSWNvbiA9IEdldC1GdWxs
UGF0aCAkaWNvblBhdGgNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNpZGUgLVBh
dGggJGZ1bGxJY29uIC1QYXJlbnQgJGxheW91dC5Sb290KSkgeyB0aHJvdyAn6riw7KG0IOyVhOyd
tOy9mCDssYTtg50g6rK966Gc6rCAIOyYge2YvCDrsJbsnYQg6rCA66as7YK164uI64ukLicgfQ0K
ICAgICAgICAgICAgQXNzZXJ0LU5vUmVwYXJzZVBhdGggLVBhdGggJGZ1bGxJY29uIC1Cb3VuZGFy
eSAkbGF5b3V0LlJvb3QNCiAgICAgICAgfQ0KICAgIH0NCiAgICAkY2Fub25pY2FsID0gW3BzY3Vz
dG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgIHNjaGVtYVZlcnNpb24gPSAxDQogICAgICAg
IHRyYW5zYWN0aW9uSWQgPSBbc3RyaW5nXSR0cmFuc2FjdGlvbkd1aWQNCiAgICAgICAgbm9kZXMg
PSBAKCRyZWNvcmRzLlRvQXJyYXkoKSkNCiAgICAgICAgZGVmZXJyZWRMZXZlbHMgPSBAKCRkZWZl
cnJlZC5Ub0FycmF5KCkpDQogICAgICAgIGljb24gPSBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRd
QHsgbW9kZSA9ICRpY29uTW9kZTsgcGF0aCA9ICQoaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJGljb25QYXRoKSkgeyAkbnVsbCB9IGVsc2UgeyAkaWNvblBhdGggfSkgfQ0KICAgIH0N
CiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIFRyYW5zYWN0aW9uSWQgPSBb
c3RyaW5nXSR0cmFuc2FjdGlvbkd1aWQNCiAgICAgICAgUmVjb3JkcyA9IEAoJHJlY29yZHMuVG9B
cnJheSgpKQ0KICAgICAgICBEZWZlcnJlZExldmVscyA9IEAoJGRlZmVycmVkLlRvQXJyYXkoKSkN
CiAgICAgICAgSWNvbk1vZGUgPSAkaWNvbk1vZGUNCiAgICAgICAgSWNvblBhdGggPSAkaWNvblBh
dGgNCiAgICAgICAgQ2Fub25pY2FsID0gJGNhbm9uaWNhbA0KICAgIH0NCn0NCg0KZnVuY3Rpb24g
UmVzb2x2ZS1BcHByb3ZlZFdpemFyZFJlc3VsdCB7DQogICAgcGFyYW0oJFN0YXRlKQ0KICAgICR0
cmFuc2FjdGlvbnNSb290ID0gSm9pbi1QYXRoICRsYXlvdXQuU2V0dXAgJ3RyYW5zYWN0aW9ucycN
CiAgICBbdm9pZF0oSW5pdGlhbGl6ZS1NYW5hZ2VkRGlyZWN0b3J5IC1QYXRoICR0cmFuc2FjdGlv
bnNSb290IC1JZGVudGl0eSAn7ISk7KCVIOyniOusuCDqsbDrnpgnKQ0KICAgIGlmICgtbm90IFtz
dHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEFwcHJvdmVkV2l6YXJkUmVzdWx0UGF0aCkpIHsN
CiAgICAgICAgJGNhbmRpZGF0ZSA9IEdldC1GdWxsUGF0aCAkQXBwcm92ZWRXaXphcmRSZXN1bHRQ
YXRoDQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNpZGUgLVBhdGggJGNhbmRpZGF0ZSAt
UGFyZW50ICR0cmFuc2FjdGlvbnNSb290KSAtb3INCiAgICAgICAgICAgIC1ub3QgKFtTeXN0ZW0u
SU8uUGF0aF06OkdldEZpbGVOYW1lKCRjYW5kaWRhdGUpLkVxdWFscygnd2l6YXJkLXJlc3VsdC5q
c29uJywgJHNjcmlwdDpQYXRoQ29tcGFyaXNvbikpKSB7DQogICAgICAgICAgICB0aHJvdyAn7Iq5
7J24IOqysOqzvOuKlCDsnbQg7JiB7Zi87J2YIHRyYW5zYWN0aW9ucy886rGw656YSUQ+L3dpemFy
ZC1yZXN1bHQuanNvbuydtOyWtOyVvCDtlanri4jri6QuJw0KICAgICAgICB9DQogICAgICAgICR0
cmFuc2FjdGlvbkRpcmVjdG9yeSA9IFNwbGl0LVBhdGggLVBhcmVudCAkY2FuZGlkYXRlDQogICAg
ICAgICR0cmFuc2FjdGlvbkd1aWQgPSBbZ3VpZF06OkVtcHR5DQogICAgICAgIGlmICgtbm90IFtn
dWlkXTo6VHJ5UGFyc2UoKFNwbGl0LVBhdGggLUxlYWYgJHRyYW5zYWN0aW9uRGlyZWN0b3J5KSwg
W3JlZl0kdHJhbnNhY3Rpb25HdWlkKSAtb3INCiAgICAgICAgICAgIC1ub3QgKEdldC1GdWxsUGF0
aCAoU3BsaXQtUGF0aCAtUGFyZW50ICR0cmFuc2FjdGlvbkRpcmVjdG9yeSkpLkVxdWFscygoR2V0
LUZ1bGxQYXRoICR0cmFuc2FjdGlvbnNSb290KSwgJHNjcmlwdDpQYXRoQ29tcGFyaXNvbikpIHsN
CiAgICAgICAgICAgIHRocm93ICfsirnsnbgg6rKw6rO87J2YIOqxsOuemCDtj7TrjZQg7J2066aE
7J20IFVVSUTqsIAg7JWE64uZ64uI64ukLicNCiAgICAgICAgfQ0KICAgICAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY2FuZGlkYXRlIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJv
dyAi7Iq57J24IOqysOqzvCDtjIzsnbzsnbQg7JeG7Iq164uI64ukOiAkY2FuZGlkYXRlIiB9DQog
ICAgICAgIEFzc2VydC1Ob1JlcGFyc2VQYXRoIC1QYXRoICR0cmFuc2FjdGlvbkRpcmVjdG9yeSAt
Qm91bmRhcnkgJHRyYW5zYWN0aW9uc1Jvb3QNCiAgICAgICAgQXNzZXJ0LU5vUmVwYXJzZVBhdGgg
LVBhdGggJGNhbmRpZGF0ZSAtQm91bmRhcnkgJHRyYW5zYWN0aW9uc1Jvb3QNCiAgICAgICAgW3Zv
aWRdKEluaXRpYWxpemUtTWFuYWdlZERpcmVjdG9yeSAtUGF0aCAkdHJhbnNhY3Rpb25EaXJlY3Rv
cnkgLUlkZW50aXR5ICfshKTsoJUg7KeI66y4IOqxsOuemCDquLDroZ0nKQ0KICAgICAgICByZXR1
cm4gJGNhbmRpZGF0ZQ0KICAgIH0NCg0KICAgICRwZW5kaW5nSWQgPSBbc3RyaW5nXShHZXQtUHJv
cGVydHlWYWx1ZSAtT2JqZWN0ICRTdGF0ZSAtTmFtZSAncGVuZGluZ1RyYW5zYWN0aW9uJykNCiAg
ICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRwZW5kaW5nSWQpKSB7DQog
ICAgICAgICRwYXJzZWRQZW5kaW5nID0gW2d1aWRdOjpFbXB0eQ0KICAgICAgICBpZiAoLW5vdCBb
Z3VpZF06OlRyeVBhcnNlKCRwZW5kaW5nSWQsIFtyZWZdJHBhcnNlZFBlbmRpbmcpKSB7IHRocm93
ICdwZW5kaW5nVHJhbnNhY3Rpb27snbQgVVVJROqwgCDslYTri5nri4jri6QuJyB9DQogICAgICAg
ICRwZW5kaW5nRGlyZWN0b3J5ID0gSm9pbi1QYXRoICR0cmFuc2FjdGlvbnNSb290IChbc3RyaW5n
XSRwYXJzZWRQZW5kaW5nKQ0KICAgICAgICAkcGVuZGluZ1Jlc3VsdCA9IEpvaW4tUGF0aCAkcGVu
ZGluZ0RpcmVjdG9yeSAnd2l6YXJkLXJlc3VsdC5qc29uJw0KICAgICAgICBpZiAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkcGVuZGluZ1Jlc3VsdCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAg
ICAgQXNzZXJ0LU5vUmVwYXJzZVBhdGggLVBhdGggJHBlbmRpbmdEaXJlY3RvcnkgLUJvdW5kYXJ5
ICR0cmFuc2FjdGlvbnNSb290DQogICAgICAgICAgICBBc3NlcnQtTm9SZXBhcnNlUGF0aCAtUGF0
aCAkcGVuZGluZ1Jlc3VsdCAtQm91bmRhcnkgJHRyYW5zYWN0aW9uc1Jvb3QNCiAgICAgICAgICAg
IFt2b2lkXShJbml0aWFsaXplLU1hbmFnZWREaXJlY3RvcnkgLVBhdGggJHBlbmRpbmdEaXJlY3Rv
cnkgLUlkZW50aXR5ICfshKTsoJUg7KeI66y4IOqxsOuemCDquLDroZ0nKQ0KICAgICAgICAgICAg
cmV0dXJuICRwZW5kaW5nUmVzdWx0DQogICAgICAgIH0NCiAgICB9DQogICAgIyBOZXZlciBwaWNr
IGEgcmVzdWx0IG1lcmVseSBiZWNhdXNlIGl0IGlzIHRoZSBuZXdlc3QgZmlsZSBvbiBkaXNrLiBP
bmx5IGFuDQogICAgIyBleHBsaWNpdCBjb21tYW5kLWxpbmUgcGF0aCBvciB0aGUgZXhhY3QgcGVu
ZGluZ1RyYW5zYWN0aW9uIG1heSBiZSB1c2VkLg0KICAgIHJldHVybiAkbnVsbA0KfQ0KDQpmdW5j
dGlvbiBJbnZva2UtV2l6YXJkRm9yTWlzc2luZ0RlY2lzaW9uIHsNCiAgICBwYXJhbSgkU3RhdGUp
DQogICAgJHdpemFyZFBhdGggPSBKb2luLVBhdGggJGxheW91dC5TZXR1cCAnd2l6YXJkLnBzMScN
CiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkd2l6YXJkUGF0aCAtUGF0aFR5
cGUgTGVhZikpIHsgdGhyb3cgIuyEpOyglSDrp4jrspXsgqzqsIAg7JeG7Iq164uI64ukOiAkd2l6
YXJkUGF0aCIgfQ0KICAgICR0cmFuc2FjdGlvbnNSb290ID0gSm9pbi1QYXRoICRsYXlvdXQuU2V0
dXAgJ3RyYW5zYWN0aW9ucycNCiAgICBbdm9pZF0oSW5pdGlhbGl6ZS1NYW5hZ2VkRGlyZWN0b3J5
IC1QYXRoICR0cmFuc2FjdGlvbnNSb290IC1JZGVudGl0eSAn7ISk7KCVIOyniOusuCDqsbDrnpgn
KQ0KICAgICRwZW5kaW5nSWQgPSBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRT
dGF0ZSAtTmFtZSAncGVuZGluZ1RyYW5zYWN0aW9uJykNCiAgICAkcmVzdW1lID0gJGZhbHNlDQog
ICAgJHBhcnNlZCA9IFtndWlkXTo6RW1wdHkNCiAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRwZW5kaW5nSWQpIC1hbmQgW2d1aWRdOjpUcnlQYXJzZSgkcGVuZGluZ0lk
LCBbcmVmXSRwYXJzZWQpKSB7DQogICAgICAgICRzdGF0ZUNhbmRpZGF0ZSA9IEpvaW4tUGF0aCAo
Sm9pbi1QYXRoICR0cmFuc2FjdGlvbnNSb290IChbc3RyaW5nXSRwYXJzZWQpKSAnd2l6YXJkLXN0
YXRlLmpzb24nDQogICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzdGF0ZUNhbmRp
ZGF0ZSAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg
ICBBc3NlcnQtTm9SZXBhcnNlUGF0aCAtUGF0aCAkc3RhdGVDYW5kaWRhdGUgLUJvdW5kYXJ5ICR0
cmFuc2FjdGlvbnNSb290DQogICAgICAgICAgICAgICAgJHdpemFyZE1ldGFkYXRhID0gUmVhZC1T
b3VsSnNvbiAtUGF0aCAkc3RhdGVDYW5kaWRhdGUNCiAgICAgICAgICAgICAgICAkcmVzdW1lID0g
W3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkd2l6YXJkTWV0YWRhdGEgLU5hbWUg
J3RyYW5zYWN0aW9uSWQnKSAtZXEgW3N0cmluZ10kcGFyc2VkIC1hbmQNCiAgICAgICAgICAgICAg
ICAgICAgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkd2l6YXJkTWV0YWRhdGEg
LU5hbWUgJ3N0YXR1cycpIC1pbiBAKCdvcGVuJywncGF1c2VkJywndGltZWQtb3V0Jywnd2luZG93
LWNsb3NlZCcpDQogICAgICAgICAgICB9DQogICAgICAgICAgICBjYXRjaCB7ICRyZXN1bWUgPSAk
ZmFsc2UgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICgtbm90ICRyZXN1bWUpIHsgJHBlbmRp
bmdJZCA9IFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCkgfQ0KICAgIFNldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJFN0YXRlIC1OYW1lICdwZW5kaW5nVHJhbnNhY3Rpb24nIC1WYWx1ZSAkcGVu
ZGluZ0lkDQogICAgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkU3RhdGUgLU5hbWUgJ2xpZmVj
eWNsZScgLVZhbHVlICd3aXphcmQtcGF1c2VkJw0KICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmpl
Y3QgJFN0YXRlIC1OYW1lICdtYWNoaW5lUmVhZHknIC1WYWx1ZSAkZmFsc2UNCiAgICBTZXQtUHJv
cGVydHlWYWx1ZSAtT2JqZWN0ICRTdGF0ZSAtTmFtZSAndXBkYXRlZEF0JyAtVmFsdWUgKFtEYXRl
VGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpKQ0KICAgIFdyaXRlLVN0YXRlQXRvbWljIC1WYWx1
ZSAkU3RhdGUNCg0KICAgICR3aW5kb3dzUG93ZXJTaGVsbCA9IEpvaW4tUGF0aCAkZW52OlN5c3Rl
bVJvb3QgJ1N5c3RlbTMyXFdpbmRvd3NQb3dlclNoZWxsXHYxLjBccG93ZXJzaGVsbC5leGUnDQog
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHdpbmRvd3NQb3dlclNoZWxsIC1Q
YXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAnV2luZG93cyBQb3dlclNoZWxsIDUuMeydhCDssL7sp4Ag
66q77ZaI7Iq164uI64ukLicgfQ0KICAgICRhcmd1bWVudHMgPSBAKCctTm9Mb2dvJywgJy1Ob1By
b2ZpbGUnLCAnLUV4ZWN1dGlvblBvbGljeScsICdCeXBhc3MnLCAnLUZpbGUnLCAkd2l6YXJkUGF0
aCwgJy1Tb3VsUm9vdCcsICRsYXlvdXQuUm9vdCwgJy1UcmFuc2FjdGlvbklkJywgJHBlbmRpbmdJ
ZCkNCiAgICBpZiAoJHJlc3VtZSkgeyAkYXJndW1lbnRzICs9ICctUmVzdW1lJyB9DQogICAgJiAk
d2luZG93c1Bvd2VyU2hlbGwgQGFyZ3VtZW50cw0KICAgICR3aXphcmRFeGl0ID0gJExBU1RFWElU
Q09ERQ0KICAgICRyZXN1bHRQYXRoID0gSm9pbi1QYXRoIChKb2luLVBhdGggJHRyYW5zYWN0aW9u
c1Jvb3QgJHBlbmRpbmdJZCkgJ3dpemFyZC1yZXN1bHQuanNvbicNCiAgICBpZiAoJHdpemFyZEV4
aXQgLW5lIDApIHsNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBDb21wbGV0ZWQg
PSAkZmFsc2U7IEV4aXRDb2RlID0gJHdpemFyZEV4aXQ7IFJlc3VsdFBhdGggPSAkbnVsbDsgVHJh
bnNhY3Rpb25JZCA9ICRwZW5kaW5nSWQgfQ0KICAgIH0NCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkcmVzdWx0UGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ+uniOuy
leyCrOuKlCDrgZ3rgqzsp4Drp4wg7Iq57J24IOqysOqzvCDtjIzsnbzsnbQg7JeG7Iq164uI64uk
LicgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgQ29tcGxldGVkID0gJHRydWU7IEV4
aXRDb2RlID0gMDsgUmVzdWx0UGF0aCA9ICRyZXN1bHRQYXRoOyBUcmFuc2FjdGlvbklkID0gJHBl
bmRpbmdJZCB9DQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1QbGFubmVkRm9sZGVyQ29sbGlzaW9ucyB7
DQogICAgcGFyYW0oJFJlY29yZHMpDQogICAgZm9yZWFjaCAoJHJlY29yZCBpbiBAKCRSZWNvcmRz
KSkgew0KICAgICAgICAkcGF0aCA9IEpvaW4tUGF0aCAkbGF5b3V0LlJvb3QgKFtzdHJpbmddJHJl
Y29yZC5yZWxhdGl2ZVBhdGgpLlJlcGxhY2UoJy8nLCAnXCcpDQogICAgICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRwYXRoKSB7DQogICAgICAgICAgICAkaXRlbSA9IEdldC1JdGVtIC1M
aXRlcmFsUGF0aCAkcGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgICAgIGlm
ICgtbm90ICRpdGVtLlBTSXNDb250YWluZXIpIHsgdGhyb3cgIuyKueyduOuQnCDtj7TrjZQg7J6Q
66as7JeQIO2MjOydvOydtCDsnojsirXri4jri6Q6ICRwYXRoIiB9DQogICAgICAgICAgICBpZiAo
KCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106OlJlcGFy
c2VQb2ludCkgLW5lIDApIHsgdGhyb3cgIuyKueyduOuQnCDtj7TrjZTqsIAg66eB7YGs7J6F64uI
64ukOiAkcGF0aCIgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBBcHBseS1BcHBy
b3ZlZEZvbGRlcnMgew0KICAgIHBhcmFtKCRSZWNvcmRzKQ0KICAgIGZvcmVhY2ggKCRyZWNvcmQg
aW4gQCgkUmVjb3JkcykpIHsNCiAgICAgICAgJHBhdGggPSBKb2luLVBhdGggJGxheW91dC5Sb290
IChbc3RyaW5nXSRyZWNvcmQucmVsYXRpdmVQYXRoKS5SZXBsYWNlKCcvJywgJ1wnKQ0KICAgICAg
ICAkaWRlbnRpdHkgPSAoW3N0cmluZ10kcmVjb3JkLmxldmVsKSArICcg64uo6rOEICcgKyAoW3N0
cmluZ10kcmVjb3JkLm5hbWVLbykNCiAgICAgICAgW3ZvaWRdKEluaXRpYWxpemUtTWFuYWdlZERp
cmVjdG9yeSAtUGF0aCAkcGF0aCAtSWRlbnRpdHkgJGlkZW50aXR5KQ0KICAgIH0NCn0NCg0KZnVu
Y3Rpb24gQWRkLVBlbmRpbmdDYXBhYmlsaXR5IHsNCiAgICBwYXJhbSgkU3RhdGUsIFtzdHJpbmdd
JElkLCBbc3RyaW5nXSRSZWFzb24pDQogICAgJGl0ZW1zID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29s
bGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICBmb3JlYWNoICgkaXRlbSBpbiBAKChH
ZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRTdGF0ZSAtTmFtZSAncGVuZGluZ0NhcGFiaWxpdGll
cycgLURlZmF1bHQgQCgpKSkpIHsNCiAgICAgICAgaWYgKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJGl0ZW0gLU5hbWUgJ2lkJykgLW5lICRJZCAtYW5kIFtzdHJpbmddJGl0ZW0g
LW5lICRJZCkgeyAkaXRlbXMuQWRkKCRpdGVtKSB9DQogICAgfQ0KICAgICRpdGVtcy5BZGQoW3Bz
Y3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IGlkID0gJElkOyBzdGF0dXMgPSAncGVuZGluZyc7IHJl
YXNvbiA9ICRSZWFzb247IHJlY29yZGVkQXQgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmco
J28nKSB9KQ0KICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJFN0YXRlIC1OYW1lICdwZW5k
aW5nQ2FwYWJpbGl0aWVzJyAtVmFsdWUgQCgkaXRlbXMuVG9BcnJheSgpKQ0KfQ0KDQpmdW5jdGlv
biBSZW1vdmUtUGVuZGluZ0NhcGFiaWxpdHkgew0KICAgIHBhcmFtKCRTdGF0ZSwgW3N0cmluZ10k
SWQpDQogICAgJGl0ZW1zID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5M
aXN0W29iamVjdF0NCiAgICBmb3JlYWNoICgkaXRlbSBpbiBAKChHZXQtUHJvcGVydHlWYWx1ZSAt
T2JqZWN0ICRTdGF0ZSAtTmFtZSAncGVuZGluZ0NhcGFiaWxpdGllcycgLURlZmF1bHQgQCgpKSkp
IHsNCiAgICAgICAgaWYgKFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGl0ZW0g
LU5hbWUgJ2lkJykgLWVxICRJZCAtb3IgW3N0cmluZ10kaXRlbSAtZXEgJElkKSB7IGNvbnRpbnVl
IH0NCiAgICAgICAgJGl0ZW1zLkFkZCgkaXRlbSkNCiAgICB9DQogICAgU2V0LVByb3BlcnR5VmFs
dWUgLU9iamVjdCAkU3RhdGUgLU5hbWUgJ3BlbmRpbmdDYXBhYmlsaXRpZXMnIC1WYWx1ZSBAKCRp
dGVtcy5Ub0FycmF5KCkpDQp9DQoNCmZ1bmN0aW9uIE5ldy1Mb2NhbEJhZGdlSWNvIHsNCiAgICBw
YXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRQYXRoLCBbUGFyYW1l
dGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRMYWJlbCkNCiAgICBBZGQtVHlwZSAtQXNz
ZW1ibHlOYW1lIFN5c3RlbS5EcmF3aW5nIC1FcnJvckFjdGlvbiBTdG9wDQogICAgJGJpdG1hcCA9
IE5ldy1PYmplY3QgU3lzdGVtLkRyYXdpbmcuQml0bWFwIDI1NiwgMjU2LCAoW1N5c3RlbS5EcmF3
aW5nLkltYWdpbmcuUGl4ZWxGb3JtYXRdOjpGb3JtYXQzMmJwcEFyZ2IpDQogICAgJGdyYXBoaWNz
ID0gW1N5c3RlbS5EcmF3aW5nLkdyYXBoaWNzXTo6RnJvbUltYWdlKCRiaXRtYXApDQogICAgJHBu
Z1N0cmVhbSA9IE5ldy1PYmplY3QgSU8uTWVtb3J5U3RyZWFtDQogICAgdHJ5IHsNCiAgICAgICAg
JGdyYXBoaWNzLlNtb290aGluZ01vZGUgPSBbU3lzdGVtLkRyYXdpbmcuRHJhd2luZzJELlNtb290
aGluZ01vZGVdOjpBbnRpQWxpYXMNCiAgICAgICAgJGdyYXBoaWNzLkNsZWFyKFtTeXN0ZW0uRHJh
d2luZy5Db2xvcl06OkZyb21BcmdiKDI2LCA2MCwgOTIpKQ0KICAgICAgICAkYnJ1c2ggPSBOZXct
T2JqZWN0IFN5c3RlbS5EcmF3aW5nLlNvbGlkQnJ1c2ggKFtTeXN0ZW0uRHJhd2luZy5Db2xvcl06
OkZyb21BcmdiKDMzLCAxMjksIDE2MCkpDQogICAgICAgICRncmFwaGljcy5GaWxsRWxsaXBzZSgk
YnJ1c2gsIDIyLCAyMiwgMjEyLCAyMTIpDQogICAgICAgICRicnVzaC5EaXNwb3NlKCkNCiAgICAg
ICAgJGJhZGdlID0gaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJExhYmVsKSkgeyAn
QUknIH0gZWxzZSB7ICRMYWJlbC5TdWJzdHJpbmcoMCwgW01hdGhdOjpNaW4oMiwgJExhYmVsLkxl
bmd0aCkpLlRvVXBwZXJJbnZhcmlhbnQoKSB9DQogICAgICAgICRmb250ID0gTmV3LU9iamVjdCBT
eXN0ZW0uRHJhd2luZy5Gb250ICdNYWxndW4gR290aGljJywgODIsIChbU3lzdGVtLkRyYXdpbmcu
Rm9udFN0eWxlXTo6Qm9sZCksIChbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0XTo6UGl4ZWwp
DQogICAgICAgICR0ZXh0QnJ1c2ggPSBOZXctT2JqZWN0IFN5c3RlbS5EcmF3aW5nLlNvbGlkQnJ1
c2ggKFtTeXN0ZW0uRHJhd2luZy5Db2xvcl06OldoaXRlKQ0KICAgICAgICAkZm9ybWF0ID0gTmV3
LU9iamVjdCBTeXN0ZW0uRHJhd2luZy5TdHJpbmdGb3JtYXQNCiAgICAgICAgJGZvcm1hdC5BbGln
bm1lbnQgPSBbU3lzdGVtLkRyYXdpbmcuU3RyaW5nQWxpZ25tZW50XTo6Q2VudGVyDQogICAgICAg
ICRmb3JtYXQuTGluZUFsaWdubWVudCA9IFtTeXN0ZW0uRHJhd2luZy5TdHJpbmdBbGlnbm1lbnRd
OjpDZW50ZXINCiAgICAgICAgJGdyYXBoaWNzLkRyYXdTdHJpbmcoJGJhZGdlLCAkZm9udCwgJHRl
eHRCcnVzaCwgKE5ldy1PYmplY3QgU3lzdGVtLkRyYXdpbmcuUmVjdGFuZ2xlRiAwLCAwLCAyNTYs
IDI0NiksICRmb3JtYXQpDQogICAgICAgICRmb3JtYXQuRGlzcG9zZSgpOyAkdGV4dEJydXNoLkRp
c3Bvc2UoKTsgJGZvbnQuRGlzcG9zZSgpDQogICAgICAgICRiaXRtYXAuU2F2ZSgkcG5nU3RyZWFt
LCBbU3lzdGVtLkRyYXdpbmcuSW1hZ2luZy5JbWFnZUZvcm1hdF06OlBuZykNCiAgICAgICAgJHBu
ZyA9ICRwbmdTdHJlYW0uVG9BcnJheSgpDQogICAgICAgICRvdXRwdXQgPSBOZXctT2JqZWN0IElP
Lk1lbW9yeVN0cmVhbQ0KICAgICAgICAkd3JpdGVyID0gTmV3LU9iamVjdCBJTy5CaW5hcnlXcml0
ZXIgJG91dHB1dA0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJHdyaXRlci5Xcml0ZShbdWlu
dDE2XTApOyAkd3JpdGVyLldyaXRlKFt1aW50MTZdMSk7ICR3cml0ZXIuV3JpdGUoW3VpbnQxNl0x
KQ0KICAgICAgICAgICAgJHdyaXRlci5Xcml0ZShbYnl0ZV0wKTsgJHdyaXRlci5Xcml0ZShbYnl0
ZV0wKTsgJHdyaXRlci5Xcml0ZShbYnl0ZV0wKTsgJHdyaXRlci5Xcml0ZShbYnl0ZV0wKQ0KICAg
ICAgICAgICAgJHdyaXRlci5Xcml0ZShbdWludDE2XTEpOyAkd3JpdGVyLldyaXRlKFt1aW50MTZd
MzIpOyAkd3JpdGVyLldyaXRlKFt1aW50MzJdJHBuZy5MZW5ndGgpOyAkd3JpdGVyLldyaXRlKFt1
aW50MzJdMjIpDQogICAgICAgICAgICAkd3JpdGVyLldyaXRlKCRwbmcpOyAkd3JpdGVyLkZsdXNo
KCkNCiAgICAgICAgICAgICR0ZW1wb3JhcnkgPSBKb2luLVBhdGggKFNwbGl0LVBhdGggLVBhcmVu
dCAkUGF0aCkgKCcuZ2VuZXJhdGVkLWljb24tJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5n
KCdOJykgKyAnLnRtcCcpDQogICAgICAgICAgICB0cnkgeyBbSU8uRmlsZV06OldyaXRlQWxsQnl0
ZXMoJHRlbXBvcmFyeSwgJG91dHB1dC5Ub0FycmF5KCkpOyBbSU8uRmlsZV06Ok1vdmUoJHRlbXBv
cmFyeSwgJFBhdGgpIH0NCiAgICAgICAgICAgIGZpbmFsbHkgeyBpZiAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkdGVtcG9yYXJ5IC1QYXRoVHlwZSBMZWFmKSB7IFtJTy5GaWxlXTo6RGVsZXRlKCR0
ZW1wb3JhcnkpIH0gfQ0KICAgICAgICB9DQogICAgICAgIGZpbmFsbHkgeyAkd3JpdGVyLkRpc3Bv
c2UoKTsgJG91dHB1dC5EaXNwb3NlKCkgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgJHBuZ1N0cmVh
bS5EaXNwb3NlKCk7ICRncmFwaGljcy5EaXNwb3NlKCk7ICRiaXRtYXAuRGlzcG9zZSgpIH0NCiAg
ICAkcmVhc29uID0gJG51bGwNCiAgICBpZiAoLW5vdCAoVGVzdC1JY29GaWxlIC1QYXRoICRQYXRo
IC1SZWFzb24gKFtyZWZdJHJlYXNvbikpKSB7IHRocm93ICLroZzsu6wg7IOd7ISxIElDTyDqsoDs
pp3sl5Ag7Iuk7Yyo7ZaI7Iq164uI64ukOiAkcmVhc29uIiB9DQp9DQoNCmZ1bmN0aW9uIFNldC1S
b290SWNvbk1ldGFkYXRhIHsNCiAgICBwYXJhbSgkU3RhdGUsIFtzdHJpbmddJFRhcmdldCkNCiAg
ICAkZGVza3RvcEluaVBhdGggPSBKb2luLVBhdGggJGxheW91dC5Sb290ICdkZXNrdG9wLmluaScN
CiAgICAkZGVza3RvcEluaVRleHQgPSAiWy5TaGVsbENsYXNzSW5mb11gcmBuSWNvblJlc291cmNl
PV9pY29uc1xzb3VsLmljbywwYHJgbiINCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
ZGVza3RvcEluaVBhdGgpIHsNCiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGgg
JGRlc2t0b3BJbmlQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAgICBpZiAoKCRp
dGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAt
bmUgMCAtb3IgLW5vdCAoVGVzdC1FeGFjdFV0ZjhUZXh0IC1QYXRoICRkZXNrdG9wSW5pUGF0aCAt
RXhwZWN0ZWQgJGRlc2t0b3BJbmlUZXh0KSkgew0KICAgICAgICAgICAgQWRkLVBlbmRpbmdDYXBh
YmlsaXR5IC1TdGF0ZSAkU3RhdGUgLUlkICdyb290LWljb24tc2hlbGwtYXBwbGljYXRpb24nIC1S
ZWFzb24gJ+q4sOyhtCBkZXNrdG9wLmluaeyZgCDstqnrj4ztlZjsl6wg642u7Ja07JOw7KeAIOyV
iuyVmOyKteuLiOuLpC4g7IKs7Jqp7J6Q6rCAIOuCtOyaqeydhCDtmZXsnbjtlbTslbwg7ZWp64uI
64ukLicNCiAgICAgICAgICAgIHJldHVybiAkZmFsc2UNCiAgICAgICAgfQ0KICAgIH0NCiAgICBl
bHNlIHsgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoICRkZXNrdG9wSW5pUGF0aCAt
VGV4dCAkZGVza3RvcEluaVRleHQpIH0NCiAgICB0cnkgew0KICAgICAgICAkZGVza3RvcEluaUl0
ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGRlc2t0b3BJbmlQYXRoIC1Gb3JjZSAtRXJyb3JB
Y3Rpb24gU3RvcA0KICAgICAgICBbSU8uRmlsZV06OlNldEF0dHJpYnV0ZXMoJGRlc2t0b3BJbmlQ
YXRoLCAoJGRlc2t0b3BJbmlJdGVtLkF0dHJpYnV0ZXMgLWJvciBbSU8uRmlsZUF0dHJpYnV0ZXNd
OjpIaWRkZW4gLWJvciBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpTeXN0ZW0pKQ0KICAgICAgICAkaWNv
bkl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJFRhcmdldCAtRm9yY2UgLUVycm9yQWN0aW9u
IFN0b3ANCiAgICAgICAgW0lPLkZpbGVdOjpTZXRBdHRyaWJ1dGVzKCRUYXJnZXQsICgkaWNvbkl0
ZW0uQXR0cmlidXRlcyAtYm9yIFtJTy5GaWxlQXR0cmlidXRlc106OkhpZGRlbikpDQogICAgICAg
ICRyb290SXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkbGF5b3V0LlJvb3QgLUZvcmNlIC1F
cnJvckFjdGlvbiBTdG9wDQogICAgICAgIFtJTy5GaWxlXTo6U2V0QXR0cmlidXRlcygkbGF5b3V0
LlJvb3QsICgkcm9vdEl0ZW0uQXR0cmlidXRlcyAtYm9yIFtJTy5GaWxlQXR0cmlidXRlc106OlJl
YWRPbmx5KSkNCiAgICAgICAgUmVtb3ZlLVBlbmRpbmdDYXBhYmlsaXR5IC1TdGF0ZSAkU3RhdGUg
LUlkICdyb290LWljb24tc2hlbGwtYXBwbGljYXRpb24nDQogICAgICAgIHJldHVybiAkdHJ1ZQ0K
ICAgIH0NCiAgICBjYXRjaCB7DQogICAgICAgIEFkZC1QZW5kaW5nQ2FwYWJpbGl0eSAtU3RhdGUg
JFN0YXRlIC1JZCAncm9vdC1pY29uLXNoZWxsLWFwcGxpY2F0aW9uJyAtUmVhc29uICgn7JWE7J20
7L2YIO2MjOydvOydgCDspIDruYTtlojsp4Drp4wgV2luZG93cyDtj7TrjZQg7JWE7J207L2YIOyG
jeyEseydhCDsoIHsmqntlZjsp4Ag66q77ZaI7Iq164uI64ukOiAnICsgJF8uRXhjZXB0aW9uLk1l
c3NhZ2UpDQogICAgICAgIHJldHVybiAkZmFsc2UNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEFwcGx5
LUljb25EZWNpc2lvbiB7DQogICAgcGFyYW0oJFN0YXRlLCAkUGxhbikNCiAgICAkbW9kZSA9IFtz
dHJpbmddJFBsYW4uSWNvbk1vZGUNCiAgICAkcmVsYXRpdmVQYXRoID0gJG51bGwNCiAgICAkc291
cmNlSGFzaCA9ICRudWxsDQogICAgJGNhcGFiaWxpdHlTdGF0dXMgPSAncmVhZHknDQogICAgaWYg
KCRtb2RlIC1lcSAnZGVmYXVsdCcpIHsNCiAgICAgICAgUmVtb3ZlLVBlbmRpbmdDYXBhYmlsaXR5
IC1TdGF0ZSAkU3RhdGUgLUlkICdyb290LWljb24tZ2VuZXJhdGlvbic7IFJlbW92ZS1QZW5kaW5n
Q2FwYWJpbGl0eSAtU3RhdGUgJFN0YXRlIC1JZCAncm9vdC1pY29uLWltcG9ydCc7IFJlbW92ZS1Q
ZW5kaW5nQ2FwYWJpbGl0eSAtU3RhdGUgJFN0YXRlIC1JZCAncm9vdC1pY29uLXNoZWxsLWFwcGxp
Y2F0aW9uJw0KICAgIH0NCiAgICBlbHNlaWYgKCRtb2RlIC1lcSAnYWRvcHQtZXhpc3RpbmcnKSB7
DQogICAgICAgICRzb3VyY2UgPSBHZXQtRnVsbFBhdGggKFtzdHJpbmddJFBsYW4uSWNvblBhdGgp
DQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGhJbnNpZGUgLVBhdGggJHNvdXJjZSAtUGFyZW50
ICRsYXlvdXQuUm9vdCkpIHsgdGhyb3cgJ+yxhO2Dne2VoCDquLDsobQgSUNP6rCAIOyYge2YvCDr
sJbsnYQg6rCA66as7YK164uI64ukLicgfQ0KICAgICAgICBBc3NlcnQtTm9SZXBhcnNlUGF0aCAt
UGF0aCAkc291cmNlIC1Cb3VuZGFyeSAkbGF5b3V0LlJvb3QNCiAgICAgICAgJHJlYXNvbiA9ICRu
dWxsDQogICAgICAgIGlmICgtbm90IChUZXN0LUljb0ZpbGUgLVBhdGggJHNvdXJjZSAtUmVhc29u
IChbcmVmXSRyZWFzb24pKSkgeyB0aHJvdyAi6riw7KG0IElDT+ulvCDssYTtg53tlaAg7IiYIOyX
huyKteuLiOuLpDogJHJlYXNvbiIgfQ0KICAgICAgICAkcmVsYXRpdmVQYXRoID0gJHNvdXJjZS5T
dWJzdHJpbmcoJGxheW91dC5Sb290Lkxlbmd0aCkuVHJpbVN0YXJ0KCdcJykuUmVwbGFjZSgnXCcs
ICcvJykNCiAgICAgICAgJHNvdXJjZUhhc2ggPSBHZXQtRmlsZVNoYTI1NiAtUGF0aCAkc291cmNl
DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICAkaWNvbnMgPSBJbml0aWFsaXplLU1hbmFnZWRE
aXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkbGF5b3V0LlJvb3QgJ19pY29ucycpIC1JZGVudGl0
eSAn7JiB7Zi8IOyVhOydtOy9mCDrs7TqtIAnDQogICAgICAgICR0YXJnZXQgPSBKb2luLVBhdGgg
JGljb25zICdzb3VsLmljbycNCiAgICAgICAgaWYgKCRtb2RlIC1lcSAnZ2VuZXJhdGVkJykgew0K
ICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHRhcmdldCkpIHsg
TmV3LUxvY2FsQmFkZ2VJY28gLVBhdGggJHRhcmdldCAtTGFiZWwgJGRpc3BsYXlOYW1lIH0NCiAg
ICAgICAgICAgICRyZWFzb24gPSAkbnVsbA0KICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSWNv
RmlsZSAtUGF0aCAkdGFyZ2V0IC1SZWFzb24gKFtyZWZdJHJlYXNvbikpKSB7IHRocm93ICLroZzs
u6wg7IOd7ISxIOyVhOydtOy9mOydhCDsirnsnbjtlaAg7IiYIOyXhuyKteuLiOuLpDogJHJlYXNv
biIgfQ0KICAgICAgICAgICAgUmVtb3ZlLVBlbmRpbmdDYXBhYmlsaXR5IC1TdGF0ZSAkU3RhdGUg
LUlkICdyb290LWljb24tZ2VuZXJhdGlvbicNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAg
ICAgICAgICAgICRzb3VyY2UgPSBHZXQtRnVsbFBhdGggKFtzdHJpbmddJFBsYW4uSWNvblBhdGgp
DQogICAgICAgICAgICAkcmVhc29uID0gJG51bGwNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0
LUljb0ZpbGUgLVBhdGggJHNvdXJjZSAtUmVhc29uIChbcmVmXSRyZWFzb24pKSkgeyB0aHJvdyAi
7ISg7YOd7ZWcIOyVhOydtOy9mOydhCDqsIDsoLjsmKwg7IiYIOyXhuyKteuLiOuLpDogJHJlYXNv
biIgfQ0KICAgICAgICAgICAgJGFwcHJvdmVkSGFzaCA9IEdldC1GaWxlU2hhMjU2IC1QYXRoICRz
b3VyY2UNCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICR0YXJnZXQpIHsN
CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkdGFyZ2V0
IC1QYXRoVHlwZSBMZWFmKSAtb3IgKEdldC1GaWxlU2hhMjU2IC1QYXRoICR0YXJnZXQpIC1jbmUg
JGFwcHJvdmVkSGFzaCkgeyB0aHJvdyAi6riw7KG0IOyVhOydtOy9mOqzvCDsirnsnbjtlZwg7JWE
7J207L2Y7J20IOuLrOudvCDrja7slrTsk7Dsp4Ag7JWK7Iq164uI64ukOiAkdGFyZ2V0IiB9DQog
ICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAkdGVtcG9y
YXJ5ID0gSm9pbi1QYXRoICRpY29ucyAoJy5zb3VsLWljb24tJyArIFtndWlkXTo6TmV3R3VpZCgp
LlRvU3RyaW5nKCdOJykgKyAnLnRtcCcpDQogICAgICAgICAgICAgICAgdHJ5IHsgW0lPLkZpbGVd
OjpDb3B5KCRzb3VyY2UsICR0ZW1wb3JhcnksICRmYWxzZSk7IGlmICgoR2V0LUZpbGVTaGEyNTYg
LVBhdGggJHRlbXBvcmFyeSkgLWNuZSAkYXBwcm92ZWRIYXNoKSB7IHRocm93ICfslYTsnbTsvZgg
67O17IKsIOyngOusuOydtCDsm5Drs7jqs7wg64uk66aF64uI64ukLicgfTsgW0lPLkZpbGVdOjpN
b3ZlKCR0ZW1wb3JhcnksICR0YXJnZXQpIH0NCiAgICAgICAgICAgICAgICBmaW5hbGx5IHsgaWYg
KFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHRlbXBvcmFyeSAtUGF0aFR5cGUgTGVhZikgeyBbSU8u
RmlsZV06OkRlbGV0ZSgkdGVtcG9yYXJ5KSB9IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg
IFJlbW92ZS1QZW5kaW5nQ2FwYWJpbGl0eSAtU3RhdGUgJFN0YXRlIC1JZCAncm9vdC1pY29uLWlt
cG9ydCcNCiAgICAgICAgfQ0KICAgICAgICAkcmVsYXRpdmVQYXRoID0gJ19pY29ucy9zb3VsLmlj
bycNCiAgICAgICAgJHNvdXJjZUhhc2ggPSBHZXQtRmlsZVNoYTI1NiAtUGF0aCAkdGFyZ2V0DQog
ICAgICAgIGlmICgtbm90IChTZXQtUm9vdEljb25NZXRhZGF0YSAtU3RhdGUgJFN0YXRlIC1UYXJn
ZXQgJHRhcmdldCkpIHsgJGNhcGFiaWxpdHlTdGF0dXMgPSAncGVuZGluZycgfQ0KICAgIH0NCiAg
ICAkaWNvbkNhbm9uaWNhbCA9IFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBtb2RlID0gJG1v
ZGU7IHNvdXJjZUhhc2ggPSAkc291cmNlSGFzaDsgcmVsYXRpdmVQYXRoID0gJHJlbGF0aXZlUGF0
aDsgdGFyZ2V0ID0gJ3Jvb3QnIH0NCiAgICAkaWNvbkRlY2lzaW9uID0gW3BzY3VzdG9tb2JqZWN0
XVtvcmRlcmVkXUB7DQogICAgICAgIHN0YXR1cyA9ICdhcHByb3ZlZCcNCiAgICAgICAgbW9kZSA9
ICRtb2RlDQogICAgICAgIHJlbGF0aXZlUGF0aCA9ICRyZWxhdGl2ZVBhdGgNCiAgICAgICAgc291
cmNlSGFzaCA9ICRzb3VyY2VIYXNoDQogICAgICAgIHRhcmdldCA9ICdyb290Jw0KICAgICAgICBj
YXBhYmlsaXR5U3RhdHVzID0gJGNhcGFiaWxpdHlTdGF0dXMNCiAgICAgICAgZGVjaXNpb25IYXNo
ID0gR2V0LVRleHRTaGEyNTYgLVRleHQgKENvbnZlcnRUby1DYW5vbmljYWxKc29uIC1WYWx1ZSAk
aWNvbkNhbm9uaWNhbCkNCiAgICB9DQogICAgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkU3Rh
dGUgLU5hbWUgJ2ljb25EZWNpc2lvbicgLVZhbHVlICRpY29uRGVjaXNpb24NCiAgICByZXR1cm4g
JGljb25EZWNpc2lvbg0KfQ0KDQokZGVjaXNpb25XYXNDb21wbGV0ZSA9IFRlc3QtRGVjaXNpb25D
b21wbGV0ZSAtU3RhdGUgJHN0YXRlDQokYXBwcm92ZWRQbGFuID0gJG51bGwNCmlmICgtbm90ICRk
ZWNpc2lvbldhc0NvbXBsZXRlKSB7DQogICAgJHJlc3VsdFBhdGggPSBSZXNvbHZlLUFwcHJvdmVk
V2l6YXJkUmVzdWx0IC1TdGF0ZSAkc3RhdGUNCiAgICBpZiAoJG51bGwgLWVxICRyZXN1bHRQYXRo
KSB7DQogICAgICAgICR3aXphcmRSdW4gPSBJbnZva2UtV2l6YXJkRm9yTWlzc2luZ0RlY2lzaW9u
IC1TdGF0ZSAkc3RhdGUNCiAgICAgICAgaWYgKC1ub3QgJHdpemFyZFJ1bi5Db21wbGV0ZWQpIHsN
CiAgICAgICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAnd2l6YXJkLXBhdXNlZCc7
IHNvdWxSb290ID0gJGxheW91dC5Sb290OyB0cmFuc2FjdGlvbklkID0gJHdpemFyZFJ1bi5UcmFu
c2FjdGlvbklkOyB3aXphcmRFeGl0Q29kZSA9ICR3aXphcmRSdW4uRXhpdENvZGUgfQ0KICAgICAg
ICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgICAgJHJlc3VsdFBhdGggPSAkd2l6YXJkUnVu
LlJlc3VsdFBhdGgNCiAgICB9DQogICAgJHdpemFyZFJlc3VsdCA9IEdldC1Db250ZW50IC1MaXRl
cmFsUGF0aCAkcmVzdWx0UGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNv
biAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICRyZXN1bHRUcmFuc2FjdGlvbklkID0gU3BsaXQtUGF0
aCAtTGVhZiAoU3BsaXQtUGF0aCAtUGFyZW50IChHZXQtRnVsbFBhdGggJHJlc3VsdFBhdGgpKQ0K
ICAgICRhcHByb3ZlZFBsYW4gPSBDb252ZXJ0VG8tQXBwcm92ZWRQbGFuIC1SZXN1bHQgJHdpemFy
ZFJlc3VsdCAtRXhwZWN0ZWRUcmFuc2FjdGlvbklkICRyZXN1bHRUcmFuc2FjdGlvbklkDQogICAg
QXNzZXJ0LVBsYW5uZWRGb2xkZXJDb2xsaXNpb25zIC1SZWNvcmRzICRhcHByb3ZlZFBsYW4uUmVj
b3Jkcw0KDQogICAgJGxhdW5jaGVyUGF0aEZvckNvbGxpc2lvbiA9IEpvaW4tUGF0aCAkbGF5b3V0
LlJvb3QgKCgtam9pbiBAKFtjaGFyXTB4QzE4QywgW2NoYXJdMHhENjU4LCBbY2hhcl0weEQ1NTgs
IFtjaGFyXTB4QUUzMCkpICsgJy5jbWQnKQ0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRsYXVuY2hlclBhdGhGb3JDb2xsaXNpb24pIHsNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtRXhh
Y3RVdGY4VGV4dCAtUGF0aCAkbGF1bmNoZXJQYXRoRm9yQ29sbGlzaW9uIC1FeHBlY3RlZCAkbGF1
bmNoZXJUZXh0KSkgew0KICAgICAgICAgICAgdGhyb3cgIuq4sOyhtCDshoztmZjquLDsmYAg7J20
66aE7J20IOqyuey5qeuLiOuLpC4g642u7Ja07JOw7KeAIOyViuyKteuLiOuLpDogJGxhdW5jaGVy
UGF0aEZvckNvbGxpc2lvbiINCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIEFwcGx5LUFwcHJvdmVk
Rm9sZGVycyAtUmVjb3JkcyAkYXBwcm92ZWRQbGFuLlJlY29yZHMNCiAgICAkc3RydWN0dXJlQ2Fu
b25pY2FsID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgIHRyYW5zYWN0aW9u
SWQgPSAkYXBwcm92ZWRQbGFuLlRyYW5zYWN0aW9uSWQNCiAgICAgICAgbm9kZXMgPSBAKCRhcHBy
b3ZlZFBsYW4uUmVjb3JkcykNCiAgICAgICAgZGVmZXJyZWRMZXZlbHMgPSBAKCRhcHByb3ZlZFBs
YW4uRGVmZXJyZWRMZXZlbHMpDQogICAgfQ0KICAgICRzdHJ1Y3R1cmVIYXNoID0gR2V0LVRleHRT
aGEyNTYgLVRleHQgKENvbnZlcnRUby1DYW5vbmljYWxKc29uIC1WYWx1ZSAkc3RydWN0dXJlQ2Fu
b25pY2FsKQ0KICAgICRzdHJ1Y3R1cmVTdGF0dXMgPSBpZiAoJGFwcHJvdmVkUGxhbi5EZWZlcnJl
ZExldmVscy5Db3VudCAtZ3QgMCAtb3IgQCgkd2l6YXJkUmVzdWx0Lm5vZGVzIHwgV2hlcmUtT2Jq
ZWN0IHsgW3N0cmluZ10kXy5zdGF0dXMgLWVxICdkZWZlcnJlZCcgfSkuQ291bnQgLWd0IDApIHsg
J3BhcnRpYWxseS1kZWZlcnJlZCcgfSBlbHNlIHsgJ2FwcHJvdmVkJyB9DQogICAgJHN0cnVjdHVy
ZURlY2lzaW9uID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgIHN0YXR1cyA9
ICRzdHJ1Y3R1cmVTdGF0dXMNCiAgICAgICAgYXBwcm92ZWRBdCA9IFtEYXRlVGltZV06OlV0Y05v
dy5Ub1N0cmluZygnbycpDQogICAgICAgIGRlY2lzaW9uSGFzaCA9ICRzdHJ1Y3R1cmVIYXNoDQog
ICAgICAgIHRyYW5zYWN0aW9uSWQgPSAkYXBwcm92ZWRQbGFuLlRyYW5zYWN0aW9uSWQNCiAgICAg
ICAgYXBwcm92ZWROb2RlSWRzID0gQCgkYXBwcm92ZWRQbGFuLlJlY29yZHMgfCBGb3JFYWNoLU9i
amVjdCB7IFtzdHJpbmddJF8uaWQgfSkNCiAgICAgICAgZGVmZXJyZWRMZXZlbHMgPSBAKCRhcHBy
b3ZlZFBsYW4uRGVmZXJyZWRMZXZlbHMpDQogICAgICAgIG5vZGVzID0gQCgkYXBwcm92ZWRQbGFu
LlJlY29yZHMpDQogICAgICAgIHdpemFyZFJlc3VsdFJlbGF0aXZlUGF0aCA9IChHZXQtRnVsbFBh
dGggJHJlc3VsdFBhdGgpLlN1YnN0cmluZygkbGF5b3V0LlJvb3QuTGVuZ3RoKS5UcmltU3RhcnQo
J1wnKS5SZXBsYWNlKCdcJywgJy8nKQ0KICAgIH0NCiAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2Jq
ZWN0ICRzdGF0ZSAtTmFtZSAnc3RydWN0dXJlRGVjaXNpb24nIC1WYWx1ZSAkc3RydWN0dXJlRGVj
aXNpb24NCiAgICAkaWNvbkRlY2lzaW9uID0gQXBwbHktSWNvbkRlY2lzaW9uIC1TdGF0ZSAkc3Rh
dGUgLVBsYW4gJGFwcHJvdmVkUGxhbg0KICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0
YXRlIC1OYW1lICdwZW5kaW5nVHJhbnNhY3Rpb24nIC1WYWx1ZSAkbnVsbA0KICAgIFNldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICdibG9ja2VkUmVhc29uJyAtVmFsdWUgJG51
bGwNCiAgICBTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRzdGF0ZSAtTmFtZSAnbGlmZWN5Y2xl
JyAtVmFsdWUgJ3BlbmRpbmctZmluYWxpemUnDQogICAgU2V0LVByb3BlcnR5VmFsdWUgLU9iamVj
dCAkc3RhdGUgLU5hbWUgJ21hY2hpbmVSZWFkeScgLVZhbHVlICRmYWxzZQ0KICAgIFNldC1Qcm9w
ZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICd1cGRhdGVkQXQnIC1WYWx1ZSAoW0RhdGVU
aW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJykpDQogICAgV3JpdGUtU3RhdGVBdG9taWMgLVZhbHVl
ICRzdGF0ZQ0KfQ0KZWxzZSB7DQogICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVT
cGFjZSgkQXBwcm92ZWRXaXphcmRSZXN1bHRQYXRoKSkgew0KICAgICAgICB0aHJvdyAn6rWs7KGw
7JmAIOyVhOydtOy9mCDqsrDsoJXsnbQg7J2066+4IOyeiOyWtCDsg4gg7Iq57J24IOqysOqzvOul
vCDsoIHsmqntlZjsp4Ag7JWK7Iq164uI64ukLicNCiAgICB9DQogICAgJHN0cnVjdHVyZURlY2lz
aW9uID0gR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ3N0cnVjdHVyZURl
Y2lzaW9uJw0KICAgICRpY29uRGVjaXNpb24gPSBHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRz
dGF0ZSAtTmFtZSAnaWNvbkRlY2lzaW9uJw0KICAgICRzdHJ1Y3R1cmVIYXNoID0gW3N0cmluZ10o
R2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RydWN0dXJlRGVjaXNpb24gLU5hbWUgJ2RlY2lz
aW9uSGFzaCcpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHN0cnVjdHVy
ZUhhc2gpKSB7DQogICAgICAgICRzdHJ1Y3R1cmVIYXNoID0gR2V0LVRleHRTaGEyNTYgLVRleHQg
KENvbnZlcnRUby1DYW5vbmljYWxKc29uIC1WYWx1ZSAkc3RydWN0dXJlRGVjaXNpb24pDQogICAg
ICAgIFNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0cnVjdHVyZURlY2lzaW9uIC1OYW1lICdk
ZWNpc2lvbkhhc2gnIC1WYWx1ZSAkc3RydWN0dXJlSGFzaA0KICAgIH0NCiAgICAkZXhpc3RpbmdE
ZWNpc2lvbkljb25IYXNoID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkaWNv
bkRlY2lzaW9uIC1OYW1lICdkZWNpc2lvbkhhc2gnKQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRleGlzdGluZ0RlY2lzaW9uSWNvbkhhc2gpKSB7DQogICAgICAgICRleGlz
dGluZ0RlY2lzaW9uSWNvbkhhc2ggPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAoQ29udmVydFRvLUNh
bm9uaWNhbEpzb24gLVZhbHVlICRpY29uRGVjaXNpb24pDQogICAgICAgIFNldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJGljb25EZWNpc2lvbiAtTmFtZSAnZGVjaXNpb25IYXNoJyAtVmFsdWUgJGV4
aXN0aW5nRGVjaXNpb25JY29uSGFzaA0KICAgIH0NCiAgICBBcHBseS1BcHByb3ZlZEZvbGRlcnMg
LVJlY29yZHMgQCgoR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RydWN0dXJlRGVjaXNpb24g
LU5hbWUgJ25vZGVzJyAtRGVmYXVsdCBAKCkpKQ0KfQ0KDQppZiAoW3N0cmluZ10oR2V0LVByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ3NvdWxJZCcpIC1jbmUgJG9yaWdpbmFsU291
bElkKSB7DQogICAgdGhyb3cgJ+u2gO2KuOyKpO2KuOueqSDrj4TspJEgc291bElk6rCAIOuwlOuA
jOyXiOyKteuLiOuLpC4g6riw66Gd7J2EIOykkeuLqO2VqeuLiOuLpC4nDQp9DQoNCiRtYXBQYXRo
ID0gSm9pbi1QYXRoICRsYXlvdXQuU2V0dXAgJ21hcC1nZW5lcmF0b3IucHMxJw0KJHN0YWdlUGF0
aCA9IEpvaW4tUGF0aCAkbGF5b3V0LlNldHVwICdzdGFnZS12Ny5wczEnDQokbGF1bmNoZXJTY3Jp
cHRQYXRoID0gSm9pbi1QYXRoICRsYXlvdXQuU2V0dXAgJ2xhdW5jaGVyLnBzMScNCmZvcmVhY2gg
KCRyZXF1aXJlZFBhdGggaW4gQCgkbWFwUGF0aCwgJHN0YWdlUGF0aCwgJGxhdW5jaGVyU2NyaXB0
UGF0aCkpIHsNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcmVxdWlyZWRQ
YXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi7ZWE7IiYIOyLpO2WiSDtjIzsnbzsnbQg7JeG
7Iq164uI64ukOiAkcmVxdWlyZWRQYXRoIiB9DQp9DQokbGF1bmNoZXJOYW1lID0gKC1qb2luIEAo
W2NoYXJdMHhDMThDLCBbY2hhcl0weEQ2NTgsIFtjaGFyXTB4RDU1OCwgW2NoYXJdMHhBRTMwKSkg
KyAnLmNtZCcNCiRsYXVuY2hlclBhdGggPSBKb2luLVBhdGggJGxheW91dC5Sb290ICRsYXVuY2hl
ck5hbWUNCmlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRsYXVuY2hlclBhdGgpIHsNCiAgICBp
ZiAoLW5vdCAoVGVzdC1FeGFjdFV0ZjhUZXh0IC1QYXRoICRsYXVuY2hlclBhdGggLUV4cGVjdGVk
ICRsYXVuY2hlclRleHQpKSB7DQogICAgICAgIHRocm93ICLquLDsobQg7IaM7ZmY6riw66W8IOuN
ruyWtOyTsOyngCDslYrsirXri4jri6Q6ICRsYXVuY2hlclBhdGgiDQogICAgfQ0KfQ0KDQokbWFw
T3V0cHV0ID0gQCgmICRtYXBQYXRoIC1Tb3VsUm9vdCAkbGF5b3V0LlJvb3QpDQokbWFwUmVzdWx0
ID0gQCgkbWFwT3V0cHV0IHwgV2hlcmUtT2JqZWN0IHsgJG51bGwgLW5lICRfLlBTT2JqZWN0LlBy
b3BlcnRpZXNbJ291dHB1dFBhdGgnXSB9KSB8IFNlbGVjdC1PYmplY3QgLUxhc3QgMQ0KaWYgKCRu
dWxsIC1lcSAkbWFwUmVzdWx0IC1vciBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0
ICRtYXBSZXN1bHQgLU5hbWUgJ3N0YXR1cycpIC1uZSAnZ2VuZXJhdGVkJykgew0KICAgIHRocm93
ICfqtazsobDsp4Drj4Trpbwg66eM65Ok7KeAIOuqu+2WiOyKteuLiOuLpC4nDQp9DQoNCiRleGlz
dGluZ0Jvb3RzdHJhcCA9IEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YXRlIC1OYW1lICdi
b290c3RyYXAnDQokZXhpc3RpbmdIYXNoID0gW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9i
amVjdCAkZXhpc3RpbmdCb290c3RyYXAgLU5hbWUgJ3N0cnVjdHVyZURlY2lzaW9uSGFzaCcpDQok
ZXhpc3RpbmdJY29uSGFzaCA9IFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGV4
aXN0aW5nQm9vdHN0cmFwIC1OYW1lICdpY29uRGVjaXNpb25IYXNoJykNCiRjdXJyZW50SWNvbkhh
c2ggPSBbc3RyaW5nXShHZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRpY29uRGVjaXNpb24gLU5h
bWUgJ2RlY2lzaW9uSGFzaCcpDQokZXhpc3RpbmdHZW5lcmF0aW9uSWQgPSBbc3RyaW5nXShHZXQt
UHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRleGlzdGluZ0Jvb3RzdHJhcCAtTmFtZSAnZ2VuZXJhdGlv
bklkJykNCiRjdXJyZW50TG9ja1BhdGggPSBKb2luLVBhdGggJGxheW91dC5TZXR1cCAnbWFuaWZl
c3RzXHY3LWxvY2suanNvbicNCmZ1bmN0aW9uIFRlc3QtUmV1c2FibGVQZW5kaW5nU3RhZ2Ugew0K
ICAgIHBhcmFtKFtzdHJpbmddJEdlbmVyYXRpb25JZCkNCiAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkR2VuZXJhdGlvbklkKSAtb3IgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFs
UGF0aCAkY3VycmVudExvY2tQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyByZXR1cm4gJGZhbHNlIH0N
CiAgICB0cnkgew0KICAgICAgICAkZ2VuZXJhdGlvbkRpcmVjdG9yeSA9IEpvaW4tUGF0aCAkbGF5
b3V0LlNldHVwICgnZ2VuZXJhdGlvbnNcJyArICRHZW5lcmF0aW9uSWQpDQogICAgICAgIGlmICgt
bm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5IC1QYXRoVHlw
ZSBDb250YWluZXIpKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICBBc3NlcnQtTm9SZXBhcnNl
UGF0aCAtUGF0aCAkZ2VuZXJhdGlvbkRpcmVjdG9yeSAtQm91bmRhcnkgJGxheW91dC5Sb290DQog
ICAgICAgICRtYW5pZmVzdFBhdGggPSBKb2luLVBhdGggJGdlbmVyYXRpb25EaXJlY3RvcnkgJ2dl
bmVyYXRpb24uanNvbicNCiAgICAgICAgJGNvcGllZExvY2tQYXRoID0gSm9pbi1QYXRoICRnZW5l
cmF0aW9uRGlyZWN0b3J5ICdzb3VyY2UtbG9jay5qc29uJw0KICAgICAgICBmb3JlYWNoICgkY2Fu
ZGlkYXRlIGluIEAoJG1hbmlmZXN0UGF0aCwgJGNvcGllZExvY2tQYXRoKSkgew0KICAgICAgICAg
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNhbmRpZGF0ZSAtUGF0aFR5cGUg
TGVhZikpIHsgcmV0dXJuICRmYWxzZSB9DQogICAgICAgICAgICBBc3NlcnQtTm9SZXBhcnNlUGF0
aCAtUGF0aCAkY2FuZGlkYXRlIC1Cb3VuZGFyeSAkbGF5b3V0LlJvb3QNCiAgICAgICAgfQ0KICAg
ICAgICAkbWFuaWZlc3QgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRtYW5pZmVzdFBhdGgNCiAgICAg
ICAgJGN1cnJlbnRMb2NrSGFzaCA9IEdldC1GaWxlU2hhMjU2IC1QYXRoICRjdXJyZW50TG9ja1Bh
dGgNCiAgICAgICAgcmV0dXJuIFtpbnRdKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG1hbmlm
ZXN0IC1OYW1lICdzY2hlbWFWZXJzaW9uJykgLWVxIDcgLWFuZA0KICAgICAgICAgICAgW3N0cmlu
Z10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbWFuaWZlc3QgLU5hbWUgJ2dlbmVyYXRpb25J
ZCcpIC1jZXEgJEdlbmVyYXRpb25JZCAtYW5kDQogICAgICAgICAgICBbc3RyaW5nXShHZXQtUHJv
cGVydHlWYWx1ZSAtT2JqZWN0ICRtYW5pZmVzdCAtTmFtZSAnc291bElkJykgLWNlcSAkb3JpZ2lu
YWxTb3VsSWQgLWFuZA0KICAgICAgICAgICAgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9i
amVjdCAkbWFuaWZlc3QgLU5hbWUgJ3N0YXR1cycpIC1lcSAncGVuZGluZy1maW5hbGl6ZScgLWFu
ZA0KICAgICAgICAgICAgKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG1hbmlmZXN0IC1OYW1l
ICdtYWNoaW5lUmVhZHknKSAtZXEgJGZhbHNlIC1hbmQNCiAgICAgICAgICAgIChHZXQtUHJvcGVy
dHlWYWx1ZSAtT2JqZWN0ICRtYW5pZmVzdCAtTmFtZSAnY29uZmlnQXBwbGllZCcpIC1lcSAkZmFs
c2UgLWFuZA0KICAgICAgICAgICAgKEdldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJG1hbmlmZXN0
IC1OYW1lICdwcm90ZWN0ZWRMaXZlRmlsZXNVbmNoYW5nZWQnKSAtZXEgJHRydWUgLWFuZA0KICAg
ICAgICAgICAgW3N0cmluZ10oR2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkbWFuaWZlc3QgLU5h
bWUgJ3NvdXJjZUxvY2tTaGEyNTYnKSAtY2VxICRjdXJyZW50TG9ja0hhc2ggLWFuZA0KICAgICAg
ICAgICAgKEdldC1GaWxlU2hhMjU2IC1QYXRoICRjb3BpZWRMb2NrUGF0aCkgLWNlcSAkY3VycmVu
dExvY2tIYXNoDQogICAgfQ0KICAgIGNhdGNoIHsgcmV0dXJuICRmYWxzZSB9DQp9DQokZ2VuZXJh
dGlvbkV4aXN0cyA9IFRlc3QtUmV1c2FibGVQZW5kaW5nU3RhZ2UgLUdlbmVyYXRpb25JZCAkZXhp
c3RpbmdHZW5lcmF0aW9uSWQNCiRyZXVzZVN0YWdlID0gLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JX
aGl0ZVNwYWNlKCRzdHJ1Y3R1cmVIYXNoKSAtYW5kICRleGlzdGluZ0hhc2ggLWNlcSAkc3RydWN0
dXJlSGFzaCAtYW5kDQogICAgJGV4aXN0aW5nSWNvbkhhc2ggLWNlcSAkY3VycmVudEljb25IYXNo
IC1hbmQgJGdlbmVyYXRpb25FeGlzdHMgLWFuZA0KICAgIFtzdHJpbmddKEdldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJGV4aXN0aW5nQm9vdHN0cmFwIC1OYW1lICdzdGFnZVN0YXR1cycpIC1lcSAn
cGVuZGluZy1maW5hbGl6ZScNCg0KaWYgKCRyZXVzZVN0YWdlKSB7DQogICAgJHN0YWdlUmVzdWx0
ID0gW3BzY3VzdG9tb2JqZWN0XUB7IGdlbmVyYXRpb25JZCA9ICRleGlzdGluZ0dlbmVyYXRpb25J
ZDsgc3RhdHVzID0gJ3BlbmRpbmctZmluYWxpemUnOyByZXVzZWQgPSAkdHJ1ZSB9DQp9DQplbHNl
IHsNCiAgICAkc3RhZ2VBcmd1bWVudHMgPSBAeyBQcmVwYXJlU3RhdGljU3RhZ2UgPSAkdHJ1ZSB9
DQogICAgaWYgKCRmaXh0dXJlUnVuKSB7ICRzdGFnZUFyZ3VtZW50cy5UZXN0Um9vdCA9ICRsYXlv
dXQuUm9vdCB9DQogICAgJHN0YWdlT3V0cHV0ID0gQCgmICRzdGFnZVBhdGggQHN0YWdlQXJndW1l
bnRzKQ0KICAgICRzdGFnZVJlc3VsdCA9IEAoJHN0YWdlT3V0cHV0IHwgV2hlcmUtT2JqZWN0IHsg
JG51bGwgLW5lICRfLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2dlbmVyYXRpb25JZCddIC1hbmQgJG51
bGwgLW5lICRfLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0YXR1cyddIH0pIHwgU2VsZWN0LU9iamVj
dCAtTGFzdCAxDQogICAgaWYgKCRudWxsIC1lcSAkc3RhZ2VSZXN1bHQgLW9yIFtzdHJpbmddKEdl
dC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJHN0YWdlUmVzdWx0IC1OYW1lICdzdGF0dXMnKSAtbmUg
J3BlbmRpbmctZmluYWxpemUnKSB7DQogICAgICAgIHRocm93ICfsoJXsoIEg7ISk7LmYIOyEuOuM
gOulvCDspIDruYTtlZjsp4Ag66q77ZaI7Iq164uI64ukLicNCiAgICB9DQp9DQoNCmlmIChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRsYXVuY2hlclBhdGgpIHsNCiAgICBpZiAoLW5vdCAoVGVzdC1F
eGFjdFV0ZjhUZXh0IC1QYXRoICRsYXVuY2hlclBhdGggLUV4cGVjdGVkICRsYXVuY2hlclRleHQp
KSB7DQogICAgICAgIHRocm93ICLquLDsobQg7IaM7ZmY6riw66W8IOuNruyWtOyTsOyngCDslYrs
irXri4jri6Q6ICRsYXVuY2hlclBhdGgiDQogICAgfQ0KfQ0KZWxzZSB7IFt2b2lkXShXcml0ZS1T
b3VsVXRmOEF0b21pYyAtUGF0aCAkbGF1bmNoZXJQYXRoIC1UZXh0ICRsYXVuY2hlclRleHQpIH0N
Cg0KaWYgKCRudWxsIC1lcSAkZXhpc3RpbmdCb290c3RyYXApIHsgJGV4aXN0aW5nQm9vdHN0cmFw
ID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IHNjaGVtYVZlcnNpb24gPSAxIH0gfQ0KU2V0
LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkZXhpc3RpbmdCb290c3RyYXAgLU5hbWUgJ3NjaGVtYVZl
cnNpb24nIC1WYWx1ZSAxDQpTZXQtUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRleGlzdGluZ0Jvb3Rz
dHJhcCAtTmFtZSAnc3RydWN0dXJlRGVjaXNpb25IYXNoJyAtVmFsdWUgJHN0cnVjdHVyZUhhc2gN
ClNldC1Qcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGV4aXN0aW5nQm9vdHN0cmFwIC1OYW1lICdpY29u
RGVjaXNpb25IYXNoJyAtVmFsdWUgJGN1cnJlbnRJY29uSGFzaA0KU2V0LVByb3BlcnR5VmFsdWUg
LU9iamVjdCAkZXhpc3RpbmdCb290c3RyYXAgLU5hbWUgJ3NvdXJjZUxvY2tTaGEyNTYnIC1WYWx1
ZSAoR2V0LUZpbGVTaGEyNTYgLVBhdGggJGN1cnJlbnRMb2NrUGF0aCkNClNldC1Qcm9wZXJ0eVZh
bHVlIC1PYmplY3QgJGV4aXN0aW5nQm9vdHN0cmFwIC1OYW1lICdtYXBSZWxhdGl2ZVBhdGgnIC1W
YWx1ZSAoW3N0cmluZ10kbWFwUmVzdWx0Lm91dHB1dFBhdGgpLlN1YnN0cmluZygkbGF5b3V0LlJv
b3QuTGVuZ3RoKS5UcmltU3RhcnQoJ1wnKS5SZXBsYWNlKCdcJywgJy8nKQ0KU2V0LVByb3BlcnR5
VmFsdWUgLU9iamVjdCAkZXhpc3RpbmdCb290c3RyYXAgLU5hbWUgJ2dlbmVyYXRpb25JZCcgLVZh
bHVlIChbc3RyaW5nXSRzdGFnZVJlc3VsdC5nZW5lcmF0aW9uSWQpDQpTZXQtUHJvcGVydHlWYWx1
ZSAtT2JqZWN0ICRleGlzdGluZ0Jvb3RzdHJhcCAtTmFtZSAnc3RhZ2VTdGF0dXMnIC1WYWx1ZSAo
W3N0cmluZ10kc3RhZ2VSZXN1bHQuc3RhdHVzKQ0KU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAk
ZXhpc3RpbmdCb290c3RyYXAgLU5hbWUgJ3N0YWdlZEF0JyAtVmFsdWUgKFtEYXRlVGltZV06OlV0
Y05vdy5Ub1N0cmluZygnbycpKQ0KU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5h
bWUgJ2Jvb3RzdHJhcCcgLVZhbHVlICRleGlzdGluZ0Jvb3RzdHJhcA0KU2V0LVByb3BlcnR5VmFs
dWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ2xpZmVjeWNsZScgLVZhbHVlICdwZW5kaW5nLWZpbmFs
aXplJw0KU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5hbWUgJ21hY2hpbmVSZWFk
eScgLVZhbHVlICRmYWxzZQ0KU2V0LVByb3BlcnR5VmFsdWUgLU9iamVjdCAkc3RhdGUgLU5hbWUg
J3VwZGF0ZWRBdCcgLVZhbHVlIChbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKSkNCldy
aXRlLVN0YXRlQXRvbWljIC1WYWx1ZSAkc3RhdGUNCg0KW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVk
XUB7DQogICAgc3RhdHVzID0gJ3BlbmRpbmctZmluYWxpemUnDQogICAgc291bFJvb3QgPSAkbGF5
b3V0LlJvb3QNCiAgICBzb3VsSWQgPSAkb3JpZ2luYWxTb3VsSWQNCiAgICBkZWNpc2lvbnNSZXVz
ZWQgPSAkZGVjaXNpb25XYXNDb21wbGV0ZQ0KICAgIGdlbmVyYXRpb25SZXVzZWQgPSAkcmV1c2VT
dGFnZQ0KICAgIGdlbmVyYXRpb25JZCA9IFtzdHJpbmddJHN0YWdlUmVzdWx0LmdlbmVyYXRpb25J
ZA0KICAgIG1hcFBhdGggPSBbc3RyaW5nXSRtYXBSZXN1bHQub3V0cHV0UGF0aA0KICAgIGxhdW5j
aGVyUGF0aCA9ICRsYXVuY2hlclBhdGgNCiAgICBsaXZlQWdlbnRIb21lc0NoYW5nZWQgPSAkZmFs
c2UNCiAgICBhY3RpdmVHZW5lcmF0aW9uQ2hhbmdlZCA9ICRmYWxzZQ0KICAgIGZpbmFsaXplclJh
biA9ICRmYWxzZQ0KICAgIGRlc2t0b3BXcml0ZXMgPSAkZmFsc2UNCn0NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/engine/AGENTS.md","encoding":"base64","size":182,"runtimeSha256":"55ffb35c4107fdd06c50b292c88e68a81a622e9d593ac3d036d64686a0b31348","normalizedSha256":"72a928c3b9c09b6dd06ca3d2699503a822c1ce705497980acd4b99f518454d7c"} -->
```base64
IyDshKTsuZgg7JeU7KeEDQoNCuydtCDtj7TrjZTripQg6riw7KG0IOyekOujjOulvCDrs7TsobTt
lZjrqbAg7ISk7LmYwrfsl4XrjbDsnbTtirjrpbwg7IiY7ZaJ7ZWY64qUIOqzteyaqSDsl5Tsp4Tr
p4wg64u064qU64ukLg0KDQo8IS0tIOyDgeychCBBR0VOVFMubWQg6rec7LmZIOyerOyEnOyIoCDq
uIjsp4AgLS0+DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/engine/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/engine/Soul.Engine.psm1","encoding":"base64","size":40629,"runtimeSha256":"3b295fecb1bdef50f5829071f11867464596e957bbab2fd5aaf41e6809bb2ecf","normalizedSha256":"40c4247585d0686df71b8eced93173ad1f98d20908d083087ae2854e8ba0dae8"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRl
c3QNCg0KIyBUaGlzIG1vZHVsZSBpbnRlbnRpb25hbGx5IGRlcml2ZXMgdGhlIHNvdWwgcm9vdCBv
bmx5IGZyb20gaXRzIG93biBsb2NhdGlvbjoNCiMgPHNvdWw+XF9hZ2VudFxzZXR1cFxlbmdpbmVc
U291bC5FbmdpbmUucHNtMQ0KJHNjcmlwdDpNb2R1bGVEaXJlY3RvcnkgPSBbU3lzdGVtLklPLlBh
dGhdOjpHZXRGdWxsUGF0aCgkUFNTY3JpcHRSb290KS5UcmltRW5kKCdcJywgJy8nKQ0KJHNjcmlw
dDpTZXR1cERpcmVjdG9yeSA9IFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6R2V0UGFyZW50KCRzY3Jp
cHQ6TW9kdWxlRGlyZWN0b3J5KS5GdWxsTmFtZQ0KJHNjcmlwdDpBZ2VudERpcmVjdG9yeSA9IFtT
eXN0ZW0uSU8uRGlyZWN0b3J5XTo6R2V0UGFyZW50KCRzY3JpcHQ6U2V0dXBEaXJlY3RvcnkpLkZ1
bGxOYW1lDQokc2NyaXB0OlNvdWxSb290ID0gW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpHZXRQYXJl
bnQoJHNjcmlwdDpBZ2VudERpcmVjdG9yeSkuRnVsbE5hbWUNCiRzY3JpcHQ6VXRmOE5vQm9tID0g
TmV3LU9iamVjdCBTeXN0ZW0uVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0KJHNjcmlwdDpQYXRo
Q29tcGFyaXNvbiA9IFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNl
DQokc2NyaXB0OkFsbG93ZWRFeHRlcm5hbEtpbmRzID0gQCgnYWRhcHRlcicsICdjb25maWctcG9p
bnRlcicsICdlbnZpcm9ubWVudC1wb2ludGVyJywgJ2p1bmN0aW9uJykNCg0KaWYgKC1ub3QgKFtT
eXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRzY3JpcHQ6U2V0dXBEaXJlY3RvcnkpLkVxdWFs
cygnc2V0dXAnLCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKSkpIHsNCiAgICB0aHJvdyAnU291bC5F
bmdpbmUucHNtMSBtdXN0IGJlIGxvY2F0ZWQgYXQgPHNvdWw+XF9hZ2VudFxzZXR1cFxlbmdpbmUu
Jw0KfQ0KaWYgKC1ub3QgKFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRzY3JpcHQ6QWdl
bnREaXJlY3RvcnkpLkVxdWFscygnX2FnZW50JywgJHNjcmlwdDpQYXRoQ29tcGFyaXNvbikpKSB7
DQogICAgdGhyb3cgJ1NvdWwuRW5naW5lLnBzbTEgbXVzdCBiZSBsb2NhdGVkIGF0IDxzb3VsPlxf
YWdlbnRcc2V0dXBcZW5naW5lLicNCn0NCg0KZnVuY3Rpb24gQ29udmVydFRvLVNvdWxDYW5vbmlj
YWxQYXRoIHsNCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAgIHBhcmFtKA0KICAgICAgICBbUGFy
YW1ldGVyKE1hbmRhdG9yeSldDQogICAgICAgIFtWYWxpZGF0ZU5vdE51bGxPckVtcHR5KCldDQog
ICAgICAgIFtzdHJpbmddJFBhdGgNCiAgICApDQoNCiAgICByZXR1cm4gW1N5c3RlbS5JTy5QYXRo
XTo6R2V0RnVsbFBhdGgoJFBhdGgpLlRyaW1FbmQoJ1wnLCAnLycpDQp9DQoNCmZ1bmN0aW9uIFRl
c3QtU291bFBhdGhFcXVhbCB7DQogICAgcGFyYW0oW3N0cmluZ10kTGVmdCwgW3N0cmluZ10kUmln
aHQpDQogICAgcmV0dXJuIChDb252ZXJ0VG8tU291bENhbm9uaWNhbFBhdGggJExlZnQpLkVxdWFs
cygNCiAgICAgICAgKENvbnZlcnRUby1Tb3VsQ2Fub25pY2FsUGF0aCAkUmlnaHQpLA0KICAgICAg
ICAkc2NyaXB0OlBhdGhDb21wYXJpc29uDQogICAgKQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LVNvdWxQ
YXRoV2l0aGluIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtz
dHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXJl
bnQsDQogICAgICAgIFtzd2l0Y2hdJEFsbG93UGFyZW50DQogICAgKQ0KDQogICAgJGZ1bGxQYXRo
ID0gQ29udmVydFRvLVNvdWxDYW5vbmljYWxQYXRoICRQYXRoDQogICAgJGZ1bGxQYXJlbnQgPSBD
b252ZXJ0VG8tU291bENhbm9uaWNhbFBhdGggJFBhcmVudA0KICAgIGlmICgkZnVsbFBhdGguRXF1
YWxzKCRmdWxsUGFyZW50LCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKSkgew0KICAgICAgICByZXR1
cm4gW2Jvb2xdJEFsbG93UGFyZW50DQogICAgfQ0KDQogICAgJHByZWZpeCA9ICRmdWxsUGFyZW50
ICsgW1N5c3RlbS5JTy5QYXRoXTo6RGlyZWN0b3J5U2VwYXJhdG9yQ2hhcg0KICAgIHJldHVybiAk
ZnVsbFBhdGguU3RhcnRzV2l0aCgkcHJlZml4LCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKQ0KfQ0K
DQpmdW5jdGlvbiBBc3NlcnQtTm9Tb3VsUmVwYXJzZVBvaW50IHsNCiAgICBwYXJhbSgNCiAgICAg
ICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0
ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRCb3VuZGFyeQ0KICAgICkNCg0KICAgICRmdWxsUGF0aCA9
IENvbnZlcnRUby1Tb3VsQ2Fub25pY2FsUGF0aCAkUGF0aA0KICAgICRmdWxsQm91bmRhcnkgPSBD
b252ZXJ0VG8tU291bENhbm9uaWNhbFBhdGggJEJvdW5kYXJ5DQogICAgaWYgKC1ub3QgKFRlc3Qt
U291bFBhdGhXaXRoaW4gLVBhdGggJGZ1bGxQYXRoIC1QYXJlbnQgJGZ1bGxCb3VuZGFyeSAtQWxs
b3dQYXJlbnQpKSB7DQogICAgICAgIHRocm93ICJQYXRoIGVzY2FwZXMgaXRzIHNhZmV0eSBib3Vu
ZGFyeTogJGZ1bGxQYXRoIg0KICAgIH0NCg0KICAgICRjdXJyZW50ID0gJGZ1bGxCb3VuZGFyeQ0K
ICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjdXJyZW50KSB7DQogICAgICAgICRpdGVt
ID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRjdXJyZW50IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3Rv
cA0KICAgICAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0
cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsNCiAgICAgICAgICAgIHRocm93ICJSZXBh
cnNlIHBvaW50cyBhcmUgbm90IGFsbG93ZWQgaW4gYSBtYW5hZ2VkIHBhdGg6ICRjdXJyZW50Ig0K
ICAgICAgICB9DQogICAgfQ0KDQogICAgJHJlbGF0aXZlID0gJGZ1bGxQYXRoLlN1YnN0cmluZygk
ZnVsbEJvdW5kYXJ5Lkxlbmd0aCkuVHJpbVN0YXJ0KCdcJywgJy8nKQ0KICAgIGlmICgkcmVsYXRp
dmUuTGVuZ3RoIC1lcSAwKSB7IHJldHVybiB9DQoNCiAgICBmb3JlYWNoICgkc2VnbWVudCBpbiAo
JHJlbGF0aXZlIC1zcGxpdCAnW1xcL10nKSkgew0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkc2VnbWVudCkpIHsgY29udGludWUgfQ0KICAgICAgICAkY3VycmVudCA9
IEpvaW4tUGF0aCAtUGF0aCAkY3VycmVudCAtQ2hpbGRQYXRoICRzZWdtZW50DQogICAgICAgIGlm
ICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjdXJyZW50KSkgeyBicmVhayB9DQogICAg
ICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRjdXJyZW50IC1Gb3JjZSAtRXJyb3JB
Y3Rpb24gU3RvcA0KICAgICAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5J
Ty5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsNCiAgICAgICAgICAgIHRo
cm93ICJSZXBhcnNlIHBvaW50cyBhcmUgbm90IGFsbG93ZWQgaW4gYSBtYW5hZ2VkIHBhdGg6ICRj
dXJyZW50Ig0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTm9FeHRlcm5h
bFJlcGFyc2VQb2ludCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmdd
JFBhdGgpDQoNCiAgICAkZnVsbFBhdGggPSBDb252ZXJ0VG8tU291bENhbm9uaWNhbFBhdGggJFBh
dGgNCiAgICAkcGF0aFJvb3QgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRQYXRoUm9vdCgkZnVsbFBh
dGgpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHBhdGhSb290KSkgew0K
ICAgICAgICB0aHJvdyAiQW4gYWJzb2x1dGUgcGF0aCBpcyByZXF1aXJlZDogJFBhdGgiDQogICAg
fQ0KDQogICAgJGN1cnJlbnQgPSAkcGF0aFJvb3QuVHJpbUVuZCgnXCcsICcvJykNCiAgICAkcmVs
YXRpdmUgPSAkZnVsbFBhdGguU3Vic3RyaW5nKCRwYXRoUm9vdC5MZW5ndGgpLlRyaW1TdGFydCgn
XCcsICcvJykNCiAgICBmb3JlYWNoICgkc2VnbWVudCBpbiAoJHJlbGF0aXZlIC1zcGxpdCAnW1xc
L10nKSkgew0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkc2VnbWVu
dCkpIHsgY29udGludWUgfQ0KICAgICAgICAkY3VycmVudCA9IEpvaW4tUGF0aCAtUGF0aCAkY3Vy
cmVudCAtQ2hpbGRQYXRoICRzZWdtZW50DQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICRjdXJyZW50KSkgeyBicmVhayB9DQogICAgICAgICRpdGVtID0gR2V0LUl0ZW0g
LUxpdGVyYWxQYXRoICRjdXJyZW50IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAgICBp
ZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106OlJl
cGFyc2VQb2ludCkgLW5lIDApIHsNCiAgICAgICAgICAgIHRocm93ICJBbiBleHRlcm5hbCB3cml0
ZSB0YXJnZXQgdHJhdmVyc2VzIGEgcmVwYXJzZSBwb2ludDogJGN1cnJlbnQiDQogICAgICAgIH0N
CiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Tb3VsUm9vdCB7DQogICAgW0NtZGxldEJpbmRpbmco
KV0NCiAgICBwYXJhbSgpDQogICAgcmV0dXJuICRzY3JpcHQ6U291bFJvb3QNCn0NCg0KZnVuY3Rp
b24gR2V0LVNvdWxFbmdpbmVMYXlvdXQgew0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgcGFy
YW0oKQ0KDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICBTb3VsUm9vdCAg
ICAgICAgPSAkc2NyaXB0OlNvdWxSb290DQogICAgICAgIEFnZW50RGlyZWN0b3J5ICA9ICRzY3Jp
cHQ6QWdlbnREaXJlY3RvcnkNCiAgICAgICAgU2V0dXBEaXJlY3RvcnkgID0gJHNjcmlwdDpTZXR1
cERpcmVjdG9yeQ0KICAgICAgICBFbmdpbmVEaXJlY3RvcnkgPSAkc2NyaXB0Ok1vZHVsZURpcmVj
dG9yeQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gR2V0LVNvdWxEZXNrdG9wUGF0aHMgew0KICAgICRw
YXRocyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmdd
DQogICAgJGxvY2FsaXplZERlc2t0b3BOYW1lID0gLWpvaW4gQChbY2hhcl0weEJDMTQsIFtjaGFy
XTB4RDBENSwgW2NoYXJdMHgyMCwgW2NoYXJdMHhENjU0LCBbY2hhcl0weEJBNzQpDQogICAgdHJ5
IHsNCiAgICAgICAgJGRlc2t0b3AgPSBbRW52aXJvbm1lbnRdOjpHZXRGb2xkZXJQYXRoKFtFbnZp
cm9ubWVudCtTcGVjaWFsRm9sZGVyXTo6RGVza3RvcCkNCiAgICAgICAgaWYgKC1ub3QgW3N0cmlu
Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkZGVza3RvcCkpIHsgJHBhdGhzLkFkZCgkZGVza3RvcCkg
fQ0KICAgIH0gY2F0Y2ggeyB9DQoNCiAgICBmb3JlYWNoICgkdmFyaWFibGVOYW1lIGluIEAoJ09u
ZURyaXZlJywgJ09uZURyaXZlQ29uc3VtZXInLCAnT25lRHJpdmVDb21tZXJjaWFsJykpIHsNCiAg
ICAgICAgJHZhbHVlID0gW0Vudmlyb25tZW50XTo6R2V0RW52aXJvbm1lbnRWYXJpYWJsZSgkdmFy
aWFibGVOYW1lKQ0KICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNl
KCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICRwYXRocy5BZGQoKEpvaW4tUGF0aCAtUGF0aCAkdmFs
dWUgLUNoaWxkUGF0aCAnRGVza3RvcCcpKQ0KICAgICAgICAgICAgJHBhdGhzLkFkZCgoSm9pbi1Q
YXRoIC1QYXRoICR2YWx1ZSAtQ2hpbGRQYXRoICRsb2NhbGl6ZWREZXNrdG9wTmFtZSkpDQogICAg
ICAgIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJHBhdGhzIHwgRm9yRWFjaC1PYmplY3QgeyBDb252
ZXJ0VG8tU291bENhbm9uaWNhbFBhdGggJF8gfSB8IFNlbGVjdC1PYmplY3QgLVVuaXF1ZSkNCn0N
Cg0KZnVuY3Rpb24gVGVzdC1Tb3VsSW5pdGlhbGl6ZWQgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIo
TWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoKQ0KDQogICAgJGFnZW50UGF0aCA9IEpvaW4tUGF0aCAt
UGF0aCAkUGF0aCAtQ2hpbGRQYXRoICdfYWdlbnQnDQogICAgJGFnZW50c0luc3RydWN0aW9uUGF0
aCA9IEpvaW4tUGF0aCAtUGF0aCAkUGF0aCAtQ2hpbGRQYXRoICdBR0VOVFMubWQnDQogICAgJGNs
YXVkZUluc3RydWN0aW9uUGF0aCA9IEpvaW4tUGF0aCAtUGF0aCAkUGF0aCAtQ2hpbGRQYXRoICdD
TEFVREUubWQnDQogICAgaWYgKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRhZ2VudFBhdGggLVBh
dGhUeXBlIENvbnRhaW5lcikgLWFuZA0KICAgICAgICAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
YWdlbnRzSW5zdHJ1Y3Rpb25QYXRoIC1QYXRoVHlwZSBMZWFmKSAtYW5kDQogICAgICAgIChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVJbnN0cnVjdGlvblBhdGggLVBhdGhUeXBlIExlYWYp
KSB7DQogICAgICAgIHJldHVybiAkdHJ1ZQ0KICAgIH0NCg0KICAgICRzdGF0ZVBhdGggPSBKb2lu
LVBhdGggLVBhdGggJFBhdGggLUNoaWxkUGF0aCAnc291bC1zdGF0ZS5qc29uJw0KICAgIGlmIChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzdGF0ZVBhdGggLVBhdGhUeXBlIExlYWYpIHsNCiAgICAg
ICAgdHJ5IHsNCiAgICAgICAgICAgICRzdGF0ZSA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxU
ZXh0KCRzdGF0ZVBhdGgsICRzY3JpcHQ6VXRmOE5vQm9tKSB8IENvbnZlcnRGcm9tLUpzb24gLUVy
cm9yQWN0aW9uIFN0b3ANCiAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJHN0YXRlLnNjaGVtYVZl
cnNpb24gLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kc3Rh
dGUuc291bElkKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAkdHJ1ZQ0KICAgICAgICAgICAg
fQ0KICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgIHJldHVybiAkZmFsc2UNCiAgICAgICAg
fQ0KICAgIH0NCiAgICByZXR1cm4gJGZhbHNlDQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1Tb3VsUm9v
dCB7DQogICAgW0NtZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRl
cihNYW5kYXRvcnkpXVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtzd2l0Y2hdJFJlcXVpcmVJbml0
aWFsaXplZA0KICAgICkNCg0KICAgICRmdWxsUGF0aCA9IENvbnZlcnRUby1Tb3VsQ2Fub25pY2Fs
UGF0aCAkUGF0aA0KICAgICRkcml2ZVJvb3QgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRQYXRoUm9v
dCgkZnVsbFBhdGgpDQogICAgaWYgKC1ub3QgJGRyaXZlUm9vdC5FcXVhbHMoJ0M6XCcsICRzY3Jp
cHQ6UGF0aENvbXBhcmlzb24pKSB7DQogICAgICAgIHRocm93ICdBIHNvdWwgcm9vdCBtdXN0IGJl
IGRpcmVjdGx5IGJlbG93IHRoZSBDIGRyaXZlLicNCiAgICB9DQoNCiAgICAkcmVsYXRpdmUgPSAk
ZnVsbFBhdGguU3Vic3RyaW5nKCRkcml2ZVJvb3QuTGVuZ3RoKS5UcmltKCdcJywgJy8nKQ0KICAg
IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRyZWxhdGl2ZSkgLW9yICRyZWxhdGl2
ZSAtbWF0Y2ggJ1tcXC9dJykgew0KICAgICAgICB0aHJvdyAnQSBzb3VsIHJvb3QgbXVzdCBiZSBl
eGFjdGx5IG9uZSBmb2xkZXIgZGlyZWN0bHkgYmVsb3cgdGhlIEMgZHJpdmUuJw0KICAgIH0NCg0K
ICAgICRyZXNlcnZlZE5hbWVzID0gQCgNCiAgICAgICAgJyRSZWN5Y2xlLkJpbicsICdDb25maWcu
TXNpJywgJ0RvY3VtZW50cyBhbmQgU2V0dGluZ3MnLCAnRHJpdmVycycsICdJbnRlbCcsDQogICAg
ICAgICdNU09DYWNoZScsICdPbmVEcml2ZVRlbXAnLCAnUGVyZkxvZ3MnLCAnUHJvZ3JhbSBGaWxl
cycsICdQcm9ncmFtIEZpbGVzICh4ODYpJywNCiAgICAgICAgJ1Byb2dyYW1EYXRhJywgJ1JlY292
ZXJ5JywgJ1N5c3RlbSBWb2x1bWUgSW5mb3JtYXRpb24nLCAnVXNlcnMnLCAnV2luZG93cycsDQog
ICAgICAgICdEZXNrdG9wJywgKC1qb2luIEAoW2NoYXJdMHhCQzE0LCBbY2hhcl0weEQwRDUsIFtj
aGFyXTB4MjAsIFtjaGFyXTB4RDY1NCwgW2NoYXJdMHhCQTc0KSkNCiAgICApDQogICAgaWYgKCRy
ZXNlcnZlZE5hbWVzIC1jb250YWlucyAkcmVsYXRpdmUpIHsNCiAgICAgICAgdGhyb3cgIkEgc3lz
dGVtIG9yIGRlc2t0b3AgZm9sZGVyIGNhbm5vdCBiZSBhIHNvdWwgcm9vdDogJHJlbGF0aXZlIg0K
ICAgIH0NCg0KICAgIGZvcmVhY2ggKCRkZXNrdG9wUGF0aCBpbiBHZXQtU291bERlc2t0b3BQYXRo
cykgew0KICAgICAgICBpZiAoJGZ1bGxQYXRoLkVxdWFscygkZGVza3RvcFBhdGgsICRzY3JpcHQ6
UGF0aENvbXBhcmlzb24pIC1vcg0KICAgICAgICAgICAgKFRlc3QtU291bFBhdGhXaXRoaW4gLVBh
dGggJGZ1bGxQYXRoIC1QYXJlbnQgJGRlc2t0b3BQYXRoIC1BbGxvd1BhcmVudCkpIHsNCiAgICAg
ICAgICAgIHRocm93ICdEZXNrdG9wIGFuZCBPbmVEcml2ZSBEZXNrdG9wIGxvY2F0aW9ucyBhcmUg
Zm9yYmlkZGVuIGZvciBzb3VsIGRhdGEuJw0KICAgICAgICB9DQogICAgfQ0KDQogICAgJGRyaXZl
ID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8uRHJpdmVJbmZvKCRkcml2ZVJvb3QpDQogICAgaWYgKC1u
b3QgJGRyaXZlLklzUmVhZHkpIHsgdGhyb3cgJ1RoZSBDIGRyaXZlIGlzIG5vdCByZWFkeS4nIH0N
CiAgICBpZiAoLW5vdCAkZHJpdmUuRHJpdmVGb3JtYXQuRXF1YWxzKCdOVEZTJywgJHNjcmlwdDpQ
YXRoQ29tcGFyaXNvbikpIHsNCiAgICAgICAgdGhyb3cgIlRoZSBzb3VsIGRyaXZlIG11c3QgdXNl
IE5URlM7IGZvdW5kICQoJGRyaXZlLkRyaXZlRm9ybWF0KS4iDQogICAgfQ0KDQogICAgaWYgKFRl
c3QtUGF0aCAtTGl0ZXJhbFBhdGggJGZ1bGxQYXRoKSB7DQogICAgICAgICRyb290SXRlbSA9IEdl
dC1JdGVtIC1MaXRlcmFsUGF0aCAkZnVsbFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQog
ICAgICAgIGlmICgtbm90ICRyb290SXRlbS5QU0lzQ29udGFpbmVyKSB7IHRocm93ICdUaGUgc291
bCByb290IHBhdGggaXMgbm90IGEgZGlyZWN0b3J5LicgfQ0KICAgICAgICBpZiAoKCRyb290SXRl
bS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9p
bnQpIC1uZSAwKSB7DQogICAgICAgICAgICB0aHJvdyAnVGhlIHNvdWwgcm9vdCBpdHNlbGYgY2Fu
bm90IGJlIGEganVuY3Rpb24sIHN5bWxpbmssIG9yIG90aGVyIHJlcGFyc2UgcG9pbnQuJw0KICAg
ICAgICB9DQoNCiAgICAgICAgJGNoaWxkcmVuID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0
aCAkZnVsbFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wIHwgU2VsZWN0LU9iamVjdCAtRmly
c3QgMSkNCiAgICAgICAgJGluaXRpYWxpemVkID0gVGVzdC1Tb3VsSW5pdGlhbGl6ZWQgLVBhdGgg
JGZ1bGxQYXRoDQogICAgICAgIGlmICgkY2hpbGRyZW4uQ291bnQgLWd0IDAgLWFuZCAtbm90ICRp
bml0aWFsaXplZCkgew0KICAgICAgICAgICAgdGhyb3cgJ1RoZSB0YXJnZXQgaXMgbm9uLWVtcHR5
IGJ1dCBoYXMgbm8gdHJ1c3R3b3J0aHkgc291bCBtYXJrZXIuIFJlZnVzaW5nIHRvIGFkb3B0IGl0
LicNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJFJlcXVpcmVJbml0aWFsaXplZCAtYW5kIC1ub3Qg
JGluaXRpYWxpemVkKSB7DQogICAgICAgICAgICB0aHJvdyAnVGhlIHRhcmdldCBpcyBub3QgYW4g
aW5pdGlhbGl6ZWQgc291bC4nDQogICAgICAgIH0NCiAgICAgICAgaWYgKCRSZXF1aXJlSW5pdGlh
bGl6ZWQpIHsNCiAgICAgICAgICAgICRzdGF0ZVBhdGggPSBKb2luLVBhdGggLVBhdGggJGZ1bGxQ
YXRoIC1DaGlsZFBhdGggJ3NvdWwtc3RhdGUuanNvbicNCiAgICAgICAgICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRzdGF0ZVBhdGggLVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgICAg
ICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkc3RhdGUgPSBbU3lzdGVtLklPLkZpbGVd
OjpSZWFkQWxsVGV4dCgkc3RhdGVQYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkgfCBDb252ZXJ0RnJv
bS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgICAgICAgICAgICAgICRzY2hlbWFWZXJz
aW9uID0gW2ludF0kc3RhdGUuc2NoZW1hVmVyc2lvbg0KICAgICAgICAgICAgICAgIH0gY2F0Y2gg
ew0KICAgICAgICAgICAgICAgICAgICB0aHJvdyAnc291bC1zdGF0ZS5qc29uIGNhbm5vdCBiZSBw
YXJzZWQgb3IgaGFzIG5vIG51bWVyaWMgc2NoZW1hVmVyc2lvbi4nDQogICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgIGlmICgkc2NoZW1hVmVyc2lvbiAtZ3QgNykgew0KICAgICAgICAg
ICAgICAgICAgICB0aHJvdyAnRS1ORVdFUi1TQ0hFTUE6IHRoaXMgc291bCB3YXMgd3JpdHRlbiBi
eSBhIG5ld2VyIHNldHVwIGVuZ2luZSBhbmQgd2lsbCByZW1haW4gcmVhZC1vbmx5LicNCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRzY2hlbWFWZXJzaW9uIC1sdCAxKSB7
IHRocm93ICdzb3VsLXN0YXRlLmpzb24gaGFzIGFuIHVuc3VwcG9ydGVkIHNjaGVtYVZlcnNpb24u
JyB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9IGVsc2VpZiAoJFJlcXVpcmVJbml0
aWFsaXplZCkgew0KICAgICAgICB0aHJvdyAnVGhlIHNvdWwgcm9vdCBkb2VzIG5vdCBleGlzdC4n
DQogICAgfQ0KDQogICAgcmV0dXJuICRmdWxsUGF0aA0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtU291
bE93bmVkUGF0aCB7DQogICAgW0NtZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbSgNCiAgICAgICAg
W1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtzd2l0Y2hdJEFs
bG93Um9vdA0KICAgICkNCg0KICAgICRmdWxsUGF0aCA9IENvbnZlcnRUby1Tb3VsQ2Fub25pY2Fs
UGF0aCAkUGF0aA0KICAgIGlmICgtbm90IChUZXN0LVNvdWxQYXRoV2l0aGluIC1QYXRoICRmdWxs
UGF0aCAtUGFyZW50ICRzY3JpcHQ6U291bFJvb3QgLUFsbG93UGFyZW50OiRBbGxvd1Jvb3QpKSB7
DQogICAgICAgIHRocm93ICJBIG1hbmFnZWQgd3JpdGUgcGF0aCBtdXN0IHN0YXkgaW5zaWRlIHRo
ZSBzb3VsIHJvb3Q6ICRmdWxsUGF0aCINCiAgICB9DQogICAgQXNzZXJ0LU5vU291bFJlcGFyc2VQ
b2ludCAtUGF0aCAkZnVsbFBhdGggLUJvdW5kYXJ5ICRzY3JpcHQ6U291bFJvb3QNCiAgICByZXR1
cm4gJGZ1bGxQYXRoDQp9DQoNCmZ1bmN0aW9uIFJlc29sdmUtU291bFNldHVwU3RhdGVEaXJlY3Rv
cnkgew0KICAgIHBhcmFtKFtzdHJpbmddJFRlc3RTZXR1cERpcmVjdG9yeSkNCg0KICAgIGlmIChb
c3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0U2V0dXBEaXJlY3RvcnkpKSB7IHJldHVy
biAkc2NyaXB0OlNldHVwRGlyZWN0b3J5IH0NCg0KICAgICRmdWxsUGF0aCA9IEFzc2VydC1Tb3Vs
T3duZWRQYXRoIC1QYXRoICRUZXN0U2V0dXBEaXJlY3RvcnkNCiAgICAkZml4dHVyZUJvdW5kYXJ5
ID0gSm9pbi1QYXRoIC1QYXRoICRzY3JpcHQ6U2V0dXBEaXJlY3RvcnkgLUNoaWxkUGF0aCAndGVz
dHNcZml4dHVyZXMnDQogICAgaWYgKC1ub3QgKFRlc3QtU291bFBhdGhXaXRoaW4gLVBhdGggJGZ1
bGxQYXRoIC1QYXJlbnQgJGZpeHR1cmVCb3VuZGFyeSkpIHsNCiAgICAgICAgdGhyb3cgJ0EgdGVz
dCBzZXR1cCBkaXJlY3RvcnkgaXMgYWxsb3dlZCBvbmx5IGJlbG93IF9hZ2VudFxzZXR1cFx0ZXN0
c1xmaXh0dXJlcy4nDQogICAgfQ0KICAgIHJldHVybiAkZnVsbFBhdGgNCn0NCg0KZnVuY3Rpb24g
V3JpdGUtU291bENyZWF0ZU5ld1V0ZjhJbnRlcm5hbCB7DQogICAgcGFyYW0oDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoLA0KICAgICAgICBbUGFyYW1ldGVyKE1h
bmRhdG9yeSldW0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRUZXh0DQogICAgKQ0KDQogICAg
JHN0cmVhbSA9ICRudWxsDQogICAgdHJ5IHsNCiAgICAgICAgJHN0cmVhbSA9IE5ldy1PYmplY3Qg
U3lzdGVtLklPLkZpbGVTdHJlYW0oDQogICAgICAgICAgICAkUGF0aCwNCiAgICAgICAgICAgIFtT
eXN0ZW0uSU8uRmlsZU1vZGVdOjpDcmVhdGVOZXcsDQogICAgICAgICAgICBbU3lzdGVtLklPLkZp
bGVBY2Nlc3NdOjpXcml0ZSwNCiAgICAgICAgICAgIFtTeXN0ZW0uSU8uRmlsZVNoYXJlXTo6UmVh
ZA0KICAgICAgICApDQogICAgICAgICRieXRlcyA9ICRzY3JpcHQ6VXRmOE5vQm9tLkdldEJ5dGVz
KCRUZXh0KQ0KICAgICAgICAkc3RyZWFtLldyaXRlKCRieXRlcywgMCwgJGJ5dGVzLkxlbmd0aCkN
CiAgICAgICAgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkNCiAgICB9IGZpbmFsbHkgew0KICAgICAgICBp
ZiAoJG51bGwgLW5lICRzdHJlYW0pIHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KICAgIH0NCn0NCg0K
ZnVuY3Rpb24gV3JpdGUtU291bFV0ZjhBdG9taWMgew0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQog
ICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoLA0K
ICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5n
XSRUZXh0DQogICAgKQ0KDQogICAgJGZ1bGxQYXRoID0gQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBh
dGggJFBhdGgNCiAgICAkcGFyZW50ID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RGlyZWN0b3J5TmFt
ZSgkZnVsbFBhdGgpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhcmVu
dCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgew0KICAgICAgICB0aHJvdyAiVGhlIHBhcmVudCBkaXJl
Y3RvcnkgbXVzdCBhbHJlYWR5IGV4aXN0OiAkcGFyZW50Ig0KICAgIH0NCiAgICBBc3NlcnQtTm9T
b3VsUmVwYXJzZVBvaW50IC1QYXRoICRwYXJlbnQgLUJvdW5kYXJ5ICRzY3JpcHQ6U291bFJvb3QN
Cg0KICAgICR0ZW1wb3JhcnlQYXRoID0gSm9pbi1QYXRoIC1QYXRoICRwYXJlbnQgLUNoaWxkUGF0
aCAoJy5zb3VsLXRtcC0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKSkNCiAgICAk
cmVwbGFjZW1lbnRCYWNrdXBQYXRoID0gJG51bGwNCiAgICAkcmVwbGFjZW1lbnRTdWNjZWVkZWQg
PSAkZmFsc2UNCiAgICB0cnkgew0KICAgICAgICBXcml0ZS1Tb3VsQ3JlYXRlTmV3VXRmOEludGVy
bmFsIC1QYXRoICR0ZW1wb3JhcnlQYXRoIC1UZXh0ICRUZXh0DQogICAgICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRmdWxsUGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAg
IyBXaW5kb3dzIFBvd2VyU2hlbGwgNS4xIHJlcXVpcmVzIGEgcmVhbCBiYWNrdXAgcGF0aC4gQSBj
cmFzaCBiZXR3ZWVuDQogICAgICAgICAgICAjIFJlcGxhY2UgYW5kIGNsZWFudXAgdGhlcmVmb3Jl
IGxlYXZlcyB0aGUgcHJldmlvdXMgYnl0ZXMgcmVjb3ZlcmFibGUuDQogICAgICAgICAgICAkcmVw
bGFjZW1lbnRCYWNrdXBQYXRoID0gSm9pbi1QYXRoIC1QYXRoICRwYXJlbnQgLUNoaWxkUGF0aCAo
Jy5zb3VsLXJlcGxhY2VkLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnTicpKQ0KICAg
ICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6UmVwbGFjZSgkdGVtcG9yYXJ5UGF0aCwgJGZ1bGxQ
YXRoLCAkcmVwbGFjZW1lbnRCYWNrdXBQYXRoLCAkdHJ1ZSkNCiAgICAgICAgICAgICRyZXBsYWNl
bWVudFN1Y2NlZWRlZCA9ICR0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBbU3lz
dGVtLklPLkZpbGVdOjpNb3ZlKCR0ZW1wb3JhcnlQYXRoLCAkZnVsbFBhdGgpDQogICAgICAgIH0N
CiAgICB9IGZpbmFsbHkgew0KICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkdGVt
cG9yYXJ5UGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxl
XTo6RGVsZXRlKCR0ZW1wb3JhcnlQYXRoKQ0KICAgICAgICB9DQogICAgICAgIGlmICgkcmVwbGFj
ZW1lbnRTdWNjZWVkZWQgLWFuZCAkbnVsbCAtbmUgJHJlcGxhY2VtZW50QmFja3VwUGF0aCAtYW5k
DQogICAgICAgICAgICAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcmVwbGFjZW1lbnRCYWNrdXBQ
YXRoIC1QYXRoVHlwZSBMZWFmKSkgew0KICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6RGVs
ZXRlKCRyZXBsYWNlbWVudEJhY2t1cFBhdGgpDQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJu
ICRmdWxsUGF0aA0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1Tb3VsSnNvbkF0b21pYyB7DQogICAgW0Nt
ZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkp
XVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kVmFsdWUsDQog
ICAgICAgIFtWYWxpZGF0ZVJhbmdlKDIsIDEwMCldW2ludF0kRGVwdGggPSA2NA0KICAgICkNCg0K
ICAgICRqc29uID0gJFZhbHVlIHwgQ29udmVydFRvLUpzb24gLURlcHRoICREZXB0aA0KICAgIHJl
dHVybiBXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkUGF0aCAtVGV4dCAoJGpzb24gKyBbRW52
aXJvbm1lbnRdOjpOZXdMaW5lKQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLVNvdWxKc29uIHsNCiAgICBb
Q21kbGV0QmluZGluZygpXQ0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5n
XSRQYXRoKQ0KDQogICAgJGZ1bGxQYXRoID0gQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJFBh
dGgNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZnVsbFBhdGggLVBhdGhU
eXBlIExlYWYpKSB7DQogICAgICAgIHRocm93ICJKU09OIGZpbGUgbm90IGZvdW5kOiAkZnVsbFBh
dGgiDQogICAgfQ0KICAgIHJldHVybiAoW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJGZ1
bGxQYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkgfCBDb252ZXJ0RnJvbS1Kc29uIC1FcnJvckFjdGlv
biBTdG9wKQ0KfQ0KDQpmdW5jdGlvbiBJbml0aWFsaXplLVNvdWxJbnRlcm5hbERpcmVjdG9yeSB7
DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRo
LA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kSWRlbnRpdHkNCiAgICAp
DQoNCiAgICAkZnVsbFBhdGggPSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkUGF0aA0KICAg
IGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRmdWxsUGF0aCkpIHsNCiAgICAgICAg
W3ZvaWRdW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJGZ1bGxQYXRoKQ0K
ICAgIH0NCiAgICBBc3NlcnQtTm9Tb3VsUmVwYXJzZVBvaW50IC1QYXRoICRmdWxsUGF0aCAtQm91
bmRhcnkgJHNjcmlwdDpTb3VsUm9vdA0KDQogICAgJGFnZW50c1BhdGggPSBKb2luLVBhdGggLVBh
dGggJGZ1bGxQYXRoIC1DaGlsZFBhdGggJ0FHRU5UUy5tZCcNCiAgICBpZiAoLW5vdCAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkYWdlbnRzUGF0aCkpIHsNCiAgICAgICAgJGJvZHkgPSAiIyAkSWRl
bnRpdHlgcmBuYHJgblRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIG9ubHkgc2V0dXAtZW5naW5lIGlu
dGVybmFsIHN0YXRlLmByYG5gcmBuPCEtLSBEbyBub3QgcmVzdGF0ZSBpbmhlcml0ZWQgQUdFTlRT
Lm1kIHJ1bGVzLiAtLT5gcmBuIg0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMg
LVBhdGggJGFnZW50c1BhdGggLVRleHQgJGJvZHkpDQogICAgfQ0KICAgICRjbGF1ZGVQYXRoID0g
Sm9pbi1QYXRoIC1QYXRoICRmdWxsUGF0aCAtQ2hpbGRQYXRoICdDTEFVREUubWQnDQogICAgaWYg
KC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNsYXVkZVBhdGgpKSB7DQogICAgICAgIFt2
b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkY2xhdWRlUGF0aCAtVGV4dCAiQEFHRU5U
Uy5tZGByYG4iKQ0KICAgIH0NCiAgICByZXR1cm4gJGZ1bGxQYXRoDQp9DQoNCmZ1bmN0aW9uIEdl
dC1Tb3VsUHJvY2Vzc0lkZW50aXR5IHsNCiAgICBwYXJhbShbaW50XSRQcm9jZXNzSWQgPSAkUElE
KQ0KDQogICAgdHJ5IHsNCiAgICAgICAgJHByb2Nlc3MgPSBHZXQtUHJvY2VzcyAtSWQgJFByb2Nl
c3NJZCAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7
DQogICAgICAgICAgICBwcm9jZXNzSWQgICAgICAgPSBbaW50XSRwcm9jZXNzLklkDQogICAgICAg
ICAgICBwcm9jZXNzU3RhcnRVdGMgPSAkcHJvY2Vzcy5TdGFydFRpbWUuVG9Vbml2ZXJzYWxUaW1l
KCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICB9DQogICAgfSBjYXRjaCB7DQogICAgICAgIHJldHVy
biBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIHByb2Nlc3NJZCAgICAgICA9IFtpbnRd
JFByb2Nlc3NJZA0KICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VXRjID0gJG51bGwNCiAgICAgICAg
fQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gTmV3LVNvdWxIaXN0b3J5UmVjb3JkSW50ZXJuYWwgew0K
ICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kU3RhdGVE
aXJlY3RvcnksDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRDYXRlZ29y
eSwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXSRSZWNvcmQNCiAgICApDQoNCiAgICBp
ZiAoJENhdGVnb3J5IC1ub3RtYXRjaCAnXlthLXowLTldW2EtejAtOS1dezAsNjN9JCcpIHsNCiAg
ICAgICAgdGhyb3cgJ0hpc3RvcnkgY2F0ZWdvcnkgbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNl
IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zLicNCiAgICB9DQogICAgJGhpc3RvcnlSb290
ID0gSW5pdGlhbGl6ZS1Tb3VsSW50ZXJuYWxEaXJlY3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkU3Rh
dGVEaXJlY3RvcnkgJ2hpc3RvcnknKSAtSWRlbnRpdHkgJ1NldHVwIGhpc3RvcnknDQogICAgJGNh
dGVnb3J5UGF0aCA9IEluaXRpYWxpemUtU291bEludGVybmFsRGlyZWN0b3J5IC1QYXRoIChKb2lu
LVBhdGggJGhpc3RvcnlSb290ICRDYXRlZ29yeSkgLUlkZW50aXR5ICgiJENhdGVnb3J5IGhpc3Rv
cnkiKQ0KICAgICRmaWxlTmFtZSA9ICd7MH0tezF9Lmpzb24nIC1mIChbRGF0ZVRpbWVdOjpVdGNO
b3cuVG9TdHJpbmcoJ3l5eXlNTWRkVEhIbW1zc2ZmZmZmZmZaJykpLCAoW2d1aWRdOjpOZXdHdWlk
KCkuVG9TdHJpbmcoJ04nKSkNCiAgICAkaGlzdG9yeVBhdGggPSBKb2luLVBhdGggLVBhdGggJGNh
dGVnb3J5UGF0aCAtQ2hpbGRQYXRoICRmaWxlTmFtZQ0KICAgICRqc29uID0gJFJlY29yZCB8IENv
bnZlcnRUby1Kc29uIC1EZXB0aCA2NA0KICAgIFdyaXRlLVNvdWxDcmVhdGVOZXdVdGY4SW50ZXJu
YWwgLVBhdGggJGhpc3RvcnlQYXRoIC1UZXh0ICgkanNvbiArIFtFbnZpcm9ubWVudF06Ok5ld0xp
bmUpDQogICAgcmV0dXJuICRoaXN0b3J5UGF0aA0KfQ0KDQpmdW5jdGlvbiBOZXctU291bEhpc3Rv
cnlSZWNvcmQgew0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgcGFyYW0oDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRDYXRlZ29yeSwNCiAgICAgICAgW1BhcmFtZXRl
cihNYW5kYXRvcnkpXSRSZWNvcmQsDQogICAgICAgIFtQYXJhbWV0ZXIoRG9udFNob3cpXVtzdHJp
bmddJFRlc3RTZXR1cERpcmVjdG9yeQ0KICAgICkNCg0KICAgICRzdGF0ZURpcmVjdG9yeSA9IFJl
c29sdmUtU291bFNldHVwU3RhdGVEaXJlY3RvcnkgLVRlc3RTZXR1cERpcmVjdG9yeSAkVGVzdFNl
dHVwRGlyZWN0b3J5DQogICAgcmV0dXJuIE5ldy1Tb3VsSGlzdG9yeVJlY29yZEludGVybmFsIC1T
dGF0ZURpcmVjdG9yeSAkc3RhdGVEaXJlY3RvcnkgLUNhdGVnb3J5ICRDYXRlZ29yeSAtUmVjb3Jk
ICRSZWNvcmQNCn0NCg0KZnVuY3Rpb24gTmV3LVNvdWxPcGVyYXRpb25Mb2NrIHsNCiAgICBbQ21k
bGV0QmluZGluZygpXQ0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSld
W1ZhbGlkYXRlUGF0dGVybignXlthLXowLTldW2EtejAtOS1dezAsNjN9JCcpXVtzdHJpbmddJE5h
bWUsDQogICAgICAgIFtWYWxpZGF0ZVJhbmdlKDAsIDYwMDAwMCldW2ludF0kV2FpdFRpbWVvdXRN
aWxsaXNlY29uZHMgPSAwLA0KICAgICAgICBbUGFyYW1ldGVyKERvbnRTaG93KV1bc3RyaW5nXSRU
ZXN0U2V0dXBEaXJlY3RvcnkNCiAgICApDQoNCiAgICAkc3RhdGVEaXJlY3RvcnkgPSBSZXNvbHZl
LVNvdWxTZXR1cFN0YXRlRGlyZWN0b3J5IC1UZXN0U2V0dXBEaXJlY3RvcnkgJFRlc3RTZXR1cERp
cmVjdG9yeQ0KICAgICRsb2NrRGlyZWN0b3J5ID0gSW5pdGlhbGl6ZS1Tb3VsSW50ZXJuYWxEaXJl
Y3RvcnkgLVBhdGggKEpvaW4tUGF0aCAkc3RhdGVEaXJlY3RvcnkgJ2xvY2tzJykgLUlkZW50aXR5
ICdTZXR1cCBsb2NrcycNCiAgICAkbG9ja1BhdGggPSBKb2luLVBhdGggLVBhdGggJGxvY2tEaXJl
Y3RvcnkgLUNoaWxkUGF0aCAoJE5hbWUgKyAnLmxvY2snKQ0KICAgICRkZWFkbGluZSA9IFtEYXRl
VGltZV06OlV0Y05vdy5BZGRNaWxsaXNlY29uZHMoJFdhaXRUaW1lb3V0TWlsbGlzZWNvbmRzKQ0K
ICAgICRzdHJlYW0gPSAkbnVsbA0KDQogICAgd2hpbGUgKCRudWxsIC1lcSAkc3RyZWFtKSB7DQog
ICAgICAgIHRyeSB7DQogICAgICAgICAgICAkc3RyZWFtID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8u
RmlsZVN0cmVhbSgNCiAgICAgICAgICAgICAgICAkbG9ja1BhdGgsDQogICAgICAgICAgICAgICAg
W1N5c3RlbS5JTy5GaWxlTW9kZV06OkNyZWF0ZU5ldywNCiAgICAgICAgICAgICAgICBbU3lzdGVt
LklPLkZpbGVBY2Nlc3NdOjpSZWFkV3JpdGUsDQogICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5G
aWxlU2hhcmVdOjpSZWFkDQogICAgICAgICAgICApDQogICAgICAgIH0gY2F0Y2ggW1N5c3RlbS5J
Ty5JT0V4Y2VwdGlvbl0gew0KICAgICAgICAgICAgaWYgKCRXYWl0VGltZW91dE1pbGxpc2Vjb25k
cyAtZXEgMCAtb3IgW0RhdGVUaW1lXTo6VXRjTm93IC1nZSAkZGVhZGxpbmUpIHsNCiAgICAgICAg
ICAgICAgICB0aHJvdyAiT3BlcmF0aW9uIGxvY2sgJyROYW1lJyBpcyBhbHJlYWR5IGhlbGQgb3Ig
bGVmdCBmb3IgZXhwbGljaXQgcmVjb3Zlcnk6ICRsb2NrUGF0aCINCiAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgIFN0YXJ0LVNsZWVwIC1NaWxsaXNlY29uZHMgMTAwDQogICAgICAgIH0NCiAgICB9
DQoNCiAgICAkaWRlbnRpdHkgPSBHZXQtU291bFByb2Nlc3NJZGVudGl0eQ0KICAgICR0b2tlbiA9
IFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykNCiAgICAkbWV0YWRhdGEgPSBbb3JkZXJl
ZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uICAgPSAxDQogICAgICAgIG5hbWUgICAgICAgICAg
ICA9ICROYW1lDQogICAgICAgIHRva2VuICAgICAgICAgICA9ICR0b2tlbg0KICAgICAgICBob3N0
TmFtZSAgICAgICAgPSBbRW52aXJvbm1lbnRdOjpNYWNoaW5lTmFtZQ0KICAgICAgICBwcm9jZXNz
SWQgICAgICAgPSAkaWRlbnRpdHkucHJvY2Vzc0lkDQogICAgICAgIHByb2Nlc3NTdGFydFV0YyA9
ICRpZGVudGl0eS5wcm9jZXNzU3RhcnRVdGMNCiAgICAgICAgYWNxdWlyZWRBdFV0YyAgID0gW0Rh
dGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJykNCiAgICB9DQogICAgJGJ5dGVzID0gJHNjcmlw
dDpVdGY4Tm9Cb20uR2V0Qnl0ZXMoKCRtZXRhZGF0YSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4
KSArIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUpDQogICAgJHN0cmVhbS5Xcml0ZSgkYnl0ZXMsIDAs
ICRieXRlcy5MZW5ndGgpDQogICAgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkNCg0KICAgIHJldHVybiBb
cHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgUFNUeXBlTmFtZSAgICAgPSAnU291bC5FbmdpbmUu
T3BlcmF0aW9uTG9jaycNCiAgICAgICAgTmFtZSAgICAgICAgICAgPSAkTmFtZQ0KICAgICAgICBQ
YXRoICAgICAgICAgICA9ICRsb2NrUGF0aA0KICAgICAgICBUb2tlbiAgICAgICAgICA9ICR0b2tl
bg0KICAgICAgICBTdGF0ZURpcmVjdG9yeSA9ICRzdGF0ZURpcmVjdG9yeQ0KICAgICAgICBNZXRh
ZGF0YSAgICAgICA9ICRtZXRhZGF0YQ0KICAgICAgICBTdHJlYW0gICAgICAgICA9ICRzdHJlYW0N
CiAgICB9DQp9DQoNCmZ1bmN0aW9uIEV4aXQtU291bE9wZXJhdGlvbkxvY2sgew0KICAgIFtDbWRs
ZXRCaW5kaW5nKCldDQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnksIFZhbHVlRnJvbVBp
cGVsaW5lKV0kTG9jaykNCg0KICAgIHByb2Nlc3Mgew0KICAgICAgICBpZiAoJG51bGwgLWVxICRM
b2NrLlN0cmVhbSAtb3IgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRMb2Nr
LlRva2VuKSkgew0KICAgICAgICAgICAgdGhyb3cgJ0ludmFsaWQgc291bCBvcGVyYXRpb24gbG9j
ayBvYmplY3QuJw0KICAgICAgICB9DQoNCiAgICAgICAgJHJlbGVhc2VkQXQgPSBbRGF0ZVRpbWVd
OjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJExvY2su
U3RyZWFtLkRpc3Bvc2UoKQ0KICAgICAgICAgICAgJExvY2suU3RyZWFtID0gJG51bGwNCg0KICAg
ICAgICAgICAgJGhpc3RvcnkgPSBbb3JkZXJlZF1Ae30NCiAgICAgICAgICAgIGZvcmVhY2ggKCRr
ZXkgaW4gJExvY2suTWV0YWRhdGEuS2V5cykgeyAkaGlzdG9yeVska2V5XSA9ICRMb2NrLk1ldGFk
YXRhWyRrZXldIH0NCiAgICAgICAgICAgICRoaXN0b3J5WydyZWxlYXNlZEF0VXRjJ10gPSAkcmVs
ZWFzZWRBdA0KICAgICAgICAgICAgW3ZvaWRdKE5ldy1Tb3VsSGlzdG9yeVJlY29yZEludGVybmFs
IC1TdGF0ZURpcmVjdG9yeSAkTG9jay5TdGF0ZURpcmVjdG9yeSAtQ2F0ZWdvcnkgJ2xvY2tzJyAt
UmVjb3JkICRoaXN0b3J5KQ0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgaWYgKCRu
dWxsIC1uZSAkTG9jay5TdHJlYW0pIHsNCiAgICAgICAgICAgICAgICAkTG9jay5TdHJlYW0uRGlz
cG9zZSgpDQogICAgICAgICAgICAgICAgJExvY2suU3RyZWFtID0gJG51bGwNCiAgICAgICAgICAg
IH0NCg0KICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJExvY2suUGF0aCAt
UGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAgICAgICRvd25lZCA9ICRmYWxzZQ0KICAgICAg
ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRvbkRpc2sgPSBbU3lzdGVtLklP
LkZpbGVdOjpSZWFkQWxsVGV4dCgkTG9jay5QYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkgfCBDb252
ZXJ0RnJvbS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgICAgICAgICAgICAgICRvd25l
ZCA9IChbc3RyaW5nXSRvbkRpc2sudG9rZW4pLkVxdWFscyhbc3RyaW5nXSRMb2NrLlRva2VuLCBb
U3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0N
CiAgICAgICAgICAgICAgICBpZiAoJG93bmVkKSB7IFtTeXN0ZW0uSU8uRmlsZV06OkRlbGV0ZSgk
TG9jay5QYXRoKSB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQoNCmZ1bmN0
aW9uIEFkZC1Tb3VsSm91cm5hbEVudHJ5IHsNCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAgIHBh
cmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW1ZhbGlkYXRlUGF0dGVybignXlth
LXowLTldW2EtejAtOS4tXXswLDYzfSQnKV1bc3RyaW5nXSRUeXBlLA0KICAgICAgICBbUGFyYW1l
dGVyKE1hbmRhdG9yeSldJERhdGEsDQogICAgICAgIFtQYXJhbWV0ZXIoRG9udFNob3cpXVtzdHJp
bmddJFRlc3RTZXR1cERpcmVjdG9yeQ0KICAgICkNCg0KICAgICRzdGF0ZURpcmVjdG9yeSA9IFJl
c29sdmUtU291bFNldHVwU3RhdGVEaXJlY3RvcnkgLVRlc3RTZXR1cERpcmVjdG9yeSAkVGVzdFNl
dHVwRGlyZWN0b3J5DQogICAgW3ZvaWRdKEluaXRpYWxpemUtU291bEludGVybmFsRGlyZWN0b3J5
IC1QYXRoICRzdGF0ZURpcmVjdG9yeSAtSWRlbnRpdHkgJ1NldHVwIHN0YXRlJykNCiAgICAkam91
cm5hbFBhdGggPSBKb2luLVBhdGggLVBhdGggJHN0YXRlRGlyZWN0b3J5IC1DaGlsZFBhdGggJ2pv
dXJuYWwuanNvbmwnDQogICAgJGxvY2sgPSBOZXctU291bE9wZXJhdGlvbkxvY2sgLU5hbWUgJ2pv
dXJuYWwnIC1UZXN0U2V0dXBEaXJlY3RvcnkgJFRlc3RTZXR1cERpcmVjdG9yeQ0KICAgIHRyeSB7
DQogICAgICAgICRpZGVudGl0eSA9IEdldC1Tb3VsUHJvY2Vzc0lkZW50aXR5DQogICAgICAgICRl
bnRyeSA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAg
ICAgICAgZXZlbnRJZCAgICAgICA9IFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdEJykNCiAg
ICAgICAgICAgIHRpbWVzdGFtcFV0YyAgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28n
KQ0KICAgICAgICAgICAgdHlwZSAgICAgICAgICA9ICRUeXBlDQogICAgICAgICAgICBwcm9jZXNz
ICAgICAgID0gJGlkZW50aXR5DQogICAgICAgICAgICBkYXRhICAgICAgICAgID0gJERhdGENCiAg
ICAgICAgfQ0KICAgICAgICAkbGluZSA9ICgkZW50cnkgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGgg
NjQgLUNvbXByZXNzKSArIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUNCiAgICAgICAgJGJ5dGVzID0g
JHNjcmlwdDpVdGY4Tm9Cb20uR2V0Qnl0ZXMoJGxpbmUpDQogICAgICAgICRzdHJlYW0gPSAkbnVs
bA0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJHN0cmVhbSA9IE5ldy1PYmplY3QgU3lzdGVt
LklPLkZpbGVTdHJlYW0oDQogICAgICAgICAgICAgICAgJGpvdXJuYWxQYXRoLA0KICAgICAgICAg
ICAgICAgIFtTeXN0ZW0uSU8uRmlsZU1vZGVdOjpPcGVuT3JDcmVhdGUsDQogICAgICAgICAgICAg
ICAgW1N5c3RlbS5JTy5GaWxlQWNjZXNzXTo6V3JpdGUsDQogICAgICAgICAgICAgICAgW1N5c3Rl
bS5JTy5GaWxlU2hhcmVdOjpSZWFkDQogICAgICAgICAgICApDQogICAgICAgICAgICBbdm9pZF0k
c3RyZWFtLlNlZWsoMCwgW1N5c3RlbS5JTy5TZWVrT3JpZ2luXTo6RW5kKQ0KICAgICAgICAgICAg
JHN0cmVhbS5Xcml0ZSgkYnl0ZXMsIDAsICRieXRlcy5MZW5ndGgpDQogICAgICAgICAgICAkc3Ry
ZWFtLkZsdXNoKCR0cnVlKQ0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgaWYgKCRu
dWxsIC1uZSAkc3RyZWFtKSB7ICRzdHJlYW0uRGlzcG9zZSgpIH0NCiAgICAgICAgfQ0KICAgICAg
ICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XSRlbnRyeQ0KICAgIH0gZmluYWxseSB7DQogICAgICAg
IEV4aXQtU291bE9wZXJhdGlvbkxvY2sgLUxvY2sgJGxvY2sNCiAgICB9DQp9DQoNCmZ1bmN0aW9u
IEdldC1Tb3VsU2hhMjU2IHsNCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAgIHBhcmFtKFtQYXJh
bWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoKQ0KDQogICAgJGZ1bGxQYXRoID0gQXNzZXJ0
LVNvdWxPd25lZFBhdGggLVBhdGggJFBhdGgNCiAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFs
UGF0aCAkZnVsbFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYgKCRpdGVtLlBT
SXNDb250YWluZXIpIHsgdGhyb3cgJ1NIQS0yNTYgcmVxdWlyZXMgYSBmaWxlLicgfQ0KICAgIGlm
ICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVw
YXJzZVBvaW50KSAtbmUgMCkgew0KICAgICAgICB0aHJvdyAnSGFzaGluZyBhIHJlcGFyc2UtcG9p
bnQgdGFyZ2V0IGlzIGZvcmJpZGRlbi4nDQogICAgfQ0KDQogICAgJHN0cmVhbSA9ICRudWxsDQog
ICAgJGFsZ29yaXRobSA9ICRudWxsDQogICAgdHJ5IHsNCiAgICAgICAgJHN0cmVhbSA9IE5ldy1P
YmplY3QgU3lzdGVtLklPLkZpbGVTdHJlYW0oDQogICAgICAgICAgICAkZnVsbFBhdGgsDQogICAg
ICAgICAgICBbU3lzdGVtLklPLkZpbGVNb2RlXTo6T3BlbiwNCiAgICAgICAgICAgIFtTeXN0ZW0u
SU8uRmlsZUFjY2Vzc106OlJlYWQsDQogICAgICAgICAgICBbU3lzdGVtLklPLkZpbGVTaGFyZV06
OlJlYWQNCiAgICAgICAgKQ0KICAgICAgICAkYWxnb3JpdGhtID0gW1N5c3RlbS5TZWN1cml0eS5D
cnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkNCiAgICAgICAgJGhhc2ggPSAkYWxnb3JpdGht
LkNvbXB1dGVIYXNoKCRzdHJlYW0pDQogICAgICAgIHJldHVybiAoW1N5c3RlbS5CaXRDb252ZXJ0
ZXJdOjpUb1N0cmluZygkaGFzaCkpLlJlcGxhY2UoJy0nLCAnJykuVG9Mb3dlckludmFyaWFudCgp
DQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAgaWYgKCRudWxsIC1uZSAkYWxnb3JpdGhtKSB7ICRh
bGdvcml0aG0uRGlzcG9zZSgpIH0NCiAgICAgICAgaWYgKCRudWxsIC1uZSAkc3RyZWFtKSB7ICRz
dHJlYW0uRGlzcG9zZSgpIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Tb3VsUmVsYXRpdmVQ
YXRoSW50ZXJuYWwgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJEJhc2VQYXRo
KQ0KICAgICRmdWxsUGF0aCA9IENvbnZlcnRUby1Tb3VsQ2Fub25pY2FsUGF0aCAkUGF0aA0KICAg
ICRmdWxsQmFzZSA9IENvbnZlcnRUby1Tb3VsQ2Fub25pY2FsUGF0aCAkQmFzZVBhdGgNCiAgICBp
ZiAoJGZ1bGxQYXRoLkVxdWFscygkZnVsbEJhc2UsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pKSB7
IHJldHVybiAnLicgfQ0KICAgIHJldHVybiAkZnVsbFBhdGguU3Vic3RyaW5nKCRmdWxsQmFzZS5M
ZW5ndGgpLlRyaW1TdGFydCgnXCcsICcvJykuUmVwbGFjZSgnXCcsICcvJykNCn0NCg0KZnVuY3Rp
b24gR2V0LVNvdWxUcmVlSW52ZW50b3J5IHsNCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAgIHBh
cmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoKQ0KDQogICAgJGludmVudG9y
eVJvb3QgPSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkUGF0aA0KICAgIGlmICgtbm90IChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoICRpbnZlbnRvcnlSb290IC1QYXRoVHlwZSBDb250YWluZXIp
KSB7DQogICAgICAgIHRocm93ICJJbnZlbnRvcnkgcm9vdCBub3QgZm91bmQ6ICRpbnZlbnRvcnlS
b290Ig0KICAgIH0NCg0KICAgICRlbnRyaWVzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv
bnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICAkcXVldWUgPSBOZXctT2JqZWN0ICdTeXN0ZW0u
Q29sbGVjdGlvbnMuR2VuZXJpYy5RdWV1ZVtTeXN0ZW0uSU8uRGlyZWN0b3J5SW5mb10nDQogICAg
JHF1ZXVlLkVucXVldWUoKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkaW52ZW50b3J5Um9vdCAtRm9y
Y2UpKQ0KDQogICAgd2hpbGUgKCRxdWV1ZS5Db3VudCAtZ3QgMCkgew0KICAgICAgICAkZGlyZWN0
b3J5ID0gJHF1ZXVlLkRlcXVldWUoKQ0KICAgICAgICBmb3JlYWNoICgkaXRlbSBpbiAkZGlyZWN0
b3J5LkVudW1lcmF0ZUZpbGVTeXN0ZW1JbmZvcygpKSB7DQogICAgICAgICAgICAkcmVsYXRpdmUg
PSBHZXQtU291bFJlbGF0aXZlUGF0aEludGVybmFsIC1QYXRoICRpdGVtLkZ1bGxOYW1lIC1CYXNl
UGF0aCAkaW52ZW50b3J5Um9vdA0KICAgICAgICAgICAgJGlzUmVwYXJzZSA9ICgoJGl0ZW0uQXR0
cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAt
bmUgMCkNCiAgICAgICAgICAgIGlmICgkaXNSZXBhcnNlKSB7DQogICAgICAgICAgICAgICAgJGVu
dHJpZXMuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgICAgICAgICBwYXRoICAg
ICAgICAgICAgID0gJHJlbGF0aXZlDQogICAgICAgICAgICAgICAgICAgIGtpbmQgICAgICAgICAg
ICAgPSAncmVwYXJzZS1ibG9ja2VkJw0KICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAg
ICAgID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgbGFzdFdyaXRlVGltZVV0YyA9ICRpdGVt
Lkxhc3RXcml0ZVRpbWVVdGMuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICBzaGEy
NTYgICAgICAgICAgID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgc3RhYmxlICAgICAgICAg
ICA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgIGVycm9yICAgICAgICAgICAgPSAkbnVsbA0K
ICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAg
IH0NCg0KICAgICAgICAgICAgaWYgKCRpdGVtIC1pcyBbU3lzdGVtLklPLkRpcmVjdG9yeUluZm9d
KSB7DQogICAgICAgICAgICAgICAgJGVudHJpZXMuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICAgICAgICAgICAgICBwYXRoICAgICAgICAgICAgID0gJHJlbGF0aXZlDQogICAgICAgICAg
ICAgICAgICAgIGtpbmQgICAgICAgICAgICAgPSAnZGlyZWN0b3J5Jw0KICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggICAgICAgICAgID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgbGFzdFdy
aXRlVGltZVV0YyA9ICRpdGVtLkxhc3RXcml0ZVRpbWVVdGMuVG9TdHJpbmcoJ28nKQ0KICAgICAg
ICAgICAgICAgICAgICBzaGEyNTYgICAgICAgICAgID0gJG51bGwNCiAgICAgICAgICAgICAgICAg
ICAgc3RhYmxlICAgICAgICAgICA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgIGVycm9yICAg
ICAgICAgICAgPSAkbnVsbA0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgJHF1
ZXVlLkVucXVldWUoJGl0ZW0pDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAg
IH0NCg0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAkYmVmb3JlTGVuZ3RoID0g
JGl0ZW0uTGVuZ3RoDQogICAgICAgICAgICAgICAgJGJlZm9yZVdyaXRlID0gJGl0ZW0uTGFzdFdy
aXRlVGltZVV0Yw0KICAgICAgICAgICAgICAgICRzaGEgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAk
aXRlbS5GdWxsTmFtZQ0KICAgICAgICAgICAgICAgICRpdGVtLlJlZnJlc2goKQ0KICAgICAgICAg
ICAgICAgICRzdGFibGUgPSAoJGJlZm9yZUxlbmd0aCAtZXEgJGl0ZW0uTGVuZ3RoIC1hbmQgJGJl
Zm9yZVdyaXRlIC1lcSAkaXRlbS5MYXN0V3JpdGVUaW1lVXRjKQ0KICAgICAgICAgICAgICAgICRl
bnRyaWVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgcGF0aCAg
ICAgICAgICAgICA9ICRyZWxhdGl2ZQ0KICAgICAgICAgICAgICAgICAgICBraW5kICAgICAgICAg
ICAgID0gJ2ZpbGUnDQogICAgICAgICAgICAgICAgICAgIGxlbmd0aCAgICAgICAgICAgPSBbbG9u
Z10kaXRlbS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgbGFzdFdyaXRlVGltZVV0YyA9ICRp
dGVtLkxhc3RXcml0ZVRpbWVVdGMuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICBz
aGEyNTYgICAgICAgICAgID0gJChpZiAoJHN0YWJsZSkgeyAkc2hhIH0gZWxzZSB7ICRudWxsIH0p
DQogICAgICAgICAgICAgICAgICAgIHN0YWJsZSAgICAgICAgICAgPSAkc3RhYmxlDQogICAgICAg
ICAgICAgICAgICAgIGVycm9yICAgICAgICAgICAgPSAkKGlmICgkc3RhYmxlKSB7ICRudWxsIH0g
ZWxzZSB7ICdjaGFuZ2VkLWR1cmluZy1pbnZlbnRvcnknIH0pDQogICAgICAgICAgICAgICAgfSkN
CiAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICRlbnRyaWVzLkFkZChbcHNj
dXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgcGF0aCAgICAgICAgICAgICA9ICRy
ZWxhdGl2ZQ0KICAgICAgICAgICAgICAgICAgICBraW5kICAgICAgICAgICAgID0gJ2ZpbGUnDQog
ICAgICAgICAgICAgICAgICAgIGxlbmd0aCAgICAgICAgICAgPSAkKHRyeSB7IFtsb25nXSRpdGVt
Lkxlbmd0aCB9IGNhdGNoIHsgJG51bGwgfSkNCiAgICAgICAgICAgICAgICAgICAgbGFzdFdyaXRl
VGltZVV0YyA9ICQodHJ5IHsgJGl0ZW0uTGFzdFdyaXRlVGltZVV0Yy5Ub1N0cmluZygnbycpIH0g
Y2F0Y2ggeyAkbnVsbCB9KQ0KICAgICAgICAgICAgICAgICAgICBzaGEyNTYgICAgICAgICAgID0g
JG51bGwNCiAgICAgICAgICAgICAgICAgICAgc3RhYmxlICAgICAgICAgICA9ICRmYWxzZQ0KICAg
ICAgICAgICAgICAgICAgICBlcnJvciAgICAgICAgICAgID0gJF8uRXhjZXB0aW9uLk1lc3NhZ2UN
CiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQog
ICAgcmV0dXJuIEAoJGVudHJpZXMgfCBTb3J0LU9iamVjdCAtUHJvcGVydHkgcGF0aCkNCn0NCg0K
ZnVuY3Rpb24gR2V0LUxpdmVTb3VsQWdlbnRQcm9jZXNzIHsNCiAgICBbQ21kbGV0QmluZGluZygp
XQ0KICAgIHBhcmFtKCkNCg0KICAgICRmb3VuZCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rp
b25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJHByb2Nlc3NSb3dzID0gJG51bGwNCiAgICAk
ZW51bWVyYXRpb25Tb3VyY2UgPSAkbnVsbA0KICAgIHRyeSB7DQogICAgICAgICRwcm9jZXNzUm93
cyA9IEAoR2V0LUNpbUluc3RhbmNlIC1DbGFzc05hbWUgV2luMzJfUHJvY2VzcyAtRXJyb3JBY3Rp
b24gU3RvcCkNCiAgICAgICAgJGVudW1lcmF0aW9uU291cmNlID0gJ2NpbScNCiAgICB9IGNhdGNo
IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICMgV2luZG93cyBQb3dlclNoZWxsIDUuMSBr
ZWVwcyB0aGUgb2xkZXIgV01JIGNtZGxldCBldmVuIG9uIG1hY2hpbmVzDQogICAgICAgICAgICAj
IHdoZXJlIENJTSBpcyB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4gSXQgc3RpbGwgZXhwb3NlcyB0
aGUgY29tbWFuZA0KICAgICAgICAgICAgIyBsaW5lIG5lZWRlZCB0byBpZGVudGlmeSBub2RlLWhv
c3RlZCBDbGF1ZGUvQ29kZXggcHJvY2Vzc2VzLg0KICAgICAgICAgICAgJHByb2Nlc3NSb3dzID0g
QChHZXQtV21pT2JqZWN0IC1DbGFzcyBXaW4zMl9Qcm9jZXNzIC1FcnJvckFjdGlvbiBTdG9wKQ0K
ICAgICAgICAgICAgJGVudW1lcmF0aW9uU291cmNlID0gJ3dtaScNCiAgICAgICAgfSBjYXRjaCB7
DQogICAgICAgICAgICAkcHJvY2Vzc1Jvd3MgPSAkbnVsbA0KICAgICAgICB9DQogICAgfQ0KDQog
ICAgaWYgKCRudWxsIC1uZSAkcHJvY2Vzc1Jvd3MpIHsNCiAgICAgICAgJHVua25vd25Ob2RlUm93
cyA9IDANCiAgICAgICAgZm9yZWFjaCAoJHByb2Nlc3MgaW4gJHByb2Nlc3NSb3dzKSB7DQogICAg
ICAgICAgICAkbmFtZSA9IFtzdHJpbmddJHByb2Nlc3MuTmFtZQ0KICAgICAgICAgICAgJGNvbW1h
bmRMaW5lID0gW3N0cmluZ10kcHJvY2Vzcy5Db21tYW5kTGluZQ0KICAgICAgICAgICAgJGhhcm5l
c3MgPSAkbnVsbA0KICAgICAgICAgICAgaWYgKCRuYW1lIC1tYXRjaCAnXig/aTpjbGF1ZGV8Y2xh
dWRlLWNvZGUpKD86XC5leGUpPyQnKSB7DQogICAgICAgICAgICAgICAgJGhhcm5lc3MgPSAnY2xh
dWRlJw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRuYW1lIC1tYXRjaCAnXig/aTpjb2RleCkoPzot
W2EtejAtOV8tXSspPyg/OlwuZXhlKT8kJykgew0KICAgICAgICAgICAgICAgICRoYXJuZXNzID0g
J2NvZGV4Jw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRuYW1lIC1tYXRjaCAnXig/aTpub2RlKSg/
OlwuZXhlKT8kJykgew0KICAgICAgICAgICAgICAgIGlmICgkY29tbWFuZExpbmUgLW1hdGNoICco
P2k6QGFudGhyb3BpYy1haVtcXC9dY2xhdWRlLWNvZGV8W1xcL11jbGF1ZGUoPzpcLmpzKT8oPzpc
c3wifCQpKScpIHsNCiAgICAgICAgICAgICAgICAgICAgJGhhcm5lc3MgPSAnY2xhdWRlJw0KICAg
ICAgICAgICAgICAgIH0gZWxzZWlmICgkY29tbWFuZExpbmUgLW1hdGNoICcoP2k6QG9wZW5haVtc
XC9dY29kZXh8W1xcL11jb2RleFtcXC9dYmluW1xcL11jb2RleFwuanMpJykgew0KICAgICAgICAg
ICAgICAgICAgICAkaGFybmVzcyA9ICdjb2RleCcNCiAgICAgICAgICAgICAgICB9IGVsc2VpZiAo
W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkY29tbWFuZExpbmUpKSB7DQogICAgICAgICAg
ICAgICAgICAgICMgQSBub2RlIHByb2Nlc3Mgd2hvc2UgY29tbWFuZCBsaW5lIGNhbm5vdCBiZSBp
bnNwZWN0ZWQgbWlnaHQNCiAgICAgICAgICAgICAgICAgICAgIyBiZSBlaXRoZXIgaGFybmVzcy4g
VHJlYXQgdGhlIGluY29tcGxldGUgb2JzZXJ2YXRpb24gYXMgYQ0KICAgICAgICAgICAgICAgICAg
ICAjIGJsb2NrZXIgaW5zdGVhZCBvZiBhc3N1bWluZyBpdCBpcyB1bnJlbGF0ZWQuDQogICAgICAg
ICAgICAgICAgICAgICR1bmtub3duTm9kZVJvd3MrKw0KICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGhhcm5lc3MpIHsgY29udGludWUg
fQ0KDQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICRydW50aW1lUHJvY2VzcyA9
IEdldC1Qcm9jZXNzIC1JZCAoW2ludF0kcHJvY2Vzcy5Qcm9jZXNzSWQpIC1FcnJvckFjdGlvbiBT
dG9wDQogICAgICAgICAgICAgICAgJGZvdW5kLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAg
ICAgICAgICAgICAgICAgaGFybmVzcyAgICAgPSAkaGFybmVzcw0KICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzSWQgICA9IFtpbnRdJHJ1bnRpbWVQcm9jZXNzLklkDQogICAgICAgICAgICAgICAg
ICAgIHN0YXJ0VGltZVV0YyA9ICRydW50aW1lUHJvY2Vzcy5TdGFydFRpbWUuVG9Vbml2ZXJzYWxU
aW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICBwcm9jZXNzTmFtZSA9ICRy
dW50aW1lUHJvY2Vzcy5Qcm9jZXNzTmFtZQ0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAg
ICB9IGNhdGNoIHsgfQ0KICAgICAgICB9DQogICAgICAgIGlmICgkdW5rbm93bk5vZGVSb3dzIC1n
dCAwKSB7DQogICAgICAgICAgICAkZm91bmQuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAg
ICAgICAgICAgIGhhcm5lc3MgICAgICAgPSAndW5rbm93bicNCiAgICAgICAgICAgICAgICBwcm9j
ZXNzSWQgICAgID0gMA0KICAgICAgICAgICAgICAgIHN0YXJ0VGltZVV0YyAgPSAkbnVsbA0KICAg
ICAgICAgICAgICAgIHByb2Nlc3NOYW1lICAgPSAnbm9kZS1jb21tYW5kLWxpbmUtdW5hdmFpbGFi
bGUnDQogICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24gICA9ICRlbnVtZXJhdGlvblNvdXJjZQ0K
ICAgICAgICAgICAgICAgIGluY29tcGxldGUgICAgPSAkdHJ1ZQ0KICAgICAgICAgICAgfSkNCiAg
ICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICAgICMgVGhlIG5hbWUtb25seSBmYWxsYmFjayBj
YW5ub3Qgc2VlIG5vZGUtaG9zdGVkIGhhcm5lc3Nlcy4gUHJlc2VydmUgYW55DQogICAgICAgICMg
ZGlyZWN0IGV2aWRlbmNlIGl0IGNhbiBnYXRoZXIsIGJ1dCBhbHdheXMgYWRkIGFuIGV4cGxpY2l0
IHNlbnRpbmVsIHNvDQogICAgICAgICMgZXZlcnkgbXV0YXRpbmcgY2FsbGVyIGZhaWxzIGNsb3Nl
ZCB1bnRpbCBwcm9jZXNzIGVudW1lcmF0aW9uIHdvcmtzLg0KICAgICAgICBmb3JlYWNoICgkcHJv
Y2VzcyBpbiBAKEdldC1Qcm9jZXNzIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKSkgew0K
ICAgICAgICAgICAgJGhhcm5lc3MgPSAkbnVsbA0KICAgICAgICAgICAgaWYgKCRwcm9jZXNzLlBy
b2Nlc3NOYW1lIC1tYXRjaCAnXig/aTpjbGF1ZGV8Y2xhdWRlLWNvZGUpJCcpIHsgJGhhcm5lc3Mg
PSAnY2xhdWRlJyB9DQogICAgICAgICAgICBlbHNlaWYgKCRwcm9jZXNzLlByb2Nlc3NOYW1lIC1t
YXRjaCAnXig/aTpjb2RleCkoPzotW2EtejAtOV8tXSspPyQnKSB7ICRoYXJuZXNzID0gJ2NvZGV4
JyB9DQogICAgICAgICAgICBpZiAoJG51bGwgLWVxICRoYXJuZXNzKSB7IGNvbnRpbnVlIH0NCiAg
ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgJGZvdW5kLkFkZChbcHNjdXN0b21vYmpl
Y3RdQHsNCiAgICAgICAgICAgICAgICAgICAgaGFybmVzcyAgICAgID0gJGhhcm5lc3MNCiAgICAg
ICAgICAgICAgICAgICAgcHJvY2Vzc0lkICAgID0gW2ludF0kcHJvY2Vzcy5JZA0KICAgICAgICAg
ICAgICAgICAgICBzdGFydFRpbWVVdGMgPSAkcHJvY2Vzcy5TdGFydFRpbWUuVG9Vbml2ZXJzYWxU
aW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICBwcm9jZXNzTmFtZSAgPSAk
cHJvY2Vzcy5Qcm9jZXNzTmFtZQ0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9IGNh
dGNoIHsgfQ0KICAgICAgICB9DQogICAgICAgICRmb3VuZC5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7
DQogICAgICAgICAgICBoYXJuZXNzICAgICAgID0gJ3Vua25vd24nDQogICAgICAgICAgICBwcm9j
ZXNzSWQgICAgID0gMA0KICAgICAgICAgICAgc3RhcnRUaW1lVXRjICA9ICRudWxsDQogICAgICAg
ICAgICBwcm9jZXNzTmFtZSAgID0gJ3Byb2Nlc3MtY29tbWFuZC1saW5lLWVudW1lcmF0aW9uLXVu
YXZhaWxhYmxlJw0KICAgICAgICAgICAgb2JzZXJ2YXRpb24gICA9ICduYW1lLW9ubHktZmFsbGJh
Y2snDQogICAgICAgICAgICBpbmNvbXBsZXRlICAgID0gJHRydWUNCiAgICAgICAgfSkNCiAgICB9
DQogICAgcmV0dXJuIEAoJGZvdW5kIHwgU29ydC1PYmplY3QgaGFybmVzcywgcHJvY2Vzc0lkIC1V
bmlxdWUpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtU291bFByb2Nlc3NJZGVudGl0eSB7DQogICAgW0Nt
ZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkp
XVtpbnRdJFByb2Nlc3NJZCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmdd
JFN0YXJ0VGltZVV0Yw0KICAgICkNCg0KICAgIHRyeSB7DQogICAgICAgICRwcm9jZXNzID0gR2V0
LVByb2Nlc3MgLUlkICRQcm9jZXNzSWQgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgJGV4cGVj
dGVkID0gW0RhdGVUaW1lXTo6UGFyc2UoJFN0YXJ0VGltZVV0YykuVG9Vbml2ZXJzYWxUaW1lKCkN
CiAgICAgICAgJGFjdHVhbCA9ICRwcm9jZXNzLlN0YXJ0VGltZS5Ub1VuaXZlcnNhbFRpbWUoKQ0K
ICAgICAgICByZXR1cm4gKFtNYXRoXTo6QWJzKCgkYWN0dWFsIC0gJGV4cGVjdGVkKS5Ub3RhbE1p
bGxpc2Vjb25kcykgLWx0IDEwMDApDQogICAgfSBjYXRjaCB7DQogICAgICAgIHJldHVybiAkZmFs
c2UNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1Tb3VsRXh0ZXJuYWxBbGxvd0xpc3RFbnRy
eU5hcnJvdyB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXSRFbnRyeSkNCg0KICAg
IGlmIChbc3RyaW5nXSRFbnRyeS5vd25lciAtY25lICdzb3VsLXNldHVwJykgew0KICAgICAgICB0
aHJvdyAnRXZlcnkgZXh0ZXJuYWwgYWxsb3dsaXN0IGVudHJ5IG11c3QgYmUgb3duZWQgYnkgc291
bC1zZXR1cC4nDQogICAgfQ0KICAgIGlmICgkc2NyaXB0OkFsbG93ZWRFeHRlcm5hbEtpbmRzIC1u
b3Rjb250YWlucyBbc3RyaW5nXSRFbnRyeS5raW5kKSB7DQogICAgICAgIHRocm93ICJVbnN1cHBv
cnRlZCBleHRlcm5hbCBhbGxvd2xpc3Qga2luZDogJCgkRW50cnkua2luZCkiDQogICAgfQ0KICAg
IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJEVudHJ5LnBhdGgpKSB7
DQogICAgICAgIHRocm93ICdFdmVyeSBleHRlcm5hbCBhbGxvd2xpc3QgZW50cnkgbmVlZHMgYW4g
YWJzb2x1dGUgcGF0aC4nDQogICAgfQ0KDQogICAgJGVudHJ5UGF0aCA9IENvbnZlcnRUby1Tb3Vs
Q2Fub25pY2FsUGF0aCAoW3N0cmluZ10kRW50cnkucGF0aCkNCiAgICAkZW50cnlSb290ID0gW1N5
c3RlbS5JTy5QYXRoXTo6R2V0UGF0aFJvb3QoJGVudHJ5UGF0aCkNCiAgICBpZiAoW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkZW50cnlSb290KSAtb3IgJGVudHJ5UGF0aC5FcXVhbHMoJGVu
dHJ5Um9vdC5UcmltRW5kKCdcJywgJy8nKSwgJHNjcmlwdDpQYXRoQ29tcGFyaXNvbikpIHsNCiAg
ICAgICAgdGhyb3cgJ0FuIGV4dGVybmFsIGFsbG93bGlzdCBlbnRyeSBjYW5ub3QgbmFtZSBhIGRy
aXZlIHJvb3QuJw0KICAgIH0NCiAgICBpZiAoVGVzdC1Tb3VsUGF0aFdpdGhpbiAtUGF0aCAkZW50
cnlQYXRoIC1QYXJlbnQgJHNjcmlwdDpTb3VsUm9vdCAtQWxsb3dQYXJlbnQpIHsNCiAgICAgICAg
dGhyb3cgJ1NvdWwtaW50ZXJuYWwgcGF0aHMgZG8gbm90IGJlbG9uZyBpbiB0aGUgZXh0ZXJuYWwg
YWxsb3dsaXN0LicNCiAgICB9DQoNCiAgICAkc2VnbWVudHMgPSAkZW50cnlQYXRoLlN1YnN0cmlu
ZygkZW50cnlSb290Lkxlbmd0aCkuVHJpbSgnXCcsICcvJykgLXNwbGl0ICdbXFwvXScNCiAgICBp
ZiAoJHNlZ21lbnRzLkNvdW50IC1sdCAzKSB7DQogICAgICAgIHRocm93ICdBbiBleHRlcm5hbCBh
bGxvd2xpc3QgZW50cnkgaXMgdG9vIGJyb2FkOyBhdCBsZWFzdCB0aHJlZSBwYXRoIHNlZ21lbnRz
IGFyZSByZXF1aXJlZC4nDQogICAgfQ0KICAgIGZvcmVhY2ggKCRkZXNrdG9wUGF0aCBpbiBHZXQt
U291bERlc2t0b3BQYXRocykgew0KICAgICAgICBpZiAoJGVudHJ5UGF0aC5FcXVhbHMoJGRlc2t0
b3BQYXRoLCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKSAtb3INCiAgICAgICAgICAgIChUZXN0LVNv
dWxQYXRoV2l0aGluIC1QYXRoICRlbnRyeVBhdGggLVBhcmVudCAkZGVza3RvcFBhdGggLUFsbG93
UGFyZW50KSkgew0KICAgICAgICAgICAgdGhyb3cgJ0Rlc2t0b3AgYW5kIE9uZURyaXZlIERlc2t0
b3AgY2Fubm90IGJlIGV4dGVybmFsIHdyaXRlIHRhcmdldHMuJw0KICAgICAgICB9DQogICAgfQ0K
ICAgIEFzc2VydC1Ob0V4dGVybmFsUmVwYXJzZVBvaW50IC1QYXRoICRlbnRyeVBhdGgNCiAgICBy
ZXR1cm4gJGVudHJ5UGF0aA0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtU291bFNldHVwRXh0ZXJuYWxQ
YXRoIHsNCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1l
dGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGF0aCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRv
cnkpXVtzdHJpbmddJEFsbG93TGlzdFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5
KV1bVmFsaWRhdGVTZXQoJ2FkYXB0ZXInLCAnY29uZmlnLXBvaW50ZXInLCAnZW52aXJvbm1lbnQt
cG9pbnRlcicsICdqdW5jdGlvbicpXVtzdHJpbmddJEtpbmQNCiAgICApDQoNCiAgICAkZnVsbEFs
bG93TGlzdFBhdGggPSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkQWxsb3dMaXN0UGF0aA0K
ICAgIGlmICgtbm90IChUZXN0LVNvdWxQYXRoV2l0aGluIC1QYXRoICRmdWxsQWxsb3dMaXN0UGF0
aCAtUGFyZW50ICRzY3JpcHQ6U2V0dXBEaXJlY3RvcnkpKSB7DQogICAgICAgIHRocm93ICdUaGUg
ZXh0ZXJuYWwgd3JpdGUgYWxsb3dsaXN0IG11c3QgYmUgb3duZWQgYnkgX2FnZW50XHNldHVwLicN
CiAgICB9DQogICAgJGFsbG93TGlzdCA9IFJlYWQtU291bEpzb24gLVBhdGggJGZ1bGxBbGxvd0xp
c3RQYXRoDQogICAgaWYgKFtpbnRdJGFsbG93TGlzdC5zY2hlbWFWZXJzaW9uIC1uZSAxKSB7IHRo
cm93ICdVbnN1cHBvcnRlZCBleHRlcm5hbCBhbGxvd2xpc3Qgc2NoZW1hLicgfQ0KDQogICAgJHRh
cmdldCA9IENvbnZlcnRUby1Tb3VsQ2Fub25pY2FsUGF0aCAkUGF0aA0KICAgIGZvcmVhY2ggKCRl
bnRyeSBpbiBAKCRhbGxvd0xpc3QuZW50cmllcykpIHsNCiAgICAgICAgJGVudHJ5UGF0aCA9IEFz
c2VydC1Tb3VsRXh0ZXJuYWxBbGxvd0xpc3RFbnRyeU5hcnJvdyAtRW50cnkgJGVudHJ5DQogICAg
ICAgIGlmIChbc3RyaW5nXSRlbnRyeS5raW5kIC1jbmUgJEtpbmQpIHsgY29udGludWUgfQ0KICAg
ICAgICAkbWF0Y2hlcyA9ICR0YXJnZXQuRXF1YWxzKCRlbnRyeVBhdGgsICRzY3JpcHQ6UGF0aENv
bXBhcmlzb24pDQogICAgICAgIGlmICgtbm90ICRtYXRjaGVzIC1hbmQgW2Jvb2xdJGVudHJ5LmFs
bG93RGVzY2VuZGFudHMpIHsNCiAgICAgICAgICAgICRtYXRjaGVzID0gVGVzdC1Tb3VsUGF0aFdp
dGhpbiAtUGF0aCAkdGFyZ2V0IC1QYXJlbnQgJGVudHJ5UGF0aA0KICAgICAgICB9DQogICAgICAg
IGlmICgkbWF0Y2hlcykgew0KICAgICAgICAgICAgQXNzZXJ0LU5vRXh0ZXJuYWxSZXBhcnNlUG9p
bnQgLVBhdGggJHRhcmdldA0KICAgICAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICAgICAgICAgIHBhdGggICAgICAgICAgICAgPSAkdGFyZ2V0DQogICAgICAgICAgICAg
ICAga2luZCAgICAgICAgICAgICA9ICRLaW5kDQogICAgICAgICAgICAgICAgYWxsb3dsaXN0UGF0
aCAgICA9ICRmdWxsQWxsb3dMaXN0UGF0aA0KICAgICAgICAgICAgICAgIG1hdGNoZWRFbnRyeVBh
dGggPSAkZW50cnlQYXRoDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgdGhy
b3cgIkV4dGVybmFsIHdyaXRlIHRhcmdldCBpcyBub3QgZXhwbGljaXRseSBhbGxvd2xpc3RlZCBm
b3IgJyRLaW5kJzogJHRhcmdldCINCn0NCg0KZnVuY3Rpb24gR2V0LVNvdWxBY3RpdmVHZW5lcmF0
aW9uUGF0aCB7DQogICAgW0NtZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbShbUGFyYW1ldGVyKERv
bnRTaG93KV1bc3RyaW5nXSRUZXN0U2V0dXBEaXJlY3RvcnkpDQoNCiAgICAkc3RhdGVEaXJlY3Rv
cnkgPSBSZXNvbHZlLVNvdWxTZXR1cFN0YXRlRGlyZWN0b3J5IC1UZXN0U2V0dXBEaXJlY3Rvcnkg
JFRlc3RTZXR1cERpcmVjdG9yeQ0KICAgIHJldHVybiAoSm9pbi1QYXRoIC1QYXRoICRzdGF0ZURp
cmVjdG9yeSAtQ2hpbGRQYXRoICdhY3RpdmUtZ2VuZXJhdGlvbi5qc29uJykNCn0NCg0KZnVuY3Rp
b24gR2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIHsNCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAg
IHBhcmFtKFtQYXJhbWV0ZXIoRG9udFNob3cpXVtzdHJpbmddJFRlc3RTZXR1cERpcmVjdG9yeSkN
Cg0KICAgICRwYXRoID0gR2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uUGF0aCAtVGVzdFNldHVwRGly
ZWN0b3J5ICRUZXN0U2V0dXBEaXJlY3RvcnkNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkcGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgcmV0dXJuICRudWxsIH0NCiAgICByZXR1
cm4gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkcGF0aA0KfQ0KDQpmdW5jdGlvbiBTZXQtU291bEFjdGl2
ZUdlbmVyYXRpb24gew0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgcGFyYW0oDQogICAgICAg
IFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bVmFsaWRhdGVQYXR0ZXJuKCdeW0EtWmEtejAtOV1bQS1a
YS16MC05Ll8tXXswLDEyN30kJyldW3N0cmluZ10kR2VuZXJhdGlvbklkLA0KICAgICAgICBbQWxs
b3dFbXB0eVN0cmluZygpXVtzdHJpbmddJEV4cGVjdGVkUHJldmlvdXNHZW5lcmF0aW9uSWQsDQog
ICAgICAgIFtQYXJhbWV0ZXIoRG9udFNob3cpXVtzdHJpbmddJFRlc3RTZXR1cERpcmVjdG9yeQ0K
ICAgICkNCg0KICAgICRzdGF0ZURpcmVjdG9yeSA9IFJlc29sdmUtU291bFNldHVwU3RhdGVEaXJl
Y3RvcnkgLVRlc3RTZXR1cERpcmVjdG9yeSAkVGVzdFNldHVwRGlyZWN0b3J5DQogICAgW3ZvaWRd
KEluaXRpYWxpemUtU291bEludGVybmFsRGlyZWN0b3J5IC1QYXRoICRzdGF0ZURpcmVjdG9yeSAt
SWRlbnRpdHkgJ1NldHVwIHN0YXRlJykNCiAgICAkZ2VuZXJhdGlvblJvb3QgPSBJbml0aWFsaXpl
LVNvdWxJbnRlcm5hbERpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRzdGF0ZURpcmVjdG9yeSAn
Z2VuZXJhdGlvbnMnKSAtSWRlbnRpdHkgJ1NldHVwIGdlbmVyYXRpb25zJw0KICAgICRnZW5lcmF0
aW9uRGlyZWN0b3J5ID0gSm9pbi1QYXRoIC1QYXRoICRnZW5lcmF0aW9uUm9vdCAtQ2hpbGRQYXRo
ICRHZW5lcmF0aW9uSWQNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZ2Vu
ZXJhdGlvbkRpcmVjdG9yeSAtUGF0aFR5cGUgQ29udGFpbmVyKSkgew0KICAgICAgICB0aHJvdyAi
R2VuZXJhdGlvbiBkaXJlY3Rvcnkgbm90IGZvdW5kOiAkR2VuZXJhdGlvbklkIg0KICAgIH0NCiAg
ICBBc3NlcnQtTm9Tb3VsUmVwYXJzZVBvaW50IC1QYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5IC1C
b3VuZGFyeSAkc2NyaXB0OlNvdWxSb290DQogICAgJG1hbmlmZXN0UGF0aCA9IEpvaW4tUGF0aCAt
UGF0aCAkZ2VuZXJhdGlvbkRpcmVjdG9yeSAtQ2hpbGRQYXRoICdnZW5lcmF0aW9uLmpzb24nDQog
ICAgJG1hbmlmZXN0ID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkbWFuaWZlc3RQYXRoDQogICAgaWYg
KCRudWxsIC1uZSAkbWFuaWZlc3QuZ2VuZXJhdGlvbklkIC1hbmQgW3N0cmluZ10kbWFuaWZlc3Qu
Z2VuZXJhdGlvbklkIC1jbmUgJEdlbmVyYXRpb25JZCkgew0KICAgICAgICB0aHJvdyAnR2VuZXJh
dGlvbiBtYW5pZmVzdCBJRCBkb2VzIG5vdCBtYXRjaCBpdHMgZGlyZWN0b3J5LicNCiAgICB9DQog
ICAgaWYgKEAoJ3JlYWR5JywgJ2FjdGl2ZScpIC1ub3Rjb250YWlucyBbc3RyaW5nXSRtYW5pZmVz
dC5zdGF0dXMpIHsNCiAgICAgICAgdGhyb3cgJ09ubHkgYSB2ZXJpZmllZCByZWFkeSBnZW5lcmF0
aW9uIGNhbiBiZWNvbWUgYWN0aXZlLicNCiAgICB9DQoNCiAgICAkbG9jayA9IE5ldy1Tb3VsT3Bl
cmF0aW9uTG9jayAtTmFtZSAnYWN0aXZlLWdlbmVyYXRpb24nIC1UZXN0U2V0dXBEaXJlY3Rvcnkg
JFRlc3RTZXR1cERpcmVjdG9yeQ0KICAgIHRyeSB7DQogICAgICAgICRjdXJyZW50ID0gR2V0LVNv
dWxBY3RpdmVHZW5lcmF0aW9uIC1UZXN0U2V0dXBEaXJlY3RvcnkgJFRlc3RTZXR1cERpcmVjdG9y
eQ0KICAgICAgICAkY3VycmVudElkID0gaWYgKCRudWxsIC1lcSAkY3VycmVudCkgeyAkbnVsbCB9
IGVsc2UgeyBbc3RyaW5nXSRjdXJyZW50LmdlbmVyYXRpb25JZCB9DQogICAgICAgIGlmICgkUFNC
b3VuZFBhcmFtZXRlcnMuQ29udGFpbnNLZXkoJ0V4cGVjdGVkUHJldmlvdXNHZW5lcmF0aW9uSWQn
KSkgew0KICAgICAgICAgICAgJGV4cGVjdGVkID0gaWYgKFtzdHJpbmddOjpJc051bGxPckVtcHR5
KCRFeHBlY3RlZFByZXZpb3VzR2VuZXJhdGlvbklkKSkgeyAkbnVsbCB9IGVsc2UgeyAkRXhwZWN0
ZWRQcmV2aW91c0dlbmVyYXRpb25JZCB9DQogICAgICAgICAgICBpZiAoW3N0cmluZ10kY3VycmVu
dElkIC1jbmUgW3N0cmluZ10kZXhwZWN0ZWQpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAiQWN0
aXZlIGdlbmVyYXRpb24gY2hhbmdlZCBjb25jdXJyZW50bHkuIEV4cGVjdGVkICckZXhwZWN0ZWQn
OyBmb3VuZCAnJGN1cnJlbnRJZCcuIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAg
ICAgJGlkZW50aXR5ID0gR2V0LVNvdWxQcm9jZXNzSWRlbnRpdHkNCiAgICAgICAgJHBvaW50ZXIg
PSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgc2NoZW1hVmVyc2lvbiAgICAgICAgPSAxDQogICAg
ICAgICAgICBnZW5lcmF0aW9uSWQgICAgICAgID0gJEdlbmVyYXRpb25JZA0KICAgICAgICAgICAg
cHJldmlvdXNHZW5lcmF0aW9uSWQgPSAkY3VycmVudElkDQogICAgICAgICAgICBhY3RpdmF0ZWRB
dFV0YyAgICAgICA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgICAgICAg
ICBhY3RpdmF0ZWRCeSAgICAgICAgICA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgaG9z
dE5hbWUgICAgICAgID0gW0Vudmlyb25tZW50XTo6TWFjaGluZU5hbWUNCiAgICAgICAgICAgICAg
ICBwcm9jZXNzSWQgICAgICAgPSAkaWRlbnRpdHkucHJvY2Vzc0lkDQogICAgICAgICAgICAgICAg
cHJvY2Vzc1N0YXJ0VXRjID0gJGlkZW50aXR5LnByb2Nlc3NTdGFydFV0Yw0KICAgICAgICAgICAg
fQ0KICAgICAgICB9DQogICAgICAgICRwb2ludGVyUGF0aCA9IEdldC1Tb3VsQWN0aXZlR2VuZXJh
dGlvblBhdGggLVRlc3RTZXR1cERpcmVjdG9yeSAkVGVzdFNldHVwRGlyZWN0b3J5DQogICAgICAg
IFt2b2lkXShXcml0ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAkcG9pbnRlclBhdGggLVZhbHVlICRw
b2ludGVyKQ0KICAgICAgICBbdm9pZF0oQWRkLVNvdWxKb3VybmFsRW50cnkgLVR5cGUgJ2dlbmVy
YXRpb24uYWN0aXZhdGVkJyAtRGF0YSBAew0KICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gJEdl
bmVyYXRpb25JZA0KICAgICAgICAgICAgcHJldmlvdXNHZW5lcmF0aW9uSWQgPSAkY3VycmVudElk
DQogICAgICAgIH0gLVRlc3RTZXR1cERpcmVjdG9yeSAkVGVzdFNldHVwRGlyZWN0b3J5KQ0KICAg
ICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XSRwb2ludGVyDQogICAgfSBmaW5hbGx5IHsNCiAg
ICAgICAgRXhpdC1Tb3VsT3BlcmF0aW9uTG9jayAtTG9jayAkbG9jaw0KICAgIH0NCn0NCg0KZnVu
Y3Rpb24gR2V0LVNvdWxEYW5nZXJvdXNQZXJtaXNzaW9uTm90aWNlIHsNCiAgICBbQ21kbGV0Qmlu
ZGluZygpXQ0KICAgIHBhcmFtKCkNCg0KICAgIHJldHVybiAnQWdlbnQgYXBwcm92YWwgYW5kIHNh
bmRib3ggc2V0dGluZ3MgY29udHJvbCB0aGUgYWdlbnQgaGFybmVzcyBvbmx5OyB0aGV5IG5laXRo
ZXIgZ3JhbnQgV2luZG93cyBhZG1pbmlzdHJhdG9yIHJpZ2h0cyBub3IgZ3VhcmFudGVlIG9wZXJh
dGluZy1zeXN0ZW0gY29udGFpbm1lbnQuJw0KfQ0KDQpFeHBvcnQtTW9kdWxlTWVtYmVyIC1GdW5j
dGlvbiBAKA0KICAgICdHZXQtU291bFJvb3QnLA0KICAgICdHZXQtU291bEVuZ2luZUxheW91dCcs
DQogICAgJ0Fzc2VydC1Tb3VsUm9vdCcsDQogICAgJ0Fzc2VydC1Tb3VsT3duZWRQYXRoJywNCiAg
ICAnV3JpdGUtU291bFV0ZjhBdG9taWMnLA0KICAgICdXcml0ZS1Tb3VsSnNvbkF0b21pYycsDQog
ICAgJ1JlYWQtU291bEpzb24nLA0KICAgICdOZXctU291bEhpc3RvcnlSZWNvcmQnLA0KICAgICdO
ZXctU291bE9wZXJhdGlvbkxvY2snLA0KICAgICdFeGl0LVNvdWxPcGVyYXRpb25Mb2NrJywNCiAg
ICAnQWRkLVNvdWxKb3VybmFsRW50cnknLA0KICAgICdHZXQtU291bFNoYTI1NicsDQogICAgJ0dl
dC1Tb3VsVHJlZUludmVudG9yeScsDQogICAgJ0dldC1MaXZlU291bEFnZW50UHJvY2VzcycsDQog
ICAgJ1Rlc3QtU291bFByb2Nlc3NJZGVudGl0eScsDQogICAgJ0Fzc2VydC1Tb3VsU2V0dXBFeHRl
cm5hbFBhdGgnLA0KICAgICdHZXQtU291bEFjdGl2ZUdlbmVyYXRpb25QYXRoJywNCiAgICAnR2V0
LVNvdWxBY3RpdmVHZW5lcmF0aW9uJywNCiAgICAnU2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uJywN
CiAgICAnR2V0LVNvdWxEYW5nZXJvdXNQZXJtaXNzaW9uTm90aWNlJw0KKQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/export-restore.ps1","encoding":"base64","size":96449,"runtimeSha256":"f1827c00842daaf813f7eaf104d73268cb34665cabc282b558f80c2530d5d700","normalizedSha256":"4633131ba11a902b58e04a3279e6b18ba2b58c16e799b4a95a631e0f078f5a55"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KPCMNCi5TWU5PUFNJUw0KICDsmIHtmLwg642w7J20
7YSw66W8IHRhcuuhnCDrrLbqs6AgYWdlIDEuMy4x66GcIOyVlO2YuO2ZlO2VmOqxsOuCmCwg6rKA
7KadIO2bhCDruYTtjIzqtLQg67O17JuQ7ZWc64ukLg0KICBFeHBvcnTripQg7IOIIFBD7JeQIOyY
ge2YvOydtCDslYTsp4Eg7ISk7LmY65CY7KeAIOyViuyVhOuPhCDsi6TtlontlaAg7IiYIOyeiOuK
lCDsnpDssrQg7Y+s7ZWoIOuzteybkCDrrLbsnYzsnYQg66eM65Og64ukLg0KDQouU0VDVVJJVFkN
CiAgVVNC64qUIOuNsOydtO2EsCDsmrTrsJgg7IOB7J6Q7J2064ukLiDrgrTrs7Trgrwg65WM64qU
IOqzoOyglSDrlJTsiqTtgazsnZgg6rKA7Kad65CcIOybkOuzuOunjCDsgqzsmqntlZjqs6AsIFVT
QuyXkOyEnCDrs7Xsm5DtlaAg65WM64qUDQogIOqzteqwnCBtYW5pZmVzdOyZgCDsp4DrrLjsnYQg
66i87KCAIOuMgOyhsO2VnCDrkqQg66y27J2M7JeQIOuPmeu0ieuQnCBhZ2Xrpbwg7Iuk7ZaJ7ZWc
64ukLiBVU0LsnZgg7JmE7KCE7ZWcIOynhOychOuKlCDsnbQg6rCA7J2065Oc7JeQIOuCtOyepeuQ
nA0KICDrs7Xsm5DquLAg7KeA66y47J2064KYIOqzteyLnSBhZ2Ug7JuQ67O4IOyngOusuOycvOuh
nCDrs4Trj4Qg7ZmV7J247ZW07JW8IO2VnOuLpC4g67O16rWsIOyVlO2YuOuKlCBhZ2XsnZgg67O0
7JWIIO2UhOuhrO2UhO2KuOuhnOunjCDrsJvslYQNCiAgUG93ZXJTaGVsbCDsnbjsiJjCt+uhnOq3
uMK37YG066a967O065Oc7JeQIOuEo+yngCDslYrripTri6QuDQojPg0KW0NtZGxldEJpbmRpbmco
KV0NCnBhcmFtKA0KICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXQ0KICAgIFtWYWxp
ZGF0ZVNldCgnRXhwb3J0JywgJ1Jlc3RvcmUnLCAnVmVyaWZ5JywgJ1BvcnRhYmxlUmVzdG9yZScs
ICdQb3J0YWJsZVZlcmlmeScsICdTZWxmVGVzdCcpXQ0KICAgIFtzdHJpbmddJEFjdGlvbiwNCg0K
ICAgIFtzdHJpbmddJFNvdWxSb290LA0KICAgIFtzdHJpbmddJERlc3RpbmF0aW9uRGlyZWN0b3J5
LA0KICAgIFtzdHJpbmddJEFyY2hpdmVQYXRoLA0KICAgIFtzdHJpbmddJFB1YmxpY01ldGFkYXRh
UGF0aCwNCiAgICBbc3RyaW5nXSRUYXJnZXRTb3VsUm9vdCwNCiAgICBbc3RyaW5nXSRTYWZlRGF0
YWJhc2VCYWNrdXBSb290LA0KICAgIFtzdHJpbmddJFRydXN0ZWRBZ2VQYXRoLA0KDQogICAgIyBQ
b3J0YWJsZUlkZW50aXR5UGF0aOuKlCDsnpDrj5kg7YWM7Iqk7Yq47JqpIHJlY2lwaWVudCDslZTt
mLjrrLjsl5Drp4wg7JO064ukLg0KICAgICMg7Iuk7KCcIEV4cG9ydCDslZTtmLjrrLjsnYAg7J20
IOyduOyImCDsl4bsnbQgYWdlIOyViOyghCDsnoXroKXssL3sl5DshJwg67O16rWsIOyVlO2YuOul
vCDrsJvripTri6QuDQogICAgW3N0cmluZ10kUG9ydGFibGVJZGVudGl0eVBhdGgsDQogICAgW3N3
aXRjaF0kUG9ydGFibGVUZXN0TW9kZSwNCiAgICBbc3RyaW5nXSRQb3J0YWJsZVRlc3RCb3VuZGFy
eSwNCiAgICBbc3RyaW5nXSRQb3J0YWJsZVRlc3RSb290LA0KDQogICAgW1ZhbGlkYXRlUGF0dGVy
bignXlswLTlhLWZBLUZdezY0fSQnKV0NCiAgICBbc3RyaW5nXSRUcnVzdGVkQWdlU2hhMjU2DQop
DQoNClNldC1TdHJpY3RNb2RlIC1WZXJzaW9uIExhdGVzdA0KJEVycm9yQWN0aW9uUHJlZmVyZW5j
ZSA9ICdTdG9wJw0KDQokc2NyaXB0OklzUG9ydGFibGVBY3Rpb24gPSAkQWN0aW9uIC1pbiBAKCdQ
b3J0YWJsZVJlc3RvcmUnLCAnUG9ydGFibGVWZXJpZnknKQ0KaWYgKC1ub3QgJHNjcmlwdDpJc1Bv
cnRhYmxlQWN0aW9uKSB7DQogICAgJG1vZHVsZVBhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0Um9v
dCAnZW5naW5lXFNvdWwuRW5naW5lLnBzbTEnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJG1vZHVsZVBhdGggLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgIHRocm93ICLq
s7XthrUg7IS47YyFIOyXlOynhOydhCDssL7sp4Ag66q77ZaI7Iq164uI64ukOiAkbW9kdWxlUGF0
aGBu7IS47YyFIO2MjOydvOydtCDrjZwg67O17IKs65CcIOyDge2DnOyeheuLiOuLpC4g6riw7KG0
IOyekOujjOuKlCDqsbTrk5zrpqzsp4Ag7JWK7JWY7Iq164uI64ukLiINCiAgICB9DQogICAgSW1w
b3J0LU1vZHVsZSAtTmFtZSAkbW9kdWxlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCn0N
Cg0KZnVuY3Rpb24gR2V0LUZ1bGxMaXRlcmFsUGF0aCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihN
YW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kUGF0aCkNCiAgICAkZnVsbCA9IFtTeXN0ZW0uSU8u
UGF0aF06OkdldEZ1bGxQYXRoKCRQYXRoKQ0KICAgICRyb290ID0gW1N5c3RlbS5JTy5QYXRoXTo6
R2V0UGF0aFJvb3QoJGZ1bGwpDQogICAgaWYgKCRmdWxsLkxlbmd0aCAtZ3QgJHJvb3QuTGVuZ3Ro
KSB7IHJldHVybiAkZnVsbC5UcmltRW5kKCdcJykgfQ0KICAgIHJldHVybiAkcm9vdA0KfQ0KDQpm
dW5jdGlvbiBUZXN0LUlzVW5kZXJQYXRoIHsNCiAgICBwYXJhbShbc3RyaW5nXSRDYW5kaWRhdGUs
IFtzdHJpbmddJFBhcmVudCkNCiAgICAkY2FuZGlkYXRlRnVsbCA9IEdldC1GdWxsTGl0ZXJhbFBh
dGggJENhbmRpZGF0ZQ0KICAgICRwYXJlbnRGdWxsID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkUGFy
ZW50DQogICAgJHBhcmVudFByZWZpeCA9IGlmICgkcGFyZW50RnVsbC5FbmRzV2l0aCgnXCcsIFtT
eXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7ICRwYXJlbnRGdWxsIH0gZWxzZSB7
ICRwYXJlbnRGdWxsICsgJ1wnIH0NCiAgICAkY2FuZGlkYXRlRnVsbC5FcXVhbHMoJHBhcmVudEZ1
bGwsIFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSAtb3INCiAg
ICAgICAgJGNhbmRpZGF0ZUZ1bGwuU3RhcnRzV2l0aCgkcGFyZW50UHJlZml4LCBbU3lzdGVtLlN0
cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkNCn0NCg0KZnVuY3Rpb24gR2V0LURy
aXZlRm9yUGF0aCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICAkcm9vdCA9IFtTeXN0
ZW0uSU8uUGF0aF06OkdldFBhdGhSb290KChHZXQtRnVsbExpdGVyYWxQYXRoICRQYXRoKSkNCiAg
ICBOZXctT2JqZWN0IFN5c3RlbS5JTy5Ecml2ZUluZm8oJHJvb3QpDQp9DQoNCmZ1bmN0aW9uIEFz
c2VydC1UcnVzdGVkTG9jYWxFbmdpbmUgew0KICAgICRzY3JpcHREcml2ZSA9IEdldC1Ecml2ZUZv
clBhdGggJFBTU2NyaXB0Um9vdA0KICAgIGlmICgkc2NyaXB0RHJpdmUuRHJpdmVUeXBlIC1uZSBb
U3lzdGVtLklPLkRyaXZlVHlwZV06OkZpeGVkKSB7DQogICAgICAgIHRocm93ICdVU0Iv64Sk7Yq4
7JuM7YGsIOychOy5mOydmCDrs7Xsm5Ag7Iqk7YGs66a97Yq464qUIOyLpO2Wie2VmOyngCDslYrs
irXri4jri6QuIOyLoOuisOuQnCDroZzsu6wg7IS47YyFIOyXlOynhOydhCDsgqzsmqntlZjshLjs
mpQuJw0KICAgIH0NCiAgICAkZW5naW5lU291bCA9IEFzc2VydC1Tb3VsUm9vdCAtUGF0aCAoR2V0
LVNvdWxSb290KSAtUmVxdWlyZUluaXRpYWxpemVkDQogICAgJGV4cGVjdGVkU2V0dXAgPSBHZXQt
RnVsbExpdGVyYWxQYXRoIChKb2luLVBhdGggJGVuZ2luZVNvdWwgJ19hZ2VudFxzZXR1cCcpDQog
ICAgaWYgKC1ub3QgKEdldC1GdWxsTGl0ZXJhbFBhdGggJFBTU2NyaXB0Um9vdCkuRXF1YWxzKCRl
eHBlY3RlZFNldHVwLCBbU3lzdGVtLlN0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2Fz
ZSkpIHsNCiAgICAgICAgdGhyb3cgJ+uzteybkCDsiqTtgazrpr3tirjripQgQzpcPOyYge2YvD5c
X2FnZW50XHNldHVw7J2YIOyLoOuisOuQnCDroZzsu6wg7ISk7LmY67O47JeQ7ISc66eMIOyLpO2W
ie2VqeuLiOuLpC4nDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTm9SZXBhcnNlV2l0aGlu
IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRCb3VuZGFyeSkNCiAgICAkZnVs
bCA9IEdldC1GdWxsTGl0ZXJhbFBhdGggJFBhdGgNCiAgICAkYmFzZSA9IEdldC1GdWxsTGl0ZXJh
bFBhdGggJEJvdW5kYXJ5DQogICAgaWYgKC1ub3QgKFRlc3QtSXNVbmRlclBhdGggLUNhbmRpZGF0
ZSAkZnVsbCAtUGFyZW50ICRiYXNlKSkgeyB0aHJvdyAn64+E6rWsIOqyveuhnOqwgCDqs6DsoJXr
kJwg66Gc7LusIOuPhOq1rCDtj7TrjZTrpbwg67KX7Ja064Ks7Iq164uI64ukLicgfQ0KICAgIGlm
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRiYXNlKSB7DQogICAgICAgICRiYXNlSXRlbSA9IEdl
dC1JdGVtIC1MaXRlcmFsUGF0aCAkYmFzZSAtRm9yY2UNCiAgICAgICAgaWYgKCgkYmFzZUl0ZW0u
QXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50
KSAtbmUgMCkgeyB0aHJvdyAi7JWI7KCEIOqyveqzhCDsnpDssrTqsIAg7Jew6rKw7KCQ7J6F64uI
64ukOiAkYmFzZSIgfQ0KICAgIH0NCiAgICAkcmVsYXRpdmUgPSAkZnVsbC5TdWJzdHJpbmcoJGJh
c2UuTGVuZ3RoKS5UcmltU3RhcnQoJ1wnKQ0KICAgICRjdXJyZW50ID0gJGJhc2UNCiAgICBmb3Jl
YWNoICgkcGFydCBpbiAkcmVsYXRpdmUuU3BsaXQoJ1wnKSkgew0KICAgICAgICBpZiAoW3N0cmlu
Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkcGFydCkpIHsgY29udGludWUgfQ0KICAgICAgICAkY3Vy
cmVudCA9IEpvaW4tUGF0aCAkY3VycmVudCAkcGFydA0KICAgICAgICBpZiAoVGVzdC1QYXRoIC1M
aXRlcmFsUGF0aCAkY3VycmVudCkgew0KICAgICAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0
ZXJhbFBhdGggJGN1cnJlbnQgLUZvcmNlDQogICAgICAgICAgICBpZiAoKCRpdGVtLkF0dHJpYnV0
ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDAp
IHsgdGhyb3cgIuuPhOq1rCDqsr3roZzsl5Ag7Jew6rKw7KCQ7J20IOyeiOyWtCDsi6TtlontlZjs
p4Ag7JWK7Iq164uI64ukOiAkY3VycmVudCIgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5j
dGlvbiBHZXQtRmlsZVNoYTI1NiB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAk
dHJ1ZSldW3N0cmluZ10kUGF0aCkNCiAgICAkc3RyZWFtID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8u
RmlsZVN0cmVhbSgkUGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9kZV06Ok9wZW4sIFtTeXN0ZW0uSU8u
RmlsZUFjY2Vzc106OlJlYWQsIFtTeXN0ZW0uSU8uRmlsZVNoYXJlXTo6UmVhZCkNCiAgICAkc2hh
ID0gW1N5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkNCiAgICB0
cnkgeyAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRzaGEuQ29tcHV0ZUhhc2goJHN0cmVhbSkp
KS5SZXBsYWNlKCctJywgJycpLlRvTG93ZXJJbnZhcmlhbnQoKSB9DQogICAgZmluYWxseSB7ICRz
aGEuRGlzcG9zZSgpOyAkc3RyZWFtLkRpc3Bvc2UoKSB9DQp9DQoNCmZ1bmN0aW9uIFdyaXRlLVRl
eHRDcmVhdGVOZXcgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJFRleHQpDQog
ICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoKFNwbGl0LVBhdGggLVBh
cmVudCAkUGF0aCkpIHwgT3V0LU51bGwNCiAgICAkc3RyZWFtID0gTmV3LU9iamVjdCBTeXN0ZW0u
SU8uRmlsZVN0cmVhbSgkUGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9kZV06OkNyZWF0ZU5ldywgW1N5
c3RlbS5JTy5GaWxlQWNjZXNzXTo6V3JpdGUsIFtTeXN0ZW0uSU8uRmlsZVNoYXJlXTo6Tm9uZSkN
CiAgICB0cnkgew0KICAgICAgICAkdXRmOCA9IE5ldy1PYmplY3QgU3lzdGVtLlRleHQuVVRGOEVu
Y29kaW5nKCRmYWxzZSkNCiAgICAgICAgJHdyaXRlciA9IE5ldy1PYmplY3QgU3lzdGVtLklPLlN0
cmVhbVdyaXRlcigkc3RyZWFtLCAkdXRmOCkNCiAgICAgICAgdHJ5IHsgJHdyaXRlci5Xcml0ZSgk
VGV4dCk7ICR3cml0ZXIuRmx1c2goKTsgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkgfSBmaW5hbGx5IHsg
JHdyaXRlci5EaXNwb3NlKCkgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgJHN0cmVhbS5EaXNwb3Nl
KCkgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1VdGY4Qm9tVGV4dENyZWF0ZU5ldyB7DQogICAgcGFy
YW0oW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kVGV4dCkNCiAgICBbU3lzdGVtLklPLkRpcmVjdG9y
eV06OkNyZWF0ZURpcmVjdG9yeSgoU3BsaXQtUGF0aCAtUGFyZW50ICRQYXRoKSkgfCBPdXQtTnVs
bA0KICAgICRzdHJlYW0gPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5GaWxlU3RyZWFtKCRQYXRoLCBb
U3lzdGVtLklPLkZpbGVNb2RlXTo6Q3JlYXRlTmV3LCBbU3lzdGVtLklPLkZpbGVBY2Nlc3NdOjpX
cml0ZSwgW1N5c3RlbS5JTy5GaWxlU2hhcmVdOjpOb25lKQ0KICAgIHRyeSB7DQogICAgICAgICR1
dGY4ID0gTmV3LU9iamVjdCBTeXN0ZW0uVGV4dC5VVEY4RW5jb2RpbmcoJHRydWUpDQogICAgICAg
ICRieXRlcyA9ICR1dGY4LkdldEJ5dGVzKCRUZXh0KQ0KICAgICAgICAkcHJlYW1ibGUgPSAkdXRm
OC5HZXRQcmVhbWJsZSgpDQogICAgICAgICRzdHJlYW0uV3JpdGUoJHByZWFtYmxlLCAwLCAkcHJl
YW1ibGUuTGVuZ3RoKQ0KICAgICAgICAkc3RyZWFtLldyaXRlKCRieXRlcywgMCwgJGJ5dGVzLkxl
bmd0aCkNCiAgICAgICAgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkNCiAgICB9DQogICAgZmluYWxseSB7
ICRzdHJlYW0uRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gQ29udmVydC1Ub0NybGYgew0KICAg
IHBhcmFtKFtBbGxvd0VtcHR5U3RyaW5nKCldW3N0cmluZ10kVGV4dCkNCiAgICAoJFRleHQgLXJl
cGxhY2UgImByYG4iLCAiYG4iIC1yZXBsYWNlICJgciIsICJgbiIgLXJlcGxhY2UgImBuIiwgImBy
YG4iKQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1Kc29uQ3JlYXRlTmV3IHsNCiAgICBwYXJhbShbc3Ry
aW5nXSRQYXRoLCAkVmFsdWUpDQogICAgV3JpdGUtVGV4dENyZWF0ZU5ldyAtUGF0aCAkUGF0aCAt
VGV4dCAoKCRWYWx1ZSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAzMCkgKyBbRW52aXJvbm1lbnRd
OjpOZXdMaW5lKQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LVJlbGF0aXZlQXJjaGl2ZVBhdGggew0KICAg
IHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFBhdGgpDQogICAg
aWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFBhdGgpIC1vciAkUGF0aC5JbmRleE9m
KFtjaGFyXTApIC1nZSAwKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIGZvcmVhY2ggKCRjaGFyYWN0
ZXIgaW4gJFBhdGguVG9DaGFyQXJyYXkoKSkgeyBpZiAoW2ludF1bY2hhcl0kY2hhcmFjdGVyIC1s
dCAzMikgeyByZXR1cm4gJGZhbHNlIH0gfQ0KICAgICRub3JtYWxpemVkID0gJFBhdGguUmVwbGFj
ZSgnXCcsICcvJykuVHJpbSgpDQogICAgd2hpbGUgKCRub3JtYWxpemVkLlN0YXJ0c1dpdGgoJy4v
JywgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbCkpIHsgJG5vcm1hbGl6ZWQgPSAk
bm9ybWFsaXplZC5TdWJzdHJpbmcoMikgfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0
ZVNwYWNlKCRub3JtYWxpemVkKSkgeyByZXR1cm4gJGZhbHNlIH0NCiAgICB0cnkgeyAkcm9vdGVk
ID0gW1N5c3RlbS5JTy5QYXRoXTo6SXNQYXRoUm9vdGVkKCRub3JtYWxpemVkKSB9IGNhdGNoIHsg
cmV0dXJuICRmYWxzZSB9DQogICAgaWYgKCRub3JtYWxpemVkLlN0YXJ0c1dpdGgoJy8nKSAtb3Ig
JG5vcm1hbGl6ZWQuU3RhcnRzV2l0aCgnXFwnKSAtb3IgJHJvb3RlZCkgeyByZXR1cm4gJGZhbHNl
IH0NCiAgICBpZiAoJG5vcm1hbGl6ZWQuQ29udGFpbnMoJzonKSkgeyByZXR1cm4gJGZhbHNlIH0N
CiAgICBpZiAoJG5vcm1hbGl6ZWQuTGVuZ3RoIC1ndCAzMDAwMCkgeyByZXR1cm4gJGZhbHNlIH0N
CiAgICBmb3JlYWNoICgkcGFydCBpbiAkbm9ybWFsaXplZC5TcGxpdCgnLycpKSB7DQogICAgICAg
IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRwYXJ0KSAtb3IgJHBhcnQgLWVxICcu
JyAtb3IgJHBhcnQgLWVxICcuLicpIHsgcmV0dXJuICRmYWxzZSB9DQogICAgICAgIGlmICgkcGFy
dC5MZW5ndGggLWd0IDI1NSAtb3IgJHBhcnQgLW5lICRwYXJ0LlRyaW1FbmQoJyAnLCAnLicpKSB7
IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICBpZiAoJHBhcnQuSW5kZXhPZkFueShbU3lzdGVtLklP
LlBhdGhdOjpHZXRJbnZhbGlkRmlsZU5hbWVDaGFycygpKSAtZ2UgMCkgeyByZXR1cm4gJGZhbHNl
IH0NCiAgICAgICAgJGRldmljZVN0ZW0gPSAoJHBhcnQgLXNwbGl0ICdcLicsIDIpWzBdDQogICAg
ICAgIGlmICgkZGV2aWNlU3RlbSAtbWF0Y2ggJ14oP2k6Q09OfFBSTnxBVVh8TlVMfENPTVsxLTld
fExQVFsxLTldKSQnKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIH0NCiAgICByZXR1cm4gJHRydWUN
Cn0NCg0KZnVuY3Rpb24gQXNzZXJ0LVBvcnRhYmxlSW5wdXRGaWxlIHsNCiAgICBwYXJhbShbc3Ry
aW5nXSRQYXRoLCBbc3RyaW5nXSRMYWJlbCkNCiAgICAkZnVsbCA9IEdldC1GdWxsTGl0ZXJhbFBh
dGggJFBhdGgNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZnVsbCAtUGF0
aFR5cGUgTGVhZikpIHsgdGhyb3cgIiRMYWJlbCDtjIzsnbzsnbQg7JeG7Iq164uI64ukOiAkZnVs
bCIgfQ0KICAgICRkcml2ZSA9IEdldC1Ecml2ZUZvclBhdGggJGZ1bGwNCiAgICBpZiAoLW5vdCAk
ZHJpdmUuSXNSZWFkeSAtb3IgJGRyaXZlLkRyaXZlVHlwZSAtbm90aW4gQChbSU8uRHJpdmVUeXBl
XTo6Rml4ZWQsIFtJTy5Ecml2ZVR5cGVdOjpSZW1vdmFibGUpKSB7IHRocm93ICIkTGFiZWwg7YyM
7J287J2AIOykgOu5hOuQnCDroZzsu6wvVVNCIOuTnOudvOydtOu4jOyXkOyEnOunjCDsnb3sirXr
i4jri6QuIiB9DQogICAgQXNzZXJ0LU5vUmVwYXJzZVdpdGhpbiAtUGF0aCAkZnVsbCAtQm91bmRh
cnkgKFtJTy5QYXRoXTo6R2V0UGF0aFJvb3QoJGZ1bGwpKQ0KICAgICRpdGVtID0gR2V0LUl0ZW0g
LUxpdGVyYWxQYXRoICRmdWxsIC1Gb3JjZQ0KICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFu
ZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICIkTGFi
ZWwg7YyM7J287J20IOyXsOqysOygkOydtOudvCDsnb3sp4Ag7JWK7Iq164uI64ukLiIgfQ0KICAg
IEFzc2VydC1Ob0FsdGVybmF0ZURhdGFTdHJlYW1zIC1GaWxlUGF0aCAkZnVsbA0KICAgIHJldHVy
biAkZnVsbA0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtU2FmZUV4cG9ydERlc3RpbmF0aW9uIHsNCiAg
ICBwYXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgICRmdWxsID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAk
UGF0aA0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRmdWxsIC1QYXRoVHlw
ZSBDb250YWluZXIpKSB7IHRocm93ICLrgrTrs7Trgrwg64yA7IOBIO2PtOuNlOqwgCDsl4bsirXr
i4jri6Q6ICRmdWxsIiB9DQogICAgJGRyaXZlID0gR2V0LURyaXZlRm9yUGF0aCAkZnVsbA0KICAg
IGlmICgtbm90ICRkcml2ZS5Jc1JlYWR5IC1vciAkZHJpdmUuRHJpdmVUeXBlIC1ub3RpbiBAKFtJ
Ty5Ecml2ZVR5cGVdOjpGaXhlZCwgW0lPLkRyaXZlVHlwZV06OlJlbW92YWJsZSkpIHsgdGhyb3cg
J+uCtOuztOuCtOq4sOuKlCDspIDruYTrkJwg66Gc7LusL1VTQiDrk5zrnbzsnbTruIzsl5Drp4wg
7ZWgIOyImCDsnojsirXri4jri6QuJyB9DQogICAgQXNzZXJ0LU5vUmVwYXJzZVdpdGhpbiAtUGF0
aCAkZnVsbCAtQm91bmRhcnkgKFtJTy5QYXRoXTo6R2V0UGF0aFJvb3QoJGZ1bGwpKQ0KICAgICRk
ZXNrdG9wQ2FuZGlkYXRlcyA9IE5ldy1PYmplY3QgQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0
cmluZ10NCiAgICAkZGVza3RvcCA9IFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmly
b25tZW50K1NwZWNpYWxGb2xkZXJdOjpEZXNrdG9wRGlyZWN0b3J5KQ0KICAgIGlmICgtbm90IFtz
dHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGRlc2t0b3ApKSB7ICRkZXNrdG9wQ2FuZGlkYXRl
cy5BZGQoKEdldC1GdWxsTGl0ZXJhbFBhdGggJGRlc2t0b3ApKSB9DQogICAgaWYgKC1ub3QgW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkZW52Ok9uZURyaXZlKSkgeyAkZGVza3RvcENhbmRp
ZGF0ZXMuQWRkKChHZXQtRnVsbExpdGVyYWxQYXRoIChKb2luLVBhdGggJGVudjpPbmVEcml2ZSAn
RGVza3RvcCcpKSkgfQ0KICAgIGZvcmVhY2ggKCRkZXNrdG9wUGF0aCBpbiAkZGVza3RvcENhbmRp
ZGF0ZXMpIHsNCiAgICAgICAgaWYgKFRlc3QtSXNVbmRlclBhdGggLUNhbmRpZGF0ZSAkZnVsbCAt
UGFyZW50ICRkZXNrdG9wUGF0aCkgeyB0aHJvdyAn67CU7YOV7ZmU66m07JeQ64qUIOuCtOuztOuC
tOq4sCDtjIzsnbzsnYQg7JOw7KeAIOyViuyKteuLiOuLpC4gVVNC7J2YIOydvOuwmCDtj7TrjZTr
pbwg7ISg7YOd7ZWY7IS47JqULicgfQ0KICAgIH0NCiAgICByZXR1cm4gJGZ1bGwNCn0NCg0KZnVu
Y3Rpb24gRW5zdXJlLVNhZmVEaXJlY3RvcnlQYXRoIHsNCiAgICBwYXJhbShbc3RyaW5nXSREaXJl
Y3RvcnksIFtzdHJpbmddJEJvdW5kYXJ5KQ0KICAgICRkaXJlY3RvcnlGdWxsID0gR2V0LUZ1bGxM
aXRlcmFsUGF0aCAkRGlyZWN0b3J5DQogICAgJGJvdW5kYXJ5RnVsbCA9IEdldC1GdWxsTGl0ZXJh
bFBhdGggJEJvdW5kYXJ5DQogICAgaWYgKC1ub3QgKFRlc3QtSXNVbmRlclBhdGggLUNhbmRpZGF0
ZSAkZGlyZWN0b3J5RnVsbCAtUGFyZW50ICRib3VuZGFyeUZ1bGwpKSB7IHRocm93ICfsg53shLHt
laAg7Y+0642U6rCAIOuzteybkCDrjIDsg4Eg67KU7JyE66W8IOuyl+yWtOuCrOyKteuLiOuLpC4n
IH0NCiAgICAkYm91bmRhcnlJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRib3VuZGFyeUZ1
bGwgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYgKCgkYm91bmRhcnlJdGVtLkF0dHJp
YnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5l
IDApIHsgdGhyb3cgJ+uzteybkCDrjIDsg4Eg66Oo7Yq46rCAIOyXsOqysOygkOyeheuLiOuLpC4n
IH0NCiAgICAkcmVsYXRpdmUgPSAkZGlyZWN0b3J5RnVsbC5TdWJzdHJpbmcoJGJvdW5kYXJ5RnVs
bC5MZW5ndGgpLlRyaW1TdGFydCgnXCcpDQogICAgJGN1cnJlbnQgPSAkYm91bmRhcnlGdWxsDQog
ICAgZm9yZWFjaCAoJHBhcnQgaW4gJHJlbGF0aXZlLlNwbGl0KCdcJykpIHsNCiAgICAgICAgaWYg
KFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHBhcnQpKSB7IGNvbnRpbnVlIH0NCiAgICAg
ICAgJGN1cnJlbnQgPSBKb2luLVBhdGggJGN1cnJlbnQgJHBhcnQNCiAgICAgICAgaWYgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJGN1cnJlbnQpIHsNCiAgICAgICAgICAgICRpdGVtID0gR2V0LUl0
ZW0gLUxpdGVyYWxQYXRoICRjdXJyZW50IC1Gb3JjZQ0KICAgICAgICAgICAgaWYgKC1ub3QgJGl0
ZW0uUFNJc0NvbnRhaW5lcikgeyB0aHJvdyAi7Y+0642U66W8IOunjOuTpCDqsr3roZzsl5Ag7YyM
7J287J20IOyeiOyKteuLiOuLpDogJGN1cnJlbnQiIH0NCiAgICAgICAgICAgIGlmICgoJGl0ZW0u
QXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50
KSAtbmUgMCkgeyB0aHJvdyAi67O17JuQIOqyveuhnOyXkCDsl7DqsrDsoJDsnbQg7J6I7Iq164uI
64ukOiAkY3VycmVudCIgfQ0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAg
W1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJGN1cnJlbnQpIHwgT3V0LU51
bGwNCiAgICAgICAgICAgICRjcmVhdGVkID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRjdXJyZW50
IC1Gb3JjZQ0KICAgICAgICAgICAgaWYgKCgkY3JlYXRlZC5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0
ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICLsg4gg
67O17JuQIO2PtOuNlOqwgCDrnLvrsJbsnZgg7Jew6rKw7KCQ7J6F64uI64ukOiAkY3VycmVudCIg
fQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTm9BbHRlcm5hdGVEYXRh
U3RyZWFtcyB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmlu
Z10kRmlsZVBhdGgpDQogICAgJHN0cmVhbXMgPSBAKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkRmls
ZVBhdGggLVN0cmVhbSAqIC1FcnJvckFjdGlvbiBTdG9wKQ0KICAgIGZvcmVhY2ggKCRzdHJlYW0g
aW4gJHN0cmVhbXMpIHsNCiAgICAgICAgaWYgKFtzdHJpbmddJHN0cmVhbS5TdHJlYW0gLW5lICc6
JERBVEEnKSB7IHRocm93ICLrjIDssrQg642w7J207YSwIOyKpO2KuOumvChBRFMp7J20IOyeiOyW
tCDrgrTrs7TrgrTsp4Ag7JWK7Iq164uI64ukOiAkRmlsZVBhdGgiIH0NCiAgICB9DQp9DQoNCmZ1
bmN0aW9uIEdldC1Ob0ZvbGxvd1RyZWUgew0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVy
KE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRSb290LA0KICAgICAgICBbc3RyaW5nW11dJEV4
Y2x1ZGVkUm9vdHMgPSBAKCkNCiAgICApDQogICAgJHJvb3RGdWxsID0gR2V0LUZ1bGxMaXRlcmFs
UGF0aCAkUm9vdA0KICAgICRleGNsdXNpb25zID0gQCgkRXhjbHVkZWRSb290cyB8IEZvckVhY2gt
T2JqZWN0IHsgR2V0LUZ1bGxMaXRlcmFsUGF0aCAkXyB9KQ0KICAgICRkaXJlY3RvcmllcyA9IE5l
dy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJGZp
bGVzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0N
CiAgICAkcXVldWUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlF1ZXVl
W3N0cmluZ10NCiAgICAkcXVldWUuRW5xdWV1ZSgkcm9vdEZ1bGwpDQogICAgd2hpbGUgKCRxdWV1
ZS5Db3VudCAtZ3QgMCkgew0KICAgICAgICAkZGlyZWN0b3J5UGF0aCA9ICRxdWV1ZS5EZXF1ZXVl
KCkNCiAgICAgICAgJGlzRXhjbHVkZWQgPSAkZmFsc2UNCiAgICAgICAgZm9yZWFjaCAoJGV4Y2x1
ZGVkIGluICRleGNsdXNpb25zKSB7DQogICAgICAgICAgICBpZiAoVGVzdC1Jc1VuZGVyUGF0aCAt
Q2FuZGlkYXRlICRkaXJlY3RvcnlQYXRoIC1QYXJlbnQgJGV4Y2x1ZGVkKSB7ICRpc0V4Y2x1ZGVk
ID0gJHRydWU7IGJyZWFrIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoJGlzRXhjbHVkZWQpIHsg
Y29udGludWUgfQ0KICAgICAgICAkZGlyZWN0b3J5ID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRk
aXJlY3RvcnlQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgICAgICBpZiAoKCRkaXJl
Y3RvcnkuQXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJz
ZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAi7Jew6rKw7KCQKOyLrOuzvOumrSDrp4Htgawv7KCV7IWY
KeydgCDrgrTrs7TrgrTsp4Ag7JWK7Iq164uI64ukOiAkZGlyZWN0b3J5UGF0aCIgfQ0KICAgICAg
ICBpZiAoLW5vdCAkZGlyZWN0b3J5UGF0aC5FcXVhbHMoJHJvb3RGdWxsLCBbU3lzdGVtLlN0cmlu
Z0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsNCiAgICAgICAgICAgICRyZWxhdGl2
ZSA9ICRkaXJlY3RvcnlQYXRoLlN1YnN0cmluZygkcm9vdEZ1bGwuTGVuZ3RoKS5UcmltU3RhcnQo
J1wnKS5SZXBsYWNlKCdcJywgJy8nKQ0KICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUmVsYXRp
dmVBcmNoaXZlUGF0aCAkcmVsYXRpdmUpKSB7IHRocm93ICLslYjsoITtlZjsp4Ag7JWK7J2AIOyD
geuMgCDqsr3roZzsnoXri4jri6Q6ICRyZWxhdGl2ZSIgfQ0KICAgICAgICAgICAgJGRpcmVjdG9y
aWVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgZnVsbFBhdGggPSAkZGlyZWN0b3J5UGF0aDsgcmVs
YXRpdmVQYXRoID0gJHJlbGF0aXZlIH0pDQogICAgICAgIH0NCiAgICAgICAgZm9yZWFjaCAoJGl0
ZW0gaW4gR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJGRpcmVjdG9yeVBhdGggLUZvcmNlIC1F
cnJvckFjdGlvbiBTdG9wKSB7DQogICAgICAgICAgICAkc2tpcCA9ICRmYWxzZQ0KICAgICAgICAg
ICAgZm9yZWFjaCAoJGV4Y2x1ZGVkIGluICRleGNsdXNpb25zKSB7DQogICAgICAgICAgICAgICAg
aWYgKFRlc3QtSXNVbmRlclBhdGggLUNhbmRpZGF0ZSAkaXRlbS5GdWxsTmFtZSAtUGFyZW50ICRl
eGNsdWRlZCkgeyAkc2tpcCA9ICR0cnVlOyBicmVhayB9DQogICAgICAgICAgICB9DQogICAgICAg
ICAgICBpZiAoJHNraXApIHsgY29udGludWUgfQ0KICAgICAgICAgICAgaWYgKCgkaXRlbS5BdHRy
aWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1u
ZSAwKSB7IHRocm93ICLsl7DqsrDsoJAo7Ius67O866atIOunge2BrC/soJXshZgp7J2AIOuCtOuz
tOuCtOyngCDslYrsirXri4jri6Q6ICQoJGl0ZW0uRnVsbE5hbWUpIiB9DQogICAgICAgICAgICBp
ZiAoJGl0ZW0uUFNJc0NvbnRhaW5lcikgeyAkcXVldWUuRW5xdWV1ZSgkaXRlbS5GdWxsTmFtZSk7
IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICRyZWxhdGl2ZSA9ICRpdGVtLkZ1bGxOYW1lLlN1YnN0
cmluZygkcm9vdEZ1bGwuTGVuZ3RoKS5UcmltU3RhcnQoJ1wnKS5SZXBsYWNlKCdcJywgJy8nKQ0K
ICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUmVsYXRpdmVBcmNoaXZlUGF0aCAkcmVsYXRpdmUp
KSB7IHRocm93ICLslYjsoITtlZjsp4Ag7JWK7J2AIOyDgeuMgCDqsr3roZzsnoXri4jri6Q6ICRy
ZWxhdGl2ZSIgfQ0KICAgICAgICAgICAgQXNzZXJ0LU5vQWx0ZXJuYXRlRGF0YVN0cmVhbXMgLUZp
bGVQYXRoICRpdGVtLkZ1bGxOYW1lDQogICAgICAgICAgICAkZmlsZXMuQWRkKFtwc2N1c3RvbW9i
amVjdF1AeyBmdWxsUGF0aCA9ICRpdGVtLkZ1bGxOYW1lOyByZWxhdGl2ZVBhdGggPSAkcmVsYXRp
dmU7IGxlbmd0aCA9IFtsb25nXSRpdGVtLkxlbmd0aDsgbGFzdFdyaXRlVXRjID0gJGl0ZW0uTGFz
dFdyaXRlVGltZVV0Yy5Ub1N0cmluZygnbycpIH0pDQogICAgICAgIH0NCiAgICB9DQogICAgW3Bz
Y3VzdG9tb2JqZWN0XUB7IGRpcmVjdG9yaWVzID0gJGRpcmVjdG9yaWVzLlRvQXJyYXkoKTsgZmls
ZXMgPSAkZmlsZXMuVG9BcnJheSgpIH0NCn0NCg0KZnVuY3Rpb24gVGVzdC1Jc0xpdmVEYXRhYmFz
ZUZpbGUgew0KICAgIHBhcmFtKFtzdHJpbmddJFJlbGF0aXZlUGF0aCkNCiAgICAkbmFtZSA9IFtT
eXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRSZWxhdGl2ZVBhdGgpLlRvTG93ZXJJbnZhcmlh
bnQoKQ0KICAgICRleHRlbnNpb24gPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRFeHRlbnNpb24oJG5h
bWUpDQogICAgJGV4dGVuc2lvbiAtaW4gQCgnLmRiJywgJy5zcWxpdGUnLCAnLnNxbGl0ZTMnKQ0K
fQ0KDQpmdW5jdGlvbiBUZXN0LUlzRGF0YWJhc2VTaWRlY2FyIHsNCiAgICBwYXJhbShbc3RyaW5n
XSRSZWxhdGl2ZVBhdGgpDQogICAgJG5hbWUgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRGaWxlTmFt
ZSgkUmVsYXRpdmVQYXRoKS5Ub0xvd2VySW52YXJpYW50KCkNCiAgICAkbmFtZS5FbmRzV2l0aCgn
LXdhbCcpIC1vciAkbmFtZS5FbmRzV2l0aCgnLXNobScpIC1vciAkbmFtZS5FbmRzV2l0aCgnLndh
bCcpIC1vciAkbmFtZS5FbmRzV2l0aCgnLnNobScpDQp9DQoNCmZ1bmN0aW9uIENvcHktRmlsZUNv
bnNpc3RlbnRDcmVhdGVOZXcgew0KICAgIHBhcmFtKFtzdHJpbmddJFNvdXJjZSwgW3N0cmluZ10k
RGVzdGluYXRpb24sIFtzdHJpbmddJFNhZmV0eUJvdW5kYXJ5KQ0KICAgIGlmIChbc3RyaW5nXTo6
SXNOdWxsT3JXaGl0ZVNwYWNlKCRTYWZldHlCb3VuZGFyeSkpIHsNCiAgICAgICAgW1N5c3RlbS5J
Ty5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoKFNwbGl0LVBhdGggLVBhcmVudCAkRGVzdGlu
YXRpb24pKSB8IE91dC1OdWxsDQogICAgfQ0KICAgIGVsc2UgeyBFbnN1cmUtU2FmZURpcmVjdG9y
eVBhdGggLURpcmVjdG9yeSAoU3BsaXQtUGF0aCAtUGFyZW50ICREZXN0aW5hdGlvbikgLUJvdW5k
YXJ5ICRTYWZldHlCb3VuZGFyeSB9DQogICAgJGlucHV0ID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8u
RmlsZVN0cmVhbSgkU291cmNlLCBbU3lzdGVtLklPLkZpbGVNb2RlXTo6T3BlbiwgW1N5c3RlbS5J
Ty5GaWxlQWNjZXNzXTo6UmVhZCwgW1N5c3RlbS5JTy5GaWxlU2hhcmVdOjpSZWFkKQ0KICAgICRv
dXRwdXQgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5GaWxlU3RyZWFtKCREZXN0aW5hdGlvbiwgW1N5
c3RlbS5JTy5GaWxlTW9kZV06OkNyZWF0ZU5ldywgW1N5c3RlbS5JTy5GaWxlQWNjZXNzXTo6V3Jp
dGUsIFtTeXN0ZW0uSU8uRmlsZVNoYXJlXTo6Tm9uZSkNCiAgICAkc2hhID0gW1N5c3RlbS5TZWN1
cml0eS5DcnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkNCiAgICB0cnkgew0KICAgICAgICAk
YnVmZmVyID0gTmV3LU9iamVjdCBieXRlW10gMTA0ODU3Ng0KICAgICAgICAkbGVuZ3RoID0gMEwN
CiAgICAgICAgd2hpbGUgKCgkcmVhZCA9ICRpbnB1dC5SZWFkKCRidWZmZXIsIDAsICRidWZmZXIu
TGVuZ3RoKSkgLWd0IDApIHsNCiAgICAgICAgICAgICRzaGEuVHJhbnNmb3JtQmxvY2soJGJ1ZmZl
ciwgMCwgJHJlYWQsICRudWxsLCAwKSB8IE91dC1OdWxsDQogICAgICAgICAgICAkb3V0cHV0Lldy
aXRlKCRidWZmZXIsIDAsICRyZWFkKQ0KICAgICAgICAgICAgJGxlbmd0aCArPSAkcmVhZA0KICAg
ICAgICB9DQogICAgICAgICRzaGEuVHJhbnNmb3JtRmluYWxCbG9jaygoTmV3LU9iamVjdCBieXRl
W10gMCksIDAsIDApIHwgT3V0LU51bGwNCiAgICAgICAgJG91dHB1dC5GbHVzaCgkdHJ1ZSkNCiAg
ICAgICAgW3BzY3VzdG9tb2JqZWN0XUB7IGxlbmd0aCA9ICRsZW5ndGg7IHNoYTI1NiA9IChbQml0
Q29udmVydGVyXTo6VG9TdHJpbmcoJHNoYS5IYXNoKSkuUmVwbGFjZSgnLScsICcnKS5Ub0xvd2Vy
SW52YXJpYW50KCkgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgJHNoYS5EaXNwb3NlKCk7ICRvdXRw
dXQuRGlzcG9zZSgpOyAkaW5wdXQuRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LUFn
ZVRvb2wgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJEV4cGVjdGVkU2hhMjU2
KQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRQYXRoKSAtb3IgLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ+yL
oOuisOuQnCDroZzsu6wgYWdlLmV4ZSDqsr3roZzqsIAg7ZWE7JqU7ZWp64uI64ukLicgfQ0KICAg
IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRFeHBlY3RlZFNoYTI1NikpIHsNCiAg
ICAgICAgJHJlY2VpcHRQYXRoID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ3NvdXJjZS1yZWNl
aXB0c1xhZ2UuanNvbicNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
JHJlY2VpcHRQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi6rKA7Kad65CcIGFnZSByZWNl
aXB06rCAIOyXhuyKteuLiOuLpDogJHJlY2VpcHRQYXRoIiB9DQogICAgICAgICRyZWNlaXB0ID0g
R2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRyZWNlaXB0UGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4
IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICBpZiAoJG51bGwgLW5lICRyZWNlaXB0LlBTT2Jq
ZWN0LlByb3BlcnRpZXNbJ3ZlcnNpb24nXSAtYW5kIFtzdHJpbmddJHJlY2VpcHQudmVyc2lvbiAt
bmUgJzEuMy4xJykgeyB0aHJvdyAnYWdlIHJlY2VpcHQg67KE7KCE7J20IDEuMy4x7J20IOyVhOuL
meuLiOuLpC4nIH0NCiAgICAgICAgaWYgKCRudWxsIC1lcSAkcmVjZWlwdC5QU09iamVjdC5Qcm9w
ZXJ0aWVzWydhZ2VFeGVTaGEyNTYnXSAtb3IgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShb
c3RyaW5nXSRyZWNlaXB0LmFnZUV4ZVNoYTI1NikpIHsgdGhyb3cgJ2FnZSByZWNlaXB07JeQIGFn
ZUV4ZVNoYTI1NuydtCDsl4bsirXri4jri6QuJyB9DQogICAgICAgICRFeHBlY3RlZFNoYTI1NiA9
IFtzdHJpbmddJHJlY2VpcHQuYWdlRXhlU2hhMjU2DQogICAgfQ0KICAgICRmdWxsID0gR2V0LUZ1
bGxMaXRlcmFsUGF0aCAkUGF0aA0KICAgICRkcml2ZSA9IEdldC1Ecml2ZUZvclBhdGggJGZ1bGwN
CiAgICBpZiAoJGRyaXZlLkRyaXZlVHlwZSAtbmUgW1N5c3RlbS5JTy5Ecml2ZVR5cGVdOjpGaXhl
ZCkgeyB0aHJvdyAnVVNCL+uEpO2KuOybjO2BrOydmCBhZ2UuZXhl64qUIOyLpO2Wie2VmOyngCDs
lYrsirXri4jri6QuJyB9DQogICAgJGNhbm9uaWNhbEFnZVJvb3QgPSBKb2luLVBhdGggKEdldC1T
b3VsUm9vdCkgJ19hZ2VudFxzaGFyZWRcdG9vbHNcYWdlXDEuMy4xJw0KICAgIGlmICgtbm90IChU
ZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUgJGZ1bGwgLVBhcmVudCAkY2Fub25pY2FsQWdlUm9v
dCkpIHsgdGhyb3cgImFnZS5leGXripQg7JiB7Zi8IOuCtOu2gOydmCDqs6DsoJXrkJwgMS4zLjEg
64+E6rWsIO2PtOuNlOyXkOyEnOunjCDsi6Ttlontlanri4jri6Q6ICRjYW5vbmljYWxBZ2VSb290
IiB9DQogICAgQXNzZXJ0LU5vUmVwYXJzZVdpdGhpbiAtUGF0aCAkZnVsbCAtQm91bmRhcnkgJGNh
bm9uaWNhbEFnZVJvb3QNCiAgICAkYWN0dWFsID0gR2V0LUZpbGVTaGEyNTYgJGZ1bGwNCiAgICBp
ZiAoJGFjdHVhbCAtbmUgJEV4cGVjdGVkU2hhMjU2LlRvTG93ZXJJbnZhcmlhbnQoKSkgeyB0aHJv
dyAnYWdlLmV4ZeydmCBTSEEtMjU27J20IOqzoOygleqwkuqzvCDri6TrpoXri4jri6QuIOyLpO2W
ie2VmOyngCDslYrslZjsirXri4jri6QuJyB9DQogICAgJHZlcnNpb25PdXRwdXQgPSBAKCYgJGZ1
bGwgLS12ZXJzaW9uIDI+JjEpIC1qb2luICcgJw0KICAgIGlmICgkTEFTVEVYSVRDT0RFIC1uZSAw
IC1vciAkdmVyc2lvbk91dHB1dCAtbm90bWF0Y2ggJyg/PCFbMC05XSkxXC4zXC4xKD8hWzAtOV0p
JykgeyB0aHJvdyAiYWdlIDEuMy4x7J20IOyVhOuLmeuLiOuLpDogJHZlcnNpb25PdXRwdXQiIH0N
CiAgICByZXR1cm4gJGZ1bGwNCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LUxvY2tlZEFnZUNvbXBhbmlv
biB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtz
dHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJp
bmddJEV4cGVjdGVkU2hhMjU2LA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVl
KV1bc3RyaW5nXSRFeHBlY3RlZE5hbWUsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0g
JHRydWUpXVtzdHJpbmddJEFsbG93ZWRSb290DQogICAgKQ0KICAgIGlmICgkRXhwZWN0ZWRTaGEy
NTYgLW5vdG1hdGNoICdeWzAtOWEtZkEtRl17NjR9JCcpIHsgdGhyb3cgIiRFeHBlY3RlZE5hbWXs
nZgg6rOg7KCVIFNIQS0yNTbsnbQg7JeG6rGw64KYIOyYrOuwlOultOyngCDslYrsirXri4jri6Qu
IiB9DQogICAgJGZ1bGwgPSBHZXQtRnVsbExpdGVyYWxQYXRoICRQYXRoDQogICAgJGFsbG93ZWQg
PSBHZXQtRnVsbExpdGVyYWxQYXRoICRBbGxvd2VkUm9vdA0KICAgIGlmIChbSU8uUGF0aF06Okdl
dEZpbGVOYW1lKCRmdWxsKSAtY25lICRFeHBlY3RlZE5hbWUpIHsgdGhyb3cgImFnZSDrj4Tqtawg
7YyM7J2866qF7J20IOyYrOuwlOultOyngCDslYrsirXri4jri6Q6ICRmdWxsIiB9DQogICAgaWYg
KC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGZ1bGwgLVBhdGhUeXBlIExlYWYpKSB7IHRo
cm93ICJhZ2Ug64+E6rWs66W8IOywvuyngCDrqrvtlojsirXri4jri6Q6ICRmdWxsIiB9DQogICAg
aWYgKC1ub3QgKFRlc3QtSXNVbmRlclBhdGggLUNhbmRpZGF0ZSAkZnVsbCAtUGFyZW50ICRhbGxv
d2VkKSkgeyB0aHJvdyAiYWdlIOuPhOq1rOqwgCDqs6DsoJUg7Y+0642U66W8IOuyl+yWtOuCrOyK
teuLiOuLpDogJGZ1bGwiIH0NCiAgICBpZiAoKEdldC1Ecml2ZUZvclBhdGggJGZ1bGwpLkRyaXZl
VHlwZSAtbmUgW0lPLkRyaXZlVHlwZV06OkZpeGVkKSB7IHRocm93ICdVU0Iv64Sk7Yq47JuM7YGs
7J2YIGFnZSDsi6Ttlokg7YyM7J287J2AIOuCtOuztOuCvCDsm5Drs7jsnLzroZwg7JOw7KeAIOyV
iuyKteuLiOuLpC4nIH0NCiAgICBBc3NlcnQtTm9SZXBhcnNlV2l0aGluIC1QYXRoICRmdWxsIC1C
b3VuZGFyeSAkYWxsb3dlZA0KICAgIEFzc2VydC1Ob0FsdGVybmF0ZURhdGFTdHJlYW1zIC1GaWxl
UGF0aCAkZnVsbA0KICAgIGlmICgoR2V0LUZpbGVTaGEyNTYgJGZ1bGwpIC1jbmUgJEV4cGVjdGVk
U2hhMjU2LlRvTG93ZXJJbnZhcmlhbnQoKSkgeyB0aHJvdyAiJEV4cGVjdGVkTmFtZeydmCBTSEEt
MjU27J20IOyeoOq4iO2RnOyZgCDri6TrpoXri4jri6QuIiB9DQogICAgJHZlcnNpb25PdXRwdXQg
PSBAKCYgJGZ1bGwgLS12ZXJzaW9uIDI+JjEpIC1qb2luICcgJw0KICAgIGlmICgkTEFTVEVYSVRD
T0RFIC1uZSAwIC1vciAkdmVyc2lvbk91dHB1dCAtbm90bWF0Y2ggJyg/PCFbMC05XSkxXC4zXC4x
KD8hWzAtOV0pJykgeyB0aHJvdyAiJEV4cGVjdGVkTmFtZeydtCBhZ2UgMS4zLjHsnbQg7JWE64uZ
64uI64ukOiAkdmVyc2lvbk91dHB1dCIgfQ0KICAgIHJldHVybiAkZnVsbA0KfQ0KDQpmdW5jdGlv
biBHZXQtVmVyaWZpZWRBZ2VUb29sU2V0IHsNCiAgICBwYXJhbShbc3RyaW5nXSRBZ2VQYXRoLCBb
c3RyaW5nXSRBZ2VTaGEyNTYpDQogICAgJHJlY2VpcHRQYXRoID0gSm9pbi1QYXRoICRQU1Njcmlw
dFJvb3QgJ3NvdXJjZS1yZWNlaXB0c1xhZ2UuanNvbicNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkcmVjZWlwdFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICLqsoDs
pp3rkJwgYWdlIHJlY2VpcHTqsIAg7JeG7Iq164uI64ukOiAkcmVjZWlwdFBhdGgiIH0NCiAgICAk
cmVjZWlwdCA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkcmVjZWlwdFBhdGggLVJhdyAtRW5j
b2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICBpZiAoW3N0cmluZ10kcmVjZWlwdC52
ZXJzaW9uIC1uZSAnMS4zLjEnKSB7IHRocm93ICdhZ2UgcmVjZWlwdCDrsoTsoITsnbQgMS4zLjHs
nbQg7JWE64uZ64uI64ukLicgfQ0KICAgIGZvcmVhY2ggKCRwcm9wZXJ0eSBpbiBAKCdhZ2VFeGVT
aGEyNTYnLCAnYWdlS2V5Z2VuRXhlU2hhMjU2JywgJ2FnZVBsdWdpbkJhdGNocGFzc0V4ZVNoYTI1
NicpKSB7DQogICAgICAgIGlmICgkbnVsbCAtZXEgJHJlY2VpcHQuUFNPYmplY3QuUHJvcGVydGll
c1skcHJvcGVydHldIC1vciBbc3RyaW5nXSRyZWNlaXB0LiRwcm9wZXJ0eSAtbm90bWF0Y2ggJ15b
MC05YS1mQS1GXXs2NH0kJykgew0KICAgICAgICAgICAgdGhyb3cgImFnZSByZWNlaXB07JeQICRw
cm9wZXJ0eeqwgCDsl4bqsbDrgpgg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4iDQogICAgICAg
IH0NCiAgICB9DQogICAgJGNhbm9uaWNhbFJvb3QgPSBHZXQtRnVsbExpdGVyYWxQYXRoIChKb2lu
LVBhdGggKEdldC1Tb3VsUm9vdCkgJ19hZ2VudFxzaGFyZWRcdG9vbHNcYWdlXDEuMy4xJykNCiAg
ICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQWdlUGF0aCkpIHsgJEFnZVBhdGgg
PSBKb2luLVBhdGggJGNhbm9uaWNhbFJvb3QgJ2FnZS5leGUnIH0NCiAgICBpZiAoW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkQWdlU2hhMjU2KSkgeyAkQWdlU2hhMjU2ID0gW3N0cmluZ10k
cmVjZWlwdC5hZ2VFeGVTaGEyNTYgfQ0KICAgICRhZ2UgPSBBc3NlcnQtQWdlVG9vbCAtUGF0aCAk
QWdlUGF0aCAtRXhwZWN0ZWRTaGEyNTYgJEFnZVNoYTI1Ng0KICAgICRrZXlnZW4gPSBBc3NlcnQt
TG9ja2VkQWdlQ29tcGFuaW9uIC1QYXRoIChKb2luLVBhdGggJGNhbm9uaWNhbFJvb3QgJ2FnZS1r
ZXlnZW4uZXhlJykgLUV4cGVjdGVkU2hhMjU2IChbc3RyaW5nXSRyZWNlaXB0LmFnZUtleWdlbkV4
ZVNoYTI1NikgLUV4cGVjdGVkTmFtZSAnYWdlLWtleWdlbi5leGUnIC1BbGxvd2VkUm9vdCAkY2Fu
b25pY2FsUm9vdA0KICAgICRiYXRjaHBhc3MgPSBBc3NlcnQtTG9ja2VkQWdlQ29tcGFuaW9uIC1Q
YXRoIChKb2luLVBhdGggJGNhbm9uaWNhbFJvb3QgJ2FnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4ZScp
IC1FeHBlY3RlZFNoYTI1NiAoW3N0cmluZ10kcmVjZWlwdC5hZ2VQbHVnaW5CYXRjaHBhc3NFeGVT
aGEyNTYpIC1FeHBlY3RlZE5hbWUgJ2FnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4ZScgLUFsbG93ZWRS
b290ICRjYW5vbmljYWxSb290DQogICAgW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIHJvb3Qg
PSAkY2Fub25pY2FsUm9vdA0KICAgICAgICBhZ2UgPSAkYWdlDQogICAgICAgIGFnZVNoYTI1NiA9
IChHZXQtRmlsZVNoYTI1NiAkYWdlKQ0KICAgICAgICBrZXlnZW4gPSAka2V5Z2VuDQogICAgICAg
IGtleWdlblNoYTI1NiA9IChHZXQtRmlsZVNoYTI1NiAka2V5Z2VuKQ0KICAgICAgICBiYXRjaHBh
c3MgPSAkYmF0Y2hwYXNzDQogICAgICAgIGJhdGNocGFzc1NoYTI1NiA9IChHZXQtRmlsZVNoYTI1
NiAkYmF0Y2hwYXNzKQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gUmVtb3ZlLU93bmVkUG9ydGFibGVC
dW5kbGUgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJEV4cGVjdGVkUGFyZW50
LCBbc3RyaW5nXSRFeHBvcnRJZCkNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyByZXR1cm4gfQ0KICAgICRmdWxsID0gR2V0
LUZ1bGxMaXRlcmFsUGF0aCAkUGF0aA0KICAgICRwYXJlbnQgPSBHZXQtRnVsbExpdGVyYWxQYXRo
ICRFeHBlY3RlZFBhcmVudA0KICAgIGlmICgoU3BsaXQtUGF0aCAtUGFyZW50ICRmdWxsKSAtbmUg
JHBhcmVudCkgeyB0aHJvdyAn67aI7JmE7KCEIOuzteybkCDrrLbsnYzsnbQg7JiI7IOB7ZWcIOuM
gOyDgSDtj7TrjZTrpbwg67KX7Ja064KYIOygleumrO2VmOyngCDslYrsirXri4jri6QuJyB9DQog
ICAgJG1hcmtlclBhdGggPSBKb2luLVBhdGggJGZ1bGwgJy5vd25lZC1wb3J0YWJsZS1leHBvcnQu
anNvbicNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbWFya2VyUGF0aCAt
UGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ+yGjOycoCDtkZzsp4DqsIAg7JeG64qUIOuzteybkCDr
rLbsnYzsnYAg7KCV66as7ZWY7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAkbWFya2VyID0gR2V0
LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRtYXJrZXJQYXRoIC1SYXcgLUVuY29kaW5nIFVURjggfCBD
b252ZXJ0RnJvbS1Kc29uDQogICAgaWYgKFtzdHJpbmddJG1hcmtlci5leHBvcnRJZCAtbmUgJEV4
cG9ydElkKSB7IHRocm93ICfrtojsmYTsoIQg67O17JuQIOustuydjOydmCDshozsnKAgSUTqsIAg
64uk66aF64uI64ukLicgfQ0KICAgIGZvcmVhY2ggKCRpdGVtIGluIEAoR2V0LUl0ZW0gLUxpdGVy
YWxQYXRoICRmdWxsIC1Gb3JjZSkgKyBAKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRmdWxs
IC1Gb3JjZSAtUmVjdXJzZSAtRXJyb3JBY3Rpb24gU3RvcCkpIHsNCiAgICAgICAgaWYgKCgkaXRl
bS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5l
IDApIHsgdGhyb3cgJ+u2iOyZhOyghCDrrLbsnYwg7JWI7JeQIOyXsOqysOygkOydtCDsnojslrQg
7J6Q64+ZIOygleumrO2VmOyngCDslYrsirXri4jri6QuJyB9DQogICAgfQ0KICAgIFtJTy5EaXJl
Y3RvcnldOjpEZWxldGUoJGZ1bGwsICR0cnVlKQ0KfQ0KDQpmdW5jdGlvbiBOZXctUG9ydGFibGVS
ZXN0b3JlQnVuZGxlIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkg
PSAkdHJ1ZSldW3N0cmluZ10kRGVzdGluYXRpb24sDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0
b3J5ID0gJHRydWUpXVtzdHJpbmddJFNvdWxOYW1lLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRh
dG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRTb3VsSWQsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0
b3J5ID0gJHRydWUpXVtzdHJpbmddJEV4cG9ydElkLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRh
dG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRDaXBoZXJTb3VyY2UsDQogICAgICAgIFtQYXJhbWV0ZXIo
TWFuZGF0b3J5ID0gJHRydWUpXSRBZ2VUb29scywNCiAgICAgICAgW3N0cmluZ10kQ3JlYXRlZEF0
VXRjID0gKFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpKQ0KICAgICkNCiAgICAkZGVz
dGluYXRpb25GdWxsID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkRGVzdGluYXRpb24NCiAgICAkc2Fm
ZU5hbWUgPSAoJFNvdWxOYW1lIC1yZXBsYWNlICdbXjAtOUEtWmEteuqwgC3tnqMuXy1dJywgJ18n
KS5UcmltKCcuJywgJyAnKQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRz
YWZlTmFtZSkpIHsgJHNhZmVOYW1lID0gJ1NvdWwnIH0NCiAgICBpZiAoJHNhZmVOYW1lLkxlbmd0
aCAtZ3QgNjApIHsgJHNhZmVOYW1lID0gJHNhZmVOYW1lLlN1YnN0cmluZygwLCA2MCkgfQ0KICAg
ICRzdGFtcCA9IChbRGF0ZVRpbWVdOjpQYXJzZSgkQ3JlYXRlZEF0VXRjKS5Ub1VuaXZlcnNhbFRp
bWUoKS5Ub1N0cmluZygneXl5eU1NZGRUSEhtbXNzWicpKQ0KICAgICRidW5kbGVOYW1lID0gJHNh
ZmVOYW1lICsgJy1leHBvcnQtJyArICRzdGFtcCArICctJyArICRFeHBvcnRJZA0KICAgICRidW5k
bGVQYXRoID0gSm9pbi1QYXRoICRkZXN0aW5hdGlvbkZ1bGwgJGJ1bmRsZU5hbWUNCiAgICBpZiAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYnVuZGxlUGF0aCkgeyB0aHJvdyAi6rCZ7J2AIOuzteyb
kCDrrLbsnYwg7Y+0642U6rCAIOydtOuvuCDsnojslrQg642u7Ja07JOw7KeAIOyViuyKteuLiOuL
pDogJGJ1bmRsZVBhdGgiIH0NCiAgICBbSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRi
dW5kbGVQYXRoKSB8IE91dC1OdWxsDQogICAgJG1hcmtlclBhdGggPSBKb2luLVBhdGggJGJ1bmRs
ZVBhdGggJy5vd25lZC1wb3J0YWJsZS1leHBvcnQuanNvbicNCiAgICBXcml0ZS1Kc29uQ3JlYXRl
TmV3IC1QYXRoICRtYXJrZXJQYXRoIC1WYWx1ZSAoW3BzY3VzdG9tb2JqZWN0XUB7IGV4cG9ydElk
ID0gJEV4cG9ydElkOyBjcmVhdGVkQXRVdGMgPSAkQ3JlYXRlZEF0VXRjIH0pDQogICAgdHJ5IHsN
CiAgICAgICAgJGFyY2hpdmVGaWxlID0gJHNhZmVOYW1lICsgJy50YXIuYWdlJw0KICAgICAgICAk
YXJjaGl2ZVBhdGggPSBKb2luLVBhdGggJGJ1bmRsZVBhdGggJGFyY2hpdmVGaWxlDQogICAgICAg
ICRhcmNoaXZlQ29weSA9IENvcHktRmlsZUNvbnNpc3RlbnRDcmVhdGVOZXcgLVNvdXJjZSAkQ2lw
aGVyU291cmNlIC1EZXN0aW5hdGlvbiAkYXJjaGl2ZVBhdGgNCg0KICAgICAgICAkcmVzdG9yZVNj
cmlwdFBhdGggPSBKb2luLVBhdGggJGJ1bmRsZVBhdGggJ+uzteybkC5wczEnDQogICAgICAgICRz
b3VyY2VUZXh0ID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkUFNDb21tYW5kUGF0aCwgW1RleHQu
RW5jb2RpbmddOjpVVEY4KQ0KICAgICAgICBXcml0ZS1VdGY4Qm9tVGV4dENyZWF0ZU5ldyAtUGF0
aCAkcmVzdG9yZVNjcmlwdFBhdGggLVRleHQgKENvbnZlcnQtVG9DcmxmICRzb3VyY2VUZXh0KQ0K
DQogICAgICAgICRsYXVuY2hlclRleHQgPSBAJw0KQGVjaG8gb2ZmDQpzZXRsb2NhbA0KY2hjcCA2
NTAwMSA+bnVsDQpwb3dlcnNoZWxsLmV4ZSAtTm9Qcm9maWxlIC1FeGVjdXRpb25Qb2xpY3kgQnlw
YXNzIC1GaWxlICIlfmRwMOuzteybkC5wczEiIC1BY3Rpb24gUG9ydGFibGVSZXN0b3JlICUqDQpz
ZXQgIlNPVUxfUkVTVE9SRV9FWElUPSVFUlJPUkxFVkVMJSINCmlmIG5vdCAiJVNPVUxfUkVTVE9S
RV9FWElUJSI9PSIwIiBwYXVzZQ0KZXhpdCAvYiAlU09VTF9SRVNUT1JFX0VYSVQlDQonQA0KICAg
ICAgICAkbGF1bmNoZXJQYXRoID0gSm9pbi1QYXRoICRidW5kbGVQYXRoICfrs7Xsm5DtlZjquLAu
Y21kJw0KICAgICAgICBXcml0ZS1UZXh0Q3JlYXRlTmV3IC1QYXRoICRsYXVuY2hlclBhdGggLVRl
eHQgKENvbnZlcnQtVG9DcmxmICgkbGF1bmNoZXJUZXh0ICsgImBuIikpDQoNCiAgICAgICAgJHRv
b2xSb290ID0gSm9pbi1QYXRoICRidW5kbGVQYXRoICd0b29sc1xhZ2UnDQogICAgICAgIFtJTy5E
aXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHRvb2xSb290KSB8IE91dC1OdWxsDQogICAgICAg
ICRhZ2VSZWNvcmRzID0gTmV3LU9iamVjdCBDb2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0
XQ0KICAgICAgICBmb3JlYWNoICgkdG9vbCBpbiBAKA0KICAgICAgICAgICAgW3BzY3VzdG9tb2Jq
ZWN0XUB7IHNvdXJjZSA9IFtzdHJpbmddJEFnZVRvb2xzLmFnZTsgbmFtZSA9ICdhZ2UuZXhlJzsg
ZXhwZWN0ZWQgPSBbc3RyaW5nXSRBZ2VUb29scy5hZ2VTaGEyNTYgfSwNCiAgICAgICAgICAgIFtw
c2N1c3RvbW9iamVjdF1AeyBzb3VyY2UgPSBbc3RyaW5nXSRBZ2VUb29scy5rZXlnZW47IG5hbWUg
PSAnYWdlLWtleWdlbi5leGUnOyBleHBlY3RlZCA9IFtzdHJpbmddJEFnZVRvb2xzLmtleWdlblNo
YTI1NiB9LA0KICAgICAgICAgICAgW3BzY3VzdG9tb2JqZWN0XUB7IHNvdXJjZSA9IFtzdHJpbmdd
JEFnZVRvb2xzLmJhdGNocGFzczsgbmFtZSA9ICdhZ2UtcGx1Z2luLWJhdGNocGFzcy5leGUnOyBl
eHBlY3RlZCA9IFtzdHJpbmddJEFnZVRvb2xzLmJhdGNocGFzc1NoYTI1NiB9DQogICAgICAgICkp
IHsNCiAgICAgICAgICAgIGlmICgoR2V0LUZpbGVTaGEyNTYgJHRvb2wuc291cmNlKSAtY25lICR0
b29sLmV4cGVjdGVkLlRvTG93ZXJJbnZhcmlhbnQoKSkgeyB0aHJvdyAiJCgkdG9vbC5uYW1lKSDs
m5Drs7jsnbQg67O17IKsIOyngeyghOyXkCDrs4Dqsr3rkJjslrQg7KSR64uo7ZWp64uI64ukLiIg
fQ0KICAgICAgICAgICAgJGNvcGllZFBhdGggPSBKb2luLVBhdGggJHRvb2xSb290ICR0b29sLm5h
bWUNCiAgICAgICAgICAgICRjb3BpZWQgPSBDb3B5LUZpbGVDb25zaXN0ZW50Q3JlYXRlTmV3IC1T
b3VyY2UgJHRvb2wuc291cmNlIC1EZXN0aW5hdGlvbiAkY29waWVkUGF0aA0KICAgICAgICAgICAg
aWYgKCRjb3BpZWQuc2hhMjU2IC1jbmUgJHRvb2wuZXhwZWN0ZWQuVG9Mb3dlckludmFyaWFudCgp
KSB7IHRocm93ICIkKCR0b29sLm5hbWUpIOuzteyCrOuzuCDsp4DrrLjsnbQg7JuQ67O46rO8IOuL
pOumheuLiOuLpC4iIH0NCiAgICAgICAgICAgICRhZ2VSZWNvcmRzLkFkZChbcHNjdXN0b21vYmpl
Y3RdQHsgcGF0aCA9ICgndG9vbHMvYWdlLycgKyAkdG9vbC5uYW1lKTsgbGVuZ3RoID0gJGNvcGll
ZC5sZW5ndGg7IHNoYTI1NiA9ICRjb3BpZWQuc2hhMjU2IH0pDQogICAgICAgIH0NCg0KICAgICAg
ICAkc2NyaXB0SXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkcmVzdG9yZVNjcmlwdFBhdGgN
CiAgICAgICAgJGxhdW5jaGVySXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkbGF1bmNoZXJQ
YXRoDQogICAgICAgICRwdWJsaWNNYW5pZmVzdCA9IFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAg
ICAgICAgc2NoZW1hVmVyc2lvbiA9IDINCiAgICAgICAgICAgIGZvcm1hdCA9ICdzb3VsLXBvcnRh
YmxlLXJlc3RvcmUtYnVuZGxlJw0KICAgICAgICAgICAgZXhwb3J0SWQgPSAkRXhwb3J0SWQNCiAg
ICAgICAgICAgIGNyZWF0ZWRBdFV0YyA9ICRDcmVhdGVkQXRVdGMNCiAgICAgICAgICAgIHNvdWxJ
ZCA9ICRTb3VsSWQNCiAgICAgICAgICAgIHNvdWxOYW1lID0gJFNvdWxOYW1lDQogICAgICAgICAg
ICBhcmNoaXZlID0gW3BzY3VzdG9tb2JqZWN0XUB7IHBhdGggPSAkYXJjaGl2ZUZpbGU7IGxlbmd0
aCA9IFtsb25nXSRhcmNoaXZlQ29weS5sZW5ndGg7IHNoYTI1NiA9IFtzdHJpbmddJGFyY2hpdmVD
b3B5LnNoYTI1NjsgZm9ybWF0ID0gJ3NvdWwtZGF0YS1hZ2UtdGFyJyB9DQogICAgICAgICAgICBy
ZXN0b3JlID0gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAgICAgc2NyaXB0ID0gW3Bz
Y3VzdG9tb2JqZWN0XUB7IHBhdGggPSAn67O17JuQLnBzMSc7IGxlbmd0aCA9IFtsb25nXSRzY3Jp
cHRJdGVtLkxlbmd0aDsgc2hhMjU2ID0gR2V0LUZpbGVTaGEyNTYgJHJlc3RvcmVTY3JpcHRQYXRo
IH0NCiAgICAgICAgICAgICAgICBsYXVuY2hlciA9IFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0g
J+uzteybkO2VmOq4sC5jbWQnOyBsZW5ndGggPSBbbG9uZ10kbGF1bmNoZXJJdGVtLkxlbmd0aDsg
c2hhMjU2ID0gR2V0LUZpbGVTaGEyNTYgJGxhdW5jaGVyUGF0aDsgZW5jb2RpbmcgPSAndXRmLTgt
bm8tYm9tLWNybGYnIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGFnZSA9IFtwc2N1c3Rv
bW9iamVjdF1AeyB2ZXJzaW9uID0gJzEuMy4xJzsgZXhlY3V0YWJsZXMgPSAkYWdlUmVjb3Jkcy5U
b0FycmF5KCkgfQ0KICAgICAgICB9DQogICAgICAgICRtYW5pZmVzdFBhdGggPSBKb2luLVBhdGgg
JGJ1bmRsZVBhdGggJ21hbmlmZXN0Lmpzb24nDQogICAgICAgIFdyaXRlLUpzb25DcmVhdGVOZXcg
LVBhdGggJG1hbmlmZXN0UGF0aCAtVmFsdWUgJHB1YmxpY01hbmlmZXN0DQogICAgICAgICRtYW5p
ZmVzdFNoYTI1NiA9IEdldC1GaWxlU2hhMjU2ICRtYW5pZmVzdFBhdGgNCiAgICAgICAgJG1hbmlm
ZXN0SGFzaFBhdGggPSBKb2luLVBhdGggJGJ1bmRsZVBhdGggJ21hbmlmZXN0LnNoYTI1NicNCiAg
ICAgICAgV3JpdGUtVGV4dENyZWF0ZU5ldyAtUGF0aCAkbWFuaWZlc3RIYXNoUGF0aCAtVGV4dCAo
JG1hbmlmZXN0U2hhMjU2ICsgJyAqbWFuaWZlc3QuanNvbicgKyAiYHJgbiIpDQogICAgICAgIFtJ
Ty5GaWxlXTo6RGVsZXRlKCRtYXJrZXJQYXRoKQ0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2Jq
ZWN0XUB7DQogICAgICAgICAgICBzdGF0dXMgPSAnZXhwb3J0ZWQnDQogICAgICAgICAgICBidW5k
bGVQYXRoID0gJGJ1bmRsZVBhdGgNCiAgICAgICAgICAgIGFyY2hpdmVQYXRoID0gJGFyY2hpdmVQ
YXRoDQogICAgICAgICAgICBwdWJsaWNNZXRhZGF0YVBhdGggPSAkbWFuaWZlc3RQYXRoDQogICAg
ICAgICAgICBwdWJsaWNNZXRhZGF0YVNoYTI1NlBhdGggPSAkbWFuaWZlc3RIYXNoUGF0aA0KICAg
ICAgICAgICAgcHVibGljTWV0YWRhdGFTaGEyNTYgPSAkbWFuaWZlc3RTaGEyNTYNCiAgICAgICAg
ICAgIHJlc3RvcmVTY3JpcHRTaGEyNTYgPSBbc3RyaW5nXSRwdWJsaWNNYW5pZmVzdC5yZXN0b3Jl
LnNjcmlwdC5zaGEyNTYNCiAgICAgICAgICAgIGV4cG9ydElkID0gJEV4cG9ydElkDQogICAgICAg
IH0NCiAgICB9DQogICAgY2F0Y2ggew0KICAgICAgICBSZW1vdmUtT3duZWRQb3J0YWJsZUJ1bmRs
ZSAtUGF0aCAkYnVuZGxlUGF0aCAtRXhwZWN0ZWRQYXJlbnQgJGRlc3RpbmF0aW9uRnVsbCAtRXhw
b3J0SWQgJEV4cG9ydElkDQogICAgICAgIHRocm93DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQt
U3lzdGVtVGFyIHsNCiAgICAkdGFyID0gSm9pbi1QYXRoICRlbnY6U3lzdGVtUm9vdCAnU3lzdGVt
MzJcdGFyLmV4ZScNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkdGFyIC1Q
YXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAiV2luZG93cyB0YXIuZXhl66W8IOywvuyngCDrqrvtlojs
irXri4jri6Q6ICR0YXIiIH0NCiAgICByZXR1cm4gJHRhcg0KfQ0KDQpmdW5jdGlvbiBSZWFkLVNv
dWxTdGF0ZSB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCkNCiAgICAkcGF0aCA9IEpvaW4tUGF0
aCAkUm9vdCAnc291bC1zdGF0ZS5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRwYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi7JiB7Zi8IOyLneuzhCDtjIzs
nbzsnbQg7JeG7Iq164uI64ukOiAkcGF0aCIgfQ0KICAgIEFzc2VydC1Ob1JlcGFyc2VXaXRoaW4g
LVBhdGggJHBhdGggLUJvdW5kYXJ5ICRSb290DQogICAgQXNzZXJ0LU5vQWx0ZXJuYXRlRGF0YVN0
cmVhbXMgLUZpbGVQYXRoICRwYXRoDQogICAgJHN0YXRlID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQ
YXRoICRwYXRoIC1SYXcgLUVuY29kaW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgJHBh
cnNlZCA9IFtndWlkXTo6RW1wdHkNCiAgICBpZiAoJG51bGwgLWVxICRzdGF0ZS5QU09iamVjdC5Q
cm9wZXJ0aWVzWydzb3VsSWQnXSAtb3IgLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJHN0
YXRlLnNvdWxJZCwgW3JlZl0kcGFyc2VkKSkgeyB0aHJvdyAnc291bC1zdGF0ZS5qc29u7J2YIHNv
dWxJZOqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgIHJldHVybiBbcHNjdXN0
b21vYmplY3RdQHsgcGF0aCA9ICRwYXRoOyBzdGF0ZSA9ICRzdGF0ZTsgc291bElkID0gW3N0cmlu
Z10kcGFyc2VkIH0NCn0NCg0KZnVuY3Rpb24gTmV3LU93bmVkU3RhZ2luZ0RpcmVjdG9yeSB7DQog
ICAgcGFyYW0oW3N0cmluZ10kUGFyZW50LCBbc3RyaW5nXSRPcGVyYXRpb25JZCwgW3N0cmluZ10k
S2luZCkNCiAgICBbU3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkUGFyZW50
KSB8IE91dC1OdWxsDQogICAgJHBhdGggPSBKb2luLVBhdGggJFBhcmVudCAkT3BlcmF0aW9uSWQN
CiAgICBbU3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkcGF0aCkgfCBPdXQt
TnVsbA0KICAgIFdyaXRlLVRleHRDcmVhdGVOZXcgLVBhdGggKEpvaW4tUGF0aCAkcGF0aCAnLm93
bmVkLXN0YWdpbmcuanNvbicpIC1UZXh0ICgoW3BzY3VzdG9tb2JqZWN0XUB7IG9wZXJhdGlvbklk
ID0gJE9wZXJhdGlvbklkOyBraW5kID0gJEtpbmQ7IGNyZWF0ZWRBdFV0YyA9IFtEYXRlVGltZV06
OlV0Y05vdy5Ub1N0cmluZygnbycpIH0gfCBDb252ZXJ0VG8tSnNvbikgKyBbRW52aXJvbm1lbnRd
OjpOZXdMaW5lKQ0KICAgIHJldHVybiAkcGF0aA0KfQ0KDQpmdW5jdGlvbiBSZW1vdmUtT3duZWRT
dGFnaW5nRGlyZWN0b3J5IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRFeHBl
Y3RlZFBhcmVudCwgW3N0cmluZ10kT3BlcmF0aW9uSWQpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgcmV0dXJuIH0NCiAg
ICAkZnVsbCA9IEdldC1GdWxsTGl0ZXJhbFBhdGggJFBhdGgNCiAgICAkcGFyZW50ID0gR2V0LUZ1
bGxMaXRlcmFsUGF0aCAkRXhwZWN0ZWRQYXJlbnQNCiAgICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVy
UGF0aCAtQ2FuZGlkYXRlICRmdWxsIC1QYXJlbnQgJHBhcmVudCkgLW9yIChTcGxpdC1QYXRoIC1Q
YXJlbnQgJGZ1bGwpIC1uZSAkcGFyZW50KSB7IHRocm93ICfsnoTsi5wg7Y+0642U6rCAIOyYiOyD
gSDrspTsnITrpbwg67KX7Ja064KYIOyCreygnO2VmOyngCDslYrslZjsirXri4jri6QuJyB9DQog
ICAgJG1hcmtlclBhdGggPSBKb2luLVBhdGggJGZ1bGwgJy5vd25lZC1zdGFnaW5nLmpzb24nDQog
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJG1hcmtlclBhdGggLVBhdGhUeXBl
IExlYWYpKSB7IHRocm93ICfshozsnKAg7ZGc7KeA6rCAIOyXhuuKlCDsnoTsi5wg7Y+0642U64qU
IOyCreygnO2VmOyngCDslYrsirXri4jri6QuJyB9DQogICAgJG1hcmtlciA9IEdldC1Db250ZW50
IC1MaXRlcmFsUGF0aCAkbWFya2VyUGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZy
b20tSnNvbg0KICAgIGlmIChbc3RyaW5nXSRtYXJrZXIub3BlcmF0aW9uSWQgLW5lICRPcGVyYXRp
b25JZCkgeyB0aHJvdyAn7J6E7IucIO2PtOuNlCDshozsnKAgSUTqsIAg64us6528IOyCreygnO2V
mOyngCDslYrsirXri4jri6QuJyB9DQogICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGgg
JGZ1bGwgLUZvcmNlDQogICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8u
RmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICfsl7DqsrDsoJDs
nbgg7J6E7IucIO2PtOuNlOuKlCDsgq3soJztlZjsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgIGZv
cmVhY2ggKCRjaGlsZCBpbiBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkZnVsbCAtRm9yY2Ug
LVJlY3Vyc2UgLUVycm9yQWN0aW9uIFN0b3ApIHsNCiAgICAgICAgaWYgKCgkY2hpbGQuQXR0cmli
dXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUg
MCkgeyB0aHJvdyAn7J6E7IucIO2PtOuNlCDslYjsl5Ag7Jew6rKw7KCQ7J20IOyeiOyWtCDsnpDr
j5kg7IKt7KCc7ZWY7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICB9DQogICAgW1N5c3RlbS5JTy5E
aXJlY3RvcnldOjpEZWxldGUoJGZ1bGwsICR0cnVlKQ0KfQ0KDQpmdW5jdGlvbiBHZXQtQWN0aXZl
VHJhbnNhY3Rpb25FeGNsdXNpb24gew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQogICAgJHBv
aW50ZXIgPSBKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxzZXR1cFxhY3RpdmUtdHJhbnNhY3Rpb24u
anNvbicNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcG9pbnRlciAtUGF0
aFR5cGUgTGVhZikpIHsgcmV0dXJuICRudWxsIH0NCiAgICAkdmFsdWUgPSBHZXQtQ29udGVudCAt
TGl0ZXJhbFBhdGggJHBvaW50ZXIgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpz
b24NCiAgICBpZiAoJG51bGwgLWVxICR2YWx1ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0cmFuc2Fj
dGlvbklkJ10pIHsgdGhyb3cgJ2FjdGl2ZS10cmFuc2FjdGlvbi5qc29u7JeQIHRyYW5zYWN0aW9u
SWTqsIAg7JeG7Iq164uI64ukLicgfQ0KICAgICRpZCA9IFtndWlkXTo6RW1wdHkNCiAgICBpZiAo
LW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJHZhbHVlLnRyYW5zYWN0aW9uSWQsIFtyZWZd
JGlkKSkgeyB0aHJvdyAn7ZiE7J6sIOqxsOuemCBJROqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI
64ukLicgfQ0KICAgICRwYXRoID0gSm9pbi1QYXRoICRSb290ICgnX2FnZW50XHNldHVwXHRyYW5z
YWN0aW9uc1wnICsgW3N0cmluZ10kaWQpDQogICAgaWYgKC1ub3QgKFRlc3QtSXNVbmRlclBhdGgg
LUNhbmRpZGF0ZSAkcGF0aCAtUGFyZW50IChKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxzZXR1cFx0
cmFuc2FjdGlvbnMnKSkpIHsgdGhyb3cgJ+2YhOyerCDqsbDrnpgg6rK966Gc6rCAIO2XiOyaqSDr
spTsnITrpbwg67KX7Ja064Ks7Iq164uI64ukLicgfQ0KICAgIHJldHVybiAkcGF0aA0KfQ0KDQpm
dW5jdGlvbiBBc3NlcnQtVGFyRW50cmllc1NhZmUgew0KICAgIHBhcmFtKFtzdHJpbmddJFRhclBh
dGgsIFtzdHJpbmddJFRhckV4ZSkNCiAgICAkbmFtZXMgPSBAKCYgJFRhckV4ZSAtdGYgJFRhclBh
dGggMj4mMSkNCiAgICBpZiAoJExBU1RFWElUQ09ERSAtbmUgMCkgeyB0aHJvdyAndGFyIOuqqeuh
neydhCDsnb3sp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAgICRzZWVuID0gQHt9DQogICAgZm9y
ZWFjaCAoJHJhdyBpbiAkbmFtZXMpIHsNCiAgICAgICAgJG5hbWUgPSBbc3RyaW5nXSRyYXcNCiAg
ICAgICAgJG5vcm1hbGl6ZWQgPSAkbmFtZS5SZXBsYWNlKCdcJywgJy8nKS5UcmltKCkNCiAgICAg
ICAgd2hpbGUgKCRub3JtYWxpemVkLlN0YXJ0c1dpdGgoJy4vJykpIHsgJG5vcm1hbGl6ZWQgPSAk
bm9ybWFsaXplZC5TdWJzdHJpbmcoMikgfQ0KICAgICAgICAkbm9ybWFsaXplZCA9ICRub3JtYWxp
emVkLlRyaW1FbmQoJy8nKQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZSgkbm9ybWFsaXplZCkpIHsgY29udGludWUgfQ0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1SZWxh
dGl2ZUFyY2hpdmVQYXRoICRub3JtYWxpemVkKSkgeyB0aHJvdyAi7JWV7LaVIOyViOyXkCDslYjs
oITtlZjsp4Ag7JWK7J2AIOqyveuhnOqwgCDsnojsirXri4jri6Q6ICRuYW1lIiB9DQogICAgICAg
IGlmICgkbm9ybWFsaXplZCAtbmUgJ21hbmlmZXN0Lmpzb24nIC1hbmQgJG5vcm1hbGl6ZWQgLW5l
ICdwYXlsb2FkJyAtYW5kIC1ub3QgJG5vcm1hbGl6ZWQuU3RhcnRzV2l0aCgncGF5bG9hZC8nLCBb
U3lzdGVtLlN0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsKSkgew0KICAgICAgICAgICAgdGhyb3cg
Iu2XiOyaqeuQnCDtj6zsnqUg66Oo7Yq4IOuwluydmCDtla3rqqnsnoXri4jri6Q6ICRuYW1lIg0K
ICAgICAgICB9DQogICAgICAgICRrZXkgPSAkbm9ybWFsaXplZC5Ub0xvd2VySW52YXJpYW50KCkN
CiAgICAgICAgaWYgKCRzZWVuLkNvbnRhaW5zS2V5KCRrZXkpKSB7IHRocm93ICLrjIDshozrrLjs
npAg6riw7KSAIOykkeuztSDqsr3roZzqsIAg7J6I7Iq164uI64ukOiAkbmFtZSIgfQ0KICAgICAg
ICAkc2Vlblska2V5XSA9ICR0cnVlDQogICAgfQ0KICAgIGlmICgtbm90ICRzZWVuLkNvbnRhaW5z
S2V5KCdtYW5pZmVzdC5qc29uJykpIHsgdGhyb3cgJ+yVlO2YuCDqvrjrn6zrr7gg64K067aAIG1h
bmlmZXN0Lmpzb27snbQg7JeG7Iq164uI64ukLicgfQ0KICAgICR2ZXJib3NlID0gQCgmICRUYXJF
eGUgLXR2ZiAkVGFyUGF0aCAyPiYxKQ0KICAgIGlmICgkTEFTVEVYSVRDT0RFIC1uZSAwKSB7IHRo
cm93ICd0YXIg7IOB7IS4IOuqqeuhneydhCDsnb3sp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAg
IGZvcmVhY2ggKCRsaW5lIGluICR2ZXJib3NlKSB7DQogICAgICAgICR0ZXh0ID0gW3N0cmluZ10k
bGluZQ0KICAgICAgICBpZiAoJHRleHQuTGVuZ3RoIC1ndCAwIC1hbmQgJHRleHRbMF0gLW5vdGlu
IEAoJy0nLCAnZCcpKSB7IHRocm93ICfsi6zrs7zrpq0g66eB7YGswrftlZjrk5wg66eB7YGswrft
irnsiJgg7YyM7J287J20IOuToCB0YXLripQg7ZKA7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAg
ICAgaWYgKCR0ZXh0IC1tYXRjaCAnXHMtPlxzfFxzbGluayB0b1xzJykgeyB0aHJvdyAn66eB7YGs
IO2VreuqqeydtCDrk6AgdGFy64qUIO2SgOyngCDslYrsirXri4jri6QuJyB9DQogICAgfQ0KfQ0K
DQpmdW5jdGlvbiBBc3NlcnQtRXh0cmFjdGVkUGFja2FnZSB7DQogICAgcGFyYW0oW3N0cmluZ10k
UGFja2FnZVJvb3QpDQogICAgJHRyZWUgPSBHZXQtTm9Gb2xsb3dUcmVlIC1Sb290ICRQYWNrYWdl
Um9vdA0KICAgIGZvcmVhY2ggKCRmaWxlIGluICR0cmVlLmZpbGVzKSB7DQogICAgICAgIGlmICgk
ZmlsZS5yZWxhdGl2ZVBhdGggLW5lICdtYW5pZmVzdC5qc29uJyAtYW5kIC1ub3QgJGZpbGUucmVs
YXRpdmVQYXRoLlN0YXJ0c1dpdGgoJ3BheWxvYWQvJywgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29u
XTo6T3JkaW5hbCkpIHsNCiAgICAgICAgICAgIHRocm93ICLtkoDrprAg6r6465+s66+47JeQIO2X
iOyaqeuQmOyngCDslYrsnYAg7YyM7J287J20IOyeiOyKteuLiOuLpDogJCgkZmlsZS5yZWxhdGl2
ZVBhdGgpIg0KICAgICAgICB9DQogICAgfQ0KICAgICRtYW5pZmVzdFBhdGggPSBKb2luLVBhdGgg
JFBhY2thZ2VSb290ICdtYW5pZmVzdC5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICRtYW5pZmVzdFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICfrgrTrtoAg
bWFuaWZlc3QuanNvbuydhCDssL7sp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAgICRtYW5pZmVz
dCA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkbWFuaWZlc3RQYXRoIC1SYXcgLUVuY29kaW5n
IFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgaWYgKFtpbnRdJG1hbmlmZXN0LnNjaGVtYVZl
cnNpb24gLW5lIDEgLW9yIFtzdHJpbmddJG1hbmlmZXN0LmZvcm1hdCAtbmUgJ3NvdWwtZGF0YS1h
Z2UtdGFyJykgeyB0aHJvdyAn7KeA7JuQ7ZWY7KeAIOyViuuKlCDrgrTrtoAg6r6465+s66+4IO2Y
leyLneyeheuLiOuLpC4nIH0NCiAgICAkc291bEd1aWQgPSBbZ3VpZF06OkVtcHR5DQogICAgaWYg
KC1ub3QgW2d1aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRtYW5pZmVzdC5zb3VsSWQsIFtyZWZdJHNv
dWxHdWlkKSkgeyB0aHJvdyAn64K067aAIG1hbmlmZXN07J2YIHNvdWxJZOqwgCDsmKzrsJTrpbTs
p4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICRleHBvcnRHdWlkID0gW2d1aWRdOjpFbXB0eQ0KICAg
IGlmICgtbm90IFtndWlkXTo6VHJ5UGFyc2UoW3N0cmluZ10kbWFuaWZlc3QuZXhwb3J0SWQsIFty
ZWZdJGV4cG9ydEd1aWQpKSB7IHRocm93ICfrgrTrtoAgbWFuaWZlc3TsnZggZXhwb3J0SWTqsIAg
7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAkZXhwZWN0ZWQgPSBAe30NCiAgICBm
b3JlYWNoICgkZW50cnkgaW4gQCgkbWFuaWZlc3QuZmlsZXMpKSB7DQogICAgICAgICRyZWxhdGl2
ZSA9IFtzdHJpbmddJGVudHJ5LnBhdGgNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUmVsYXRpdmVB
cmNoaXZlUGF0aCAkcmVsYXRpdmUpKSB7IHRocm93ICJtYW5pZmVzdOyXkCDslYjsoITtlZjsp4Ag
7JWK7J2AIOqyveuhnOqwgCDsnojsirXri4jri6Q6ICRyZWxhdGl2ZSIgfQ0KICAgICAgICBpZiAo
W2xvbmddJGVudHJ5Lmxlbmd0aCAtbHQgMCAtb3IgW3N0cmluZ10kZW50cnkuc2hhMjU2IC1ub3Rt
YXRjaCAnXlswLTlhLWZdezY0fSQnKSB7IHRocm93ICJtYW5pZmVzdCDtjIzsnbwg7YGs6riwL+2V
tOyLnOqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukOiAkcmVsYXRpdmUiIH0NCiAgICAgICAg
aWYgKFtzdHJpbmddJGVudHJ5LnNvdXJjZUtpbmQgLW5vdGluIEAoJ25vcm1hbCcsICdzYWZlLWRh
dGFiYXNlLWJhY2t1cCcpKSB7IHRocm93ICJtYW5pZmVzdCBzb3VyY2VLaW5k6rCAIOyYrOuwlOul
tOyngCDslYrsirXri4jri6Q6ICRyZWxhdGl2ZSIgfQ0KICAgICAgICAka2V5ID0gJHJlbGF0aXZl
LlRvTG93ZXJJbnZhcmlhbnQoKQ0KICAgICAgICBpZiAoJGV4cGVjdGVkLkNvbnRhaW5zS2V5KCRr
ZXkpKSB7IHRocm93ICJtYW5pZmVzdCDqsr3roZzqsIAg7KSR67O165Cp64uI64ukOiAkcmVsYXRp
dmUiIH0NCiAgICAgICAgJHBheWxvYWRGaWxlID0gSm9pbi1QYXRoIChKb2luLVBhdGggJFBhY2th
Z2VSb290ICdwYXlsb2FkJykgJHJlbGF0aXZlLlJlcGxhY2UoJy8nLCAnXCcpDQogICAgICAgIGlm
ICgtbm90IChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUgJHBheWxvYWRGaWxlIC1QYXJlbnQg
KEpvaW4tUGF0aCAkUGFja2FnZVJvb3QgJ3BheWxvYWQnKSkpIHsgdGhyb3cgInBheWxvYWQg6rK9
66Gc6rCAIOuylOychOulvCDrspfslrTrgqzsirXri4jri6Q6ICRyZWxhdGl2ZSIgfQ0KICAgICAg
ICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF5bG9hZEZpbGUgLVBhdGhUeXBl
IExlYWYpKSB7IHRocm93ICJtYW5pZmVzdCDtjIzsnbzsnbQgcGF5bG9hZOyXkCDsl4bsirXri4jr
i6Q6ICRyZWxhdGl2ZSIgfQ0KICAgICAgICAkYWN0dWFsTGVuZ3RoID0gKEdldC1JdGVtIC1MaXRl
cmFsUGF0aCAkcGF5bG9hZEZpbGUpLkxlbmd0aA0KICAgICAgICAkYWN0dWFsSGFzaCA9IEdldC1G
aWxlU2hhMjU2ICRwYXlsb2FkRmlsZQ0KICAgICAgICBpZiAoJGFjdHVhbExlbmd0aCAtbmUgW2xv
bmddJGVudHJ5Lmxlbmd0aCAtb3IgJGFjdHVhbEhhc2ggLW5lIFtzdHJpbmddJGVudHJ5LnNoYTI1
NikgeyB0aHJvdyAicGF5bG9hZCDtjIzsnbwg6rKA7Kad7JeQIOyLpO2MqO2WiOyKteuLiOuLpDog
JHJlbGF0aXZlIiB9DQogICAgICAgICRleHBlY3RlZFska2V5XSA9ICR0cnVlDQogICAgfQ0KICAg
ICRwYXlsb2FkVHJlZSA9IEdldC1Ob0ZvbGxvd1RyZWUgLVJvb3QgKEpvaW4tUGF0aCAkUGFja2Fn
ZVJvb3QgJ3BheWxvYWQnKQ0KICAgIGZvcmVhY2ggKCRmaWxlIGluICRwYXlsb2FkVHJlZS5maWxl
cykgew0KICAgICAgICBpZiAoLW5vdCAkZXhwZWN0ZWQuQ29udGFpbnNLZXkoJGZpbGUucmVsYXRp
dmVQYXRoLlRvTG93ZXJJbnZhcmlhbnQoKSkpIHsgdGhyb3cgIm1hbmlmZXN07JeQIOyXhuuKlCDt
jIzsnbzsnbQgcGF5bG9hZOyXkCDsnojsirXri4jri6Q6ICQoJGZpbGUucmVsYXRpdmVQYXRoKSIg
fQ0KICAgIH0NCiAgICBbcHNjdXN0b21vYmplY3RdQHsgbWFuaWZlc3QgPSAkbWFuaWZlc3Q7IHBh
Y2thZ2VUcmVlID0gJHBheWxvYWRUcmVlOyBwYXlsb2FkUm9vdCA9IEpvaW4tUGF0aCAkUGFja2Fn
ZVJvb3QgJ3BheWxvYWQnIH0NCn0NCg0KZnVuY3Rpb24gSW52b2tlLUFnZVBhc3NwaHJhc2Ugew0K
ICAgIHBhcmFtKFtWYWxpZGF0ZVNldCgnRW5jcnlwdCcsICdEZWNyeXB0JyldW3N0cmluZ10kTW9k
ZSwgW3N0cmluZ10kQWdlRXhlLCBbc3RyaW5nXSRJbnB1dFBhdGgsIFtzdHJpbmddJE91dHB1dFBh
dGgpDQogICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJE91dHB1dFBhdGgpIHsgdGhyb3cg
Iuy2nOugpSDtjIzsnbzsnbQg7J2066+4IOyeiOyWtCDrja7slrTsk7Dsp4Ag7JWK7Iq164uI64uk
OiAkT3V0cHV0UGF0aCIgfQ0KICAgIFdyaXRlLUhvc3QgJ+uzteq1rCDslZTtmLjripQg7KeA6riI
IGFnZeydmCDrs7TslYgg7J6F66Cl7LC97JeQ66eMIOyeheugpe2VmOyEuOyalC4g66qF66C5IOyd
uOyImMK366Gc6re4wrftgbTrpr3rs7Trk5zsl5DripQg64Ko6riw7KeAIOyViuyKteuLiOuLpC4n
DQogICAgaWYgKCRNb2RlIC1lcSAnRW5jcnlwdCcpIHsgJiAkQWdlRXhlIC0tcGFzc3BocmFzZSAt
LW91dHB1dCAkT3V0cHV0UGF0aCAkSW5wdXRQYXRoIH0NCiAgICBlbHNlIHsgJiAkQWdlRXhlIC0t
ZGVjcnlwdCAtLW91dHB1dCAkT3V0cHV0UGF0aCAkSW5wdXRQYXRoIH0NCiAgICBpZiAoJExBU1RF
WElUQ09ERSAtbmUgMCkgeyB0aHJvdyAiYWdlICRNb2RlIOyekeyXheydtCDsi6TtjKjtlojsirXr
i4jri6QuIOq4sOyhtCDsnpDro4zripQg67CU64CM7KeAIOyViuyVmOyKteuLiOuLpC4iIH0NCn0N
Cg0KZnVuY3Rpb24gSW52b2tlLUV4cG9ydCB7DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoJFNvdWxSb290KSkgeyB0aHJvdyAnRXhwb3J07JeQ64qUIC1Tb3VsUm9vdOqwgCDt
lYTsmpTtlanri4jri6QuJyB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo
JERlc3RpbmF0aW9uRGlyZWN0b3J5KSkgeyB0aHJvdyAnRXhwb3J07JeQ64qUIFVTQuydmCDrjIDs
g4Eg7Y+0642UKC1EZXN0aW5hdGlvbkRpcmVjdG9yeSnqsIAg7ZWE7JqU7ZWp64uI64ukLicgfQ0K
ICAgICRyb290ID0gQXNzZXJ0LVNvdWxSb290IC1QYXRoICRTb3VsUm9vdCAtUmVxdWlyZUluaXRp
YWxpemVkDQogICAgaWYgKC1ub3QgJHJvb3QuRXF1YWxzKChHZXQtU291bFJvb3QpLCBbU3lzdGVt
LlN0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsgdGhyb3cgJ+ydtCDsl5Ts
p4TsnYAg7J6Q7Iug7J20IOyGje2VnCDsmIHtmLzrp4wg64K067O064OF64uI64ukLicgfQ0KICAg
ICRkZXN0aW5hdGlvbiA9IEFzc2VydC1TYWZlRXhwb3J0RGVzdGluYXRpb24gLVBhdGggJERlc3Rp
bmF0aW9uRGlyZWN0b3J5DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHJv
b3QgLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgIuyYge2YvCDtj7TrjZTqsIAg7JeG7Iq1
64uI64ukOiAkcm9vdCIgfQ0KICAgIGlmIChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUgJGRl
c3RpbmF0aW9uIC1QYXJlbnQgJHJvb3QpIHsgdGhyb3cgJ+uCtOuztOuCvCDrjIDsg4HsnYAg7JiB
7Zi8IO2PtOuNlCDrsJbsnbTslrTslbwg7ZWp64uI64ukLicgfQ0KICAgICRpZGVudGl0eSA9IFJl
YWQtU291bFN0YXRlIC1Sb290ICRyb290DQogICAgJGxpdmVBZ2VudHMgPSBAKEdldC1MaXZlU291
bEFnZW50UHJvY2VzcykNCiAgICBpZiAoJGxpdmVBZ2VudHMuQ291bnQgLWd0IDAgLWFuZCBbc3Ry
aW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRTYWZlRGF0YWJhc2VCYWNrdXBSb290KSkgew0KICAg
ICAgICB0aHJvdyAnQ2xhdWRlL0NvZGV46rCAIOyLpO2WiSDspJHsnoXri4jri6QuIOyekOyXsCDs
ooXro4wg65KkIOuCtOuztOuCtOqxsOuCmCwg66i87KCAIOydvOq0gOuQnCBEQiDrsLHsl4XsnYQg
66eM65Ok7Ja0IC1TYWZlRGF0YWJhc2VCYWNrdXBSb29066GcIOuEmOqyqOyVvCDtlanri4jri6Qu
Jw0KICAgIH0NCiAgICAkYWdlVG9vbHMgPSBHZXQtVmVyaWZpZWRBZ2VUb29sU2V0IC1BZ2VQYXRo
ICRUcnVzdGVkQWdlUGF0aCAtQWdlU2hhMjU2ICRUcnVzdGVkQWdlU2hhMjU2DQogICAgJGFnZSA9
IFtzdHJpbmddJGFnZVRvb2xzLmFnZQ0KICAgICR0YXIgPSBHZXQtU3lzdGVtVGFyDQogICAgJGV4
cG9ydElkID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAgICRjcmVhdGVkQXRVdGMg
PSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgICRzb3VsTmFtZSA9IFtJTy5Q
YXRoXTo6R2V0RmlsZU5hbWUoJHJvb3QpDQogICAgaWYgKCRudWxsIC1uZSAkaWRlbnRpdHkuc3Rh
dGUuUFNPYmplY3QuUHJvcGVydGllc1snZGlzcGxheU5hbWUnXSAtYW5kIC1ub3QgW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRpZGVudGl0eS5zdGF0ZS5kaXNwbGF5TmFtZSkp
IHsNCiAgICAgICAgJHNvdWxOYW1lID0gW3N0cmluZ10kaWRlbnRpdHkuc3RhdGUuZGlzcGxheU5h
bWUNCiAgICB9DQogICAgJHN0YWdpbmdQYXJlbnQgPSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0
aCAoSm9pbi1QYXRoICRyb290ICdfYWdlbnRcZXhwb3J0XHN0YWdpbmcnKQ0KICAgICRzdGFnZSA9
IE5ldy1Pd25lZFN0YWdpbmdEaXJlY3RvcnkgLVBhcmVudCAkc3RhZ2luZ1BhcmVudCAtT3BlcmF0
aW9uSWQgJGV4cG9ydElkIC1LaW5kICdleHBvcnQnDQogICAgJGNpcGhlclN0YWdlUGF0aCA9IEpv
aW4tUGF0aCAkc3RhZ2UgJ3BheWxvYWQudGFyLmFnZScNCiAgICB0cnkgew0KICAgICAgICAkcGFj
a2FnZVJvb3QgPSBKb2luLVBhdGggJHN0YWdlICdwYWNrYWdlJw0KICAgICAgICAkcGF5bG9hZFJv
b3QgPSBKb2luLVBhdGggJHBhY2thZ2VSb290ICdwYXlsb2FkJw0KICAgICAgICBbU3lzdGVtLklP
LkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkcGF5bG9hZFJvb3QpIHwgT3V0LU51bGwNCiAg
ICAgICAgJGV4Y2x1c2lvbnMgPSBAKCRzdGFnaW5nUGFyZW50LCAoSm9pbi1QYXRoICRQU1Njcmlw
dFJvb3QgJ3Jlc3RvcmUtc3RhZ2luZycpKQ0KICAgICAgICAkYWN0aXZlID0gR2V0LUFjdGl2ZVRy
YW5zYWN0aW9uRXhjbHVzaW9uIC1Sb290ICRyb290DQogICAgICAgIGlmICgkbnVsbCAtbmUgJGFj
dGl2ZSkgeyAkZXhjbHVzaW9ucyArPSAkYWN0aXZlIH0NCiAgICAgICAgJGJhY2t1cFJvb3QgPSBp
ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkU2FmZURhdGFiYXNlQmFja3VwUm9vdCkp
IHsgJG51bGwgfSBlbHNlIHsgR2V0LUZ1bGxMaXRlcmFsUGF0aCAkU2FmZURhdGFiYXNlQmFja3Vw
Um9vdCB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgJGJhY2t1cFJvb3QgLWFuZCAtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRiYWNrdXBSb290IC1QYXRoVHlwZSBDb250YWluZXIpKSB7IHRo
cm93ICLslYjsoIQgREIg67Cx7JeFIO2PtOuNlOqwgCDsl4bsirXri4jri6Q6ICRiYWNrdXBSb290
IiB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgJGJhY2t1cFJvb3QpIHsNCiAgICAgICAgICAgIEFz
c2VydC1Ob1JlcGFyc2VXaXRoaW4gLVBhdGggJGJhY2t1cFJvb3QgLUJvdW5kYXJ5ICRiYWNrdXBS
b290DQogICAgICAgICAgICBpZiAoJGJhY2t1cFJvb3QuRXF1YWxzKCRyb290LCBbU3RyaW5nQ29t
cGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgeyB0aHJvdyAn7JWI7KCEIERCIOuwseyXhSDt
j7TrjZTripQg7JiB7Zi8IOujqO2KuCDsnpDssrTsnbwg7IiYIOyXhuyKteuLiOuLpC4nIH0NCiAg
ICAgICAgICAgIGlmIChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUgJGJhY2t1cFJvb3QgLVBh
cmVudCAkcm9vdCkgeyAkZXhjbHVzaW9ucyArPSAkYmFja3VwUm9vdCB9DQogICAgICAgIH0NCiAg
ICAgICAgJHRyZWUgPSBHZXQtTm9Gb2xsb3dUcmVlIC1Sb290ICRyb290IC1FeGNsdWRlZFJvb3Rz
ICRleGNsdXNpb25zDQogICAgICAgICRkYXRhYmFzZUZpbGVzID0gQCgkdHJlZS5maWxlcyB8IFdo
ZXJlLU9iamVjdCB7IFRlc3QtSXNMaXZlRGF0YWJhc2VGaWxlICRfLnJlbGF0aXZlUGF0aCB9KQ0K
ICAgICAgICBpZiAoJGRhdGFiYXNlRmlsZXMuQ291bnQgLWd0IDAgLWFuZCBbc3RyaW5nXTo6SXNO
dWxsT3JXaGl0ZVNwYWNlKCRTYWZlRGF0YWJhc2VCYWNrdXBSb290KSkgew0KICAgICAgICAgICAg
dGhyb3cgIu2ZnOyEsSDrjbDsnbTthLDrsqDsnbTsiqQgJCgkZGF0YWJhc2VGaWxlcy5Db3VudCnq
sJzqsIAg7J6I7Iq164uI64ukLiDsi6Ttlokg7KSRIO2MjOydvOydhCDrs7XsgqztlZjsp4Ag66eQ
6rOgLCDqsJnsnYAg7IOB64yAIOqyveuhnOuhnCDrp4zrk6Ag7JWI7KCEIOuwseyXhSDtj7TrjZTr
pbwgLVNhZmVEYXRhYmFzZUJhY2t1cFJvb3Tsl5Ag7KeA7KCV7ZWY7IS47JqULiINCiAgICAgICAg
fQ0KICAgICAgICAkbWFuaWZlc3RFbnRyaWVzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv
bnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICAgICAgJHNpZGVjYXJzID0gTmV3LU9iamVjdCBT
eXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAgICAgZm9yZWFjaCAo
JGRpcmVjdG9yeSBpbiAkdHJlZS5kaXJlY3RvcmllcykgeyBbU3lzdGVtLklPLkRpcmVjdG9yeV06
OkNyZWF0ZURpcmVjdG9yeSgoSm9pbi1QYXRoICRwYXlsb2FkUm9vdCAkZGlyZWN0b3J5LnJlbGF0
aXZlUGF0aC5SZXBsYWNlKCcvJywgJ1wnKSkpIHwgT3V0LU51bGwgfQ0KICAgICAgICBmb3JlYWNo
ICgkZmlsZSBpbiAkdHJlZS5maWxlcykgew0KICAgICAgICAgICAgaWYgKFRlc3QtSXNEYXRhYmFz
ZVNpZGVjYXIgJGZpbGUucmVsYXRpdmVQYXRoKSB7ICRzaWRlY2Fycy5BZGQoJGZpbGUucmVsYXRp
dmVQYXRoKTsgY29udGludWUgfQ0KICAgICAgICAgICAgJHNvdXJjZSA9ICRmaWxlLmZ1bGxQYXRo
DQogICAgICAgICAgICAkc291cmNlS2luZCA9ICdub3JtYWwnDQogICAgICAgICAgICBpZiAoVGVz
dC1Jc0xpdmVEYXRhYmFzZUZpbGUgJGZpbGUucmVsYXRpdmVQYXRoKSB7DQogICAgICAgICAgICAg
ICAgJHNvdXJjZSA9IEpvaW4tUGF0aCAkYmFja3VwUm9vdCAkZmlsZS5yZWxhdGl2ZVBhdGguUmVw
bGFjZSgnLycsICdcJykNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVyUGF0
aCAtQ2FuZGlkYXRlICRzb3VyY2UgLVBhcmVudCAkYmFja3VwUm9vdCkgLW9yIC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJHNvdXJjZSAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgIuyViOyg
hCBEQiDrsLHsl4Xsl5Ag6rCZ7J2AIOyDgeuMgCDqsr3roZzsnZgg7YyM7J287J20IOyXhuyKteuL
iOuLpDogJCgkZmlsZS5yZWxhdGl2ZVBhdGgpIiB9DQogICAgICAgICAgICAgICAgQXNzZXJ0LU5v
UmVwYXJzZVdpdGhpbiAtUGF0aCAkc291cmNlIC1Cb3VuZGFyeSAkYmFja3VwUm9vdA0KICAgICAg
ICAgICAgICAgICRiYWNrdXBJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRzb3VyY2UgLUZv
cmNlDQogICAgICAgICAgICAgICAgaWYgKCgkYmFja3VwSXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtT
eXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICJE
QiDrsLHsl4XsnbQg7Jew6rKw7KCQ7J6F64uI64ukOiAkKCRmaWxlLnJlbGF0aXZlUGF0aCkiIH0N
CiAgICAgICAgICAgICAgICBBc3NlcnQtTm9BbHRlcm5hdGVEYXRhU3RyZWFtcyAtRmlsZVBhdGgg
JHNvdXJjZQ0KICAgICAgICAgICAgICAgICRzb3VyY2VLaW5kID0gJ3NhZmUtZGF0YWJhc2UtYmFj
a3VwJw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHRhcmdldCA9IEpvaW4tUGF0aCAkcGF5
bG9hZFJvb3QgJGZpbGUucmVsYXRpdmVQYXRoLlJlcGxhY2UoJy8nLCAnXCcpDQogICAgICAgICAg
ICAkY29weSA9IENvcHktRmlsZUNvbnNpc3RlbnRDcmVhdGVOZXcgLVNvdXJjZSAkc291cmNlIC1E
ZXN0aW5hdGlvbiAkdGFyZ2V0DQogICAgICAgICAgICAkbWFuaWZlc3RFbnRyaWVzLkFkZChbcHNj
dXN0b21vYmplY3RdQHsgcGF0aCA9ICRmaWxlLnJlbGF0aXZlUGF0aDsgbGVuZ3RoID0gJGNvcHku
bGVuZ3RoOyBzaGEyNTYgPSAkY29weS5zaGEyNTY7IHNvdXJjZUtpbmQgPSAkc291cmNlS2luZCB9
KQ0KICAgICAgICB9DQogICAgICAgICRtYW5pZmVzdCA9IFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDE7IGZvcm1hdCA9ICdzb3VsLWRhdGEtYWdlLXRhcic7
IGV4cG9ydElkID0gJGV4cG9ydElkOyBjcmVhdGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cu
VG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgc291bElkID0gJGlkZW50aXR5LnNvdWxJZDsgY29u
c2lzdGVuY3lNb2RlID0gaWYgKCRsaXZlQWdlbnRzLkNvdW50IC1lcSAwKSB7ICdhZ2VudHMtc3Rv
cHBlZCcgfSBlbHNlIHsgJ3NhZmUtZGF0YWJhc2UtYmFja3VwLWlucHV0JyB9DQogICAgICAgICAg
ICBmaWxlcyA9IEAoJG1hbmlmZXN0RW50cmllcyB8IFNvcnQtT2JqZWN0IHBhdGgpOyBleGNsdWRl
ZFZvbGF0aWxlRGF0YWJhc2VTaWRlY2FycyA9IEAoJHNpZGVjYXJzIHwgU29ydC1PYmplY3QpDQog
ICAgICAgIH0NCiAgICAgICAgV3JpdGUtSnNvbkNyZWF0ZU5ldyAtUGF0aCAoSm9pbi1QYXRoICRw
YWNrYWdlUm9vdCAnbWFuaWZlc3QuanNvbicpIC1WYWx1ZSAkbWFuaWZlc3QNCiAgICAgICAgJHBs
YWluVGFyID0gSm9pbi1QYXRoICRzdGFnZSAncGFja2FnZS50YXInDQogICAgICAgICYgJHRhciAt
Y2YgJHBsYWluVGFyIC1DICRwYWNrYWdlUm9vdCAuDQogICAgICAgIGlmICgkTEFTVEVYSVRDT0RF
IC1uZSAwIC1vciAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwbGFpblRhciAtUGF0aFR5
cGUgTGVhZikpIHsgdGhyb3cgJ3RhciDrjbDsnbTthLAg6r6465+s66+4IOyDneyEseyXkCDsi6Tt
jKjtlojsirXri4jri6QuJyB9DQogICAgICAgIEFzc2VydC1UYXJFbnRyaWVzU2FmZSAtVGFyUGF0
aCAkcGxhaW5UYXIgLVRhckV4ZSAkdGFyDQogICAgICAgIEludm9rZS1BZ2VQYXNzcGhyYXNlIC1N
b2RlIEVuY3J5cHQgLUFnZUV4ZSAkYWdlIC1JbnB1dFBhdGggJHBsYWluVGFyIC1PdXRwdXRQYXRo
ICRjaXBoZXJTdGFnZVBhdGgNCiAgICAgICAgJGJ1bmRsZSA9IE5ldy1Qb3J0YWJsZVJlc3RvcmVC
dW5kbGUgLURlc3RpbmF0aW9uICRkZXN0aW5hdGlvbiAtU291bE5hbWUgJHNvdWxOYW1lIC1Tb3Vs
SWQgJGlkZW50aXR5LnNvdWxJZCAtRXhwb3J0SWQgJGV4cG9ydElkIC1DaXBoZXJTb3VyY2UgJGNp
cGhlclN0YWdlUGF0aCAtQWdlVG9vbHMgJGFnZVRvb2xzIC1DcmVhdGVkQXRVdGMgJGNyZWF0ZWRB
dFV0Yw0KICAgICAgICAkYnVuZGxlIHwgQWRkLU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSBmaWxl
Q291bnQgLU5vdGVQcm9wZXJ0eVZhbHVlICRtYW5pZmVzdEVudHJpZXMuQ291bnQNCiAgICAgICAg
JGJ1bmRsZQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgUmVtb3ZlLU93bmVkU3RhZ2luZ0RpcmVjdG9y
eSAtUGF0aCAkc3RhZ2UgLUV4cGVjdGVkUGFyZW50ICRzdGFnaW5nUGFyZW50IC1PcGVyYXRpb25J
ZCAkZXhwb3J0SWQgfQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLUFuZFZhbGlkYXRlUHVibGljTWV0YWRh
dGEgew0KICAgIHBhcmFtKFtzdHJpbmddJENpcGhlciwgW3N0cmluZ10kTWV0YWRhdGEpDQogICAg
JENpcGhlciA9IEFzc2VydC1Qb3J0YWJsZUlucHV0RmlsZSAtUGF0aCAkQ2lwaGVyIC1MYWJlbCAn
7JWU7Zi4IOq+uOufrOuvuCcNCiAgICAkTWV0YWRhdGEgPSBBc3NlcnQtUG9ydGFibGVJbnB1dEZp
bGUgLVBhdGggJE1ldGFkYXRhIC1MYWJlbCAn6rO16rCcIOqygOymne2RnCcNCiAgICBpZiAoLW5v
dCAkQ2lwaGVyLkVuZHNXaXRoKCcudGFyLmFnZScsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5h
bElnbm9yZUNhc2UpKSB7IHRocm93ICfslZTtmLgg6r6465+s66+4IO2ZleyepeyekOuKlCAudGFy
LmFnZeyXrOyVvCDtlanri4jri6QuJyB9DQogICAgJGlzTGVnYWN5ID0gJE1ldGFkYXRhLkVuZHNX
aXRoKCcucHVibGljLmpzb24nLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNl
KQ0KICAgICRpc0J1bmRsZSA9IFtJTy5QYXRoXTo6R2V0RmlsZU5hbWUoJE1ldGFkYXRhKS5FcXVh
bHMoJ21hbmlmZXN0Lmpzb24nLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNl
KQ0KICAgIGlmICgtbm90ICRpc0xlZ2FjeSAtYW5kIC1ub3QgJGlzQnVuZGxlKSB7IHRocm93ICfq
s7XqsJwg6rKA7Kad7ZGc64qUIOq4sOyhtCAucHVibGljLmpzb24g65iQ64qUIOuzteybkCDrrLbs
nYzsnZggbWFuaWZlc3QuanNvbuydtOyWtOyVvCDtlanri4jri6QuJyB9DQogICAgJHB1YmxpYyA9
IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkTWV0YWRhdGEgLVJhdyAtRW5jb2RpbmcgVVRGOCB8
IENvbnZlcnRGcm9tLUpzb24NCiAgICBpZiAoJGlzTGVnYWN5KSB7DQogICAgICAgIGlmIChbaW50
XSRwdWJsaWMuc2NoZW1hVmVyc2lvbiAtbmUgMSAtb3IgW3N0cmluZ10kcHVibGljLmZvcm1hdCAt
bmUgJ3NvdWwtZGF0YS1hZ2UtdGFyJyAtb3IgW3N0cmluZ10kcHVibGljLmFnZVZlcnNpb24gLW5l
ICcxLjMuMScpIHsgdGhyb3cgJ+yngOybkO2VmOyngCDslYrripQg6riw7KG0IOqzteqwnCDqsoDs
pp3tkZzsnoXri4jri6QuJyB9DQogICAgICAgICRwdWJsaWNFeHBvcnRJZCA9IFtndWlkXTo6RW1w
dHkNCiAgICAgICAgaWYgKC1ub3QgW2d1aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRwdWJsaWMuZXhw
b3J0SWQsIFtyZWZdJHB1YmxpY0V4cG9ydElkKSAtb3IgW3N0cmluZ10kcHVibGljLmNpcGhlclNo
YTI1NiAtbm90bWF0Y2ggJ15bMC05YS1mXXs2NH0kJykgeyB0aHJvdyAn6rO16rCcIOqygOymne2R
nOydmCBleHBvcnRJZC/tlbTsi5zqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nIH0NCiAg
ICAgICAgaWYgKFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRDaXBoZXIpIC1uZSBbc3Ry
aW5nXSRwdWJsaWMuY2lwaGVyRmlsZSkgeyB0aHJvdyAn6rO16rCcIOqygOymne2RnOydmCDtjIzs
nbzrqoXqs7wg7ISg7YOd7ZWcIOq+uOufrOuvuOqwgCDri6TrpoXri4jri6QuJyB9DQogICAgICAg
IGlmICgoR2V0LUZpbGVTaGEyNTYgJENpcGhlcikgLW5lIFtzdHJpbmddJHB1YmxpYy5jaXBoZXJT
aGEyNTYpIHsgdGhyb3cgJ+yVlO2YuCDqvrjrn6zrr7jsnZggU0hBLTI1NuydtCDqs7XqsJwg6rKA
7Kad7ZGc7JmAIOuLpOumheuLiOuLpC4nIH0NCiAgICAgICAgcmV0dXJuICRwdWJsaWMNCiAgICB9
DQoNCiAgICBpZiAoW2ludF0kcHVibGljLnNjaGVtYVZlcnNpb24gLW5lIDIgLW9yIFtzdHJpbmdd
JHB1YmxpYy5mb3JtYXQgLW5lICdzb3VsLXBvcnRhYmxlLXJlc3RvcmUtYnVuZGxlJyAtb3IgW3N0
cmluZ10kcHVibGljLmFnZS52ZXJzaW9uIC1uZSAnMS4zLjEnKSB7IHRocm93ICfsp4Dsm5DtlZjs
p4Ag7JWK64qUIOuzteybkCDrrLbsnYwgbWFuaWZlc3TsnoXri4jri6QuJyB9DQogICAgJHB1Ymxp
Y0V4cG9ydElkID0gW2d1aWRdOjpFbXB0eQ0KICAgICRwdWJsaWNTb3VsSWQgPSBbZ3VpZF06OkVt
cHR5DQogICAgaWYgKC1ub3QgW2d1aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRwdWJsaWMuZXhwb3J0
SWQsIFtyZWZdJHB1YmxpY0V4cG9ydElkKSAtb3IgLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJp
bmddJHB1YmxpYy5zb3VsSWQsIFtyZWZdJHB1YmxpY1NvdWxJZCkpIHsgdGhyb3cgJ21hbmlmZXN0
7J2YIGV4cG9ydElkL3NvdWxJZOqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAg
IGlmIChbc3RyaW5nXSRwdWJsaWMuYXJjaGl2ZS5zaGEyNTYgLW5vdG1hdGNoICdeWzAtOWEtZl17
NjR9JCcgLW9yIFtsb25nXSRwdWJsaWMuYXJjaGl2ZS5sZW5ndGggLWx0IDEpIHsgdGhyb3cgJ21h
bmlmZXN07J2YIOyVlO2YuOusuCDtgazquLAv7KeA66y47J20IOyYrOuwlOultOyngCDslYrsirXr
i4jri6QuJyB9DQogICAgaWYgKFtJTy5QYXRoXTo6R2V0RmlsZU5hbWUoJENpcGhlcikgLWNuZSBb
c3RyaW5nXSRwdWJsaWMuYXJjaGl2ZS5wYXRoKSB7IHRocm93ICdtYW5pZmVzdOydmCDslZTtmLjr
rLgg7YyM7J2866qF6rO8IOyEoO2Dne2VnCDqvrjrn6zrr7jqsIAg64uk66aF64uI64ukLicgfQ0K
ICAgICRjaXBoZXJJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRDaXBoZXINCiAgICBpZiAo
W2xvbmddJGNpcGhlckl0ZW0uTGVuZ3RoIC1uZSBbbG9uZ10kcHVibGljLmFyY2hpdmUubGVuZ3Ro
IC1vciAoR2V0LUZpbGVTaGEyNTYgJENpcGhlcikgLWNuZSBbc3RyaW5nXSRwdWJsaWMuYXJjaGl2
ZS5zaGEyNTYpIHsgdGhyb3cgJ+yVlO2YuCDqvrjrn6zrr7jsnZgg7YGs6riwL1NIQS0yNTbsnbQg
bWFuaWZlc3TsmYAg64uk66aF64uI64ukLicgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3Rd
QHsgZXhwb3J0SWQgPSBbc3RyaW5nXSRwdWJsaWMuZXhwb3J0SWQ7IHNvdWxJZCA9IFtzdHJpbmdd
JHB1YmxpYy5zb3VsSWQ7IGNpcGhlckZpbGUgPSBbc3RyaW5nXSRwdWJsaWMuYXJjaGl2ZS5wYXRo
OyBjaXBoZXJTaGEyNTYgPSBbc3RyaW5nXSRwdWJsaWMuYXJjaGl2ZS5zaGEyNTY7IGFnZVZlcnNp
b24gPSAnMS4zLjEnOyBidW5kbGVNYW5pZmVzdCA9ICRwdWJsaWMgfQ0KfQ0KDQpmdW5jdGlvbiBF
eHBhbmQtQW5kVmFsaWRhdGVBcmNoaXZlIHsNCiAgICBwYXJhbShbc3RyaW5nXSRDaXBoZXIsIFtz
dHJpbmddJE1ldGFkYXRhLCBbc3RyaW5nXSRBZ2VFeGUsIFtzdHJpbmddJFRhckV4ZSwgW3N0cmlu
Z10kU3RhZ2UpDQogICAgJHB1YmxpYyA9IFJlYWQtQW5kVmFsaWRhdGVQdWJsaWNNZXRhZGF0YSAt
Q2lwaGVyICRDaXBoZXIgLU1ldGFkYXRhICRNZXRhZGF0YQ0KICAgICRwbGFpblRhciA9IEpvaW4t
UGF0aCAkU3RhZ2UgJ3BhY2thZ2UudGFyJw0KICAgIEludm9rZS1BZ2VQYXNzcGhyYXNlIC1Nb2Rl
IERlY3J5cHQgLUFnZUV4ZSAkQWdlRXhlIC1JbnB1dFBhdGggJENpcGhlciAtT3V0cHV0UGF0aCAk
cGxhaW5UYXINCiAgICBBc3NlcnQtVGFyRW50cmllc1NhZmUgLVRhclBhdGggJHBsYWluVGFyIC1U
YXJFeGUgJFRhckV4ZQ0KICAgICRwYWNrYWdlUm9vdCA9IEpvaW4tUGF0aCAkU3RhZ2UgJ3VucGFj
a2VkJw0KICAgIFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRwYWNrYWdl
Um9vdCkgfCBPdXQtTnVsbA0KICAgICYgJFRhckV4ZSAteGYgJHBsYWluVGFyIC1DICRwYWNrYWdl
Um9vdA0KICAgIGlmICgkTEFTVEVYSVRDT0RFIC1uZSAwKSB7IHRocm93ICfqsoDspp3smqkg7J6E
7IucIO2PtOuNlOyXkCB0YXLrpbwg7ZG464qUIOuNsCDsi6TtjKjtlojsirXri4jri6QuJyB9DQog
ICAgJHZhbGlkYXRlZCA9IEFzc2VydC1FeHRyYWN0ZWRQYWNrYWdlIC1QYWNrYWdlUm9vdCAkcGFj
a2FnZVJvb3QNCiAgICBpZiAoW3N0cmluZ10kdmFsaWRhdGVkLm1hbmlmZXN0LmV4cG9ydElkIC1u
ZSBbc3RyaW5nXSRwdWJsaWMuZXhwb3J0SWQpIHsgdGhyb3cgJ+uCtOu2gCBtYW5pZmVzdOyZgCDq
s7XqsJwg6rKA7Kad7ZGc7J2YIGV4cG9ydElk6rCAIOuLpOumheuLiOuLpC4nIH0NCiAgICByZXR1
cm4gJHZhbGlkYXRlZA0KfQ0KDQpmdW5jdGlvbiBDb3B5LVJlc3RvcmVQYXlsb2FkTm9uRGVzdHJ1
Y3RpdmUgew0KICAgIHBhcmFtKCRWYWxpZGF0ZWQsIFtzdHJpbmddJFRhcmdldCwgW3N0cmluZ10k
UmVzdG9yZUlkKQ0KICAgICR0YXJnZXRJZGVudGl0eSA9IFJlYWQtU291bFN0YXRlIC1Sb290ICRU
YXJnZXQNCiAgICBpZiAoW3N0cmluZ10kdGFyZ2V0SWRlbnRpdHkuc291bElkIC1uZSBbc3RyaW5n
XSRWYWxpZGF0ZWQubWFuaWZlc3Quc291bElkKSB7IHRocm93ICfrjIDsg4Eg7Y+0642U64qUIOuL
pOuluCDsmIHtmLwgSUTsnoXri4jri6QuIOyWtOuKkCDtjIzsnbzrj4Qg7ZWp7LmY7KeAIOyViuyK
teuLiOuLpC4nIH0NCiAgICAkY29uZmxpY3RSb290ID0gSm9pbi1QYXRoICRUYXJnZXQgKCdfYWdl
bnRccmVzdG9yZS1jb25mbGljdHNcJyArICRSZXN0b3JlSWQpDQogICAgJGFkZGVkID0gTmV3LU9i
amVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAkc2FtZSA9
IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAg
JGNvbmZsaWN0cyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtz
dHJpbmddDQogICAgZm9yZWFjaCAoJGVudHJ5IGluIEAoJFZhbGlkYXRlZC5tYW5pZmVzdC5maWxl
cyB8IFNvcnQtT2JqZWN0IHBhdGgpKSB7DQogICAgICAgICRyZWxhdGl2ZVdpbmRvd3MgPSAoW3N0
cmluZ10kZW50cnkucGF0aCkuUmVwbGFjZSgnLycsICdcJykNCiAgICAgICAgJHNvdXJjZSA9IEpv
aW4tUGF0aCAkVmFsaWRhdGVkLnBheWxvYWRSb290ICRyZWxhdGl2ZVdpbmRvd3MNCiAgICAgICAg
JGRlc3RpbmF0aW9uID0gSm9pbi1QYXRoICRUYXJnZXQgJHJlbGF0aXZlV2luZG93cw0KICAgICAg
ICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVyUGF0aCAtQ2FuZGlkYXRlICRkZXN0aW5hdGlvbiAtUGFy
ZW50ICRUYXJnZXQpKSB7IHRocm93ICLrs7Xsm5Ag6rK966Gc6rCAIOuMgOyDgeydhCDrspfslrTr
gqzsirXri4jri6Q6ICQoJGVudHJ5LnBhdGgpIiB9DQogICAgICAgIGlmIChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICRkZXN0aW5hdGlvbiAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAgQXNz
ZXJ0LU5vUmVwYXJzZVdpdGhpbiAtUGF0aCAkZGVzdGluYXRpb24gLUJvdW5kYXJ5ICRUYXJnZXQN
CiAgICAgICAgICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRkZXN0aW5hdGlvbiAt
Rm9yY2UNCiAgICAgICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklP
LkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAi64yA7IOBIO2M
jOydvOydtCDsl7DqsrDsoJDsnbTrnbwg7KSR64uo7ZWp64uI64ukOiAkKCRlbnRyeS5wYXRoKSIg
fQ0KICAgICAgICAgICAgQXNzZXJ0LU5vQWx0ZXJuYXRlRGF0YVN0cmVhbXMgLUZpbGVQYXRoICRk
ZXN0aW5hdGlvbg0KICAgICAgICAgICAgJGRlc3RpbmF0aW9uSGFzaCA9IEdldC1GaWxlU2hhMjU2
ICRkZXN0aW5hdGlvbg0KICAgICAgICAgICAgaWYgKCRkZXN0aW5hdGlvbkhhc2ggLWVxIFtzdHJp
bmddJGVudHJ5LnNoYTI1NikgeyAkc2FtZS5BZGQoW3N0cmluZ10kZW50cnkucGF0aCk7IGNvbnRp
bnVlIH0NCiAgICAgICAgICAgICRjb25mbGljdFBhdGggPSBKb2luLVBhdGggJGNvbmZsaWN0Um9v
dCAoJHJlbGF0aXZlV2luZG93cyArICcuaW5jb21pbmcnKQ0KICAgICAgICAgICAgaWYgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJGNvbmZsaWN0UGF0aCkgeyB0aHJvdyAi67O17JuQIOy2qeuPjCDs
gqzrs7gg6rK966Gc6rCAIOydtOuvuCDsnojsirXri4jri6Q6ICRjb25mbGljdFBhdGgiIH0NCiAg
ICAgICAgICAgIENvcHktRmlsZUNvbnNpc3RlbnRDcmVhdGVOZXcgLVNvdXJjZSAkc291cmNlIC1E
ZXN0aW5hdGlvbiAkY29uZmxpY3RQYXRoIC1TYWZldHlCb3VuZGFyeSAkVGFyZ2V0IHwgT3V0LU51
bGwNCiAgICAgICAgICAgICRjb25mbGljdHMuQWRkKFtzdHJpbmddJGVudHJ5LnBhdGgpDQogICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICB9DQogICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRkZXN0aW5hdGlvbiAtUGF0aFR5cGUgQ29udGFpbmVyKSB7DQogICAgICAgICAgICBB
c3NlcnQtTm9SZXBhcnNlV2l0aGluIC1QYXRoICRkZXN0aW5hdGlvbiAtQm91bmRhcnkgJFRhcmdl
dA0KICAgICAgICAgICAgJGNvbmZsaWN0UGF0aCA9IEpvaW4tUGF0aCAkY29uZmxpY3RSb290ICgk
cmVsYXRpdmVXaW5kb3dzICsgJy5pbmNvbWluZy1maWxlJykNCiAgICAgICAgICAgIENvcHktRmls
ZUNvbnNpc3RlbnRDcmVhdGVOZXcgLVNvdXJjZSAkc291cmNlIC1EZXN0aW5hdGlvbiAkY29uZmxp
Y3RQYXRoIC1TYWZldHlCb3VuZGFyeSAkVGFyZ2V0IHwgT3V0LU51bGwNCiAgICAgICAgICAgICRj
b25mbGljdHMuQWRkKFtzdHJpbmddJGVudHJ5LnBhdGgpDQogICAgICAgICAgICBjb250aW51ZQ0K
ICAgICAgICB9DQogICAgICAgICRwYXJlbnQgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJGRlc3RpbmF0
aW9uDQogICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXJlbnQgLVBhdGhUeXBl
IExlYWYpIHsNCiAgICAgICAgICAgICRjb25mbGljdFBhdGggPSBKb2luLVBhdGggJGNvbmZsaWN0
Um9vdCAoJHJlbGF0aXZlV2luZG93cyArICcuaW5jb21pbmcnKQ0KICAgICAgICAgICAgQ29weS1G
aWxlQ29uc2lzdGVudENyZWF0ZU5ldyAtU291cmNlICRzb3VyY2UgLURlc3RpbmF0aW9uICRjb25m
bGljdFBhdGggLVNhZmV0eUJvdW5kYXJ5ICRUYXJnZXQgfCBPdXQtTnVsbA0KICAgICAgICAgICAg
JGNvbmZsaWN0cy5BZGQoW3N0cmluZ10kZW50cnkucGF0aCkNCiAgICAgICAgICAgIGNvbnRpbnVl
DQogICAgICAgIH0NCiAgICAgICAgQ29weS1GaWxlQ29uc2lzdGVudENyZWF0ZU5ldyAtU291cmNl
ICRzb3VyY2UgLURlc3RpbmF0aW9uICRkZXN0aW5hdGlvbiAtU2FmZXR5Qm91bmRhcnkgJFRhcmdl
dCB8IE91dC1OdWxsDQogICAgICAgICRhZGRlZC5BZGQoW3N0cmluZ10kZW50cnkucGF0aCkNCiAg
ICB9DQogICAgW3BzY3VzdG9tb2JqZWN0XUB7IGFkZGVkID0gJGFkZGVkLlRvQXJyYXkoKTsgaWRl
bnRpY2FsID0gJHNhbWUuVG9BcnJheSgpOyBjb25mbGljdHMgPSAkY29uZmxpY3RzLlRvQXJyYXko
KTsgY29uZmxpY3RSb290ID0gaWYgKCRjb25mbGljdHMuQ291bnQpIHsgJGNvbmZsaWN0Um9vdCB9
IGVsc2UgeyAkbnVsbCB9IH0NCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LVBvcnRhYmxlQnVuZGxlTWFu
aWZlc3Qgew0KICAgIHBhcmFtKFtzdHJpbmddJEJ1bmRsZVJvb3QpDQogICAgJGJ1bmRsZSA9IEdl
dC1GdWxsTGl0ZXJhbFBhdGggJEJ1bmRsZVJvb3QNCiAgICAkbWFuaWZlc3RQYXRoID0gQXNzZXJ0
LVBvcnRhYmxlSW5wdXRGaWxlIC1QYXRoIChKb2luLVBhdGggJGJ1bmRsZSAnbWFuaWZlc3QuanNv
bicpIC1MYWJlbCAn67O17JuQIOustuydjCBtYW5pZmVzdCcNCiAgICAkaGFzaFBhdGggPSBBc3Nl
cnQtUG9ydGFibGVJbnB1dEZpbGUgLVBhdGggKEpvaW4tUGF0aCAkYnVuZGxlICdtYW5pZmVzdC5z
aGEyNTYnKSAtTGFiZWwgJ21hbmlmZXN0IOyngOusuCcNCiAgICAkaGFzaFRleHQgPSBbSU8uRmls
ZV06OlJlYWRBbGxUZXh0KCRoYXNoUGF0aCwgW1RleHQuRW5jb2RpbmddOjpVVEY4KQ0KICAgICRo
YXNoTWF0Y2ggPSBbcmVnZXhdOjpNYXRjaCgkaGFzaFRleHQsICdeKD9pOihbMC05YS1mXXs2NH0p
KSBcKm1hbmlmZXN0XC5qc29uXHI/XG4kJykNCiAgICBpZiAoLW5vdCAkaGFzaE1hdGNoLlN1Y2Nl
c3MpIHsgdGhyb3cgJ21hbmlmZXN0LnNoYTI1NiDtmJXsi53snbQg7Jis67CU66W07KeAIOyViuyK
teuLiOuLpC4nIH0NCiAgICBpZiAoKEdldC1GaWxlU2hhMjU2ICRtYW5pZmVzdFBhdGgpIC1jbmUg
JGhhc2hNYXRjaC5Hcm91cHNbMV0uVmFsdWUuVG9Mb3dlckludmFyaWFudCgpKSB7IHRocm93ICdt
YW5pZmVzdC5qc29uIOyngOusuOydtCBtYW5pZmVzdC5zaGEyNTbqs7wg64uk66aF64uI64ukLicg
fQ0KICAgICRtYW5pZmVzdCA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkbWFuaWZlc3RQYXRo
IC1SYXcgLUVuY29kaW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgaWYgKFtpbnRdJG1h
bmlmZXN0LnNjaGVtYVZlcnNpb24gLW5lIDIgLW9yIFtzdHJpbmddJG1hbmlmZXN0LmZvcm1hdCAt
bmUgJ3NvdWwtcG9ydGFibGUtcmVzdG9yZS1idW5kbGUnKSB7IHRocm93ICfsp4Dsm5DtlZjsp4Ag
7JWK64qUIO2ctOuMgCDrs7Xsm5Ag66y27J2M7J6F64uI64ukLicgfQ0KICAgICRleHBvcnRHdWlk
ID0gW2d1aWRdOjpFbXB0eQ0KICAgICRzb3VsR3VpZCA9IFtndWlkXTo6RW1wdHkNCiAgICBpZiAo
LW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJG1hbmlmZXN0LmV4cG9ydElkLCBbcmVmXSRl
eHBvcnRHdWlkKSAtb3IgLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJG1hbmlmZXN0LnNv
dWxJZCwgW3JlZl0kc291bEd1aWQpKSB7IHRocm93ICdtYW5pZmVzdOydmCBleHBvcnRJZC9zb3Vs
SWTqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICBpZiAoW3N0cmluZ106Oklz
TnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRtYW5pZmVzdC5zb3VsTmFtZSkpIHsgdGhyb3cgJ21h
bmlmZXN07JeQIOyYge2YvCDsnbTrpoTsnbQg7JeG7Iq164uI64ukLicgfQ0KICAgIGlmIChbc3Ry
aW5nXSRtYW5pZmVzdC5hZ2UudmVyc2lvbiAtbmUgJzEuMy4xJykgeyB0aHJvdyAnbWFuaWZlc3Ts
nZggYWdlIOuyhOyghOydtCAxLjMuMeydtCDslYTri5nri4jri6QuJyB9DQogICAgaWYgKFtzdHJp
bmddJG1hbmlmZXN0LmFyY2hpdmUuZm9ybWF0IC1uZSAnc291bC1kYXRhLWFnZS10YXInIC1vciAt
bm90IChbc3RyaW5nXSRtYW5pZmVzdC5hcmNoaXZlLnBhdGgpLkVuZHNXaXRoKCcudGFyLmFnZScs
IFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpIC1vciBbSU8uUGF0aF06Okdl
dEZpbGVOYW1lKFtzdHJpbmddJG1hbmlmZXN0LmFyY2hpdmUucGF0aCkgLWNuZSBbc3RyaW5nXSRt
YW5pZmVzdC5hcmNoaXZlLnBhdGgpIHsNCiAgICAgICAgdGhyb3cgJ21hbmlmZXN07J2YIOyVlO2Y
uCBhcmNoaXZlIO2YleyLnS/tjIzsnbzrqoXsnbQg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4n
DQogICAgfQ0KDQogICAgJHJlY29yZHMgPSBOZXctT2JqZWN0IENvbGxlY3Rpb25zLkdlbmVyaWMu
TGlzdFtvYmplY3RdDQogICAgJHJlY29yZHMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyByb2xlID0g
J2FyY2hpdmUnOyBwYXRoID0gW3N0cmluZ10kbWFuaWZlc3QuYXJjaGl2ZS5wYXRoOyBsZW5ndGgg
PSBbbG9uZ10kbWFuaWZlc3QuYXJjaGl2ZS5sZW5ndGg7IHNoYTI1NiA9IFtzdHJpbmddJG1hbmlm
ZXN0LmFyY2hpdmUuc2hhMjU2IH0pDQogICAgJHJlY29yZHMuQWRkKFtwc2N1c3RvbW9iamVjdF1A
eyByb2xlID0gJ3Jlc3RvcmUtc2NyaXB0JzsgcGF0aCA9IFtzdHJpbmddJG1hbmlmZXN0LnJlc3Rv
cmUuc2NyaXB0LnBhdGg7IGxlbmd0aCA9IFtsb25nXSRtYW5pZmVzdC5yZXN0b3JlLnNjcmlwdC5s
ZW5ndGg7IHNoYTI1NiA9IFtzdHJpbmddJG1hbmlmZXN0LnJlc3RvcmUuc2NyaXB0LnNoYTI1NiB9
KQ0KICAgICRyZWNvcmRzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgcm9sZSA9ICdsYXVuY2hlcic7
IHBhdGggPSBbc3RyaW5nXSRtYW5pZmVzdC5yZXN0b3JlLmxhdW5jaGVyLnBhdGg7IGxlbmd0aCA9
IFtsb25nXSRtYW5pZmVzdC5yZXN0b3JlLmxhdW5jaGVyLmxlbmd0aDsgc2hhMjU2ID0gW3N0cmlu
Z10kbWFuaWZlc3QucmVzdG9yZS5sYXVuY2hlci5zaGEyNTYgfSkNCiAgICBmb3JlYWNoICgkZW50
cnkgaW4gQCgkbWFuaWZlc3QuYWdlLmV4ZWN1dGFibGVzKSkgeyAkcmVjb3Jkcy5BZGQoW3BzY3Vz
dG9tb2JqZWN0XUB7IHJvbGUgPSAnYWdlLWV4ZWN1dGFibGUnOyBwYXRoID0gW3N0cmluZ10kZW50
cnkucGF0aDsgbGVuZ3RoID0gW2xvbmddJGVudHJ5Lmxlbmd0aDsgc2hhMjU2ID0gW3N0cmluZ10k
ZW50cnkuc2hhMjU2IH0pIH0NCiAgICBpZiAoQCgkbWFuaWZlc3QuYWdlLmV4ZWN1dGFibGVzKS5D
b3VudCAtbmUgMykgeyB0aHJvdyAnbWFuaWZlc3Tsl5AgYWdlIOyLpO2WiSDtjIzsnbwgM+qwnOqw
gCDsoJXtmZXtnogg7J6I7Ja07JW8IO2VqeuLiOuLpC4nIH0NCg0KICAgICRyZXF1aXJlZCA9IEAo
DQogICAgICAgIFtzdHJpbmddJG1hbmlmZXN0LmFyY2hpdmUucGF0aCwNCiAgICAgICAgJ+uzteyb
kC5wczEnLA0KICAgICAgICAn67O17JuQ7ZWY6riwLmNtZCcsDQogICAgICAgICd0b29scy9hZ2Uv
YWdlLmV4ZScsDQogICAgICAgICd0b29scy9hZ2UvYWdlLWtleWdlbi5leGUnLA0KICAgICAgICAn
dG9vbHMvYWdlL2FnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4ZScNCiAgICApIHwgU29ydC1PYmplY3QN
CiAgICAkcmVjb3JkTmFtZXMgPSBAKCRyZWNvcmRzIHwgRm9yRWFjaC1PYmplY3QgeyBbc3RyaW5n
XSRfLnBhdGggfSB8IFNvcnQtT2JqZWN0KQ0KICAgIGlmICgoJHJlcXVpcmVkIC1qb2luICJgbiIp
IC1jbmUgKCRyZWNvcmROYW1lcyAtam9pbiAiYG4iKSkgeyB0aHJvdyAnbWFuaWZlc3TsnZgg67O1
7JuQ6riwL2FnZSDtjIzsnbwg66qp66Gd7J20IOqzoOyglSDqtazshLHqs7wg64uk66aF64uI64uk
LicgfQ0KICAgIGlmIChbc3RyaW5nXSRtYW5pZmVzdC5yZXN0b3JlLmxhdW5jaGVyLmVuY29kaW5n
IC1jbmUgJ3V0Zi04LW5vLWJvbS1jcmxmJykgeyB0aHJvdyAn67O17JuQ7ZWY6riwLmNtZCDsnbjs
vZTrlKkg7ZGc7Iuc6rCAIOyYrOuwlOultOyngCDslYrsirXri4jri6QuJyB9DQogICAgJG9mZmlj
aWFsQWdlSGFzaGVzID0gQHsNCiAgICAgICAgJ3Rvb2xzL2FnZS9hZ2UuZXhlJyA9ICc5MGY1Y2Mz
NzI0OWMwNmUwYjMwMmU0NzZhOGE2M2JjZWZlZWNkOTQzN2MxOTJiOGFmMzNlNmZmMmQ2OTU1OGRk
Jw0KICAgICAgICAndG9vbHMvYWdlL2FnZS1rZXlnZW4uZXhlJyA9ICc4YjljMjdlZjJhYjZmMjE1
ZjY4OWJmMWU2MDliZjgyYzhmYWY0YzA0MWYzMjQ1MmZhODAzOTZiM2Y4YzRmNjg3Jw0KICAgICAg
ICAndG9vbHMvYWdlL2FnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4ZScgPSAnMmNjYjRiNzgzNDkwMzIw
MmU5MWYzZGVlYzA4YmZkODJlODY4MjdhZDIyZTExODE1ZjBmYmZkZjlkZjYxY2Q1MCcNCiAgICB9
DQogICAgZm9yZWFjaCAoJGVudHJ5IGluIEAoJG1hbmlmZXN0LmFnZS5leGVjdXRhYmxlcykpIHsN
CiAgICAgICAgJHRvb2xQYXRoS2V5ID0gW3N0cmluZ10kZW50cnkucGF0aA0KICAgICAgICBpZiAo
LW5vdCAkb2ZmaWNpYWxBZ2VIYXNoZXMuQ29udGFpbnNLZXkoJHRvb2xQYXRoS2V5KSAtb3IgW3N0
cmluZ10kZW50cnkuc2hhMjU2IC1jbmUgJG9mZmljaWFsQWdlSGFzaGVzWyR0b29sUGF0aEtleV0p
IHsNCiAgICAgICAgICAgIHRocm93ICJhZ2UgMS4zLjEg7Iuk7ZaJIO2MjOydvOydmCDsp4DrrLjs
nbQg67O17JuQ6riw7JeQIOyeoOq4tCDqs7Xsi50g7KeA66y46rO8IOuLpOumheuLiOuLpDogJHRv
b2xQYXRoS2V5Ig0KICAgICAgICB9DQogICAgfQ0KDQogICAgJHNlZW4gPSBAe30NCiAgICBmb3Jl
YWNoICgkcmVjb3JkIGluICRyZWNvcmRzKSB7DQogICAgICAgIGlmICgtbm90IChUZXN0LVJlbGF0
aXZlQXJjaGl2ZVBhdGggJHJlY29yZC5wYXRoKSkgeyB0aHJvdyAibWFuaWZlc3Tsl5Ag7JyE7ZeY
7ZWcIO2MjOydvCDqsr3roZzqsIAg7J6I7Iq164uI64ukOiAkKCRyZWNvcmQucGF0aCkiIH0NCiAg
ICAgICAgaWYgKCRyZWNvcmQuc2hhMjU2IC1ub3RtYXRjaCAnXlswLTlhLWZdezY0fSQnIC1vciAk
cmVjb3JkLmxlbmd0aCAtbHQgMSkgeyB0aHJvdyAibWFuaWZlc3TsnZgg7YGs6riwL+yngOusuOyd
tCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64ukOiAkKCRyZWNvcmQucGF0aCkiIH0NCiAgICAgICAg
JGtleSA9ICRyZWNvcmQucGF0aC5Ub0xvd2VySW52YXJpYW50KCkNCiAgICAgICAgaWYgKCRzZWVu
LkNvbnRhaW5zS2V5KCRrZXkpKSB7IHRocm93ICJtYW5pZmVzdOyXkCDspJHrs7Ug7YyM7J287J20
IOyeiOyKteuLiOuLpDogJCgkcmVjb3JkLnBhdGgpIiB9DQogICAgICAgICRzZWVuWyRrZXldID0g
JHRydWUNCiAgICAgICAgJGZpbGVQYXRoID0gSm9pbi1QYXRoICRidW5kbGUgJHJlY29yZC5wYXRo
LlJlcGxhY2UoJy8nLCAnXCcpDQogICAgICAgIGlmICgtbm90IChUZXN0LUlzVW5kZXJQYXRoIC1D
YW5kaWRhdGUgJGZpbGVQYXRoIC1QYXJlbnQgJGJ1bmRsZSkgLW9yIC1ub3QgKFRlc3QtUGF0aCAt
TGl0ZXJhbFBhdGggJGZpbGVQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAibWFuaWZlc3Qg
7YyM7J287J20IOustuydjOyXkCDsl4bsirXri4jri6Q6ICQoJHJlY29yZC5wYXRoKSIgfQ0KICAg
ICAgICBBc3NlcnQtTm9SZXBhcnNlV2l0aGluIC1QYXRoICRmaWxlUGF0aCAtQm91bmRhcnkgJGJ1
bmRsZQ0KICAgICAgICBBc3NlcnQtTm9BbHRlcm5hdGVEYXRhU3RyZWFtcyAtRmlsZVBhdGggJGZp
bGVQYXRoDQogICAgICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRmaWxlUGF0aCAt
Rm9yY2UNCiAgICAgICAgaWYgKFtsb25nXSRpdGVtLkxlbmd0aCAtbmUgW2xvbmddJHJlY29yZC5s
ZW5ndGggLW9yIChHZXQtRmlsZVNoYTI1NiAkZmlsZVBhdGgpIC1jbmUgJHJlY29yZC5zaGEyNTYp
IHsgdGhyb3cgIuuzteybkCDrrLbsnYwg7YyM7J287J2YIO2BrOq4sC/sp4DrrLjsnbQg64uk66aF
64uI64ukOiAkKCRyZWNvcmQucGF0aCkiIH0NCiAgICB9DQoNCiAgICAkYWxsb3dlZEZpbGVzID0g
QCgnbWFuaWZlc3QuanNvbicsICdtYW5pZmVzdC5zaGEyNTYnKSArIEAoJHJlY29yZE5hbWVzKQ0K
ICAgICRhbGxvd2VkS2V5cyA9IEB7fQ0KICAgIGZvcmVhY2ggKCRuYW1lIGluICRhbGxvd2VkRmls
ZXMpIHsgJGFsbG93ZWRLZXlzWyRuYW1lLlRvTG93ZXJJbnZhcmlhbnQoKV0gPSAkdHJ1ZSB9DQog
ICAgJHRyZWUgPSBHZXQtTm9Gb2xsb3dUcmVlIC1Sb290ICRidW5kbGUNCiAgICBmb3JlYWNoICgk
ZmlsZSBpbiAkdHJlZS5maWxlcykgew0KICAgICAgICBpZiAoLW5vdCAkYWxsb3dlZEtleXMuQ29u
dGFpbnNLZXkoJGZpbGUucmVsYXRpdmVQYXRoLlRvTG93ZXJJbnZhcmlhbnQoKSkpIHsgdGhyb3cg
Im1hbmlmZXN07JeQIOyXhuuKlCDtjIzsnbzsnbQg67O17JuQIOustuydjOyXkCDsnojsirXri4jr
i6Q6ICQoJGZpbGUucmVsYXRpdmVQYXRoKSIgfQ0KICAgIH0NCg0KICAgIGZvcmVhY2ggKCR0b29s
TmFtZSBpbiBAKCdhZ2UuZXhlJywgJ2FnZS1rZXlnZW4uZXhlJywgJ2FnZS1wbHVnaW4tYmF0Y2hw
YXNzLmV4ZScpKSB7DQogICAgICAgICR0b29sUGF0aCA9IEpvaW4tUGF0aCAkYnVuZGxlICgndG9v
bHNcYWdlXCcgKyAkdG9vbE5hbWUpDQogICAgICAgICR2ZXJzaW9uT3V0cHV0ID0gQCgmICR0b29s
UGF0aCAtLXZlcnNpb24gMj4mMSkgLWpvaW4gJyAnDQogICAgICAgIGlmICgkTEFTVEVYSVRDT0RF
IC1uZSAwIC1vciAkdmVyc2lvbk91dHB1dCAtbm90bWF0Y2ggJyg/PCFbMC05XSkxXC4zXC4xKD8h
WzAtOV0pJykgeyB0aHJvdyAi7KeA66y47J2AIOunnuyngOunjCAkdG9vbE5hbWXsnZgg67KE7KCE
IO2ZleyduOydtCDsi6TtjKjtlojsirXri4jri6QuIiB9DQogICAgfQ0KICAgIFtwc2N1c3RvbW9i
amVjdF1AeyBtYW5pZmVzdCA9ICRtYW5pZmVzdDsgYXJjaGl2ZVBhdGggPSBKb2luLVBhdGggJGJ1
bmRsZSAoW3N0cmluZ10kbWFuaWZlc3QuYXJjaGl2ZS5wYXRoKTsgYWdlUGF0aCA9IEpvaW4tUGF0
aCAkYnVuZGxlICd0b29sc1xhZ2VcYWdlLmV4ZSc7IGJ1bmRsZVJvb3QgPSAkYnVuZGxlIH0NCn0N
Cg0KZnVuY3Rpb24gQXNzZXJ0LVBvcnRhYmxlVGVzdEJvdW5kYXJ5IHsNCiAgICBwYXJhbShbc3Ry
aW5nXSRCb3VuZGFyeSkNCiAgICBpZiAoLW5vdCAkUG9ydGFibGVUZXN0TW9kZSkgeyB0aHJvdyAn
7YWM7Iqk7Yq4IOqyveqzhOuKlCBQb3J0YWJsZVRlc3RNb2Rl7JeQ7ISc66eMIOyTuCDsiJgg7J6I
7Iq164uI64ukLicgfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRCb3Vu
ZGFyeSkpIHsgdGhyb3cgJ1BvcnRhYmxlVGVzdE1vZGXsl5DripQgUG9ydGFibGVUZXN0Qm91bmRh
cnnqsIAg7ZWE7JqU7ZWp64uI64ukLicgfQ0KICAgICRidW5kbGVGdWxsID0gR2V0LUZ1bGxMaXRl
cmFsUGF0aCAkUFNTY3JpcHRSb290DQogICAgJGJvdW5kYXJ5RnVsbCA9IEdldC1GdWxsTGl0ZXJh
bFBhdGggJEJvdW5kYXJ5DQogICAgJGZpeHR1cmVOZWVkbGUgPSAnXF9hZ2VudFxzZXR1cFx0ZXN0
c1xmaXh0dXJlc1wnDQogICAgaWYgKCRidW5kbGVGdWxsLkluZGV4T2YoJGZpeHR1cmVOZWVkbGUs
IFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpIC1sdCAwIC1vciAkYm91bmRh
cnlGdWxsLkluZGV4T2YoJGZpeHR1cmVOZWVkbGUsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5h
bElnbm9yZUNhc2UpIC1sdCAwKSB7DQogICAgICAgIHRocm93ICdQb3J0YWJsZVRlc3RNb2Rl64qU
IF9hZ2VudFxzZXR1cFx0ZXN0c1xmaXh0dXJlcyDslYTrnpjsl5DshJzrp4wg7J6R64+Z7ZWp64uI
64ukLicNCiAgICB9DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGJvdW5k
YXJ5RnVsbCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyB0aHJvdyAn7Zy064yAIOuzteybkCDthYzs
iqTtirgg6rK96rOEIO2PtOuNlOqwgCDsl4bsirXri4jri6QuJyB9DQogICAgQXNzZXJ0LU5vUmVw
YXJzZVdpdGhpbiAtUGF0aCAkYm91bmRhcnlGdWxsIC1Cb3VuZGFyeSAoW0lPLlBhdGhdOjpHZXRQ
YXRoUm9vdCgkYm91bmRhcnlGdWxsKSkNCiAgICByZXR1cm4gJGJvdW5kYXJ5RnVsbA0KfQ0KDQpm
dW5jdGlvbiBBc3NlcnQtUG9ydGFibGVSZXN0b3JlVGFyZ2V0IHsNCiAgICBwYXJhbShbc3RyaW5n
XSRQYXRoLCBbc3RyaW5nXSRFeHBlY3RlZFNvdWxJZCkNCiAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkUGF0aCkpIHsgdGhyb3cgJ+uzteybkO2VoCBDOlxcPOyYge2YvCDsnbTr
poQ+IO2PtOuNlOulvCAtVGFyZ2V0U291bFJvb3TroZwg7KeA7KCV7ZWY7IS47JqULicgfQ0KICAg
ICRmdWxsID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkUGF0aA0KICAgICRkZXNrdG9wQ2FuZGlkYXRl
cyA9IE5ldy1PYmplY3QgQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAkZGVz
a3RvcCA9IFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmlyb25tZW50K1NwZWNpYWxG
b2xkZXJdOjpEZXNrdG9wRGlyZWN0b3J5KQ0KICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051bGxP
cldoaXRlU3BhY2UoJGRlc2t0b3ApKSB7ICRkZXNrdG9wQ2FuZGlkYXRlcy5BZGQoKEdldC1GdWxs
TGl0ZXJhbFBhdGggJGRlc2t0b3ApKSB9DQogICAgZm9yZWFjaCAoJHZhcmlhYmxlTmFtZSBpbiBA
KCdPbmVEcml2ZScsICdPbmVEcml2ZUNvbnN1bWVyJywgJ09uZURyaXZlQ29tbWVyY2lhbCcpKSB7
DQogICAgICAgICR2YWx1ZSA9IFtFbnZpcm9ubWVudF06OkdldEVudmlyb25tZW50VmFyaWFibGUo
JHZhcmlhYmxlTmFtZSkNCiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVT
cGFjZSgkdmFsdWUpKSB7ICRkZXNrdG9wQ2FuZGlkYXRlcy5BZGQoKEdldC1GdWxsTGl0ZXJhbFBh
dGggKEpvaW4tUGF0aCAkdmFsdWUgJ0Rlc2t0b3AnKSkpIH0NCiAgICB9DQogICAgZm9yZWFjaCAo
JGRlc2t0b3BQYXRoIGluICRkZXNrdG9wQ2FuZGlkYXRlcykgew0KICAgICAgICBpZiAoVGVzdC1J
c1VuZGVyUGF0aCAtQ2FuZGlkYXRlICRmdWxsIC1QYXJlbnQgJGRlc2t0b3BQYXRoKSB7IHRocm93
ICfrsJTtg5XtmZTrqbTqs7wgT25lRHJpdmUg67CU7YOV7ZmU66m07JeQ64qUIOyYge2YvOydhCDr
s7Xsm5DtlZjsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgIH0NCiAgICBpZiAoW0lPLlBhdGhdOjpH
ZXRGaWxlTmFtZSgkZnVsbCkgLW1hdGNoICdeKD9pOkRlc2t0b3B8V2luZG93c3xQcm9ncmFtIEZp
bGVzfFByb2dyYW0gRmlsZXMgXCh4ODZcKXxQcm9ncmFtRGF0YXxVc2Vyc3xQZXJmTG9nc3xSZWNv
dmVyeXxTeXN0ZW0gVm9sdW1lIEluZm9ybWF0aW9uKSQnKSB7IHRocm93ICfsi5zsiqTthZwv67CU
7YOV7ZmU66m0IO2PtOuNlOuKlCDrs7Xsm5Ag64yA7IOB7Jy866GcIOyTsOyngCDslYrsirXri4jr
i6QuJyB9DQoNCiAgICBpZiAoJFBvcnRhYmxlVGVzdE1vZGUpIHsNCiAgICAgICAgJGJvdW5kYXJ5
ID0gQXNzZXJ0LVBvcnRhYmxlVGVzdEJvdW5kYXJ5IC1Cb3VuZGFyeSAkUG9ydGFibGVUZXN0Qm91
bmRhcnkNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXNVbmRlclBhdGggLUNhbmRpZGF0ZSAkZnVs
bCAtUGFyZW50ICRib3VuZGFyeSkgLW9yICRmdWxsLkVxdWFscygkYm91bmRhcnksIFtTdHJpbmdD
b21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7IHRocm93ICfthYzsiqTtirgg67O17JuQ
IOuMgOyDgeydtCDsnbztmozsmqkgZml4dHVyZSDqsr3qs4Trpbwg67KX7Ja064Ks7Iq164uI64uk
LicgfQ0KICAgICAgICAkc2FmZXR5Qm91bmRhcnkgPSAkYm91bmRhcnkNCiAgICB9DQogICAgZWxz
ZSB7DQogICAgICAgICRyb290ID0gW0lPLlBhdGhdOjpHZXRQYXRoUm9vdCgkZnVsbCkNCiAgICAg
ICAgaWYgKC1ub3QgJHJvb3QuRXF1YWxzKCdDOlwnLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGlu
YWxJZ25vcmVDYXNlKSAtb3IgLW5vdCAoU3BsaXQtUGF0aCAtUGFyZW50ICRmdWxsKS5FcXVhbHMo
J0M6XCcsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7DQogICAgICAg
ICAgICB0aHJvdyAn67O17JuQIOuMgOyDgeydgCBDOlxcIOuwlOuhnCDslYTrnpjsnZgg7Y+0642U
IO2VmOuCmOyXrOyVvCDtlanri4jri6QuJw0KICAgICAgICB9DQogICAgICAgICRkcml2ZSA9IEdl
dC1Ecml2ZUZvclBhdGggJGZ1bGwNCiAgICAgICAgaWYgKC1ub3QgJGRyaXZlLklzUmVhZHkgLW9y
ICRkcml2ZS5Ecml2ZVR5cGUgLW5lIFtJTy5Ecml2ZVR5cGVdOjpGaXhlZCAtb3IgJGRyaXZlLkRy
aXZlRm9ybWF0IC1uZSAnTlRGUycpIHsgdGhyb3cgJ+uzteybkCDrjIDsg4HsnYAg7KSA67mE65Cc
IOqzoOyglSBOVEZTIEM6IOuTnOudvOydtOu4jOyXrOyVvCDtlanri4jri6QuJyB9DQogICAgICAg
ICRzYWZldHlCb3VuZGFyeSA9ICdDOlwnDQogICAgfQ0KICAgICRwYXJlbnQgPSBTcGxpdC1QYXRo
IC1QYXJlbnQgJGZ1bGwNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGFy
ZW50IC1QYXRoVHlwZSBDb250YWluZXIpKSB7IHRocm93ICfrs7Xsm5Ag64yA7IOB7J2YIOu2gOuq
qCDtj7TrjZTqsIAg7JeG7Iq164uI64ukLicgfQ0KICAgIEFzc2VydC1Ob1JlcGFyc2VXaXRoaW4g
LVBhdGggJHBhcmVudCAtQm91bmRhcnkgJHNhZmV0eUJvdW5kYXJ5DQogICAgaWYgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGZ1bGwpIHsNCiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJh
bFBhdGggJGZ1bGwgLUZvcmNlDQogICAgICAgIGlmICgtbm90ICRpdGVtLlBTSXNDb250YWluZXIp
IHsgdGhyb3cgJ+uzteybkCDrjIDsg4Eg6rK966Gc7JeQIO2MjOydvOydtCDsnojsirXri4jri6Qu
JyB9DQogICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0
ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICfrs7Xsm5Ag64yA7IOB7J20IOyXsOqy
sOygkOydtOudvCDsk7Dsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICAgICBBc3NlcnQtTm9SZXBh
cnNlV2l0aGluIC1QYXRoICRmdWxsIC1Cb3VuZGFyeSAkc2FmZXR5Qm91bmRhcnkNCiAgICAgICAg
JGhhc0NvbnRlbnQgPSAkbnVsbCAtbmUgKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRmdWxs
IC1Gb3JjZSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDEpDQogICAgICAgIGlmICgkaGFzQ29udGVu
dCkgew0KICAgICAgICAgICAgJHN0YXRlUGF0aCA9IEpvaW4tUGF0aCAkZnVsbCAnc291bC1zdGF0
ZS5qc29uJw0KICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHN0
YXRlUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ+u5hOyWtCDsnojsp4Ag7JWK7J2AIOuv
uOyLneuzhCDtj7TrjZTripQg642u7Ja07JOw6rGw64KYIO2Vqey5mOyngCDslYrsirXri4jri6Qu
JyB9DQogICAgICAgICAgICAkaWRlbnRpdHkgPSBSZWFkLVNvdWxTdGF0ZSAtUm9vdCAkZnVsbA0K
ICAgICAgICAgICAgaWYgKFtzdHJpbmddJGlkZW50aXR5LnNvdWxJZCAtbmUgJEV4cGVjdGVkU291
bElkKSB7IHRocm93ICfruYTslrQg7J6I7KeAIOyViuydgCDrjIDsg4HsnYAg64uk66W4IOyYge2Y
vCBJROyeheuLiOuLpC4g7J6Q64+ZIOuzke2Vqe2VmOyngCDslYrsirXri4jri6QuJyB9DQogICAg
ICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IHBhdGggPSAkZnVsbDsgbW9kZSA9ICd0
cnVzdGVkLWV4aXN0aW5nJzsgc2FmZXR5Qm91bmRhcnkgPSAkc2FmZXR5Qm91bmRhcnkgfQ0KICAg
ICAgICB9DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9ICRmdWxsOyBt
b2RlID0gJ2VtcHR5LWV4aXN0aW5nJzsgc2FmZXR5Qm91bmRhcnkgPSAkc2FmZXR5Qm91bmRhcnkg
fQ0KICAgIH0NCiAgICBbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9ICRmdWxsOyBtb2RlID0gJ25l
dyc7IHNhZmV0eUJvdW5kYXJ5ID0gJHNhZmV0eUJvdW5kYXJ5IH0NCn0NCg0KZnVuY3Rpb24gQ29w
eS1Qb3J0YWJsZVRyZWVUb0VtcHR5VGFyZ2V0IHsNCiAgICBwYXJhbSgkVmFsaWRhdGVkLCBbc3Ry
aW5nXSRUYXJnZXQpDQogICAgZm9yZWFjaCAoJGRpcmVjdG9yeSBpbiBAKCRWYWxpZGF0ZWQucGFj
a2FnZVRyZWUuZGlyZWN0b3JpZXMgfCBTb3J0LU9iamVjdCB7ICRfLnJlbGF0aXZlUGF0aC5MZW5n
dGggfSkpIHsNCiAgICAgICAgRW5zdXJlLVNhZmVEaXJlY3RvcnlQYXRoIC1EaXJlY3RvcnkgKEpv
aW4tUGF0aCAkVGFyZ2V0ICRkaXJlY3RvcnkucmVsYXRpdmVQYXRoLlJlcGxhY2UoJy8nLCAnXCcp
KSAtQm91bmRhcnkgJFRhcmdldA0KICAgIH0NCiAgICBmb3JlYWNoICgkZW50cnkgaW4gQCgkVmFs
aWRhdGVkLm1hbmlmZXN0LmZpbGVzIHwgU29ydC1PYmplY3QgcGF0aCkpIHsNCiAgICAgICAgJHJl
bGF0aXZlID0gKFtzdHJpbmddJGVudHJ5LnBhdGgpLlJlcGxhY2UoJy8nLCAnXCcpDQogICAgICAg
IENvcHktRmlsZUNvbnNpc3RlbnRDcmVhdGVOZXcgLVNvdXJjZSAoSm9pbi1QYXRoICRWYWxpZGF0
ZWQucGF5bG9hZFJvb3QgJHJlbGF0aXZlKSAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkVGFyZ2V0
ICRyZWxhdGl2ZSkgLVNhZmV0eUJvdW5kYXJ5ICRUYXJnZXQgfCBPdXQtTnVsbA0KICAgIH0NCn0N
Cg0KZnVuY3Rpb24gTWVyZ2UtUG9ydGFibGVQYXlsb2FkUHJlc2VydmluZ0V4aXN0aW5nIHsNCiAg
ICBwYXJhbSgkVmFsaWRhdGVkLCBbc3RyaW5nXSRUYXJnZXQsIFtzdHJpbmddJFJlc3RvcmVJZCkN
CiAgICAkY29uZmxpY3RSb290ID0gSm9pbi1QYXRoICRUYXJnZXQgKCdfYWdlbnRccmVzdG9yZS1j
b25mbGljdHNcJyArICRSZXN0b3JlSWQpDQogICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
JGNvbmZsaWN0Um9vdCkgeyB0aHJvdyAn7J2067KIIOuzteybkOydmCDstqnrj4wg67O07KG0IO2P
tOuNlOqwgCDsnbTrr7gg7J6I7Ja0IOykkeuLqO2VqeuLiOuLpC4nIH0NCiAgICAkYWN0aW9ucyA9
IE5ldy1PYmplY3QgQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICBmb3JlYWNo
ICgkZW50cnkgaW4gQCgkVmFsaWRhdGVkLm1hbmlmZXN0LmZpbGVzIHwgU29ydC1PYmplY3QgcGF0
aCkpIHsNCiAgICAgICAgJHJlbGF0aXZlID0gKFtzdHJpbmddJGVudHJ5LnBhdGgpLlJlcGxhY2Uo
Jy8nLCAnXCcpDQogICAgICAgICRzb3VyY2UgPSBKb2luLVBhdGggJFZhbGlkYXRlZC5wYXlsb2Fk
Um9vdCAkcmVsYXRpdmUNCiAgICAgICAgJGRlc3RpbmF0aW9uID0gSm9pbi1QYXRoICRUYXJnZXQg
JHJlbGF0aXZlDQogICAgICAgIGlmICgtbm90IChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUg
JGRlc3RpbmF0aW9uIC1QYXJlbnQgJFRhcmdldCkpIHsgdGhyb3cgJ+uzteybkCDtjIzsnbwg6rK9
66Gc6rCAIOuMgOyDgeydhCDrspfslrTrgqzsirXri4jri6QuJyB9DQogICAgICAgICRjdXJzb3Ig
PSBTcGxpdC1QYXRoIC1QYXJlbnQgJGRlc3RpbmF0aW9uDQogICAgICAgIHdoaWxlICgtbm90ICRj
dXJzb3IuRXF1YWxzKCRUYXJnZXQsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNh
c2UpKSB7DQogICAgICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY3Vyc29yIC1Q
YXRoVHlwZSBMZWFmKSB7IHRocm93ICLrs7Xsm5Ag6rK966GcIOykkeqwhOyXkCDtjIzsnbzsnbQg
7J6I7Ja0IOyWtOuKkCDsqr3rj4Qg67CU6r647KeAIOyViuqzoCDspJHri6jtlanri4jri6Q6ICRy
ZWxhdGl2ZSIgfQ0KICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGN1cnNv
ciAtUGF0aFR5cGUgQ29udGFpbmVyKSB7DQogICAgICAgICAgICAgICAgJGN1cnNvckl0ZW0gPSBH
ZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGN1cnNvciAtRm9yY2UNCiAgICAgICAgICAgICAgICBpZiAo
KCRjdXJzb3JJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJz
ZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAi67O17JuQIOqyveuhnOyXkCDsl7DqsrDsoJDsnbQg7J6I
7Ja0IOykkeuLqO2VqeuLiOuLpDogJGN1cnNvciIgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgJG5leHQgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJGN1cnNvcg0KICAgICAgICAgICAgaWYgKCRu
ZXh0IC1lcSAkY3Vyc29yKSB7IHRocm93ICfrs7Xsm5Ag6rK966GcIOyDgeychCDqsr3qs4Trpbwg
7ZmV7J247ZWY7KeAIOuqu+2WiOyKteuLiOuLpC4nIH0NCiAgICAgICAgICAgICRjdXJzb3IgPSAk
bmV4dA0KICAgICAgICB9DQogICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRkZXN0
aW5hdGlvbiAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAgQXNzZXJ0LU5vUmVwYXJzZVdp
dGhpbiAtUGF0aCAkZGVzdGluYXRpb24gLUJvdW5kYXJ5ICRUYXJnZXQNCiAgICAgICAgICAgIEFz
c2VydC1Ob0FsdGVybmF0ZURhdGFTdHJlYW1zIC1GaWxlUGF0aCAkZGVzdGluYXRpb24NCiAgICAg
ICAgICAgICRleGlzdGluZ0hhc2ggPSBHZXQtRmlsZVNoYTI1NiAkZGVzdGluYXRpb24NCiAgICAg
ICAgICAgIGlmICgkZXhpc3RpbmdIYXNoIC1lcSBbc3RyaW5nXSRlbnRyeS5zaGEyNTYpIHsgJGFj
dGlvbnMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBraW5kID0gJ2lkZW50aWNhbCc7IHBhdGggPSBb
c3RyaW5nXSRlbnRyeS5wYXRoIH0pOyBjb250aW51ZSB9DQogICAgICAgICAgICAkYWN0aW9ucy5B
ZGQoW3BzY3VzdG9tb2JqZWN0XUB7IGtpbmQgPSAnZmlsZS1jb25mbGljdCc7IHBhdGggPSBbc3Ry
aW5nXSRlbnRyeS5wYXRoOyBzb3VyY2UgPSAkc291cmNlOyBkZXN0aW5hdGlvbiA9ICRkZXN0aW5h
dGlvbjsgZXhpc3RpbmdTaGEyNTYgPSAkZXhpc3RpbmdIYXNoOyBpbmNvbWluZ1NoYTI1NiA9IFtz
dHJpbmddJGVudHJ5LnNoYTI1NiB9KQ0KICAgICAgICB9DQogICAgICAgIGVsc2VpZiAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkZGVzdGluYXRpb24gLVBhdGhUeXBlIENvbnRhaW5lcikgew0KICAg
ICAgICAgICAgJGRlc3RJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRkZXN0aW5hdGlvbiAt
Rm9yY2UNCiAgICAgICAgICAgIGlmICgoJGRlc3RJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZp
bGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAi67O17JuQIO2MjOyd
vCDsnpDrpqzsnZgg6riw7KG0IO2PtOuNlOqwgCDsl7DqsrDsoJDsnoXri4jri6Q6ICRyZWxhdGl2
ZSIgfQ0KICAgICAgICAgICAgJGFjdGlvbnMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBraW5kID0g
J2RpcmVjdG9yeS1jb25mbGljdCc7IHBhdGggPSBbc3RyaW5nXSRlbnRyeS5wYXRoOyBzb3VyY2Ug
PSAkc291cmNlOyBpbmNvbWluZ1NoYTI1NiA9IFtzdHJpbmddJGVudHJ5LnNoYTI1NiB9KQ0KICAg
ICAgICB9DQogICAgICAgIGVsc2UgeyAkYWN0aW9ucy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IGtp
bmQgPSAnYWRkJzsgcGF0aCA9IFtzdHJpbmddJGVudHJ5LnBhdGg7IHNvdXJjZSA9ICRzb3VyY2U7
IGRlc3RpbmF0aW9uID0gJGRlc3RpbmF0aW9uIH0pIH0NCiAgICB9DQoNCiAgICAkYWRkZWQgPSBO
ZXctT2JqZWN0IENvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgJGlkZW50aWNh
bCA9IE5ldy1PYmplY3QgQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAkY29u
ZmxpY3RzID0gTmV3LU9iamVjdCBDb2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAg
IGZvcmVhY2ggKCRhY3Rpb24gaW4gJGFjdGlvbnMpIHsNCiAgICAgICAgc3dpdGNoICgkYWN0aW9u
LmtpbmQpIHsNCiAgICAgICAgICAgICdpZGVudGljYWwnIHsgJGlkZW50aWNhbC5BZGQoW3N0cmlu
Z10kYWN0aW9uLnBhdGgpIH0NCiAgICAgICAgICAgICdhZGQnIHsNCiAgICAgICAgICAgICAgICBD
b3B5LUZpbGVDb25zaXN0ZW50Q3JlYXRlTmV3IC1Tb3VyY2UgJGFjdGlvbi5zb3VyY2UgLURlc3Rp
bmF0aW9uICRhY3Rpb24uZGVzdGluYXRpb24gLVNhZmV0eUJvdW5kYXJ5ICRUYXJnZXQgfCBPdXQt
TnVsbA0KICAgICAgICAgICAgICAgICRhZGRlZC5BZGQoW3N0cmluZ10kYWN0aW9uLnBhdGgpDQog
ICAgICAgICAgICB9DQogICAgICAgICAgICAnZmlsZS1jb25mbGljdCcgew0KICAgICAgICAgICAg
ICAgICRiYXNlID0gSm9pbi1QYXRoICRjb25mbGljdFJvb3QgKFtzdHJpbmddJGFjdGlvbi5wYXRo
KS5SZXBsYWNlKCcvJywgJ1wnKQ0KICAgICAgICAgICAgICAgIENvcHktRmlsZUNvbnNpc3RlbnRD
cmVhdGVOZXcgLVNvdXJjZSAkYWN0aW9uLmRlc3RpbmF0aW9uIC1EZXN0aW5hdGlvbiAoJGJhc2Ug
KyAnLmV4aXN0aW5nJykgLVNhZmV0eUJvdW5kYXJ5ICRUYXJnZXQgfCBPdXQtTnVsbA0KICAgICAg
ICAgICAgICAgIENvcHktRmlsZUNvbnNpc3RlbnRDcmVhdGVOZXcgLVNvdXJjZSAkYWN0aW9uLnNv
dXJjZSAtRGVzdGluYXRpb24gKCRiYXNlICsgJy5pbmNvbWluZycpIC1TYWZldHlCb3VuZGFyeSAk
VGFyZ2V0IHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAkY29uZmxpY3RzLkFkZChbcHNjdXN0
b21vYmplY3RdQHsgcGF0aCA9IFtzdHJpbmddJGFjdGlvbi5wYXRoOyBraW5kID0gJ2RpZmZlcmVu
dC1maWxlcyc7IGV4aXN0aW5nU2hhMjU2ID0gW3N0cmluZ10kYWN0aW9uLmV4aXN0aW5nU2hhMjU2
OyBpbmNvbWluZ1NoYTI1NiA9IFtzdHJpbmddJGFjdGlvbi5pbmNvbWluZ1NoYTI1NiB9KQ0KICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgJ2RpcmVjdG9yeS1jb25mbGljdCcgew0KICAgICAgICAg
ICAgICAgICRpbmNvbWluZyA9IEpvaW4tUGF0aCAkY29uZmxpY3RSb290ICgoW3N0cmluZ10kYWN0
aW9uLnBhdGgpLlJlcGxhY2UoJy8nLCAnXCcpICsgJy5pbmNvbWluZy1maWxlJykNCiAgICAgICAg
ICAgICAgICBDb3B5LUZpbGVDb25zaXN0ZW50Q3JlYXRlTmV3IC1Tb3VyY2UgJGFjdGlvbi5zb3Vy
Y2UgLURlc3RpbmF0aW9uICRpbmNvbWluZyAtU2FmZXR5Qm91bmRhcnkgJFRhcmdldCB8IE91dC1O
dWxsDQogICAgICAgICAgICAgICAgJGNvbmZsaWN0cy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IHBh
dGggPSBbc3RyaW5nXSRhY3Rpb24ucGF0aDsga2luZCA9ICdleGlzdGluZy1kaXJlY3RvcnktdmVy
c3VzLWluY29taW5nLWZpbGUnOyBpbmNvbWluZ1NoYTI1NiA9IFtzdHJpbmddJGFjdGlvbi5pbmNv
bWluZ1NoYTI1NiB9KQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIFtwc2N1
c3RvbW9iamVjdF1AeyBhZGRlZCA9ICRhZGRlZC5Ub0FycmF5KCk7IGlkZW50aWNhbCA9ICRpZGVu
dGljYWwuVG9BcnJheSgpOyBjb25mbGljdHMgPSAkY29uZmxpY3RzLlRvQXJyYXkoKTsgY29uZmxp
Y3RSb290ID0gaWYgKCRjb25mbGljdHMuQ291bnQpIHsgJGNvbmZsaWN0Um9vdCB9IGVsc2UgeyAk
bnVsbCB9IH0NCn0NCg0KZnVuY3Rpb24gSW52b2tlLVBvcnRhYmxlQnVuZGxlUmVzdG9yZSB7DQog
ICAgcGFyYW0oW3N3aXRjaF0kVmVyaWZ5T25seSkNCiAgICAkYnVuZGxlID0gQXNzZXJ0LVBvcnRh
YmxlQnVuZGxlTWFuaWZlc3QgLUJ1bmRsZVJvb3QgJFBTU2NyaXB0Um9vdA0KICAgICR0YXJnZXRJ
bmZvID0gJG51bGwNCiAgICBpZiAoLW5vdCAkVmVyaWZ5T25seSkgew0KICAgICAgICBpZiAoW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGFyZ2V0U291bFJvb3QpKSB7DQogICAgICAgICAg
ICAkc3VnZ2VzdGVkTmFtZSA9IChbc3RyaW5nXSRidW5kbGUubWFuaWZlc3Quc291bE5hbWUgLXJl
cGxhY2UgJ1teMC05QS1aYS166rCALe2eoy5fLV0nLCAnXycpDQogICAgICAgICAgICAkc3VnZ2Vz
dGVkID0gJ0M6XCcgKyAkc3VnZ2VzdGVkTmFtZQ0KICAgICAgICAgICAgJGVudGVyZWQgPSBSZWFk
LUhvc3QgIuuzteybkO2VoCDtj7TrjZTrpbwg7J6F66Cl7ZWY7IS47JqUICjqt7jrjIDroZwgRW50
ZXLrpbwg64iE66W066m0ICRzdWdnZXN0ZWQpIg0KICAgICAgICAgICAgJHNjcmlwdDpUYXJnZXRT
b3VsUm9vdCA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRlbnRlcmVkKSkgeyAk
c3VnZ2VzdGVkIH0gZWxzZSB7ICRlbnRlcmVkIH0NCiAgICAgICAgfQ0KICAgICAgICAkdGFyZ2V0
SW5mbyA9IEFzc2VydC1Qb3J0YWJsZVJlc3RvcmVUYXJnZXQgLVBhdGggJFRhcmdldFNvdWxSb290
IC1FeHBlY3RlZFNvdWxJZCAoW3N0cmluZ10kYnVuZGxlLm1hbmlmZXN0LnNvdWxJZCkNCiAgICAg
ICAgJHN0YWdlUGFyZW50ID0gU3BsaXQtUGF0aCAtUGFyZW50ICR0YXJnZXRJbmZvLnBhdGgNCiAg
ICB9DQogICAgZWxzZWlmICgkUG9ydGFibGVUZXN0TW9kZSkgew0KICAgICAgICAkc3RhZ2VQYXJl
bnQgPSBBc3NlcnQtUG9ydGFibGVUZXN0Qm91bmRhcnkgLUJvdW5kYXJ5ICRQb3J0YWJsZVRlc3RC
b3VuZGFyeQ0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgJGxvY2FsID0gW0Vudmlyb25tZW50
XTo6R2V0Rm9sZGVyUGF0aChbRW52aXJvbm1lbnQrU3BlY2lhbEZvbGRlcl06OkxvY2FsQXBwbGlj
YXRpb25EYXRhKQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkbG9j
YWwpKSB7IHRocm93ICfqsoDspp3smqkg66Gc7LusIOyehOyLnCDtj7TrjZTrpbwg7LC+7KeAIOuq
u+2WiOyKteuLiOuLpC4nIH0NCiAgICAgICAgJHN0YWdlUGFyZW50ID0gR2V0LUZ1bGxMaXRlcmFs
UGF0aCAoSm9pbi1QYXRoICRsb2NhbCAnU291bFBvcnRhYmxlUmVzdG9yZScpDQogICAgICAgIGlm
ICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzdGFnZVBhcmVudCkpIHsgW0lPLkRpcmVj
dG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkc3RhZ2VQYXJlbnQpIHwgT3V0LU51bGwgfQ0KICAgICAg
ICAkZHJpdmUgPSBHZXQtRHJpdmVGb3JQYXRoICRzdGFnZVBhcmVudA0KICAgICAgICBpZiAoLW5v
dCAkZHJpdmUuSXNSZWFkeSAtb3IgJGRyaXZlLkRyaXZlVHlwZSAtbmUgW0lPLkRyaXZlVHlwZV06
OkZpeGVkKSB7IHRocm93ICfqsoDspp3smqkg7J6E7IucIO2PtOuNlOqwgCDqs6DsoJUg65SU7Iqk
7YGs6rCAIOyVhOuLmeuLiOuLpC4nIH0NCiAgICAgICAgQXNzZXJ0LU5vUmVwYXJzZVdpdGhpbiAt
UGF0aCAkc3RhZ2VQYXJlbnQgLUJvdW5kYXJ5IChbSU8uUGF0aF06OkdldFBhdGhSb290KCRzdGFn
ZVBhcmVudCkpDQogICAgfQ0KICAgICRyZXN0b3JlSWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0
cmluZygpDQogICAgJHN0YWdlID0gTmV3LU93bmVkU3RhZ2luZ0RpcmVjdG9yeSAtUGFyZW50ICRz
dGFnZVBhcmVudCAtT3BlcmF0aW9uSWQgKCcuc291bC1yZXN0b3JlLScgKyAkcmVzdG9yZUlkKSAt
S2luZCAkKGlmICgkVmVyaWZ5T25seSkgeyAncG9ydGFibGUtdmVyaWZ5JyB9IGVsc2UgeyAncG9y
dGFibGUtcmVzdG9yZScgfSkNCiAgICB0cnkgew0KICAgICAgICAkcGxhaW5UYXIgPSBKb2luLVBh
dGggJHN0YWdlICdwYWNrYWdlLnRhcicNCiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkUG9ydGFibGVJZGVudGl0eVBhdGgpKSB7DQogICAgICAgICAgICBpZiAo
LW5vdCAkUG9ydGFibGVUZXN0TW9kZSkgeyB0aHJvdyAnUG9ydGFibGVJZGVudGl0eVBhdGjripQg
7J287ZqM7JqpIO2FjOyKpO2KuOyXkOyEnOunjCDtl4jsmqntlanri4jri6QuJyB9DQogICAgICAg
ICAgICAkdGVzdEJvdW5kYXJ5ID0gQXNzZXJ0LVBvcnRhYmxlVGVzdEJvdW5kYXJ5IC1Cb3VuZGFy
eSAkUG9ydGFibGVUZXN0Qm91bmRhcnkNCiAgICAgICAgICAgICRpZGVudGl0eVBhdGggPSBBc3Nl
cnQtUG9ydGFibGVJbnB1dEZpbGUgLVBhdGggJFBvcnRhYmxlSWRlbnRpdHlQYXRoIC1MYWJlbCAn
7YWM7Iqk7Yq4IGFnZSBpZGVudGl0eScNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzVW5k
ZXJQYXRoIC1DYW5kaWRhdGUgJGlkZW50aXR5UGF0aCAtUGFyZW50ICR0ZXN0Qm91bmRhcnkpKSB7
IHRocm93ICfthYzsiqTtirggaWRlbnRpdHnqsIAgZml4dHVyZSDqsr3qs4Trpbwg67KX7Ja064Ks
7Iq164uI64ukLicgfQ0KICAgICAgICAgICAgJiAkYnVuZGxlLmFnZVBhdGggLS1kZWNyeXB0IC0t
aWRlbnRpdHkgJGlkZW50aXR5UGF0aCAtLW91dHB1dCAkcGxhaW5UYXIgJGJ1bmRsZS5hcmNoaXZl
UGF0aA0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgV3JpdGUtSG9zdCAn
67O16rWsIOyVlO2YuOuKlCDsp4DquIggYWdl7J2YIOuztOyViCDsnoXroKXssL3sl5Drp4wg7J6F
66Cl7ZWY7IS47JqULicNCiAgICAgICAgICAgICYgJGJ1bmRsZS5hZ2VQYXRoIC0tZGVjcnlwdCAt
LW91dHB1dCAkcGxhaW5UYXIgJGJ1bmRsZS5hcmNoaXZlUGF0aA0KICAgICAgICB9DQogICAgICAg
IGlmICgkTEFTVEVYSVRDT0RFIC1uZSAwIC1vciAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRwbGFpblRhciAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ2FnZSDrs7XtmLjtmZTqsIAg7Iuk
7Yyo7ZaI7Iq164uI64ukLiDquLDsobQg7J6Q66OM64qUIOuwlOuAkCDqsoPsnbQg7JeG7Iq164uI
64ukLicgfQ0KICAgICAgICAkdGFyID0gR2V0LVN5c3RlbVRhcg0KICAgICAgICBBc3NlcnQtVGFy
RW50cmllc1NhZmUgLVRhclBhdGggJHBsYWluVGFyIC1UYXJFeGUgJHRhcg0KICAgICAgICAkcGFj
a2FnZVJvb3QgPSBKb2luLVBhdGggJHN0YWdlICd1bnBhY2tlZCcNCiAgICAgICAgW0lPLkRpcmVj
dG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkcGFja2FnZVJvb3QpIHwgT3V0LU51bGwNCiAgICAgICAg
JiAkdGFyIC14ZiAkcGxhaW5UYXIgLUMgJHBhY2thZ2VSb290DQogICAgICAgIGlmICgkTEFTVEVY
SVRDT0RFIC1uZSAwKSB7IHRocm93ICfqsoDspp3rkJwg7J6E7IucIO2PtOuNlOyXkCB0YXLrpbwg
7ZG464qUIOuNsCDsi6TtjKjtlojsirXri4jri6QuJyB9DQogICAgICAgICR2YWxpZGF0ZWQgPSBB
c3NlcnQtRXh0cmFjdGVkUGFja2FnZSAtUGFja2FnZVJvb3QgJHBhY2thZ2VSb290DQogICAgICAg
IGlmIChbc3RyaW5nXSR2YWxpZGF0ZWQubWFuaWZlc3QuZXhwb3J0SWQgLW5lIFtzdHJpbmddJGJ1
bmRsZS5tYW5pZmVzdC5leHBvcnRJZCAtb3IgW3N0cmluZ10kdmFsaWRhdGVkLm1hbmlmZXN0LnNv
dWxJZCAtbmUgW3N0cmluZ10kYnVuZGxlLm1hbmlmZXN0LnNvdWxJZCkgeyB0aHJvdyAn64K067aA
IG1hbmlmZXN07JmAIOqzteqwnCBtYW5pZmVzdOydmCBleHBvcnRJZC9zb3VsSWTqsIAg64uk66aF
64uI64ukLicgfQ0KICAgICAgICBpZiAoJFZlcmlmeU9ubHkpIHsgcmV0dXJuIFtwc2N1c3RvbW9i
amVjdF1AeyBzdGF0dXMgPSAndmVyaWZpZWQnOyBleHBvcnRJZCA9IFtzdHJpbmddJGJ1bmRsZS5t
YW5pZmVzdC5leHBvcnRJZDsgc291bElkID0gW3N0cmluZ10kYnVuZGxlLm1hbmlmZXN0LnNvdWxJ
ZDsgZmlsZUNvdW50ID0gQCgkdmFsaWRhdGVkLm1hbmlmZXN0LmZpbGVzKS5Db3VudCB9IH0NCg0K
ICAgICAgICAkcGF5bG9hZElkZW50aXR5ID0gUmVhZC1Tb3VsU3RhdGUgLVJvb3QgJHZhbGlkYXRl
ZC5wYXlsb2FkUm9vdA0KICAgICAgICBpZiAoW3N0cmluZ10kcGF5bG9hZElkZW50aXR5LnNvdWxJ
ZCAtbmUgW3N0cmluZ10kYnVuZGxlLm1hbmlmZXN0LnNvdWxJZCkgeyB0aHJvdyAncGF5bG9hZOyd
mCBzb3VsLXN0YXRlLmpzb27qs7wg6rO16rCcIG1hbmlmZXN07J2YIOyYge2YvCBJROqwgCDri6Tr
poXri4jri6QuJyB9DQogICAgICAgICRyZXBvcnROYW1lID0gJ3Jlc3RvcmUtJyArIFtEYXRlVGlt
ZV06OlV0Y05vdy5Ub1N0cmluZygneXl5eU1NZGRUSEhtbXNzWicpICsgJy0nICsgJHJlc3RvcmVJ
ZCArICcuanNvbicNCiAgICAgICAgaWYgKCR0YXJnZXRJbmZvLm1vZGUgLWVxICduZXcnKSB7DQog
ICAgICAgICAgICAkcmVwb3J0UmVsYXRpdmUgPSAnX2FnZW50XGhpc3RvcnlcJyArICRyZXBvcnRO
YW1lDQogICAgICAgICAgICBXcml0ZS1Kc29uQ3JlYXRlTmV3IC1QYXRoIChKb2luLVBhdGggJHZh
bGlkYXRlZC5wYXlsb2FkUm9vdCAkcmVwb3J0UmVsYXRpdmUpIC1WYWx1ZSAoW3BzY3VzdG9tb2Jq
ZWN0XUB7IHNjaGVtYVZlcnNpb24gPSAxOyByZXN0b3JlSWQgPSAkcmVzdG9yZUlkOyBleHBvcnRJ
ZCA9IFtzdHJpbmddJGJ1bmRsZS5tYW5pZmVzdC5leHBvcnRJZDsgcmVzdG9yZWRBdFV0YyA9IFtE
YXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpOyBtb2RlID0gJ25ldy1zb3VsJzsgY29uZmxp
Y3RzID0gQCgpIH0pDQogICAgICAgICAgICBbSU8uRGlyZWN0b3J5XTo6TW92ZSgkdmFsaWRhdGVk
LnBheWxvYWRSb290LCAkdGFyZ2V0SW5mby5wYXRoKQ0KICAgICAgICAgICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAncmVzdG9yZWQtbmV3JzsgdGFyZ2V0ID0gJHRhcmdldElu
Zm8ucGF0aDsgY29uZmxpY3RDb3VudCA9IDA7IHJlcG9ydFBhdGggPSBKb2luLVBhdGggJHRhcmdl
dEluZm8ucGF0aCAkcmVwb3J0UmVsYXRpdmUgfQ0KICAgICAgICB9DQogICAgICAgIGlmICgkdGFy
Z2V0SW5mby5tb2RlIC1lcSAnZW1wdHktZXhpc3RpbmcnKSB7DQogICAgICAgICAgICBDb3B5LVBv
cnRhYmxlVHJlZVRvRW1wdHlUYXJnZXQgLVZhbGlkYXRlZCAkdmFsaWRhdGVkIC1UYXJnZXQgJHRh
cmdldEluZm8ucGF0aA0KICAgICAgICAgICAgJHJlcG9ydERpcmVjdG9yeSA9IEpvaW4tUGF0aCAk
dGFyZ2V0SW5mby5wYXRoICdfYWdlbnRcaGlzdG9yeScNCiAgICAgICAgICAgIEVuc3VyZS1TYWZl
RGlyZWN0b3J5UGF0aCAtRGlyZWN0b3J5ICRyZXBvcnREaXJlY3RvcnkgLUJvdW5kYXJ5ICR0YXJn
ZXRJbmZvLnBhdGgNCiAgICAgICAgICAgICRyZXBvcnRQYXRoID0gSm9pbi1QYXRoICRyZXBvcnRE
aXJlY3RvcnkgJHJlcG9ydE5hbWUNCiAgICAgICAgICAgIFdyaXRlLUpzb25DcmVhdGVOZXcgLVBh
dGggJHJlcG9ydFBhdGggLVZhbHVlIChbcHNjdXN0b21vYmplY3RdQHsgc2NoZW1hVmVyc2lvbiA9
IDE7IHJlc3RvcmVJZCA9ICRyZXN0b3JlSWQ7IGV4cG9ydElkID0gW3N0cmluZ10kYnVuZGxlLm1h
bmlmZXN0LmV4cG9ydElkOyByZXN0b3JlZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRjTm93LlRvU3Ry
aW5nKCdvJyk7IG1vZGUgPSAnZW1wdHktZXhpc3RpbmcnOyBjb25mbGljdHMgPSBAKCkgfSkNCiAg
ICAgICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgc3RhdHVzID0gJ3Jlc3RvcmVkLWlu
dG8tZW1wdHknOyB0YXJnZXQgPSAkdGFyZ2V0SW5mby5wYXRoOyBjb25mbGljdENvdW50ID0gMDsg
cmVwb3J0UGF0aCA9ICRyZXBvcnRQYXRoIH0NCiAgICAgICAgfQ0KICAgICAgICAkbWVyZ2UgPSBN
ZXJnZS1Qb3J0YWJsZVBheWxvYWRQcmVzZXJ2aW5nRXhpc3RpbmcgLVZhbGlkYXRlZCAkdmFsaWRh
dGVkIC1UYXJnZXQgJHRhcmdldEluZm8ucGF0aCAtUmVzdG9yZUlkICRyZXN0b3JlSWQNCiAgICAg
ICAgJHJlcG9ydERpcmVjdG9yeSA9IEpvaW4tUGF0aCAkdGFyZ2V0SW5mby5wYXRoICdfYWdlbnRc
aGlzdG9yeScNCiAgICAgICAgRW5zdXJlLVNhZmVEaXJlY3RvcnlQYXRoIC1EaXJlY3RvcnkgJHJl
cG9ydERpcmVjdG9yeSAtQm91bmRhcnkgJHRhcmdldEluZm8ucGF0aA0KICAgICAgICAkcmVwb3J0
UGF0aCA9IEpvaW4tUGF0aCAkcmVwb3J0RGlyZWN0b3J5ICRyZXBvcnROYW1lDQogICAgICAgIFdy
aXRlLUpzb25DcmVhdGVOZXcgLVBhdGggJHJlcG9ydFBhdGggLVZhbHVlIChbcHNjdXN0b21vYmpl
Y3RdQHsgc2NoZW1hVmVyc2lvbiA9IDE7IHJlc3RvcmVJZCA9ICRyZXN0b3JlSWQ7IGV4cG9ydElk
ID0gW3N0cmluZ10kYnVuZGxlLm1hbmlmZXN0LmV4cG9ydElkOyByZXN0b3JlZEF0VXRjID0gW0Rh
dGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7IG1vZGUgPSAndHJ1c3RlZC1leGlzdGluZyc7
IGFkZGVkID0gJG1lcmdlLmFkZGVkOyBpZGVudGljYWwgPSAkbWVyZ2UuaWRlbnRpY2FsOyBjb25m
bGljdHMgPSAkbWVyZ2UuY29uZmxpY3RzIH0pDQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBz
dGF0dXMgPSBpZiAoJG1lcmdlLmNvbmZsaWN0cy5Db3VudCkgeyAncmVzdG9yZWQtd2l0aC1jb25m
bGljdHMnIH0gZWxzZSB7ICdyZXN0b3JlZCcgfTsgdGFyZ2V0ID0gJHRhcmdldEluZm8ucGF0aDsg
YWRkZWRDb3VudCA9ICRtZXJnZS5hZGRlZC5Db3VudDsgaWRlbnRpY2FsQ291bnQgPSAkbWVyZ2Uu
aWRlbnRpY2FsLkNvdW50OyBjb25mbGljdENvdW50ID0gJG1lcmdlLmNvbmZsaWN0cy5Db3VudDsg
Y29uZmxpY3RSb290ID0gJG1lcmdlLmNvbmZsaWN0Um9vdDsgcmVwb3J0UGF0aCA9ICRyZXBvcnRQ
YXRoIH0NCiAgICB9DQogICAgZmluYWxseSB7IFJlbW92ZS1Pd25lZFN0YWdpbmdEaXJlY3Rvcnkg
LVBhdGggJHN0YWdlIC1FeHBlY3RlZFBhcmVudCAkc3RhZ2VQYXJlbnQgLU9wZXJhdGlvbklkICgn
LnNvdWwtcmVzdG9yZS0nICsgJHJlc3RvcmVJZCkgfQ0KfQ0KDQpmdW5jdGlvbiBJbnZva2UtUmVz
dG9yZU9yVmVyaWZ5IHsNCiAgICBwYXJhbShbc3dpdGNoXSRWZXJpZnlPbmx5KQ0KICAgIGlmIChb
c3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRBcmNoaXZlUGF0aCkpIHsgdGhyb3cgIiRBY3Rp
b27sl5DripQgLUFyY2hpdmVQYXRo6rCAIO2VhOyalO2VqeuLiOuLpC4iIH0NCiAgICAkY2lwaGVy
ID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkQXJjaGl2ZVBhdGgNCiAgICAkbWV0YWRhdGEgPSBpZiAo
W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkUHVibGljTWV0YWRhdGFQYXRoKSkgew0KICAg
ICAgICBpZiAoJGNpcGhlci5FbmRzV2l0aCgnLnRhci5hZ2UnLCBbU3lzdGVtLlN0cmluZ0NvbXBh
cmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsgJGNpcGhlci5TdWJzdHJpbmcoMCwgJGNpcGhl
ci5MZW5ndGggLSAnLnRhci5hZ2UnLkxlbmd0aCkgKyAnLnB1YmxpYy5qc29uJyB9DQogICAgICAg
IGVsc2UgeyB0aHJvdyAn6rO16rCcIOqygOymne2RnCDqsr3roZwoLVB1YmxpY01ldGFkYXRhUGF0
aCnrpbwg7KeA7KCV7ZWY7IS47JqULicgfQ0KICAgIH0gZWxzZSB7IEdldC1GdWxsTGl0ZXJhbFBh
dGggJFB1YmxpY01ldGFkYXRhUGF0aCB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJFRydXN0ZWRBZ2VQYXRoKSkgeyAkc2NyaXB0OlRydXN0ZWRBZ2VQYXRoID0gSm9pbi1Q
YXRoIChHZXQtU291bFJvb3QpICdfYWdlbnRcc2hhcmVkXHRvb2xzXGFnZVwxLjMuMVxhZ2UuZXhl
JyB9DQogICAgJGFnZSA9IEFzc2VydC1BZ2VUb29sIC1QYXRoICRUcnVzdGVkQWdlUGF0aCAtRXhw
ZWN0ZWRTaGEyNTYgJFRydXN0ZWRBZ2VTaGEyNTYNCiAgICAkdGFyID0gR2V0LVN5c3RlbVRhcg0K
ICAgICRyZXN0b3JlSWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQogICAgJHN0YWdp
bmdQYXJlbnQgPSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAoSm9pbi1QYXRoICRQU1Njcmlw
dFJvb3QgJ3Jlc3RvcmUtc3RhZ2luZycpDQogICAgJHN0YWdlID0gTmV3LU93bmVkU3RhZ2luZ0Rp
cmVjdG9yeSAtUGFyZW50ICRzdGFnaW5nUGFyZW50IC1PcGVyYXRpb25JZCAkcmVzdG9yZUlkIC1L
aW5kICQoaWYgKCRWZXJpZnlPbmx5KSB7ICd2ZXJpZnknIH0gZWxzZSB7ICdyZXN0b3JlJyB9KQ0K
ICAgIHRyeSB7DQogICAgICAgICR2YWxpZGF0ZWQgPSBFeHBhbmQtQW5kVmFsaWRhdGVBcmNoaXZl
IC1DaXBoZXIgJGNpcGhlciAtTWV0YWRhdGEgJG1ldGFkYXRhIC1BZ2VFeGUgJGFnZSAtVGFyRXhl
ICR0YXIgLVN0YWdlICRzdGFnZQ0KICAgICAgICBpZiAoJFZlcmlmeU9ubHkpIHsNCiAgICAgICAg
ICAgIFtwc2N1c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAndmVyaWZpZWQnOyBleHBvcnRJZCA9IFtz
dHJpbmddJHZhbGlkYXRlZC5tYW5pZmVzdC5leHBvcnRJZDsgZmlsZUNvdW50ID0gQCgkdmFsaWRh
dGVkLm1hbmlmZXN0LmZpbGVzKS5Db3VudCB9DQogICAgICAgICAgICByZXR1cm4NCiAgICAgICAg
fQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGFyZ2V0U291bFJv
b3QpKSB7IHRocm93ICdSZXN0b3Jl7JeQ64qUIC1UYXJnZXRTb3VsUm9vdOqwgCDtlYTsmpTtlanr
i4jri6QuJyB9DQogICAgICAgICMg6rO17JqpIOyXlOynhOydtCBDOlwg7KeB7ZWYIO2VnCDtj7Tr
jZQsIE5URlMsIOyLnOyKpO2FnC/rsJTtg5XtmZTrqbQg7KCc7Jm4LCDro6jtirggcmVwYXJzZSDq
uIjsp4AsDQogICAgICAgICMg67mE7Ja0IOyeiOyngCDslYrsnYAg66+47Iud67OEIO2PtOuNlCDq
sbDrtoDrpbwg7ZWcIOuyiOyXkCDqsoDspp3tlZzri6QuDQogICAgICAgICR0YXJnZXQgPSBBc3Nl
cnQtU291bFJvb3QgLVBhdGggJFRhcmdldFNvdWxSb290DQogICAgICAgIGlmICgkdGFyZ2V0LkVx
dWFscygoR2V0LVNvdWxSb290KSwgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbEln
bm9yZUNhc2UpIC1hbmQgQChHZXQtTGl2ZVNvdWxBZ2VudFByb2Nlc3MpLkNvdW50IC1ndCAwKSB7
DQogICAgICAgICAgICB0aHJvdyAn7ZiE7J6sIOyLpO2WiSDspJHsnbgg7JiB7Zi8IOyekOyLoOyX
kOqyjOuKlCDrs7Xsm5DtlZjsp4Ag7JWK7Iq164uI64ukLiBDbGF1ZGUvQ29kZXjrpbwg7J6Q7Jew
IOyiheujjO2VnCDrkqQg64uk7IucIOyLpO2Wie2VmOyEuOyalC4nDQogICAgICAgIH0NCiAgICAg
ICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHRhcmdldCkgew0KICAgICAgICAgICAgJHRh
cmdldEl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHRhcmdldCAtRm9yY2UNCiAgICAgICAg
ICAgIGlmICgtbm90ICR0YXJnZXRJdGVtLlBTSXNDb250YWluZXIpIHsgdGhyb3cgJ+uzteybkCDr
jIDsg4Eg6rK966Gc7JeQIO2MjOydvOydtCDsnojsirXri4jri6QuJyB9DQogICAgICAgICAgICBp
ZiAoKCR0YXJnZXRJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRl
c106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgJ+uzteybkCDrjIDsg4HsnbQg7Jew6rKw
7KCQ7J2066+A66GcIOyTsOyngCDslYrsirXri4jri6QuJyB9DQogICAgICAgICAgICAkbWVyZ2Ug
PSBDb3B5LVJlc3RvcmVQYXlsb2FkTm9uRGVzdHJ1Y3RpdmUgLVZhbGlkYXRlZCAkdmFsaWRhdGVk
IC1UYXJnZXQgJHRhcmdldCAtUmVzdG9yZUlkICRyZXN0b3JlSWQNCiAgICAgICAgICAgICRyZXBv
cnREaXJlY3RvcnkgPSBKb2luLVBhdGggJHRhcmdldCAnX2FnZW50XGhpc3RvcnknDQogICAgICAg
ICAgICBFbnN1cmUtU2FmZURpcmVjdG9yeVBhdGggLURpcmVjdG9yeSAkcmVwb3J0RGlyZWN0b3J5
IC1Cb3VuZGFyeSAkdGFyZ2V0DQogICAgICAgICAgICAkcmVwb3J0UGF0aCA9IEpvaW4tUGF0aCAk
cmVwb3J0RGlyZWN0b3J5ICgncmVzdG9yZS0nICsgW0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5n
KCd5eXl5TU1kZFRISG1tc3NaJykgKyAnLScgKyAkcmVzdG9yZUlkICsgJy5qc29uJykNCiAgICAg
ICAgICAgIFdyaXRlLUpzb25DcmVhdGVOZXcgLVBhdGggJHJlcG9ydFBhdGggLVZhbHVlIChbcHNj
dXN0b21vYmplY3RdQHsgc2NoZW1hVmVyc2lvbiA9IDE7IHJlc3RvcmVJZCA9ICRyZXN0b3JlSWQ7
IGV4cG9ydElkID0gW3N0cmluZ10kdmFsaWRhdGVkLm1hbmlmZXN0LmV4cG9ydElkOyByZXN0b3Jl
ZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7IGFkZGVkID0gJG1lcmdl
LmFkZGVkOyBpZGVudGljYWwgPSAkbWVyZ2UuaWRlbnRpY2FsOyBjb25mbGljdHMgPSAkbWVyZ2Uu
Y29uZmxpY3RzIH0pDQogICAgICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgc3RhdHVzID0gaWYg
KCRtZXJnZS5jb25mbGljdHMuQ291bnQpIHsgJ3Jlc3RvcmVkLXdpdGgtY29uZmxpY3RzJyB9IGVs
c2UgeyAncmVzdG9yZWQnIH07IHRhcmdldCA9ICR0YXJnZXQ7IGFkZGVkQ291bnQgPSAkbWVyZ2Uu
YWRkZWQuQ291bnQ7IGlkZW50aWNhbENvdW50ID0gJG1lcmdlLmlkZW50aWNhbC5Db3VudDsgY29u
ZmxpY3RDb3VudCA9ICRtZXJnZS5jb25mbGljdHMuQ291bnQ7IGNvbmZsaWN0Um9vdCA9ICRtZXJn
ZS5jb25mbGljdFJvb3Q7IHJlcG9ydFBhdGggPSAkcmVwb3J0UGF0aCB9DQogICAgICAgIH0NCiAg
ICAgICAgZWxzZSB7DQogICAgICAgICAgICAkcGFyZW50ID0gU3BsaXQtUGF0aCAtUGFyZW50ICR0
YXJnZXQNCiAgICAgICAgICAgIGlmICgtbm90ICRwYXJlbnQuRXF1YWxzKCdDOlwnLCBbU3lzdGVt
LlN0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsgdGhyb3cgJ+yLoOq3nCDr
s7Xsm5Ag64yA7IOB7J2YIOu2gOuqqOuKlCDsoJXtmZXtnoggQzpc7Jes7JW8IO2VqeuLiOuLpC4n
IH0NCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXJlbnQg
LVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgIuuMgOyDgSDrk5zrnbzsnbTruIwv67aA66qo
IO2PtOuNlOqwgCDsl4bsirXri4jri6Q6ICRwYXJlbnQiIH0NCiAgICAgICAgICAgICRwYXlsb2Fk
SWRlbnRpdHkgPSBSZWFkLVNvdWxTdGF0ZSAtUm9vdCAkdmFsaWRhdGVkLnBheWxvYWRSb290DQog
ICAgICAgICAgICBpZiAoW3N0cmluZ10kcGF5bG9hZElkZW50aXR5LnNvdWxJZCAtbmUgW3N0cmlu
Z10kdmFsaWRhdGVkLm1hbmlmZXN0LnNvdWxJZCkgeyB0aHJvdyAncGF5bG9hZOydmCBzb3VsLXN0
YXRlLmpzb27qs7wg64K067aAIG1hbmlmZXN07J2YIOyYge2YvCBJROqwgCDri6TrpoXri4jri6Qu
JyB9DQogICAgICAgICAgICAjIOuztOqzoOyEnOq5jOyngCDqsoDspp3rkJwg7J6E7IucIHBheWxv
YWQg7JWI7JeQ7IScIOuovOyggCDrp4zrk6Ag65KkIO2VnCDrsojsl5Ag7J2064+Z7ZWc64ukLg0K
ICAgICAgICAgICAgIyDrlLDrnbzshJwg67O06rOg7IScIOyDneyEsSDsi6TtjKjqsIAg67mIL+u2
gOu2hCDrjIDsg4Eg7Y+0642U66W8IOuCqOq4sOyngCDslYrripTri6QuDQogICAgICAgICAgICAk
cmVsYXRpdmVSZXBvcnQgPSAnX2FnZW50XGhpc3RvcnlccmVzdG9yZS0nICsgW0RhdGVUaW1lXTo6
VXRjTm93LlRvU3RyaW5nKCd5eXl5TU1kZFRISG1tc3NaJykgKyAnLScgKyAkcmVzdG9yZUlkICsg
Jy5qc29uJw0KICAgICAgICAgICAgJHN0YWdlZFJlcG9ydFBhdGggPSBKb2luLVBhdGggJHZhbGlk
YXRlZC5wYXlsb2FkUm9vdCAkcmVsYXRpdmVSZXBvcnQNCiAgICAgICAgICAgIFdyaXRlLUpzb25D
cmVhdGVOZXcgLVBhdGggJHN0YWdlZFJlcG9ydFBhdGggLVZhbHVlIChbcHNjdXN0b21vYmplY3Rd
QHsgc2NoZW1hVmVyc2lvbiA9IDE7IHJlc3RvcmVJZCA9ICRyZXN0b3JlSWQ7IGV4cG9ydElkID0g
W3N0cmluZ10kdmFsaWRhdGVkLm1hbmlmZXN0LmV4cG9ydElkOyByZXN0b3JlZEF0VXRjID0gW0Rh
dGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7IG1vZGUgPSAnbmV3LXNvdWwnOyBjb25mbGlj
dHMgPSBAKCkgfSkNCiAgICAgICAgICAgIFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6TW92ZSgkdmFs
aWRhdGVkLnBheWxvYWRSb290LCAkdGFyZ2V0KQ0KICAgICAgICAgICAgJHJlcG9ydFBhdGggPSBK
b2luLVBhdGggJHRhcmdldCAkcmVsYXRpdmVSZXBvcnQNCiAgICAgICAgICAgIFtwc2N1c3RvbW9i
amVjdF1AeyBzdGF0dXMgPSAncmVzdG9yZWQtbmV3JzsgdGFyZ2V0ID0gJHRhcmdldDsgY29uZmxp
Y3RDb3VudCA9IDA7IHJlcG9ydFBhdGggPSAkcmVwb3J0UGF0aDsgbmV4dCA9ICfrs7Xsm5DrkJwg
7Iuk7ZaJIO2MjOydvOydhCDsp4HsoJEg7Iuk7ZaJ7ZWY7KeAIOunkOqzoCwg7Iug66Kw65CcIOuh
nOy7rCDshLjtjIUg7JeU7KeE7Jy866GcIOydtCDsu7Ttk6jthLAg65Ox66Gd6rO8IOuhnOq3uOyd
uOydhCDsp4TtlontlZjshLjsmpQuJyB9DQogICAgICAgIH0NCiAgICB9DQogICAgZmluYWxseSB7
IFJlbW92ZS1Pd25lZFN0YWdpbmdEaXJlY3RvcnkgLVBhdGggJHN0YWdlIC1FeHBlY3RlZFBhcmVu
dCAkc3RhZ2luZ1BhcmVudCAtT3BlcmF0aW9uSWQgJHJlc3RvcmVJZCB9DQp9DQoNCmZ1bmN0aW9u
IEludm9rZS1OYXRpdmVDYXB0dXJlRm9yUG9ydGFibGVUZXN0IHsNCiAgICBwYXJhbShbUGFyYW1l
dGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRFeGVjdXRhYmxlLCBbc3RyaW5nW11dJEFy
Z3VtZW50cyA9IEAoKSkNCiAgICAkcHJldmlvdXNQcmVmZXJlbmNlID0gJEVycm9yQWN0aW9uUHJl
ZmVyZW5jZQ0KICAgIHRyeSB7DQogICAgICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnQ29u
dGludWUnDQogICAgICAgICRvdXRwdXQgPSBAKCYgJEV4ZWN1dGFibGUgQEFyZ3VtZW50cyAyPiYx
KQ0KICAgICAgICAkZXhpdENvZGUgPSAkTEFTVEVYSVRDT0RFDQogICAgICAgIFtwc2N1c3RvbW9i
amVjdF1AeyBleGl0Q29kZSA9ICRleGl0Q29kZTsgb3V0cHV0ID0gQCgkb3V0cHV0IHwgRm9yRWFj
aC1PYmplY3QgeyBbc3RyaW5nXSRfIH0pIH0NCiAgICB9DQogICAgZmluYWxseSB7ICRFcnJvckFj
dGlvblByZWZlcmVuY2UgPSAkcHJldmlvdXNQcmVmZXJlbmNlIH0NCn0NCg0KZnVuY3Rpb24gSW52
b2tlLVBvcnRhYmxlUmVzdG9yZVNlbGZUZXN0IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRh
dG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRUZXN0Um9vdCkNCiAgICAkZml4dHVyZXNSb290ID0gR2V0
LUZ1bGxMaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ3Rlc3RzXGZpeHR1cmVz
JykNCiAgICAkdGVzdFJvb3RGdWxsID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkVGVzdFJvb3QNCiAg
ICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVyUGF0aCAtQ2FuZGlkYXRlICR0ZXN0Um9vdEZ1bGwgLVBh
cmVudCAkZml4dHVyZXNSb290KSAtb3IgJHRlc3RSb290RnVsbC5FcXVhbHMoJGZpeHR1cmVzUm9v
dCwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsNCiAgICAgICAgdGhy
b3cgJ1BvcnRhYmxlVGVzdFJvb3TripQgX2FnZW50XHNldHVwXHRlc3RzXGZpeHR1cmVzIOyVhOue
mOydmCDsnbztmozsmqkg7Y+0642U7Jes7JW8IO2VqeuLiOuLpC4nDQogICAgfQ0KICAgIGlmICgt
bm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICR0ZXN0Um9vdEZ1bGwgLVBhdGhUeXBlIENvbnRh
aW5lcikpIHsgdGhyb3cgJ1BvcnRhYmxlVGVzdFJvb3Qg7Y+0642U6rCAIOyXhuyKteuLiOuLpC4n
IH0NCiAgICBBc3NlcnQtTm9SZXBhcnNlV2l0aGluIC1QYXRoICR0ZXN0Um9vdEZ1bGwgLUJvdW5k
YXJ5ICRmaXh0dXJlc1Jvb3QNCg0KICAgICRhZ2VGaXh0dXJlID0gR2V0LUZ1bGxMaXRlcmFsUGF0
aCAoSm9pbi1QYXRoICRmaXh0dXJlc1Jvb3QgJ2FnZS1pbnRlZ3JhdGlvblxleHBhbmRlZFxhZ2Un
KQ0KICAgICRhZ2UgPSBBc3NlcnQtTG9ja2VkQWdlQ29tcGFuaW9uIC1QYXRoIChKb2luLVBhdGgg
JGFnZUZpeHR1cmUgJ2FnZS5leGUnKSAtRXhwZWN0ZWRTaGEyNTYgJzkwZjVjYzM3MjQ5YzA2ZTBi
MzAyZTQ3NmE4YTYzYmNlZmVlY2Q5NDM3YzE5MmI4YWYzM2U2ZmYyZDY5NTU4ZGQnIC1FeHBlY3Rl
ZE5hbWUgJ2FnZS5leGUnIC1BbGxvd2VkUm9vdCAkYWdlRml4dHVyZQ0KICAgICRrZXlnZW4gPSBB
c3NlcnQtTG9ja2VkQWdlQ29tcGFuaW9uIC1QYXRoIChKb2luLVBhdGggJGFnZUZpeHR1cmUgJ2Fn
ZS1rZXlnZW4uZXhlJykgLUV4cGVjdGVkU2hhMjU2ICc4YjljMjdlZjJhYjZmMjE1ZjY4OWJmMWU2
MDliZjgyYzhmYWY0YzA0MWYzMjQ1MmZhODAzOTZiM2Y4YzRmNjg3JyAtRXhwZWN0ZWROYW1lICdh
Z2Uta2V5Z2VuLmV4ZScgLUFsbG93ZWRSb290ICRhZ2VGaXh0dXJlDQogICAgJGJhdGNocGFzcyA9
IEFzc2VydC1Mb2NrZWRBZ2VDb21wYW5pb24gLVBhdGggKEpvaW4tUGF0aCAkYWdlRml4dHVyZSAn
YWdlLXBsdWdpbi1iYXRjaHBhc3MuZXhlJykgLUV4cGVjdGVkU2hhMjU2ICcyY2NiNGI3ODM0OTAz
MjAyZTkxZjNkZWVjMDhiZmQ4MmU4NjgyN2FkMjJlMTE4MTVmMGZiZmRmOWRmNjFjZDUwJyAtRXhw
ZWN0ZWROYW1lICdhZ2UtcGx1Z2luLWJhdGNocGFzcy5leGUnIC1BbGxvd2VkUm9vdCAkYWdlRml4
dHVyZQ0KICAgICRhZ2VUb29scyA9IFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICBhZ2UgPSAk
YWdlOyBhZ2VTaGEyNTYgPSBHZXQtRmlsZVNoYTI1NiAkYWdlDQogICAgICAgIGtleWdlbiA9ICRr
ZXlnZW47IGtleWdlblNoYTI1NiA9IEdldC1GaWxlU2hhMjU2ICRrZXlnZW4NCiAgICAgICAgYmF0
Y2hwYXNzID0gJGJhdGNocGFzczsgYmF0Y2hwYXNzU2hhMjU2ID0gR2V0LUZpbGVTaGEyNTYgJGJh
dGNocGFzcw0KICAgIH0NCg0KICAgICRleHBvcnRJZCA9IFtndWlkXTo6TmV3R3VpZCgpLlRvU3Ry
aW5nKCkNCiAgICAkc291bElkID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAgICRw
YWNrYWdlUm9vdCA9IEpvaW4tUGF0aCAkdGVzdFJvb3RGdWxsICdkdW1teS1wYWNrYWdlJw0KICAg
ICRwYXlsb2FkUm9vdCA9IEpvaW4tUGF0aCAkcGFja2FnZVJvb3QgJ3BheWxvYWQnDQogICAgW0lP
LkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoSm9pbi1QYXRoICRwYXlsb2FkUm9vdCAnZGF0
YScpKSB8IE91dC1OdWxsDQogICAgW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoSm9p
bi1QYXRoICRwYXlsb2FkUm9vdCAnZW1wdHktZGlyZWN0b3J5JykpIHwgT3V0LU51bGwNCiAgICBX
cml0ZS1Kc29uQ3JlYXRlTmV3IC1QYXRoIChKb2luLVBhdGggJHBheWxvYWRSb290ICdzb3VsLXN0
YXRlLmpzb24nKSAtVmFsdWUgKFtwc2N1c3RvbW9iamVjdF1AeyBzY2hlbWFWZXJzaW9uID0gNzsg
c291bElkID0gJHNvdWxJZDsgZGlzcGxheU5hbWUgPSAnUG9ydGFibGVUZXN0U291bCc7IHJvb3Qg
PSAnLicgfSkNCiAgICBXcml0ZS1UZXh0Q3JlYXRlTmV3IC1QYXRoIChKb2luLVBhdGggJHBheWxv
YWRSb290ICdkYXRhXGhlbGxvLnR4dCcpIC1UZXh0ICJwb3J0YWJsZSByZXN0b3JlIGR1bW15IGRh
dGFgcmBuIg0KICAgICRlbnRyaWVzID0gTmV3LU9iamVjdCBDb2xsZWN0aW9ucy5HZW5lcmljLkxp
c3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRmaWxlIGluIEAoR2V0LU5vRm9sbG93VHJlZSAtUm9v
dCAkcGF5bG9hZFJvb3QpLmZpbGVzKSB7DQogICAgICAgICRlbnRyaWVzLkFkZChbcHNjdXN0b21v
YmplY3RdQHsgcGF0aCA9ICRmaWxlLnJlbGF0aXZlUGF0aDsgbGVuZ3RoID0gW2xvbmddJGZpbGUu
bGVuZ3RoOyBzaGEyNTYgPSBHZXQtRmlsZVNoYTI1NiAkZmlsZS5mdWxsUGF0aDsgc291cmNlS2lu
ZCA9ICdub3JtYWwnIH0pDQogICAgfQ0KICAgIFdyaXRlLUpzb25DcmVhdGVOZXcgLVBhdGggKEpv
aW4tUGF0aCAkcGFja2FnZVJvb3QgJ21hbmlmZXN0Lmpzb24nKSAtVmFsdWUgKFtwc2N1c3RvbW9i
amVjdF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMTsgZm9ybWF0ID0gJ3NvdWwtZGF0YS1h
Z2UtdGFyJzsgZXhwb3J0SWQgPSAkZXhwb3J0SWQ7IGNyZWF0ZWRBdFV0YyA9IFtEYXRlVGltZV06
OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgICAgIHNvdWxJZCA9ICRzb3VsSWQ7IGNvbnNpc3Rl
bmN5TW9kZSA9ICdwb3J0YWJsZS1zZWxmLXRlc3QnOyBmaWxlcyA9IEAoJGVudHJpZXMgfCBTb3J0
LU9iamVjdCBwYXRoKTsgZXhjbHVkZWRWb2xhdGlsZURhdGFiYXNlU2lkZWNhcnMgPSBAKCkNCiAg
ICB9KQ0KICAgICR0YXIgPSBHZXQtU3lzdGVtVGFyDQogICAgJHBsYWluVGFyID0gSm9pbi1QYXRo
ICR0ZXN0Um9vdEZ1bGwgJ2R1bW15LXBhY2thZ2UudGFyJw0KICAgICYgJHRhciAtY2YgJHBsYWlu
VGFyIC1DICRwYWNrYWdlUm9vdCAuDQogICAgaWYgKCRMQVNURVhJVENPREUgLW5lIDApIHsgdGhy
b3cgJ+2FjOyKpO2KuCB0YXIg7IOd7ISx7JeQIOyLpO2MqO2WiOyKteuLiOuLpC4nIH0NCiAgICBB
c3NlcnQtVGFyRW50cmllc1NhZmUgLVRhclBhdGggJHBsYWluVGFyIC1UYXJFeGUgJHRhcg0KDQog
ICAgJGlkZW50aXR5UGF0aCA9IEpvaW4tUGF0aCAkdGVzdFJvb3RGdWxsICdkdW1teS1pZGVudGl0
eS50eHQnDQogICAgJGtleWdlblJlc3VsdCA9IEludm9rZS1OYXRpdmVDYXB0dXJlRm9yUG9ydGFi
bGVUZXN0IC1FeGVjdXRhYmxlICRrZXlnZW4gLUFyZ3VtZW50cyBAKCctbycsICRpZGVudGl0eVBh
dGgpDQogICAgaWYgKCRrZXlnZW5SZXN1bHQuZXhpdENvZGUgLW5lIDAgLW9yIC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJGlkZW50aXR5UGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cg
KCLthYzsiqTtirggYWdlIGlkZW50aXR5IOyDneyEseyXkCDsi6TtjKjtlojsirXri4jri6Q6ICIg
KyAoJGtleWdlblJlc3VsdC5vdXRwdXQgLWpvaW4gJyAnKSkgfQ0KICAgICRyZWNpcGllbnRSZXN1
bHQgPSBJbnZva2UtTmF0aXZlQ2FwdHVyZUZvclBvcnRhYmxlVGVzdCAtRXhlY3V0YWJsZSAka2V5
Z2VuIC1Bcmd1bWVudHMgQCgnLXknLCAkaWRlbnRpdHlQYXRoKQ0KICAgIGlmICgkcmVjaXBpZW50
UmVzdWx0LmV4aXRDb2RlIC1uZSAwKSB7IHRocm93ICfthYzsiqTtirggYWdlIHJlY2lwaWVudCDq
s4TsgrDsl5Ag7Iuk7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgICRyZWNpcGllbnQgPSBAKCRyZWNp
cGllbnRSZXN1bHQub3V0cHV0IHwgRm9yRWFjaC1PYmplY3QgeyAoW3N0cmluZ10kXykuVHJpbSgp
IH0gfCBXaGVyZS1PYmplY3QgeyAkXyAtbWF0Y2ggJ15hZ2UxWzAtOWEtel0rJCcgfSkgfCBTZWxl
Y3QtT2JqZWN0IC1GaXJzdCAxDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo
W3N0cmluZ10kcmVjaXBpZW50KSkgeyB0aHJvdyAn7YWM7Iqk7Yq4IGFnZSByZWNpcGllbnTsnYQg
7J297KeAIOuqu+2WiOyKteuLiOuLpC4nIH0NCiAgICAkY2lwaGVyID0gSm9pbi1QYXRoICR0ZXN0
Um9vdEZ1bGwgJ2R1bW15LnRhci5hZ2UnDQogICAgJGVuY3J5cHRSZXN1bHQgPSBJbnZva2UtTmF0
aXZlQ2FwdHVyZUZvclBvcnRhYmxlVGVzdCAtRXhlY3V0YWJsZSAkYWdlIC1Bcmd1bWVudHMgQCgn
LS1lbmNyeXB0JywgJy0tcmVjaXBpZW50JywgW3N0cmluZ10kcmVjaXBpZW50LCAnLS1vdXRwdXQn
LCAkY2lwaGVyLCAkcGxhaW5UYXIpDQogICAgaWYgKCRlbmNyeXB0UmVzdWx0LmV4aXRDb2RlIC1u
ZSAwIC1vciAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjaXBoZXIgLVBhdGhUeXBlIExl
YWYpKSB7IHRocm93ICgn7YWM7Iqk7Yq4IGFnZSDslZTtmLjtmZTsl5Ag7Iuk7Yyo7ZaI7Iq164uI
64ukOiAnICsgKCRlbmNyeXB0UmVzdWx0Lm91dHB1dCAtam9pbiAnICcpKSB9DQoNCiAgICAkYnVu
ZGxlUGFyZW50ID0gSm9pbi1QYXRoICR0ZXN0Um9vdEZ1bGwgJ3VzYicNCiAgICBbSU8uRGlyZWN0
b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRidW5kbGVQYXJlbnQpIHwgT3V0LU51bGwNCiAgICAkYnVu
ZGxlID0gTmV3LVBvcnRhYmxlUmVzdG9yZUJ1bmRsZSAtRGVzdGluYXRpb24gJGJ1bmRsZVBhcmVu
dCAtU291bE5hbWUgJ1BvcnRhYmxlVGVzdFNvdWwnIC1Tb3VsSWQgJHNvdWxJZCAtRXhwb3J0SWQg
JGV4cG9ydElkIC1DaXBoZXJTb3VyY2UgJGNpcGhlciAtQWdlVG9vbHMgJGFnZVRvb2xzDQogICAg
JHJlc3RvcmVTY3JpcHQgPSBKb2luLVBhdGggJGJ1bmRsZS5idW5kbGVQYXRoICfrs7Xsm5AucHMx
Jw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGJ1bmRsZS5idW5k
bGVQYXRoICdlbmdpbmUnKSkgeyB0aHJvdyAn7Zy064yAIOuzteybkOq4sOyXkCDsmbjrtoAg7JeU
7KeEIO2PtOuNlOqwgCDrk6TslrTqsJTsirXri4jri6QuJyB9DQoNCiAgICAkcG93ZXJzaGVsbCA9
IEpvaW4tUGF0aCAkZW52OlN5c3RlbVJvb3QgJ1N5c3RlbTMyXFdpbmRvd3NQb3dlclNoZWxsXHYx
LjBccG93ZXJzaGVsbC5leGUnDQogICAgJGNvbW1vbkFyZ3MgPSBAKCctTm9Qcm9maWxlJywgJy1F
eGVjdXRpb25Qb2xpY3knLCAnQnlwYXNzJywgJy1GaWxlJywgJHJlc3RvcmVTY3JpcHQsICctUG9y
dGFibGVUZXN0TW9kZScsICctUG9ydGFibGVUZXN0Qm91bmRhcnknLCAkdGVzdFJvb3RGdWxsLCAn
LVBvcnRhYmxlSWRlbnRpdHlQYXRoJywgJGlkZW50aXR5UGF0aCkNCiAgICAkdmVyaWZ5UmVzdWx0
ID0gSW52b2tlLU5hdGl2ZUNhcHR1cmVGb3JQb3J0YWJsZVRlc3QgLUV4ZWN1dGFibGUgJHBvd2Vy
c2hlbGwgLUFyZ3VtZW50cyAoJGNvbW1vbkFyZ3MgKyBAKCctQWN0aW9uJywgJ1BvcnRhYmxlVmVy
aWZ5JykpDQogICAgaWYgKCR2ZXJpZnlSZXN1bHQuZXhpdENvZGUgLW5lIDApIHsgdGhyb3cgKCLt
nLTrjIAg67O17JuQ6riw7J2YIOyYpO2UhOudvOyduCDqsoDspp3snbQg7Iuk7Yyo7ZaI7Iq164uI
64ukOiAiICsgKCR2ZXJpZnlSZXN1bHQub3V0cHV0IC1qb2luICcgJykpIH0NCg0KICAgICRidW5k
bGVNYW5pZmVzdCA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRidW5kbGUu
YnVuZGxlUGF0aCAnbWFuaWZlc3QuanNvbicpIC1SYXcgLUVuY29kaW5nIFVURjggfCBDb252ZXJ0
RnJvbS1Kc29uDQogICAgJGJ1bmRsZUFyY2hpdmUgPSBKb2luLVBhdGggJGJ1bmRsZS5idW5kbGVQ
YXRoIChbc3RyaW5nXSRidW5kbGVNYW5pZmVzdC5hcmNoaXZlLnBhdGgpDQogICAgJG9yaWdpbmFs
Q2lwaGVyQnl0ZXMgPSBbSU8uRmlsZV06OlJlYWRBbGxCeXRlcygkYnVuZGxlQXJjaGl2ZSkNCiAg
ICB0cnkgew0KICAgICAgICAkdGFtcGVyZWRDaXBoZXJCeXRlcyA9IE5ldy1PYmplY3QgYnl0ZVtd
ICRvcmlnaW5hbENpcGhlckJ5dGVzLkxlbmd0aA0KICAgICAgICBbQXJyYXldOjpDb3B5KCRvcmln
aW5hbENpcGhlckJ5dGVzLCAkdGFtcGVyZWRDaXBoZXJCeXRlcywgJG9yaWdpbmFsQ2lwaGVyQnl0
ZXMuTGVuZ3RoKQ0KICAgICAgICAkdGFtcGVyZWRDaXBoZXJCeXRlc1skdGFtcGVyZWRDaXBoZXJC
eXRlcy5MZW5ndGggLSAxXSA9ICR0YW1wZXJlZENpcGhlckJ5dGVzWyR0YW1wZXJlZENpcGhlckJ5
dGVzLkxlbmd0aCAtIDFdIC1ieG9yIDENCiAgICAgICAgW0lPLkZpbGVdOjpXcml0ZUFsbEJ5dGVz
KCRidW5kbGVBcmNoaXZlLCAkdGFtcGVyZWRDaXBoZXJCeXRlcykNCiAgICAgICAgJHRhbXBlclJl
c3VsdCA9IEludm9rZS1OYXRpdmVDYXB0dXJlRm9yUG9ydGFibGVUZXN0IC1FeGVjdXRhYmxlICRw
b3dlcnNoZWxsIC1Bcmd1bWVudHMgKCRjb21tb25BcmdzICsgQCgnLUFjdGlvbicsICdQb3J0YWJs
ZVZlcmlmeScpKQ0KICAgICAgICBpZiAoJHRhbXBlclJlc3VsdC5leGl0Q29kZSAtZXEgMCkgeyB0
aHJvdyAn7JWU7Zi466y47J2YIDHrsJTsnbTtirgg67OA7KGw66W8IOqzteqwnCBtYW5pZmVzdOqw
gCDsnqHslYTrgrTsp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsg
W0lPLkZpbGVdOjpXcml0ZUFsbEJ5dGVzKCRidW5kbGVBcmNoaXZlLCAkb3JpZ2luYWxDaXBoZXJC
eXRlcykgfQ0KDQogICAgJHVudHJ1c3RlZCA9IEpvaW4tUGF0aCAkdGVzdFJvb3RGdWxsICd1bnRy
dXN0ZWQtdGFyZ2V0Jw0KICAgIFtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHVudHJ1
c3RlZCkgfCBPdXQtTnVsbA0KICAgIFdyaXRlLVRleHRDcmVhdGVOZXcgLVBhdGggKEpvaW4tUGF0
aCAkdW50cnVzdGVkICdrZWVwLnR4dCcpIC1UZXh0ICdwcmVzZXJ2ZSBtZScNCiAgICAkdW50cnVz
dGVkUmVzdWx0ID0gSW52b2tlLU5hdGl2ZUNhcHR1cmVGb3JQb3J0YWJsZVRlc3QgLUV4ZWN1dGFi
bGUgJHBvd2Vyc2hlbGwgLUFyZ3VtZW50cyAoJGNvbW1vbkFyZ3MgKyBAKCctQWN0aW9uJywgJ1Bv
cnRhYmxlUmVzdG9yZScsICctVGFyZ2V0U291bFJvb3QnLCAkdW50cnVzdGVkKSkNCiAgICBpZiAo
JHVudHJ1c3RlZFJlc3VsdC5leGl0Q29kZSAtZXEgMCkgeyB0aHJvdyAn67mE7Ja0IOyeiOyngCDs
lYrsnYAg66+47Iud67OEIO2PtOuNlOulvCDsnpjrqrsg7ZeI7Jqp7ZaI7Iq164uI64ukLicgfQ0K
ICAgIGlmICgoR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHVudHJ1c3RlZCAn
a2VlcC50eHQnKSAtUmF3IC1FbmNvZGluZyBVVEY4KSAtbmUgJ3ByZXNlcnZlIG1lJykgeyB0aHJv
dyAn6rGw67aA7ZWcIOuvuOyLneuzhCDtj7TrjZTsnZgg6riw7KG0IO2MjOydvOydtCDrsJTrgIzs
l4jsirXri4jri6QuJyB9DQoNCiAgICAkb2xkT25lRHJpdmUgPSBbRW52aXJvbm1lbnRdOjpHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKCdPbmVEcml2ZScpDQogICAgJGFjdHVhbERlc2t0b3AgPSBbRW52
aXJvbm1lbnRdOjpHZXRGb2xkZXJQYXRoKFtFbnZpcm9ubWVudCtTcGVjaWFsRm9sZGVyXTo6RGVz
a3RvcERpcmVjdG9yeSkNCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkYWN0
dWFsRGVza3RvcCkpIHsgdGhyb3cgJ+2YhOyerCBXaW5kb3dzIOyCrOyaqeyekOydmCDrsJTtg5Xt
mZTrqbQg6rK966Gc66W8IO2FjOyKpO2KuOyXkOyEnCDtmZXsnbjtlZjsp4Ag66q77ZaI7Iq164uI
64ukLicgfQ0KICAgICRhY3R1YWxEZXNrdG9wUmVzdWx0ID0gSW52b2tlLU5hdGl2ZUNhcHR1cmVG
b3JQb3J0YWJsZVRlc3QgLUV4ZWN1dGFibGUgJHBvd2Vyc2hlbGwgLUFyZ3VtZW50cyAoJGNvbW1v
bkFyZ3MgKyBAKCctQWN0aW9uJywgJ1BvcnRhYmxlUmVzdG9yZScsICctVGFyZ2V0U291bFJvb3Qn
LCAkYWN0dWFsRGVza3RvcCkpDQogICAgaWYgKCRhY3R1YWxEZXNrdG9wUmVzdWx0LmV4aXRDb2Rl
IC1lcSAwKSB7IHRocm93ICfsi6TsoJwg67CU7YOV7ZmU66m0IOuzteybkOydhCDsnpjrqrsg7ZeI
7Jqp7ZaI7Iq164uI64ukLicgfQ0KICAgICRvbmVEcml2ZVJvb3QgPSBKb2luLVBhdGggJHRlc3RS
b290RnVsbCAnT25lRHJpdmVGaXh0dXJlJw0KICAgICRvbmVEcml2ZURlc2t0b3AgPSBKb2luLVBh
dGggJG9uZURyaXZlUm9vdCAnRGVza3RvcCcNCiAgICBbSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGly
ZWN0b3J5KCRvbmVEcml2ZURlc2t0b3ApIHwgT3V0LU51bGwNCiAgICB0cnkgew0KICAgICAgICBb
RW52aXJvbm1lbnRdOjpTZXRFbnZpcm9ubWVudFZhcmlhYmxlKCdPbmVEcml2ZScsICRvbmVEcml2
ZVJvb3QpDQogICAgICAgICRkZXNrdG9wUmVzdWx0ID0gSW52b2tlLU5hdGl2ZUNhcHR1cmVGb3JQ
b3J0YWJsZVRlc3QgLUV4ZWN1dGFibGUgJHBvd2Vyc2hlbGwgLUFyZ3VtZW50cyAoJGNvbW1vbkFy
Z3MgKyBAKCctQWN0aW9uJywgJ1BvcnRhYmxlUmVzdG9yZScsICctVGFyZ2V0U291bFJvb3QnLCAk
b25lRHJpdmVEZXNrdG9wKSkNCiAgICAgICAgaWYgKCRkZXNrdG9wUmVzdWx0LmV4aXRDb2RlIC1l
cSAwKSB7IHRocm93ICdPbmVEcml2ZSDrsJTtg5XtmZTrqbQg67O17JuQ7J2EIOyemOuquyDtl4js
mqntlojsirXri4jri6QuJyB9DQogICAgfQ0KICAgIGZpbmFsbHkgeyBbRW52aXJvbm1lbnRdOjpT
ZXRFbnZpcm9ubWVudFZhcmlhYmxlKCdPbmVEcml2ZScsICRvbGRPbmVEcml2ZSkgfQ0KDQogICAg
JHJlYWxUYXJnZXQgPSBKb2luLVBhdGggJHRlc3RSb290RnVsbCAnanVuY3Rpb24tcmVhbCcNCiAg
ICAkanVuY3Rpb25UYXJnZXQgPSBKb2luLVBhdGggJHRlc3RSb290RnVsbCAnanVuY3Rpb24tdGFy
Z2V0Jw0KICAgIFtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHJlYWxUYXJnZXQpIHwg
T3V0LU51bGwNCiAgICAkanVuY3Rpb24gPSBOZXctSXRlbSAtSXRlbVR5cGUgSnVuY3Rpb24gLVBh
dGggJGp1bmN0aW9uVGFyZ2V0IC1UYXJnZXQgJHJlYWxUYXJnZXQgLUVycm9yQWN0aW9uIFN0b3AN
CiAgICB0cnkgew0KICAgICAgICAkanVuY3Rpb25SZXN1bHQgPSBJbnZva2UtTmF0aXZlQ2FwdHVy
ZUZvclBvcnRhYmxlVGVzdCAtRXhlY3V0YWJsZSAkcG93ZXJzaGVsbCAtQXJndW1lbnRzICgkY29t
bW9uQXJncyArIEAoJy1BY3Rpb24nLCAnUG9ydGFibGVSZXN0b3JlJywgJy1UYXJnZXRTb3VsUm9v
dCcsICRqdW5jdGlvblRhcmdldCkpDQogICAgICAgIGlmICgkanVuY3Rpb25SZXN1bHQuZXhpdENv
ZGUgLWVxIDApIHsgdGhyb3cgJ+yXsOqysOygkCDrs7Xsm5Ag64yA7IOB7J2EIOyemOuquyDtl4js
mqntlojsirXri4jri6QuJyB9DQogICAgfQ0KICAgIGZpbmFsbHkgew0KICAgICAgICBpZiAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkanVuY3Rpb25UYXJnZXQpIHsgUmVtb3ZlLUl0ZW0gLUxpdGVy
YWxQYXRoICRqdW5jdGlvblRhcmdldCAtRm9yY2UgfQ0KICAgIH0NCg0KICAgICR0YXJnZXQgPSBK
b2luLVBhdGggJHRlc3RSb290RnVsbCAncmVzdG9yZWQtc291bCcNCiAgICAkcmVzdG9yZVJlc3Vs
dCA9IEludm9rZS1OYXRpdmVDYXB0dXJlRm9yUG9ydGFibGVUZXN0IC1FeGVjdXRhYmxlICRwb3dl
cnNoZWxsIC1Bcmd1bWVudHMgKCRjb21tb25BcmdzICsgQCgnLUFjdGlvbicsICdQb3J0YWJsZVJl
c3RvcmUnLCAnLVRhcmdldFNvdWxSb290JywgJHRhcmdldCkpDQogICAgaWYgKCRyZXN0b3JlUmVz
dWx0LmV4aXRDb2RlIC1uZSAwKSB7IHRocm93ICgi7Zy064yAIOuzteybkOq4sOydmCDsg4gg7JiB
7Zi8IOuzteybkOydtCDsi6TtjKjtlojsirXri4jri6Q6ICIgKyAoJHJlc3RvcmVSZXN1bHQub3V0
cHV0IC1qb2luICcgJykpIH0NCiAgICAkaGVsbG9QYXRoID0gSm9pbi1QYXRoICR0YXJnZXQgJ2Rh
dGFcaGVsbG8udHh0Jw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRoZWxs
b1BhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICfrs7Xsm5DrkJwgZHVtbXkg7YyM7J287J20
IOyXhuyKteuLiOuLpC4nIH0NCiAgICBXcml0ZS1UZXh0Q3JlYXRlTmV3IC1QYXRoIChKb2luLVBh
dGggJHRlc3RSb290RnVsbCAncmVwbGFjZW1lbnQudHh0JykgLVRleHQgImV4aXN0aW5nIHVzZXIg
ZWRpdGByYG4iDQogICAgW0lPLkZpbGVdOjpDb3B5KChKb2luLVBhdGggJHRlc3RSb290RnVsbCAn
cmVwbGFjZW1lbnQudHh0JyksICRoZWxsb1BhdGgsICR0cnVlKQ0KICAgICRtZXJnZVJlc3VsdCA9
IEludm9rZS1OYXRpdmVDYXB0dXJlRm9yUG9ydGFibGVUZXN0IC1FeGVjdXRhYmxlICRwb3dlcnNo
ZWxsIC1Bcmd1bWVudHMgKCRjb21tb25BcmdzICsgQCgnLUFjdGlvbicsICdQb3J0YWJsZVJlc3Rv
cmUnLCAnLVRhcmdldFNvdWxSb290JywgJHRhcmdldCkpDQogICAgaWYgKCRtZXJnZVJlc3VsdC5l
eGl0Q29kZSAtbmUgMCkgeyB0aHJvdyAoIuq4sOyhtCDqsJnsnYAg7JiB7Zi87J2YIOu5hO2MjOq0
tCDrs5HtlansnbQg7Iuk7Yyo7ZaI7Iq164uI64ukOiAiICsgKCRtZXJnZVJlc3VsdC5vdXRwdXQg
LWpvaW4gJyAnKSkgfQ0KICAgIGlmICgoR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRoZWxsb1Bh
dGggLVJhdyAtRW5jb2RpbmcgVVRGOCkgLW5lICJleGlzdGluZyB1c2VyIGVkaXRgcmBuIikgeyB0
aHJvdyAn6riw7KG0IOyCrOyaqeyekCDtjIzsnbzsnYQg642u7Ja07I287Iq164uI64ukLicgfQ0K
ICAgICRleGlzdGluZ0NvcGllcyA9IEAoR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggKEpvaW4t
UGF0aCAkdGFyZ2V0ICdfYWdlbnRccmVzdG9yZS1jb25mbGljdHMnKSAtRmlsdGVyICcqLmV4aXN0
aW5nJyAtRmlsZSAtUmVjdXJzZSAtRXJyb3JBY3Rpb24gU3RvcCkNCiAgICAkaW5jb21pbmdDb3Bp
ZXMgPSBAKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHRhcmdldCAnX2Fn
ZW50XHJlc3RvcmUtY29uZmxpY3RzJykgLUZpbHRlciAnKi5pbmNvbWluZycgLUZpbGUgLVJlY3Vy
c2UgLUVycm9yQWN0aW9uIFN0b3ApDQogICAgaWYgKCRleGlzdGluZ0NvcGllcy5Db3VudCAtbHQg
MSAtb3IgJGluY29taW5nQ29waWVzLkNvdW50IC1sdCAxKSB7IHRocm93ICfstqnrj4ztlZwg7JaR
7Kq9IO2MjOydvCDsgqzrs7jsnbQg66qo65GQIOuztOyhtOuQmOyngCDslYrslZjsirXri4jri6Qu
JyB9DQoNCiAgICAkbGF1bmNoZXJCeXRlcyA9IFtJTy5GaWxlXTo6UmVhZEFsbEJ5dGVzKChKb2lu
LVBhdGggJGJ1bmRsZS5idW5kbGVQYXRoICfrs7Xsm5DtlZjquLAuY21kJykpDQogICAgJGxhdW5j
aGVyRGVjb2RlZCA9IFtUZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRTdHJpbmcoJGxhdW5jaGVyQnl0
ZXMpDQogICAgaWYgKCRsYXVuY2hlckJ5dGVzLkxlbmd0aCAtZ2UgMyAtYW5kICRsYXVuY2hlckJ5
dGVzWzBdIC1lcSAweEVGIC1hbmQgJGxhdW5jaGVyQnl0ZXNbMV0gLWVxIDB4QkIgLWFuZCAkbGF1
bmNoZXJCeXRlc1syXSAtZXEgMHhCRikgeyB0aHJvdyAn67O17JuQ7ZWY6riwLmNtZOyXkCBVVEYt
OCBCT03snbQg65Ok7Ja06rCU7Iq164uI64ukLicgfQ0KICAgIGlmICgkbGF1bmNoZXJEZWNvZGVk
LlJlcGxhY2UoImByYG4iLCAnJykuQ29udGFpbnMoImBuIikpIHsgdGhyb3cgJ+uzteybkO2VmOq4
sC5jbWTsl5AgQ1JMRuqwgCDslYTri4wg7KSE67CU6r+I7J20IOyeiOyKteuLiOuLpC4nIH0NCiAg
ICAkcmVzdG9yZUJ5dGVzID0gW0lPLkZpbGVdOjpSZWFkQWxsQnl0ZXMoJHJlc3RvcmVTY3JpcHQp
DQogICAgaWYgKCRyZXN0b3JlQnl0ZXMuTGVuZ3RoIC1sdCAzIC1vciAkcmVzdG9yZUJ5dGVzWzBd
IC1uZSAweEVGIC1vciAkcmVzdG9yZUJ5dGVzWzFdIC1uZSAweEJCIC1vciAkcmVzdG9yZUJ5dGVz
WzJdIC1uZSAweEJGKSB7IHRocm93ICdXaW5kb3dzIFBvd2VyU2hlbGwgNS4x7JqpIOuzteybkC5w
czHsl5AgVVRGLTggQk9N7J20IOyXhuyKteuLiOuLpC4nIH0NCg0KICAgIFtwc2N1c3RvbW9iamVj
dF1Aew0KICAgICAgICBzdGF0dXMgPSAnUEFTUycNCiAgICAgICAgYnVuZGxlUGF0aCA9ICRidW5k
bGUuYnVuZGxlUGF0aA0KICAgICAgICB0YXJnZXRQYXRoID0gJHRhcmdldA0KICAgICAgICB0ZXN0
cyA9IEAoJ3NlbGYtY29udGFpbmVkLWZvbGRlci1idW5kbGUnLCAncHVibGljLW1hbmlmZXN0LWFu
ZC1zaGEyNTYnLCAnY2lwaGVyLXRhbXBlci1yZWZ1c2FsJywgJ3RocmVlLWxvY2tlZC1hZ2UtZXhl
Y3V0YWJsZXMnLCAndXRmOC1uby1ib20tY3JsZi1sYXVuY2hlcicsICd3aW5kb3dzLXBvd2Vyc2hl
bGwtNS4xLW9mZmxpbmUtdmVyaWZ5LWFuZC1yZXN0b3JlJywgJ2Rlc2t0b3AtYW5kLW9uZWRyaXZl
LWRlc2t0b3AtcmVmdXNhbCcsICdyZXBhcnNlLXRhcmdldC1yZWZ1c2FsJywgJ25vbmVtcHR5LXVu
dHJ1c3RlZC10YXJnZXQtcmVmdXNhbCcsICdzYW1lLXNvdWwtcHJlc2VydmUtYm90aC1jb25mbGlj
dC1jb3BpZXMnKQ0KICAgIH0NCn0NCg0KaWYgKCRzY3JpcHQ6SXNQb3J0YWJsZUFjdGlvbikgew0K
ICAgIEludm9rZS1Qb3J0YWJsZUJ1bmRsZVJlc3RvcmUgLVZlcmlmeU9ubHk6KCRBY3Rpb24gLWVx
ICdQb3J0YWJsZVZlcmlmeScpDQogICAgcmV0dXJuDQp9DQoNCkFzc2VydC1UcnVzdGVkTG9jYWxF
bmdpbmUNCmlmICgkQWN0aW9uIC1lcSAnU2VsZlRlc3QnKSB7DQogICAgJGdvb2QgPSBAKCdwYXls
b2FkL2ZpbGUudHh0JywgJ21hbmlmZXN0Lmpzb24nLCAncGF5bG9hZC9SMDEt7Jet7ZWgL2ZpbGUu
bWQnKQ0KICAgICRiYWQgPSBAKCcuLi9lc2NhcGUnLCAnL2Fic29sdXRlJywgJ0M6XGVzY2FwZScs
ICdwYXlsb2FkL2E6c3RyZWFtJywgJ3BheWxvYWQvL2RvdWJsZScsICdwYXlsb2FkLy4vZG90Jywg
J3BheWxvYWQvQ09OJywgJ3BheWxvYWQvdHJhaWxpbmcuJywgJ3BheWxvYWQvYSAvZmlsZScsICdw
YXlsb2FkL2E8YmFkJykNCiAgICBmb3JlYWNoICgkcGF0aCBpbiAkZ29vZCkgeyBpZiAoLW5vdCAo
VGVzdC1SZWxhdGl2ZUFyY2hpdmVQYXRoICRwYXRoKSkgeyB0aHJvdyAi7JWI7KCEIOqyveuhnOul
vCDsnpjrqrsg6rGw67aA7ZaI7Iq164uI64ukOiAkcGF0aCIgfSB9DQogICAgZm9yZWFjaCAoJHBh
dGggaW4gJGJhZCkgeyBpZiAoVGVzdC1SZWxhdGl2ZUFyY2hpdmVQYXRoICRwYXRoKSB7IHRocm93
ICLsnITtl5gg6rK966Gc66W8IO2XiOyaqe2WiOyKteuLiOuLpDogJHBhdGgiIH0gfQ0KICAgICRw
b3J0YWJsZSA9ICRudWxsDQogICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZSgkUG9ydGFibGVUZXN0Um9vdCkpIHsgJHBvcnRhYmxlID0gSW52b2tlLVBvcnRhYmxlUmVzdG9y
ZVNlbGZUZXN0IC1UZXN0Um9vdCAkUG9ydGFibGVUZXN0Um9vdCB9DQogICAgW3BzY3VzdG9tb2Jq
ZWN0XUB7IGNvbXBvbmVudCA9ICdleHBvcnQtcmVzdG9yZSc7IHN0YXR1cyA9ICdQQVNTJzsgdGVz
dHMgPSBAKCdyZWxhdGl2ZS10cmF2ZXJzYWwnLCAnYWJzb2x1dGUtcGF0aCcsICdBRFMtY29sb24n
LCAnd2luZG93cy1kZXZpY2UtYW5kLWFsaWFzLXBhdGhzJywgJ3BhY2thZ2Utcm9vdC12YWxpZGF0
b3InKTsgcG9ydGFibGUgPSAkcG9ydGFibGUgfQ0KICAgIHJldHVybg0KfQ0KDQpzd2l0Y2ggKCRB
Y3Rpb24pIHsNCiAgICAnRXhwb3J0JyB7DQogICAgICAgICRvcGVyYXRpb25Mb2NrID0gTmV3LVNv
dWxPcGVyYXRpb25Mb2NrIC1OYW1lICdwb3J0YWJsZS10cmFuc2ZlcicgLVdhaXRUaW1lb3V0TWls
bGlzZWNvbmRzIDMwMDAwDQogICAgICAgIHRyeSB7IEludm9rZS1FeHBvcnQgfSBmaW5hbGx5IHsg
RXhpdC1Tb3VsT3BlcmF0aW9uTG9jayAtTG9jayAkb3BlcmF0aW9uTG9jayB9DQogICAgfQ0KICAg
ICdSZXN0b3JlJyB7DQogICAgICAgICRvcGVyYXRpb25Mb2NrID0gTmV3LVNvdWxPcGVyYXRpb25M
b2NrIC1OYW1lICdwb3J0YWJsZS10cmFuc2ZlcicgLVdhaXRUaW1lb3V0TWlsbGlzZWNvbmRzIDMw
MDAwDQogICAgICAgIHRyeSB7IEludm9rZS1SZXN0b3JlT3JWZXJpZnkgfSBmaW5hbGx5IHsgRXhp
dC1Tb3VsT3BlcmF0aW9uTG9jayAtTG9jayAkb3BlcmF0aW9uTG9jayB9DQogICAgfQ0KICAgICdW
ZXJpZnknIHsNCiAgICAgICAgJG9wZXJhdGlvbkxvY2sgPSBOZXctU291bE9wZXJhdGlvbkxvY2sg
LU5hbWUgJ3BvcnRhYmxlLXRyYW5zZmVyJyAtV2FpdFRpbWVvdXRNaWxsaXNlY29uZHMgMzAwMDAN
CiAgICAgICAgdHJ5IHsgSW52b2tlLVJlc3RvcmVPclZlcmlmeSAtVmVyaWZ5T25seSB9IGZpbmFs
bHkgeyBFeGl0LVNvdWxPcGVyYXRpb25Mb2NrIC1Mb2NrICRvcGVyYXRpb25Mb2NrIH0NCiAgICB9
DQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/extract-guide-v8.py","encoding":"base64","size":5604,"runtimeSha256":"0d6669c30394efa326dcc62c2190942f56da6e036fa9246cb9d489446d3e6b97","normalizedSha256":"0d6669c30394efa326dcc62c2190942f56da6e036fa9246cb9d489446d3e6b97"} -->
```base64
IiIiVmVyaWZ5IGV2ZXJ5IGVtYmVkZGVkIGZpbGUgYmVmb3JlIGV4dHJhY3RpbmcgYSB2OCBndWlk
ZTsgbmV2ZXIgb3ZlcndyaXRlIGZpbGVzLiIiIgppbXBvcnQgYXJncGFyc2UKaW1wb3J0IGJhc2U2
NAppbXBvcnQgaGFzaGxpYgppbXBvcnQganNvbgppbXBvcnQgb3MKZnJvbSBwYXRobGliIGltcG9y
dCBQYXRoLCBQdXJlUG9zaXhQYXRoCmltcG9ydCByZQppbXBvcnQgc3RhdAppbXBvcnQgc3lzCgpC
RUdJTiA9ICc8IS0tIFY3LUZJTEUtQkxPQ0tTLUJFR0lOIC0tPicKRU5EID0gJzwhLS0gVjctRklM
RS1CTE9DS1MtRU5EIC0tPicKQkxPQ0sgPSByZS5jb21waWxlKHInPCEtLSBGSUxFLUJFR0lOIChc
e1teXG5dK1x9KSAtLT5cbmBgYGJhc2U2NFxuKFtBLVphLXowLTkrLz1cc10qKVxuYGBgXG48IS0t
IEZJTEUtRU5EIC0tPicpClBSRUZJWCA9ICdfYWdlbnQvc2V0dXAvJwpBRERPTiA9IChQUkVGSVgg
KyAnaW5zdGFsbC1vbnRvbG9neS12OC5weScsIFBSRUZJWCArICdleHRyYWN0LWd1aWRlLXY4LnB5
JykKCgpkZWYgc2hhKGRhdGEpOgogICAgcmV0dXJuIGhhc2hsaWIuc2hhMjU2KGRhdGEpLmhleGRp
Z2VzdCgpCgoKZGVmIG5vcm1hbGl6ZWQoZGF0YSk6CiAgICByZXR1cm4gZGF0YS5kZWNvZGUoJ3V0
Zi04LXNpZycpLnJlcGxhY2UoJ1xyXG4nLCAnXG4nKS5yZXBsYWNlKCdccicsICdcbicpLmVuY29k
ZSgndXRmLTgnKQoKCmRlZiBzYWZlX3JlbGF0aXZlKHZhbHVlKToKICAgIGlmIG5vdCBpc2luc3Rh
bmNlKHZhbHVlLCBzdHIpIG9yIG5vdCB2YWx1ZSBvciAnXFwnIGluIHZhbHVlIG9yICc6JyBpbiB2
YWx1ZToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYnVW5zYWZlIHJlbGF0aXZlIHBhdGg6IHt2
YWx1ZSFyfScpCiAgICBwYXJ0cyA9IHZhbHVlLnNwbGl0KCcvJykKICAgIGlmIGFueShub3QgcCBv
ciBwIGluICgnLicsICcuLicpIG9yIHBbLTFdIGluICcuICcgZm9yIHAgaW4gcGFydHMpOgogICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoZidVbnNhZmUgcGF0aCBzZWdtZW50OiB7dmFsdWUhcn0nKQog
ICAgaWYgYW55KHJlLm1hdGNoKHInKD9pKV4oY29ufHBybnxhdXh8bnVsfGNvbVsxLTldfGxwdFsx
LTldKSg/OlwufCQpJywgcCkgZm9yIHAgaW4gcGFydHMpOgogICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoZidSZXNlcnZlZCBmaWxlbmFtZToge3ZhbHVlIXJ9JykKICAgIGlmIGFueShhbnkoYyBpbiBw
IGZvciBjIGluICc8PiJ8PyonKSBvciBhbnkob3JkKGMpIDwgMzIgZm9yIGMgaW4gcCkgZm9yIHAg
aW4gcGFydHMpOgogICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZidJbnZhbGlkIGZpbGVuYW1lOiB7
dmFsdWUhcn0nKQogICAgcGF0aCA9IFB1cmVQb3NpeFBhdGgodmFsdWUpCiAgICBpZiBwYXRoLmlz
X2Fic29sdXRlKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQWJzb2x1dGUgcGF5bG9hZCBw
YXRoJykKICAgIHJldHVybiBwYXRoCgoKZGVmIG5vX2xpbmtzKHBhdGgpOgogICAgIiIiQ2hlY2sg
dGhlIGxleGljYWwgcGF0aCwgaW5jbHVkaW5nIGFuY2VzdG9ycywgYmVmb3JlIHJlc29sdmluZyBv
ciB3cml0aW5nLiIiIgogICAgcGF0aCA9IFBhdGgob3MucGF0aC5hYnNwYXRoKHBhdGgpKQogICAg
Zm9yIHBhcnQgaW4gKHBhdGgsICpwYXRoLnBhcmVudHMpOgogICAgICAgIHRyeToKICAgICAgICAg
ICAgaW5mbyA9IHBhcnQubHN0YXQoKQogICAgICAgIGV4Y2VwdCBGaWxlTm90Rm91bmRFcnJvcjoK
ICAgICAgICAgICAgY29udGludWUKICAgICAgICBpZiBzdGF0LlNfSVNMTksoaW5mby5zdF9tb2Rl
KSBvciBnZXRhdHRyKGluZm8sICdzdF9maWxlX2F0dHJpYnV0ZXMnLCAwKSAmIDB4NDAwOgogICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYnTGlua2VkL3JlcGFyc2UgcGF0aCBpcyBub3Qgc3Vw
cG9ydGVkOiB7cGFydH0nKQogICAgICAgIGlmIHBhcnQgIT0gcGF0aCBhbmQgbm90IHN0YXQuU19J
U0RJUihpbmZvLnN0X21vZGUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYnUGFyZW50
IGlzIG5vdCBhIGRpcmVjdG9yeToge3BhcnR9JykKICAgIHJldHVybiBwYXRoCgoKZGVmIHJlYWRf
YmxvY2tzKGd1aWRlKToKICAgIHRleHQgPSBQYXRoKGd1aWRlKS5yZWFkX2J5dGVzKCkuZGVjb2Rl
KCd1dGYtOC1zaWcnKS5yZXBsYWNlKCdcclxuJywgJ1xuJykKICAgIGlmIHRleHQuY291bnQoQkVH
SU4pICE9IDEgb3IgdGV4dC5jb3VudChFTkQpICE9IDEgb3IgdGV4dC5pbmRleChFTkQpIDwgdGV4
dC5pbmRleChCRUdJTik6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTWlzc2luZyBvciBhbWJp
Z3VvdXMgcGF5bG9hZCBtYXJrZXJzJykKICAgIGJvZHkgPSB0ZXh0LnNwbGl0KEJFR0lOLCAxKVsx
XS5zcGxpdChFTkQsIDEpWzBdCiAgICBtYXRjaGVzID0gbGlzdChCTE9DSy5maW5kaXRlcihib2R5
KSkKICAgIGlmIG5vdCBtYXRjaGVzIG9yIEJMT0NLLnN1YignJywgYm9keSkuc3RyaXAoKToKICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdNYWxmb3JtZWQgcGF5bG9hZCBibG9jayBvciB1bmV4cGVj
dGVkIGNvbnRlbnQnKQogICAgcmVzdWx0ID0ge30KICAgIHNlZW4gPSBzZXQoKQogICAgZm9yIG1h
dGNoIGluIG1hdGNoZXM6CiAgICAgICAgbWV0YSA9IGpzb24ubG9hZHMobWF0Y2hbMV0pCiAgICAg
ICAgcGF0aCA9IG1ldGFbJ3BhdGgnXQogICAgICAgIHNhZmVfcmVsYXRpdmUocGF0aCkKICAgICAg
ICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKFBSRUZJWCkgb3IgcGF0aC5jYXNlZm9sZCgpIGluIHNl
ZW46CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZidEdXBsaWNhdGUgb3IgdW5zdXBwb3J0
ZWQgcGF5bG9hZCBwYXRoOiB7cGF0aH0nKQogICAgICAgIHNlZW4uYWRkKHBhdGguY2FzZWZvbGQo
KSkKICAgICAgICBpZiBtZXRhWydlbmNvZGluZyddICE9ICdiYXNlNjQnOgogICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdVbnN1cHBvcnRlZCBlbmNvZGluZycpCiAgICAgICAgZGF0YSA9IGJh
c2U2NC5iNjRkZWNvZGUocmUuc3ViKHInXHMnLCAnJywgbWF0Y2hbMl0pLCB2YWxpZGF0ZT1UcnVl
KQogICAgICAgIGlmIGxlbihkYXRhKSAhPSBtZXRhWydzaXplJ10gb3Igc2hhKGRhdGEpICE9IG1l
dGFbJ3J1bnRpbWVTaGEyNTYnXSBvciBzaGEobm9ybWFsaXplZChkYXRhKSkgIT0gbWV0YVsnbm9y
bWFsaXplZFNoYTI1NiddOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYnUGF5bG9hZCBp
bnRlZ3JpdHkgZmFpbHVyZToge3BhdGh9JykKICAgICAgICByZXN1bHRbcGF0aF0gPSBkYXRhCiAg
ICByZXR1cm4gcmVzdWx0CgoKZGVmIGlzX2FkZG9uKHBhdGgpOgogICAgcmV0dXJuIHBhdGggaW4g
QURET04gb3IgcGF0aC5zdGFydHN3aXRoKFBSRUZJWCArICdvbnRvbG9neS12OC8nKQoKCmRlZiBl
eHRyYWN0KGd1aWRlLCByb290LCBjb21wb25lbnQ9J29udG9sb2d5JywgdmVyaWZ5X29ubHk9RmFs
c2UpOgogICAgcmVjb3JkcyA9IHJlYWRfYmxvY2tzKGd1aWRlKQogICAgaWYgY29tcG9uZW50ID09
ICdvbnRvbG9neSc6CiAgICAgICAgcmVjb3JkcyA9IHtwOiBkIGZvciBwLCBkIGluIHJlY29yZHMu
aXRlbXMoKSBpZiBpc19hZGRvbihwKX0KICAgIGlmIG5vdCByZWNvcmRzOgogICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1NlbGVjdGVkIGNvbXBvbmVudCBpcyBhYnNlbnQnKQogICAgcm9vdCA9IG5v
X2xpbmtzKHJvb3QpCiAgICBpZiBub3Qgcm9vdC5pc19kaXIoKToKICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCdDcmVhdGUgYW5kIGNvbmZpcm0gdGhlIHdvcmtzcGFjZSBkaXJlY3RvcnkgZmlyc3Qn
KQogICAgIyBBIGtub3duIGluaXRpYWxpemVkIGluc3RhbGxhdGlvbiBuZXZlciByZWNlaXZlcyB0
aGUgb2xkIGVuZ2luZSBieSBkZWZhdWx0LgogICAgaWYgY29tcG9uZW50ID09ICdhbGwnIGFuZCAo
cm9vdCAvICdzb3VsLXN0YXRlLmpzb24nKS5leGlzdHMoKToKICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdFeGlzdGluZyBpbnN0YWxsYXRpb246IHVzZSAtLWNvbXBvbmVudCBvbnRvbG9neTsgcHJl
c2VydmUgdGhlIHY3IGVuZ2luZScpCiAgICBjb25mbGljdHMsIHBlbmRpbmcgPSBbXSwgW10KICAg
IGZvciByZWwsIGRhdGEgaW4gcmVjb3Jkcy5pdGVtcygpOgogICAgICAgIHRhcmdldCA9IG5vX2xp
bmtzKHJvb3Quam9pbnBhdGgoKlB1cmVQb3NpeFBhdGgocmVsKS5wYXJ0cykpCiAgICAgICAgaWYg
bm90IHRhcmdldC5pc19yZWxhdGl2ZV90byhyb290KToKICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignVGFyZ2V0IGVzY2FwZWQgcm9vdCcpCiAgICAgICAgaWYgdGFyZ2V0LmV4aXN0cygpOgog
ICAgICAgICAgICBpZiBub3QgdGFyZ2V0LmlzX2ZpbGUoKSBvciB0YXJnZXQucmVhZF9ieXRlcygp
ICE9IGRhdGE6CiAgICAgICAgICAgICAgICBjb25mbGljdHMuYXBwZW5kKHJlbCkKICAgICAgICBl
bHNlOgogICAgICAgICAgICBwZW5kaW5nLmFwcGVuZCgodGFyZ2V0LCBkYXRhKSkKICAgIGlmIGNv
bmZsaWN0czoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBmaWxlcyBleHRyYWN0ZWQ7IGV4
aXN0aW5nIGZpbGVzIGRpZmZlcjogJyArICcsICcuam9pbihjb25mbGljdHMpKQogICAgaWYgbm90
IHZlcmlmeV9vbmx5OgogICAgICAgIGZvciB0YXJnZXQsIGRhdGEgaW4gcGVuZGluZzoKICAgICAg
ICAgICAgbm9fbGlua3ModGFyZ2V0KQogICAgICAgICAgICB0YXJnZXQucGFyZW50Lm1rZGlyKHBh
cmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkKICAgICAgICAgICAgd2l0aCB0YXJnZXQub3Blbign
eGInKSBhcyBzdHJlYW06CiAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSkKICAgIHJl
dHVybiB7J3ZlcmlmaWVkRmlsZXMnOiBsZW4ocmVjb3JkcyksICduZXdGaWxlcyc6IGxlbihwZW5k
aW5nKSwgJ2NvbXBvbmVudCc6IGNvbXBvbmVudCwKICAgICAgICAgICAgJ3N0YXR1cyc6ICd2ZXJp
ZmllZCcgaWYgdmVyaWZ5X29ubHkgZWxzZSAnZXh0cmFjdGVkJywgJ3Jvb3QnOiBzdHIocm9vdCl9
CgoKZGVmIG1haW4oKToKICAgIGFwID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRp
b249X19kb2NfXykKICAgIGFwLmFkZF9hcmd1bWVudCgnLS1ndWlkZScsIHJlcXVpcmVkPVRydWUp
CiAgICBhcC5hZGRfYXJndW1lbnQoJy0tcm9vdCcsIHJlcXVpcmVkPVRydWUpCiAgICBhcC5hZGRf
YXJndW1lbnQoJy0tY29tcG9uZW50JywgY2hvaWNlcz0oJ2FsbCcsICdvbnRvbG9neScpLCBkZWZh
dWx0PSdvbnRvbG9neScpCiAgICBhcC5hZGRfYXJndW1lbnQoJy0tdmVyaWZ5LW9ubHknLCBhY3Rp
b249J3N0b3JlX3RydWUnKQogICAgYXJncyA9IGFwLnBhcnNlX2FyZ3MoKQogICAgdHJ5OgogICAg
ICAgIHByaW50KGpzb24uZHVtcHMoZXh0cmFjdChhcmdzLmd1aWRlLCBhcmdzLnJvb3QsIGFyZ3Mu
Y29tcG9uZW50LCBhcmdzLnZlcmlmeV9vbmx5KSwgZW5zdXJlX2FzY2lpPUZhbHNlKSkKICAgICAg
ICByZXR1cm4gMAogICAgZXhjZXB0IChWYWx1ZUVycm9yLCBPU0Vycm9yLCBLZXlFcnJvcikgYXMg
ZXhjOgogICAgICAgIHByaW50KGYnRS1FWFRSQUNUOiB7ZXhjfScsIGZpbGU9c3lzLnN0ZGVycikK
ICAgICAgICByZXR1cm4gMQoKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICByYWlzZSBT
eXN0ZW1FeGl0KG1haW4oKSkK
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/finalize-v7.ps1","encoding":"base64","size":48579,"runtimeSha256":"d5bea9ec28a3767df8a7bd1cd70c1ac0ac88d733f97177122edd01aee0ff72c4","normalizedSha256":"02d3e4dc70283d4ff205e35f28588c0e1248c5bf272c129c7bb5796a4784acd8"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIEZpbmFsaXplcyBv
bmUgcGVuZGluZyB2NyBnZW5lcmF0aW9uIGFmdGVyIGFsbCBDbGF1ZGUgYW5kIENvZGV4IHdyaXRl
cnMgc3RvcC4NCg0KLkRFU0NSSVBUSU9ODQogIFJlLXJlYWRzIHRoZSBsYXRlc3Qgc2V0dGluZ3Ms
IGNyZWF0ZXMgYnl0ZS1mb3ItYnl0ZSBiYWNrdXBzLCBidWlsZHMgYW5kIGNoZWNrcw0KICBtZXJn
ZSBjYW5kaWRhdGVzLCBhcHBsaWVzIG9ubHkgbmFtZWQga2V5cywgYW5kIGNvbW1pdHMgYWN0aXZl
LWdlbmVyYXRpb24uanNvbg0KICBsYXN0LiBJdCBuZXZlciBjaGFuZ2VzIHByb3h5L2Jhc2UtVVJM
IGZpZWxkcywgc2Vzc2lvbiBkYXRhYmFzZXMsIFdBTCBmaWxlcywNCiAgc291cmNlIHRyZWVzLCBv
ciBkb2N1bWVudC1za2lsbHMgYnl0ZXMuIEl0IHBlcmZvcm1zIG5vIG5ldHdvcmsgb3IgYWdlbnQg
Y2FsbC4NCiM+DQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oDQogICAgW1BhcmFtZXRlcihNYW5k
YXRvcnkpXQ0KICAgIFtWYWxpZGF0ZVBhdHRlcm4oJ15bQS1aYS16MC05XVtBLVphLXowLTkuXy1d
ezAsMTI3fSQnKV0NCiAgICBbc3RyaW5nXSRHZW5lcmF0aW9uSWQsDQoNCiAgICBbc3dpdGNoXSRQ
bGFuT25seSwNCg0KICAgICMgSW50ZWdyYXRpb24tdGVzdCBvbmx5LiBUaGUgcGF0aCBtdXN0IHJl
bWFpbiBiZWxvdyBzZXR1cC90ZXN0cy9maXh0dXJlcy4NCiAgICBbUGFyYW1ldGVyKERvbnRTaG93
KV0NCiAgICBbc3RyaW5nXSRUZXN0Um9vdCwNCg0KICAgICMgSW50ZWdyYXRpb24tdGVzdCBvbmx5
LiBSZWFsIGFnZW50IHByb2Nlc3NlcyBhcmUgaXJyZWxldmFudCB0byBhIGZha2Ugc291bC4NCiAg
ICBbUGFyYW1ldGVyKERvbnRTaG93KV0NCiAgICBbc3dpdGNoXSRUZXN0Tm9MaXZlQWdlbnRzLA0K
DQogICAgIyBJbnRlZ3JhdGlvbi10ZXN0IG9ubHkuIEV4ZXJjaXNlcyBzbWFsbC1jb25maWcgcm9s
bGJhY2sgYmVmb3JlIGNvbW1pdC4NCiAgICBbUGFyYW1ldGVyKERvbnRTaG93KV0NCiAgICBbc3dp
dGNoXSRUZXN0RmFpbEFmdGVyQ2xhdWRlQXBwbHksDQoNCiAgICAjIEludGVncmF0aW9uLXRlc3Qg
b25seS4gRXhlcmNpc2VzIHBvcnRhYmxlLXN0YXRlIHJvbGxiYWNrIGltbWVkaWF0ZWx5DQogICAg
IyBiZWZvcmUgdGhlIGFjdGl2ZS1nZW5lcmF0aW9uIGNvbW1pdCBtYXJrZXIuDQogICAgW1BhcmFt
ZXRlcihEb250U2hvdyldDQogICAgW3N3aXRjaF0kVGVzdEZhaWxBZnRlclN0YXRlQXBwbHkNCikN
Cg0KU2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0DQokRXJyb3JBY3Rpb25QcmVmZXJlbmNl
ID0gJ1N0b3AnDQoNCiRtb2R1bGVQYXRoID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ2VuZ2lu
ZVxTb3VsLkVuZ2luZS5wc20xJw0KSW1wb3J0LU1vZHVsZSAtTmFtZSAkbW9kdWxlUGF0aCAtRm9y
Y2UgLUVycm9yQWN0aW9uIFN0b3ANCiRzY3JpcHQ6VXRmOE5vQm9tID0gTmV3LU9iamVjdCBUZXh0
LlVURjhFbmNvZGluZygkZmFsc2UpDQoNCmZ1bmN0aW9uIFRlc3QtUGF0aEJlbG93IHsNCiAgICBw
YXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRQYXJlbnQsIFtzd2l0Y2hdJEFsbG93UGFyZW50
KQ0KICAgICRmdWxsUGF0aCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFBhdGgpLlRyaW1FbmQo
J1wnLCAnLycpDQogICAgJGZ1bGxQYXJlbnQgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQYXJl
bnQpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgaWYgKCRmdWxsUGF0aC5FcXVhbHMoJGZ1bGxQYXJl
bnQsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7IHJldHVybiBbYm9v
bF0kQWxsb3dQYXJlbnQgfQ0KICAgIHJldHVybiAkZnVsbFBhdGguU3RhcnRzV2l0aCgkZnVsbFBh
cmVudCArIFtJTy5QYXRoXTo6RGlyZWN0b3J5U2VwYXJhdG9yQ2hhciwgW1N0cmluZ0NvbXBhcmlz
b25dOjpPcmRpbmFsSWdub3JlQ2FzZSkNCn0NCg0KZnVuY3Rpb24gUmVzb2x2ZS1GaW5hbGl6ZVJv
b3Qgew0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsN
CiAgICAgICAgJHJvb3QgPSBHZXQtU291bFJvb3QNCiAgICAgICAgW3ZvaWRdKEFzc2VydC1Tb3Vs
Um9vdCAtUGF0aCAkcm9vdCAtUmVxdWlyZUluaXRpYWxpemVkKQ0KICAgICAgICByZXR1cm4gJHJv
b3QNCiAgICB9DQogICAgJHJvb3QgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRUZXN0Um9vdCku
VHJpbUVuZCgnXCcsICcvJykNCiAgICAkZml4dHVyZUJvdW5kYXJ5ID0gSm9pbi1QYXRoIChHZXQt
U291bEVuZ2luZUxheW91dCkuU2V0dXBEaXJlY3RvcnkgJ3Rlc3RzXGZpeHR1cmVzJw0KICAgIGlm
ICgtbm90IChUZXN0LVBhdGhCZWxvdyAtUGF0aCAkcm9vdCAtUGFyZW50ICRmaXh0dXJlQm91bmRh
cnkpKSB7DQogICAgICAgIHRocm93ICdUZXN0Um9vdCBpcyBwZXJtaXR0ZWQgb25seSBiZWxvdyBf
YWdlbnRcc2V0dXBcdGVzdHNcZml4dHVyZXMuJw0KICAgIH0NCiAgICBbdm9pZF0oQXNzZXJ0LVNv
dWxPd25lZFBhdGggLVBhdGggJHJvb3QpDQogICAgcmV0dXJuICRyb290DQp9DQoNCmZ1bmN0aW9u
IEdldC1GaW5hbGl6ZU1vZHVsZUFyZ3VtZW50cyB7DQogICAgcGFyYW0oW3N0cmluZ10kU3RhdGVE
aXJlY3RvcnkpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRlc3RSb290
KSkgeyByZXR1cm4gQHt9IH0NCiAgICByZXR1cm4gQHsgVGVzdFNldHVwRGlyZWN0b3J5ID0gJFN0
YXRlRGlyZWN0b3J5IH0NCn0NCg0KZnVuY3Rpb24gSW5pdGlhbGl6ZS1GaW5hbGl6ZURpcmVjdG9y
eSB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kVGl0bGUpDQogICAgW3ZvaWRd
KEFzc2VydC1Tb3VsT3duZWRQYXRoIC1QYXRoICRQYXRoKQ0KICAgIGlmICgtbm90IChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRQYXRoKSkgeyBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGly
ZWN0b3J5KCRQYXRoKSB9DQogICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJFBhdGgg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5k
IFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgIlJlcGFy
c2UgZGlyZWN0b3J5IGJsb2NrZWQ6ICRQYXRoIiB9DQogICAgJGFnZW50c1BhdGggPSBKb2luLVBh
dGggJFBhdGggJ0FHRU5UUy5tZCcNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkYWdlbnRzUGF0aCkpIHsNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1Q
YXRoICRhZ2VudHNQYXRoIC1UZXh0ICIjICRUaXRsZWByYG5gcmBuVGhpcyBkaXJlY3RvcnkgY29u
dGFpbnMgc2V0dXAtb3duZWQgc3RhdGUgb25seS5gcmBuYHJgbjwhLS0gRG8gbm90IHJlc3RhdGUg
aW5oZXJpdGVkIEFHRU5UUy5tZCBydWxlcy4gLS0+YHJgbiIpDQogICAgfQ0KICAgICRjbGF1ZGVQ
YXRoID0gSm9pbi1QYXRoICRQYXRoICdDTEFVREUubWQnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGNsYXVkZVBhdGgpKSB7DQogICAgICAgIFt2b2lkXShXcml0ZS1Tb3Vs
VXRmOEF0b21pYyAtUGF0aCAkY2xhdWRlUGF0aCAtVGV4dCAiQEFHRU5UUy5tZGByYG4iKQ0KICAg
IH0NCiAgICByZXR1cm4gJFBhdGgNCn0NCg0KZnVuY3Rpb24gR2V0LVRleHRTaGEyNTYgew0KICAg
IHBhcmFtKFtBbGxvd0VtcHR5U3RyaW5nKCldW3N0cmluZ10kVGV4dCkNCiAgICAkYWxnb3JpdGht
ID0gW1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAgIHRyeSB7IHJl
dHVybiAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRhbGdvcml0aG0uQ29tcHV0ZUhhc2goW1Rl
eHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCRUZXh0KSkpKS5SZXBsYWNlKCctJywgJycpLlRv
TG93ZXJJbnZhcmlhbnQoKSB9DQogICAgZmluYWxseSB7ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0N
Cn0NCg0KZnVuY3Rpb24gR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSB7DQogICAgcGFyYW0oJE9i
amVjdCwgW3N0cmluZ10kTmFtZSkNCiAgICAkcHJvcGVydHkgPSAkT2JqZWN0LlBTT2JqZWN0LlBy
b3BlcnRpZXNbJE5hbWVdDQogICAgaWYgKCRudWxsIC1lcSAkcHJvcGVydHkpIHsgcmV0dXJuICRu
dWxsIH0NCiAgICByZXR1cm4gJHByb3BlcnR5LlZhbHVlDQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1O
b0xpdmVBZ2VudCB7DQogICAgaWYgKCRUZXN0Tm9MaXZlQWdlbnRzKSB7DQogICAgICAgIGlmIChb
c3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsgdGhyb3cgJ1Rlc3ROb0xp
dmVBZ2VudHMgaXMgZm9yYmlkZGVuIG91dHNpZGUgYSBmaXh0dXJlIHNvdWwuJyB9DQogICAgICAg
IHJldHVybg0KICAgIH0NCiAgICAkbGl2ZSA9IEAoR2V0LUxpdmVTb3VsQWdlbnRQcm9jZXNzKQ0K
ICAgIGlmICgkbGl2ZS5Db3VudCAtZ3QgMCkgew0KICAgICAgICAkaWRlbnRpdGllcyA9IEAoJGxp
dmUgfCBGb3JFYWNoLU9iamVjdCB7ICd7MH06ezF9QHsyfScgLWYgJF8uaGFybmVzcywgJF8ucHJv
Y2Vzc0lkLCAkXy5zdGFydFRpbWVVdGMgfSkgLWpvaW4gJywgJw0KICAgICAgICB0aHJvdyAiRmlu
YWxpemUgcmVxdWlyZXMgemVybyBsaXZlIENsYXVkZS9Db2RleCBwcm9jZXNzZXMuIFN0aWxsIGxp
dmU6ICRpZGVudGl0aWVzIg0KICAgIH0NCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LU5vT3RoZXJTZXR1
cExvY2sgew0KICAgIHBhcmFtKFtzdHJpbmddJFN0YXRlRGlyZWN0b3J5KQ0KICAgICRsb2NrRGly
ZWN0b3J5ID0gSm9pbi1QYXRoICRTdGF0ZURpcmVjdG9yeSAnbG9ja3MnDQogICAgaWYgKC1ub3Qg
KFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxvY2tEaXJlY3RvcnkgLVBhdGhUeXBlIENvbnRhaW5l
cikpIHsgcmV0dXJuIH0NCiAgICAkb3RoZXJzID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0
aCAkbG9ja0RpcmVjdG9yeSAtRmlsdGVyICcqLmxvY2snIC1GaWxlIC1Gb3JjZSB8IFdoZXJlLU9i
amVjdCB7ICRfLk5hbWUgLW5lICdnbG9iYWwtbWlncmF0aW9uLmxvY2snIH0pDQogICAgaWYgKCRv
dGhlcnMuQ291bnQgLWd0IDApIHsgdGhyb3cgIkFub3RoZXIgc2V0dXAgd3JpdGVyIG9yIHN0YWxl
IHJlY292ZXJ5IGxvY2sgZXhpc3RzOiAkKCRvdGhlcnNbMF0uRnVsbE5hbWUpIiB9DQp9DQoNCmZ1
bmN0aW9uIEFzc2VydC1GaWxlTm90V3JpdGVyTG9ja2VkIHsNCiAgICBwYXJhbShbc3RyaW5nW11d
JFBhdGhzKQ0KICAgIGZvcmVhY2ggKCRwYXRoIGluIEAoJFBhdGhzIHwgU2VsZWN0LU9iamVjdCAt
VW5pcXVlKSkgew0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0
aCAtUGF0aFR5cGUgTGVhZikpIHsgY29udGludWUgfQ0KICAgICAgICAkaXRlbSA9IEdldC1JdGVt
IC1MaXRlcmFsUGF0aCAkcGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYg
KCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2lu
dCkgLW5lIDApIHsgdGhyb3cgIlByb3RlY3RlZCBjb25maWcvc3RhdGUgcmVwYXJzZSBwb2ludCBi
bG9ja2VkOiAkcGF0aCIgfQ0KICAgICAgICAkc3RyZWFtID0gJG51bGwNCiAgICAgICAgdHJ5IHsN
CiAgICAgICAgICAgICRzdHJlYW0gPSBOZXctT2JqZWN0IElPLkZpbGVTdHJlYW0oJHBhdGgsIFtJ
Ty5GaWxlTW9kZV06Ok9wZW4sIFtJTy5GaWxlQWNjZXNzXTo6UmVhZCwgW0lPLkZpbGVTaGFyZV06
Ok5vbmUpDQogICAgICAgIH0gY2F0Y2ggW0lPLklPRXhjZXB0aW9uXSB7DQogICAgICAgICAgICB0
aHJvdyAiQSBwcm90ZWN0ZWQgY29uZmlnLCBkYXRhYmFzZSwgV0FMLCBvciBoaXN0b3J5IGZpbGUg
c3RpbGwgaGFzIGEgd3JpdGVyOiAkcGF0aCINCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAg
ICAgIGlmICgkbnVsbCAtbmUgJHN0cmVhbSkgeyAkc3RyZWFtLkRpc3Bvc2UoKSB9DQogICAgICAg
IH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Xcml0ZXJHdWFyZFBhdGhzIHsNCiAgICBwYXJh
bShbc3RyaW5nXSRSb290KQ0KICAgICRwYXRocyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rp
b25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgJHBhdGhzLkFkZCgoSm9pbi1QYXRoICRSb290
ICdzb3VsLXN0YXRlLmpzb24nKSkNCiAgICBmb3JlYWNoICgkcmVsYXRpdmUgaW4gQCgNCiAgICAg
ICAgJ19hZ2VudFxjbGF1ZGVcc2V0dGluZ3MuanNvbicsICdfYWdlbnRcY2xhdWRlXC5jbGF1ZGUu
anNvbicsICdfYWdlbnRcY2xhdWRlXGhpc3RvcnkuanNvbmwnLA0KICAgICAgICAnX2FnZW50XGNv
ZGV4XGNvbmZpZy50b21sJywgJ19hZ2VudFxjb2RleFwuY29kZXgtZ2xvYmFsLXN0YXRlLmpzb24n
LA0KICAgICAgICAnX2FnZW50XGNvZGV4XHN0YXRlXzUuc3FsaXRlJywgJ19hZ2VudFxjb2RleFxz
dGF0ZV81LnNxbGl0ZS13YWwnLCAnX2FnZW50XGNvZGV4XHN0YXRlXzUuc3FsaXRlLXNobScNCiAg
ICApKSB7ICRwYXRocy5BZGQoKEpvaW4tUGF0aCAkUm9vdCAkcmVsYXRpdmUpKSB9DQogICAgJGNv
ZGV4SG9tZSA9IEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNvZGV4Jw0KICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRjb2RleEhvbWUgLVBhdGhUeXBlIENvbnRhaW5lcikgew0KICAgICAg
ICBmb3JlYWNoICgkZmlsZSBpbiBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkY29kZXhIb21l
IC1GaWx0ZXIgJyouc3FsaXRlKicgLUZpbGUgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKSB7ICRw
YXRocy5BZGQoJGZpbGUuRnVsbE5hbWUpIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJHBhdGhzLlRv
QXJyYXkoKSkNCn0NCg0KZnVuY3Rpb24gQ29weS1CYWNrdXBDcmVhdGVOZXcgew0KICAgIHBhcmFt
KFtzdHJpbmddJFNvdXJjZSwgW3N0cmluZ10kRGVzdGluYXRpb24pDQogICAgW3ZvaWRdKEFzc2Vy
dC1Tb3VsT3duZWRQYXRoIC1QYXRoICRTb3VyY2UpDQogICAgW3ZvaWRdKEFzc2VydC1Tb3VsT3du
ZWRQYXRoIC1QYXRoICREZXN0aW5hdGlvbikNCiAgICAkc291cmNlSGFzaCA9IEdldC1Tb3VsU2hh
MjU2IC1QYXRoICRTb3VyY2UNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkRGVzdGlu
YXRpb24gLVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgaWYgKChHZXQtU291bFNoYTI1NiAtUGF0
aCAkRGVzdGluYXRpb24pIC1jbmUgJHNvdXJjZUhhc2gpIHsgdGhyb3cgIkJhY2t1cCBjb2xsaXNp
b246ICREZXN0aW5hdGlvbiIgfQ0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IHBh
dGggPSAkRGVzdGluYXRpb247IHNoYTI1NiA9ICRzb3VyY2VIYXNoOyByZXVzZWQgPSAkdHJ1ZSB9
DQogICAgfQ0KICAgIFtJTy5GaWxlXTo6Q29weSgkU291cmNlLCAkRGVzdGluYXRpb24sICRmYWxz
ZSkNCiAgICBpZiAoKEdldC1Tb3VsU2hhMjU2IC1QYXRoICREZXN0aW5hdGlvbikgLWNuZSAkc291
cmNlSGFzaCkgeyB0aHJvdyAiQmFja3VwIHZlcmlmaWNhdGlvbiBmYWlsZWQ6ICREZXN0aW5hdGlv
biIgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9ICREZXN0aW5hdGlvbjsg
c2hhMjU2ID0gJHNvdXJjZUhhc2g7IHJldXNlZCA9ICRmYWxzZSB9DQp9DQoNCmZ1bmN0aW9uIEdl
dC1UcmVlRGlnZXN0IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgICRpbnZlbnRvcnkg
PSBAKEdldC1Tb3VsVHJlZUludmVudG9yeSAtUGF0aCAkUGF0aCkNCiAgICAkdW5zYWZlID0gQCgk
aW52ZW50b3J5IHwgV2hlcmUtT2JqZWN0IHsgJF8ua2luZCAtZXEgJ3JlcGFyc2UtYmxvY2tlZCcg
LW9yICgkXy5raW5kIC1lcSAnZmlsZScgLWFuZCAtbm90ICRfLnN0YWJsZSkgfSkNCiAgICBpZiAo
JHVuc2FmZS5Db3VudCAtZ3QgMCkgeyB0aHJvdyAiU25hcHNob3QgdHJlZSBpcyB1bnN0YWJsZSBv
ciBjb250YWlucyBhIHJlcGFyc2UgcG9pbnQ6ICRQYXRoIiB9DQogICAgJHJvd3MgPSBAKCRpbnZl
bnRvcnkgfCBGb3JFYWNoLU9iamVjdCB7ICd7MH18ezF9fHsyfXx7M30nIC1mICRfLnBhdGgsICRf
LmtpbmQsICRfLmxlbmd0aCwgJF8uc2hhMjU2IH0pDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVj
dF1AeyBzaGEyNTYgPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAoJHJvd3MgLWpvaW4gImBuIik7IGVu
dHJ5Q291bnQgPSAkaW52ZW50b3J5LkNvdW50IH0NCn0NCg0KZnVuY3Rpb24gR2V0LUNsYXVkZU5h
dGl2ZU1lbW9yeURpcmVjdG9yeSB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCkNCiAgICAkY2xh
dWRlSG9tZSA9IEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNsYXVkZScNCiAgICAkc2VhcmNoUm9v
dHMgPSBAKChKb2luLVBhdGggJGNsYXVkZUhvbWUgJ21lbW9yeScpLCAoSm9pbi1QYXRoICRjbGF1
ZGVIb21lICdwcm9qZWN0cycpKQ0KICAgICRmb3VuZCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxl
Y3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgZm9yZWFjaCAoJHNlYXJjaFJvb3QgaW4g
JHNlYXJjaFJvb3RzKSB7DQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRzZWFyY2hSb290IC1QYXRoVHlwZSBDb250YWluZXIpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAg
JHJvb3RJdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRzZWFyY2hSb290IC1Gb3JjZSAtRXJy
b3JBY3Rpb24gU3RvcA0KICAgICAgICBpZiAoKCRyb290SXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJ
Ty5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgIk5hdGl2ZSBt
ZW1vcnkgc2VhcmNoIHJvb3QgaXMgYSByZXBhcnNlIHBvaW50OiAkc2VhcmNoUm9vdCIgfQ0KICAg
ICAgICBpZiAoJHJvb3RJdGVtLk5hbWUgLWVxICdtZW1vcnknKSB7ICRmb3VuZC5BZGQoJHJvb3RJ
dGVtLkZ1bGxOYW1lKTsgY29udGludWUgfQ0KICAgICAgICAkcXVldWUgPSBOZXctT2JqZWN0ICdT
eXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5RdWV1ZVtTeXN0ZW0uSU8uRGlyZWN0b3J5SW5mb10n
DQogICAgICAgICRxdWV1ZS5FbnF1ZXVlKCRyb290SXRlbSkNCiAgICAgICAgd2hpbGUgKCRxdWV1
ZS5Db3VudCAtZ3QgMCkgew0KICAgICAgICAgICAgJGRpcmVjdG9yeSA9ICRxdWV1ZS5EZXF1ZXVl
KCkNCiAgICAgICAgICAgIGZvcmVhY2ggKCRjaGlsZCBpbiAkZGlyZWN0b3J5LkVudW1lcmF0ZURp
cmVjdG9yaWVzKCkpIHsNCiAgICAgICAgICAgICAgICBpZiAoKCRjaGlsZC5BdHRyaWJ1dGVzIC1i
YW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgIk5h
dGl2ZSBtZW1vcnkgZGlzY292ZXJ5IGVuY291bnRlcmVkIGEgcmVwYXJzZSBwb2ludDogJCgkY2hp
bGQuRnVsbE5hbWUpIiB9DQogICAgICAgICAgICAgICAgaWYgKCRjaGlsZC5OYW1lIC1lcSAnbWVt
b3J5JykgeyAkZm91bmQuQWRkKCRjaGlsZC5GdWxsTmFtZSkgfQ0KICAgICAgICAgICAgICAgIGVs
c2UgeyAkcXVldWUuRW5xdWV1ZSgkY2hpbGQpIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0K
ICAgIH0NCiAgICByZXR1cm4gQCgkZm91bmQgfCBTZWxlY3QtT2JqZWN0IC1VbmlxdWUpDQp9DQoN
CmZ1bmN0aW9uIENvcHktVHJlZU5vRm9sbG93IHsNCiAgICBwYXJhbShbc3RyaW5nXSRTb3VyY2Us
IFtzdHJpbmddJERlc3RpbmF0aW9uKQ0KICAgICRzb3VyY2VJdGVtID0gR2V0LUl0ZW0gLUxpdGVy
YWxQYXRoICRTb3VyY2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYgKCgkc291cmNl
SXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkg
LW5lIDApIHsgdGhyb3cgIlNuYXBzaG90IHNvdXJjZSByZXBhcnNlIHBvaW50IGJsb2NrZWQ6ICRT
b3VyY2UiIH0NCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkRGVzdGluYXRp
b24pKSB7IFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJERlc3RpbmF0aW9u
KSB9DQogICAgW3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQYXRoIC1QYXRoICREZXN0aW5hdGlvbikN
CiAgICBmb3JlYWNoICgkaXRlbSBpbiAkc291cmNlSXRlbS5FbnVtZXJhdGVGaWxlU3lzdGVtSW5m
b3MoKSkgew0KICAgICAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRy
aWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAiU25hcHNob3QgY2hpbGQgcmVw
YXJzZSBwb2ludCBibG9ja2VkOiAkKCRpdGVtLkZ1bGxOYW1lKSIgfQ0KICAgICAgICAkdGFyZ2V0
ID0gSm9pbi1QYXRoICREZXN0aW5hdGlvbiAkaXRlbS5OYW1lDQogICAgICAgIGlmICgkaXRlbSAt
aXMgW0lPLkRpcmVjdG9yeUluZm9dKSB7DQogICAgICAgICAgICBDb3B5LVRyZWVOb0ZvbGxvdyAt
U291cmNlICRpdGVtLkZ1bGxOYW1lIC1EZXN0aW5hdGlvbiAkdGFyZ2V0DQogICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkdGFyZ2V0IC1QYXRo
VHlwZSBMZWFmKSB7DQogICAgICAgICAgICAgICAgaWYgKChHZXQtU291bFNoYTI1NiAtUGF0aCAk
dGFyZ2V0KSAtY25lIChHZXQtU291bFNoYTI1NiAtUGF0aCAkaXRlbS5GdWxsTmFtZSkpIHsgdGhy
b3cgIk5hdGl2ZSBtZW1vcnkgc25hcHNob3QgY29sbGlzaW9uOiAkdGFyZ2V0IiB9DQogICAgICAg
ICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIFtJTy5GaWxlXTo6Q29weSgkaXRlbS5GdWxs
TmFtZSwgJHRhcmdldCwgJGZhbHNlKQ0KICAgICAgICAgICAgICAgIGlmICgoR2V0LVNvdWxTaGEy
NTYgLVBhdGggJHRhcmdldCkgLWNuZSAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJGl0ZW0uRnVsbE5h
bWUpKSB7IHRocm93ICJOYXRpdmUgbWVtb3J5IHNuYXBzaG90IGNvcHkgdmVyaWZpY2F0aW9uIGZh
aWxlZDogJHRhcmdldCIgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgICRh
Z2VudHNQYXRoID0gSm9pbi1QYXRoICREZXN0aW5hdGlvbiAnQUdFTlRTLm1kJw0KICAgIGlmICgt
bm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRhZ2VudHNQYXRoKSkgew0KICAgICAgICBbdm9p
ZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGFnZW50c1BhdGggLVRleHQgIiMgTmF0aXZl
IG1lbW9yeSBzbmFwc2hvdCBkaXJlY3RvcnlgcmBuYHJgblRoaXMgZGlyZWN0b3J5IGlzIGFuIGlt
bXV0YWJsZSBzZXR1cCBiYWNrdXAuYHJgbmByYG48IS0tIERvIG5vdCByZXN0YXRlIGluaGVyaXRl
ZCBBR0VOVFMubWQgcnVsZXMuIC0tPmByYG4iKQ0KICAgIH0NCiAgICAkY2xhdWRlUGF0aCA9IEpv
aW4tUGF0aCAkRGVzdGluYXRpb24gJ0NMQVVERS5tZCcNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkY2xhdWRlUGF0aCkpIHsgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWlj
IC1QYXRoICRjbGF1ZGVQYXRoIC1UZXh0ICJAQUdFTlRTLm1kYHJgbiIpIH0NCn0NCg0KZnVuY3Rp
b24gRW5zdXJlLUNsYXVkZU5hdGl2ZU1lbW9yeVNuYXBzaG90IHsNCiAgICBwYXJhbShbc3RyaW5n
XSRSb290LCBbc3RyaW5nXSRHZW5lcmF0aW9uRGlyZWN0b3J5LCBbc3RyaW5nXSRHZW5lcmF0aW9u
SWQsIFtzdHJpbmddJFNvdWxJZCkNCiAgICAkbWFya2VyUGF0aCA9IEpvaW4tUGF0aCAkR2VuZXJh
dGlvbkRpcmVjdG9yeSAnbmF0aXZlLW1lbW9yeS1zbmFwc2hvdC5qc29uJw0KICAgICRzbmFwc2hv
dFJvb3QgPSBKb2luLVBhdGggJEdlbmVyYXRpb25EaXJlY3RvcnkgJ2JhY2t1cHNcbmF0aXZlLW1l
bW9yeScNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbWFya2VyUGF0aCAtUGF0aFR5
cGUgTGVhZikgew0KICAgICAgICAkbWFya2VyID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkbWFya2Vy
UGF0aA0KICAgICAgICBpZiAoLW5vdCBbYm9vbF0kbWFya2VyLmNvbXBsZXRlIC1vciBbc3RyaW5n
XSRtYXJrZXIuZ2VuZXJhdGlvbklkIC1jbmUgJEdlbmVyYXRpb25JZCAtb3IgW3N0cmluZ10kbWFy
a2VyLnNvdWxJZCAtY25lICRTb3VsSWQpIHsNCiAgICAgICAgICAgIHRocm93ICdOYXRpdmUgbWVt
b3J5IHNuYXBzaG90IGNvbXBsZXRpb24gbWFya2VyIGlzIGludmFsaWQuJw0KICAgICAgICB9DQog
ICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzbmFwc2hvdFJvb3QgLVBh
dGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgJ05hdGl2ZSBtZW1vcnkgc25hcHNob3QgZGlyZWN0
b3J5IGlzIG1pc3NpbmcuJyB9DQogICAgICAgICRkaWdlc3QgPSBHZXQtVHJlZURpZ2VzdCAtUGF0
aCAkc25hcHNob3RSb290DQogICAgICAgIGlmIChbc3RyaW5nXSRtYXJrZXIuc25hcHNob3RUcmVl
U2hhMjU2IC1jbmUgW3N0cmluZ10kZGlnZXN0LnNoYTI1NiAtb3IgW2ludF0kbWFya2VyLnNuYXBz
aG90RW50cnlDb3VudCAtbmUgW2ludF0kZGlnZXN0LmVudHJ5Q291bnQpIHsNCiAgICAgICAgICAg
IHRocm93ICdOYXRpdmUgbWVtb3J5IHNuYXBzaG90IGhhc2ggZG9lcyBub3QgbWF0Y2ggaXRzIGNv
bXBsZXRpb24gbWFya2VyLicNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJG1hcmtlcg0KICAg
IH0NCg0KICAgIFt2b2lkXShJbml0aWFsaXplLUZpbmFsaXplRGlyZWN0b3J5IC1QYXRoICRzbmFw
c2hvdFJvb3QgLVRpdGxlICdDbGF1ZGUgbmF0aXZlIG1lbW9yeSBzbmFwc2hvdCcpDQogICAgJGNs
YXVkZUhvbWUgPSBKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxjbGF1ZGUnDQogICAgJHNvdXJjZXMg
PSBAKEdldC1DbGF1ZGVOYXRpdmVNZW1vcnlEaXJlY3RvcnkgLVJvb3QgJFJvb3QpDQogICAgJHNv
dXJjZUFsaWFzZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rb
c3RyaW5nXQ0KICAgIGZvcmVhY2ggKCRzb3VyY2UgaW4gJHNvdXJjZXMpIHsNCiAgICAgICAgJHJl
bGF0aXZlID0gJHNvdXJjZS5TdWJzdHJpbmcoJGNsYXVkZUhvbWUuTGVuZ3RoKS5UcmltU3RhcnQo
J1wnLCAnLycpDQogICAgICAgICRzb3VyY2VBbGlhc2VzLkFkZCgkcmVsYXRpdmUuUmVwbGFjZSgn
XCcsICcvJykpDQogICAgICAgICRkZXN0aW5hdGlvbiA9IEpvaW4tUGF0aCAkc25hcHNob3RSb290
ICRyZWxhdGl2ZQ0KICAgICAgICBDb3B5LVRyZWVOb0ZvbGxvdyAtU291cmNlICRzb3VyY2UgLURl
c3RpbmF0aW9uICRkZXN0aW5hdGlvbg0KICAgIH0NCiAgICAkZGlnZXN0ID0gR2V0LVRyZWVEaWdl
c3QgLVBhdGggJHNuYXBzaG90Um9vdA0KICAgICRtYXJrZXIgPSBbb3JkZXJlZF1Aew0KICAgICAg
ICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBnZW5lcmF0aW9uSWQgPSAkR2VuZXJhdGlvbklk
DQogICAgICAgIHNvdWxJZCA9ICRTb3VsSWQNCiAgICAgICAgY29tcGxldGUgPSAkdHJ1ZQ0KICAg
ICAgICBjb21wbGV0ZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQog
ICAgICAgIHNvdXJjZURpcmVjdG9yaWVzID0gQCgkc291cmNlQWxpYXNlcykNCiAgICAgICAgc25h
cHNob3RSZWxhdGl2ZVBhdGggPSAnYmFja3Vwcy9uYXRpdmUtbWVtb3J5Jw0KICAgICAgICBzbmFw
c2hvdFRyZWVTaGEyNTYgPSAkZGlnZXN0LnNoYTI1Ng0KICAgICAgICBzbmFwc2hvdEVudHJ5Q291
bnQgPSAkZGlnZXN0LmVudHJ5Q291bnQNCiAgICB9DQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29u
QXRvbWljIC1QYXRoICRtYXJrZXJQYXRoIC1WYWx1ZSAkbWFya2VyKQ0KICAgICR2ZXJpZmllZCA9
IFJlYWQtU291bEpzb24gLVBhdGggJG1hcmtlclBhdGgNCiAgICBpZiAoLW5vdCBbYm9vbF0kdmVy
aWZpZWQuY29tcGxldGUgLW9yIFtzdHJpbmddJHZlcmlmaWVkLnNuYXBzaG90VHJlZVNoYTI1NiAt
Y25lIFtzdHJpbmddJGRpZ2VzdC5zaGEyNTYpIHsNCiAgICAgICAgdGhyb3cgJ05hdGl2ZSBtZW1v
cnkgc25hcHNob3QgY29tcGxldGlvbiBtYXJrZXIgY291bGQgbm90IGJlIHZlcmlmaWVkLicNCiAg
ICB9DQogICAgcmV0dXJuICR2ZXJpZmllZA0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1CeXRlc0F0b21p
YyB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW2J5dGVbXV0kQnl0ZXMpDQogICAgJGZ1bGxQ
YXRoID0gQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJFBhdGgNCiAgICAkcGFyZW50ID0gU3Bs
aXQtUGF0aCAtUGFyZW50ICRmdWxsUGF0aA0KICAgICR0ZW1wb3JhcnkgPSBKb2luLVBhdGggJHBh
cmVudCAoJy5maW5hbGl6ZS1ieXRlcy0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04n
KSkNCiAgICAkYmFja3VwID0gJG51bGwNCiAgICAkcmVwbGFjZWQgPSAkZmFsc2UNCiAgICB0cnkg
ew0KICAgICAgICAkc3RyZWFtID0gTmV3LU9iamVjdCBJTy5GaWxlU3RyZWFtKCR0ZW1wb3Jhcnks
IFtJTy5GaWxlTW9kZV06OkNyZWF0ZU5ldywgW0lPLkZpbGVBY2Nlc3NdOjpXcml0ZSwgW0lPLkZp
bGVTaGFyZV06OlJlYWQpDQogICAgICAgIHRyeSB7ICRzdHJlYW0uV3JpdGUoJEJ5dGVzLCAwLCAk
Qnl0ZXMuTGVuZ3RoKTsgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkgfSBmaW5hbGx5IHsgJHN0cmVhbS5E
aXNwb3NlKCkgfQ0KICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZnVsbFBhdGgg
LVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgICAgICRiYWNrdXAgPSBKb2luLVBhdGggJHBhcmVu
dCAoJy5maW5hbGl6ZS1yZXBsYWNlZC0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04n
KSkNCiAgICAgICAgICAgIFtJTy5GaWxlXTo6UmVwbGFjZSgkdGVtcG9yYXJ5LCAkZnVsbFBhdGgs
ICRiYWNrdXAsICR0cnVlKQ0KICAgICAgICAgICAgJHJlcGxhY2VkID0gJHRydWUNCiAgICAgICAg
fSBlbHNlIHsgW0lPLkZpbGVdOjpNb3ZlKCR0ZW1wb3JhcnksICRmdWxsUGF0aCkgfQ0KICAgIH0g
ZmluYWxseSB7DQogICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICR0ZW1wb3Jhcnkp
IHsgW0lPLkZpbGVdOjpEZWxldGUoJHRlbXBvcmFyeSkgfQ0KICAgICAgICBpZiAoJHJlcGxhY2Vk
IC1hbmQgJG51bGwgLW5lICRiYWNrdXAgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmFj
a3VwKSkgeyBbSU8uRmlsZV06OkRlbGV0ZSgkYmFja3VwKSB9DQogICAgfQ0KfQ0KDQpmdW5jdGlv
biBHZXQtT3JDcmVhdGVKc29uT2JqZWN0IHsNCiAgICBwYXJhbSgkUGFyZW50LCBbc3RyaW5nXSRO
YW1lKQ0KICAgICRwcm9wZXJ0eSA9ICRQYXJlbnQuUFNPYmplY3QuUHJvcGVydGllc1skTmFtZV0N
CiAgICBpZiAoJG51bGwgLWVxICRwcm9wZXJ0eSkgew0KICAgICAgICAkY2hpbGQgPSBOZXctT2Jq
ZWN0IHBzb2JqZWN0DQogICAgICAgICRQYXJlbnQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v
dGVQcm9wZXJ0eSAtTmFtZSAkTmFtZSAtVmFsdWUgJGNoaWxkDQogICAgICAgIHJldHVybiAkY2hp
bGQNCiAgICB9DQogICAgaWYgKCRudWxsIC1lcSAkcHJvcGVydHkuVmFsdWUgLW9yICRwcm9wZXJ0
eS5WYWx1ZSAtaXMgW3N0cmluZ10gLW9yICRwcm9wZXJ0eS5WYWx1ZS5HZXRUeXBlKCkuSXNWYWx1
ZVR5cGUgLW9yICRwcm9wZXJ0eS5WYWx1ZSAtaXMgW1N5c3RlbS5BcnJheV0pIHsNCiAgICAgICAg
dGhyb3cgIkV4cGVjdGVkIEpTT04gb2JqZWN0IGF0ICckTmFtZSc7IHJlZnVzaW5nIHRvIHJlcGxh
Y2UgYW4gaW5jb21wYXRpYmxlIHVzZXIgdmFsdWUuIg0KICAgIH0NCiAgICByZXR1cm4gJHByb3Bl
cnR5LlZhbHVlDQp9DQoNCmZ1bmN0aW9uIFNldC1Kc29uUHJvcGVydHkgew0KICAgIHBhcmFtKCRP
YmplY3QsIFtzdHJpbmddJE5hbWUsICRWYWx1ZSkNCiAgICAkcHJvcGVydHkgPSAkT2JqZWN0LlBT
T2JqZWN0LlByb3BlcnRpZXNbJE5hbWVdDQogICAgaWYgKCRudWxsIC1lcSAkcHJvcGVydHkpIHsg
JE9iamVjdCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICROYW1l
IC1WYWx1ZSAkVmFsdWUgfQ0KICAgIGVsc2UgeyAkcHJvcGVydHkuVmFsdWUgPSAkVmFsdWUgfQ0K
fQ0KDQpmdW5jdGlvbiBHZXQtUHJvdGVjdGVkSnNvbkZpbmdlcnByaW50cyB7DQogICAgcGFyYW0o
JE9iamVjdCwgW3N0cmluZ10kUHJlZml4ID0gJycpDQogICAgJHJlY29yZHMgPSBOZXctT2JqZWN0
IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGlmICgkbnVsbCAt
ZXEgJE9iamVjdCkgeyByZXR1cm4gQCgpIH0NCiAgICBmb3JlYWNoICgkcHJvcGVydHkgaW4gQCgk
T2JqZWN0LlBTT2JqZWN0LlByb3BlcnRpZXMpKSB7DQogICAgICAgICRwYXRoID0gaWYgKFtzdHJp
bmddOjpJc051bGxPckVtcHR5KCRQcmVmaXgpKSB7ICRwcm9wZXJ0eS5OYW1lIH0gZWxzZSB7ICIk
UHJlZml4LiQoJHByb3BlcnR5Lk5hbWUpIiB9DQogICAgICAgIGlmICgkcHJvcGVydHkuTmFtZSAt
bWF0Y2ggJyg/aSkoYmFzZS4/dXJsfHByb3h5fGFudGhyb3BpYy4qKD86a2V5fHRva2VufGF1dGgp
KScpIHsNCiAgICAgICAgICAgICRzZXJpYWxpemVkID0gJHByb3BlcnR5LlZhbHVlIHwgQ29udmVy
dFRvLUpzb24gLURlcHRoIDMyIC1Db21wcmVzcw0KICAgICAgICAgICAgJHJlY29yZHMuQWRkKFtw
c2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJHBhdGg7IHNoYTI1NiA9IEdldC1UZXh0U2hhMjU2IC1U
ZXh0IChbc3RyaW5nXSRzZXJpYWxpemVkKSB9KQ0KICAgICAgICB9DQogICAgICAgICR2YWx1ZSA9
ICRwcm9wZXJ0eS5WYWx1ZQ0KICAgICAgICBpZiAoJG51bGwgLW5lICR2YWx1ZSAtYW5kIC1ub3Qg
KCR2YWx1ZSAtaXMgW3N0cmluZ10pIC1hbmQgLW5vdCAkdmFsdWUuR2V0VHlwZSgpLklzVmFsdWVU
eXBlKSB7DQogICAgICAgICAgICBpZiAoJHZhbHVlIC1pcyBbU3lzdGVtLkFycmF5XSkgew0KICAg
ICAgICAgICAgICAgIGZvciAoJGluZGV4ID0gMDsgJGluZGV4IC1sdCAkdmFsdWUuQ291bnQ7ICRp
bmRleCsrKSB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyZWNvcmQgaW4gQChHZXQt
UHJvdGVjdGVkSnNvbkZpbmdlcnByaW50cyAtT2JqZWN0ICR2YWx1ZVskaW5kZXhdIC1QcmVmaXgg
IiRwYXRoWyRpbmRleF0iKSkgeyAkcmVjb3Jkcy5BZGQoJHJlY29yZCkgfQ0KICAgICAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHJl
Y29yZCBpbiBAKEdldC1Qcm90ZWN0ZWRKc29uRmluZ2VycHJpbnRzIC1PYmplY3QgJHZhbHVlIC1Q
cmVmaXggJHBhdGgpKSB7ICRyZWNvcmRzLkFkZCgkcmVjb3JkKSB9DQogICAgICAgICAgICB9DQog
ICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJHJlY29yZHMgfCBTb3J0LU9iamVjdCBwYXRo
KQ0KfQ0KDQpmdW5jdGlvbiBDb252ZXJ0LUNsYXVkZVNldHRpbmdzIHsNCiAgICBwYXJhbShbQWxs
b3dFbXB0eVN0cmluZygpXVtzdHJpbmddJFRleHQpDQogICAgJHNldHRpbmdzID0gaWYgKFtzdHJp
bmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRleHQpKSB7IE5ldy1PYmplY3QgcHNvYmplY3QgfSBl
bHNlIHsgJFRleHQgfCBDb252ZXJ0RnJvbS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wIH0NCiAgICAk
YmVmb3JlUHJvdGVjdGVkID0gQChHZXQtUHJvdGVjdGVkSnNvbkZpbmdlcnByaW50cyAtT2JqZWN0
ICRzZXR0aW5ncykNCg0KICAgICRwZXJtaXNzaW9ucyA9IEdldC1PckNyZWF0ZUpzb25PYmplY3Qg
LVBhcmVudCAkc2V0dGluZ3MgLU5hbWUgJ3Blcm1pc3Npb25zJw0KICAgIFNldC1Kc29uUHJvcGVy
dHkgLU9iamVjdCAkcGVybWlzc2lvbnMgLU5hbWUgJ2RlZmF1bHRNb2RlJyAtVmFsdWUgJ2J5cGFz
c1Blcm1pc3Npb25zJw0KICAgIFNldC1Kc29uUHJvcGVydHkgLU9iamVjdCAkc2V0dGluZ3MgLU5h
bWUgJ3NraXBEYW5nZXJvdXNNb2RlUGVybWlzc2lvblByb21wdCcgLVZhbHVlICR0cnVlDQogICAg
U2V0LUpzb25Qcm9wZXJ0eSAtT2JqZWN0ICRzZXR0aW5ncyAtTmFtZSAnYXV0b01lbW9yeUVuYWJs
ZWQnIC1WYWx1ZSAkZmFsc2UNCiAgICBTZXQtSnNvblByb3BlcnR5IC1PYmplY3QgJHNldHRpbmdz
IC1OYW1lICdjbGVhbnVwUGVyaW9kRGF5cycgLVZhbHVlIDM2NTAwDQoNCiAgICAkcGx1Z2lucyA9
IEdldC1PckNyZWF0ZUpzb25PYmplY3QgLVBhcmVudCAkc2V0dGluZ3MgLU5hbWUgJ2VuYWJsZWRQ
bHVnaW5zJw0KICAgIGZvcmVhY2ggKCRwcm9wZXJ0eSBpbiBAKCRwbHVnaW5zLlBTT2JqZWN0LlBy
b3BlcnRpZXMpKSB7DQogICAgICAgIGlmICgkcHJvcGVydHkuTmFtZSAtbWF0Y2ggJyg/aSlkb2N1
bWVudC1za2lsbHMnKSB7ICRwcm9wZXJ0eS5WYWx1ZSA9ICRmYWxzZSB9DQogICAgfQ0KICAgIFNl
dC1Kc29uUHJvcGVydHkgLU9iamVjdCAkcGx1Z2lucyAtTmFtZSAnZG9jdW1lbnQtc2tpbGxzQGFu
dGhyb3BpYy1hZ2VudC1za2lsbHMnIC1WYWx1ZSAkZmFsc2UNCiAgICAkYWZ0ZXJQcm90ZWN0ZWQg
PSBAKEdldC1Qcm90ZWN0ZWRKc29uRmluZ2VycHJpbnRzIC1PYmplY3QgJHNldHRpbmdzKQ0KICAg
IGlmICgoJGJlZm9yZVByb3RlY3RlZCB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4IC1Db21wcmVz
cykgLWNuZSAoJGFmdGVyUHJvdGVjdGVkIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDggLUNvbXBy
ZXNzKSkgew0KICAgICAgICB0aHJvdyAnQ2xhdWRlIHByb3h5L2Jhc2UtVVJML2F1dGggZmllbGRz
IGNoYW5nZWQgZHVyaW5nIGNhbmRpZGF0ZSBtZXJnZS4nDQogICAgfQ0KICAgIHJldHVybiBbcHNj
dXN0b21vYmplY3RdQHsNCiAgICAgICAgdGV4dCA9ICgoJHNldHRpbmdzIHwgQ29udmVydFRvLUpz
b24gLURlcHRoIDEwMCkgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lKQ0KICAgICAgICBwcm90ZWN0
ZWRGaW5nZXJwcmludHMgPSAkYWZ0ZXJQcm90ZWN0ZWQNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdl
dC1Ub21sU2VjdGlvbk5hbWUgew0KICAgIHBhcmFtKFtzdHJpbmddJExpbmUpDQogICAgaWYgKCRM
aW5lIC1tYXRjaCAnXlxzKlxbKFteXF1dKylcXVxzKig/OiMuKik/JCcpIHsgcmV0dXJuICRtYXRj
aGVzWzFdLlRyaW0oKSB9DQogICAgcmV0dXJuICRudWxsDQp9DQoNCmZ1bmN0aW9uIFNldC1Ub21s
S2V5IHsNCiAgICBwYXJhbShbc3RyaW5nW11dJExpbmVzLCBbc3RyaW5nXSRTZWN0aW9uLCBbc3Ry
aW5nXSRLZXksIFtzdHJpbmddJFJlbmRlcmVkVmFsdWUpDQogICAgJGxpc3QgPSBOZXctT2JqZWN0
ICdTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10nDQogICAgZm9yZWFjaCAo
JGxpbmUgaW4gJExpbmVzKSB7ICRsaXN0LkFkZChbc3RyaW5nXSRsaW5lKSB9DQogICAgJGN1cnJl
bnRTZWN0aW9uID0gJycNCiAgICAkc2VjdGlvbkZvdW5kID0gKCRTZWN0aW9uIC1lcSAnJykNCiAg
ICAkc2VjdGlvblN0YXJ0ID0gaWYgKCRTZWN0aW9uIC1lcSAnJykgeyAwIH0gZWxzZSB7IC0xIH0N
CiAgICAkc2VjdGlvbkVuZCA9ICRsaXN0LkNvdW50DQogICAgJG1hdGNoZXNBdCA9IE5ldy1PYmpl
Y3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtpbnRdDQoNCiAgICBmb3IgKCRpbmRl
eCA9IDA7ICRpbmRleCAtbHQgJGxpc3QuQ291bnQ7ICRpbmRleCsrKSB7DQogICAgICAgICRoZWFk
ZXIgPSBHZXQtVG9tbFNlY3Rpb25OYW1lIC1MaW5lICRsaXN0WyRpbmRleF0NCiAgICAgICAgaWYg
KCRudWxsIC1uZSAkaGVhZGVyKSB7DQogICAgICAgICAgICBpZiAoJHNlY3Rpb25Gb3VuZCAtYW5k
ICRzZWN0aW9uRW5kIC1lcSAkbGlzdC5Db3VudCAtYW5kICRjdXJyZW50U2VjdGlvbiAtZXEgJFNl
Y3Rpb24pIHsgJHNlY3Rpb25FbmQgPSAkaW5kZXggfQ0KICAgICAgICAgICAgJGN1cnJlbnRTZWN0
aW9uID0gJGhlYWRlcg0KICAgICAgICAgICAgaWYgKCRjdXJyZW50U2VjdGlvbiAtZXEgJFNlY3Rp
b24pIHsgJHNlY3Rpb25Gb3VuZCA9ICR0cnVlOyAkc2VjdGlvblN0YXJ0ID0gJGluZGV4ICsgMTsg
JHNlY3Rpb25FbmQgPSAkbGlzdC5Db3VudCB9DQogICAgICAgIH0NCiAgICAgICAgaWYgKCRjdXJy
ZW50U2VjdGlvbiAtZXEgJFNlY3Rpb24gLWFuZCAkbGlzdFskaW5kZXhdIC1tYXRjaCAoJ15ccyon
ICsgW3JlZ2V4XTo6RXNjYXBlKCRLZXkpICsgJ1xzKj0nKSkgeyAkbWF0Y2hlc0F0LkFkZCgkaW5k
ZXgpIH0NCiAgICB9DQogICAgaWYgKCRtYXRjaGVzQXQuQ291bnQgLWd0IDEpIHsgdGhyb3cgIkR1
cGxpY2F0ZSBUT01MIGtleSAnJEtleScgaW4gc2VjdGlvbiAnJFNlY3Rpb24nLiIgfQ0KICAgICRy
ZW5kZXJlZCA9ICIkS2V5ID0gJFJlbmRlcmVkVmFsdWUiDQogICAgaWYgKCRtYXRjaGVzQXQuQ291
bnQgLWVxIDEpIHsgJGxpc3RbJG1hdGNoZXNBdFswXV0gPSAkcmVuZGVyZWQ7IHJldHVybiBAKCRs
aXN0LlRvQXJyYXkoKSkgfQ0KDQogICAgaWYgKCRTZWN0aW9uIC1lcSAnJykgew0KICAgICAgICAk
aW5zZXJ0QXQgPSAkbGlzdC5Db3VudA0KICAgICAgICBmb3IgKCRpbmRleCA9IDA7ICRpbmRleCAt
bHQgJGxpc3QuQ291bnQ7ICRpbmRleCsrKSB7DQogICAgICAgICAgICBpZiAoJG51bGwgLW5lIChH
ZXQtVG9tbFNlY3Rpb25OYW1lIC1MaW5lICRsaXN0WyRpbmRleF0pKSB7ICRpbnNlcnRBdCA9ICRp
bmRleDsgYnJlYWsgfQ0KICAgICAgICB9DQogICAgICAgICRsaXN0Lkluc2VydCgkaW5zZXJ0QXQs
ICRyZW5kZXJlZCkNCiAgICAgICAgcmV0dXJuIEAoJGxpc3QuVG9BcnJheSgpKQ0KICAgIH0NCiAg
ICBpZiAoJHNlY3Rpb25Gb3VuZCkgew0KICAgICAgICAkaW5zZXJ0QXQgPSAkbGlzdC5Db3VudA0K
ICAgICAgICBmb3IgKCRpbmRleCA9ICRzZWN0aW9uU3RhcnQ7ICRpbmRleCAtbHQgJGxpc3QuQ291
bnQ7ICRpbmRleCsrKSB7DQogICAgICAgICAgICBpZiAoJG51bGwgLW5lIChHZXQtVG9tbFNlY3Rp
b25OYW1lIC1MaW5lICRsaXN0WyRpbmRleF0pKSB7ICRpbnNlcnRBdCA9ICRpbmRleDsgYnJlYWsg
fQ0KICAgICAgICB9DQogICAgICAgICRsaXN0Lkluc2VydCgkaW5zZXJ0QXQsICRyZW5kZXJlZCkN
CiAgICAgICAgcmV0dXJuIEAoJGxpc3QuVG9BcnJheSgpKQ0KICAgIH0NCiAgICBpZiAoJGxpc3Qu
Q291bnQgLWd0IDAgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGxpc3Rb
JGxpc3QuQ291bnQgLSAxXSkpIHsgJGxpc3QuQWRkKCcnKSB9DQogICAgJGxpc3QuQWRkKCJbJFNl
Y3Rpb25dIikNCiAgICAkbGlzdC5BZGQoJHJlbmRlcmVkKQ0KICAgIHJldHVybiBAKCRsaXN0LlRv
QXJyYXkoKSkNCn0NCg0KZnVuY3Rpb24gRGlzYWJsZS1Eb2N1bWVudFNraWxsc1RvbWxTZXJ2ZXJz
IHsNCiAgICBwYXJhbShbc3RyaW5nW11dJExpbmVzKQ0KICAgICRzZWN0aW9ucyA9IEAoJExpbmVz
IHwgRm9yRWFjaC1PYmplY3QgeyBHZXQtVG9tbFNlY3Rpb25OYW1lIC1MaW5lICRfIH0gfCBXaGVy
ZS1PYmplY3QgeyAkXyAtbWF0Y2ggJyg/aSlebWNwX3NlcnZlcnNcLi4qZG9jdW1lbnQtc2tpbGxz
JyB9IHwgU2VsZWN0LU9iamVjdCAtVW5pcXVlKQ0KICAgICRyZXN1bHQgPSBAKCRMaW5lcykNCiAg
ICBmb3JlYWNoICgkc2VjdGlvbiBpbiAkc2VjdGlvbnMpIHsgJHJlc3VsdCA9IEAoU2V0LVRvbWxL
ZXkgLUxpbmVzICRyZXN1bHQgLVNlY3Rpb24gJHNlY3Rpb24gLUtleSAnZW5hYmxlZCcgLVJlbmRl
cmVkVmFsdWUgJ2ZhbHNlJykgfQ0KICAgIHJldHVybiAkcmVzdWx0DQp9DQoNCmZ1bmN0aW9uIEdl
dC1FeHBlY3RlZEFkYXB0ZXJCaW5kaW5nIHsNCiAgICBwYXJhbSgkU291cmNlTG9jaykNCiAgICAk
YmluZGluZ3MgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2Jq
ZWN0XQ0KICAgIGZvcmVhY2ggKCRleHRlbnNpb24gaW4gQCgkU291cmNlTG9jay5leHRlbnNpb25z
KSkgew0KICAgICAgICAkaWQgPSBbc3RyaW5nXSRleHRlbnNpb24uaWQNCiAgICAgICAgaWYgKCRu
dWxsIC1uZSAoR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRleHRlbnNpb24gLU5h
bWUgJ2NsYXVkZUFkYXB0ZXInKSkgew0KICAgICAgICAgICAgJGJpbmRpbmdzLkFkZChbcHNjdXN0
b21vYmplY3RdQHsgYmluZGluZ0lkID0gIiRpZGA6Y2xhdWRlIjsgaWQgPSAkaWQ7IGhhcm5lc3Mg
PSAnY2xhdWRlJyB9KQ0KICAgICAgICB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgKEdldC1PcHRp
b25hbFByb3BlcnR5VmFsdWUgLU9iamVjdCAkZXh0ZW5zaW9uIC1OYW1lICdjb2RleEFkYXB0ZXIn
KSkgew0KICAgICAgICAgICAgJGJpbmRpbmdzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgYmluZGlu
Z0lkID0gIiRpZGA6Y29kZXgiOyBpZCA9ICRpZDsgaGFybmVzcyA9ICdjb2RleCcgfSkNCiAgICAg
ICAgfQ0KICAgICAgICBmb3JlYWNoICgkYWRhcHRlciBpbiBAKEdldC1PcHRpb25hbFByb3BlcnR5
VmFsdWUgLU9iamVjdCAkZXh0ZW5zaW9uIC1OYW1lICdhZGFwdGVycycpKSB7DQogICAgICAgICAg
ICAkaGFybmVzcyA9IGlmIChbc3RyaW5nXSRhZGFwdGVyIC1tYXRjaCAnKD9pKV5jbGF1ZGUtJykg
eyAnY2xhdWRlJyB9IGVsc2VpZiAoW3N0cmluZ10kYWRhcHRlciAtbWF0Y2ggJyg/aSleY29kZXgt
JykgeyAnY29kZXgnIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgIGlmICgkbnVsbCAtbmUg
JGhhcm5lc3MpIHsgJGJpbmRpbmdzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgYmluZGluZ0lkID0g
IiRpZGA6JGhhcm5lc3MiOyBpZCA9ICRpZDsgaGFybmVzcyA9ICRoYXJuZXNzIH0pIH0NCiAgICAg
ICAgfQ0KICAgIH0NCiAgICByZXR1cm4gQCgkYmluZGluZ3MgfCBTb3J0LU9iamVjdCBiaW5kaW5n
SWQgLVVuaXF1ZSkNCn0NCg0KZnVuY3Rpb24gVGVzdC1BZGFwdGVyVmVyaWZpY2F0aW9uIHsNCiAg
ICBwYXJhbSgNCiAgICAgICAgW3N0cmluZ10kUGF0aCwNCiAgICAgICAgW3N0cmluZ10kR2VuZXJh
dGlvbklkLA0KICAgICAgICBbc3RyaW5nXSRTb3VsSWQsDQogICAgICAgIFtzdHJpbmddJEFkYXB0
ZXJQbGFuU2hhMjU2LA0KICAgICAgICBbc3RyaW5nXSRTb3VyY2VMb2NrU2hhMjU2LA0KICAgICAg
ICBbb2JqZWN0W11dJEV4cGVjdGVkQmluZGluZ3MNCiAgICApDQogICAgaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJFBhdGggLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgIHJldHVy
biBbcHNjdXN0b21vYmplY3RdQHsgcmVhZHkgPSAkZmFsc2U7IHJlYXNvbiA9ICdhZGFwdGVyLXZl
cmlmaWNhdGlvbi1taXNzaW5nJzsgbWFya2VyID0gJG51bGwgfQ0KICAgIH0NCiAgICAkbWFya2Vy
ID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkUGF0aA0KICAgIGlmIChbaW50XSRtYXJrZXIuc2NoZW1h
VmVyc2lvbiAtbmUgMSAtb3IgLW5vdCBbYm9vbF0kbWFya2VyLmNvbXBsZXRlKSB7IHRocm93ICdB
ZGFwdGVyIHZlcmlmaWNhdGlvbiBtYXJrZXIgaXMgaW5jb21wbGV0ZS4nIH0NCiAgICBpZiAoW3N0
cmluZ10kbWFya2VyLmdlbmVyYXRpb25JZCAtY25lICRHZW5lcmF0aW9uSWQgLW9yIFtzdHJpbmdd
JG1hcmtlci5zb3VsSWQgLWNuZSAkU291bElkKSB7IHRocm93ICdBZGFwdGVyIHZlcmlmaWNhdGlv
biBiZWxvbmdzIHRvIGFub3RoZXIgZ2VuZXJhdGlvbiBvciBzb3VsLicgfQ0KICAgIGlmIChbc3Ry
aW5nXSRtYXJrZXIuYWRhcHRlclBsYW5TaGEyNTYgLWNuZSAkQWRhcHRlclBsYW5TaGEyNTYgLW9y
IFtzdHJpbmddJG1hcmtlci5zb3VyY2VMb2NrU2hhMjU2IC1jbmUgJFNvdXJjZUxvY2tTaGEyNTYp
IHsNCiAgICAgICAgdGhyb3cgJ0FkYXB0ZXIgdmVyaWZpY2F0aW9uIGhhc2hlcyBkbyBub3QgbWF0
Y2ggdGhlIGltbXV0YWJsZSBwbGFucy4nDQogICAgfQ0KICAgICRleHBlY3RlZElkcyA9IEAoJEV4
cGVjdGVkQmluZGluZ3MgfCBGb3JFYWNoLU9iamVjdCB7IFtzdHJpbmddJF8uYmluZGluZ0lkIH0g
fCBTb3J0LU9iamVjdCAtVW5pcXVlKQ0KICAgICRhY3R1YWxJZHMgPSBAKCRtYXJrZXIuYmluZGlu
Z3MgfCBGb3JFYWNoLU9iamVjdCB7IFtzdHJpbmddJF8uYmluZGluZ0lkIH0gfCBTb3J0LU9iamVj
dCAtVW5pcXVlKQ0KICAgIGlmICgoJGV4cGVjdGVkSWRzIC1qb2luICJgbiIpIC1jbmUgKCRhY3R1
YWxJZHMgLWpvaW4gImBuIikgLW9yIEAoJG1hcmtlci5iaW5kaW5ncykuQ291bnQgLW5lICRleHBl
Y3RlZElkcy5Db3VudCkgew0KICAgICAgICB0aHJvdyAnQWRhcHRlciB2ZXJpZmljYXRpb24gZG9l
cyBub3QgY29udGFpbiB0aGUgZXhhY3QgZXhwZWN0ZWQgYmluZGluZyBzZXQuJw0KICAgIH0NCiAg
ICBmb3JlYWNoICgkZXhwZWN0ZWQgaW4gJEV4cGVjdGVkQmluZGluZ3MpIHsNCiAgICAgICAgJG1h
dGNoZXMgPSBAKCRtYXJrZXIuYmluZGluZ3MgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmJp
bmRpbmdJZCAtY2VxIFtzdHJpbmddJGV4cGVjdGVkLmJpbmRpbmdJZCB9KQ0KICAgICAgICBpZiAo
JG1hdGNoZXMuQ291bnQgLW5lIDEgLW9yIC1ub3QgW2Jvb2xdJG1hdGNoZXNbMF0uYXBwbGllZCAt
b3INCiAgICAgICAgICAgIEAoJ3Bhc3NlZCcsICdzdGF0aWMtcGFzc2VkJykgLW5vdGNvbnRhaW5z
IFtzdHJpbmddJG1hdGNoZXNbMF0uc21va2VTdGF0dXMgLW9yDQogICAgICAgICAgICBbc3RyaW5n
XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJG1hdGNoZXNbMF0udmVyaWZpY2F0aW9uVHlw
ZSkgLW9yIFtpbnRdJG1hdGNoZXNbMF0ucmVzb2x2ZWRQYXRoQ291bnQgLWx0IDEgLW9yDQogICAg
ICAgICAgICBbc3RyaW5nXSRtYXRjaGVzWzBdLmV2aWRlbmNlU2hhMjU2IC1ub3RtYXRjaCAnXlsw
LTlhLWZdezY0fSQnKSB7DQogICAgICAgICAgICB0aHJvdyAiUmVxdWlyZWQgYWRhcHRlciBhcHBs
aWNhdGlvbi9zbW9rZSBldmlkZW5jZSBpcyBtaXNzaW5nOiAkKCRleHBlY3RlZC5iaW5kaW5nSWQp
Ig0KICAgICAgICB9DQogICAgfQ0KICAgIGlmIChAKCRtYXJrZXIuaGFybmVzc0NvbmZpZ1Ntb2tl
KS5Db3VudCAtbmUgMiAtb3IgLW5vdCBbYm9vbF0kbWFya2VyLm5vTW9kZWxDYWxsIC1vciBbYm9v
bF0kbWFya2VyLnByb3h5RW52aXJvbm1lbnRUb3VjaGVkKSB7DQogICAgICAgIHRocm93ICdIYXJu
ZXNzIHNtb2tlIGV2aWRlbmNlIGlzIG5vdCBleGFjdCBvciB2aW9sYXRlcyB0aGUgbm8tbW9kZWwv
cHJveHktcHJlc2VydmF0aW9uIHBvbGljeS4nDQogICAgfQ0KICAgIGZvcmVhY2ggKCRoYXJuZXNz
IGluIEAoJ2NsYXVkZScsICdjb2RleCcpKSB7DQogICAgICAgICRzbW9rZSA9IEAoJG1hcmtlci5o
YXJuZXNzQ29uZmlnU21va2UgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmhhcm5lc3MgLWNl
cSAkaGFybmVzcyB9KQ0KICAgICAgICBpZiAoJHNtb2tlLkNvdW50IC1uZSAxIC1vciBbc3RyaW5n
XSRzbW9rZVswXS5zdGF0dXMgLWNuZSAncGFzc2VkJyAtb3INCiAgICAgICAgICAgIFtzdHJpbmdd
JHNtb2tlWzBdLnZlcmlmaWNhdGlvblR5cGUgLWNuZSAnbmV3LXByb2Nlc3MtdmVyc2lvbicgLW9y
IFtzdHJpbmddJHNtb2tlWzBdLmV2aWRlbmNlU2hhMjU2IC1ub3RtYXRjaCAnXlswLTlhLWZdezY0
fSQnKSB7DQogICAgICAgICAgICB0aHJvdyAiQSBuZXctcHJvY2VzcyBjb25maWd1cmF0aW9uIHNt
b2tlIHRlc3QgaXMgbWlzc2luZyBmb3IgJGhhcm5lc3MuIg0KICAgICAgICB9DQogICAgfQ0KICAg
IHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgcmVhZHkgPSAkdHJ1ZTsgcmVhc29uID0gJ3Zlcmlm
aWVkJzsgbWFya2VyID0gJG1hcmtlciB9DQp9DQoNCmZ1bmN0aW9uIEdldC1TZWNyZXRzVmF1bHRS
ZWFkaW5lc3Mgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQogICAgaWYgKC1ub3QgW3N0cmlu
Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7DQogICAgICAgIHJldHVybiBbcHNj
dXN0b21vYmplY3RdQHsgcmVhZHkgPSAkdHJ1ZTsgaW5pdGlhbGl6ZWQgPSAkdHJ1ZTsgY3VycmVu
dEhvc3REcGFwaSA9ICR0cnVlOyB0ZXN0T25seSA9ICR0cnVlIH0NCiAgICB9DQogICAgJHZhdWx0
U2NyaXB0ID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ3NlY3JldHMtdmF1bHQucHMxJw0KICAg
IGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICR2YXVsdFNjcmlwdCAtUGF0aFR5cGUg
TGVhZikpIHsNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyByZWFkeSA9ICRmYWxz
ZTsgaW5pdGlhbGl6ZWQgPSAkZmFsc2U7IGN1cnJlbnRIb3N0RHBhcGkgPSAkZmFsc2U7IHJlYXNv
biA9ICd2YXVsdC1zY3JpcHQtbWlzc2luZycgfQ0KICAgIH0NCiAgICAkc3RhdHVzID0gJiAkdmF1
bHRTY3JpcHQgLUFjdGlvbiBTdGF0dXMgLVNvdWxSb290ICRSb290DQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICByZWFkeSA9IFtib29sXSRzdGF0dXMuaW5pdGlhbGl6ZWQg
LWFuZCBbYm9vbF0kc3RhdHVzLmN1cnJlbnRIb3N0RHBhcGkNCiAgICAgICAgaW5pdGlhbGl6ZWQg
PSBbYm9vbF0kc3RhdHVzLmluaXRpYWxpemVkDQogICAgICAgIGN1cnJlbnRIb3N0RHBhcGkgPSBb
Ym9vbF0kc3RhdHVzLmN1cnJlbnRIb3N0RHBhcGkNCiAgICAgICAgcmVhc29uID0gaWYgKC1ub3Qg
W2Jvb2xdJHN0YXR1cy5pbml0aWFsaXplZCkgeyAndmF1bHQtbm90LWluaXRpYWxpemVkJyB9IGVs
c2VpZiAoLW5vdCBbYm9vbF0kc3RhdHVzLmN1cnJlbnRIb3N0RHBhcGkpIHsgJ2hvc3QtdW5sb2Nr
LW1pc3NpbmcnIH0gZWxzZSB7ICdyZWFkeScgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gR2V0LVBy
b3RlY3RlZFRvbWxGaW5nZXJwcmludHMgew0KICAgIHBhcmFtKFtzdHJpbmdbXV0kTGluZXMpDQog
ICAgcmV0dXJuIEAoJExpbmVzIHwgV2hlcmUtT2JqZWN0IHsgJF8gLW1hdGNoICcoP2kpKGJhc2Vf
dXJsfGJhc2UtdXJsfHByb3h5fGFudGhyb3BpYyknIH0gfCBGb3JFYWNoLU9iamVjdCB7DQogICAg
ICAgIFtwc2N1c3RvbW9iamVjdF1AeyBzaGEyNTYgPSBHZXQtVGV4dFNoYTI1NiAtVGV4dCAkXyB9
DQogICAgfSkNCn0NCg0KZnVuY3Rpb24gQ29udmVydC1Db2RleENvbmZpZyB7DQogICAgcGFyYW0o
W0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRUZXh0KQ0KICAgICRsaW5lcyA9IEAoJFRleHQg
LXNwbGl0ICJgcj9gbiIpDQogICAgJGJlZm9yZVByb3RlY3RlZCA9IEAoR2V0LVByb3RlY3RlZFRv
bWxGaW5nZXJwcmludHMgLUxpbmVzICRsaW5lcykNCiAgICAkbGluZXMgPSBAKFNldC1Ub21sS2V5
IC1MaW5lcyAkbGluZXMgLVNlY3Rpb24gJycgLUtleSAnYXBwcm92YWxfcG9saWN5JyAtUmVuZGVy
ZWRWYWx1ZSAnIm5ldmVyIicpDQogICAgJGxpbmVzID0gQChTZXQtVG9tbEtleSAtTGluZXMgJGxp
bmVzIC1TZWN0aW9uICcnIC1LZXkgJ3NhbmRib3hfbW9kZScgLVJlbmRlcmVkVmFsdWUgJyJkYW5n
ZXItZnVsbC1hY2Nlc3MiJykNCiAgICAkbGluZXMgPSBAKFNldC1Ub21sS2V5IC1MaW5lcyAkbGlu
ZXMgLVNlY3Rpb24gJycgLUtleSAncHJvamVjdF9yb290X21hcmtlcnMnIC1SZW5kZXJlZFZhbHVl
ICdbInNvdWwtc3RhdGUuanNvbiJdJykNCiAgICAkbGluZXMgPSBAKFNldC1Ub21sS2V5IC1MaW5l
cyAkbGluZXMgLVNlY3Rpb24gJycgLUtleSAnd2ViX3NlYXJjaCcgLVJlbmRlcmVkVmFsdWUgJyJs
aXZlIicpDQogICAgJGxpbmVzID0gQChTZXQtVG9tbEtleSAtTGluZXMgJGxpbmVzIC1TZWN0aW9u
ICdmZWF0dXJlcycgLUtleSAnbWVtb3JpZXMnIC1SZW5kZXJlZFZhbHVlICdmYWxzZScpDQogICAg
JGxpbmVzID0gQChTZXQtVG9tbEtleSAtTGluZXMgJGxpbmVzIC1TZWN0aW9uICdmZWF0dXJlcycg
LUtleSAnbXVsdGlfYWdlbnQnIC1SZW5kZXJlZFZhbHVlICd0cnVlJykNCiAgICAkbGluZXMgPSBA
KFNldC1Ub21sS2V5IC1MaW5lcyAkbGluZXMgLVNlY3Rpb24gJ3NoZWxsX2Vudmlyb25tZW50X3Bv
bGljeScgLUtleSAnaW5oZXJpdCcgLVJlbmRlcmVkVmFsdWUgJyJjb3JlIicpDQogICAgJGxpbmVz
ID0gQChTZXQtVG9tbEtleSAtTGluZXMgJGxpbmVzIC1TZWN0aW9uICdzaGVsbF9lbnZpcm9ubWVu
dF9wb2xpY3knIC1LZXkgJ2lnbm9yZV9kZWZhdWx0X2V4Y2x1ZGVzJyAtUmVuZGVyZWRWYWx1ZSAn
ZmFsc2UnKQ0KICAgICRsaW5lcyA9IEAoRGlzYWJsZS1Eb2N1bWVudFNraWxsc1RvbWxTZXJ2ZXJz
IC1MaW5lcyAkbGluZXMpDQogICAgJGFmdGVyUHJvdGVjdGVkID0gQChHZXQtUHJvdGVjdGVkVG9t
bEZpbmdlcnByaW50cyAtTGluZXMgJGxpbmVzKQ0KICAgIGlmICgoJGJlZm9yZVByb3RlY3RlZCB8
IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4IC1Db21wcmVzcykgLWNuZSAoJGFmdGVyUHJvdGVjdGVk
IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDggLUNvbXByZXNzKSkgew0KICAgICAgICB0aHJvdyAn
Q29kZXggcHJveHkvYmFzZS1VUkwvcHJvdmlkZXIgbGluZXMgY2hhbmdlZCBkdXJpbmcgY2FuZGlk
YXRlIG1lcmdlLicNCiAgICB9DQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAg
ICB0ZXh0ID0gKCgkbGluZXMgLWpvaW4gW0Vudmlyb25tZW50XTo6TmV3TGluZSkuVHJpbUVuZCgi
YHIiLCAiYG4iKSArIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUpDQogICAgICAgIHByb3RlY3RlZEZp
bmdlcnByaW50cyA9ICRhZnRlclByb3RlY3RlZA0KICAgIH0NCn0NCg0KZnVuY3Rpb24gUmVzdG9y
ZS1Db25maWdGcm9tQmFja3VwIHsNCiAgICBwYXJhbShbc3RyaW5nXSRUYXJnZXQsIFtzdHJpbmdd
JEJhY2t1cFBhdGgsIFtib29sXSRPcmlnaW5hbGx5RXhpc3RlZCkNCiAgICBpZiAoJE9yaWdpbmFs
bHlFeGlzdGVkKSB7DQogICAgICAgIFdyaXRlLUJ5dGVzQXRvbWljIC1QYXRoICRUYXJnZXQgLUJ5
dGVzIChbSU8uRmlsZV06OlJlYWRBbGxCeXRlcygkQmFja3VwUGF0aCkpDQogICAgfSBlbHNlaWYg
KFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJFRhcmdldCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAg
ICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJFRhcmdldCkNCiAgICAgICAgW0lP
LkZpbGVdOjpEZWxldGUoJFRhcmdldCkNCiAgICB9DQp9DQoNCiRyb290ID0gUmVzb2x2ZS1GaW5h
bGl6ZVJvb3QNCiRzdGF0ZURpcmVjdG9yeSA9IEpvaW4tUGF0aCAkcm9vdCAnX2FnZW50XHNldHVw
Jw0KJG1vZHVsZUFyZ3VtZW50cyA9IEdldC1GaW5hbGl6ZU1vZHVsZUFyZ3VtZW50cyAtU3RhdGVE
aXJlY3RvcnkgJHN0YXRlRGlyZWN0b3J5DQokZ2VuZXJhdGlvbkRpcmVjdG9yeSA9IEpvaW4tUGF0
aCAkc3RhdGVEaXJlY3RvcnkgKCdnZW5lcmF0aW9uc1wnICsgJEdlbmVyYXRpb25JZCkNCiRtYW5p
ZmVzdFBhdGggPSBKb2luLVBhdGggJGdlbmVyYXRpb25EaXJlY3RvcnkgJ2dlbmVyYXRpb24uanNv
bicNCmlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRtYW5pZmVzdFBhdGggLVBhdGhU
eXBlIExlYWYpKSB7IHRocm93ICJQZW5kaW5nIGdlbmVyYXRpb24gbm90IGZvdW5kOiAkR2VuZXJh
dGlvbklkIiB9DQokbWFuaWZlc3QgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRtYW5pZmVzdFBhdGgN
CmlmIChbc3RyaW5nXSRtYW5pZmVzdC5nZW5lcmF0aW9uSWQgLWNuZSAkR2VuZXJhdGlvbklkKSB7
IHRocm93ICdHZW5lcmF0aW9uIG1hbmlmZXN0IElEIG1pc21hdGNoLicgfQ0KJHNvdWxTdGF0ZVBh
dGggPSBKb2luLVBhdGggJHJvb3QgJ3NvdWwtc3RhdGUuanNvbicNCiRzb3VsU3RhdGUgPSBSZWFk
LVNvdWxKc29uIC1QYXRoICRzb3VsU3RhdGVQYXRoDQppZiAoW3N0cmluZ10kbWFuaWZlc3Quc291
bElkIC1jbmUgW3N0cmluZ10kc291bFN0YXRlLnNvdWxJZCkgeyB0aHJvdyAnR2VuZXJhdGlvbiBi
ZWxvbmdzIHRvIGEgZGlmZmVyZW50IHNvdWwuJyB9DQoNCiRjdXJyZW50UG9pbnRlciA9IEdldC1T
b3VsQWN0aXZlR2VuZXJhdGlvbiBAbW9kdWxlQXJndW1lbnRzDQppZiAoJG51bGwgLW5lICRjdXJy
ZW50UG9pbnRlciAtYW5kIFtzdHJpbmddJGN1cnJlbnRQb2ludGVyLmdlbmVyYXRpb25JZCAtY2Vx
ICRHZW5lcmF0aW9uSWQpIHsNCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGdlbmVyYXRp
b25JZCA9ICRHZW5lcmF0aW9uSWQ7IHN0YXR1cyA9ICdhbHJlYWR5LWFjdGl2ZSc7IGNoYW5nZWQg
PSAkZmFsc2UgfQ0KfQ0KaWYgKEAoJ3BlbmRpbmctZmluYWxpemUnLCAncGVuZGluZy1hZGFwdGVy
cy1hbmQtc21va2UnLCAncGVuZGluZy1zZWNyZXRzLXZhdWx0JywgJ3BlbmRpbmctZXh0ZXJuYWwt
aG9tZS1taWdyYXRpb24nLCAncmVhZHknKSAtbm90Y29udGFpbnMgW3N0cmluZ10kbWFuaWZlc3Qu
c3RhdHVzKSB7DQogICAgdGhyb3cgIkdlbmVyYXRpb24gaXMgbm90IHBlbmRpbmcgZmluYWxpemF0
aW9uOiAkKCRtYW5pZmVzdC5zdGF0dXMpIg0KfQ0KDQokY2xhdWRlU2V0dGluZ3NQYXRoID0gSm9p
bi1QYXRoICRyb290ICdfYWdlbnRcY2xhdWRlXHNldHRpbmdzLmpzb24nDQokY29kZXhDb25maWdQ
YXRoID0gSm9pbi1QYXRoICRyb290ICdfYWdlbnRcY29kZXhcY29uZmlnLnRvbWwnDQokcGxhblJl
c3VsdCA9IFtwc2N1c3RvbW9iamVjdF1Aew0KICAgIGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0aW9u
SWQNCiAgICBzdGF0dXMgPSBbc3RyaW5nXSRtYW5pZmVzdC5zdGF0dXMNCiAgICBsYXRlc3RDb25m
aWdXaWxsQmVSZXJlYWQgPSAkdHJ1ZQ0KICAgIGxpdmVBZ2VudFJlcXVpcmVtZW50ID0gMA0KICAg
IHdyaXRlclJlcXVpcmVtZW50ID0gMA0KICAgIGNsYXVkZVRhcmdldCA9ICRjbGF1ZGVTZXR0aW5n
c1BhdGgNCiAgICBjb2RleFRhcmdldCA9ICRjb2RleENvbmZpZ1BhdGgNCiAgICBhY3RpdmVQb2lu
dGVyV3JpdHRlbkxhc3QgPSAkdHJ1ZQ0KICAgIHByb3h5QW5kQmFzZVVybFByZXNlcnZlZCA9ICR0
cnVlDQogICAgc2Vzc2lvbkRhdGFiYXNlc1RvdWNoZWQgPSAkZmFsc2UNCn0NCmlmICgkUGxhbk9u
bHkpIHsgcmV0dXJuICRwbGFuUmVzdWx0IH0NCg0KIyBEbyBub3QgY3JlYXRlIGV2ZW4gYSBzZXR1
cCBsb2NrIHVudGlsIHRoZSBmaXJzdCBsaXZlLXByb2Nlc3MgY2hlY2sgcGFzc2VzLg0KQXNzZXJ0
LU5vTGl2ZUFnZW50DQokZ2xvYmFsTG9jayA9IE5ldy1Tb3VsT3BlcmF0aW9uTG9jayAtTmFtZSAn
Z2xvYmFsLW1pZ3JhdGlvbicgQG1vZHVsZUFyZ3VtZW50cw0KJGNsYXVkZUFwcGxpZWQgPSAkZmFs
c2UNCiRjb2RleEFwcGxpZWQgPSAkZmFsc2UNCiRzb3VsU3RhdGVBcHBsaWVkID0gJGZhbHNlDQok
Y2xhdWRlT3JpZ2luYWxseUV4aXN0ZWQgPSBUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVT
ZXR0aW5nc1BhdGggLVBhdGhUeXBlIExlYWYNCiRjb2RleE9yaWdpbmFsbHlFeGlzdGVkID0gVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkY29kZXhDb25maWdQYXRoIC1QYXRoVHlwZSBMZWFmDQokY2xh
dWRlQmFja3VwID0gJG51bGwNCiRjb2RleEJhY2t1cCA9ICRudWxsDQokc291bFN0YXRlQmFja3Vw
ID0gJG51bGwNCiRsYXRlc3RTb3VsU3RhdGVIYXNoID0gJG51bGwNCnRyeSB7DQogICAgQXNzZXJ0
LU5vTGl2ZUFnZW50DQogICAgQXNzZXJ0LU5vT3RoZXJTZXR1cExvY2sgLVN0YXRlRGlyZWN0b3J5
ICRzdGF0ZURpcmVjdG9yeQ0KICAgIEFzc2VydC1GaWxlTm90V3JpdGVyTG9ja2VkIC1QYXRocyAo
R2V0LVdyaXRlckd1YXJkUGF0aHMgLVJvb3QgJHJvb3QpDQoNCiAgICAjIFRoZXNlIGFyZSBkZWxp
YmVyYXRlbHkgcmVhZCBoZXJlLCBub3QgcmV1c2VkIGZyb20gc3RhZ2luZyBkaXNjb3ZlcnkuDQog
ICAgJGxhdGVzdENsYXVkZVRleHQgPSBpZiAoJGNsYXVkZU9yaWdpbmFsbHlFeGlzdGVkKSB7IFtJ
Ty5GaWxlXTo6UmVhZEFsbFRleHQoJGNsYXVkZVNldHRpbmdzUGF0aCwgJHNjcmlwdDpVdGY4Tm9C
b20pIH0gZWxzZSB7ICcnIH0NCiAgICAkbGF0ZXN0Q29kZXhUZXh0ID0gaWYgKCRjb2RleE9yaWdp
bmFsbHlFeGlzdGVkKSB7IFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJGNvZGV4Q29uZmlnUGF0aCwg
JHNjcmlwdDpVdGY4Tm9Cb20pIH0gZWxzZSB7ICcnIH0NCiAgICAkbGF0ZXN0Q2xhdWRlSGFzaCA9
IGlmICgkY2xhdWRlT3JpZ2luYWxseUV4aXN0ZWQpIHsgR2V0LVNvdWxTaGEyNTYgLVBhdGggJGNs
YXVkZVNldHRpbmdzUGF0aCB9IGVsc2UgeyAkbnVsbCB9DQogICAgJGxhdGVzdENvZGV4SGFzaCA9
IGlmICgkY29kZXhPcmlnaW5hbGx5RXhpc3RlZCkgeyBHZXQtU291bFNoYTI1NiAtUGF0aCAkY29k
ZXhDb25maWdQYXRoIH0gZWxzZSB7ICRudWxsIH0NCg0KICAgICRiYWNrdXBEaXJlY3RvcnkgPSBJ
bml0aWFsaXplLUZpbmFsaXplRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJGdlbmVyYXRpb25E
aXJlY3RvcnkgJ2JhY2t1cHMnKSAtVGl0bGUgJ0xhdGVzdCBjb25maWcgYmFja3VwcycNCiAgICBp
ZiAoJGNsYXVkZU9yaWdpbmFsbHlFeGlzdGVkKSB7DQogICAgICAgICRjbGF1ZGVCYWNrdXAgPSBD
b3B5LUJhY2t1cENyZWF0ZU5ldyAtU291cmNlICRjbGF1ZGVTZXR0aW5nc1BhdGggLURlc3RpbmF0
aW9uIChKb2luLVBhdGggJGJhY2t1cERpcmVjdG9yeSAoImNsYXVkZS1zZXR0aW5ncy4kbGF0ZXN0
Q2xhdWRlSGFzaC5qc29uIikpDQogICAgfQ0KICAgIGlmICgkY29kZXhPcmlnaW5hbGx5RXhpc3Rl
ZCkgew0KICAgICAgICAkY29kZXhCYWNrdXAgPSBDb3B5LUJhY2t1cENyZWF0ZU5ldyAtU291cmNl
ICRjb2RleENvbmZpZ1BhdGggLURlc3RpbmF0aW9uIChKb2luLVBhdGggJGJhY2t1cERpcmVjdG9y
eSAoImNvZGV4LWNvbmZpZy4kbGF0ZXN0Q29kZXhIYXNoLnRvbWwiKSkNCiAgICB9DQoNCiAgICAj
IEF1dG8tbWVtb3J5IGlzIGRpc2FibGVkIG9ubHkgYWZ0ZXIgYSBjb21wbGV0ZSwgaGFzaC12ZXJp
ZmllZCBuYXRpdmUgbWVtb3J5DQogICAgIyBzbmFwc2hvdCBtYXJrZXIgZXhpc3RzIGluIHRoaXMg
aW1tdXRhYmxlIGdlbmVyYXRpb24uDQogICAgJG1lbW9yeVNuYXBzaG90ID0gRW5zdXJlLUNsYXVk
ZU5hdGl2ZU1lbW9yeVNuYXBzaG90IC1Sb290ICRyb290IC1HZW5lcmF0aW9uRGlyZWN0b3J5ICRn
ZW5lcmF0aW9uRGlyZWN0b3J5IC1HZW5lcmF0aW9uSWQgJEdlbmVyYXRpb25JZCAtU291bElkIChb
c3RyaW5nXSRzb3VsU3RhdGUuc291bElkKQ0KICAgICRjbGF1ZGVDYW5kaWRhdGUgPSBDb252ZXJ0
LUNsYXVkZVNldHRpbmdzIC1UZXh0ICRsYXRlc3RDbGF1ZGVUZXh0DQogICAgJGNvZGV4Q2FuZGlk
YXRlID0gQ29udmVydC1Db2RleENvbmZpZyAtVGV4dCAkbGF0ZXN0Q29kZXhUZXh0DQogICAgJGNh
bmRpZGF0ZURpcmVjdG9yeSA9IEluaXRpYWxpemUtRmluYWxpemVEaXJlY3RvcnkgLVBhdGggKEpv
aW4tUGF0aCAkZ2VuZXJhdGlvbkRpcmVjdG9yeSAnY2FuZGlkYXRlcycpIC1UaXRsZSAnVmVyaWZp
ZWQgY29uZmlnIGNhbmRpZGF0ZXMnDQogICAgJGNsYXVkZUNhbmRpZGF0ZVBhdGggPSBKb2luLVBh
dGggJGNhbmRpZGF0ZURpcmVjdG9yeSAnY2xhdWRlLXNldHRpbmdzLmpzb24nDQogICAgJGNvZGV4
Q2FuZGlkYXRlUGF0aCA9IEpvaW4tUGF0aCAkY2FuZGlkYXRlRGlyZWN0b3J5ICdjb2RleC1jb25m
aWcudG9tbCcNCiAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGNsYXVkZUNh
bmRpZGF0ZVBhdGggLVRleHQgJGNsYXVkZUNhbmRpZGF0ZS50ZXh0KQ0KICAgIFt2b2lkXShXcml0
ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkY29kZXhDYW5kaWRhdGVQYXRoIC1UZXh0ICRjb2RleENh
bmRpZGF0ZS50ZXh0KQ0KDQogICAgJHNvdXJjZUxvY2sgPSBSZWFkLVNvdWxKc29uIC1QYXRoIChK
b2luLVBhdGggJGdlbmVyYXRpb25EaXJlY3RvcnkgJ3NvdXJjZS1sb2NrLmpzb24nKQ0KICAgICRz
b3VyY2VEaXNjb3ZlcnkgPSBSZWFkLVNvdWxKc29uIC1QYXRoIChKb2luLVBhdGggJGdlbmVyYXRp
b25EaXJlY3RvcnkgJ3NvdXJjZS1kaXNjb3ZlcnkuanNvbicpDQogICAgJGV4cGVjdGVkQmluZGlu
Z3MgPSBAKEdldC1FeHBlY3RlZEFkYXB0ZXJCaW5kaW5nIC1Tb3VyY2VMb2NrICRzb3VyY2VMb2Nr
KQ0KICAgICRhZGFwdGVyQXBwbHlQbGFuID0gW29yZGVyZWRdQHsNCiAgICAgICAgc2NoZW1hVmVy
c2lvbiA9IDENCiAgICAgICAgZ2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZA0KICAgICAgICBz
b3VsSWQgPSBbc3RyaW5nXSRzb3VsU3RhdGUuc291bElkDQogICAgICAgIHNvdXJjZUxvY2tTaGEy
NTYgPSBbc3RyaW5nXSRtYW5pZmVzdC5zb3VyY2VMb2NrU2hhMjU2DQogICAgICAgIHN0YXR1cyA9
ICdhd2FpdGluZy1hcHBsaWNhdGlvbi1hbmQtc21va2UnDQogICAgICAgIHJlYXNvbiA9ICdObyBh
Y3RpdmUgcG9pbnRlciBtYXkgYmUgY29tbWl0dGVkIHVudGlsIGV2ZXJ5IGJpbmRpbmcgYW5kIGJv
dGggbmV3LXByb2Nlc3MgY29uZmlnIHNtb2tlIHRlc3RzIHBhc3MuJw0KICAgICAgICBwcmVzZXJ2
ZUV4aXN0aW5nQnl0ZXMgPSAkdHJ1ZQ0KICAgICAgICBkb2N1bWVudFNraWxscyA9IFtvcmRlcmVk
XUB7IGFjdGlvbiA9ICdkaXNhYmxlLWFkYXB0ZXItcHJlc2VydmUtZmlsZXMtYW5kLWhpc3Rvcnkn
OyBkZWxldGUgPSAkZmFsc2UgfQ0KICAgICAgICByZXF1aXJlZEJpbmRpbmdzID0gJGV4cGVjdGVk
QmluZGluZ3MNCiAgICAgICAgcmVxdWlyZWRIYXJuZXNzQ29uZmlnU21va2UgPSBAKCdjbGF1ZGUn
LCAnY29kZXgnKQ0KICAgICAgICBzdXBlcnBvd2VycyA9IFtvcmRlcmVkXUB7DQogICAgICAgICAg
ICByZXF1aXJlZEZvckJvdGggPSAkdHJ1ZQ0KICAgICAgICAgICAgc291cmNlID0gQCgkc291cmNl
RGlzY292ZXJ5LnNvdXJjZXMgfCBXaGVyZS1PYmplY3QgeyAkXy5pZCAtZXEgJ3N1cGVycG93ZXJz
JyB9KQ0KICAgICAgICAgICAgY2xhdWRlID0gQCgkc291cmNlTG9jay5leHRlbnNpb25zIHwgV2hl
cmUtT2JqZWN0IHsgJF8uaWQgLWVxICdzdXBlcnBvd2VycycgfSB8IEZvckVhY2gtT2JqZWN0IHsg
R2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdjbGF1ZGVBZGFwdGVy
JyB9KQ0KICAgICAgICAgICAgY29kZXggPSBAKCRzb3VyY2VMb2NrLmV4dGVuc2lvbnMgfCBXaGVy
ZS1PYmplY3QgeyAkXy5pZCAtZXEgJ3N1cGVycG93ZXJzJyB9IHwgRm9yRWFjaC1PYmplY3QgeyBH
ZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlIC1PYmplY3QgJF8gLU5hbWUgJ2NvZGV4QWRhcHRlcicg
fSkNCiAgICAgICAgfQ0KICAgICAgICBtY3AgPSBAKCRzb3VyY2VMb2NrLmV4dGVuc2lvbnMgfCBX
aGVyZS1PYmplY3Qgew0KICAgICAgICAgICAgJG51bGwgLW5lIChHZXQtT3B0aW9uYWxQcm9wZXJ0
eVZhbHVlIC1PYmplY3QgJF8gLU5hbWUgJ2NsYXVkZUFkYXB0ZXInKSAtb3INCiAgICAgICAgICAg
ICRudWxsIC1uZSAoR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdj
b2RleEFkYXB0ZXInKSAtb3INCiAgICAgICAgICAgICRudWxsIC1uZSAoR2V0LU9wdGlvbmFsUHJv
cGVydHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdhZGFwdGVycycpDQogICAgICAgIH0gfCBGb3JF
YWNoLU9iamVjdCB7DQogICAgICAgICAgICBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgIGlk
ID0gJF8uaWQNCiAgICAgICAgICAgICAgICBjYW5vbmljYWxSZWxhdGl2ZVBhdGggPSAkXy5jYW5v
bmljYWxSZWxhdGl2ZVBhdGgNCiAgICAgICAgICAgICAgICBjbGF1ZGUgPSBHZXQtT3B0aW9uYWxQ
cm9wZXJ0eVZhbHVlIC1PYmplY3QgJF8gLU5hbWUgJ2NsYXVkZUFkYXB0ZXInDQogICAgICAgICAg
ICAgICAgY29kZXggPSBHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlIC1PYmplY3QgJF8gLU5hbWUg
J2NvZGV4QWRhcHRlcicNCiAgICAgICAgICAgICAgICBhZGFwdGVycyA9IEdldC1PcHRpb25hbFBy
b3BlcnR5VmFsdWUgLU9iamVjdCAkXyAtTmFtZSAnYWRhcHRlcnMnDQogICAgICAgICAgICB9DQog
ICAgICAgIH0pDQogICAgfQ0KICAgICRhZGFwdGVyUGxhblBhdGggPSBKb2luLVBhdGggJGdlbmVy
YXRpb25EaXJlY3RvcnkgJ2FkYXB0ZXItYXBwbHktcGxhbi5qc29uJw0KICAgIFt2b2lkXShXcml0
ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAkYWRhcHRlclBsYW5QYXRoIC1WYWx1ZSAkYWRhcHRlckFw
cGx5UGxhbikNCiAgICAkYWRhcHRlclBsYW5TaGEyNTYgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAk
YWRhcHRlclBsYW5QYXRoDQogICAgJGFkYXB0ZXJWZXJpZmljYXRpb25QYXRoID0gSm9pbi1QYXRo
ICRnZW5lcmF0aW9uRGlyZWN0b3J5ICdhZGFwdGVyLXZlcmlmaWNhdGlvbi5qc29uJw0KICAgICRh
ZGFwdGVyVmVyaWZpY2F0aW9uID0gVGVzdC1BZGFwdGVyVmVyaWZpY2F0aW9uIC1QYXRoICRhZGFw
dGVyVmVyaWZpY2F0aW9uUGF0aCAtR2VuZXJhdGlvbklkICRHZW5lcmF0aW9uSWQgYA0KICAgICAg
ICAtU291bElkIChbc3RyaW5nXSRzb3VsU3RhdGUuc291bElkKSAtQWRhcHRlclBsYW5TaGEyNTYg
JGFkYXB0ZXJQbGFuU2hhMjU2IGANCiAgICAgICAgLVNvdXJjZUxvY2tTaGEyNTYgKFtzdHJpbmdd
JG1hbmlmZXN0LnNvdXJjZUxvY2tTaGEyNTYpIC1FeHBlY3RlZEJpbmRpbmdzICRleHBlY3RlZEJp
bmRpbmdzDQoNCiAgICBbdm9pZF0oQWRkLVNvdWxKb3VybmFsRW50cnkgLVR5cGUgJ2NvbmZpZy5j
YW5kaWRhdGUtcmVhZHknIC1EYXRhIEB7DQogICAgICAgIGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0
aW9uSWQNCiAgICAgICAgY2xhdWRlT3JpZ2luYWxTaGEyNTYgPSAkbGF0ZXN0Q2xhdWRlSGFzaA0K
ICAgICAgICBjb2RleE9yaWdpbmFsU2hhMjU2ID0gJGxhdGVzdENvZGV4SGFzaA0KICAgICAgICBj
bGF1ZGVDYW5kaWRhdGVTaGEyNTYgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAkY2xhdWRlQ2FuZGlk
YXRlUGF0aA0KICAgICAgICBjb2RleENhbmRpZGF0ZVNoYTI1NiA9IEdldC1Tb3VsU2hhMjU2IC1Q
YXRoICRjb2RleENhbmRpZGF0ZVBhdGgNCiAgICAgICAgbmF0aXZlTWVtb3J5U25hcHNob3RTaGEy
NTYgPSBbc3RyaW5nXSRtZW1vcnlTbmFwc2hvdC5zbmFwc2hvdFRyZWVTaGEyNTYNCiAgICB9IEBt
b2R1bGVBcmd1bWVudHMpDQoNCiAgICBBc3NlcnQtTm9MaXZlQWdlbnQNCiAgICBBc3NlcnQtRmls
ZU5vdFdyaXRlckxvY2tlZCAtUGF0aHMgKEdldC1Xcml0ZXJHdWFyZFBhdGhzIC1Sb290ICRyb290
KQ0KICAgIGlmICgkY2xhdWRlT3JpZ2luYWxseUV4aXN0ZWQgLWFuZCAoR2V0LVNvdWxTaGEyNTYg
LVBhdGggJGNsYXVkZVNldHRpbmdzUGF0aCkgLWNuZSAkbGF0ZXN0Q2xhdWRlSGFzaCkgeyB0aHJv
dyAnQ2xhdWRlIHNldHRpbmdzIGNoYW5nZWQgYWZ0ZXIgY2FuZGlkYXRlIGNyZWF0aW9uLicgfQ0K
ICAgIGlmICgkY29kZXhPcmlnaW5hbGx5RXhpc3RlZCAtYW5kIChHZXQtU291bFNoYTI1NiAtUGF0
aCAkY29kZXhDb25maWdQYXRoKSAtY25lICRsYXRlc3RDb2RleEhhc2gpIHsgdGhyb3cgJ0NvZGV4
IGNvbmZpZyBjaGFuZ2VkIGFmdGVyIGNhbmRpZGF0ZSBjcmVhdGlvbi4nIH0NCiAgICBpZiAoLW5v
dCAkY2xhdWRlT3JpZ2luYWxseUV4aXN0ZWQgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
Y2xhdWRlU2V0dGluZ3NQYXRoKSkgeyB0aHJvdyAnQ2xhdWRlIHNldHRpbmdzIGFwcGVhcmVkIGNv
bmN1cnJlbnRseS4nIH0NCiAgICBpZiAoLW5vdCAkY29kZXhPcmlnaW5hbGx5RXhpc3RlZCAtYW5k
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjb2RleENvbmZpZ1BhdGgpKSB7IHRocm93ICdDb2Rl
eCBjb25maWcgYXBwZWFyZWQgY29uY3VycmVudGx5LicgfQ0KDQogICAgU2V0LUpzb25Qcm9wZXJ0
eSAtT2JqZWN0ICRtYW5pZmVzdCAtTmFtZSAnbmF0aXZlTWVtb3J5U25hcHNob3RTaGEyNTYnIC1W
YWx1ZSAoW3N0cmluZ10kbWVtb3J5U25hcHNob3Quc25hcHNob3RUcmVlU2hhMjU2KQ0KICAgIFNl
dC1Kc29uUHJvcGVydHkgLU9iamVjdCAkbWFuaWZlc3QgLU5hbWUgJ2FkYXB0ZXJQbGFuU2hhMjU2
JyAtVmFsdWUgJGFkYXB0ZXJQbGFuU2hhMjU2DQoNCiAgICAjIFRoZSBkYW5nZXJvdXMtcGVybWlz
c2lvbiBjYW5kaWRhdGUgcmVtYWlucyBpbmVydCBpbnNpZGUgdGhlIGdlbmVyYXRpb24NCiAgICAj
IHVudGlsIGV2ZXJ5IHByZXJlcXVpc2l0ZSBpcyByZWFkeS4gRGlyZWN0IENMSSBsYXVuY2hlcyBt
dXN0IG5ldmVyIHNlZQ0KICAgICMgYnlwYXNzL2Rhbmdlci1mdWxsLWFjY2VzcyBtZXJlbHkgYmVj
YXVzZSBhIG1pZ3JhdGlvbiBpcyBzdGlsbCBwZW5kaW5nLg0KICAgIGlmICgtbm90ICRhZGFwdGVy
VmVyaWZpY2F0aW9uLnJlYWR5KSB7DQogICAgICAgICRtYW5pZmVzdC5zdGF0dXMgPSAncGVuZGlu
Zy1hZGFwdGVycy1hbmQtc21va2UnDQogICAgICAgICRtYW5pZmVzdC5hZGFwdGVyc1N0YXR1cyA9
ICdhd2FpdGluZy1hcHBsaWNhdGlvbi1hbmQtc21va2UnDQogICAgICAgICRtYW5pZmVzdC5jb25m
aWdBcHBsaWVkID0gJGZhbHNlDQogICAgICAgICRtYW5pZmVzdC5tYWNoaW5lUmVhZHkgPSAkZmFs
c2UNCiAgICAgICAgU2V0LUpzb25Qcm9wZXJ0eSAtT2JqZWN0ICRtYW5pZmVzdCAtTmFtZSAnbWFj
aGluZVJlYWR5UmVhc29uJyAtVmFsdWUgJ1JlcXVpcmVkIGFkYXB0ZXJzIGFuZCBpbmRlcGVuZGVu
dCBzbW9rZSB0ZXN0cyBhcmUgbm90IHZlcmlmaWVkLicNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNv
dWxKc29uQXRvbWljIC1QYXRoICRtYW5pZmVzdFBhdGggLVZhbHVlICRtYW5pZmVzdCkNCiAgICAg
ICAgW3ZvaWRdKEFkZC1Tb3VsSm91cm5hbEVudHJ5IC1UeXBlICdnZW5lcmF0aW9uLnBlbmRpbmct
YWRhcHRlcnMtYW5kLXNtb2tlJyAtRGF0YSBAew0KICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0g
JEdlbmVyYXRpb25JZA0KICAgICAgICAgICAgYWRhcHRlclBsYW5TaGEyNTYgPSAkYWRhcHRlclBs
YW5TaGEyNTYNCiAgICAgICAgICAgIHZlcmlmaWNhdGlvblBhdGggPSAnYWRhcHRlci12ZXJpZmlj
YXRpb24uanNvbicNCiAgICAgICAgfSBAbW9kdWxlQXJndW1lbnRzKQ0KICAgICAgICByZXR1cm4g
W3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICBnZW5lcmF0aW9uSWQgPSAkR2VuZXJhdGlv
bklkDQogICAgICAgICAgICBzdGF0dXMgPSAncGVuZGluZy1hZGFwdGVycy1hbmQtc21va2UnDQog
ICAgICAgICAgICBjb25maWdBcHBsaWVkID0gJGZhbHNlDQogICAgICAgICAgICBhZGFwdGVyc1N0
YXR1cyA9ICdhd2FpdGluZy1hcHBsaWNhdGlvbi1hbmQtc21va2UnDQogICAgICAgICAgICBtYWNo
aW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgICAgIGFjdGl2ZVBvaW50ZXJDaGFuZ2VkID0gJGZh
bHNlDQogICAgICAgICAgICBhZGFwdGVyUGxhblBhdGggPSAkYWRhcHRlclBsYW5QYXRoDQogICAg
ICAgICAgICBhZGFwdGVyVmVyaWZpY2F0aW9uUGF0aCA9ICRhZGFwdGVyVmVyaWZpY2F0aW9uUGF0
aA0KICAgICAgICB9DQogICAgfQ0KDQogICAgJHZhdWx0UmVhZGluZXNzID0gR2V0LVNlY3JldHNW
YXVsdFJlYWRpbmVzcyAtUm9vdCAkcm9vdA0KICAgIGlmICgtbm90ICR2YXVsdFJlYWRpbmVzcy5y
ZWFkeSkgew0KICAgICAgICAkbWFuaWZlc3Quc3RhdHVzID0gJ3BlbmRpbmctc2VjcmV0cy12YXVs
dCcNCiAgICAgICAgJG1hbmlmZXN0LmFkYXB0ZXJzU3RhdHVzID0gJ3ZlcmlmaWVkJw0KICAgICAg
ICAkbWFuaWZlc3QuY29uZmlnQXBwbGllZCA9ICRmYWxzZQ0KICAgICAgICAkbWFuaWZlc3QubWFj
aGluZVJlYWR5ID0gJGZhbHNlDQogICAgICAgIFNldC1Kc29uUHJvcGVydHkgLU9iamVjdCAkbWFu
aWZlc3QgLU5hbWUgJ2FkYXB0ZXJWZXJpZmljYXRpb25TaGEyNTYnIC1WYWx1ZSAoR2V0LVNvdWxT
aGEyNTYgLVBhdGggJGFkYXB0ZXJWZXJpZmljYXRpb25QYXRoKQ0KICAgICAgICBTZXQtSnNvblBy
b3BlcnR5IC1PYmplY3QgJG1hbmlmZXN0IC1OYW1lICdtYWNoaW5lUmVhZHlSZWFzb24nIC1WYWx1
ZSAnVGhlIGVuY3J5cHRlZCBzZWNyZXRzIHZhdWx0IG9yIHRoaXMgaG9zdCB1bmxvY2sgaXMgbm90
IHJlYWR5LicNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRtYW5p
ZmVzdFBhdGggLVZhbHVlICRtYW5pZmVzdCkNCiAgICAgICAgW3ZvaWRdKEFkZC1Tb3VsSm91cm5h
bEVudHJ5IC1UeXBlICdnZW5lcmF0aW9uLnBlbmRpbmctc2VjcmV0cy12YXVsdCcgLURhdGEgQHsg
Z2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZDsgcmVhc29uID0gJHZhdWx0UmVhZGluZXNzLnJl
YXNvbiB9IEBtb2R1bGVBcmd1bWVudHMpDQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3Rd
QHsNCiAgICAgICAgICAgIGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0aW9uSWQNCiAgICAgICAgICAg
IHN0YXR1cyA9ICdwZW5kaW5nLXNlY3JldHMtdmF1bHQnDQogICAgICAgICAgICBjb25maWdBcHBs
aWVkID0gJGZhbHNlDQogICAgICAgICAgICBhZGFwdGVyc1N0YXR1cyA9ICd2ZXJpZmllZCcNCiAg
ICAgICAgICAgIHZhdWx0U3RhdHVzID0gJHZhdWx0UmVhZGluZXNzLnJlYXNvbg0KICAgICAgICAg
ICAgbWFjaGluZVJlYWR5ID0gJGZhbHNlDQogICAgICAgICAgICBhY3RpdmVQb2ludGVyQ2hhbmdl
ZCA9ICRmYWxzZQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgJGV4dGVybmFsSG9tZXNQcm9wZXJ0
eSA9ICRhZGFwdGVyVmVyaWZpY2F0aW9uLm1hcmtlci5QU09iamVjdC5Qcm9wZXJ0aWVzWydleHRl
cm5hbEhvbWVzUmVhZHknXQ0KICAgIGlmICgkbnVsbCAtZXEgJGV4dGVybmFsSG9tZXNQcm9wZXJ0
eSAtb3IgLW5vdCBbYm9vbF0kZXh0ZXJuYWxIb21lc1Byb3BlcnR5LlZhbHVlKSB7DQogICAgICAg
ICRtYW5pZmVzdC5zdGF0dXMgPSAncGVuZGluZy1leHRlcm5hbC1ob21lLW1pZ3JhdGlvbicNCiAg
ICAgICAgJG1hbmlmZXN0LmFkYXB0ZXJzU3RhdHVzID0gJ3ZlcmlmaWVkLWJ1dC1uYXR1cmFsLWhv
bWVzLXBlbmRpbmcnDQogICAgICAgICRtYW5pZmVzdC5jb25maWdBcHBsaWVkID0gJGZhbHNlDQog
ICAgICAgICRtYW5pZmVzdC5tYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgU2V0LUpzb25Q
cm9wZXJ0eSAtT2JqZWN0ICRtYW5pZmVzdCAtTmFtZSAnYWRhcHRlclZlcmlmaWNhdGlvblNoYTI1
NicgLVZhbHVlIChHZXQtU291bFNoYTI1NiAtUGF0aCAkYWRhcHRlclZlcmlmaWNhdGlvblBhdGgp
DQogICAgICAgIFNldC1Kc29uUHJvcGVydHkgLU9iamVjdCAkbWFuaWZlc3QgLU5hbWUgJ21hY2hp
bmVSZWFkeVJlYXNvbicgLVZhbHVlICdUaGUgZW5jcnlwdGVkIHZhdWx0IGlzIHJlYWR5LCBidXQg
ZXh0ZXJuYWwgQ2xhdWRlL0NvZGV4IGhvbWUgcHJlc2VydmF0aW9uIGFuZCB2ZXJpZmllZCBqdW5j
dGlvbnMgaGF2ZSBub3QgY29tcGxldGVkLicNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29u
QXRvbWljIC1QYXRoICRtYW5pZmVzdFBhdGggLVZhbHVlICRtYW5pZmVzdCkNCiAgICAgICAgW3Zv
aWRdKEFkZC1Tb3VsSm91cm5hbEVudHJ5IC1UeXBlICdnZW5lcmF0aW9uLnBlbmRpbmctZXh0ZXJu
YWwtaG9tZS1taWdyYXRpb24nIC1EYXRhIEB7DQogICAgICAgICAgICBnZW5lcmF0aW9uSWQgPSAk
R2VuZXJhdGlvbklkDQogICAgICAgICAgICB2YXVsdFJlYWR5ID0gJHRydWUNCiAgICAgICAgICAg
IHBsYWludGV4dER1cGxpY2F0ZUFsbG93ZWQgPSAkZmFsc2UNCiAgICAgICAgfSBAbW9kdWxlQXJn
dW1lbnRzKQ0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICBn
ZW5lcmF0aW9uSWQgPSAkR2VuZXJhdGlvbklkDQogICAgICAgICAgICBzdGF0dXMgPSAncGVuZGlu
Zy1leHRlcm5hbC1ob21lLW1pZ3JhdGlvbicNCiAgICAgICAgICAgIGNvbmZpZ0FwcGxpZWQgPSAk
ZmFsc2UNCiAgICAgICAgICAgIGFkYXB0ZXJzU3RhdHVzID0gJ3ZlcmlmaWVkLWJ1dC1uYXR1cmFs
LWhvbWVzLXBlbmRpbmcnDQogICAgICAgICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAg
ICAgICAgIGFjdGl2ZVBvaW50ZXJDaGFuZ2VkID0gJGZhbHNlDQogICAgICAgIH0NCiAgICB9DQoN
CiAgICBBc3NlcnQtTm9MaXZlQWdlbnQNCiAgICBBc3NlcnQtRmlsZU5vdFdyaXRlckxvY2tlZCAt
UGF0aHMgKEdldC1Xcml0ZXJHdWFyZFBhdGhzIC1Sb290ICRyb290KQ0KICAgIGlmICgkY2xhdWRl
T3JpZ2luYWxseUV4aXN0ZWQgLWFuZCAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJGNsYXVkZVNldHRp
bmdzUGF0aCkgLWNuZSAkbGF0ZXN0Q2xhdWRlSGFzaCkgeyB0aHJvdyAnQ2xhdWRlIHNldHRpbmdz
IGNoYW5nZWQgYmVmb3JlIGZpbmFsIGNvbW1pdC4nIH0NCiAgICBpZiAoJGNvZGV4T3JpZ2luYWxs
eUV4aXN0ZWQgLWFuZCAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJGNvZGV4Q29uZmlnUGF0aCkgLWNu
ZSAkbGF0ZXN0Q29kZXhIYXNoKSB7IHRocm93ICdDb2RleCBjb25maWcgY2hhbmdlZCBiZWZvcmUg
ZmluYWwgY29tbWl0LicgfQ0KICAgIGlmICgtbm90ICRjbGF1ZGVPcmlnaW5hbGx5RXhpc3RlZCAt
YW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVTZXR0aW5nc1BhdGgpKSB7IHRocm93
ICdDbGF1ZGUgc2V0dGluZ3MgYXBwZWFyZWQgYmVmb3JlIGZpbmFsIGNvbW1pdC4nIH0NCiAgICBp
ZiAoLW5vdCAkY29kZXhPcmlnaW5hbGx5RXhpc3RlZCAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQ
YXRoICRjb2RleENvbmZpZ1BhdGgpKSB7IHRocm93ICdDb2RleCBjb25maWcgYXBwZWFyZWQgYmVm
b3JlIGZpbmFsIGNvbW1pdC4nIH0NCg0KICAgICMgVGhlIHBvcnRhYmxlIHN0YXRlIGlzIHBhcnQg
b2YgdGhlIHNhbWUgY29tbWl0IGFzIHRoZSB0d28gbmF0aXZlIGNvbmZpZ3MuDQogICAgIyBQcmVz
ZXJ2ZSBpdHMgbGF0ZXN0IGJ5dGVzIGFuZCByZWZ1c2UgdG8gb3ZlcndyaXRlIGEgY29uY3VycmVu
dCBjaGFuZ2UuDQogICAgJGxhdGVzdFNvdWxTdGF0ZSA9IFJlYWQtU291bEpzb24gLVBhdGggJHNv
dWxTdGF0ZVBhdGgNCiAgICBpZiAoW3N0cmluZ10kbGF0ZXN0U291bFN0YXRlLnNvdWxJZCAtY25l
IFtzdHJpbmddJHNvdWxTdGF0ZS5zb3VsSWQpIHsgdGhyb3cgJ1NvdWwgc3RhdGUgaWRlbnRpdHkg
Y2hhbmdlZCBiZWZvcmUgZmluYWwgY29tbWl0LicgfQ0KICAgICRsYXRlc3RTb3VsU3RhdGVIYXNo
ID0gR2V0LVNvdWxTaGEyNTYgLVBhdGggJHNvdWxTdGF0ZVBhdGgNCiAgICAkc291bFN0YXRlQmFj
a3VwID0gQ29weS1CYWNrdXBDcmVhdGVOZXcgLVNvdXJjZSAkc291bFN0YXRlUGF0aCAtRGVzdGlu
YXRpb24gKEpvaW4tUGF0aCAkYmFja3VwRGlyZWN0b3J5ICgic291bC1zdGF0ZS4kbGF0ZXN0U291
bFN0YXRlSGFzaC5qc29uIikpDQoNCiAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBh
dGggJGNsYXVkZVNldHRpbmdzUGF0aCAtVGV4dCAkY2xhdWRlQ2FuZGlkYXRlLnRleHQpDQogICAg
JGNsYXVkZUFwcGxpZWQgPSAkdHJ1ZQ0KICAgIGlmICgkVGVzdEZhaWxBZnRlckNsYXVkZUFwcGx5
KSB7DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkp
IHsgdGhyb3cgJ1Rlc3QgZmFpbHVyZSBpbmplY3Rpb24gaXMgZm9yYmlkZGVuIG91dHNpZGUgYSBm
aXh0dXJlIHNvdWwuJyB9DQogICAgICAgIHRocm93ICdJbmplY3RlZCBmaXh0dXJlIGZhaWx1cmUg
YWZ0ZXIgQ2xhdWRlIHNldHRpbmdzIGFwcGx5LicNCiAgICB9DQogICAgW3ZvaWRdKFdyaXRlLVNv
dWxVdGY4QXRvbWljIC1QYXRoICRjb2RleENvbmZpZ1BhdGggLVRleHQgJGNvZGV4Q2FuZGlkYXRl
LnRleHQpDQogICAgJGNvZGV4QXBwbGllZCA9ICR0cnVlDQoNCiAgICBbdm9pZF0oQWRkLVNvdWxK
b3VybmFsRW50cnkgLVR5cGUgJ2NvbmZpZy5hcHBsaWVkJyAtRGF0YSBAew0KICAgICAgICBnZW5l
cmF0aW9uSWQgPSAkR2VuZXJhdGlvbklkDQogICAgICAgIGNsYXVkZUJhY2t1cFNoYTI1NiA9ICQo
aWYgKCRudWxsIC1lcSAkY2xhdWRlQmFja3VwKSB7ICRudWxsIH0gZWxzZSB7ICRjbGF1ZGVCYWNr
dXAuc2hhMjU2IH0pDQogICAgICAgIGNvZGV4QmFja3VwU2hhMjU2ID0gJChpZiAoJG51bGwgLWVx
ICRjb2RleEJhY2t1cCkgeyAkbnVsbCB9IGVsc2UgeyAkY29kZXhCYWNrdXAuc2hhMjU2IH0pDQog
ICAgICAgIHByb3h5QW5kQmFzZVVybFByZXNlcnZlZCA9ICR0cnVlDQogICAgICAgIHNlc3Npb25E
YXRhYmFzZXNUb3VjaGVkID0gJGZhbHNlDQogICAgICAgIGFsbFJlYWRpbmVzc0dhdGVzUGFzc2Vk
QmVmb3JlRGFuZ2Vyb3VzTW9kZSA9ICR0cnVlDQogICAgfSBAbW9kdWxlQXJndW1lbnRzKQ0KDQog
ICAgJG1hbmlmZXN0LmNvbmZpZ0FwcGxpZWQgPSAkdHJ1ZQ0KICAgIFNldC1Kc29uUHJvcGVydHkg
LU9iamVjdCAkbWFuaWZlc3QgLU5hbWUgJ2NvbmZpZ0FwcGxpZWRBdFV0YycgLVZhbHVlIChbRGF0
ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKSkNCg0KICAgICRtYW5pZmVzdC5zdGF0dXMgPSAn
cmVhZHknDQogICAgJG1hbmlmZXN0LmFkYXB0ZXJzU3RhdHVzID0gJ3ZlcmlmaWVkJw0KICAgIFNl
dC1Kc29uUHJvcGVydHkgLU9iamVjdCAkbWFuaWZlc3QgLU5hbWUgJ2FkYXB0ZXJWZXJpZmljYXRp
b25TaGEyNTYnIC1WYWx1ZSAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJGFkYXB0ZXJWZXJpZmljYXRp
b25QYXRoKQ0KICAgICRwZW5kaW5nQ2FwYWJpbGl0eVByb3BlcnR5ID0gJGFkYXB0ZXJWZXJpZmlj
YXRpb24ubWFya2VyLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlbmRpbmdDYXBhYmlsaXRpZXMnXQ0K
ICAgIFNldC1Kc29uUHJvcGVydHkgLU9iamVjdCAkbWFuaWZlc3QgLU5hbWUgJ3BlbmRpbmdDYXBh
YmlsaXRpZXMnIC1WYWx1ZSAkKGlmICgkbnVsbCAtZXEgJHBlbmRpbmdDYXBhYmlsaXR5UHJvcGVy
dHkpIHsgQCgpIH0gZWxzZSB7IEAoJHBlbmRpbmdDYXBhYmlsaXR5UHJvcGVydHkuVmFsdWUpIH0p
DQogICAgJG1hbmlmZXN0Lm1hY2hpbmVSZWFkeSA9ICR0cnVlDQogICAgU2V0LUpzb25Qcm9wZXJ0
eSAtT2JqZWN0ICRtYW5pZmVzdCAtTmFtZSAnbWFjaGluZVJlYWR5UmVhc29uJyAtVmFsdWUgJ1Jl
cXVpcmVkIGFkYXB0ZXIgYXBwbGljYXRpb24gYW5kIHNtb2tlIGV2aWRlbmNlIHZlcmlmaWVkLicN
CiAgICBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggJG1hbmlmZXN0UGF0aCAtVmFs
dWUgJG1hbmlmZXN0KQ0KICAgIFt2b2lkXShBZGQtU291bEpvdXJuYWxFbnRyeSAtVHlwZSAnZ2Vu
ZXJhdGlvbi5yZWFkeS10by1hY3RpdmF0ZScgLURhdGEgQHsgZ2VuZXJhdGlvbklkID0gJEdlbmVy
YXRpb25JZCB9IEBtb2R1bGVBcmd1bWVudHMpDQoNCiAgICBpZiAoKEdldC1Tb3VsU2hhMjU2IC1Q
YXRoICRzb3VsU3RhdGVQYXRoKSAtY25lICRsYXRlc3RTb3VsU3RhdGVIYXNoKSB7IHRocm93ICdT
b3VsIHN0YXRlIGNoYW5nZWQgYmVmb3JlIGZpbmFsIGNvbW1pdC4nIH0NCiAgICAkcmVhZHlBdCA9
IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgU2V0LUpzb25Qcm9wZXJ0eSAt
T2JqZWN0ICRsYXRlc3RTb3VsU3RhdGUgLU5hbWUgJ2xpZmVjeWNsZScgLVZhbHVlICdyZWFkeScN
CiAgICBTZXQtSnNvblByb3BlcnR5IC1PYmplY3QgJGxhdGVzdFNvdWxTdGF0ZSAtTmFtZSAnbWFj
aGluZVJlYWR5JyAtVmFsdWUgJHRydWUNCiAgICBTZXQtSnNvblByb3BlcnR5IC1PYmplY3QgJGxh
dGVzdFNvdWxTdGF0ZSAtTmFtZSAncGVuZGluZ0NhcGFiaWxpdGllcycgLVZhbHVlIEAoJG1hbmlm
ZXN0LnBlbmRpbmdDYXBhYmlsaXRpZXMpDQogICAgU2V0LUpzb25Qcm9wZXJ0eSAtT2JqZWN0ICRs
YXRlc3RTb3VsU3RhdGUgLU5hbWUgJ3VwZGF0ZWRBdCcgLVZhbHVlICRyZWFkeUF0DQogICAgJGJv
b3RzdHJhcFByb3BlcnR5ID0gJGxhdGVzdFNvdWxTdGF0ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydi
b290c3RyYXAnXQ0KICAgIGlmICgkbnVsbCAtbmUgJGJvb3RzdHJhcFByb3BlcnR5IC1hbmQgJG51
bGwgLW5lICRib290c3RyYXBQcm9wZXJ0eS5WYWx1ZSkgew0KICAgICAgICBTZXQtSnNvblByb3Bl
cnR5IC1PYmplY3QgJGJvb3RzdHJhcFByb3BlcnR5LlZhbHVlIC1OYW1lICdzdGFnZVN0YXR1cycg
LVZhbHVlICdyZWFkeScNCiAgICAgICAgU2V0LUpzb25Qcm9wZXJ0eSAtT2JqZWN0ICRib290c3Ry
YXBQcm9wZXJ0eS5WYWx1ZSAtTmFtZSAncmVhZHlBdCcgLVZhbHVlICRyZWFkeUF0DQogICAgfQ0K
ICAgIFt2b2lkXShXcml0ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAkc291bFN0YXRlUGF0aCAtVmFs
dWUgJGxhdGVzdFNvdWxTdGF0ZSkNCiAgICAkc291bFN0YXRlQXBwbGllZCA9ICR0cnVlDQogICAg
aWYgKCRUZXN0RmFpbEFmdGVyU3RhdGVBcHBseSkgew0KICAgICAgICBpZiAoW3N0cmluZ106Oklz
TnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7IHRocm93ICdUZXN0IGZhaWx1cmUgaW5qZWN0
aW9uIGlzIGZvcmJpZGRlbiBvdXRzaWRlIGEgZml4dHVyZSBzb3VsLicgfQ0KICAgICAgICB0aHJv
dyAnSW5qZWN0ZWQgZml4dHVyZSBmYWlsdXJlIGFmdGVyIHBvcnRhYmxlIHN0YXRlIGFwcGx5LicN
CiAgICB9DQoNCiAgICAjIFJlY2hlY2sgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBjb21taXQgbWFy
a2VyLiBObyBjb25maWcvc3RhdGUgd3JpdGUgZm9sbG93cw0KICAgICMgdGhpcyBjYWxsOyBtb2R1
bGUgam91cm5hbC9sb2NrIGhpc3RvcnkgaXMgZGlhZ25vc3RpYyBhbmQgbmV2ZXIgYW5vdGhlciBw
b2ludGVyLg0KICAgIEFzc2VydC1Ob0xpdmVBZ2VudA0KICAgIEFzc2VydC1GaWxlTm90V3JpdGVy
TG9ja2VkIC1QYXRocyAoR2V0LVdyaXRlckd1YXJkUGF0aHMgLVJvb3QgJHJvb3QpDQogICAgJGV4
cGVjdGVkUHJldmlvdXMgPSBpZiAoJG51bGwgLWVxICRjdXJyZW50UG9pbnRlcikgeyAnJyB9IGVs
c2UgeyBbc3RyaW5nXSRjdXJyZW50UG9pbnRlci5nZW5lcmF0aW9uSWQgfQ0KICAgICRwb2ludGVy
ID0gU2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIC1HZW5lcmF0aW9uSWQgJEdlbmVyYXRpb25JZCAt
RXhwZWN0ZWRQcmV2aW91c0dlbmVyYXRpb25JZCAkZXhwZWN0ZWRQcmV2aW91cyBAbW9kdWxlQXJn
dW1lbnRzDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICBnZW5lcmF0aW9u
SWQgPSAkR2VuZXJhdGlvbklkDQogICAgICAgIHN0YXR1cyA9ICdhY3RpdmUnDQogICAgICAgIHBy
ZXZpb3VzR2VuZXJhdGlvbklkID0gJHBvaW50ZXIucHJldmlvdXNHZW5lcmF0aW9uSWQNCiAgICAg
ICAgY29uZmlnQXBwbGllZCA9ICR0cnVlDQogICAgICAgIGFkYXB0ZXJzU3RhdHVzID0gJ3Zlcmlm
aWVkJw0KICAgICAgICBtYWNoaW5lUmVhZHkgPSAkdHJ1ZQ0KICAgICAgICBhY3RpdmVQb2ludGVy
UGF0aCA9IEdldC1Tb3VsQWN0aXZlR2VuZXJhdGlvblBhdGggQG1vZHVsZUFyZ3VtZW50cw0KICAg
IH0NCn0gY2F0Y2ggew0KICAgICRvcmlnaW5hbEZhaWx1cmUgPSAkXw0KICAgICRhY3RpdmVBZnRl
ckZhaWx1cmUgPSBHZXQtU291bEFjdGl2ZUdlbmVyYXRpb24gQG1vZHVsZUFyZ3VtZW50cw0KICAg
ICRjb21taXRWaXNpYmxlID0gJG51bGwgLW5lICRhY3RpdmVBZnRlckZhaWx1cmUgLWFuZCBbc3Ry
aW5nXSRhY3RpdmVBZnRlckZhaWx1cmUuZ2VuZXJhdGlvbklkIC1jZXEgJEdlbmVyYXRpb25JZA0K
ICAgIGlmICgtbm90ICRjb21taXRWaXNpYmxlKSB7DQogICAgICAgICRyb2xsYmFja0ZhaWx1cmVz
ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAg
ICAgICAgaWYgKCRzb3VsU3RhdGVBcHBsaWVkKSB7DQogICAgICAgICAgICB0cnkgeyBSZXN0b3Jl
LUNvbmZpZ0Zyb21CYWNrdXAgLVRhcmdldCAkc291bFN0YXRlUGF0aCAtQmFja3VwUGF0aCAkc291
bFN0YXRlQmFja3VwLnBhdGggLU9yaWdpbmFsbHlFeGlzdGVkICR0cnVlIH0NCiAgICAgICAgICAg
IGNhdGNoIHsgJHJvbGxiYWNrRmFpbHVyZXMuQWRkKCdzb3VsLXN0YXRlLmpzb246ICcgKyAkXy5F
eGNlcHRpb24uTWVzc2FnZSkgfQ0KICAgICAgICB9DQogICAgICAgIGlmICgkY29kZXhBcHBsaWVk
KSB7DQogICAgICAgICAgICB0cnkgeyBSZXN0b3JlLUNvbmZpZ0Zyb21CYWNrdXAgLVRhcmdldCAk
Y29kZXhDb25maWdQYXRoIC1CYWNrdXBQYXRoICQoaWYgKCRudWxsIC1lcSAkY29kZXhCYWNrdXAp
IHsgJG51bGwgfSBlbHNlIHsgJGNvZGV4QmFja3VwLnBhdGggfSkgLU9yaWdpbmFsbHlFeGlzdGVk
ICRjb2RleE9yaWdpbmFsbHlFeGlzdGVkIH0NCiAgICAgICAgICAgIGNhdGNoIHsgJHJvbGxiYWNr
RmFpbHVyZXMuQWRkKCdDb2RleCBjb25maWc6ICcgKyAkXy5FeGNlcHRpb24uTWVzc2FnZSkgfQ0K
ICAgICAgICB9DQogICAgICAgIGlmICgkY2xhdWRlQXBwbGllZCkgew0KICAgICAgICAgICAgdHJ5
IHsgUmVzdG9yZS1Db25maWdGcm9tQmFja3VwIC1UYXJnZXQgJGNsYXVkZVNldHRpbmdzUGF0aCAt
QmFja3VwUGF0aCAkKGlmICgkbnVsbCAtZXEgJGNsYXVkZUJhY2t1cCkgeyAkbnVsbCB9IGVsc2Ug
eyAkY2xhdWRlQmFja3VwLnBhdGggfSkgLU9yaWdpbmFsbHlFeGlzdGVkICRjbGF1ZGVPcmlnaW5h
bGx5RXhpc3RlZCB9DQogICAgICAgICAgICBjYXRjaCB7ICRyb2xsYmFja0ZhaWx1cmVzLkFkZCgn
Q2xhdWRlIHNldHRpbmdzOiAnICsgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIH0NCiAgICAgICAgfQ0K
ICAgICAgICB0cnkgeyBbdm9pZF0oQWRkLVNvdWxKb3VybmFsRW50cnkgLVR5cGUgJ2ZpbmFsaXpl
LnJvbGxlZC1iYWNrJyAtRGF0YSBAeyBnZW5lcmF0aW9uSWQgPSAkR2VuZXJhdGlvbklkOyByZWFz
b25UeXBlID0gJG9yaWdpbmFsRmFpbHVyZS5FeGNlcHRpb24uR2V0VHlwZSgpLkZ1bGxOYW1lOyBy
b2xsYmFja0ZhaWx1cmVzID0gQCgkcm9sbGJhY2tGYWlsdXJlcykgfSBAbW9kdWxlQXJndW1lbnRz
KSB9IGNhdGNoIHsgfQ0KICAgICAgICBpZiAoJHJvbGxiYWNrRmFpbHVyZXMuQ291bnQgLWd0IDAp
IHsNCiAgICAgICAgICAgIHRocm93ICgnRmluYWxpemF0aW9uIGZhaWxlZCBhbmQgb25lIG9yIG1v
cmUgcm9sbGJhY2sgd3JpdGVzIGFsc28gZmFpbGVkLiBPcmlnaW5hbDogezB9OyByb2xsYmFjazog
ezF9JyAtZiAkb3JpZ2luYWxGYWlsdXJlLkV4Y2VwdGlvbi5NZXNzYWdlLCAoJHJvbGxiYWNrRmFp
bHVyZXMgLWpvaW4gJyB8ICcpKQ0KICAgICAgICB9DQogICAgfQ0KICAgIHRocm93ICRvcmlnaW5h
bEZhaWx1cmUNCn0gZmluYWxseSB7DQogICAgRXhpdC1Tb3VsT3BlcmF0aW9uTG9jayAtTG9jayAk
Z2xvYmFsTG9jaw0KfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/handoff.ps1","encoding":"base64","size":31745,"runtimeSha256":"9d8523f0024245082a11089a32a3e9a95d5f9a0719701db0ba86a71a8cb66b76","normalizedSha256":"1795515a2d4e6f48006205bd54a0af8182dbde9449e688bbbbc5bfe9afae2025"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KPCMNCi5TWU5PUFNJUw0KICBDbGF1ZGXsmYAgQ29k
ZXjqsIAg7ZWo6ruYIOydveuKlCDrspTsnITrs4Qg7J246rOEIOyepeu2gOulvCDslYjsoITtlZjq
sowg6rCx7Iug7ZWc64ukLg0KDQouREVTQ1JJUFRJT04NCiAg7IKs6rG0KGV2ZW50KeydgCBVVUlE
IO2MjOydvOuhnCDtlZwg67KI66eMIOyDneyEse2VmOupsCDsiJjsoJXtlZjsp4Ag7JWK64qU64uk
LiDqsJnsnYAg67KU7JyE7J2YIOuqqOuToCDsk7DquLDripQNCiAg7ZWY64KY7J2YIOuwsO2DgCDs
nqDquIgg7JWI7JeQ7IScIOuLqOyhsCDspp3qsIAgc2VxdWVuY2Xrpbwg67Cw7KCV7ZWc64ukLiBD
VVJSRU5ULm1k7JmAIE1FTU9SWS5tZOuKlCDsgqzqsbTsnYQNCiAg64uk7IucIOydveyWtCDrp4zr
k5zripQg7YyM7IOdIOusuOyEnOydtOupsCwg6rWQ7LK0IOyghCDrgrTsmqnsnYAgcmV2aXNpb25z
7JeQIOuztOyhtO2VnOuLpC4NCiM+DQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oDQogICAgW1Bh
cmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldDQogICAgW1ZhbGlkYXRlU2V0KCdSZWdpc3RlclNj
b3BlJywgJ0FwcGVuZCcsICdSZWR1Y2UnLCAnU3RhdHVzJywgJ1NldFNlc3Npb25zJyldDQogICAg
W3N0cmluZ10kQWN0aW9uLA0KDQogICAgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldDQog
ICAgW3N0cmluZ10kU291bFJvb3QsDQoNCiAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVl
KV0NCiAgICBbc3RyaW5nXSRTY29wZVBhdGgsDQoNCiAgICBbVmFsaWRhdGVQYXR0ZXJuKCdeWzAt
OWEtZkEtRi1dezM2fSQnKV0NCiAgICBbc3RyaW5nXSRTY29wZUlkLA0KDQogICAgW1ZhbGlkYXRl
U2V0KCdjbGF1ZGUnLCAnY29kZXgnKV0NCiAgICBbc3RyaW5nXSRBZ2VudCwNCg0KICAgIFtWYWxp
ZGF0ZVNldCgnVXNlckRpcmVjdGl2ZScsICdBcHByb3ZlZERlY2lzaW9uJywgJ0FnZW50SW5mZXJl
bmNlJywgJ1JlY292ZXJ5RGV0ZWN0ZWQnLCAnRXh0ZXJuYWxBY3Rpb25Vbmtub3duJyldDQogICAg
W3N0cmluZ10kS2luZCwNCg0KICAgIFtzdHJpbmddJENvbnRlbnQsDQogICAgW3N0cmluZ10kQWN0
b3IsDQogICAgW1ZhbGlkYXRlU2V0KCcnLCAndXNlcicpXQ0KICAgIFtzdHJpbmddJEFwcHJvdmVk
QnkgPSAnJywNCiAgICBbc3RyaW5nW11dJEV2aWRlbmNlUmVmID0gQCgpLA0KICAgIFtzdHJpbmdd
JE5hdGl2ZVNlc3Npb25JZCwNCiAgICBbc3RyaW5nXSRDbGF1ZGVTZXNzaW9uSWQsDQogICAgW3N0
cmluZ10kQ29kZXhTZXNzaW9uSWQsDQogICAgW3N3aXRjaF0kTm9SZWR1Y2UsDQogICAgW1ZhbGlk
YXRlUmFuZ2UoMSwgMzAwKV0NCiAgICBbaW50XSRMb2NrVGltZW91dFNlY29uZHMgPSAzMA0KKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJG1vZHVsZVBhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAnZW5naW5l
XFNvdWwuRW5naW5lLnBzbTEnDQppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbW9k
dWxlUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsNCiAgICB0aHJvdyAi6rO17Ya1IOyEuO2MhSDsl5Ts
p4TsnYQg7LC+7KeAIOuqu+2WiOyKteuLiOuLpDogJG1vZHVsZVBhdGhgbuyEuO2MhSDtjIzsnbzs
nbQg642cIOuzteyCrOuQnCDsg4Htg5zsnoXri4jri6QuIOq4sOyhtCDsnbjqs4Qg7J6Q66OM64qU
IOqxtOuTnOumrOyngCDslYrslZjsirXri4jri6QuIg0KfQ0KSW1wb3J0LU1vZHVsZSAtTmFtZSAk
bW9kdWxlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCg0KZnVuY3Rpb24gR2V0LUZ1bGxM
aXRlcmFsUGF0aCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0
cmluZ10kUGF0aCkNCiAgICBbU3lzdGVtLklPLlBhdGhdOjpHZXRGdWxsUGF0aCgkUGF0aCkuVHJp
bUVuZCgnXCcpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtSXNVbmRlclBhdGggew0KICAgIHBhcmFtKFtz
dHJpbmddJENhbmRpZGF0ZSwgW3N0cmluZ10kUGFyZW50KQ0KICAgICRjYW5kaWRhdGVGdWxsID0g
R2V0LUZ1bGxMaXRlcmFsUGF0aCAkQ2FuZGlkYXRlDQogICAgJHBhcmVudEZ1bGwgPSBHZXQtRnVs
bExpdGVyYWxQYXRoICRQYXJlbnQNCiAgICAkY2FuZGlkYXRlRnVsbC5FcXVhbHMoJHBhcmVudEZ1
bGwsIFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSAtb3INCiAg
ICAgICAgJGNhbmRpZGF0ZUZ1bGwuU3RhcnRzV2l0aCgkcGFyZW50RnVsbCArICdcJywgW1N5c3Rl
bS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpDQp9DQoNCmZ1bmN0aW9uIEFz
c2VydC1Ob1JlcGFyc2VQb2ludCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAk
dHJ1ZSldW3N0cmluZ10kUGF0aCkNCiAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAk
UGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMg
LWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsN
CiAgICAgICAgdGhyb3cgIuuylOychCDtj7TrjZTqsIAg7Jew6rKw7KCQKOyLrOuzvOumrSDrp4Ht
gawv7KCV7IWYKeydtOuvgOuhnCDtkZzsp4Ag7YyM7J287J2EIOyTsOyngCDslYrsirXri4jri6Q6
ICRQYXRoIg0KICAgIH0NCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LU5vUmVwYXJzZVdpdGhpbiB7DQog
ICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kUGF0aCwgW1Bh
cmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kQm91bmRhcnkpDQogICAgJGZ1bGwg
PSBHZXQtRnVsbExpdGVyYWxQYXRoICRQYXRoDQogICAgJGJhc2UgPSBHZXQtRnVsbExpdGVyYWxQ
YXRoICRCb3VuZGFyeQ0KICAgIGlmICgtbm90IChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUg
JGZ1bGwgLVBhcmVudCAkYmFzZSkpIHsgdGhyb3cgJ+qygOyCrCDqsr3roZzqsIAg7ZeI7Jqp65Cc
IOuylOychOulvCDrspfslrTrgqzsirXri4jri6QuJyB9DQogICAgJGN1cnJlbnQgPSAkYmFzZQ0K
ICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjdXJyZW50KSB7IEFzc2VydC1Ob1JlcGFy
c2VQb2ludCAtUGF0aCAkY3VycmVudCB9DQogICAgZm9yZWFjaCAoJHBhcnQgaW4gJGZ1bGwuU3Vi
c3RyaW5nKCRiYXNlLkxlbmd0aCkuVHJpbVN0YXJ0KCdcJykuU3BsaXQoJ1wnKSkgew0KICAgICAg
ICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkcGFydCkpIHsgY29udGludWUgfQ0K
ICAgICAgICAkY3VycmVudCA9IEpvaW4tUGF0aCAkY3VycmVudCAkcGFydA0KICAgICAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY3VycmVudCkpIHsgYnJlYWsgfQ0KICAgICAg
ICBBc3NlcnQtTm9SZXBhcnNlUG9pbnQgLVBhdGggJGN1cnJlbnQNCiAgICB9DQp9DQoNCmZ1bmN0
aW9uIFRlc3QtRGlzcG9zYWJsZUF1eFJvb3Qgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgpDQog
ICAgJGZpeHR1cmVCb3VuZGFyeSA9IEdldC1GdWxsTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkUFNT
Y3JpcHRSb290ICd0ZXN0c1xmaXh0dXJlcycpDQogICAgJGZ1bGwgPSBHZXQtRnVsbExpdGVyYWxQ
YXRoICRQYXRoDQogICAgaWYgKChTcGxpdC1QYXRoIC1QYXJlbnQgJGZ1bGwpIC1uZSAkZml4dHVy
ZUJvdW5kYXJ5KSB7IHJldHVybiAkZmFsc2UgfQ0KICAgICRsZWFmID0gW0lPLlBhdGhdOjpHZXRG
aWxlTmFtZSgkZnVsbCkNCiAgICBpZiAoJGxlYWYgLW5vdG1hdGNoICdeYXV4LShbMC05YS1mXXsz
Mn0pJCcpIHsgcmV0dXJuICRmYWxzZSB9DQogICAgJGV4cGVjdGVkQ2FzZUlkID0gJE1hdGNoZXNb
MV0NCiAgICBBc3NlcnQtTm9SZXBhcnNlV2l0aGluIC1QYXRoICRmdWxsIC1Cb3VuZGFyeSAkZml4
dHVyZUJvdW5kYXJ5DQogICAgJG1hcmtlclBhdGggPSBKb2luLVBhdGggJGZ1bGwgJy5vd25lZC1h
dXgtdGVzdC5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRtYXJr
ZXJQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyByZXR1cm4gJGZhbHNlIH0NCiAgICAkbWFya2VyID0g
R2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRtYXJrZXJQYXRoIC1SYXcgLUVuY29kaW5nIFVURjgg
fCBDb252ZXJ0RnJvbS1Kc29uDQogICAgcmV0dXJuIFtzdHJpbmddJG1hcmtlci5jYXNlSWQgLWVx
ICRleHBlY3RlZENhc2VJZA0KfQ0KDQpmdW5jdGlvbiBHZXQtU2hhMjU2VGV4dCB7DQogICAgcGFy
YW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kVGV4dCkNCiAgICAkc2hh
ID0gW1N5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkNCiAgICB0
cnkgew0KICAgICAgICAkYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5
dGVzKCRUZXh0KQ0KICAgICAgICAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRzaGEuQ29tcHV0
ZUhhc2goJGJ5dGVzKSkpLlJlcGxhY2UoJy0nLCAnJykuVG9Mb3dlckludmFyaWFudCgpDQogICAg
fQ0KICAgIGZpbmFsbHkgeyAkc2hhLkRpc3Bvc2UoKSB9DQp9DQoNCmZ1bmN0aW9uIFdyaXRlLVRl
eHRDcmVhdGVOZXcgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJFRleHQpDQog
ICAgJHV0ZjggPSBOZXctT2JqZWN0IFN5c3RlbS5UZXh0LlVURjhFbmNvZGluZygkZmFsc2UpDQog
ICAgJHN0cmVhbSA9IE5ldy1PYmplY3QgU3lzdGVtLklPLkZpbGVTdHJlYW0oJFBhdGgsIFtTeXN0
ZW0uSU8uRmlsZU1vZGVdOjpDcmVhdGVOZXcsIFtTeXN0ZW0uSU8uRmlsZUFjY2Vzc106OldyaXRl
LCBbU3lzdGVtLklPLkZpbGVTaGFyZV06Ok5vbmUpDQogICAgdHJ5IHsNCiAgICAgICAgJHdyaXRl
ciA9IE5ldy1PYmplY3QgU3lzdGVtLklPLlN0cmVhbVdyaXRlcigkc3RyZWFtLCAkdXRmOCkNCiAg
ICAgICAgdHJ5IHsgJHdyaXRlci5Xcml0ZSgkVGV4dCk7ICR3cml0ZXIuRmx1c2goKTsgJHN0cmVh
bS5GbHVzaCgkdHJ1ZSkgfSBmaW5hbGx5IHsgJHdyaXRlci5EaXNwb3NlKCkgfQ0KICAgIH0NCiAg
ICBmaW5hbGx5IHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1Kc29u
Q3JlYXRlTmV3IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCAkVmFsdWUpDQogICAgV3JpdGUt
VGV4dENyZWF0ZU5ldyAtUGF0aCAkUGF0aCAtVGV4dCAoKCRWYWx1ZSB8IENvbnZlcnRUby1Kc29u
IC1EZXB0aCAyMCkgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lKQ0KfQ0KDQpmdW5jdGlvbiBTZXQt
RmlsZVJlYWRPbmx5R3VhcmQgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRy
dWUpXVtzdHJpbmddJFBhdGgpDQogICAgJGF0dHJpYnV0ZXMgPSBbU3lzdGVtLklPLkZpbGVdOjpH
ZXRBdHRyaWJ1dGVzKCRQYXRoKQ0KICAgIFtTeXN0ZW0uSU8uRmlsZV06OlNldEF0dHJpYnV0ZXMo
JFBhdGgsICgkYXR0cmlidXRlcyAtYm9yIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZWFk
T25seSkpDQp9DQoNCmZ1bmN0aW9uIFdyaXRlLURlcml2ZWRBdG9taWMgew0KICAgIHBhcmFtKA0K
ICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRQYXRoLA0KICAg
ICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRUZXh0LA0KICAgICAg
ICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRSZXZpc2lvbnNEaXJlY3Rv
cnkNCiAgICApDQogICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoKFNw
bGl0LVBhdGggLVBhcmVudCAkUGF0aCkpIHwgT3V0LU51bGwNCiAgICBbU3lzdGVtLklPLkRpcmVj
dG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkUmV2aXNpb25zRGlyZWN0b3J5KSB8IE91dC1OdWxsDQog
ICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJFBhdGggLVBhdGhUeXBlIExlYWYpIHsNCiAg
ICAgICAgJG9sZFRleHQgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkUGF0aCwgW1N5
c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOCkNCiAgICAgICAgaWYgKCRvbGRUZXh0IC1lcSAkVGV4
dCkgeyByZXR1cm4gfQ0KICAgICAgICAkYmFzZSA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVO
YW1lV2l0aG91dEV4dGVuc2lvbigkUGF0aCkNCiAgICAgICAgJHN0YW1wID0gW0RhdGVUaW1lXTo6
VXRjTm93LlRvU3RyaW5nKCd5eXl5TU1kZFRISG1tc3NmZmZmZmZmWicpDQogICAgICAgICRoYXNo
ID0gKEdldC1TaGEyNTZUZXh0ICRvbGRUZXh0KS5TdWJzdHJpbmcoMCwgMTIpDQogICAgICAgICRy
ZXZpc2lvblBhdGggPSBKb2luLVBhdGggJFJldmlzaW9uc0RpcmVjdG9yeSAoJGJhc2UgKyAnLicg
KyAkc3RhbXAgKyAnLicgKyAkaGFzaCArICcuJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5n
KCdOJykgKyAnLm1kJykNCiAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6Q29weSgkUGF0aCwgJHJl
dmlzaW9uUGF0aCwgJGZhbHNlKQ0KICAgICAgICBTZXQtRmlsZVJlYWRPbmx5R3VhcmQgLVBhdGgg
JHJldmlzaW9uUGF0aA0KICAgIH0NCiAgICAkZGlyZWN0b3J5ID0gU3BsaXQtUGF0aCAtUGFyZW50
ICRQYXRoDQogICAgJHRlbXBvcmFyeSA9IEpvaW4tUGF0aCAkZGlyZWN0b3J5ICgnLnRtcC0nICsg
W2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKSkNCiAgICBXcml0ZS1UZXh0Q3JlYXRlTmV3
IC1QYXRoICR0ZW1wb3JhcnkgLVRleHQgJFRleHQNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFs
UGF0aCAkUGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAkcmVwbGFjZUJhY2t1cCA9IEpv
aW4tUGF0aCAkZGlyZWN0b3J5ICgnLnJlcGxhY2UtJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3Ry
aW5nKCdOJykpDQogICAgICAgIHRyeSB7IFtTeXN0ZW0uSU8uRmlsZV06OlJlcGxhY2UoJHRlbXBv
cmFyeSwgJFBhdGgsICRyZXBsYWNlQmFja3VwLCAkdHJ1ZSkgfQ0KICAgICAgICBmaW5hbGx5IHsg
aWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHJlcGxhY2VCYWNrdXAgLVBhdGhUeXBlIExlYWYp
IHsgW1N5c3RlbS5JTy5GaWxlXTo6RGVsZXRlKCRyZXBsYWNlQmFja3VwKSB9IH0NCiAgICB9DQog
ICAgZWxzZSB7IFtTeXN0ZW0uSU8uRmlsZV06Ok1vdmUoJHRlbXBvcmFyeSwgJFBhdGgpIH0NCn0N
Cg0KZnVuY3Rpb24gV3JpdGUtSnNvbkF0b21pY1dpdGhSZXZpc2lvbiB7DQogICAgcGFyYW0oW3N0
cmluZ10kUGF0aCwgJFZhbHVlLCBbc3RyaW5nXSRSZXZpc2lvbnNEaXJlY3RvcnkpDQogICAgJHRl
eHQgPSAoJFZhbHVlIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDIwKSArIFtFbnZpcm9ubWVudF06
Ok5ld0xpbmUNCiAgICAkZXh0ZW5zaW9uID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RXh0ZW5zaW9u
KCRQYXRoKQ0KICAgIFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KChTcGxp
dC1QYXRoIC1QYXJlbnQgJFBhdGgpKSB8IE91dC1OdWxsDQogICAgaWYgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJFBhdGggLVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgW1N5c3RlbS5JTy5EaXJl
Y3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJFJldmlzaW9uc0RpcmVjdG9yeSkgfCBPdXQtTnVsbA0K
ICAgICAgICAkb2xkID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJFBhdGgsIFtTeXN0
ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpDQogICAgICAgIGlmICgkb2xkIC1lcSAkdGV4dCkgeyBy
ZXR1cm4gfQ0KICAgICAgICAkbmFtZSA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lV2l0
aG91dEV4dGVuc2lvbigkUGF0aCkNCiAgICAgICAgJHJldmlzaW9uID0gSm9pbi1QYXRoICRSZXZp
c2lvbnNEaXJlY3RvcnkgKCRuYW1lICsgJy4nICsgW0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5n
KCd5eXl5TU1kZFRISG1tc3NmZmZmZmZmWicpICsgJy4nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9T
dHJpbmcoJ04nKSArICRleHRlbnNpb24pDQogICAgICAgIFtTeXN0ZW0uSU8uRmlsZV06OkNvcHko
JFBhdGgsICRyZXZpc2lvbiwgJGZhbHNlKQ0KICAgICAgICBTZXQtRmlsZVJlYWRPbmx5R3VhcmQg
LVBhdGggJHJldmlzaW9uDQogICAgfQ0KICAgICR0ZW1wb3JhcnkgPSBKb2luLVBhdGggKFNwbGl0
LVBhdGggLVBhcmVudCAkUGF0aCkgKCcudG1wLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmlu
ZygnTicpICsgJGV4dGVuc2lvbikNCiAgICBXcml0ZS1UZXh0Q3JlYXRlTmV3IC1QYXRoICR0ZW1w
b3JhcnkgLVRleHQgJHRleHQNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAt
UGF0aFR5cGUgTGVhZikgew0KICAgICAgICAkYmFja3VwID0gSm9pbi1QYXRoIChTcGxpdC1QYXRo
IC1QYXJlbnQgJFBhdGgpICgnLnJlcGxhY2UtJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5n
KCdOJykgKyAkZXh0ZW5zaW9uKQ0KICAgICAgICB0cnkgeyBbU3lzdGVtLklPLkZpbGVdOjpSZXBs
YWNlKCR0ZW1wb3JhcnksICRQYXRoLCAkYmFja3VwLCAkdHJ1ZSkgfQ0KICAgICAgICBmaW5hbGx5
IHsgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGJhY2t1cCAtUGF0aFR5cGUgTGVhZikgeyBb
U3lzdGVtLklPLkZpbGVdOjpEZWxldGUoJGJhY2t1cCkgfSB9DQogICAgfQ0KICAgIGVsc2UgeyBb
U3lzdGVtLklPLkZpbGVdOjpNb3ZlKCR0ZW1wb3JhcnksICRQYXRoKSB9DQp9DQoNCmZ1bmN0aW9u
IEludm9rZS1XaXRoRmlsZUxvY2sgew0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1h
bmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRMb2NrUGF0aCwNCiAgICAgICAgW1BhcmFtZXRlcihN
YW5kYXRvcnkgPSAkdHJ1ZSldW3NjcmlwdGJsb2NrXSRCb2R5DQogICAgKQ0KICAgIFtTeXN0ZW0u
SU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KChTcGxpdC1QYXRoIC1QYXJlbnQgJExvY2tQ
YXRoKSkgfCBPdXQtTnVsbA0KICAgICRkZWFkbGluZSA9IFtEYXRlVGltZV06OlV0Y05vdy5BZGRT
ZWNvbmRzKCRMb2NrVGltZW91dFNlY29uZHMpDQogICAgJHN0cmVhbSA9ICRudWxsDQogICAgd2hp
bGUgKCRudWxsIC1lcSAkc3RyZWFtIC1hbmQgW0RhdGVUaW1lXTo6VXRjTm93IC1sdCAkZGVhZGxp
bmUpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICRzdHJlYW0gPSBOZXctT2JqZWN0IFN5
c3RlbS5JTy5GaWxlU3RyZWFtKCRMb2NrUGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9kZV06Ok9wZW5P
ckNyZWF0ZSwgW1N5c3RlbS5JTy5GaWxlQWNjZXNzXTo6UmVhZFdyaXRlLCBbU3lzdGVtLklPLkZp
bGVTaGFyZV06Ok5vbmUpDQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggW1N5c3RlbS5JTy5JT0V4
Y2VwdGlvbl0geyBTdGFydC1TbGVlcCAtTWlsbGlzZWNvbmRzIDEwMCB9DQogICAgfQ0KICAgIGlm
ICgkbnVsbCAtZXEgJHN0cmVhbSkgeyB0aHJvdyAi64uk66W4IOyXkOydtOyghO2KuOqwgCDqsJns
nYAg67KU7JyE66W8IOq4sOuhnSDspJHsnoXri4jri6QuICRMb2NrVGltZW91dFNlY29uZHPstIgg
7JWI7JeQIOyeoOq4iOydhCDslrvsp4Ag66q77ZaI7Iq164uI64ukLiIgfQ0KICAgIHRyeSB7ICYg
JEJvZHkgfSBmaW5hbGx5IHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KfQ0KDQpmdW5jdGlvbiBJbnZv
a2UtV2l0aFNjb3BlSGllcmFyY2h5TG9jayB7DQogICAgcGFyYW0oDQogICAgICAgIFtzdHJpbmdd
JEhhbmRvZmZSb290LA0KICAgICAgICBbc3RyaW5nXSRBbGlhcywNCiAgICAgICAgW3NjcmlwdGJs
b2NrXSRCb2R5LA0KICAgICAgICBbc3dpdGNoXSRSZWFkT25seQ0KICAgICkNCiAgICAkcHJlZml4
ZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbc3RyaW5nXQ0K
ICAgICRwcmVmaXhlcy5BZGQoJy4nKQ0KICAgIGlmICgkQWxpYXMgLW5lICcuJykgew0KICAgICAg
ICAkY3VycmVudCA9ICcnDQogICAgICAgIGZvcmVhY2ggKCRwYXJ0IGluICRBbGlhcy5TcGxpdCgn
LycpKSB7DQogICAgICAgICAgICAkY3VycmVudCA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0
ZVNwYWNlKCRjdXJyZW50KSkgeyAkcGFydCB9IGVsc2UgeyAkY3VycmVudCArICcvJyArICRwYXJ0
IH0NCiAgICAgICAgICAgICRwcmVmaXhlcy5BZGQoJGN1cnJlbnQpDQogICAgICAgIH0NCiAgICB9
DQogICAgJGxvY2tEaXJlY3RvcnkgPSBKb2luLVBhdGggJEhhbmRvZmZSb290ICcubG9ja3NcaGll
cmFyY2h5Jw0KICAgIFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRsb2Nr
RGlyZWN0b3J5KSB8IE91dC1OdWxsDQogICAgJGRlYWRsaW5lID0gW0RhdGVUaW1lXTo6VXRjTm93
LkFkZFNlY29uZHMoJExvY2tUaW1lb3V0U2Vjb25kcykNCiAgICAkc3RyZWFtcyA9IE5ldy1PYmpl
Y3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtTeXN0ZW0uSU8uRmlsZVN0cmVhbV0N
CiAgICAkYWNxdWlyZWQgPSAkZmFsc2UNCiAgICB3aGlsZSAoLW5vdCAkYWNxdWlyZWQgLWFuZCBb
RGF0ZVRpbWVdOjpVdGNOb3cgLWx0ICRkZWFkbGluZSkgew0KICAgICAgICB0cnkgew0KICAgICAg
ICAgICAgZm9yICgkaSA9IDA7ICRpIC1sdCAkcHJlZml4ZXMuQ291bnQ7ICRpKyspIHsNCiAgICAg
ICAgICAgICAgICAkbG9ja1BhdGggPSBKb2luLVBhdGggJGxvY2tEaXJlY3RvcnkgKChHZXQtU2hh
MjU2VGV4dCAkcHJlZml4ZXNbJGldKSArICcubG9jaycpDQogICAgICAgICAgICAgICAgaWYgKC1u
b3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxvY2tQYXRoIC1QYXRoVHlwZSBMZWFmKSkgew0K
ICAgICAgICAgICAgICAgICAgICAkaW5pdGlhbGl6ZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5G
aWxlU3RyZWFtKCRsb2NrUGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9kZV06Ok9wZW5PckNyZWF0ZSwg
W1N5c3RlbS5JTy5GaWxlQWNjZXNzXTo6UmVhZFdyaXRlLCBbU3lzdGVtLklPLkZpbGVTaGFyZV06
OlJlYWRXcml0ZSkNCiAgICAgICAgICAgICAgICAgICAgJGluaXRpYWxpemVyLkRpc3Bvc2UoKQ0K
ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkaXNTZWxmID0gJGkgLWVxICgkcHJl
Zml4ZXMuQ291bnQgLSAxKQ0KICAgICAgICAgICAgICAgIGlmICgkaXNTZWxmIC1hbmQgLW5vdCAk
UmVhZE9ubHkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHN0cmVhbSA9IE5ldy1PYmplY3QgU3lz
dGVtLklPLkZpbGVTdHJlYW0oJGxvY2tQYXRoLCBbU3lzdGVtLklPLkZpbGVNb2RlXTo6T3Blbiwg
W1N5c3RlbS5JTy5GaWxlQWNjZXNzXTo6UmVhZFdyaXRlLCBbU3lzdGVtLklPLkZpbGVTaGFyZV06
Ok5vbmUpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAg
ICAgICAgICAgICAgICAjIOyhsOyDgeyXkOuKlCDqs7XsnKAg7J296riwIOyeoOq4iOydhCDrkZTr
i6QuIO2YleygnOuBvOumrOuKlCDtlajqu5gg7KeA64KY6rCA7KeA66eMLA0KICAgICAgICAgICAg
ICAgICAgICAjIOyhsOyDgSDsnpDssrTrpbwg7JOw64qUIOyekeyXheydmCDrsLDtg4Ag7J6g6riI
6rO864qUIOy2qeuPjO2VnOuLpC4NCiAgICAgICAgICAgICAgICAgICAgJHN0cmVhbSA9IE5ldy1P
YmplY3QgU3lzdGVtLklPLkZpbGVTdHJlYW0oJGxvY2tQYXRoLCBbU3lzdGVtLklPLkZpbGVNb2Rl
XTo6T3BlbiwgW1N5c3RlbS5JTy5GaWxlQWNjZXNzXTo6UmVhZCwgW1N5c3RlbS5JTy5GaWxlU2hh
cmVdOjpSZWFkKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkc3RyZWFtcy5B
ZGQoJHN0cmVhbSkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRhY3F1aXJlZCA9ICR0cnVl
DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggW1N5c3RlbS5JTy5JT0V4Y2VwdGlvbl0gew0KICAg
ICAgICAgICAgZm9yICgkaSA9ICRzdHJlYW1zLkNvdW50IC0gMTsgJGkgLWdlIDA7ICRpLS0pIHsg
JHN0cmVhbXNbJGldLkRpc3Bvc2UoKSB9DQogICAgICAgICAgICAkc3RyZWFtcy5DbGVhcigpDQog
ICAgICAgICAgICBTdGFydC1TbGVlcCAtTWlsbGlzZWNvbmRzIDEwMA0KICAgICAgICB9DQogICAg
fQ0KICAgIGlmICgtbm90ICRhY3F1aXJlZCkgeyB0aHJvdyAi6rCZ7J2AIOuylOychCDrmJDripQg
7KGw7IOBwrfsnpDshpAg67KU7JyE6rCAIOyekeyXhSDspJHsnoXri4jri6QuICRMb2NrVGltZW91
dFNlY29uZHPstIgg7JWI7JeQIOqzhOy4tSDsnqDquIjsnYQg7Ja77KeAIOuqu+2WiOyKteuLiOuL
pC4iIH0NCiAgICB0cnkgeyAmICRCb2R5IH0gZmluYWxseSB7IGZvciAoJGkgPSAkc3RyZWFtcy5D
b3VudCAtIDE7ICRpIC1nZSAwOyAkaS0tKSB7ICRzdHJlYW1zWyRpXS5EaXNwb3NlKCkgfSB9DQp9
DQoNCmZ1bmN0aW9uIFJlYWQtU291bElkZW50aXR5IHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290
KQ0KICAgICRzdGF0ZVBhdGggPSBKb2luLVBhdGggJFJvb3QgJ3NvdWwtc3RhdGUuanNvbicNCiAg
ICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3RhdGVQYXRoIC1QYXRoVHlwZSBM
ZWFmKSkgeyB0aHJvdyAi7JiB7Zi8IOyLneuzhCDtjIzsnbzsnbQg7JeG7Iq164uI64ukOiAkc3Rh
dGVQYXRoIiB9DQogICAgJHN0YXRlID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRzdGF0ZVBh
dGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAkcGFyc2VkID0g
W2d1aWRdOjpFbXB0eQ0KICAgIGlmICgkbnVsbCAtZXEgJHN0YXRlLlBTT2JqZWN0LlByb3BlcnRp
ZXNbJ3NvdWxJZCddIC1vciAtbm90IFtndWlkXTo6VHJ5UGFyc2UoW3N0cmluZ10kc3RhdGUuc291
bElkLCBbcmVmXSRwYXJzZWQpKSB7DQogICAgICAgIHRocm93ICdzb3VsLXN0YXRlLmpzb27snZgg
c291bElk6rCAIOyYrOuwlOuluCBVVUlE6rCAIOyVhOuLmeuLiOuLpC4nDQogICAgfQ0KICAgIFtz
dHJpbmddJHBhcnNlZA0KfQ0KDQpmdW5jdGlvbiBHZXQtUmVsYXRpdmVBbGlhcyB7DQogICAgcGFy
YW0oW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kUGF0aCkNCiAgICBpZiAoJFJvb3QuRXF1YWxzKCRQ
YXRoLCBbU3lzdGVtLlN0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsgcmV0
dXJuICcuJyB9DQogICAgJHJlbGF0aXZlID0gJFBhdGguU3Vic3RyaW5nKCRSb290Lkxlbmd0aCku
VHJpbVN0YXJ0KCdcJykNCiAgICByZXR1cm4gJHJlbGF0aXZlLlJlcGxhY2UoJ1wnLCAnLycpDQp9
DQoNCmZ1bmN0aW9uIEdldC1SZWdpc3RlcmVkU2NvcGUgew0KICAgIHBhcmFtKA0KICAgICAgICBb
c3RyaW5nXSRSb290LA0KICAgICAgICBbc3RyaW5nXSRQYXRoLA0KICAgICAgICBbc3RyaW5nXSRT
b3VsSWQsDQogICAgICAgIFtzdHJpbmddJFJlcXVlc3RlZFNjb3BlSWQsDQogICAgICAgIFtzd2l0
Y2hdJFJlYWRPbmx5DQogICAgKQ0KICAgICRoYW5kb2ZmUm9vdCA9IEpvaW4tUGF0aCAkUm9vdCAn
X2FnZW50XHNoYXJlZFxoYW5kb2ZmJw0KICAgICRtYXJrZXJQYXRoID0gSm9pbi1QYXRoICRQYXRo
ICcuc291bC1zY29wZS5qc29uJw0KICAgICRyZWdpc3RyeVBhdGggPSBKb2luLVBhdGggJGhhbmRv
ZmZSb290ICdzY29wZS1yZWdpc3RyeS5qc29uJw0KICAgICRyZWdpc3RyeVJldmlzaW9ucyA9IEpv
aW4tUGF0aCAkaGFuZG9mZlJvb3QgJ3JlZ2lzdHJ5LXJldmlzaW9ucycNCiAgICAkYWxpYXMgPSBH
ZXQtUmVsYXRpdmVBbGlhcyAtUm9vdCAkUm9vdCAtUGF0aCAkUGF0aA0KICAgICRyZXNvbHZlZFNj
b3BlSWQgPSAkbnVsbA0KICAgICRyZWdpc3RyeSA9ICRudWxsDQogICAgJHJlZ2lzdGVyZWRBbGlh
cyA9IEAoKQ0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRyZWdpc3RyeVBhdGggLVBh
dGhUeXBlIExlYWYpIHsNCiAgICAgICAgJHJlZ2lzdHJ5ID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQ
YXRoICRyZWdpc3RyeVBhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24N
CiAgICAgICAgaWYgKFtzdHJpbmddJHJlZ2lzdHJ5LnNvdWxJZCAtbmUgJFNvdWxJZCkgeyB0aHJv
dyAn67KU7JyEIOuzhOy5rSDrk7HroZ3rtoDsnZgg7JiB7Zi8IElE6rCAIO2YhOyerCDsmIHtmLzq
s7wg64uk66aF64uI64ukLicgfQ0KICAgICAgICAkcmVnaXN0ZXJlZEFsaWFzID0gQCgkcmVnaXN0
cnkuYWxpYXNlcyB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8ucGF0aCAtZXEgJGFsaWFzIH0p
DQogICAgICAgIGlmICgkcmVnaXN0ZXJlZEFsaWFzLkNvdW50IC1ndCAxKSB7IHRocm93ICLqsJns
nYAg6rK966GcIOuzhOy5reydtCDsl6zrn6wg67KIIOuTseuhneuQmOyWtCDsnojsirXri4jri6Q6
ICRhbGlhcyIgfQ0KICAgIH0NCg0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRtYXJr
ZXJQYXRoIC1QYXRoVHlwZSBMZWFmKSB7DQogICAgICAgICRtYXJrZXIgPSBHZXQtQ29udGVudCAt
TGl0ZXJhbFBhdGggJG1hcmtlclBhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9t
LUpzb24NCiAgICAgICAgJG1hcmtlckd1aWQgPSBbZ3VpZF06OkVtcHR5DQogICAgICAgIGlmICgt
bm90IFtndWlkXTo6VHJ5UGFyc2UoW3N0cmluZ10kbWFya2VyLnNjb3BlSWQsIFtyZWZdJG1hcmtl
ckd1aWQpKSB7IHRocm93ICLrspTsnIQg7ZGc7KeA7J2YIHNjb3BlSWTqsIAg7IaQ7IOB65CY7JeI
7Iq164uI64ukOiAkbWFya2VyUGF0aCIgfQ0KICAgICAgICBpZiAoW3N0cmluZ10kbWFya2VyLnNv
dWxJZCAtbmUgJFNvdWxJZCkgeyB0aHJvdyAi64uk66W4IOyYge2YvOydmCDrspTsnIQg7ZGc7KeA
7J6F64uI64ukOiAkbWFya2VyUGF0aCIgfQ0KICAgICAgICAkcmVzb2x2ZWRTY29wZUlkID0gW3N0
cmluZ10kbWFya2VyR3VpZA0KICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0
ZVNwYWNlKCRSZXF1ZXN0ZWRTY29wZUlkKSAtYW5kIFtndWlkXSRSZXF1ZXN0ZWRTY29wZUlkIC1u
ZSAkbWFya2VyR3VpZCkgew0KICAgICAgICAgICAgdGhyb3cgJ+yalOyyre2VnCBzY29wZUlk7JmA
IOq4sOyhtCDrspTsnIQg7ZGc7KeA6rCAIOuLpOumheuLiOuLpC4g7Ja064qQIOyqveuPhCDrja7s
lrTsk7Dsp4Ag7JWK7Iq164uI64ukLicNCiAgICAgICAgfQ0KICAgIH0NCiAgICBlbHNlaWYgKCRS
ZWFkT25seSkgeyB0aHJvdyAi67KU7JyEIO2RnOyngOqwgCDsl4bsirXri4jri6Q6ICRtYXJrZXJQ
YXRoIiB9DQogICAgZWxzZSB7DQogICAgICAgIGlmICgkcmVnaXN0ZXJlZEFsaWFzLkNvdW50IC1l
cSAxKSB7DQogICAgICAgICAgICAkcmVnaXN0ZXJlZEd1aWQgPSBbZ3VpZF06OkVtcHR5DQogICAg
ICAgICAgICBpZiAoLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJHJlZ2lzdGVyZWRBbGlh
c1swXS5zY29wZUlkLCBbcmVmXSRyZWdpc3RlcmVkR3VpZCkpIHsgdGhyb3cgIuuylOychCDrs4Ts
ua3snZggc2NvcGVJZOqwgCDshpDsg4HrkJjsl4jsirXri4jri6Q6ICRhbGlhcyIgfQ0KICAgICAg
ICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkUmVxdWVzdGVkU2Nv
cGVJZCkgLWFuZCBbZ3VpZF0kUmVxdWVzdGVkU2NvcGVJZCAtbmUgJHJlZ2lzdGVyZWRHdWlkKSB7
DQogICAgICAgICAgICAgICAgdGhyb3cgJ+yalOyyre2VnCBzY29wZUlk7JmAIOq4sOyhtCDqsr3r
oZwg67OE7Lmt7J20IOuLpOumheuLiOuLpC4g67KU7JyEIO2RnOyngOulvCDrp4zrk6Tsp4Ag7JWK
7JWY7Iq164uI64ukLicNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRyZXNvbHZlZFNjb3Bl
SWQgPSBbc3RyaW5nXSRyZWdpc3RlcmVkR3VpZA0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0K
ICAgICAgICAgICAgJHJlc29sdmVkU2NvcGVJZCA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0
ZVNwYWNlKCRSZXF1ZXN0ZWRTY29wZUlkKSkgeyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygp
IH0gZWxzZSB7IChbZ3VpZF0kUmVxdWVzdGVkU2NvcGVJZCkuVG9TdHJpbmcoKSB9DQogICAgICAg
IH0NCiAgICAgICAgJG1hcmtlciA9IFtwc2N1c3RvbW9iamVjdF1AeyBzY2hlbWFWZXJzaW9uID0g
MTsgc291bElkID0gJFNvdWxJZDsgc2NvcGVJZCA9ICRyZXNvbHZlZFNjb3BlSWQ7IGNyZWF0ZWRB
dFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpIH0NCiAgICAgICAgV3JpdGUt
SnNvbkNyZWF0ZU5ldyAtUGF0aCAkbWFya2VyUGF0aCAtVmFsdWUgJG1hcmtlcg0KICAgIH0NCg0K
ICAgIGlmICgtbm90ICRSZWFkT25seSkgew0KICAgICAgICBpZiAoJG51bGwgLWVxICRyZWdpc3Ry
eSkgeyAkcmVnaXN0cnkgPSBbcHNjdXN0b21vYmplY3RdQHsgc2NoZW1hVmVyc2lvbiA9IDE7IHNv
dWxJZCA9ICRTb3VsSWQ7IGFsaWFzZXMgPSBAKCkgfSB9DQogICAgICAgICRhbGlhc2VzID0gQCgk
cmVnaXN0cnkuYWxpYXNlcykNCiAgICAgICAgJHNhbWVQYXRoID0gQCgkYWxpYXNlcyB8IFdoZXJl
LU9iamVjdCB7IFtzdHJpbmddJF8ucGF0aCAtZXEgJGFsaWFzIH0pDQogICAgICAgIGlmICgkc2Ft
ZVBhdGguQ291bnQgLWd0IDAgLWFuZCBbc3RyaW5nXSRzYW1lUGF0aFswXS5zY29wZUlkIC1uZSAk
cmVzb2x2ZWRTY29wZUlkKSB7DQogICAgICAgICAgICB0aHJvdyAi6rCZ7J2AIOqyveuhnCDrs4Ts
ua3snbQg64uk66W4IHNjb3BlSWTsl5Ag7Jew6rKw65CY7Ja0IOyeiOyKteuLiOuLpDogJGFsaWFz
Ig0KICAgICAgICB9DQogICAgICAgIGlmICgkc2FtZVBhdGguQ291bnQgLWVxIDApIHsNCiAgICAg
ICAgICAgICRhbGlhc2VzICs9IFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJGFsaWFzOyBzY29w
ZUlkID0gJHJlc29sdmVkU2NvcGVJZDsgZmlyc3RTZWVuQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNO
b3cuVG9TdHJpbmcoJ28nKSB9DQogICAgICAgICAgICAkcmVnaXN0cnkuYWxpYXNlcyA9ICRhbGlh
c2VzDQogICAgICAgICAgICBXcml0ZS1Kc29uQXRvbWljV2l0aFJldmlzaW9uIC1QYXRoICRyZWdp
c3RyeVBhdGggLVZhbHVlICRyZWdpc3RyeSAtUmV2aXNpb25zRGlyZWN0b3J5ICRyZWdpc3RyeVJl
dmlzaW9ucw0KICAgICAgICB9DQogICAgfQ0KICAgIFtwc2N1c3RvbW9iamVjdF1AeyBTY29wZUlk
ID0gJHJlc29sdmVkU2NvcGVJZDsgQWxpYXMgPSAkYWxpYXM7IE1hcmtlclBhdGggPSAkbWFya2Vy
UGF0aDsgSGFuZG9mZlJvb3QgPSAkaGFuZG9mZlJvb3QgfQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLUFs
bEV2ZW50cyB7DQogICAgcGFyYW0oW3N0cmluZ10kU2NvcGVEaXJlY3RvcnksIFtzdHJpbmddJEV4
cGVjdGVkU2NvcGVJZCkNCiAgICAkZXZlbnRzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv
bnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICAkc2VxdWVuY2VzID0gQHt9DQogICAgZm9yZWFj
aCAoJHNvdXJjZSBpbiBAKCdjbGF1ZGUnLCAnY29kZXgnKSkgew0KICAgICAgICAkZXZlbnREaXJl
Y3RvcnkgPSBKb2luLVBhdGggJFNjb3BlRGlyZWN0b3J5ICgnZXZlbnRzXGZyb20tJyArICRzb3Vy
Y2UpDQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRldmVudERpcmVj
dG9yeSAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyBjb250aW51ZSB9DQogICAgICAgIGZvcmVhY2gg
KCRmaWxlIGluIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRldmVudERpcmVjdG9yeSAtRmls
dGVyICcqLmpzb24nIC1GaWxlIHwgU29ydC1PYmplY3QgTmFtZSkgew0KICAgICAgICAgICAgJGV2
ZW50ID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRmaWxlLkZ1bGxOYW1lIC1SYXcgLUVuY29k
aW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICBpZiAoW3N0cmluZ10kZXZl
bnQuZXZlbnRJZCAtbmUgJGZpbGUuQmFzZU5hbWUpIHsgdGhyb3cgIuyCrOqxtCDtjIzsnbzrqoXq
s7wgZXZlbnRJZOqwgCDri6TrpoXri4jri6Q6ICQoJGZpbGUuRnVsbE5hbWUpIiB9DQogICAgICAg
ICAgICAkZXZlbnRHdWlkID0gW2d1aWRdOjpFbXB0eQ0KICAgICAgICAgICAgaWYgKC1ub3QgW2d1
aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRldmVudC5ldmVudElkLCBbcmVmXSRldmVudEd1aWQpKSB7
IHRocm93ICLsgqzqsbQgZXZlbnRJZOqwgCBVVUlE6rCAIOyVhOuLmeuLiOuLpDogJCgkZmlsZS5G
dWxsTmFtZSkiIH0NCiAgICAgICAgICAgIGlmIChbc3RyaW5nXSRldmVudC5zY29wZUlkIC1uZSAk
RXhwZWN0ZWRTY29wZUlkKSB7IHRocm93ICLri6Trpbgg67KU7JyE7J2YIOyCrOqxtOydtCDshJ7s
mIDsirXri4jri6Q6ICQoJGZpbGUuRnVsbE5hbWUpIiB9DQogICAgICAgICAgICBpZiAoW3N0cmlu
Z10kZXZlbnQuc291cmNlQWdlbnQgLW5lICRzb3VyY2UpIHsgdGhyb3cgIuyCrOqxtCDstpzsspgg
7Y+0642U7JmAIHNvdXJjZUFnZW506rCAIOuLpOumheuLiOuLpDogJCgkZmlsZS5GdWxsTmFtZSki
IH0NCiAgICAgICAgICAgIGlmIChbc3RyaW5nXSRldmVudC5yZWNvcmRLaW5kIC1ub3RpbiBAKCdV
c2VyRGlyZWN0aXZlJywgJ0FwcHJvdmVkRGVjaXNpb24nLCAnQWdlbnRJbmZlcmVuY2UnLCAnUmVj
b3ZlcnlEZXRlY3RlZCcsICdFeHRlcm5hbEFjdGlvblVua25vd24nKSkgeyB0aHJvdyAi7JWMIOyI
mCDsl4bripQg7IKs6rG0IOyiheulmOyeheuLiOuLpDogJCgkZmlsZS5GdWxsTmFtZSkiIH0NCiAg
ICAgICAgICAgICRzZXF1ZW5jZSA9IFtsb25nXSRldmVudC5zZXF1ZW5jZQ0KICAgICAgICAgICAg
aWYgKCRzZXF1ZW5jZSAtbGUgMCAtb3IgJHNlcXVlbmNlcy5Db250YWluc0tleShbc3RyaW5nXSRz
ZXF1ZW5jZSkpIHsgdGhyb3cgIuyCrOqxtCBzZXF1ZW5jZeqwgCDsnpjrqrvrkJjsl4jqsbDrgpgg
7KSR67O165Cp64uI64ukOiAkc2VxdWVuY2UiIH0NCiAgICAgICAgICAgICRzZXF1ZW5jZXNbW3N0
cmluZ10kc2VxdWVuY2VdID0gJHRydWUNCiAgICAgICAgICAgICRldmVudHMuQWRkKCRldmVudCkN
CiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gQCgkZXZlbnRzIHwgU29ydC1PYmplY3QgeyBb
bG9uZ10kXy5zZXF1ZW5jZSB9KQ0KfQ0KDQpmdW5jdGlvbiBGb3JtYXQtRXZlbnRMaW5lIHsNCiAg
ICBwYXJhbSgkRXZlbnQpDQogICAgJGxhYmVsID0gc3dpdGNoIChbc3RyaW5nXSRFdmVudC5yZWNv
cmRLaW5kKSB7DQogICAgICAgICdVc2VyRGlyZWN0aXZlJyB7ICfsgqzsmqnsnpAg7KeA7IucJyB9
DQogICAgICAgICdBcHByb3ZlZERlY2lzaW9uJyB7ICfsgqzsmqnsnpAg7Iq57J24IOqysOyglScg
fQ0KICAgICAgICAnQWdlbnRJbmZlcmVuY2UnIHsgJ+yXkOydtOyghO2KuCDstpTroaAnIH0NCiAg
ICAgICAgJ1JlY292ZXJ5RGV0ZWN0ZWQnIHsgJ+uzteq1rCDqsJDsp4AnIH0NCiAgICAgICAgJ0V4
dGVybmFsQWN0aW9uVW5rbm93bicgeyAn7Jm467aAIO2WieuPmSDqsrDqs7wg66+47ZmV7KCVJyB9
DQogICAgICAgIGRlZmF1bHQgeyBbc3RyaW5nXSRFdmVudC5yZWNvcmRLaW5kIH0NCiAgICB9DQog
ICAgJHNhZmUgPSAoW3N0cmluZ10kRXZlbnQuY29udGVudCkuUmVwbGFjZSgiYHIiLCAnICcpLlJl
cGxhY2UoImBuIiwgJyAnKS5UcmltKCkNCiAgICAiLSAjJCgkRXZlbnQuc2VxdWVuY2UpIFskbGFi
ZWwvJCgkRXZlbnQuc291cmNlQWdlbnQpXSAkc2FmZSAoYCRldmVudDokKCRFdmVudC5ldmVudElk
KSkiDQp9DQoNCmZ1bmN0aW9uIFJlZHVjZS1TY29wZUxlZGdlciB7DQogICAgcGFyYW0oW3N0cmlu
Z10kU2NvcGVEaXJlY3RvcnksIFtzdHJpbmddJFJlc29sdmVkU2NvcGVJZCwgW3N0cmluZ10kQWxp
YXMpDQogICAgJGV2ZW50cyA9IEAoUmVhZC1BbGxFdmVudHMgLVNjb3BlRGlyZWN0b3J5ICRTY29w
ZURpcmVjdG9yeSAtRXhwZWN0ZWRTY29wZUlkICRSZXNvbHZlZFNjb3BlSWQpDQogICAgJHJldmlz
aW9ucyA9IEpvaW4tUGF0aCAkU2NvcGVEaXJlY3RvcnkgJ3JldmlzaW9ucycNCiAgICAkbm93ID0g
W0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJykNCiAgICAkcmVjZW50ID0gQCgkZXZlbnRz
IHwgU2VsZWN0LU9iamVjdCAtTGFzdCAyMCkNCiAgICAkZGlyZWN0aXZlcyA9IEAoJGV2ZW50cyB8
IFdoZXJlLU9iamVjdCB7ICRfLnJlY29yZEtpbmQgLWVxICdVc2VyRGlyZWN0aXZlJyB9KQ0KICAg
ICRkZWNpc2lvbnMgPSBAKCRldmVudHMgfCBXaGVyZS1PYmplY3QgeyAkXy5yZWNvcmRLaW5kIC1l
cSAnQXBwcm92ZWREZWNpc2lvbicgfSkNCiAgICAkaW5mZXJlbmNlcyA9IEAoJGV2ZW50cyB8IFdo
ZXJlLU9iamVjdCB7ICRfLnJlY29yZEtpbmQgLWVxICdBZ2VudEluZmVyZW5jZScgfSkNCiAgICAk
YWxlcnRzID0gQCgkZXZlbnRzIHwgV2hlcmUtT2JqZWN0IHsgJF8ucmVjb3JkS2luZCAtaW4gQCgn
UmVjb3ZlcnlEZXRlY3RlZCcsICdFeHRlcm5hbEFjdGlvblVua25vd24nKSB9KQ0KDQogICAgJGN1
cnJlbnRMaW5lcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtz
dHJpbmddDQogICAgJGN1cnJlbnRMaW5lcy5BZGQoJyMgQ1VSUkVOVCDigJQg7ZiE7J6sIOyduOqz
hCDsg4Htg5wnKQ0KICAgICRjdXJyZW50TGluZXMuQWRkKCcnKQ0KICAgICRjdXJyZW50TGluZXMu
QWRkKCItIOuylOychCDrs4Tsua06IGBgJEFsaWFzYGAiKQ0KICAgICRjdXJyZW50TGluZXMuQWRk
KCItIOuylOychCBJRDogYGAkUmVzb2x2ZWRTY29wZUlkYGAiKQ0KICAgICRjdXJyZW50TGluZXMu
QWRkKCItIOuniOyngOuniSDstpXslb06IGBgJG5vd2BgIikNCiAgICAkY3VycmVudExpbmVzLkFk
ZCgiLSDrp4jsp4Drp4kgc2VxdWVuY2U6IGBgJChpZiAoJGV2ZW50cy5Db3VudCkgeyAkZXZlbnRz
Wy0xXS5zZXF1ZW5jZSB9IGVsc2UgeyAwIH0pYGAiKQ0KICAgIGZvcmVhY2ggKCRzZWN0aW9uIGlu
IEAoDQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBUaXRsZSA9ICfsgqzsmqnsnpDqsIAg7KeB
7KCRIOunkO2VnCDsp4Dsi5wnOyBJdGVtcyA9IEAoJGRpcmVjdGl2ZXMgfCBTZWxlY3QtT2JqZWN0
IC1MYXN0IDUpIH0sDQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBUaXRsZSA9ICfsgqzsmqns
npDqsIAg7Iq57J247ZWcIOqysOyglSc7IEl0ZW1zID0gQCgkZGVjaXNpb25zIHwgU2VsZWN0LU9i
amVjdCAtTGFzdCA4KSB9LA0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgVGl0bGUgPSAn7JeQ
7J207KCE7Yq47J2YIOy2lOuhoCDigJQg7IKs7IukL+yKueyduOycvOuhnCDsirnqsqkg6riI7KeA
JzsgSXRlbXMgPSBAKCRpbmZlcmVuY2VzIHwgU2VsZWN0LU9iamVjdCAtTGFzdCA1KSB9LA0KICAg
ICAgICBbcHNjdXN0b21vYmplY3RdQHsgVGl0bGUgPSAn67O16rWswrfsmbjrtoAg7ZaJ64+ZIOyj
vOydmCc7IEl0ZW1zID0gQCgkYWxlcnRzIHwgU2VsZWN0LU9iamVjdCAtTGFzdCA4KSB9LA0KICAg
ICAgICBbcHNjdXN0b21vYmplY3RdQHsgVGl0bGUgPSAn7LWc6re8IOyCrOqxtCc7IEl0ZW1zID0g
JHJlY2VudCB9DQogICAgKSkgew0KICAgICAgICAkY3VycmVudExpbmVzLkFkZCgnJyk7ICRjdXJy
ZW50TGluZXMuQWRkKCcjIyAnICsgJHNlY3Rpb24uVGl0bGUpOyAkY3VycmVudExpbmVzLkFkZCgn
JykNCiAgICAgICAgaWYgKCRzZWN0aW9uLkl0ZW1zLkNvdW50IC1lcSAwKSB7ICRjdXJyZW50TGlu
ZXMuQWRkKCctIOyXhuydjCcpIH0NCiAgICAgICAgZWxzZSB7IGZvcmVhY2ggKCRldmVudCBpbiAk
c2VjdGlvbi5JdGVtcykgeyAkY3VycmVudExpbmVzLkFkZCgoRm9ybWF0LUV2ZW50TGluZSAkZXZl
bnQpKSB9IH0NCiAgICB9DQogICAgJGN1cnJlbnRUZXh0ID0gKCRjdXJyZW50TGluZXMgLWpvaW4g
W0Vudmlyb25tZW50XTo6TmV3TGluZSkgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lDQoNCiAgICAk
bWVtb3J5TGluZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rb
c3RyaW5nXQ0KICAgICRtZW1vcnlMaW5lcy5BZGQoJyMgTUVNT1JZIOKAlCDqsoDspp0g6rCA64ql
7ZWcIOqzteycoCDsnqXrtoAnKQ0KICAgICRtZW1vcnlMaW5lcy5BZGQoJycpDQogICAgJG1lbW9y
eUxpbmVzLkFkZCgn7J20IO2MjOydvOydgCDtjIzsg50g67O06riw7J6F64uI64ukLiDsm5Drs7js
nYAgZXZlbnRzIOyVhOuemCBVVUlEIEpTT07snbTrqbAsIOyCrOyaqeyekCDsp4Dsi5zCt+yKueyd
uCDqsrDsoJXCt+yXkOydtOyghO2KuCDstpTroaDsnYQg7ISc66GcIOyEnuyngCDslYrsirXri4jr
i6QuJykNCiAgICBmb3JlYWNoICgka2luZEdyb3VwIGluIEAoDQogICAgICAgIFtwc2N1c3RvbW9i
amVjdF1AeyBLaW5kID0gJ1VzZXJEaXJlY3RpdmUnOyBUaXRsZSA9ICfsgqzsmqnsnpAg7KeA7Iuc
JyB9LA0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgS2luZCA9ICdBcHByb3ZlZERlY2lzaW9u
JzsgVGl0bGUgPSAn7Iq57J2465CcIOqysOyglScgfSwNCiAgICAgICAgW3BzY3VzdG9tb2JqZWN0
XUB7IEtpbmQgPSAnQWdlbnRJbmZlcmVuY2UnOyBUaXRsZSA9ICfsl5DsnbTsoITtirgg7LaU66Gg
JyB9LA0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgS2luZCA9ICdSZWNvdmVyeURldGVjdGVk
JzsgVGl0bGUgPSAn67O16rWsIOqwkOyngCcgfSwNCiAgICAgICAgW3BzY3VzdG9tb2JqZWN0XUB7
IEtpbmQgPSAnRXh0ZXJuYWxBY3Rpb25Vbmtub3duJzsgVGl0bGUgPSAn7Jm467aAIO2WieuPmSDq
srDqs7wg66+47ZmV7KCVJyB9DQogICAgKSkgew0KICAgICAgICAkbWVtb3J5TGluZXMuQWRkKCcn
KTsgJG1lbW9yeUxpbmVzLkFkZCgnIyMgJyArICRraW5kR3JvdXAuVGl0bGUpOyAkbWVtb3J5TGlu
ZXMuQWRkKCcnKQ0KICAgICAgICAkaXRlbXMgPSBAKCRldmVudHMgfCBXaGVyZS1PYmplY3QgeyAk
Xy5yZWNvcmRLaW5kIC1lcSAka2luZEdyb3VwLktpbmQgfSkNCiAgICAgICAgaWYgKCRpdGVtcy5D
b3VudCAtZXEgMCkgeyAkbWVtb3J5TGluZXMuQWRkKCctIOyXhuydjCcpIH0NCiAgICAgICAgZWxz
ZSB7IGZvcmVhY2ggKCRldmVudCBpbiAkaXRlbXMpIHsgJG1lbW9yeUxpbmVzLkFkZCgoRm9ybWF0
LUV2ZW50TGluZSAkZXZlbnQpKSB9IH0NCiAgICB9DQogICAgJG1lbW9yeVRleHQgPSAoJG1lbW9y
eUxpbmVzIC1qb2luIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUpICsgW0Vudmlyb25tZW50XTo6TmV3
TGluZQ0KICAgIFdyaXRlLURlcml2ZWRBdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkU2NvcGVEaXJl
Y3RvcnkgJ0NVUlJFTlQubWQnKSAtVGV4dCAkY3VycmVudFRleHQgLVJldmlzaW9uc0RpcmVjdG9y
eSAkcmV2aXNpb25zDQogICAgV3JpdGUtRGVyaXZlZEF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRT
Y29wZURpcmVjdG9yeSAnTUVNT1JZLm1kJykgLVRleHQgJG1lbW9yeVRleHQgLVJldmlzaW9uc0Rp
cmVjdG9yeSAkcmV2aXNpb25zDQogICAgW3BzY3VzdG9tb2JqZWN0XUB7IGV2ZW50Q291bnQgPSAk
ZXZlbnRzLkNvdW50OyBsYXN0U2VxdWVuY2UgPSBpZiAoJGV2ZW50cy5Db3VudCkgeyBbbG9uZ10k
ZXZlbnRzWy0xXS5zZXF1ZW5jZSB9IGVsc2UgeyAwIH0gfQ0KfQ0KDQokcm9vdENhbmRpZGF0ZSA9
IEdldC1GdWxsTGl0ZXJhbFBhdGggJFNvdWxSb290DQokaXNEaXNwb3NhYmxlVGVzdCA9IFRlc3Qt
RGlzcG9zYWJsZUF1eFJvb3QgLVBhdGggJHJvb3RDYW5kaWRhdGUNCiRyb290ID0gaWYgKCRpc0Rp
c3Bvc2FibGVUZXN0KSB7ICRyb290Q2FuZGlkYXRlIH0gZWxzZSB7IEFzc2VydC1Tb3VsUm9vdCAt
UGF0aCAkcm9vdENhbmRpZGF0ZSAtUmVxdWlyZUluaXRpYWxpemVkIH0NCmlmICgtbm90ICRpc0Rp
c3Bvc2FibGVUZXN0IC1hbmQgLW5vdCAkcm9vdC5FcXVhbHMoKEdldC1Tb3VsUm9vdCksIFtTeXN0
ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgIHRocm93ICfs
nbjqs4Qg7J6l67aA64qUIOyekOyLoOydtCDshKTsuZjrkJwg7JiB7Zi8IO2PtOuNlCDslYjsl5Ds
hJzrp4wg6rCx7Iug7ZWp64uI64ukLicNCn0NCiRzY29wZSA9IEdldC1GdWxsTGl0ZXJhbFBhdGgg
JFNjb3BlUGF0aA0KaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHNjb3BlIC1QYXRo
VHlwZSBDb250YWluZXIpKSB7IHRocm93ICLsnpHsl4Ug67KU7JyEIO2PtOuNlOulvCDssL7sp4Ag
66q77ZaI7Iq164uI64ukOiAkc2NvcGUiIH0NCmlmICgtbm90IChUZXN0LUlzVW5kZXJQYXRoIC1D
YW5kaWRhdGUgJHNjb3BlIC1QYXJlbnQgJHJvb3QpKSB7IHRocm93ICfsnpHsl4Ug67KU7JyE64qU
IOyYge2YvCDtj7TrjZQg7JWI7JeQIOyeiOyWtOyVvCDtlanri4jri6QuJyB9DQpBc3NlcnQtTm9S
ZXBhcnNlV2l0aGluIC1QYXRoICRzY29wZSAtQm91bmRhcnkgJHJvb3QNCiRzb3VsSWQgPSBSZWFk
LVNvdWxJZGVudGl0eSAtUm9vdCAkcm9vdA0KJGhhbmRvZmZSb290ID0gSm9pbi1QYXRoICRyb290
ICdfYWdlbnRcc2hhcmVkXGhhbmRvZmYnDQpbU3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0ZURp
cmVjdG9yeSgkaGFuZG9mZlJvb3QpIHwgT3V0LU51bGwNCkFzc2VydC1Ob1JlcGFyc2VXaXRoaW4g
LVBhdGggJGhhbmRvZmZSb290IC1Cb3VuZGFyeSAkcm9vdA0KJHJlZ2lzdHJ5TG9jayA9IEpvaW4t
UGF0aCAkaGFuZG9mZlJvb3QgJy5sb2Nrc1xyZWdpc3RyeS5sb2NrJw0KJHNjb3BlSW5mbyA9ICRu
dWxsDQokcmVhZE9ubHlSZWdpc3RyYXRpb24gPSAkQWN0aW9uIC1lcSAnU3RhdHVzJw0KSW52b2tl
LVdpdGhGaWxlTG9jayAtTG9ja1BhdGggJHJlZ2lzdHJ5TG9jayAtQm9keSB7DQogICAgJHNjcmlw
dDpzY29wZUluZm8gPSBHZXQtUmVnaXN0ZXJlZFNjb3BlIC1Sb290ICRyb290IC1QYXRoICRzY29w
ZSAtU291bElkICRzb3VsSWQgLVJlcXVlc3RlZFNjb3BlSWQgJFNjb3BlSWQgLVJlYWRPbmx5OiRy
ZWFkT25seVJlZ2lzdHJhdGlvbg0KfQ0KJHNjb3BlRGlyZWN0b3J5ID0gSm9pbi1QYXRoICRoYW5k
b2ZmUm9vdCAkc2NvcGVJbmZvLlNjb3BlSWQNCg0KaWYgKCRBY3Rpb24gLWVxICdTdGF0dXMnKSB7
DQogICAgJGV2ZW50cyA9IEAoKQ0KICAgIEludm9rZS1XaXRoU2NvcGVIaWVyYXJjaHlMb2NrIC1I
YW5kb2ZmUm9vdCAkaGFuZG9mZlJvb3QgLUFsaWFzICRzY29wZUluZm8uQWxpYXMgLVJlYWRPbmx5
IC1Cb2R5IHsNCiAgICAgICAgJHNjcmlwdDpldmVudHMgPSBpZiAoVGVzdC1QYXRoIC1MaXRlcmFs
UGF0aCAkc2NvcGVEaXJlY3RvcnkgLVBhdGhUeXBlIENvbnRhaW5lcikgeyBAKFJlYWQtQWxsRXZl
bnRzIC1TY29wZURpcmVjdG9yeSAkc2NvcGVEaXJlY3RvcnkgLUV4cGVjdGVkU2NvcGVJZCAkc2Nv
cGVJbmZvLlNjb3BlSWQpIH0gZWxzZSB7IEAoKSB9DQogICAgfQ0KICAgIFtwc2N1c3RvbW9iamVj
dF1Aew0KICAgICAgICBzb3VsSWQgPSAkc291bElkOyBzY29wZUlkID0gJHNjb3BlSW5mby5TY29w
ZUlkOyBhbGlhcyA9ICRzY29wZUluZm8uQWxpYXMNCiAgICAgICAgZXZlbnRDb3VudCA9ICRldmVu
dHMuQ291bnQ7IGxhc3RTZXF1ZW5jZSA9IGlmICgkZXZlbnRzLkNvdW50KSB7IFtsb25nXSRldmVu
dHNbLTFdLnNlcXVlbmNlIH0gZWxzZSB7IDAgfQ0KICAgICAgICBjdXJyZW50UGF0aCA9IEpvaW4t
UGF0aCAkc2NvcGVEaXJlY3RvcnkgJ0NVUlJFTlQubWQnOyBtZW1vcnlQYXRoID0gSm9pbi1QYXRo
ICRzY29wZURpcmVjdG9yeSAnTUVNT1JZLm1kJw0KICAgIH0NCiAgICByZXR1cm4NCn0NCg0KW1N5
c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHNjb3BlRGlyZWN0b3J5KSB8IE91
dC1OdWxsDQpbU3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoSm9pbi1QYXRo
ICRzY29wZURpcmVjdG9yeSAnZXZlbnRzXGZyb20tY2xhdWRlJykpIHwgT3V0LU51bGwNCltTeXN0
ZW0uSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KChKb2luLVBhdGggJHNjb3BlRGlyZWN0
b3J5ICdldmVudHNcZnJvbS1jb2RleCcpKSB8IE91dC1OdWxsDQpbU3lzdGVtLklPLkRpcmVjdG9y
eV06OkNyZWF0ZURpcmVjdG9yeSgoSm9pbi1QYXRoICRzY29wZURpcmVjdG9yeSAncmV2aXNpb25z
JykpIHwgT3V0LU51bGwNCkFzc2VydC1Ob1JlcGFyc2VXaXRoaW4gLVBhdGggJHNjb3BlRGlyZWN0
b3J5IC1Cb3VuZGFyeSAkaGFuZG9mZlJvb3QNCkFzc2VydC1Ob1JlcGFyc2VXaXRoaW4gLVBhdGgg
KEpvaW4tUGF0aCAkc2NvcGVEaXJlY3RvcnkgJ2V2ZW50c1xmcm9tLWNsYXVkZScpIC1Cb3VuZGFy
eSAkaGFuZG9mZlJvb3QNCkFzc2VydC1Ob1JlcGFyc2VXaXRoaW4gLVBhdGggKEpvaW4tUGF0aCAk
c2NvcGVEaXJlY3RvcnkgJ2V2ZW50c1xmcm9tLWNvZGV4JykgLUJvdW5kYXJ5ICRoYW5kb2ZmUm9v
dA0KQXNzZXJ0LU5vUmVwYXJzZVdpdGhpbiAtUGF0aCAoSm9pbi1QYXRoICRzY29wZURpcmVjdG9y
eSAncmV2aXNpb25zJykgLUJvdW5kYXJ5ICRoYW5kb2ZmUm9vdA0KDQpzd2l0Y2ggKCRBY3Rpb24p
IHsNCiAgICAnUmVnaXN0ZXJTY29wZScgew0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgc291
bElkID0gJHNvdWxJZDsgc2NvcGVJZCA9ICRzY29wZUluZm8uU2NvcGVJZDsgYWxpYXMgPSAkc2Nv
cGVJbmZvLkFsaWFzOyBtYXJrZXJQYXRoID0gJHNjb3BlSW5mby5NYXJrZXJQYXRoIH0NCiAgICB9
DQogICAgJ0FwcGVuZCcgew0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj
ZSgkQWdlbnQpKSB7IHRocm93ICdBcHBlbmTsl5DripQgLUFnZW50IGNsYXVkZSDrmJDripQgY29k
ZXjqsIAg7ZWE7JqU7ZWp64uI64ukLicgfQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9y
V2hpdGVTcGFjZSgkS2luZCkpIHsgdGhyb3cgJ0FwcGVuZOyXkOuKlCDquLDroZ0g7KKF66WYKC1L
aW5kKeqwgCDtlYTsmpTtlanri4jri6QuJyB9DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRDb250ZW50KSkgeyB0aHJvdyAn67mIIOyCrOqxtOydgCDquLDroZ3tlZjs
p4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICAgICBpZiAoJENvbnRlbnQuTGVuZ3RoIC1ndCAyNjIx
NDQpIHsgdGhyb3cgJ+2VnCDsgqzqsbTsnZgg67O466y47J2AIDI1NktpQuulvCDrhJjsnYQg7IiY
IOyXhuyKteuLiOuLpC4nIH0NCiAgICAgICAgaWYgKCRLaW5kIC1lcSAnVXNlckRpcmVjdGl2ZScg
LWFuZCAkQWN0b3IgLW5lICd1c2VyJykgeyB0aHJvdyAnVXNlckRpcmVjdGl2ZeuKlCAtQWN0b3Ig
dXNlcuuhnOunjCDquLDroZ3tlaAg7IiYIOyeiOyKteuLiOuLpC4nIH0NCiAgICAgICAgaWYgKCRL
aW5kIC1lcSAnQXBwcm92ZWREZWNpc2lvbicgLWFuZCAkQXBwcm92ZWRCeSAtbmUgJ3VzZXInKSB7
IHRocm93ICdBcHByb3ZlZERlY2lzaW9u7J2AIC1BcHByb3ZlZEJ5IHVzZXLqsIAg66qF7Iuc65CY
7Ja07JW8IO2VqeuLiOuLpC4nIH0NCiAgICAgICAgaWYgKCRLaW5kIC1uZSAnQXBwcm92ZWREZWNp
c2lvbicgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEFwcHJvdmVkQnkp
KSB7IHRocm93ICfsgqzsmqnsnpAg7Iq57J24IO2RnOyLneydgCBBcHByb3ZlZERlY2lzaW9u7JeQ
66eMIOu2meydvCDsiJgg7J6I7Iq164uI64ukLicgfQ0KICAgICAgICBpZiAoQCgkRXZpZGVuY2VS
ZWYpLkNvdW50IC1ndCAxMjggLW9yIEAoJEV2aWRlbmNlUmVmIHwgV2hlcmUtT2JqZWN0IHsgJG51
bGwgLWVxICRfIC1vciAkXy5MZW5ndGggLWd0IDQwOTYgfSkuQ291bnQgLWd0IDApIHsgdGhyb3cg
J2V2aWRlbmNlUmVmc+qwgCDtl4jsmqkg6rCc7IiYL+q4uOydtOulvCDrhJjsl4jsirXri4jri6Qu
JyB9DQogICAgICAgICRyZXN1bHQgPSAkbnVsbA0KICAgICAgICBJbnZva2UtV2l0aFNjb3BlSGll
cmFyY2h5TG9jayAtSGFuZG9mZlJvb3QgJGhhbmRvZmZSb290IC1BbGlhcyAkc2NvcGVJbmZvLkFs
aWFzIC1Cb2R5IHsNCiAgICAgICAgICAgICRzZXF1ZW5jZVBhdGggPSBKb2luLVBhdGggJHNjb3Bl
RGlyZWN0b3J5ICdzZXF1ZW5jZS5qc29uJw0KICAgICAgICAgICAgJGV4aXN0aW5nID0gQChSZWFk
LUFsbEV2ZW50cyAtU2NvcGVEaXJlY3RvcnkgJHNjb3BlRGlyZWN0b3J5IC1FeHBlY3RlZFNjb3Bl
SWQgJHNjb3BlSW5mby5TY29wZUlkKQ0KICAgICAgICAgICAgJGV2ZW50TWF4aW11bSA9IGlmICgk
ZXhpc3RpbmcuQ291bnQpIHsgW2xvbmddJGV4aXN0aW5nWy0xXS5zZXF1ZW5jZSB9IGVsc2UgeyAw
IH0NCiAgICAgICAgICAgICRyZWNvcmRlZE1heGltdW0gPSAwDQogICAgICAgICAgICBpZiAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkc2VxdWVuY2VQYXRoIC1QYXRoVHlwZSBMZWFmKSB7DQogICAg
ICAgICAgICAgICAgJHNlcXVlbmNlU3RhdGUgPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJHNl
cXVlbmNlUGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAg
ICAgICAgICAgICRyZWNvcmRlZE1heGltdW0gPSBbbG9uZ10kc2VxdWVuY2VTdGF0ZS5sYXN0U2Vx
dWVuY2UNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRuZXh0U2VxdWVuY2UgPSBbTWF0aF06
Ok1heCgkZXZlbnRNYXhpbXVtLCAkcmVjb3JkZWRNYXhpbXVtKSArIDENCiAgICAgICAgICAgICRl
dmVudElkID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAgICAgICAgICAgJGV2ZW50
ID0gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDE7
IGV2ZW50SWQgPSAkZXZlbnRJZDsgc2NvcGVJZCA9ICRzY29wZUluZm8uU2NvcGVJZDsgc2VxdWVu
Y2UgPSAkbmV4dFNlcXVlbmNlDQogICAgICAgICAgICAgICAgY3JlYXRlZEF0VXRjID0gW0RhdGVU
aW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7IHNvdXJjZUFnZW50ID0gJEFnZW50OyByZWNvcmRL
aW5kID0gJEtpbmQNCiAgICAgICAgICAgICAgICBhY3RvciA9IGlmIChbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRBY3RvcikpIHsgJEFnZW50IH0gZWxzZSB7ICRBY3RvciB9DQogICAgICAg
ICAgICAgICAgYXBwcm92ZWRCeSA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRB
cHByb3ZlZEJ5KSkgeyAkbnVsbCB9IGVsc2UgeyAkQXBwcm92ZWRCeSB9DQogICAgICAgICAgICAg
ICAgY29udGVudCA9ICRDb250ZW50OyBldmlkZW5jZVJlZnMgPSBAKCRFdmlkZW5jZVJlZikNCiAg
ICAgICAgICAgICAgICBuYXRpdmVTZXNzaW9uSWQgPSBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hp
dGVTcGFjZSgkTmF0aXZlU2Vzc2lvbklkKSkgeyAkbnVsbCB9IGVsc2UgeyAkTmF0aXZlU2Vzc2lv
bklkIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRldmVudFBhdGggPSBKb2luLVBhdGgg
KEpvaW4tUGF0aCAkc2NvcGVEaXJlY3RvcnkgKCdldmVudHNcZnJvbS0nICsgJEFnZW50KSkgKCRl
dmVudElkICsgJy5qc29uJykNCiAgICAgICAgICAgIFdyaXRlLUpzb25DcmVhdGVOZXcgLVBhdGgg
JGV2ZW50UGF0aCAtVmFsdWUgJGV2ZW50DQogICAgICAgICAgICBTZXQtRmlsZVJlYWRPbmx5R3Vh
cmQgLVBhdGggJGV2ZW50UGF0aA0KICAgICAgICAgICAgJHNlcXVlbmNlU3RhdGUgPSBbcHNjdXN0
b21vYmplY3RdQHsgc2NoZW1hVmVyc2lvbiA9IDE7IHNjb3BlSWQgPSAkc2NvcGVJbmZvLlNjb3Bl
SWQ7IGxhc3RTZXF1ZW5jZSA9ICRuZXh0U2VxdWVuY2U7IHVwZGF0ZWRBdFV0YyA9IFtEYXRlVGlt
ZV06OlV0Y05vdy5Ub1N0cmluZygnbycpIH0NCiAgICAgICAgICAgIFdyaXRlLUpzb25BdG9taWNX
aXRoUmV2aXNpb24gLVBhdGggJHNlcXVlbmNlUGF0aCAtVmFsdWUgJHNlcXVlbmNlU3RhdGUgLVJl
dmlzaW9uc0RpcmVjdG9yeSAoSm9pbi1QYXRoICRzY29wZURpcmVjdG9yeSAncmV2aXNpb25zJykN
CiAgICAgICAgICAgICRyZWR1Y2VkID0gaWYgKCROb1JlZHVjZSkgeyAkbnVsbCB9IGVsc2UgeyBS
ZWR1Y2UtU2NvcGVMZWRnZXIgLVNjb3BlRGlyZWN0b3J5ICRzY29wZURpcmVjdG9yeSAtUmVzb2x2
ZWRTY29wZUlkICRzY29wZUluZm8uU2NvcGVJZCAtQWxpYXMgJHNjb3BlSW5mby5BbGlhcyB9DQog
ICAgICAgICAgICAkc2NyaXB0OnJlc3VsdCA9IFtwc2N1c3RvbW9iamVjdF1AeyBldmVudElkID0g
JGV2ZW50SWQ7IHNlcXVlbmNlID0gJG5leHRTZXF1ZW5jZTsgZXZlbnRQYXRoID0gJGV2ZW50UGF0
aDsgcmVkdWNlZCA9IC1ub3QgJE5vUmVkdWNlOyBldmVudENvdW50ID0gaWYgKCRudWxsIC1uZSAk
cmVkdWNlZCkgeyAkcmVkdWNlZC5ldmVudENvdW50IH0gZWxzZSB7ICRudWxsIH0gfQ0KICAgICAg
ICB9DQogICAgICAgICRyZXN1bHQNCiAgICB9DQogICAgJ1JlZHVjZScgew0KICAgICAgICAkcmVz
dWx0ID0gJG51bGwNCiAgICAgICAgSW52b2tlLVdpdGhTY29wZUhpZXJhcmNoeUxvY2sgLUhhbmRv
ZmZSb290ICRoYW5kb2ZmUm9vdCAtQWxpYXMgJHNjb3BlSW5mby5BbGlhcyAtQm9keSB7ICRzY3Jp
cHQ6cmVzdWx0ID0gUmVkdWNlLVNjb3BlTGVkZ2VyIC1TY29wZURpcmVjdG9yeSAkc2NvcGVEaXJl
Y3RvcnkgLVJlc29sdmVkU2NvcGVJZCAkc2NvcGVJbmZvLlNjb3BlSWQgLUFsaWFzICRzY29wZUlu
Zm8uQWxpYXMgfQ0KICAgICAgICAkcmVzdWx0DQogICAgfQ0KICAgICdTZXRTZXNzaW9ucycgew0K
ICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQ2xhdWRlU2Vzc2lvbklk
KSAtYW5kIFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJENvZGV4U2Vzc2lvbklkKSkgew0K
ICAgICAgICAgICAgdGhyb3cgJ+q4sOuhne2VoCDsoJXtmZXtlZwgQ2xhdWRlIOuYkOuKlCBDb2Rl
eCDshLjshZggSUTqsIAg7ZWE7JqU7ZWp64uI64ukLiAtLWxhc3Qg6rCZ7J2AIOy2lOy4oeqwkuyd
gCDsk7Dsp4Ag7JWK7Iq164uI64ukLicNCiAgICAgICAgfQ0KICAgICAgICAkcmVzdWx0ID0gJG51
bGwNCiAgICAgICAgSW52b2tlLVdpdGhTY29wZUhpZXJhcmNoeUxvY2sgLUhhbmRvZmZSb290ICRo
YW5kb2ZmUm9vdCAtQWxpYXMgJHNjb3BlSW5mby5BbGlhcyAtQm9keSB7DQogICAgICAgICAgICAk
c2Vzc2lvblBhdGggPSBKb2luLVBhdGggJHNjb3BlRGlyZWN0b3J5ICduYXRpdmUtc2Vzc2lvbnMu
anNvbicNCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzZXNzaW9uUGF0
aCAtUGF0aFR5cGUgTGVhZikgew0KICAgICAgICAgICAgICAgICRzZXNzaW9ucyA9IEdldC1Db250
ZW50IC1MaXRlcmFsUGF0aCAkc2Vzc2lvblBhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZl
cnRGcm9tLUpzb24NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgeyAkc2Vzc2lvbnMg
PSBbcHNjdXN0b21vYmplY3RdQHsgc2NoZW1hVmVyc2lvbiA9IDE7IHNjb3BlSWQgPSAkc2NvcGVJ
bmZvLlNjb3BlSWQ7IGNsYXVkZSA9ICRudWxsOyBjb2RleCA9ICRudWxsIH0gfQ0KICAgICAgICAg
ICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQ2xhdWRlU2Vzc2lvbklk
KSkgeyAkc2Vzc2lvbnMuY2xhdWRlID0gW3BzY3VzdG9tb2JqZWN0XUB7IHNlc3Npb25JZCA9ICRD
bGF1ZGVTZXNzaW9uSWQ7IHJlY29yZGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJp
bmcoJ28nKSB9IH0NCiAgICAgICAgICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJENvZGV4U2Vzc2lvbklkKSkgeyAkc2Vzc2lvbnMuY29kZXggPSBbcHNjdXN0b21vYmpl
Y3RdQHsgc2Vzc2lvbklkID0gJENvZGV4U2Vzc2lvbklkOyByZWNvcmRlZEF0VXRjID0gW0RhdGVU
aW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJykgfSB9DQogICAgICAgICAgICBXcml0ZS1Kc29uQXRv
bWljV2l0aFJldmlzaW9uIC1QYXRoICRzZXNzaW9uUGF0aCAtVmFsdWUgJHNlc3Npb25zIC1SZXZp
c2lvbnNEaXJlY3RvcnkgKEpvaW4tUGF0aCAkc2NvcGVEaXJlY3RvcnkgJ3JldmlzaW9ucycpDQog
ICAgICAgICAgICAkc2NyaXB0OnJlc3VsdCA9IFtwc2N1c3RvbW9iamVjdF1AeyBzZXNzaW9uUGF0
aCA9ICRzZXNzaW9uUGF0aDsgY2xhdWRlID0gJHNlc3Npb25zLmNsYXVkZTsgY29kZXggPSAkc2Vz
c2lvbnMuY29kZXggfQ0KICAgICAgICB9DQogICAgICAgICRyZXN1bHQNCiAgICB9DQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/install-ontology-v8.py","encoding":"base64","size":11116,"runtimeSha256":"b26b16f69dded3899f7d594bb7ca57dd68554b67caa82b5da7c2fd3d56a83aff","normalizedSha256":"b26b16f69dded3899f7d594bb7ca57dd68554b67caa82b5da7c2fd3d56a83aff"} -->
```base64
IiIiQWRkIHRoZSB2OCBvbnRvbG9neSB0byBhIHdvcmtzcGFjZSBhZnRlciB2NyBzZXR1cDsgZHJ5
LXJ1biB1bmxlc3MgLS1hcHBseS4iIiIKaW1wb3J0IGFyZ3BhcnNlCmltcG9ydCBkYXRldGltZQpp
bXBvcnQgaGFzaGxpYgppbXBvcnQganNvbgppbXBvcnQgb3MKZnJvbSBwYXRobGliIGltcG9ydCBQ
YXRoLCBQdXJlUG9zaXhQYXRoCmltcG9ydCByZQppbXBvcnQgc3RhdAppbXBvcnQgc3lzCgoKZGVm
IGRpZ2VzdChkYXRhKToKICAgIHJldHVybiBoYXNobGliLnNoYTI1NihkYXRhKS5oZXhkaWdlc3Qo
KQoKCmRlZiBub19saW5rcyhwYXRoKToKICAgIHBhdGggPSBQYXRoKG9zLnBhdGguYWJzcGF0aChw
YXRoKSkKICAgIGZvciBlbnRyeSBpbiAocGF0aCwgKnBhdGgucGFyZW50cyk6CiAgICAgICAgdHJ5
OgogICAgICAgICAgICBpbmZvID0gZW50cnkubHN0YXQoKQogICAgICAgIGV4Y2VwdCBGaWxlTm90
Rm91bmRFcnJvcjoKICAgICAgICAgICAgY29udGludWUKICAgICAgICBpZiBzdGF0LlNfSVNMTkso
aW5mby5zdF9tb2RlKSBvciBnZXRhdHRyKGluZm8sICdzdF9maWxlX2F0dHJpYnV0ZXMnLCAwKSAm
IDB4NDAwOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYnTGlua2VkL3JlcGFyc2UgcGF0
aCBpcyB1bnN1cHBvcnRlZDoge2VudHJ5fScpCiAgICAgICAgaWYgZW50cnkgIT0gcGF0aCBhbmQg
bm90IHN0YXQuU19JU0RJUihpbmZvLnN0X21vZGUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKGYnUGFyZW50IGlzIG5vdCBhIGRpcmVjdG9yeToge2VudHJ5fScpCiAgICByZXR1cm4gcGF0
aAoKCmRlZiByZWxhdGl2ZSh2YWx1ZSk6CiAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgc3Ry
KSBvciBub3QgdmFsdWUgb3IgJ1xcJyBpbiB2YWx1ZSBvciAnOicgaW4gdmFsdWU6CiAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcihmJ0ludmFsaWQgcGFja2FnZSBwYXRoOiB7dmFsdWUhcn0nKQogICAg
cGllY2VzID0gdmFsdWUuc3BsaXQoJy8nKQogICAgaWYgYW55KG5vdCBwIG9yIHAgaW4gKCcuJywg
Jy4uJykgb3IgcFstMV0gaW4gJy4gJyBvciByZS5tYXRjaChyJyg/aSleKGNvbnxwcm58YXV4fG51
bHxjb21bMS05XXxscHRbMS05XSkoPzpcLnwkKScsIHApIGZvciBwIGluIHBpZWNlcyk6CiAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcihmJ0ludmFsaWQgcGFja2FnZSBwYXRoOiB7dmFsdWUhcn0nKQog
ICAgaWYgYW55KGFueShjIGluIHAgZm9yIGMgaW4gJzw+Inw/KicpIG9yIGFueShvcmQoYykgPCAz
MiBmb3IgYyBpbiBwKSBmb3IgcCBpbiBwaWVjZXMpOgogICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
ZidJbnZhbGlkIHBhY2thZ2UgcGF0aDoge3ZhbHVlIXJ9JykKICAgIHJldHVybiBQdXJlUG9zaXhQ
YXRoKHZhbHVlKQoKCmRlZiB0ZXh0X25vcm1hbChkYXRhKToKICAgIHJldHVybiBkYXRhLmRlY29k
ZSgndXRmLTgtc2lnJykucmVwbGFjZSgnXHJcbicsICdcbicpLnN0cmlwKCkKCgpkZWYgcnVuKGFw
cGx5PUZhbHNlKToKICAgIHNjcmlwdCA9IG5vX2xpbmtzKF9fZmlsZV9fKQogICAgc2V0dXAgPSBz
Y3JpcHQucGFyZW50CiAgICByb290ID0gc2V0dXAucGFyZW50LnBhcmVudAogICAgaWYgc2V0dXAu
bmFtZSAhPSAnc2V0dXAnIG9yIHNldHVwLnBhcmVudC5uYW1lICE9ICdfYWdlbnQnOgogICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ1J1biB0aGUgZXh0cmFjdGVkIHNjcmlwdCBhdCA8d29ya3NwYWNl
Pi9fYWdlbnQvc2V0dXAvaW5zdGFsbC1vbnRvbG9neS12OC5weScpCiAgICBwYWNrYWdlID0gbm9f
bGlua3Moc2V0dXAgLyAnb250b2xvZ3ktdjgnKQogICAgbWFuaWZlc3RfcGF0aCA9IG5vX2xpbmtz
KHBhY2thZ2UgLyAnbWFuaWZlc3QuanNvbicpCiAgICBtYW5pZmVzdF9ieXRlcyA9IG1hbmlmZXN0
X3BhdGgucmVhZF9ieXRlcygpCiAgICBtYW5pZmVzdCA9IGpzb24ubG9hZHMobWFuaWZlc3RfYnl0
ZXMpCiAgICBpZiBtYW5pZmVzdC5nZXQoJ3ZlcnNpb24nKSAhPSA4OgogICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIG9udG9sb2d5IHBhY2thZ2UgdmVyc2lvbicpCiAgICBmaWxl
cywgc2VlbiA9IFtdLCBzZXQoKQogICAgZm9yIGl0ZW0gaW4gbWFuaWZlc3RbJ2ZpbGVzJ106CiAg
ICAgICAgc3JjID0gbm9fbGlua3MocGFja2FnZS5qb2lucGF0aCgqcmVsYXRpdmUoaXRlbVsnc291
cmNlJ10pLnBhcnRzKSkKICAgICAgICB0YXJnZXRfcmVsID0gcmVsYXRpdmUoaXRlbVsndGFyZ2V0
J10pCiAgICAgICAgZHN0ID0gbm9fbGlua3Mocm9vdC5qb2lucGF0aCgqdGFyZ2V0X3JlbC5wYXJ0
cykpCiAgICAgICAgaWYgbm90IHNyYy5pc19yZWxhdGl2ZV90byhwYWNrYWdlKSBvciBub3QgZHN0
LmlzX3JlbGF0aXZlX3RvKHJvb3QpIG9yIGl0ZW1bJ3RhcmdldCddLmNhc2Vmb2xkKCkgaW4gc2Vl
bjoKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRHVwbGljYXRlIG9yIGVzY2FwaW5nIHBh
Y2thZ2UgcGF0aCcpCiAgICAgICAgc2Vlbi5hZGQoaXRlbVsndGFyZ2V0J10uY2FzZWZvbGQoKSkK
ICAgICAgICBkYXRhID0gc3JjLnJlYWRfYnl0ZXMoKQogICAgICAgIGlmIGRpZ2VzdChkYXRhKSAh
PSBpdGVtWydzaGEyNTYnXToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmJ1BhY2thZ2Ug
aW50ZWdyaXR5IGZhaWx1cmU6IHtpdGVtWyJzb3VyY2UiXX0nKQogICAgICAgIGZpbGVzLmFwcGVu
ZCgoaXRlbSwgZHN0LCBkYXRhKSkKICAgIHJlY2VpcHRfcGF0aCA9IG5vX2xpbmtzKHNldHVwIC8g
J29udG9sb2d5LXY4LXJlY2VpcHQuanNvbicpCiAgICBwcm9ncmVzc19wYXRoID0gbm9fbGlua3Mo
c2V0dXAgLyAnb250b2xvZ3ktdjgtaW5zdGFsbGluZy5qc29uJykKICAgIG9udG9sb2d5ID0gbm9f
bGlua3Mocm9vdCAvICdfb250b2xvZ3knKQogICAgcmVjZWlwdCA9IGpzb24ubG9hZHMocmVjZWlw
dF9wYXRoLnJlYWRfdGV4dCgndXRmLTgnKSkgaWYgcmVjZWlwdF9wYXRoLmlzX2ZpbGUoKSBlbHNl
IE5vbmUKICAgIHByb2dyZXNzID0ganNvbi5sb2Fkcyhwcm9ncmVzc19wYXRoLnJlYWRfdGV4dCgn
dXRmLTgnKSkgaWYgcHJvZ3Jlc3NfcGF0aC5pc19maWxlKCkgZWxzZSBOb25lCiAgICBvd25lZCA9
IGFueShyZWNvcmQgYW5kIHJlY29yZC5nZXQoJ3BhY2thZ2VTaGEyNTYnKSA9PSBkaWdlc3QobWFu
aWZlc3RfYnl0ZXMpIGZvciByZWNvcmQgaW4gKHJlY2VpcHQsIHByb2dyZXNzKSkKICAgIGV4aXN0
aW5nX2J1bmRsZSA9ICgob250b2xvZ3kuZXhpc3RzKCkgYW5kIChub3Qgb250b2xvZ3kuaXNfZGly
KCkgb3IgYW55KG9udG9sb2d5Lml0ZXJkaXIoKSkpKQogICAgICAgICAgICAgICAgICAgICAgIG9y
IChyb290IC8gJ0lSSVMt7Jio7Yao66Gc7KeALm1kJykuZXhpc3RzKCkKICAgICAgICAgICAgICAg
ICAgICAgICBvciAocm9vdCAvICdfbWFwLWdlbmVyYXRvcicpLmV4aXN0cygpKQogICAgaWYgZXhp
c3RpbmdfYnVuZGxlIGFuZCBub3Qgb3duZWQ6CiAgICAgICAgcmV0dXJuIHsnc3RhdHVzJzogJ2V4
aXN0aW5nLW9udG9sb2d5LXByZXNlcnZlZCcsICdhcHBsaWVkJzogRmFsc2UsCiAgICAgICAgICAg
ICAgICAncmVhc29uJzogJ0V4aXN0aW5nIG9udG9sb2d5IGlzIGF1dGhvcml0YXRpdmU7IG5vIHBh
Y2thZ2UgZmlsZXMsIGNhcmRzLCBJRHMgb3Igc3RhdGUgd2VyZSByZXBsYWNlZC4nLAogICAgICAg
ICAgICAgICAgJ25leHQnOiAnVXNlIHRoZSBleGlzdGluZyB0b29scyBhbmQgcm9vdCBydWxlcy4g
UmV2aWV3IHBvcnRhYmlsaXR5IHNlcGFyYXRlbHkgd2hlbiByZXN0b3JpbmcgdG8gYW5vdGhlciBw
YXRoLid9CiAgICBwZW5kaW5nLCBjb25mbGljdHMsIHByZXNlcnZlZCA9IFtdLCBbXSwgW10KICAg
IGZvciBpdGVtLCBkc3QsIGRhdGEgaW4gZmlsZXM6CiAgICAgICAgaWYgZHN0LmV4aXN0cygpOgog
ICAgICAgICAgICBpZiBkc3QuaXNfZmlsZSgpIGFuZCBkc3QucmVhZF9ieXRlcygpID09IGRhdGE6
CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBpZiBpdGVtLmdldCgncG9saWN5
JykgPT0gJ3ByZXNlcnZlJyBhbmQgZHN0LmlzX2ZpbGUoKToKICAgICAgICAgICAgICAgIHByZXNl
cnZlZC5hcHBlbmQoaXRlbVsndGFyZ2V0J10pCiAgICAgICAgICAgICAgICBjb250aW51ZQogICAg
ICAgICAgICBjb25mbGljdHMuYXBwZW5kKGl0ZW1bJ3RhcmdldCddKQogICAgICAgIGVsc2U6CiAg
ICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKChkc3QsIGRhdGEpKQogICAgaWYgY29uZmxpY3RzOgog
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vIGRlcGxveW1lbnQ7IGNvbmZsaWN0aW5nIGZpbGVz
OiAnICsgJywgJy5qb2luKGNvbmZsaWN0cykpCiAgICByb290X2FnZW50cyA9IG5vX2xpbmtzKHJv
b3QgLyAnQUdFTlRTLm1kJykKICAgIGlmIHJvb3RfYWdlbnRzLmV4aXN0cygpIGFuZCBub3Qgcm9v
dF9hZ2VudHMuaXNfZmlsZSgpOgogICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Jvb3QgQUdFTlRT
Lm1kIGlzIG5vdCBhIGZpbGUnKQogICAgZGlzcGxheSA9IHJvb3QubmFtZQogICAgIyBSZWFkIHRo
ZSBkaXNwbGF5IG5hbWUgb25seTsgdGhlIGluc3RhbGxlciBuZXZlciB3cml0ZXMgc291bC1zdGF0
ZS5qc29uLgogICAgc3RhdGUgPSBub19saW5rcyhyb290IC8gJ3NvdWwtc3RhdGUuanNvbicpCiAg
ICBpZiBzdGF0ZS5pc19maWxlKCk6CiAgICAgICAgc3RhdGVfb2JqID0ganNvbi5sb2FkcyhzdGF0
ZS5yZWFkX3RleHQoJ3V0Zi04LXNpZycpKQogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHN0YXRl
X29iaiwgZGljdCkgb3Igbm90IGlzaW5zdGFuY2Uoc3RhdGVfb2JqLmdldCgnc2NoZW1hVmVyc2lv
bicpLCBpbnQpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdFeGlzdGluZyBzZXR1cCBz
dGF0ZSBoYXMgbm8gdmFsaWQgc2NoZW1hVmVyc2lvbicpCiAgICAgICAgaWYgc3RhdGVfb2JqWydz
Y2hlbWFWZXJzaW9uJ10gPiA3OgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdOZXdlciBz
ZXR1cCBzdGF0ZSBpcyBwcmVzZXJ2ZWQ7IHJldmlldyBjb21wYXRpYmlsaXR5IGJlZm9yZSBkZXBs
b3lpbmcgdGhpcyBwYWNrYWdlJykKICAgICAgICBkaXNwbGF5ID0gc3RhdGVfb2JqLmdldCgnZGlz
cGxheU5hbWUnKSBvciBkaXNwbGF5CiAgICB0ZW1wbGF0ZXMgPSB7fQogICAgZm9yIG5hbWUgaW4g
KCdyb290LXY3Lm1kJywgJ3Jvb3QtdjgubWQnKToKICAgICAgICB0ZW1wbGF0ZV9wYXRoID0gbm9f
bGlua3MocGFja2FnZSAvIG5hbWUpCiAgICAgICAgdGVtcGxhdGVfZGF0YSA9IHRlbXBsYXRlX3Bh
dGgucmVhZF9ieXRlcygpCiAgICAgICAgaWYgZGlnZXN0KHRlbXBsYXRlX2RhdGEpICE9IG1hbmlm
ZXN0Wyd0ZW1wbGF0ZXMnXVtuYW1lXToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmJ1Jv
b3QgdGVtcGxhdGUgaW50ZWdyaXR5IGZhaWx1cmU6IHtuYW1lfScpCiAgICAgICAgdGVtcGxhdGVz
W25hbWVdID0gdGVtcGxhdGVfZGF0YS5kZWNvZGUoJ3V0Zi04LXNpZycpLnJlcGxhY2UoJzzsmIHt
mLwg7J2066aEPicsIGRpc3BsYXkpCiAgICBuZXh0X3Jvb3QgPSB0ZW1wbGF0ZXNbJ3Jvb3Qtdjgu
bWQnXS5yZXBsYWNlKCdcclxuJywgJ1xuJykuc3RyaXAoKSArICdcbicKICAgIHJvb3RfdXBkYXRl
ID0gRmFsc2UKICAgIHJvb3RfbWVyZ2UgPSBGYWxzZQogICAgb2xkX3Jvb3QgPSByb290X2FnZW50
cy5yZWFkX2J5dGVzKCkgaWYgcm9vdF9hZ2VudHMuaXNfZmlsZSgpIGVsc2UgTm9uZQogICAgaWYg
b2xkX3Jvb3QgaXMgTm9uZToKICAgICAgICBwZW5kaW5nLmFwcGVuZCgocm9vdF9hZ2VudHMsIG5l
eHRfcm9vdC5lbmNvZGUoJ3V0Zi04JykpKQogICAgZWxpZiB0ZXh0X25vcm1hbChvbGRfcm9vdCkg
PT0gdGV4dF9ub3JtYWwobmV4dF9yb290LmVuY29kZSgndXRmLTgnKSk6CiAgICAgICAgcGFzcwog
ICAgZWxpZiB0ZXh0X25vcm1hbChvbGRfcm9vdCkgPT0gdGV4dF9ub3JtYWwodGVtcGxhdGVzWydy
b290LXY3Lm1kJ10uZW5jb2RlKCd1dGYtOCcpKToKICAgICAgICByb290X3VwZGF0ZSA9IFRydWUK
ICAgIGVsc2U6CiAgICAgICAgcm9vdF9tZXJnZSA9IFRydWUKICAgICAgICBwcmVzZXJ2ZWQuYXBw
ZW5kKCdBR0VOVFMubWQgKG1hbnVhbCBtZXJnZSBvZiBvbnRvbG9neSBydWxlcyByZXF1aXJlZCkn
KQogICAgd3JhcHBlciA9IG5vX2xpbmtzKHJvb3QgLyAnQ0xBVURFLm1kJykKICAgIGlmIG5vdCB3
cmFwcGVyLmV4aXN0cygpOgogICAgICAgIHBlbmRpbmcuYXBwZW5kKCh3cmFwcGVyLCBiJ0BBR0VO
VFMubWRcbicpKQogICAgZWxpZiBub3Qgd3JhcHBlci5pc19maWxlKCkgb3IgdGV4dF9ub3JtYWwo
d3JhcHBlci5yZWFkX2J5dGVzKCkpICE9ICdAQUdFTlRTLm1kJzoKICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCdFeGlzdGluZyBDTEFVREUubWQgaGFzIGNvbnRlbnQ7IHByZXNlcnZlIGl0IGFuZCBt
ZXJnZSBpbnN0cnVjdGlvbnMgYmVmb3JlIGRlcGxveW1lbnQnKQogICAgYmFja3VwID0gbm9fbGlu
a3Moc2V0dXAgLyAoJ29udG9sb2d5LXY4LXJvb3QtYmFja3VwLScgKyBkaWdlc3Qob2xkX3Jvb3Qg
b3IgYicnKVs6MTZdICsgJy5tZCcpKQogICAgcm9vdF90ZW1wID0gbm9fbGlua3Moc2V0dXAgLyAn
b250b2xvZ3ktdjgtcm9vdC1wZW5kaW5nLm1kJykKICAgIHJlY2VpcHRfdGVtcCA9IG5vX2xpbmtz
KHNldHVwIC8gJ29udG9sb2d5LXY4LXJlY2VpcHQucGVuZGluZy5qc29uJykKICAgIHByb2dyZXNz
X3RlbXAgPSBub19saW5rcyhzZXR1cCAvICdvbnRvbG9neS12OC1pbnN0YWxsaW5nLnBlbmRpbmcu
anNvbicpCiAgICBjYW5kaWRhdGUgPSBub19saW5rcyhzZXR1cCAvICdvbnRvbG9neS12OC1yb290
LW1lcmdlLm1kJykKICAgIGZvciBzcGVjaWFsIGluIChyZWNlaXB0X3BhdGgsIHByb2dyZXNzX3Bh
dGgsIGJhY2t1cCwgY2FuZGlkYXRlKToKICAgICAgICBpZiBzcGVjaWFsLmV4aXN0cygpIGFuZCBu
b3Qgc3BlY2lhbC5pc19maWxlKCk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZidFeHBl
Y3RlZCBhIGZpbGU6IHtzcGVjaWFsfScpCiAgICBmb3IgdGVtcCBpbiAocmVjZWlwdF90ZW1wLCBw
cm9ncmVzc190ZW1wKToKICAgICAgICBpZiB0ZW1wLmV4aXN0cygpOgogICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKGYnSW50ZXJydXB0ZWQgbWV0YWRhdGEgd3JpdGU7IGluc3BlY3QgdGhpcyBm
aWxlIGJlZm9yZSByZXRyeToge3RlbXB9JykKICAgIGlmIHJvb3RfdGVtcC5leGlzdHMoKSBhbmQg
KG5vdCBvd25lZCBvciBub3Qgcm9vdF90ZW1wLmlzX2ZpbGUoKSBvciByb290X3RlbXAucmVhZF9i
eXRlcygpICE9IG5leHRfcm9vdC5lbmNvZGUoJ3V0Zi04JykpOgogICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ1Vua25vd24gcGVuZGluZyByb290IHJlcGxhY2VtZW50OyBpbnNwZWN0IGJlZm9yZSBy
ZXRyeScpCiAgICBpZiByb290X3VwZGF0ZSBhbmQgYmFja3VwLmV4aXN0cygpIGFuZCBiYWNrdXAu
cmVhZF9ieXRlcygpICE9IG9sZF9yb290OgogICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Jvb3Qg
YmFja3VwIGRpZmZlcnM7IGRlcGxveW1lbnQgc3RvcHBlZCcpCiAgICByZXN1bHQgPSB7J3N0YXR1
cyc6ICdwbGFuJywgJ2d1aWRlVmVyc2lvbic6IDksICdlbmdpbmVTY2hlbWFWZXJzaW9uJzogNywg
J3Jvb3QnOiBzdHIocm9vdCksCiAgICAgICAgICAgICAgJ25ld0ZpbGVzJzogbGVuKHBlbmRpbmcp
LCAncmVwbGFjZVVubW9kaWZpZWRWN1Jvb3QnOiByb290X3VwZGF0ZSwKICAgICAgICAgICAgICAn
cHJlc2VydmVkJzogcHJlc2VydmVkLCAnbWFudWFsUm9vdE1lcmdlUmVxdWlyZWQnOiByb290X21l
cmdlLAogICAgICAgICAgICAgICdzY29wZSc6ICdvbnRvbG9neS1maWxlLWRlcGxveW1lbnQtb25s
eScsICdzZXR1cFZlcmlmaWVkJzogRmFsc2UsCiAgICAgICAgICAgICAgJ2VuZ2luZVN0YXRlUHJl
c2VudCc6IHN0YXRlLmlzX2ZpbGUoKSwKICAgICAgICAgICAgICAnaG9va3MnOiAnbm90LWluc3Rh
bGxlZDsgcnVuIGNoZWNrX2ZyZXNoLnB5IGZyb20gYm90aCBhZ2VudHMgcGVyIHJvb3QgcnVsZXMn
LAogICAgICAgICAgICAgICduaWdodGx5JzogJ25vdC1jb25maWd1cmVkJywgJ2NhcmRzJzogJ25v
dC1nZW5lcmF0ZWQ7IHJldmlldyAtLWluaXQgYmVmb3JlIC0taW5pdCAtLXdyaXRlJ30KICAgIGlm
IG5vdCBhcHBseToKICAgICAgICByZXR1cm4gcmVzdWx0CiAgICAjIENvbmZpcm0gdGhlIG9ubHkg
cmVwbGFjZWFibGUgdXNlci1mYWNpbmcgZmlsZSBoYXMgbm90IGNoYW5nZWQgc2luY2UgcGxhbm5p
bmcuCiAgICBpZiByb290X3VwZGF0ZSBhbmQgcm9vdF9hZ2VudHMucmVhZF9ieXRlcygpICE9IG9s
ZF9yb290OgogICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Jvb3QgaW5zdHJ1Y3Rpb25zIGNoYW5n
ZWQgZHVyaW5nIHBsYW5uaW5nOyByZXRyeScpCiAgICBpZiBub3Qgb3duZWQ6CiAgICAgICAgcHJv
Z3Jlc3NfZGF0YSA9IChqc29uLmR1bXBzKHsncGFja2FnZVNoYTI1Nic6IGRpZ2VzdChtYW5pZmVz
dF9ieXRlcyksICdzdGF0dXMnOiAnY29weWluZyd9LCBpbmRlbnQ9MikgKyAnXG4nKS5lbmNvZGUo
J3V0Zi04JykKICAgICAgICB3aXRoIHByb2dyZXNzX3RlbXAub3BlbigneGInKSBhcyBzdHJlYW06
CiAgICAgICAgICAgIHN0cmVhbS53cml0ZShwcm9ncmVzc19kYXRhKQogICAgICAgIG9zLnJlcGxh
Y2UocHJvZ3Jlc3NfdGVtcCwgcHJvZ3Jlc3NfcGF0aCkKICAgIGZvciBkc3QsIGRhdGEgaW4gcGVu
ZGluZzoKICAgICAgICBub19saW5rcyhkc3QpCiAgICAgICAgZHN0LnBhcmVudC5ta2RpcihwYXJl
bnRzPVRydWUsIGV4aXN0X29rPVRydWUpCiAgICAgICAgd2l0aCBkc3Qub3BlbigneGInKSBhcyBz
dHJlYW06CiAgICAgICAgICAgIHN0cmVhbS53cml0ZShkYXRhKQogICAgaWYgcm9vdF91cGRhdGU6
CiAgICAgICAgaWYgbm90IGJhY2t1cC5leGlzdHMoKToKICAgICAgICAgICAgd2l0aCBiYWNrdXAu
b3BlbigneGInKSBhcyBzdHJlYW06CiAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUob2xkX3Jv
b3QpCiAgICAgICAgaWYgbm90IHJvb3RfdGVtcC5leGlzdHMoKToKICAgICAgICAgICAgd2l0aCBy
b290X3RlbXAub3BlbigneGInKSBhcyBzdHJlYW06CiAgICAgICAgICAgICAgICBzdHJlYW0ud3Jp
dGUobmV4dF9yb290LmVuY29kZSgndXRmLTgnKSkKICAgICAgICBub19saW5rcyhyb290X2FnZW50
cykKICAgICAgICBpZiByb290X2FnZW50cy5zdGF0KCkuc3RfbmxpbmsgPiAxOgogICAgICAgICAg
ICAjIFByZXNlcnZlIHRoZSBmaWxlIGlkZW50aXR5IHNvIGFuIGV4aXN0aW5nIENvZGV4IGhhcmRs
aW5rIHNlZXMgdjguCiAgICAgICAgICAgICMgVGhlIG9yaWdpbmFsIGJ5dGVzIHJlbWFpbiBpbiBi
YWNrdXA7IG5vIHNlc3Npb24vY29uZmlnIGZpbGVzIG1vdmUuCiAgICAgICAgICAgIHdpdGggcm9v
dF9hZ2VudHMub3BlbigncitiJykgYXMgc3RyZWFtOgogICAgICAgICAgICAgICAgaWYgc3RyZWFt
LnJlYWQoKSAhPSBvbGRfcm9vdDoKICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdSb290IGluc3RydWN0aW9ucyBjaGFuZ2VkIGJlZm9yZSBsaW5rZWQgdXBkYXRlJykKICAgICAg
ICAgICAgICAgIHN0cmVhbS5zZWVrKDApCiAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUobmV4
dF9yb290LmVuY29kZSgndXRmLTgnKSkKICAgICAgICAgICAgICAgIHN0cmVhbS50cnVuY2F0ZSgp
CiAgICAgICAgICAgICAgICBzdHJlYW0uZmx1c2goKQogICAgICAgICAgICAgICAgb3MuZnN5bmMo
c3RyZWFtLmZpbGVubygpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG9zLnJlcGxhY2Uocm9v
dF90ZW1wLCByb290X2FnZW50cykKICAgIGlmIHJvb3RfbWVyZ2U6CiAgICAgICAgaWYgbm90IGNh
bmRpZGF0ZS5leGlzdHMoKToKICAgICAgICAgICAgd2l0aCBjYW5kaWRhdGUub3BlbigneGInKSBh
cyBzdHJlYW06CiAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUobmV4dF9yb290LmVuY29kZSgn
dXRmLTgnKSkKICAgIHJlc3VsdC51cGRhdGUoc3RhdHVzPSdmaWxlcy1pbnN0YWxsZWQtcm9vdC1t
ZXJnZS1wZW5kaW5nJyBpZiByb290X21lcmdlIGVsc2UgJ2ZpbGVzLWluc3RhbGxlZCcsCiAgICAg
ICAgICAgICAgICAgIHBhY2thZ2VTaGEyNTY9ZGlnZXN0KG1hbmlmZXN0X2J5dGVzKSwgYXBwbGll
ZD1UcnVlKQogICAgIyBBIGJ5dGUtaWRlbnRpY2FsIHJlcnVuIGtlZXBzIHRoZSBvcmlnaW5hbCBy
ZWNlaXB0IGFuZCBpdHMgdGltZXN0YW1wLgogICAgaWYgcmVjZWlwdCBpcyBOb25lIG9yIHBlbmRp
bmcgb3Igcm9vdF91cGRhdGUgb3IgcmVjZWlwdC5nZXQoJ21hbnVhbFJvb3RNZXJnZVJlcXVpcmVk
JykgIT0gcm9vdF9tZXJnZToKICAgICAgICByZXN1bHRbJ2luc3RhbGxlZEF0J10gPSBkYXRldGlt
ZS5kYXRldGltZS5ub3coZGF0ZXRpbWUudGltZXpvbmUudXRjKS5pc29mb3JtYXQoKQogICAgICAg
IGRhdGEgPSAoanNvbi5kdW1wcyhyZXN1bHQsIGVuc3VyZV9hc2NpaT1GYWxzZSwgaW5kZW50PTIp
ICsgJ1xuJykuZW5jb2RlKCd1dGYtOCcpCiAgICAgICAgd2l0aCByZWNlaXB0X3RlbXAub3Blbign
eGInKSBhcyBzdHJlYW06CiAgICAgICAgICAgIHN0cmVhbS53cml0ZShkYXRhKQogICAgICAgIG9z
LnJlcGxhY2UocmVjZWlwdF90ZW1wLCByZWNlaXB0X3BhdGgpCiAgICByZXR1cm4gcmVzdWx0CgoK
ZGVmIG1haW4oKToKICAgIGFwID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249
X19kb2NfXykKICAgIGFwLmFkZF9hcmd1bWVudCgnLS1hcHBseScsIGFjdGlvbj0nc3RvcmVfdHJ1
ZScpCiAgICBhcmdzID0gYXAucGFyc2VfYXJncygpCiAgICB0cnk6CiAgICAgICAgcmVzdWx0ID0g
cnVuKGFyZ3MuYXBwbHkpCiAgICAgICAgcHJpbnQoanNvbi5kdW1wcyhyZXN1bHQsIGVuc3VyZV9h
c2NpaT1GYWxzZSwgaW5kZW50PTIpKQogICAgICAgIHJldHVybiAyIGlmIHJlc3VsdC5nZXQoJ21h
bnVhbFJvb3RNZXJnZVJlcXVpcmVkJykgZWxzZSAwCiAgICBleGNlcHQgKE9TRXJyb3IsIFZhbHVl
RXJyb3IsIEtleUVycm9yLCBUeXBlRXJyb3IpIGFzIGV4YzoKICAgICAgICBwcmludChmJ0UtT05U
T0xPR1ktSU5TVEFMTDoge2V4Y30nLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgcmV0dXJuIDEK
CgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgcmFpc2UgU3lzdGVtRXhpdChtYWluKCkp
Cg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/launcher.ps1","encoding":"base64","size":46259,"runtimeSha256":"42f9ae0ef95f45568582119ce9e48c5f390f6a845d6efdeacc31da8c24770515","normalizedSha256":"e07ea5258eed1b8655701db6f7484e236469de995c6774985919a395cb994817"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIFN0YXJ0cyBDbGF1
ZGUgb3IgQ29kZXggd2l0aCBvbmUgc291bCwgb25lIHNjb3BlLCBhbmQgYW4gZXhhY3QgbmF0aXZl
IHNlc3Npb24uDQoNCi5ERVNDUklQVElPTg0KICBJZiBhbiBleGFjdCBuYXRpdmUgc2Vzc2lvbiBJ
RCBpcyByZWdpc3RlcmVkLCBpdCBpcyByZXN1bWVkIGV4cGxpY2l0bHkuIFRoZQ0KICBsYXVuY2hl
ciBuZXZlciB1c2VzIC0tbGFzdC4gSXQgZmluYWxpemVzIG9uZSBwZW5kaW5nIGdlbmVyYXRpb24g
YmVmb3JlIGxhdW5jaCwNCiAgcmVmdXNlcyBzcGxpdC1icmFpbiBhZ2VudCBob21lcywgYW5kIHNl
dHMgcG9ydGFibGUgaG9tZXMgb25seSBpbiB0aGUgY2hpbGQNCiAgcHJvY2VzcyBlbnZpcm9ubWVu
dC4gLS1tZW51IGlzIGFjY2VwdGVkIGFzIHRoZSBQb3dlclNoZWxsIC1NZW51IHN3aXRjaC4NCg0K
Lk5PVEVTDQogIFByb3Bvc2VkIHJvb3Qgd3JhcHBlciBjb250ZW50ICh0aGlzIHNjcmlwdCBkb2Vz
IG5vdCBjcmVhdGUgaXQpOg0KICAgIEBlY2hvIG9mZg0KICAgIHBvd2Vyc2hlbGwgLU5vUHJvZmls
ZSAtRXhlY3V0aW9uUG9saWN5IEJ5cGFzcyAtRmlsZSAiJX5kcDBfYWdlbnRcc2V0dXBcbGF1bmNo
ZXIucHMxIiAlKg0KIz4NCltDbWRsZXRCaW5kaW5nKCldDQpwYXJhbSgNCiAgICBbVmFsaWRhdGVT
ZXQoJ2NsYXVkZScsICdjb2RleCcpXQ0KICAgIFtzdHJpbmddJEFnZW50LA0KDQogICAgW3N0cmlu
Z10kU2NvcGVQYXRoLA0KDQogICAgW3N3aXRjaF0kTWVudSwNCg0KICAgIFtzd2l0Y2hdJE5ld1Nl
c3Npb24sDQogICAgW3N3aXRjaF0kRHJ5UnVuLA0KDQogICAgIyBJbnRlZ3JhdGlvbi10ZXN0IG9u
bHkuIFRoZSBwYXRoIG11c3QgcmVtYWluIGJlbG93IHNldHVwL3Rlc3RzL2ZpeHR1cmVzLg0KICAg
IFtQYXJhbWV0ZXIoRG9udFNob3cpXQ0KICAgIFtzdHJpbmddJFRlc3RSb290LA0KDQogICAgIyBJ
bnRlZ3JhdGlvbi10ZXN0IG9ubHkuIE5ldmVyIHJlYWRzIG9yIGNoYW5nZXMgdGhlIHJlYWwgcHJv
Y2VzcyBlbnZpcm9ubWVudC4NCiAgICBbUGFyYW1ldGVyKERvbnRTaG93KV0NCiAgICBbaGFzaHRh
YmxlXSRUZXN0RW52aXJvbm1lbnQsDQoNCiAgICAjIEludGVncmF0aW9uLXRlc3Qgb25seS4gUnVu
cyBvbmx5IHdoZW4gVGVzdFJvb3QgaXMgYmVsb3cgdGhlIGZpeHR1cmUgYm91bmRhcnkuDQogICAg
W1BhcmFtZXRlcihEb250U2hvdyldDQogICAgW3NjcmlwdGJsb2NrXSRUZXN0UHJlcGFyZVNvdXJj
ZXNBY3Rpb24sDQoNCiAgICAjIEludGVncmF0aW9uLXRlc3Qgb25seS4gU2ltdWxhdGVzIHRoZSBm
aXhlZCBmb3VuZGF0aW9uIHByZXBhcmF0aW9uIHN0ZXAuDQogICAgW1BhcmFtZXRlcihEb250U2hv
dyldDQogICAgW3NjcmlwdGJsb2NrXSRUZXN0UHJlcGFyZUZvdW5kYXRpb25zQWN0aW9uLA0KDQog
ICAgIyBJbnRlZ3JhdGlvbi10ZXN0IG9ubHkuIFNpbXVsYXRlcyBTdGF0dXMvRW5zdXJlIHdpdGhv
dXQgcmVhZGluZyBhIHJlYWwgdmF1bHQuDQogICAgW1BhcmFtZXRlcihEb250U2hvdyldDQogICAg
W3NjcmlwdGJsb2NrXSRUZXN0VmF1bHRBY3Rpb24NCikNCg0KU2V0LVN0cmljdE1vZGUgLVZlcnNp
b24gTGF0ZXN0DQokRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJ1N0b3AnDQokYWdlbnRXYXNFeHBs
aWNpdCA9ICRQU0JvdW5kUGFyYW1ldGVycy5Db250YWluc0tleSgnQWdlbnQnKQ0KJHNjb3BlV2Fz
RXhwbGljaXQgPSAkUFNCb3VuZFBhcmFtZXRlcnMuQ29udGFpbnNLZXkoJ1Njb3BlUGF0aCcpDQok
c2NyaXB0OkZvdW5kYXRpb25QcmVwYXJhdGlvblJlc3VsdCA9ICRudWxsDQoNCiRtb2R1bGVQYXRo
ID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ2VuZ2luZVxTb3VsLkVuZ2luZS5wc20xJw0KSW1w
b3J0LU1vZHVsZSAtTmFtZSAkbW9kdWxlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCg0K
ZnVuY3Rpb24gVGVzdC1QYXRoQmVsb3cgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJp
bmddJFBhcmVudCwgW3N3aXRjaF0kQWxsb3dQYXJlbnQpDQogICAgJGZ1bGxQYXRoID0gW0lPLlBh
dGhdOjpHZXRGdWxsUGF0aCgkUGF0aCkuVHJpbUVuZCgnXCcsICcvJykNCiAgICAkZnVsbFBhcmVu
dCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFBhcmVudCkuVHJpbUVuZCgnXCcsICcvJykNCiAg
ICBpZiAoJGZ1bGxQYXRoLkVxdWFscygkZnVsbFBhcmVudCwgW1N0cmluZ0NvbXBhcmlzb25dOjpP
cmRpbmFsSWdub3JlQ2FzZSkpIHsgcmV0dXJuIFtib29sXSRBbGxvd1BhcmVudCB9DQogICAgcmV0
dXJuICRmdWxsUGF0aC5TdGFydHNXaXRoKCRmdWxsUGFyZW50ICsgW0lPLlBhdGhdOjpEaXJlY3Rv
cnlTZXBhcmF0b3JDaGFyLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKQ0K
fQ0KDQpmdW5jdGlvbiBSZXNvbHZlLUxhdW5jaGVyUm9vdCB7DQogICAgaWYgKFtzdHJpbmddOjpJ
c051bGxPcldoaXRlU3BhY2UoJFRlc3RSb290KSkgew0KICAgICAgICAkcm9vdCA9IEdldC1Tb3Vs
Um9vdA0KICAgICAgICBbdm9pZF0oQXNzZXJ0LVNvdWxSb290IC1QYXRoICRyb290IC1SZXF1aXJl
SW5pdGlhbGl6ZWQpDQogICAgICAgIHJldHVybiAkcm9vdA0KICAgIH0NCiAgICAkcm9vdCA9IFtJ
Ty5QYXRoXTo6R2V0RnVsbFBhdGgoJFRlc3RSb290KS5UcmltRW5kKCdcJywgJy8nKQ0KICAgICRm
aXh0dXJlQm91bmRhcnkgPSBKb2luLVBhdGggKEdldC1Tb3VsRW5naW5lTGF5b3V0KS5TZXR1cERp
cmVjdG9yeSAndGVzdHNcZml4dHVyZXMnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aEJlbG93IC1Q
YXRoICRyb290IC1QYXJlbnQgJGZpeHR1cmVCb3VuZGFyeSkpIHsgdGhyb3cgJ1Rlc3RSb290IGlz
IHBlcm1pdHRlZCBvbmx5IGJlbG93IF9hZ2VudFxzZXR1cFx0ZXN0c1xmaXh0dXJlcy4nIH0NCiAg
ICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHJvb3QpDQogICAgcmV0dXJuICRy
b290DQp9DQoNCmZ1bmN0aW9uIEdldC1MYXVuY2hlck1vZHVsZUFyZ3VtZW50cyB7DQogICAgcGFy
YW0oW3N0cmluZ10kU3RhdGVEaXJlY3RvcnkpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoJFRlc3RSb290KSkgeyByZXR1cm4gQHt9IH0NCiAgICByZXR1cm4gQHsgVGVzdFNl
dHVwRGlyZWN0b3J5ID0gJFN0YXRlRGlyZWN0b3J5IH0NCn0NCg0KZnVuY3Rpb24gR2V0LUVudmly
b25tZW50VmFsdWUgew0KICAgIHBhcmFtKFtzdHJpbmddJE5hbWUpDQogICAgaWYgKCRudWxsIC1u
ZSAkVGVzdEVudmlyb25tZW50KSB7DQogICAgICAgIGlmICgkVGVzdEVudmlyb25tZW50LkNvbnRh
aW5zS2V5KCROYW1lKSkgeyByZXR1cm4gW3N0cmluZ10kVGVzdEVudmlyb25tZW50WyROYW1lXSB9
DQogICAgICAgIHJldHVybiAkbnVsbA0KICAgIH0NCiAgICByZXR1cm4gW0Vudmlyb25tZW50XTo6
R2V0RW52aXJvbm1lbnRWYXJpYWJsZSgkTmFtZSwgJ1Byb2Nlc3MnKQ0KfQ0KDQpmdW5jdGlvbiBB
c3NlcnQtQWdlbnRIb21lTm90U3BsaXQgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQogICAg
JGV4cGVjdGVkID0gQHsNCiAgICAgICAgQ0xBVURFX0NPTkZJR19ESVIgPSBKb2luLVBhdGggJFJv
b3QgJ19hZ2VudFxjbGF1ZGUnDQogICAgICAgIENPREVYX0hPTUUgPSBKb2luLVBhdGggJFJvb3Qg
J19hZ2VudFxjb2RleCcNCiAgICB9DQogICAgZm9yZWFjaCAoJG5hbWUgaW4gJGV4cGVjdGVkLktl
eXMpIHsNCiAgICAgICAgJHByZXNlbnQgPSBHZXQtRW52aXJvbm1lbnRWYWx1ZSAtTmFtZSAkbmFt
ZQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkcHJlc2VudCkpIHsg
Y29udGludWUgfQ0KICAgICAgICAkYWN0dWFsUGF0aCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgo
JHByZXNlbnQpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgICAgICRleHBlY3RlZFBhdGggPSBbSU8u
UGF0aF06OkdldEZ1bGxQYXRoKCRleHBlY3RlZFskbmFtZV0pLlRyaW1FbmQoJ1wnLCAnLycpDQog
ICAgICAgIGlmICgtbm90ICRhY3R1YWxQYXRoLkVxdWFscygkZXhwZWN0ZWRQYXRoLCBbU3RyaW5n
Q29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgICAgICAgICAgdGhyb3cgIiRu
YW1lIHBvaW50cyB0byBhIGRpZmZlcmVudCBhZ2VudCBob21lLiBSZWZ1c2luZyBhIHNwbGl0LWJy
YWluIGxhdW5jaC4iDQogICAgICAgIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEluaXRpYWxpemUt
TGF1bmNoZXJEaXJlY3Rvcnkgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJFRp
dGxlKQ0KICAgIFt2b2lkXShBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkUGF0aCkNCiAgICBp
ZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCkpIHsgW3ZvaWRdW0lPLkRpcmVj
dG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkUGF0aCkgfQ0KICAgICRpdGVtID0gR2V0LUl0ZW0gLUxp
dGVyYWxQYXRoICRQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgoJGl0ZW0u
QXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAw
KSB7IHRocm93ICJSdW50aW1lIGRpcmVjdG9yeSByZXBhcnNlIHBvaW50IGJsb2NrZWQ6ICRQYXRo
IiB9DQogICAgJGFnZW50c1BhdGggPSBKb2luLVBhdGggJFBhdGggJ0FHRU5UUy5tZCcNCiAgICBp
ZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYWdlbnRzUGF0aCkpIHsNCiAgICAgICAg
W3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoICRhZ2VudHNQYXRoIC1UZXh0ICIjICRU
aXRsZWByYG5gcmBuVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgaG9zdC1sb2NhbCByZWdlbmVyYWJs
ZSBydW50aW1lIGRhdGEgb25seS5gcmBuYHJgbjwhLS0gRG8gbm90IHJlc3RhdGUgaW5oZXJpdGVk
IEFHRU5UUy5tZCBydWxlcy4gLS0+YHJgbiIpDQogICAgfQ0KICAgICRjbGF1ZGVQYXRoID0gSm9p
bi1QYXRoICRQYXRoICdDTEFVREUubWQnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJh
bFBhdGggJGNsYXVkZVBhdGgpKSB7IFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAk
Y2xhdWRlUGF0aCAtVGV4dCAiQEFHRU5UUy5tZGByYG4iKSB9DQogICAgcmV0dXJuICRQYXRoDQp9
DQoNCmZ1bmN0aW9uIEdldC1Ib3N0SWQgew0KICAgICRpZGVudGl0eVRleHQgPSAnezB9fHsxfXx7
Mn0nIC1mIFtFbnZpcm9ubWVudF06Ok1hY2hpbmVOYW1lLCBbRW52aXJvbm1lbnRdOjpVc2VyRG9t
YWluTmFtZSwgW0Vudmlyb25tZW50XTo6VXNlck5hbWUNCiAgICAkYWxnb3JpdGhtID0gW1NlY3Vy
aXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAgIHRyeSB7ICRoYXNoID0gKFtC
aXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkYWxnb3JpdGhtLkNvbXB1dGVIYXNoKFtUZXh0LkVuY29k
aW5nXTo6VVRGOC5HZXRCeXRlcygkaWRlbnRpdHlUZXh0KSkpKS5SZXBsYWNlKCctJywgJycpLlRv
TG93ZXJJbnZhcmlhbnQoKSB9DQogICAgZmluYWxseSB7ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0N
CiAgICByZXR1cm4gJ2hvc3QtJyArICRoYXNoLlN1YnN0cmluZygwLCAxNikNCn0NCg0KZnVuY3Rp
b24gR2V0LUhvc3RSdW50aW1lRW52aXJvbm1lbnQgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3Qs
IFtzd2l0Y2hdJFByZXBhcmUpDQogICAgJGhvc3RJZCA9IEdldC1Ib3N0SWQNCiAgICAkcnVudGlt
ZVJvb3QgPSBKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxydW50aW1lJw0KICAgICRob3N0c1Jvb3Qg
PSBKb2luLVBhdGggJHJ1bnRpbWVSb290ICdob3N0cycNCiAgICAkaG9zdFJvb3QgPSBKb2luLVBh
dGggJGhvc3RzUm9vdCAkaG9zdElkDQogICAgJHRlbXBSb290ID0gSm9pbi1QYXRoICRob3N0Um9v
dCAndGVtcCcNCiAgICAkY2FjaGVSb290ID0gSm9pbi1QYXRoICRob3N0Um9vdCAnY2FjaGUnDQog
ICAgJG5wbUNhY2hlID0gSm9pbi1QYXRoICRjYWNoZVJvb3QgJ25wbScNCiAgICAkcGlwQ2FjaGUg
PSBKb2luLVBhdGggJGNhY2hlUm9vdCAncGlwJw0KICAgICRwbGF5d3JpZ2h0Q2FjaGUgPSBKb2lu
LVBhdGggJGNhY2hlUm9vdCAncGxheXdyaWdodCcNCiAgICBpZiAoJFByZXBhcmUpIHsNCiAgICAg
ICAgW3ZvaWRdKEluaXRpYWxpemUtTGF1bmNoZXJEaXJlY3RvcnkgLVBhdGggJHJ1bnRpbWVSb290
IC1UaXRsZSAnQWdlbnQgcnVudGltZScpDQogICAgICAgIFt2b2lkXShJbml0aWFsaXplLUxhdW5j
aGVyRGlyZWN0b3J5IC1QYXRoICRob3N0c1Jvb3QgLVRpdGxlICdIb3N0IHJ1bnRpbWVzJykNCiAg
ICAgICAgW3ZvaWRdKEluaXRpYWxpemUtTGF1bmNoZXJEaXJlY3RvcnkgLVBhdGggJGhvc3RSb290
IC1UaXRsZSAiJGhvc3RJZCBydW50aW1lIikNCiAgICAgICAgW3ZvaWRdKEluaXRpYWxpemUtTGF1
bmNoZXJEaXJlY3RvcnkgLVBhdGggJHRlbXBSb290IC1UaXRsZSAnSG9zdCB0ZW1wb3JhcnkgZmls
ZXMnKQ0KICAgICAgICBbdm9pZF0oSW5pdGlhbGl6ZS1MYXVuY2hlckRpcmVjdG9yeSAtUGF0aCAk
Y2FjaGVSb290IC1UaXRsZSAnSG9zdCBjYWNoZXMnKQ0KICAgICAgICBbdm9pZF0oSW5pdGlhbGl6
ZS1MYXVuY2hlckRpcmVjdG9yeSAtUGF0aCAkbnBtQ2FjaGUgLVRpdGxlICducG0gY2FjaGUnKQ0K
ICAgICAgICBbdm9pZF0oSW5pdGlhbGl6ZS1MYXVuY2hlckRpcmVjdG9yeSAtUGF0aCAkcGlwQ2Fj
aGUgLVRpdGxlICdwaXAgY2FjaGUnKQ0KICAgICAgICBbdm9pZF0oSW5pdGlhbGl6ZS1MYXVuY2hl
ckRpcmVjdG9yeSAtUGF0aCAkcGxheXdyaWdodENhY2hlIC1UaXRsZSAnUGxheXdyaWdodCBicm93
c2VyIGNhY2hlJykNCiAgICB9DQogICAgZm9yZWFjaCAoJHBhdGggaW4gQCgkdGVtcFJvb3QsICRu
cG1DYWNoZSwgJHBpcENhY2hlLCAkcGxheXdyaWdodENhY2hlKSkgew0KICAgICAgICBbdm9pZF0o
QXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHBhdGgpDQogICAgICAgIGlmICgkUHJlcGFyZSAt
YW5kIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhdGggLVBhdGhUeXBlIENvbnRhaW5l
cikpIHsgdGhyb3cgIkhvc3QgcnVudGltZSBwYXRoIHdhcyBub3QgcHJlcGFyZWQ6ICRwYXRoIiB9
DQogICAgfQ0KICAgIHJldHVybiBbb3JkZXJlZF1Aew0KICAgICAgICBTT1VMX0hPU1RfSUQgPSAk
aG9zdElkDQogICAgICAgIFRFTVAgPSAkdGVtcFJvb3QNCiAgICAgICAgVE1QID0gJHRlbXBSb290
DQogICAgICAgIG5wbV9jb25maWdfY2FjaGUgPSAkbnBtQ2FjaGUNCiAgICAgICAgUElQX0NBQ0hF
X0RJUiA9ICRwaXBDYWNoZQ0KICAgICAgICBQTEFZV1JJR0hUX0JST1dTRVJTX1BBVEggPSAkcGxh
eXdyaWdodENhY2hlDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLUxhc3RMYXVuY2ggew0KICAg
IHBhcmFtKFtzdHJpbmddJFJvb3QsIFtzdHJpbmddJFNvdWxJZCkNCiAgICAkcGF0aCA9IEpvaW4t
UGF0aCAkUm9vdCAnX2FnZW50XHNoYXJlZFxoYW5kb2ZmXGxhc3QtbGF1bmNoLmpzb24nDQogICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhdGggLVBhdGhUeXBlIExlYWYpKSB7
IHJldHVybiAkbnVsbCB9DQogICAgJHJlY29yZCA9IFJlYWQtU291bEpzb24gLVBhdGggJHBhdGgN
CiAgICBpZiAoW3N0cmluZ10kcmVjb3JkLnNvdWxJZCAtY25lICRTb3VsSWQpIHsgdGhyb3cgJ2xh
c3QtbGF1bmNoLmpzb24gYmVsb25ncyB0byBhbm90aGVyIHNvdWwuJyB9DQogICAgaWYgKFtzdHJp
bmddJHJlY29yZC5hZ2VudCAtbm90aW4gQCgnY2xhdWRlJywgJ2NvZGV4JykpIHsgdGhyb3cgJ2xh
c3QtbGF1bmNoLmpzb24gaGFzIGFuIGludmFsaWQgYWdlbnQuJyB9DQogICAgcmV0dXJuICRyZWNv
cmQNCn0NCg0KZnVuY3Rpb24gR2V0LVBlbmRpbmdHZW5lcmF0aW9uIHsNCiAgICBwYXJhbShbc3Ry
aW5nXSRTdGF0ZURpcmVjdG9yeSkNCiAgICAkZ2VuZXJhdGlvblJvb3QgPSBKb2luLVBhdGggJFN0
YXRlRGlyZWN0b3J5ICdnZW5lcmF0aW9ucycNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkZ2VuZXJhdGlvblJvb3QgLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgcmV0dXJuIEAo
KSB9DQogICAgJHBlbmRpbmcgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmlj
Lkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2ggKCRkaXJlY3RvcnkgaW4gR2V0LUNoaWxkSXRlbSAt
TGl0ZXJhbFBhdGggJGdlbmVyYXRpb25Sb290IC1EaXJlY3RvcnkgLUZvcmNlKSB7DQogICAgICAg
IGlmICgoJGRpcmVjdG9yeS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJl
cGFyc2VQb2ludCkgLW5lIDApIHsgY29udGludWUgfQ0KICAgICAgICAkbWFuaWZlc3RQYXRoID0g
Sm9pbi1QYXRoICRkaXJlY3RvcnkuRnVsbE5hbWUgJ2dlbmVyYXRpb24uanNvbicNCiAgICAgICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJG1hbmlmZXN0UGF0aCAtUGF0aFR5cGUg
TGVhZikpIHsgY29udGludWUgfQ0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJG1hbmlmZXN0
ID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkbWFuaWZlc3RQYXRoDQogICAgICAgICAgICBpZiAoQCgn
cGVuZGluZy1maW5hbGl6ZScsICdwZW5kaW5nLWFkYXB0ZXJzLWFuZC1zbW9rZScsICdwZW5kaW5n
LXNlY3JldHMtdmF1bHQnLCAncGVuZGluZy1leHRlcm5hbC1ob21lLW1pZ3JhdGlvbicsICdyZWFk
eScpIC1jb250YWlucyBbc3RyaW5nXSRtYW5pZmVzdC5zdGF0dXMpIHsNCiAgICAgICAgICAgICAg
ICAkcGVuZGluZy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAgICAgICAgIGdl
bmVyYXRpb25JZCA9IFtzdHJpbmddJG1hbmlmZXN0LmdlbmVyYXRpb25JZA0KICAgICAgICAgICAg
ICAgICAgICBzb3VsSWQgPSBbc3RyaW5nXSRtYW5pZmVzdC5zb3VsSWQNCiAgICAgICAgICAgICAg
ICAgICAgc3RhdHVzID0gW3N0cmluZ10kbWFuaWZlc3Quc3RhdHVzDQogICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZWRBdFV0YyA9IFtzdHJpbmddJG1hbmlmZXN0LmNyZWF0ZWRBdFV0Yw0KICAgICAg
ICAgICAgICAgIH0pDQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggeyB9DQogICAgfQ0K
ICAgIHJldHVybiBAKCRwZW5kaW5nIHwgU29ydC1PYmplY3QgY3JlYXRlZEF0VXRjKQ0KfQ0KDQpm
dW5jdGlvbiBHZXQtU2NvcGVPcHRpb25zIHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290KQ0KICAg
ICRyZWdpc3RyeVBhdGggPSBKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxzaGFyZWRcaGFuZG9mZlxz
Y29wZS1yZWdpc3RyeS5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRyZWdpc3RyeVBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHJldHVybiBAKCkgfQ0KICAgICRyZWdp
c3RyeSA9IFJlYWQtU291bEpzb24gLVBhdGggJHJlZ2lzdHJ5UGF0aA0KICAgICRvcHRpb25zID0g
TmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICBm
b3JlYWNoICgkYWxpYXNSZWNvcmQgaW4gQCgkcmVnaXN0cnkuYWxpYXNlcykpIHsNCiAgICAgICAg
JGFsaWFzID0gW3N0cmluZ10kYWxpYXNSZWNvcmQucGF0aA0KICAgICAgICAkcGF0aCA9IGlmICgk
YWxpYXMgLWVxICcuJykgeyAkUm9vdCB9IGVsc2UgeyBKb2luLVBhdGggJFJvb3QgKCRhbGlhcy5S
ZXBsYWNlKCcvJywgJ1wnKSkgfQ0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoQmVsb3cgLVBh
dGggJHBhdGggLVBhcmVudCAkUm9vdCAtQWxsb3dQYXJlbnQpKSB7IGNvbnRpbnVlIH0NCiAgICAg
ICAgJG9wdGlvbnMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBhbGlhcyA9ICRhbGlhczsgc2NvcGVJ
ZCA9IFtzdHJpbmddJGFsaWFzUmVjb3JkLnNjb3BlSWQ7IHBhdGggPSAkcGF0aCB9KQ0KICAgIH0N
CiAgICByZXR1cm4gQCgkb3B0aW9ucyB8IFNvcnQtT2JqZWN0IGFsaWFzKQ0KfQ0KDQpmdW5jdGlv
biBTZWxlY3QtU2NvcGVGcm9tTWVudSB7DQogICAgcGFyYW0oW29iamVjdFtdXSRPcHRpb25zKQ0K
ICAgIGlmICgkT3B0aW9ucy5Db3VudCAtZXEgMCkgeyB0aHJvdyAnTm8gcmVnaXN0ZXJlZCBzY29w
ZSBpcyBhdmFpbGFibGUgZm9yIHRoZSBtZW51LicgfQ0KICAgIGZvciAoJGluZGV4ID0gMDsgJGlu
ZGV4IC1sdCAkT3B0aW9ucy5Db3VudDsgJGluZGV4KyspIHsNCiAgICAgICAgV3JpdGUtSG9zdCAo
J3swfS4gezF9JyAtZiAoJGluZGV4ICsgMSksICRPcHRpb25zWyRpbmRleF0uYWxpYXMpDQogICAg
fQ0KICAgICRjaG9pY2VUZXh0ID0gUmVhZC1Ib3N0ICdDaG9vc2UgYSBzY29wZSBudW1iZXInDQog
ICAgJGNob2ljZSA9IDANCiAgICBpZiAoLW5vdCBbaW50XTo6VHJ5UGFyc2UoJGNob2ljZVRleHQs
IFtyZWZdJGNob2ljZSkgLW9yICRjaG9pY2UgLWx0IDEgLW9yICRjaG9pY2UgLWd0ICRPcHRpb25z
LkNvdW50KSB7DQogICAgICAgIHRocm93ICdUaGUgbWVudSBzZWxlY3Rpb24gaXMgaW52YWxpZC4n
DQogICAgfQ0KICAgIHJldHVybiAkT3B0aW9uc1skY2hvaWNlIC0gMV0NCn0NCg0KZnVuY3Rpb24g
UmVzb2x2ZS1TY29wZSB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kUmVxdWVz
dGVkUGF0aCkNCiAgICAkcGF0aCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFJlcXVlc3RlZFBh
dGgpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aEJlbG93IC1QYXRo
ICRwYXRoIC1QYXJlbnQgJFJvb3QgLUFsbG93UGFyZW50KSkgeyB0aHJvdyAnU2NvcGVQYXRoIG11
c3Qgc3RheSBpbnNpZGUgdGhlIHNvdWwuJyB9DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJHBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgIlNjb3BlUGF0aCBu
b3QgZm91bmQ6ICRwYXRoIiB9DQoNCiAgICAkY3Vyc29yID0gJHBhdGgNCiAgICB3aGlsZSAoJHRy
dWUpIHsNCiAgICAgICAgJG1hcmtlclBhdGggPSBKb2luLVBhdGggJGN1cnNvciAnLnNvdWwtc2Nv
cGUuanNvbicNCiAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJG1hcmtlclBhdGgg
LVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgICAgICRtYXJrZXIgPSBSZWFkLVNvdWxKc29uIC1Q
YXRoICRtYXJrZXJQYXRoDQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IHBh
dGggPSAkY3Vyc29yOyBtYXJrZXJQYXRoID0gJG1hcmtlclBhdGg7IHNjb3BlSWQgPSBbc3RyaW5n
XSRtYXJrZXIuc2NvcGVJZDsgc291bElkID0gW3N0cmluZ10kbWFya2VyLnNvdWxJZCB9DQogICAg
ICAgIH0NCiAgICAgICAgaWYgKCRjdXJzb3IuRXF1YWxzKCRSb290LCBbU3RyaW5nQ29tcGFyaXNv
bl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgeyBicmVhayB9DQogICAgICAgICRwYXJlbnQgPSBbSU8u
RGlyZWN0b3J5XTo6R2V0UGFyZW50KCRjdXJzb3IpDQogICAgICAgIGlmICgkbnVsbCAtZXEgJHBh
cmVudCkgeyBicmVhayB9DQogICAgICAgICRjdXJzb3IgPSAkcGFyZW50LkZ1bGxOYW1lLlRyaW1F
bmQoJ1wnLCAnLycpDQogICAgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9
ICRwYXRoOyBtYXJrZXJQYXRoID0gJG51bGw7IHNjb3BlSWQgPSAkbnVsbDsgc291bElkID0gJG51
bGwgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQtRXhhY3RTZXNzaW9uSWQgew0KICAgIHBhcmFtKFtzdHJp
bmddJFJvb3QsICRTY29wZSwgW3N0cmluZ10kSGFybmVzcykNCiAgICBpZiAoW3N0cmluZ106Oklz
TnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRTY29wZS5zY29wZUlkKSkgeyByZXR1cm4gJG51bGwg
fQ0KICAgICRzZXNzaW9uUGF0aCA9IEpvaW4tUGF0aCAkUm9vdCAoJ19hZ2VudFxzaGFyZWRcaGFu
ZG9mZlwnICsgJFNjb3BlLnNjb3BlSWQgKyAnXG5hdGl2ZS1zZXNzaW9ucy5qc29uJykNCiAgICBp
ZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc2Vzc2lvblBhdGggLVBhdGhUeXBlIExl
YWYpKSB7IHJldHVybiAkbnVsbCB9DQogICAgJHNlc3Npb25zID0gUmVhZC1Tb3VsSnNvbiAtUGF0
aCAkc2Vzc2lvblBhdGgNCiAgICBpZiAoW3N0cmluZ10kc2Vzc2lvbnMuc2NvcGVJZCAtY25lIFtz
dHJpbmddJFNjb3BlLnNjb3BlSWQpIHsgdGhyb3cgJ05hdGl2ZSBzZXNzaW9uIHJlZ2lzdHJ5IGhh
cyBhIGRpZmZlcmVudCBzY29wZUlkLicgfQ0KICAgICRyZWNvcmRQcm9wZXJ0eSA9ICRzZXNzaW9u
cy5QU09iamVjdC5Qcm9wZXJ0aWVzWyRIYXJuZXNzXQ0KICAgIGlmICgkbnVsbCAtZXEgJHJlY29y
ZFByb3BlcnR5IC1vciAkbnVsbCAtZXEgJHJlY29yZFByb3BlcnR5LlZhbHVlKSB7IHJldHVybiAk
bnVsbCB9DQogICAgJHNlc3Npb25JZCA9IFtzdHJpbmddJHJlY29yZFByb3BlcnR5LlZhbHVlLnNl
c3Npb25JZA0KICAgIGlmICgkc2Vzc2lvbklkIC1ub3RtYXRjaCAnXltBLVphLXowLTkuXzotXXs2
LDIwMH0kJykgeyB0aHJvdyAnUmVjb3JkZWQgbmF0aXZlIHNlc3Npb24gSUQgY29udGFpbnMgdW5z
YWZlIG9yIGludmFsaWQgY2hhcmFjdGVycy4nIH0NCiAgICByZXR1cm4gJHNlc3Npb25JZA0KfQ0K
DQpmdW5jdGlvbiBJbnZva2UtUGlubmVkU291cmNlUHJlcGFyYXRpb24gew0KICAgIHBhcmFtKFtz
dHJpbmddJFJvb3QsIFtzdHJpbmddJEdlbmVyYXRpb25JZCkNCiAgICAkZm91bmRhdGlvbiA9IElu
dm9rZS1Gb3VuZGF0aW9uUHJlcGFyYXRpb24gLVJvb3QgJFJvb3QgLU1vZGUgJ1ByZXBhcmUnDQog
ICAgaWYgKCRudWxsIC1lcSAkZm91bmRhdGlvbiAtb3IgLW5vdCBbYm9vbF0kZm91bmRhdGlvbi5t
YWNoaW5lUmVhZHkpIHsgdGhyb3cgJ1JlcXVpcmVkIGZvdW5kYXRpb25zIGFyZSBub3QgcmVhZHk7
IHBpbm5lZCBzb3VyY2VzIHdlcmUgbm90IHByZXBhcmVkLicgfQ0KICAgIGlmICgtbm90IFtzdHJp
bmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRlc3RSb290KSkgew0KICAgICAgICBpZiAoJG51bGwg
LWVxICRUZXN0UHJlcGFyZVNvdXJjZXNBY3Rpb24pIHsgdGhyb3cgJ1RoZSBmaXh0dXJlIGRpZCBu
b3QgcHJvdmlkZSBhIHBpbm5lZC1zb3VyY2UgcHJlcGFyYXRpb24gYWN0aW9uLicgfQ0KICAgICAg
ICByZXR1cm4gJiAkVGVzdFByZXBhcmVTb3VyY2VzQWN0aW9uDQogICAgfQ0KICAgICRwcmVwYXJl
UGF0aCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdwcmVwYXJlLXNvdXJjZXMtdjcucHMxJw0K
ICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwcmVwYXJlUGF0aCAtUGF0aFR5
cGUgTGVhZikpIHsgdGhyb3cgJ3ByZXBhcmUtc291cmNlcy12Ny5wczEgaXMgbWlzc2luZy4nIH0N
CiAgICAkcHJlcGFyZUl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHByZXBhcmVQYXRoIC1G
b3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgoJHByZXBhcmVJdGVtLkF0dHJpYnV0ZXMg
LWJhbmQgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAn
VGhlIHBpbm5lZC1zb3VyY2UgcHJlcGFyZXIgbWF5IG5vdCBiZSBhIHJlcGFyc2UgcG9pbnQuJyB9
DQogICAgJGdlbmVyYXRpb25Mb2NrID0gSm9pbi1QYXRoICRSb290ICgiX2FnZW50XHNldHVwXGdl
bmVyYXRpb25zXCRHZW5lcmF0aW9uSWRcc291cmNlLWxvY2suanNvbiIpDQogICAgJGN1cnJlbnRM
b2NrID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ21hbmlmZXN0c1x2Ny1sb2NrLmpzb24nDQog
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGdlbmVyYXRpb25Mb2NrIC1QYXRo
VHlwZSBMZWFmKSAtb3IgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY3VycmVudExvY2sg
LVBhdGhUeXBlIExlYWYpIC1vcg0KICAgICAgICAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJGdlbmVy
YXRpb25Mb2NrKSAtY25lIChHZXQtU291bFNoYTI1NiAtUGF0aCAkY3VycmVudExvY2spKSB7DQog
ICAgICAgIHRocm93ICdUaGUgcGVuZGluZyBnZW5lcmF0aW9uIGxvY2sgZGlmZmVycyBmcm9tIHRo
ZSBjdXJyZW50IGltbXV0YWJsZSBzb3VyY2UgcHJlcGFyZXIgbG9jay4nDQogICAgfQ0KICAgIHJl
dHVybiAmICRwcmVwYXJlUGF0aCAtUHJlcGFyZVNvdXJjZXMNCn0NCg0KZnVuY3Rpb24gSW52b2tl
LUZvdW5kYXRpb25QcmVwYXJhdGlvbiB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW1ZhbGlk
YXRlU2V0KCdQbGFuJywgJ1ByZXBhcmUnKV1bc3RyaW5nXSRNb2RlID0gJ1ByZXBhcmUnKQ0KICAg
IGlmICgkbnVsbCAtbmUgJHNjcmlwdDpGb3VuZGF0aW9uUHJlcGFyYXRpb25SZXN1bHQgLWFuZCAk
TW9kZSAtZXEgJ1ByZXBhcmUnKSB7IHJldHVybiAkc2NyaXB0OkZvdW5kYXRpb25QcmVwYXJhdGlv
blJlc3VsdCB9DQogICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVz
dFJvb3QpKSB7DQogICAgICAgICRyZXN1bHQgPSBpZiAoJG51bGwgLWVxICRUZXN0UHJlcGFyZUZv
dW5kYXRpb25zQWN0aW9uKSB7DQogICAgICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgbW9kZSA9
ICdwcmVwYXJlJzsgc3RhdHVzID0gJ3JlYWR5JzsgbWFjaGluZVJlYWR5ID0gJHRydWU7IGZhaWx1
cmVzID0gQCgpOyB0ZXN0T25seSA9ICR0cnVlIH0NCiAgICAgICAgfSBlbHNlIHsgJiAkVGVzdFBy
ZXBhcmVGb3VuZGF0aW9uc0FjdGlvbiAkTW9kZSB9DQogICAgfSBlbHNlIHsNCiAgICAgICAgJGZv
dW5kYXRpb25QYXRoID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ3ByZXBhcmUtZm91bmRhdGlv
bnMtdjcucHMxJw0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZm91
bmRhdGlvblBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICdwcmVwYXJlLWZvdW5kYXRpb25z
LXY3LnBzMSBpcyBtaXNzaW5nLicgfQ0KICAgICAgICAkZm91bmRhdGlvbkl0ZW0gPSBHZXQtSXRl
bSAtTGl0ZXJhbFBhdGggJGZvdW5kYXRpb25QYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0K
ICAgICAgICBpZiAoKCRmb3VuZGF0aW9uSXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0
cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgJ1RoZSBmb3VuZGF0aW9uIHBy
ZXBhcmVyIG1heSBub3QgYmUgYSByZXBhcnNlIHBvaW50LicgfQ0KICAgICAgICAkcmVzdWx0ID0g
aWYgKCRNb2RlIC1lcSAnUHJlcGFyZScpIHsgJiAkZm91bmRhdGlvblBhdGggLVByZXBhcmVGb3Vu
ZGF0aW9ucyB9IGVsc2UgeyAmICRmb3VuZGF0aW9uUGF0aCAtUGxhbk9ubHkgfQ0KICAgIH0NCiAg
ICBpZiAoJG51bGwgLWVxICRyZXN1bHQpIHsgdGhyb3cgJ0ZvdW5kYXRpb24gcHJlcGFyYXRpb24g
cmV0dXJuZWQgbm8gc3RhdHVzLicgfQ0KICAgIGlmICgkTW9kZSAtZXEgJ1ByZXBhcmUnKSB7ICRz
Y3JpcHQ6Rm91bmRhdGlvblByZXBhcmF0aW9uUmVzdWx0ID0gJHJlc3VsdCB9DQogICAgcmV0dXJu
ICRyZXN1bHQNCn0NCg0KZnVuY3Rpb24gSW52b2tlLUFkYXB0ZXJBcHBsaWNhdGlvbldpdGhSZWNv
dmVyeSB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kR2VuZXJhdGlvbklkKQ0K
ICAgICRhZGFwdGVyUGF0aCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdhcHBseS1hZGFwdGVy
cy12Ny5wczEnDQogICAgJGFkYXB0ZXJBcmd1bWVudHMgPSBAeyBHZW5lcmF0aW9uSWQgPSAkR2Vu
ZXJhdGlvbklkIH0NCiAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRU
ZXN0Um9vdCkpIHsNCiAgICAgICAgJGFkYXB0ZXJBcmd1bWVudHMuVGVzdFJvb3QgPSAkVGVzdFJv
b3QNCiAgICAgICAgJGFkYXB0ZXJBcmd1bWVudHMuVGVzdE5vTGl2ZUFnZW50cyA9ICR0cnVlDQog
ICAgfQ0KICAgICRhZGFwdGVyUmVzdWx0ID0gJG51bGwNCiAgICAkYWRhcHRlckZhaWx1cmUgPSAk
bnVsbA0KICAgIHRyeSB7ICRhZGFwdGVyUmVzdWx0ID0gJiAkYWRhcHRlclBhdGggQGFkYXB0ZXJB
cmd1bWVudHMgfQ0KICAgIGNhdGNoIHsgJGFkYXB0ZXJGYWlsdXJlID0gW3BzY3VzdG9tb2JqZWN0
XUB7IGV4Y2VwdGlvblR5cGUgPSAkXy5FeGNlcHRpb24uR2V0VHlwZSgpLkZ1bGxOYW1lOyBtZXNz
YWdlID0gJF8uRXhjZXB0aW9uLk1lc3NhZ2UgfSB9DQogICAgJHByZXBhcmF0aW9uQXR0ZW1wdGVk
ID0gJGZhbHNlDQogICAgJHByZXBhcmF0aW9uUmVzdWx0ID0gJG51bGwNCiAgICAkcHJlcGFyYXRp
b25GYWlsdXJlID0gJG51bGwNCiAgICBpZiAoJG51bGwgLWVxICRhZGFwdGVyRmFpbHVyZSAtYW5k
ICRudWxsIC1uZSAkYWRhcHRlclJlc3VsdCAtYW5kIFtzdHJpbmddJGFkYXB0ZXJSZXN1bHQuc3Rh
dHVzIC1lcSAncGVuZGluZy1zb3VyY2UnKSB7DQogICAgICAgICRwcmVwYXJhdGlvbkF0dGVtcHRl
ZCA9ICR0cnVlDQogICAgICAgIHRyeSB7ICRwcmVwYXJhdGlvblJlc3VsdCA9IEludm9rZS1QaW5u
ZWRTb3VyY2VQcmVwYXJhdGlvbiAtUm9vdCAkUm9vdCAtR2VuZXJhdGlvbklkICRHZW5lcmF0aW9u
SWQgfQ0KICAgICAgICBjYXRjaCB7ICRwcmVwYXJhdGlvbkZhaWx1cmUgPSBbcHNjdXN0b21vYmpl
Y3RdQHsgZXhjZXB0aW9uVHlwZSA9ICRfLkV4Y2VwdGlvbi5HZXRUeXBlKCkuRnVsbE5hbWU7IG1l
c3NhZ2UgPSAkXy5FeGNlcHRpb24uTWVzc2FnZSB9IH0NCiAgICAgICAgaWYgKCRudWxsIC1lcSAk
cHJlcGFyYXRpb25GYWlsdXJlKSB7DQogICAgICAgICAgICB0cnkgeyAkYWRhcHRlclJlc3VsdCA9
ICYgJGFkYXB0ZXJQYXRoIEBhZGFwdGVyQXJndW1lbnRzIH0NCiAgICAgICAgICAgIGNhdGNoIHsg
JGFkYXB0ZXJGYWlsdXJlID0gW3BzY3VzdG9tb2JqZWN0XUB7IGV4Y2VwdGlvblR5cGUgPSAkXy5F
eGNlcHRpb24uR2V0VHlwZSgpLkZ1bGxOYW1lOyBtZXNzYWdlID0gJF8uRXhjZXB0aW9uLk1lc3Nh
Z2UgfSB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICB2ZXJpZmllZCA9ICRudWxsIC1lcSAkYWRhcHRlckZhaWx1cmUgLWFuZCAkbnVsbCAt
bmUgJGFkYXB0ZXJSZXN1bHQgLWFuZCBbc3RyaW5nXSRhZGFwdGVyUmVzdWx0LnN0YXR1cyAtZXEg
J2FkYXB0ZXJzLWFuZC1zbW9rZS12ZXJpZmllZCcNCiAgICAgICAgYWRhcHRlclJlc3VsdCA9ICRh
ZGFwdGVyUmVzdWx0DQogICAgICAgIGFkYXB0ZXJGYWlsdXJlID0gJGFkYXB0ZXJGYWlsdXJlDQog
ICAgICAgIHByZXBhcmF0aW9uQXR0ZW1wdGVkID0gJHByZXBhcmF0aW9uQXR0ZW1wdGVkDQogICAg
ICAgIHByZXBhcmF0aW9uUmVzdWx0ID0gJHByZXBhcmF0aW9uUmVzdWx0DQogICAgICAgIHByZXBh
cmF0aW9uRmFpbHVyZSA9ICRwcmVwYXJhdGlvbkZhaWx1cmUNCiAgICB9DQp9DQoNCmZ1bmN0aW9u
IEdldC1FbnZLZXlOYW1lcyB7DQogICAgcGFyYW0oW3N0cmluZ1tdXSRQYXRocykNCiAgICAkbmFt
ZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbc3RyaW5nXQ0K
ICAgIGZvcmVhY2ggKCRwYXRoIGluIEAoJFBhdGhzIHwgV2hlcmUtT2JqZWN0IHsgLW5vdCBbc3Ry
aW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRfKSB9IHwgU2VsZWN0LU9iamVjdCAtVW5pcXVlKSkg
ew0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0aCAtUGF0aFR5
cGUgTGVhZikpIHsgY29udGludWUgfQ0KICAgICAgICBmb3JlYWNoICgkbGluZSBpbiBbSU8uRmls
ZV06OlJlYWRBbGxMaW5lcygkcGF0aCkpIHsNCiAgICAgICAgICAgIGlmICgkbGluZSAtbWF0Y2gg
J15ccyooPzpleHBvcnRccyspPyhbQS1aYS16X11bQS1aYS16MC05X10qKVxzKj0nKSB7ICRuYW1l
cy5BZGQoJG1hdGNoZXNbMV0pIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gQCgkbmFt
ZXMgfCBTb3J0LU9iamVjdCAtVW5pcXVlKQ0KfQ0KDQpmdW5jdGlvbiBFbnN1cmUtTGF1bmNoU2Vj
cmV0UG9saWN5IHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290LCBbc3RyaW5nW11dJFNvdXJjZUVu
dlBhdGhzKQ0KICAgICRwb2xpY3lSb290ID0gSW5pdGlhbGl6ZS1MYXVuY2hlckRpcmVjdG9yeSAt
UGF0aCAoSm9pbi1QYXRoICRSb290ICdfYWdlbnRcc2hhcmVkXHNlY3JldHMnKSAtVGl0bGUgJ1Bv
cnRhYmxlIHNlY3JldCBsYXVuY2ggcG9saWN5Jw0KICAgICRwb2xpY3lQYXRoID0gSm9pbi1QYXRo
ICRwb2xpY3lSb290ICdsYXVuY2gtYWxsb3dsaXN0Lmpzb24nDQogICAgaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJHBvbGljeVBhdGggLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAg
ICRhdmFpbGFibGUgPSBAKEdldC1FbnZLZXlOYW1lcyAtUGF0aHMgJFNvdXJjZUVudlBhdGhzKQ0K
ICAgICAgICAkZml4ZWRDYW5kaWRhdGVzID0gQCgnT1BFTkFJX0FQSV9LRVknLCAnR09PR0xFX0FQ
UExJQ0FUSU9OX0NSRURFTlRJQUxTJykNCiAgICAgICAgJHNlbGVjdGVkID0gQCgkZml4ZWRDYW5k
aWRhdGVzIHwgV2hlcmUtT2JqZWN0IHsgJGF2YWlsYWJsZSAtY29udGFpbnMgJF8gfSkNCiAgICAg
ICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRwb2xpY3lQYXRoIC1WYWx1ZSAo
W29yZGVyZWRdQHsNCiAgICAgICAgICAgIHNjaGVtYVZlcnNpb24gPSAxDQogICAgICAgICAgICBj
bGF1ZGUgPSBbb3JkZXJlZF1AeyBpbmplY3RLZXlzID0gJHNlbGVjdGVkOyByZXN0b3JlRmlsZUFs
aWFzZXMgPSBAKCkgfQ0KICAgICAgICAgICAgY29kZXggPSBbb3JkZXJlZF1AeyBpbmplY3RLZXlz
ID0gJHNlbGVjdGVkOyByZXN0b3JlRmlsZUFsaWFzZXMgPSBAKCkgfQ0KICAgICAgICAgICAgZm9y
YmlkZGVuSW5qZWN0S2V5cyA9IEAoJ0FOVEhST1BJQ19BUElfS0VZJywgJ0FOVEhST1BJQ19BVVRI
X1RPS0VOJykNCiAgICAgICAgfSkpDQogICAgfQ0KICAgICRwb2xpY3kgPSBSZWFkLVNvdWxKc29u
IC1QYXRoICRwb2xpY3lQYXRoDQogICAgaWYgKFtpbnRdJHBvbGljeS5zY2hlbWFWZXJzaW9uIC1u
ZSAxKSB7IHRocm93ICdVbnN1cHBvcnRlZCBzZWNyZXQgbGF1bmNoIGFsbG93bGlzdCBzY2hlbWEu
JyB9DQogICAgZm9yZWFjaCAoJGhhcm5lc3MgaW4gQCgnY2xhdWRlJywgJ2NvZGV4JykpIHsNCiAg
ICAgICAgJGVudHJ5ID0gJHBvbGljeS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRoYXJuZXNzXQ0KICAg
ICAgICBpZiAoJG51bGwgLWVxICRlbnRyeSkgeyB0aHJvdyAiU2VjcmV0IGxhdW5jaCBhbGxvd2xp
c3QgaGFzIG5vICRoYXJuZXNzIGVudHJ5LiIgfQ0KICAgICAgICBmb3JlYWNoICgkbmFtZSBpbiBA
KCRlbnRyeS5WYWx1ZS5pbmplY3RLZXlzKSkgew0KICAgICAgICAgICAgaWYgKFtzdHJpbmddJG5h
bWUgLW5vdG1hdGNoICdeW0EtWmEtel9dW0EtWmEtejAtOV9dKiQnIC1vciBbc3RyaW5nXSRuYW1l
IC1pbiBAKCdBTlRIUk9QSUNfQVBJX0tFWScsICdBTlRIUk9QSUNfQVVUSF9UT0tFTicpKSB7DQog
ICAgICAgICAgICAgICAgdGhyb3cgJ1NlY3JldCBsYXVuY2ggYWxsb3dsaXN0IGNvbnRhaW5zIGEg
Zm9yYmlkZGVuIG9yIGludmFsaWQga2V5IG5hbWUuJw0KICAgICAgICAgICAgfQ0KICAgICAgICB9
DQogICAgICAgIGZvcmVhY2ggKCRhbGlhcyBpbiBAKCRlbnRyeS5WYWx1ZS5yZXN0b3JlRmlsZUFs
aWFzZXMpKSB7DQogICAgICAgICAgICBpZiAoW3N0cmluZ10kYWxpYXMgLW5vdG1hdGNoICdeW0Et
WmEtejAtOS5fLy1dezEsMjQwfSQnIC1vciBbc3RyaW5nXSRhbGlhcyAtbWF0Y2ggJyhefC8pXC5c
LigvfCQpJykgeyB0aHJvdyAnU2VjcmV0IGxhdW5jaCBhbGxvd2xpc3QgY29udGFpbnMgYW4gdW5z
YWZlIGZpbGUgYWxpYXMuJyB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIFtwc2N1c3Rv
bW9iamVjdF1AeyBwYXRoID0gJHBvbGljeVBhdGg7IHBvbGljeSA9ICRwb2xpY3kgfQ0KfQ0KDQpm
dW5jdGlvbiBHZXQtVmF1bHRSZWFkaW5lc3Mgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQog
ICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7DQog
ICAgICAgIGlmICgkbnVsbCAtbmUgJFRlc3RWYXVsdEFjdGlvbikgeyByZXR1cm4gJiAkVGVzdFZh
dWx0QWN0aW9uICdTdGF0dXMnIH0NCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBp
bml0aWFsaXplZCA9ICR0cnVlOyBjdXJyZW50SG9zdERwYXBpID0gJHRydWU7IHJlYWR5ID0gJHRy
dWU7IHRlc3RPbmx5ID0gJHRydWUgfQ0KICAgIH0NCiAgICAkdmF1bHRQYXRoID0gSm9pbi1QYXRo
ICRQU1NjcmlwdFJvb3QgJ3NlY3JldHMtdmF1bHQucHMxJw0KICAgIGlmICgtbm90IChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICR2YXVsdFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHJldHVybiBbcHNj
dXN0b21vYmplY3RdQHsgaW5pdGlhbGl6ZWQgPSAkZmFsc2U7IGN1cnJlbnRIb3N0RHBhcGkgPSAk
ZmFsc2U7IHJlYWR5ID0gJGZhbHNlOyByZWFzb24gPSAndmF1bHQtc2NyaXB0LW1pc3NpbmcnIH0g
fQ0KICAgICRzdGF0dXMgPSAmICR2YXVsdFBhdGggLUFjdGlvbiBTdGF0dXMgLVNvdWxSb290ICRS
b290DQogICAgJHN0YXR1cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O
YW1lIHJlYWR5IC1WYWx1ZSAoW2Jvb2xdJHN0YXR1cy5pbml0aWFsaXplZCAtYW5kIFtib29sXSRz
dGF0dXMuY3VycmVudEhvc3REcGFwaSkgLUZvcmNlDQogICAgcmV0dXJuICRzdGF0dXMNCn0NCg0K
ZnVuY3Rpb24gR2V0LUNyZWRlbnRpYWxGaWxlQ2FuZGlkYXRlTm9Gb2xsb3cgew0KICAgIHBhcmFt
KFtzdHJpbmdbXV0kUm9vdHMsIFtzdHJpbmdbXV0kRXhjbHVkZWRSb290cykNCiAgICAkY2FuZGlk
YXRlcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmdd
DQogICAgJGV4Y2x1ZGVkID0gQCgkRXhjbHVkZWRSb290cyB8IFdoZXJlLU9iamVjdCB7IC1ub3Qg
W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkXykgfSB8IEZvckVhY2gtT2JqZWN0IHsgW0lP
LlBhdGhdOjpHZXRGdWxsUGF0aCgkXykuVHJpbUVuZCgnXCcsICcvJykgfSkNCiAgICAkcGVuZGlu
Z0RpcmVjdG9yaWVzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5TdGFj
a1tzdHJpbmddDQogICAgZm9yZWFjaCAoJHJvb3RQYXRoIGluIEAoJFJvb3RzIHwgV2hlcmUtT2Jq
ZWN0IHsgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRfKSB9IHwgU2VsZWN0LU9i
amVjdCAtVW5pcXVlKSkgew0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkcm9vdFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgY29udGludWUgfQ0KICAgICAgICAk
cm9vdEl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHJvb3RQYXRoIC1Gb3JjZSAtRXJyb3JB
Y3Rpb24gU3RvcA0KICAgICAgICBpZiAoKCRyb290SXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5G
aWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgY29udGludWUgfQ0KICAgICAg
ICAkcGVuZGluZ0RpcmVjdG9yaWVzLlB1c2goJHJvb3RJdGVtLkZ1bGxOYW1lKQ0KICAgIH0NCiAg
ICB3aGlsZSAoJHBlbmRpbmdEaXJlY3Rvcmllcy5Db3VudCAtZ3QgMCkgew0KICAgICAgICAkZGly
ZWN0b3J5ID0gJHBlbmRpbmdEaXJlY3Rvcmllcy5Qb3AoKQ0KICAgICAgICBmb3JlYWNoICgkaXRl
bSBpbiBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkZGlyZWN0b3J5IC1Gb3JjZSAtRXJyb3JB
Y3Rpb24gU3RvcCkgew0KICAgICAgICAgICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJ
Ty5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgY29udGludWUgfQ0KICAg
ICAgICAgICAgJGZ1bGxQYXRoID0gW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgkaXRlbS5GdWxsTmFt
ZSkuVHJpbUVuZCgnXCcsICcvJykNCiAgICAgICAgICAgICRpc0V4Y2x1ZGVkID0gQCgkZXhjbHVk
ZWQgfCBXaGVyZS1PYmplY3Qgew0KICAgICAgICAgICAgICAgICRmdWxsUGF0aC5FcXVhbHMoJF8s
IFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpIC1vcg0KICAgICAgICAgICAg
ICAgICRmdWxsUGF0aC5TdGFydHNXaXRoKCRfICsgW0lPLlBhdGhdOjpEaXJlY3RvcnlTZXBhcmF0
b3JDaGFyLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKQ0KICAgICAgICAg
ICAgfSkuQ291bnQgLWd0IDANCiAgICAgICAgICAgIGlmICgkaXNFeGNsdWRlZCkgeyBjb250aW51
ZSB9DQogICAgICAgICAgICBpZiAoJGl0ZW0uUFNJc0NvbnRhaW5lcikgeyAkcGVuZGluZ0RpcmVj
dG9yaWVzLlB1c2goJGl0ZW0uRnVsbE5hbWUpOyBjb250aW51ZSB9DQogICAgICAgICAgICBpZiAo
W2xvbmddJGl0ZW0uTGVuZ3RoIC1sZSAxNjc3NzIxNiAtYW5kICRpdGVtLk5hbWUgLW1hdGNoICco
P2kpKF5cLmVudig/OlwufCQpfGF1dGh8b2F1dGh8dG9rZW58Y3JlZGVudGlhbHxzZWNyZXR8a2V5
KScpIHsNCiAgICAgICAgICAgICAgICAkY2FuZGlkYXRlcy5BZGQoJGl0ZW0uRnVsbE5hbWUpDQog
ICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJGNhbmRpZGF0ZXMg
fCBTb3J0LU9iamVjdCAtVW5pcXVlKQ0KfQ0KDQpmdW5jdGlvbiBFbnN1cmUtVmF1bHRSZWFkeSB7
DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kR2VuZXJhdGlvbklkKQ0KICAgIGlm
ICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRlc3RSb290KSkgew0KICAgICAg
ICBpZiAoJG51bGwgLW5lICRUZXN0VmF1bHRBY3Rpb24pIHsgcmV0dXJuICYgJFRlc3RWYXVsdEFj
dGlvbiAnRW5zdXJlJyB9DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgaW5pdGlh
bGl6ZWQgPSAkdHJ1ZTsgY3VycmVudEhvc3REcGFwaSA9ICR0cnVlOyByZWFkeSA9ICR0cnVlOyB0
ZXN0T25seSA9ICR0cnVlIH0NCiAgICB9DQogICAgJHZhdWx0UGF0aCA9IEpvaW4tUGF0aCAkUFNT
Y3JpcHRSb290ICdzZWNyZXRzLXZhdWx0LnBzMScNCiAgICAkc3RhdHVzID0gR2V0LVZhdWx0UmVh
ZGluZXNzIC1Sb290ICRSb290DQogICAgJGludGVybmFsRW52ID0gSm9pbi1QYXRoICRSb290ICdf
YWdlbnRcY2xhdWRlXHNlY3JldHNcLmVudicNCiAgICAkcHJvZmlsZVBhdGggPSBbRW52aXJvbm1l
bnRdOjpHZXRGb2xkZXJQYXRoKFtFbnZpcm9ubWVudCtTcGVjaWFsRm9sZGVyXTo6VXNlclByb2Zp
bGUpDQogICAgJGxlZ2FjeUVudiA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRw
cm9maWxlUGF0aCkpIHsgJG51bGwgfSBlbHNlIHsgSm9pbi1QYXRoICRwcm9maWxlUGF0aCAnLmNs
YXVkZVxzZWNyZXRzXC5lbnYnIH0NCiAgICAkZW52Q2FuZGlkYXRlcyA9IEAoQCgkaW50ZXJuYWxF
bnYsICRsZWdhY3lFbnYpIHwgV2hlcmUtT2JqZWN0IHsgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JX
aGl0ZVNwYWNlKCRfKSAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRfIC1QYXRoVHlwZSBM
ZWFmKSB9IHwgU2VsZWN0LU9iamVjdCAtVW5pcXVlKQ0KICAgIGlmICgtbm90IFtib29sXSRzdGF0
dXMuaW5pdGlhbGl6ZWQpIHsNCiAgICAgICAgW3ZvaWRdKEludm9rZS1QaW5uZWRTb3VyY2VQcmVw
YXJhdGlvbiAtUm9vdCAkUm9vdCAtR2VuZXJhdGlvbklkICRHZW5lcmF0aW9uSWQpDQogICAgICAg
ICRhY3RpdmVFbnYgPSBAKCRlbnZDYW5kaWRhdGVzIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMSkN
CiAgICAgICAgJGxlZ2FjeUNhbmRpZGF0ZXMgPSBAKCRlbnZDYW5kaWRhdGVzIHwgU2VsZWN0LU9i
amVjdCAtU2tpcCAxIC1GaXJzdCAxKQ0KICAgICAgICAkY3JlZGVudGlhbFJvb3RzID0gTmV3LU9i
amVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAgICAgJGNy
ZWRlbnRpYWxSb290cy5BZGQoKEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XGNsYXVkZScpKQ0KICAg
ICAgICAkY3JlZGVudGlhbFJvb3RzLkFkZCgoSm9pbi1QYXRoICRSb290ICdfYWdlbnRcY29kZXgn
KSkNCiAgICAgICAgJGV4Y2x1ZGVkQ3JlZGVudGlhbFJvb3RzID0gTmV3LU9iamVjdCBTeXN0ZW0u
Q29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAgICAgaWYgKC1ub3QgW3N0cmlu
Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkcHJvZmlsZVBhdGgpKSB7DQogICAgICAgICAgICAkY3Jl
ZGVudGlhbFJvb3RzLkFkZCgoSm9pbi1QYXRoICRwcm9maWxlUGF0aCAnLmNsYXVkZScpKQ0KICAg
ICAgICAgICAgJGNyZWRlbnRpYWxSb290cy5BZGQoKEpvaW4tUGF0aCAkcHJvZmlsZVBhdGggJy5j
b2RleCcpKQ0KICAgICAgICAgICAgJHdvcmtzcGFjZU1jcCA9IEpvaW4tUGF0aCAkcHJvZmlsZVBh
dGggJy53b3Jrc3BhY2UtbWNwJw0KICAgICAgICAgICAgJGNyZWRlbnRpYWxSb290cy5BZGQoJHdv
cmtzcGFjZU1jcCkNCiAgICAgICAgICAgICRleGNsdWRlZENyZWRlbnRpYWxSb290cy5BZGQoKEpv
aW4tUGF0aCAkd29ya3NwYWNlTWNwICdhdHRhY2htZW50cycpKQ0KICAgICAgICB9DQogICAgICAg
ICRjcmVkZW50aWFsRmlsZXMgPSBAKEdldC1DcmVkZW50aWFsRmlsZUNhbmRpZGF0ZU5vRm9sbG93
IC1Sb290cyBAKCRjcmVkZW50aWFsUm9vdHMuVG9BcnJheSgpKSAtRXhjbHVkZWRSb290cyBAKCRl
eGNsdWRlZENyZWRlbnRpYWxSb290cy5Ub0FycmF5KCkpIHwNCiAgICAgICAgICAgIFdoZXJlLU9i
amVjdCB7ICRlbnZDYW5kaWRhdGVzIC1ub3Rjb250YWlucyAkXyB9IHwgU29ydC1PYmplY3QgLVVu
aXF1ZSkNCiAgICAgICAgJGluaXRpYWxpemVBcmd1bWVudHMgPSBAeyBBY3Rpb24gPSAnSW5pdGlh
bGl6ZSc7IFNvdWxSb290ID0gJFJvb3Q7IENyZWRlbnRpYWxGaWxlUGF0aCA9ICRjcmVkZW50aWFs
RmlsZXMgfQ0KICAgICAgICBpZiAoJGFjdGl2ZUVudi5Db3VudCAtZXEgMSkgeyAkaW5pdGlhbGl6
ZUFyZ3VtZW50cy5FbnZQYXRoID0gJGFjdGl2ZUVudlswXSB9DQogICAgICAgIGlmICgkbGVnYWN5
Q2FuZGlkYXRlcy5Db3VudCAtZXEgMSkgeyAkaW5pdGlhbGl6ZUFyZ3VtZW50cy5MZWdhY3lFbnZQ
YXRoID0gJGxlZ2FjeUNhbmRpZGF0ZXNbMF0gfQ0KICAgICAgICBbdm9pZF0oJiAkdmF1bHRQYXRo
IEBpbml0aWFsaXplQXJndW1lbnRzKQ0KICAgICAgICAkc3RhdHVzID0gR2V0LVZhdWx0UmVhZGlu
ZXNzIC1Sb290ICRSb290DQogICAgfQ0KICAgIGlmIChbYm9vbF0kc3RhdHVzLmluaXRpYWxpemVk
IC1hbmQgLW5vdCBbYm9vbF0kc3RhdHVzLmN1cnJlbnRIb3N0RHBhcGkpIHsNCiAgICAgICAgW3Zv
aWRdKCYgJHZhdWx0UGF0aCAtQWN0aW9uIFVubG9jayAtU291bFJvb3QgJFJvb3QgLVVzZVJlY292
ZXJ5UGhyYXNlIC1Ob0luamVjdCkNCiAgICAgICAgJHN0YXR1cyA9IEdldC1WYXVsdFJlYWRpbmVz
cyAtUm9vdCAkUm9vdA0KICAgIH0NCiAgICBbdm9pZF0oRW5zdXJlLUxhdW5jaFNlY3JldFBvbGlj
eSAtUm9vdCAkUm9vdCAtU291cmNlRW52UGF0aHMgJGVudkNhbmRpZGF0ZXMpDQogICAgJHN0YXR1
cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIHJlYWR5IC1WYWx1
ZSAoW2Jvb2xdJHN0YXR1cy5pbml0aWFsaXplZCAtYW5kIFtib29sXSRzdGF0dXMuY3VycmVudEhv
c3REcGFwaSkgLUZvcmNlDQogICAgcmV0dXJuICRzdGF0dXMNCn0NCg0KZnVuY3Rpb24gR2V0LVNl
Y3JldFBvbGljeVNvdXJjZVBhdGhzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290KQ0KICAgICRw
YXRocyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmdd
DQogICAgJGludGVybmFsID0gSm9pbi1QYXRoICRSb290ICdfYWdlbnRcY2xhdWRlXHNlY3JldHNc
LmVudicNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkaW50ZXJuYWwgLVBhdGhUeXBl
IExlYWYpIHsgJHBhdGhzLkFkZCgkaW50ZXJuYWwpIH0NCiAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7DQogICAgICAgICRwcm9maWxlUGF0aCA9IFtFbnZp
cm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmlyb25tZW50K1NwZWNpYWxGb2xkZXJdOjpVc2Vy
UHJvZmlsZSkNCiAgICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgk
cHJvZmlsZVBhdGgpKSB7DQogICAgICAgICAgICAkbGVnYWN5ID0gSm9pbi1QYXRoICRwcm9maWxl
UGF0aCAnLmNsYXVkZVxzZWNyZXRzXC5lbnYnDQogICAgICAgICAgICBpZiAoVGVzdC1QYXRoIC1M
aXRlcmFsUGF0aCAkbGVnYWN5IC1QYXRoVHlwZSBMZWFmKSB7ICRwYXRocy5BZGQoJGxlZ2FjeSkg
fQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBAKCRwYXRocyB8IFNvcnQtT2JqZWN0IC1V
bmlxdWUpDQp9DQoNCmZ1bmN0aW9uIEdldC1MYXVuY2hTZWNyZXRTZWxlY3Rpb24gew0KICAgIHBh
cmFtKFtzdHJpbmddJFJvb3QsIFtzdHJpbmddJEhhcm5lc3MsIFtzd2l0Y2hdJFByZXBhcmUpDQog
ICAgJHBvbGljeVBhdGggPSBKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxzaGFyZWRcc2VjcmV0c1xs
YXVuY2gtYWxsb3dsaXN0Lmpzb24nDQogICAgJHBvbGljeUluZm8gPSBpZiAoJFByZXBhcmUpIHsN
CiAgICAgICAgRW5zdXJlLUxhdW5jaFNlY3JldFBvbGljeSAtUm9vdCAkUm9vdCAtU291cmNlRW52
UGF0aHMgKEdldC1TZWNyZXRQb2xpY3lTb3VyY2VQYXRocyAtUm9vdCAkUm9vdCkNCiAgICB9IGVs
c2VpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcG9saWN5UGF0aCAtUGF0aFR5cGUgTGVhZikg
ew0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9ICRwb2xpY3lQYXRoOyBwb2xpY3kg
PSBSZWFkLVNvdWxKc29uIC1QYXRoICRwb2xpY3lQYXRoIH0NCiAgICB9IGVsc2UgeyAkbnVsbCB9
DQogICAgaWYgKCRudWxsIC1lcSAkcG9saWN5SW5mbykgeyByZXR1cm4gW3BzY3VzdG9tb2JqZWN0
XUB7IGluamVjdEtleXMgPSBAKCk7IHJlc3RvcmVGaWxlQWxpYXNlcyA9IEAoKTsgcG9saWN5UmVh
ZHkgPSAkZmFsc2UgfSB9DQogICAgJGVudHJ5ID0gJHBvbGljeUluZm8ucG9saWN5LlBTT2JqZWN0
LlByb3BlcnRpZXNbJEhhcm5lc3NdDQogICAgaWYgKCRudWxsIC1lcSAkZW50cnkpIHsgdGhyb3cg
IlNlY3JldCBsYXVuY2ggYWxsb3dsaXN0IGhhcyBubyAkSGFybmVzcyBlbnRyeS4iIH0NCiAgICBy
ZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIGluamVjdEtleXMgPSBAKCRlbnRyeS5W
YWx1ZS5pbmplY3RLZXlzIHwgU29ydC1PYmplY3QgLVVuaXF1ZSkNCiAgICAgICAgcmVzdG9yZUZp
bGVBbGlhc2VzID0gQCgkZW50cnkuVmFsdWUucmVzdG9yZUZpbGVBbGlhc2VzIHwgU29ydC1PYmpl
Y3QgLVVuaXF1ZSkNCiAgICAgICAgcG9saWN5UmVhZHkgPSAkdHJ1ZQ0KICAgIH0NCn0NCg0KJHJv
b3QgPSBSZXNvbHZlLUxhdW5jaGVyUm9vdA0KJHN0YXRlRGlyZWN0b3J5ID0gSm9pbi1QYXRoICRy
b290ICdfYWdlbnRcc2V0dXAnDQokbW9kdWxlQXJndW1lbnRzID0gR2V0LUxhdW5jaGVyTW9kdWxl
QXJndW1lbnRzIC1TdGF0ZURpcmVjdG9yeSAkc3RhdGVEaXJlY3RvcnkNCiRzb3VsU3RhdGUgPSBS
ZWFkLVNvdWxKc29uIC1QYXRoIChKb2luLVBhdGggJHJvb3QgJ3NvdWwtc3RhdGUuanNvbicpDQpB
c3NlcnQtQWdlbnRIb21lTm90U3BsaXQgLVJvb3QgJHJvb3QNCiRsYXN0TGF1bmNoID0gUmVhZC1M
YXN0TGF1bmNoIC1Sb290ICRyb290IC1Tb3VsSWQgKFtzdHJpbmddJHNvdWxTdGF0ZS5zb3VsSWQp
DQppZiAoLW5vdCAkYWdlbnRXYXNFeHBsaWNpdCkgew0KICAgICRBZ2VudCA9IGlmICgkbnVsbCAt
bmUgJGxhc3RMYXVuY2gpIHsgW3N0cmluZ10kbGFzdExhdW5jaC5hZ2VudCB9IGVsc2UgeyAnY2xh
dWRlJyB9DQp9DQppZiAoLW5vdCAkc2NvcGVXYXNFeHBsaWNpdCAtYW5kIC1ub3QgJE1lbnUgLWFu
ZCAkbnVsbCAtbmUgJGxhc3RMYXVuY2gpIHsNCiAgICAkbGFzdFNjb3BlUHJvcGVydHkgPSAkbGFz
dExhdW5jaC5QU09iamVjdC5Qcm9wZXJ0aWVzWydzY29wZVJlbGF0aXZlUGF0aCddDQogICAgaWYg
KCRudWxsIC1uZSAkbGFzdFNjb3BlUHJvcGVydHkgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxP
cldoaXRlU3BhY2UoW3N0cmluZ10kbGFzdFNjb3BlUHJvcGVydHkuVmFsdWUpKSB7DQogICAgICAg
ICRTY29wZVBhdGggPSBpZiAoW3N0cmluZ10kbGFzdFNjb3BlUHJvcGVydHkuVmFsdWUgLWVxICcu
JykgeyAkcm9vdCB9IGVsc2UgeyBKb2luLVBhdGggJHJvb3QgKFtzdHJpbmddJGxhc3RTY29wZVBy
b3BlcnR5LlZhbHVlKS5SZXBsYWNlKCcvJywgJ1wnKSB9DQogICAgfQ0KfQ0KDQokYWN0aXZlID0g
R2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIEBtb2R1bGVBcmd1bWVudHMNCiRwZW5kaW5nID0gQChH
ZXQtUGVuZGluZ0dlbmVyYXRpb24gLVN0YXRlRGlyZWN0b3J5ICRzdGF0ZURpcmVjdG9yeSB8IFdo
ZXJlLU9iamVjdCB7DQogICAgJG51bGwgLWVxICRhY3RpdmUgLW9yIFtzdHJpbmddJF8uZ2VuZXJh
dGlvbklkIC1jbmUgW3N0cmluZ10kYWN0aXZlLmdlbmVyYXRpb25JZA0KfSkNCmlmICgkcGVuZGlu
Zy5Db3VudCAtZ3QgMSkgeyB0aHJvdyAnTW9yZSB0aGFuIG9uZSBnZW5lcmF0aW9uIGlzIHBlbmRp
bmcgZmluYWxpemF0aW9uOyBleHBsaWNpdCByZWNvdmVyeSBpcyByZXF1aXJlZC4nIH0NCmlmICgk
cGVuZGluZy5Db3VudCAtZXEgMSkgew0KICAgIGlmIChbc3RyaW5nXSRwZW5kaW5nWzBdLnNvdWxJ
ZCAtY25lIFtzdHJpbmddJHNvdWxTdGF0ZS5zb3VsSWQpIHsgdGhyb3cgJ1BlbmRpbmcgZ2VuZXJh
dGlvbiBiZWxvbmdzIHRvIGFub3RoZXIgc291bC4nIH0NCiAgICBpZiAoJERyeVJ1bikgew0KICAg
ICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICBtb2RlID0gJ3BlbmRp
bmctZmluYWxpemVyJw0KICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gJHBlbmRpbmdbMF0uZ2Vu
ZXJhdGlvbklkDQogICAgICAgICAgICBnZW5lcmF0aW9uU3RhdHVzID0gJHBlbmRpbmdbMF0uc3Rh
dHVzDQogICAgICAgICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgICAgIGFnZW50
V2lsbExhdW5jaCA9ICRmYWxzZQ0KICAgICAgICAgICAgZXhwbGFuYXRpb24gPSAnRmluYWxpemF0
aW9uLCBhZGFwdGVyIGFwcGxpY2F0aW9uLCBvciByZXF1aXJlZCBzbW9rZSBldmlkZW5jZSBpcyBz
dGlsbCBwZW5kaW5nLicNCiAgICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICAgICRmb3VuZGF0
aW9uUmVzdWx0ID0gJG51bGwNCiAgICAgICAgJGZvdW5kYXRpb25GYWlsdXJlID0gJG51bGwNCiAg
ICAgICAgdHJ5IHsgJGZvdW5kYXRpb25SZXN1bHQgPSBJbnZva2UtRm91bmRhdGlvblByZXBhcmF0
aW9uIC1Sb290ICRyb290IC1Nb2RlICdQcmVwYXJlJyB9DQogICAgICAgIGNhdGNoIHsgJGZvdW5k
YXRpb25GYWlsdXJlID0gW3BzY3VzdG9tb2JqZWN0XUB7IGV4Y2VwdGlvblR5cGUgPSAkXy5FeGNl
cHRpb24uR2V0VHlwZSgpLkZ1bGxOYW1lOyBtZXNzYWdlID0gJF8uRXhjZXB0aW9uLk1lc3NhZ2Ug
fSB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgJGZvdW5kYXRpb25GYWlsdXJlIC1vciAkbnVsbCAt
ZXEgJGZvdW5kYXRpb25SZXN1bHQgLW9yIC1ub3QgW2Jvb2xdJGZvdW5kYXRpb25SZXN1bHQubWFj
aGluZVJlYWR5KSB7DQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAg
ICAgICAgICAgICAgbW9kZSA9ICdwZW5kaW5nLWZvdW5kYXRpb25zJw0KICAgICAgICAgICAgICAg
IGdlbmVyYXRpb25JZCA9ICRwZW5kaW5nWzBdLmdlbmVyYXRpb25JZA0KICAgICAgICAgICAgICAg
IG1hY2hpbmVSZWFkeSA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGFnZW50V2lsbExhdW5jaCA9
ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gJ1JlcXVpcmVkIGZpeGVkIGZv
dW5kYXRpb24gdG9vbHMgYXJlIG5vdCByZWFkeSwgc28gc291cmNlcywgYWRhcHRlcnMsIGZpbmFs
aXphdGlvbiwgYW5kIHRoZSBhZ2VudCB3ZXJlIG5vdCBzdGFydGVkLicNCiAgICAgICAgICAgICAg
ICBmb3VuZGF0aW9uUmVzdWx0ID0gJGZvdW5kYXRpb25SZXN1bHQNCiAgICAgICAgICAgICAgICBm
b3VuZGF0aW9uRmFpbHVyZSA9ICRmb3VuZGF0aW9uRmFpbHVyZQ0KICAgICAgICAgICAgfQ0KICAg
ICAgICB9DQoNCiAgICAgICAgJGZpbmFsaXplclBhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0Um9v
dCAnZmluYWxpemUtdjcucHMxJw0KICAgICAgICAkZmluYWxpemVyQXJndW1lbnRzID0gQHsgR2Vu
ZXJhdGlvbklkID0gJHBlbmRpbmdbMF0uZ2VuZXJhdGlvbklkIH0NCiAgICAgICAgaWYgKC1ub3Qg
W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7DQogICAgICAgICAgICAk
ZmluYWxpemVyQXJndW1lbnRzLlRlc3RSb290ID0gJFRlc3RSb290DQogICAgICAgICAgICAkZmlu
YWxpemVyQXJndW1lbnRzLlRlc3ROb0xpdmVBZ2VudHMgPSAkdHJ1ZQ0KICAgICAgICB9DQogICAg
ICAgICRmaW5hbGl6ZXJSZXN1bHQgPSAmICRmaW5hbGl6ZXJQYXRoIEBmaW5hbGl6ZXJBcmd1bWVu
dHMNCiAgICAgICAgaWYgKCRudWxsIC1uZSAkZmluYWxpemVyUmVzdWx0IC1hbmQgW3N0cmluZ10k
ZmluYWxpemVyUmVzdWx0LnN0YXR1cyAtZXEgJ3BlbmRpbmctYWRhcHRlcnMtYW5kLXNtb2tlJykg
ew0KICAgICAgICAgICAgJGFkYXB0ZXJDeWNsZSA9IEludm9rZS1BZGFwdGVyQXBwbGljYXRpb25X
aXRoUmVjb3ZlcnkgLVJvb3QgJHJvb3QgLUdlbmVyYXRpb25JZCAoW3N0cmluZ10kcGVuZGluZ1sw
XS5nZW5lcmF0aW9uSWQpDQogICAgICAgICAgICBpZiAoW2Jvb2xdJGFkYXB0ZXJDeWNsZS52ZXJp
ZmllZCkgew0KICAgICAgICAgICAgICAgICRmaW5hbGl6ZXJSZXN1bHQgPSAmICRmaW5hbGl6ZXJQ
YXRoIEBmaW5hbGl6ZXJBcmd1bWVudHMNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg
ICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgICAgICAgICBtb2Rl
ID0gJChpZiAoJG51bGwgLW5lICRhZGFwdGVyQ3ljbGUuYWRhcHRlclJlc3VsdCAtYW5kIFtzdHJp
bmddJGFkYXB0ZXJDeWNsZS5hZGFwdGVyUmVzdWx0LnN0YXR1cyAtZXEgJ3BlbmRpbmctc291cmNl
JykgeyAncGVuZGluZy1zb3VyY2UnIH0gZWxzZSB7ICdwZW5kaW5nLWFkYXB0ZXJzLWFuZC1zbW9r
ZScgfSkNCiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gJHBlbmRpbmdbMF0uZ2Vu
ZXJhdGlvbklkDQogICAgICAgICAgICAgICAgICAgIG1hY2hpbmVSZWFkeSA9ICRmYWxzZQ0KICAg
ICAgICAgICAgICAgICAgICBhZ2VudFdpbGxMYXVuY2ggPSAkZmFsc2UNCiAgICAgICAgICAgICAg
ICAgICAgcHJlcGFyYXRpb25BdHRlbXB0ZWQgPSBbYm9vbF0kYWRhcHRlckN5Y2xlLnByZXBhcmF0
aW9uQXR0ZW1wdGVkDQogICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gJ0F1dG9tYXRp
YyBpbW11dGFibGUgc291cmNlIHByZXBhcmF0aW9uIG9yIHJlcXVpcmVkIGFkYXB0ZXIgc21va2Ug
dmVyaWZpY2F0aW9uIGRpZCBub3QgY29tcGxldGU7IG5vIGFnZW50IHdhcyBvcGVuZWQuJw0KICAg
ICAgICAgICAgICAgICAgICBwcmVwYXJhdGlvblJlc3VsdCA9ICRhZGFwdGVyQ3ljbGUucHJlcGFy
YXRpb25SZXN1bHQNCiAgICAgICAgICAgICAgICAgICAgcHJlcGFyYXRpb25GYWlsdXJlID0gJGFk
YXB0ZXJDeWNsZS5wcmVwYXJhdGlvbkZhaWx1cmUNCiAgICAgICAgICAgICAgICAgICAgc291cmNl
UmVzdWx0ID0gJGFkYXB0ZXJDeWNsZS5hZGFwdGVyUmVzdWx0DQogICAgICAgICAgICAgICAgICAg
IGFkYXB0ZXJGYWlsdXJlID0gJGFkYXB0ZXJDeWNsZS5hZGFwdGVyRmFpbHVyZQ0KICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoJG51bGwgLW5l
ICRmaW5hbGl6ZXJSZXN1bHQgLWFuZCBbc3RyaW5nXSRmaW5hbGl6ZXJSZXN1bHQuc3RhdHVzIC1l
cSAncGVuZGluZy1zZWNyZXRzLXZhdWx0Jykgew0KICAgICAgICAgICAgJHZhdWx0UmVzdWx0ID0g
JG51bGwNCiAgICAgICAgICAgICR2YXVsdEZhaWx1cmUgPSAkbnVsbA0KICAgICAgICAgICAgdHJ5
IHsgJHZhdWx0UmVzdWx0ID0gRW5zdXJlLVZhdWx0UmVhZHkgLVJvb3QgJHJvb3QgLUdlbmVyYXRp
b25JZCAoW3N0cmluZ10kcGVuZGluZ1swXS5nZW5lcmF0aW9uSWQpIH0NCiAgICAgICAgICAgIGNh
dGNoIHsgJHZhdWx0RmFpbHVyZSA9IFtwc2N1c3RvbW9iamVjdF1AeyBleGNlcHRpb25UeXBlID0g
JF8uRXhjZXB0aW9uLkdldFR5cGUoKS5GdWxsTmFtZTsgbWVzc2FnZSA9ICRfLkV4Y2VwdGlvbi5N
ZXNzYWdlIH0gfQ0KICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkdmF1bHRGYWlsdXJlIC1vciAk
bnVsbCAtZXEgJHZhdWx0UmVzdWx0IC1vciAtbm90IFtib29sXSR2YXVsdFJlc3VsdC5yZWFkeSkg
ew0KICAgICAgICAgICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAg
ICAgICAgICAgbW9kZSA9ICdwZW5kaW5nLXNlY3JldHMtdmF1bHQnDQogICAgICAgICAgICAgICAg
ICAgIGdlbmVyYXRpb25JZCA9ICRwZW5kaW5nWzBdLmdlbmVyYXRpb25JZA0KICAgICAgICAgICAg
ICAgICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgYWdlbnRX
aWxsTGF1bmNoID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gJ1Ro
ZSBlbmNyeXB0ZWQgdmF1bHQgaW5pdGlhbGl6YXRpb24gb3IgdGhpcyBob3N0IHVubG9jayBpcyBp
bmNvbXBsZXRlOyBubyBhZ2VudCB3YXMgb3BlbmVkLicNCiAgICAgICAgICAgICAgICAgICAgdmF1
bHRSZXN1bHQgPSAkdmF1bHRSZXN1bHQNCiAgICAgICAgICAgICAgICAgICAgdmF1bHRGYWlsdXJl
ID0gJHZhdWx0RmFpbHVyZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICMgVGhlIGZpcnN0IGFkYXB0ZXIgcGFzcyBkZWxpYmVyYXRlbHkgc2tpcHBlZCBuYXR1
cmFsLWhvbWUgY29udmVyc2lvbg0KICAgICAgICAgICAgIyB3aGlsZSB0aGUgdmF1bHQgd2FzIHVu
YXZhaWxhYmxlLiBSZS1ydW4gaXQgbm93LCB0aGVuIGZpbmFsaXplIGFnYWluLg0KICAgICAgICAg
ICAgJGFkYXB0ZXJDeWNsZSA9IEludm9rZS1BZGFwdGVyQXBwbGljYXRpb25XaXRoUmVjb3Zlcnkg
LVJvb3QgJHJvb3QgLUdlbmVyYXRpb25JZCAoW3N0cmluZ10kcGVuZGluZ1swXS5nZW5lcmF0aW9u
SWQpDQogICAgICAgICAgICBpZiAoLW5vdCBbYm9vbF0kYWRhcHRlckN5Y2xlLnZlcmlmaWVkKSB7
DQogICAgICAgICAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAg
ICAgICAgICBtb2RlID0gJ3BlbmRpbmctZXh0ZXJuYWwtaG9tZS1taWdyYXRpb24nDQogICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRpb25JZCA9ICRwZW5kaW5nWzBdLmdlbmVyYXRpb25JZA0KICAg
ICAgICAgICAgICAgICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAg
ICAgYWdlbnRXaWxsTGF1bmNoID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0
aW9uID0gJ1RoZSB2YXVsdCBpcyByZWFkeSwgYnV0IGxvc3NsZXNzIGV4dGVybmFsLWhvbWUgcHJl
c2VydmF0aW9uIG9yIGFkYXB0ZXIgdmVyaWZpY2F0aW9uIGRpZCBub3QgY29tcGxldGUuJw0KICAg
ICAgICAgICAgICAgICAgICBhZGFwdGVyUmVzdWx0ID0gJGFkYXB0ZXJDeWNsZS5hZGFwdGVyUmVz
dWx0DQogICAgICAgICAgICAgICAgICAgIGFkYXB0ZXJGYWlsdXJlID0gJGFkYXB0ZXJDeWNsZS5h
ZGFwdGVyRmFpbHVyZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICRmaW5hbGl6ZXJSZXN1bHQgPSAmICRmaW5hbGl6ZXJQYXRoIEBmaW5hbGl6ZXJBcmd1bWVu
dHMNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJG51bGwgLW5lICRmaW5hbGl6ZXJSZXN1bHQgLWFu
ZCBbc3RyaW5nXSRmaW5hbGl6ZXJSZXN1bHQuc3RhdHVzIC1lcSAncGVuZGluZy1leHRlcm5hbC1o
b21lLW1pZ3JhdGlvbicpIHsNCiAgICAgICAgICAgICRhZGFwdGVyQ3ljbGUgPSBJbnZva2UtQWRh
cHRlckFwcGxpY2F0aW9uV2l0aFJlY292ZXJ5IC1Sb290ICRyb290IC1HZW5lcmF0aW9uSWQgKFtz
dHJpbmddJHBlbmRpbmdbMF0uZ2VuZXJhdGlvbklkKQ0KICAgICAgICAgICAgaWYgKC1ub3QgW2Jv
b2xdJGFkYXB0ZXJDeWNsZS52ZXJpZmllZCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBbcHNj
dXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgbW9kZSA9ICdwZW5kaW5nLWV4dGVy
bmFsLWhvbWUtbWlncmF0aW9uJw0KICAgICAgICAgICAgICAgICAgICBnZW5lcmF0aW9uSWQgPSAk
cGVuZGluZ1swXS5nZW5lcmF0aW9uSWQNCiAgICAgICAgICAgICAgICAgICAgbWFjaGluZVJlYWR5
ID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgIGFnZW50V2lsbExhdW5jaCA9ICRmYWxzZQ0K
ICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9ICdMb3NzbGVzcyBleHRlcm5hbC1ob21l
IHByZXNlcnZhdGlvbiBhbmQgdmVyaWZpZWQgbmF0dXJhbC1wYXRoIGp1bmN0aW9ucyBkaWQgbm90
IGNvbXBsZXRlLicNCiAgICAgICAgICAgICAgICAgICAgYWRhcHRlclJlc3VsdCA9ICRhZGFwdGVy
Q3ljbGUuYWRhcHRlclJlc3VsdA0KICAgICAgICAgICAgICAgICAgICBhZGFwdGVyRmFpbHVyZSA9
ICRhZGFwdGVyQ3ljbGUuYWRhcHRlckZhaWx1cmUNCiAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICB9DQogICAgICAgICAgICAkZmluYWxpemVyUmVzdWx0ID0gJiAkZmluYWxpemVyUGF0aCBA
ZmluYWxpemVyQXJndW1lbnRzDQogICAgICAgIH0NCiAgICAgICAgaWYgKCRudWxsIC1lcSAkZmlu
YWxpemVyUmVzdWx0IC1vciAtbm90IFtib29sXSRmaW5hbGl6ZXJSZXN1bHQubWFjaGluZVJlYWR5
KSB7DQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAg
ICAgbW9kZSA9ICdwZW5kaW5nLWZpbmFsaXplcicNCiAgICAgICAgICAgICAgICBnZW5lcmF0aW9u
SWQgPSAkcGVuZGluZ1swXS5nZW5lcmF0aW9uSWQNCiAgICAgICAgICAgICAgICBnZW5lcmF0aW9u
U3RhdHVzID0gJChpZiAoJG51bGwgLWVxICRmaW5hbGl6ZXJSZXN1bHQpIHsgJ3Vua25vd24nIH0g
ZWxzZSB7IFtzdHJpbmddJGZpbmFsaXplclJlc3VsdC5zdGF0dXMgfSkNCiAgICAgICAgICAgICAg
ICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICBhZ2VudFdpbGxMYXVuY2gg
PSAkZmFsc2UNCiAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9ICdUaGUgYWdlbnQgd2FzIG5v
dCBvcGVuZWQgYmVjYXVzZSBhZGFwdGVyIGFwcGxpY2F0aW9uIG9yIHNtb2tlIHZlcmlmaWNhdGlv
biByZW1haW5zLicNCiAgICAgICAgICAgICAgICBmaW5hbGl6ZXJSZXN1bHQgPSAkZmluYWxpemVy
UmVzdWx0DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQoNCiRhY3RpdmUgPSBH
ZXQtU291bEFjdGl2ZUdlbmVyYXRpb24gQG1vZHVsZUFyZ3VtZW50cw0KaWYgKCRudWxsIC1lcSAk
YWN0aXZlIC1hbmQgLW5vdCAoJERyeVJ1biAtYW5kICRwZW5kaW5nLkNvdW50IC1lcSAxKSkgeyB0
aHJvdyAnTm8gYWN0aXZlIGdlbmVyYXRpb24gZXhpc3RzIGFuZCBubyBwZW5kaW5nIGdlbmVyYXRp
b24gY2FuIGJlIGZpbmFsaXplZC4nIH0NCmlmICgkbnVsbCAtbmUgJGFjdGl2ZSkgew0KICAgICRh
Y3RpdmVNYW5pZmVzdFBhdGggPSBKb2luLVBhdGggJHN0YXRlRGlyZWN0b3J5ICgnZ2VuZXJhdGlv
bnNcJyArIFtzdHJpbmddJGFjdGl2ZS5nZW5lcmF0aW9uSWQgKyAnXGdlbmVyYXRpb24uanNvbicp
DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGFjdGl2ZU1hbmlmZXN0UGF0
aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ1RoZSBhY3RpdmUgZ2VuZXJhdGlvbiBtYW5pZmVz
dCBpcyBtaXNzaW5nLicgfQ0KICAgICRhY3RpdmVNYW5pZmVzdCA9IFJlYWQtU291bEpzb24gLVBh
dGggJGFjdGl2ZU1hbmlmZXN0UGF0aA0KICAgICRtYWNoaW5lUmVhZHlQcm9wZXJ0eSA9ICRhY3Rp
dmVNYW5pZmVzdC5QU09iamVjdC5Qcm9wZXJ0aWVzWydtYWNoaW5lUmVhZHknXQ0KICAgIGlmICgk
bnVsbCAtZXEgJG1hY2hpbmVSZWFkeVByb3BlcnR5IC1vciAtbm90IFtib29sXSRtYWNoaW5lUmVh
ZHlQcm9wZXJ0eS5WYWx1ZSkgew0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQog
ICAgICAgICAgICBtb2RlID0gJ2FjdGl2ZS1nZW5lcmF0aW9uLW5vdC1tYWNoaW5lLXJlYWR5Jw0K
ICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gW3N0cmluZ10kYWN0aXZlLmdlbmVyYXRpb25JZA0K
ICAgICAgICAgICAgbWFjaGluZVJlYWR5ID0gJGZhbHNlDQogICAgICAgICAgICBhZ2VudFdpbGxM
YXVuY2ggPSAkZmFsc2UNCiAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gJ1RoZSBhY3RpdmUgY29u
dGVudCBleGlzdHMsIGJ1dCByZXF1aXJlZCBhZGFwdGVyIGFuZCBzbW9rZSB2ZXJpZmljYXRpb24g
aXMgaW5jb21wbGV0ZS4nDQogICAgICAgIH0NCiAgICB9DQogICAgJHZhdWx0UmVhZGluZXNzID0g
R2V0LVZhdWx0UmVhZGluZXNzIC1Sb290ICRyb290DQogICAgaWYgKC1ub3QgW2Jvb2xdJHZhdWx0
UmVhZGluZXNzLnJlYWR5KSB7DQogICAgICAgIGlmICgkRHJ5UnVuKSB7DQogICAgICAgICAgICBy
ZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICAgICAgbW9kZSA9ICdwZW5kaW5n
LXNlY3JldHMtdmF1bHQnDQogICAgICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gW3N0cmluZ10k
YWN0aXZlLmdlbmVyYXRpb25JZA0KICAgICAgICAgICAgICAgIG1hY2hpbmVSZWFkeSA9ICRmYWxz
ZQ0KICAgICAgICAgICAgICAgIGFnZW50V2lsbExhdW5jaCA9ICRmYWxzZQ0KICAgICAgICAgICAg
ICAgIGV4cGxhbmF0aW9uID0gJ1RoaXMgaG9zdCBoYXMgbm90IGluaXRpYWxpemVkIG9yIHVubG9j
a2VkIHRoZSBlbmNyeXB0ZWQgc291bCB2YXVsdC4nDQogICAgICAgICAgICB9DQogICAgICAgIH0N
CiAgICAgICAgJGZvdW5kYXRpb25SZXN1bHQgPSAkbnVsbA0KICAgICAgICAkZm91bmRhdGlvbkZh
aWx1cmUgPSAkbnVsbA0KICAgICAgICB0cnkgeyAkZm91bmRhdGlvblJlc3VsdCA9IEludm9rZS1G
b3VuZGF0aW9uUHJlcGFyYXRpb24gLVJvb3QgJHJvb3QgLU1vZGUgJ1ByZXBhcmUnIH0NCiAgICAg
ICAgY2F0Y2ggeyAkZm91bmRhdGlvbkZhaWx1cmUgPSBbcHNjdXN0b21vYmplY3RdQHsgZXhjZXB0
aW9uVHlwZSA9ICRfLkV4Y2VwdGlvbi5HZXRUeXBlKCkuRnVsbE5hbWU7IG1lc3NhZ2UgPSAkXy5F
eGNlcHRpb24uTWVzc2FnZSB9IH0NCiAgICAgICAgaWYgKCRudWxsIC1uZSAkZm91bmRhdGlvbkZh
aWx1cmUgLW9yICRudWxsIC1lcSAkZm91bmRhdGlvblJlc3VsdCAtb3IgLW5vdCBbYm9vbF0kZm91
bmRhdGlvblJlc3VsdC5tYWNoaW5lUmVhZHkpIHsNCiAgICAgICAgICAgIHJldHVybiBbcHNjdXN0
b21vYmplY3RdQHsNCiAgICAgICAgICAgICAgICBtb2RlID0gJ3BlbmRpbmctZm91bmRhdGlvbnMn
DQogICAgICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gW3N0cmluZ10kYWN0aXZlLmdlbmVyYXRp
b25JZA0KICAgICAgICAgICAgICAgIG1hY2hpbmVSZWFkeSA9ICRmYWxzZQ0KICAgICAgICAgICAg
ICAgIGFnZW50V2lsbExhdW5jaCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9u
ID0gJ1RoaXMgaG9zdCBmb3VuZGF0aW9ucyBhcmUgaW5jb21wbGV0ZSwgc28gdmF1bHQgcHJlcGFy
YXRpb24gYW5kIHRoZSBhZ2VudCB3ZXJlIG5vdCBzdGFydGVkLicNCiAgICAgICAgICAgICAgICBm
b3VuZGF0aW9uUmVzdWx0ID0gJGZvdW5kYXRpb25SZXN1bHQNCiAgICAgICAgICAgICAgICBmb3Vu
ZGF0aW9uRmFpbHVyZSA9ICRmb3VuZGF0aW9uRmFpbHVyZQ0KICAgICAgICAgICAgfQ0KICAgICAg
ICB9DQogICAgICAgICR2YXVsdEZhaWx1cmUgPSAkbnVsbA0KICAgICAgICB0cnkgeyAkdmF1bHRS
ZWFkaW5lc3MgPSBFbnN1cmUtVmF1bHRSZWFkeSAtUm9vdCAkcm9vdCAtR2VuZXJhdGlvbklkIChb
c3RyaW5nXSRhY3RpdmUuZ2VuZXJhdGlvbklkKSB9DQogICAgICAgIGNhdGNoIHsgJHZhdWx0RmFp
bHVyZSA9IFtwc2N1c3RvbW9iamVjdF1AeyBleGNlcHRpb25UeXBlID0gJF8uRXhjZXB0aW9uLkdl
dFR5cGUoKS5GdWxsTmFtZTsgbWVzc2FnZSA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0gfQ0KICAg
ICAgICBpZiAoJG51bGwgLW5lICR2YXVsdEZhaWx1cmUgLW9yIC1ub3QgW2Jvb2xdJHZhdWx0UmVh
ZGluZXNzLnJlYWR5KSB7DQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQog
ICAgICAgICAgICAgICAgbW9kZSA9ICdwZW5kaW5nLXNlY3JldHMtdmF1bHQnDQogICAgICAgICAg
ICAgICAgZ2VuZXJhdGlvbklkID0gW3N0cmluZ10kYWN0aXZlLmdlbmVyYXRpb25JZA0KICAgICAg
ICAgICAgICAgIG1hY2hpbmVSZWFkeSA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGFnZW50V2ls
bExhdW5jaCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gJ1RoaXMgaG9z
dCB2YXVsdCB1bmxvY2sgaXMgaW5jb21wbGV0ZTsgbm8gYWdlbnQgd2FzIG9wZW5lZC4nDQogICAg
ICAgICAgICAgICAgdmF1bHRGYWlsdXJlID0gJHZhdWx0RmFpbHVyZQ0KICAgICAgICAgICAgfQ0K
ICAgICAgICB9DQogICAgfQ0KfQ0KDQokbWVudU9wdGlvbnMgPSBAKEdldC1TY29wZU9wdGlvbnMg
LVJvb3QgJHJvb3QpDQppZiAoJE1lbnUgLWFuZCAkRHJ5UnVuKSB7DQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICBtb2RlID0gJ21lbnUtcGxhbicNCiAgICAgICAgb3B0aW9u
cyA9ICRtZW51T3B0aW9ucw0KICAgICAgICBwZW5kaW5nRmluYWxpemVyID0gJChpZiAoJHBlbmRp
bmcuQ291bnQgLWVxIDEpIHsgJHBlbmRpbmdbMF0uZ2VuZXJhdGlvbklkIH0gZWxzZSB7ICRudWxs
IH0pDQogICAgICAgIGFjdGl2ZUdlbmVyYXRpb24gPSAkKGlmICgkbnVsbCAtZXEgJGFjdGl2ZSkg
eyAkbnVsbCB9IGVsc2UgeyBbc3RyaW5nXSRhY3RpdmUuZ2VuZXJhdGlvbklkIH0pDQogICAgfQ0K
fQ0KaWYgKCRNZW51KSB7DQogICAgJHNlbGVjdGVkID0gU2VsZWN0LVNjb3BlRnJvbU1lbnUgLU9w
dGlvbnMgJG1lbnVPcHRpb25zDQogICAgJFNjb3BlUGF0aCA9ICRzZWxlY3RlZC5wYXRoDQp9DQoN
CmlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRTY29wZVBhdGgpKSB7DQogICAgJGN1
cnJlbnQgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKChHZXQtTG9jYXRpb24pLlBhdGgpLlRyaW1F
bmQoJ1wnLCAnLycpDQogICAgJFNjb3BlUGF0aCA9IGlmIChUZXN0LVBhdGhCZWxvdyAtUGF0aCAk
Y3VycmVudCAtUGFyZW50ICRyb290IC1BbGxvd1BhcmVudCkgeyAkY3VycmVudCB9IGVsc2UgeyAk
cm9vdCB9DQp9DQokc2NvcGUgPSBSZXNvbHZlLVNjb3BlIC1Sb290ICRyb290IC1SZXF1ZXN0ZWRQ
YXRoICRTY29wZVBhdGgNCmlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0
cmluZ10kc2NvcGUuc291bElkKSAtYW5kIFtzdHJpbmddJHNjb3BlLnNvdWxJZCAtY25lIFtzdHJp
bmddJHNvdWxTdGF0ZS5zb3VsSWQpIHsNCiAgICB0aHJvdyAnU2NvcGUgbWFya2VyIGJlbG9uZ3Mg
dG8gYW5vdGhlciBzb3VsLicNCn0NCg0KJHNlc3Npb25JZCA9IGlmICgkTmV3U2Vzc2lvbikgeyAk
bnVsbCB9IGVsc2UgeyBHZXQtRXhhY3RTZXNzaW9uSWQgLVJvb3QgJHJvb3QgLVNjb3BlICRzY29w
ZSAtSGFybmVzcyAkQWdlbnQgfQ0KJGFyZ3VtZW50cyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxl
Y3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQppZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JX
aGl0ZVNwYWNlKCRzZXNzaW9uSWQpKSB7DQogICAgaWYgKCRBZ2VudCAtZXEgJ2NsYXVkZScpIHsg
JGFyZ3VtZW50cy5BZGQoJy0tcmVzdW1lJyk7ICRhcmd1bWVudHMuQWRkKCRzZXNzaW9uSWQpIH0N
CiAgICBlbHNlIHsgJGFyZ3VtZW50cy5BZGQoJ3Jlc3VtZScpOyAkYXJndW1lbnRzLkFkZCgkc2Vz
c2lvbklkKSB9DQp9DQoNCiRwcmVwYXJlUnVudGltZSA9ICgtbm90ICREcnlSdW4pIC1vciAoLW5v
dCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpDQokcnVudGltZUVudmly
b25tZW50ID0gR2V0LUhvc3RSdW50aW1lRW52aXJvbm1lbnQgLVJvb3QgJHJvb3QgLVByZXBhcmU6
JHByZXBhcmVSdW50aW1lDQokY2hpbGRFbnZpcm9ubWVudCA9IFtvcmRlcmVkXUB7DQogICAgQ0xB
VURFX0NPTkZJR19ESVIgPSBKb2luLVBhdGggJHJvb3QgJ19hZ2VudFxjbGF1ZGUnDQogICAgQ09E
RVhfSE9NRSA9IEpvaW4tUGF0aCAkcm9vdCAnX2FnZW50XGNvZGV4Jw0KICAgIFNPVUxfUk9PVCA9
ICRyb290DQogICAgU09VTF9JRCA9IFtzdHJpbmddJHNvdWxTdGF0ZS5zb3VsSWQNCiAgICBTVVBF
UlBPV0VSU19ESVNBQkxFX1RFTEVNRVRSWSA9ICcxJw0KICAgIFNFTEZfSU1QUk9WRV9ESVIgPSBK
b2luLVBhdGggJHJvb3QgJ19hZ2VudFxzaGFyZWRcc2VsZi1pbXByb3ZlbWVudCcNCn0NCmZvcmVh
Y2ggKCRlbnRyeSBpbiAkcnVudGltZUVudmlyb25tZW50LkdldEVudW1lcmF0b3IoKSkgeyAkY2hp
bGRFbnZpcm9ubWVudFskZW50cnkuS2V5XSA9ICRlbnRyeS5WYWx1ZSB9DQokc2hpbVJvb3QgPSBK
b2luLVBhdGggJHJvb3QgJ19hZ2VudFxzaGFyZWRcc2hpbXMnDQppZiAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkc2hpbVJvb3QgLVBhdGhUeXBlIENvbnRhaW5lcikgew0KICAgICRzaGltSXRlbSA9
IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkc2hpbVJvb3QgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9w
DQogICAgaWYgKCgkc2hpbUl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNd
OjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICdUaGUgcGlubmVkIHNoaW0gZGlyZWN0b3J5
IG1heSBub3QgYmUgYSByZXBhcnNlIHBvaW50LicgfQ0KICAgICRiYXNlQ2hpbGRQYXRoID0gR2V0
LUVudmlyb25tZW50VmFsdWUgLU5hbWUgJ1BBVEgnDQogICAgJGNoaWxkRW52aXJvbm1lbnRbJ1BB
VEgnXSA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRiYXNlQ2hpbGRQYXRoKSkg
eyAkc2hpbVJvb3QgfSBlbHNlIHsgJHNoaW1Sb290ICsgW0lPLlBhdGhdOjpQYXRoU2VwYXJhdG9y
ICsgJGJhc2VDaGlsZFBhdGggfQ0KfQ0KJHNlY3JldFNlbGVjdGlvbiA9IEdldC1MYXVuY2hTZWNy
ZXRTZWxlY3Rpb24gLVJvb3QgJHJvb3QgLUhhcm5lc3MgJEFnZW50IC1QcmVwYXJlOigtbm90ICRE
cnlSdW4pDQoNCiRsYXVuY2hQbGFuID0gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgbW9kZSA9ICQo
aWYgKCREcnlSdW4pIHsgJ2RyeS1ydW4nIH0gZWxzZSB7ICdsYXVuY2gnIH0pDQogICAgYWdlbnQg
PSAkQWdlbnQNCiAgICBleGVjdXRhYmxlID0gJEFnZW50DQogICAgYXJndW1lbnRzID0gQCgkYXJn
dW1lbnRzKQ0KICAgIGV4YWN0U2Vzc2lvbklkID0gJHNlc3Npb25JZA0KICAgIHN0YXJ0c05ld1Nl
c3Npb24gPSBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRzZXNzaW9uSWQpDQogICAgdXNl
c0xhc3RHdWVzcyA9ICRmYWxzZQ0KICAgIHNjb3BlUGF0aCA9ICRzY29wZS5wYXRoDQogICAgc2Nv
cGVJZCA9ICRzY29wZS5zY29wZUlkDQogICAgY2hpbGRFbnZpcm9ubWVudCA9ICRjaGlsZEVudmly
b25tZW50DQogICAgcGVuZGluZ0ZpbmFsaXplciA9ICQoaWYgKCRwZW5kaW5nLkNvdW50IC1lcSAx
KSB7ICRwZW5kaW5nWzBdLmdlbmVyYXRpb25JZCB9IGVsc2UgeyAkbnVsbCB9KQ0KICAgIGFjdGl2
ZUdlbmVyYXRpb24gPSAkKGlmICgkbnVsbCAtZXEgJGFjdGl2ZSkgeyAkbnVsbCB9IGVsc2UgeyBb
c3RyaW5nXSRhY3RpdmUuZ2VuZXJhdGlvbklkIH0pDQogICAgc2VjcmV0UG9saWN5ID0gW29yZGVy
ZWRdQHsNCiAgICAgICAgcG9saWN5UmVhZHkgPSBbYm9vbF0kc2VjcmV0U2VsZWN0aW9uLnBvbGlj
eVJlYWR5DQogICAgICAgIGluamVjdEtleU5hbWVzID0gQCgkc2VjcmV0U2VsZWN0aW9uLmluamVj
dEtleXMpDQogICAgICAgIHJlc3RvcmVGaWxlQWxpYXNlcyA9IEAoJHNlY3JldFNlbGVjdGlvbi5y
ZXN0b3JlRmlsZUFsaWFzZXMpDQogICAgICAgIHZhbHVlc0V4cG9zZWQgPSAkZmFsc2UNCiAgICB9
DQogICAgcHJveHlFbnZpcm9ubWVudFRvdWNoZWQgPSAkZmFsc2UNCn0NCmlmICgkRHJ5UnVuKSB7
IHJldHVybiAkbGF1bmNoUGxhbiB9DQoNCiRjb21tYW5kID0gR2V0LUNvbW1hbmQgLU5hbWUgJEFn
ZW50IC1Db21tYW5kVHlwZSBBcHBsaWNhdGlvbiAtRXJyb3JBY3Rpb24gU3RvcCB8IFNlbGVjdC1P
YmplY3QgLUZpcnN0IDENCiRzYXZlZEVudmlyb25tZW50ID0gQHt9DQokc2F2ZWRFcnJvckFjdGlv
blByZWZlcmVuY2UgPSAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlDQokc2F2ZWRTZWxlY3RlZFNlY3Jl
dHMgPSBAe30NCiRzYXZlZFNjcnViYmVkU2VjcmV0cyA9IEB7fQ0KJHNlY3JldExlYXNlSWQgPSAk
bnVsbA0KdHJ5IHsNCiAgICBmb3JlYWNoICgkbmFtZSBpbiBAKCRzZWNyZXRTZWxlY3Rpb24uaW5q
ZWN0S2V5cykpIHsNCiAgICAgICAgJHNhdmVkU2VsZWN0ZWRTZWNyZXRzWyRuYW1lXSA9IFtFbnZp
cm9ubWVudF06OkdldEVudmlyb25tZW50VmFyaWFibGUoW3N0cmluZ10kbmFtZSwgJ1Byb2Nlc3Mn
KQ0KICAgIH0NCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3Qp
IC1hbmQgKEAoJHNlY3JldFNlbGVjdGlvbi5pbmplY3RLZXlzKS5Db3VudCAtZ3QgMCAtb3IgQCgk
c2VjcmV0U2VsZWN0aW9uLnJlc3RvcmVGaWxlQWxpYXNlcykuQ291bnQgLWd0IDApKSB7DQogICAg
ICAgICR2YXVsdFNjcmlwdCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdzZWNyZXRzLXZhdWx0
LnBzMScNCiAgICAgICAgJG93bmVyU3RhcnRVdGMgPSAoR2V0LVByb2Nlc3MgLUlkICRQSUQgLUVy
cm9yQWN0aW9uIFN0b3ApLlN0YXJ0VGltZS5Ub1VuaXZlcnNhbFRpbWUoKS5Ub1N0cmluZygnbycp
DQogICAgICAgICR1bmxvY2tBcmd1bWVudHMgPSBAew0KICAgICAgICAgICAgQWN0aW9uID0gJ1Vu
bG9jaycNCiAgICAgICAgICAgIFNvdWxSb290ID0gJHJvb3QNCiAgICAgICAgICAgIEluamVjdEtl
eSA9IEAoJHNlY3JldFNlbGVjdGlvbi5pbmplY3RLZXlzKQ0KICAgICAgICAgICAgUmVzdG9yZUZp
bGVBbGlhcyA9IEAoJHNlY3JldFNlbGVjdGlvbi5yZXN0b3JlRmlsZUFsaWFzZXMpDQogICAgICAg
ICAgICBMZWFzZU93bmVyUHJvY2Vzc0lkID0gJFBJRA0KICAgICAgICAgICAgTGVhc2VPd25lclN0
YXJ0VXRjID0gJG93bmVyU3RhcnRVdGMNCiAgICAgICAgfQ0KICAgICAgICAkdW5sb2NrUmVzdWx0
ID0gJiB7IHBhcmFtKCRTY3JpcHRQYXRoLCAkQXJndW1lbnRzKTsgLiAkU2NyaXB0UGF0aCBAQXJn
dW1lbnRzIH0gJHZhdWx0U2NyaXB0ICR1bmxvY2tBcmd1bWVudHMNCiAgICAgICAgaWYgKFtzdHJp
bmddJHVubG9ja1Jlc3VsdC5zdGF0dXMgLWNuZSAndW5sb2NrZWQnIC1vciBbYm9vbF0kdW5sb2Nr
UmVzdWx0LnBsYWludGV4dEVudkZpbGVXcml0dGVuKSB7IHRocm93ICdUaGUgdmF1bHQgZGlkIG5v
dCByZXR1cm4gYSBzYWZlIGNoaWxkIHNlY3JldCBsZWFzZS4nIH0NCiAgICAgICAgJHNlY3JldExl
YXNlSWQgPSBbc3RyaW5nXSR1bmxvY2tSZXN1bHQubGVhc2VJZA0KICAgIH0NCiAgICAkc2VsZWN0
ZWRLZXlTZXQgPSBAe30NCiAgICBmb3JlYWNoICgkbmFtZSBpbiBAKCRzZWNyZXRTZWxlY3Rpb24u
aW5qZWN0S2V5cykpIHsgJHNlbGVjdGVkS2V5U2V0W1tzdHJpbmddJG5hbWVdID0gJHRydWUgfQ0K
ICAgIGZvcmVhY2ggKCRlbnRyeSBpbiBbRW52aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlh
YmxlcygnUHJvY2VzcycpLkdldEVudW1lcmF0b3IoKSkgew0KICAgICAgICAkbmFtZSA9IFtzdHJp
bmddJGVudHJ5LktleQ0KICAgICAgICBpZiAoJHNlbGVjdGVkS2V5U2V0LkNvbnRhaW5zS2V5KCRu
YW1lKSAtb3IgJG5hbWUgLWVxICdBTlRIUk9QSUNfQkFTRV9VUkwnKSB7IGNvbnRpbnVlIH0NCiAg
ICAgICAgaWYgKCRuYW1lIC1tYXRjaCAnKD9pKSg/Ol9BUElfS0VZfF9UT0tFTnxfU0VDUkVUfF9Q
QVNTV09SRHxfQ1JFREVOVElBTFM/fF5BV1NfLiooPzpLRVl8VE9LRU4pfF5BWlVSRV8uKig/OktF
WXxUT0tFTikpJCcpIHsNCiAgICAgICAgICAgICRzYXZlZFNjcnViYmVkU2VjcmV0c1skbmFtZV0g
PSBbc3RyaW5nXSRlbnRyeS5WYWx1ZQ0KICAgICAgICAgICAgW0Vudmlyb25tZW50XTo6U2V0RW52
aXJvbm1lbnRWYXJpYWJsZSgkbmFtZSwgJG51bGwsICdQcm9jZXNzJykNCiAgICAgICAgfQ0KICAg
IH0NCiAgICBmb3JlYWNoICgkZW50cnkgaW4gJGNoaWxkRW52aXJvbm1lbnQuR2V0RW51bWVyYXRv
cigpKSB7DQogICAgICAgICRzYXZlZEVudmlyb25tZW50WyRlbnRyeS5LZXldID0gW0Vudmlyb25t
ZW50XTo6R2V0RW52aXJvbm1lbnRWYXJpYWJsZSgkZW50cnkuS2V5LCAnUHJvY2VzcycpDQogICAg
ICAgIFtFbnZpcm9ubWVudF06OlNldEVudmlyb25tZW50VmFyaWFibGUoJGVudHJ5LktleSwgW3N0
cmluZ10kZW50cnkuVmFsdWUsICdQcm9jZXNzJykNCiAgICB9DQogICAgJEVycm9yQWN0aW9uUHJl
ZmVyZW5jZSA9ICdDb250aW51ZScNCiAgICAmICRjb21tYW5kLlNvdXJjZSBAYXJndW1lbnRzDQog
ICAgJGNoaWxkRXhpdENvZGUgPSAkTEFTVEVYSVRDT0RFDQp9IGZpbmFsbHkgew0KICAgICRFcnJv
ckFjdGlvblByZWZlcmVuY2UgPSAkc2F2ZWRFcnJvckFjdGlvblByZWZlcmVuY2UNCiAgICBmb3Jl
YWNoICgkZW50cnkgaW4gJHNhdmVkRW52aXJvbm1lbnQuR2V0RW51bWVyYXRvcigpKSB7DQogICAg
ICAgIFtFbnZpcm9ubWVudF06OlNldEVudmlyb25tZW50VmFyaWFibGUoJGVudHJ5LktleSwgJGVu
dHJ5LlZhbHVlLCAnUHJvY2VzcycpDQogICAgfQ0KICAgIHRyeSB7DQogICAgICAgIGlmICgtbm90
IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHNlY3JldExlYXNlSWQpKSB7DQogICAgICAg
ICAgICAkdmF1bHRTY3JpcHQgPSBKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAnc2VjcmV0cy12YXVs
dC5wczEnDQogICAgICAgICAgICBbdm9pZF0oJiAkdmF1bHRTY3JpcHQgLUFjdGlvbiBDbGVhbnVw
TGVhc2UgLVNvdWxSb290ICRyb290IC1MZWFzZUlkICRzZWNyZXRMZWFzZUlkKQ0KICAgICAgICB9
DQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAgZm9yZWFjaCAoJGVudHJ5IGluICRzYXZlZFNjcnVi
YmVkU2VjcmV0cy5HZXRFbnVtZXJhdG9yKCkpIHsgW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1l
bnRWYXJpYWJsZSgkZW50cnkuS2V5LCAkZW50cnkuVmFsdWUsICdQcm9jZXNzJykgfQ0KICAgICAg
ICBmb3JlYWNoICgkZW50cnkgaW4gJHNhdmVkU2VsZWN0ZWRTZWNyZXRzLkdldEVudW1lcmF0b3Io
KSkgeyBbRW52aXJvbm1lbnRdOjpTZXRFbnZpcm9ubWVudFZhcmlhYmxlKCRlbnRyeS5LZXksICRl
bnRyeS5WYWx1ZSwgJ1Byb2Nlc3MnKSB9DQogICAgfQ0KfQ0KaWYgKCRjaGlsZEV4aXRDb2RlIC1u
ZSAwKSB7IGV4aXQgJGNoaWxkRXhpdENvZGUgfQ0KDQokc2hhcmVkUm9vdCA9IEpvaW4tUGF0aCAk
cm9vdCAnX2FnZW50XHNoYXJlZCcNCiRoYW5kb2ZmUm9vdCA9IEpvaW4tUGF0aCAkc2hhcmVkUm9v
dCAnaGFuZG9mZicNClt2b2lkXShJbml0aWFsaXplLUxhdW5jaGVyRGlyZWN0b3J5IC1QYXRoICRz
aGFyZWRSb290IC1UaXRsZSAnU2hhcmVkIGFnZW50IHN0YXRlJykNClt2b2lkXShJbml0aWFsaXpl
LUxhdW5jaGVyRGlyZWN0b3J5IC1QYXRoICRoYW5kb2ZmUm9vdCAtVGl0bGUgJ1NoYXJlZCBoYW5k
b2ZmIGxlZGdlcicpDQokc2NvcGVSZWxhdGl2ZVBhdGggPSBpZiAoJHNjb3BlLnBhdGguRXF1YWxz
KCRyb290LCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgeyAnLicgfSBl
bHNlIHsgJHNjb3BlLnBhdGguU3Vic3RyaW5nKCRyb290Lkxlbmd0aCkuVHJpbVN0YXJ0KCdcJywg
Jy8nKS5SZXBsYWNlKCdcJywgJy8nKSB9DQpbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBh
dGggKEpvaW4tUGF0aCAkaGFuZG9mZlJvb3QgJ2xhc3QtbGF1bmNoLmpzb24nKSAtVmFsdWUgKFtv
cmRlcmVkXUB7DQogICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICBzb3VsSWQgPSBbc3RyaW5nXSRz
b3VsU3RhdGUuc291bElkDQogICAgYWdlbnQgPSAkQWdlbnQNCiAgICBzY29wZUlkID0gJHNjb3Bl
LnNjb3BlSWQNCiAgICBzY29wZVJlbGF0aXZlUGF0aCA9ICRzY29wZVJlbGF0aXZlUGF0aA0KICAg
IGV4YWN0U2Vzc2lvbklkID0gJHNlc3Npb25JZA0KICAgIHN0YXJ0c05ld1Nlc3Npb24gPSBbc3Ry
aW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRzZXNzaW9uSWQpDQogICAgZ2VuZXJhdGlvbklkID0g
W3N0cmluZ10kYWN0aXZlLmdlbmVyYXRpb25JZA0KICAgIGxhdW5jaGVkQXRVdGMgPSBbRGF0ZVRp
bWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KfSkpDQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/AGENTS.md","encoding":"base64","size":166,"runtimeSha256":"8203aa8115e3501fba9d2571b284d68d8ef257b6d45debe2566e4cfcae96c010","normalizedSha256":"3f56b60a90e715de5ce270fbfc0b43ab97194487df7e08c7612097d435a3ea9a"} -->
```base64
IyBTZXR1cCBNYW5pZmVzdHMNCg0K6rKA7Kad65CcIOuyhOyghMK37Lac7LKYwrfrrLTqsrDshLHC
t+yWtOuMke2EsOulvCDqs6DsoJXtlZjripQg7ISk7LmYIOyeoOq4iO2RnCDrs7TqtIDshowuDQoN
CjwhLS0g7IOB7JyEIEFHRU5UUy5tZCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT4NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/AGENTS.md","encoding":"base64","size":167,"runtimeSha256":"1a88d038ef5c81e34f307d52cab39ce1946663471b36f43cad171e623b20f0b2","normalizedSha256":"1253cb06bcf0a499d75895a7e4ac207508ea33abeb1686319bb20303e61124fb"} -->
```base64
IyBOUE0gTG9jayBNYW5pZmVzdHMNCg0K7ISk7LmYIOyXlOynhOydtCDqsoDspp3tlbTshJwg7IKs
7Jqp7ZWY64qUIOqzoOyglSBOUE0g7J2Y7KG07ISxIOyeoOq4iCDtjIzsnbzrp4wg65GU64ukLg0K
DQo8IS0tIOyDgeychCBBR0VOVFMubWQg6rec7LmZIOyerOyEnOyIoCDquIjsp4AgLS0+DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/k-skill/AGENTS.md","encoding":"base64","size":127,"runtimeSha256":"12366bb554e65db0a501b5dc398b75101d3720aa8182ae8883f6e5d92974a75e","normalizedSha256":"c702677fd8cede6ee7b53e1de55ce0637e2c24828418fa6dc3f4a33a8968c91c"} -->
```base64
IyBLLVNraWxsIExvY2sNCg0KSy1Ta2lsbCAwLjQuM+ydmCDqs6DsoJUg7J2Y7KG07ISxIOyeoOq4
iCDtjIzsnbzsnbTri6QuDQoNCjwhLS0g7IOB7JyEIEFHRU5UUy5tZCDqt5zsuZkg7J6s7ISc7Iig
IOq4iOyngCAtLT4NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/k-skill/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/k-skill/package-lock.json","encoding":"base64","size":698,"runtimeSha256":"97c8c0a83259db51f22ebb3839590296b6de915ab0b86a71d96efa76dc3f6c65","normalizedSha256":"15815f2d681f79fdcb9354ee058a08e4d37e1579ff12e01757e6e7c40e20886c"} -->
```base64
ew0KICAibmFtZSI6ICJzb3VsLWstc2tpbGwiLA0KICAidmVyc2lvbiI6ICIwLjAuMCIsDQogICJs
b2NrZmlsZVZlcnNpb24iOiAzLA0KICAicmVxdWlyZXMiOiB0cnVlLA0KICAicGFja2FnZXMiOiB7
DQogICAgIiI6IHsNCiAgICAgICJuYW1lIjogInNvdWwtay1za2lsbCIsDQogICAgICAidmVyc2lv
biI6ICIwLjAuMCIsDQogICAgICAiZGVwZW5kZW5jaWVzIjogew0KICAgICAgICAiQG5vbWFkYW1h
cy9rLXNraWxsIjogIjAuNC4zIg0KICAgICAgfQ0KICAgIH0sDQogICAgIm5vZGVfbW9kdWxlcy9A
bm9tYWRhbWFzL2stc2tpbGwiOiB7DQogICAgICAidmVyc2lvbiI6ICIwLjQuMyIsDQogICAgICAi
cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQG5vbWFkYW1hcy9rLXNraWxs
Ly0vay1za2lsbC0wLjQuMy50Z3oiLA0KICAgICAgImludGVncml0eSI6ICJzaGE1MTItWXlHNW5L
NWEzbGpTaHpaN05peVRTQVo3cmJ2WDNjaFhGdXIvSDdDeWxIYnc4dXBYK2dpYzNtaUIvQ2lKUnJ5
cWJXVUFJWTg2aTdMRE5QS2hCZEZZU0E9PSIsDQogICAgICAibGljZW5zZSI6ICJNSVQiLA0KICAg
ICAgImJpbiI6IHsNCiAgICAgICAgImstc2tpbGwiOiAiYmluL2stc2tpbGwuanMiDQogICAgICB9
LA0KICAgICAgImVuZ2luZXMiOiB7DQogICAgICAgICJub2RlIjogIj49MTgiDQogICAgICB9DQog
ICAgfQ0KICB9DQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/k-skill/package.json","encoding":"base64","size":137,"runtimeSha256":"c61259537ca057223c9ff9ec4921fd8f6e155f3bca7ad211934967e790070eac","normalizedSha256":"3274c3b6d85e5ec55f81c7baf1e0d5e798c8ac24426cebb8e3348ae86bfe37d2"} -->
```base64
ew0KICAibmFtZSI6ICJzb3VsLWstc2tpbGwiLA0KICAidmVyc2lvbiI6ICIwLjAuMCIsDQogICJw
cml2YXRlIjogdHJ1ZSwNCiAgImRlcGVuZGVuY2llcyI6IHsNCiAgICAiQG5vbWFkYW1hcy9rLXNr
aWxsIjogIjAuNC4zIg0KICB9DQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/playwright-mcp/AGENTS.md","encoding":"base64","size":142,"runtimeSha256":"31e296ae0e332173265cf94a22f002cab71cd0e3f5846824a8f561d39126529c","normalizedSha256":"a3bbd7268b7966032a424927d867c50294ebef9c68158bdadd2380b2e82f0fa7"} -->
```base64
IyBQbGF5d3JpZ2h0IE1DUCBMb2NrDQoNClBsYXl3cmlnaHQgTUNQIDAuMC43OeydmCDqs6DsoJUg
7J2Y7KG07ISxIOyeoOq4iCDtjIzsnbzsnbTri6QuDQoNCjwhLS0g7IOB7JyEIEFHRU5UUy5tZCDq
t5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT4NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/playwright-mcp/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/playwright-mcp/package-lock.json","encoding":"base64","size":2398,"runtimeSha256":"f8511018d48f23b36084a9134d6fc70e2b23cca324a3d4ba01353c59135121bd","normalizedSha256":"d52a8c3df5d17a6069fbc6ecff6ed97c8454b7e404d655d39e2848eecb736e4a"} -->
```base64
ew0KICAibmFtZSI6ICJzb3VsLXBsYXl3cmlnaHQtbWNwIiwNCiAgInZlcnNpb24iOiAiMC4wLjAi
LA0KICAibG9ja2ZpbGVWZXJzaW9uIjogMywNCiAgInJlcXVpcmVzIjogdHJ1ZSwNCiAgInBhY2th
Z2VzIjogew0KICAgICIiOiB7DQogICAgICAibmFtZSI6ICJzb3VsLXBsYXl3cmlnaHQtbWNwIiwN
CiAgICAgICJ2ZXJzaW9uIjogIjAuMC4wIiwNCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7DQogICAg
ICAgICJAcGxheXdyaWdodC9tY3AiOiAiMC4wLjc5Ig0KICAgICAgfQ0KICAgIH0sDQogICAgIm5v
ZGVfbW9kdWxlcy9AcGxheXdyaWdodC9tY3AiOiB7DQogICAgICAidmVyc2lvbiI6ICIwLjAuNzki
LA0KICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0BwbGF5d3Jp
Z2h0L21jcC8tL21jcC0wLjAuNzkudGd6IiwNCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVZw
cUQ0YTN2RnlHUU1ZOXNoM1VKaU82d2pjdXJnZ2tsaktmQXlDSEwwUVdHWTVtNkVocjNNTnNBQUhQ
REhPLy9uMTNnMFBDanBIYXRBT2l1bHJxZFpRPT0iLA0KICAgICAgImxpY2Vuc2UiOiAiQXBhY2hl
LTIuMCIsDQogICAgICAiZGVwZW5kZW5jaWVzIjogew0KICAgICAgICAicGxheXdyaWdodCI6ICIx
LjYzLjAtYWxwaGEtMjAyNi0wOC0wNSIsDQogICAgICAgICJwbGF5d3JpZ2h0LWNvcmUiOiAiMS42
My4wLWFscGhhLTIwMjYtMDgtMDUiDQogICAgICB9LA0KICAgICAgImJpbiI6IHsNCiAgICAgICAg
InBsYXl3cmlnaHQtbWNwIjogImNsaS5qcyINCiAgICAgIH0sDQogICAgICAiZW5naW5lcyI6IHsN
CiAgICAgICAgIm5vZGUiOiAiPj0xOCINCiAgICAgIH0NCiAgICB9LA0KICAgICJub2RlX21vZHVs
ZXMvZnNldmVudHMiOiB7DQogICAgICAidmVyc2lvbiI6ICIyLjMuMiIsDQogICAgICAicmVzb2x2
ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZnNldmVudHMvLS9mc2V2ZW50cy0yLjMu
Mi50Z3oiLA0KICAgICAgImludGVncml0eSI6ICJzaGE1MTIteGlxTVFSNHhBZUhUdUI5dVdtK2ZG
UmNJT2dLQk1pT0JQK2VYaXlUN2pzZ1ZDcTFia1Z5Z3QwMG9BU293QjdFZHRwT0hhYVBnS3Q4MTJQ
OWFiK0RES0E9PSIsDQogICAgICAiaGFzSW5zdGFsbFNjcmlwdCI6IHRydWUsDQogICAgICAibGlj
ZW5zZSI6ICJNSVQiLA0KICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwNCiAgICAgICJvcyI6IFsNCiAg
ICAgICAgImRhcndpbiINCiAgICAgIF0sDQogICAgICAiZW5naW5lcyI6IHsNCiAgICAgICAgIm5v
ZGUiOiAiXjguMTYuMCB8fCBeMTAuNi4wIHx8ID49MTEuMC4wIg0KICAgICAgfQ0KICAgIH0sDQog
ICAgIm5vZGVfbW9kdWxlcy9wbGF5d3JpZ2h0Ijogew0KICAgICAgInZlcnNpb24iOiAiMS42My4w
LWFscGhhLTIwMjYtMDgtMDUiLA0KICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnku
bnBtanMub3JnL3BsYXl3cmlnaHQvLS9wbGF5d3JpZ2h0LTEuNjMuMC1hbHBoYS0yMDI2LTA4LTA1
LnRneiIsDQogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi16YkdaVUsrSllrb0RWM2NVZ2Z2aDJj
elRCSkwzNEdtejVnSFZJMjV4aUlwdllTUjE3UTFNN1RTOGhud0VDVWUrSWtLYWVYYktyU3lKVHlv
Z20yRFZXdz09IiwNCiAgICAgICJsaWNlbnNlIjogIkFwYWNoZS0yLjAiLA0KICAgICAgImRlcGVu
ZGVuY2llcyI6IHsNCiAgICAgICAgInBsYXl3cmlnaHQtY29yZSI6ICIxLjYzLjAtYWxwaGEtMjAy
Ni0wOC0wNSINCiAgICAgIH0sDQogICAgICAiYmluIjogew0KICAgICAgICAicGxheXdyaWdodCI6
ICJjbGkuanMiDQogICAgICB9LA0KICAgICAgImVuZ2luZXMiOiB7DQogICAgICAgICJub2RlIjog
Ij49MjAiDQogICAgICB9LA0KICAgICAgIm9wdGlvbmFsRGVwZW5kZW5jaWVzIjogew0KICAgICAg
ICAiZnNldmVudHMiOiAiMi4zLjIiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVz
L3BsYXl3cmlnaHQtY29yZSI6IHsNCiAgICAgICJ2ZXJzaW9uIjogIjEuNjMuMC1hbHBoYS0yMDI2
LTA4LTA1IiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9w
bGF5d3JpZ2h0LWNvcmUvLS9wbGF5d3JpZ2h0LWNvcmUtMS42My4wLWFscGhhLTIwMjYtMDgtMDUu
dGd6IiwNCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVl1c3N2VXliVGZCdHlZYkdYV2g0M2Yr
NWtOUDAzd2c5OE02bXU0RHBoWUVUN1BTYk5WYWpzZExHaldFMXhyc2pxT3czMmkyd0ZsUlA3VTVt
Y09wTVpnPT0iLA0KICAgICAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsDQogICAgICAiYmluIjog
ew0KICAgICAgICAicGxheXdyaWdodC1jb3JlIjogImNsaS5qcyINCiAgICAgIH0sDQogICAgICAi
ZW5naW5lcyI6IHsNCiAgICAgICAgIm5vZGUiOiAiPj0yMCINCiAgICAgIH0NCiAgICB9DQogIH0N
Cn0NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/playwright-mcp/package.json","encoding":"base64","size":142,"runtimeSha256":"fa2d7833c338aa21877bb5e774d56961cff851b778959a8729a9de66506c3210","normalizedSha256":"0a57a8ea94b92007ab61fb91c12c8777a1120edf6cc86d2f356e5dd042927512"} -->
```base64
ew0KICAibmFtZSI6ICJzb3VsLXBsYXl3cmlnaHQtbWNwIiwNCiAgInZlcnNpb24iOiAiMC4wLjAi
LA0KICAicHJpdmF0ZSI6IHRydWUsDQogICJkZXBlbmRlbmNpZXMiOiB7DQogICAgIkBwbGF5d3Jp
Z2h0L21jcCI6ICIwLjAuNzkiDQogIH0NCn0NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/ui-ux-pro-max/AGENTS.md","encoding":"base64","size":144,"runtimeSha256":"727063e579f064d96cfc35710fc835f2426f38ee630288c9d2e87ff78c21f86f","normalizedSha256":"8fb494001b1f37b7ac68ba3a8aa4fdc3fedf8e65b2bef08652b86aabd1653f27"} -->
```base64
IyBVSSBVWCBQcm8gTWF4IExvY2sNCg0KVUkgVVggUHJvIE1heCBDTEkgMi4xNS4w7J2YIOqzoOyg
lSDsnZjsobTshLEg7J6g6riIIO2MjOydvOydtOuLpC4NCg0KPCEtLSDsg4HsnIQgQUdFTlRTLm1k
IOq3nOy5mSDsnqzshJzsiKAg6riI7KeAIC0tPg0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/ui-ux-pro-max/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/ui-ux-pro-max/package-lock.json","encoding":"base64","size":11046,"runtimeSha256":"04901e8aa2155ae4cafc01881a74276fb17032746ea9db02ad86d0f0675e9aa0","normalizedSha256":"b7cebe863b3e3bfff5df204e512110f5b9b2b987f855ee33e173a5e57ca75ff9"} -->
```base64
ew0KICAibmFtZSI6ICJzb3VsLXVpLXV4LXByby1tYXgiLA0KICAidmVyc2lvbiI6ICIwLjAuMCIs
DQogICJsb2NrZmlsZVZlcnNpb24iOiAzLA0KICAicmVxdWlyZXMiOiB0cnVlLA0KICAicGFja2Fn
ZXMiOiB7DQogICAgIiI6IHsNCiAgICAgICJuYW1lIjogInNvdWwtdWktdXgtcHJvLW1heCIsDQog
ICAgICAidmVyc2lvbiI6ICIwLjAuMCIsDQogICAgICAiZGVwZW5kZW5jaWVzIjogew0KICAgICAg
ICAidWktdXgtcHJvLW1heC1jbGkiOiAiMi4xNS4wIg0KICAgICAgfQ0KICAgIH0sDQogICAgIm5v
ZGVfbW9kdWxlcy9hbnNpLXJlZ2V4Ijogew0KICAgICAgInZlcnNpb24iOiAiNi4zLjAiLA0KICAg
ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Fuc2ktcmVnZXgvLS9h
bnNpLXJlZ2V4LTYuMy4wLnRneiIsDQogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XcERmTDdO
TzZqN3RIODhJREJOVmRVSnhEaDlubUN0ZUFWVzlkc2VwODQ2WGR3RjRuYUNCSysvdEdMWDNLSmdj
cGdNUlhDRmxUTTJoS0dvSzlGc2RyUT09IiwNCiAgICAgICJsaWNlbnNlIjogIk1JVCIsDQogICAg
ICAiZW5naW5lcyI6IHsNCiAgICAgICAgIm5vZGUiOiAiPj0xMiINCiAgICAgIH0sDQogICAgICAi
ZnVuZGluZyI6IHsNCiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2hhbGsvYW5z
aS1yZWdleD9zcG9uc29yPTEiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL2No
YWxrIjogew0KICAgICAgInZlcnNpb24iOiAiNS42LjIiLA0KICAgICAgInJlc29sdmVkIjogImh0
dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2NoYWxrLy0vY2hhbGstNS42LjIudGd6IiwNCiAgICAg
ICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdOekJMMHJONmZNVVcrZjdBNklvNGg0MHFRbEcreEdtdE14
ZmJuSC9LN1RBdHQ4SlFXVlFLKzZnMFVYS01lVkpveVY1RWtrTnNFclE4cFZEM2JMSGJBPT0iLA0K
ICAgICAgImxpY2Vuc2UiOiAiTUlUIiwNCiAgICAgICJlbmdpbmVzIjogew0KICAgICAgICAibm9k
ZSI6ICJeMTIuMTcuMCB8fCBeMTQuMTMgfHwgPj0xNi4wLjAiDQogICAgICB9LA0KICAgICAgImZ1
bmRpbmciOiB7DQogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NoYWxrL2NoYWxr
P3Nwb25zb3I9MSINCiAgICAgIH0NCiAgICB9LA0KICAgICJub2RlX21vZHVsZXMvY2xpLWN1cnNv
ciI6IHsNCiAgICAgICJ2ZXJzaW9uIjogIjUuMC4wIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRw
czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9jbGktY3Vyc29yLy0vY2xpLWN1cnNvci01LjAuMC50Z3oi
LA0KICAgICAgImludGVncml0eSI6ICJzaGE1MTItYUNqNE81d0t5c3pqTW1EVDR0Wmo5M2t4eXlk
Ti9LNXpQV1NDZTYvMEFWL0FBMXBxZTVaQkl3MGEyWmZQUVY3bEw1L3liNUhzVXJlSjZVRkFGMXRF
UXc9PSIsDQogICAgICAibGljZW5zZSI6ICJNSVQiLA0KICAgICAgImRlcGVuZGVuY2llcyI6IHsN
CiAgICAgICAgInJlc3RvcmUtY3Vyc29yIjogIl41LjAuMCINCiAgICAgIH0sDQogICAgICAiZW5n
aW5lcyI6IHsNCiAgICAgICAgIm5vZGUiOiAiPj0xOCINCiAgICAgIH0sDQogICAgICAiZnVuZGlu
ZyI6IHsNCiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvc2luZHJl
c29yaHVzIg0KICAgICAgfQ0KICAgIH0sDQogICAgIm5vZGVfbW9kdWxlcy9jbGktc3Bpbm5lcnMi
OiB7DQogICAgICAidmVyc2lvbiI6ICIyLjkuMiIsDQogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6
Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY2xpLXNwaW5uZXJzLy0vY2xpLXNwaW5uZXJzLTIuOS4yLnRn
eiIsDQogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi15d3FWKzVNbXlMNEU3eWJYZ0t5czREdWda
YlgwRkM2TG53cmhqdXlrSWpuSzlrOE9RYWNRN2F4R0tuakRYV05obnMweG90M2JaSTVoNTVIOHlv
OWNKZz09IiwNCiAgICAgICJsaWNlbnNlIjogIk1JVCIsDQogICAgICAiZW5naW5lcyI6IHsNCiAg
ICAgICAgIm5vZGUiOiAiPj02Ig0KICAgICAgfSwNCiAgICAgICJmdW5kaW5nIjogew0KICAgICAg
ICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zaW5kcmVzb3JodXMiDQogICAg
ICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL2NvbW1hbmRlciI6IHsNCiAgICAgICJ2ZXJz
aW9uIjogIjEyLjEuMCIsDQogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1q
cy5vcmcvY29tbWFuZGVyLy0vY29tbWFuZGVyLTEyLjEuMC50Z3oiLA0KICAgICAgImludGVncml0
eSI6ICJzaGE1MTItVnc4cUhLM2JaTTl5L1AxMHUzVmliOG8vRGRrdkEyT3RQdFp2RDg3MVFLank3
NFdqMVdTS0ZJTE1QUlBTZFVTeDVSRksxYXJsSnpFdEE0UGtGZ25idUE9PSIsDQogICAgICAibGlj
ZW5zZSI6ICJNSVQiLA0KICAgICAgImVuZ2luZXMiOiB7DQogICAgICAgICJub2RlIjogIj49MTgi
DQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4Ijogew0KICAg
ICAgInZlcnNpb24iOiAiMTAuNi4wIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lz
dHJ5Lm5wbWpzLm9yZy9lbW9qaS1yZWdleC8tL2Vtb2ppLXJlZ2V4LTEwLjYuMC50Z3oiLA0KICAg
ICAgImludGVncml0eSI6ICJzaGE1MTItdG9VSTg0WVM1WW14VzIxOWVybmlXRDBDSVZPbzQ2eEdL
Q29sZU5RUmdPekRvcmdCaTF2NEQ3MS9PRnpnRDlHTzJVR0tJdjFDM1NwOERBbjArajV3N0E9PSIs
DQogICAgICAibGljZW5zZSI6ICJNSVQiDQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL2dldC1l
YXN0LWFzaWFuLXdpZHRoIjogew0KICAgICAgInZlcnNpb24iOiAiMS42LjAiLA0KICAgICAgInJl
c29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2dldC1lYXN0LWFzaWFuLXdpZHRo
Ly0vZ2V0LWVhc3QtYXNpYW4td2lkdGgtMS42LjAudGd6IiwNCiAgICAgICJpbnRlZ3JpdHkiOiAi
c2hhNTEyLVFSYnZESWJ4NllrbFVlNlJ4ZVRlbGVNUjB5djNjWUg2UHNQWkhjblZuN3h2N3pPMUJI
TjhyMFhFVHU4bjZZZTNRK2FodFNhcmMzV2d0TldtZWhJQmZBPT0iLA0KICAgICAgImxpY2Vuc2Ui
OiAiTUlUIiwNCiAgICAgICJlbmdpbmVzIjogew0KICAgICAgICAibm9kZSI6ICI+PTE4Ig0KICAg
ICAgfSwNCiAgICAgICJmdW5kaW5nIjogew0KICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHVi
LmNvbS9zcG9uc29ycy9zaW5kcmVzb3JodXMiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9t
b2R1bGVzL2lzLWludGVyYWN0aXZlIjogew0KICAgICAgInZlcnNpb24iOiAiMi4wLjAiLA0KICAg
ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWludGVyYWN0aXZl
Ly0vaXMtaW50ZXJhY3RpdmUtMi4wLjAudGd6IiwNCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy
LXFQMXZvelFSSStCTU9QY2pGenJqWHVRdmRhazJwSE5VTVpvZUcyZVJiaVNxeXZiRWYvd1F0RU9U
T1gxZ3VrNkUzdDM2UmthcWlTdDhBLzZZRWxOeExRPT0iLA0KICAgICAgImxpY2Vuc2UiOiAiTUlU
IiwNCiAgICAgICJlbmdpbmVzIjogew0KICAgICAgICAibm9kZSI6ICI+PTEyIg0KICAgICAgfSwN
CiAgICAgICJmdW5kaW5nIjogew0KICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9z
cG9uc29ycy9zaW5kcmVzb3JodXMiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVz
L2lzLXVuaWNvZGUtc3VwcG9ydGVkIjogew0KICAgICAgInZlcnNpb24iOiAiMi4xLjAiLA0KICAg
ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLXVuaWNvZGUtc3Vw
cG9ydGVkLy0vaXMtdW5pY29kZS1zdXBwb3J0ZWQtMi4xLjAudGd6IiwNCiAgICAgICJpbnRlZ3Jp
dHkiOiAic2hhNTEyLW1FMDBHbnphNUVFQjNEczBIZk15bGxaemJCcm1MT1gzdmZXb2o5QTlQRW5U
ZnJhdFEvQmNhSk91TWhua2hqWHZiMitGa1kzVnVIcXRBR3BUUG1nbEZRPT0iLA0KICAgICAgImxp
Y2Vuc2UiOiAiTUlUIiwNCiAgICAgICJlbmdpbmVzIjogew0KICAgICAgICAibm9kZSI6ICI+PTE4
Ig0KICAgICAgfSwNCiAgICAgICJmdW5kaW5nIjogew0KICAgICAgICAidXJsIjogImh0dHBzOi8v
Z2l0aHViLmNvbS9zcG9uc29ycy9zaW5kcmVzb3JodXMiDQogICAgICB9DQogICAgfSwNCiAgICAi
bm9kZV9tb2R1bGVzL2tsZXVyIjogew0KICAgICAgInZlcnNpb24iOiAiMy4wLjMiLA0KICAgICAg
InJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2tsZXVyLy0va2xldXItMy4w
LjMudGd6IiwNCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWVUSXpsVk9TVVIrSnhkREZlcEVZ
Y0JNdFo5UXFkZWYrcm56V2RSWnVNYk95d3U1dE8ydzJON3Jxam9BTlo1azl2eXdoTDZCcjFWUmpV
SWdUUXg0RTh3PT0iLA0KICAgICAgImxpY2Vuc2UiOiAiTUlUIiwNCiAgICAgICJlbmdpbmVzIjog
ew0KICAgICAgICAibm9kZSI6ICI+PTYiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1
bGVzL2xvZy1zeW1ib2xzIjogew0KICAgICAgInZlcnNpb24iOiAiNi4wLjAiLA0KICAgICAgInJl
c29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2xvZy1zeW1ib2xzLy0vbG9nLXN5
bWJvbHMtNi4wLjAudGd6IiwNCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWkyNG04cnB3aG1Q
SVM0enNjTnpLNk1TRWhrMERVV2EvOGlZUVd4aGZmVjhqa0k0UGh2czNGK3F1TDV4dlMwZ2RRUjBG
eVRDTU1IMzNZNzhkRFR6ekl3PT0iLA0KICAgICAgImxpY2Vuc2UiOiAiTUlUIiwNCiAgICAgICJk
ZXBlbmRlbmNpZXMiOiB7DQogICAgICAgICJjaGFsayI6ICJeNS4zLjAiLA0KICAgICAgICAiaXMt
dW5pY29kZS1zdXBwb3J0ZWQiOiAiXjEuMy4wIg0KICAgICAgfSwNCiAgICAgICJlbmdpbmVzIjog
ew0KICAgICAgICAibm9kZSI6ICI+PTE4Ig0KICAgICAgfSwNCiAgICAgICJmdW5kaW5nIjogew0K
ICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zaW5kcmVzb3JodXMi
DQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL2xvZy1zeW1ib2xzL25vZGVfbW9k
dWxlcy9pcy11bmljb2RlLXN1cHBvcnRlZCI6IHsNCiAgICAgICJ2ZXJzaW9uIjogIjEuMy4wIiwN
CiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy11bmljb2Rl
LXN1cHBvcnRlZC8tL2lzLXVuaWNvZGUtc3VwcG9ydGVkLTEuMy4wLnRneiIsDQogICAgICAiaW50
ZWdyaXR5IjogInNoYTUxMi00M3IybVJ2eis4SlJJS25XSiszajhKdGpSS1o2R21qemZhRS9xaUJK
bmlrTm5Zdi82YmFnUkoxa1VoTms4UjVFWC9Ha29iRCtyK3NmeENQSnNpS0JMUT09IiwNCiAgICAg
ICJsaWNlbnNlIjogIk1JVCIsDQogICAgICAiZW5naW5lcyI6IHsNCiAgICAgICAgIm5vZGUiOiAi
Pj0xMiINCiAgICAgIH0sDQogICAgICAiZnVuZGluZyI6IHsNCiAgICAgICAgInVybCI6ICJodHRw
czovL2dpdGh1Yi5jb20vc3BvbnNvcnMvc2luZHJlc29yaHVzIg0KICAgICAgfQ0KICAgIH0sDQog
ICAgIm5vZGVfbW9kdWxlcy9taW1pYy1mdW5jdGlvbiI6IHsNCiAgICAgICJ2ZXJzaW9uIjogIjUu
MC4xIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9taW1p
Yy1mdW5jdGlvbi8tL21pbWljLWZ1bmN0aW9uLTUuMC4xLnRneiIsDQogICAgICAiaW50ZWdyaXR5
IjogInNoYTUxMi1WUDc5WFVQeFYyQ2lnWVAzald3QVVGU2t1MmFLcUJIN3VUQWFwRldDQnF1dHNi
bURvOTZLWTVvOHVoNlUrL1lTSW41T3hKblhwNzNiZVZrcHFNSUdoQT09IiwNCiAgICAgICJsaWNl
bnNlIjogIk1JVCIsDQogICAgICAiZW5naW5lcyI6IHsNCiAgICAgICAgIm5vZGUiOiAiPj0xOCIN
CiAgICAgIH0sDQogICAgICAiZnVuZGluZyI6IHsNCiAgICAgICAgInVybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vc3BvbnNvcnMvc2luZHJlc29yaHVzIg0KICAgICAgfQ0KICAgIH0sDQogICAgIm5v
ZGVfbW9kdWxlcy9vbmV0aW1lIjogew0KICAgICAgInZlcnNpb24iOiAiNy4wLjAiLA0KICAgICAg
InJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL29uZXRpbWUvLS9vbmV0aW1l
LTcuMC4wLnRneiIsDQogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1WWEpqYzg3RlNjRjg4dWFm
UzNKbGxEZ3ZBbStjL1NsZnowNmxvcmoydUFZMzRybFV1ME50K3Y4d3JlaUltY3JnQWpqSUhwMXJY
cFREbExPR3cyOVd3UT09IiwNCiAgICAgICJsaWNlbnNlIjogIk1JVCIsDQogICAgICAiZGVwZW5k
ZW5jaWVzIjogew0KICAgICAgICAibWltaWMtZnVuY3Rpb24iOiAiXjUuMC4wIg0KICAgICAgfSwN
CiAgICAgICJlbmdpbmVzIjogew0KICAgICAgICAibm9kZSI6ICI+PTE4Ig0KICAgICAgfSwNCiAg
ICAgICJmdW5kaW5nIjogew0KICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9u
c29ycy9zaW5kcmVzb3JodXMiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL29y
YSI6IHsNCiAgICAgICJ2ZXJzaW9uIjogIjguMi4wIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRw
czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9vcmEvLS9vcmEtOC4yLjAudGd6IiwNCiAgICAgICJpbnRl
Z3JpdHkiOiAic2hhNTEyLXdlUCtCWjhNVk5ubENtOGMwUWRjMVdTV3E0UW43SSs5Q0pHbTdRYWxp
Nmc0NGUvUFV6YmpOcUpYNU5KOWxqbE5Nb3NmSnZnMWZLRUdJTGtsSzljd253PT0iLA0KICAgICAg
ImxpY2Vuc2UiOiAiTUlUIiwNCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7DQogICAgICAgICJjaGFs
ayI6ICJeNS4zLjAiLA0KICAgICAgICAiY2xpLWN1cnNvciI6ICJeNS4wLjAiLA0KICAgICAgICAi
Y2xpLXNwaW5uZXJzIjogIl4yLjkuMiIsDQogICAgICAgICJpcy1pbnRlcmFjdGl2ZSI6ICJeMi4w
LjAiLA0KICAgICAgICAiaXMtdW5pY29kZS1zdXBwb3J0ZWQiOiAiXjIuMC4wIiwNCiAgICAgICAg
ImxvZy1zeW1ib2xzIjogIl42LjAuMCIsDQogICAgICAgICJzdGRpbi1kaXNjYXJkZXIiOiAiXjAu
Mi4yIiwNCiAgICAgICAgInN0cmluZy13aWR0aCI6ICJeNy4yLjAiLA0KICAgICAgICAic3RyaXAt
YW5zaSI6ICJeNy4xLjAiDQogICAgICB9LA0KICAgICAgImVuZ2luZXMiOiB7DQogICAgICAgICJu
b2RlIjogIj49MTgiDQogICAgICB9LA0KICAgICAgImZ1bmRpbmciOiB7DQogICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3NpbmRyZXNvcmh1cyINCiAgICAgIH0NCiAg
ICB9LA0KICAgICJub2RlX21vZHVsZXMvcHJvbXB0cyI6IHsNCiAgICAgICJ2ZXJzaW9uIjogIjIu
NC4yIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9wcm9t
cHRzLy0vcHJvbXB0cy0yLjQuMi50Z3oiLA0KICAgICAgImludGVncml0eSI6ICJzaGE1MTItTnhO
di9rTGd1Q0E3cDNqRThvTDJhRUJzckpXZ0Fha0JwZ21nSzZscFBXVitXdU9tWTZyMi96YkFWblAr
VDhiUWxBMG56SFhTSlNKVzBIcTd5bGFEMlE9PSIsDQogICAgICAibGljZW5zZSI6ICJNSVQiLA0K
ICAgICAgImRlcGVuZGVuY2llcyI6IHsNCiAgICAgICAgImtsZXVyIjogIl4zLjAuMyIsDQogICAg
ICAgICJzaXN0ZXJhbnNpIjogIl4xLjAuNSINCiAgICAgIH0sDQogICAgICAiZW5naW5lcyI6IHsN
CiAgICAgICAgIm5vZGUiOiAiPj0gNiINCiAgICAgIH0NCiAgICB9LA0KICAgICJub2RlX21vZHVs
ZXMvcmVzdG9yZS1jdXJzb3IiOiB7DQogICAgICAidmVyc2lvbiI6ICI1LjEuMCIsDQogICAgICAi
cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVzdG9yZS1jdXJzb3IvLS9y
ZXN0b3JlLWN1cnNvci01LjEuMC50Z3oiLA0KICAgICAgImludGVncml0eSI6ICJzaGE1MTItb01B
MmRjcnc2dTBZZnhKUVhtMzQyYkZLWC9FNHNHOXJiVHpPOXB0VWNSL2U4QTMzY0h1dlN0aVlPd0g3
ZnN6a1psWjF6L3RhOUFBb1BrMkY0cUlPSEE9PSIsDQogICAgICAibGljZW5zZSI6ICJNSVQiLA0K
ICAgICAgImRlcGVuZGVuY2llcyI6IHsNCiAgICAgICAgIm9uZXRpbWUiOiAiXjcuMC4wIiwNCiAg
ICAgICAgInNpZ25hbC1leGl0IjogIl40LjEuMCINCiAgICAgIH0sDQogICAgICAiZW5naW5lcyI6
IHsNCiAgICAgICAgIm5vZGUiOiAiPj0xOCINCiAgICAgIH0sDQogICAgICAiZnVuZGluZyI6IHsN
CiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvc2luZHJlc29yaHVz
Ig0KICAgICAgfQ0KICAgIH0sDQogICAgIm5vZGVfbW9kdWxlcy9zaWduYWwtZXhpdCI6IHsNCiAg
ICAgICJ2ZXJzaW9uIjogIjQuMS4wIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lz
dHJ5Lm5wbWpzLm9yZy9zaWduYWwtZXhpdC8tL3NpZ25hbC1leGl0LTQuMS4wLnRneiIsDQogICAg
ICAiaW50ZWdyaXR5IjogInNoYTUxMi1ienlaMWU4OHc5TzFpTkpiS25PbHZZVHJXUERsNDZPMWJH
MEQzWEludis5dGtQcnhyTjhqVVVUaUZsRGtrbUtXZ24xTTZDZklBMTNTdUdxT2E5S29ydz09IiwN
CiAgICAgICJsaWNlbnNlIjogIklTQyIsDQogICAgICAiZW5naW5lcyI6IHsNCiAgICAgICAgIm5v
ZGUiOiAiPj0xNCINCiAgICAgIH0sDQogICAgICAiZnVuZGluZyI6IHsNCiAgICAgICAgInVybCI6
ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvaXNhYWNzIg0KICAgICAgfQ0KICAgIH0sDQog
ICAgIm5vZGVfbW9kdWxlcy9zaXN0ZXJhbnNpIjogew0KICAgICAgInZlcnNpb24iOiAiMS4wLjUi
LA0KICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Npc3RlcmFu
c2kvLS9zaXN0ZXJhbnNpLTEuMC41LnRneiIsDQogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1i
TEdHbFIxUXhCY3lubjJkNVltRFg0TUdqbFp2eTJNUkJEUk5ITEo4Vkk2bDYrOUZVaXlURk5KMEl2
ZU9TUDBiY1hnVkRQUmNmR3FBMHBqYXFVcGZWZz09IiwNCiAgICAgICJsaWNlbnNlIjogIk1JVCIN
CiAgICB9LA0KICAgICJub2RlX21vZHVsZXMvc3RkaW4tZGlzY2FyZGVyIjogew0KICAgICAgInZl
cnNpb24iOiAiMC4yLjIiLA0KICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBt
anMub3JnL3N0ZGluLWRpc2NhcmRlci8tL3N0ZGluLWRpc2NhcmRlci0wLjIuMi50Z3oiLA0KICAg
ICAgImludGVncml0eSI6ICJzaGE1MTItVWhEZkhtQTkyWUFsTm5DZmhtcTBWZU5MNWJEYmlaR2c3
c1oySXZQc1h1YkdraU5hOUVDK3RVVHNqQlJzWVVBejg3YnRJNi8xd2Y0WG9WdlEzdVJubVE9PSIs
DQogICAgICAibGljZW5zZSI6ICJNSVQiLA0KICAgICAgImVuZ2luZXMiOiB7DQogICAgICAgICJu
b2RlIjogIj49MTgiDQogICAgICB9LA0KICAgICAgImZ1bmRpbmciOiB7DQogICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3NpbmRyZXNvcmh1cyINCiAgICAgIH0NCiAg
ICB9LA0KICAgICJub2RlX21vZHVsZXMvc3RyaW5nLXdpZHRoIjogew0KICAgICAgInZlcnNpb24i
OiAiNy4yLjAiLA0KICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3Jn
L3N0cmluZy13aWR0aC8tL3N0cmluZy13aWR0aC03LjIuMC50Z3oiLA0KICAgICAgImludGVncml0
eSI6ICJzaGE1MTItdHNhVElrS1c5YjROK0FFaitTVkErV2hKelY3L3pNaGNTdTc4bUxLV1NrN2NY
TU9TSHNCS0ZXVXMwZld3cThReUszTWdKQlFSWDZHYmk0a1liZHZHa1E9PSIsDQogICAgICAibGlj
ZW5zZSI6ICJNSVQiLA0KICAgICAgImRlcGVuZGVuY2llcyI6IHsNCiAgICAgICAgImVtb2ppLXJl
Z2V4IjogIl4xMC4zLjAiLA0KICAgICAgICAiZ2V0LWVhc3QtYXNpYW4td2lkdGgiOiAiXjEuMC4w
IiwNCiAgICAgICAgInN0cmlwLWFuc2kiOiAiXjcuMS4wIg0KICAgICAgfSwNCiAgICAgICJlbmdp
bmVzIjogew0KICAgICAgICAibm9kZSI6ICI+PTE4Ig0KICAgICAgfSwNCiAgICAgICJmdW5kaW5n
Ijogew0KICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zaW5kcmVz
b3JodXMiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL3N0cmlwLWFuc2kiOiB7
DQogICAgICAidmVyc2lvbiI6ICI3LjIuMCIsDQogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y
ZWdpc3RyeS5ucG1qcy5vcmcvc3RyaXAtYW5zaS8tL3N0cmlwLWFuc2ktNy4yLjAudGd6IiwNCiAg
ICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXlEUE1OanA0V3lmWUJrSG5qSVJMZmNhMWk2S015R0N0
c1Znb0tlL3oxKzZ2dWtnYUVOZGdHQlp0K1ptS1BjNGdhdnZFWjVPZ0hmSGRyYXpoZ055Rzd3PT0i
LA0KICAgICAgImxpY2Vuc2UiOiAiTUlUIiwNCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7DQogICAg
ICAgICJhbnNpLXJlZ2V4IjogIl42LjIuMiINCiAgICAgIH0sDQogICAgICAiZW5naW5lcyI6IHsN
CiAgICAgICAgIm5vZGUiOiAiPj0xMiINCiAgICAgIH0sDQogICAgICAiZnVuZGluZyI6IHsNCiAg
ICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2hhbGsvc3RyaXAtYW5zaT9zcG9uc29y
PTEiDQogICAgICB9DQogICAgfSwNCiAgICAibm9kZV9tb2R1bGVzL3VpLXV4LXByby1tYXgtY2xp
Ijogew0KICAgICAgInZlcnNpb24iOiAiMi4xNS4wIiwNCiAgICAgICJyZXNvbHZlZCI6ICJodHRw
czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy91aS11eC1wcm8tbWF4LWNsaS8tL3VpLXV4LXByby1tYXgt
Y2xpLTIuMTUuMC50Z3oiLA0KICAgICAgImludGVncml0eSI6ICJzaGE1MTItRDBKL0M0MHhyenpp
NXNpNlpMdFJHYkVFNXYzUWpMN2Q0d0pObmFzbVAzeWZEU3JHaXVxVkNkd1FpcUNObklrYnFPdVZv
QS91b25SMm8xV0tYaDN1cnc9PSIsDQogICAgICAibGljZW5zZSI6ICJNSVQiLA0KICAgICAgImRl
cGVuZGVuY2llcyI6IHsNCiAgICAgICAgImNoYWxrIjogIl41LjMuMCIsDQogICAgICAgICJjb21t
YW5kZXIiOiAiXjEyLjEuMCIsDQogICAgICAgICJvcmEiOiAiXjguMS4xIiwNCiAgICAgICAgInBy
b21wdHMiOiAiXjIuNC4yIg0KICAgICAgfSwNCiAgICAgICJiaW4iOiB7DQogICAgICAgICJ1aXBy
byI6ICJkaXN0L2luZGV4LmpzIg0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/npm-locks/ui-ux-pro-max/package.json","encoding":"base64","size":143,"runtimeSha256":"702139e69a85ed8b79f6116eb2761299d916edfa6a151815f360524996d7b19c","normalizedSha256":"7a5607664d82b48ac7be2cdfec74b58798af43125cb7228307f1c9351a5896ce"} -->
```base64
ew0KICAibmFtZSI6ICJzb3VsLXVpLXV4LXByby1tYXgiLA0KICAidmVyc2lvbiI6ICIwLjAuMCIs
DQogICJwcml2YXRlIjogdHJ1ZSwNCiAgImRlcGVuZGVuY2llcyI6IHsNCiAgICAidWktdXgtcHJv
LW1heC1jbGkiOiAiMi4xNS4wIg0KICB9DQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/python-locks/AGENTS.md","encoding":"base64","size":171,"runtimeSha256":"68e9ad4df68f06d24c8589e6563fd13d3401faf0e91261e386e15a0768fc50dc","normalizedSha256":"660d72668979cb7a09c3a7576c27363e4369e22ddde28ea60c0815a95f56c025"} -->
```base64
IyBQeXRob24gZGVwZW5kZW5jeSBsb2Nrcw0KDQpUaGlzIGRpcmVjdG9yeSBjb250YWlucyByZXBy
b2R1Y2libGUgUHl0aG9uIGRlcGVuZGVuY3kgc2V0cyBvd25lZCBieSB0aGUgc2V0dXAgZW5naW5l
Lg0KDQo8IS0tIERvIG5vdCByZXN0YXRlIGluaGVyaXRlZCBBR0VOVFMubWQgcnVsZXMuIC0tPg0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/python-locks/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/python-locks/document-mcp/AGENTS.md","encoding":"base64","size":178,"runtimeSha256":"78bf1f83c9018190ef254c5ec1768adb4539481090b660543019966fdd86241d","normalizedSha256":"433991d715013f0117e3b350bd67cf7cf31459e941107c29e59a271441ad342f"} -->
```base64
IyBEb2N1bWVudCBNQ1AgUHl0aG9uIGxvY2sNCg0KVGhpcyBkaXJlY3RvcnkgcGlucyB0aGUgc2hh
cmVkIFdpbmRvd3MgUHl0aG9uIHJ1bnRpbWUgdXNlZCBieSB0aGUgZml2ZSBkb2N1bWVudCBNQ1Ag
c2VydmVycy4NCg0KPCEtLSBEbyBub3QgcmVzdGF0ZSBpbmhlcml0ZWQgQUdFTlRTLm1kIHJ1bGVz
LiAtLT4NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/python-locks/document-mcp/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/python-locks/document-mcp/requirements.in","encoding":"base64","size":261,"runtimeSha256":"1476fb7cc8e73ce4fae2701c7a308d17c623c0d9eca80c4dcbaa0eaa28d81639","normalizedSha256":"d8b3b3204e060bfdd02e8c7617723a18f68c2a56e3f78eb7b97715c4ceb91c61"} -->
```base64
IyBUb3AtbGV2ZWwgcGFja2FnZXMgdmVyaWZpZWQgZm9yIHRoZSBmaXZlIGxvY2tlZCBkb2N1bWVu
dCBNQ1Agc2VydmVycy4NCiMgUmVzb2x2ZSBvbmx5IGZvciBDUHl0aG9uIDMuMTIgb24gV2luZG93
cyB4NjQsIHRoZW4gaW5zdGFsbCBmcm9tIHRoZSBzb3VsIHdoZWVsaG91c2UuDQptY3A9PTEuMjgu
MQ0KcHlod3B4PT0xLjcuMg0KcHl3aW4zMj09MzEyDQpweXBkZltjcnlwdG9dPT02LjE0LjINCnB5
cGRmaXVtMj09NS4xMi4xDQpQaWxsb3c9PTEyLjMuMA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/python-locks/document-mcp/requirements.lock","encoding":"base64","size":61325,"runtimeSha256":"a2085c24af30b2b2032764f6eb87bfc4aa261e710e433c3f7ca461b4457a228f","normalizedSha256":"959b50094a231b031f1182b9bd209ad340a6d704567fbb75a4d25b772af287ce"} -->
```base64
YW5ub3RhdGVkLXR5cGVzPT0wLjguMCBcDQogICAgLS1oYXNoPXNoYTI1NjoxM2IyYmVhYWQ5ODVl
MDVlMmQ2NDA3ZWU0YzRmMzU1OTBiMTFmOGQ2OTNhMjU4YTU2MTA1NWNhYzhmNjRjYWI3IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmYwNzJmNGQ4MDRlYTM1OWU0ZWFmMTk4YjFhZjdhOGIwOTQzODgxYTg3
ZjMxYmI3NjRmOGJmMjE5YmI5NDE5ZTANCiAgICAjIHZpYSBweWRhbnRpYw0KYW55aW89PTQuMTQu
MiBcDQogICAgLS1oYXNoPXNoYTI1Njo5ZjUwNWRkYTVhYzlmMGM4MzA5YjVlOGJkNDQ1YThjMmJm
NzI0NmYzY2U5NTAxMjFlNDVlYTE1YmM0MWQxNDk0IFwNCiAgICAtLWhhc2g9c2hhMjU2OmNmYTEz
OWYzZWQxYTIzZWU4Zjg4YTE0NWRkYjVhYzc2MDViOGJiZmQ4NTkyYmFhY2Q3Y2UzZDhiYjQzMTNj
N2YNCiAgICAjIHZpYSBodHRweCwgbWNwLCBzc2Utc3RhcmxldHRlLCBzdGFybGV0dGUNCmF0dHJz
PT0yNi4xLjAgXA0KICAgIC0taGFzaD1zaGEyNTY6YzY0N2FhNGExMmRmYmFkOTMzM2NhNGU3MWZl
NjJkZGMzNmY0ZTYzYjJkMjYwYTM3YThiODNkMmYwNDNhYzMwOSBcDQogICAgLS1oYXNoPXNoYTI1
NjpkMDNjZWI4OWNiMzIyYThmZDcwNmQ0ZmI5MTk0MDczN2I2NjQyYWEzNjk5OGZlMTMwYTliYzk2
Yzk4NWVmZjMyDQogICAgIyB2aWEganNvbnNjaGVtYSwgcmVmZXJlbmNpbmcNCmNlcnRpZmk9PTIw
MjYuNy4yMiBcDQogICAgLS1oYXNoPXNoYTI1Njo2MmYyMjc0MmI1OGExYTMzMDE0YTJiNmI3MDY1
ODhhOGQ3ZTJhODhhZTdiZDFhNmViZThjOTkyOTI4NDgzNzc1IFwNCiAgICAtLWhhc2g9c2hhMjU2
Ojc0MWUyYzNiMzUxZGRmMTY5YTczOGRhOWYyYzA0ODYwOGZmN2YyYzVjYzAyZjFlYmM2YjExOGJi
MDkwZDVkNTUNCiAgICAjIHZpYSBodHRwY29yZSwgaHR0cHgNCmNmZmk9PTIuMS4xIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjA0NmJmYzI0OTExYjM3ODUxZWUxYjUxYWFiOGJmZmU3MTNkODljNjhjNmEw
NTdiMDk0ODRjZTlmZDVmNjliNGUgXA0KICAgIC0taGFzaD1zaGEyNTY6MDZjNzJiYjc2NjA1YTRi
MGNkMGFhZDY5MzBiNjlkNGJhZjdkZDVkODA2Y2ZjNDA5YjgyNDE5MTA5OTcwMGU2NiBcDQogICAg
LS1oYXNoPXNoYTI1NjowYmVjZWFhYmU1NmFmNjg2ODk1MTM2YTJkZTc4ZGI1NGVjZDhlNDA0NmIy
MzZiOGZkNmQ2Y2I2MTM4OWU5YmYyIFwNCiAgICAtLWhhc2g9c2hhMjU2OjE1NDg1MjU0NTAxMWY3
Nzk5MTdiMTFjNzhkYjIzNThkMDk1ZGE2MmE5YTE3MmI3OGFkMGE1ODNlZTVhZGMwZDAgXA0KICAg
IC0taGFzaD1zaGEyNTY6MTk0Y2ZmYTg4OTA5OGNlZDk5NzZjM2ZjNjM0MDMwNWU0M2Y2MzAzNjU3
ZDI5OGRhNTUzNjY5MDdjMDVjMjJkNiBcDQogICAgLS1oYXNoPXNoYTI1NjoxOWVlNjEyN2VlMzRk
ZTdkODNjZTNkMzcxZWJjNWVkOTFhZGRiZGNjMzlmOWFiMTVjZTRlYjM1YTRlNTM0OTcxIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OjFhMThhNTdiNThjZmIyMWZjMjhkNzJlODc2YWNmMTBlYWVkNjdhMWVk
OTYyMjZmOTJhZjRkZjY4MWQ1NzFjNGMgXA0KICAgIC0taGFzaD1zaGEyNTY6MWFhNTY0NWMzMDQ2
OWIwOTUzMGM0ZWJjYTc3ZWJmOGYxNzYxODI5M2M1OGY4NTQ5Y2IxYTU0M2E1MDIzNmU3ZCBcDQog
ICAgLS1oYXNoPXNoYTI1NjoxZGVhMGU0ZDdkNGYxMWY2MTlmZThjMWQ3NmNhZjQ5ZTI0NDA1YjRi
NTc0M2MwZTNiZTE2YTUwMGVjZDkzMGM5IFwNCiAgICAtLWhhc2g9c2hhMjU2OjIwOGY5NDFiYjlk
MThlNzY4MTM4Njc3ZjBhNmQyY2UwMWY1OTBkZjU2MDQzZGRhMWRmMTUzNWFjNTdjODg1MTcgXA0K
ICAgIC0taGFzaD1zaGEyNTY6MjEwMDE5YjZjN2NmMDdmMDgxYjRjNTQ2MzVjOGNmNzQ0Mzc3MDAx
MzUwZTI5Y2MwZjgxYzQzNzdiNDc5NzczNSBcDQogICAgLS1oYXNoPXNoYTI1NjoyNDZmYTQwY2U4
NjQ1YTYxNGZmNjgyZTBiNzBmMzcxMzRlNDYwZWFmOTNhNzc1ZTBjYmUzY2NhNTg1YTY3YTgwIFwN
CiAgICAtLWhhc2g9c2hhMjU2OjI1NzkyZWFjMjc4Nzc2MDllN2JiMDZkNDJmZjg4Mjc4YTY2MjRm
ZmYyYmE5YmJiNTIzYzA5NjE2YjExN2U4MGYgXA0KICAgIC0taGFzaD1zaGEyNTY6MjczNTBkYWEx
MWQ0ZjEwYzU0MGU2ZTg5ZGFkYTRjNTRmZWI3MjU2YWQwM2U5YTRkYzA3NWViYWQ3YmEzNjBkMSBc
DQogICAgLS1oYXNoPXNoYTI1NjoyODkwN2FiOWJmYjZhYTEzMTg0Y2ZjMTdjNmI4ZTEwMjNjNWFi
NmZkNzA3NmQ4YzIwYTM1ZTU5ZmUwNGY4ZjI5IFwNCiAgICAtLWhhc2g9c2hhMjU2OjJhZTY0YmU3
OTJiODk2NmYyYzY5NTM4MTk5NzI4YjI5MGUzNDcyNjU2Mjg5NmRmMWU1ZGM4ZmZkOGQ4MTg4ZTgg
XA0KICAgIC0taGFzaD1zaGEyNTY6MzEzNDgwOTdmZjViYmU4MjdjY2M0MTc5NWQ0ZGQwOTlkOWYw
NjI1ZTdkZWYwMGVlNjUzYzEzN2E0OTBjMmE2YyBcDQogICAgLS1oYXNoPXNoYTI1NjozMTQzZDgx
ZTI5ZTFlMjBhOWNlMTA5MDFlYzM2OTAxMjk0Nzg3NjU5NmY3NWEyMjIyMzU5NjVmMmI3YWU4MzJl
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjMyMjJiYTVkNjc4ZjgwYTAzMGU2YWZiY2MzM2RjMWFlNWNi
NDVmYWNhYmI2MWNlZTJjNzAxNmI4NDMyZmRlNDggXA0KICAgIC0taGFzaD1zaGEyNTY6MzMxMWVk
NjBkMzZmODMzNzg3OTRlMTAwOWFjNjI1OGJhZmJmODFmNzg4OGI0Y2FhN2IzNWE1MjFlM2Y5NTgx
MyBcDQogICAgLS1oYXNoPXNoYTI1NjozMzQ2NDRmYmFjNGVmZjczZDk4NWExN2E5MTIyNmRmNTVk
MGYzOTQxNjBjNGNmYjg4MGUwODRjOGY3MTYxY2FjIFwNCiAgICAtLWhhc2g9c2hhMjU2OjM0ZTI2
MWY3OGNiNmNlYWFhMzZmNDJmMjYxM2Y0MzgwZDk0ZDljNzU5YTljNzNjNzY5ZWU2ZTAyNDczNjQ2
MzIgXA0KICAgIC0taGFzaD1zaGEyNTY6MzYzZTA1ZmE3OGUxNTExNmMzYzMyYzIxMGVlMzY4ODRm
ZDZiOWFmYTZkNDQwZTQ3MTEyYzNiZDUxMWQ2NGNiNiBcDQogICAgLS1oYXNoPXNoYTI1NjozOThh
ZmYzM2NlZTI3NjdlM2U3ODFkMjU1NGM1NGJkMGRmZjM4NmJiNDM3NTgxZTBkODAxMWZkZTFhOTQy
ZWMxIFwNCiAgICAtLWhhc2g9c2hhMjU2OjNkMjJhMjBiMWZiMTYzMmNjNzJjMjJmOTVmN2IwZDI5
NjFjM2UxYzIzNWYyNDViYTRjNjA2YzQ3NzEwMzU2NTkgXA0KICAgIC0taGFzaD1zaGEyNTY6NDJh
NDk0Y2VlMzQ0MzdmMDU1NDY0NTUxNDRmMmI1ZDlhYzA5YjFmYWNlNjJiY2ZjZTU5N2QyZTUyMTA2
NjY4OCBcDQogICAgLS1oYXNoPXNoYTI1Njo0MmUyZjc2Yjk0NTVmNWE5YTg0NGY3NzBiZjNlMjAw
ZWQzZGEwZTE1ZjVkZjNkYjljMzFmZTgwYjA0YjNkMDA0IFwNCiAgICAtLWhhc2g9c2hhMjU2OjQy
ZjY5MzBjMzFkYzdmNTA3MzJjOWFlNzkzYzI3ODZjN2I2YjA0NDE5NTk2N2JiZGRlNDBiYjliZTgx
YzRjYzAgXA0KICAgIC0taGFzaD1zaGEyNTY6NDU2YTYxZmE1MmQ1NzllYmY5ZGYyZTk1NTJlYWQ1
MTI5ODU1ZGJhZmY2YzFlNWE5YjFiYzQwODgwOWJkYzA2MiBcDQogICAgLS1oYXNoPXNoYTI1Njo0
NzFjZWU2NTNhZTg4ZGU2MjA5NjU1MmU2ZDI0Y2NiNGE1YWRiOGM4YzlmMTBiNTA1NGQwMTIyYzE1
YmYyNzc5IFwNCiAgICAtLWhhc2g9c2hhMjU2OjQ5Y2JjNzBlNjU0MmQ0Y2NjY2I5MzY1NThkMTA2
NGE4MDEyNTQxZTc4ZjgyMWY5NTVjZmYyNGUzNTc3NzZjOTQgXA0KICAgIC0taGFzaD1zaGEyNTY6
NGE3YzkzNGY3MzYwZThjZDY0ZmU5ZWZhZGNiZDEwYzdjNjM2NGY1MzFlNDMyYjlhNGJmNWNjYmM5
ZTBlOGI1MCBcDQogICAgLS1oYXNoPXNoYTI1Njo0YmU5NjM0M2U0MjJmMmRmY2QxMmFiNWM5ZjVh
ZWJlMDNmODJmNzM3YzZiZmZlY2E2ODMwYjM4NzVjYjQ0YWFiIFwNCiAgICAtLWhhc2g9c2hhMjU2
OjRmNDIxNDFmYzE0MjUwZGU2ZGRlNWVlN2VhNDQzMmJlMDE3MjUyZDkxZjE5YzVhZDA0M2MwODRj
ZWE2MjljYWMgXA0KICAgIC0taGFzaD1zaGEyNTY6NTA3YTI0YzI4MmUwZjQyZjhlZDczN2NmMDQ4
NTcyY2JmNTgwNDY4ZGE1NTU1NzY0YTgzMzE3MzVlOWM3MzZiNiBcDQogICAgLS1oYXNoPXNoYTI1
Njo1MWIzMWQxYzk4Mjc0ODQ0Y2ZkNzgzOGNlMDBiZmMyN2M3NDIzYTRkYzAwZmMwNzcyZmMzMzMx
YzJjYzkwNjc2IFwNCiAgICAtLWhhc2g9c2hhMjU2OjU4YWNiOGFiOGUyOTVlNmM1ZWExMmY4ODhj
YmIxM2NmMjE1MTFlZjJhMzMwM2EyM2Y0MzI1YzI5ZDE3ZmU1YzEgXA0KICAgIC0taGFzaD1zaGEy
NTY6NWE1OWNjMWM0NDQyYmMzZDVjNzAzYmY3MjBiNTExMzhkMGJmYzE3MzYxODgwN2M5ZWUyNDkw
YTc1NDFkZDNkOSBcDQogICAgLS1oYXNoPXNoYTI1Njo1YmI0ZTdlYTk1ZGNkNmEwMTRhNmZlZjYy
ZTYyNDY3ZDY3ZDhlNTgyMzI2NDQzZjNkNjhlNzFkNjMyMGE5ZmNmIFwNCiAgICAtLWhhc2g9c2hh
MjU2OjVjNThmZTYxM2RjNWU1MzM2MzU3ZWZmNTU1ODI0YTMxNGQ4ZTQzMjgyNjAwNDM1YzhkMWNi
NmE3YTJmZWRkMTMgXA0KICAgIC0taGFzaD1zaGEyNTY6NWU3Y2VjYmFhZGI4Mzg4NDc5M2UwNTgy
OGNlZTU5YjIxMGIyNDU4M2I5Yzc0MjVkMGJhNmE3NTRmZTIyZWI0ZSBcDQogICAgLS1oYXNoPXNo
YTI1Njo2MTZmMDk3ZjJmZTQxNWJjOTJhMjQ3ZjAyZTExZjYzNGUxZjllOWE4M2QzMjdlM2M5MTVj
MTUwODljODc4NjllIFwNCiAgICAtLWhhc2g9c2hhMjU2OjYzYmJmZDVkZWQxN2M0ODQwYWMwN2Nk
OGYxYzIxYmE5ZDk3MDgxNDFmODQwYjMyNGY0MjJmNDFiMjA3ZTM5NzMgXA0KICAgIC0taGFzaD1z
aGEyNTY6NjRmYWVhMjBmNGUyNjEzMzYzYTFhOWI5YzdkZDczMDU4ZjNlY2QwMDEzM2E1MTFlNzJh
ZDdjNTExNjU4ZjUyNyBcDQogICAgLS1oYXNoPXNoYTI1Njo2NjFjMjk4YjQ4MjFlZGViZWFkMGM5
MWVkZDJiMDAzNzRkNjdhZDdjNWExZjdhOTFkNDQ0MjYzM2I3OWQ2YTcyIFwNCiAgICAtLWhhc2g9
c2hhMjU2OjY4ZTYyZmUxMWYzMGQ1Y2E4Mjg5MjQyODY2ZjBhNTI5MTQwMmQ4NTI5Y2EyMTc4YWI4
YWZjNWM5Njk0YWU4OTAgXA0KICAgIC0taGFzaD1zaGEyNTY6NmE4ZGRkZWY0NzZmYWI5NmQwNjZk
NTc4ZmM4ODUyNjc2N2I4MzZhYjVhYjIxNzU0ZTFkNWJmMzg3OWMzMWM3YyBcDQogICAgLS1oYXNo
PXNoYTI1Njo2ZTE5MjYyM2M0OWM5NDQyMTYxNmE1Nzc4ZmJhMzVjZjBkNWE4ZDAwMDY1MGMxOTY3
ZWY0NDQ4ZWU1Y2RkOTkwIFwNCiAgICAtLWhhc2g9c2hhMjU2OjcyMjVlNDUxNGVkYjY0ZWI2NzQw
MzI0MzUzZTBkYTA3MTE5NTRmZDhkN2RhNDU3Njc1NWIxYzZlMDliNjk3Y2QgXA0KICAgIC0taGFz
aD1zaGEyNTY6NzVmODA1NTdkMTM4OWVkZGJkMGRlMjY4MWY2YTM5MGEwYzUzMzhjMzFkZGFhODIx
MzgxYzIwM2ZjM2ZkNTBkOSBcDQogICAgLS1oYXNoPXNoYTI1Njo3NzBkZTlkYjExZTg0MjEzYmVl
YzUwMWNmY2FhMDEzYjAxOTgyMGNhODgxZTAzMzQ0ZGVhNTg0NGY3ODc2ZDk0IFwNCiAgICAtLWhh
c2g9c2hhMjU2Ojc3NTBjNjQ0OWRmZjc4NjRiYjliYjI3ZGRmYjAyNjc3NTYxODkyMDFhM2FmYzkx
MWQ4MmIzY2FhY2Q3MGRmYzMgXA0KICAgIC0taGFzaD1zaGEyNTY6N2JkZTVlNGNjNWMxMDE0MDg1
OTg0MmI5ZDM4M2FmMjkyYjIyNjM5YTRkZmZiNzI1MzE0YmFmNDU5NjhjZWY4MCBcDQogICAgLS1o
YXNoPXNoYTI1Njo3Y2U3MTNhY2U3YzBlNDUyMDUzNWI0MmI3N2VhYTc0MmMxNmRhYjgxMzk3ODA2
NDkxM2U1YTNjZjgyOTczYjQxIFwNCiAgICAtLWhhc2g9c2hhMjU2OjdkYTBjNWVmZjgwZjAxOTdm
M2IzZDEyMzJlYzVhNjgyYTkzMjVmNGFlOTAxNmE3OGY1ZjVjYTM1ZjljZWQxZjUgXA0KICAgIC0t
aGFzaD1zaGEyNTY6N2RiYjYxZmUzYTc2OTk0NjgwMzBmNzFiYmU1ZjhhMGUzMjZhMTUxZGFhOTFi
ZWIxMWE2ZmMxZjk4MGM1NWUxYyBcDQogICAgLS1oYXNoPXNoYTI1Njo4MTFiZDFlMjFkMzJkZTEy
ZWZjYTMyMzkzYTBhYjNmNTEzM2I1NGZjZTliZDQ0YjhiZDc3YWIwN2RhMTRiZjZhIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjhlZjUzYjJkZTliY2I5MTk3ZDMxODU0MjU2NTc1ZDU5ZGJhYzBjYmE3MmFj
NjI3YmIyOTFlZjVlY2ViNzRiZTQgXA0KICAgIC0taGFzaD1zaGEyNTY6OTM3YzAwNTJjMDVhMzFj
YTFkYWYxOGRlMzE1OGVlZDRkYmZjYjljYzEwN2FkYmVhMjI3NzI4ZDY0N2JlNzAxZSBcDQogICAg
LS1oYXNoPXNoYTI1Njo5ZDIwNTUwNTBlYTcxNmJkMzhiN2Y3ZjE1NzljMjc1Mzg2NjQ2YjQ4OTRj
MTU1YTNlMmYzY2Q2MmVkNDFiN2M2IFwNCiAgICAtLWhhc2g9c2hhMjU2OjlmOGQxNzc2MjFkZTVj
YjM4ZWUzZTczMWVkYTQ1ZDQyMWRiMDkzZWMwNzM5ZjQ2YTU1OTRiYWJkYTc5ODdhOTggXA0KICAg
IC0taGFzaD1zaGEyNTY6YTJkNzc1NWJlZjVhMTJlZDQ4OGY0ZWYxZjFiNjllZTkxOTFkNzM5NjA4
M2I3NTVhNWQyMjk1ZjZlZGI0NzY4YiBcDQogICAgLS1oYXNoPXNoYTI1NjphNDhkNjJhYjlkNmY0
Zjk4Yzk4MzIyM2E1NDdhZjQ0YmU2Y2EzNjkxMDc0YzMxY2VjY2VkNmZhY2QzYmEyZGMxIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmE0ZjAwYWE0MmY3NWQ2ZTQ1OTVlODg2NmU3NDhjYzE3MDVhZGMwY2Rk
ZmViMmNhODZkMGQwMzk5M2Q2M2JhMDMgXA0KICAgIC0taGFzaD1zaGEyNTY6YTZlNzIxZDRiMGU0
NWQ1YjY1ZTg3NTM0NDcwZTY3YjE4ZGNkMDkyYzgzZjY4ZmJhMDlmMTUyYjljYmMwNjFhZiBcDQog
ICAgLS1oYXNoPXNoYTI1NjphNzMwYTA4MzE5MDYzNGM2NWNjYTM2YmE1ZjQ4OTUzMTU3NmViZDc5
YmNkNWM4ZTE3MjEzMGY2NDUzMTI3MjMxIFwNCiAgICAtLWhhc2g9c2hhMjU2OmE5MzEwNzk1MDRl
Y2M0OWVmZWQ3NzQ0YzQ3NmE1YzM0M2E5MmZhYmY2NmRlYzJkYjk1ZWRiMWIyZmRjNzcwZTIgXA0K
ICAgIC0taGFzaD1zaGEyNTY6YWE5NTExYzYyZDE0ZGE3YWFjYzliNGJmNTFmM2Y2OTdhNjIxZTgz
YjJkNjkxOTAwODI0M2MzYWFkMTY4ZWVhMyBcDQogICAgLS1oYXNoPXNoYTI1NjphYjM2ZDU1Zjll
ZDJkMDY3MzI3NjY3YzJmZWExOGRkYTAxOGViNjI4ZGQ2MzQ3YWEwMWRkYTZjZjFmNWQzODM2IFwN
CiAgICAtLWhhc2g9c2hhMjU2OmFkMmM4NmM0OTViODk5ZDg2MmVhMGY0YjQyODkxYjg3MTNhM2Jk
NDVkZDQxMDVjN2ZkNTFjMmE3MmYzOWYzYTUgXA0KICAgIC0taGFzaD1zaGEyNTY6YWVhZTBlMzMw
YzlmNmFjZDY4MWY2NDdkNDZjZWZkMzBjMjlmOTNlMzM5Mjg4MmU3OTJlODIwODBjOTY5MTM5OSBc
DQogICAgLS1oYXNoPXNoYTI1NjpiMDQzMTMwM2FjYWVhMTA4OWFkNGIzZTljZTRlNjUxODE5M2Rl
ZjExMThkNDA3M2NhODQ4NjM1ZWU0ZWEyZTk2IFwNCiAgICAtLWhhc2g9c2hhMjU2OmI1YmRmZDFj
ODczZDRlMDkzYWFiYzBjYTg0YzRjYTZkYmM0Zjc1MmFmYjVjODZmMTQ2ZDk3NDI1ODBjOWRhMmUg
XA0KICAgIC0taGFzaD1zaGEyNTY6YmFlZDFlODZjYzczNTYyMjA5NzM1NGI5ZDEyODE0MDZjYWY0
MmZmNDJhODg2ZDI5ZmFhOGU4ZDE2MzAzMzNiZSBcDQogICAgLS1oYXNoPXNoYTI1NjpjMTQ1MzAy
MmY0OTBkMjQ1OWExMTgxOWQ4M2FkMWQ1ODZlOWZmNjVhMTJhYzNlNzA1ZmZlYmQ0NmQzNjg1ZGNm
IFwNCiAgICAtLWhhc2g9c2hhMjU2OmMyNjYwOGQyMjIyZmIxZTk0NDg3ZTRhMzg3ZDg1ZjEzZWI1
NWQ1ZWQ3MjVjYjI1YTBjNTg5YWM0ZWU2MGU3YmMgXA0KICAgIC0taGFzaD1zaGEyNTY6Yzc2NTlm
MjI1NTdjNWEwYmM0ODU1Y2Q2MzVmNTVlZGVjNjkwY2MwMDhhNDA3Njg1Mjc3NjJjYjlmYjI2MzQ1
NSBcDQogICAgLS1oYXNoPXNoYTI1NjpjOGM2OTU3NTU2ODA4NWJhMGIxYjEwYzAyNDlkNzc5YTIx
NGFlYTZmNjUyMmU5NDlhMGZjOWZiMGZjYjQ0OWQwIFwNCiAgICAtLWhhc2g9c2hhMjU2OmM4ZDJj
OWZkMWYyZDE2Zjc4MGQxNTEyN2FiYjA1MGQxM2QxYTc2YzAzYTRiZDg3ZDdlNDk4MGU0NWU1MTFl
MTIgXA0KICAgIC0taGFzaD1zaGEyNTY6Y2E4MmJlMWExZDQwNmVjZmUxZDI1ZGMxNmNiMzM0ODhl
NWExNmJmNDQzOGM5ZmI1OTA0ODRlYTI5ZDkyNDc4YiBcDQogICAgLS1oYXNoPXNoYTI1NjpjYzU3
MmRhY2UzZjYwZWY5OGQ3YjEyZmY0MTFkMjBmNTM2MmZlYjMxYTA0MzllYWIwMDg1YmJmZDM0OTk4
MmQ3IFwNCiAgICAtLWhhc2g9c2hhMjU2OmQxOGU1YWMwZjJmMDNmNGY1MThkM2UyM2RiMGYwY2Fk
N2ZhYTFkYTg2MjBlOWMwOTQ2MWQ0NDNiYmY2ZTY2OTIgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDI4
NjMwZjU4NTRhYjA3YWIxZmQ0YWJhNzU2ZGU1MjMyNmM4MmU2YmUxNWQ0MTRiMTI3OTNmMTk3NTA0
OGI1NCBcDQogICAgLS1oYXNoPXNoYTI1NjpkOWMyNzVlYWFjZDI0YWE3M2Y5NGZmZDZkZTA4ZmMz
ZjkzMjQyNGQ4YjZjMzc2ZjRiZWQ3Y2RlMzc2ZmU3YmMzIFwNCiAgICAtLWhhc2g9c2hhMjU2OmRh
MGU1NzNmOWY5NzE1OTM5MGM4OWQ5ZjFhOWU0MTkwOGI2NmQ0MDhjYzViNThkMDhjZjM4NDdkODQ0
YzUzMWIgXA0KICAgIC0taGFzaD1zaGEyNTY6ZGQzMWY1MmVhMTA4NjUxM2JiOWRmMzBmOGZjZWU5
Yjg5MTgzMjNhZTA2N2EzZDViNzhiYzgyNmEwMDA3MTJiZSBcDQogICAgLS1oYXNoPXNoYTI1Njpk
ZGRhZDkyYjU1NDUxM2EzMWYyNzI1NzA2NzhiYTMwN2ZiOWY2MThmMDVlM2Q0YTVlYWNhZmZmOWVh
ZTAzZTFkIFwNCiAgICAtLWhhc2g9c2hhMjU2OmRmNDIzZDQwZWU4NjU0NjM0NDIxODEyYmMzYjE5
NmRhM2Y5YmQ3ZDMyOTI5ZGE4MTNmODM5NGM0MzQ4YTUzNTggXA0KICAgIC0taGFzaD1zaGEyNTY6
ZGY5MTM3MjViNzlkYjdiY2YwMzQ0OGYzNmI3YmY4ODE1MzYzNDE3ZDViNThkZWVjZjkzMDVlM2Uz
MGYwZjIxYSBcDQogICAgLS1oYXNoPXNoYTI1NjplMGJjYjdlMGY2NzdmNTQzNTU1ZDJhZGZmM2Jm
MTljMDVmNjZjZGI0Nzk2ZTVmZjYwMjQ0MmFiMmZlM2M0ZWY3IFwNCiAgICAtLWhhc2g9c2hhMjU2
OmUyZDY1YjMxZjM2NjE5Y2RhMzk5OWI3OGIyYWE5NjMyZTc2Yjc4NDQ4ZTdhNTZmYzQyNDA4MjQy
MDBlN2M0ZmMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZTZlOGNmZjE0ZDZmYjBiZTcwYTA5YzBiZGM1
ODA5NmY1MDE5NTJkMDQ2MjRlYmY4NjdlMGU1NmRhMmRmODk2MCBcDQogICAgLS1oYXNoPXNoYTI1
NjpmMTZjNzA5Njg2YTc4YzcyN2JiYmYwNTlmOTJiMGJmNDFjNmZjNjBkZWVjNzA2ZDJkYzE5ZjUy
OTE3NWE2MTI1IFwNCiAgICAtLWhhc2g9c2hhMjU2OmYyNGZiNDMxMzJhNGM2YjRjYjRlYjAyOTQ5
MjkxOWIyZGI2NDViZTY4MDhkNzM4ZjI0NGZkMTQ2YzAzYzMyY2IgXA0KICAgIC0taGFzaD1zaGEy
NTY6ZjUzZTQ0MmIwODQ0OWQ0MjgyMWZhNGE0ZmJhMDAwMDk1YWY5ZjYyNzQyYTUwMGY5NzhhOWY1
NTdlYzQ0MzM5YSBcDQogICAgLS1oYXNoPXNoYTI1NjpmNWNmYmM1ZmU3NDU0MGQzMzUxNzViNjU2
YzcyNWQ3NGQ5MGUzNzMwYzYyNmQ5MjU3NWVlYTM1MDI5ZDlhZmFhIFwNCiAgICAtLWhhc2g9c2hh
MjU2OmY4MWIzYjhmM2Q0ZTM0MzU1MGZhNGJhYTBlNDc5YmJhOWYyZDI5Y2U5YzJlOWI1MWQxY2Ux
NzE4ZDc0NDJmY2YgXA0KICAgIC0taGFzaD1zaGEyNTY6ZjhlYzVlNjQzYTlhOTM3ZjY0ZTE5OTll
YjlmNzVkMDcyMjYzNzUxOTEyZGM1Y2QwNmQzYzg1ZjhmNDRiZTdjMyBcDQogICAgLS1oYXNoPXNo
YTI1NjpmYjkyMjAzYTg4YjNkMzA1MzAzNGRiNzc1MTEwMDgxYzQ5ZDI4YmU2NTUxOTIzODA1ZTAz
OTkyNDA5Mzc2MWU0IFwNCiAgICAtLWhhc2g9c2hhMjU2OmZjZDIyNjUwYzkwOGQ3YjdkYTE2MmJi
ZmFhYjU5NGExMjI3YTE1ZDE2NDNhOThjNjhiMTIyYWM2NDJmYTIyNjQNCiAgICAjIHZpYSBjcnlw
dG9ncmFwaHkNCmNsaWNrPT04LjQuMiBcDQogICAgLS1oYXNoPXNoYTI1Njo5YTZjZWE2ZTYwYjE3
ZWJlMGE0NGM1Y2M2MzZkOTRmMDliZDY2MTQyYzFjZDdkOGI0Y2Q3MzFjNDkxN2ExNWY2IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmU2ZjlmNjYxMzZjODE2NzQ1YjlkNjU4MTdkYTkxZDYxZDk1N2ZiMTZl
MDJlNGRjZDA1NTI1NTNjNWExOTdiNzYNCiAgICAjIHZpYSB1dmljb3JuDQpjb2xvcmFtYT09MC40
LjYgXA0KICAgIC0taGFzaD1zaGEyNTY6MDg2OTVmNWNiN2VkNmUwNTMxYTIwNTcyNjk3Mjk3Mjcz
YzQ3YjhjYWU1YTYzZmZjNmQ2ZWQ1YzIwMWJlNmU0NCBcDQogICAgLS1oYXNoPXNoYTI1Njo0ZjFk
OTk5MWY1YWNjMGNhMTE5ZjlkNDQzNjIwYjc3ZjlkNmIzMzcwM2U1MTAxMWMxNmJhZjU3YWZiMjg1
ZmM2DQogICAgIyB2aWEgY2xpY2sNCmNyeXB0b2dyYXBoeT09NTAuMC4wIFwNCiAgICAtLWhhc2g9
c2hhMjU2OjAzMWUyZDVkZDRiYjljYWEzY2E5YzgyZTVhMTk3ZmQ4YWU2ODAyMzJjZWU2MjYwM2Qx
YTgxM2YzZjA3ZTNkMDMgXA0KICAgIC0taGFzaD1zaGEyNTY6MDZhMzJhOTgwNTI2YTZhYjlhNGI5
YmY4ZjczODU4MDA3OTFlMmJiOTYwOTAzY2I2YjUzMGU0ODE3NTA5YTNiNyBcDQogICAgLS1oYXNo
PXNoYTI1NjowNzQ3OWExY2IwODIxOWFiNzE5MTQ3ZTc0MmU3NjA5MGM5Yzc3MzMyMTk1OWJiOTQ5
NDZmZmZkZDM5N2E2NDM3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjA3OTQ5YzQ0OWExYWJjZjYwZDFl
ZTZlODg5NTZkODk0MDRjN2RmM2M4MjU4ZjQ2NTg5ZTkxMjk4OGU1NTE5ODcgXA0KICAgIC0taGFz
aD1zaGEyNTY6MTA1MTEwZjQzYTQ3MWRiZDAwNjBiOWM5NTE2Y2I4YTZhNzkyMzM2MzFhMDRjYzJi
YTE2ZjI4MzIzYWM2ZTAyNSBcDQogICAgLS1oYXNoPXNoYTI1NjoxMWI3NGRiNTZjZGJlM2NkZWU2
ZTNmNjk4MmVjYjcwMzM0ZmExMGRjZTk5ZWQ1OGJmNzg5NGFhYWEzYjJhMDM3IFwNCiAgICAtLWhh
c2g9c2hhMjU2OjEyYjljNjk5NjQyNWM3NmVhNmM0NTdhY2U0ZjMwNzNlNzE1YjhjNTQ1YWRkMDdj
ZDFhOGYzYTRmOTA2OTEyNjkgXA0KICAgIC0taGFzaD1zaGEyNTY6MTQ4OWUyNjNhODA0OGJiOGI2
YThiYWM2NjJlYjJkNDAyZWE1ZDJiN2I0Njk5YjcyZjM4NWYxZTI3NzJkYjEwNSBcDQogICAgLS1o
YXNoPXNoYTI1NjoxOTczNjk4OTc5NzY3OGM2YWYxZTU1Y2Q0OTA1NWNkYmNiNTVkOGY2YjU1ODNh
YzUzMzVmOTMzYWJhOTEwMWRjIFwNCiAgICAtLWhhc2g9c2hhMjU2OjFiNGEyNjY3NjY1MTQ2MTRm
OGFhNjA0MTZlNzFmMmZjNmU1NzVkMzZlN2JkYzkwZjY0NGZhZGIyZjRiNzViOTUgXA0KICAgIC0t
aGFzaD1zaGEyNTY6MmE4MTgzYjQ4OWRjMWY3ZjgwZjEzNTc4MGZhZGMxMTA4ZjE0YjMxYjhhNDA0
MTFjN2E1YjE3NDI1ZjY1ZjI4YiBcDQogICAgLS1oYXNoPXNoYTI1NjozN2ZkYjBkMDExMWYxZTJm
ZjA3MTM5ZGZiNzlmMWI0OTUzMWY4ZTIxM2M0NmYxMTYzZGQ3NjQyOTc5YjU4YzQ3IFwNCiAgICAt
LWhhc2g9c2hhMjU2OjNmNTczNWZmZTQ5OTZkMjhiODA5MzcxNzU2MjE5ZjUzNTQ4NjQ5MDJhM2I5
ZTdjMGI5ZWU4NzA0MTIwOWZjOWMgXA0KICAgIC0taGFzaD1zaGEyNTY6NDllN2Q5M2FiZGJkMjk5
MGNhY2VkNzU3ZTVmYWRlMjUzMDJmNzE5YzNjOGZiNmU2ZmZmMmRkZTk4OTk5ZmM0MSBcDQogICAg
LS1oYXNoPXNoYTI1Njo1ZTM0ZWRkMTIzNjc0NTM0YWNkNzAxNDdmMGNhMzMxZWFhMmM3NGU2MzI1
ZmIyMDI4Yzg4NmFhMjZiYTBiNjhjIFwNCiAgICAtLWhhc2g9c2hhMjU2OjYyNTk4YThhNTdmODE1
ZGI0YzYyNTlhNGU5N2Q4NTdkYWI1NjY5N2U3ZGU4ZThhYjAyMzUyYWI3NGRhMTk5NWQgXA0KICAg
IC0taGFzaD1zaGEyNTY6NjVjMmMzYWRkOTJiNDVmZDA3MDlkYjg1OTQ1MzZhZWEzOWMyYTY3YWYw
ZTI3ZmZjZjA0OWM0OTg1MDExNDBiNyBcDQogICAgLS1oYXNoPXNoYTI1Njo2YmE2YTUzNDQ1YmQz
Y2ZhODA5ZWYzZWY1ZjE1ODlhYTZiYTA4Nzg0YTFkOTYyYmY0N2QwOTQwZTg3MWRhYjFjIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OjZlN2Q2MTEyMDU3M2E3ZjJjZDk0Y2MwOTVmOWU4MWY2OTY3YzYxY2Nk
ZjE5NDI4NWFhMTQzZWNlYzhlMGI3MDggXA0KICAgIC0taGFzaD1zaGEyNTY6N2NlYzViODU2NTA2
ZGE2ZGVmYjI5MGYzMGM5ZWU2ODdkNWY1ZThjYjBiZDNmNjQ1OWRkZTQzYjBiNGZhNDBlZiBcDQog
ICAgLS1oYXNoPXNoYTI1Njo4MGI2MzkyOGZhMzUwODNiMzM5NjZjZTFlZmI3MGU1Yjk2MDcxODFl
NDlkY2QxYzIyYzhjMDA1ZTMxOWY2NjdmIFwNCiAgICAtLWhhc2g9c2hhMjU2OjgyMTQ4ZWM1YmRk
YWMzMGI1MWE1YjNjMTk0NTA3NWY4OTZmYTAyMmNiOTNmOGU0YTAxZTlmNmVlOTUyOTJjNWYgXA0K
ICAgIC0taGFzaD1zaGEyNTY6ODI4NzQzZDkzOWU5NjI5YmMyNjdiOGUyZDA4ZDhiYjY3Y2Q0MzE5
Yzc3MWEzM2Q0YjE4YjIyZGQ4ZmI3NDQwYSBcDQogICAgLS1oYXNoPXNoYTI1Njo4ZDg5ZjM5NzZi
MTBiNGNlMzExMThkZTcyMzI5MDI1ZjcwZDJjNmVhZDE0YTgyMTdjNTUxNGRkMmM2ZDVhNzhmIFwN
CiAgICAtLWhhc2g9c2hhMjU2OjhlYjVlMTE3MmViNTY5ZWE4YTg3Mjc5NjU3NmU2YTY3YzI3NjM1
MTcyOGI2NDU1ZDViZWIwMTI0MmIwMjdjNmEgXA0KICAgIC0taGFzaD1zaGEyNTY6OTAwMTMxZmFm
ZDhhZWFkMzlhYzdkZDNhN2U4MzNiZTc1NGMxN2E5NWNmZDkxMjIxNjM2OTQ5ZmU0ZWIwYWE4YSBc
DQogICAgLS1oYXNoPXNoYTI1Njo5MTBkMTFlMWEzODVjNjU0YmY3MzhiZjNlNmI4ZTZlZDVkZTBm
NTYxMGZjYWUyYmU5ZTViMzk4ZDgwODFkMjBlIFwNCiAgICAtLWhhc2g9c2hhMjU2OjkxMGUxZDI2
NjhlN2RlOTY0OGYyYmNlZTMwZTE4MGRiMmE2YjE1YzMwZjg4N2Q3YzRjOTNkZGY5NmUzOTkyZTMg
XA0KICAgIC0taGFzaD1zaGEyNTY6OWFhODc4MzljMzgzYmRiYWI2ZWY4NjU3ODdhMWZiODc3YWY4
ZGQwMzQ2NGM0NDAwMzIyNzI2ZmVhYWFkZmM2ZCBcDQogICAgLS1oYXNoPXNoYTI1NjphMWIzMDU2
MGYyYWNjOTVhYThiMmUwNmU3MTZhMTNkYmZjOTczMTQ3NDdiODBkOTcwN2UzMDdmNzdiNDBkNmIz
IFwNCiAgICAtLWhhc2g9c2hhMjU2OmE5MTI5NmNiNjFlOGRmNmY4NmQwYzE5Y2M0MDY4MjI4ZGEy
NTZiZjU5YmY4NjA0OWZiZDgyMTA4NDU2NTMyN2YgXA0KICAgIC0taGFzaD1zaGEyNTY6YjQyYTI4
YzE4NDRmZDlkZThmM2Y3ZDU0MGUzNmI2NmYzYTljODNmY2VhYzcxNzBlYmM3YTZhMTllZGQ5ZGNh
ZSBcDQogICAgLS1oYXNoPXNoYTI1NjpiZDFjNTkyZTRkNTk3NGYwZDA4ZDQ4ODhlNDMyMTU3YWRi
YTc1N2M2NmRhMDI0NjkxOGU0MzY3N2ZhZmEyZDMwIFwNCiAgICAtLWhhc2g9c2hhMjU2OmM4N2Y2
MmEzZDNiOTg4OGVkMGZkZGUxMDBlYzA2YWE2MWNhOWNkNDRiYWQ5MDU3ZDFkZmY5YTUxNmI1ZjVi
YjkgXA0KICAgIC0taGFzaD1zaGEyNTY6Yzk5YzAwM2UwODg2NDdiOGE1YjdjMTQ1ZDZmNzhjMzM1
ZjYzNDgzMzJiNjJlMTQyZDQxMWM0YjYzZDE0NjBiOSBcDQogICAgLS1oYXNoPXNoYTI1NjpjY2Rj
NGE3MWE0ZGFiYWUwNWRlMjE5NDA0ZjlmNGFiYzM4ZTNiNTg0MjIxNzdmZjkzZDBkYTA1OTY3ZGFm
YTA3IFwNCiAgICAtLWhhc2g9c2hhMjU2OmQyNGZlYWQxZDRkMDc2ZTFiZmIwMDZkY2VjMzkyMDc0
YTNjZDhkN2I0ZmM4YTU5NWFhNjQwNzNiMmI3YTk2YmEgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDU4
YzNkYjdjZDZlZWQ1NGU2YzA2NzQ0ZGI1NTQ1NmI2NWViZDc0OTJkZGVhZTljMWU5M2NmY2E3YWE4
NTdkMyBcDQogICAgLS1oYXNoPXNoYTI1NjpkNzY0ZGNmMTMwYzQyOGVmNjY3ODZmODY2ZGQ3NTBm
NTMxODJiYzYwODgxMzQ4OTkxNWU5ZmMxMDZiYjBjODJmIFwNCiAgICAtLWhhc2g9c2hhMjU2OmRm
MmE1OGE0NzJmMzMyMjI1NjcxYzM1YjBhODMwMjA4Yjg2ZDAwNGY4MmJhYTg1MzBmYTM3ODJjODU2
NDY1MzMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZTcyMmYxNjcwOGQ4NTRmZTkyNDc5MGUwNTEwNjFm
NjcwNGE0NzJjM2JhYzM0N2I2ZmQ4ODAzM2VhOGRkMGRjNSBcDQogICAgLS1oYXNoPXNoYTI1Njpl
Y2ZlZDczNjdmOTY1YTAzMjhjZmJkZDcwZGE4NjBmMTU0NDFmMDAyZjYxMzE4NTY2OGM2ZTZlYmY1
YTBhYzExIFwNCiAgICAtLWhhc2g9c2hhMjU2OmVlYWMyYWNiNWEyMGVkMjVlMGFkNmQxZGY5ODkx
YTUyMGI3OGI0MDQyNjZiNmQxMTc3OGYyNWQ1ZDY5MWE2YzkgXA0KICAgIC0taGFzaD1zaGEyNTY6
ZjU5ZTM4NjI1NDY5OTg3ZDdlZjZkNDk1MzIzYzU1ZTdkYjZjMjEyZWFmNjExMjI2N2UwZDNiNTY1
YTJlOWM5ZiBcDQogICAgLS1oYXNoPXNoYTI1NjpmODk4MzFlZjk5ZGQ3ZGQxNjlhYjA2ZDYzYTgz
MWFkYjllMjBhODdhYWM2ZDM4MDI2NmJiZGE1ODIzMzQ5MTY5IFwNCiAgICAtLWhhc2g9c2hhMjU2
OmZkOTE5MmI3YjcwYzU3M2Q3ZjIxNGViMWFlMzVlMDBkMzU5ZjZmNWU0YjI3YzdlMjFlMzBkZTFm
YzYyMDQ2NDUNCiAgICAjIHZpYSBweWp3dCwgcHlwZGYNCmV0LXhtbGZpbGU9PTIuMC4wIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OjdhOTE3MjBiYzc1Njg0MzUwMmMzYjc1MDRjNzdiOGZlNDQyMTdjODVj
NTM3ZDg1MDM3ZjBmNTM2MTUxYjJjYWEgXA0KICAgIC0taGFzaD1zaGEyNTY6ZGFiM2Y0NzY0MzA5
MDgxY2U3NTY2MjY0OWJlODE1YzRjOTA4MWU4OGYwODM3ODI1ZjkwZmQyODMxN2Q0ZGE1NA0KICAg
ICMgdmlhIG9wZW5weXhsDQpoMTE9PTAuMTYuMCBcDQogICAgLS1oYXNoPXNoYTI1Njo0ZTM1Yjk1
NmNmNDU3OTJlNGNhYTU4ODVlNjlmYmEwMGJkYmM2ZmZhZmJmYTAyMDMwMGU1NDliMjA4ZWU1ZmYx
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjYzY2Y4YmJlNzUyMmRlM2JmNjU5MzJmZGExZDljMjc3MjA2
NGZmYjNkYWU2MmQ1NTkzMmRhNTRiMzFjYjZjODYNCiAgICAjIHZpYSBodHRwY29yZSwgdXZpY29y
bg0KaHR0cGNvcmU9PTEuMC45IFwNCiAgICAtLWhhc2g9c2hhMjU2OjJkNDAwNzQ2YTQwNjY4ZmM5
ZGVjOTgxMDIzOTA3MmI0MGI0NDg0YjY0MGE4YzM4ZmQ2NTRhMDI0YzdhMWJmNTUgXA0KICAgIC0t
aGFzaD1zaGEyNTY6NmUzNDQ2M2FmNTNmZDJhYjVkODA3ZjM5OWE5YjQ1ZWEzMWMzZGZhMjI3NmYx
NWEyYzNmMDBhZmZmNmUxNzZlOA0KICAgICMgdmlhIGh0dHB4DQpodHRweD09MC4yOC4xIFwNCiAg
ICAtLWhhc2g9c2hhMjU2Ojc1ZTk4YzVmMTZiMGYzNWI1Njc4NTZmNTk3ZjA2ZmYyMjcwYTM3NDQ3
MGE1YzIzOTIyNDI1MjhlM2UzZTQyZmMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDkwOWZjY2NjMTEw
ZjhjN2ZhZjgxNGNhODJhOWE0ZDgxNmJjNWE2ZGJmZWEyNWQ2NTkxZDY5ODViOGJhNTlhZA0KICAg
ICMgdmlhIG1jcA0KaHR0cHgtc3NlPT0wLjQuMyBcDQogICAgLS1oYXNoPXNoYTI1NjowYWMxYzlm
ZTNjMGFmYWQyZTBlYmIyNWE5MzRhNTlmNGM3ODIzYjYwNzkyNjkxZjc3OWZhZDJjNTU2ODgzMGZj
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjliMWVkMDEyNzQ1OWE2NjAxNGFlYzNjNTZiZWJkOTNkYTNj
MWJjOGJiNjYxOGM4MDgyMDM5YTQ0ODg5YTc1NWQNCiAgICAjIHZpYSBtY3ANCmlkbmE9PTMuMTkg
XA0KICAgIC0taGFzaD1zaGEyNTY6NWUwODExYTQzODNiMjFkYzU4MzgwNjlmODAxYzRmYjYyMTEz
Yjc0NDc2NjNkMjUzMGQyYmQ2ZTc3YjQ5YmYxNSBcDQogICAgLS1oYXNoPXNoYTI1Njo4MTVlN2Jl
N2E3ODA2ZDU0YWJiNTg2ZGM5NDNhZGRjNzllOGIyZWUxNjkxNTA1OTY1OGNiZWZmNGIxYjQzYmY0
DQogICAgIyB2aWEgYW55aW8sIGh0dHB4DQpqc29uc2NoZW1hPT00LjI2LjAgXA0KICAgIC0taGFz
aD1zaGEyNTY6MGMyNjcwN2UyZWZhZDhhYTFiZmM1YjdjZTE3MGYzZmNjYzJlNDkxOGZmODU5ODli
YTlmZmE5ZmFjYjJiZTMyNiBcDQogICAgLS1oYXNoPXNoYTI1NjpkNDg5ZjE1MjYzYjhkMjAwZjgz
ODdlNjRiNGMzYTc1ZjA2NjI5NTU5ZmI3M2RlYjhmZGZiNTI1ZjJkYWI1MGNlDQogICAgIyB2aWEg
bWNwDQpqc29uc2NoZW1hLXNwZWNpZmljYXRpb25zPT0yMDI1LjkuMSBcDQogICAgLS1oYXNoPXNo
YTI1Njo5ODgwMmZlZTNhMTFlZTc2ZWNhY2E0NDQyOWZkYThhNDFiZmY5OGIwMGEwZjI4MzgxNTFi
MTEzZjIxMGNjNmZlIFwNCiAgICAtLWhhc2g9c2hhMjU2OmI1NDA5ODdmMjM5ZTc0NTYxM2M3YTkx
NzZmM2VkYjcyYjgzMmE0YWM0NjVjZjAyNzEyMjg4Mzk3ODMyYjVlOGQNCiAgICAjIHZpYSBqc29u
c2NoZW1hDQptY3A9PTEuMjguMSBcDQogICAgLS1oYXNoPXNoYTI1NjoyNzI2YmNhNWU3MTkzZjYx
YzVkZGU4YjEyNTAwYTZkZTJkOWFjZjZkMWExYzBiZTllOGMyZTcwNjQzNzk5MWRmIFwNCiAgICAt
LWhhc2g9c2hhMjU2OmQ1MWUzNmE1ZjU2NDRmYWVhNGY4NWVhNjQ5YmZmZmE2YmM2YzI2NzcwZDQy
Nzk4YWQ2YTNkZTNkMmJhNjk2ODMNCiAgICAjIHZpYSAtciBtYW5pZmVzdHMvcHl0aG9uLWxvY2tz
L2RvY3VtZW50LW1jcC9yZXF1aXJlbWVudHMuaW4NCm51bXB5PT0yLjUuMiBcDQogICAgLS1oYXNo
PXNoYTI1NjowMDkwY2NkZDU3ZWMyNzAzZTliNDlkMGJmNTU0NzY3MzcwNTgxYzFkZDBhNmIyYmIy
YjJkOWRlZjMxN2QwNDJhIFwNCiAgICAtLWhhc2g9c2hhMjU2OjA3OGY5YjAyN2I0NzhjOTM3OWI5
Njc3YmFiYmYwZjhiOGYxZWNmYWRhMjc2MzZkN2I5YTkzOTkwYzYzODczOWYgXA0KICAgIC0taGFz
aD1zaGEyNTY6MDdkNGU4OWYzYTlhYjBhOWJhMjQyNjRjY2RiNjQyYjNkZDk1MWIyMjgxZTg4ODNh
NTQ4MWE0YWE3OWNjMzFhNyBcDQogICAgLS1oYXNoPXNoYTI1NjowYTQwMzVhZTExMjlmZjg3Nzdm
MDhiZmJkNDRmMWU1ZDhlOWMwNDljZTBjMmRkNzhmYzBkOTJjMTNlNzI1MWMwIFwNCiAgICAtLWhh
c2g9c2hhMjU2OjBhYWRmMTNiNjAwNDhkNTAxZTA1ZmE2OTllZmFmNzczNGUyNDk0ZjM0OThhNGMy
YTU1MjFkODIyNjQwMzI0ZjMgXA0KICAgIC0taGFzaD1zaGEyNTY6MTRlMzczY2ZjNjM4NzE3N2U4
NDA5ZGFjM2M3MTU5YmU4ZWIwNWNkNzcwOTZjZDdjOTUwMjY4Yjg2ZjYyODMxYyBcDQogICAgLS1o
YXNoPXNoYTI1NjoxYWIzZDRhOTAxZjg0NGVhODM2YzNlODBiZjQ2M2M2YTI3ZDdmM2MxNGU4ZTI5
MmZjZjI4ZDM0OGIyNWI5YmNlIFwNCiAgICAtLWhhc2g9c2hhMjU2OjI0YjlkYzJlM2Q4NGFhNTg1
MjM3OTg4MDUxOTRlMjNlNzM2ZjNmNmNlMmQxYTViOTI1ODNhZTczNGU2ZGJkYTggXA0KICAgIC0t
aGFzaD1zaGEyNTY6Mjc2NTBiYjBlNzE0MGZhM2QzN2I5OTIzYjQ4MDM2NDVlMGIxMjVkMTkwZjMy
NmVlY2ZkM2Y0ZGFkOGU4YWRlMSBcDQogICAgLS1oYXNoPXNoYTI1NjoyOGFjNjM0NzZlYzc2NTE0
ODQyMTVlZTdmYTE1YTFmNzhiNTdjMTQ2MjFmMDFlMzkyYWZlMTdiOWExMzkwY2U0IFwNCiAgICAt
LWhhc2g9c2hhMjU2OjI5Yjg2ZmY4YTZjYzU1NmI0N2VjNmI2NGIxOTQ4MTVjYzgwZTZiZjVlZWRj
YzZjZGRmZDY1MzE4Y2IwYjRlZWUgXA0KICAgIC0taGFzaD1zaGEyNTY6MjlkODFlOTdmNjY4NDg5
Y2JhOGViZmQ3OTZiOWJkZDQ1MzUyNWQzNWRkOWUxNjJlMmRhZWM5NGJmM2ZjNzc0MCBcDQogICAg
LS1oYXNoPXNoYTI1NjoyY2M3NzkyMjZlNDc2ZDFlMWYwOGM3NDA2OGM0MTllNjBmNDFhOWUwZTA2
OWM5MmY2NjcxZDMxZDVjOTg1ZTk4IFwNCiAgICAtLWhhc2g9c2hhMjU2OjJmZmE3YmFjYWIzZTJl
ZTFiMTllZDMxNzY2YmI2MGJiMzgwYjY4YzIzZjA1MWUxOTljNWNjNTk4YWZkNjg3MTAgXA0KICAg
IC0taGFzaD1zaGEyNTY6MzE4YjlhNGM4NDVkYmVhMDY3MDhhMjljODRlZTQyOWNjMzA2NTA0OGRi
MzRjZGI3OTkwNDc2NDM0OTIwNTBlZSBcDQogICAgLS1oYXNoPXNoYTI1NjozNGMzMTllMjk2M2Jl
MDQyNjczZmI0NjU3MDUwMWIyZjA2YzQxOTI0ZTE3ZTM1NjNkNTg2NDZiNDM4MGRmYjY4IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OjNhMmYwNjFjZWJkOWUzZDIzYmRjZmFhZGVkNWUyMjkzYTRjNmE1YjYw
ZmE0MmRmODVkNDEwYTcyNWNlNjIxYmYgXA0KICAgIC0taGFzaD1zaGEyNTY6M2NkZWMwMWZhNzkw
YTE4NmQ0MzA0MzNmZGQ0ZDRmZmI3MGVlZDZmMGVlYjRiZjA1YzhkYmUyZGNlMGE5YmNiOCBcDQog
ICAgLS1oYXNoPXNoYTI1NjozZTRjMzY3MzUyZDM3NDc3ODQyNDhhMjI3ZmJlYzIxOGUxOTNiNTZm
N2U2NjkyZTNiNjRmYzgwNTQ3OGVjZmRmIFwNCiAgICAtLWhhc2g9c2hhMjU2OjQwZjRkNDUxYWVk
NDZhODA0NmExYWFlNDFjNGU1NWZiMzYxMjI3M2RmOWM1MDI0ODAxMzVlMTUwMTU3NmEzNGIgXA0K
ICAgIC0taGFzaD1zaGEyNTY6NDRlZjk2NzVkOTA4ZTY1Zjk5NTMwNjM4MzdjMzI3NzczMGYzZjQ0
Mzc2MTVhNGNkYWI2N2IzNjZjYWJhZjg4NCBcDQogICAgLS1oYXNoPXNoYTI1Njo0YmJkOTZjODMz
ZWNjOGNjMDY5Y2U1MTgwNzhmYzhjNjBjYjljYmZiMGZlYTViN2E4MDNhZDY1MDM1NTk2ZDAzIFwN
CiAgICAtLWhhc2g9c2hhMjU2OjRlYzk1NDAzNjc1OWJjZWUzYWE0ODRmODYwM2JkOWMxNGYzZTc3
NjI5M2I4NTU3OGI4NzM0YzJkNzI3NzdjNjkgXA0KICAgIC0taGFzaD1zaGEyNTY6NGY5NzQ0Zjlm
YmRjZWEwYmM1NTJlOGYxOWUxZjE0MWY4MTFhM2Y5YmMyYmUyY2M2ZTg2ZDk4MmNhYjIzZTNmNCBc
DQogICAgLS1oYXNoPXNoYTI1Njo1MGE2OGY0YmFjZDhhMmIzM2Q4ZGEzZDIyNjlkMGQ3ODUwMGY4
NmVhNTgyZTQ3ODZkYzEwZjVlZjJjMmM2ODQyIFwNCiAgICAtLWhhc2g9c2hhMjU2OjUwZTUwMGRj
ODY4ZTkzMTM1MzBjZTEyYmE0NzBmZTUwZmYzYWZlM2Q2Mjk5M2VkNmVmZjY1MmRhY2Q1NTViNjUg
XA0KICAgIC0taGFzaD1zaGEyNTY6NTJjODA4Zjk2NDg0ZjU1NzFhNWNjODYzNzc1Y2U1MDI0N2Mx
N2RmYjNiMDM2MWY4ZWQ2YjRiMDQ1NmY4MDA4MCBcDQogICAgLS1oYXNoPXNoYTI1Njo1ZjhlMDBi
ZTJlYzZmNDVmNGU4YTQxYTUyN2Y2OGQ0NGE3ZDk2ZmVlOTJhNjUwZTRkOGIxMzI2Zjc3ZjYxZTZl
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjYwZTkwMmFjMjk1ODU1MzQ4YTVjYTJlYTRjODkxMDg5ODlh
OWY1ZmRkZmFkM2RmYzBhOGYzNmIxMDM1ODU2N2UgXA0KICAgIC0taGFzaD1zaGEyNTY6NjVmMTg4
NDgxZjE2NjllMjZmNjJiNzAxZTgyMDVkMTllNDYwZmE0YTliNTJhMTQxNGJhMzgyMzMwZTRhMzQx
NCBcDQogICAgLS1oYXNoPXNoYTI1Njo2OTUwYzRiN2RkNTYyNDUzMDkwNTQ4YmE3ZjVkYTdlNTlm
NTdmODU2NjNmMTVkNWRjYzYwZTI0OTE5MmY3ZTU5IFwNCiAgICAtLWhhc2g9c2hhMjU2OjZhOWJi
MTE5ZmI4ZGQyMWJhMzBiM2YwZTU1NWI3ZTJiMDgxYmQ5ODgzYWYyMWVjOWMxYzYzM2QxNjFjZGEz
YTggXA0KICAgIC0taGFzaD1zaGEyNTY6NmI1ODhjYzhmOTAyZDZiZmYyMDFjMTlmZDAwYzQzYWI4
NTQ1NjcxZTM1NTRkMDE0ZTEyZTE0MTM5ZTVlODYxNyBcDQogICAgLS1oYXNoPXNoYTI1Njo2ZGY4
OTU1OThjMGVkY2I0MTAzMDEyNmM4OWUwZjM1M2IwN2Q5MzIzODExNjE0M2I3NDA1ZTkzNzM1OTcz
NmM0IFwNCiAgICAtLWhhc2g9c2hhMjU2OjZlODE3MmRkZmNmNWNmNzRiODExZDM3MmI1NzBiODNj
NjBiZDJkZTg3YTZmYmZiZWJkYWRiNGE5YmQ5YzZjYmIgXA0KICAgIC0taGFzaD1zaGEyNTY6NzM1
NDgyNmJjNmY4ZjY5NDAyZTliN2ZlMjhkMTVmY2QzNGZlZWJkNzRmODU2ZjExMTU4NWM1YjBjOWZi
MDI1MSBcDQogICAgLS1oYXNoPXNoYTI1Njo3NTg3ZjUzZGZiZDVlZGMwZjdiODdjNjIxN2I0YzZk
MmQxZjJlZjljM2RhNzBiYzEzMTVlN2RiNWY4ZDdlYzlkIFwNCiAgICAtLWhhc2g9c2hhMjU2Ojc3
ODQzY2EyMzZiNzc3ZTY3ZjhkNmIzNjYwZWExMTZlNDk5NjEyNzAzYTBlY2Q3MDkzZjMxNjIwMWVi
OWQ4ZTIgXA0KICAgIC0taGFzaD1zaGEyNTY6Nzk5OWQ0ZGRiMGM0MDI1MDE4MzczZmQ3ODc1MTBk
NDZlMDRjNzY5NDY3YWYyMjg2OTcwN2IzYzFjZmQ0NTlhYiBcDQogICAgLS1oYXNoPXNoYTI1Njo4
NWFhY2NiMjQxODJjMjVkZjg5MWFkMGVjMzMzNTg1OTY3ZTExNTI2OWQ1ZjFiMTdmMmM5YWUwMDVi
Yzk2NjU3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjhlNGNiOWE3NTRjOGEwYzYyZWFhODgyNzNhNWZi
YTMzOTFmNGE2MTBkMWRlZTg5M2MwNzU1ZGEzMWMwODNmMTUgXA0KICAgIC0taGFzaD1zaGEyNTY6
OGVlOWM0ZWViODQ1NGIzNjYwYThiNTM0OTM1NjNjM2UxMjFjMmZjOTRmYmQ3MmI4NDhlZjgxNGVk
N2I2NzZhOSBcDQogICAgLS1oYXNoPXNoYTI1Njo5YTA3MzE3NDVhNzJhMTg0NDkwYTU4MmZiNGFm
MjUzMzUxMmJkMDcxYWNlNjc3ODViNWZkZmZjMGFlNThkY2U4IFwNCiAgICAtLWhhc2g9c2hhMjU2
OjllOTQxMzMyNmQ3MjZjMjU0NWJmYTY1ZDJjMDg3Njg3MWU4ZDgzODZlNzdmOTkyYzFkNDI2ZTE4
MGJiZDQzMjMgXA0KICAgIC0taGFzaD1zaGEyNTY6YTYxMGRjN2UzYzUyZWRkMzljMmJjMjM3NWZm
OWMzZmQ1OWNiM2FkMDBlNDQ3MmQzNmY4M2JjMTQ1NzE0NTc4OCBcDQogICAgLS1oYXNoPXNoYTI1
NjphODM5MzE4NDg1Mjg0YTZmYjMxYmU0ZjhmMmM5MWM4ZjJjYjIyZjQ1NDNjNGE4OTAzZjEyYjA2
NzFmZmUwN2NjIFwNCiAgICAtLWhhc2g9c2hhMjU2OmFmYjNmMDYzMmQ2YjJlM2JhMDRkYmNlOGQx
ZTQ4ZDMyMWIzNjkxMzhiNzM4MzBiNWNhMzcxYTBlOGQ0NzlkNTYgXA0KICAgIC0taGFzaD1zaGEy
NTY6Yjg3OWZiNjc0Mjc2ZTMzMTUxM2ZiMTM2Yjc4ZGJjNmJkM2M4NDgzMDllMGQ4NDFjZmQ2M2Jl
Mzg5NmM0Y2ZjMSBcDQogICAgLS1oYXNoPXNoYTI1NjpiOTcyN2Y0NzJkMmYzODg4MDUzYjhhNzVh
YjBjYjk0NzQ1YTlkZTIyNGJiNTg0NmRiYWRjMDA5MjEwMWJjNzFkIFwNCiAgICAtLWhhc2g9c2hh
MjU2OmJhMGE0NzQ4MDFiOGRjNjdiNjZiZjQ2NTU0OGFiYzkwZTgyYjQ0ZDI2MTFiNTc3MGYzMzAw
OGRjYWJmZmU4ZWMgXA0KICAgIC0taGFzaD1zaGEyNTY6YmQ2OGVjZTE1NTNkMjAyM2MwOWE0MjI2
ZDllNDFjNTg2YWQyZDIwNTk0ZDFhNDU2MTg2YzMzNTEzZDJjYjNmMiBcDQogICAgLS1oYXNoPXNo
YTI1NjpjMDgxY2JlMTZiYTFhYjUzMDc4ZTVmZjI5MDEzNjIxZTMzYzUwOWVlZGFiMDU1Nzc1ZDk1
NjQyNzcxMmMyMzZlIFwNCiAgICAtLWhhc2g9c2hhMjU2OmMxZjAxN2RjMDg3NWM5MjA5ZDIxOWY5
N2ZlY2ViN2Q1NGMyNjYxYmIyNDNkZWI0MTE0NDc4ZTEyOTU4MDhhZjcgXA0KICAgIC0taGFzaD1z
aGEyNTY6Y2ViYzJkNmRiYjYwNWE3NzAzZDU5NzUxZGVhNGJkNmIwYWIxMjdhNWE0MzM4YTZmNDMy
ZGYxOTM2ZmVmOGIyNiBcDQogICAgLS1oYXNoPXNoYTI1NjpjZjdkZTMyZjQ4NmU0YWM5ZTJkOTNi
ODEwZjllOWFjNzJhNzI4ZGQ0NmEzMmEwYmI0MDMyMjJmMjdmNjUzNTE0IFwNCiAgICAtLWhhc2g9
c2hhMjU2OmQ0ODJkMTcxYzQwNmFlODhjNWIxOWNhZDNiNmExYzRjNTIwOWY4ODZhYjc0YmM0NGMy
Yzg2NWMyM2Y1MmQ4NjAgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDZhNDgwNzI4NjRlMzMyNGUxOTRh
OGZiYjNjNjU3YmNjNWI1Yzg2OWRiYzY0Yzk1MzdiMWQ1Yzg2MjU3MmMwYSBcDQogICAgLS1oYXNo
PXNoYTI1NjpkNzg3Y2Y3NjljM2JhZWI1ZjYyMzVlNzc4ZWRiNTJjMDhkZmE5MjM3ODliNTk1OGYy
OGU2NDUwZjk2MTA3Y2IxIFwNCiAgICAtLWhhc2g9c2hhMjU2OmRjNjQ5NDkzNjk3MDA2YmM5MDYx
NGE1ZjBiYmM4Y2IzY2IxODY2NzE1YzQ3NGU0NzM2OTQ5NjhkN2U2Yjk5YWIgXA0KICAgIC0taGFz
aD1zaGEyNTY6ZGRmNDc0NzJhZjJlNDI4MGQ3OWJhYzgyMzA0ZjVlODAxNTAyMTFmMWI5ZTYxNGI3
NjAwNjFkNWZkZmJiNmViYSBcDQogICAgLS1oYXNoPXNoYTI1NjplNTY1MWYzZjg3YWRkNzMwZWU2
NjA4ZDkxNTAwOWUxOWM5MTFmYmEwY2IwMDBjN2UzZWE5OTRiN2Q3NjhlYjEyIFwNCiAgICAtLWhh
c2g9c2hhMjU2OmU3OWFiYTc0ZmZhZjVmNzhhMDUwZDc3N2MxODRjZGRmOGZkZmZhYmFiMzhhY2Y1
ZjNlZjFmZWNiYzE3ODk1ZDYgXA0KICAgIC0taGFzaD1zaGEyNTY6ZWFhMDg4Mzg0YzQ2ZjUxOWRh
Y2I5M2I3ZWM0ODNhNmQ2YjE5YTRhMjA4NWFlNGYyNWFiOWIxYzQzZDM4N2QxZSBcDQogICAgLS1o
YXNoPXNoYTI1NjplYWNhN2ZmMzZmMGY1MmUyMTExZWM3MWYxNjlkOGZkM2U4ODllN2RkYzBkMjU5
MmUwZDcwM2ZkOGQzY2U4ZmFjIFwNCiAgICAtLWhhc2g9c2hhMjU2OmYwNjU3MWEwNTIxMjdkYzFi
NGU4YjgzMDI5YjRkMWIyMGRhYTJiNjRhMzFjZGQxODFmYzZiYzc3NGU5MDAwZWIgXA0KICAgIC0t
aGFzaD1zaGEyNTY6ZmQwZDcwMzc3MmJiYTA5Njg0Mzc4NWJkMzgzNzFlMzFiYjRhMGMxMTUxNDk3
YWQ1NzM5ZDE4MjExNGE3M2Y3Zg0KICAgICMgdmlhIHBhbmRhcywgcHlod3B4DQpvcGVucHl4bD09
My4xLjUgXA0KICAgIC0taGFzaD1zaGEyNTY6NTI4MmMxMmIxMDdiZmZlZWY4MjVmNDYxN2RjMDI5
YWZhZjQxZDBlYTYwODIzYmJiNjY1ZWYzMDc5ZGM3OWRlMiBcDQogICAgLS1oYXNoPXNoYTI1Njpj
ZjBlM2NmNTYxNDIwMzkxMzM2MjhiNWFjZmZlOGVmMGMxMmJjOTAyZDJhYWRkM2UwZmU1ODc4ZGMw
OGQxMDUwDQogICAgIyB2aWEgcHlod3B4DQpwYW5kYXM9PTMuMC41IFwNCiAgICAtLWhhc2g9c2hh
MjU2OjA4ZDI0ZmUxMWExN2RjMzNiZDZlOTM3ZGM5YzY2NWY5Y2JhMDhmYmRjOWY2NTdmNDA1NzEz
NTE1ZmViZTMwMGQgXA0KICAgIC0taGFzaD1zaGEyNTY6MGQyOThlOTUxZjIzMDE2Y2U0Njk5OTUx
ZDA0NGFlNjQxOGRiYzkxYmY2OGNlZmNhMGY3NzY2NmZjYmI0ZTVjNiBcDQogICAgLS1oYXNoPXNo
YTI1NjowZmFjMDAxMGM3NWU0ZWZiNmI5OWUyNDljMTgzYTg5OTNjZTBkYzk1YzI0MGY5YjEyMGE1
ZTY3YzcyN2I3OTI4IFwNCiAgICAtLWhhc2g9c2hhMjU2OjFjMTA0NjFmNmVlYjM1ZDhmMDViNjE4
NGM2NWM4Yjk5OTE2NjNiNjZjNDZiMWQ1NTliNjgyY2IzNGFlN2M2ZWEgXA0KICAgIC0taGFzaD1z
aGEyNTY6MjVmZjU4NWI5NzJhMThlZjFmZTlmZmEzYWM2NTQ0ZDk5NTA1MDhhYTc2ODMyZTUxNDc2
NDBiNjAyMjgyMWU0OSBcDQogICAgLS1oYXNoPXNoYTI1NjoyOTQ2ZTc3ZTRhNTNjZDI0OGNiZGU2
MzFhMTJmMGU1MWM4MzI0Y2UzNTRjM2ViYTRkMjAxNDdjMWFkNmY0MjgyIFwNCiAgICAtLWhhc2g9
c2hhMjU2OjJhMjljNTNkODVlYTk4YzVlNzkyYzU5ZWY4MmVlOWZiZTZjYTkwMmMwZDBhZGI2YjIz
ZjQ1ZWY4OTRjZDdiZjYgXA0KICAgIC0taGFzaD1zaGEyNTY6MmMwY2YxZGQ5YjU1YTIyZDEwNWZj
NDZjMWI0ODlhZjNiZDQyMjY0ZmNiYTdjNjYyOTdiZjQ3YTlhMWQ5Yzc4YSBcDQogICAgLS1oYXNo
PXNoYTI1NjoyZjI2NGZjNDY5MTFjYzgxMzFhNzMyMmExNjE5OWJiZjhlMzUzZDI3YzEwYmIyMTFm
NWJkMGM4MTQzMjRkYzM2IFwNCiAgICAtLWhhc2g9c2hhMjU2OjMwM2RhNzM2OTg3ZDQ4MTA3NGNh
NzIwYWRhMzI1ZjhiZDgwYzY0ZWJjMmQ0NWVkNzliMjlkZjNhYWE0YTI2Y2EgXA0KICAgIC0taGFz
aD1zaGEyNTY6M2IyODAxYmJiMDQ5ZDAxMzZmNmMyMTNlYWUwMmI1ZmNhOTY5Mzg0ZmMyMDY0ZGQ3
MjhkODYyMDU1MmFhNDlkYSBcDQogICAgLS1oYXNoPXNoYTI1NjozYzUwMTVmZDE3MzBmYmY4ODM2
NDdlODgwNjgxNzZjODM5YzEwMmNlYTg4M2JhMTc2OWE2ZjQ1OTNiZmMxZjhjIFwNCiAgICAtLWhh
c2g9c2hhMjU2OjNjNWVkMmU3YzA2ZTkxZDM0MGRmZDA5MWQ3OTM0ZjliYzgyZTRhMzZiOTVmNjQ3
ZjA5MGI5ZDFjOWFjNjQ5ZGEgXA0KICAgIC0taGFzaD1zaGEyNTY6NGIxMWMzNmUyMTgzMzFkMDM4
N2NiZTNhMGE1Zjc1MTYyMzU3YTFkOTJkNTdiMmIwOGEzMzZmZjk0YjE5YjJiZSBcDQogICAgLS1o
YXNoPXNoYTI1Njo1MTgzNDI3ZjVhODE1NmQ0ODBmMzAzMzM3NzdiYzk3OGJlOTM2NTBhNDlhN2Mw
MWRiMjZhZGZmZTk1YjMxZTg1IFwNCiAgICAtLWhhc2g9c2hhMjU2OjUzNzMwNjg3ZmNkMTYxODgz
YjI0ZTEwNDExYzA2ZDZhNGMwZjIyNzVkMmZhZjNiYjJiYzI1ZGViNGJhODAwN2MgXA0KICAgIC0t
aGFzaD1zaGEyNTY6NjYyNjZkMzQ0MmE1ZThiM2M5MDI3NGMyYjhiMjMwYmVlNDJkZDFjMjg2YmM4
MjJjYzJmOWYyYzdlMTJiODgzZSBcDQogICAgLS1oYXNoPXNoYTI1Njo2NzlmNGU4NWIzMGRkYjE1
MTU0NThhYjFlNzg4ZDNlMjYwZWFlMzY5YjFmNzhkYTdhM2FhNGNhYzhlYmY0YTJhIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjcxZWNjOGZiN2VkMWE3YWE0MzkyMzE2YjUzMDlhNjM0N2U4ZTdmODMyZjM4
ZmQ4OTc4NDZiM2ExNDU3YTkyOTggXA0KICAgIC0taGFzaD1zaGEyNTY6NzNmYTg3YjA4YTdlZjcw
NmY4YWFmZGEzOWRkYWNjZjJhOTkwNDdiZWE2MmQ4Yzg4YTAzNjFiY2FmYjIyMzdiYyBcDQogICAg
LS1oYXNoPXNoYTI1Njo4MGE2MTEwNjhlOGEzYWMyM2Y3Mzk4YzZjMTRlYjQ2ZGM5NzRlNWNjOTk5
N2Y2NTNlMmRjZmQxZGE3NGVkZDQxIFwNCiAgICAtLWhhc2g9c2hhMjU2Ojk2MGQzZWJjZjI0OWY3
NTIwNjg5OWZjZDJjNmRlNTNmNzM2YjcyNjU3NTljZWQwZDNlNTU5ZGYwYjhiNzA5YjAgXA0KICAg
IC0taGFzaD1zaGEyNTY6OWU5NGMyYzVjYTQzYmQzY2EzMmJmNjRkMzIzMDg4ODdiNjVlNWY5YmZk
ODAyM2VhNTI3NTUxMDdhOTk5ZjkzYiBcDQogICAgLS1oYXNoPXNoYTI1NjphNWFkM2IwMmVkNmJj
N2Q3YWU5YjcwODA0YjJjNmFhMzE4Mjc0ODlkMTUwZjhlNjIzY2U4MjQ5MWI4MjA4NWQ3IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmIxMjYxNzU4ZGZiNmNmMTJjM2NmZjgzMDBlMjFjZWZhZDMwZTdlYzcw
OWFiYjRjMjRhYzczMThlNmE1MjQ2MmEgXA0KICAgIC0taGFzaD1zaGEyNTY6YjE3M2Y1OTUxZmY2
YjhiMGVjNzY3NWUyMGRmZjNjOTdiN2U3YTU3ZGZjY2UzODdjMmQ3YzVhZmU4N2NiNzg5OSBcDQog
ICAgLS1oYXNoPXNoYTI1NjpiMmFjYjQ2NTA1MjdlZWM2ODIyYzNkYWRiMmI3NzEyNzdiNjVlN2Rh
ZTdhMjY3ZDRiY2NmNjVmZDFiYjNmYmNlIFwNCiAgICAtLWhhc2g9c2hhMjU2OmI1OGIxYjM5ZDQ2
YTU4NjJlM2ZiMThmNTBkMWEyMDEzOTg2MTlkMTZhMGY5ZjczZjU3ZWVhNTU4M2NmMGU2M2MgXA0K
ICAgIC0taGFzaD1zaGEyNTY6Yjg2NzY1ZjI2OGI1NmY3ZTY2NWI5M2JjZTlkNWRmNjlkZWU3Zjk5
ZTU5NWNmOGZiODM5NDgzYWIzMTU5NDJhMyBcDQogICAgLS1oYXNoPXNoYTI1NjpjMWMwNWE3Njdm
ZThlNWI0ZmU5ZTFjMjk4MDY4MjljNTgyMDUyZWFlZGI5MTIwYTNkYTgzYmEzZjY5ZTI0YTViIFwN
CiAgICAtLWhhc2g9c2hhMjU2OmMyZTI2YmI0NjkzNGI4YTJjYTBjM2RlMWQzZDYwNmZjNWY2NzQ2
NTg0NzkxYjJkYjI2NGQ1OGNmMzcwZTA4ZGMgXA0KICAgIC0taGFzaD1zaGEyNTY6YzU5N2VjZjU2
MTZiNWM0MjAzNzJjMWQ0ZDRjMDBkYmJmYmE3Mzk4YmVhODU3ZGNjOTg0MzQ3ZTFlYTQ4NDE3YiBc
DQogICAgLS1oYXNoPXNoYTI1NjpjY2UzYTlkMTFkMmIxZjgyYzY5YTI3ZWMxZjQ5NDhhMTcwZTJj
NDAzYzRiYmZhOGNjYTYyZTNmZGViZTJlZjNhIFwNCiAgICAtLWhhc2g9c2hhMjU2OmNkOGY3YzZk
Yzk4NTI3MDU4ZWU2MjY0MjE5MzQzZjUzOTIyNDBhNmYxYmZhNjU0ZmM1ZDc5MDIzMDIwZDBjOTIg
XA0KICAgIC0taGFzaD1zaGEyNTY6Y2Y1MmUxZjYxZDIyOTQ5NmRhMTdkYzdhYjU0YWNkZWU2Mjcz
NTdlNzAwOGZkNGZlY2JhM2QwYmEyOTM3ZmE1OCBcDQogICAgLS1oYXNoPXNoYTI1NjpkMzczY2Uw
M2ZmZDg0MDEwZWQ5ODM5ZmE3MzY3MmE5YzgyNTY5OTA1MzJlMTU4NDQwYzAwODVkYjdkOTE0YjM0
IFwNCiAgICAtLWhhc2g9c2hhMjU2OmRiMTcyMTQ0YmI1NjQyMmJkMTU3ODEyZjNiMDIxZWFjYzI1
NTQ1MTQ3MGIzMWUyYzYzM2MzNDk0OTBhMWNmZWUgXA0KICAgIC0taGFzaD1zaGEyNTY6ZGNhMzcz
NGQ2YWI3YzkwNmU2NzMwZjA3ODhiMGExZGJiOWYyNDY3NzMxZjk3MTFmNzc5OTVjOGU5ZDYyZDcx
MiBcDQogICAgLS1oYXNoPXNoYTI1NjplMjc1OWU4OTBkYjk2ZGZjZmZkYmQ5Yjg2YzNjMmNiNmFm
YWY1OGRlZjQ4MjgyMDMxN2UwNjE2M2VjMTA2NmNkIFwNCiAgICAtLWhhc2g9c2hhMjU2OmU4MTlk
ZDVmNjI5NjZiNDgxYThjYjY0OWQzMjk5ZWJkODg2YTFlYTkxZWQ1YTk5YmY3Y2U3N2M5OGQxOGFi
OTQgXA0KICAgIC0taGFzaD1zaGEyNTY6ZWYwMWFmNGQ4ZGM2Y2QyYzhkNmM3NzM2ZjE0OTU3NGVm
OTNmZTA0MzgxMWVlYjVlNDQ1ZjI2NDcxNTRiNTA0MCBcDQogICAgLS1oYXNoPXNoYTI1NjpmYTI5
MGMxNjk2NGQ0OTYzZmJmYmMzNTg5MjgyMzljZjNiZDc1NWIyMGU5ODhjZTk0NDg3N2RlZjJmNDQ0
NzFkDQogICAgIyB2aWEgcHlod3B4DQpwaWxsb3c9PTEyLjMuMCBcDQogICAgLS1oYXNoPXNoYTI1
NjowMDgwOGM1ZTE0ZWY2M2FjNTE2MTA5MWQyNDI5OTkwNzY2MDRmZjc0Yjg4MzQyM2ExMWU1ZDdi
YmIzOGJmNzU2IFwNCiAgICAtLWhhc2g9c2hhMjU2OjA0ZjAxZDI4YTZhYWZmMzg3YmY4NDJhMTNi
ZTMxM2RmMjNiYTA1OTdhNDRmMWE5NzZjOWZlYjNjNmZmNDcxMWEgXA0KICAgIC0taGFzaD1zaGEy
NTY6MDZmZjAyMjExMmJjOWNiZjgzYjYwZjhlMDI4ZDk0YWQ4N2I2MDYyMTcwNjQ4N2U2NWY2NzNk
ZTYxNjEwYWI1OSBcDQogICAgLS1oYXNoPXNoYTI1NjowNzQwYTUxMmRjNTIyMjI0Yzc3ZDlhYTVh
OGQ3MGQ4YjdkNzNmYjkxZjJjMjExMjVkOGQwMjVkM2I4OTkwZTQ1IFwNCiAgICAtLWhhc2g9c2hh
MjU2OjA4NDdhNzYzYWZlZmI2OTViYzkxMmQ3YzEzMWU3ZTA2MzJkNGVkYzFkODY5OGY1OGRkYWJl
YzhlNDZiOGI2ZDMgXA0KICAgIC0taGFzaD1zaGEyNTY6MGRkMjA2NGNiYzU1YWFlYzAyOGVmNWZi
YjYwZmE0N2JiNmMzZTc5MThlMDdmZjE3OTM1Mjg0YjIyN2E5ZDJkZiBcDQogICAgLS1oYXNoPXNo
YTI1NjowZmViMmU5ZDZhZDZjOWUzYzA2ZWZmZTlkMDBmM2YxZTYxOGE2NjQzMjczNTc2YjAxNmY1
OTFlOTMxNWE3MTM5IFwNCiAgICAtLWhhc2g9c2hhMjU2OjEwZTQxZjBmYmYxZWVjOGNmZDIzNGI4
ZmUxN2E0Y2FhYzdjOWQwZGI0YzIwNGQzYzE3M2E4ZjlmNmVmMzIzMmIgXA0KICAgIC0taGFzaD1z
aGEyNTY6MTE4MmQ1MmJjMmQ1ZTVkN2QwOTQ5NTAzYWE3ZTM2ZDEyZjQyMjA1ZGMyODdlNDg4M2Y0
MDdiMTk4ODgyMGQzOSBcDQogICAgLS1oYXNoPXNoYTI1NjoxNjRiMzFjZDFhMDQ5MGFiNmVmYWUw
MWFhNWRmNDlkYTcwNjFiZTBhZjFiMzBlMDM1YjZlOWExYmZlMzRlZTZlIFwNCiAgICAtLWhhc2g9
c2hhMjU2OjE2NTc5MjNkMmQ0NWFmYjY2NTI2ZTViOTMzZTViMzA1MmU2YmRlYTE5NmM5MGQzYWJi
MjQyNGUxOGM3N2RhZTggXA0KICAgIC0taGFzaD1zaGEyNTY6MTg2OTQxYjZhZWY4MjBhZDExMGZi
MDFmYjA2ZWI5MjUzNzRkYzNhMjFiMTdlMzdlYzlhNTNiMjUwYzZmZTJkMSBcDQogICAgLS1oYXNo
PXNoYTI1NjoxY2NhNjA2Y2QyNTczOGRmNGVkODczZDVhZDQ2YmJkYjNkODNiNWNiY2EyOTFmNmI0
ZmYxM2E0ZGY2YjBiYmU4IFwNCiAgICAtLWhhc2g9c2hhMjU2OjIxOTAwY2U3YmEyNjQxNjhjZDUw
ZGVmYWU0M2NkNzVkMjVjODMzYWQ0YWQ2ZTczZmZjNTU5NmQxMmUyNWFjODkgXA0KICAgIC0taGFz
aD1zaGEyNTY6MjM2ZmY3MGI5MzEyZmI2ODk0M2M3MDNhYTg0MmNhNmE3NThhYmZhNDVhYzE4N2E1
ZTdjMTQ1MmU5NmVmNzJiNSBcDQogICAgLS1oYXNoPXNoYTI1NjoyM2FjZWFhMDA3ZDYxNzJiMDJj
Mjc3ZjBjZDM1OWM3OTQ5MmJiYjE0ZjcwNzJiNGVkZTlmYmNhZjIwNjQ4MTMwIFwNCiAgICAtLWhh
c2g9c2hhMjU2OjIzZDI3YTNlMDMwN2VjMjI0NGNjNTFlNzI4N2I5MTlhYTY4ZDA5NzUwNGViZTE5
ZGY0ZTc2YTk4YTNlZWE1YmQgXA0KICAgIC0taGFzaD1zaGEyNTY6MjQ4NzBiMDliMjI0ZjdhZTNj
MzllZDA3ZDEwZTgxOWQwNmY4NzIwYmM1NTE4NDdiMWQ2MjM4MzJiNWIwZTI4ZCBcDQogICAgLS1o
YXNoPXNoYTI1NjoyNTFiZjk1YjY3MDE3ZTI3YjEzZDgyZjViMzI2MjM0Y2E2MmQ3MGY5Y2Y0YzJi
OTAzMmRlMjM1OGEzYjEyYzdiIFwNCiAgICAtLWhhc2g9c2hhMjU2OjI1YjliODJiYjIyZTZlMmIz
Y2QwN2IzOWM2OGI3Yjg2MjAwMTIyNmNiM2RmZjcxMzBkMWNiOTE0MTIxYjM5ZWQgXA0KICAgIC0t
aGFzaD1zaGEyNTY6MjhjZTg3YzVhYjQ1MGE5ZGQ5NzBiNTJlNWFjYTVmZTYzZWQ0MzJkMThhMmVh
ZGRkMTk3OWEwMGExYmEyNGFjZSBcDQogICAgLS1oYXNoPXNoYTI1NjozMDA1NTc0OTVlYjQ1ZWJi
OGFlYzk2YzJkYTljNGJlNjQyZmJmN2NkOTM3Mjc4YjQwMTNiYTg5NGVhOGViMGViIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjMwZjJhYTYwM2M0MTUzM2NjMjVjMDVhY2QwZGEyMTYzNmU4NGEzMTU3Njhm
ZWI2MzFjOTM3MTc3ZGI1NTg5MzEgXA0KICAgIC0taGFzaD1zaGEyNTY6MzMxYjYyNDM2OGQ0ZjFk
MDY5MTQ5MDAyZjI1ZjQ0YmM2MWM4OTE5Y2U4ZGRiM2M0NWJkYWQ4ZjZlMmQ4OTUxMCBcDQogICAg
LS1oYXNoPXNoYTI1NjozN2Q2ZDBhMDAwNzJmZDI5NDhlYjIyYmNlN2UxNDc1ZjM0NTY5ZDkwYzg3
YzU5ZjdhMmVjNTk1NDFiNzdmN2E2IFwNCiAgICAtLWhhc2g9c2hhMjU2OjM3ZGM4ZjdiYmI2NmVm
ZTQ4MWJiNjBkZWZhY2VmODIwYzk1MGMyNDcxM2ZiNDQ5NjJlZDZhYTJhNTA5NjZkZTEgXA0KICAg
IC0taGFzaD1zaGEyNTY6M2I4MTgyYTc2NjY4NWVhYTAwMjYzN2UyOGI0ZWM4ZDZiMTg4MTlhMGM3
MWY1NzliZjBkYmFhNTgzMDI5N2NjZSBcDQogICAgLS1oYXNoPXNoYTI1NjozZWRjZTFkNTMxOTVk
YjUyN2UwMTkxZjg0YjcxZDAyMDIyZGUwNTQwYmY0M2ExNmVkNzM0ZWQ3NTM3YjA3Mzg1IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OjQ0NmMzNGRjYzQzMjRiMDg0YTUzYjcwNTEyN2RjMTU3MTdiMjJjNWUx
NDBhZTBhM2MzODM0OWQ0ZWZlYzA3MWUgXA0KICAgIC0taGFzaD1zaGEyNTY6NDk5ODU2MmJmNjJh
NDQ1MjI1ZjIyZTA3Yzg5NmJiMDRiMzViMWIxZjJlYjZkNzYwNTg0YzljNTFkN2E1Zjc4YyBcDQog
ICAgLS1oYXNoPXNoYTI1Njo0YjBhN2ZlOTg3YjE0YzMxZWJkYTYwODNmNzRmMjJiNTYxZmQzNzM5
YmMwYWM1MWUwMTk2MjJlM2Q3MjY2OGM3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjRlOGMyYTg0ZDk3
N2Y1MGI5ZGFlZDZlZWFmM2JhZWY2N2QwMGQ1ZDc0ZDkzMjI4OGYwMmNiOTQ1MThlZTNhY2UgXA0K
ICAgIC0taGFzaD1zaGEyNTY6NGY4ODM1NDdkNGI3ZjA0OTVlYmU3MDU2YjBjYzJhZWE3NjA5NGU3
YTRhYmM4ZTkzMzU0MGYzMjcxZGYyN2Q5YyBcDQogICAgLS1oYXNoPXNoYTI1Njo1MTQ0MzVhMzc2
NzBlM2U1ZTA4ZjM5NDViNjg3MThiNmVkMzI5YmI4NDM2Nzc3N2UxNmY5ZjRkZmUxZTYxYTBmIFwN
CiAgICAtLWhhc2g9c2hhMjU2OjUzYWEwMmQyMGQxMGMzZDgxNGQ1MzZhYTRlNWFjOWI4NGNhMGZm
NWE4ODM3Nzk2M2IwODVhZDY4MjJmOTNlNjQgXA0KICAgIC0taGFzaD1zaGEyNTY6NTU5NGZjNDNk
NTQ4YTdlZDk0OTQ5ZDEzOWFhMTM0MWIyNzBmMTg2M2YxMWNmZDM3ZjVhNmM4Yjc3OGE2YjY3ZiBc
DQogICAgLS1oYXNoPXNoYTI1Njo1NzFiOWZjYjA3Yjk3ZWYzYTQ5MjAyOGZiM2QyZGMwOTkzY2Ey
M2EwNjEzOGIwMzE1Mjg2NTY2ZDI5ZWY3MThhIFwNCiAgICAtLWhhc2g9c2hhMjU2OjU3YjNkNzhj
OTViYTkwNTk3NjhiMTBlMjhiODEzMDAyMjYxZDNmM2RmYzU1Y2M0OGIwYzk4OGY2MjUxNzU4Mjcg
XA0KICAgIC0taGFzaD1zaGEyNTY6NWFmYjUxZDU5OWVhNzcyYjgzNjVhZTgwN2FlNTU3ZjE4YmNj
ZmU0NmFiMjYxZmQxYzJhOWVkNzAwZmM2ZWIxNyBcDQogICAgLS1oYXNoPXNoYTI1Njo2YjAyYWZi
OWI5N2Y2NWZiY2E1ZjMxZGI2YTJhM2JhMjFhYTkzMDMwMjI1ZjE1MGZhM2YyNDk3MTdlOTM4ZmI0
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjZjMDAxNmU3YjM1NDMxN2M0ZTllNTI1YjkzN2FjODU5NmMz
OGQyZDIzMmI0MTk1MjliOWNkN2ExY2Q0NmUzOWEgXA0KICAgIC0taGFzaD1zaGEyNTY6NzFkNjA5
N2IzMzBlZWE4ZmQxNTA5Nzc4MGM4ZTg5Y2IxYThjZTc4Mzg2NjlmNDhjNWJhY2Q2ZjY2M2RkNDcw
MSBcDQogICAgLS1oYXNoPXNoYTI1Njo3NTZjNzY4ZDBjOWMyOTU1ZmViN2E1NmMzN2VhMjRhZWEy
ZTM2OWY4ZDM2YTg4ZGEyNzBiNmE5ZjE5ZTYyYjVlIFwNCiAgICAtLWhhc2g9c2hhMjU2Ojc4Y2Iy
YzY4NjVhMzVhYjhmZjhiNzVmZDEyMmY2MDMzYjkyYTYyYzgyODAxMTEwZTQ4ZGRkNmM5MzZhNDVk
OTEgXA0KICAgIC0taGFzaD1zaGEyNTY6N2E3NDNmZjcxNmY3NDZmYzE5YTk1NTdmNjBkYWIxNjAw
ZDQ2MTMyNTVmOGE3YWViM2NkZGU0ZGI3ZWIxNWE2NiBcDQogICAgLS1oYXNoPXNoYTI1Njo4NWY5
OThlYTE4NDhiYzY3NTcyODllNzM5Y2ZiZGRhM2EwNGFkZmQ1OGIwMmZjMDE4Y2U1NGQ3NTRhNWNl
NDY4IFwNCiAgICAtLWhhc2g9c2hhMjU2Ojg3MjhmMjE2ZGNkYjZlNmQ1NTVjZjk3MWNiMzQwNzYx
MzlhZDc0YjMxZmMyYzE0ZGE0ZmFmYzc0MWM1ZjYyMTcgXA0KICAgIC0taGFzaD1zaGEyNTY6ODc3
YzNmMzExZmYzNTQxMGY2OTA4NjFjNDQwOWU3Y2NiZjBjZDJmODc4ZTUwNjI4YTI4ZTVhMGJiNjg5
ZTY1OCBcDQogICAgLS1oYXNoPXNoYTI1Njo4Y2QyZjdiZGRhMDkyZDk5YzlmYzJmYjczOTEzNTRm
MzA2ZDAxNDQzZDIyNzg1ZDBjYmZhZmEyZTJjOGJiNDE4IFwNCiAgICAtLWhhc2g9c2hhMjU2Ojhl
OTVlMTM4NWU0OTk4YWU5Njk0ZWVhYTQ3MzBiYTU0NTdmZjYxMTg1YjNhNTVlMmU3YmVhMDg4MGFl
ZjQ1MmEgXA0KICAgIC0taGFzaD1zaGEyNTY6OTYyODY0ZGM5MzUxMTMyNGQ1MWRkYmI1YjlmODcz
MWJmNzE2NzViOTNjYTYxMmEwNzQ0MTg5NmY0Njg4ZmI4YyBcDQogICAgLS1oYXNoPXNoYTI1Njo5
Y2Y5NWZlNGQwZjg0YzgyZDI4Mjc0NWQ5YmIwOGFkOWY5MjZlZmEwMGJlNDY5N2U3NjdiODE0Y2U0
MGQ0MzMwIFwNCiAgICAtLWhhc2g9c2hhMjU2OjllODgxZmNhMjI1MDgzODA2NjYyYTVjNDNkNjI3
ZDIxNWYyNThmZjQzYzg5MGY4MzE5NjZjN2Q3YmE5Yzc0MDIgXA0KICAgIC0taGFzaD1zaGEyNTY6
YTJiNTVkZDZiMmE0YzRiN2Q4N2ZmYTU2YmRiMzNmZGM1ZmRiOWE0NjIxNzM4NjFhN2JjMDk3ZjE3
ZDkxY2IwOSBcDQogICAgLS1oYXNoPXNoYTI1NjphNDU2NTBlOGNlN2ZhZmZmZDczMWRiODU1MDIz
MGRiNmIwZDMwNmQxODFhOTBiNjdkM2U2YmNhMmYxOTkwOTMwIFwNCiAgICAtLWhhc2g9c2hhMjU2
OmE4NzY4NjQyMTRlMTM2ZjBlYjM2Nzc4OGRiZDdkZjA0NWY0ODA2ODAxNTE4ZTJjZmU5ZTEzMjI5
Y2ZlMDZkOGYgXA0KICAgIC0taGFzaD1zaGEyNTY6YWUyNmQ2MWRmYTdhNDdiZWZkYzc1NzJiNTIx
MDI0ZTg3NDVmM2Q4MDliZDk1Y2E5NTA1YTdiYmE5ZWY4NDllYyBcDQogICAgLS1oYXNoPXNoYTI1
NjphZjhkOTRiMGRiNTYxY2Y2OGI4OGEyNjdjNWM0NGI0OWUxMzRmNTI1ZDBkYzJjYjdlZDQxM2E2
NmJjMjM1NTlhIFwNCiAgICAtLWhhc2g9c2hhMjU2OmIzNDM2OTllODMwOGJkYzUxOTc4MzEwZTFj
OTU5YzU4NGU3ODY5Y2M4YzQwNzgwMDU4Yzg3ZGE3NzgxYTFlOTQgXA0KICAgIC0taGFzaD1zaGEy
NTY6YjNjNzc3ZTg0OTIzNzYyMGIwMjJmN2YyOTdkZDY3NzA1ZjlmNWNmMTY4NWYwOWYwMmU0NmY5
M2U5MjcyNTQ2OCBcDQogICAgLS1oYXNoPXNoYTI1NjpiNjI5ZGUyN2ZkYTg0YjQyY2RlN2VkZWYw
ZDg1ZjEzYjk1OGI0N2Y2ZTliYmNiYmE5YjY3M2M1NjJhODliZDhiIFwNCiAgICAtLWhhc2g9c2hh
MjU2OmJhMDkyMDlmYmU0NDNiNGFjY2NlYmU4NDVkOGExMzhiODlhOGY0ZmJhZWVkZDQ0OTUzNDkw
YjUzMTVkNWU5NjUgXA0KICAgIC0taGFzaD1zaGEyNTY6YmE1NGNmZWJlODY5MjBhNTU5YTdjNGQ2
YjkwNTA3OTFjMjA1MTM2NTBhMTk1MmViZTMzNjhjN2RjNzAzMDZmOCBcDQogICAgLS1oYXNoPXNo
YTI1NjpiY2I0NmUyZjlmZWZmOGQwNjMyMzk4M2JkODNlZDAwYzIwMWZkY2FiM2Q3NDk3M2U3MDcy
YTg4OWIzOTc5ZmNkIFwNCiAgICAtLWhhc2g9c2hhMjU2OmJjYzMzZmVhY2ZhZWZjZTYwYzEyZmQ1
MDBhMjc3NTMzYmRjMDJiMTBhMTlmN2Y2ZDM0ODc2M2Q4MTQwYmJiYTcgXA0KICAgIC0taGFzaD1z
aGEyNTY6YmYxNmJhMWI0ZDBiNmI3YzhlNTM0OTM2NjMyMjcwY2Y3MGViMDBkYmUwOTAwNWJjMzQ1
YjI2NzdiNzI2ODU1YyBcDQogICAgLS1oYXNoPXNoYTI1NjpjZjE4NDVkMDJhZDgyMmEzNjlhNDlm
MmJiOTM0NWIxNjE0NzQ0MjY3NjgyZTdhMDM1MjdkYzNiZjZlZWExNzc3IFwNCiAgICAtLWhhc2g9
c2hhMjU2OmQ2OTE0MTUxNGNjMzBiNzc0Y2VlYTVlM2VkM2E2NjM1YzhkOGE5NmVkZjY2NDY4OWI4
OTBmNDA4OTExMWZiMzUgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDljN2Y3NmMwNjczMTU0ZjA0NGU5
ZDc4Yzg2NTVmYjQyMTNmNmNhMzFhODM2ZGY0OGI0MGZlNWQxODc3MTdiOSBcDQogICAgLS1oYXNo
PXNoYTI1NjpkYmNlMGIyOTg0MTUzN2EyZmE0YTIxNGMyYmJmMTRkZTM1ODdjOTY4MGNhYTliNGUy
MTc1Njg0NzI0OTBiMjhmIFwNCiAgICAtLWhhc2g9c2hhMjU2OmRjNjI0ZjZiYzQ3M2RhY2RmN2Vm
N2ViODY3OGQwZDA4ZWRmMTVjZDk0ZmFkNmFlNWM3ZDZjYzY3YTRlNDkwMmYgXA0KICAgIC0taGFz
aD1zaGEyNTY6ZTE1OGNiMDAzNTBkYzI3OGYzYjkxNTUxMTAxYWE3ZDEyNDE1YTY2ZWJmMmM5MWQ4
ZDVhYzE0ZTU2ZGRkM2FkMCBcDQogICAgLS1oYXNoPXNoYTI1NjplNDkxOTE2YjM3OGZiYTQ3MjQy
MjIxYmI5ZWFkMjQ1MjExYjcwZDUwNGY0OTVkMTA1ZDE3YjE0YTI0YjQ5MDdjIFwNCiAgICAtLWhh
c2g9c2hhMjU2OmU3OTViN2ViOTA4MjQ5YzRlNDNjN2M5OWZhYzdjMmM3NWRhYjBjNDM1NjZlMzdk
YjQ3MmEzNTVmNjM2OTNkNzEgXA0KICAgIC0taGFzaD1zaGEyNTY6ZTdlNDgwNDUxYjlmYTEzNzQ5
NGJjY2QzYTdkNjlhZGJlOGFjNjVhODdkOTdiZTYxZTExZjFiMTA1MGE1YmFjMyBcDQogICAgLS1o
YXNoPXNoYTI1NjplOTEyMDZlZTU2MjY4MmI1MWI5OGVmNGIyNmE2ZWY0OGZkODRlMTVmZDRjNGJj
NWVjNzY4ZWI2NDFkMjA2ODM4IFwNCiAgICAtLWhhc2g9c2hhMjU2OmU5ODcxYjFmZmJmYTk2NTZi
NjBhZWVlOTJlZDUxMzZhNTc0MjY5NjAwNmZhMzIyYjI5ZWEzZDhkYTBlY2M5Y2YgXA0KICAgIC0t
aGFzaD1zaGEyNTY6ZTlhZWIwNGQ2YWVmMTM5ZGUyNjViMjk2ODNlMTE5YjYzODIwOGY4OGNmNzNj
ZGQxNjU4YWEwNzIyMTE2NTMyMSBcDQogICAgLS1oYXNoPXNoYTI1NjplYmFlYTk3NWUwM2QzMTQx
ZDlkM2E1MDdkZjc1YzliM2VjOTBmYTlkMmZmZDA3NTY3YjNhOTc4ZDlkNzkwYjI2IFwNCiAgICAt
LWhhc2g9c2hhMjU2OmYwNjA2YzhiZjJjZGVmZWExNGE0MzUzMGY3NjU3Y2JiYjdlY2YxYzQyMjI1
MTI0OTJlZjRhNDQzNGE5NTAxZWMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZjEzYzMyYTNhYmQ2MDc5
YTY2ZDk1MjZlMThkYWQ5YjZkMjgwMzg0ZDQ5ZDdjNTQwNDBjZDU3YjY0MjQwNDFkOSBcDQogICAg
LS1oYXNoPXNoYTI1NjpmNzQwMWFlYmQ3ZjU4MWQ3ZjgzYTQzOWQ4N2Q0NzQ5OTkzMTdlZTA5OTIx
OGU1YWQyNWQxMjUyOTA5OTBiYTY1IFwNCiAgICAtLWhhc2g9c2hhMjU2OmZhNGVjZWExNjlhMzU1
YmU3YTNhZGUyYzc4M2UyZWQxMmYwZTQwZDJjNTYyMWNkYThiMzI5N2ZhZjdmYmI5ZjUgXA0KICAg
IC0taGFzaD1zaGEyNTY6ZmJkMTM5Yzg0NDdkMjVkZDc1MGFiNzllZTI3NGNjNWUxZmU4MGZjNTYz
NDBhYjEwYjE4YTE5NWUxYjZlY2EzZSBcDQogICAgLS1oYXNoPXNoYTI1NjpmZGFmYzljY2U0MDI3
N2UwZjdhMGZlYWJjZTBlZTUwZGQyZmExODAwZjNiMzgwMTVlNTEyOTZiNWU4MTQwNDhkIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmZlM2NjYTJlNGU4YTU5MmJlMGYyNjlhMWNhNDgzNWMyNTE5OWQ5ZjNj
ZTgxNWM4NDkxMDQ4Zjc4NWIwYTAxOTggXA0KICAgIC0taGFzaD1zaGEyNTY6ZmZkMGM1MzY4NDk2
ZjQxYjA5NDRiZTgyMGZjYjdhODM4YWE2ZTYyM2QyNTBiMDFhY2YyNjQzOTM5YzNmOTlkNw0KICAg
ICMgdmlhIHB5aHdweCwgLXIgbWFuaWZlc3RzL3B5dGhvbi1sb2Nrcy9kb2N1bWVudC1tY3AvcmVx
dWlyZW1lbnRzLmluDQpweWNwYXJzZXI9PTMuMCBcDQogICAgLS1oYXNoPXNoYTI1Njo2MDBmNDlk
MjE3MzA0YTU5MDJhYzNjMzdlMTI4MWM5ZmU5NGU0ZDA0ODlkZTY0M2E5NTA0YzVjZGZkZmM2YjI5
IFwNCiAgICAtLWhhc2g9c2hhMjU2OmI3Mjc0MTQxNjlhMzZiN2Q1MjRjMWMzZTMxODM5YTUyMTcy
NTA3OGQ3YjJmZjAzODY1Njg0NDI2NjE2MGE5OTINCiAgICAjIHZpYSBjZmZpDQpweWRhbnRpYz09
Mi4xMy40IFwNCiAgICAtLWhhc2g9c2hhMjU2OjQ1YTI4MmNkZTMxZDgwODIzNmZkN2VhOWQ5MTli
MTI4NjUzYzhiMzhiMzkzZDFjNGFiMzM1YzYyOTI0ZDlhYmEgXA0KICAgIC0taGFzaD1zaGEyNTY6
YzQwNzU2YjU3YWRhYThiMWVmZWVjZWQ1YzE5NmYzZjNiN2M0MzVmOTBlODRlYTdmNDQzOTAxYmVj
ODA5OWVmNg0KICAgICMgdmlhIG1jcCwgcHlkYW50aWMtc2V0dGluZ3MNCnB5ZGFudGljLWNvcmU9
PTIuNDYuNCBcDQogICAgLS1oYXNoPXNoYTI1NjowMGM2MDNkNTQwYWZkZDZiODBlYjM5ZjA3OGYz
M2ViZDQ2MjExZjAyZjMzZTM0YTMyZDlmMDUzYmJhNzExZGUwIFwNCiAgICAtLWhhc2g9c2hhMjU2
OjAxODY3NTBiNDgyZWVmYTExZDdmNDM1ODkyYjA5YzVjNjA2MTkzZWYzMzc1YmNmOTRhYTAwYWU2
YmZiNjYyNjIgXA0KICAgIC0taGFzaD1zaGEyNTY6MDQxYmRlMGE0OGZkMzdjZjcxY2FiMWM5ZDU2
ZDNlODYyNWEzNzkzZmVmMWY3ZGQyMzJiM2ZmMzdlOTc4ZWNkYSBcDQogICAgLS1oYXNoPXNoYTI1
NjowYzU2M2IwOGJjYTQwOGRjN2Y2NWY3MDA2MzNkODQ0MmZmZmIyNDIxZmM0N2I4MTAxMzc3ZTlm
ZDY1MDUxZmYwIFwNCiAgICAtLWhhc2g9c2hhMjU2OjBjYmU4YjAxZjk0OGRlNDI4NmM3NGNkZDZj
NjY3YWNlYjM4ZjVjMWUyNmYwNjkzYjM5ODNkOWQ3NDg4N2M2NWUgXA0KICAgIC0taGFzaD1zaGEy
NTY6MGNlNDBjZDdiMjEyMTBlOTkzNDJhZmFmYmQ0ZDBmNzZkNzg0ZWI1YjFkNjBmM2JkYzU2NmJl
NDk4M2M2YzczYiBcDQogICAgLS1oYXNoPXNoYTI1NjowZTk2NTkyNDQwODgxYzc0YTIxM2U1YWQ1
MjhlMmIyNGQzZDRmOTQwZGUyNzY2YmVkOTAxMGFiMWQ5ZTUxNTk0IFwNCiAgICAtLWhhc2g9c2hh
MjU2OjEwZTE3Y2JiMTBhMzMwMzYzNzMzZWZjNGQ3YzRkMGRkODI3YWMwOTA5YjhmNmE2NTQyMjk4
ZmVkMWVhNjJmMjkgXA0KICAgIC0taGFzaD1zaGEyNTY6MTMzODc4MTMzZDI3MWFkZTNkNDFkMWJm
YjJhNDVlYzM4ZGJkYmRhNDBiYzA2NTkyMWM2YjA0ZTQ2MzAxMjdlMiBcDQogICAgLS1oYXNoPXNo
YTI1NjoxNGQ0ZWRmNDI3YmRjZjk1MGE4YTAyZDdjYjQ0YTA4NjE0Mzg4ZGQ2ZTFiZGNiZjRmNjc1
MDRmYTc4ODdkYTljIFwNCiAgICAtLWhhc2g9c2hhMjU2OjE0ZjRjNWQ2ZGIxMDJiZDc5NmE2Mjdi
YmIzYTE3YjRjZjQ1NzRiOWFlODYxZDhiN2M5YTk2NjFjNmRkMzM2MmQgXA0KICAgIC0taGFzaD1z
aGEyNTY6MTcyOTlmZWVmZTA5MGYyY2FhNWI4ZTM3MjIyYmI1ZjY2M2U0OTM1YThiZmE2OTMxZDQx
MDJlNWRmMWE5ZjM5OCBcDQogICAgLS1oYXNoPXNoYTI1NjoxODRjMDgxNTA0ZDE3ZjFjMTA2NmU0
MzBlMTE3MTQyYjJjNzdkOTQ0OGE5N2Y3YjY1YzZhYzlmZDlhZWUyMzhkIFwNCiAgICAtLWhhc2g9
c2hhMjU2OjE4ZTVjZWVjMmFiNjdlNmQ1ZjFhOTA4NWU1YTI0YzljNGUyYWM0NTQ1NzMwYmZlNjY4
NjgwYmNhMDVlNTU1ZjMgXA0KICAgIC0taGFzaD1zaGEyNTY6MTllNTFmMDczY2QzZGYyNTE4NTZh
OGE0MTg5ZmJkZjFkZTQwMTJjM2ViYWNmYjE4ODRmOTRmMWViNDA2MDc5ZiBcDQogICAgLS1oYXNo
PXNoYTI1NjoxYTdkZDBiM2VlODBkOTAxNTBlMzQ5NWEzYTEzYWMzNGRiY2JmZDRmMDEyOTk2YTZh
MWQ4OTAwZTkxYjVjMGZiIFwNCiAgICAtLWhhc2g9c2hhMjU2OjFkOGJhNDg2NDUwYjE0ZjNiMWQ2
M2JjNTIxZDQxMGVjNzU2NWU1MmY4ODdiOWZiNjcxNzkxODg2NDM2YTQyZjcgXA0KICAgIC0taGFz
aD1zaGEyNTY6MjEwOGJhNWMxYzFlY2ExODAzMDYzNDQ4OWRjNTQ0ODQ0MTQ0ZWUzNjM1N2YyZjlm
NzgwYjkzZTdkZGJiNDRiNSBcDQogICAgLS1oYXNoPXNoYTI1NjoyMjhlZTliYWU4YmVmNWIxZTk3
ZWM1ODMwMmY4MDM1N2MzNzE5OWUwZDBhOTkxNzRlMTM4ZDI4ZTY5NTdiOWQ5IFwNCiAgICAtLWhh
c2g9c2hhMjU2OjIzYWNlNjY0ODMwZWUwYmZlMDE0YTBjN2JjMjQ4YjFmN2YyNWVkN2FkMTAzODUy
YzMxNzYyNGExMDgzYWY0NjIgXA0KICAgIC0taGFzaD1zaGEyNTY6MjQxMmU3MzRkY2I0OGRhMTRk
NGU0MDA2YjgyYjQ2Yjc0ZjI1MThiOGEyNmVlN2U1OGM2ODQ0YTZjZDZkMDNjNCBcDQogICAgLS1o
YXNoPXNoYTI1NjoyOWM2MWZjMDRhM2Q4NDAxNTVmZjA4ZTQ3NWEwNDgwOTI3ODk3MmZlNmFlZjUx
ZTI3MjA1NTRlOTYzNjdlMzRiIFwNCiAgICAtLWhhc2g9c2hhMjU2OjJmODRjMDNjODYwNzE3M2Qx
NmI1YTg1NGVjNjhhMmY5MDc5YWUwMzIzN2E1NGZiNTA2ZDEzYWY0N2UxZDAxOGQgXA0KICAgIC0t
aGFzaD1zaGEyNTY6MzAwOWYxMmU0ZTkwYjdmODhiNGY5YWRiMWIwYzRhM2Q1OGZlNzgyMGYzMjM4
YzE5MDA0NzIwOWQxNDgwMjZkZiBcDQogICAgLS1oYXNoPXNoYTI1NjozMjQ1NDA2NDU1YTVkOTgx
ODdlYzM1NTMwZmQ3NzJiMWQ3OTliMjY2Njc5ODA4NzJjOGQ0NjE0OTkxZTJjNGEyIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjM0NDc2NjFkOTlmNzVhMzY4M2E0Y2Y1Yzg3ZGE3MmYyMTYxOTY0NjExODY0
ZGJiZWFjN2ZiYjExOGJiNGJmYzAgXA0KICAgIC0taGFzaD1zaGEyNTY6MzcyNDI5YTEzMGU0Njlj
OWNkNjk4OTI1Y2U1ZmM1MDk0MGI3YTEzMzZiMGQ4MjAzOGU2M2Q1YmJjNGVkYzUxOSBcDQogICAg
LS1oYXNoPXNoYTI1NjozOTVhZWJkOTE4M2Y5ZDExMmY1NjlhZWI1YjIyMTRkMWExMGEzM2JlYzg0
NTY0NDdmN2ZiZGZhNTFkMzhkNGNkIFwNCiAgICAtLWhhc2g9c2hhMjU2OjNhMjMzMTI1YWMxMjFh
YTNmZmJhOWEyYjU5ZWRmYzRhOTg1YTc2MDkyZGM4Mjc5NTg2YWI0YjcxMzkwODc1ZTcgXA0KICAg
IC0taGFzaD1zaGEyNTY6M2JlNzdmNDVkZjAyNGQ3ODlhNjcyYWUzNGY4YjA2ZmIzNDZjNGY5ZjQ2
ZWE3MTQ5NTY2NjBlYTQ4NjJlODlhYyBcDQogICAgLS1oYXNoPXNoYTI1NjozYmY5MmM1ZDBlMDBm
ZWZhYWIzMjVhNGQyNzgyOGZlNmI2ZTJhMjE4NDg2ODZiNWI2MGQyZDllZWIwOWQ3NmM2IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OjNlY2JjMTIyZDE4NDY4ZDA2Y2EyNzlkYzI2YThjMmUyZDVhY2IxMDk0
M2JiMzVlMzZhZTkyMDk2ZGMzYjU1NjUgXA0KICAgIC0taGFzaD1zaGEyNTY6M2ZiNzAyY2Q5MGIw
NDQ2YTNhMWM1ZTQ3MGJmYTBkZDIzYzAyMzNiNjc2YTkwOTlkZGNjOTY0ZmE2Y2ExMzg5OCBcDQog
ICAgLS1oYXNoPXNoYTI1Njo0MjhlMDQ1MjFhNDAxNTBjODUyMTZmYzhiODVlOGQzOWZlY2UyMzVh
OWNmNWUzODM3NjEyMzhjN2ZhOWI5NmZiIFwNCiAgICAtLWhhc2g9c2hhMjU2OjQzMmMxNzlkZjc4
NzRlZWI3MzMwN2FhZDJkZjA3NTVlMWFlMGVmYTYxZmYwZWE4OWI5M2UxOTQ0MTFhZTM5MjggXA0K
ICAgIC0taGFzaD1zaGEyNTY6NGEwNWQ2OWNiYTUxZDg1MmM1YzNlOTI3NTg2NTMyNDVhNTBjMGI2
NDZjZWQwY2YwNWJkNzkzZWQ1OTI4MzlkNiBcDQogICAgLS1oYXNoPXNoYTI1Njo0YzYzZWJjODI2
ODRhYTg5ZDlhM2JjYmQxM2Q1MTViM2JlNDQyNTBkYzY4ZGQzYmQ4MTUyNmMxY2IzMTI4NmMzIFwN
CiAgICAtLWhhc2g9c2hhMjU2OjRmYzczY2I1NTliZGI1NGIxMTM0YTcwNmEyODAyYTRjZGRkMjdh
MDYzM2Y1YWJiN2U1MzA1NjI2ODc1MWFjNmEgXA0KICAgIC0taGFzaD1zaGEyNTY6NGZjYmUwODdk
YmMyMDY4YWY3ZWRhM2FhODc2MzRlYmEyMTZkYmRhNjRkMWFlNzNjODY4NGI2MjFkMzNmNjU5NiBc
DQogICAgLS1oYXNoPXNoYTI1Njo1NmNiNDg1MWJjYWYzZDExN2VkZGNlZjRmZTY2YWZkNzUwYTUw
Mjc0YjBkYThlMjJiZTI1NmQxMGU1NjExOTg3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjU4NTU2OThh
NDg1NjU1NmQ4NmU4ZTZjZDg0MzRiYzNhYzAzMTRlZThlMTIwODlhZTBlMTQzZjY0YzYyNTZlNGUg
XA0KICAgIC0taGFzaD1zaGEyNTY6NWE0MzMwY2RiYzU3MTYyZTRiM2FhMzAzZjU4OGJhNzUyMjU3
Njk0YzljOWJlM2U3ZWJiMTFiNGFjYTY1OWI1ZCBcDQogICAgLS1oYXNoPXNoYTI1Njo1YjcxMmI1
MzE2MGI3OWE1ODUwMzEwYjkxMmE1ZWY4ZTU3ZTU2OTQ3YzhhZDY5MGMyMjdmNWM5ZDdlNTYxNzEy
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjVkNTkwMjI1MmRiMGQzY2VkZjhkNGExYmM2OGY3MGVlYjQz
MGY3ZTRjNzEwNGM4YzQ3Njc1MzUxOWI0MjMwMDggXA0KICAgIC0taGFzaD1zaGEyNTY6NjE3ZDdl
MmNhN2RjYjhjNWNmNmJjYjhjNTliODgzMmM5NGIzNjE5NmJiZjFjYmQxYmZiNTZlZDM0MTkwNWVk
ZCBcDQogICAgLS1oYXNoPXNoYTI1Njo2MmY4NzUzOTNkN2YyNzA4NTFmMjA1MjNkZDJlMjlmMDgy
YmNjODIyOTJkNjZkYjJiNjRlYTcxZjY0YjZlMWMxIFwNCiAgICAtLWhhc2g9c2hhMjU2OjYzMzE0
N2QzNGNmNDU1MDQxN2YxMmUyYjFhMDM4Mzk3M2JkZjVjZGZkZTIxMmNiMDllOWE1ODFjZjEwODIw
YmUgXA0KICAgIC0taGFzaD1zaGEyNTY6NjZjZTc2MzJjMjJkODM3Yzk1MzAxODMwZTExMWFkMDEy
OGEzMmI4MjA3NTMzYjYwODk2YTk2YzQ5MTUxOTJlYSBcDQogICAgLS1oYXNoPXNoYTI1Njo2YjNh
Y2U4MTk0YjBlNTIwNDgxOGM5MjgwMmRjZGNhN2ZjNmQ4OGFhYmJiNzk5ZDdjNzk1NTQwZDljZDZk
MjkyIFwNCiAgICAtLWhhc2g9c2hhMjU2OjZmMmVlZGEzM2E4Mzk5NzU0NDFjODZhNDExOWUxMzgz
YzUwYjQ3ZmFmMGNiYjUxNzY5ODU1NjVjNmJiMDJjMzMgXA0KICAgIC0taGFzaD1zaGEyNTY6NzAy
NzU2MGVlOTIyMTE2NDdkMGQzNGUzZjdjZDZmNTBkYTU2Mzk5ZDI2YTljOGFkMGRhMjg2ZDM4Njlh
NTNmMyBcDQogICAgLS1oYXNoPXNoYTI1Njo3MjgzZDU3ODQ1ZWNmNWExNjM0MDNlYjA3MDJkZmMy
MjBjYzRmYmRkMTg5MTljYjVjY2VhNGY5NWVlMWNkYWI0IFwNCiAgICAtLWhhc2g9c2hhMjU2Ojdh
NWY5MzA0NzI2NTBhODI2MjkxNjMwMjNlNjMwZDE2MDg2M2ZjZTUyNGM2MTZmNGU1MTg2ZTVkZTlk
OWE0OWIgXA0KICAgIC0taGFzaD1zaGEyNTY6N2JmYjE5MmIzZjRiOWU4YTg5YjYyNzdiNmNlNzg3
NTY0ZjYyY2ZkMjcyMDU1ZjZlNjg1NzI2YjExMWRjNzgyNiBcDQogICAgLS1oYXNoPXNoYTI1Njo4
MTFmZjhlOWMzMTNhYjQyNTM2OGJjYmIzNmU1YzRlYmQ3MTA4YzJiYmY0ZTQwODljZmJiMGIwMWVm
ZjYzZmFjIFwNCiAgICAtLWhhc2g9c2hhMjU2OjgyMzNmMjk0N2NmODU0MDQ0NDFmZDdlMDA4NWY1
M2IxMGM5M2UwZWU3ODYxMTA5OWI1YzcyMzdlMzZhYWNiZjcgXA0KICAgIC0taGFzaD1zaGEyNTY6
ODJjZjUzMDExNzIxNjgxMDM3MjRkNDlhMTQ0NGQzMzc4Y2IyMGNkZWUzMGIxMTZhMWJkNjAzMTIz
NjI5OGE1ZCBcDQogICAgLS1oYXNoPXNoYTI1Njo4MzU4YTk1MGM4OTA5MTU4ZTNkZjMxNTM4YTdl
NGVkYzJkNzI2NWE3YzU0YjQ3ZjA4NjRkOWU1YmFlOWRjZWJmIFwNCiAgICAtLWhhc2g9c2hhMjU2
Ojg1YmIzNjExZmYxODAyZjNlZTdmZGQ3ZGJmZjI2YjU2ZjM0M2ZiNDMyZDU3YTQ3MjhmZGQ0OWI2
ZWYzNWUyZjQgXA0KICAgIC0taGFzaD1zaGEyNTY6ODZlMWE0NDE4YzZjZDk3ZDYwYzk1YzcxMTY0
MTU4ZWFmNzMyNGZhZTdiMDkyMzI2NDAxNmJhYTk5M2ViYTZmYyBcDQogICAgLS1oYXNoPXNoYTI1
Njo4YjliYWIwMTNkMWM3YTc5ZDM1MDFmZjg2ZDBiYzljMzFiZjU4N2RiNDU1MTY3N2I5NmJlYzA3
ZGY3OGM2YjE1IFwNCiAgICAtLWhhc2g9c2hhMjU2OjhjNWRhYzc5ZmExNjE0ZDFlMDZjYTY5NTEw
OWM2MTA1OTIzYmQ5YzdkMWQ2YzkxOGQ0ZTYzN2I3ZTZiMzJmZDMgXA0KICAgIC0taGFzaD1zaGEy
NTY6OGQwODIwZTgxOTIxNjdmODBkODhkNjQwMzhlNjA5YzMxNDUyZWVjYTg2NWI0ZTFkOTk1MGEy
N2E0NjA5YjAwYiBcDQogICAgLS1oYXNoPXNoYTI1Njo4ZGFhZmM2OWM5M2VlOGEwMjA0NTA2YTNi
NmIzMGY1ODZlZjU0MDI4ZjUyYWVlZWI1YzRjZmM1MTg0ZmQ1OTE0IFwNCiAgICAtLWhhc2g9c2hh
MjU2OjkwMzcwNjNkYjAxZjA5YjA5ZTIzN2MyODJiNjc5MmJkNGRhNjM0YjU0MDJjNGU3ZjBjNjFl
ZmZlZDc3MDFhMDQgXA0KICAgIC0taGFzaD1zaGEyNTY6OTA1YTBlZDhlYTZmMmQ2MWMxNzM4ODM1
Zjk5YjY5OTM0OGQ3ODU3Mzc5MDgzZTVmYzQ5N2ZhMGM5NjdhNDA3YyBcDQogICAgLS1oYXNoPXNo
YTI1Njo5MDg4NDExM2Q4YjQ4Zjc2MGU5NTg3MDAyNzg5ZGRkNzQxZTc2YWI5Zjg5NTE4Y2QxZTQz
YjFmMWE1MmVjNDRiIFwNCiAgICAtLWhhc2g9c2hhMjU2OjkxYTA2ZDJlMjU5ZWNmYmQ4YzkwMWQ3
MGMzYzUwNzkwMDQ1ODQ5ODE0MmIzMDI2YTI5NmI3ZGU0ZDEzMjJjYzkgXA0KICAgIC0taGFzaD1z
aGEyNTY6OTI2Yzk1NDFiMTRiMTJiMTY4MWRjYThhMGI3NWZlYjUxMGIwNmM2MzQxYjcwYThlNTAw
YzJmZGNmZjgzN2NjZSBcDQogICAgLS1oYXNoPXNoYTI1Njo5NDAxNTU3YWNkODczYzNhN2YzZWI5
MzgzZWRlZjhhYzQ5NjhmOTUxMGUzNDBmNDgwOGQ0MjdlNzU2NjdlN2I0IFwNCiAgICAtLWhhc2g9
c2hhMjU2Ojk1NTExODczNjNmZmMwZGUyYTAwYjJlNDdjMjVhZWFlYjEwMjBiNjliNjY4NzYyOTY2
ZGYxNWZjNTY1OWRkNWEgXA0KICAgIC0taGFzaD1zaGEyNTY6OTYyY2NiYWI3YjY0MjQ4N2IxZDhi
N2RmOTBlZjY3N2UwMzEzNGNmMWZkODg4MGJmNjk4NjQ5YjIyYTY5MzcxZiBcDQogICAgLS1oYXNo
PXNoYTI1Njo5N2U3Y2YyYmU1Yzc3YjdkMWE5NzEzYTA1NjA1ZDQ5NDYwZDAyYzYwNzhkMzhkOGJl
ZjNjYmUzMjNjNTQ4NDI0IFwNCiAgICAtLWhhc2g9c2hhMjU2OjlhYTc2ODQ1NjQwNGE4YmY0OGE0
NDA2Njg1YWMyYmVjOGU3MmI2MmM2OTMxMzczNGZhM2I3M2NmMzNiM2E4OTQgXA0KICAgIC0taGFz
aD1zaGEyNTY6OWJjNTE5ZmJmMmI3NTc4Mzk4ODUzZDgxNTAwOWFlNWU0ZDQ2MDNkMTJmNGUzZjkx
ZGE4YzA2ODUyZDNkYTNlOSBcDQogICAgLS1oYXNoPXNoYTI1Njo5ZDU2ODAxYmU5NGI4NmE5ZGEx
ODNlNWYzNzY2ZTYzMTA3NTJiOTlmZjY0N2UzOGIwOWE5NTAwZDg4ZTQ2ZTc2IFwNCiAgICAtLWhh
c2g9c2hhMjU2OjlmNDQ0YzQ5OWIzZWVmZDNhOTJlMzQ4MDU5NDcxZWEwYzNhNmUzMDNkOWMxY2Vj
MDlmYTc0OGZkOWY4OTUyMDEgXA0KICAgIC0taGFzaD1zaGEyNTY6OWZhOGFlMTFkYTllMmIzMTI2
YzY0MjZmMTQ3ZTBmYmE4OGQ5NmQ2NTkyMTc5OWJiMzBjNmFiZDFjYjJjOTdmYiBcDQogICAgLS1o
YXNoPXNoYTI1NjphMGY2MmQwYTU4ZjRlN2RhMTY1NDU3ZTk5NTcyNTQyMWUwMDY0ZjIyNTVkOGVj
Y2ViYzQ5ZjQxYmJjMjNiMTA5IFwNCiAgICAtLWhhc2g9c2hhMjU2OmEzOTZkY2MxN2U1YTBiMTY0
ZGJlMDI2ODk2MjQ1YTRmYTlmZjQwMmVkY2ExZGZmMGJlM2Q1M2E1MTdmNzRkZTQgXA0KICAgIC0t
aGFzaD1zaGEyNTY6YWFhMmE1NDQ0M2VmZjE5NTBiYTVkZGM2YjZjY2RhMGQ5Yzg0YTM2NDI3NmE2
MmY5NjliZGYyYTM5MDY1MDg0OCBcDQogICAgLS1oYXNoPXNoYTI1NjphZDc4NWU5MmU2ZGM2MzRj
MjE1NTVlZGM4YmQ2YjY0OTU3YWI4NDQ1NDFiY2I5NmExMzY2YzIwMjk1MWFlNTI2IFwNCiAgICAt
LWhhc2g9c2hhMjU2OmFmODI0NGIyYmVmNmFhYWQ2ZDkyY2RhODEzNzJkZTdmOGM4ZDM2YzlmMGMz
ZWEzNmU4MjdjNjBlN2Q5NDY3YTAgXA0KICAgIC0taGFzaD1zaGEyNTY6YjA3OGFmYmMyNWYzYTE0
MzZjN2ExZDJjZDNlMzIyNDk3ZWU5OTYxNWJhOTdjNTYzNTY2ZmRmNDZhZmYxZWUwMSBcDQogICAg
LS1oYXNoPXNoYTI1NjpiMmY2OWRlYzE3MjVlNzlhMDEyZDkyMGRmMTcwN2RlNWNhZjdlZDVlMDhm
M2JlNDQzNWUyNTgwM2VmYzQ3NDU4IFwNCiAgICAtLWhhc2g9c2hhMjU2OmI4NDU4MDAzMTE4YTcx
MmU2NjI4NmRmNmE3MDdkYjAxYzUyYzBmNTJmN2RiOGU0YTM4ZjBkYTFkM2I5NGZjNGUgXA0KICAg
IC0taGFzaD1zaGEyNTY6YmI2M2UwMTk4Y2ExOGFhZDEzMWMwODliOTIwNGMyMzA3OWMzYWZhOTU0
ODdlNTYxZjRjNTIyZDUxOWU1NWFiYSBcDQogICAgLS1oYXNoPXNoYTI1NjpiZmVjMjJlYWIzYzhj
YzJjZWVjMDI0OGFlYzg4NjYyNDExNmRjMDc5YWZhMDI3ZWNjOGFkNGE3ZTYyMDEwZjhhIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmMxNzQ3Zjg1Y2VlODRjMjY5ODU4NTNjNmYzZDliZDNlNzVkYTUyMTI5
MTI0NDNmYTExMWMxMTNiOWMyNDZmMzkgXA0KICAgIC0taGFzaD1zaGEyNTY6YzFiM2Y1MThhYmVj
YTNhYTEzYzcxMmZkMjAyMzA2ZTE0NWFiZjU5YTE4YjA5NGE2YmFmYjJkMmJiZjU5MTkyYyBcDQog
ICAgLS1oYXNoPXNoYTI1NjpjNTBmMjUyOGNmMjAwYzVlZWQ1NmZhZjNmNGUyMmZjZDVmMzhjMTU3
YThiNzg1NzZlNmJhMzE2OGVjMzVmMDAwIFwNCiAgICAtLWhhc2g9c2hhMjU2OmM2OGZjZDEwMmQ3
MWVhODVjNWIyZGZhYzNmNGY4NDc2ZWZmNDJhOWUwNzhmZDVmYWVmZmY2ZDE0NTA2MzUzNmIgXA0K
ICAgIC0taGFzaD1zaGEyNTY6YzdhN2JkNGUzOWU4ZTRjMTJjMzljZDQ4MDM1Njg0MmI2YThhMDZl
NDFiMjNhNTVhNWUzZTE5MTcxODgzOGRkZiBcDQogICAgLS1oYXNoPXNoYTI1NjpjOTRmMDY4OGU3
YjhkMGE2N2FiZjQwZTU3YTdlYWFlY2QxN2NjOTU4NjcwNmEzMWI3NmMwMzFmNjNkZjA1MmI0IFwN
CiAgICAtLWhhc2g9c2hhMjU2OmNiYWYxMzgxOTc3NWI3Zjc2OWJmNGExZjA2NmNiNmRmN2EyOGQ0
NDgwMDgxYTU4OTgyOGVmMTkwMjI2ODgxY2QgXA0KICAgIC0taGFzaD1zaGEyNTY6Y2QyMjEzMTQ1
YmNjMmJhODU4ODRkMGFjNjNkMjIyZmVjZTkyMDk2NzhmNzdiOWI0ZDc2ZjA1NGM1NjFhZGIyOCBc
DQogICAgLS1oYXNoPXNoYTI1NjpjZTVjMWQyYThiMjc0NjhmNDMzY2E5NzQ4MjljNDQwNjBiODA5
N2VlZGMzOTkzM2UzYzIwNmE5MGVlNDljNGE5IFwNCiAgICAtLWhhc2g9c2hhMjU2OmQzOTZlYzJi
OTc5NzYwYWFmMzIxOGU3NmMyNGU2NWJkMGFjYTI0OTgzMjk4NjUzYjNhOWQ3YTQ1ZjllNDdiMzAg
XA0KICAgIC0taGFzaD1zaGEyNTY6ZDUxMDI2ZDczZmNmZDkzNjEwYWJjN2IyNzc4OWMyNmIzMTM5
MjBmY2ZiMjBlMjc0NjJkNzRhN2Y4YjA2ZTk4MyBcDQogICAgLS1oYXNoPXNoYTI1NjpkODBlZTNk
NzMxMzczYjI0Y2ViYmMxMGQ2ODljYTRlZTE4NzVjYWYwZDU3MDNhMjQ1ZGIxOGVmZDRkZDM3ZmMx
IFwNCiAgICAtLWhhc2g9c2hhMjU2OmQ5OTUyNjBmZGY0ZTFkYjc3NDU4MWI0OTAwZTBmODMyYWJl
M2M3Yzg0OTk2NzI2YmJjMTYxYjE5YzhmMjllNzYgXA0KICAgIC0taGFzaD1zaGEyNTY6ZGE0Yjk1
MWZlMzZkYzdjM2ExY2NiNGUzY2QxNzQ3YzM1NDJiOGM5Y2VlZGU4ZmM4NmNhZTA1NGU3NjQ0ODVm
NSBcDQogICAgLS1oYXNoPXNoYTI1NjpkYWEyN2Q5MmMzNmYyNDM4OGZlM2FkMzA2YjE3NDc4MWM3
NDc2MjdmMTM0NDUyZTRmMTI4ZWEwMGNlMWZlOGM0IFwNCiAgICAtLWhhc2g9c2hhMjU2OmRiMDZm
ZmU1MTYzNmZmZTljYTUzMWZlOTAyM2RkNjRiZGQ3OTRiZTg3NTRjYjVkZjU3YzU0OThhZTViNTE4
YTcgXA0KICAgIC0taGFzaD1zaGEyNTY6ZTBkNjViOGMzNTRiZTdmYjVmNzIwYzNjYWE4YmM5NDBi
YzJkMjBjZTc0OWM4ZTA2MTM1ZjA3ZjhlZDk1ZGQ3YyBcDQogICAgLS1oYXNoPXNoYTI1NjplNjhi
N2EwNzRmNjVhMmZkNzQ2YzUyYTdjZTYxNDJhYjcwMDYwNzRhYzI2OWFjZTBjMjVjZDhiYTE3MWY4
MDY2IFwNCiAgICAtLWhhc2g9c2hhMjU2OmU3MzlmZWU3NTZiYTEwMTBmOGJjY2NiNTM0MjUyZTg1
YTM1ZmU0NWFlOTJjMjk1YTA2MDU5Y2U1OGI3NGNjZDMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZTg0
NmFlNzgzNWJmMDcwM2FlNDNmNTM0YWI3OWE4NjcxNDZkYWRkNTlkYzljYTVjOGI1M2Q1YzhmN2M5
ZWYwMiBcDQogICAgLS1oYXNoPXNoYTI1NjplOWMyNmY4MzRjNjVmNTc1MmYzZjA2Y2IwOGNiODZh
OTEzY2ViNzI3NGQwZGI2ZTI2NzgwOGE3MDhiNDZiYzg5IFwNCiAgICAtLWhhc2g9c2hhMjU2OmVh
NzkzZTA3NWI3MDI5MGQ4OWQ4MTQyMDc0MjYyODg1ZDNmN2RhMTk2MzQ4NDUxMzU3NTFiZDYzNDRm
NzNiNTAgXA0KICAgIC0taGFzaD1zaGEyNTY6ZjAyNzMyNGM1NmNkNTQwNmNhNDljMTI0YjBkYjEw
ZTU2YzY5MDY0ZmVjMDM5YWNjNTcxYzI5MDIwY2M4N2M3NiBcDQogICAgLS1oYXNoPXNoYTI1Njpm
MTNhNjQ2ZDY1ZDA5ZmJmMWJjNmIzYTk2MzVkMzAwOTVjOGU3ZTVjYzQxOWZmMzVlY2M1NjNjNWZk
MDRjZDQ5IFwNCiAgICAtLWhhc2g9c2hhMjU2OmY0NzI4NmE5N2YwYmM5Yjg4NTk1MTk4MDkwNzdi
OTFiMmNlZmU0YWU0N2ZjYmY1ZTQ2NmEwMDljMWM1ZDc0MmIgXA0KICAgIC0taGFzaD1zaGEyNTY6
Zjc0NzkyOWNmOTQwY2RkYjViMzY2OGEzOTAwNTZkZGQ1YmEyZTUwMTA2MTVlYTJkY2Y0ZjljNGYz
YWI4NzkxZCBcDQogICAgLS1oYXNoPXNoYTI1NjpmOTk2MjY2ODg5NDJmYjc0NmU1NDUyMzJlNzcy
NjkyNmYzYmU5MWI1OTc1ZjhiNTUzMjc2NjVmYWZkYTk5MWM3IFwNCiAgICAtLWhhc2g9c2hhMjU2
OmY5ZmE4Njg2MzhiZjM2MmQzZDEzOGVhNTU4MjljZWZiM2Q1ZjRiMGQ3ZjE0MjIzNDM4MmExNWUy
NDg1ZGJlYzQgXA0KICAgIC0taGFzaD1zaGEyNTY6ZmJkYjg5YjNlMWM5NGEzMGNjNWVkZmNlNDc3
YzZlNmE1ZGM0ZDhmODQ2NjViNDU1YzI3NTgyZjIxMWExYzcyYyBcDQogICAgLS1oYXNoPXNoYTI1
NjpmYzAxMGFiMDM0YzhjNzQ1MjUyMjc0OGJmOTM3ZGY1ODAyMGQyNTZjY2FlMDg3NDQ2M2QxZjRk
MDE3NThhZjhlIFwNCiAgICAtLWhhc2g9c2hhMjU2OmZjM2U5MDM0YTYzZGUyMGUxNWU4YWRlODUz
NThiYzZlZmM2MTQwMDhjYWI3Mjg5OGI0YjQ5NTJiZWEwNTA5ZmYgXA0KICAgIC0taGFzaD1zaGEy
NTY6ZmQ4YjNkOWZkMjY0YmUzNzk3NjY4NmM3ZjY1Y2Q1MmE4M2Y1ZTg0ZjRiZmQyYWRmOWMxZDQ2
OTY3NmJiYjZhZQ0KICAgICMgdmlhIHB5ZGFudGljDQpweWRhbnRpYy1zZXR0aW5ncz09Mi4xNS4w
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjBiYTA5MmMyOTFjOTRiYWNlYjVlZmY3NjhhYTBkNTY0MDBh
NDU3NTg1YmMwMTc1OTI1YTVhNTUxMDMwM2RhNDIgXA0KICAgIC0taGFzaD1zaGEyNTY6Njk0Yjc5
M2U4NGY3NjZiYTc2YTkwZWJkZWZjMDFkMGE5YTA0NWRhYjAzODJiZWU3MDM5M2RhOTM3MTJhZDEx
Nw0KICAgICMgdmlhIG1jcA0KcHlod3B4PT0xLjcuMiBcDQogICAgLS1oYXNoPXNoYTI1Njo1ZDU0
YzJhYzk0ZDQzNWQ2NmMyOTY2OTc4NzY0N2EyZDZmYmVkMGJlMGE4MzFmNmU1ZTNhNDVkY2YyNWQ4
OTc4IFwNCiAgICAtLWhhc2g9c2hhMjU2OmM3OWQ2YWE2N2JhYWU5Y2Q4MmZkN2FlMTEyMTdlOTg1
ZmEyZmU4MzJjNjFhMDlhMjcxNWFhZTg1NGEwZDEzNDkNCiAgICAjIHZpYSAtciBtYW5pZmVzdHMv
cHl0aG9uLWxvY2tzL2RvY3VtZW50LW1jcC9yZXF1aXJlbWVudHMuaW4NCnB5and0PT0yLjEzLjAg
XA0KICAgIC0taGFzaD1zaGEyNTY6NDE1NzFjODljYTkxNTk4Yzc5ZThlZjE4YTJkMDczNjdkNDgx
MGZiYmQ2ZjYzNzc5NDg3OWJhZjFiNzcwMzQyMyBcDQogICAgLS1oYXNoPXNoYTI1Njo2NmFkY2My
YWZmMDliM2YxYmJkOTVmYzFlMTU3N2RmOGFjODcyM2M5Nzg1NTJmZDQzMzA0YzhhMjkwYWM1NzI4
DQogICAgIyB2aWEgbWNwDQpweXBkZj09Ni4xNC4yIFwNCiAgICAtLWhhc2g9c2hhMjU2OjNmMDc4
OTFhZjc2ZGMwMDI2NTdlMDQ5OTNhYjliNGRlODFkZTI5ZjkwMTNiOTc2MWQwYjc5NjhiZmYxMmU5
NDYgXA0KICAgIC0taGFzaD1zaGEyNTY6Nzg3M2Y1MDJmZTQzODVlNzk1MzliMjFkODcyMzkyZGMw
YzRlMzcxNDMyN2MxNTg4MWNiYzdmYmZkMWY5NWIyNQ0KICAgICMgdmlhIC1yIG1hbmlmZXN0cy9w
eXRob24tbG9ja3MvZG9jdW1lbnQtbWNwL3JlcXVpcmVtZW50cy5pbg0KcHlwZGZpdW0yPT01LjEy
LjEgXA0KICAgIC0taGFzaD1zaGEyNTY6MDViYWI5YjFiYTJkZTdmYzI5OWFlMmFmMjVjYjljOGEw
NTQzYmM4YmI4OTNlODc5ZmU4YzliYTgzMTBlOWNlNCBcDQogICAgLS1oYXNoPXNoYTI1NjowNWJm
YTIwYTA4YTk2NTg0MjUzYmJlMzhiNjBlMTNmODFhMDM3ZWFjMzFjNTU3OWU2MDdlYzE0ODBhZDI1
ZGJmIFwNCiAgICAtLWhhc2g9c2hhMjU2OjA3ZWVlYmIyNzg0ZjRjZDM4ZDM4NmI5MjQyMzVkZjQz
MjE3YTM5NzQ0Mjc5NjY3MzI5NmJiNmVmYmRhYWQxZDAgXA0KICAgIC0taGFzaD1zaGEyNTY6MjM2
ZGJkYzg4YWE1NGYxNGIyNzkzN2NjYjJlYmUzZGNmMDhjMTBkYmI4NjUyZjQzMmVhOTgyZGM5YWYz
OTczMiBcDQogICAgLS1oYXNoPXNoYTI1Njo0NjQ4ZjA5MDU0NDFiY2IxNDE2ODdjYTIyNjNiYmYz
OGExYWEwNTZiOTQzZWVmMDYwMTlmOTFjZmYzZTFkYTRhIFwNCiAgICAtLWhhc2g9c2hhMjU2OjVj
M2U2Y2JlNDM1ODFhZjc5NTI2MTg0NjQzOTIwYWIwM2E5NDAxYTBjNzlmMjIyNmJlYTlkNGQxZTNk
MzQwMDggXA0KICAgIC0taGFzaD1zaGEyNTY6NWYyNTdiYjQwZmE0NGNlOWJhMThkMmM5MTk3Nzdk
YmQzZjE2YmYyMjU0OGIxZDY4ZmQ1NmM3YzkyZjFkZTUzMCBcDQogICAgLS1oYXNoPXNoYTI1Njo2
NmE5ZWQ0MGQ3MGE1ZDcyOGNkNDIxNDhmZWNiOWQ3YTA5MTdjNjE2MWQ2YmI2N2M4NDQwOTNhNGVk
MWRmMDg5IFwNCiAgICAtLWhhc2g9c2hhMjU2OjZlYWJmMDI4YWQ4ZTdiYzc4MTFjOWFjZjNhNzI3
MThjMTgwNTY5YjYyNGI4NDRkMmM2Y2M5NzQ2MDk3ODQyNzUgXA0KICAgIC0taGFzaD1zaGEyNTY6
NzE1YWUxNmIzNGVhMWQ2NDg4NGQ1ODgwMDE1NTE3OWJhNzAwZTllYTY1YTJmNTgzYjAyMDY2NmFj
ZDJiZmIxMiBcDQogICAgLS1oYXNoPXNoYTI1Njo3ODU3Y2ZhNjY0MmVjNWEwOWRiMTJmZjhmNWNm
NmI2NDk0NTg1YjVlM2E2MDUzOTlmZGRjNGZiODYyODM3YjYzIFwNCiAgICAtLWhhc2g9c2hhMjU2
Ojg0NzM3OGE1YWI0MTMzMjk5OGIyNjIxYjIxYmFiMmU5NmRjOGMzZWZmMzZhMDhiY2UyNjY5NWI5
NjQxNjM5ODMgXA0KICAgIC0taGFzaD1zaGEyNTY6OTYwOWJlNzNhNjcwMWE2OGYyOWRmZmUwMzM1
ZjdhMmU0YjNiYTU4MTU0MmVkNjVkMzVkNDlmNzYxYTQ2MDBjYSBcDQogICAgLS1oYXNoPXNoYTI1
Njo5NzQwODIzNDQxNzJkYTc2YTVjM2MwNzgyZWFlZGZlNjA2OWRiZTg4ZGI3N2Q4YzY3MWVmMzZi
NjFlOWIxNGUyIFwNCiAgICAtLWhhc2g9c2hhMjU2OjljODg1NmNlN2RkNzdhNzgyNzQ3NmM3ZDc1
YWZlMTE5N2Q2Y2Q1MDVmNWNiNDE2N2I2YWFjZjY2MWYzZjhlYTUgXA0KICAgIC0taGFzaD1zaGEy
NTY6OWYwNTlmN2JkYmRmNDM1MmViODM2OTEwNzEwOTY5NDBkNzY5ZDZhZTU5MzBiODczNDIzN2Zk
YjFiZDc4ZmJjMiBcDQogICAgLS1oYXNoPXNoYTI1NjphZmMwYjdlMGM5NzVhNDI5YWJjNzU4NzUy
MDljZTE3YjY2ZDc0OWY2YWM1Y2JlOGJhNzI0NzBlODM5MDFlMzA0IFwNCiAgICAtLWhhc2g9c2hh
MjU2OmJkZmY2MjIxODFmYWI2NGYzMjMyODU5MWM5YzgyODdjZGM3NDVjOWExZjJhZmMyNmNhM2Zl
YmEzOWUzZTY2NDUgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDBlMDY0OGZiMmUyOGY1MGVmY2QxZWMw
YTVhMThjZWQ5ZjRkNjZiMmMyMjdmYWU5YjYwM2YwYTg4M2IyZDEzZiBcDQogICAgLS1oYXNoPXNo
YTI1NjpkNGVlMDYxZTU2NmE2NDIyYjY2MGNkZGRhYWE3OTlhMmQxY2JmMmYwMTY5MjFiY2FmMjRk
NjE0MjZkMDFkOTQyIFwNCiAgICAtLWhhc2g9c2hhMjU2OmUxMGNiZjQxYjIxMjMzZWM1ZTIwYWRm
YzE3MGNmNjBlZGQ3N2FiZWFkODZhOTdkYzcwOGZmZjU1YThhODg2YzcgXA0KICAgIC0taGFzaD1z
aGEyNTY6ZTUzNThkMmNlNGViYzVjODk5YWFiMWRmOWNhNWQyMTUzNTcyNDRlOTE2OGFhNDQzMjI1
ZDNjMWU2NDljN2VhYw0KICAgICMgdmlhIC1yIG1hbmlmZXN0cy9weXRob24tbG9ja3MvZG9jdW1l
bnQtbWNwL3JlcXVpcmVtZW50cy5pbg0KcHlwZXJjbGlwPT0xLjExLjAgXA0KICAgIC0taGFzaD1z
aGEyNTY6MjQ0MDM1OTYzZTQ0Mjg1MzBkOWUzYTYxMDFhMWVmOTcyMDljNjgyNWVkYWIxNTY3YmVh
YzE0OGNjYzFkYjFiNiBcDQogICAgLS1oYXNoPXNoYTI1NjoyOTk0MDNlOWZmNDQ1ODFjYjliYTJm
ZmVlZDY5YzdhYTk2YTAwODYyMmFkMGM0NmNiNTc1Y2E3NWI1Yjg0MjczDQogICAgIyB2aWEgcHlo
d3B4DQpweXRob24tZGF0ZXV0aWw9PTIuOS4wLnBvc3QwIFwNCiAgICAtLWhhc2g9c2hhMjU2OjM3
ZGQ1NDIwOGRhN2UxY2Q4NzUzODgyMTdkNWUwMGViZDQxNzkyNDlmOTBmYjcyNDM3ZTkxYTM1NDU5
YTBhZDMgXA0KICAgIC0taGFzaD1zaGEyNTY6YThiMmJjN2JmZmFlMjgyMjgxYzgxNDBhOTdkM2Fh
OWMxNGRhMGIxMzZkZmU4M2Y4NTBlZWE5YTVmNzQ3MDQyNw0KICAgICMgdmlhIHBhbmRhcw0KcHl0
aG9uLWRvdGVudj09MS4yLjMgXA0KICAgIC0taGFzaD1zaGEyNTY6OTA0NTUyMTQ1ZThiZmVkMjIx
NjJjMDlkYWIxYzJiOWI1NGZlZmE3YjIzYmE3ODBmNGYyNmNhMDMxNmIwZjBkOSBcDQogICAgLS1o
YXNoPXNoYTI1NjphMjBhNTk0ZGFiZWFhMzg1NzI1YWEyMzlkNTI0NDg3MWMxNDNlY2IzNTZhZGQ4
YTIwZmNmMjM3NzNhNmMzYTM1DQogICAgIyB2aWEgcHlkYW50aWMtc2V0dGluZ3MNCnB5dGhvbi1t
dWx0aXBhcnQ9PTAuMC4zMiBcDQogICAgLS1oYXNoPXNoYTI1NjpiZTU0YjdmM2ZhMTY3YmI4M2U0
ZmNkOTM2Yjg4N2I3MDhmNGU1N2ZlNzU5MTFjMDJhZWJmNTNlZmFmOGQ5MzhlIFwNCiAgICAtLWhh
c2g9c2hhMjU2OmZmNmQzZjc3NmYxNjg3OGM4OTRlNTJlMTA3Mjk2ZmZjODkwZTkxM2M2MTFiMWE0
ZWM2YzQ0ZTI4MjFmZTJlMjMNCiAgICAjIHZpYSBtY3ANCnB5d2luMzI9PTMxMiBcDQogICAgLS1o
YXNoPXNoYTI1NjowMmViY2EwZjAyNDJiNzUyOTJlMjE4MDY1MDA0MzEwZDZhNDc3NDA3YzA5ZmE0
NDliZmU0ZjYwMjJiYzBjMGZjIFwNCiAgICAtLWhhc2g9c2hhMjU2OjE3OTQ4YWVhZGJkYjA5MWYw
Y2VkNmVmMDg0MTYyMDc5NGU2ODMyN2I5NGVlNDE1NTcxYzEyMDM1OTRiNzIxNWMgXA0KICAgIC0t
aGFzaD1zaGEyNTY6MzAyMDY1NmUzNGYxY2Y3ZmFlYjdiY2NkMmI4NDY1M2E2MDdjNmZmMGM1NWFk
YTg1ZTY0ODdkNjE3MTZkZWFiZCBcDQogICAgLS1oYXNoPXNoYTI1Njo1OWFiYTVkNTk0MDg0MjA3
NTM0M2E1ZGRjNmIxMWYxY2RmMGQxNTY3ZmU3NDUyOTAzNTlkZmJjYzdjMmViODMxIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjVjMWZiZTRhOTM3YTczYWU5Mjk3Mzg0YTNkYTM4NTE4Y2JjNjk0YzY4YWQ4
YTgwOWIyZTE5YWNkMzUwZjAzZWQgXA0KICAgIC0taGFzaD1zaGEyNTY6NWRiYzM1ZDJiNTMyMGRj
MDdmMjVmYTMxMjY5Y2ZiNzY3NDcxMDAyYjE3ZGU1ZWIwNjdkMDNkYTY4YzdjYjJkYiBcDQogICAg
LS1oYXNoPXNoYTI1Njo2MDE3YzU4ZTEyZjY4MDlmYmIwNTU1Yjc1ZGYxNDRjMjkyMmE5ZmZkMThl
NGI5YjVhZmE4NjNiNmMxYTlkOTUwIFwNCiAgICAtLWhhc2g9c2hhMjU2Ojc3MjIzNTMzMmI1ZDEw
MjRjNjk2ZjExY2VhMWFlNGJlNzkzMGYwYThiODk0YmI0M2RiMTRlM2Y0MzVmMWZmN2UgXA0KICAg
IC0taGFzaD1zaGEyNTY6N2EyN2RmODUwOTMzZDE2YThlYWJmYmFlYjczZDUyYjI3M2UyZGE2Njdm
ODBkNzBiMDFhODlkMWY2ODI4ZDAyYyBcDQogICAgLS1oYXNoPXNoYTI1Njo5ZmNlOTQ1NjgzNjRl
MDE1NWU2ZGZiNzgxYWM1ZDk1OTAzYmU4YmFmMjg2NzA2MzJiZWFiMWI1MjNmMzAwZGFhIFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmE0ZGQzYTg0ODI5MGVmNzI0MzQ3YjE5ZjMwMTA0NTgzMWQ4ZTgwMmZh
NDQ2NGY0OTFiOThiMWUwYTA4MTQzMmUgXA0KICAgIC0taGFzaD1zaGEyNTY6YTc3YTkwZmJiNjg4
MTIzOGQyY2E5YzZmZDc5N2IyNTgxN2YzNzY4ZmU3OGQyMTRhOTAxMzdmZjA1NWE3NWY1YiBcDQog
ICAgLS1oYXNoPXNoYTI1NjphODU5N2QyOGYyNjdiMzkwNzRhZWY1MWZhNTkzNTMwMDgyYjM5Y2Jl
NWEwNzQyMjYwOTY4NTdiMWZlZDJkZmI5IFwNCiAgICAtLWhhc2g9c2hhMjU2OmIyMjAwYTA1NGNh
NmQ2NjI1YzQ4NDJmYzU2YTQ5NzZhNGI0N2Y5NmI3M2RiZTU1MzhjM2Y4MTNhODAzNTlmNDcgXA0K
ICAgIC0taGFzaD1zaGEyNTY6YjQ1N2Y2ZDYyOGE0N2U4YTczNDZjZTIyYWNiN2UxYTQ2YTRhNzhi
NTJlMWQxN2UxYWY1Njg3MWJkMTlhOTNiYyBcDQogICAgLS1oYXNoPXNoYTI1NjpjMmYwM2EwZjcz
ZjgwNGExM2MyNzM1Yjk5MzkyYjBjZDQyNmJiNGYyYzRkMDE3OGU1YWM5NjZhMGYyMTYxOGQ1IFwN
CiAgICAtLWhhc2g9c2hhMjU2OmM1M2U4NzhkMTVhMWM0NDc4ODA4MmJmZTcxMmE5MDU0MzM0NzNh
YTM4Zjg2Mzc1YjdjZjhiNDVlM2FjYmFhZjkgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDExNDE3ZDg0
NDEyZjg1OWI3MjJmYWQwODQxYjM2MTQ0NTllZDAwNDdmNzU0MmQ4MzYyZTc3ODg0ZjZiNmU4YSBc
DQogICAgLS1oYXNoPXNoYTI1NjpkNjIwOTAwMDMzY2M3NTMxZTUwNzI3YzNjODMzMzA5MWRmNWRk
M2ZmZTZkNjhjZGNhMzhjMDNmNTgyMTQwOGQ1IFwNCiAgICAtLWhhc2g9c2hhMjU2OmRhYjRmNjVh
YzljNGU0ODQwMGEyYTA1MzBjNDZjM2M1NzljZDU5MDVlY2QxMWI4MDY5MjM3MzkxNTI2OTIwOGIg
XA0KICAgIC0taGFzaD1zaGEyNTY6ZGM5MDE0NzU3OWE5MDViODYzNWUxYjBlYzY1MTQ5NjdkY2Iw
N2U2ZTBkOWM0MmYxNDc3ZmVlZjE0Y2FjMjNiYg0KICAgICMgdmlhIG1jcCwgcHlod3B4LCAtciBt
YW5pZmVzdHMvcHl0aG9uLWxvY2tzL2RvY3VtZW50LW1jcC9yZXF1aXJlbWVudHMuaW4NCnJlZmVy
ZW5jaW5nPT0wLjM3LjAgXA0KICAgIC0taGFzaD1zaGEyNTY6MzgxMzI5YTlmOTk2MjhjOTA2OTM2
MTcxNjg5MWQzNGFkOTRhZjc2ZTQ2MWRjYjAzMzU4MjVhZWNjNzY5MjIzMSBcDQogICAgLS1oYXNo
PXNoYTI1Njo0NGFlZmMzMTQyYzViODQyNTM4MTYzYWNiMzczZTI0Y2NlNjYzMmJkNTRiZGIwMWIy
MWFkNTg2MzQ4OWY1MGQ4DQogICAgIyB2aWEganNvbnNjaGVtYSwganNvbnNjaGVtYS1zcGVjaWZp
Y2F0aW9ucw0KcnBkcy1weT09MjAyNi42LjMgXA0KICAgIC0taGFzaD1zaGEyNTY6MGJlOTcyYmU4
NGNmY2FmNDZjOGM2ZWRmNjkwY2EwZjE1NGFjMTdiYWJmMWY2YTk1NWE1MTU3OWIzNGFkMmRjNSBc
DQogICAgLS1oYXNoPXNoYTI1NjoxMjc1NjVmZWFkMGExMDk0M2IyODI5NTdiZDU0NDc4MDRmZjMx
NjBhZDc5ZjJhZDI2MzVlNmQyNDllMzgwNjgwIFwNCiAgICAtLWhhc2g9c2hhMjU2OjEyN2UwOGMw
NjQyZDg4MGNmMzJjYTQ3ZWMyYTRhNzdiOTAxZjdlMmRkMWFkOTc2MmFkYjEzOTU1ZDcyZmZjYzkg
XA0KICAgIC0taGFzaD1zaGEyNTY6MTY2Y2Y1NGQ5ZjQ0ZmM2Y2ViNTNjNzg2MDI1OGRkZTQ0YTgx
NDA2NjQ2ZGU3OWY4ZWQzMjM0ZmNhM2I2ZTUzOCBcDQogICAgLS1oYXNoPXNoYTI1NjoxNjhjNzMz
YTcxMTJlMDcxYmI3YTY2NDYwZTY2N2VkZmNmZjA2YzAxN2EzYzUyM2Y3YThhOGUwOGQwMTQwODA0
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjE5NjdkZWJjMzdmNjRmMmM0ZGM5MGE3ZjU2M2FlYzU1OGI0
NzE5NjZlMTJhZGNhYzRlMWM0MjQwNDk2YjZlYmYgXA0KICAgIC0taGFzaD1zaGEyNTY6MWNlYmQx
MzM3YzI0MmU0ZWMyMjkzZTU0MWY3MTJiMmRhODQ5YjI5ZjQ4ZjBjMjkzNjg0YjcxYzA2MzI2MjVk
NCBcDQogICAgLS1oYXNoPXNoYTI1NjoxY2YwMTk3MWM0ZjJjNTU1M2I3NzJhNTQyZTRhYWYxOTE3
ODljZDMzMWJjMmNkNGZmMGU2ZTY1YmE0OWUxZTk3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjFlNTgy
MmRmYzJmMGQ0YWI3ZTc0NWVhYTZkODU5NDUwNjkzMjliZWVjY2VmOTY1YWYzZjNiYjI2MDU4ZmNh
YjYgXA0KICAgIC0taGFzaD1zaGEyNTY6MjJiZmZlNjA0MmI5YmNiMDgyMmJjZDE5NTVlYzAwZTI0
NWRhZjE3YjQzNDRlNGVkOGU5NTUxYjk3NmI2M2U5NiBcDQogICAgLS1oYXNoPXNoYTI1NjoyM2E0
MzlmMzFjY2JlZmYxNTc0ZTI0ODg5MTI4ODIxZDFmNzkxNzQ3MGU4MzBjZjY1NDRkY2VkMWM2NjIy
NjJhIFwNCiAgICAtLWhhc2g9c2hhMjU2OjI0ZTljNTM4NmUxNjY2OWI2NzRhNjljMTU2YzhlZWVm
Y2I1NzhmM2IzMzk3YjcxM2IwOGU2ZDYwZjNjN2IxODcgXA0KICAgIC0taGFzaD1zaGEyNTY6Mjcw
YjI5M2RhZTkwNThmYzlmY2VkYWI1MGYxM2NlYmY0NmZiOGVkMWQxZDU0ZTA1MjFhOWRhNWQ2YjIx
MTk3NSBcDQogICAgLS1oYXNoPXNoYTI1NjoyOWRmYTA1MzNhNWQ0Yzk0ZDRkZmExYjY5NGZjYjU2
YzljNjNhYWQ4MzMwZmZkZDgxNmZkMjI1ZDBhN2ExNjJmIFwNCiAgICAtLWhhc2g9c2hhMjU2OjJh
OWM2ZjE5NTA1OGNiNDUzMzVlOGNjMzgwMjc0NWM2MDNkNzE2ZWI5NmJjOTYyNTk1MGMxYWFjNzFj
MGM3MDMgXA0KICAgIC0taGFzaD1zaGEyNTY6MmJmZDA0YzE5ZGRiZDY2NDBkZTBiNTE4OTRkNzY0
YmQyNzU4ODU0ZDViNzViZDEwMmQyZWYxMGNiOWMyOTNhOSBcDQogICAgLS1oYXNoPXNoYTI1Njoy
YzU0YTA3NmNhNGQzNzA5ODBhYjU3YmMwZTMxZGY1N2JiZThkNDEzNDA0MzZhOTBlZjhiMTIxOWEz
Y2JiMTI3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjJjOTU4YmY5NDgyMmU5MjkwYTQwYWFmMmE4MjJk
NGJjNWM4ODA5OTA5M2UzOTQ4YWQ2YzU3MWVjYTkyNzJlNWYgXA0KICAgIC0taGFzaD1zaGEyNTY6
MmM5OWY3ZThjY2IzZGQ2ZTNlNGJmZWFjNjU3YTdiMjA4YzliYWM4MDc1ZjRiMDc4YzAyZDc0MDRj
MzQxMDdmYSBcDQogICAgLS1oYXNoPXNoYTI1NjoyZjdjMjZmYmM1YWNkMjUyMmI5NWQ0MTc3ZmU0
NzEwZmZkOGU5YjIwNTI5ZTcwM2ZmYmY4ZGI0ZDkzOTAzZjA1IFwNCiAgICAtLWhhc2g9c2hhMjU2
OjMwYzZkYzE5OWIyNGE1ZTNlODFkNTBkYTBmMDA4NThjNWJiZGIyNjE3YTc1MDM5NTY4N2Y0MzM5
YzU4MTgxNzEgXA0KICAgIC0taGFzaD1zaGEyNTY6MzhhMmZlYTI3ODc0MjhmODExNzE5Y2ViOTEx
NGNiNzg5NjRhMzEzODgzODMyMGMyOWFjMzk1MjZjNzljMTZiYSBcDQogICAgLS1oYXNoPXNoYTI1
NjozYTgzYWU2YzY3Yjc2NzZiOTg3ODM3ODU0N2NhOGU5M2VkNzdhNTgwMDM3YmNiY2QxZDMyZjcz
OWUxZTYwODljIFwNCiAgICAtLWhhc2g9c2hhMjU2OjNjZmU3NjVjMWRhMDA3MjYzNmNhMDY2Mjgy
NjFlMGVhMDU2ODhlMTYwZDVjOGEwM2UwMjE3YzM4NTQwMzcyMjMgXA0KICAgIC0taGFzaD1zaGEy
NTY6NDIxYWJhMzIzNjcwNTU2MTQyODdhNDI5MmI2YTE3ZjE5MzljOTQ1MjI5OWY3YTAyMDljMTE3
ZTk5MGI2NDZkNCBcDQogICAgLS1oYXNoPXNoYTI1Njo0MjU1NjBjNmZhMDQxNWYyNzI2MTcyN2Ji
MjBiZDA5NzU2ODQ4NWU1ZWIwYzEyMWYxOTQ5NDE3ZDFjNTE2ODg1IFwNCiAgICAtLWhhc2g9c2hh
MjU2OjQ0NzBjZTE5N2Q0MDkwODc1Y2Y2YWZmYmYxZjg1MzMzODM4NzQyOGRmOTdjNGZiN2I3MTA2
MzE3YjgyMTQ2OTggXA0KICAgIC0taGFzaD1zaGEyNTY6NGNmMmQzNmEyMzU3ZTRkMDdiYjVhNGY5
ODgwMTI2NTMyN2I0ODI1Njg2NzgxNmNmZDJjZWIwMDFlOTc1NGE4ZiBcDQogICAgLS1oYXNoPXNo
YTI1Njo0ZjRiY2EwMWI2MzA5NmY2MDZlMDk1NzM0ZGQ1NmU3NGUxNzVmOTRjZmJmMjRmZjNkNjMy
ODFjZWM2MWY3YmI3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjUwMWY5ZjA0YTU4OGQ2YTA5MTc5MzY4
YzU3MDcxMzAxNDQ1MTkxNzY3YzY0ZTRiNTJhNmFhOTg3MWYxZWY1ZWQgXA0KICAgIC0taGFzaD1z
aGEyNTY6NTM2YmNlZWE0ZmE0YWNmN2UxYzYxZGEyYjU3ODYzMDQzNjdjODE2Yzg4OTViZTcxYjhm
NTM3YzQ4MGIwZWExZiBcDQogICAgLS1oYXNoPXNoYTI1Njo1Mzg5NDllMjYyZTQ2Y2FhMzFhYzAx
YmRiM2MxZThmNjQyNjIyOTIyY2FjYmFiYmFlNmE4NDQ1ZDlkYzMzZWFmIFwNCiAgICAtLWhhc2g9
c2hhMjU2OjUzOWQ3NWRlOWUwZDUzNmM4NGZmMThkZmViODA1Mzk4ZTU4MjI3MDAxY2UwOTIzMWEy
NmEwOGI5YWVkMWVlMGUgXA0KICAgIC0taGFzaD1zaGEyNTY6NTRmNDVhMTQ4ZTI4NzY3YmYzNDNk
MzNhNjg0NjkzYzcwZTQ1MWM2ZjRjMGU5OTA0NzA5YTcyM2ZhZmJkZmMxZiBcDQogICAgLS1oYXNo
PXNoYTI1Njo1NTkyN2Q1MzIzOTljMmM2NDYxMDBmZjdmZWI0OGVhYTk0MGFkNzBmNDJjZDY4ZTEz
MjhmM2RlZDlmODFjYTI0IFwNCiAgICAtLWhhc2g9c2hhMjU2OjU4ZWFkYWM5Y2QxMTk2NzdiNjBl
MWNmOGFjNDA1MmYzNTk0OWQ3MWI4YTllNTU1NmVmY2NiZTgyNTMzY2YyMmEgXA0KICAgIC0taGFz
aD1zaGEyNTY6NWU4ZDA3YmRkZWU0MzVhMmZmNmYxOTIwZTE4ZmVmZjI4ZDBiYzQ1MzNlNDJmNGJm
NjkyN2ZiZDA3MzMxMmM0MSBcDQogICAgLS1oYXNoPXNoYTI1Njo2MjY5ODI3NTY4MmJmMTIxMTgx
ODYxMjk1YzkxODFlNzg5MDMwYTJkNTE2MDcxZjViOGYzYzIzYzE3MGNkMGZjIFwNCiAgICAtLWhh
c2g9c2hhMjU2OjYzOWM4OTI5YWEwYWZlODFiZTgzNmIwNGRlODg4NDYwZDZiZWQzOGI5YzU0Y2Zj
MThkYThmNmJmYWJmNWFmNWQgXA0KICAgIC0taGFzaD1zaGEyNTY6NjdlM2E3MjFmZmM1ZDhkMjIx
MGQzNjcxODcyMjk4YzRhODRlNGI4MDM1Y2ZlNDJmZmQ3Y2RlMzVkNzcyYjE0NiBcDQogICAgLS1o
YXNoPXNoYTI1Njo2ZGU0NzQ0ZDA1YmQxYWExYmU0ZWQ3ZWExMTg5ZTM5NzkxOTY4MDgwMDgxMTNi
YmJmODk5YTQ2MDk2NmI5MjVlIFwNCiAgICAtLWhhc2g9c2hhMjU2OjZlODRhZGJjZjRiZjg0MWFl
ZDgxMTZhODI2NGI5ZjUwYjRjYjNlN2JkODliNTE2MTIyZTYxNmFjNTZjYTI2OWUgXA0KICAgIC0t
aGFzaD1zaGEyNTY6NzQ5MWVlMjMzMDVhYzNlYjU5ZTQ5MmI2OTQ1ODgxZjVjZDc3YTZmNzMxMDYx
YTNmMjViNzdmZDQwZjllOTlhNCBcDQogICAgLS1oYXNoPXNoYTI1Njo3OTQ4NjI4N2RlMTczMGRi
YWZmM2RiZDEyNGQwY2E0ZDJlZjdmOWQyOWJmMjU0NGYxZjkzYzA5YjViY2JiZDEyIFwNCiAgICAt
LWhhc2g9c2hhMjU2OjdiNjg5MTQ1YTE0ODVjMzM1NTY5YmQwNTY0NjRmMzI0M2EyOWFmN2VkMzg3
MWM3YmUzMWFkNjI0YmEyMzliYzcgXA0KICAgIC0taGFzaD1zaGEyNTY6N2Y4OGQ2NTNlN2IzYjc3
OWQ3MWFlNzQ1NGUyMGRjYzliNmJhZTkwM2YzM2MyNjlkYjlmMmJlNDFiZGEzZjI2MSBcDQogICAg
LS1oYXNoPXNoYTI1Njo4MDIwMTMzYTc0YmQ4MWI0NTcyZGQ4ZTRiZTAyOGE2YjFlYmNkNzBlNjcy
NmVkYzM5MTgwMDhjMDhiZWU2ZWU2IFwNCiAgICAtLWhhc2g9c2hhMjU2OjgwODM0NWY1M2NiOTUy
NDMzY2EyODE2ZjE2MDRmZjM1MTU2MDhhODE3ODQ5NTRmMzhkNDQ1MmFjZmU4ZTYxZDUgXA0KICAg
IC0taGFzaD1zaGEyNTY6ODNlMzViNTc1MjM4MTZjODYxM2ZkMDc3NmI0MGNkOGJiOWY1OTZiMzdk
ZGQyNjkyZWI0YTZiYjVhYjJmOGM5MyBcDQogICAgLS1oYXNoPXNoYTI1Njo4NDJlN2IwNzA0MzU2
MjIyNDhjN2EyYzQ0YWU1M2ZhMTQ0MGUwNzNjYzMwMjNiYzkxOWZlZDU3MDg4NDA5N2E3IFwNCiAg
ICAtLWhhc2g9c2hhMjU2Ojg0NzkyN2RhZjRjZmZiZDRlOTBlNDJiYzg5MDA2OTg5NzEwMWVkZDAx
NWY5NTZjYjg3MjFiMzQ3MzM3MmVkZGEgXA0KICAgIC0taGFzaD1zaGEyNTY6ODgyMDc2YzAwYzBh
NjA4YjEzMTE4NzA1NWRkYzVhZTI5ZjJlN2VhZjg3MGQ2MTY4OTgwNDIwZDU4NTI4YTVjOCBcDQog
ICAgLS1oYXNoPXNoYTI1Njo4Yjk1OTc3ZTcyMTE1MjdhYjBiYTU3NmUyODZkMDIzMzg5ZmJlZWIz
MmE2YjdiNzcxNjY1ZDMzM2M2MGU1MzQyIFwNCiAgICAtLWhhc2g9c2hhMjU2OjhiYjY4ZjAzZjM5
NWViNzkzMjIwYjQ1YzA5N2JkNGQ4YzMyOTQ0MzkzZGEwZmFkOGI5OTllZmFjMDg2OGZjOGMgXA0K
ICAgIC0taGFzaD1zaGEyNTY6OGMyNjQyYTc2MDNlYzBiMTZlZDc3ZGE0NTU1ZGIzYjRiNDcyMzQx
OTA0ODczNzg4MzI3YzBiMGQ3Yjk1ZjFiYiBcDQogICAgLS1oYXNoPXNoYTI1Njo4YzNkMWU5YzE1
YjlkNTFjYTAzOTFlMTNkYTFhMjVhMGE0ZGYzYzU4YTM3YzlkYzM2OGUwNzM2Y2Y3ZjY5ZGYwIFwN
CiAgICAtLWhhc2g9c2hhMjU2OjhjNmU1YTJmNzUwY2M3MWMzZTNiMTFkNzE2NjFmMjFkNmY5YmM2
Y2ViYzY1NjRiMTQ2NjQxN2ExZWMwM2VjNzcgXA0KICAgIC0taGFzaD1zaGEyNTY6OGQyMjk0YTMx
Mzg2YmZhMjUxZDhjOGEzOTQ3MmJlZWUxN2RiNjdkNGYxYTZlYWJlYTY2NWQzNWM5YTQ0NjFjMyBc
DQogICAgLS1oYXNoPXNoYTI1Njo4ZTQzMjA3NDRjMWZmZGQ5NWE2MDNkZWY2MzM0NGJmYWIyZDMz
ZWRlYWIzMDFjNTAwN2U3ZGU5ZjlmNWIzODg1IFwNCiAgICAtLWhhc2g9c2hhMjU2OjhlNjU4NjBk
MjM4Mzc5ZWQ5ODJmZDliYTY5MDU3OWI1ZTk1YWYyZjQ4NDBmOTljNzcyODE2ZGJlNTczY2I4MjYg
XA0KICAgIC0taGFzaD1zaGEyNTY6OGYyZTVjNWVlODI4ZDQyY2IxMTc2MDc2MWMwYWY2NTA3OTI3
YmVjNDJkMGFkNTQ1OGY5N2M5MjAzYjA1NDYxNyBcDQogICAgLS1oYXNoPXNoYTI1Njo5MDBhNjdk
ZjNmZDE2NjBiMDM1YTQ3NjFjNGNlNzNjMzgyZWE2YjM1ZjkwZjk4NjNjMzZjNmZkOGJmOGIwOWJi
IFwNCiAgICAtLWhhc2g9c2hhMjU2OjkxM2NhNDJjY2FkM2Y4Y2M2ZTI5MmI1ODdhZThhZTQ5Yzhj
ODIzZTVkY2U1MWE3MzYyNTJmYzdjN2NkZmE1NzcgXA0KICAgIC0taGFzaD1zaGEyNTY6OTI1MGE5
YTBhNmZkNDY0OGIzZjg2OGRhOGQ5MWE0YzUyYjU4MTFhNjJkZjU4ZTc1M2Q1MGFlNDQ1NGEzNmY4
MCBcDQogICAgLS1oYXNoPXNoYTI1Njo5MzE5MDhkOWZjODU1ZDhmNzQ3ODMzNzc4MjJiZTMxOGVk
YjZkY2IxOWU0NzE2OWRjMDM4ZjlhMWJmNjBiMDZlIFwNCiAgICAtLWhhc2g9c2hhMjU2Ojk4MjYy
MTdmMDQ4ZjYyMGQ5YTcxMjY3MjgxOGJmMjMxNDQyYzFiMzVkOTZiMjI3YTA3ZWFiZDExYjRiYjY5
NDUgXA0KICAgIC0taGFzaD1zaGEyNTY6OTg5MWU1OTQyOTZhYjlkYWRhNjU1MWM4ZTdiMzg3YjI3
MjFmMjdhNjdlZWNkNTI4NDEyZTg5MDYyNDdhN2I5MCBcDQogICAgLS1oYXNoPXNoYTI1Njo5YzEy
NTViMzAyOTUzYzg2YTQ4NmI4MWQzMzBkNWVlMWQ1YmQ5Mzc2OTFjZTI3MWI2YmUwZWYwZTI5OWVh
YWI3IFwNCiAgICAtLWhhc2g9c2hhMjU2OmEwODExZDMzMjQ3YzNkNjEyOGEzMDAxZDc2M2YyYWEw
NTZiYjM0MjUyMDQzMzU0MDBhYzU0Zjg5ZWVjM2EwZDAgXA0KICAgIC0taGFzaD1zaGEyNTY6YTEz
NmQ0NTM0NzVhYzBmY2JkYTUwMmVmMWU2NTA0YmQyOGQ2ZDkwNDcwMDkxNWQyNzhkZWVhYjBkMDBm
ZTE0MCBcDQogICAgLS1oYXNoPXNoYTI1NjphMjE0Yzk5MzQ1NWY5OWE4OWFhZWFkYzliMjEyNDE5
MDAwMzdhZGM5ZDk3MjAzZTM3NGQ3NTUxM2M1OTExODIyIFwNCiAgICAtLWhhc2g9c2hhMjU2OmEz
MDg2YjUzODU0MzgwMmY4NGM4NDM5MTEyNDJkYjIwNDQ3ZGUwMGQ4NzUyZGQwZWZjOTM2ZGJjZjAy
MjE4YmEgXA0KICAgIC0taGFzaD1zaGEyNTY6YTM0NTBiNjkzZmRlOTIxMzNlOWY1MTA2MDU2OGE0
YzMxZmNjYTc2ZDVlNTNiYmQ2MTFlNjg5Y2E0NDY1MTdlOSBcDQogICAgLS1oYXNoPXNoYTI1Njph
NTUwZmI0OTUwYTA2ZGRlM2JlYjQ3MjFmNWFkNGIyNWJmNDUxMzc4NDY2NWIwYTg1MjJjNzkyZTJi
ZDgyMmE0IFwNCiAgICAtLWhhc2g9c2hhMjU2OmE5ZjQ2NDU1OTMwMzZiODFiYmRiMzZiOWM4ZTBl
YTBkMWMzZmVlOTY4YzRkNTlkYjAzNDRjMTQwODdlZjE0M2EgXA0KICAgIC0taGFzaD1zaGEyNTY6
YWNhNmMxZWYwOGE4MmJmZTMyN2NjMTU2ZGE2OTQ2NjBmNTk5OTIzZTJlNjY2NWI2ZDgxYzljMmQw
YWM5ZmZjOCBcDQogICAgLS1oYXNoPXNoYTI1NjphY2FjMzg2YjQ1M2MyNTE2MTExYjUwOTg1ZDYw
Y2U0NmU3ZmFkYjVlYTcxYWU3YjI1ZjRjOTQ2OTM1YmYyN2NmIFwNCiAgICAtLWhhc2g9c2hhMjU2
OmFjYzk5MmFiMjdiMTVmODUyYzc2NzU1ZWIyYWI3ZGNlODY1ODVkZGFkYmE2ZmE1OTQ2ZTU4NTU2
MDg4ODQ1YjQgXA0KICAgIC0taGFzaD1zaGEyNTY6YWUzZDRmZThjMGI5MjEzNjI0ZmRjZTcyNzlk
NzBlM2IxNDhiNjgyY2EyMDcxOWViZDE5M2EyM2ViZmE0NzMyNCBcDQogICAgLS1oYXNoPXNoYTI1
NjphZTUwMTgxYTA0N2M4NzE1NjEyMTJiYjk3Zjc5MzJhMmQ0NWZiNTNlOTQ3YmQ5YjU3ZWJhZDg1
YjUyOWNiYzUzIFwNCiAgICAtLWhhc2g9c2hhMjU2OmFlNmRkOGYxMGJkMTdhYWQ4MjA4NzZkMjRj
YWVjOWVmZGFmZDgwYTMxOGQxNmMwYTQ4ZWRiNWUxMzY5MDJjNmIgXA0KICAgIC0taGFzaD1zaGEy
NTY6YWYwNWQ3MjY4MDliZmY2YjE0MWJlMTI0ZDRjN2NlOTk4ZjljOWM3ZjMwZWRiMWY0NmMwN2Fh
MTAzZDU0MGI0MSBcDQogICAgLS1oYXNoPXNoYTI1NjphZmQ3MGQ5NTg5MjA5NmNkYjI2ZjE1YTAw
YzQ1OTA3YjE3ODE3NTc3YWE4ZDFjNzZiMmRjYzI3ODgzOTFmOWU5IFwNCiAgICAtLWhhc2g9c2hh
MjU2OmI1YzJkYzkyMzA0YWE0OGE0YTYwNDQzYjU0OGJiMTJmMTJlMTE5ZDRiNzJmMzE0MDE1ZTY3
YjllMWJlOTdmY2EgXA0KICAgIC0taGFzaD1zaGEyNTY6YmMwMDExNjU0YjkxY2M0ZmIyYWU3MDFi
ZWMwYTBiYTFlNTUyYzA3MTQyNDdmYTdhZjZjNTllMGNjZmEzYTRlMSBcDQogICAgLS1oYXNoPXNo
YTI1NjpiY2ZiY2Y2NjAwNmJlZmI5ZmQyYWVhYTllMDFmZWFmODgxYjRkYzMzMGEwMmJhMDdkMjMy
MmIxYzExYmU3YjVkIFwNCiAgICAtLWhhc2g9c2hhMjU2OmJkYmQ5NzczODU1MWZjYTM5MTdjMWJk
NzE4OGJlYzE5MjBiYjUyMDEwNGYyOGU3ZTEwMDdmOWNlYjE3Yjc2OTAgXA0KICAgIC0taGFzaD1z
aGEyNTY6YzYwOTI0NTM1Yzc1ZjE1NjZiNmViNzViNWMzMWE0OGE0M2ZlZjA0ZmEyZDBkMjAxYWNi
YWQ4YTk5NjljNjEwNyBcDQogICAgLS1oYXNoPXNoYTI1NjpjN2I5YTJmOGY0ZDhlOTBhZjcyNTcx
ZDNkNDk1ZGVlYmRkN2UzYzc1NDUxZjViNDE3MTlhZWUxNjZlOTQwZmMyIFwNCiAgICAtLWhhc2g9
c2hhMjU2OmNhNjU0NmI2NmJlOWRjNDczOGIxYjA0M2Q1ZWJkNTQ4OGM2NmM1NzhjNWZmMGZkMGU4
MDY1MzEzZmUzYWZiNzYgXA0KICAgIC0taGFzaD1zaGEyNTY6Y2NmZmFlOWEwOTJhMDBkZWI3ZWZk
NTQ1ZmU1ZTJjMzNjMzNiODhlN2MwNTQzMzdlOWE3NGMxNzkzNDdkMGI3ZCBcDQogICAgLS1oYXNo
PXNoYTI1NjpjZGM3ZTM1Mzg2ZjM4NDdkZjcyOGZiY2I1ZTg4N2UyZDc5YzE5ZTJmYTFlYmE5ZTUx
YjY2MjFkMjNlMzI0M2FmIFwNCiAgICAtLWhhc2g9c2hhMjU2OmQxNWZkZTBlNmZiMGQ4OGE2MGQy
MjEyMDQ4NzM3NDNlNWQ5ZjBiN2QyOTE2NWU2MmNkODZkMDQxM2FkNzRiYTYgXA0KICAgIC0taGFz
aD1zaGEyNTY6ZDM0YzIwMTY3NzY0ZmJjZjkyNzE5NGQ1MzJkZDdlMGM1Njc3MmYwYTVmOTQzZmE1
ZWY5ZTlhZmJiYThmYjlkYiBcDQogICAgLS1oYXNoPXNoYTI1NjpkNDgzZmUxN2YwMWFkNjRiN2Jm
N2NjMzhmY2VmZmYxY2E5ZmI4M2Y4YzJiMjU0MmI2OGY5N2ZmZTA2MTFiMzY5IFwNCiAgICAtLWhh
c2g9c2hhMjU2OmQ3NDY5Njk3ZGNlMzViZTIzN2RiMTc3ZDQyZTJhMmVlMjZlNmRjYzVmYzA1MjA3
OGE2ZmVmYWJkMjg4YzZlZGQgXA0KICAgIC0taGFzaD1zaGEyNTY6ZGIwOGY0NWFlY2RlNjI2NDk4
ZmIzZGYwN2JjZjZkMmVjMDQwYWY0MmU4NTlhNGY1MDQwZDc5YzIwMDM0MjkxMSBcDQogICAgLS1o
YXNoPXNoYTI1NjpkYzMxOWU1YTFkZTRiNjkxM2FhYzk0YmY2YTJmOWU4NDczNzFlMGExNDBhNDNk
ZDQ5OTFkYjFhMDliYzJkNTA0IFwNCiAgICAtLWhhc2g9c2hhMjU2OmRlM2VjZWJhMGI2ODNiY2Ji
MWFiOTNkYTAxNmQwMjcwZGYxZjlhZTdiZTcxNmI0MDIxNGM1ZGFmYWM2ZWE0NWEgXA0KICAgIC0t
aGFzaD1zaGEyNTY6ZGZjYzhiOTA5NzY5ZDE5ZGI1NWM3Y2M5NTQxZWI2NGI5Yjc3NGIxMDU3ZmZm
ZmI0ZjEwNDgwNzA0NzViYjlmOSBcDQogICAgLS1oYXNoPXNoYTI1NjplMDU5YzVkZGU2NDUyYjQ0
NDI0YmQxODM0NTU3NTU2YzIyNmI1Nzc4MWRlZTEyMjdhZjIzNTE4NDU5NzIyYjEzIFwNCiAgICAt
LWhhc2g9c2hhMjU2OmU0MzE2YmYzMmJhYmJlZDg0ZTY5MWUzNTJmYWY5NjdjZTJmMGYwMjQxNzRh
ODY0M2MzN2M5NGExMDgwMzc0ZmMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZTUyNjU1ZWFmODFlMzI1
OTNhYmVkYWE0YmZlMzMxNzBjOGNmZWRmMzM2NWVkOWJlNmUxMWUwN2YxNDhmMDI3OCBcDQogICAg
LS1oYXNoPXNoYTI1NjplNTVkMjM2YmUyOTI1NTU1NGRhNDdhYmU1YzU3NzYzN2RiN2MyNGEwMmI4
YjQ2ZjBjYTk1MjRjODU1ODAxODY4IFwNCiAgICAtLWhhc2g9c2hhMjU2OmVhN2JiMTNiN2M5YTI5
NzkxZjg3YTAzODdiYTdkM2FkM2E2ZDc4M2Q4MjdlNGQzZjI3YjQwYTBmZjQ0NDk1ZTIgXA0KICAg
IC0taGFzaD1zaGEyNTY6ZWE5NjQxNjRjYzlhZmE3MmQ0ZDliMjNjYzI4ZGFmYWU5MzY5M2MwYTUz
ZTBiNDJhY2JmZjE1YjIyYzNmOWRkZCBcDQogICAgLS1oYXNoPXNoYTI1NjplYzgyOTU0MWM0NWJj
YTE2ZTYxYzdhZTUwYzIwNTAxZjIxMzYwNWJlYjc1ZDFhYmE5MWE2ZWUzN2ZiYmI1NmE0IFwNCiAg
ICAtLWhhc2g9c2hhMjU2OmVjYWJkNjlkYjY2ZGU4Njc2OTBmOTc5N2YyZjhmYTI3YmE1MDFiYmMy
NDU0MGNiZGJkYzY0OWNkMTU4ODhiYTYgXA0KICAgIC0taGFzaD1zaGEyNTY6ZWQwYzFlNWQxMGNk
YzcxMzU1Mzc5ODhjNzRhMDE4OGRhNjhlMmYzYzMwODEzYmEzNzQ0YWIxZTQyZTA0ODBmOSBcDQog
ICAgLS1oYXNoPXNoYTI1NjpmMDg0MGI1YjE3MDU3ZjdmZDkxOGI3NjE4M2E0YjVhMDYzNWY0M2Ux
NGViMmNlNjBkY2UxZDRlZTQ3MDdlYTAwIFwNCiAgICAtLWhhc2g9c2hhMjU2OmY0ZDc4MjUzZjY5
OTZiZTQ5MDE2NjlhZDI1MzE5Zjg0MmY3NDBlY2NmNGQ1OGUzYzdmM2RkMzllNmRkZTFkOGYgXA0K
ICAgIC0taGFzaD1zaGEyNTY6ZjU2ZjE2OTViYzVjMDg3MWNiYzMzZGMwMTMwZmNmNTAzYWFiMGM1
N2RjYzVhNjcwMGE0ZjQ5ZWJhNGYyNjUyZSBcDQogICAgLS1oYXNoPXNoYTI1NjpmODI2ODc3ZDQ2
MjE4MWU1ZWIxYzI2YTAwMjZiOGQwY2FiMDVkOTk4NDRlY2I2ZDhiZjM2MjdhMmNhMGMwNDQyIFwN
CiAgICAtLWhhc2g9c2hhMjU2OmY4ZjIzZWFkODkxYTNiNzYyZjM1YWIzYjA0NjIzZGE3MDU2NTQ1
YjQ4YWE2MGQ1OTk1N2U2Nzg5OTE0NTQ1ZGEgXA0KICAgIC0taGFzaD1zaGEyNTY6ZjkwOTM4ZTky
YWZkYTYwMjY2ZGE3NThlZTdkMzYzNDQ3ZjdmMDEzOGM5NTU5ZjllMTgxMTYyOTU4MDU4MmQ5MCBc
DQogICAgLS1oYXNoPXNoYTI1NjpmYWE2NzlkMTlhNjY5NmZkNTQyNTlhZDMyMTI1MWFkNzdhMTNl
NzBlMDNkZDgzNGRhYTc2MmE0NGZiNjE5NmVmDQogICAgIyB2aWEganNvbnNjaGVtYSwgcmVmZXJl
bmNpbmcNCnNpeD09MS4xNy4wIFwNCiAgICAtLWhhc2g9c2hhMjU2OjQ3MjFmMzkxZWQ5MDU0MWZk
ZGFjYWI1YWNmOTQ3YWEwZDNkYzdkMjdiMmUxZThlZGEyYmU4OTcwNTg2YzMyNzQgXA0KICAgIC0t
aGFzaD1zaGEyNTY6ZmY3MDMzNWQ0NjhlN2ViNmVjNjViOTViOTlkM2EyODM2NTQ2MDYzZjYzYWNj
NTE3MWRlMzY3ZTgzNDkzMmE4MQ0KICAgICMgdmlhIHB5dGhvbi1kYXRldXRpbA0Kc3NlLXN0YXJs
ZXR0ZT09My40LjggXA0KICAgIC0taGFzaD1zaGEyNTY6NmU4MjMxNGM3ODY3MDlhM2NkOTUyMGYy
Mjg1Y2Y5ZmZmOTBlMTgxZTU5OGU4YTM1N2IwY2Y4MGY2NmFmYmEwZCBcDQogICAgLS1oYXNoPXNo
YTI1NjplZDg5ZmZiYjc1Y2JmNzhhNWZlMmYyMTA5Y2Q1ODQ3OTJlZTdmOWRmYWM5NmY3OTFkYjU0
NmRmOGYxNWYzZjljDQogICAgIyB2aWEgbWNwDQpzdGFybGV0dGU9PTEuNi4wIFwNCiAgICAtLWhh
c2g9c2hhMjU2OmE4NmRkMzlkMTRiYjQ1Zjg1YTNkMTg1MjUyMTVhOWVmMGNmZDFmMTkyYWM3OTMy
MjBlNzI1OThjOTAzMzVmMGMgXA0KICAgIC0taGFzaD1zaGEyNTY6ZDRlM2FjNWU1NDY0NDQ5NjBj
NzEwMjk3YTNjOWZjM2Y3ZWJhZTFiN2U5NjNmM2QzNjE3M2I0OWRhNTM1YmU5Yg0KICAgICMgdmlh
IG1jcCwgc3NlLXN0YXJsZXR0ZQ0KdHlwaW5nLWV4dGVuc2lvbnM9PTQuMTYuMCBcDQogICAgLS1o
YXNoPXNoYTI1Njo0ODFjYWE0ODEzNzRlODEzYzFiMTc2YWRhMTRlOTdmMWY2N2E0NTM5Y2U5Y2Zl
YjNmMzUwZDc4ZDYzNzBjMmU4IFwNCiAgICAtLWhhc2g9c2hhMjU2OmRjOTgzZDE5YTUwOWM5NGRi
YTcyMmVlNmFiZDMzOTQwZjdjMDVhODllMjQzYzQ3ZTkwN2ViNGRiNmYxYTQzZTUNCiAgICAjIHZp
YSBhbnlpbywgbWNwLCBweWRhbnRpYywgcHlkYW50aWMtY29yZSwgcmVmZXJlbmNpbmcsIHN0YXJs
ZXR0ZSwgdHlwaW5nLWluc3BlY3Rpb24NCnR5cGluZy1pbnNwZWN0aW9uPT0wLjQuNCBcDQogICAg
LS1oYXNoPXNoYTI1Njo1NDcyNzRmYTZiMGE1NjFjY2Y1NDljYzk1MjRiOTk5YTU3OGU3MzdkMDE1
ZDg3MDlkMDIxZjlkMGQxM2JlYTQ3IFwNCiAgICAtLWhhc2g9c2hhMjU2OjY1YjgzOTdiYTM3Y2Ni
Y2UwNTQ0NTZhYWNjZGRmYzkxZTZlMzA4M2M5MjgyNGRmMzQ4ZDk2Y2E4MzJmM2YxNDcNCiAgICAj
IHZpYSBtY3AsIHB5ZGFudGljLCBweWRhbnRpYy1zZXR0aW5ncw0KdHpkYXRhPT0yMDI2LjMgXA0K
ICAgIC0taGFzaD1zaGEyNTY6NGExNTE4Yjg5OTMwODZhNzk4MjUyM2UwNzE2NDNmM2MwZTVmMjEz
ZTc1YjIxMzE4ZTc4YmNhYmZmZjlkMTQxNSBcDQogICAgLS1oYXNoPXNoYTI1NjpkYzA5NjczMGM4
N2FmNmNhYjFiMTcxYzlkNTMyYmU4NDA3NDFmZjVkNDU5MDE1ZTdmNjk0N2JkN2Q3ZTU0OTMxDQog
ICAgIyB2aWEgcGFuZGFzDQp1dmljb3JuPT0wLjUyLjQgXA0KICAgIC0taGFzaD1zaGEyNTY6NzNh
Y2ZlZTQ3YTBiMTMzYzVkZTEzZDIxOTQ5MmQ2MmQ4YTMxZTkzNWY0ZmU2ZTQxYTIzMjQ1MWExNTM3
OWY4NiBcDQogICAgLS1oYXNoPXNoYTI1NjpmODZlNDFhMTQ5ZDdkMDVhOTk2OTMzN2UzOTQ2YTlj
MTcxYzA2YTVkNDI2ODA4OTZkYWFiYTYyNGFlYWM4ZGExDQogICAgIyB2aWEgbWNwDQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/soul-state.schema.json","encoding":"base64","size":7623,"runtimeSha256":"e3f637954fdb9e4c365a5c0c931b770c4d0e8840f8ec54c97a31ed883c972fc7","normalizedSha256":"6bd53261d253aed67b9acc97c7c504faac98244710ad13941264427589815160"} -->
```base64
ew0KICAiJHNjaGVtYSI6ICJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3Nj
aGVtYSIsDQogICIkaWQiOiAidXJuOnBvcnRhYmxlLWFzc2lzdGFudC1zb3VsOnN0YXRlOnY3IiwN
CiAgInRpdGxlIjogIlBvcnRhYmxlIEFzc2lzdGFudCBTb3VsIFN0YXRlIHY3IiwNCiAgInR5cGUi
OiAib2JqZWN0IiwNCiAgInJlcXVpcmVkIjogWw0KICAgICJzY2hlbWFWZXJzaW9uIiwNCiAgICAi
c291bElkIiwNCiAgICAiZGlzcGxheU5hbWUiLA0KICAgICJyb290IiwNCiAgICAibGlmZWN5Y2xl
IiwNCiAgICAiY3JlYXRlZEF0IiwNCiAgICAidXBkYXRlZEF0IiwNCiAgICAic3RydWN0dXJlRGVj
aXNpb24iLA0KICAgICJpY29uRGVjaXNpb24iLA0KICAgICJtYWNoaW5lUmVhZHkiLA0KICAgICJw
ZW5kaW5nQ2FwYWJpbGl0aWVzIiwNCiAgICAia25vd25Ib3N0cyINCiAgXSwNCiAgInByb3BlcnRp
ZXMiOiB7DQogICAgInNjaGVtYVZlcnNpb24iOiB7DQogICAgICAiY29uc3QiOiA3DQogICAgfSwN
CiAgICAic291bElkIjogew0KICAgICAgInR5cGUiOiAic3RyaW5nIiwNCiAgICAgICJmb3JtYXQi
OiAidXVpZCINCiAgICB9LA0KICAgICJkaXNwbGF5TmFtZSI6IHsNCiAgICAgICJ0eXBlIjogInN0
cmluZyIsDQogICAgICAibWluTGVuZ3RoIjogMQ0KICAgIH0sDQogICAgInJvb3QiOiB7DQogICAg
ICAiY29uc3QiOiAiLiINCiAgICB9LA0KICAgICJsaWZlY3ljbGUiOiB7DQogICAgICAidHlwZSI6
ICJzdHJpbmciLA0KICAgICAgImVudW0iOiBbDQogICAgICAgICJ3aXphcmQtcGF1c2VkIiwNCiAg
ICAgICAgInBlbmRpbmctZmluYWxpemUiLA0KICAgICAgICAicmVhZHkiLA0KICAgICAgICAiYWN0
aXZlIiwNCiAgICAgICAgImJsb2NrZWQiLA0KICAgICAgICAicmVwYWlyIg0KICAgICAgXQ0KICAg
IH0sDQogICAgImNyZWF0ZWRBdCI6IHsNCiAgICAgICJ0eXBlIjogInN0cmluZyIsDQogICAgICAi
Zm9ybWF0IjogImRhdGUtdGltZSINCiAgICB9LA0KICAgICJ1cGRhdGVkQXQiOiB7DQogICAgICAi
dHlwZSI6ICJzdHJpbmciLA0KICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiDQogICAgfSwNCiAg
ICAic291cmNlR3VpZGUiOiB7DQogICAgICAidHlwZSI6ICJvYmplY3QiLA0KICAgICAgInByb3Bl
cnRpZXMiOiB7DQogICAgICAgICJlZGl0aW9uIjogeyAiZW51bSI6IFsiQ2xhdWRlIOyLpO2Wie2M
kCIsICJDb2RleCDsi6TtlontjJAiXSB9LA0KICAgICAgICAidmVyc2lvbiI6IHsgInR5cGUiOiAi
c3RyaW5nIiB9LA0KICAgICAgICAiZGF0ZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9DQogICAgICB9
LA0KICAgICAgInJlcXVpcmVkIjogWyJlZGl0aW9uIiwgInZlcnNpb24iLCAiZGF0ZSJdLA0KICAg
ICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogdHJ1ZQ0KICAgIH0sDQogICAgInN0cnVjdHVyZURl
Y2lzaW9uIjogew0KICAgICAgInR5cGUiOiAib2JqZWN0IiwNCiAgICAgICJyZXF1aXJlZCI6IFsi
c3RhdHVzIl0sDQogICAgICAicHJvcGVydGllcyI6IHsNCiAgICAgICAgInN0YXR1cyI6IHsNCiAg
ICAgICAgICAidHlwZSI6ICJzdHJpbmciLA0KICAgICAgICAgICJlbnVtIjogWyJhcHByb3ZlZCIs
ICJwYXJ0aWFsbHktZGVmZXJyZWQiLCAid2l6YXJkLXBhdXNlZCJdDQogICAgICAgIH0sDQogICAg
ICAgICJhcHByb3ZlZEF0IjogeyAidHlwZSI6ICJzdHJpbmciLCAiZm9ybWF0IjogImRhdGUtdGlt
ZSIgfSwNCiAgICAgICAgImRlY2lzaW9uSGFzaCI6IHsgIiRyZWYiOiAiIy8kZGVmcy9zaGEyNTYi
IH0sDQogICAgICAgICJ0cmFuc2FjdGlvbklkIjogeyAidHlwZSI6ICJzdHJpbmciLCAiZm9ybWF0
IjogInV1aWQiIH0sDQogICAgICAgICJhcHByb3ZlZE5vZGVJZHMiOiB7DQogICAgICAgICAgInR5
cGUiOiAiYXJyYXkiLA0KICAgICAgICAgICJpdGVtcyI6IHsgInR5cGUiOiAic3RyaW5nIiwgImZv
cm1hdCI6ICJ1dWlkIiB9LA0KICAgICAgICAgICJ1bmlxdWVJdGVtcyI6IHRydWUNCiAgICAgICAg
fSwNCiAgICAgICAgImRlZmVycmVkTGV2ZWxzIjogew0KICAgICAgICAgICJ0eXBlIjogImFycmF5
IiwNCiAgICAgICAgICAiaXRlbXMiOiB7ICJlbnVtIjogWyJSIiwgIkQiLCAiUCIsICJTIiwgIlQi
XSB9LA0KICAgICAgICAgICJ1bmlxdWVJdGVtcyI6IHRydWUNCiAgICAgICAgfSwNCiAgICAgICAg
Im5vZGVzIjogew0KICAgICAgICAgICJ0eXBlIjogImFycmF5IiwNCiAgICAgICAgICAiaXRlbXMi
OiB7ICIkcmVmIjogIiMvJGRlZnMvYXBwbGllZE5vZGUiIH0NCiAgICAgICAgfSwNCiAgICAgICAg
IndpemFyZFJlc3VsdFJlbGF0aXZlUGF0aCI6IHsNCiAgICAgICAgICAidHlwZSI6ICJzdHJpbmci
DQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiB0cnVl
DQogICAgfSwNCiAgICAiaWNvbkRlY2lzaW9uIjogew0KICAgICAgInR5cGUiOiAib2JqZWN0IiwN
CiAgICAgICJyZXF1aXJlZCI6IFsic3RhdHVzIl0sDQogICAgICAicHJvcGVydGllcyI6IHsNCiAg
ICAgICAgInN0YXR1cyI6IHsNCiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLA0KICAgICAgICAg
ICJlbnVtIjogWyJhcHByb3ZlZCIsICJ3aXphcmQtcGF1c2VkIl0NCiAgICAgICAgfSwNCiAgICAg
ICAgIm1vZGUiOiB7DQogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwNCiAgICAgICAgICAiZW51
bSI6IFsiZGVmYXVsdCIsICJpbXBvcnRlZCIsICJnZW5lcmF0ZWQiLCAiYWRvcHQtZXhpc3Rpbmci
XQ0KICAgICAgICB9LA0KICAgICAgICAicmVsYXRpdmVQYXRoIjogew0KICAgICAgICAgICJ0eXBl
IjogWyJzdHJpbmciLCAibnVsbCJdDQogICAgICAgIH0sDQogICAgICAgICJzb3VyY2VIYXNoIjog
ew0KICAgICAgICAgICJvbmVPZiI6IFsNCiAgICAgICAgICAgIHsgIiRyZWYiOiAiIy8kZGVmcy9z
aGEyNTYiIH0sDQogICAgICAgICAgICB7ICJ0eXBlIjogIm51bGwiIH0NCiAgICAgICAgICBdDQog
ICAgICAgIH0sDQogICAgICAgICJ0YXJnZXQiOiB7DQogICAgICAgICAgImNvbnN0IjogInJvb3Qi
DQogICAgICAgIH0sDQogICAgICAgICJjYXBhYmlsaXR5U3RhdHVzIjogew0KICAgICAgICAgICJl
bnVtIjogWyJyZWFkeSIsICJwZW5kaW5nIl0NCiAgICAgICAgfSwNCiAgICAgICAgImRlY2lzaW9u
SGFzaCI6IHsgIiRyZWYiOiAiIy8kZGVmcy9zaGEyNTYiIH0NCiAgICAgIH0sDQogICAgICAiYWRk
aXRpb25hbFByb3BlcnRpZXMiOiB0cnVlDQogICAgfSwNCiAgICAicGVuZGluZ1RyYW5zYWN0aW9u
Ijogew0KICAgICAgInR5cGUiOiBbInN0cmluZyIsICJudWxsIl0sDQogICAgICAiZm9ybWF0Ijog
InV1aWQiDQogICAgfSwNCiAgICAiYmxvY2tlZFJlYXNvbiI6IHsNCiAgICAgICJ0eXBlIjogWyJz
dHJpbmciLCAibnVsbCJdDQogICAgfSwNCiAgICAibWFjaGluZVJlYWR5Ijogew0KICAgICAgInR5
cGUiOiAiYm9vbGVhbiINCiAgICB9LA0KICAgICJwZW5kaW5nQ2FwYWJpbGl0aWVzIjogew0KICAg
ICAgInR5cGUiOiAiYXJyYXkiDQogICAgfSwNCiAgICAia25vd25Ib3N0cyI6IHsNCiAgICAgICJ0
eXBlIjogImFycmF5Ig0KICAgIH0sDQogICAgImJvb3RzdHJhcCI6IHsNCiAgICAgICJ0eXBlIjog
Im9iamVjdCIsDQogICAgICAicmVxdWlyZWQiOiBbDQogICAgICAgICJzY2hlbWFWZXJzaW9uIiwN
CiAgICAgICAgInN0cnVjdHVyZURlY2lzaW9uSGFzaCIsDQogICAgICAgICJpY29uRGVjaXNpb25I
YXNoIiwNCiAgICAgICAgIm1hcFJlbGF0aXZlUGF0aCIsDQogICAgICAgICJnZW5lcmF0aW9uSWQi
LA0KICAgICAgICAic3RhZ2VTdGF0dXMiLA0KICAgICAgICAic3RhZ2VkQXQiDQogICAgICBdLA0K
ICAgICAgInByb3BlcnRpZXMiOiB7DQogICAgICAgICJzY2hlbWFWZXJzaW9uIjogeyAiY29uc3Qi
OiAxIH0sDQogICAgICAgICJzdHJ1Y3R1cmVEZWNpc2lvbkhhc2giOiB7ICIkcmVmIjogIiMvJGRl
ZnMvc2hhMjU2IiB9LA0KICAgICAgICAiaWNvbkRlY2lzaW9uSGFzaCI6IHsgIiRyZWYiOiAiIy8k
ZGVmcy9zaGEyNTYiIH0sDQogICAgICAgICJzb3VyY2VMb2NrU2hhMjU2IjogeyAiJHJlZiI6ICIj
LyRkZWZzL3NoYTI1NiIgfSwNCiAgICAgICAgIm1hcFJlbGF0aXZlUGF0aCI6IHsgInR5cGUiOiAi
c3RyaW5nIiB9LA0KICAgICAgICAiZ2VuZXJhdGlvbklkIjogeyAidHlwZSI6ICJzdHJpbmciIH0s
DQogICAgICAgICJzdGFnZVN0YXR1cyI6IHsgImVudW0iOiBbInBlbmRpbmctZmluYWxpemUiLCAi
cmVhZHkiXSB9LA0KICAgICAgICAic3RhZ2VkQXQiOiB7ICJ0eXBlIjogInN0cmluZyIsICJmb3Jt
YXQiOiAiZGF0ZS10aW1lIiB9DQogICAgICB9LA0KICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVz
IjogdHJ1ZQ0KICAgIH0NCiAgfSwNCiAgImFsbE9mIjogWw0KICAgIHsNCiAgICAgICJpZiI6IHsN
CiAgICAgICAgImFueU9mIjogWw0KICAgICAgICAgIHsgInByb3BlcnRpZXMiOiB7ICJsaWZlY3lj
bGUiOiB7ICJjb25zdCI6ICJwZW5kaW5nLWZpbmFsaXplIiB9IH0sICJyZXF1aXJlZCI6IFsibGlm
ZWN5Y2xlIl0gfSwNCiAgICAgICAgICB7DQogICAgICAgICAgICAicHJvcGVydGllcyI6IHsNCiAg
ICAgICAgICAgICAgImJvb3RzdHJhcCI6IHsNCiAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLA0KICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyAic3RhZ2VTdGF0dXMiOiB7ICJj
b25zdCI6ICJwZW5kaW5nLWZpbmFsaXplIiB9IH0sDQogICAgICAgICAgICAgICAgInJlcXVpcmVk
IjogWyJzdGFnZVN0YXR1cyJdDQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAg
ICAgICAgICAicmVxdWlyZWQiOiBbImJvb3RzdHJhcCJdDQogICAgICAgICAgfQ0KICAgICAgICBd
DQogICAgICB9LA0KICAgICAgInRoZW4iOiB7ICJwcm9wZXJ0aWVzIjogeyAibWFjaGluZVJlYWR5
IjogeyAiY29uc3QiOiBmYWxzZSB9IH0gfQ0KICAgIH0sDQogICAgew0KICAgICAgImlmIjogew0K
ICAgICAgICAicHJvcGVydGllcyI6IHsNCiAgICAgICAgICAic3RydWN0dXJlRGVjaXNpb24iOiB7
DQogICAgICAgICAgICAicHJvcGVydGllcyI6IHsgInN0YXR1cyI6IHsgImVudW0iOiBbImFwcHJv
dmVkIiwgInBhcnRpYWxseS1kZWZlcnJlZCJdIH0gfSwNCiAgICAgICAgICAgICJyZXF1aXJlZCI6
IFsic3RhdHVzIl0NCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCI6
IFsic3RydWN0dXJlRGVjaXNpb24iXQ0KICAgICAgfSwNCiAgICAgICJ0aGVuIjogew0KICAgICAg
ICAicHJvcGVydGllcyI6IHsNCiAgICAgICAgICAic3RydWN0dXJlRGVjaXNpb24iOiB7DQogICAg
ICAgICAgICAicmVxdWlyZWQiOiBbImFwcHJvdmVkQXQiLCAiZGVjaXNpb25IYXNoIiwgInRyYW5z
YWN0aW9uSWQiLCAiYXBwcm92ZWROb2RlSWRzIiwgImRlZmVycmVkTGV2ZWxzIiwgIm5vZGVzIl0N
CiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIHsNCiAgICAgICJp
ZiI6IHsNCiAgICAgICAgInByb3BlcnRpZXMiOiB7DQogICAgICAgICAgImljb25EZWNpc2lvbiI6
IHsNCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyAic3RhdHVzIjogeyAiY29uc3QiOiAiYXBw
cm92ZWQiIH0gfSwNCiAgICAgICAgICAgICJyZXF1aXJlZCI6IFsic3RhdHVzIl0NCiAgICAgICAg
ICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCI6IFsiaWNvbkRlY2lzaW9uIl0NCiAg
ICAgIH0sDQogICAgICAidGhlbiI6IHsNCiAgICAgICAgInByb3BlcnRpZXMiOiB7DQogICAgICAg
ICAgImljb25EZWNpc2lvbiI6IHsNCiAgICAgICAgICAgICJyZXF1aXJlZCI6IFsibW9kZSIsICJy
ZWxhdGl2ZVBhdGgiLCAic291cmNlSGFzaCIsICJ0YXJnZXQiLCAiY2FwYWJpbGl0eVN0YXR1cyIs
ICJkZWNpc2lvbkhhc2giXQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0s
DQogICAgew0KICAgICAgImlmIjogew0KICAgICAgICAicHJvcGVydGllcyI6IHsgImxpZmVjeWNs
ZSI6IHsgImVudW0iOiBbInJlYWR5IiwgImFjdGl2ZSJdIH0gfSwNCiAgICAgICAgInJlcXVpcmVk
IjogWyJsaWZlY3ljbGUiXQ0KICAgICAgfSwNCiAgICAgICJ0aGVuIjogew0KICAgICAgICAicHJv
cGVydGllcyI6IHsNCiAgICAgICAgICAibWFjaGluZVJlYWR5IjogeyAiY29uc3QiOiB0cnVlIH0s
DQogICAgICAgICAgImJvb3RzdHJhcCI6IHsNCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyAi
c3RhZ2VTdGF0dXMiOiB7ICJjb25zdCI6ICJyZWFkeSIgfSB9LA0KICAgICAgICAgICAgInJlcXVp
cmVkIjogWyJzdGFnZVN0YXR1cyJdDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAi
cmVxdWlyZWQiOiBbImJvb3RzdHJhcCJdDQogICAgICB9DQogICAgfQ0KICBdLA0KICAiJGRlZnMi
OiB7DQogICAgInNoYTI1NiI6IHsNCiAgICAgICJ0eXBlIjogInN0cmluZyIsDQogICAgICAicGF0
dGVybiI6ICJeWzAtOWEtZl17NjR9JCINCiAgICB9LA0KICAgICJhcHBsaWVkTm9kZSI6IHsNCiAg
ICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAicmVxdWlyZWQiOiBbDQogICAgICAgICJpZCIs
DQogICAgICAgICJwYXJlbnRJZCIsDQogICAgICAgICJsZXZlbCIsDQogICAgICAgICJuYW1lS28i
LA0KICAgICAgICAibmFtZUVuIiwNCiAgICAgICAgInRhZyIsDQogICAgICAgICJvcmRlciIsDQog
ICAgICAgICJyZWxhdGl2ZVBhdGgiLA0KICAgICAgICAiY29kZSIsDQogICAgICAgICJpbW11dGFi
bGUiLA0KICAgICAgICAib3JpZ2luIg0KICAgICAgXSwNCiAgICAgICJwcm9wZXJ0aWVzIjogew0K
ICAgICAgICAiaWQiOiB7ICJ0eXBlIjogInN0cmluZyIsICJmb3JtYXQiOiAidXVpZCIgfSwNCiAg
ICAgICAgInBhcmVudElkIjogeyAidHlwZSI6IFsic3RyaW5nIiwgIm51bGwiXSwgImZvcm1hdCI6
ICJ1dWlkIiB9LA0KICAgICAgICAibGV2ZWwiOiB7ICJlbnVtIjogWyJSIiwgIkQiLCAiUCIsICJT
IiwgIlQiXSB9LA0KICAgICAgICAibmFtZUtvIjogeyAidHlwZSI6ICJzdHJpbmciLCAibWluTGVu
Z3RoIjogMSB9LA0KICAgICAgICAibmFtZUVuIjogeyAidHlwZSI6ICJzdHJpbmciIH0sDQogICAg
ICAgICJ0YWciOiB7ICJ0eXBlIjogInN0cmluZyIgfSwNCiAgICAgICAgIm9yZGVyIjogeyAidHlw
ZSI6ICJpbnRlZ2VyIiwgIm1pbmltdW0iOiAwLCAibWF4aW11bSI6IDk4IH0sDQogICAgICAgICJy
ZWxhdGl2ZVBhdGgiOiB7ICJ0eXBlIjogInN0cmluZyIsICJtaW5MZW5ndGgiOiAxIH0sDQogICAg
ICAgICJjb2RlIjogeyAidHlwZSI6ICJzdHJpbmciLCAicGF0dGVybiI6ICJeW1JEUFNUXVswLTld
ezJ9KD86XFwuWzAtOV17Mn0pPyQiIH0sDQogICAgICAgICJpbW11dGFibGUiOiB7ICJ0eXBlIjog
ImJvb2xlYW4iIH0sDQogICAgICAgICJvcmlnaW4iOiB7ICJlbnVtIjogWyJleGlzdGluZyIsICJh
cHByb3ZlZC1uZXciXSB9LA0KICAgICAgICAiZ3JvdXBQcmVmaXgiOiB7ICJ0eXBlIjogInN0cmlu
ZyIgfSwNCiAgICAgICAgInN0YXR1cyI6IHsgImVudW0iOiBbImFjdGl2ZSIsICJkZWZlcnJlZCJd
IH0NCiAgICAgIH0sDQogICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiBmYWxzZQ0KICAgIH0N
CiAgfSwNCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogdHJ1ZQ0KfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/manifests/v7-lock.json","encoding":"base64","size":11398,"runtimeSha256":"052f351dac483d021e0efceaacedda12ed1106a03fe5eca8882f8ed23c53db84","normalizedSha256":"89833b4b7c3d36d35db0aa965cc9aee77406c5e8c75f275e64d6aeb0230d4c01"} -->
```base64
ew0KICAic2NoZW1hVmVyc2lvbiI6IDcsDQogICJsb2NrSWQiOiAiYXNzaXN0YW50LXNvdWwtdjct
MjAyNi0wOC0yNCIsDQogICJnZW5lcmF0ZWRBdCI6ICIyMDI2LTA4LTI0VDAwOjAwOjAwKzA5OjAw
IiwNCiAgInBsYXRmb3JtIjogIndpbmRvd3MteDY0IiwNCiAgInBvbGljaWVzIjogew0KICAgICJk
ZXNrdG9wV3JpdGVzIjogImRlbnktYWx3YXlzIiwNCiAgICAidGhpcmRQYXJ0eVVwZGF0ZXMiOiAi
ZXhhY3Qtb25seSIsDQogICAgImFnZW50Q2xpVXBkYXRlcyI6ICJvZmZpY2lhbC1zdGFibGUtd2l0
aC1taW5pbXVtIiwNCiAgICAiYW50aHJvcGljRGlyZWN0UHJvYmUiOiAiZm9yYmlkZGVuIiwNCiAg
ICAiY2Fub25pY2FsR2VuZXJhdGlvblBvaW50ZXIiOiAiX2FnZW50L3NldHVwL2FjdGl2ZS1nZW5l
cmF0aW9uLmpzb24iLA0KICAgICJmcmVzaFByb2plY3RSb290TWFya2VyIjogInNvdWwtc3RhdGUu
anNvbiINCiAgfSwNCiAgImV4dGVybmFsV3JpdGVzIjogWw0KICAgIHsNCiAgICAgICJvd25lciI6
ICJ3aW5nZXQtYW5kLW9zLWluc3RhbGxlcnMiLA0KICAgICAgInB1cnBvc2UiOiAiSW5zdGFsbCBy
ZXF1aXJlZCBuYXRpdmUgYXBwbGljYXRpb25zIiwNCiAgICAgICJhbGxvd2VkUm9vdHMiOiBbDQog
ICAgICAgICIlUHJvZ3JhbUZpbGVzJSIsDQogICAgICAgICIlUHJvZ3JhbUZpbGVzKHg4NiklIiwN
CiAgICAgICAgIiVMT0NBTEFQUERBVEElL01pY3Jvc29mdC9XaW5HZXQiLA0KICAgICAgICAiJUxP
Q0FMQVBQREFUQSUvUHJvZ3JhbXMiLA0KICAgICAgICAiJVByb2dyYW1EYXRhJS9NaWNyb3NvZnQv
V2luR2V0IiwNCiAgICAgICAgIiVXSU5ESVIlL0luc3RhbGxlciINCiAgICAgIF0sDQogICAgICAi
YWxsb3dlZFJlZ2lzdHJ5IjogWw0KICAgICAgICAiSEtDVS9FbnZpcm9ubWVudCIsDQogICAgICAg
ICJIS0NVL1NvZnR3YXJlL01pY3Jvc29mdC9XaW5kb3dzL0N1cnJlbnRWZXJzaW9uL1VuaW5zdGFs
bCIsDQogICAgICAgICJIS0xNL1NvZnR3YXJlL01pY3Jvc29mdC9XaW5kb3dzL0N1cnJlbnRWZXJz
aW9uL1VuaW5zdGFsbCINCiAgICAgIF0NCiAgICB9LA0KICAgIHsNCiAgICAgICJvd25lciI6ICJh
Z2VudC1ob21lLXBvaW50ZXJzIiwNCiAgICAgICJwdXJwb3NlIjogIk1ha2UgZGlyZWN0IENMSSBs
YXVuY2hlcyByZXNvbHZlIHRvIHRoZSBwb3J0YWJsZSBob21lcyIsDQogICAgICAiYWxsb3dlZFJv
b3RzIjogWyIlVVNFUlBST0ZJTEUlIl0sDQogICAgICAiYWxsb3dlZFJlZ2lzdHJ5IjogWyJIS0NV
L0Vudmlyb25tZW50Il0NCiAgICB9DQogIF0sDQogICJmb3VuZGF0aW9ucyI6IFsNCiAgICB7Imlk
IjoicG93ZXJzaGVsbCIsInBvbGljeSI6IndpbmRvd3MtaW5ib3giLCJtaW5pbXVtVmVyc2lvbiI6
IjUuMSIsInZlcmlmeSI6WyIkUFNWZXJzaW9uVGFibGUuUFNWZXJzaW9uIl19LA0KICAgIHsiaWQi
OiJ3aW5nZXQiLCJwYWNrYWdlSWQiOiJNaWNyb3NvZnQuQXBwSW5zdGFsbGVyIiwidmVyc2lvbiI6
IjEuMjkuMjkwIiwicG9saWN5IjoicmV1c2Utb3Itb2ZmaWNpYWwtcmVwYWlyIn0sDQogICAgeyJp
ZCI6ImdpdCIsInBhY2thZ2VJZCI6IkdpdC5HaXQiLCJ2ZXJzaW9uIjoiMi41NC4wLndpbmRvd3Mu
MSIsInBvbGljeSI6ImV4YWN0LXdpbmdldCJ9LA0KICAgIHsiaWQiOiJub2RlIiwicGFja2FnZUlk
IjoiT3BlbkpTLk5vZGVKUy5MVFMiLCJ2ZXJzaW9uIjoiMjQuMTcuMCIsInBvbGljeSI6ImV4YWN0
LXdpbmdldCJ9LA0KICAgIHsiaWQiOiJweXRob24iLCJwYWNrYWdlSWQiOiJQeXRob24uUHl0aG9u
LjMuMTIiLCJ2ZXJzaW9uIjoiMy4xMi4xMCIsInBvbGljeSI6ImV4YWN0LXdpbmdldCJ9LA0KICAg
IHsNCiAgICAgICJpZCI6InV2IiwNCiAgICAgICJ2ZXJzaW9uIjoiMC4xMS4yMSIsDQogICAgICAi
c291cmNlIjoiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzLzNkLzUxL2U2
ODJlMDYwODEzNDI0NDY3ZjE0YWU5NjRkZDcwMjJmOGZjNTM3ZmVhNTgwM2I1YWFiMGJhMWVjYTlj
Yy91di0wLjExLjIxLXB5My1ub25lLXdpbl9hbWQ2NC53aGwiLA0KICAgICAgICAic2hhMjU2Ijoi
ZDk1NmJhOTQ3MGQ1MjY3Y2MwZWEzZDc1NzJjYWMzYmYwNDViYzc4YWRhZDViMDMxYjU1NThjNmRm
MTNkMmUxOSIsDQogICAgICAgICJsaWNlbnNlIjoiQXBhY2hlLTIuMCBPUiBNSVQiLA0KICAgICAg
ICAiY2Fub25pY2FsUmVsYXRpdmVQYXRoIjoiX2FnZW50L3NoYXJlZC90b29scy91di8wLjExLjIx
Ig0KICAgIH0sDQogICAgew0KICAgICAgImlkIjoiYWdlIiwNCiAgICAgICJ2ZXJzaW9uIjoiMS4z
LjEiLA0KICAgICAgInNvdXJjZSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9GaWxvU290dGlsZS9hZ2Uv
cmVsZWFzZXMvZG93bmxvYWQvdjEuMy4xL2FnZS12MS4zLjEtd2luZG93cy1hbWQ2NC56aXAiLA0K
ICAgICAgInNoYTI1NiI6ImM1NmU4Y2UyMmY3ZTgwY2I4NWFkOTQ2Y2M4MmQxOTg3NjdiMDU2MzY2
MjAxZDNlMWEyYjkzZDg2NWJlMzgxNTQiLA0KICAgICAgImxpY2Vuc2UiOiJCU0QtMy1DbGF1c2Ui
LA0KICAgICAgImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6Il9hZ2VudC9zaGFyZWQvdG9vbHMvYWdl
LzEuMy4xIg0KICAgIH0sDQogICAgew0KICAgICAgImlkIjoiY2xhdWRlLWNvZGUiLA0KICAgICAg
ImNoYW5uZWwiOiJvZmZpY2lhbC1zdGFibGUiLA0KICAgICAgIm1pbmltdW1WZXJzaW9uIjoiMi4x
LjI0MSIsDQogICAgICAiaW5zdGFsbCI6Im9mZmljaWFsLW5hdGl2ZS1pbnN0YWxsZXIiLA0KICAg
ICAgInJlY29yZE9ic2VydmVkQmluYXJ5SGFzaCI6dHJ1ZQ0KICAgIH0sDQogICAgew0KICAgICAg
ImlkIjoiY29kZXgtY2xpIiwNCiAgICAgICJjaGFubmVsIjoib2ZmaWNpYWwtc3RhYmxlIiwNCiAg
ICAgICJtaW5pbXVtVmVyc2lvbiI6IjAuMTQ5LjAiLA0KICAgICAgImZhbGxiYWNrUGFja2FnZSI6
IkBvcGVuYWkvY29kZXhAMC4xNDkuMCIsDQogICAgICAgICJmYWxsYmFja0ludGVncml0eSI6InNo
YTUxMi1pNGRyeWoyWTFqKzAwTWI1biswbjcxRVluVEs5L0tEYzJjZEZvL2RYRDBkMW9Ub2cyYmhV
c3NLREVJT25LbW5FZjUxUDBaL0hKVFd2VEt3L1VIeU92UT09IiwNCiAgICAgICAgImZhbGxiYWNr
Q2Fub25pY2FsUmVsYXRpdmVQYXRoIjoiX2FnZW50L3NoYXJlZC90b29scy9jb2RleC8wLjE0OS4w
IiwNCiAgICAgICAgInJlY29yZE9ic2VydmVkQmluYXJ5SGFzaCI6dHJ1ZQ0KICAgIH0NCiAgXSwN
CiAgInB5dGhvblJ1bnRpbWVzIjogWw0KICAgIHsNCiAgICAgICJpZCI6ICJkb2N1bWVudC1tY3Ai
LA0KICAgICAgInB5dGhvblZlcnNpb24iOiAiMy4xMiIsDQogICAgICAicmVxdWlyZW1lbnRzSW5S
ZWxhdGl2ZVBhdGgiOiAibWFuaWZlc3RzL3B5dGhvbi1sb2Nrcy9kb2N1bWVudC1tY3AvcmVxdWly
ZW1lbnRzLmluIiwNCiAgICAgICJyZXF1aXJlbWVudHNJblNoYTI1NiI6ICIxNDc2ZmI3Y2M4ZTcz
Y2U0ZmFlMjcwMWM3YTMwOGQxN2M2MjNjMGQ5ZWNhODBjNGRjYmFhMGVhYTI4ZDgxNjM5IiwNCiAg
ICAgICJyZXF1aXJlbWVudHNMb2NrUmVsYXRpdmVQYXRoIjogIm1hbmlmZXN0cy9weXRob24tbG9j
a3MvZG9jdW1lbnQtbWNwL3JlcXVpcmVtZW50cy5sb2NrIiwNCiAgICAgICJyZXF1aXJlbWVudHNM
b2NrU2hhMjU2IjogImEyMDg1YzI0YWYzMGIyYjIwMzI3NjRmNmViODdiZmM0YWEyNjFlNzEwZTQz
M2MzZjdjYTQ2MWI0NDU3YTIyOGYiLA0KICAgICAgIndoZWVsaG91c2VSZWxhdGl2ZVBhdGgiOiAi
X2FnZW50L3NoYXJlZC90b29scy9weXRob24td2hlZWxob3VzZS9kb2N1bWVudC1tY3AtdjciLA0K
ICAgICAgInJ1bnRpbWVSZWxhdGl2ZVBhdGgiOiAiX2FnZW50L3J1bnRpbWUvaG9zdHMvPGhvc3Q+
L3ZlbnZzL2RvY3VtZW50LW1jcC12NyIsDQogICAgICAiZXhwZWN0ZWRQYWNrYWdlQ291bnQiOiA0
MywNCiAgICAgICJpbnN0YWxsUG9saWN5IjogIm9mZmxpbmUtaGFzaC1sb2NrZWQtd2hlZWxob3Vz
ZSINCiAgICB9DQogIF0sDQogICJleHRlbnNpb25zIjogWw0KICAgIHsNCiAgICAgICJpZCI6InN1
cGVycG93ZXJzIiwNCiAgICAgICJ2ZXJzaW9uIjoiNi4zLjAiLA0KICAgICAgInNvdXJjZSI6Imh0
dHBzOi8vZ2l0aHViLmNvbS9vYnJhL3N1cGVycG93ZXJzLmdpdCIsDQogICAgICAidGFnT2JqZWN0
IjoiODZiYWJiNjk2ODc1MjI3OTI5ZTg1NDIwZjI4N2Q2MzA5Mzc0YjkzZiIsDQogICAgICAiY29t
bWl0IjoiYjM2ZTA4MjljNmQwMTQwZTkzY2ZlZjJjYTU5OWIxYjA3ZDRhNzc5NyIsDQogICAgICAi
ZXhwZWN0ZWRTa2lsbENvdW50IjoxNCwNCiAgICAgICJjYW5vbmljYWxSZWxhdGl2ZVBhdGgiOiJf
YWdlbnQvc2hhcmVkL3NraWxscy9zdXBlcnBvd2Vycy92Ni4zLjAiLA0KICAgICAgImxpY2Vuc2Ui
OiJNSVQiLA0KICAgICAgImVudiI6eyJTVVBFUlBPV0VSU19ESVNBQkxFX1RFTEVNRVRSWSI6IjEi
fSwNCiAgICAgICJjbGF1ZGVBZGFwdGVyIjp7InR5cGUiOiJsb2NhbC1wbHVnaW4tbWFya2V0cGxh
Y2UiLCJzY29wZSI6InVzZXIiLCJwbHVnaW4iOiJzdXBlcnBvd2VycyJ9LA0KICAgICAgImNvZGV4
QWRhcHRlciI6eyJ0eXBlIjoibG9jYWwtc2tpbGxzIiwicmVwb3J0TmFtZSI6IlN1cGVycG93ZXJz
IHNraWxsIHNldCJ9LA0KICAgICAgInZlcmlmeSI6WyJyZXNvbHZlZC1wYXRocyIsInRyZWUtaGFz
aCIsInNraWxsLWNvdW50Iiwibm8tc2hhZG93LTUuMS4zIl0NCiAgICB9LA0KICAgIHsNCiAgICAg
ICJpZCI6InNlbGYtaW1wcm92ZSIsDQogICAgICAidmVyc2lvbiI6IjAuMS4wIiwNCiAgICAgICJz
b3VyY2UiOiJodHRwczovL2dpdGh1Yi5jb20vRmV5bm1hbjUyMC9kMDYtcDAxLXNlbGYtaW1wcm92
ZS5naXQiLA0KICAgICAgImNvbW1pdCI6IjZlNzYxYjc2MzcxMGI3ODAxMjhkZTE0NGE3OWZjYjM3
ZjM3ZWQ4YjYiLA0KICAgICAgImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6Il9hZ2VudC9zaGFyZWQv
dG9vbHMvc2VsZi1pbXByb3ZlLzAuMS4wIiwNCiAgICAgICJsaWNlbnNlIjoiTUlUIiwNCiAgICAg
ICJlbnRyeSI6InNlcnZlci9pbmRleC5qcyIsDQogICAgICAiY2xhdWRlQWRhcHRlciI6eyJ0eXBl
IjoibG9jYWwtcGx1Z2luLXdpdGgtbWNwIiwic2NvcGUiOiJ1c2VyIn0sDQogICAgICAiY29kZXhB
ZGFwdGVyIjp7InR5cGUiOiJzdGRpby1tY3AiLCJjb21tYW5kIjoibm9kZSIsImFyZ3MiOlsiPGNh
bm9uaWNhbD4vc2VydmVyL2luZGV4LmpzIl19LA0KICAgICAgImVudiI6eyJTRUxGX0lNUFJPVkVf
RElSIjoiX2FnZW50L3NoYXJlZC9zZWxmLWltcHJvdmVtZW50In0sDQogICAgICAidmVyaWZ5Ijpb
Im1jcC1pbml0aWFsaXplIiwidG9vbHMtbGlzdC00Il0NCiAgICB9LA0KICAgIHsNCiAgICAgICJp
ZCI6InBsYXl3cmlnaHQtbWNwIiwNCiAgICAgICJ2ZXJzaW9uIjoiMC4wLjc5IiwNCiAgICAgICJw
YWNrYWdlIjoiQHBsYXl3cmlnaHQvbWNwQDAuMC43OSIsDQogICAgICAic291cmNlIjoiaHR0cHM6
Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHBsYXl3cmlnaHQvbWNwLy0vbWNwLTAuMC43OS50Z3oiLA0K
ICAgICAgImludGVncml0eSI6InNoYTUxMi1WcHFENGEzdkZ5R1FNWTlzaDNVSmlPNndqY3VyZ2dr
bGpLZkF5Q0hMMFFXR1k1bTZFaHIzTU5zQUFIUERITy8vbjEzZzBQQ2pwSGF0QU9pdWxycWRaUT09
IiwNCiAgICAgICJucG1QYWNrYWdlSnNvblJlbGF0aXZlUGF0aCI6Im1hbmlmZXN0cy9ucG0tbG9j
a3MvcGxheXdyaWdodC1tY3AvcGFja2FnZS5qc29uIiwNCiAgICAgICJucG1QYWNrYWdlSnNvblNo
YTI1NiI6ImZhMmQ3ODMzYzMzOGFhMjE4NzdiYjVlNzc0ZDU2OTYxY2ZmODUxYjc3ODk1OWE4NzI5
YTlkZTY2NTA2YzMyMTAiLA0KICAgICAgIm5wbUxvY2tSZWxhdGl2ZVBhdGgiOiJtYW5pZmVzdHMv
bnBtLWxvY2tzL3BsYXl3cmlnaHQtbWNwL3BhY2thZ2UtbG9jay5qc29uIiwNCiAgICAgICJucG1M
b2NrU2hhMjU2IjoiZjg1MTEwMThkNDhmMjNiMzYwODRhOTEzNGQ2ZmM3MGUyYjIzY2NhMzI0YTNk
NGJhMDEzNTNjNTkxMzUxMjFiZCIsDQogICAgICAiY2Fub25pY2FsUmVsYXRpdmVQYXRoIjoiX2Fn
ZW50L3NoYXJlZC90b29scy9ucG0vcGxheXdyaWdodC1tY3AvMC4wLjc5IiwNCiAgICAgICJsaWNl
bnNlIjoiQXBhY2hlLTIuMCIsDQogICAgICAiZW50cnkiOiJub2RlX21vZHVsZXMvQHBsYXl3cmln
aHQvbWNwL2NsaS5qcyIsDQogICAgICAiY2xhdWRlQWRhcHRlciI6eyJ0eXBlIjoic3RkaW8tbWNw
IiwibmFtZSI6InBsYXl3cmlnaHQifSwNCiAgICAgICJjb2RleEFkYXB0ZXIiOnsidHlwZSI6InN0
ZGlvLW1jcCIsIm5hbWUiOiJwbGF5d3JpZ2h0In0sDQogICAgICAidmVyaWZ5IjpbIm1jcC1pbml0
aWFsaXplIiwicHVibGljLWxvY2FsLWZpeHR1cmUiXQ0KICAgIH0sDQogICAgew0KICAgICAgImlk
Ijoiay1za2lsbCIsDQogICAgICAidmVyc2lvbiI6IjAuNC4zIiwNCiAgICAgICJwYWNrYWdlIjoi
QG5vbWFkYW1hcy9rLXNraWxsQDAuNC4zIiwNCiAgICAgICJzb3VyY2UiOiJodHRwczovL3JlZ2lz
dHJ5Lm5wbWpzLm9yZy9Abm9tYWRhbWFzL2stc2tpbGwvLS9rLXNraWxsLTAuNC4zLnRneiIsDQog
ICAgICAiaW50ZWdyaXR5Ijoic2hhNTEyLVl5RzVuSzVhM2xqU2h6WjdOaXlUU0FaN3JidlgzY2hY
RnVyL0g3Q3lsSGJ3OHVwWCtnaWMzbWlCL0NpSlJyeXFiV1VBSVk4Nmk3TEROUEtoQmRGWVNBPT0i
LA0KICAgICAgIm5wbVBhY2thZ2VKc29uUmVsYXRpdmVQYXRoIjoibWFuaWZlc3RzL25wbS1sb2Nr
cy9rLXNraWxsL3BhY2thZ2UuanNvbiIsDQogICAgICAibnBtUGFja2FnZUpzb25TaGEyNTYiOiJj
NjEyNTk1MzdjYTA1NzIyM2M5ZmY5ZWM0OTIxZmQ4ZjZlMTU1ZjNiY2E3YWQyMTE5MzQ5NjdlNzkw
MDcwZWFjIiwNCiAgICAgICJucG1Mb2NrUmVsYXRpdmVQYXRoIjoibWFuaWZlc3RzL25wbS1sb2Nr
cy9rLXNraWxsL3BhY2thZ2UtbG9jay5qc29uIiwNCiAgICAgICJucG1Mb2NrU2hhMjU2IjoiOTdj
OGMwYTgzMjU5ZGI1MWYyMmViYjM4Mzk1OTAyOTZiNmRlOTE1YWIwYjg2YTcxZDk2ZWZhNzZkYzNm
NmM2NSIsDQogICAgICAic2tpbGxTb3VyY2UiOiJodHRwczovL2dpdGh1Yi5jb20vTm9tYURhbWFz
L2stc2tpbGwuZ2l0IiwNCiAgICAgICJza2lsbFNvdXJjZUNvbW1pdCI6ImU2YTM5OTY4ZTVkZDc2
YjYxMzBmMjZlM2NjYzU4YTEyZDVlNjgxMWMiLA0KICAgICAgInNraWxsU3ViZGlyIjoiLiIsDQog
ICAgICAiZXhwZWN0ZWRTa2lsbENvdW50IjoxMTgsDQogICAgICAiY2Fub25pY2FsUmVsYXRpdmVQ
YXRoIjoiX2FnZW50L3NoYXJlZC9za2lsbHMvay1za2lsbC92MC40LjMiLA0KICAgICAgImxpY2Vu
c2UiOiJNSVQiLA0KICAgICAgImNsYXVkZUFkYXB0ZXIiOnsidHlwZSI6ImxvY2FsLXNraWxscy1s
aW5rcyJ9LA0KICAgICAgImNvZGV4QWRhcHRlciI6eyJ0eXBlIjoibG9jYWwtc2tpbGxzLWxpbmtz
In0sDQogICAgICAidmVyaWZ5IjpbInNraWxsLWNvdW50IiwicmVzb2x2ZWQtcGF0aHMiLCJ0cmVl
LWhhc2giXQ0KICAgIH0sDQogICAgew0KICAgICAgImlkIjoiZnJvbnRlbmQtZGVzaWduIiwNCiAg
ICAgICJzb3VyY2UiOiJodHRwczovL2dpdGh1Yi5jb20vYW50aHJvcGljcy9jbGF1ZGUtcGx1Z2lu
cy1vZmZpY2lhbC5naXQiLA0KICAgICAgImNvbW1pdCI6IjM0MGUzM2FlZjIxMWQ5NTc2OWQyNTIz
MjQ4NTQ0OTdhZjg3MWRhZmUiLA0KICAgICAgImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6Il9hZ2Vu
dC9zaGFyZWQvdG9vbHMvY2xhdWRlL2Zyb250ZW5kLWRlc2lnbi8zNDBlMzNhIiwNCiAgICAgICJs
aWNlbnNlIjoiQXBhY2hlLTIuMCIsDQogICAgICAiY2xhdWRlQWRhcHRlciI6eyJ0eXBlIjoibG9j
YWwtcGx1Z2luLW1hcmtldHBsYWNlIiwic2NvcGUiOiJ1c2VyIn0sDQogICAgICAidmVyaWZ5Ijpb
InBsdWdpbi1yZXNvbHZlZC1wYXRoIiwic2tpbGwtbG9hZCJdDQogICAgfSwNCiAgICB7DQogICAg
ICAiaWQiOiJpbnNhbmUtc2VhcmNoIiwNCiAgICAgICJ2ZXJzaW9uIjoiMC4xNC4xIiwNCiAgICAg
ICJzb3VyY2UiOiJodHRwczovL2dpdGh1Yi5jb20vZml2ZXRha3UvaW5zYW5lLXNlYXJjaC5naXQi
LA0KICAgICAgImNvbW1pdCI6IjA5Y2FjNTcxNTQ1Zjg4ZTU2ZGNlMjM3ZjAyZmZlODliOTIzZjFi
ZDQiLA0KICAgICAgImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6Il9hZ2VudC9zaGFyZWQvdG9vbHMv
Y2xhdWRlL2luc2FuZS1zZWFyY2gvMC4xNC4xIiwNCiAgICAgICJsaWNlbnNlIjoiTUlUIiwNCiAg
ICAgICJjbGF1ZGVBZGFwdGVyIjp7InR5cGUiOiJsb2NhbC1wbHVnaW4tbWFya2V0cGxhY2UiLCJz
Y29wZSI6InVzZXIifSwNCiAgICAgICJ2ZXJpZnkiOlsicGx1Z2luLXJlc29sdmVkLXBhdGgiLCJs
b2NhbC1maXh0dXJlLXNlYXJjaCJdDQogICAgfSwNCiAgICB7DQogICAgICAiaWQiOiJ1aS11eC1w
cm8tbWF4IiwNCiAgICAgICJ2ZXJzaW9uIjoiMi4xNS4wIiwNCiAgICAgICJwYWNrYWdlIjoidWkt
dXgtcHJvLW1heC1jbGlAMi4xNS4wIiwNCiAgICAgICJzb3VyY2UiOiJodHRwczovL3JlZ2lzdHJ5
Lm5wbWpzLm9yZy91aS11eC1wcm8tbWF4LWNsaS8tL3VpLXV4LXByby1tYXgtY2xpLTIuMTUuMC50
Z3oiLA0KICAgICAgImludGVncml0eSI6InNoYTUxMi1EMEovQzQweHJ6emk1c2k2Wkx0UkdiRUU1
djNRakw3ZDR3Sk5uYXNtUDN5ZkRTckdpdXFWQ2R3UWlxQ05uSWticU91Vm9BL3VvblIybzFXS1ho
M3Vydz09IiwNCiAgICAgICJucG1QYWNrYWdlSnNvblJlbGF0aXZlUGF0aCI6Im1hbmlmZXN0cy9u
cG0tbG9ja3MvdWktdXgtcHJvLW1heC9wYWNrYWdlLmpzb24iLA0KICAgICAgIm5wbVBhY2thZ2VK
c29uU2hhMjU2IjoiNzAyMTM5ZTY5YTg1ZWQ4Yjc5ZjYxMTZlYjI3NjEyOTlkOTE2ZWRmYTZhMTUx
ODE1ZjM2MDUyNDk5NmQ3YjE5YyIsDQogICAgICAibnBtTG9ja1JlbGF0aXZlUGF0aCI6Im1hbmlm
ZXN0cy9ucG0tbG9ja3MvdWktdXgtcHJvLW1heC9wYWNrYWdlLWxvY2suanNvbiIsDQogICAgICAi
bnBtTG9ja1NoYTI1NiI6IjA0OTAxZThhYTIxNTVhZTRjYWZjMDE4ODFhNzQyNzZmYjE3MDMyNzQ2
ZWE5ZGIwMmFkODZkMGYwNjc1ZTlhYTAiLA0KICAgICAgImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6
Il9hZ2VudC9zaGFyZWQvdG9vbHMvbnBtL3VpLXV4LXByby1tYXgvMi4xNS4wIiwNCiAgICAgICJs
aWNlbnNlIjoiTUlUIENMSSBtZXRhZGF0YTsgYnVuZGxlZCBza2lsbCBhc3NldHMgc3RhdGUgQ0Mt
QlktTkMtNC4wIGluIHBhY2thZ2UgUkVBRE1FIiwNCiAgICAgICJlbnRyeSI6Im5vZGVfbW9kdWxl
cy91aS11eC1wcm8tbWF4LWNsaS9kaXN0L2luZGV4LmpzIiwNCiAgICAgICJjb2RleEFkYXB0ZXIi
OnsidHlwZSI6ImNsaS1nZW5lcmF0ZS1za2lsbCIsImFyZ3MiOlsiaW5pdCIsIi0tYWkiLCJjb2Rl
eCIsIi0tb2ZmbGluZSJdfSwNCiAgICAgICJ2ZXJpZnkiOlsicmVzb2x2ZWQtcGF0aCIsInNraWxs
LWxvYWQiXQ0KICAgIH0sDQogICAgew0KICAgICAgImlkIjoiaHdwLWF1dG9tYXRpb24iLCJzb3Vy
Y2UiOiJodHRwczovL2dpdGh1Yi5jb20vRmV5bm1hbjUyMC9kMDEtcDAxLWh3cC1mb3JtLWF1dG9t
YXRpb24tbWNwLmdpdCIsImNvbW1pdCI6IjgyNWY4YTEzZGJhMDg3NmY0ZjhlODEyMjJjMWUzNTE1
NWJjNjhlOGUiLCJjYW5vbmljYWxSZWxhdGl2ZVBhdGgiOiJfYWdlbnQvc2hhcmVkL3Rvb2xzL2Rv
Y3VtZW50LW1jcC9od3AvODI1ZjhhMSIsImxpY2Vuc2UiOiJNSVQiLCJlbnRyeSI6InNlcnZlci5w
eSIsInJlcXVpcmVzIjpbIkhhbmd1bCBPZmZpY2UiXSwiYWRhcHRlcnMiOlsiY2xhdWRlLXN0ZGlv
LW1jcCIsImNvZGV4LXN0ZGlvLW1jcCJdLCJ2ZXJpZnkiOlsibWNwLWluaXRpYWxpemUiXX0sDQog
ICAgew0KICAgICAgImlkIjoiZXhjZWwtYXV0b21hdGlvbiIsInNvdXJjZSI6Imh0dHBzOi8vZ2l0
aHViLmNvbS9GZXlubWFuNTIwL2QwMS1wMDItZXhjZWwtZW5naW5lLW1jcC5naXQiLCJjb21taXQi
OiI0Njg0YmIxN2E4ZDFmMTYwZGZlN2IxOGUyYTQ1NGVjYjk0N2RhNzRlIiwiY2Fub25pY2FsUmVs
YXRpdmVQYXRoIjoiX2FnZW50L3NoYXJlZC90b29scy9kb2N1bWVudC1tY3AvZXhjZWwvNDY4NGJi
MSIsImxpY2Vuc2UiOiJNSVQiLCJlbnRyeSI6InNlcnZlci5weSIsInJlcXVpcmVzIjpbIk1pY3Jv
c29mdCBFeGNlbCJdLCJhZGFwdGVycyI6WyJjbGF1ZGUtc3RkaW8tbWNwIiwiY29kZXgtc3RkaW8t
bWNwIl0sInZlcmlmeSI6WyJtY3AtaW5pdGlhbGl6ZSJdfSwNCiAgICB7DQogICAgICAiaWQiOiJw
cHQtYXV0b21hdGlvbiIsInNvdXJjZSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9GZXlubWFuNTIwL2Qw
MS1wMDMtcHB0LWVuZ2luZS1tY3AuZ2l0IiwiY29tbWl0IjoiMzJlYzRkODBjMmYzZmZkMTBlNTAx
NzU4M2M1NzI5N2I4ZTZhOTA0MSIsImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6Il9hZ2VudC9zaGFy
ZWQvdG9vbHMvZG9jdW1lbnQtbWNwL3BwdC8zMmVjNGQ4IiwibGljZW5zZSI6Ik1JVCIsImVudHJ5
Ijoic2VydmVyLnB5IiwicmVxdWlyZXMiOlsiTWljcm9zb2Z0IFBvd2VyUG9pbnQiXSwiYWRhcHRl
cnMiOlsiY2xhdWRlLXN0ZGlvLW1jcCIsImNvZGV4LXN0ZGlvLW1jcCJdLCJ2ZXJpZnkiOlsibWNw
LWluaXRpYWxpemUiXX0sDQogICAgew0KICAgICAgImlkIjoid29yZC1hdXRvbWF0aW9uIiwic291
cmNlIjoiaHR0cHM6Ly9naXRodWIuY29tL0ZleW5tYW41MjAvZDAxLXAwNC13b3JkLWVuZ2luZS1t
Y3AuZ2l0IiwiY29tbWl0IjoiZThmZTU5OTBjZmM5Y2FhOWE3NTI3NmNjNzNhZTQwOTA2NDE1NDY4
NCIsImNhbm9uaWNhbFJlbGF0aXZlUGF0aCI6Il9hZ2VudC9zaGFyZWQvdG9vbHMvZG9jdW1lbnQt
bWNwL3dvcmQvZThmZTU5OSIsImxpY2Vuc2UiOiJNSVQiLCJlbnRyeSI6InNlcnZlci5weSIsInJl
cXVpcmVzIjpbIk1pY3Jvc29mdCBXb3JkIl0sImFkYXB0ZXJzIjpbImNsYXVkZS1zdGRpby1tY3Ai
LCJjb2RleC1zdGRpby1tY3AiXSwidmVyaWZ5IjpbIm1jcC1pbml0aWFsaXplIl19LA0KICAgIHsN
CiAgICAgICJpZCI6InBkZi1hdXRvbWF0aW9uIiwic291cmNlIjoiaHR0cHM6Ly9naXRodWIuY29t
L0ZleW5tYW41MjAvZDAxLXAwNS1wZGYtZW5naW5lLW1jcC5naXQiLCJjb21taXQiOiJiOGFjZjQ3
YjQwODhhZWVkMTQ5ODNmYWM1Y2ExNDUyYTcyZmI1NTU5IiwiY2Fub25pY2FsUmVsYXRpdmVQYXRo
IjoiX2FnZW50L3NoYXJlZC90b29scy9kb2N1bWVudC1tY3AvcGRmL2I4YWNmNDciLCJsaWNlbnNl
IjoiTUlUIiwiZW50cnkiOiJzZXJ2ZXIucHkiLCJyZXF1aXJlcyI6W10sImFkYXB0ZXJzIjpbImNs
YXVkZS1zdGRpby1tY3AiLCJjb2RleC1zdGRpby1tY3AiXSwidmVyaWZ5IjpbIm1jcC1pbml0aWFs
aXplIl19DQogIF0sDQogICJleGNsdWRlZCI6IFsNCiAgICB7ImlkIjoib3BlbmFpLXRlbXBsYXRl
cyIsImFjdGlvbiI6ImRvLW5vdC1pbnN0YWxsIn0sDQogICAgeyJpZCI6ImRvY3VtZW50LXNraWxs
cyIsImFjdGlvbiI6InByZXNlcnZlLWJ5dGVzLWRpc2FibGUtYWRhcHRlciJ9DQogIF0NCn0NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/map-generator.ps1","encoding":"base64","size":8769,"runtimeSha256":"2dabab94d023d246da09c718fe229f8e21c66aa91b794930c01d96ad55fa01e3","normalizedSha256":"cf1da548dfece215730411757c62e41ec88278d06d626a8c4fa26e3b22190e97"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KPCMNCi5TWU5PUFNJUw0KICDsmIHtmLwg7Y+0642U
7J2YIFIvRC9QL1MvVCDqtazsobDrpbwg64uo7J28IOyYpO2UhOudvOyduCBIVE1MIOyngOuPhOuh
nCDri6Tsi5wg66eM65Og64ukLg0KDQouREVTQ1JJUFRJT04NCiAg7Iqk7YGs66a97Yq4IOychOy5
mOyXkOyEnCDsmIHtmLwg66Oo7Yq466W8IOywvuqzoCwg6rSA66asIO2PtOuNlOunjCBuby1mb2xs
b3cg67Cp7Iud7Jy866GcIOydveuKlOuLpC4NCiAg7Yq57KCVIOyYge2YvCDsnbTrpoTsnbTrgpgg
7IKs7Jqp7J6QIOqyveuhnOulvCDtlZjrk5zsvZTrlKntlZjsp4Ag7JWK64qU64ukLg0KIz4NCltD
bWRsZXRCaW5kaW5nKCldDQpwYXJhbSgNCiAgICBbc3RyaW5nXSRTb3VsUm9vdCwNCiAgICBbc3Ry
aW5nXSRPdXRwdXRQYXRoLA0KICAgIFtzd2l0Y2hdJFNlbGZUZXN0DQopDQoNClNldC1TdHJpY3RN
b2RlIC1WZXJzaW9uIExhdGVzdA0KJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICdTdG9wJw0KDQok
bW9kdWxlUGF0aCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdlbmdpbmVcU291bC5FbmdpbmUu
cHNtMScNCmlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRtb2R1bGVQYXRoIC1QYXRo
VHlwZSBMZWFmKSkgew0KICAgIHRocm93ICLqs7XthrUg7IS47YyFIOyXlOynhOydhCDssL7sp4Ag
66q77ZaI7Iq164uI64ukOiAkbW9kdWxlUGF0aCINCn0NCkltcG9ydC1Nb2R1bGUgLU5hbWUgJG1v
ZHVsZVBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQoNCmZ1bmN0aW9uIENvbnZlcnRUby1I
dG1sVGV4dCB7DQogICAgcGFyYW0oW0FsbG93TnVsbCgpXVtzdHJpbmddJFRleHQpDQogICAgaWYg
KCRudWxsIC1lcSAkVGV4dCkgeyByZXR1cm4gJycgfQ0KICAgIHJldHVybiBbU3lzdGVtLk5ldC5X
ZWJVdGlsaXR5XTo6SHRtbEVuY29kZSgkVGV4dCkNCn0NCg0KZnVuY3Rpb24gR2V0LU1hbmFnZWRM
ZXZlbCB7DQogICAgcGFyYW0oW3N0cmluZ10kTmFtZSkNCiAgICBpZiAoJE5hbWUgLW1hdGNoICde
UlxkezJ9KD86XC5cZHsyfSk/LScpIHsgcmV0dXJuICdSJyB9DQogICAgaWYgKCROYW1lIC1tYXRj
aCAnXlteRFxcXSpEXGR7Mn0oPzpcLlxkezJ9KT8tJykgeyByZXR1cm4gJ0QnIH0NCiAgICBpZiAo
JE5hbWUgLW1hdGNoICdeUFxkezJ9KD86XC5cZHsyfSk/LScpIHsgcmV0dXJuICdQJyB9DQogICAg
aWYgKCROYW1lIC1tYXRjaCAnXlNcZHsyfSg/OlwuXGR7Mn0pPy0nKSB7IHJldHVybiAnUycgfQ0K
ICAgIGlmICgkTmFtZSAtbWF0Y2ggJ15UXGR7Mn0oPzpcLlxkezJ9KT8tJykgeyByZXR1cm4gJ1Qn
IH0NCiAgICByZXR1cm4gJG51bGwNCn0NCg0KZnVuY3Rpb24gR2V0LUNoaWxkTWFuYWdlZERpcmVj
dG9yaWVzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXJlbnQsIFtzdHJpbmddJEV4cGVjdGVkTGV2
ZWwpDQogICAgJGl0ZW1zID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkUGFyZW50IC1E
aXJlY3RvcnkgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wKQ0KICAgICRyZXN1bHQgPSBOZXctT2Jq
ZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVhY2gg
KCRpdGVtIGluICRpdGVtcykgew0KICAgICAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQg
W0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyBjb250aW51ZSB9DQog
ICAgICAgICRsZXZlbCA9IEdldC1NYW5hZ2VkTGV2ZWwgLU5hbWUgJGl0ZW0uTmFtZQ0KICAgICAg
ICBpZiAoJGxldmVsIC1lcSAkRXhwZWN0ZWRMZXZlbCkgeyAkcmVzdWx0LkFkZCgkaXRlbSkgfQ0K
ICAgIH0NCiAgICByZXR1cm4gQCgkcmVzdWx0IHwgU29ydC1PYmplY3QgTmFtZSkNCn0NCg0KZnVu
Y3Rpb24gTmV3LU1hcE5vZGUgew0KICAgIHBhcmFtKFtJTy5EaXJlY3RvcnlJbmZvXSREaXJlY3Rv
cnksIFtzdHJpbmddJExldmVsLCBbc3RyaW5nXSRSb290KQ0KICAgICRuZXh0ID0gQHsgUiA9ICdE
JzsgRCA9ICdQJzsgUCA9ICdTJzsgUyA9ICdUJzsgVCA9ICRudWxsIH1bJExldmVsXQ0KICAgICRj
aGlsZHJlbiA9IEAoKQ0KICAgIGlmICgkbnVsbCAtbmUgJG5leHQpIHsNCiAgICAgICAgZm9yZWFj
aCAoJGNoaWxkIGluIEdldC1DaGlsZE1hbmFnZWREaXJlY3RvcmllcyAtUGFyZW50ICREaXJlY3Rv
cnkuRnVsbE5hbWUgLUV4cGVjdGVkTGV2ZWwgJG5leHQpIHsNCiAgICAgICAgICAgICRjaGlsZHJl
biArPSBOZXctTWFwTm9kZSAtRGlyZWN0b3J5ICRjaGlsZCAtTGV2ZWwgJG5leHQgLVJvb3QgJFJv
b3QNCiAgICAgICAgfQ0KICAgIH0NCiAgICAkcmVsYXRpdmUgPSAkRGlyZWN0b3J5LkZ1bGxOYW1l
LlN1YnN0cmluZygkUm9vdC5MZW5ndGgpLlRyaW1TdGFydCgnXCcpLlJlcGxhY2UoJ1wnLCAnLycp
DQogICAgW29yZGVyZWRdQHsNCiAgICAgICAgbmFtZSA9ICREaXJlY3RvcnkuTmFtZQ0KICAgICAg
ICBsZXZlbCA9ICRMZXZlbA0KICAgICAgICBwYXRoID0gJHJlbGF0aXZlDQogICAgICAgIGNoaWxk
cmVuID0gJGNoaWxkcmVuDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQtTWFwVHJlZSB7DQogICAg
cGFyYW0oW3N0cmluZ10kUm9vdCkNCiAgICAkbm9kZXMgPSBAKCkNCiAgICBmb3JlYWNoICgkcm9s
ZSBpbiBHZXQtQ2hpbGRNYW5hZ2VkRGlyZWN0b3JpZXMgLVBhcmVudCAkUm9vdCAtRXhwZWN0ZWRM
ZXZlbCAnUicpIHsNCiAgICAgICAgJG5vZGVzICs9IE5ldy1NYXBOb2RlIC1EaXJlY3RvcnkgJHJv
bGUgLUxldmVsICdSJyAtUm9vdCAkUm9vdA0KICAgIH0NCiAgICByZXR1cm4gJG5vZGVzDQp9DQoN
CmZ1bmN0aW9uIEdldC1Ob2RlQ291bnQgew0KICAgIHBhcmFtKCROb2RlcykNCiAgICAkY291bnQg
PSAwDQogICAgZm9yZWFjaCAoJG5vZGUgaW4gQCgkTm9kZXMpKSB7DQogICAgICAgICRjb3VudCsr
DQogICAgICAgICRjb3VudCArPSBHZXQtTm9kZUNvdW50IC1Ob2RlcyAkbm9kZS5jaGlsZHJlbg0K
ICAgIH0NCiAgICByZXR1cm4gJGNvdW50DQp9DQoNCmZ1bmN0aW9uIE5ldy1NYXBIdG1sIHsNCiAg
ICBwYXJhbShbc3RyaW5nXSROYW1lLCAkVHJlZSwgW2ludF0kQ291bnQpDQogICAgJGpzb24gPSAk
VHJlZSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA2NCAtQ29tcHJlc3MNCiAgICAkc2FmZU5hbWUg
PSBDb252ZXJ0VG8tSHRtbFRleHQgJE5hbWUNCiAgICAkZ2VuZXJhdGVkID0gW0RhdGVUaW1lXTo6
Tm93LlRvU3RyaW5nKCd5eXl5LU1NLWRkIEhIOm1tJykNCiAgICByZXR1cm4gQCINCjwhZG9jdHlw
ZSBodG1sPg0KPGh0bWwgbGFuZz0ia28iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2Nh
bGU9MSI+DQo8dGl0bGU+JHNhZmVOYW1lIOq1rOyhsOyngOuPhDwvdGl0bGU+DQo8c3R5bGU+DQo6
cm9vdHtjb2xvci1zY2hlbWU6bGlnaHQgZGFyazstLWJnOiNmNWY3ZmI7LS1jYXJkOiNmZmY7LS1p
bms6IzE3MjAzMzstLW11dGVkOiM2NDc0OGI7LS1saW5lOiNkOGUwZWM7LS1hY2NlbnQ6IzM4NTlk
Nn0NCkBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXs6cm9vdHstLWJnOiMxMTE4Mjc7
LS1jYXJkOiMxZjI5Mzc7LS1pbms6I2YzZjRmNjstLW11dGVkOiNhYWI0YzQ7LS1saW5lOiMzNzQx
NTE7LS1hY2NlbnQ6IzhhYTRmZn19DQoqe2JveC1zaXppbmc6Ym9yZGVyLWJveH1ib2R5e21hcmdp
bjowO2JhY2tncm91bmQ6dmFyKC0tYmcpO2NvbG9yOnZhcigtLWluayk7Zm9udC1mYW1pbHk6Ik1h
bGd1biBHb3RoaWMiLCLrp5HsnYAg6rOg65SVIixzYW5zLXNlcmlmO2xpbmUtaGVpZ2h0OjEuNTV9
DQptYWlue21heC13aWR0aDoxMTAwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjI4cHggMThweCA2
MHB4fWhlYWRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzMwNDdhOCwjNTY3
N2VkKTtjb2xvcjp3aGl0ZTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoyNnB4O2JveC1zaGFk
b3c6MCAxNHB4IDMycHggIzEzMjY1YjMzfQ0KaDF7bWFyZ2luOjAgMCA4cHg7Zm9udC1zaXplOmNs
YW1wKDI1cHgsNHZ3LDQycHgpfWhlYWRlciBwe21hcmdpbjowO29wYWNpdHk6Ljl9LnRvb2xze2Rp
c3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjoxOHB4IDB9DQpidXR0b24s
aW5wdXR7Zm9udDppbmhlcml0fWJ1dHRvbntib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2Jh
Y2tncm91bmQ6dmFyKC0tY2FyZCk7Y29sb3I6dmFyKC0taW5rKTtib3JkZXItcmFkaXVzOjEwcHg7
cGFkZGluZzo5cHggMTNweDtjdXJzb3I6cG9pbnRlcn1pbnB1dHtmbGV4OjE7bWluLXdpZHRoOjIy
MHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtj
b2xvcjp2YXIoLS1pbmspO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjEwcHggMTNweH0NCiN0
cmVle2JhY2tncm91bmQ6dmFyKC0tY2FyZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTti
b3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzoxNnB4O2JveC1zaGFkb3c6MCA4cHggMjRweCAjMTQy
MTNkMTJ9Lm5vZGV7bWFyZ2luOjRweCAwfS5yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNl
bnRlcjtnYXA6OHB4O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6NnB4fS5yb3c6aG92ZXJ7YmFj
a2dyb3VuZDojN2Q5M2QyMTd9LnR3aXN0eXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O3BhZGRpbmc6
MH0ubGVhZntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyOHB4O3RleHQtYWxpZ246Y2VudGVy
O2NvbG9yOnZhcigtLW11dGVkKX0uYmFkZ2V7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAw
O2NvbG9yOndoaXRlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3JkZXItcmFkaXVzOjk5OXB4
O3BhZGRpbmc6MnB4IDdweH0ubmFtZXtmb250LXdlaWdodDo2NTB9LnBhdGh7Y29sb3I6dmFyKC0t
bXV0ZWQpO2ZvbnQtc2l6ZToxMnB4O21hcmdpbi1sZWZ0OmF1dG87b3ZlcmZsb3ctd3JhcDphbnl3
aGVyZX0uY2hpbGRyZW57bWFyZ2luLWxlZnQ6MjRweDtib3JkZXItbGVmdDoxcHggc29saWQgdmFy
KC0tbGluZSk7cGFkZGluZy1sZWZ0OjEwcHh9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmVtcHR5e3Bh
ZGRpbmc6MjhweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjp2YXIoLS1tdXRlZCl9Zm9vdGVye2Nv
bG9yOnZhcigtLW11dGVkKTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOjE2cHg7Zm9udC1z
aXplOjEycHh9DQo8L3N0eWxlPjwvaGVhZD48Ym9keT48bWFpbj48aGVhZGVyPjxoMT4kc2FmZU5h
bWUg6rWs7KGw7KeA64+EPC9oMT48cD7sl63tlaAg4oaSIOu2hOyVvCDihpIg7ZSE66Gc7KCd7Yq4
IOKGkiDri6jqs4Qg4oaSIOyEuOu2gCDsnpHsl4XsnYQg7Iuk7KCcIO2PtOuNlOyXkOyEnCDsnpDr
j5nsnLzroZwg7J297J2AIOyngOuPhOyeheuLiOuLpC48L3A+PC9oZWFkZXI+DQo8ZGl2IGNsYXNz
PSJ0b29scyI+PGJ1dHRvbiBpZD0ib3BlbkFsbCI+66qo65GQIO2OvOy5mOq4sDwvYnV0dG9uPjxi
dXR0b24gaWQ9ImNsb3NlQWxsIj7rqqjrkZAg7KCR6riwPC9idXR0b24+PGlucHV0IGlkPSJzZWFy
Y2giIHBsYWNlaG9sZGVyPSLsnbTrpoTsnbTrgpgg6rK966GcIOqygOyDiSI+PC9kaXY+DQo8c2Vj
dGlvbiBpZD0idHJlZSI+PC9zZWN0aW9uPjxmb290ZXI+7J6Q64+ZIOyDneyEsSAkZ2VuZXJhdGVk
IMK3IOq0gOumrCDrhbjrk5wgJHtDb3VudH3qsJwgwrcg7Jm467aAIOyXsOqysCDsl4bsnYw8L2Zv
b3Rlcj48L21haW4+DQo8c2NyaXB0Pg0KJ3VzZSBzdHJpY3QnO2NvbnN0IFRSRUU9JGpzb247Y29u
c3Qgcm9vdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJlZScpOw0KY29uc3QgZXNjPXM9Pntj
b25zdCBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2QudGV4dENvbnRlbnQ9cztyZXR1
cm4gZC5pbm5lckhUTUx9Ow0KZnVuY3Rpb24gZHJhdyhub2Rlcyxob3N0KXtpZighbm9kZXMubGVu
Z3RoKXtob3N0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW1wdHkiPuyVhOyngSDsirnsnbjrkJwg
7J6R7JeFIO2PtOuNlOqwgCDsl4bsirXri4jri6QuPC9kaXY+JztyZXR1cm59bm9kZXMuZm9yRWFj
aChuPT57Y29uc3QgYm94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2JveC5jbGFzc05h
bWU9J25vZGUnO2JveC5kYXRhc2V0LnRleHQ9KG4ubmFtZSsnICcrbi5wYXRoKS50b0xvd2VyQ2Fz
ZSgpO2NvbnN0IHJvdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtyb3cuY2xhc3NOYW1l
PSdyb3cnO2NvbnN0IGhhcz1uLmNoaWxkcmVuJiZuLmNoaWxkcmVuLmxlbmd0aDtyb3cuaW5uZXJI
VE1MPShoYXM/JzxidXR0b24gY2xhc3M9InR3aXN0eSIgYXJpYS1sYWJlbD0i7KCR6riwIj7iiJI8
L2J1dHRvbj4nOic8c3BhbiBjbGFzcz0ibGVhZiI+wrc8L3NwYW4+JykrJzxzcGFuIGNsYXNzPSJi
YWRnZSI+Jytlc2Mobi5sZXZlbCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibmFtZSI+Jytlc2Mobi5u
YW1lKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJwYXRoIj4nK2VzYyhuLnBhdGgpKyc8L3NwYW4+Jzti
b3guYXBwZW5kQ2hpbGQocm93KTtpZihoYXMpe2NvbnN0IGtpZHM9ZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7a2lkcy5jbGFzc05hbWU9J2NoaWxkcmVuJztkcmF3KG4uY2hpbGRyZW4sa2lk
cyk7Ym94LmFwcGVuZENoaWxkKGtpZHMpO3Jvdy5xdWVyeVNlbGVjdG9yKCdidXR0b24nKS5vbmNs
aWNrPWU9PntraWRzLmNsYXNzTGlzdC50b2dnbGUoJ2hpZGRlbicpO2UuY3VycmVudFRhcmdldC50
ZXh0Q29udGVudD1raWRzLmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJyk/JysnOifiiJInfX1o
b3N0LmFwcGVuZENoaWxkKGJveCl9KX0NCmRyYXcoVFJFRSxyb290KTtkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3BlbkFsbCcpLm9uY2xpY2s9KCk9PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Jy5jaGlsZHJlbicpLmZvckVhY2goeD0+eC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKSk7ZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb3NlQWxsJykub25jbGljaz0oKT0+ZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnLmNoaWxkcmVuJykuZm9yRWFjaCh4PT54LmNsYXNzTGlzdC5hZGQoJ2hp
ZGRlbicpKTsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2gnKS5vbmlucHV0PWU9Pntj
b25zdCBxPWUudGFyZ2V0LnZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO2RvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJy5ub2RlJykuZm9yRWFjaCh4PT54LnN0eWxlLmRpc3BsYXk9IXF8fHguZGF0
YXNldC50ZXh0LmluY2x1ZGVzKHEpfHx4LnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVk
ZXMocSk/Jyc6J25vbmUnKX07DQo8L3NjcmlwdD48L2JvZHk+PC9odG1sPg0KIkANCn0NCg0KaWYg
KCRTZWxmVGVzdCkgew0KICAgICRzYW1wbGVzID0gQCgnUjAxLVJvbGUnLCAnR1JPVVAtRDAyLURv
bWFpbicsICdQMDEtUHJvamVjdCcsICdTMDEtU3RlcCcsICdUMDEtVGFzaycsICdfYWdlbnQnKQ0K
ICAgICRhY3R1YWwgPSBAKCRzYW1wbGVzIHwgRm9yRWFjaC1PYmplY3QgeyBHZXQtTWFuYWdlZExl
dmVsICRfIH0pDQogICAgaWYgKCgkYWN0dWFsWzAuLjRdIC1qb2luICcnKSAtbmUgJ1JEUFNUJyAt
b3IgJG51bGwgLW5lICRhY3R1YWxbNV0pIHsgdGhyb3cgJ+2PtOuNlCDri6jqs4Qg7YyQ7KCVIOyL
nO2XmOyXkCDsi6TtjKjtlojsirXri4jri6QuJyB9DQogICAgJGh0bWwgPSBOZXctTWFwSHRtbCAt
TmFtZSAn7Iuc7ZeYJyAtVHJlZSBAKCkgLUNvdW50IDANCiAgICBpZiAoJGh0bWwgLW5vdG1hdGNo
ICc8IWRvY3R5cGUgaHRtbD4nIC1vciAkaHRtbCAtbWF0Y2ggJ2h0dHBzPzovLycpIHsgdGhyb3cg
J+yYpO2UhOudvOyduCBIVE1MIOyLnO2XmOyXkCDsi6TtjKjtlojsirXri4jri6QuJyB9DQogICAg
W3BzY3VzdG9tb2JqZWN0XUB7IGNvbXBvbmVudCA9ICdtYXAtZ2VuZXJhdG9yJzsgc3RhdHVzID0g
J1BBU1MnOyB0ZXN0cyA9IEAoJ2xldmVscycsJ29mZmxpbmUtaHRtbCcpIH0NCiAgICBleGl0IDAN
Cn0NCg0KJHJvb3RQYXRoID0gaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFNvdWxS
b290KSkgeyBHZXQtU291bFJvb3QgfSBlbHNlIHsgQXNzZXJ0LVNvdWxSb290IC1QYXRoICRTb3Vs
Um9vdCAtUmVxdWlyZUluaXRpYWxpemVkIH0NCiRyb290UGF0aCA9IEFzc2VydC1Tb3VsUm9vdCAt
UGF0aCAkcm9vdFBhdGggLVJlcXVpcmVJbml0aWFsaXplZA0KJGRpc3BsYXlOYW1lID0gU3BsaXQt
UGF0aCAtTGVhZiAkcm9vdFBhdGgNCiR0YXJnZXQgPSBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hp
dGVTcGFjZSgkT3V0cHV0UGF0aCkpIHsgSm9pbi1QYXRoICRyb290UGF0aCAoJGRpc3BsYXlOYW1l
ICsgJy3qtazsobDsp4Drj4QuaHRtbCcpIH0gZWxzZSB7IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgo
JE91dHB1dFBhdGgpIH0NClt2b2lkXShBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkdGFyZ2V0
KQ0KJHRyZWUgPSBHZXQtTWFwVHJlZSAtUm9vdCAkcm9vdFBhdGgNCiRjb3VudCA9IEdldC1Ob2Rl
Q291bnQgLU5vZGVzICR0cmVlDQokaHRtbCA9IE5ldy1NYXBIdG1sIC1OYW1lICRkaXNwbGF5TmFt
ZSAtVHJlZSAkdHJlZSAtQ291bnQgJGNvdW50DQpXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAk
dGFyZ2V0IC1UZXh0ICRodG1sDQpbcHNjdXN0b21vYmplY3RdQHsgc3RhdHVzID0gJ2dlbmVyYXRl
ZCc7IG91dHB1dFBhdGggPSAkdGFyZ2V0OyBub2RlQ291bnQgPSAkY291bnQgfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/AGENTS.md","encoding":"base64","size":193,"runtimeSha256":"567416c6329b67164f165a0011df89802455cbce6c0f977b258ff4c9982387ea","normalizedSha256":"567416c6329b67164f165a0011df89802455cbce6c0f977b258ff4c9982387ea"} -->
```base64
IyDsmKjthqjroZzsp4Agdjgg67Cw7Y+sIOustuydjAoK7ISk7LmYIOyghCDsm5Drs7jsnYQg67O0
6rSA7ZWc64ukLiDsp4HsoJEg7Iuk7ZaJ7ZWY7KeAIOyViuqzoCDsg4HsnIQgaW5zdGFsbC1vbnRv
bG9neS12OC5weeuhnCDrsLDsuZjtlZzri6QuCgo8IS0tIOyDgeychCBBR0VOVFMubWQg6rec7LmZ
IOyerOyEnOyIoCDquIjsp4AgLS0+Cg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/CLAUDE.md","encoding":"base64","size":11,"runtimeSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZAo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/AGENTS.md","encoding":"base64","size":150,"runtimeSha256":"9ef5f55f1f458ff76b92037976d4a957c939aad1b9514390d505f469e2d4761d","normalizedSha256":"9ef5f55f1f458ff76b92037976d4a957c939aad1b9514390d505f469e2d4761d"} -->
```base64
IyDrsLDtj6wg7JuQ67O4CgptYW5pZmVzdC5qc29u7J20IOyngOygle2VnCDrqqnsoIHsp4Dsl5Ag
67O17IKs65CY64qUIOy9lOuTnMK366y47IScIOybkOuzuOydtOuLpC4KCjwhLS0g7IOB7JyEIEFH
RU5UUy5tZCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT4K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/CLAUDE.md","encoding":"base64","size":11,"runtimeSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZAo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_cleanup-AGENTS.md","encoding":"base64","size":165,"runtimeSha256":"c37205574e0df2a442321a3fb4d1421a036af0b4f7c958e40df831c288439caa","normalizedSha256":"c37205574e0df2a442321a3fb4d1421a036af0b4f7c958e40df831c288439caa"} -->
```base64
IyBfY2xlYW51cAoK7Jio7Yao66Gc7KeAIOqygOyCrCDrpqztj6ztirjrpbwg67O06rSA7ZWc64uk
LiDrpqztj6ztirgg7ZWY7JyE64qUIOuPhOq1rOydmCDsnpDrj5kg7Lac66ClIOychOy5mOuLpC4K
CjwhLS0g7IOB7JyEIEFHRU5UUy5tZCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT4K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_cleanup-CLAUDE.md","encoding":"base64","size":11,"runtimeSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZAo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_map-generator-AGENTS.md","encoding":"base64","size":214,"runtimeSha256":"3c297a5936a5d20f381957e872d9bf855f5deddfa523fcc87a6d45825a2822cb","normalizedSha256":"3c297a5936a5d20f381957e872d9bf855f5deddfa523fcc87a6d45825a2822cb"} -->
```base64
IyBfbWFwLWdlbmVyYXRvcgoKX29udG9sb2d5L2dyYXBoLmpzb27snYQg7J297Ja0IDzsnpHsl4Xq
s7XqsIQg7J2066aEPi3qtazsobDsp4Drj4QuaHRtbOydhCDsspjsnYzrtoDthLAg7IOd7ISx7ZWY
64qUIOuPhOq1rOuLpC4g6re4656Y7ZSE66W8IOuovOyggCDqsLHsi6DtlZzri6QuCgo8IS0tIOyD
geychCBBR0VOVFMubWQg6rec7LmZIOyerOyEnOyIoCDquIjsp4AgLS0+Cg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_map-generator-CLAUDE.md","encoding":"base64","size":11,"runtimeSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZAo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_ontology-AGENTS.md","encoding":"base64","size":288,"runtimeSha256":"58ef0e3e7a5c19d515f5df582861fc1298a7f39005c0f3a6e028dfcc833bbe2d","normalizedSha256":"58ef0e3e7a5c19d515f5df582861fc1298a7f39005c0f3a6e028dfcc833bbe2d"} -->
```base64
IyBfb250b2xvZ3kKCuyYqO2GqOuhnOyngCDrj4TqtazCt+uTseuhneu2gMK36re4656Y7ZSE66W8
IOq0gOumrO2VnOuLpC4g7KCV7J2Y64qUIOujqO2KuCBJUklTLeyYqO2GqOuhnOyngC5tZOyXkCDs
nojri6QuIC0taW5pdOydgCDsubTrk5wg7LSI7JWI7J2ELCAtLWNvbXBpbGXsnYAg6re4656Y7ZSE
66W8IOyDneyEse2VnOuLpC4gZ3JhcGguanNvbuydgCDshpDsnLzroZwg7IiY7KCV7ZWY7KeAIOyV
iuuKlOuLpC4KCjwhLS0g7IOB7JyEIEFHRU5UUy5tZCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAt
LT4K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_ontology-CLAUDE.md","encoding":"base64","size":11,"runtimeSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZAo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_trash-AGENTS.md","encoding":"base64","size":156,"runtimeSha256":"c3c09f691fbb92166eb76f61e9b5c850d56b7216ddb9faf665ee61e67294ef5e","normalizedSha256":"c3c09f691fbb92166eb76f61e9b5c850d56b7216ddb9faf665ee61e67294ef5e"} -->
```base64
IyBfdHJhc2gKCuygleumrCDsnpHsl4XsnZgg6rKp66asIOyekOujjOulvCDrs7TqtIDtlZzri6Qu
IOyekOuPmeycvOuhnCDsnpDro4zrpbwg7IKt7KCc7ZWY7KeAIOyViuuKlOuLpC4KCjwhLS0g7IOB
7JyEIEFHRU5UUy5tZCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT4K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/_trash-CLAUDE.md","encoding":"base64","size":11,"runtimeSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZAo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/build_graph.py","encoding":"base64","size":26550,"runtimeSha256":"25b45e6c8f6f7ad576efa262c715e5112d6be5d991ca4258d5d651ba152982be","normalizedSha256":"77fa92094fc834090fa929ca2c137177da4b80503e41e99d26adcc06da0a2e80"} -->
```base64
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCiIiIklSSVMg7Jio7Yao66Gc7KeAIOy7tO2MjOydvOuf
rCDigJQg66i466as66eQKOy5tOuTnCkg7LSI7JWIIOyDneyEsSDCtyDqsoDspp0gwrcg6re4656Y
7ZSEIOy7tO2MjOydvC4NCg0K7KCV7J2Y7J2YIOygleuzuOydgCDro6jtirggSVJJUy3smKjthqjr
oZzsp4AubWQg64ukLiDsnbQg7Iqk7YGs66a97Yq464qUIOq3uCDrrLjshJzsnZggNS0xIOygleq3
nOyLnSDruJTroZ3snYQg7J297Ja0IOyTtOuLpCjsnpDquLAg7KCV6rec7IudIOyXhuydjCkuDQoN
CuyCrOyaqeuylQ0KICBweXRob24gX29udG9sb2d5L2J1aWxkX2dyYXBoLnB5IC0taW5pdCAgICAg
ICAgICAgICMgUsK3RMK3UCDrqLjrpqzrp5Ag7LSI7JWIIOuvuOumrOuztOq4sCDrpqztj6ztirgg
KyBJRCDrsLDsoJXtkZwgKEFHRU5UUy5tZCDsm5DrrLgg67O07KG0KQ0KICBweXRob24gX29udG9s
b2d5L2J1aWxkX2dyYXBoLnB5IC0taW5pdCAtLXdyaXRlICAgICMg66i466as66eQ7J2EIOqwgSBB
R0VOVFMubWQg66eoIOychOyXkCDsk7Tri6QgKO2MjOydvOuzhCAu7KCV66as67Cx7JeFIOyCrOuz
uCArIOyCrO2bhCDqsoDspp0pDQogIHB5dGhvbiBfb250b2xvZ3kvYnVpbGRfZ3JhcGgucHkgLS1j
b21waWxlICAgICAgICAgIyDrqLjrpqzrp5AgKyDtirjrpqwg7Iqk7LqUIOKGkiBfb250b2xvZ3kv
Z3JhcGguanNvbiAo6rGw7Jq4KQ0KICBweXRob24gX29udG9sb2d5L2J1aWxkX2dyYXBoLnB5IC0t
dmVyaWZ5LXdyaXRlICAgICMg7Lm065OcIO2MjOyLsSDsg4Htg5wg7ZmV7J24KOuzuOusuCDrsJTs
nbTtirgg67O07KG07J2AIC0taW5pdCAtLXdyaXRlIOuVjCDqsoDsgqwpDQoNCuybkOy5mSjrqoXs
hLjshJwgMOygiCk6IO2PtOuNlOuqheydtCDsm5Drs7gsIOy5tOuTnOuKlCDqsbDsmrggLyDqtIDq
s4TripQg7ZWc7Kq97JeQ66eMIC8g7IOB7YOcIOqwkuydgCDsubTrk5zsl5Ag7JeG64ukLg0K7J29
6riwIOyghOyaqSDshLHsp4g6IC0td3JpdGUg7JeG7J2064qUIOumrO2PrO2KuCAx6rCcKCsg7Iqk
7YGs656Y7LmYIElEIOuwsOygle2RnCnrp4wg7JO064ukLg0KIiIiDQppbXBvcnQgYXJncGFyc2UN
CmltcG9ydCBkYXRldGltZQ0KaW1wb3J0IGlvDQppbXBvcnQganNvbg0KaW1wb3J0IG9zDQppbXBv
cnQgcmFuZG9tDQppbXBvcnQgcmUNCmltcG9ydCBzaHV0aWwNCmltcG9ydCBzeXMNCmZyb20gcGF0
aGxpYiBpbXBvcnQgUGF0aA0KDQppbXBvcnQgeWFtbA0KDQppZiBoYXNhdHRyKHN5cy5zdGRvdXQs
ICJyZWNvbmZpZ3VyZSIpOg0KICAgIHN5cy5zdGRvdXQucmVjb25maWd1cmUoZW5jb2Rpbmc9InV0
Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikNCg0KUk9PVCA9IFBhdGgoX19maWxlX18pLnJlc29sdmUo
KS5wYXJlbnQucGFyZW50DQpTUEVDID0gUk9PVCAvICJJUklTLeyYqO2GqOuhnOyngC5tZCINCk9O
VCA9IFJPT1QgLyAiX29udG9sb2d5Ig0KUkVQT1JUX0RJUiA9IFJPT1QgLyAiX2NsZWFudXAiIC8g
IuumrO2PrO2KuCINClRSQVNIX0RJUiA9IFJPT1QgLyAiX3RyYXNoIg0KVE9EQVkgPSBkYXRldGlt
ZS5kYXRlLnRvZGF5KCkuaXNvZm9ybWF0KCkNClNUQU1QID0gVE9EQVkucmVwbGFjZSgiLSIsICIi
KQ0KSURfVEFCTEUgPSBPTlQgLyAiaWQtYWxsb2NhdGlvbi50c3YiICAjIOuvuOumrOuztOq4sOKG
lOyLpOygnCDsk7DquLAg7IKs7J20IElEIOqzoOygleyaqS4g7JOw6riwIO2bhCBncmFwaC5qc29u
IOydtCDsoJXrs7guDQoNClNLSVBfRElSUyA9IHsibm9kZV9tb2R1bGVzIiwgIi5naXQiLCAiLnZl
bnYiLCAidmVudiIsICJfX3B5Y2FjaGVfXyIsICIubmV4dCIsICIudHVyYm8iLCAiLmFzdHJvIiwN
CiAgICAgICAgICAgICAiLnZlcmNlbCIsICIud3JhbmdsZXIiLCAiZGlzdCIsICJidWlsZCIsICJv
dXQiLCAiLmNhY2hlIiwgIl90cmFzaCIsICJfYWdlbnQiLCAiX2JhY2t1cCJ9DQpGUkVFX1pPTkVf
TUFSS0VSUyA9IHsicGFja2FnZS5qc29uIiwgInB5cHJvamVjdC50b21sIiwgInRzY29uZmlnLmpz
b24iLCAiQ2FyZ28udG9tbCIsICJnby5tb2QiLA0KICAgICAgICAgICAgICAgICAgICAgIkRvY2tl
cmZpbGUiLCAicmVxdWlyZW1lbnRzLnR4dCIsICJwdWJzcGVjLnlhbWwiLCAid3JhbmdsZXIuanNv
bmMifQ0KIyBOZXcgd29ya3NwYWNlcyBoYXZlIG5vIHBlcnNvbmFsIGZvbGRlciBvdmVycmlkZXMu
IEV4aXN0aW5nIGNhcmRzIHJldGFpbiB0aGVpciB2YWx1ZXMuDQpGUk9aRU5fUkVMID0gc2V0KCkN
CktOT1dOX0FMSUFTRVMgPSB7fQ0KTEFEREVSX0RPTUFJTlMgPSBzZXQoKSAgIyBjaGVjayAjOCB1
c2VzIGVhY2ggcHJvamVjdCdzIGV4cGxpY2l0IGxhZGRlciBzdGF0dXNfc2NoZW1lLg0KVFJVVEhf
RklMRVMgPSBbKCLsl7Dqtazsnbzsp4AubWQiLCAi7Jew6rWs7J287KeALm1kI+2YhOyerC3sg4Ht
g5wiKSwNCiAgICAgICAgICAgICAgICgi7JeF66y07KeE7ZaJLeyytO2BrOumrOyKpO2KuC5tZCIs
ICLsl4XrrLTsp4Ttlokt7LK07YGs66as7Iqk7Yq4Lm1kIiksDQogICAgICAgICAgICAgICAoIl/q
soDsiJjrjIDsnqUoUmV2aWV3IExlZGdlcikubWQiLCAiX+qygOyImOuMgOyepShSZXZpZXcgTGVk
Z2VyKS5tZCIpXQ0KU09GVFdBUkVfVEFHUyA9IHsiV2ViIiwgIkFwcCIsICJNQ1AiLCAiTG9jYWwg
QXBwIiwgIlBsdWdpbiJ9DQpCT00gPSAiXHVmZWZmIg0KDQoNCmRlZiBhc3NlcnRfbG9jYWwocGF0
aCk6DQogICAgIiIiUmVqZWN0IGxpbmtlZCBwYXRocyBhbmQgYW55dGhpbmcgb3V0c2lkZSB0aGlz
IGluc3RhbGxlZCB3b3Jrc3BhY2UuIiIiDQogICAgcGF0aCA9IFBhdGgocGF0aCkuYWJzb2x1dGUo
KQ0KICAgIHRyeToNCiAgICAgICAgcGF0aC5yZWxhdGl2ZV90byhST09UKQ0KICAgICAgICBwYXRo
LnJlc29sdmUoKS5yZWxhdGl2ZV90byhST09UKQ0KICAgIGV4Y2VwdCBWYWx1ZUVycm9yOg0KICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKGYi7J6R7JeF6rO16rCEIOuwliDqsr3roZzripQg7LKY66as
7ZWY7KeAIOyViuydjDoge3BhdGh9IikNCiAgICBmb3IgaXRlbSBpbiBbcGF0aF0gKyBsaXN0KHBh
dGgucGFyZW50cyk6DQogICAgICAgIGlmIGl0ZW0gPT0gUk9PVDoNCiAgICAgICAgICAgIGJyZWFr
DQogICAgICAgIGlmIGl0ZW0uZXhpc3RzKCkgb3IgaXRlbS5pc19zeW1saW5rKCk6DQogICAgICAg
ICAgICBhdHRycyA9IGdldGF0dHIoaXRlbS5sc3RhdCgpLCAic3RfZmlsZV9hdHRyaWJ1dGVzIiwg
MCkNCiAgICAgICAgICAgIGlmIGl0ZW0uaXNfc3ltbGluaygpIG9yIGF0dHJzICYgMTAyNDoNCiAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYi7Jew6rKwIO2PtOuNlC/tjIzsnbwocmVw
YXJzZSBwb2ludCnsnYAg7LKY66as7ZWY7KeAIOyViuydjDoge2l0ZW19IikNCiAgICByZXR1cm4g
cGF0aA0KDQoNCmRlZiBhc3NlcnRfdHJlZV9sb2NhbChmb2xkZXIpOg0KICAgICIiIlJlYWQtb25s
eSBwcmVmbGlnaHQ7IG5ldmVyIGZvbGxvdyBhIHN5bWxpbmsgb3IganVuY3Rpb24uIiIiDQogICAg
YXNzZXJ0X2xvY2FsKGZvbGRlcikNCiAgICBpZiBub3QgZm9sZGVyLmlzX2RpcigpOg0KICAgICAg
ICByZXR1cm4NCiAgICBmb3IgZGlyZWN0b3J5LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGZvbGRl
ciwgZm9sbG93bGlua3M9RmFsc2UpOg0KICAgICAgICBkaXJzWzpdID0gW2QgZm9yIGQgaW4gZGly
cyBpZiBkIG5vdCBpbiBTS0lQX0RJUlMgYW5kIG5vdCBkLnN0YXJ0c3dpdGgoIi4iKV0NCiAgICAg
ICAgZm9yIG5hbWUgaW4gZGlycyArIGZpbGVzOg0KICAgICAgICAgICAgYXNzZXJ0X2xvY2FsKFBh
dGgoZGlyZWN0b3J5KSAvIG5hbWUpDQoNCg0KIyDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAg66qF7IS47IScIDUtMSDsoJXqt5zs
i50g66Gc65OcIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgA0KDQpkZWYgbG9hZF9uYW1pbmcoKToNCiAgICB0ZXh0ID0gYXNzZXJ0
X2xvY2FsKFNQRUMpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKQ0KICAgIG0gPSByZS5zZWFy
Y2gociJgYGB5YW1sXG4oIyBpcmlzLW5hbWluZy4qPylgYGAiLCB0ZXh0LCByZS5TKQ0KICAgIGlm
IG5vdCBtOg0KICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KCJJUklTLeyYqO2GqOuhnOyngC5tZCA1
LTEg7KCV6rec7IudIOu4lOuhneydhCDssL7sp4Ag66q77ZWoIikNCiAgICB5ID0geWFtbC5zYWZl
X2xvYWQobS5ncm91cCgxKSkNCiAgICBwYXRzID0ge2s6IHJlLmNvbXBpbGUodikgZm9yIGssIHYg
aW4geVsibmFtaW5nIl0uaXRlbXMoKSBpZiBpc2luc3RhbmNlKHYsIHN0cil9DQogICAgcmV0dXJu
IHBhdHMsIHlbInRhZ19raW5kcyJdDQoNCg0KTkFNSU5HLCBUQUdfS0lORFMgPSBsb2FkX25hbWlu
ZygpDQpMRVZFTF9PRiA9IHsxOiAicm9sZSIsIDI6ICJkb21haW4iLCAzOiAicHJvamVjdCIsIDQ6
ICJzdGVwIiwgNTogInRhc2sifQ0KVEFHX1JFID0gcmUuY29tcGlsZShyIuOAlihbXuOAluOAl10r
KeOAlyIpDQoNCg0KIyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIAg7Iqk7LqUIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQpkZWYgaGllcmFyY2h5X21hdGNo
KGxldmVsLCBuYW1lKToNCiAgICByZXR1cm4gYm9vbChOQU1JTkdbbGV2ZWxdLmZ1bGxtYXRjaChu
YW1lKSkgaWYgbGV2ZWwgaW4gTkFNSU5HIGVsc2UgRmFsc2UNCg0KDQpkZWYgY2xhc3NpZnlfdGFn
KGxldmVsLCByZWwsIHZhbHVlLCBpc19wcmVmaXgpOg0KICAgIGlmIGlzX3ByZWZpeDoNCiAgICAg
ICAgcmV0dXJuICLrj4TrqZTsnbgg6re466O5IOygkeuRkCINCiAgICBpZiBsZXZlbCA9PSAiZG9t
YWluIjoNCiAgICAgICAgcmV0dXJuICLshLjrtoDsmIHsl60iDQogICAgaWYgbGV2ZWwgPT0gInRh
c2siOg0KICAgICAgICByZXR1cm4gIu2VmeuFhOuwmMK367aE67CYIg0KICAgIGlmIHJlLmZ1bGxt
YXRjaChyIlxkezR964WEIFxk7ZWZ64WEIFxkK+uwmCIsIHZhbHVlKToNCiAgICAgICAgcmV0dXJu
ICLsl7Drj4TCt+2VmeuFhOuwmCINCiAgICBpZiByZS5mdWxsbWF0Y2gociJcZHs0feuFhChcLlxk
7ZWZ6riwfFsuIF0o7Jes66aEfOqyqOyauCnrsKntlZkpPyIsIHZhbHVlKToNCiAgICAgICAgcmV0
dXJuICLquLDqsIQv7Jew64+EIg0KICAgIGlmIHZhbHVlIGluIFNPRlRXQVJFX1RBR1M6DQogICAg
ICAgIHJldHVybiAi7IaM7ZSE7Yq47Juo7Ja0L+yCsOy2nOusvCDsooXrpZgiDQogICAgaWYgdmFs
dWUuZW5kc3dpdGgoIuyEoOyDneuLmCIpOg0KICAgICAgICByZXR1cm4gIuuLtOuLueyekCINCiAg
ICBpZiB2YWx1ZSBpbiB7IuuCqO2OuCIsICLslYTrgrQifToNCiAgICAgICAgcmV0dXJuICLqsIDs
obEg6rWs7ISx7JuQIg0KICAgIGlmIGxldmVsID09ICJwcm9qZWN0IjoNCiAgICAgICAgY2FyZCA9
IHJlYWRfZnJvbnRtYXR0ZXIoUk9PVCAvIHJlbCAvICJBR0VOVFMubWQiKSBvciB7fQ0KICAgICAg
ICBkZWNsYXJlZCA9IG5leHQoKHQuZ2V0KCJraW5kIikgZm9yIHQgaW4gY2FyZC5nZXQoInRhZ3Mi
LCBbXSkNCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHQsIGRpY3QpIGFu
ZCB0LmdldCgidmFsdWUiKSA9PSB2YWx1ZSksIE5vbmUpDQogICAgICAgIGlmIGRlY2xhcmVkIGlu
ICgi64W866y4IOuLqOychCIsICLtmZXsnqUg7Y+s7J247Yq4IiwgIuyEuOu2gCDsp4Dsl60iKToN
CiAgICAgICAgICAgIHJldHVybiBkZWNsYXJlZA0KICAgIHJldHVybiAi66+467aE66WYIg0KDQoN
CmRlZiBwYXJzZV90YWdzKGxldmVsLCByZWwpOg0KICAgIG5hbWUgPSBQYXRoKHJlbCkubmFtZQ0K
ICAgIHRhZ3MgPSBbXQ0KICAgIHByZWZpeCA9IHJlLm1hdGNoKHIiXijjgJZbXuOAluOAl10r44CX
KSg/PVtSRFBTVF1cZCkiLCBuYW1lKQ0KICAgIGZvciBtIGluIFRBR19SRS5maW5kaXRlcihuYW1l
KToNCiAgICAgICAgaXNfcHJlZml4ID0gYm9vbChwcmVmaXgpIGFuZCBtLnN0YXJ0KCkgPT0gMA0K
ICAgICAgICB0YWdzLmFwcGVuZCh7ImtpbmQiOiBjbGFzc2lmeV90YWcobGV2ZWwsIHJlbCwgbS5n
cm91cCgxKSwgaXNfcHJlZml4KSwgInZhbHVlIjogbS5ncm91cCgxKX0pDQogICAgcmV0dXJuIHRh
Z3MNCg0KDQpkZWYgY29kZV9vZihuYW1lKToNCiAgICBtID0gcmUuc2VhcmNoKHIiKD86XnzjgJcp
KFtSRFBTVF0oPzpcZHsyfXwwWCkoPzpcLlxkezJ9KT8pLSIsIG5hbWUpDQogICAgcmV0dXJuIG0u
Z3JvdXAoMSkgaWYgbSBlbHNlIE5vbmUNCg0KDQpkZWYgc2Nhbl9ub2RlcygpOg0KICAgICIiIlLC
t0TCt1Ag64W465OcKOy5tOuTnCDrjIDsg4Ep7JmAIOq3uCDslYTrnpgg7ISc656NwrfsnKDti7jC
t1MvVCDrpbwg66qo7J2A64ukLiIiIg0KICAgIG5vZGVzID0gW10NCiAgICBmb3Igcm9sZSBpbiBz
b3J0ZWQocCBmb3IgcCBpbiBST09ULml0ZXJkaXIoKSBpZiBwLmlzX2RpcigpIGFuZCBoaWVyYXJj
aHlfbWF0Y2goInJvbGUiLCBwLm5hbWUpKToNCiAgICAgICAgYXNzZXJ0X3RyZWVfbG9jYWwocm9s
ZSkNCiAgICAgICAgbm9kZXMuYXBwZW5kKG1ha2Vfbm9kZShyb2xlLCAicm9sZSIsIE5vbmUpKQ0K
ICAgICAgICBmb3IgZG9tIGluIHNvcnRlZChwIGZvciBwIGluIHJvbGUuaXRlcmRpcigpIGlmIHAu
aXNfZGlyKCkgYW5kIHAubmFtZSBub3QgaW4gU0tJUF9ESVJTKToNCiAgICAgICAgICAgIGlmIGhp
ZXJhcmNoeV9tYXRjaCgiZG9tYWluIiwgZG9tLm5hbWUpOg0KICAgICAgICAgICAgICAgIG5vZGVz
LmFwcGVuZChtYWtlX25vZGUoZG9tLCAiZG9tYWluIiwgcm9sZSkpDQogICAgICAgICAgICAgICAg
Zm9yIHByaiBpbiBzb3J0ZWQocCBmb3IgcCBpbiBkb20uaXRlcmRpcigpIGlmIHAuaXNfZGlyKCkg
YW5kIHAubmFtZSBub3QgaW4gU0tJUF9ESVJTKToNCiAgICAgICAgICAgICAgICAgICAgaWYgaGll
cmFyY2h5X21hdGNoKCJwcm9qZWN0IiwgcHJqLm5hbWUpOg0KICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZXMuYXBwZW5kKG1ha2Vfbm9kZShwcmosICJwcm9qZWN0IiwgZG9tKSkNCiAgICByZXR1
cm4gbm9kZXMNCg0KDQpkZWYgY2hpbGRyZW5fa2luZHMoZm9sZGVyLCBsZXZlbCk6DQogICAgIiIi
7J6Q7IudIO2PtOuNlOulvCDsnITqs4Qv7Jyg7Yu4L+yEnOuejS/siqTtgrUg7Jy866GcIOuCmOuI
iOuLpCAo7ISc656NID0g7JyE6rOE64+EIOycoO2LuOuPhCDslYTri4zrjbAg64K07Jqp7J20IOye
iOuKlCDtj7TrjZQpLiIiIg0KICAgIGNoaWxkX2xldmVsID0geyJyb2xlIjogImRvbWFpbiIsICJk
b21haW4iOiAicHJvamVjdCIsICJwcm9qZWN0IjogInN0ZXAiLCAic3RlcCI6ICJ0YXNrIn0uZ2V0
KGxldmVsKQ0KICAgIGRyYXdlcnMsIHV0aWxzLCBzdGVwcyA9IFtdLCBbXSwgW10NCiAgICBpZiBm
cmVlX3pvbmVfb2YoZm9sZGVyKToNCiAgICAgICAgcmV0dXJuIGRyYXdlcnMsIHV0aWxzLCBzdGVw
cyAgICMg7J6Q7Jyg6rWs7JetKOy9lOuTnCDsoIDsnqXshowpIOuCtOu2gOuKlCDsmKjthqjroZzs
p4Ag67CWDQogICAgdHJ5Og0KICAgICAgICBzdWJzID0gW3AgZm9yIHAgaW4gZm9sZGVyLml0ZXJk
aXIoKSBpZiBwLmlzX2RpcigpXQ0KICAgIGV4Y2VwdCBPU0Vycm9yOg0KICAgICAgICByZXR1cm4g
ZHJhd2VycywgdXRpbHMsIHN0ZXBzDQogICAgZm9yIHAgaW4gc3ViczoNCiAgICAgICAgbiA9IHAu
bmFtZQ0KICAgICAgICBpZiBuIGluIFNLSVBfRElSUyBvciBuLnN0YXJ0c3dpdGgoIi4iKToNCiAg
ICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIGlmIG4uc3RhcnRzd2l0aCgiXyIpOg0KICAgICAg
ICAgICAgdXRpbHMuYXBwZW5kKG4pDQogICAgICAgIGVsaWYgY2hpbGRfbGV2ZWwgYW5kIGhpZXJh
cmNoeV9tYXRjaChjaGlsZF9sZXZlbCwgbik6DQogICAgICAgICAgICBzdGVwcy5hcHBlbmQobikN
CiAgICAgICAgZWxpZiBmcmVlX3pvbmVfb2YocCkgb3IgKHAgLyAiLmdpdCIpLmV4aXN0cygpOg0K
ICAgICAgICAgICAgY29udGludWUgICAjIOykkeyyqSDsvZTrk5wg7KCA7J6l7IaMIOu/jOumrCDi
gJQg7ISc656NIOyVhOuLmCjqt7jrnpjtlITsl5DshJzripQgZnJlZV96b25lIOuFuOuTnOuhnOun
jCDst6jquIkpDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICAjIOuCtOyaqeycvOuhnCDtjJDs
oJU6IOustOyWuOqwgCjtjIzsnbwg65iQ64qUIO2VmOychCDtj7TrjZQpIOulvCDri7Tqs6Ag7J6I
7Jy866m0IOyEnOuejQ0KICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgIGhhc19jb250
ZW50ID0gYW55KFRydWUgZm9yIF8gaW4gcC5pdGVyZGlyKCkpDQogICAgICAgICAgICBleGNlcHQg
T1NFcnJvcjoNCiAgICAgICAgICAgICAgICBoYXNfY29udGVudCA9IEZhbHNlDQogICAgICAgICAg
ICBpZiBoYXNfY29udGVudDoNCiAgICAgICAgICAgICAgICBkcmF3ZXJzLmFwcGVuZChuKQ0KICAg
IHJldHVybiBkcmF3ZXJzLCB1dGlscywgc3RlcHMNCg0KDQpkZWYgc2NvcGVfb2YoZm9sZGVyKToN
CiAgICBzID0gW10NCiAgICBpZiAoZm9sZGVyIC8gIi5naXQiKS5leGlzdHMoKToNCiAgICAgICAg
cy5hcHBlbmQoImdpdCIpDQogICAgaWYgKGZvbGRlciAvICIubWNwLmpzb24iKS5leGlzdHMoKToN
CiAgICAgICAgcy5hcHBlbmQoIm1jcCIpDQogICAgaWYgKGZvbGRlciAvICIuY2xhdWRlIikuaXNf
ZGlyKCk6DQogICAgICAgIHMuYXBwZW5kKCJzZXR0aW5ncyIpDQogICAgcmV0dXJuIHMNCg0KDQpk
ZWYgZnJlZV96b25lX29mKGZvbGRlcik6DQogICAgdHJ5Og0KICAgICAgICBuYW1lcyA9IHtwLm5h
bWUgZm9yIHAgaW4gZm9sZGVyLml0ZXJkaXIoKX0NCiAgICBleGNlcHQgT1NFcnJvcjoNCiAgICAg
ICAgcmV0dXJuIEZhbHNlDQogICAgcmV0dXJuIGJvb2wobmFtZXMgJiBGUkVFX1pPTkVfTUFSS0VS
UykNCg0KDQpkZWYgc3RhdHVzX3NjaGVtZV9vZihmb2xkZXIsIGxldmVsLCBwYXJlbnQpOg0KICAg
IGNhcmQgPSByZWFkX2Zyb250bWF0dGVyKGZvbGRlciAvICJBR0VOVFMubWQiKSBvciB7fQ0KICAg
IGRlZmF1bHQgPSAidGFzazUiIGlmIGxldmVsID09ICJwcm9qZWN0IiBhbmQgdHJ1dGhfb2YoZm9s
ZGVyLCBsZXZlbCkgZWxzZSAibm9uZSINCiAgICByZXR1cm4gY2FyZC5nZXQoInN0YXR1c19zY2hl
bWUiLCBkZWZhdWx0KQ0KDQoNCmRlZiB0cnV0aF9vZihmb2xkZXIsIGxldmVsKToNCiAgICBpZiBs
ZXZlbCAhPSAicHJvamVjdCI6DQogICAgICAgIHJldHVybiBOb25lDQogICAgZm9yIGZuYW1lLCBh
bmNob3IgaW4gVFJVVEhfRklMRVM6DQogICAgICAgIGlmIChmb2xkZXIgLyBmbmFtZSkuZXhpc3Rz
KCk6DQogICAgICAgICAgICByZXR1cm4gYW5jaG9yDQogICAgcmV0dXJuIE5vbmUNCg0KDQpTT1VM
X0FMSUFTRVMgPSB7fSAgIyBOZXcgaXJpczogSURzIG5ldmVyIGRlcml2ZSBmcm9tIHY3IHNvdWwt
c3RhdGUgVVVJRHMuDQoNCg0KZGVmIG1ha2Vfbm9kZShmb2xkZXIsIGxldmVsLCBwYXJlbnQpOg0K
ICAgIGFzc2VydF9sb2NhbChmb2xkZXIpDQogICAgcmVsID0gZm9sZGVyLnJlbGF0aXZlX3RvKFJP
T1QpDQogICAgZHJhd2VycywgdXRpbHMsIHN0ZXBzID0gY2hpbGRyZW5fa2luZHMoZm9sZGVyLCBs
ZXZlbCkNCiAgICBpZiBsZXZlbCA9PSAicHJvamVjdCI6DQogICAgICAgIGZvciBzX25hbWUgaW4g
c3RlcHM6DQogICAgICAgICAgICBzX2RpciA9IGZvbGRlciAvIHNfbmFtZQ0KICAgICAgICAgICAg
ZDIsIF8sIHQyID0gY2hpbGRyZW5fa2luZHMoc19kaXIsICJzdGVwIikNCiAgICAgICAgICAgIGRy
YXdlcnMgKz0gW2Yie3NfbmFtZX0ve2R9IiBmb3IgZCBpbiBkMl0NCiAgICAgICAgICAgIGZvciB0
X25hbWUgaW4gdDI6DQogICAgICAgICAgICAgICAgZDMsIF8sIF8gPSBjaGlsZHJlbl9raW5kcyhz
X2RpciAvIHRfbmFtZSwgInRhc2siKQ0KICAgICAgICAgICAgICAgIGRyYXdlcnMgKz0gW2Yie3Nf
bmFtZX0ve3RfbmFtZX0ve2R9IiBmb3IgZCBpbiBkM10NCiAgICBub2RlID0gew0KICAgICAgICAi
cGF0aCI6IHN0cihyZWwpLA0KICAgICAgICAidHlwZSI6IGxldmVsLA0KICAgICAgICAiY29kZSI6
IGNvZGVfb2YoZm9sZGVyLm5hbWUpLA0KICAgICAgICAidGFncyI6IHBhcnNlX3RhZ3MobGV2ZWws
IHN0cihyZWwpKSwNCiAgICAgICAgInN0YXR1c19zY2hlbWUiOiBzdGF0dXNfc2NoZW1lX29mKGZv
bGRlciwgbGV2ZWwsIHBhcmVudCksDQogICAgICAgICJ0cnV0aCI6IHRydXRoX29mKGZvbGRlciwg
bGV2ZWwpLA0KICAgICAgICAic2NvcGVfYm91bmRhcnkiOiBzY29wZV9vZihmb2xkZXIpLA0KICAg
ICAgICAiZnJlZV96b25lIjogZnJlZV96b25lX29mKGZvbGRlciksDQogICAgICAgICJmcm96ZW4i
OiBib29sKChyZWFkX2Zyb250bWF0dGVyKGZvbGRlciAvICJBR0VOVFMubWQiKSBvciB7fSkuZ2V0
KCJmcm96ZW4iLCBGYWxzZSkpLA0KICAgICAgICAiZHJhd2VycyI6IGRyYXdlcnMsDQogICAgICAg
ICJ1dGlscyI6IHV0aWxzLA0KICAgICAgICAiY2hpbGRyZW4iOiBzdGVwcywNCiAgICAgICAgImFs
aWFzZXMiOiBsaXN0KGRpY3QuZnJvbWtleXMoS05PV05fQUxJQVNFUy5nZXQoc3RyKHJlbCksIFtd
KSArIFNPVUxfQUxJQVNFUy5nZXQoc3RyKHJlbCksIFtdKSkpLA0KICAgICAgICAiYWdlbnRzX21k
IjogKGZvbGRlciAvICJBR0VOVFMubWQiKS5leGlzdHMoKSwNCiAgICB9DQogICAgcmV0dXJuIG5v
ZGUNCg0KDQojIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgCBJRCDrsLDsoJUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCmRlZiBsb2FkX2lkX3RhYmxlKCk6
DQogICAgdGFibGUgPSB7fQ0KICAgIGFzc2VydF9sb2NhbChJRF9UQUJMRSkNCiAgICBpZiBJRF9U
QUJMRS5leGlzdHMoKToNCiAgICAgICAgZm9yIGxpbmUgaW4gSURfVEFCTEUucmVhZF90ZXh0KGVu
Y29kaW5nPSJ1dGYtOCIpLnNwbGl0bGluZXMoKToNCiAgICAgICAgICAgIGlmICJcdCIgaW4gbGlu
ZToNCiAgICAgICAgICAgICAgICBwLCBpID0gbGluZS5zcGxpdCgiXHQiLCAxKQ0KICAgICAgICAg
ICAgICAgIHRhYmxlW3BdID0gaQ0KICAgIHJldHVybiB0YWJsZQ0KDQoNCmRlZiBleGlzdGluZ19p
ZChmb2xkZXIpOg0KICAgIGZtID0gcmVhZF9mcm9udG1hdHRlcihmb2xkZXIgLyAiQUdFTlRTLm1k
IikNCiAgICByZXR1cm4gZm0uZ2V0KCJpZCIpIGlmIGZtIGVsc2UgTm9uZQ0KDQoNCmRlZiBhc3Np
Z25faWRzKG5vZGVzKToNCiAgICB0YWJsZSA9IGxvYWRfaWRfdGFibGUoKQ0KICAgIGtub3duX2lk
cyA9IFtleGlzdGluZ19pZChST09UIC8gblsicGF0aCJdKSBmb3IgbiBpbiBub2Rlc10NCiAgICBw
cmVzZW50ID0gW2kgZm9yIGkgaW4ga25vd25faWRzIGlmIGldDQogICAgaWYgbGVuKHNldChwcmVz
ZW50KSkgIT0gbGVuKHByZXNlbnQpOg0KICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJRCDspJHr
s7U6IOq4sOyhtCDsubTrk5zsnZggaXJpczogSUTqsIAg65GYIOydtOyDgSDtj7TrjZTsl5DshJwg
67CY67O165CoIikNCiAgICB1c2VkID0gc2V0KHRhYmxlLnZhbHVlcygpKSB8IHNldChwcmVzZW50
KQ0KICAgIHJuZyA9IHJhbmRvbS5TeXN0ZW1SYW5kb20oKQ0KICAgIGFscGhhYmV0ID0gImFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSINCiAgICBmb3IgbiBpbiBub2RlczoNCiAg
ICAgICAgZWlkID0gZXhpc3RpbmdfaWQoUk9PVCAvIG5bInBhdGgiXSkNCiAgICAgICAgaWYgZWlk
Og0KICAgICAgICAgICAgblsiaWQiXSA9IGVpZA0KICAgICAgICAgICAgdXNlZC5hZGQoZWlkKQ0K
ICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgaWYgblsicGF0aCJdIGluIHRhYmxlOg0KICAg
ICAgICAgICAgblsiaWQiXSA9IHRhYmxlW25bInBhdGgiXV0NCiAgICAgICAgICAgIGNvbnRpbnVl
DQogICAgICAgIHdoaWxlIFRydWU6DQogICAgICAgICAgICBjYW5kID0gImlyaXM6IiArICIiLmpv
aW4ocm5nLmNob2ljZShhbHBoYWJldCkgZm9yIF8gaW4gcmFuZ2UoOCkpDQogICAgICAgICAgICBp
ZiBjYW5kIG5vdCBpbiB1c2VkOg0KICAgICAgICAgICAgICAgIGJyZWFrDQogICAgICAgIHVzZWQu
YWRkKGNhbmQpDQogICAgICAgIHRhYmxlW25bInBhdGgiXV0gPSBjYW5kDQogICAgICAgIG5bImlk
Il0gPSBjYW5kDQogICAgYXNzZXJ0X2xvY2FsKElEX1RBQkxFKQ0KICAgIElEX1RBQkxFLndyaXRl
X3RleHQoIlxuIi5qb2luKGYie3B9XHR7aX0iIGZvciBwLCBpIGluIHRhYmxlLml0ZW1zKCkpLCBl
bmNvZGluZz0idXRmLTgiKQ0KICAgIGFzc2VydCBsZW4oc2V0KG5bImlkIl0gZm9yIG4gaW4gbm9k
ZXMpKSA9PSBsZW4obm9kZXMpLCAiSUQg7KSR67O1Ig0KDQoNCiMg4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIOuouOumrOunkCDs
nb3quLAv7JOw6riwIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgA0KDQpGTV9SRSA9IHJlLmNvbXBpbGUociJeXHVmZWZmPy0tLVxy
P1xuKC4qPylccj9cbi0tLVxyP1xuIiwgcmUuUykNCg0KDQpkZWYgcmVhZF9mcm9udG1hdHRlcihw
YXRoKToNCiAgICBhc3NlcnRfbG9jYWwocGF0aCkNCiAgICBpZiBub3QgcGF0aC5leGlzdHMoKToN
CiAgICAgICAgcmV0dXJuIE5vbmUNCiAgICB0ZXh0ID0gcGF0aC5yZWFkX2J5dGVzKCkuZGVjb2Rl
KCJ1dGYtOCIsIGVycm9ycz0icmVwbGFjZSIpDQogICAgbSA9IEZNX1JFLm1hdGNoKHRleHQpDQog
ICAgaWYgbm90IG06DQogICAgICAgIHJldHVybiBOb25lDQogICAgdHJ5Og0KICAgICAgICB2YWx1
ZSA9IHlhbWwuc2FmZV9sb2FkKG0uZ3JvdXAoMSkpDQogICAgICAgIHJldHVybiB2YWx1ZSBpZiBp
c2luc3RhbmNlKHZhbHVlLCBkaWN0KSBlbHNlIE5vbmUNCiAgICBleGNlcHQgeWFtbC5ZQU1MRXJy
b3I6DQogICAgICAgIHJldHVybiBOb25lDQoNCg0KZGVmIGJ1aWxkX2NhcmQobik6DQogICAgY2Fy
ZCA9IHsiaWQiOiBuWyJpZCJdLCAidHlwZSI6IG5bInR5cGUiXSwgImNvZGUiOiBuWyJjb2RlIl19
DQogICAgaWYgblsic3RhdHVzX3NjaGVtZSJdICE9ICJub25lIjoNCiAgICAgICAgY2FyZFsic3Rh
dHVzX3NjaGVtZSJdID0gblsic3RhdHVzX3NjaGVtZSJdDQogICAgaWYgblsidHJ1dGgiXToNCiAg
ICAgICAgY2FyZFsidHJ1dGgiXSA9IG5bInRydXRoIl0NCiAgICBjYXJkWyJsaWZlY3ljbGUiXSA9
ICJhY3RpdmUiDQogICAgZm9yIGsgaW4gKCJzY29wZV9ib3VuZGFyeSIsKToNCiAgICAgICAgaWYg
bltrXToNCiAgICAgICAgICAgIGNhcmRba10gPSBuW2tdDQogICAgaWYgblsiZnJlZV96b25lIl06
DQogICAgICAgIGNhcmRbImZyZWVfem9uZSJdID0gVHJ1ZQ0KICAgIGlmIG5bImZyb3plbiJdOg0K
ICAgICAgICBjYXJkWyJmcm96ZW4iXSA9IFRydWUNCiAgICBpZiBuWyJ0YWdzIl06DQogICAgICAg
IGNhcmRbInRhZ3MiXSA9IG5bInRhZ3MiXQ0KICAgIGlmIG5bImFsaWFzZXMiXToNCiAgICAgICAg
Y2FyZFsiYWxpYXNlcyJdID0gblsiYWxpYXNlcyJdDQogICAgaWYgblsiZHJhd2VycyJdOg0KICAg
ICAgICBjYXJkWyJkcmF3ZXJzIl0gPSBuWyJkcmF3ZXJzIl0NCiAgICBjYXJkWyJjcmVhdGVkIl0g
PSBUT0RBWSAgIyDsubTrk5zqsIAg7YOc7Ja064KcIOuCoC4g7Y+0642UIOyDneyEseydvOydtCDs
lYTri4jri6QuDQogICAgcmV0dXJuIGNhcmQNCg0KDQpkZWYgcmVuZGVyX2Zyb250bWF0dGVyKGNh
cmQsIG5ld2xpbmU9IlxuIik6DQogICAgYm9keSA9IHlhbWwuc2FmZV9kdW1wKGNhcmQsIGFsbG93
X3VuaWNvZGU9VHJ1ZSwgc29ydF9rZXlzPUZhbHNlLCBkZWZhdWx0X2Zsb3dfc3R5bGU9Tm9uZSwg
d2lkdGg9MjAwKQ0KICAgIHRleHQgPSAiLS0tXG4iICsgYm9keSArICItLS1cbiINCiAgICByZXR1
cm4gdGV4dC5yZXBsYWNlKCJcbiIsIG5ld2xpbmUpIGlmIG5ld2xpbmUgIT0gIlxuIiBlbHNlIHRl
eHQNCg0KDQpkZWYgc3RyaXBfYm9tKHRleHQpOg0KICAgIHJldHVybiB0ZXh0WzE6XSBpZiB0ZXh0
LnN0YXJ0c3dpdGgoQk9NKSBlbHNlIHRleHQNCg0KDQpkZWYgd3JpdGVfY2FyZHMobm9kZXMsIGxv
Z2ZpbGUpOg0KICAgIHdyaXR0ZW4gPSAwDQogICAgZm9yIG4gaW4gbm9kZXM6DQogICAgICAgIHAg
PSBST09UIC8gblsicGF0aCJdIC8gIkFHRU5UUy5tZCINCiAgICAgICAgaWYgbm90IHAuZXhpc3Rz
KCk6DQogICAgICAgICAgICBsb2dmaWxlLndyaXRlKGYiU0tJUChBR0VOVFMubWQg7JeG7J2MKVx0
e25bJ3BhdGgnXX1cbiIpDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICByYXcgPSBwLnJl
YWRfYnl0ZXMoKQ0KICAgICAgICB0ZXh0ID0gc3RyaXBfYm9tKHJhdy5kZWNvZGUoInV0Zi04Iiwg
ZXJyb3JzPSJyZXBsYWNlIikpDQogICAgICAgIGlmIEZNX1JFLm1hdGNoKHRleHQpOg0KICAgICAg
ICAgICAgbG9nZmlsZS53cml0ZShmIlNLSVAo66i466as66eQIOydtOuvuCDsnojsnYwpXHR7blsn
cGF0aCddfVxuIikNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIGJhY2t1cCA9IHAud2l0
aF9uYW1lKGYiQUdFTlRTLm1kLuygleumrOuwseyXhS17U1RBTVB9IikNCiAgICAgICAgYXNzZXJ0
X2xvY2FsKGJhY2t1cCkNCiAgICAgICAgaWYgYmFja3VwLmV4aXN0cygpOg0KICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcihmIuq4sOyhtCDrsLHsl4XsnYQg642u7Ja07JOw7KeAIOyViuydjDog
e2JhY2t1cH0iKQ0KICAgICAgICBzaHV0aWwuY29weTIocCwgYmFja3VwKQ0KICAgICAgICBubCA9
ICJcclxuIiBpZiAiXHJcbiIgaW4gdGV4dCBlbHNlICJcbiINCiAgICAgICAgbmV3ID0gcmVuZGVy
X2Zyb250bWF0dGVyKGJ1aWxkX2NhcmQobiksIG5sKSArIHRleHQNCiAgICAgICAgcC53cml0ZV9i
eXRlcyhuZXcuZW5jb2RlKCJ1dGYtOCIpKQ0KICAgICAgICAjIOyCrO2bhCDqsoDspp0o67CU7J20
7Yq4IOuLqOychCk6IOuouOumrOunkCDrlrzrqbQg7JuQ66y4KEJPTSDsoJzsmbgp6rO8IOuPmeyd
vO2VtOyVvA0KICAgICAgICBhZnRlciA9IHAucmVhZF9ieXRlcygpLmRlY29kZSgidXRmLTgiKQ0K
ICAgICAgICBhc3NlcnQgRk1fUkUubWF0Y2goYWZ0ZXIpLCBuWyJwYXRoIl0NCiAgICAgICAgYXNz
ZXJ0IEZNX1JFLnN1YigiIiwgYWZ0ZXIsIGNvdW50PTEpID09IHRleHQsIGYi67O466y4IOuztOyh
tCDsi6TtjKgge25bJ3BhdGgnXX0iDQogICAgICAgIGFzc2VydCByZWFkX2Zyb250bWF0dGVyKHAp
WyJpZCJdID09IG5bImlkIl0NCiAgICAgICAgbG9nZmlsZS53cml0ZShmIldST1RFXHR7blsncGF0
aCddfVx0e25bJ2lkJ119XG4iKQ0KICAgICAgICB3cml0dGVuICs9IDENCiAgICByZXR1cm4gd3Jp
dHRlbg0KDQoNCmRlZiBxdWFyYW50aW5lX2JhY2t1cHMobm9kZXMsIGxvZ2ZpbGUpOg0KICAgICIi
IlBvcnRhYmxlIGluc3RhbGxzIHJldGFpbiByb2xsYmFjayBjb3BpZXMgYmVzaWRlIHRoZSBvcmln
aW5hbCBBR0VOVFMubWQuIiIiDQogICAgbG9nZmlsZS53cml0ZSgiQkFDS1VQU19SRVRBSU5FRFx0
QUdFTlRTLm1kLuygleumrOuwseyXhS0qXG4iKQ0KICAgIHJldHVybiAwDQoNCg0KIyDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAg
66as7Y+s7Yq4IC8g6re4656Y7ZSEIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQpkZWYgcHJldmlld19yZXBvcnQobm9kZXMs
IG1vZGUpOg0KICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IENvdW50ZXINCiAgICBieV90eXBl
ID0gQ291bnRlcihuWyJ0eXBlIl0gZm9yIG4gaW4gbm9kZXMpDQogICAgYnlfc2NoZW1lID0gQ291
bnRlcihuWyJzdGF0dXNfc2NoZW1lIl0gZm9yIG4gaW4gbm9kZXMpDQogICAgdW5jbGFzc2lmaWVk
ID0gW24gZm9yIG4gaW4gbm9kZXMgaWYgYW55KHRbImtpbmQiXSA9PSAi66+467aE66WYIiBmb3Ig
dCBpbiBuWyJ0YWdzIl0pXQ0KICAgIG5vX2FnZW50cyA9IFtuIGZvciBuIGluIG5vZGVzIGlmIG5v
dCBuWyJhZ2VudHNfbWQiXV0NCiAgICBub190cnV0aCA9IFtuIGZvciBuIGluIG5vZGVzIGlmIG5b
InR5cGUiXSA9PSAicHJvamVjdCIgYW5kIG5bInN0YXR1c19zY2hlbWUiXSBpbiAoImZ1bm5lbCIs
ICJsYWRkZXIiLCAidGFzazUiLCAiYm9vayIpIGFuZCBub3QgblsidHJ1dGgiXV0NCiAgICBkcmF3
ZXJzX3RvdGFsID0gc3VtKGxlbihuWyJkcmF3ZXJzIl0pIGZvciBuIGluIG5vZGVzKQ0KICAgIGxp
bmVzID0gW2YiIyDrqLjrpqzrp5Ao7Lm065OcKSDstIjslYggeyfsk7DquLAg6rKw6rO8JyBpZiBt
b2RlPT0nd3JpdGUnIGVsc2UgJ+uvuOumrOuztOq4sCd9IOKAlCB7VE9EQVl9IiwgIiIsDQogICAg
ICAgICAgICAgZiI+IGBweXRob24gX29udG9sb2d5L2J1aWxkX2dyYXBoLnB5IC0taW5pdHsnIC0t
d3JpdGUnIGlmIG1vZGU9PSd3cml0ZScgZWxzZSAnJ31gIMK3IOygleuzuCA9IGBJUklTLeyYqO2G
qOuhnOyngC5tZGAgMsK3NMK3OOygiCIsDQogICAgICAgICAgICAgZiI+IHsn6rCBIEFHRU5UUy5t
ZCDrp6gg7JyE7JeQIOuouOumrOunkOydhCDsjbzri6QuIO2MjOydvOuzhCDroaTrsLEg7IKs67O4
7J2AIOqygOymnSDtm4QgX3RyYXNoIOuhnCDqsqnrpqwuJyBpZiBtb2RlPT0nd3JpdGUnIGVsc2Ug
J+yVhOustCDtjIzsnbzrj4Qg6rOg7LmY7KeAIOyViuyVmOuLpC4gSUQg67Cw7KCV7ZGc66eMIGBf
b250b2xvZ3kvaWQtYWxsb2NhdGlvbi50c3ZgIOyXkCDrkZDslrQg7Iuk7KCcIOyTsOq4sCDrlYwg
6rCZ7J2AIElE66W8IOyTtOuLpC4nfSIsDQogICAgICAgICAgICAgIiIsICIjIyAxLiDtlZzriIjs
l5AiLCAiIiwNCiAgICAgICAgICAgICBmInwg7ZWt66qpIHwg6rCSIHwiLCAifC0tLXwtLS18IiwN
CiAgICAgICAgICAgICBmInwg7Lm065OcIOuMgOyDgSDrhbjrk5wgfCB7bGVuKG5vZGVzKX0gKHJv
bGUge2J5X3R5cGVbJ3JvbGUnXX0gwrcgZG9tYWluIHtieV90eXBlWydkb21haW4nXX0gwrcgcHJv
amVjdCB7YnlfdHlwZVsncHJvamVjdCddfSkgfCIsDQogICAgICAgICAgICAgZiJ8IOyDge2DnCDs
srTqs4QgfCAiICsgIiDCtyAiLmpvaW4oZiJ7a30ge3Z9IiBmb3IgaywgdiBpbiBieV9zY2hlbWUu
bW9zdF9jb21tb24oKSkgKyAiIHwiLA0KICAgICAgICAgICAgIGYifCDshJzrno0oZHJhd2Vycykg
7ISg7Ja4IHwge2RyYXdlcnNfdG90YWx96rCcICjrgrTsmqkg6riw7KSAIOyekOuPmSDtjJDsoJUp
IHwiLA0KICAgICAgICAgICAgIGYifCDsiqTsvZTtlIQg6rK96rOEIOuztOycoCB8IHtzdW0oMSBm
b3IgbiBpbiBub2RlcyBpZiBuWydzY29wZV9ib3VuZGFyeSddKX0gwrcg7J6Q7Jyg6rWs7JetIOu/
jOumrCB7c3VtKDEgZm9yIG4gaW4gbm9kZXMgaWYgblsnZnJlZV96b25lJ10pfSDCtyDrj5nqsrAg
e3N1bSgxIGZvciBuIGluIG5vZGVzIGlmIG5bJ2Zyb3plbiddKX0gfCIsDQogICAgICAgICAgICAg
ZiJ8IOyYmyDsnbTrpoQoYWxpYXNlcykg67O07JygIHwge3N1bSgxIGZvciBuIGluIG5vZGVzIGlm
IG5bJ2FsaWFzZXMnXSl9IHwiLA0KICAgICAgICAgICAgIGYifCBBR0VOVFMubWQg7JeG7Ja0IOy5
tOuTnOulvCDrqrsg64uk64qUIOuFuOuTnCB8IHtsZW4obm9fYWdlbnRzKX0gfCIsDQogICAgICAg
ICAgICAgZiJ8IO2DnOq3uCDsooXrpZgg66+467aE66WYIHwge2xlbih1bmNsYXNzaWZpZWQpfSB8
IiwNCiAgICAgICAgICAgICBmInwg7KeE7IukIOyGjOyKpCDtjIzsnbwg7JeG64qUIFAgfCB7bGVu
KG5vX3RydXRoKX0gfCIsICIiXQ0KICAgIGlmIG5vX2FnZW50czoNCiAgICAgICAgbGluZXMgKz0g
WyIjIyAyLiBBR0VOVFMubWQg7JeG64qUIOychOqzhCDtj7TrjZQgKEctMTMg7JyE67CYLCDsubTr
k5wg64yA7IOB7JeQ7IScIOygnOyZuCkiLCAiIl0gKyBbZiItIGB7blsncGF0aCddfWAiIGZvciBu
IGluIG5vX2FnZW50c10gKyBbIiJdDQogICAgaWYgdW5jbGFzc2lmaWVkOg0KICAgICAgICBsaW5l
cyArPSBbIiMjIDMuIO2DnOq3uCDsooXrpZjrpbwg66q7IOygle2VnCDrhbjrk5wgKOyCrOuejCDt
mZXsnbgpIiwgIiJdICsgW2YiLSBge25bJ3BhdGgnXX1gIOKGkiB7W3RbJ3ZhbHVlJ10gZm9yIHQg
aW4gblsndGFncyddIGlmIHRbJ2tpbmQnXT09J+uvuOu2hOulmCddfSIgZm9yIG4gaW4gdW5jbGFz
c2lmaWVkXSArIFsiIl0NCiAgICBsaW5lcyArPSBbIiMjIDQuIOuFuOuTnOuzhCDsubTrk5wg7LSI
7JWIIiwgIiIsICJ8IOqyveuhnCB8IGlkIHwgdHlwZSB8IHNjaGVtZSB8IHRydXRoIHwgc2NvcGUg
fCBmcmVlIHwgZnJvemVuIHwgdGFncyB8IGRyYXdlcnMgfCBhbGlhc2VzIHwiLCAifC0tLXwtLS18
LS0tfC0tLXwtLS18LS0tfC0tLXwtLS18LS0tfC0tLXwtLS18Il0NCiAgICBmb3IgbiBpbiBub2Rl
czoNCiAgICAgICAgbGluZXMuYXBwZW5kKCJ8IGB7fWAgfCB7fSB8IHt9IHwge30gfCB7fSB8IHt9
IHwge30gfCB7fSB8IHt9IHwge30gfCB7fSB8Ii5mb3JtYXQoDQogICAgICAgICAgICBuWyJwYXRo
Il0sIG5bImlkIl0sIG5bInR5cGUiXSwgblsic3RhdHVzX3NjaGVtZSJdLCBuWyJ0cnV0aCJdIG9y
ICIiLCAiLCIuam9pbihuWyJzY29wZV9ib3VuZGFyeSJdKSwNCiAgICAgICAgICAgICJZIiBpZiBu
WyJmcmVlX3pvbmUiXSBlbHNlICIiLCAiWSIgaWYgblsiZnJvemVuIl0gZWxzZSAiIiwNCiAgICAg
ICAgICAgICI7ICIuam9pbihmInt0WydraW5kJ119PXt0Wyd2YWx1ZSddfSIgZm9yIHQgaW4gblsi
dGFncyJdKSwgbGVuKG5bImRyYXdlcnMiXSksIGxlbihuWyJhbGlhc2VzIl0pKSkNCiAgICBvdXQg
PSBSRVBPUlRfRElSIC8gZiJ7VE9EQVl9LeuouOumrOunkC17J+yTsOq4sOqysOqzvCcgaWYgbW9k
ZT09J3dyaXRlJyBlbHNlICfrr7jrpqzrs7TquLAnfS5tZCINCiAgICBvdXQud3JpdGVfdGV4dCgi
XG4iLmpvaW4obGluZXMpLCBlbmNvZGluZz0idXRmLTgiKQ0KICAgIHJldHVybiBvdXQNCg0KDQpk
ZWYgdHJlZV9maW5nZXJwcmludChub2Rlcz1Ob25lKToNCiAgICAiIiJSwrdEwrdQIO2PtOuNlCDs
i6Ttg5zsnZgg7KeA66y4KOqyveuhnCDrqqnroZ3snZgg7ZW07IucKS4gZ3JhcGguanNvbiDsl5Ag
7KCA7J6l7ZW0IOuRkOqzoCwg7IS47IWYIOyLnOyekcK364+E6rWsIO2YuOy2nCDrkqTsl5ANCiAg
ICDqsJnsnYAg7ZWo7IiY66GcIOuLpOyLnCDsnqzslrQg67mE6rWQ7ZWc64ukKGNoZWNrX2ZyZXNo
LnB5KS4g7J2066aE7J20IO2VmOuCmOudvOuPhCDrsJTrgIzrqbQg7KeA66y47J20IOuLrOudvOyn
hOuLpC4iIiINCiAgICBpbXBvcnQgaGFzaGxpYg0KICAgIGlmIG5vZGVzIGlzIE5vbmU6DQogICAg
ICAgIG5vZGVzID0gc2Nhbl9ub2RlcygpDQogICAgcGF0aHMgPSBzb3J0ZWQoblsicGF0aCJdIGZv
ciBuIGluIG5vZGVzKQ0KICAgIGggPSBoYXNobGliLnNoYTI1NigiXG4iLmpvaW4ocGF0aHMpLmVu
Y29kZSgidXRmLTgiKSkuaGV4ZGlnZXN0KClbOjE2XQ0KICAgIHJldHVybiBoLCBsZW4ocGF0aHMp
DQoNCg0KZGVmIHNvdXJjZV9maW5nZXJwcmludChub2Rlcz1Ob25lKToNCiAgICAiIiJ2OCBmaW5n
ZXJwcmludCBjb3ZlcnMgUi9EL1AgY2FyZHMsIHJlZ2lzdHJ5LCBzcGVjIGFuZCB0cmVlIHN0cnVj
dHVyZS4iIiINCiAgICBpbXBvcnQgaGFzaGxpYg0KICAgIG5vZGVzID0gc2Nhbl9ub2RlcygpIGlm
IG5vZGVzIGlzIE5vbmUgZWxzZSBub2Rlcw0KICAgIGRpZ2VzdCA9IGhhc2hsaWIuc2hhMjU2KCkN
CiAgICBwYXRocyA9IFtTUEVDLCBPTlQgLyAicmVnaXN0cnkueW1sIl0NCiAgICBwYXRocyArPSBb
Uk9PVCAvIG5bInBhdGgiXSAvICJBR0VOVFMubWQiIGZvciBuIGluIG5vZGVzXQ0KICAgIGZvciBw
YXRoIGluIHNvcnRlZChwYXRocywga2V5PXN0cik6DQogICAgICAgIGFzc2VydF9sb2NhbChwYXRo
KQ0KICAgICAgICBkaWdlc3QudXBkYXRlKHN0cihwYXRoLnJlbGF0aXZlX3RvKFJPT1QpKS5lbmNv
ZGUoInV0Zi04IikpDQogICAgICAgIGRpZ2VzdC51cGRhdGUoYiJcMCIpDQogICAgICAgIGRpZ2Vz
dC51cGRhdGUocGF0aC5yZWFkX2J5dGVzKCkgaWYgcGF0aC5pc19maWxlKCkgZWxzZSBiIk1JU1NJ
TkciKQ0KICAgICAgICBkaWdlc3QudXBkYXRlKGIiXDAiKQ0KICAgIGRpZ2VzdC51cGRhdGUodHJl
ZV9maW5nZXJwcmludChub2RlcylbMF0uZW5jb2RlKCJhc2NpaSIpKQ0KICAgIHJldHVybiBkaWdl
c3QuaGV4ZGlnZXN0KCkNCg0KDQpkZWYgY2hlY2tfaW5wdXRfY2FyZHMobm9kZXMpOg0KICAgIGZv
ciBuIGluIG5vZGVzOg0KICAgICAgICBwYXRoID0gUk9PVCAvIG5bInBhdGgiXSAvICJBR0VOVFMu
bWQiDQogICAgICAgIGFzc2VydF9sb2NhbChwYXRoKQ0KICAgICAgICBpZiBub3QgcGF0aC5leGlz
dHMoKToNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIHJhdyA9IHBhdGgucmVhZF90ZXh0
KGVuY29kaW5nPSJ1dGYtOC1zaWciKQ0KICAgICAgICBpZiBub3QgcmF3LnN0YXJ0c3dpdGgoIi0t
LSIpOg0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgY2FyZCA9IHJlYWRfZnJvbnRtYXR0
ZXIocGF0aCkNCiAgICAgICAgaWYgY2FyZCBpcyBOb25lOg0KICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcihmIuy5tOuTnCBZQU1M7J2AIO2CpDrqsJIg6rWs7KGw7Jes7JW8IO2VqDoge3BhdGh9
IikNCiAgICAgICAgbmlkID0gY2FyZC5nZXQoImlkIikNCiAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2UobmlkLCBzdHIpIG9yIG5vdCByZS5mdWxsbWF0Y2gociJpcmlzOlthLXowLTldezh9Iiwgbmlk
KToNCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiLsubTrk5wgSUQg7ZiV7IudIOyYpOul
mDoge3BhdGh9IikNCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY2FyZC5nZXQoInJlbGF0aW9u
cyIsIHt9KSwgZGljdCk6DQogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYi7Lm065OcIHJl
bGF0aW9uc+uKlCDtgqQ66rCSIOq1rOyhsOyXrOyVvCDtlag6IHtwYXRofSIpDQogICAgICAgIGZv
ciBrZXkgaW4gKCJhbGlhc2VzIiwgImRyYXdlcnMiLCAidGFncyIpOg0KICAgICAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2UoY2FyZC5nZXQoa2V5LCBbXSksIGxpc3QpOg0KICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoZiLsubTrk5wge2tleX3ripQg66qp66Gd7J207Ja07JW8IO2VqDog
e3BhdGh9IikNCiAgICAgICAgZm9yIHRhcmdldCBpbiBjYXJkLmdldCgicmVsYXRpb25zIiwge30p
LnZhbHVlcygpOg0KICAgICAgICAgICAgdmFsdWVzID0gdGFyZ2V0IGlmIGlzaW5zdGFuY2UodGFy
Z2V0LCBsaXN0KSBlbHNlIFt0YXJnZXRdDQogICAgICAgICAgICBpZiBhbnkobm90IGlzaW5zdGFu
Y2Uodiwgc3RyKSBvciBub3QgdiBmb3IgdiBpbiB2YWx1ZXMpOg0KICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoZiLqtIDqs4Qg64yA7IOB7J2AIOu5iCDqsJIg7JeG64qUIOusuOyekOyX
tOydtOyWtOyVvCDtlag6IHtwYXRofSIpDQogICAgICAgIGZvciB2YWx1ZSBpbiBbY2FyZC5nZXQo
InRydXRoIildICsgY2FyZC5nZXQoImRyYXdlcnMiLCBbXSk6DQogICAgICAgICAgICBpZiB2YWx1
ZToNCiAgICAgICAgICAgICAgICBhc3NlcnRfbG9jYWwocGF0aC5wYXJlbnQgLyBzdHIodmFsdWUp
LnNwbGl0KCIjIiwgMSlbMF0pDQoNCg0KDQpkZWYgY29tcGlsZV9ncmFwaChub2Rlcyk6DQogICAg
IiIi66i466as66eQICsg7Iqk7LqUIOKGkiBncmFwaC5qc29uICjqsbDsmrgpLiDqtIDqs4TsnZgg
7Jet67Cp7Zal7J2AIOyXrOq4sOyEnCDqs4TsgrDtlZzri6QuIiIiDQogICAgZnAsIGNudCA9IHRy
ZWVfZmluZ2VycHJpbnQobm9kZXMpDQogICAgZ3JhcGggPSB7InNjaGVtYSI6ICJpcmlzLWdyYXBo
IHYxLjEiLCAiZ2VuZXJhdGVkIjogZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkuaXNvZm9ybWF0KHRp
bWVzcGVjPSJzZWNvbmRzIiksDQogICAgICAgICAgICAgInRyZWVfZmluZ2VycHJpbnQiOiBmcCwg
InRyZWVfY291bnQiOiBjbnQsDQogICAgICAgICAgICAgInNvdXJjZV9maW5nZXJwcmludF92OCI6
IHNvdXJjZV9maW5nZXJwcmludChub2RlcyksDQogICAgICAgICAgICAgIm5vZGVzIjoge30sICJl
ZGdlcyI6IFtdfQ0KICAgIGJ5X3BhdGggPSB7blsicGF0aCJdOiBuIGZvciBuIGluIG5vZGVzfQ0K
ICAgIGZvciBuIGluIG5vZGVzOg0KICAgICAgICBmbSA9IHJlYWRfZnJvbnRtYXR0ZXIoUk9PVCAv
IG5bInBhdGgiXSAvICJBR0VOVFMubWQiKSBvciB7fQ0KICAgICAgICBub2RlX2lkID0gZm0uZ2V0
KCJpZCIsIG5bImlkIl0pDQogICAgICAgIGdyYXBoWyJub2RlcyJdW25vZGVfaWRdID0geyJwYXRo
IjogblsicGF0aCJdLCAidHlwZSI6IG5bInR5cGUiXSwgImNvZGUiOiBuWyJjb2RlIl0sDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfc2NoZW1lIjogZm0uZ2V0KCJz
dGF0dXNfc2NoZW1lIiwgblsic3RhdHVzX3NjaGVtZSJdKSwgInRydXRoIjogZm0uZ2V0KCJ0cnV0
aCIsIG5bInRydXRoIl0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlm
ZWN5Y2xlIjogZm0uZ2V0KCJsaWZlY3ljbGUiLCAiYWN0aXZlIiksICJ0YWdzIjogblsidGFncyJd
LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NvcGVfYm91bmRhcnkiOiBu
WyJzY29wZV9ib3VuZGFyeSJdLCAiZnJlZV96b25lIjogblsiZnJlZV96b25lIl0sDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcm96ZW4iOiBmbS5nZXQoImZyb3plbiIsIG5b
ImZyb3plbiJdKSwgInNlbnNpdGl2ZSI6IGZtLmdldCgic2Vuc2l0aXZlIiwgRmFsc2UpLA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxpYXNlcyI6IGZtLmdldCgiYWxpYXNl
cyIsIG5bImFsaWFzZXMiXSksICJkcmF3ZXJzIjogZm0uZ2V0KCJkcmF3ZXJzIiwgblsiZHJhd2Vy
cyJdKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInV0aWxzIjogblsidXRp
bHMiXSwgImNoaWxkcmVuIjogblsiY2hpbGRyZW4iXX0NCiAgICAgICAgaWYgZ3JhcGhbIm5vZGVz
Il1bbm9kZV9pZF0uZ2V0KCJ0cnV0aCIpOg0KICAgICAgICAgICAgZ3JhcGhbImVkZ2VzIl0uYXBw
ZW5kKHsiZnJvbSI6IG5vZGVfaWQsICJyZWwiOiAidHJ1dGhfYXQiLA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidG8iOiBub2RlX2lkICsgIi8iICsgZ3JhcGhbIm5vZGVzIl1b
bm9kZV9pZF1bInRydXRoIl19KQ0KICAgICAgICBwYXJlbnRfcGF0aCA9IHN0cihQYXRoKG5bInBh
dGgiXSkucGFyZW50KQ0KICAgICAgICBpZiBwYXJlbnRfcGF0aCBpbiBieV9wYXRoOg0KICAgICAg
ICAgICAgZ3JhcGhbImVkZ2VzIl0uYXBwZW5kKHsiZnJvbSI6IG5vZGVfaWQsICJyZWwiOiAicGFy
dF9vZiIsICJ0byI6IGJ5X3BhdGhbcGFyZW50X3BhdGhdWyJpZCJdfSkNCiAgICAgICAgZm9yIHJl
bCwgdGFyZ2V0cyBpbiAoZm0uZ2V0KCJyZWxhdGlvbnMiKSBvciB7fSkuaXRlbXMoKToNCiAgICAg
ICAgICAgIGZvciB0IGluICh0YXJnZXRzIGlmIGlzaW5zdGFuY2UodGFyZ2V0cywgbGlzdCkgZWxz
ZSBbdGFyZ2V0c10pOg0KICAgICAgICAgICAgICAgIGdyYXBoWyJlZGdlcyJdLmFwcGVuZCh7ImZy
b20iOiBub2RlX2lkLCAicmVsIjogcmVsLCAidG8iOiB0fSkNCiAgICAjIOyXreuwqe2WpQ0KICAg
IGludmVyc2UgPSB7InBhcnRfb2YiOiAiY29udGFpbnMiLCAiY2Fub25pY2FsIjogImNhbm9uaWNh
bF9mb3IiLCAidGVtcGxhdGUiOiAiaW5zdGFudGlhdGVkX2J5IiwNCiAgICAgICAgICAgICAgICJt
aXJyb3Jfb2YiOiAibWlycm9yZWRfYnkiLCAicHJvbW90ZWRfZnJvbSI6ICJwcm9tb3RlZF90byIs
ICJvd25lciI6ICJyZWZlcnNfdG9fb3duZXIiLA0KICAgICAgICAgICAgICAgImV4dGVuZHMiOiAi
ZXh0ZW5kZWRfYnkiLCAic3RvcmVkX2F0IjogInN0b3JlcyIsICJ1c2VzX3Rvb2wiOiAidXNlZF9i
eSIsDQogICAgICAgICAgICAgICAiZ292ZXJuZWRfYnkiOiAiZ292ZXJucyIsICJpbnZvbHZlcyI6
ICJpbnZvbHZlZF9pbiIsICJhYm91dCI6ICJyZW1lbWJlcmVkX2J5In0NCiAgICBncmFwaFsiZWRn
ZXMiXSArPSBbeyJmcm9tIjogZVsidG8iXSwgInJlbCI6IGludmVyc2VbZVsicmVsIl1dLCAidG8i
OiBlWyJmcm9tIl0sICJkZXJpdmVkIjogVHJ1ZX0NCiAgICAgICAgICAgICAgICAgICAgICAgZm9y
IGUgaW4gbGlzdChncmFwaFsiZWRnZXMiXSkgaWYgZVsicmVsIl0gaW4gaW52ZXJzZV0NCiAgICBh
c3NlcnRfbG9jYWwoT05UIC8gImdyYXBoLmpzb24iKS53cml0ZV90ZXh0KGpzb24uZHVtcHMoZ3Jh
cGgsIGVuc3VyZV9hc2NpaT1GYWxzZSwgaW5kZW50PTEpLCBlbmNvZGluZz0idXRmLTgiKQ0KICAg
IHJldHVybiBncmFwaA0KDQoNCiMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIOyLpO2WiSDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KZGVmIG1haW4oKToN
CiAgICBhcCA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkNCiAgICBhcC5hZGRfYXJndW1lbnQo
Ii0taW5pdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpDQogICAgYXAuYWRkX2FyZ3VtZW50KCItLXdy
aXRlIiwgYWN0aW9uPSJzdG9yZV90cnVlIikNCiAgICBhcC5hZGRfYXJndW1lbnQoIi0tY29tcGls
ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpDQogICAgYXAuYWRkX2FyZ3VtZW50KCItLXZlcmlmeS13
cml0ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpDQogICAgYSA9IGFwLnBhcnNlX2FyZ3MoKQ0KICAg
IGlmIGEud3JpdGUgYW5kIG5vdCBhLmluaXQ6DQogICAgICAgIGFwLmVycm9yKCItLXdyaXRl64qU
IC0taW5pdOqzvCDtlajqu5gg7IKs7JqpIikNCiAgICBpZiBub3QgKGEuaW5pdCBvciBhLmNvbXBp
bGUgb3IgYS52ZXJpZnlfd3JpdGUpOg0KICAgICAgICBhcC5lcnJvcigiLS1pbml0IC8gLS1jb21w
aWxlIC8gLS12ZXJpZnktd3JpdGUg7KSRIO2VmOuCmCDtlYTsmpQiKQ0KICAgIGFzc2VydF9sb2Nh
bChPTlQpDQogICAgYXNzZXJ0X2xvY2FsKFJFUE9SVF9ESVIpDQogICAgYXNzZXJ0X2xvY2FsKE9O
VCAvICJncmFwaC5qc29uIikNCiAgICBSRVBPUlRfRElSLm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhp
c3Rfb2s9VHJ1ZSkNCiAgICBub2RlcyA9IHNjYW5fbm9kZXMoKQ0KICAgIGNoZWNrX2lucHV0X2Nh
cmRzKG5vZGVzKQ0KICAgIGFzc2lnbl9pZHMobm9kZXMpDQogICAgaWYgYS5pbml0Og0KICAgICAg
ICBpZiBhLndyaXRlOg0KICAgICAgICAgICAgbG9ncGF0aCA9IFJFUE9SVF9ESVIgLyBmIntUT0RB
WX0t66i466as66eQLeyTsOq4sOuhnOq3uC50c3YiDQogICAgICAgICAgICB3aXRoIGxvZ3BhdGgu
b3BlbigidyIsIGVuY29kaW5nPSJ1dGYtOCIpIGFzIGxmOg0KICAgICAgICAgICAgICAgIHdyaXR0
ZW4gPSB3cml0ZV9jYXJkcyhub2RlcywgbGYpDQogICAgICAgICAgICAgICAgbW92ZWQgPSBxdWFy
YW50aW5lX2JhY2t1cHMobm9kZXMsIGxmKQ0KICAgICAgICAgICAgb3V0ID0gcHJldmlld19yZXBv
cnQobm9kZXMsICJ3cml0ZSIpDQogICAgICAgICAgICBwcmludChmIuuouOumrOunkCDslIAge3dy
aXR0ZW59IMK3IOuhpOuwsSDsgqzrs7jsnYAg7JuQ67O4IOyYhuyXkCDrs7TsobQgwrcg66as7Y+s
7Yq4IHtvdXR9IMK3IOuhnOq3uCB7bG9ncGF0aH0iKQ0KICAgICAgICAgICAgY29tcGlsZV9ncmFw
aChub2RlcykNCiAgICAgICAgICAgIHByaW50KGYi6re4656Y7ZSEIOy7tO2MjOydvCDihpIge09O
VC8nZ3JhcGguanNvbid9IikNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIG91dCA9IHByZXZp
ZXdfcmVwb3J0KG5vZGVzLCAicHJldmlldyIpDQogICAgICAgICAgICBwcmludChmIuuvuOumrOuz
tOq4sCDrpqztj6ztirgg4oaSIHtvdXR9IChBR0VOVFMubWQg7JuQ66y47J2AIOuztOyhtDsg66as
7Y+s7Yq47JmAIElEIOuwsOygle2RnCDsg53shLEpIikNCiAgICBpZiBhLmNvbXBpbGU6DQogICAg
ICAgIGcgPSBjb21waWxlX2dyYXBoKG5vZGVzKQ0KICAgICAgICBwcmludChmImdyYXBoLmpzb246
IOuFuOuTnCB7bGVuKGdbJ25vZGVzJ10pfSDCtyDqsITshKAge2xlbihnWydlZGdlcyddKX0iKQ0K
ICAgIGlmIGEudmVyaWZ5X3dyaXRlOg0KICAgICAgICBiYWQgPSBbblsicGF0aCJdIGZvciBuIGlu
IG5vZGVzIGlmIChST09UIC8gblsicGF0aCJdIC8gIkFHRU5UUy5tZCIpLmV4aXN0cygpIGFuZCBu
b3QgcmVhZF9mcm9udG1hdHRlcihST09UIC8gblsicGF0aCJdIC8gIkFHRU5UUy5tZCIpXQ0KICAg
ICAgICBwcmludChmIuuouOumrOunkCDtjIzsi7Eg7Iuk7YyoOiB7bGVuKGJhZCl9IikNCiAgICAg
ICAgZm9yIGIgaW4gYmFkWzoyMF06DQogICAgICAgICAgICBwcmludCgiICIsIGIpDQoNCg0KaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoNCiAgICB0cnk6DQogICAgICAgIG1haW4oKQ0KICAgIGV4
Y2VwdCAoVmFsdWVFcnJvciwgT1NFcnJvciwgeWFtbC5ZQU1MRXJyb3IsIEFzc2VydGlvbkVycm9y
KSBhcyBleGM6DQogICAgICAgIHByaW50KGYi7Jio7Yao66Gc7KeAIOyymOumrCDsi6TtjKg6IHtl
eGN9IiwgZmlsZT1zeXMuc3RkZXJyKQ0KICAgICAgICBzeXMuZXhpdCgxKQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/build_map.py","encoding":"base64","size":20064,"runtimeSha256":"02c7c7677d42d4e498d9970f75e45e9b4a41ec153a57d13c511924b513e2f23c","normalizedSha256":"c9c0316a3a0dec18bb8ec022567ba39828b5d8d1be0bf6201459b44354fbe962"} -->
```base64
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCiIiIuyekeyXheqzteqwhCDqtazsobAg7KeA64+EIOyD
neyEseq4sC4NCg0KYDzsnpHsl4Xqs7XqsIQg7J2066aEPi3qtazsobDsp4Drj4QuaHRtbGDsnYQg
64+F66a9IEhUTUzroZwg7J6s7IOd7ISx7ZWc64ukLg0KLSDsnoXroKUo6riw67O4KTogYF9vbnRv
bG9neS9ncmFwaC5qc29uYCjsmKjthqjroZzsp4Ag7Lu07YyM7J28IOqysOqzvCwg6rGw7Jq4KS4g
64W465Oc7J2YIHBhdGjCt3R5cGXCt2NvZGXCt3RhZ3PCt2xpZmVjeWNsZcK3ZHJhd2VycyDrpbwN
CiAg6re464yA66GcIOyTsOqzoCwg6rCBIOuFuOuTnCBBR0VOVFMubWQg7J2YICoq66i466as66eQ
KFlBTUwpIOuLpOydjCDssqsg66y464uoKirsnYQg7KCV7LK07ISxKGRlc2Mp7Jy866GcIOydveuK
lOuLpC4gKEMtMDkg7ZW07IaMKQ0KLSDsnoXroKUo7Y+067CxKTogZ3JhcGguanNvbiDsnbQg7JeG
7Jy866m0IO2PtOuNlCDtirjrpqzrpbwg7KeB7KCRIOyKpOy6lO2VnOuLpC4g7J2065WMIOydtOum
hCDsoJXqt5zsi53snYAg66qF7IS47IScKElSSVMt7Jio7Yao66Gc7KeALm1kIDUtMSkNCiAg67iU
66Gd7J2EIGBidWlsZF9ncmFwaC5sb2FkX25hbWluZygpYCDsnLzroZwg7J297Ja0IOyTtOuLpCDi
gJQg7J20IO2MjOydvOydgCDsnpDquLAg7KCV6rec7Iud7J2EIOqwluyngCDslYrripTri6QuIChD
LTA3IO2VtOyGjCkNCi0g7KCc7Jm4IOuqqeuhneydgCDsoJXrs7goPSBgYnVpbGRfZ3JhcGguU0tJ
UF9ESVJTYDogbm9kZV9tb2R1bGVzwrcuZ2l0wrcudmVudsK3dmVudsK367mM65OcIOy6kOyLnMK3
ZGlzdMK3YnVpbGTCt291dMK3DQogIC5jYWNoZcK3X2FnZW50wrdfdHJhc2jCt19iYWNrdXDCt19f
cHljYWNoZV9fKSDqs7wg7KCQKC4pIO2PtOuNlMK3YH4kYCDsnoTsi5wg7YyM7J2866eMLiAoQy0w
OCDtlbTshowpDQotIOq5iuydtDog7Jet7ZWgKFIpIC0+IOuPhOuplOyduChEKSAtPiDtlITroZzs
oJ3tirgoUCkuIFN0ZXAvVGFzayDripQg7KCc7Jm4LiBgX+ycoO2LuGAg7Y+0642U64qUIFUg66Gc
IO2RnOyLnCjro6jtirgg7Jyg7Yu47J2AIO2PtOuNlCDsiqTsupQpLA0KICBSwrdEIOy5tOuTnOyd
mCBgZHJhd2VyczpgIOykkSDrsJTroZwg7JWE656YIOyEnOuejeydgCBg7ISc656NYCDsno7snLzr
oZwg7ZGc7IucKFAg7JWI7J2YIOyEnOuejeydgCDsg53rnrUpLg0KLSDrj4TrqZTsnbgg7J2066aE
7J2YIOq3uOujuSDsoJHrkZAo67CY7KCE6rCBIO2DnOq3uCnripQg6rCA7IOBIEdST1VQIOuFuOuT
nChHKeuhnCDrrLbripTri6Qo7Iuk7KCcIO2PtOuNlCDslYTri5gsIO2RnOyLnOyaqSkuDQotIO2P
tOuNlOunjOycvOuhoCDslYwg7IiYIOyXhuuKlCDshpAt7J6R7ISxIOuplO2DgChtZW0vc2V0L21j
cE5vdGUp64qUIE9WRVJSSURFUyDroZwg67O07KG07ZWc64ukKGxlZ2FjeSDtmJXsi50g7KCE7Jqp
KS4NCi0g7Iuk7ZaJOiBweXRob24gX21hcC1nZW5lcmF0b3IvYnVpbGRfbWFwLnB5ICAo7JuQ67O4
7J2AIC5iYWsg7Jy866GcIOuwseyXhSkNCiAgICAgICAgcHl0aG9uIF9tYXAtZ2VuZXJhdG9yL2J1
aWxkX21hcC5weSAtLXNjYW4gICAoZ3JhcGguanNvbiDsnYQg66y07Iuc7ZWY6rOgIO2PtOuNlCDs
iqTsupQg6rCV7KCcKQ0KIiIiDQppbXBvcnQgYXJncGFyc2UNCmltcG9ydCBkYXRldGltZQ0KaW1w
b3J0IGpzb24NCmltcG9ydCBvcw0KaW1wb3J0IHJlDQppbXBvcnQgc3lzDQppbXBvcnQgdGVtcGZp
bGUNCmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aA0KDQpST09UID0gUGF0aChfX2ZpbGVfXykucmVz
b2x2ZSgpLnBhcmVudC5wYXJlbnQgICAgICAgICAgIyBpbnN0YWxsZWQgd29ya3NwYWNlIHJvb3QN
CkhUTUwgPSBST09UIC8gKFJPT1QubmFtZSArICIt6rWs7KGw7KeA64+ELmh0bWwiKQ0KT05UID0g
Uk9PVCAvICJfb250b2xvZ3kiDQpHUkFQSCA9IE9OVCAvICJncmFwaC5qc29uIg0KDQojIGJ1aWxk
X2dyYXBoIOuKlCBpbXBvcnQg7IucIHN0ZG91dCDsnYQg7ZWcIOuyiCDqsJDsi7zri6Qg4oCUIOq3
uCDrnpjtjbzrpbwg67KE7Y287JeQ7IScIOuWvOyWtCjri6vsp4Ag7JWK6rOgKSDsm5Drnpgg6rKD
7Jy866GcIOuzteq3gO2VnCDrkqQgdXRmLTgg66GcIOyerOyEpOyglQ0KX3N0ZG91dCA9IHN5cy5z
dGRvdXQNCnN5cy5wYXRoLmluc2VydCgwLCBzdHIoT05UKSkNCmltcG9ydCBidWlsZF9ncmFwaCBh
cyBiZyAgIyBub3FhOiBFNDAyICAo66qF7IS47IScIDUtMSDsoJXqt5zsi50gwrcgNi0xIOygnOyZ
uCDrqqnroZ0gwrcg66i466as66eQIO2MjOyEnCDsnqzsgqzsmqkpDQoNCmlmIHN5cy5zdGRvdXQg
aXMgbm90IF9zdGRvdXQ6DQogICAgc3lzLnN0ZG91dC5kZXRhY2goKQ0KICAgIHN5cy5zdGRvdXQg
PSBfc3Rkb3V0DQp0cnk6DQogICAgc3lzLnN0ZG91dC5yZWNvbmZpZ3VyZShlbmNvZGluZz0ndXRm
LTgnLCBlcnJvcnM9J3JlcGxhY2UnKQ0KZXhjZXB0IEV4Y2VwdGlvbjoNCiAgICBwYXNzDQoNCk5B
TUlORyA9IGJnLk5BTUlORyAgICAgICAgICAgICMg66qF7IS47IScIDUtMSDruJTroZ3sl5DshJwg
7J297J2AIOygleq3nOyLnSAocm9sZS9kb21haW4vcHJvamVjdC9zdGVwL3Rhc2svdXRpbCDigKYp
DQpTS0lQX0RJUlMgPSBzZXQoYmcuU0tJUF9ESVJTKSAgIyDsoJXrs7gg7KCc7Jm4IOuqqeuhnSAo
KyBfYmFja3VwwrdfX3B5Y2FjaGVfXykNCg0Kd2FybmluZ3MgPSBbXQ0KDQoNCiMgLS0tLSDqs7Xs
mqkgLS0tLQ0KDQpkZWYgaXNfc2tpcHBlZChuYW1lKToNCiAgICByZXR1cm4gbmFtZSBpbiBTS0lQ
X0RJUlMgb3IgbmFtZS5zdGFydHN3aXRoKCcuJykgb3IgbmFtZS5zdGFydHN3aXRoKCd+JCcpDQoN
Cg0KZGVmIGlzX2xpYihuYW1lKToNCiAgICByZXR1cm4gbmFtZS5zdGFydHN3aXRoKCdfJykgYW5k
IGJvb2woTkFNSU5HWyJ1dGlsIl0uZnVsbG1hdGNoKG5hbWUpKQ0KDQoNCmRlZiBuYXRrZXkocyk6
DQogICAgcmV0dXJuIFtpbnQodCkgaWYgdC5pc2RpZ2l0KCkgZWxzZSB0Lmxvd2VyKCkgZm9yIHQg
aW4gcmUuc3BsaXQocicoXGQrKScsIHMpXQ0KDQoNCmRlZiBzdWJkaXJzKGZvbGRlcik6DQogICAg
dHJ5Og0KICAgICAgICByZXR1cm4gW2QgZm9yIGQgaW4gZm9sZGVyLml0ZXJkaXIoKSBpZiBkLmlz
X2RpcigpIGFuZCBub3QgaXNfc2tpcHBlZChkLm5hbWUpXQ0KICAgIGV4Y2VwdCBPU0Vycm9yOg0K
ICAgICAgICByZXR1cm4gW10NCg0KDQpkZWYgc3BsaXRfZ3JvdXAobmFtZSk6DQogICAgIiIiYOOA
luq1kOyerOOAl0QwMS3snoXrrLgg67aE7JW8KEludHJvIEZpZWxkKWAg4oaSICgn6rWQ7J6sJywg
J0QwMS3snoXrrLgg67aE7JW8KEludHJvIEZpZWxkKScpLiDsoJHrkZAg7JeG7Jy866m0IChOb25l
LCBuYW1lKS4iIiINCiAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJ+OAlicpIGFuZCAn44CXJyBpbiBu
YW1lOg0KICAgICAgICBrID0gbmFtZS5pbmRleCgn44CXJykNCiAgICAgICAgcmV0dXJuIG5hbWVb
MTprXSwgbmFtZVtrICsgMTpdDQogICAgcmV0dXJuIE5vbmUsIG5hbWUNCg0KDQpkZWYgaWRlbnRp
dHkoZm9sZGVyKToNCiAgICAiIiJBR0VOVFMubWQg7J2YIOuouOumrOunkChZQU1MIOy5tOuTnCkg
64uk7J2MIOyyqyDrrLjri6go7KCc66qpL+yjvOyEnS/ruYjspIQg7KCc7Jm4KeydhCDtlZwg7KSE
66GcIOuwmO2ZmC4iIiINCiAgICBwID0gYmcuYXNzZXJ0X2xvY2FsKGZvbGRlciAvICJBR0VOVFMu
bWQiKQ0KICAgIHJlbCA9IGZvbGRlci5yZWxhdGl2ZV90byhST09UKQ0KICAgIGlmIG5vdCBwLmV4
aXN0cygpOg0KICAgICAgICB3YXJuaW5ncy5hcHBlbmQoIltBR0VOVFMubWQg7JeG7J2MXSAlcyIg
JSByZWwpDQogICAgICAgIHJldHVybiAiIg0KICAgIHRleHQgPSBiZy5zdHJpcF9ib20ocC5yZWFk
X2J5dGVzKCkuZGVjb2RlKCd1dGYtOCcsIGVycm9ycz0ncmVwbGFjZScpKQ0KICAgIHRleHQgPSBi
Zy5GTV9SRS5zdWIoIiIsIHRleHQsIGNvdW50PTEpICAgICAgICAgICMg66i466as66eQIOygnOqx
sA0KICAgIHBhcmEgPSBbXQ0KICAgIGZvciByYXcgaW4gdGV4dC5zcGxpdGxpbmVzKCk6DQogICAg
ICAgIHMgPSByYXcuc3RyaXAoKQ0KICAgICAgICBpZiBub3QgcGFyYToNCiAgICAgICAgICAgIGlm
IG5vdCBzIG9yIHMuc3RhcnRzd2l0aCgnIycpIG9yIHMuc3RhcnRzd2l0aCgnPCEtLScpIG9yIHMu
c3RhcnRzd2l0aCgnQCcpOg0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICBw
YXJhLmFwcGVuZChzKQ0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgaWYgbm90IHMgb3Igcy5z
dGFydHN3aXRoKCc8IS0tJykgb3Igcy5zdGFydHN3aXRoKCcjJyk6DQogICAgICAgICAgICAgICAg
YnJlYWsNCiAgICAgICAgICAgIHBhcmEuYXBwZW5kKHMpDQogICAgaWYgbm90IHBhcmE6DQogICAg
ICAgIHdhcm5pbmdzLmFwcGVuZCgiW+ygleyytOyEsSDrrLjsnqUg7JeG7J2MXSAlcyIgJSByZWwp
DQogICAgICAgIHJldHVybiAiIg0KICAgIG91dCA9ICcgJy5qb2luKHBhcmEpDQogICAgcmV0dXJu
IChvdXRbOjMxN10ucnN0cmlwKCkgKyAn4oCmJykgaWYgbGVuKG91dCkgPiAzMjAgZWxzZSBvdXQN
Cg0KDQojIC0tLS0g7Y+0642U66eM7Jy866GgIOyVjCDsiJgg7JeG64qUIOyGkC3snpHshLEg66mU
7YOAIOuztOyhtCAobGVnYWN5IO2YleyLnSDsoITsmqkpIC0tLS0NCiMgbWF0Y2jsnZgg7KGw6rCB
65Ok7J20ICjsnpHsl4Xqs7XqsIQg6riw7KSAIOyDgeuMgOqyveuhnCkg7JWI7JeQIOuqqOuRkCDr
k6TslrTsnojsnLzrqbQg7ZW064u5IO2VhOuTnOulvCDrhbjrk5zsl5Ag67OR7ZWpLg0KT1ZFUlJJ
REVTID0gWw0KICAgICMg7JiIKSB7Im1hdGNoIjogWyJSMDEtIiwgIlAwMS3smIjsi5wg7J6R7JeF
Il0sICJzZXQiOiB7Im93biI6IFsic2V0dGluZ3MubG9jYWwuanNvbiDigJQgLi4uIl19fQ0KXQ0K
DQoNCmRlZiBhcHBseV9vdmVycmlkZXMobm9kZSwgcmVscGF0aCk6DQogICAgZm9yIG8gaW4gT1ZF
UlJJREVTOg0KICAgICAgICBpZiBhbGwobSBpbiByZWxwYXRoIGZvciBtIGluIG9bIm1hdGNoIl0p
Og0KICAgICAgICAgICAgZm9yIGssIHYgaW4gby5pdGVtcygpOg0KICAgICAgICAgICAgICAgIGlm
IGsgIT0gIm1hdGNoIjoNCiAgICAgICAgICAgICAgICAgICAgbm9kZVtrXSA9IHYNCg0KDQpST09U
X0NMQVVERSA9ICLsnpHsl4Xqs7XqsITsnZgg7Jet7ZWgwrfrtoTslbzCt+2UhOuhnOygne2KuCDq
tazsobAiDQpST09UX01FTSA9IHt9DQpST09UX1NFVCA9IHt9DQoNCg0KZGVmIGxpYl9ub2RlKGQp
Og0KICAgIHJldHVybiB7Im5hbWUiOiBkLm5hbWUsICJraW5kIjogInV0aWwiLCAiY2xhdWRlIjog
aWRlbnRpdHkoZCksICJwYXRoIjogc3RyKGQpfQ0KDQoNCmRlZiByb290X2xpYnMoKToNCiAgICAi
IiLro6jtirggYF/snKDti7hgIO2PtOuNlChncmFwaC5qc29uIOyXkCDrhbjrk5zqsIAg7JeG64uk
IOKAlCDsmKjthqjroZzsp4Ag67CWIGBfYWdlbnRgwrdgX3RyYXNoYCDripQgNi0xIOygnOyZuCDr
qqnroZ3snLzroZwg67mg7KeQKS4iIiINCiAgICBsaWJzID0gW2xpYl9ub2RlKGQpIGZvciBkIGlu
IHN1YmRpcnMoUk9PVCkgaWYgaXNfbGliKGQubmFtZSldDQogICAgbGlicy5zb3J0KGtleT1sYW1i
ZGEgeDogbmF0a2V5KHhbIm5hbWUiXSkpDQogICAgcmV0dXJuIGxpYnMNCg0KDQpkZWYgZ3JvdXBf
bm9kZXNfb2Yocm9sZV9kaXIsIGdyb3Vwcyk6DQogICAgb3V0ID0gW10NCiAgICBmb3IgbGFiZWwg
aW4gc29ydGVkKGdyb3Vwcywga2V5PW5hdGtleSk6DQogICAgICAgIGRvbXMgPSBzb3J0ZWQoZ3Jv
dXBzW2xhYmVsXSwga2V5PWxhbWJkYSB4OiBuYXRrZXkoeFsibmFtZSJdKSkNCiAgICAgICAgb3V0
LmFwcGVuZCh7DQogICAgICAgICAgICAibmFtZSI6ICLjgJYlc+OAlyIgJSBsYWJlbCwgImtpbmQi
OiAiZ3JvdXAiLCAicGF0aCI6IHN0cihyb2xlX2RpciksDQogICAgICAgICAgICAiY2xhdWRlIjog
Iu2RnOyLnOyaqSDqt7jro7kg4oCUIOOAliVz44CXIOygkeuRkOuhnCDrrLbsnbgg64+E66mU7J24
ICVk6rCcLiAiDQogICAgICAgICAgICAgICAgICAgICAgIijsi6TsoJwg7Y+0642U6rCAIOyVhOuL
iOudvCDsp4Drj4Tsl5DshJzrp4wg66y27Ja0IOuztOyehCkiICUgKGxhYmVsLCBsZW4oZG9tcykp
LA0KICAgICAgICAgICAgImNoaWxkcmVuIjogZG9tc30pDQogICAgcmV0dXJuIG91dA0KDQoNCiMg
LS0tLSDrsKnsi50gMTogZ3JhcGguanNvbiDsl5DshJwg6re466as6riwICjquLDrs7gpIC0tLS0N
Cg0KZGVmIGJ1aWxkX2Zyb21fZ3JhcGgoZ3JhcGgpOg0KICAgIG5vZGVzID0gZ3JhcGhbIm5vZGVz
Il0NCiAgICBieV9wYXRoID0ge25bInBhdGgiXTogKG5pZCwgbikgZm9yIG5pZCwgbiBpbiBub2Rl
cy5pdGVtcygpfQ0KICAgIGtpZHMgPSB7fQ0KICAgIGZvciBuaWQsIG4gaW4gbm9kZXMuaXRlbXMo
KToNCiAgICAgICAgcGFyZW50ID0gc3RyKFBhdGgoblsicGF0aCJdKS5wYXJlbnQpDQogICAgICAg
IGtpZHMuc2V0ZGVmYXVsdChwYXJlbnQsIFtdKS5hcHBlbmQobikNCiAgICBkcmF3biA9IDANCg0K
ICAgIGRlZiBiYXNlKG4sIGRpc3BsYXlfbmFtZSk6DQogICAgICAgIG5vbmxvY2FsIGRyYXduDQog
ICAgICAgIGRyYXduICs9IDENCiAgICAgICAgZm9sZGVyID0gUk9PVCAvIG5bInBhdGgiXQ0KICAg
ICAgICBub2RlID0geyJuYW1lIjogZGlzcGxheV9uYW1lLCAia2luZCI6IG5bInR5cGUiXSwgInBh
dGgiOiBzdHIoZm9sZGVyKSwNCiAgICAgICAgICAgICAgICAiY29kZSI6IG4uZ2V0KCJjb2RlIiks
ICJsaWZlY3ljbGUiOiBuLmdldCgibGlmZWN5Y2xlIiwgImFjdGl2ZSIpLA0KICAgICAgICAgICAg
ICAgICJ0YWdzIjogbi5nZXQoInRhZ3MiKSBvciBbXSwgImRyYXdlcnMiOiBuLmdldCgiZHJhd2Vy
cyIpIG9yIFtdLA0KICAgICAgICAgICAgICAgICJjbGF1ZGUiOiBpZGVudGl0eShmb2xkZXIpIGlm
IGZvbGRlci5pc19kaXIoKSBlbHNlICIifQ0KICAgICAgICBpZiBub3QgZm9sZGVyLmlzX2Rpcigp
Og0KICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKCJbZ3JhcGgg64W465Oc7J2YIO2PtOuNlCDs
l4bsnYwg4oCUIGdyYXBoLmpzb24g7J6s7Lu07YyM7J28IO2VhOyalF0gJXMiICUgblsicGF0aCJd
KQ0KICAgICAgICBhcHBseV9vdmVycmlkZXMobm9kZSwgblsicGF0aCJdKQ0KICAgICAgICByZXR1
cm4gbm9kZQ0KDQogICAgZGVmIHV0aWxzX29mKG4pOg0KICAgICAgICBvdXQgPSBbXQ0KICAgICAg
ICBmb3IgdSBpbiBuLmdldCgidXRpbHMiKSBvciBbXToNCiAgICAgICAgICAgIGlmIGlzX3NraXBw
ZWQodSk6DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIGQgPSBST09UIC8g
blsicGF0aCJdIC8gdQ0KICAgICAgICAgICAgaWYgZC5pc19kaXIoKToNCiAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKGxpYl9ub2RlKGQpKQ0KICAgICAgICBvdXQuc29ydChrZXk9bGFtYmRhIHg6
IG5hdGtleSh4WyJuYW1lIl0pKQ0KICAgICAgICByZXR1cm4gb3V0DQoNCiAgICBkZWYgZHJhd2Vy
c19vZihuKToNCiAgICAgICAgIiIi7Lm065OcIGRyYXdlcnM6IOykkSBSwrdEIOuwlOuhnCDslYTr
npgg7ISc656N66eMKOqyveuhnOyXkCBgL2Ag7JeG64qUIOqygykg7J6OIOuFuOuTnOuhnC4gUCDs
lYjsnZgg7ISc656N7J2AIO2UhOuhnOygne2KuCDrgrTsmqnrrLzsnbTrnbwg7KeA64+E7JeQ7ISc
IOyDneuetS4iIiINCiAgICAgICAgb3V0ID0gW10NCiAgICAgICAgZm9yIGQgaW4gbi5nZXQoImRy
YXdlcnMiKSBvciBbXToNCiAgICAgICAgICAgIGlmICIvIiBpbiBkIG9yICJcXCIgaW4gZDoNCiAg
ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgZm9sZGVyID0gUk9PVCAvIG5bInBh
dGgiXSAvIGQNCiAgICAgICAgICAgIG91dC5hcHBlbmQoeyJuYW1lIjogZCwgImtpbmQiOiAiZHJh
d2VyIiwgInBhdGgiOiBzdHIoZm9sZGVyKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJjbGF1
ZGUiOiAi7ISc656NKOuCtOyaqeusvCDtj7TrjZQpIOKAlCDsnITqs4Qg7L2U65OcIOyXhuydjC4g
67aA66qoIOy5tOuTnCBkcmF3ZXJzOiDshKDslrguIn0pDQogICAgICAgIG91dC5zb3J0KGtleT1s
YW1iZGEgeDogbmF0a2V5KHhbIm5hbWUiXSkpDQogICAgICAgIHJldHVybiBvdXQNCg0KICAgIGRl
ZiBwcm9qZWN0X25vZGUobik6DQogICAgICAgIHJldHVybiBiYXNlKG4sIFBhdGgoblsicGF0aCJd
KS5uYW1lKQ0KDQogICAgZGVmIGRvbWFpbl9ub2RlKG4sIGRpc3BsYXlfbmFtZSk6DQogICAgICAg
IG5vZGUgPSBiYXNlKG4sIGRpc3BsYXlfbmFtZSkNCiAgICAgICAgY2ggPSBzb3J0ZWQoKHByb2pl
Y3Rfbm9kZShwKSBmb3IgcCBpbiBraWRzLmdldChuWyJwYXRoIl0sIFtdKSBpZiBwWyJ0eXBlIl0g
PT0gInByb2plY3QiKSwNCiAgICAgICAgICAgICAgICAgICAga2V5PWxhbWJkYSB4OiBuYXRrZXko
eFsibmFtZSJdKSkNCiAgICAgICAgY2ggKz0gdXRpbHNfb2YobikgKyBkcmF3ZXJzX29mKG4pDQog
ICAgICAgIGlmIGNoOg0KICAgICAgICAgICAgbm9kZVsiY2hpbGRyZW4iXSA9IGNoDQogICAgICAg
IHJldHVybiBub2RlDQoNCiAgICBkZWYgcm9sZV9ub2RlKG4pOg0KICAgICAgICBub2RlID0gYmFz
ZShuLCBQYXRoKG5bInBhdGgiXSkubmFtZSkNCiAgICAgICAgc3RhbmRhbG9uZSwgZ3JvdXBzID0g
W10sIHt9DQogICAgICAgIGZvciBkIGluIGtpZHMuZ2V0KG5bInBhdGgiXSwgW10pOg0KICAgICAg
ICAgICAgaWYgZFsidHlwZSJdICE9ICJkb21haW4iOg0KICAgICAgICAgICAgICAgIGNvbnRpbnVl
DQogICAgICAgICAgICBncnAsIGJvZHkgPSBzcGxpdF9ncm91cChQYXRoKGRbInBhdGgiXSkubmFt
ZSkNCiAgICAgICAgICAgIGlmIGdycDoNCiAgICAgICAgICAgICAgICBncm91cHMuc2V0ZGVmYXVs
dChncnAsIFtdKS5hcHBlbmQoZG9tYWluX25vZGUoZCwgYm9keSkpDQogICAgICAgICAgICBlbHNl
Og0KICAgICAgICAgICAgICAgIHN0YW5kYWxvbmUuYXBwZW5kKGRvbWFpbl9ub2RlKGQsIFBhdGgo
ZFsicGF0aCJdKS5uYW1lKSkNCiAgICAgICAgc3RhbmRhbG9uZS5zb3J0KGtleT1sYW1iZGEgeDog
bmF0a2V5KHhbIm5hbWUiXSkpDQogICAgICAgIGNoID0gc3RhbmRhbG9uZSArIGdyb3VwX25vZGVz
X29mKFJPT1QgLyBuWyJwYXRoIl0sIGdyb3VwcykgKyB1dGlsc19vZihuKSArIGRyYXdlcnNfb2Yo
bikNCiAgICAgICAgaWYgY2g6DQogICAgICAgICAgICBub2RlWyJjaGlsZHJlbiJdID0gY2gNCiAg
ICAgICAgcmV0dXJuIG5vZGUNCg0KICAgIHJvbGVzID0gc29ydGVkKChyb2xlX25vZGUobikgZm9y
IG4gaW4gbm9kZXMudmFsdWVzKCkgaWYgblsidHlwZSJdID09ICJyb2xlIiksDQogICAgICAgICAg
ICAgICAgICAga2V5PWxhbWJkYSB4OiBuYXRrZXkoeFsibmFtZSJdKSkNCiAgICBpZiBkcmF3biAh
PSBsZW4obm9kZXMpOg0KICAgICAgICBvcnBoYW5zID0gW25bInBhdGgiXSBmb3IgbiBpbiBub2Rl
cy52YWx1ZXMoKQ0KICAgICAgICAgICAgICAgICAgIGlmIG5bInR5cGUiXSAhPSAicm9sZSIgYW5k
IHN0cihQYXRoKG5bInBhdGgiXSkucGFyZW50KSBub3QgaW4gYnlfcGF0aF0NCiAgICAgICAgd2Fy
bmluZ3MuYXBwZW5kKCJbZ3JhcGgg64W465OcICVk6rCcIOykkSAlZOqwnOunjCDqt7jrprwg4oCU
IOu2gOuqqCDsl4bripQg64W465OcICVk6rCcOiAlc10iDQogICAgICAgICAgICAgICAgICAgICAg
ICAlIChsZW4obm9kZXMpLCBkcmF3biwgbGVuKG9ycGhhbnMpLCAiOyAiLmpvaW4ob3JwaGFuc1s6
NV0pKSkNCiAgICB0cmVlID0geyJuYW1lIjogUk9PVC5uYW1lLCAia2luZCI6ICJyb290IiwgImNs
YXVkZSI6IFJPT1RfQ0xBVURFLA0KICAgICAgICAgICAgIm1lbSI6IFJPT1RfTUVNLCAic2V0Ijog
Uk9PVF9TRVQsICJwYXRoIjogc3RyKFJPT1QpLA0KICAgICAgICAgICAgImNoaWxkcmVuIjogcm9s
ZXMgKyByb290X2xpYnMoKX0NCiAgICByZXR1cm4gdHJlZSwgZHJhd24NCg0KDQojIC0tLS0g67Cp
7IudIDI6IO2PtOuNlCDsiqTsupQgKGdyYXBoLmpzb24g7JeG7J2EIOuVjCDtj7TrsLEpIC0tLS0N
Cg0KZGVmIHNjYW5fcHJvamVjdF9ub2RlKGQpOg0KICAgIG4gPSB7Im5hbWUiOiBkLm5hbWUsICJr
aW5kIjogInByb2plY3QiLCAiY2xhdWRlIjogaWRlbnRpdHkoZCksICJwYXRoIjogc3RyKGQpfQ0K
ICAgIGFwcGx5X292ZXJyaWRlcyhuLCBzdHIoZC5yZWxhdGl2ZV90byhST09UKSkpDQogICAgcmV0
dXJuIG4NCg0KDQpkZWYgc2Nhbl9wcm9qZWN0c19vZihkZGlyKToNCiAgICBwcm9qcywgbGlicyA9
IFtdLCBbXQ0KICAgIGZvciBkIGluIHN1YmRpcnMoZGRpcik6DQogICAgICAgIGlmIE5BTUlOR1si
cHJvamVjdCJdLmZ1bGxtYXRjaChkLm5hbWUpOg0KICAgICAgICAgICAgcHJvanMuYXBwZW5kKHNj
YW5fcHJvamVjdF9ub2RlKGQpKQ0KICAgICAgICBlbGlmIGlzX2xpYihkLm5hbWUpOg0KICAgICAg
ICAgICAgbGlicy5hcHBlbmQobGliX25vZGUoZCkpDQogICAgcHJvanMuc29ydChrZXk9bGFtYmRh
IHg6IG5hdGtleSh4WyJuYW1lIl0pKQ0KICAgIGxpYnMuc29ydChrZXk9bGFtYmRhIHg6IG5hdGtl
eSh4WyJuYW1lIl0pKQ0KICAgIHJldHVybiBwcm9qcyArIGxpYnMNCg0KDQpkZWYgc2Nhbl9kb21h
aW5fbm9kZShkZGlyLCBkaXNwbGF5X25hbWUpOg0KICAgIG4gPSB7Im5hbWUiOiBkaXNwbGF5X25h
bWUsICJraW5kIjogImRvbWFpbiIsICJjbGF1ZGUiOiBpZGVudGl0eShkZGlyKSwgInBhdGgiOiBz
dHIoZGRpcil9DQogICAgY2ggPSBzY2FuX3Byb2plY3RzX29mKGRkaXIpDQogICAgaWYgY2g6DQog
ICAgICAgIG5bImNoaWxkcmVuIl0gPSBjaA0KICAgIGFwcGx5X292ZXJyaWRlcyhuLCBzdHIoZGRp
ci5yZWxhdGl2ZV90byhST09UKSkpDQogICAgcmV0dXJuIG4NCg0KDQpkZWYgc2Nhbl9yb2xlX25v
ZGUocmRpcik6DQogICAgc3RhbmRhbG9uZSwgbGlicywgZ3JvdXBzID0gW10sIFtdLCB7fQ0KICAg
IGZvciBkIGluIHN1YmRpcnMocmRpcik6DQogICAgICAgIGlmIE5BTUlOR1siZG9tYWluIl0uZnVs
bG1hdGNoKGQubmFtZSk6DQogICAgICAgICAgICBncnAsIGJvZHkgPSBzcGxpdF9ncm91cChkLm5h
bWUpDQogICAgICAgICAgICBpZiBncnA6DQogICAgICAgICAgICAgICAgZ3JvdXBzLnNldGRlZmF1
bHQoZ3JwLCBbXSkuYXBwZW5kKHNjYW5fZG9tYWluX25vZGUoZCwgYm9keSkpDQogICAgICAgICAg
ICBlbHNlOg0KICAgICAgICAgICAgICAgIHN0YW5kYWxvbmUuYXBwZW5kKHNjYW5fZG9tYWluX25v
ZGUoZCwgZC5uYW1lKSkNCiAgICAgICAgZWxpZiBpc19saWIoZC5uYW1lKToNCiAgICAgICAgICAg
IGxpYnMuYXBwZW5kKGxpYl9ub2RlKGQpKQ0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgc3Rh
bmRhbG9uZS5hcHBlbmQoc2Nhbl9kb21haW5fbm9kZShkLCBkLm5hbWUpKQ0KICAgICAgICAgICAg
d2FybmluZ3MuYXBwZW5kKCJb67mE7ZGc7KSAIOuPhOuplOyduCjsoJXqt5zsi50g67aI7J287LmY
KSDtj6ztlahdICVzIiAlIGQucmVsYXRpdmVfdG8oUk9PVCkpDQogICAgc3RhbmRhbG9uZS5zb3J0
KGtleT1sYW1iZGEgeDogbmF0a2V5KHhbIm5hbWUiXSkpDQogICAgbGlicy5zb3J0KGtleT1sYW1i
ZGEgeDogbmF0a2V5KHhbIm5hbWUiXSkpDQogICAgY2ggPSBzdGFuZGFsb25lICsgZ3JvdXBfbm9k
ZXNfb2YocmRpciwgZ3JvdXBzKSArIGxpYnMNCiAgICBuID0geyJuYW1lIjogcmRpci5uYW1lLCAi
a2luZCI6ICJyb2xlIiwgImNsYXVkZSI6IGlkZW50aXR5KHJkaXIpLCAicGF0aCI6IHN0cihyZGly
KX0NCiAgICBpZiBjaDoNCiAgICAgICAgblsiY2hpbGRyZW4iXSA9IGNoDQogICAgcmV0dXJuIG4N
Cg0KDQpkZWYgYnVpbGRfZnJvbV9zY2FuKCk6DQogICAgcm9sZXMgPSBbc2Nhbl9yb2xlX25vZGUo
ZCkgZm9yIGQgaW4gc3ViZGlycyhST09UKSBpZiBOQU1JTkdbInJvbGUiXS5mdWxsbWF0Y2goZC5u
YW1lKV0NCiAgICByb2xlcy5zb3J0KGtleT1sYW1iZGEgeDogbmF0a2V5KHhbIm5hbWUiXSkpDQog
ICAgcmV0dXJuIHsibmFtZSI6IFJPT1QubmFtZSwgImtpbmQiOiAicm9vdCIsICJjbGF1ZGUiOiBS
T09UX0NMQVVERSwNCiAgICAgICAgICAgICJtZW0iOiBST09UX01FTSwgInNldCI6IFJPT1RfU0VU
LCAicGF0aCI6IHN0cihST09UKSwNCiAgICAgICAgICAgICJjaGlsZHJlbiI6IHJvbGVzICsgcm9v
dF9saWJzKCl9DQoNCg0KIyAtLS0tIOqzteyaqTog7KeR6rOEwrfstpzroKUgLS0tLQ0KDQpkZWYg
Y291bnRfbm9kZXMobik6DQogICAgcmV0dXJuIDEgKyBzdW0oY291bnRfbm9kZXMoYykgZm9yIGMg
aW4gbi5nZXQoImNoaWxkcmVuIiwgW10pKQ0KDQoNCmRlZiBjb3VudF9raW5kcyhuLCBhY2M9Tm9u
ZSk6DQogICAgYWNjID0gYWNjIGlmIGFjYyBpcyBub3QgTm9uZSBlbHNlIHt9DQogICAgYWNjW24u
Z2V0KCJraW5kIildID0gYWNjLmdldChuLmdldCgia2luZCIpLCAwKSArIDENCiAgICBmb3IgYyBp
biBuLmdldCgiY2hpbGRyZW4iLCBbXSk6DQogICAgICAgIGNvdW50X2tpbmRzKGMsIGFjYykNCiAg
ICByZXR1cm4gYWNjDQoNCg0KTEVWRUxfQllfS0lORCA9IHsicm9sZSI6ICJSIiwgImRvbWFpbiI6
ICJEIiwgInByb2plY3QiOiAiUCIsICJncm91cCI6ICJHIiwgInV0aWwiOiAiVSIsICJkcmF3ZXIi
OiAi7ISc656NIn0NCg0KDQpkZWYgY29tcGFjdF9ub2RlKG5vZGUpOg0KICAgICIiIuuplO2DgOqw
gCDrp47snYAg64K067aAIOuFuOuTnCDihpIg7KeA64+EKG1vZGVybikg7J2YIOqwhOqysO2VnCDr
qqjslpEuIGRlc2MgPSDsoJXssrTshLEg66y464uoKO2ItO2MgSksIGxpZmVjeWNsZSDsnYAgYWN0
aXZlIOqwgCDslYTri5Ag65WM66eMLiIiIg0KICAgIHJhd19wYXRoID0gUGF0aChub2RlLmdldCgi
cGF0aCIsICIiKSkNCiAgICB0cnk6DQogICAgICAgIGRpc3BsYXlfcGF0aCA9IHJhd19wYXRoLnJl
bGF0aXZlX3RvKFJPT1QpLmFzX3Bvc2l4KCkNCiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIE9TRXJy
b3IpOg0KICAgICAgICBkaXNwbGF5X3BhdGggPSByYXdfcGF0aC5hc19wb3NpeCgpDQogICAgb3V0
ID0gew0KICAgICAgICAibmFtZSI6IG5vZGVbIm5hbWUiXSwNCiAgICAgICAgImxldmVsIjogTEVW
RUxfQllfS0lORC5nZXQobm9kZS5nZXQoImtpbmQiKSwgIj8iKSwNCiAgICAgICAgInBhdGgiOiBk
aXNwbGF5X3BhdGgsDQogICAgfQ0KICAgIGRlc2MgPSBub2RlLmdldCgiY2xhdWRlIikgb3IgIiIN
CiAgICBsYyA9IG5vZGUuZ2V0KCJsaWZlY3ljbGUiLCAiYWN0aXZlIikNCiAgICBpZiBsYyAhPSAi
YWN0aXZlIjoNCiAgICAgICAgb3V0WyJsaWZlY3ljbGUiXSA9IGxjDQogICAgICAgIGRlc2MgPSAo
Ilslc10gIiAlIGxjKSArIGRlc2MNCiAgICBpZiBkZXNjOg0KICAgICAgICBvdXRbImRlc2MiXSA9
IGRlc2MNCiAgICBvdXRbImNoaWxkcmVuIl0gPSBbY29tcGFjdF9ub2RlKGNoaWxkKSBmb3IgY2hp
bGQgaW4gbm9kZS5nZXQoImNoaWxkcmVuIiwgW10pXQ0KICAgIHJldHVybiBvdXQNCg0KDQpkZWYg
d3JpdGVfYnl0ZXNfYXRvbWljKHBhdGgsIGRhdGEpOg0KICAgICIiIldyaXRlIGJ5dGVzIHRocm91
Z2ggYSBzYW1lLWRpcmVjdG9yeSB0ZW1wb3JhcnkgZmlsZSBhbmQgcmVwbGFjZS4iIiINCiAgICB0
ZW1wX3BhdGggPSBOb25lDQogICAgdHJ5Og0KICAgICAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVt
cG9yYXJ5RmlsZSgNCiAgICAgICAgICAgICAgICBtb2RlPSd3YicsDQogICAgICAgICAgICAgICAg
ZGlyPXN0cihwYXRoLnBhcmVudCksIHByZWZpeD0nLicgKyBwYXRoLm5hbWUgKyAnLicsDQogICAg
ICAgICAgICAgICAgc3VmZml4PScudG1wJywgZGVsZXRlPUZhbHNlKSBhcyBoYW5kbGU6DQogICAg
ICAgICAgICB0ZW1wX3BhdGggPSBQYXRoKGhhbmRsZS5uYW1lKQ0KICAgICAgICAgICAgaGFuZGxl
LndyaXRlKGRhdGEpDQogICAgICAgICAgICBoYW5kbGUuZmx1c2goKQ0KICAgICAgICAgICAgb3Mu
ZnN5bmMoaGFuZGxlLmZpbGVubygpKQ0KICAgICAgICB0ZW1wX3BhdGgucmVwbGFjZShwYXRoKQ0K
ICAgICAgICB0ZW1wX3BhdGggPSBOb25lDQogICAgZmluYWxseToNCiAgICAgICAgaWYgdGVtcF9w
YXRoIGlzIG5vdCBOb25lIGFuZCB0ZW1wX3BhdGguZXhpc3RzKCk6DQogICAgICAgICAgICB0ZW1w
X3BhdGgudW5saW5rKCkNCg0KDQojIG1vZGVybiDsp4Drj4TsnZgg7J2066aEIOy5uOyXkCDsoJXs
srTshLEg7Yi07YyB7J2EIOuLrOyVhCDso7zripQg7ZWcIOuyiOynnOumrCjrqbHrk7EpIEpTIO2M
qOy5mA0KSlNfTkFNRV9PTEQgPSAiPHNwYW4gY2xhc3M9XCJuYW1lXCI+Jytlc2Mobi5uYW1lKSsn
PC9zcGFuPiINCkpTX05BTUVfTkVXID0gIjxzcGFuIGNsYXNzPVwibmFtZVwiIHRpdGxlPVwiJytl
c2Mobi5kZXNjfHwnJykrJ1wiPicrZXNjKG4ubmFtZSkrJzwvc3Bhbj4iDQoNCg0KTUFQX0hUTUwg
PSByIiIiPCFkb2N0eXBlIGh0bWw+DQo8aHRtbCBsYW5nPSJrbyI+PG1ldGEgY2hhcnNldD0idXRm
LTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5p
dGlhbC1zY2FsZT0xIj4NCjx0aXRsZT5fX1RJVExFX188L3RpdGxlPjxzdHlsZT4NCmJvZHl7bWFy
Z2luOjA7YmFja2dyb3VuZDojZjVmNmY4O2NvbG9yOiMxODJiM2E7Zm9udDoxNXB4LzEuNiBzeXN0
ZW0tdWksIuunkeydgCDqs6DrlJUiLHNhbnMtc2VyaWZ9aGVhZGVyLG1haW4sZm9vdGVye21heC13
aWR0aDoxMTIwcHg7bWFyZ2luOmF1dG87cGFkZGluZzoyMHB4fWhlYWRlcntib3JkZXItYm90dG9t
OjFweCBzb2xpZCAjZDZkZGUzfWgxe21hcmdpbjowIDAgNnB4O2ZvbnQtc2l6ZToyNnB4fXB7bWFy
Z2luOjZweCAwO2NvbG9yOiM1MzY1Nzh9aW5wdXR7cGFkZGluZzoxMHB4O3dpZHRoOm1pbig5MCUs
NTMwcHgpO2JvcmRlcjoxcHggc29saWQgI2MzY2ZkYTtib3JkZXItcmFkaXVzOjZweH1idXR0b257
cGFkZGluZzo4cHggMTJweDtib3JkZXI6MXB4IHNvbGlkICNjM2NmZGE7Ym9yZGVyLXJhZGl1czo2
cHg7YmFja2dyb3VuZDp3aGl0ZTtjdXJzb3I6cG9pbnRlcn11bHtsaXN0LXN0eWxlOm5vbmU7cGFk
ZGluZy1sZWZ0OjIzcHh9bWFpbj51bHtwYWRkaW5nLWxlZnQ6MH1saXttYXJnaW46N3B4IDB9c3Vt
bWFyeXtjdXJzb3I6cG9pbnRlcn1jb2Rle2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM1Njd9LmxhYmVs
e2JhY2tncm91bmQ6d2hpdGU7cGFkZGluZzo1cHggOXB4O2JvcmRlci1yYWRpdXM6NXB4fS5raW5k
e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjM4cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6IzJk
Njg4ZDtmb250LXdlaWdodDo3MDB9LmRlc2N7bWFyZ2luLWxlZnQ6MzhweDtmb250LXNpemU6MTNw
eDtjb2xvcjojNjA3MDgzfWZvb3Rlcntjb2xvcjojNjA3MDgzO2ZvbnQtc2l6ZToxMnB4O2JvcmRl
ci10b3A6MXB4IHNvbGlkICNkNmRkZTN9DQo8L3N0eWxlPjxoZWFkZXI+PGgxPl9fVElUTEVfXzwv
aDE+PHA+7Jet7ZWgIOKGkiDrtoTslbwg4oaSIO2UhOuhnOygne2KuOulvCDrs7Tsl6wg7KSN64uI
64ukLiDqt7jro7nsnYAg7KeA64+E7JeQ7ISc66eMIOustuyduCDsnbTrpoTsnoXri4jri6QuPC9w
PjxpbnB1dCBpZD0icSIgcGxhY2Vob2xkZXI9Iu2PtOuNlCDsnbTrpoTCt+qyveuhnMK37ISk66qF
IOywvuq4sCI+PGJ1dHRvbiBpZD0ib3BlbiI+66qo65GQIO2OvOy5mOq4sDwvYnV0dG9uPiA8YnV0
dG9uIGlkPSJjbG9zZSI+66qo65GQIOygkeq4sDwvYnV0dG9uPjwvaGVhZGVyPg0KPG1haW4gaWQ9
InRyZWUiPjwvbWFpbj48Zm9vdGVyPl9fRk9PVEVSX188L2Zvb3Rlcj48c2NyaXB0Pg0KJ3VzZSBz
dHJpY3QnO2NvbnN0IFRSRUU9X19UUkVFX187Y29uc3Qgcm9vdD1kb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndHJlZScpOw0KY29uc3QgcT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncScpOw0KZnVu
Y3Rpb24gaGl0KG4scyl7cmV0dXJuICFzfHxbbi5uYW1lLG4ucGF0aCxuLmRlc2N8fCcnXS5qb2lu
KCcgJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzKXx8KG4uY2hpbGRyZW58fFtdKS5zb21lKGM9
PmhpdChjLHMpKX0NCmZ1bmN0aW9uIG5vZGUobixzKXtpZighaGl0KG4scykpcmV0dXJuIG51bGw7
Y29uc3QgbGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTtjb25zdCBraWRzPShuLmNoaWxk
cmVufHxbXSkuZmlsdGVyKGM9PmhpdChjLHMpKTtjb25zdCB3cmFwPWRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoa2lkcy5sZW5ndGg/J2RldGFpbHMnOidkaXYnKTtpZihraWRzLmxlbmd0aCl3cmFwLm9w
ZW49dHJ1ZTtjb25zdCB0aXRsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGtpZHMubGVuZ3RoPydz
dW1tYXJ5JzonZGl2Jyk7dGl0bGUuY2xhc3NOYW1lPSdsYWJlbCc7dGl0bGUudGl0bGU9bi5wYXRo
O2NvbnN0IGtpbmQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO2tpbmQuY2xhc3NOYW1l
PSdraW5kJztraW5kLnRleHRDb250ZW50PW4ubGV2ZWw7dGl0bGUuYXBwZW5kKGtpbmQsZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUobi5uYW1lKSk7d3JhcC5hcHBlbmQodGl0bGUpO2lmKG4uZGVzYyl7
Y29uc3QgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtkLmNsYXNzTmFtZT0nZGVzYyc7
ZC50ZXh0Q29udGVudD1uLmRlc2M7d3JhcC5hcHBlbmQoZCl9aWYoa2lkcy5sZW5ndGgpe2NvbnN0
IHVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7a2lkcy5mb3JFYWNoKGM9PnVsLmFwcGVu
ZChub2RlKGMscykpKTt3cmFwLmFwcGVuZCh1bCl9bGkuYXBwZW5kKHdyYXApO3JldHVybiBsaX0N
CmZ1bmN0aW9uIGRyYXcoKXtyb290LnJlcGxhY2VDaGlsZHJlbigpO2NvbnN0IHVsPWRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7Y29uc3Qgcz1xLnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgp
O1RSRUUuZm9yRWFjaChuPT57Y29uc3QgZT1ub2RlKG4scyk7aWYoZSl1bC5hcHBlbmQoZSl9KTty
b290LmFwcGVuZCh1bCl9cS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsZHJhdyk7ZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ29wZW4nKS5vbmNsaWNrPSgpPT5yb290LnF1ZXJ5U2VsZWN0b3JBbGwo
J2RldGFpbHMnKS5mb3JFYWNoKGU9PmUub3Blbj10cnVlKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY2xvc2UnKS5vbmNsaWNrPSgpPT5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5m
b3JFYWNoKGU9PmUub3Blbj1mYWxzZSk7ZHJhdygpOw0KPC9zY3JpcHQ+PC9odG1sPiIiIg0KDQoN
CmRlZiBlbWl0KHRyZWUsIHNvdXJjZV9sYWJlbCwgYnJlYWtkb3duKToNCiAgICBpbXBvcnQgaHRt
bA0KICAgIGJnLmFzc2VydF9sb2NhbChIVE1MKQ0KICAgIGJnLmFzc2VydF9sb2NhbChIVE1MLnBh
cmVudCAvIChIVE1MLm5hbWUgKyAiLmJhayIpKQ0KICAgIGNvbXBhY3RfdHJlZSA9IFtjb21wYWN0
X25vZGUoY2hpbGQpIGZvciBjaGlsZCBpbiB0cmVlLmdldCgiY2hpbGRyZW4iLCBbXSldDQogICAg
cGF5bG9hZCA9IGpzb24uZHVtcHMoY29tcGFjdF90cmVlLCBlbnN1cmVfYXNjaWk9RmFsc2UsIHNl
cGFyYXRvcnM9KCIsIiwgIjoiKSkNCiAgICBwYXlsb2FkID0gcGF5bG9hZC5yZXBsYWNlKCI8LyIs
ICI8XFwvIikucmVwbGFjZShjaHIoMHgyMDI4KSwgIlxcdTIwMjgiKS5yZXBsYWNlKGNocigweDIw
MjkpLCAiXFx1MjAyOSIpDQogICAgbm9kZXMgPSBzdW0oY291bnRfbm9kZXMoY2hpbGQpIGZvciBj
aGlsZCBpbiBjb21wYWN0X3RyZWUpDQogICAgZm9vdGVyID0gZiLsnpDrj5kg7IOd7ISxIHtkYXRl
dGltZS5kYXRldGltZS5ub3coKTolWS0lbS0lZCAlSDolTX0gwrcge25vZGVzfeqwnCDrhbjrk5wg
KHticmVha2Rvd259KSDCtyDsnoXroKUge3NvdXJjZV9sYWJlbH0gwrcg7Jm467aAIOyXsOqysCDs
l4bsnYwiDQogICAgcmVuZGVyZWQgPSAoTUFQX0hUTUwucmVwbGFjZSgiX19UUkVFX18iLCBwYXls
b2FkKQ0KICAgICAgICAgICAgICAgIC5yZXBsYWNlKCJfX0ZPT1RFUl9fIiwgaHRtbC5lc2NhcGUo
Zm9vdGVyKSkNCiAgICAgICAgICAgICAgICAucmVwbGFjZSgiX19USVRMRV9fIiwgaHRtbC5lc2Nh
cGUoUk9PVC5uYW1lICsgIiDqtazsobDsp4Drj4QiKSkpDQogICAgaWYgSFRNTC5leGlzdHMoKToN
CiAgICAgICAgd3JpdGVfYnl0ZXNfYXRvbWljKEhUTUwucGFyZW50IC8gKEhUTUwubmFtZSArICIu
YmFrIiksIEhUTUwucmVhZF9ieXRlcygpKQ0KICAgIHdyaXRlX2J5dGVzX2F0b21pYyhIVE1MLCBy
ZW5kZXJlZC5lbmNvZGUoInV0Zi04IikpDQogICAgcmV0dXJuIG5vZGVzDQoNCg0KZGVmIG1haW4o
KToNCiAgICBhcCA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSLsnpHsl4Xq
s7XqsIQg6rWs7KGwIOyngOuPhCDsg53shLEgKGdyYXBoLmpzb24g6riw67CYLCDsl4bsnLzrqbQg
7Y+0642UIOyKpOy6lCkiKQ0KICAgIGFwLmFkZF9hcmd1bWVudCgiLS1zY2FuIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgaGVscD0iZ3JhcGguanNvbiDsnYQg66y07Iuc7ZWY6rOgIO2PtOuNlCDsiqTs
upTsnLzroZwg6re466aw64ukIikNCiAgICBhID0gYXAucGFyc2VfYXJncygpDQoNCiAgICBiZy5h
c3NlcnRfdHJlZV9sb2NhbChST09UKQ0KICAgIGJnLmFzc2VydF9sb2NhbChHUkFQSCkNCiAgICBp
ZiBHUkFQSC5leGlzdHMoKSBhbmQgbm90IGEuc2NhbjoNCiAgICAgICAgZ3JhcGggPSBqc29uLmxv
YWRzKEdSQVBILnJlYWRfdGV4dChlbmNvZGluZz0ndXRmLTgnKSkNCiAgICAgICAgZm9yIG5vZGUg
aW4gZ3JhcGhbIm5vZGVzIl0udmFsdWVzKCk6DQogICAgICAgICAgICBiZy5hc3NlcnRfbG9jYWwo
Uk9PVCAvIG5vZGVbInBhdGgiXSkNCiAgICAgICAgdHJlZSwgZHJhd24gPSBidWlsZF9mcm9tX2dy
YXBoKGdyYXBoKQ0KICAgICAgICBzb3VyY2VfbGFiZWwgPSAiZ3JhcGguanNvbiAlcyIgJSAoZ3Jh
cGguZ2V0KCJnZW5lcmF0ZWQiLCAiIilbOjE2XSBvciAiIikNCiAgICAgICAgZ3JhcGhfY291bnQg
PSBsZW4oZ3JhcGhbIm5vZGVzIl0pDQogICAgZWxzZToNCiAgICAgICAgaWYgbm90IGEuc2NhbjoN
CiAgICAgICAgICAgIHdhcm5pbmdzLmFwcGVuZCgiW2dyYXBoLmpzb24g7JeG7J2MIOKAlCDtj7Tr
jZQg7Iqk7LqU7Jy866GcIO2PtOuwsV0gJXMiICUgR1JBUEgpDQogICAgICAgIHRyZWUgPSBidWls
ZF9mcm9tX3NjYW4oKQ0KICAgICAgICBkcmF3biA9IGdyYXBoX2NvdW50ID0gTm9uZQ0KICAgICAg
ICBzb3VyY2VfbGFiZWwgPSAi7Y+0642UIOyKpOy6lCINCg0KICAgIGtpbmRzID0gY291bnRfa2lu
ZHModHJlZSkNCiAgICByZHAgPSBraW5kcy5nZXQoInJvbGUiLCAwKSArIGtpbmRzLmdldCgiZG9t
YWluIiwgMCkgKyBraW5kcy5nZXQoInByb2plY3QiLCAwKQ0KICAgIGdyb3VwcyA9IGtpbmRzLmdl
dCgiZ3JvdXAiLCAwKQ0KICAgIHV0aWxzID0ga2luZHMuZ2V0KCJ1dGlsIiwgMCkNCiAgICBkcmF3
ZXJzID0ga2luZHMuZ2V0KCJkcmF3ZXIiLCAwKQ0KICAgIGJyZWFrZG93biA9ICJSwrdEwrdQICVk
IMK3IOq3uOujuSAlZCDCtyDsnKDti7ggJWQgwrcg7ISc656NICVkIiAlIChyZHAsIGdyb3Vwcywg
dXRpbHMsIGRyYXdlcnMpDQogICAgbm9kZXMgPSBlbWl0KHRyZWUsIHNvdXJjZV9sYWJlbCwgYnJl
YWtkb3duKQ0KICAgIHByaW50KCJb7JmE66OMXSAlZOqwnCDrhbjrk5wg7IOd7ISxICglcykgwrcg
7J6F66ClID0gJXMgwrcg6riw7KG0IOyngOuPhOuKlCDqsJnsnYAg7J2066aE7J2YIC5iYWvsnLzr
oZwg67O07KG0IiAlIChub2RlcywgYnJlYWtkb3duLCBzb3VyY2VfbGFiZWwpKQ0KICAgIGlmIGdy
YXBoX2NvdW50IGlzIG5vdCBOb25lOg0KICAgICAgICBvayA9IChkcmF3biA9PSBncmFwaF9jb3Vu
dCA9PSByZHApDQogICAgICAgIHByaW50KCJb64yA7KGwXSBncmFwaC5qc29uIOuFuOuTnCAlZCDC
tyDqt7jrprwgUsK3RMK3UCAlZCDCtyDqt7jro7kg6rCA7IOBIOuFuOuTnCAlZCDihpIgJXMiDQog
ICAgICAgICAgICAgICUgKGdyYXBoX2NvdW50LCByZHAsIGdyb3VwcywgIuydvOy5mCIgaWYgb2sg
ZWxzZSAi67aI7J287LmYKOqyveqzoCDssLjsobApIikpDQogICAgaWYgd2FybmluZ3M6DQogICAg
ICAgIHByaW50KCJcblvqsr3qs6AgJWTqsbQg4oCUIOyEpOuqheydtCDruYTqsbDrgpgg67mE7ZGc
7KSAXSIgJSBsZW4od2FybmluZ3MpKQ0KICAgICAgICBmb3IgdyBpbiB3YXJuaW5nczoNCiAgICAg
ICAgICAgIHByaW50KCIgIC0gIiArIHcpDQogICAgZWxzZToNCiAgICAgICAgcHJpbnQoIuqyveqz
oCDsl4bsnYwuIikNCg0KDQppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOg0KICAgIG1haW4oKQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/check_fresh.py","encoding":"base64","size":6772,"runtimeSha256":"0b07e9f8b0c512e803c042bb7b8f5f0ba741ab67e720bd2d3ed1e26051bf4413","normalizedSha256":"fb2a2627f78fe9f2d076c08d33100bba4d5631734d1d6cf5caa6526276bde1b7"} -->
```base64
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCiIiIuyYqO2GqOuhnOyngCDsi6DshKDrj4Qg7KCQ6rKA
IOKAlCDqt7jrnpjtlIQoZ3JhcGguanNvbinqsIAg7Y+0642UIOyLpO2DnOyZgCDqsJnsnYDqsIDr
pbwg7KeA66y47Jy866GcIOu5hOq1kO2VnOuLpC4NCg0K7JeQ7J207KCE7Yq4IOykkeumvTog7Iic
7IiYIO2MjOydtOyNrC4g7YG066Gc65Oc7L2U65Oc64qUIO2bheydtCDsnpDrj5nsnLzroZwg67aA
66W06rOgLCDsvZTrjbHsiqTripQg7IS47IWYIOyLnOyekSDrlYwg7KeB7KCRIO2VnCDrsogg67aA
66W464ukKOujqO2KuCBBR0VOVFMubWQpLg0KDQogIHB5dGhvbiBfb250b2xvZ3kvY2hlY2tfZnJl
c2gucHkgICAgICAgICAgICAgICAgICMg7IKs656M7JqpIO2VnCDspIQg67O06rOgLCDsooXro4wg
MCjqsJnsnYwpIC8gMyjrgqHsnYwpDQogIHB5dGhvbiBfb250b2xvZ3kvY2hlY2tfZnJlc2gucHkg
LS1ob29rIHNlc3Npb24gICMg7YG066Gc65Oc7L2U65OcIFNlc3Npb25TdGFydCDtm4U6IOuCoeyV
mOydhCDrlYzrp4wg7Y+J66y4IO2VnCDspIQo7Luo7YWN7Iqk7Yq47JeQIOyLpOumvCkNCiAgcHl0
aG9uIF9vbnRvbG9neS9jaGVja19mcmVzaC5weSAtLWhvb2sgcG9zdC10b29sICAjIFBvc3RUb29s
VXNlIO2bhTogc3RkaW4g7J2YIOuPhOq1rCDtmLjstpzsnbQgUi9EL1Ag6rWs7KGw66W8IOqxtOuT
nOuguOydhCDrlYzrp4wg7J6s7Lu07YyM7J28IO2bhCBKU09OIOyVjOumvA0KICBweXRob24gX29u
dG9sb2d5L2NoZWNrX2ZyZXNoLnB5IC0tY29tcGlsZS1pZi1zdGFsZSAgIyDrgqHslZjsnLzrqbQg
6re4IOyekOumrOyXkOyEnCAtLWNvbXBpbGUNCg0K7ISk6rOEIOybkOy5mTog7ZuFIOyYpOulmOuK
lCBleGl0IDAsIOyImOuPmSDtjJDrj4Ug7Jik66WY64qUIGV4aXQgMuuhnCDqtazrtoTtlZzri6Qu
IOybkOuzuCDtjIzsnbzsnYAg6rG065Oc66as7KeAIOyViuuKlOuLpCjsnqzsu7TtjIzsnbzsnYAg
Z3JhcGguanNvbiAx6rCc66eMIOyUgCkuDQoiIiINCmltcG9ydCBpbw0KaW1wb3J0IGpzb24NCmlt
cG9ydCBvcw0KaW1wb3J0IHJlDQppbXBvcnQgc3VicHJvY2Vzcw0KaW1wb3J0IHN5cw0KaW1wb3J0
IHRpbWUNCmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aA0KDQojIOuemO2NvOulvCDrqqjrk4gg67OA
7IiY7JeQIOu2meyeoeyVhCDrkZTri6Qg4oCUIGJ1aWxkX2dyYXBoIOqwgCBpbXBvcnQg7IucIHN5
cy5zdGRvdXQg7J2EIOuLpOyLnCDqsJDsi7jripTrjbAsIOydtCDssLjsobDqsIAg7JeG7Jy866m0
DQojIOyyqyDrnpjtjbzqsIAgR0Mg65CY66mwIOqzteyaqSDrsoTtjbzrpbwg64ur7JWEICJJL08g
b3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIiDsnbQg64Kc64ukKDIwMjYtMDktMDQg7Iuk7KadKS4N
Cl9TVERPVVQgPSBpby5UZXh0SU9XcmFwcGVyKHN5cy5zdGRvdXQuYnVmZmVyLCBlbmNvZGluZz0i
dXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQ0Kc3lzLnN0ZG91dCA9IF9TVERPVVQNCkhFUkUgPSBQ
YXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50DQpST09UID0gSEVSRS5wYXJlbnQNCkdSQVBI
ID0gSEVSRSAvICJncmFwaC5qc29uIg0KUFkgPSBzeXMuZXhlY3V0YWJsZQ0KTE9HID0gSEVSRSAv
ICJjaGVja19mcmVzaC5sb2ciICAgICAgICAgICMg7LWc6re8IO2MkOyglSDrqocg7KSEKO2ajOyg
hCkNCg0KIyDrj4Tqtawg7Zi47LacIOykkSAi6rWs7KGw66W8IOqxtOuTnOumsCDqsoMi7Jy866Gc
IOuzvCDsi6DtmLgg4oCUIOydtOqyg+ydtCDsl4bsnLzrqbQg7KeA66y464+EIOyerOyngCDslYrr
ipTri6Qo66y47IScIOyekeyXheydgCAwIOu5hOyaqSkNClNUUlVDVF9DTUQgPSByZS5jb21waWxl
KHIiXGIobXZ8bWtkaXJ8cm1kaXJ8cmVuYW1lfE1vdmUtSXRlbXxSZW5hbWUtSXRlbXxOZXctSXRl
bXxSZW1vdmUtSXRlbXxyb2JvY29weXxzaHV0aWxcLm1vdmV8b3NcLnJlbmFtZXxcLuygleumrOuw
seyXhXxfdHJhc2gpXGIiLCByZS5JKQ0KSElFUl9QQVRIID0gcmUuY29tcGlsZShyIltcXC9dKD86
44CWW17jgJbjgJddK+OAlyk/W1JEUF1cZFxkKD86XC5cZFxkKT8tIikgICAjIFIvRC9QIO2PtOuN
lCDsvZTrk5zqsIAg6rK966Gc7JeQIOyeiOydjA0KDQoNCmRlZiBsb2dfbGluZShtc2cpOg0KICAg
IHRyeToNCiAgICAgICAgaW1wb3J0IGJ1aWxkX2dyYXBoIGFzIGJnDQogICAgICAgIGJnLmFzc2Vy
dF9sb2NhbChMT0cpDQogICAgICAgIGxpbmVzID0gTE9HLnJlYWRfdGV4dChlbmNvZGluZz0idXRm
LTgiKS5zcGxpdGxpbmVzKClbLTIwMDpdIGlmIExPRy5leGlzdHMoKSBlbHNlIFtdDQogICAgICAg
IGxpbmVzLmFwcGVuZChmInt0aW1lLnN0cmZ0aW1lKCclWS0lbS0lZCAlSDolTTolUycpfSB7bXNn
fSIpDQogICAgICAgIExPRy53cml0ZV90ZXh0KCJcbiIuam9pbihsaW5lcykgKyAiXG4iLCBlbmNv
ZGluZz0idXRmLTgiKQ0KICAgIGV4Y2VwdCBFeGNlcHRpb246DQogICAgICAgIHBhc3MNCg0KDQpk
ZWYgY3VycmVudF9mcCgpOg0KICAgIHN5cy5wYXRoLmluc2VydCgwLCBzdHIoSEVSRSkpDQogICAg
aW1wb3J0IGJ1aWxkX2dyYXBoIGFzIGJnICAjIG5vcWE6IEU0MDINCiAgICByZXR1cm4gYmcudHJl
ZV9maW5nZXJwcmludCgpDQoNCg0KZGVmIGdyYXBoX2ZwKCk6DQogICAgdHJ5Og0KICAgICAgICBp
bXBvcnQgYnVpbGRfZ3JhcGggYXMgYmcNCiAgICAgICAgZyA9IGpzb24ubG9hZHMoYmcuYXNzZXJ0
X2xvY2FsKEdSQVBIKS5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpDQogICAgICAgIHJldHVy
biBnLmdldCgidHJlZV9maW5nZXJwcmludCIpLCBnLmdldCgidHJlZV9jb3VudCIpLCBnLmdldCgi
Z2VuZXJhdGVkIiwgIiIpDQogICAgZXhjZXB0IEV4Y2VwdGlvbjoNCiAgICAgICAgcmV0dXJuIE5v
bmUsIE5vbmUsICIiDQoNCg0KZGVmIGNvbXBhcmUoKToNCiAgICAiIiIoc3RhbGU6IGJvb2wsIOup
lOyLnOyngCkiIiINCiAgICBnZnAsIGdjbnQsIGdlbiA9IGdyYXBoX2ZwKCkNCiAgICBpZiBnZnAg
aXMgTm9uZToNCiAgICAgICAgcmV0dXJuIFRydWUsICLqt7jrnpjtlITsl5Ag7KeA66y47J20IOyX
huqxsOuCmCDtjIzsnbzsnbQg7JeG7J2MIOKAlCBgcHl0aG9uIF9vbnRvbG9neS9idWlsZF9ncmFw
aC5weSAtLWNvbXBpbGVgIO2VhOyalCINCiAgICBmcCwgY250ID0gY3VycmVudF9mcCgpDQogICAg
aW1wb3J0IGJ1aWxkX2dyYXBoIGFzIGJnDQogICAgZ3JhcGggPSBqc29uLmxvYWRzKGJnLmFzc2Vy
dF9sb2NhbChHUkFQSCkucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIpKQ0KICAgIHN0b3JlZF9z
b3VyY2UgPSBncmFwaC5nZXQoInNvdXJjZV9maW5nZXJwcmludF92OCIpDQogICAgc291cmNlX21h
dGNoZXMgPSBzdG9yZWRfc291cmNlIGlzIG5vdCBOb25lIGFuZCBzdG9yZWRfc291cmNlID09IGJn
LnNvdXJjZV9maW5nZXJwcmludCgpDQogICAgaWYgZnAgPT0gZ2ZwIGFuZCBzb3VyY2VfbWF0Y2hl
czoNCiAgICAgICAgcmV0dXJuIEZhbHNlLCBmIuyYqO2GqOuhnOyngCDqt7jrnpjtlIQg7LWc7Iug
KFLCt0TCt1Age2NudH3qsJwsIOyngOusuCB7ZnB9LCDsg53shLEge2dlbls6MTZdfSkiDQogICAg
cmV0dXJuIFRydWUsIChmIuyYqO2GqOuhnOyngCDqt7jrnpjtlITqsIAg7Y+0642UwrfsubTrk5zC
t+uTseuhneu2gMK366qF7IS47J2YIO2YhOyerCDrgrTsmqnqs7wg64uk66aF64uI64ukKOq3uOue
mO2UhCB7Z2NudH3qsJzCt3tnZW5bOjE2XX0g4oaUIOyngOq4iCB7Y250feqwnCkuICINCiAgICAg
ICAgICAgICAgICAgIGYi7J6R7JeFIOyghOyXkCBgcHl0aG9uIF9vbnRvbG9neS9idWlsZF9ncmFw
aC5weSAtLWNvbXBpbGVgIOydhCDrj4zrpqzqs6AsIOyDiCBSL0QvUCDtj7TrjZTqsIAg7J6I7Jy8
66m0IGAtLWluaXQgLS13cml0ZWAg66GcIOy5tOuTnOulvCDrp4zrk5zshLjsmpQuIikNCg0KDQpk
ZWYgY29tcGlsZV9ub3coKToNCiAgICByID0gc3VicHJvY2Vzcy5ydW4oW1BZLCBzdHIoSEVSRSAv
ICJidWlsZF9ncmFwaC5weSIpLCAiLS1jb21waWxlIl0sIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRl
eHQ9VHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9InV0Zi04IiwgZXJyb3Jz
PSJyZXBsYWNlIiwgdGltZW91dD0xMjAsIGN3ZD1zdHIoUk9PVCkpDQogICAgcmV0dXJuIHIucmV0
dXJuY29kZSA9PSAwLCAoci5zdGRvdXQgb3Igci5zdGRlcnIpLnN0cmlwKCkuc3BsaXRsaW5lcygp
Wy0xOl0gb3IgWyIiXQ0KDQoNCmRlZiBob29rX3Nlc3Npb24oKToNCiAgICBzdGFsZSwgbXNnID0g
Y29tcGFyZSgpDQogICAgbG9nX2xpbmUoZiJzZXNzaW9uIHsnU1RBTEUnIGlmIHN0YWxlIGVsc2Ug
J29rJ30ge21zZ1s6ODBdfSIpDQogICAgaWYgc3RhbGU6DQogICAgICAgIHByaW50KGYiW+yYqO2G
qOuhnOyngCDsi6DshKDrj4RdIHttc2d9IikNCiAgICByZXR1cm4gMA0KDQoNCmRlZiBob29rX3Bv
c3RfdG9vbCgpOg0KICAgIHRyeToNCiAgICAgICAgcGF5bG9hZCA9IGpzb24ubG9hZHMoc3lzLnN0
ZGluLnJlYWQoKSBvciAie30iKQ0KICAgIGV4Y2VwdCBFeGNlcHRpb246DQogICAgICAgIHJldHVy
biAwDQogICAgdG9vbCA9IHN0cihwYXlsb2FkLmdldCgidG9vbF9uYW1lIiwgIiIpKQ0KICAgIHRp
ID0gcGF5bG9hZC5nZXQoInRvb2xfaW5wdXQiKSBvciB7fQ0KICAgIHRleHQgPSAiICIuam9pbihz
dHIodikgZm9yIHYgaW4gdGkudmFsdWVzKCkpIGlmIGlzaW5zdGFuY2UodGksIGRpY3QpIGVsc2Ug
c3RyKHRpKQ0KICAgIHN0cnVjdHVyYWwgPSBGYWxzZQ0KICAgIGlmIHRvb2wgaW4gKCJCYXNoIiwg
IlBvd2VyU2hlbGwiKToNCiAgICAgICAgc3RydWN0dXJhbCA9IGJvb2woU1RSVUNUX0NNRC5zZWFy
Y2godGV4dCkpIGFuZCBib29sKEhJRVJfUEFUSC5zZWFyY2godGV4dCkpDQogICAgZWxpZiB0b29s
IGluICgiV3JpdGUiLCAiRWRpdCIpOg0KICAgICAgICBmcF8gPSBzdHIodGkuZ2V0KCJmaWxlX3Bh
dGgiLCAiIikpIGlmIGlzaW5zdGFuY2UodGksIGRpY3QpIGVsc2UgIiINCiAgICAgICAgc3RydWN0
dXJhbCA9IGZwXy5lbmRzd2l0aCgiQUdFTlRTLm1kIikgYW5kIGJvb2woSElFUl9QQVRILnNlYXJj
aChmcF8pKSAgICMg7IOIIO2PtOuNlOydmCDsp4Dsuagg7IOd7ISxIOyLoO2YuA0KICAgIGlmIG5v
dCBzdHJ1Y3R1cmFsOg0KICAgICAgICByZXR1cm4gMA0KICAgIHN0YWxlLCBtc2cgPSBjb21wYXJl
KCkNCiAgICBub3RlID0gTm9uZQ0KICAgIGlmIHN0YWxlOg0KICAgICAgICBvaywgdGFpbCA9IGNv
bXBpbGVfbm93KCkNCiAgICAgICAgc3RhbGUyLCBtc2cyID0gY29tcGFyZSgpDQogICAgICAgIGlm
IG9rIGFuZCBub3Qgc3RhbGUyOg0KICAgICAgICAgICAgbm90ZSA9IGYiW+yYqO2GqOuhnOyngF0g
Ui9EL1Ag6rWs7KGwIOuzgOqyveydhCDqsJDsp4DtlbQg6re4656Y7ZSE66W8IOyerOy7tO2MjOyd
vO2WiOyKteuLiOuLpCh7dGFpbFswXX0pLiDsg4gg7Y+0642U6rCAIOyDneqyvOuLpOuptCDsubTr
k5woYGJ1aWxkX2dyYXBoLnB5IC0taW5pdCAtLXdyaXRlYCnsmYAg7KeA64+EKGBidWlsZF9tYXAu
cHlgKeuPhCDqsLHsi6DtlZjshLjsmpQuIg0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgbm90
ZSA9IGYiW+yYqO2GqOuhnOyngF0g6rWs7KGwIOuzgOqyvSDqsJDsp4Ag4oCUIOyekOuPmSDsnqzs
u7TtjIzsnbwg7Iuk7YyoIOuYkOuKlCDsl6zsoITtnogg67aI7J287LmYOiB7bXNnMn0iDQogICAg
ICAgIGxvZ19saW5lKGYicG9zdC10b29sIHt0b29sfSBjb21waWxlZD17b2t9IHN0YWxlX2FmdGVy
PXtzdGFsZTJ9IikNCiAgICBpZiBub3RlOg0KICAgICAgICBwcmludChqc29uLmR1bXBzKHsiaG9v
a1NwZWNpZmljT3V0cHV0IjogeyJob29rRXZlbnROYW1lIjogIlBvc3RUb29sVXNlIiwgImFkZGl0
aW9uYWxDb250ZXh0Ijogbm90ZX19LCBlbnN1cmVfYXNjaWk9RmFsc2UpKQ0KICAgIHJldHVybiAw
DQoNCg0KZGVmIG1haW4oKToNCiAgICBhcmdzID0gc3lzLmFyZ3ZbMTpdDQogICAgdHJ5Og0KICAg
ICAgICBpZiAiLS1ob29rIiBpbiBhcmdzOg0KICAgICAgICAgICAgbW9kZSA9IGFyZ3NbYXJncy5p
bmRleCgiLS1ob29rIikgKyAxXQ0KICAgICAgICAgICAgcmV0dXJuIGhvb2tfc2Vzc2lvbigpIGlm
IG1vZGUgPT0gInNlc3Npb24iIGVsc2UgaG9va19wb3N0X3Rvb2woKQ0KICAgICAgICBzdGFsZSwg
bXNnID0gY29tcGFyZSgpDQogICAgICAgIGlmIHN0YWxlIGFuZCAiLS1jb21waWxlLWlmLXN0YWxl
IiBpbiBhcmdzOg0KICAgICAgICAgICAgb2ssIHRhaWwgPSBjb21waWxlX25vdygpDQogICAgICAg
ICAgICBzdGFsZSwgbXNnID0gY29tcGFyZSgpDQogICAgICAgICAgICBwcmludCgoIuyerOy7tO2M
jOydvCDsmYTro4w6ICIgaWYgb2sgZWxzZSAi7J6s7Lu07YyM7J28IOyLpO2MqDogIikgKyBtc2cp
DQogICAgICAgIGVsc2U6DQogICAgICAgICAgICBwcmludChtc2cpDQogICAgICAgIGxvZ19saW5l
KGYibWFudWFsIHsnU1RBTEUnIGlmIHN0YWxlIGVsc2UgJ29rJ30iKQ0KICAgICAgICByZXR1cm4g
MyBpZiBzdGFsZSBlbHNlIDANCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6ICAgICAgICAgICAj
IO2bheydgCDsoIjrjIAg7IS47IWY7J2EIOunieyngCDslYrripTri6QNCiAgICAgICAgbG9nX2xp
bmUoZiJFUlJPUiB7ZSFyfSIpDQogICAgICAgIGlmICItLWhvb2siIG5vdCBpbiBhcmdzOg0KICAg
ICAgICAgICAgcHJpbnQoZiLsi6DshKDrj4Qg7YyQ64+FIOu2iOuKpToge2V9IiwgZmlsZT1zeXMu
c3RkZXJyKQ0KICAgICAgICAgICAgcmV0dXJuIDINCiAgICAgICAgcmV0dXJuIDANCg0KDQppZiBf
X25hbWVfXyA9PSAiX19tYWluX18iOg0KICAgIHN5cy5leGl0KG1haW4oKSkNCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/ontology-spec.md","encoding":"base64","size":24477,"runtimeSha256":"51204611d2d61269cc4f34313b6698d908c574c7509ec6731c10e94fe025d3d2","normalizedSha256":"51204611d2d61269cc4f34313b6698d908c574c7509ec6731c10e94fe025d3d2"} -->
```base64
IyDsnpHsl4Xqs7XqsIQg7Jio7Yao66Gc7KeAIOuqheyEuCDigJQgdjgg67Cw7Y+s7JqpIO2MjOyD
neuzuAoKPiDstpzsspg6IElSSVMg7KCB7JqpIOuqheyEuOydmCDrsLDtj6zsmqkg7YyM7IOd67O4
LiAqKjIwMjYtMDktMDUgdjEuNCDsnbTroKUg6riw7KSAKirsnLzroZwg7J6R7ISx7ZaI64ukLgo+
IOyggeyaqSDrjIDsg4E6IOuzhOqwnOydmCDsg4gg7J6R7JeF6rO16rCELiDsnbQg66y47ISc7JeQ
7IScIGA87J6R7JeF6rO16rCEPmDsnYAg7IKs7Jqp7J6Q6rCAIOyEoO2Dne2VnCDro6jtirgg7Y+0
642U66W8IOucu+2VnOuLpC4KPiDshKTsuZgg7JyE7LmYOiBgPOyekeyXheqzteqwhD4vSVJJUy3s
mKjthqjroZzsp4AubWRgLiDtjIzsnbwg7J2066aE7J2AIOuPhOq1rOqwgCDssL7ripQg7KCV67O4
IOydtOumhOydtOuvgOuhnCDsnKDsp4DtlZzri6QuCgrsnbQg66y47ISc64qUIO2PtOuNlOyXkCDr
k7HroZ3rsojtmLjsmYAg6rSA6rOE66W8IOu2meydtOuKlCAqKuyYqO2GqOuhnOyngCjrjIDsg4Hq
s7wg64yA7IOBIOyCrOydtOydmCDqtIDqs4Trpbwg7KCV66as7ZWcIOyytOqzhCkqKuulvCDshKTr
qoXtlZzri6QuIOq4sOyhtCBSL0QvUC9TL1Qg7Y+0642UIOychOyXkCDrqqnroZ0g7Lm065Oc66W8
IOuNlO2VnOuLpC4g7Y+0642UIOydtOumhOydtCDrsJTrgIzslrTrj4Qg6rCZ7J2AIOuMgOyDgeyd
hCDssL7qs6AsIOyekOujjOydmCDsm5Drs7jqs7wg7ZiE7J6sIOyDge2DnOqwgCDslrTrlJTsl5Ag
7J6I64qU7KeAIO2ZleyduO2VmOugpOuKlCDrqqnsoIHsnbTri6QuCgrsnbQg66y47ISc64qUIO2K
ueyglSDsgqzsmqnsnpDsnZgg7Jq07JiBIOuqheyEuMK37Y+0642UwrfsubTrk5zCt+uTseuhneu2
gMK36re4656Y7ZSE66W8IOuzteygnO2VnCDshKTsuZgg642w7J207YSw6rCAIOyVhOuLiOuLpC4g
6rCZ7J2AIElSSVPrpbwg64uk66W4IOy7tO2TqO2EsOyXkCDrs7XqtaztlaAg65WM7JeQ64qUICoq
6riw7KG0IOuqheyEuOyZgCDsubTrk5zsnZggSUTrpbwg67O07KG0KirtlZzri6QuIOq4sOyhtCBg
POyekeyXheqzteqwhD4vSVJJUy3smKjthqjroZzsp4AubWRg6rCAIOyeiOycvOuptCDsnbQg7YyM
7IOd67O47Jy866GcIOyekOuPmSDrja7slrTsk7Dsp4Ag7JWK64qU64ukLiDstqnrj4zsnYQg67O0
6rOg7ZWY6rOgIOq4sOyhtCDrqoXshLjsmYAg64+E6rWs7J2YIO2YuO2ZmOyEseydhCDrqLzsoIAg
7ZmV7J247ZWc64ukLgoKIyMgMS4g7JuQ67O46rO8IOyDneyEseusvAoKfCDrjIDsg4EgfCDsl63t
laAgfCDrsJTqvrjripQg67Cp67KVIHwKfC0tLXwtLS18LS0tfAp8IOujqO2KuCBgQUdFTlRTLm1k
YCB8IOuqqOuToCDtlZjsnIQg7Y+0642U7J2YIOqzte2GtSDsnpHsl4Ug6rec7LmZIHwg7IKs656M
7J20IOqygO2GoO2VtCDsiJjsoJUgfAp8IGBJUklTLeyYqO2GqOuhnOyngC5tZGAgfCDsooXrpZjC
t0lEwrfqtIDqs4TCt+yGjeyEscK36rKA7IKswrfsnbTrpoQg7KCV6rec7Iud7J2YIOygleuzuCB8
IOydtCDrrLjshJzsnZgg67OA6rK9IOygiOywqCDsoIHsmqkgfAp8IFIvRC9Q7J2YIGBBR0VOVFMu
bWRgIOuouOumrOunkCB8IOqwgSDtj7TrjZTsnZgg66qp66GdIOy5tOuTnCB8IOyDneyEsSDstIjs
lYgg6rKA7YagIO2bhCDrsJjsmIEgfAp8IGBfb250b2xvZ3kvcmVnaXN0cnkueW1sYCB8IOyCrOue
jMK36rOE7KCVwrfsoIDsnqXshozCt+uPhOq1rOydmCDrk7HroZ3rtoAgfCDsnbQg7J6R7JeF6rO1
6rCE7JeQ7IScIOyLpOygnOuhnCDsk7DripQg6rKD66eMIOuTseuhnSB8CnwgYF9vbnRvbG9neS9n
cmFwaC5qc29uYCB8IOy5tOuTnOyZgCDtj7TrjZTrpbwg66qo7JWEIOunjOuToCDqt7jrnpjtlIQg
fCDsu7TtjIzsnbwg66qF66C57Jy866GcIOyerOyDneyEsSwg7IaQ7Y647KeRIOq4iOyngCB8Cnwg
6rWs7KGw7KeA64+EwrfsmKjthqjroZzsp4Ag67ewIEhUTUwgfCDqt7jrnpjtlITrpbwg7IKs656M
7J20IOuzvCDsiJgg7J6I6rKMIOq3uOumsCDtmZTrqbQgfCDsg53shLEg66qF66C57Jy866GcIOye
rOyDneyEsSwg7IaQ7Y647KeRIOq4iOyngCB8Cnwg7JeF66y0IOusuOyEnOydmCDtmITsnqwg7IOB
7YOcIOu4lOuhnSB8IOyLpOygnCDsp4Ttlokg7IOB7YOcIOqwkuydtCDsgqzripQg7J6Q66asIHwg
7ZW064u5IOyXheustOydmCDqt5zsuZnsl5Ag65Sw6528IOyImOyglSB8CgoqKuq3uOuemO2UhCoq
64qUIOuMgOyDgSDrqqnroZ3qs7wg6re4IOyCrOydtCDsl7DqsrDsnYQg66qo7JWEIOuGk+ydgCDt
jIzsnbzsnbTri6QuICoq7Lu07YyM7J28KirsnYAg7Iuk7KCcIO2PtOuNlOyZgCDsubTrk5zrpbwg
7J297Ja0IOydtCDtjIzsnbzsnYQg64uk7IucIOunjOuTnOuKlCDsnbzsnbTri6QuCgrtj7TrjZQg
7J2066aE7JeQ7IScIOyVjCDsiJgg7J6I64qUIOyiheulmMK37L2U65Ocwrftg5zqt7jripQg7Y+0
642U6rCAIOybkOuzuOydtOuLpC4gSUTsmYAg7IKs656M7J20IOygle2VnCDqtIDqs4TripQg7Lm0
65Oc6rCAIOybkOuzuOydtOuLpC4g7IOB7YOcIOqwkuydgCDtlbTri7kg7JeF66y0IOusuOyEnOqw
gCDsm5Drs7jsnbTri6QuIOq3uOuemO2UhOyZgCDsp4Drj4TripQg7J20IOybkOuzuOuTpOydhCDs
nb3slrQg66eM65OgICoq6rGw7Jq4KOyekOuPmSDsg53shLEg7IKs67O4KSoq7J2064ukLgoKYHNv
dWwtc3RhdGUuanNvbmDsnYAg7ISk7LmYIOyXlOynhCB2N+ydmCDsnpHsl4Xqs7XqsIQg7Iud67OE
wrfshKTsuZjCt+uzteq1rCDsg4Htg5wg7YyM7J287J2064ukLiDsnbQg7YyM7J287J2YIGBzb3Vs
SWRg64KYIOq1rOyhsCDqsrDsoJXsnZggSUTrpbwg7Jio7Yao66Gc7KeAIElE66GcIOuwlOq+uOyn
gCDslYrripTri6QuIOqwgOydtOuTnOqwgCB2OOuhnCDrsJTrgIzslrTrj4Qg7IOB7YOcIO2MjOyd
vOydmCBgc2NoZW1hVmVyc2lvbmDsnYQg7J6E7J2Y66GcIDjroZwg7Jis66as7KeAIOyViuuKlOuL
pC4g7ISk7LmYIOyXlOynhOydtCDsnbQg7YyM7J287J2EIOyCrOyaqe2VmOuKlCDrj5nslYgg67O0
7KG07ZWc64ukLgoKIyMgMi4g7YG0656Y7IqkIOKAlCDrjIDsg4HsnZgg7KKF66WYCgoqKu2BtOue
mOyKpChjbGFzcykqKuuKlCDrjIDsg4HsnbQg7Ja065akIOyiheulmOyduOyngCDrgpjtg4DrgrTr
ipQg7J2066aE7ZGc64ukLiDsubTrk5zsnZggYHR5cGU6YOyXkOuKlCDslYTrnpgg7ZeI7Jqp6rCS
7J2EIOyTtOuLpC4g66qp66Gd7JeQIOyXhuuKlCDqsJLsnYQg7JOw66Ck66m0IOydtCDrqoXshLjr
pbwg66i87KCAIOqwnOygle2VnOuLpC4KCiMjIyAyLTEuIOyepeyGjAoKfCBgdHlwZWAgfCDrnLsg
fCDsubTrk5zCt+2RnO2YhCDrsKnsi50gfAp8LS0tfC0tLXwtLS18CnwgYHJvbGVgIHwg7Jet7ZWg
IFIgfCBgQUdFTlRTLm1kYCDrqLjrpqzrp5Ag7ZWE7IiYIHwKfCBgZG9tYWluYCB8IOyXre2VoCDs
lYjsnZgg67aE7JW8IEQgfCDrqLjrpqzrp5Ag7ZWE7IiYIHwKfCBgZ3JvdXBgIHwg7KCR65GQIGDj
gJbqt7jro7njgJdg7Jy866GcIOustuyduCDrj4TrqZTsnbjrk6QgfCDsi6Ttj7TrjZTrpbwg66eM
65Ok7KeAIOyViuqzoCDqsIDsg4Eg64W465Oc66GcIO2RnO2YhCB8CnwgYHByb2plY3RgIHwg64Gd
7J20IOyeiOuKlCDsnbwgUCB8IOuouOumrOunkCDtlYTsiJggfAp8IGBzdGVwYCB8IO2UhOuhnOyg
ne2KuCDslYjsnZgg64uo6rOEIFMgfCDrj4Xrpr0gSUQg7Lm065OcIOyXhuydtCDrtoDrqqggUOyZ
gCDsvZTrk5zroZwg7ZGc7ZiEIHwKfCBgdGFza2AgfCDri6jqs4Qg7JWI7J2YIOyekeyXhSBUIHwg
64+F66a9IElEIOy5tOuTnCDsl4bsnbQg67aA66qo7JmAIOy9lOuTnOuhnCDtkZztmIQgfAp8IGB1
dGlsYCB8IGBf7JiB7Ja07IaM66y47J6QYCDtmJXtg5zsnZgg7J6s7IKs7JqpIOuPhOq1rCDtj7Tr
jZQgfCDqs6DsnKAg7KCV7LK07ISxIO2VnCDspITsnZggYEFHRU5UUy5tZGAsIOy5tOuTnCDshKDt
g50gfAp8IGBkcmF3ZXJgIHwg7J6Q66OMwrfsm5DrrLjCt+yCsOy2nOusvCDrk7HsnYQg64u064qU
IOy9lOuTnCDsl4bripQg7Y+0642UIHwg67aA66qoIFIvRC9Q7J2YIGBkcmF3ZXJzOmDsl5Ag7ISg
7Ja4IHwKCioq64W465OcKG5vZGUpKirripQg66qp66Gd7JeQIOuTpOyWtOqwgOuKlCDrjIDsg4Eg
7ZWY64KY66W8IOunkO2VnOuLpC4g66qo65OgIOyiheulmOulvCBgZ3JhcGguanNvbmDsnZgg64+F
66a9IOuFuOuTnOuhnCDsoIDsnqXtlZjripTsp4DripQg64+E6rWs7J2YIOq1rO2YhCDrspTsnITs
l5Ag65Sw66W464ukLiDtj7TrjZQg7Lm065OcwrfrrLjshJwg7LC47KGwwrfrk7HroZ3rtoAg7KGw
7ZqM66GcIOyngOybkO2VmOuKlCDrjIDsg4HsnYQg6rWs67OE7ZWY66mwLCDslYTsp4Eg66eM65Ok
7KeAIOyViuydgCDrhbjrk5zrpbwg7KG07J6s7ZWY64qUIOqyg+yymOufvCDrs7Tqs6DtlZjsp4Ag
7JWK64qU64ukLgoK7ISc656N7J2AIOydtOumhOydtCDslYTri4jrnbwg64K07Jqp7Jy866GcIO2M
kOuLqO2VnOuLpC4g7ISc656NIOydtOumhOydmCDtmJXsi53snYAg6rCV7KCc7ZWY7KeAIOyViuuK
lOuLpC4g7ISc656N7Jy866GcIOyEoOyWuOuQmOyngCDslYrsnYAg7Y+0642U66W8IOydtOumhOun
jCDrs7Tqs6Ag7KeA7LmoIOuptOygnCDrjIDsg4HsnLzroZwg7IK87KeAIOyViuuKlOuLpC4g7L2U
65OcIOyggOyepeyGjCDrgrTrtoDripQgYGZyZWVfem9uZTogdHJ1ZWDroZwg7ZGc7Iuc7ZWY64qU
ICoq7J6Q7Jyg6rWs7JetKOyekeyXhSDtj7TrjZQg7J2066aEIOq3nOy5meydhCDsoIHsmqntlZjs
p4Ag7JWK64qUIOy9lOuTnCDsmIHsl60pKirsnLzroZwg6rWs67OE7ZWc64ukLiBgbm9kZV9tb2R1
bGVzYCwgYC5naXRgLCDsnpDrj5kg7Lac66ClLCDsl5DsnbTsoITtirgg64K067aAIOyggOyepeyG
jOuKlCDsl4XrrLQg67aE66WYIOuMgOyDgeycvOuhnCDsgrzsp4Ag7JWK64qU64ukLgoKIyMjIDIt
Mi4g66y47IScCgp8IGB0eXBlYCB8IOucuyB8CnwtLS18LS0tfAp8IGBpbnN0cnVjdGlvbmAgfCBg
QUdFTlRTLm1kYCDsp4DsuaguIGBDTEFVREUubWRg64qUIOyXsOqysOyaqSDqu43rjbDquLDsnbTr
r4DroZwg67OE6rCcIOyngOy5qCDrhbjrk5zqsIAg7JWE64uYIHwKfCBgZG9jdW1lbnRgIHwg7JeF
66y0IOusuOyEnOyZgCDsgrDstpzrrLwgfAp8IGBsZWRnZXJgIHwg6rKw7KCVwrfqsoDthqDCt+uz
gOqyveydhCDriITsoIHtlZjripQg64yA7J6lIHwKfCBgbWVtb3J5YCB8IOyXkOydtOyghO2KuCDq
uLDslrUg66y47IScIHwKCuygleuzuMK37ZiE7J6sIOyDge2DnOydmCDsm5Drs7jCt+2LgMK36rGw
7Jq47J2AIOusuOyEnOydmCDsooXrpZjqsIAg7JWE64uI6528ICoq64uk66W4IOuMgOyDgeqzvCDr
p7rripQg6rSA6rOEKirri6QuIOqwmeydgCDrrLjshJzrpbwg7ZWcIOyekeyXheydgCDtkZzspIDs
nLzroZwg65Sw66W06rOgIOuLpOuluCDsnpHsl4XsnYAg67O17KCc7JqpIO2LgOuhnCDsk7gg7IiY
IOyeiOuLpC4KCiMjIyAyLTMuIOq3uCDrsJbsnZgg64yA7IOBCgp8IGB0eXBlYCB8IOucuyB8IElE
IOygkeuRkMK365Ox66GdIOyekOumrCB8CnwtLS18LS0tfC0tLXwKfCBgcGVyc29uYCB8IOyekeyX
heyXkCDssLjsl6ztlZjripQg7IKs656MIHwgYHBlcnNvbjpgLCDrk7HroZ3rtoAgfAp8IGBhY2Nv
dW50YCB8IOyekeyXheyXkCDsgqzsmqntlZjripQg6rOE7KCVIHwgYGFjY291bnQ6YCwg65Ox66Gd
67aAIHwKfCBgc3RvcmVgIHwg7JuQ67O4wrfrsLHsl4XsnYQg65GQ64qUIOyggOyepeyGjCB8IGBz
dG9yZTpgLCDrk7HroZ3rtoAgfAp8IGB0b29sYCB8IOyKpO2BrOumve2KuMK37ISk7LmYIOuPhOq1
rMK37Jew6rKwIOuPhOq1rCB8IGB0b29sOmAsIOuTseuhneu2gCB8CnwgYHJ1bGVgIHwg6rec7LmZ
64yA7J6l7J2YIOq3nOy5mSB8IGBydWxlOmAsIO2VtOuLuSDqt5zsuZnrjIDsnqUgfAp8IGBkZWNp
c2lvbmAgfCDrgqDsp5zqsIAg67aZ7J2AIOqysOyglSB8IGBkZWNpc2lvbjpgLCDtlbTri7kg6rKw
7KCV64yA7J6lIHwKCiMjIDMuIOyLneuzhOyekOyZgCDsubTrk5wKCiMjIyAzLTEuIElECgoqKklE
KOyLneuzhOyekCkqKuuKlCDtj7TrjZTsnZgg65Ox66Gd67KI7Zi464ukLgoKLSBSL0QvUOyXkOuK
lCBgaXJpczpgIOuSpOyXkCDshozrrLjsnpAg7JiB66y46rO8IOyIq+yekCA47J6Q66W8IOu2meyd
uOuLpC4g7IOd7ISx6riw6rCAIOustOyekeychOuhnCDrtoDsl6ztlZzri6QuCi0g6rCZ7J2AIOuM
gOyDgeydmCBJROuKlCDqsJzrqoXCt+ydtOuPmcK367O16rWsIO2bhOyXkOuPhCDsnKDsp4DtlZzr
i6QuIOyYmyDtj7TrjZQg7J2066aE7J2AIGBhbGlhc2VzOmDsl5Ag67O07KG07ZWc64ukLgotIOuz
hOqwnOydmCDsg4gg7J6R7JeF6rO16rCE7JeQ7ISc64qUIOq4sOyhtCDsgqzsmqnsnpDsnZggSUTs
mYAg6rSA6rOEIOustuydjOydhCDrs7XsoJztlZjsp4Ag7JWK6rOgIOyDiOuhnCDrtoDsl6ztlZzr
i6QuCi0gUy9U64qUIOu2gOuqqCBQ7J2YIElE7JmAIOuLqOqzhMK37J6R7JeFIOy9lOuTnOuhnCDs
nKDrj4TtlZzri6QuIOyEnOuhnCDri6TrpbggU+ydmCBU6rCAIOqwmeydgCDsvZTrk5zrpbwg7JOw
66m0IFMg6rK966Gc6rmM7KeAIO2PrO2VqO2VtCDstqnrj4zsnYQg7ZS87ZWc64ukLgotIOyEnOue
jcK366y47ISc64qUIGA867aA66qoIElEPi887IOB64yA6rK966GcPmDroZwg6rCA66as7YKsIOyI
mCDsnojri6QuCi0g65Ox66Gd67aAIOuMgOyDgeydgCBgdG9vbDpsb2NhbC1oZWxwZXJg7LKY65+8
IOyiheulmCDsoJHrkZDsmYAg7Ken7J2AIOyYgeusuCDsnbTrpoTsnYQg7J6H64qU64ukLgoKIyMj
IDMtMi4gYEFHRU5UUy5tZGAg66i466as66eQCgoqKllBTUwqKuydgCBg7ZWt66qpOiDqsJJgIO2Y
le2DnOuhnCDrqqnroZ3snYQg7KCB64qUIOusuOuyleydtOuLpC4gKirrqLjrpqzrp5AqKuydgCDt
jIzsnbwg66eoIOychOydmCBgLS0tYCDrkZAg7KSEIOyCrOydtOyXkCDsnojripQgWUFNTCDsubTr
k5zri6QuCgpgYGB5YW1sCi0tLQppZDogaXJpczp4eHh4eHh4eAp0eXBlOiBwcm9qZWN0CmNvZGU6
IFAwMQpzdGF0dXNfc2NoZW1lOiB0YXNrNQp0cnV0aDog7JeF66y07KeE7ZaJLeyytO2BrOumrOyK
pO2KuC5tZCPtmITsnqwt7IOB7YOcCmxpZmVjeWNsZTogYWN0aXZlCmFsaWFzZXM6IFtdCmRyYXdl
cnM6IFtdCnJlbGF0aW9uczoge30KLS0tCiMgUDAxLeyYiOyLnCDsnpHsl4UoRXhhbXBsZSBXb3Jr
KQoK7J20IO2UhOuhnOygne2KuOyXkOyEnCDsiJjtlontlZjripQg7J287J2YIOqzoOycoO2VnCDs
oJXssrTshLHsnYQg7ZWcIOykhOuhnCDsoIHripTri6QuCgo8IS0tIOyDgeychCBBR0VOVFMubWQg
6rec7LmZIOyerOyEnOyIoCDquIjsp4AgLS0+CmBgYAoKYGlyaXM6eHh4eHh4eHhg64qUIOyEpOuq
heyaqSDsnpDrpqztkZzsi5zsnpDsnbTrr4DroZwg7Iuk7KCcIOy5tOuTnOyXkCDqt7jrjIDroZwg
67O17IKs7ZWY7KeAIOyViuuKlOuLpC4g7IOd7ISx6riw66W8IO2Gte2VtCDqsIEg7Y+0642U7J2Y
IElE66W8IOuwm+uKlOuLpC4g66i466as66eQ7J2AIO2VhOyalO2VnCDtla3rqqnrp4wg6rCE6rKw
7ZWY6rKMIOyggeqzoCDquLDsobQg7KeA7LmoIOuzuOusuOydhCDrs7TsobTtlZzri6QuIGBDTEFV
REUubWRg7JeQ64qUIOuouOumrOunkCDsl4bsnbQgYEBBR0VOVFMubWRgIO2VnCDspITrp4wg65GU
64ukLiDquLDsobQg64K07Jqp7ZiVIGBDTEFVREUubWRg6rCAIOyeiOycvOuptCDsnpDrj5kg642u
7Ja07JOw7KeAIOyViuqzoCDstqnrj4zsnYQg67O06rOg7ZWc64ukLgoK7IOIIFIvRC9Q7JeQ64qU
IOy5tOuTnOqwgCDtlYTsmpTtlZjri6QuIOychOqzhCDtj7TrjZTsmYAg7Jyg7Yu47JeQ64qUIOqz
oOycoCDsp4Dsuajqs7wg7Jew6rKw7JqpIGBDTEFVREUubWRg6rCAIO2VhOyalO2VmOuLpC4g67aA
66qoIOy5tOuTnOyXkCDshKDslrjrkJwg7ISc656N6rO8IOq3uCDtlZjsnIQsIOy9lOuTnOqwgCDr
p4zrk6Tqs6Ag7KeA7Jqw64qUIOyekOuPmSDstpzroKUg7Y+0642U64qUIOydtCDsp4Dsuagg7IyN
7J2EIOunjOuTpOyngCDslYrslYTrj4Qg65Cc64ukLgoKIyMgNC4g6rSA6rOEIOyWtO2cmCAxNOyi
hQoK6rSA6rOE64qUICoq7J2Y7KG07ZWY64qUIOyqvSDtlZwg6rOz7JeQ66eMKiog7KCB64qU64uk
LiDrsJjrjIAg67Cp7Zal7J2AIOuPhOq1rOqwgCDqs4TsgrDtlZzri6QuIGBjb250YWluc2DripQg
7Yq466as7JeQ7IScLCBgdHJ1dGhfYXRg7J2AIGB0cnV0aDpg7JeQ7IScIOuPhOy2nO2VmOuvgOuh
nCDqsJnsnYAg64K07Jqp7J2EIOydtOykkeycvOuhnCDsoIHsp4Ag7JWK64qU64ukLgoKfCAjIHwg
6rSA6rOEIHwg67CY64yAIOuwqe2WpSB8IOucuyB8IOybkOuzuOydhCDsoIHripQg7Kq9IHwg64yA
7IOBIHwKfC0tLXwtLS18LS0tfC0tLXwtLS18LS0tfAp8IDEgfCBgY29udGFpbnNgIHwgYHBhcnRf
b2ZgIHwg7JWI7JeQIO2PrO2VqOuQqCB8IO2PtOuNlCDsiqTsupQsIOyngeygkSDshKDslrjtlZjs
p4Ag7JWK7J2MIHwg7Y+0642UIHwKfCAyIHwgYGNhbm9uaWNhbGAgfCBgY2Fub25pY2FsX2ZvcmAg
fCDsnbQg67Cp67KVwrftkZzspIDsnYQg65Sw66aEIHwg7ZGc7KSA7J2EIOuUsOultOuKlCDrjIDs
g4EgfCDrrLjshJwgfAp8IDMgfCBgdHJ1dGhfYXRgIHwgMToxIHwg7ZiE7J6sIOyDge2DnOqwgCDs
nbTqs7Psl5Ag7J6I7J2MIHwg7ZW064u5IOy5tOuTnOydmCBgdHJ1dGg6YCB8IOusuOyEnOyZgCDs
lbXsu6QgfAp8IDQgfCBgdGVtcGxhdGVgIHwgYGluc3RhbnRpYXRlZF9ieWAgfCDsnbQg7YuA7J2E
IOuzteygnO2VtCDrp4zrk6YgfCDrs7XsoJzrkJwg64yA7IOBIHwg66y47IScwrftj7TrjZQgfAp8
IDUgfCBgbWlycm9yX29mYCB8IGBtaXJyb3JlZF9ieWAgfCDsnbTqsoPsl5DshJwg7J6Q64+ZIOyD
neyEseuQqCB8IOyDneyEseuQnCDsgqzrs7ggfCDrrLjshJzCt+2PtOuNlCB8CnwgNiB8IGBwcm9t
b3RlZF9mcm9tYCB8IGBwcm9tb3RlZF90b2AgfCDsnbQg7ZuE67O0IOyjvOygnOyXkOyEnCDtlITr
oZzsoJ3tirjqsIAg7Iuc7J6R65CoIHwg7ZSE66Gc7KCd7Yq4IFAgfCDrrLjshJzsmYAg7JW17Luk
IHwKfCA3IHwgYG93bmVyYCB8IGByZWZlcnNfdG9fb3duZXJgIHwg7Iuk7KCcIOuLtOuLucK37JuQ
67O47J2AIOyggOyqveyXkCDsnojsnYwgfCDssLjsobDtlZjripQg64yA7IOBIHwg64W465OcIHwK
fCA4IHwgYGV4dGVuZHNgIHwgYGV4dGVuZGVkX2J5YCB8IOyngeyghCDtlITroZzsoJ3tirjsl5Ag
7ZWcIOqwgOyngOulvCDrjZTtlaggfCDrkqQg7ZSE66Gc7KCd7Yq4IHwg7ZSE66Gc7KCd7Yq4IFAg
fAp8IDkgfCBgc2libGluZ19ncm91cGAgfCDrjIDsua0gfCDqsJnsnYAg67aE7JW866W8IOuCmOuI
iCDtmJXsoJwg64+E66mU7J24IHwg6rCBIOuPhOuplOyduCBEIHwg6re466O5IOydtOumhCB8Cnwg
MTAgfCBgc3RvcmVkX2F0YCB8IGBzdG9yZXNgIHwg7JuQ67O4wrfrsLHsl4XsnbQg7KCA7J6l7IaM
7JeQIOyeiOydjCB8IO2VtOuLuSDrjIDsg4EgfCBgc3RvcmU6YCB8CnwgMTEgfCBgdXNlc190b29s
YCB8IGB1c2VkX2J5YCB8IOydtCDrj4TqtazCt+qzhOygleyXkCDsnZjsobTtlaggfCDtlbTri7kg
64yA7IOBIHwgYHRvb2w6YMK3YGFjY291bnQ6YCB8CnwgMTIgfCBgZ292ZXJuZWRfYnlgIHwgYGdv
dmVybnNgIHwg7J20IOq3nOy5mcK36rKw7KCV7J20IOyggeyaqeuQqCB8IO2VtOuLuSDrjIDsg4Eg
fCBgcnVsZTpgwrdgZGVjaXNpb246YCB8CnwgMTMgfCBgaW52b2x2ZXNgIHwgYGludm9sdmVkX2lu
YCB8IOydtCDsgqzrnozsnbQg7LC47Jes7ZWoIHwg7ZW064u5IOuMgOyDgSB8IGBwZXJzb246YCB8
CnwgMTQgfCBgYWJvdXRgIHwgYHJlbWVtYmVyZWRfYnlgIHwg7J20IOq4sOyWteydgCDtlbTri7kg
64yA7IOB7JeQIOq0gO2VnCDqsoPsnoQgfCDquLDslrUg66y47IScIOuouOumrOunkCB8IOuFuOuT
nCB8CgoqKuyVtey7pChhbmNob3IpKirripQg66y47IScIOyViOydmCDtirnsoJUg7KCc66qp7J20
64KYIOychOy5mOulvCDqsIDrpqztgqTripQgYCPtmITsnqwt7IOB7YOcYCDqsJnsnYAg7ZGc7Iuc
64ukLiDtj7TrjZQg7J2066aE66eM7Jy866GcIOq0gOqzhOulvCDstpTsuKHtlbQg7ZmV7KCV7ZWY
7KeAIOyViuuKlOuLpC4g6rSA6rOE66W8IOyImOynke2VmOuKlCDrj4TqtazsnZgg6rKw6rO864qU
IOqygO2GoCDsoITsl5DripQg7LSI7JWI7J2064ukLiBgc3RvcmVkX2F0YOyXkCDsnoTsnZjsnZgg
YGlyaXM6YCDrhbjrk5zrpbwg64Sj6rGw64KYLCBgdXNlc190b29sYOyXkCDsnbzrsJgg66y47ISc
66W8IOuEo+yWtCDqsoDsgqzrpbwg7Ya16rO87Iuc7YKk7KeAIOyViuuKlOuLpC4KCmAuTk5gIOuv
uOyEuCDtlZjsnITripQg7IOIIO2BtOuemOyKpOqwgCDslYTri4jri6QuIOuFvOumrOyDgSDrtoDr
qqjsmYAgYHBhcnRfb2Zg66GcIOyXsOqysO2VmOupsCDrrLzrpqzsoIHsnLzroZwg7ZiV7KCc7J24
IOqyg+ydhCBgcGh5c2ljYWw6IHNpYmxpbmdg7Jy866GcIO2RnOyLnO2VoCDsiJgg7J6I64ukLiDs
p4Dsm5DtlZjsp4Ag7JWK64qUIOuPhOq1rOuKlCDsnbQg6rSA6rOE66W8IOuvuOq1rO2YhOycvOuh
nCDslYzroKTslbwg7ZWc64ukLgoKIyMgNS4g7IaN7ISx6rO8IOyDge2DnAoKfCDsho3shLEgfCDr
nLvCt+2XiOyaqeqwkiB8IOyekeyEsSDquLDspIAgfAp8LS0tfC0tLXwtLS18CnwgYGlkYCB8IOqz
oOyglSDrk7HroZ3rsojtmLggfCBSL0QvUCDtlYTsiJggfAp8IGB0eXBlYCB8IDLsoIjsnZgg7YG0
656Y7IqkIHwg7Y+0642UIOyiheulmOyXkOyEnCDsnKDrj4QgfAp8IGBjb2RlYCB8IFIvRC9QIOuT
seydmCDsvZTrk5wgfCDtj7TrjZQg7J2066aE7JeQ7IScIOycoOuPhCB8CnwgYHN0YXR1c19zY2hl
bWVgIHwg7JWE656YIOyDge2DnCDssrTqs4Qg7J2066aEIHwgRC9QIO2VhOyImCwg7ZW064u5IOuP
hOuplOyduCDsoJXssYXsnYQg65Sw66aEIHwKfCBgdHJ1dGhgIHwg7IOB7YOc6rCAIOyCrOuKlCBg
7YyM7J28I+yVtey7pGAgfCBgc3RhdHVzX3NjaGVtZWDsnbQgYG5vbmVg7J20IOyVhOuLjCBQ7JeQ
IO2VhOyImCB8CnwgYGxpZmVjeWNsZWAgfCBgYWN0aXZlYMK3YGRvcm1hbnRgwrdgYXJjaGl2ZWRg
wrdgcXVhcmFudGluZWRgIHwg7Zmc64+ZwrftnLTrqbTCt+uztOq0gMK36rKp66asIOq1rOu2hCB8
CnwgYGJvcm5gIHwgYGxlZ2FjeWAgfCDquLDsobQg7Jew6rWs7J2YIOy2nOyDnSDqsr3snITrpbwg
7ZmV7J247ZaI7J2EIOuVjOunjCB8CnwgYHNjb3BlX2JvdW5kYXJ5YCB8IGBbZ2l0LCBtY3AsIHNl
dHRpbmdzXWDsnZgg67aA67aE7KeR7ZWpIHwg7ISk7KCVIOuylOychOulvCDrsJTqvrjripQg7Iuk
66y8IO2RnOyLneydhCDsiqTsupQgfAp8IGBmcmVlX3pvbmVgIHwgYHRydWVgIHwg7L2U65OcIOyg
gOyepeyGjCDrgrTrtoDsnZgg7J2066aEIOq3nOy5mSDsoJzsmbggfAp8IGBmcm96ZW5gIHwgYHRy
dWVgIHwg7ZW064u5IOyekeyXheqzteqwhOydmCDrj5nqsrAg7KCV7LGF7J20IOyEoOyWuO2VnCDr
jIDsg4EgfAp8IGBzZW5zaXRpdmVgIHwgYHRydWVgIHwg6rCc7J24wrfquIjsoITCt+qzhOyVvSDr
k7Eg7Yq567OEIOy3qOq4iSDrjIDsg4EgfAp8IGBkcmF3ZXJzYCB8IOyEnOuejSDsg4HrjIDqsr3r
oZwg66qp66GdIHwg64K07Jqp7Jy866GcIO2MkOygle2VmOqzoCDrtoDrqqggUi9EL1Dsl5Ag7ISg
7Ja4IHwKfCBgYWxpYXNlc2AgfCDqsJzrqoUg7KCEIOydtOumhCDrqqnroZ0gfCDtmITsnqwg7J20
66aE7J2EIOuEo+yngCDslYrsnYwgfAp8IGB0YWdzYCB8IGB7a2luZDog7KKF66WYLCB2YWx1ZTog
6rCSfWAgfCDtj7TrjZQg7J2066aE7JeQ7IScIOycoOuPhCwgN+ygiCDtl4jsmqkg7KKF66WYIHwK
fCBgY3JlYXRlZGDCt2BkZWNpZGVkYCB8IGBZWVlZLU1NLUREYCB8IOyDneyEseydvMK366eI7KeA
66eJIOqysOygleydvCwg6raM7J6lIHwKCmBsaWZlY3ljbGVg7J2AIOyekOujjOqwgCDtmZzrj5kg
7KSR7J247KeAIOuztOq0gCDspJHsnbjsp4Ag7JWM66Ck7KSA64ukLiDsl4XrrLTsnZgg7KeE7ZaJ
IOyDge2DnOyZgOuKlCDri6Trpbgg7IaN7ISx7J2064ukLiAqKuyDge2DnCDqsJLsnYAg7Lm065Oc
7JeQIOuzteygnO2VmOyngCDslYrripTri6QuKiog7Lm065Oc7JeQ64qUIOyDge2DnCDssrTqs4Qg
7J2066aE6rO8IOyDge2DnOulvCDsnb3snYQg7JyE7LmY66eMIOuRlOuLpC4KCnwgYHN0YXR1c19z
Y2hlbWVgIHwg7KCB7Jqp7ZWgIOuVjCB8IOyDge2DnCDqsJLsnZgg7JuQ67O4IHwKfC0tLXwtLS18
LS0tfAp8IGBmdW5uZWxgIHwg7ZuE67O0IOyXsOq1rOulvCDsooHtmIAg6rCA64qUIOyXsOq1rCDs
oJXssYXsnYQg6rCA7KeEIFAgfCDrj4TrqZTsnbjsl5DshJwg7KCV7ZWcIOyXsOq1rOydvOyngOyd
mCDtmITsnqwg7KKM7ZGcwrfthrXqs7wg7KGw6rG0IHwKfCBgbGFkZGVyYCB8IO2VnCDqsIDsp4Ds
lKkg7ZmV7J6l7ZWY64qUIOyXsOq1rCDsoJXssYXsnYQg6rCA7KeEIFAgfCDrj4TrqZTsnbjsl5Ds
hJwg7KCV7ZWcIO2ZleyepSDri6jqs4TsmYAg7Jew6rWs7J287KeAIHwKfCBgdGFzazVgIHwg7J28
67CYIOyXheustMK37ZaJ7IKsIHwg7LK07YGs66as7Iqk7Yq47J2YIOyZhOujjMK37KeE7ZaJ7KSR
wrfrjIDquLDCt+unie2emMK367O066WYIHwKfCBgdG9waWMzYCB8IOyjvOygnCDqsoDthqAg7KCV
7LGF7J2EIOqwgOynhCBEIHwg7KO87KCcIOyngOuPhOydmCDrr7jsoJDqsoDCt+2ZleyglcK37KCQ
6rKAIOu0ieyduOqzvCDrgqDsp5wgfAp8IGBib29rYCB8IOyxhcK36rWQ7J6sIOygnOyekSDqsoDs
iJgg7KCV7LGF7J2EIOqwgOynhCBQIHwg6rKA7IiY64yA7J6l7J2YIOuLqOqzhCB8CnwgYG5vbmVg
IHwg67OE64+E7J2YIOynhO2WiSDri6jqs4TqsIAg7JeG64qUIOuMgOyDgSB8IOyXhuydjCwgYHRy
dXRoYCDrtojtlYTsmpQgfAoK7IOIIO2ZmOqyveyXkCDsl7DqtazCt+q1kOyerCDsoJXssYXsnYQg
7J6Q64+Z7Jy866GcIOunjOuTpOyngCDslYrripTri6QuIGBmdW5uZWxgwrdgbGFkZGVyYMK3YGJv
b2tg7J2YIOyijO2RnCwg67KI7Zi4IOuMgOydkSwg7JmE66OMIOyhsOqxtOydgCDtlbTri7kg64+E
66mU7J247J2YIOqzoOycoCDqt5zsuZnsnbQg7KCV7ZWc64ukLiDsoJXssYXsnbQg7JeG7Jy866m0
IOyehOydmCDsiKvsnpDrpbwg66eM65Ok7Ja0IOqygOyCrO2VmOyngCDslYrripTri6QuIGBib3Ju
OiBsZWdhY3lg64qUIOqygOyCrOulvCDtlLztlZjquLAg7JyE7ZWcIOq4sOuzuOqwkuydtCDslYTr
i4jri6QuCgojIyA2LiDrk7HroZ3rtoAKCuyDiCDtmZjqsr3snZggYF9vbnRvbG9neS9yZWdpc3Ry
eS55bWxg7J2AIOuLpOydjCDruYgg6rWs7KGw7JeQ7IScIOyLnOyeke2VnOuLpC4g7Iuk7KCcIOyC
rOyaqeydtCDtmZXsnbjrkJwg64yA7IOB66eMIOy2lOqwgO2VnOuLpC4KCmBgYHlhbWwKdG9vbHM6
IHt9CnN0b3Jlczoge30KYWNjb3VudHM6IHt9CnBlcnNvbnM6IHt9Cm1lbW9yeV9zdG9yZXM6IFtd
CmBgYAoK65Ox66Gd67aA7JeQ64qUIOuPhOq1rOydmCDsg4HrjIDqsr3roZzCt+yiheulmCwg7KCA
7J6l7IaM7J2YIOuFvOumrCDsnbTrpoTCt+ychOy5mCwg6rOE7KCV7J2YIOyaqeuPhOyymOufvCDs
l7DqsrAg7ZmV7J247JeQIO2VhOyalO2VnCDsoJXrs7Trp4wg65GU64ukLiDruYTrsIDrsojtmLjC
t0FQSSDtgqTCt+uhnOq3uOyduCDthqDtgbDsnYQg7KCB7KeAIOyViuuKlOuLpC4gYG1lbW9yeV9z
dG9yZXNg7JeQ64qUIOyLpOygnOuhnCDsk7DripQg6riw7Ja1IOyggOyepeyGjOydmCDsl5DsnbTs
oITtirgg7J2066aEwrfsnpHsl4Xqs7XqsIQg7IOB64yA6rK966GcwrfrsLDsuZgg7ZiV7Iud7J2E
IOuTseuhne2VnOuLpC4g67mIIOuqqeuhneydgCDigJzquLDslrUg7KCA7J6l7IaMIOqygOyCrCDr
jIDsg4Eg7JeG7J2M4oCd7J2066mwIOKAnOq4sOyWtSDqsoDsgqzqsIAg7Ya16rO87ZWo4oCd7J20
IOyVhOuLiOuLpC4KCuq4sOyhtCDsnpHsl4Xqs7XqsITsnYQg67O16rWs7ZWgIOuVjCDrk7HroZ3r
toDripQg6rCc7J24IOyekeyXhSDsnpDro4zsnZgg7J2867aA64ukLiDrs7TsobTtlZwg65KkIOyD
iCDsu7Ttk6jthLDsl5DshJwg6rK966Gc7JmAIOuPhOq1rCDshKTsuZjrpbwg7ZmV7J247ZWc64uk
LiDrs4TqsJzsnZgg7IOIIO2ZmOqyveydhCDrp4zrk6Qg65WM7JeQ64qUIOuLpOuluCDsnpHsl4Xq
s7XqsITsnZgg7IKs656Mwrfqs4TsoJXCt+yggOyepeyGjCDrqqnroZ3snYQg7ZWo6ruYIOuwsO2P
rO2VmOyngCDslYrripTri6QuCgojIyA3LiDsnbTrpoQg7KCV6rec7IudIOygleuzuAoKKirsoJXq
t5zsi50qKuydgCDsnbTrpoTsnbQg6rec7LmZ7JeQIOunnuuKlOyngCDtlITroZzqt7jrnqjsnbQg
6rKA7IKs7ZWY64qUIO2RnO2YhOyLneydtOuLpC4g7JWE656YIGAjIGlyaXMtbmFtaW5nYCBZQU1M
IOu4lOuhneydgCBJUklTIOyggeyaqSDrqoXshLjsnZgg6riw6rOEIO2MkOuPhSDruJTroZ3snYQg
6re464yA66GcIOuztOyhtO2VnOuLpC4g64+E6rWs64qUIOydtCDruJTroZ3snYQg7J297Jy866mw
IOuzhOqwnOydmCDsnbTrpoQg7KCV6rec7Iud7J2EIOunjOuTpOyngCDslYrripTri6QuIOuyiO2Y
uMK37YOc6re47J2YIOydmOuvuCDqt5zsuZnquYzsp4Ag66qo65GQIOygleq3nOyLneycvOuhnCDt
mZXsnbjtlaAg7IiYIOyeiOuKlCDqsoPsnYAg7JWE64uI64ukLgoKYGBgeWFtbAojIGlyaXMtbmFt
aW5nIHYxLjEg4oCUIO2MjOydtOyNrCByZSDrrLjrspUuIOycoOuLiOy9lOuTnCDqt7jrjIDroZwu
IOyghOyytCDsnbzsuZgoZnVsbG1hdGNoKS4gKHYxLjEgMjAyNi0wOS0wNDogcHJvamVjdCDtg5zq
t7gg67O17IiYIOuzkeq4sCkKbmFtaW5nOgogIHRhZzogIuOAllte44CW44CXXSvjgJciICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIOuwmOyghOqwgSDtg5zqt7gg7ZWcIOqwnAog
IGdyb3VwX3ByZWZpeDogIuOAllte44CW44CXXSvjgJciICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBEIOy9lOuTnCDrsJTroZwg7JWeLCDqs7XrsLEg7JeG7J2MLiAy64uo7J2AICfjgJbsg4Hs
nIROTi3spJHqsITjgJcnCiAgcm9sZTogICAgIlJcXGR7Mn0oPzpcXC5cXGR7Mn0pPy1bXigp44CW
44CXXStcXChbXigpXStcXCkiCiAgZG9tYWluOiAgIig/OuOAllte44CW44CXXSvjgJcpP0RcXGR7
Mn0oPzpcXC5cXGR7Mn0pPy1bXigp44CW44CXXStcXChbXigpXStcXCkoPzog44CWW17jgJbjgJdd
K+OAlyk/IgogIHByb2plY3Q6ICJQKD86XFxkezJ9fDBYKSg/OlxcLlxcZHsyfSk/LVteKCnjgJbj
gJddK1xcKFteKCldK1xcKSg/OiAoPzrjgJZbXuOAluOAl10r44CXKSspPyIgICAjIO2DnOq3uCDr
s7XsiJgg67OR6riwIO2XiOyaqShRMiwgMjAyNi0wOS0wNCk6ICcg44CWV2Vi44CX44CWQXBw44CX
JwogIHN0ZXA6ICAgICJTXFxkezJ9KD86XFwuXFxkezJ9KT8tW14oKeOAluOAl10rXFwoW14oKV0r
XFwpIgogIHRhc2s6ICAgICJUXFxkezJ9KD86XFwuXFxkezJ9KT8tW14oKeOAluOAl10rKD86XFwo
W14oKV0rXFwpKT8oPzrjgJZbXuOAluOAl10r44CXKT8iCiAgdXRpbDogICAgIl9bYS16XSsoPzot
W2Etel0rKSoiCiAgZHJhd2VyOiAgbnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMg7J2066aEIOq3nOy5mSDsl4bsnYwg4oCUIOy5tOuTnCBkcmF3ZXJzOiDshKDs
lrjsnLzroZwg7YyQ7KCVCiAgZm9yYmlkZGVuX2NoYXJzOiAiW1xcW1xcXXt944CQ44CRXSIgICAg
ICAgICAgICAgICAgICAgICAgICMg7KCE6rCBwrfrjIDqtITtmLjCt+ykkeq0hO2YuCDquIjsp4AK
ICBzcGFjZV9iZWZvcmVfcGFyZW46ICIgXFwoIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyDqtITtmLgg7JWeIOqzteuwsSDquIjsp4AKdGFnX2tpbmRzOiAgICMg67CY7KCE6rCBIO2DnOq3
uCDri6vtnowg66qp66GdIDEx7KKFICjro6jtirggQUdFTlRTLm1kIOOAiO2RnOq4sCDquLDtmLgg
6rec7LmZ44CJ6rO8IDE6MSkKICAtIOq4sOqwhC/sl7Drj4QKICAtIOyGjO2UhO2KuOybqOyWtC/s
grDstpzrrLwg7KKF66WYCiAgLSDri7Tri7nsnpAKICAtIOqwgOyhsSDqtazshLHsm5AKICAtIO2V
meuFhOuwmMK367aE67CYCiAgLSDsl7Drj4TCt+2VmeuFhOuwmAogIC0g7IS467aAIOyngOyXrQog
IC0g7IS467aA7JiB7JetCiAgLSDrhbzrrLgg64uo7JyECiAgLSDtmZXsnqUg7Y+s7J247Yq4CiAg
LSDrj4TrqZTsnbgg6re466O5IOygkeuRkApgYGAKCuu4lOuhnSDslYjsnZgg64Kg7Kec7JmAIGBR
MmDripQg7KCV6rec7Iud7J2YIOy2nOyymCDtkZzquLDri6QuIO2VtOuLuSDqs7zqsbAg6rKw7KCV
64yA7J6lIO2MjOydvOydhCDsg4gg7J6R7JeF6rO16rCE7JeQIOuzteyCrO2VmOqxsOuCmCDrn7Dt
g4DsnoQg7J2Y7KG07Jy866GcIOyalOq1rO2VmOyngCDslYrripTri6QuCgpg44CWIOOAl2Ag7YOc
6re464qUIOychCDtl4jsmqkg7KKF66WY66Gc66eMIOyTtOuLpC4g7IaM7ZSE7Yq47Juo7Ja0wrfs
grDstpzrrLwg7KKF66WY64qUIGDjgJZXZWLjgJfjgJZBcHDjgJdg7LKY65+8IOuzteyImCDrs5Hq
uLDqsIAg6rCA64ql7ZWY64ukLiDrj4TrqZTsnbgg6re466O5IOygkeuRkCDslYjsl5DshJwg67KI
7Zi46rCAIOuLqOqzhOydtOqzoCDsnbTrpoTsnbQg67aE7JW87J24IOqyveyasCwg6rCZ7J2AIOu2
hOyVvOydmCDshLjrtoDsmIHsl60g7ZiV7KCcIOykkSDrrLTtg5zqt7gg7ZGc7KSAIOuPhOuplOyd
uCDtlZjrgpjrpbwg65GQ64qUIOqyveyasOuKlCDtlbTri7kg64+E66mU7J24IOygleyxheyXkCDs
hKDslrjtlZjsl6wg6rKA7IKs7ZWc64ukLgoKIyMgOC4g6rKA7KadCgrqsoDsgqzripQg7IS4IOy4
teycvOuhnCDqtazrtoTtlZzri6QuICoqMey4tSDtmJXsi50qKuydgCDsubTrk5wg7J6Q7LK07J2Y
IOusuOuylcK37ZWE7IiY6rCSwrdJROulvCDtmZXsnbjtlZzri6QuICoqMuy4tSDsoJXtlakqKuyd
gCDsubTrk5wg64K07Jqp6rO8IOyLpOygnCDtjIzsnbzCt+2PtOuNlOqwgCDrp57ripTsp4Ag7ZmV
7J247ZWc64ukLiAqKjPsuLUg6rec7LmZKirsnYAg64+E66mU7J24IOygleyxheqzvCDsnpHsl4Ug
6rec7LmZ7J2EIOyngO2CpOuKlOyngCDtmZXsnbjtlZzri6QuIDPsuLUg66y47KCc66W8IOydtOyc
oOuhnCDtj7TrjZTCt+y5tOuTnOulvCDsnpDrj5nsnLzroZwg6rOg7LmY7KeAIOyViuqzoCDqsoDt
hqDtlaAg7Lap64+MIOuqqeuhneyXkCDrgqjquLTri6QuCgojIyMgOC0xLiDquLDqs4Qg6rKA7IKs
IDE07KKFCgp8ICMgfCDqsoDsgqwgfCDsuLUgfCDsg4gg7ZmY6rK97J2YIOyggeyaqSDsobDqsbQg
fAp8LS0tfC0tLXwtLS18LS0tfAp8IDEgfCDtj7TrjZTrqoXsnbQgN+ygiCDsnbTrpoQg7KCV6rec
7Iud7JeQIOunnuuKlOqwgCB8IDMgfCDsnITqs4Qg7Y+0642U6rCAIOyeiOydhCDrlYwsIOyekOyc
oOq1rOyXrcK37KCc7Jm4IOuMgOyDgSDqtazrtoQgfAp8IDIgfCDtg5zqt7jqsIAg7ZeI7JqpIOyi
heulmOydtOupsCDrs7XsiJgg67OR6riwIOq3nOy5meydhCDsp4DtgqTripTqsIAgfCAzIHwg7YOc
6re46rCAIOyeiOydhCDrlYwsIOydmOuvuCDtjJDsoJUg7KCV7LGF7J20IO2VhOyalO2VmOuptCDr
s4Trj4Qg7ZmV7J24IHwKfCAzIHwg7JyE6rOEwrfsnKDti7jsl5AgYEFHRU5UUy5tZGDsmYAgYEBB
R0VOVFMubWRg7J24IGBDTEFVREUubWRg6rCAIOyeiOuKlOqwgCB8IDIgfCDshKDslrgg7ISc656N
6rO8IO2VmOychMK37J6Q64+ZIOy2nOugpSDsoJzsmbgsIOycoO2LuOydgCDsoJzsmbjtlZjsp4Ag
7JWK7J2MIHwKfCA0IHwgYGNhbm9uaWNhbGDCt2B0ZW1wbGF0ZWDCt2Bwcm9tb3RlZF9mcm9tYCDr
jIDsg4HsnbQg7KG07J6s7ZWY64qU6rCAIHwgMiB8IO2VtOuLuSDqtIDqs4TqsIAg7ISg7Ja465CY
7Ja0IOyeiOydhCDrlYwgfAp8IDUgfCBgbWlycm9yX29mYCDsgqzrs7jsnbQg7JuQ67O467O064uk
IOyYpOuemOuQmOyXiOuKlOqwgCB8IDIgfCDtlbTri7kg6rSA6rOE7JmAIOu5hOq1kCDqsIDriqXt
lZwg7YyM7J287J20IOyeiOydhCDrlYwgfAp8IDYgfCBgZnVubmVsYMK3YGxhZGRlcmAgUOyXkCDs
tpzsg50g6re86rGwIGBwcm9tb3RlZF9mcm9tYOydtCDsnojripTqsIAgfCAzIHwg7ZW064u5IOyX
sOq1rCDsoJXssYXsnbQg7J6I7J2EIOuVjCwg7KCV64u57ZWcIGBib3JuOiBsZWdhY3lg66eMIOup
tOygnCB8CnwgNyB8IO2YhOyerCDsooztkZzrs7Tri6Qg7JWe7ISgIOu5iCDri6jqs4Qg7ISc656N
7J2EIOunjOuTpOyXiOuKlOqwgCB8IDMgfCDrj4TrqZTsnbjsnZgg7KKM7ZGc4oaU64uo6rOEIO2R
nOyZgCDsg4Htg5wg7JuQ67O47J2EIOydveydhCDsiJgg7J6I7J2EIOuVjCB8CnwgOCB8IOyInOyw
qCDtmZXsnqUgUCDrsojtmLjsmYAg7ZmV7J6lIOuLqOqzhCDrsojtmLjqsIAg7KCV7LGF64yA66Gc
IOuMgOydke2VmOuKlOqwgCB8IDMgfCDtlbTri7kg7KCV7LGF7J20IFAg67KI7Zi4ID0gTSDrsojt
mLggKyAxIOuTseydhCDshKDslrjtlojsnYQg65WMIHwKfCA5IHwgYHNpYmxpbmdfZ3JvdXBgIO2Y
leygnOydmCBEIOuyiO2YuMK37YOc6re4IOq1rOu2hOydtCDqt5zsuZnrjIDroZzsnbjqsIAgfCAz
IHwg7ZiV7KCcIOustuydjOqzvCDqt7jro7kg7KCR65GQwrfrrLTtg5zqt7gg7ZGc7KSAIOyYiOyZ
uCDsoJXssYXsnbQg7J6I7J2EIOuVjCB8CnwgMTAgfCDsnKDti7gg7Y+0642UIOydtOumhOydtCBg
X+yYgeyWtOyGjOusuOyekGDsnbjqsIAgfCAzIHwg7J6s7IKs7JqpIOycoO2LuOydtCDsnojsnYQg
65WMLCDsvZTrk5wg7KCA7J6l7IaMIOuCtOu2gOyZgCDqtazrs4QgfAp8IDExIHwgYHN0b3JlZF9h
dGDCt2B1c2VzX3Rvb2xgIOuMgOyDgeqzvCDrj4Tqtawg64K067aAIOqyveuhnOqwgCDsnKDtmqjt
lZzqsIAgfCAyIHwg65Ox66Gd67aAwrfqtIDqs4TqsIAg7J6I7J2EIOuVjCwg64yA7IOBIOyiheul
mOyZgCDqsr3roZzrpbwg7ZWo6ruYIO2ZleyduCB8CnwgMTIgfCBgYWJvdXRgIOq4sOyWteydmCDr
jIDsg4Hqs7wg6riw7Ja1IOyggOyepSDrspTsnITqsIAg66ee64qU6rCAIHwgMiB8IOq4sOyWtSDs
oIDsnqXshozsmYAg7ZW064u5IOyXsOqysOydtCDrk7HroZ3rkJjsl4jsnYQg65WMIHwKfCAxMyB8
IOuPmeqysOuQnCDrjIDsg4HsnbQg7J2064+ZwrfqsJzrqoUg6rOE7ZqN7JeQIOyXhuuKlOqwgCB8
IDMgfCDrj5nqsrAg7KCV7LGF6rO8IOyLpO2WiSDsoIQg6rOE7ZqN7J20IOyeiOydhCDrlYwgfAp8
IDE0IHwg66+86rCQ7ZWcIOuMgOyDgeydtCDsnbTrj5nCt+qzteqwnMK37JqU7JW9IOqzhO2ajeyX
kOyEnCDsoIHsoIjtnogg7KCc7Jm465CY7JeI64qU6rCAIHwgMyB8IGBzZW5zaXRpdmVgIOuMgOyD
geqzvCDsi6Ttlokg7KCEIOqzhO2ajeydtCDsnojsnYQg65WMIHwKCjHsuLUg66i466as66eQIOqy
gOyCrOuKlCAxNOyiheqzvCDrs4Trj4TroZwg7ZWo6ruYIOyImO2Wie2VnOuLpC4g7YyM7IuxIOyL
pO2MqCwg7KSR67O1IElELCDtlYTsiJjqsJIg64iE6529LCDtl4jsmqnrkJjsp4Ag7JWK7J2AIOq0
gOqzhMK37IOB7YOcIOqwkuydgCDsoJXsg4Eg7Lm065Oc66GcIOqwhOyjvO2VmOyngCDslYrripTr
i6QuIOyEnOuejeydmCDsi6TsobQsIGB0cnV0aGAg7YyM7J287J2YIOyLpOyhtCwg7ZiE7J6sIOyd
tOumhOqzvCDqsJnsnYAgYGFsaWFzZXNgIOuTsSAy7Li1IOyghOygnOuPhCDtmZXsnbjtlZzri6Qu
CgojIyMgOC0yLiDqsrDqs7zrpbwg7J2964qUIOuylQoKfCDqsrDqs7wgfCDsnZjrr7ggfAp8LS0t
fC0tLXwKfCDthrXqs7wgfCDsoIHsmqntlaAg64yA7IOB7J20IOyeiOqzoCDsi6TsoJwg6rKA7IKs
66W8IOyImO2Wie2VtCDrrLjsoJzqsIAg7JeG7JeI7J2MIHwKfCDsi6TtjKggfCDsoIHsmqntlaAg
6rKA7IKs7JeQ7IScIOusuOygnOqwgCDrsJzqsqzrkKggfAp8IOuMgOyDgSDsl4bsnYwgfCDtlbTr
i7kg6rSA6rOEwrftj7TrjZTCt+uTseuhnSDrjIDsg4Eg7J6Q7LK06rCAIOyXhuydjCB8Cnwg7KCV
7LGFIOyXhuydjCB8IOuPhOuplOyduOuzhCDtjJDri6gg6riw7KSA7J20IOyXhuyWtCDqsoDsgqwg
7KCB7JqpIOyXrOu2gOulvCDtmZXsoJXtlaAg7IiYIOyXhuydjCB8Cnwg7YyQ64+FIOu2iOuKpSB8
IOuMgOyDgeydgCDsnojsnLzrgpgg7ZWE7JqU7ZWcIOusuOyEnMK37IOB7YOcwrftmJXsi53snYQg
7J297J2EIOyImCDsl4bsnYwgfAp8IOuvuOq1rO2YhCB8IOuwsO2PrCDrj4TqtazqsIAg7ZW064u5
IOqygOyCrCDrmJDripQg7IS467aAIOyhsOqxtOydhCDslYTsp4Eg7KeA7JuQ7ZWY7KeAIOyViuyd
jCB8CgrrjIDsg4Eg7JeG7J2MwrfsoJXssYUg7JeG7J2MwrftjJDrj4Ug67aI64qlwrfrr7jqtazt
mITsnYQg7Ya16rO8IOyImOyXkCDtj6ztlajtlZjsp4Ag7JWK64qU64ukLiDrs7Tqs6DshJzsl5Ag
6rKA7IKs67OEIOyngOybkCDrspTsnITsmYAg66+47ZmV7J24IOu2gOu2hOydhCDrk5zrn6zrgrjr
i6QuIOychCDtkZzripQg66qF7IS47J2YIOyalOq1rCDrqqnroZ3snbTrqbAsIO2RnOqwgCDsnojr
i6TripQg7J207Jyg66eM7Jy866GcIOuwsO2PrCDrj4TqtazsnZgg6rWs7ZiE7J20IOuqqOuRkCDs
mYTro4zrkJjsl4jri6Tqs6Ag7KO87J6l7ZWY7KeAIOyViuuKlOuLpC4g7ZSE66Gc6re4656o7J20
IOygleyDgSDsooXro4zrkJjsl4jri6TripQg7IKs7Iuk66eM7Jy866GcIOyghOyytCDqsoDsgqzq
sIAg7Ya16rO87ZaI64uk6rOgIOuztOqzoO2VmOyngCDslYrripTri6QuCgojIyA5LiDsg53shLHC
t+uzgOqyvcK367O16rWsIOygiOywqAoKYGBgdGV4dArikaAg7Iuk7KCcIO2PtOuNlMK36riw7KG0
IOy5tOuTnCDtmZXsnbgKICAgIOKGkwrikaEg7Lm065OcIOy0iOyViOqzvCDqtIDqs4Qg6rKA7Yag
CiAgICDihpMK4pGiIO2VhOyalO2VnCDsubTrk5wg67CY7JiB6rO8IOq3uOuemO2UhCDsu7TtjIzs
nbwKICAgIOKGkwrikaMg6rKA7KadIOqysOqzvCDtmZXsnbgKICAgIOKGkwrikaQg7KeA64+Ewrfr
t7Ag7J6s7IOd7ISxCmBgYAoK66qF66C57J2AIGA87J6R7JeF6rO16rCEPmDsl5DshJwg7Iuk7ZaJ
7ZWc64ukLiDsgqzsmqkg6rCA64ql7ZWcIOyYteyFmOydgCDrsLDtj6zrkJwg64+E6rWs7J2YIGAt
LWhlbHBg7JmAIOqwgOydtOuTnOyXkOyEnCDtmZXsnbjtlZzri6QuCgpgYGBwb3dlcnNoZWxsCnB5
dGhvbiBfb250b2xvZ3kvY2hlY2tfZnJlc2gucHkKcHl0aG9uIF9vbnRvbG9neS9idWlsZF9ncmFw
aC5weSAtLWluaXQKcHl0aG9uIF9vbnRvbG9neS9idWlsZF9ncmFwaC5weSAtLWluaXQgLS13cml0
ZQpweXRob24gX29udG9sb2d5L2J1aWxkX2dyYXBoLnB5IC0tY29tcGlsZQpweXRob24gX29udG9s
b2d5L3ZhbGlkYXRlLnB5CnB5dGhvbiBfbWFwLWdlbmVyYXRvci9idWlsZF9tYXAucHkKcHl0aG9u
IF9vbnRvbG9neS9yZW5kZXJfdmlldy5weQpgYGAKCi0g7JyEIOuqqeuhneydgCDqsIEg66qF66C5
7J2YIOychOy5mOyZgCDsiJzshJzrpbwg67O07Jes7KSA64ukLiDrqqjrk6Ag7IS47IWY7JeQ7ISc
IOy5tOuTnCDsk7DquLAg66qF66C57J2EIOyekOuPmSDsi6TtlontlZjripQg66qp66Gd7J20IOyV
hOuLiOuLpC4KLSBgLS1pbml0YOydgCDstIjslYjsnYQg66eM65Og64ukLiAqKuq4sOyhtCDsubTr
k5zrpbwg67CU6r647KeAIOyViuyngOunjCDrpqztj6ztirjsmYAgSUQg7ZWg64u57ZGc66W8IOun
jOuTpCDsiJgg7J6I7Jy866+A66GcIOyZhOyghO2VnCDrrLTsk7DquLAg7KGw7ZqM6rCAIOyVhOuL
iOuLpC4qKiDsoITssrQg7Iqk7LqU7J247KeAIOuylOychCDsp4DsoJXsnbQg6rCA64ql7ZWc7KeA
IOuPhOybgOunkOydhCDtmZXsnbjtlZzri6QuCi0gYC0taW5pdCAtLXdyaXRlYOuKlCDsi6TsoJwg
7Lm065Oc66W8IOyTtOuLpC4g7YyM7J2867OEIOuwseyXhSwg6riw7KG0IOuzuOusuCDrs7TsobQs
IElEIOykkeuztSDqsoDsgqzrpbwg7ZmV7J247ZWc64ukLiDquLDsobQg7Lm065Oc66W8IOuyhOum
rOqzoCBJROulvCDsg4jroZwg66ek6riw64qUIOy0iOq4sO2ZlCDrqoXroLnsnLzroZwg7JOw7KeA
IOyViuuKlOuLpC4KLSBgLS1jb21waWxlYOydgCDtj7TrjZTCt+y5tOuTnOulvCDsnb3slrQg6re4
656Y7ZSE66W8IOqwseyLoO2VnOuLpC4gSUTrpbwg67O07KG07ZWY6riwIOychO2VnCDtlaDri7nt
kZwg65OxIOuztOyhsCDsg53shLHrrLzsnbQg7J6I64qU7KeA64qUIOuwsO2PrCDrj4TqtazsnZgg
64+Z7J6R7J2EIOuUsOuluOuLpC4KLSDqsoDspp3quLDripQg7JeF66y0IOybkOuzuOydhCDsnpDr
j5kg7IiY7KCV7ZWY7KeAIOyViuqzoCDqsrDqs7wg66as7Y+s7Yq466W8IOuCqOq4tOuLpC4g7Iuk
7YyowrftjJDrj4Ug67aI64ql6rO8IOuvuOq1rO2YhCDqsoDsgqzrpbwg7ZWo6ruYIO2ZleyduO2V
nOuLpC4KLSDsp4Drj4TsmYAg67ew64qUIOy7tO2MjOydvCDrkqQg7J6s7IOd7ISx7ZWc64ukLiDs
g4gg67Cw7Y+s67O47J2YIOyngOuPhCDsg53shLHquLDripQg6riw7KG0IOyCrOyaqeyekOydmCBI
VE1MIOyXhuydtOuPhCDstZzstIgg7KeA64+E66W8IOunjOuTpCDsiJgg7J6I7Ja07JW8IO2VnOuL
pC4KLSDqsJzrqoXCt+ydtOuPmSDsoITsl5DripQg7JibIOydtOumhOydhCBgYWxpYXNlc2Dsl5Ag
64Ko6riw6rOgIElE66W8IOycoOyngO2VnOuLpC4g7J2066aE7JeQIOydmOuvuCDsnojripQg67OA
7ZmU6rCAIOyeiOuLpOuptCDsubTrk5zsnZgg7Iqk7LqUIOyGjeyEseqzvCDqtIDqs4Trj4Qg6rKA
7Yag7ZWc64ukLgotIO2PtOuNlOu/kCDslYTri4jrnbwg7Lm065OcwrfqtIDqs4TCt+uTseuhneu2
gMK366qF7IS466W8IOuwlOq/qOydhCDrlYzsl5Drj4Qg7Lu07YyM7J286rO8IO2VhOyalO2VnCDq
soDsgqzrpbwg7IiY7ZaJ7ZWc64ukLiDsi6DshKDrj4Qg7KCQ6rKA7J20IOuqqOuToCDrgrTsmqkg
67OA6rK97J2EIOqwkOyngO2VnOuLpOqzoCDqsIDsoJXtlZjsp4Ag7JWK64qU64ukLgoKIyMgMTAu
IOyEpOy5mOyZgCDsnpDrj5kg7KCQ6rKACgrrj4TqtazripQg7ISg7YOd7ZWcIOyekeyXheqzteqw
hCDro6jtirjrpbwg6riw7KSA7Jy866GcIOqyveuhnOulvCDqs4TsgrDtlZzri6QuIO2KueyglSDr
k5zrnbzsnbTruIzCt+yCrOyaqeyekCDsnbTrpoTCt1B5dGhvbiDshKTsuZgg7JyE7LmY66W8IOqz
oOygle2VmOyngCDslYrripTri6QuIFB5dGhvbuqzvCDtlYTsmpTtlZwgWUFNTCDsnb3quLAg6528
7J2067iM65+s66as66W8IOyEpOy5mO2VmOqzoCDsi6TsoJwg7Iuk7ZaJIO2MjOydvOydhCDtmZXs
nbjtlZzri6QuCgpDbGF1ZGXsnZgg7IS47IWYIOyLnOyekcK364+E6rWsIOyLpO2WiSDrkqQg7KCQ
6rKA7J2AIOq4sOyhtCDtm4Ug7ISk7KCV7J2EIOuztOyhtO2VmOupsCDstpTqsIDtlZzri6QuIENv
ZGV464qUIOyEuOyFmCDsi5zsnpHsl5Ag7Iug7ISg64+EIOuqheugueydhCDsp4HsoJEg7Iuk7ZaJ
7ZWY64+E66GdIOujqO2KuCDsp4Dsuajsl5Ag7JWI64K07ZWc64ukLiDtm4XsnbTrgpgg7JW86rCE
IOygkOqygOydtCDshKTsuZjrkJjsp4Ag7JWK7JWY7Jy866m0IOuvuOyEpOygleydtOudvOqzoCDr
s7Tqs6DtlZzri6QuIOq4sOyhtCDrsLHsl4XsnbQg7JeG64qUIOyDiCDtmZjqsr3sl5DshJwg7JW8
6rCEIOqygOyCrOqwgCDsnpDrj5kg7Iuk7ZaJ65Cc64uk6rOgIOyEpOuqhe2VmOyngCDslYrripTr
i6QuCgrrs7Xqtazsmqkg7JuQ67O46rO8IOyDiCDtmZjqsr3smqkg67Cw7Y+s67O47J2EIOq1rOuz
hO2VnOuLpC4g6rCZ7J2AIOyekeyXheqzteqwhCDrs7Xqtazsl5DshJzripQg7Lm065OcwrdJRMK3
65Ox66Gd67aAwrfsl4XrrLQg7IOB7YOcIOybkOuzuOydhCDrs7TsobTtlZjqs6Ag6re4656Y7ZSE
66W8IOuLpOyLnCDrp4zrk6Dri6QuIOuPheumvSDsi6Dqt5wg7ISk7LmY7JeQ7ISc64qUIOu5iCDr
k7HroZ3rtoDsmYAg7IOIIOy5tOuTnOuhnCDsi5zsnpHtlZzri6QuIOq4sOyhtCDrj4TqtazqsIAg
7J6I64qUIOyekOumrOyXkCDsi6DCt+q1rCDtjIzsnbwg7J2867aA66eMIOyEnuyWtCDrhpPsp4Ag
7JWK64qU64ukLgoKIyMgMTEuIOuzgOqyvSDquLDroZ3qs7wg7KCV67O4IOycoOyngAoK7YG0656Y
7IqkwrfqtIDqs4QgMTTsooXCt+qygOyCrCAxNOyihcK37J2066aEIOygleq3nOyLneydhCDrsJTq
v4Ag65WM64qUIOydtCDrqoXshLjrpbwg66i87KCAIOqygO2GoO2VmOqzoCDqsrDsoJUg6re86rGw
66W8IO2VtOuLuSDsnpHsl4Xqs7XqsITsnZgg64yA7J6l7JeQIOuCqOq4tOuLpC4g64+E66mU7J24
IOqzoOycoCDsooztkZzsmYAg7JeF66y0IOq3nOy5meydgCDtlbTri7kg64+E66mU7J247J2YIGBB
R0VOVFMubWRg7JeQIOuRkOupsCDsl6zquLDsl5Ag7Iuk7KCcIOqwnOyduCDtlITroZzsoJ3tirjs
nZgg7Jq07JiBIOq3nOy5meydhCDsmK7qsqgg7KCB7KeAIOyViuuKlOuLpC4KCnwg6riw7KSAIHwg
64K07JqpIHwKfC0tLXwtLS18Cnwg7JuQ67O4IOydtOugpSAyMDI2LTA5LTA1IHYxLjQgfCDsi6Ds
hKDrj4Qg7KCQ6rKALCDsg4Htg5zqsIAg7JeG64qUIFDsnZggYHRydXRoYCDsmIjsmbgsIOuTseuh
neu2gOydmCDquLDslrUg7KCA7J6l7IaMLCDsnbTrpoQg6rec7LmZ6rO8IOyEnOuejSDsmIjsmbjr
pbwg67CY7JiBIHwKfCB2OCDrsLDtj6zsmqkg7YyM7IOd67O4IHwg6rCc7J24IOuNsOydtO2EsMK3
6rOg7KCVIOujqO2KuMK37Yq57KCVIOqzvOqxsCDsobDsgqwg7YyM7J28IOydmOyhtOydhCDsoJzq
sbDtlZjqs6Ag7Iug6recIOyEpOy5mMK36riw7KG0IOuzteq1rMK36rKA7IKsIOuvuOyngOybkCDq
tazrtoTsnYQg66qF7IucIHwKCuydtCDtjIzsg53rs7jsnYQg7ISk7LmY7ZaI64uk6rOgIOq4sOyh
tCBJUklT7J2YIOyatOyYgSDrqoXshLjqsIAg7J6Q64+Z7Jy866GcIOqwseyLoOuQmOuKlCDqsoPs
nYAg7JWE64uI64ukLiDquLDsobQg7JuQ67O47J2AIO2VtOuLuSDsnpHsl4Xqs7XqsITsnZgg7KCV
67O47Jy866GcIOuztOyhtO2VnOuLpC4K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/query.py","encoding":"base64","size":24113,"runtimeSha256":"5cfe8b00f26da3d463502c6b410db2e979f428ba035a72913c02778bbdf2e0a8","normalizedSha256":"f209a4f3cb7989e126c70756147c489ce9964d51adade530b68cf795fbb97fd5"} -->
```base64
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCiIiIklSSVMg7Jio7Yao66Gc7KeAIOyhsO2ajCDrj4Tq
tawg4oCUIGdyYXBoLmpzb24g7J2EIOydveuKlCDsnb3quLAg7KCE7JqpIENMSSAo66qF7IS47ISc
IDfsoIggYHF1ZXJ5LnB5YCkuDQoNCuyXkOydtOyghO2KuOqwgCBncmVwIOuMgOyLoCDsk7DripQg
6rKD7J2064ukLiDslrTrlqQg7YyM7J2864+EIOyTsOyngCDslYrripTri6QoZ3JhcGguanNvbsK3
cmVnaXN0cnkueW1swrdBR0VOVFMubWQg7J296riw66eMKS4NCg0K7IKs7Jqp67KVDQogIHB5dGhv
biBfb250b2xvZ3kvcXVlcnkucHkgd2hlcmUgPOqygOyDieyWtD4gICAgICAgICAgICAgICAgICAg
ICAgIyDsnbTrpoTCt+y9lOuTnMK37JibIOydtOumhMK3SUQg7Ja064qQIOqyg+ycvOuhnOuToCDs
sL7quLAgKOu2gOu2hCDsnbzsuZjCt+uMgOyGjOusuOyekCDrrLTsi5wpDQogIHB5dGhvbiBfb250
b2xvZ3kvcXVlcnkucHkgc2hvdyA8aWR86rK966GcPiAgICAgICAgICAgICAgICAgICAgICAgIyDr
hbjrk5wg7Lm065OcIOyghOyytCArIOuCmOqwgOuKlC/rk6TslrTsmKTripQg6rCE7ISgDQogIHB5
dGhvbiBfb250b2xvZ3kvcXVlcnkucHkgaW5ib3VuZCA8aWR86rK966GcPiBbLS1yZWwgY2Fub25p
Y2FsXSAgIyDsnbQg64W465Oc66W8IOqwgOumrO2CpOuKlCDqsITshKAg7KCE67aADQogIHB5dGhv
biBfb250b2xvZ3kvcXVlcnkucHkgb3V0Ym91bmQgPGlkfOqyveuhnD4gWy0tcmVsIHBhcnRfb2Zd
ICAgIyDsnbQg64W465Oc7JeQ7IScIOuCmOqwgOuKlCDqsITshKAg7KCE67aADQogIHB5dGhvbiBf
b250b2xvZ3kvcXVlcnkucHkgY2Fub25pY2FsIDxpZHzqsr3roZw+ICAgICAgICAgICAgICAgICAg
IyBjYW5vbmljYWwg6rCE7ISg7J2EIOuUsOudvCDsoJXrs7gg66y47IScIOuqqeuhnSAo7JeG7Jy8
66m0ICLshKDslrgg7JeG7J2MIikNCiAgcHl0aG9uIF9vbnRvbG9neS9xdWVyeS5weSB0cmVlIDxp
ZHzqsr3roZw+IFstLWRlcHRoIE5dIFstLXN0ZXBzXSAjIGNvbnRhaW5zIOqwhOyEoOycvOuhnCDt
lZjsnIQg7Yq466asICgtLXN0ZXBzOiBTL1Qg7Y+0642U64+EKQ0KICBweXRob24gX29udG9sb2d5
L3F1ZXJ5LnB5IHN0YXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIOuFuOuTnMK3
6rCE7ISgwrftgbTrnpjsiqTrs4TCt+yDge2DnOyytOqzhOuzhMK36rSA6rOE67OEIOqwnOyImA0K
ICBweXRob24gX29udG9sb2d5L3F1ZXJ5LnB5IHJlc29sdmUgPOyYmyDtj7TrjZTrqoUg65iQ64qU
IOyYmyDsg4HrjIDqsr3roZw+ICAgIyBhbGlhc2VzIOuhnCDtmITsnqwg6rK966GcIOywvuq4sCAo
7JibIOydtOumhCDsnpTtlbQg7ZW07ISd7JqpKQ0KICDqs7XthrUg7Ji17IWYOiAtLWpzb24gKEpT
T04g7Lac66ClKSDCtyAtLWdyYXBoIDzqsr3roZw+ICjquLDrs7ggX29udG9sb2d5L2dyYXBoLmpz
b24pDQoNCjxpZHzqsr3roZw+IOuKlCBJRCDsoITssrQoaXJpczphMWIyYzNkNCkgwrcg7IOB64yA
6rK966GcIOyghOyytCDCtyDqsr3roZzsnZgg66eI7KeA66eJIO2PtOuNlOuqhSDCtyDsmJsg7J20
66aEKGFsaWFzKSDslrTripAg6rKD7J2065OgIOuQnOuLpC4NCu2bhOuztOqwgCDsl6zrn7/snbTr
qbQg66qp66Gd7J2EIOuztOyXrOyjvOqzoCDsooXro4wg7L2U65OcIDIsIOyXhuycvOuptCDsooXr
o4wg7L2U65OcIDEuDQoiIiINCmltcG9ydCBhcmdwYXJzZQ0KaW1wb3J0IGlvDQppbXBvcnQganNv
bg0KaW1wb3J0IHN5cw0KaW1wb3J0IHVuaWNvZGVkYXRhDQpmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBDb3VudGVyDQpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgNCg0KaW1wb3J0IHlhbWwNCg0KX1NU
RE9VVCA9IHN5cy5zdGRvdXQgPSBpby5UZXh0SU9XcmFwcGVyKHN5cy5zdGRvdXQuYnVmZmVyLCBl
bmNvZGluZz0idXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQ0KIyBidWlsZF9ncmFwaCDrj4QgaW1w
b3J0IOyLnOygkOyXkCDqsJnsnYAg7KSE66GcIHN0ZG91dCDsnYQg6rCQ7Iu864ukLiDsmrDrpqwg
656Y7Y2866W8IF9TVERPVVQg7JeQIOu2meyeoeyVhCDrkZDsp4Ag7JWK7Jy866m0IEdDIOuQmOup
sCDqs7Xsmqkg67KE7Y2866W8IOuLq+yVhCDrsoTrprDri6QuDQpzeXMucGF0aC5pbnNlcnQoMCwg
c3RyKFBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQpKQ0KZnJvbSBidWlsZF9ncmFwaCBp
bXBvcnQgUk9PVCwgT05ULCBjb2RlX29mLCByZWFkX2Zyb250bWF0dGVyLCBhc3NlcnRfbG9jYWwg
ICMgbm9xYTogRTQwMiAgKOy9lOuTnCDtjIzshJzCt+uouOumrOunkCDtjIzshJwg7J6s7IKs7Jqp
LCDsoJXqt5zsi50g7IOI66GcIOyViCDrp4zrk6YpDQoNCkdSQVBIX0RFRkFVTFQgPSBPTlQgLyAi
Z3JhcGguanNvbiINClJFR0lTVFJZID0gT05UIC8gInJlZ2lzdHJ5LnltbCINClJFTF9PUkRFUiA9
IFsiY29udGFpbnMiLCAicGFydF9vZiIsICJjYW5vbmljYWwiLCAiY2Fub25pY2FsX2ZvciIsICJ0
cnV0aF9hdCIsICJ0ZW1wbGF0ZSIsICJpbnN0YW50aWF0ZWRfYnkiLA0KICAgICAgICAgICAgICJt
aXJyb3Jfb2YiLCAibWlycm9yZWRfYnkiLCAicHJvbW90ZWRfZnJvbSIsICJwcm9tb3RlZF90byIs
ICJvd25lciIsICJyZWZlcnNfdG9fb3duZXIiLA0KICAgICAgICAgICAgICJleHRlbmRzIiwgImV4
dGVuZGVkX2J5IiwgInNpYmxpbmdfZ3JvdXAiLCAic3RvcmVkX2F0IiwgInN0b3JlcyIsICJ1c2Vz
X3Rvb2wiLCAidXNlZF9ieSIsDQogICAgICAgICAgICAgImdvdmVybmVkX2J5IiwgImdvdmVybnMi
LCAiaW52b2x2ZXMiLCAiaW52b2x2ZWRfaW4iLCAiYWJvdXQiLCAicmVtZW1iZXJlZF9ieSJdDQpS
RUdJU1RSWV9QUkVGSVggPSB7InRvb2wiOiAidG9vbHMiLCAic3RvcmUiOiAic3RvcmVzIiwgImFj
Y291bnQiOiAiYWNjb3VudHMiLCAicGVyc29uIjogInBlcnNvbnMifQ0KDQoNCiMg4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIOuh
nOuTnCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIANCg0KY2xhc3MgR3JhcGg6DQogICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgp
Og0KICAgICAgICBzZWxmLnBhdGggPSBhc3NlcnRfbG9jYWwoUGF0aChwYXRoKSkNCiAgICAgICAg
ZyA9IGpzb24ubG9hZHMoc2VsZi5wYXRoLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkNCiAg
ICAgICAgc2VsZi5tZXRhID0geyJzY2hlbWEiOiBnLmdldCgic2NoZW1hIiksICJnZW5lcmF0ZWQi
OiBnLmdldCgiZ2VuZXJhdGVkIiksICJmaWxlIjogc3RyKHNlbGYucGF0aCl9DQogICAgICAgIHNl
bGYubm9kZXMgPSBnWyJub2RlcyJdDQogICAgICAgIHNlbGYuZWRnZXMgPSBnWyJlZGdlcyJdDQog
ICAgICAgIHNlbGYuYnlfcGF0aCA9IHtub3JtKG5bInBhdGgiXSk6IG5pZCBmb3IgbmlkLCBuIGlu
IHNlbGYubm9kZXMuaXRlbXMoKX0NCiAgICAgICAgc2VsZi5vdXQgPSB7fQ0KICAgICAgICBzZWxm
LmlubiA9IHt9DQogICAgICAgIGZvciBlIGluIHNlbGYuZWRnZXM6DQogICAgICAgICAgICBzZWxm
Lm91dC5zZXRkZWZhdWx0KGVbImZyb20iXSwgW10pLmFwcGVuZChlKQ0KICAgICAgICAgICAgc2Vs
Zi5pbm4uc2V0ZGVmYXVsdChlWyJ0byJdLCBbXSkuYXBwZW5kKGUpDQogICAgICAgIHNlbGYucmVn
aXN0cnkgPSB7fQ0KICAgICAgICBhc3NlcnRfbG9jYWwoUkVHSVNUUlkpDQogICAgICAgIGlmIFJF
R0lTVFJZLmV4aXN0cygpOg0KICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgIHNlbGYu
cmVnaXN0cnkgPSB5YW1sLnNhZmVfbG9hZChSRUdJU1RSWS5yZWFkX3RleHQoZW5jb2Rpbmc9InV0
Zi04IikpIG9yIHt9DQogICAgICAgICAgICBleGNlcHQgeWFtbC5ZQU1MRXJyb3I6DQogICAgICAg
ICAgICAgICAgc2VsZi5yZWdpc3RyeSA9IHt9DQoNCiAgICAjIC0tLS0g64W465OcIO2KueyglSAo
aWQgfCDqsr3roZwgfCDrp4jsp4Drp4kg7Y+0642U66qFIHwg7JibIOydtOumhCkgLS0tLQ0KICAg
IGRlZiByZXNvbHZlX3JlZihzZWxmLCByZWYpOg0KICAgICAgICAiIiIo64W465OcSUQgMeqwnCwg
7ZuE67O0IOuqqeuhnSkuIOygle2ZlSDsnbzsuZgg4oaSIOycoOydvCDrtoDrtoQg7J287LmYIOyI
nC4iIiINCiAgICAgICAgciA9IG5vcm0ocmVmKQ0KICAgICAgICBpZiByZWYgaW4gc2VsZi5ub2Rl
czoNCiAgICAgICAgICAgIHJldHVybiByZWYsIFtdDQogICAgICAgIGlmIHIgaW4gc2VsZi5ieV9w
YXRoOg0KICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnlfcGF0aFtyXSwgW10NCiAgICAgICAgZXhh
Y3RfaWQgPSBbbmlkIGZvciBuaWQgaW4gc2VsZi5ub2RlcyBpZiBuaWQuY2FzZWZvbGQoKSA9PSBy
XQ0KICAgICAgICBpZiBsZW4oZXhhY3RfaWQpID09IDE6DQogICAgICAgICAgICByZXR1cm4gZXhh
Y3RfaWRbMF0sIFtdDQogICAgICAgICMg66eI7KeA66eJIO2PtOuNlOuqhSDrmJDripQg6rK966Gc
IOq8rOumrCjrkqTsl5DshJzrtoDthLApIOygle2ZlSDsnbzsuZgNCiAgICAgICAgdGFpbCA9IFtu
aWQgZm9yIHAsIG5pZCBpbiBzZWxmLmJ5X3BhdGguaXRlbXMoKSBpZiBwID09IHIgb3IgcC5lbmRz
d2l0aCgiLyIgKyByKV0NCiAgICAgICAgaWYgbGVuKHRhaWwpID09IDE6DQogICAgICAgICAgICBy
ZXR1cm4gdGFpbFswXSwgW10NCiAgICAgICAgaWYgbGVuKHRhaWwpID4gMToNCiAgICAgICAgICAg
IHJldHVybiBOb25lLCB0YWlsDQogICAgICAgICMg7JibIOydtOumhCDsoJXtmZUg7J287LmYDQog
ICAgICAgIGFsID0gW25pZCBmb3IgbmlkLCBuIGluIHNlbGYubm9kZXMuaXRlbXMoKSBpZiBhbnko
bm9ybShhKSA9PSByIGZvciBhIGluIG4uZ2V0KCJhbGlhc2VzIiwgW10pKV0NCiAgICAgICAgaWYg
bGVuKGFsKSA9PSAxOg0KICAgICAgICAgICAgcmV0dXJuIGFsWzBdLCBbXQ0KICAgICAgICBpZiBs
ZW4oYWwpID4gMToNCiAgICAgICAgICAgIHJldHVybiBOb25lLCBhbA0KICAgICAgICAjIOu2gOu2
hCDsnbzsuZgo7Jyg7J287ZWgIOuVjOunjCkNCiAgICAgICAgcGFydCA9IFttWyJpZCJdIGZvciBt
IGluIHNlbGYuc2VhcmNoKHJlZildDQogICAgICAgIGlmIGxlbihwYXJ0KSA9PSAxOg0KICAgICAg
ICAgICAgcmV0dXJuIHBhcnRbMF0sIFtdDQogICAgICAgIHJldHVybiBOb25lLCBwYXJ0DQoNCiAg
ICAjIC0tLS0g6rKA7IOJIC0tLS0NCiAgICBkZWYgc2VhcmNoKHNlbGYsIHRlcm0pOg0KICAgICAg
ICB0ID0gbm9ybSh0ZXJtKQ0KICAgICAgICBpZiBub3QgdDoNCiAgICAgICAgICAgIHJldHVybiBb
XQ0KICAgICAgICBoaXRzID0gW10NCiAgICAgICAgZm9yIG5pZCwgbiBpbiBzZWxmLm5vZGVzLml0
ZW1zKCk6DQogICAgICAgICAgICByZWFzb25zID0gW10NCiAgICAgICAgICAgIGlmIHQgaW4gbmlk
LmNhc2Vmb2xkKCk6DQogICAgICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoKCJpZCIsIG5pZCkp
DQogICAgICAgICAgICBjb2RlID0gKG4uZ2V0KCJjb2RlIikgb3IgIiIpDQogICAgICAgICAgICBp
ZiBjb2RlIGFuZCB0ID09IGNvZGUuY2FzZWZvbGQoKToNCiAgICAgICAgICAgICAgICByZWFzb25z
LmFwcGVuZCgoIuy9lOuTnCIsIGNvZGUpKQ0KICAgICAgICAgICAgcCA9IG5vcm0oblsicGF0aCJd
KQ0KICAgICAgICAgICAgbmFtZSA9IHAucnNwbGl0KCIvIiwgMSlbLTFdDQogICAgICAgICAgICBp
ZiB0IGluIG5hbWU6DQogICAgICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoKCLsnbTrpoQiLCBQ
YXRoKG5bInBhdGgiXSkubmFtZSkpDQogICAgICAgICAgICBlbGlmIHQgaW4gcDoNCiAgICAgICAg
ICAgICAgICByZWFzb25zLmFwcGVuZCgoIuqyveuhnCIsIG5bInBhdGgiXSkpDQogICAgICAgICAg
ICBmb3IgYSBpbiBuLmdldCgiYWxpYXNlcyIsIFtdKToNCiAgICAgICAgICAgICAgICBpZiB0IGlu
IG5vcm0oYSk6DQogICAgICAgICAgICAgICAgICAgIHJlYXNvbnMuYXBwZW5kKCgi7JibIOydtOum
hCIsIGEpKQ0KICAgICAgICAgICAgaWYgcmVhc29uczoNCiAgICAgICAgICAgICAgICBoaXRzLmFw
cGVuZCh7ImlkIjogbmlkLCAicmVhc29ucyI6IHJlYXNvbnMsICoqbn0pDQogICAgICAgIHJhbmsg
PSB7ImlkIjogMCwgIuy9lOuTnCI6IDEsICLsnbTrpoQiOiAyLCAi6rK966GcIjogMywgIuyYmyDs
nbTrpoQiOiA0fQ0KICAgICAgICBoaXRzLnNvcnQoa2V5PWxhbWJkYSBoOiAobWluKHJhbmtbclsw
XV0gZm9yIHIgaW4gaFsicmVhc29ucyJdKSwgaFsicGF0aCJdKSkNCiAgICAgICAgcmV0dXJuIGhp
dHMNCg0KICAgICMgLS0tLSDqsITshKAg64yA7IOBIOyEpOuqhSAtLS0tDQogICAgZGVmIGRlc2Ny
aWJlKHNlbGYsIHRhcmdldCk6DQogICAgICAgICIiIuqwhOyEoCDrjIDsg4Eo64W465OcIElEIMK3
IOusuOyEnCBJRCDCtyDrk7HroZ3rtoAgSUQp7J2EIOyCrOuejOydtCDsnb3snYQg66y47J6Q7Je0
66GcLiIiIg0KICAgICAgICBpZiB0YXJnZXQgaW4gc2VsZi5ub2RlczoNCiAgICAgICAgICAgIHJl
dHVybiBzZWxmLm5vZGVzW3RhcmdldF1bInBhdGgiXQ0KICAgICAgICBpZiBpc2luc3RhbmNlKHRh
cmdldCwgc3RyKSBhbmQgdGFyZ2V0LnN0YXJ0c3dpdGgoImlyaXM6IikgYW5kICIvIiBpbiB0YXJn
ZXQ6DQogICAgICAgICAgICBiYXNlLCByZWwgPSB0YXJnZXQuc3BsaXQoIi8iLCAxKQ0KICAgICAg
ICAgICAgaWYgYmFzZSBpbiBzZWxmLm5vZGVzOg0KICAgICAgICAgICAgICAgIGZ1bGwgPSBST09U
IC8gc2VsZi5ub2Rlc1tiYXNlXVsicGF0aCJdIC8gcmVsDQogICAgICAgICAgICAgICAgcmV0dXJu
IGYie3NlbGYubm9kZXNbYmFzZV1bJ3BhdGgnXX1cXHtyZWwucmVwbGFjZSgnLycsIGNocig5Mikp
fSIgKyAoIiIgaWYgZnVsbC5leGlzdHMoKSBlbHNlICIgICjsi6TrrLwg7JeG7J2MKSIpDQogICAg
ICAgICAgICByZXR1cm4gZiJ7dGFyZ2V0fSAgKOu2gOuqqCBJRCDrr7jrk7HroZ0pIg0KICAgICAg
ICBpZiBpc2luc3RhbmNlKHRhcmdldCwgc3RyKSBhbmQgIjoiIGluIHRhcmdldDoNCiAgICAgICAg
ICAgIGtpbmQsIHNsdWcgPSB0YXJnZXQuc3BsaXQoIjoiLCAxKQ0KICAgICAgICAgICAgc2VjdCA9
IFJFR0lTVFJZX1BSRUZJWC5nZXQoa2luZCkNCiAgICAgICAgICAgIGlmIHNlY3Q6DQogICAgICAg
ICAgICAgICAgZW50cnkgPSAoc2VsZi5yZWdpc3RyeS5nZXQoc2VjdCkgb3Ige30pLmdldChzbHVn
KQ0KICAgICAgICAgICAgICAgIGlmIGVudHJ5IGlzIE5vbmU6DQogICAgICAgICAgICAgICAgICAg
IHJldHVybiBmInt0YXJnZXR9ICAo65Ox66Gd67aA7JeQIOyXhuydjCkiDQogICAgICAgICAgICAg
ICAga2V5diA9IGVudHJ5LmdldCgidXJpIikgb3IgZW50cnkuZ2V0KCJwYXRoIikgb3IgZW50cnku
Z2V0KCJpZCIpIG9yIGVudHJ5LmdldCgibGFiZWwiKSBvciAiIg0KICAgICAgICAgICAgICAgIHJl
dHVybiBmInt0YXJnZXR9ICBbe3NlY3R9XSB7a2V5dn0iLnJzdHJpcCgpDQogICAgICAgICAgICBy
ZXR1cm4gdGFyZ2V0DQogICAgICAgIHJldHVybiBzdHIodGFyZ2V0KQ0KDQoNCmRlZiBub3JtKHMp
Og0KICAgIHJldHVybiB1bmljb2RlZGF0YS5ub3JtYWxpemUoIk5GQyIsIHN0cihzKSkucmVwbGFj
ZSgiXFwiLCAiLyIpLnN0cmlwKCkuc3RyaXAoIi8iKS5jYXNlZm9sZCgpDQoNCg0KIyDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAg
7Lac66ClIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgA0KDQpkZWYgY2VsbCh2KToNCiAgICBpZiB2IGlzIE5vbmUgb3IgdiA9PSAi
IiBvciB2ID09IFtdIG9yIHYgPT0ge306DQogICAgICAgIHJldHVybiAi4oCUIg0KICAgIGlmIGlz
aW5zdGFuY2UodiwgYm9vbCk6DQogICAgICAgIHJldHVybiAiWSIgaWYgdiBlbHNlICLigJQiDQog
ICAgaWYgaXNpbnN0YW5jZSh2LCBsaXN0KToNCiAgICAgICAgaWYgdiBhbmQgaXNpbnN0YW5jZSh2
WzBdLCBkaWN0KToNCiAgICAgICAgICAgIHJldHVybiAiOyAiLmpvaW4oZiJ7ZC5nZXQoJ2tpbmQn
KX09e2QuZ2V0KCd2YWx1ZScpfSIgZm9yIGQgaW4gdikNCiAgICAgICAgcmV0dXJuICI7ICIuam9p
bihzdHIoeCkgZm9yIHggaW4gdikNCiAgICByZXR1cm4gc3RyKHYpLnJlcGxhY2UoInwiLCAiXFx8
IikucmVwbGFjZSgiXG4iLCAiICIpDQoNCg0KZGVmIHRhYmxlKGhlYWRlcnMsIHJvd3MpOg0KICAg
IGlmIG5vdCByb3dzOg0KICAgICAgICByZXR1cm4gIl8o7JeG7J2MKV8iDQogICAgbGluZXMgPSBb
InwgIiArICIgfCAiLmpvaW4oaGVhZGVycykgKyAiIHwiLCAifCIgKyAiLS0tfCIgKiBsZW4oaGVh
ZGVycyldDQogICAgZm9yIHIgaW4gcm93czoNCiAgICAgICAgbGluZXMuYXBwZW5kKCJ8ICIgKyAi
IHwgIi5qb2luKGNlbGwoYykgZm9yIGMgaW4gcikgKyAiIHwiKQ0KICAgIHJldHVybiAiXG4iLmpv
aW4obGluZXMpDQoNCg0KZGVmIGVtaXQobWRfbGluZXMsIG9iaiwgYXNfanNvbik6DQogICAgaWYg
YXNfanNvbjoNCiAgICAgICAgcHJpbnQoanNvbi5kdW1wcyhvYmosIGVuc3VyZV9hc2NpaT1GYWxz
ZSwgaW5kZW50PTEpKQ0KICAgIGVsc2U6DQogICAgICAgIHByaW50KCJcbiIuam9pbihtZF9saW5l
cykpDQoNCg0KZGVmIGVkZ2Vfcm93cyhnLCBlZGdlcywgZGlyZWN0aW9uKToNCiAgICByb3dzID0g
W10NCiAgICBmb3IgZSBpbiBzb3J0ZWQoZWRnZXMsIGtleT1sYW1iZGEgZTogKFJFTF9PUkRFUi5p
bmRleChlWyJyZWwiXSkgaWYgZVsicmVsIl0gaW4gUkVMX09SREVSIGVsc2UgOTksIHN0cihlWyJ0
byJdKSwgc3RyKGVbImZyb20iXSkpKToNCiAgICAgICAgb3RoZXIgPSBlWyJ0byJdIGlmIGRpcmVj
dGlvbiA9PSAib3V0IiBlbHNlIGVbImZyb20iXQ0KICAgICAgICByb3dzLmFwcGVuZChbZVsicmVs
Il0sIG90aGVyLCBnLmRlc2NyaWJlKG90aGVyKSwgIuyXreuwqe2WpSjqs4TsgrApIiBpZiBlLmdl
dCgiZGVyaXZlZCIpIGVsc2UgIuyEoOyWuCJdKQ0KICAgIHJldHVybiByb3dzDQoNCg0KZGVmIG5v
ZGVfYnJpZWYoZywgbmlkKToNCiAgICBuID0gZy5ub2Rlc1tuaWRdDQogICAgcmV0dXJuIHsiaWQi
OiBuaWQsICJwYXRoIjogblsicGF0aCJdLCAidHlwZSI6IG5bInR5cGUiXSwgImNvZGUiOiBuLmdl
dCgiY29kZSIpfQ0KDQoNCmRlZiBmYWlsX3JlZihnLCByZWYsIGNhbmRzLCBhc19qc29uKToNCiAg
ICBpZiBjYW5kczoNCiAgICAgICAgcm93cyA9IFtbbmlkLCBnLm5vZGVzW25pZF1bInBhdGgiXSwg
Zy5ub2Rlc1tuaWRdWyJ0eXBlIl1dIGZvciBuaWQgaW4gY2FuZHNdDQogICAgICAgIGVtaXQoW2Yi
YHtyZWZ9YCDsl5Ag7ZW064u57ZWY64qUIOuFuOuTnOqwgCB7bGVuKGNhbmRzKX3qsJzrnbwg7ZWY
64KY66GcIOygle2VmOyngCDrqrvtlojri6QuIOyVhOuemCDspJEgaWQg65iQ64qUIOyghOyytCDq
sr3roZzroZwg64uk7IucIOyngOyglToiLCAiIiwNCiAgICAgICAgICAgICAgdGFibGUoWyJpZCIs
ICLqsr3roZwiLCAidHlwZSJdLCByb3dzKV0sDQogICAgICAgICAgICAgeyJlcnJvciI6ICJhbWJp
Z3VvdXMiLCAicmVmIjogcmVmLCAiY2FuZGlkYXRlcyI6IFtub2RlX2JyaWVmKGcsIGMpIGZvciBj
IGluIGNhbmRzXX0sIGFzX2pzb24pDQogICAgICAgIHJldHVybiAyDQogICAgZW1pdChbZiJge3Jl
Zn1gIOyXkCDtlbTri7ntlZjripQg64W465OcIOyXhuydjCAoaWTCt+qyveuhnMK366eI7KeA66eJ
IO2PtOuNlOuqhcK37JibIOydtOumhCDrqqjrkZAg67aI7J287LmYKS4gYHdoZXJlYCDroZwg67aA
67aEIOqygOyDie2VtCDrs7TrnbwuIl0sDQogICAgICAgICB7ImVycm9yIjogIm5vdF9mb3VuZCIs
ICJyZWYiOiByZWZ9LCBhc19qc29uKQ0KICAgIHJldHVybiAxDQoNCg0KIyDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAg7ZWY7JyE
IOuqheuguSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIANCg0KZGVmIGNtZF93aGVyZShnLCBhKToNCiAgICBoaXRzID0gZy5zZWFy
Y2goYS50ZXJtKQ0KICAgIGhlYWRlcnMgPSBbIuqyveuhnCIsICJpZCIsICJ0eXBlIiwgInN0YXR1
c19zY2hlbWUiLCAidHJ1dGgiLCAibGlmZWN5Y2xlIiwgInRhZ3MiLCAiZHJhd2VycyIsICJzY29w
ZV9ib3VuZGFyeSIsICLsnbzsuZgg6re86rGwIl0NCiAgICByb3dzID0gW10NCiAgICBmb3IgaCBp
biBoaXRzOg0KICAgICAgICByZWFzb25fdHh0LCBvbGRzID0gW10sIFtdDQogICAgICAgIGZvciBr
aW5kLCB2YWwgaW4gaFsicmVhc29ucyJdOg0KICAgICAgICAgICAgaWYga2luZCA9PSAi7JibIOyd
tOumhCI6DQogICAgICAgICAgICAgICAgb2xkcy5hcHBlbmQoZiJge3ZhbH1gIikNCiAgICAgICAg
ICAgIGVsc2U6DQogICAgICAgICAgICAgICAgcmVhc29uX3R4dC5hcHBlbmQoZiJ7a2luZH0gYHt2
YWx9YCIgaWYga2luZCAhPSAi6rK966GcIiBlbHNlICLqsr3roZwo7IOB7JyEIO2PtOuNlOuqhSki
KQ0KICAgICAgICBpZiBvbGRzOg0KICAgICAgICAgICAgcmVhc29uX3R4dC5hcHBlbmQoZiLsmJsg
7J2066aEIHsnLCAnLmpvaW4ob2xkcyl9IOKGkiDtmITsnqwgYHtQYXRoKGhbJ3BhdGgnXSkubmFt
ZX1gIikNCiAgICAgICAgZHJhd2VycyA9IGguZ2V0KCJkcmF3ZXJzIikgb3IgW10NCiAgICAgICAg
cm93cy5hcHBlbmQoW2hbInBhdGgiXSwgaFsiaWQiXSwgaFsidHlwZSJdLCBoLmdldCgic3RhdHVz
X3NjaGVtZSIpLCBoLmdldCgidHJ1dGgiKSwgaC5nZXQoImxpZmVjeWNsZSIpLA0KICAgICAgICAg
ICAgICAgICAgICAgaC5nZXQoInRhZ3MiKSwgZiJ7bGVuKGRyYXdlcnMpfeqwnDogIiArICI7ICIu
am9pbihkcmF3ZXJzKSBpZiBkcmF3ZXJzIGVsc2UgIuKAlCIsDQogICAgICAgICAgICAgICAgICAg
ICBoLmdldCgic2NvcGVfYm91bmRhcnkiKSwgIiAvICIuam9pbihyZWFzb25fdHh0KV0pDQogICAg
bWQgPSBbZiIjIyB3aGVyZSBge2EudGVybX1gIOKAlCB7bGVuKGhpdHMpfeqxtCIsICIiLCB0YWJs
ZShoZWFkZXJzLCByb3dzKV0NCiAgICBpZiBub3QgaGl0czoNCiAgICAgICAgbWQuYXBwZW5kKCIi
KQ0KICAgICAgICBtZC5hcHBlbmQoIu2ejO2KuDog7J2066aE7J2AIOu2gOu2hCDsnbzsuZjCt+uM
gOyGjOusuOyekCDrrLTsi5zri6QuIOyYmyDsnbTrpoTsnbTrqbQgYHJlc29sdmVgLCDsvZTrk5zr
qbQgYFAwOWAg7LKY65+8IOy9lOuTnOunjCDrhKPslrTrj4Qg65Cc64ukLiIpDQogICAgZW1pdCht
ZCwgeyJxdWVyeSI6IGEudGVybSwgImNvdW50IjogbGVuKGhpdHMpLA0KICAgICAgICAgICAgICAi
cmVzdWx0cyI6IFt7ImlkIjogaFsiaWQiXSwgInBhdGgiOiBoWyJwYXRoIl0sICJ0eXBlIjogaFsi
dHlwZSJdLCAiY29kZSI6IGguZ2V0KCJjb2RlIiksDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzX3NjaGVtZSI6IGguZ2V0KCJzdGF0dXNfc2NoZW1lIiksICJ0cnV0aCI6IGguZ2V0
KCJ0cnV0aCIpLCAibGlmZWN5Y2xlIjogaC5nZXQoImxpZmVjeWNsZSIpLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInRhZ3MiOiBoLmdldCgidGFncyIpLCAiZHJhd2VycyI6IGguZ2V0KCJk
cmF3ZXJzIiksICJzY29wZV9ib3VuZGFyeSI6IGguZ2V0KCJzY29wZV9ib3VuZGFyeSIpLA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImFsaWFzZXMiOiBoLmdldCgiYWxpYXNlcyIpLCAibWF0
Y2hlZCI6IFt7ImJ5IjogaywgInZhbHVlIjogdn0gZm9yIGssIHYgaW4gaFsicmVhc29ucyJdXX0g
Zm9yIGggaW4gaGl0c119LA0KICAgICAgICAgYS5qc29uKQ0KICAgIHJldHVybiAwIGlmIGhpdHMg
ZWxzZSAxDQoNCg0KZGVmIGNtZF9zaG93KGcsIGEpOg0KICAgIG5pZCwgY2FuZHMgPSBnLnJlc29s
dmVfcmVmKGEucmVmKQ0KICAgIGlmIG5vdCBuaWQ6DQogICAgICAgIHJldHVybiBmYWlsX3JlZihn
LCBhLnJlZiwgY2FuZHMsIGEuanNvbikNCiAgICBuID0gZy5ub2Rlc1tuaWRdDQogICAgY2FyZF9y
b3dzID0gW1siaWQiLCBuaWRdXSArIFtbaywgbi5nZXQoayldIGZvciBrIGluICgicGF0aCIsICJ0
eXBlIiwgImNvZGUiLCAic3RhdHVzX3NjaGVtZSIsICJ0cnV0aCIsICJsaWZlY3ljbGUiLCAidGFn
cyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic2NvcGVfYm91bmRhcnkiLCAiZnJlZV96b25lIiwgImZyb3plbiIsICJzZW5zaXRp
dmUiLCAiYWxpYXNlcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZHJhd2VycyIsICJ1dGlscyIsICJjaGlsZHJlbiIpXQ0KICAg
IG91dHMsIGlucyA9IGcub3V0LmdldChuaWQsIFtdKSwgZy5pbm4uZ2V0KG5pZCwgW10pDQogICAg
IyDsi6TrrLwg7Lm065OcKEFHRU5UUy5tZCDrqLjrpqzrp5Ap7JeQ7IScIOq3uOuemO2UhOyXkCDs
l4bripQg7Lm4KGNyZWF0ZWTCt2RlY2lkZWTCt3JlbGF0aW9ucynsnYQg642n67aZ7J2464ukDQog
ICAgZm0gPSByZWFkX2Zyb250bWF0dGVyKFJPT1QgLyBuWyJwYXRoIl0gLyAiQUdFTlRTLm1kIikg
b3Ige30NCiAgICBsaXZlX3Jvd3MgPSBbW2ssIGZtLmdldChrKV0gZm9yIGsgaW4gKCJpZCIsICJj
cmVhdGVkIiwgImRlY2lkZWQiLCAicmVsYXRpb25zIikgaWYgayBpbiBmbV0NCiAgICBsaXZlX25v
dGUgPSAiIg0KICAgIGlmIGZtIGFuZCBmbS5nZXQoImlkIikgIT0gbmlkOg0KICAgICAgICBsaXZl
X25vdGUgPSBmIioq7KO87J2YKiog7Iuk66y8IOy5tOuTnCBpZCBge2ZtLmdldCgnaWQnKX1gIOKJ
oCDqt7jrnpjtlIQgaWQgYHtuaWR9YCDigJQgZ3JhcGguanNvbiDsnqzsu7TtjIzsnbwg7ZWE7JqU
Ig0KICAgIG1kID0gW2YiIyMgc2hvdyBge25bJ3BhdGgnXX1gIiwgIiIsICIjIyMg7Lm065OcIiwg
IiIsIHRhYmxlKFsi7Lm4IiwgIuqwkiJdLCBjYXJkX3Jvd3MpLCAiIl0NCiAgICBpZiBsaXZlX3Jv
d3Mgb3IgbGl2ZV9ub3RlOg0KICAgICAgICBtZCArPSBbIiMjIyDsi6TrrLwg7Lm065OcKEFHRU5U
Uy5tZCDrqLjrpqzrp5ApIOy2lOqwgCDsubgiLCAiIiwgdGFibGUoWyLsubgiLCAi6rCSIl0sIGxp
dmVfcm93cykgaWYgbGl2ZV9yb3dzIGVsc2UgIl8o7JeG7J2MKV8iLCAiIl0NCiAgICAgICAgaWYg
bGl2ZV9ub3RlOg0KICAgICAgICAgICAgbWQgKz0gW2xpdmVfbm90ZSwgIiJdDQogICAgbWQgKz0g
W2YiIyMjIOuCmOqwgOuKlCDqsITshKAgKHtsZW4ob3V0cyl9KSIsICIiLCB0YWJsZShbInJlbCIs
ICLrjIDsg4EgaWQiLCAi64yA7IOBIiwgIuyEseyniCJdLCBlZGdlX3Jvd3MoZywgb3V0cywgIm91
dCIpKSwgIiIsDQogICAgICAgICAgIGYiIyMjIOuTpOyWtOyYpOuKlCDqsITshKAgKHtsZW4oaW5z
KX0sIOyXreuwqe2WpSDtj6ztlagpIiwgIiIsIHRhYmxlKFsicmVsIiwgIuy2nOuwnCBpZCIsICLs
tpzrsJwiLCAi7ISx7KeIIl0sIGVkZ2Vfcm93cyhnLCBpbnMsICJpbiIpKV0NCiAgICBlbWl0KG1k
LCB7ImlkIjogbmlkLCAibm9kZSI6IG4sICJmcm9udG1hdHRlcl9leHRyYSI6IHtrOiBmbS5nZXQo
aykgZm9yIGsgaW4gKCJjcmVhdGVkIiwgImRlY2lkZWQiLCAicmVsYXRpb25zIikgaWYgayBpbiBm
bX0sDQogICAgICAgICAgICAgICJvdXRib3VuZCI6IG91dHMsICJpbmJvdW5kIjogaW5zfSwgYS5q
c29uKQ0KICAgIHJldHVybiAwDQoNCg0KZGVmIGNtZF9lZGdlcyhnLCBhLCBkaXJlY3Rpb24pOg0K
ICAgIG5pZCwgY2FuZHMgPSBnLnJlc29sdmVfcmVmKGEucmVmKQ0KICAgIGlmIG5vdCBuaWQ6DQog
ICAgICAgIHJldHVybiBmYWlsX3JlZihnLCBhLnJlZiwgY2FuZHMsIGEuanNvbikNCiAgICBlZGdl
cyA9IGcuaW5uLmdldChuaWQsIFtdKSBpZiBkaXJlY3Rpb24gPT0gImluIiBlbHNlIGcub3V0Lmdl
dChuaWQsIFtdKQ0KICAgIGlmIGEucmVsOg0KICAgICAgICBlZGdlcyA9IFtlIGZvciBlIGluIGVk
Z2VzIGlmIGVbInJlbCJdID09IGEucmVsXQ0KICAgIGxhYmVsID0gImluYm91bmQo65Ok7Ja07Jik
64qUKSIgaWYgZGlyZWN0aW9uID09ICJpbiIgZWxzZSAib3V0Ym91bmQo64KY6rCA64qUKSINCiAg
ICBoZHIgPSBbInJlbCIsICLstpzrsJwgaWQiLCAi7Lac67CcIiwgIuyEseyniCJdIGlmIGRpcmVj
dGlvbiA9PSAiaW4iIGVsc2UgWyJyZWwiLCAi64yA7IOBIGlkIiwgIuuMgOyDgSIsICLshLHsp4gi
XQ0KICAgIG1kID0gW2YiIyMge2xhYmVsfSBge2cubm9kZXNbbmlkXVsncGF0aCddfWAiICsgKGYi
IC0tcmVsIHthLnJlbH0iIGlmIGEucmVsIGVsc2UgIiIpICsgZiIg4oCUIHtsZW4oZWRnZXMpfeqx
tCIsICIiLA0KICAgICAgICAgIHRhYmxlKGhkciwgZWRnZV9yb3dzKGcsIGVkZ2VzLCBkaXJlY3Rp
b24pKV0NCiAgICBlbWl0KG1kLCB7ImlkIjogbmlkLCAicGF0aCI6IGcubm9kZXNbbmlkXVsicGF0
aCJdLCAiZGlyZWN0aW9uIjogZGlyZWN0aW9uLCAicmVsIjogYS5yZWwsICJjb3VudCI6IGxlbihl
ZGdlcyksICJlZGdlcyI6IGVkZ2VzfSwgYS5qc29uKQ0KICAgIHJldHVybiAwDQoNCg0KZGVmIGFu
Y2VzdG9ycyhnLCBuaWQpOg0KICAgIG91dCwgY3VyLCBzZWVuID0gW10sIG5pZCwgc2V0KCkNCiAg
ICB3aGlsZSBUcnVlOg0KICAgICAgICB1cHMgPSBbZVsidG8iXSBmb3IgZSBpbiBnLm91dC5nZXQo
Y3VyLCBbXSkgaWYgZVsicmVsIl0gPT0gInBhcnRfb2YiXQ0KICAgICAgICBpZiBub3QgdXBzIG9y
IHVwc1swXSBpbiBzZWVuOg0KICAgICAgICAgICAgcmV0dXJuIG91dA0KICAgICAgICBjdXIgPSB1
cHNbMF0NCiAgICAgICAgc2Vlbi5hZGQoY3VyKQ0KICAgICAgICBvdXQuYXBwZW5kKGN1cikNCg0K
DQpkZWYgY21kX2Nhbm9uaWNhbChnLCBhKToNCiAgICBuaWQsIGNhbmRzID0gZy5yZXNvbHZlX3Jl
ZihhLnJlZikNCiAgICBpZiBub3QgbmlkOg0KICAgICAgICByZXR1cm4gZmFpbF9yZWYoZywgYS5y
ZWYsIGNhbmRzLCBhLmpzb24pDQogICAgb3duID0gW2VbInRvIl0gZm9yIGUgaW4gZy5vdXQuZ2V0
KG5pZCwgW10pIGlmIGVbInJlbCJdID09ICJjYW5vbmljYWwiXQ0KICAgIGluaGVyaXRlZCA9IFtd
DQogICAgZm9yIGFuYyBpbiBhbmNlc3RvcnMoZywgbmlkKToNCiAgICAgICAgZm9yIGUgaW4gZy5v
dXQuZ2V0KGFuYywgW10pOg0KICAgICAgICAgICAgaWYgZVsicmVsIl0gPT0gImNhbm9uaWNhbCI6
DQogICAgICAgICAgICAgICAgaW5oZXJpdGVkLmFwcGVuZCgoYW5jLCBlWyJ0byJdKSkNCiAgICBt
ZCA9IFtmIiMjIGNhbm9uaWNhbCBge2cubm9kZXNbbmlkXVsncGF0aCddfWAiLCAiIl0NCiAgICBp
ZiBvd246DQogICAgICAgIG1kICs9IFsiIyMjIOydtCDrhbjrk5zqsIAg7ISg7Ja47ZWcIOygleuz
uCIsICIiLCB0YWJsZShbIuuMgOyDgSBpZCIsICLsoJXrs7gg66y47IScIl0sIFtbdCwgZy5kZXNj
cmliZSh0KV0gZm9yIHQgaW4gb3duXSksICIiXQ0KICAgIGVsc2U6DQogICAgICAgIG1kICs9IFsi
KirshKDslrgg7JeG7J2MKiog4oCUIOydtCDrhbjrk5zsnZgg7Lm065OcIGByZWxhdGlvbnMuY2Fu
b25pY2FsYCDsl5Ag7KCV67O4IOusuOyEnOqwgCDsl4bri6QuIiwgIiJdDQogICAgaWYgaW5oZXJp
dGVkOg0KICAgICAgICBtZCArPSBbIiMjIyDsobDsg4HsnbQg7ISg7Ja47ZWcIOygleuzuCAo7LC4
6rOgIOKAlCDsg4Hsho0g6rec7LmZ7J2AIOuqheyEuOyEnOyXkCDsl4bsnLzrr4DroZwg7ZuE67O0
7J28IOu/kCkiLCAiIiwNCiAgICAgICAgICAgICAgIHRhYmxlKFsi7ISg7Ja47ZWcIOyhsOyDgSIs
ICLrjIDsg4EgaWQiLCAi7KCV67O4IOusuOyEnCJdLCBbW2cubm9kZXNbYW5jXVsicGF0aCJdLCB0
LCBnLmRlc2NyaWJlKHQpXSBmb3IgYW5jLCB0IGluIGluaGVyaXRlZF0pXQ0KICAgIGVtaXQobWQs
IHsiaWQiOiBuaWQsICJwYXRoIjogZy5ub2Rlc1tuaWRdWyJwYXRoIl0sICJjYW5vbmljYWwiOiBb
eyJpZCI6IHQsICJ0YXJnZXQiOiBnLmRlc2NyaWJlKHQpfSBmb3IgdCBpbiBvd25dLA0KICAgICAg
ICAgICAgICAiYW5jZXN0b3JzX2Nhbm9uaWNhbCI6IFt7ImRlY2xhcmVkX2J5IjogYW5jLCAiaWQi
OiB0LCAidGFyZ2V0IjogZy5kZXNjcmliZSh0KX0gZm9yIGFuYywgdCBpbiBpbmhlcml0ZWRdfSwg
YS5qc29uKQ0KICAgIHJldHVybiAwDQoNCg0KZGVmIGNtZF90cmVlKGcsIGEpOg0KICAgIG5pZCwg
Y2FuZHMgPSBnLnJlc29sdmVfcmVmKGEucmVmKQ0KICAgIGlmIG5vdCBuaWQ6DQogICAgICAgIHJl
dHVybiBmYWlsX3JlZihnLCBhLnJlZiwgY2FuZHMsIGEuanNvbikNCiAgICBkZXB0aF9tYXggPSBh
LmRlcHRoIGlmIGEuZGVwdGggaXMgbm90IE5vbmUgZWxzZSA5OQ0KICAgIGxpbmVzLCBjb3VudCA9
IFtdLCBbMF0NCg0KICAgIGRlZiBraWRzKHgpOg0KICAgICAgICByZXR1cm4gc29ydGVkKChlWyJ0
byJdIGZvciBlIGluIGcub3V0LmdldCh4LCBbXSkgaWYgZVsicmVsIl0gPT0gImNvbnRhaW5zIiks
IGtleT1sYW1iZGEgazogZy5ub2Rlc1trXVsicGF0aCJdKQ0KDQogICAgZGVmIHdhbGsoeCwgZCwg
cHJlZml4LCBvdXQpOg0KICAgICAgICBuID0gZy5ub2Rlc1t4XQ0KICAgICAgICBvdXRbImlkIl0s
IG91dFsicGF0aCJdLCBvdXRbInR5cGUiXSwgb3V0WyJjb2RlIl0gPSB4LCBuWyJwYXRoIl0sIG5b
InR5cGUiXSwgbi5nZXQoImNvZGUiKQ0KICAgICAgICBvdXRbInN0YXR1c19zY2hlbWUiXSwgb3V0
WyJjaGlsZHJlbiJdID0gbi5nZXQoInN0YXR1c19zY2hlbWUiKSwgW10NCiAgICAgICAgbmFtZSA9
IFBhdGgoblsicGF0aCJdKS5uYW1lDQogICAgICAgIGV4dHJhID0gZiIgwrcge25bJ3N0YXR1c19z
Y2hlbWUnXX0iIGlmIG4uZ2V0KCJzdGF0dXNfc2NoZW1lIikgbm90IGluIChOb25lLCAibm9uZSIp
IGVsc2UgIiINCiAgICAgICAgbGluZXMuYXBwZW5kKGYie3ByZWZpeH17bmFtZX0gIGB7eH1gICh7
blsndHlwZSddfXtleHRyYX0pIikNCiAgICAgICAgY291bnRbMF0gKz0gMQ0KICAgICAgICBpZiBk
ID49IGRlcHRoX21heDoNCiAgICAgICAgICAgIHJldHVybg0KICAgICAgICBjaCA9IGtpZHMoeCkN
CiAgICAgICAgZm9yIGksIGsgaW4gZW51bWVyYXRlKGNoKToNCiAgICAgICAgICAgIHN1YiA9IHt9
DQogICAgICAgICAgICB3YWxrKGssIGQgKyAxLCBwcmVmaXggKyAiICAgICIsIHN1YikNCiAgICAg
ICAgICAgIG91dFsiY2hpbGRyZW4iXS5hcHBlbmQoc3ViKQ0KICAgICAgICBpZiBhLnN0ZXBzIGFu
ZCBuWyJ0eXBlIl0gaW4gKCJwcm9qZWN0IiwpOg0KICAgICAgICAgICAgZm9yIHMgaW4gbi5nZXQo
ImNoaWxkcmVuIiwgW10pOg0KICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmIntwcmVmaXh9
ICAgIHtzfSAgYHt4fS97Y29kZV9vZihzKX1gIChzdGVwLCDsubTrk5wg7JeG7J2MKSIpDQogICAg
ICAgICAgICAgICAgb3V0WyJjaGlsZHJlbiJdLmFwcGVuZCh7ImlkIjogZiJ7eH0ve2NvZGVfb2Yo
cyl9IiwgIm5hbWUiOiBzLCAidHlwZSI6ICJzdGVwIn0pDQoNCiAgICByb290ID0ge30NCiAgICB3
YWxrKG5pZCwgMCwgIiIsIHJvb3QpDQogICAgbWQgPSBbZiIjIyB0cmVlIGB7Zy5ub2Rlc1tuaWRd
WydwYXRoJ119YCAoZGVwdGgge2RlcHRoX21heCBpZiBkZXB0aF9tYXggPCA5OSBlbHNlICfiiJ4n
fSkg4oCUIOuFuOuTnCB7Y291bnRbMF196rCcIiwgIiIsICJgYGB0ZXh0Il0gKyBsaW5lcyArIFsi
YGBgIl0NCiAgICBlbWl0KG1kLCB7InJvb3QiOiBuaWQsICJkZXB0aCI6IGRlcHRoX21heCwgImNv
dW50IjogY291bnRbMF0sICJ0cmVlIjogcm9vdH0sIGEuanNvbikNCiAgICByZXR1cm4gMA0KDQoN
CmRlZiBjbWRfc3RhdHMoZywgYSk6DQogICAgbm9kZXMgPSBnLm5vZGVzLnZhbHVlcygpDQogICAg
YnlfdHlwZSA9IENvdW50ZXIoblsidHlwZSJdIGZvciBuIGluIG5vZGVzKQ0KICAgIGJ5X3NjaGVt
ZSA9IENvdW50ZXIobi5nZXQoInN0YXR1c19zY2hlbWUiKSBvciAibm9uZSIgZm9yIG4gaW4gbm9k
ZXMpDQogICAgYnlfbGlmZSA9IENvdW50ZXIobi5nZXQoImxpZmVjeWNsZSIpIG9yICI/IiBmb3Ig
biBpbiBub2RlcykNCiAgICBieV9yZWwgPSBDb3VudGVyKGVbInJlbCJdIGZvciBlIGluIGcuZWRn
ZXMpDQogICAgZGVjbGFyZWQgPSBzdW0oMSBmb3IgZSBpbiBnLmVkZ2VzIGlmIG5vdCBlLmdldCgi
ZGVyaXZlZCIpKQ0KICAgIGJ5X3RhZyA9IENvdW50ZXIodFsia2luZCJdIGZvciBuIGluIG5vZGVz
IGZvciB0IGluIG4uZ2V0KCJ0YWdzIiwgW10pKQ0KICAgIG1pc2MgPSB7ImFsaWFzZXMg67O07Jyg
IOuFuOuTnCI6IHN1bSgxIGZvciBuIGluIG5vZGVzIGlmIG4uZ2V0KCJhbGlhc2VzIikpLA0KICAg
ICAgICAgICAgImFsaWFzZXMg7LSd7IiYIjogc3VtKGxlbihuLmdldCgiYWxpYXNlcyIsIFtdKSkg
Zm9yIG4gaW4gbm9kZXMpLA0KICAgICAgICAgICAgImRyYXdlcnMg7LSd7IiYIjogc3VtKGxlbihu
LmdldCgiZHJhd2VycyIsIFtdKSkgZm9yIG4gaW4gbm9kZXMpLA0KICAgICAgICAgICAgIlMvVCDt
lZjsnIQoY2hpbGRyZW4pIOy0neyImCI6IHN1bShsZW4obi5nZXQoImNoaWxkcmVuIiwgW10pKSBm
b3IgbiBpbiBub2RlcyksDQogICAgICAgICAgICAidXRpbHMg7LSd7IiYIjogc3VtKGxlbihuLmdl
dCgidXRpbHMiLCBbXSkpIGZvciBuIGluIG5vZGVzKSwNCiAgICAgICAgICAgICJzY29wZV9ib3Vu
ZGFyeSDrs7TsnKAiOiBzdW0oMSBmb3IgbiBpbiBub2RlcyBpZiBuLmdldCgic2NvcGVfYm91bmRh
cnkiKSksDQogICAgICAgICAgICAiZnJlZV96b25lIjogc3VtKDEgZm9yIG4gaW4gbm9kZXMgaWYg
bi5nZXQoImZyZWVfem9uZSIpKSwNCiAgICAgICAgICAgICJmcm96ZW4iOiBzdW0oMSBmb3IgbiBp
biBub2RlcyBpZiBuLmdldCgiZnJvemVuIikpLA0KICAgICAgICAgICAgInNlbnNpdGl2ZSI6IHN1
bSgxIGZvciBuIGluIG5vZGVzIGlmIG4uZ2V0KCJzZW5zaXRpdmUiKSksDQogICAgICAgICAgICAi
dHJ1dGgg7J6I64qUIFAiOiBzdW0oMSBmb3IgbiBpbiBub2RlcyBpZiBuWyJ0eXBlIl0gPT0gInBy
b2plY3QiIGFuZCBuLmdldCgidHJ1dGgiKSl9DQogICAgcmVnID0ge2s6IGxlbih2IG9yIHt9KSBm
b3IgaywgdiBpbiBnLnJlZ2lzdHJ5Lml0ZW1zKCkgaWYgaXNpbnN0YW5jZSh2LCBkaWN0KSBhbmQg
ayAhPSAic2NoZW1hIn0NCiAgICBtZCA9IFtmIiMjIHN0YXRzIOKAlCBge2cubWV0YVsnZmlsZSdd
fWAgKHtnLm1ldGFbJ3NjaGVtYSddfSwg7IOd7ISxIHtnLm1ldGFbJ2dlbmVyYXRlZCddfSkiLCAi
IiwNCiAgICAgICAgICB0YWJsZShbIu2VreuqqSIsICLqsJIiXSwgW1si64W465OcIiwgbGVuKGcu
bm9kZXMpXSwgWyLqsITshKAiLCBmIntsZW4oZy5lZGdlcyl9ICjshKDslrgge2RlY2xhcmVkfSDC
tyDsl63rsKntlqUg6rOE7IKwIHtsZW4oZy5lZGdlcykgLSBkZWNsYXJlZH0pIl1dKSwgIiIsDQog
ICAgICAgICAgIiMjIyDtgbTrnpjsiqTrs4QiLCAiIiwgdGFibGUoWyJ0eXBlIiwgIuqwnOyImCJd
LCBieV90eXBlLm1vc3RfY29tbW9uKCkpLCAiIiwNCiAgICAgICAgICAiIyMjIOyDge2DnCDssrTq
s4Trs4QiLCAiIiwgdGFibGUoWyJzdGF0dXNfc2NoZW1lIiwgIuqwnOyImCJdLCBieV9zY2hlbWUu
bW9zdF9jb21tb24oKSksICIiLA0KICAgICAgICAgICIjIyMg7IOd7JWg7KO86riw67OEIiwgIiIs
IHRhYmxlKFsibGlmZWN5Y2xlIiwgIuqwnOyImCJdLCBieV9saWZlLm1vc3RfY29tbW9uKCkpLCAi
IiwNCiAgICAgICAgICAiIyMjIOq0gOqzhOuzhCIsICIiLCB0YWJsZShbInJlbCIsICLqsJzsiJgi
XSwgc29ydGVkKGJ5X3JlbC5pdGVtcygpLCBrZXk9bGFtYmRhIGt2OiAoUkVMX09SREVSLmluZGV4
KGt2WzBdKSBpZiBrdlswXSBpbiBSRUxfT1JERVIgZWxzZSA5OSkpKSwgIiIsDQogICAgICAgICAg
IiMjIyDtg5zqt7gg7KKF66WY67OEIiwgIiIsIHRhYmxlKFsia2luZCIsICLqsJzsiJgiXSwgYnlf
dGFnLm1vc3RfY29tbW9uKCkpLCAiIiwNCiAgICAgICAgICAiIyMjIOq3uCDrsJYiLCAiIiwgdGFi
bGUoWyLtla3rqqkiLCAi6rCSIl0sIGxpc3QobWlzYy5pdGVtcygpKSksICIiLA0KICAgICAgICAg
ICIjIyMg65Ox66Gd67aAKHJlZ2lzdHJ5LnltbCkiLCAiIiwgdGFibGUoWyLqtazsl60iLCAi6rCc
7IiYIl0sIGxpc3QocmVnLml0ZW1zKCkpKV0NCiAgICBlbWl0KG1kLCB7Im1ldGEiOiBnLm1ldGEs
ICJub2RlcyI6IGxlbihnLm5vZGVzKSwgImVkZ2VzIjogbGVuKGcuZWRnZXMpLCAiZWRnZXNfZGVj
bGFyZWQiOiBkZWNsYXJlZCwNCiAgICAgICAgICAgICAgImJ5X3R5cGUiOiBieV90eXBlLCAiYnlf
c3RhdHVzX3NjaGVtZSI6IGJ5X3NjaGVtZSwgImJ5X2xpZmVjeWNsZSI6IGJ5X2xpZmUsICJieV9y
ZWwiOiBieV9yZWwsDQogICAgICAgICAgICAgICJieV90YWdfa2luZCI6IGJ5X3RhZywgIm1pc2Mi
OiBtaXNjLCAicmVnaXN0cnkiOiByZWd9LCBhLmpzb24pDQogICAgcmV0dXJuIDANCg0KDQpkZWYg
Y21kX3Jlc29sdmUoZywgYSk6DQogICAgcSA9IG5vcm0oYS5vbGQpDQogICAgcV90YWlsID0gcS5y
c3BsaXQoIi8iLCAxKVstMV0NCiAgICBleGFjdCwgdGFpbCwgcGFydGlhbCA9IFtdLCBbXSwgW10N
CiAgICBmb3IgbmlkLCBuIGluIGcubm9kZXMuaXRlbXMoKToNCiAgICAgICAgZm9yIGFsIGluIG4u
Z2V0KCJhbGlhc2VzIiwgW10pOg0KICAgICAgICAgICAgbmEgPSBub3JtKGFsKQ0KICAgICAgICAg
ICAgaWYgbmEgPT0gcToNCiAgICAgICAgICAgICAgICBleGFjdC5hcHBlbmQoKG5pZCwgYWwpKQ0K
ICAgICAgICAgICAgZWxpZiBuYS5yc3BsaXQoIi8iLCAxKVstMV0gPT0gcV90YWlsIG9yIG5hLmVu
ZHN3aXRoKCIvIiArIHEpOg0KICAgICAgICAgICAgICAgIHRhaWwuYXBwZW5kKChuaWQsIGFsKSkN
CiAgICAgICAgICAgIGVsaWYgcSBpbiBuYToNCiAgICAgICAgICAgICAgICBwYXJ0aWFsLmFwcGVu
ZCgobmlkLCBhbCkpDQogICAgYWxyZWFkeSA9IGcuYnlfcGF0aC5nZXQocSkgb3IgbmV4dCgobmlk
IGZvciBwLCBuaWQgaW4gZy5ieV9wYXRoLml0ZW1zKCkgaWYgcC5lbmRzd2l0aCgiLyIgKyBxKSks
IE5vbmUpDQogICAgaGl0cyA9IGV4YWN0IG9yIHRhaWwgb3IgcGFydGlhbA0KICAgIGtpbmQgPSAi
7KCV7ZmVIOydvOy5mCIgaWYgZXhhY3QgZWxzZSAi7Y+0642U66qFIOydvOy5mCIgaWYgdGFpbCBl
bHNlICLrtoDrtoQg7J287LmYIiBpZiBwYXJ0aWFsIGVsc2UgIuyXhuydjCINCiAgICByb3dzID0g
W1thbCwgZy5ub2Rlc1tuaWRdWyJwYXRoIl0sIG5pZCwgZy5ub2Rlc1tuaWRdWyJ0eXBlIl0sIGcu
bm9kZXNbbmlkXS5nZXQoImxpZmVjeWNsZSIpXSBmb3IgbmlkLCBhbCBpbiBoaXRzXQ0KICAgIG1k
ID0gW2YiIyMgcmVzb2x2ZSBge2Eub2xkfWAg4oCUIHtraW5kfSB7bGVuKGhpdHMpfeqxtCIsICIi
XQ0KICAgIGlmIGhpdHM6DQogICAgICAgIG1kICs9IFt0YWJsZShbIuyYmyDsnbTrpoQoYWxpYXMp
IiwgIu2YhOyerCDqsr3roZwiLCAiaWQiLCAidHlwZSIsICJsaWZlY3ljbGUiXSwgcm93cyldDQog
ICAgICAgIGlmIGxlbihoaXRzKSA9PSAxOg0KICAgICAgICAgICAgbWQgKz0gWyIiLCBmIuKGkiBg
e2hpdHNbMF1bMV19YCDsnYAg7KeA6riIIGB7Zy5ub2Rlc1toaXRzWzBdWzBdXVsncGF0aCddfWAg
7J2064ukLiJdDQogICAgZWxzZToNCiAgICAgICAgbWQgKz0gWyJhbGlhc2VzIOyWtOuUlOyXkOuP
hCDsl4bri6QuIl0NCiAgICAgICAgaWYgYWxyZWFkeToNCiAgICAgICAgICAgIG1kICs9IFtmIuuL
qCwg7J20IOydtOumhOydgCAqKu2YhOyerCDsnbTrpoQqKuydtOuLpDogYHtnLm5vZGVzW2FscmVh
ZHldWydwYXRoJ119YCAoYHthbHJlYWR5fWApIOKAlCDsmJsg7J2066aE7J20IOyVhOuLiOuLpC4i
XQ0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgbmVhciA9IGcuc2VhcmNoKGEub2xkKVs6NV0N
CiAgICAgICAgICAgIGlmIG5lYXI6DQogICAgICAgICAgICAgICAgbWQgKz0gWyIiLCAi67mE7Iq3
7ZWcIO2YhOyerCDrhbjrk5wo67aA67aEIOqygOyDiSk6IiwgIiIsIHRhYmxlKFsi6rK966GcIiwg
ImlkIl0sIFtbaFsicGF0aCJdLCBoWyJpZCJdXSBmb3IgaCBpbiBuZWFyXSldDQogICAgZW1pdCht
ZCwgeyJxdWVyeSI6IGEub2xkLCAibWF0Y2giOiBraW5kLCAiY291bnQiOiBsZW4oaGl0cyksDQog
ICAgICAgICAgICAgICJyZXN1bHRzIjogW3siYWxpYXMiOiBhbCwgImlkIjogbmlkLCAicGF0aCI6
IGcubm9kZXNbbmlkXVsicGF0aCJdLCAidHlwZSI6IGcubm9kZXNbbmlkXVsidHlwZSJdfSBmb3Ig
bmlkLCBhbCBpbiBoaXRzXSwNCiAgICAgICAgICAgICAgImlzX2N1cnJlbnRfbmFtZSI6IG5vZGVf
YnJpZWYoZywgYWxyZWFkeSkgaWYgKGFscmVhZHkgYW5kIG5vdCBoaXRzKSBlbHNlIE5vbmV9LCBh
Lmpzb24pDQogICAgcmV0dXJuIDAgaWYgaGl0cyBlbHNlIDENCg0KDQojIOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCDsp4TsnoUg
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSADQoNCmRlZiBtYWluKGFyZ3Y9Tm9uZSk6DQogICAgYXAgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcihwcm9nPSJxdWVyeS5weSIsIGRlc2NyaXB0aW9uPSJJUklTIOyYqO2GqOuhnOyngCBn
cmFwaC5qc29uIOydveq4sCDsoITsmqkg7KGw7ZqMIikNCiAgICBhcC5hZGRfYXJndW1lbnQoIi0t
anNvbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkpTT04g7Jy866GcIOy2nOugpSIpDQog
ICAgYXAuYWRkX2FyZ3VtZW50KCItLWdyYXBoIiwgZGVmYXVsdD1zdHIoR1JBUEhfREVGQVVMVCks
IGhlbHA9ImdyYXBoLmpzb24g6rK966GcIikNCiAgICBzdWIgPSBhcC5hZGRfc3VicGFyc2Vycyhk
ZXN0PSJjbWQiLCByZXF1aXJlZD1UcnVlKQ0KICAgIHAgPSBzdWIuYWRkX3BhcnNlcigid2hlcmUi
LCBoZWxwPSLsnbTrpoTCt+y9lOuTnMK37JibIOydtOumhMK3SUQg66GcIOuFuOuTnCDssL7quLAi
KTsgcC5hZGRfYXJndW1lbnQoInRlcm0iKQ0KICAgIHAgPSBzdWIuYWRkX3BhcnNlcigic2hvdyIs
IGhlbHA9IuuFuOuTnCDsubTrk5wgKyDqsITshKAg7KCE67aAIik7IHAuYWRkX2FyZ3VtZW50KCJy
ZWYiKQ0KICAgIHAgPSBzdWIuYWRkX3BhcnNlcigiaW5ib3VuZCIsIGhlbHA9IuydtCDrhbjrk5zr
pbwg6rCA66as7YKk64qUIOqwhOyEoCIpOyBwLmFkZF9hcmd1bWVudCgicmVmIik7IHAuYWRkX2Fy
Z3VtZW50KCItLXJlbCIpDQogICAgcCA9IHN1Yi5hZGRfcGFyc2VyKCJvdXRib3VuZCIsIGhlbHA9
IuydtCDrhbjrk5zsl5DshJwg64KY6rCA64qUIOqwhOyEoCIpOyBwLmFkZF9hcmd1bWVudCgicmVm
Iik7IHAuYWRkX2FyZ3VtZW50KCItLXJlbCIpDQogICAgcCA9IHN1Yi5hZGRfcGFyc2VyKCJjYW5v
bmljYWwiLCBoZWxwPSLsoJXrs7gg66y47IScIOuqqeuhnSIpOyBwLmFkZF9hcmd1bWVudCgicmVm
IikNCiAgICBwID0gc3ViLmFkZF9wYXJzZXIoInRyZWUiLCBoZWxwPSJjb250YWlucyDtlZjsnIQg
7Yq466asIik7IHAuYWRkX2FyZ3VtZW50KCJyZWYiKTsgcC5hZGRfYXJndW1lbnQoIi0tZGVwdGgi
LCB0eXBlPWludCk7IHAuYWRkX2FyZ3VtZW50KCItLXN0ZXBzIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgaGVscD0iUCDslYTrnpggUy9UIO2PtOuNlOuPhCDtkZzsi5wiKQ0KICAgIHN1Yi5hZGRfcGFy
c2VyKCJzdGF0cyIsIGhlbHA9IuqwnOyImCDthrXqs4QiKQ0KICAgIHAgPSBzdWIuYWRkX3BhcnNl
cigicmVzb2x2ZSIsIGhlbHA9IuyYmyDsnbTrpoQg4oaSIO2YhOyerCDqsr3roZwiKTsgcC5hZGRf
YXJndW1lbnQoIm9sZCIpDQogICAgYSA9IGFwLnBhcnNlX2FyZ3MoYXJndikNCiAgICBncGF0aCA9
IFBhdGgoYS5ncmFwaCkNCiAgICBpZiBub3QgZ3BhdGguZXhpc3RzKCk6DQogICAgICAgIHByaW50
KGYiZ3JhcGguanNvbiDsl4bsnYw6IHtncGF0aH0g4oCUIOuovOyggCBgcHl0aG9uIF9vbnRvbG9n
eS9idWlsZF9ncmFwaC5weSAtLWNvbXBpbGVgIikNCiAgICAgICAgcmV0dXJuIDENCiAgICBnID0g
R3JhcGgoZ3BhdGgpDQogICAgcmV0dXJuIHsid2hlcmUiOiBjbWRfd2hlcmUsICJzaG93IjogY21k
X3Nob3csICJpbmJvdW5kIjogbGFtYmRhIGcsIGE6IGNtZF9lZGdlcyhnLCBhLCAiaW4iKSwNCiAg
ICAgICAgICAgICJvdXRib3VuZCI6IGxhbWJkYSBnLCBhOiBjbWRfZWRnZXMoZywgYSwgIm91dCIp
LCAiY2Fub25pY2FsIjogY21kX2Nhbm9uaWNhbCwgInRyZWUiOiBjbWRfdHJlZSwNCiAgICAgICAg
ICAgICJzdGF0cyI6IGNtZF9zdGF0cywgInJlc29sdmUiOiBjbWRfcmVzb2x2ZX1bYS5jbWRdKGcs
IGEpDQoNCg0KaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoNCiAgICBzeXMuZXhpdChtYWluKCkp
DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/registry.yml","encoding":"base64","size":64,"runtimeSha256":"e67892ecafa13d053902307dba6014c2f7bc15ef2bf4cb117a85a98b33f816b0","normalizedSha256":"e67892ecafa13d053902307dba6014c2f7bc15ef2bf4cb117a85a98b33f816b0"} -->
```base64
dG9vbHM6IHt9CnN0b3Jlczoge30KYWNjb3VudHM6IHt9CnBlcnNvbnM6IHt9Cm1lbW9yeV9zdG9y
ZXM6IFtdCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/render_view.py","encoding":"base64","size":16239,"runtimeSha256":"73e730a7e2d17776c38a2f872d06d077483ea13b8eb392ae86bd2046c8ddfbe2","normalizedSha256":"0b17b9fb4042bf3eb03fc056c16b02fd69cdce8eceaedff195ff3d165ae407ca"} -->
```base64
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCiIiIuyYqO2GqOuhnOyngCDrt7Ag7IOd7ISx6riwIOKA
lCBncmFwaC5qc29uICsgcmVnaXN0cnkueW1sIOydhCDri6jsnbwgSFRNTCjsmKTtlITrnbzsnbgs
IOyduOudvOyduCkg66GcIOq3uOumsOuLpC4NCg0KICBweXRob24gX29udG9sb2d5L3JlbmRlcl92
aWV3LnB5ICAg4oaSICA87J6R7JeF6rO16rCEPi887J6R7JeF6rO16rCEIOydtOumhD4t7Jio7Yao
66Gc7KeALeu3sC5odG1sICAo6rGw7Jq4LiDshpDtjrjsp5Eg6riI7KeAKQ0KDQrqtazsobDsp4Dr
j4QoPOyekeyXheqzteqwhCDsnbTrpoQ+Leq1rOyhsOyngOuPhC5odG1sKeqwgCAi7Ja065SU7JeQ
IOustOyXh+ydtCDsnojrgpgi652866m0LCDsnbQg67ew64qUICLrrLTsl4fsnbQg66y07JeH6rO8
IOyWtOuWpCDqtIDqs4TsnbjqsIAi66W8IOuztOyXrCDspIDri6Q6DQrsubTrk5woSUTCt+yDge2D
nCDssrTqs4TCt+ynhOyLpCDshozsiqTCt+yImOuqhcK37ISc656NwrfsmJsg7J2066aEKSArIOq0
gOqzhCDrj4TsnqUgMTTsooUo7ISg7Ja4wrfsl63rsKntlqUpICsg65Ox66Gd67aAKOuPhOq1rMK3
7KCA7J6l7IaMwrfqs4TsoJXCt+yCrOuejCkuDQoiIiINCmltcG9ydCBpbw0KaW1wb3J0IGpzb24N
CmltcG9ydCBzeXMNCmZyb20gY29sbGVjdGlvbnMgaW1wb3J0IENvdW50ZXIsIGRlZmF1bHRkaWN0
DQpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgNCg0KaW1wb3J0IHlhbWwNCg0Kc3lzLnN0ZG91dCA9
IGlvLlRleHRJT1dyYXBwZXIoc3lzLnN0ZG91dC5idWZmZXIsIGVuY29kaW5nPSJ1dGYtOCIsIGVy
cm9ycz0icmVwbGFjZSIpDQpST09UID0gUGF0aChfX2ZpbGVfXykucmVzb2x2ZSgpLnBhcmVudC5w
YXJlbnQNCmZyb20gYnVpbGRfZ3JhcGggaW1wb3J0IGFzc2VydF9sb2NhbA0KT05UID0gUk9PVCAv
ICJfb250b2xvZ3kiDQpPVVQgPSBST09UIC8gKFJPT1QubmFtZSArICIt7Jio7Yao66Gc7KeALeu3
sC5odG1sIikNCg0KUkVMX0tPID0gew0KICAgICJjb250YWlucyI6ICLtj6ztlajtlZzri6QiLCAi
cGFydF9vZiI6ICLigKbsnZgg7J2867aAIiwgImNhbm9uaWNhbCI6ICLsoJXrs7jsnLzroZwg7IK8
7J2MIiwgImNhbm9uaWNhbF9mb3IiOiAi4oCm7J2YIOygleuzuCIsDQogICAgInRydXRoX2F0Ijog
IuynhOyLpCDshozsiqQiLCAidGVtcGxhdGUiOiAi7YuA66GcIOuzteygnO2VqCIsICJpbnN0YW50
aWF0ZWRfYnkiOiAi4oCm7J2YIO2LgCIsICJtaXJyb3Jfb2YiOiAi4oCm7J2YIOqxsOyauCIsDQog
ICAgIm1pcnJvcmVkX2J5IjogIuqxsOyauOydtCDsnojsnYwiLCAicHJvbW90ZWRfZnJvbSI6ICLs
lKjslZfsl5DshJwg7Iq56rKpIiwgInByb21vdGVkX3RvIjogIuKApuuhnCDsirnqsqnrkKgiLCAi
b3duZXIiOiAi7KO87J247J2AIOyggOyqvSIsDQogICAgInJlZmVyc190b19vd25lciI6ICLigKbq
sIAg64KY66W8IOyjvOyduOycvOuhnCIsICJleHRlbmRzIjogIuKApuydhCDtmZXsnqUiLCAiZXh0
ZW5kZWRfYnkiOiAi4oCm6rCAIO2Zleyepe2VqCIsICJzaWJsaW5nX2dyb3VwIjogIu2YleygnCDr
rLbsnYwiLA0KICAgICJzdG9yZWRfYXQiOiAi7KCA7J6l7IaMIiwgInN0b3JlcyI6ICLigKbsnYQg
7KCA7J6lIiwgInVzZXNfdG9vbCI6ICLrj4Tqtawg7IKs7JqpIiwgInVzZWRfYnkiOiAi4oCm6rCA
IOuCmOulvCDsgqzsmqkiLCAiZ292ZXJuZWRfYnkiOiAi6rec7LmZIOyggeyaqSIsDQogICAgImdv
dmVybnMiOiAi4oCm7J2EIOq3nOycqCIsICJpbnZvbHZlcyI6ICLqtIDsl6zsnpAiLCAiaW52b2x2
ZWRfaW4iOiAi4oCm7JeQIOq0gOyXrCIsICJhYm91dCI6ICLigKbsl5Ag6rSA7ZWcIOq4sOyWtSIs
ICJyZW1lbWJlcmVkX2J5IjogIuq4sOyWteydtCDsnojsnYwiLA0KfQ0KU0NIRU1FX0tPID0geyJm
dW5uZWwiOiAi6rmU65WM6riwKOyXsOq1rCkiLCAibGFkZGVyIjogIuyCrOuLpOumrCjtmZXsnqUg
7Jes7KCVKSIsICJ0YXNrNSI6ICLsl4XrrLQgNeyihSIsICJ0b3BpYzMiOiAi7KO87KCc7KeA64+E
IDPsooUiLCAiYm9vayI6ICLqsoDsiJjrjIDsnqUiLCAibm9uZSI6ICLsl4bsnYwifQ0KTElGRV9L
TyA9IHsiYWN0aXZlIjogIu2ZnOuPmSIsICJkb3JtYW50IjogIu2ctOuptCIsICJhcmNoaXZlZCI6
ICLrs7TqtIAiLCAicXVhcmFudGluZWQiOiAi6rKp66asIn0NCg0KDQpkZWYgbWFpbigpOg0KICAg
IGcgPSBqc29uLmxvYWRzKGFzc2VydF9sb2NhbChPTlQgLyAiZ3JhcGguanNvbiIpLnJlYWRfdGV4
dChlbmNvZGluZz0idXRmLTgiKSkNCiAgICByZWcgPSB5YW1sLnNhZmVfbG9hZChhc3NlcnRfbG9j
YWwoT05UIC8gInJlZ2lzdHJ5LnltbCIpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkgb3Ig
e30NCiAgICBub2RlcyA9IGdbIm5vZGVzIl0NCiAgICBlZGdlcyA9IGdbImVkZ2VzIl0NCg0KICAg
ICMg6rCE7ISgIOyDieyduA0KICAgIG91dF9lLCBpbl9lID0gZGVmYXVsdGRpY3QobGlzdCksIGRl
ZmF1bHRkaWN0KGxpc3QpDQogICAgZm9yIGUgaW4gZWRnZXM6DQogICAgICAgIGlmIGUuZ2V0KCJk
ZXJpdmVkIik6DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBvdXRfZVtlWyJmcm9tIl1d
LmFwcGVuZCgoZVsicmVsIl0sIGVbInRvIl0pKQ0KICAgICAgICBpbl9lW2VbInRvIl1dLmFwcGVu
ZCgoZVsicmVsIl0sIGVbImZyb20iXSkpDQogICAgIyDtirjrpqwo67aA66qoIOqyveuhnOuhnCkN
CiAgICBieV9wYXRoID0ge25bInBhdGgiXTogbmlkIGZvciBuaWQsIG4gaW4gbm9kZXMuaXRlbXMo
KX0NCiAgICBjaGlsZHJlbiA9IGRlZmF1bHRkaWN0KGxpc3QpDQogICAgcm9vdHMgPSBbXQ0KICAg
IGZvciBuaWQsIG4gaW4gbm9kZXMuaXRlbXMoKToNCiAgICAgICAgcGFyZW50ID0gc3RyKFBhdGgo
blsicGF0aCJdKS5wYXJlbnQpDQogICAgICAgIGlmIHBhcmVudCBpbiBieV9wYXRoOg0KICAgICAg
ICAgICAgY2hpbGRyZW5bYnlfcGF0aFtwYXJlbnRdXS5hcHBlbmQobmlkKQ0KICAgICAgICBlbHNl
Og0KICAgICAgICAgICAgcm9vdHMuYXBwZW5kKG5pZCkNCiAgICBmb3IgayBpbiBjaGlsZHJlbjoN
CiAgICAgICAgY2hpbGRyZW5ba10uc29ydChrZXk9bGFtYmRhIHg6IG5vZGVzW3hdWyJwYXRoIl0p
DQogICAgcm9vdHMuc29ydChrZXk9bGFtYmRhIHg6IG5vZGVzW3hdWyJwYXRoIl0pDQoNCiAgICBz
dGF0cyA9IHsNCiAgICAgICAgIm5vZGVzIjogbGVuKG5vZGVzKSwgImVkZ2VzX2RlY2wiOiBzdW0o
bGVuKHYpIGZvciB2IGluIG91dF9lLnZhbHVlcygpKSwgImVkZ2VzX2FsbCI6IGxlbihlZGdlcyks
DQogICAgICAgICJ0eXBlcyI6IGRpY3QoQ291bnRlcihuWyJ0eXBlIl0gZm9yIG4gaW4gbm9kZXMu
dmFsdWVzKCkpKSwNCiAgICAgICAgInNjaGVtZXMiOiBkaWN0KENvdW50ZXIobi5nZXQoInN0YXR1
c19zY2hlbWUiKSBvciAibm9uZSIgZm9yIG4gaW4gbm9kZXMudmFsdWVzKCkpKSwNCiAgICAgICAg
ImxpZmUiOiBkaWN0KENvdW50ZXIobi5nZXQoImxpZmVjeWNsZSIpIG9yICJhY3RpdmUiIGZvciBu
IGluIG5vZGVzLnZhbHVlcygpKSksDQogICAgICAgICJyZWxzIjogZGljdChDb3VudGVyKHIgZm9y
IHYgaW4gb3V0X2UudmFsdWVzKCkgZm9yIHIsIF8gaW4gdikpLA0KICAgICAgICAiZHJhd2VycyI6
IHN1bShsZW4obi5nZXQoImRyYXdlcnMiKSBvciBbXSkgZm9yIG4gaW4gbm9kZXMudmFsdWVzKCkp
LA0KICAgICAgICAiYWxpYXNlcyI6IHN1bShsZW4obi5nZXQoImFsaWFzZXMiKSBvciBbXSkgZm9y
IG4gaW4gbm9kZXMudmFsdWVzKCkpLA0KICAgICAgICAic2Vuc2l0aXZlIjogc3VtKDEgZm9yIG4g
aW4gbm9kZXMudmFsdWVzKCkgaWYgbi5nZXQoInNlbnNpdGl2ZSIpKSwNCiAgICAgICAgInJlZ2lz
dHJ5Ijoge2s6IGxlbih2IG9yIHt9KSBmb3IgaywgdiBpbiByZWcuaXRlbXMoKSBpZiBpc2luc3Rh
bmNlKHYsIGRpY3QpfSwNCiAgICAgICAgImdlbmVyYXRlZCI6IGcuZ2V0KCJnZW5lcmF0ZWQiLCAi
IiksDQogICAgfQ0KDQogICAgIyDruIzrnbzsmrDsoIDsl5Ag64SY6ri4IOy2leyVvSDrjbDsnbTt
hLANCiAgICBzbGltID0ge30NCiAgICBmb3IgbmlkLCBuIGluIG5vZGVzLml0ZW1zKCk6DQogICAg
ICAgIHNsaW1bbmlkXSA9IHsNCiAgICAgICAgICAgICJwIjogblsicGF0aCJdLCAidCI6IG5bInR5
cGUiXSwgImMiOiBuLmdldCgiY29kZSIpLCAicyI6IG4uZ2V0KCJzdGF0dXNfc2NoZW1lIikgb3Ig
Im5vbmUiLA0KICAgICAgICAgICAgInRyIjogbi5nZXQoInRydXRoIiksICJsIjogbi5nZXQoImxp
ZmVjeWNsZSIpIG9yICJhY3RpdmUiLCAic3YiOiBib29sKG4uZ2V0KCJzZW5zaXRpdmUiKSksDQog
ICAgICAgICAgICAidGciOiBbZiJ7dFsna2luZCddfT17dFsndmFsdWUnXX0iIGZvciB0IGluIChu
LmdldCgidGFncyIpIG9yIFtdKV0sDQogICAgICAgICAgICAiYWwiOiBuLmdldCgiYWxpYXNlcyIp
IG9yIFtdLCAiZHIiOiBuLmdldCgiZHJhd2VycyIpIG9yIFtdLCAidXQiOiBuLmdldCgidXRpbHMi
KSBvciBbXSwNCiAgICAgICAgICAgICJzYyI6IG4uZ2V0KCJzY29wZV9ib3VuZGFyeSIpIG9yIFtd
LCAiZnoiOiBib29sKG4uZ2V0KCJmcmVlX3pvbmUiKSksICJmciI6IGJvb2wobi5nZXQoImZyb3pl
biIpKSwNCiAgICAgICAgICAgICJvIjogb3V0X2UuZ2V0KG5pZCwgW10pLCAiaSI6IGluX2UuZ2V0
KG5pZCwgW10pLCAiY2giOiBjaGlsZHJlbi5nZXQobmlkLCBbXSksDQogICAgICAgIH0NCiAgICBk
YXRhID0geyJub2RlcyI6IHNsaW0sICJyb290cyI6IHJvb3RzLCAicmVnIjogcmVnLCAic3RhdHMi
OiBzdGF0cywgInJlbGtvIjogUkVMX0tPLCAic2NoZW1la28iOiBTQ0hFTUVfS08sICJsaWZla28i
OiBMSUZFX0tPfQ0KICAgIHBheWxvYWQgPSBqc29uLmR1bXBzKGRhdGEsIGVuc3VyZV9hc2NpaT1G
YWxzZSkucmVwbGFjZSgiPC8iLCAiPFxcLyIpDQoNCiAgICB0aXRsZSA9IFJPT1QubmFtZS5yZXBs
YWNlKCImIiwgIiZhbXA7IikucmVwbGFjZSgiPCIsICImbHQ7IikgKyAiIOyYqO2GqOuhnOyngCDr
t7AiDQogICAgaHRtbCA9IEhUTUwucmVwbGFjZSgiX19EQVRBX18iLCBwYXlsb2FkKS5yZXBsYWNl
KCJfX1RJVExFX18iLCB0aXRsZSkNCiAgICBhc3NlcnRfbG9jYWwoT1VUKS53cml0ZV90ZXh0KGh0
bWwsIGVuY29kaW5nPSJ1dGYtOCIpDQogICAgcHJpbnQoZiLrt7Ag7IOd7ISxIOKGkiB7T1VUfSAg
KOuFuOuTnCB7c3RhdHNbJ25vZGVzJ119IMK3IOyEoOyWuCDqsITshKAge3N0YXRzWydlZGdlc19k
ZWNsJ119IMK3IOuTseuhneu2gCB7c3RhdHNbJ3JlZ2lzdHJ5J119KSIpDQoNCg0KSFRNTCA9IHIi
IiI8IWRvY3R5cGUgaHRtbD4NCjxodG1sIGxhbmc9ImtvIj48aGVhZD48bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxp
bml0aWFsLXNjYWxlPTEiPg0KPHRpdGxlPl9fVElUTEVfXzwvdGl0bGU+DQo8c3R5bGU+DQo6cm9v
dHstLWJnOiNmN2Y2ZjI7LS1wYW5lbDojZmZmOy0taW5rOiMxZjIzMjg7LS1tdXRlOiM2YjcyODA7
LS1saW5lOiNlNWUyZGE7LS1hY2M6IzFmM2E1ZjstLWFjYzI6I2I0NTMwOTstLWNoaXA6I2VlZjJm
NzstLXdhcm46I2ZmZjZlODstLW9rOiNlOGY1ZWN9DQoqe2JveC1zaXppbmc6Ym9yZGVyLWJveH1i
b2R5e21hcmdpbjowO2JhY2tncm91bmQ6dmFyKC0tYmcpO2NvbG9yOnZhcigtLWluayk7Zm9udDox
NHB4LzEuNiAiTWFsZ3VuIEdvdGhpYyIsIuunkeydgCDqs6DrlJUiLHN5c3RlbS11aSxzYW5zLXNl
cmlmfQ0KaGVhZGVye3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjU7YmFja2dyb3VuZDp2
YXIoLS1wYW5lbCk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7cGFkZGluZzox
MHB4IDE4cHg7ZGlzcGxheTpmbGV4O2dhcDoxOHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdy
YXA6d3JhcH0NCmhlYWRlciBoMXtmb250LXNpemU6MTdweDttYXJnaW46MDtjb2xvcjp2YXIoLS1h
Y2MpfWhlYWRlciAuc3R7Y29sb3I6dmFyKC0tbXV0ZSk7Zm9udC1zaXplOjEyLjVweH0NCmhlYWRl
ciBpbnB1dHtmbGV4OjE7bWluLXdpZHRoOjIyMHB4O21heC13aWR0aDo0MjBweDtwYWRkaW5nOjdw
eCAxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9u
dDppbmhlcml0fQ0KbWFpbntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1h
eCgzMjBweCwzOCUpIDFmcjtnYXA6MDtoZWlnaHQ6Y2FsYygxMDB2aCAtIDU4cHgpfQ0KI3RyZWV7
b3ZlcmZsb3c6YXV0bztib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3BhZGRpbmc6
MTBweCA4cHggNDBweH0NCiNkZXRhaWx7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHggMjJweCA2
MHB4fQ0KLm57cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6NnB4O2N1cnNvcjpwb2ludGVy
O3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5OmZsZXg7Z2FwOjZweDthbGlnbi1pdGVtczpjZW50
ZXJ9DQoubjpob3ZlcntiYWNrZ3JvdW5kOiNlZmVjZTR9Lm4uc2Vse2JhY2tncm91bmQ6I2UzZWJm
NX0NCi5uIC50d3t3aWR0aDoxNHB4O2NvbG9yOnZhcigtLW11dGUpO2ZvbnQtc2l6ZToxMXB4O2Zs
ZXg6bm9uZX0NCi5uIC5jb2Rle2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1hY2MpO2ZsZXg6
bm9uZX0NCi5uIC5uYW1le292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfQ0K
Lm4gLmJ7Zm9udC1zaXplOjEwLjVweDtwYWRkaW5nOjAgNnB4O2JvcmRlci1yYWRpdXM6MTBweDti
YWNrZ3JvdW5kOnZhcigtLWNoaXApO2NvbG9yOnZhcigtLW11dGUpO2ZsZXg6bm9uZX0NCi5uIC5i
LmR7YmFja2dyb3VuZDojZmRlOWQzO2NvbG9yOnZhcigtLWFjYzIpfS5uIC5iLnN7YmFja2dyb3Vu
ZDojZmRlMmUyO2NvbG9yOiM5OTFiMWJ9Lm4gLmIucXtiYWNrZ3JvdW5kOiNlZWU7Y29sb3I6IzY2
Nn0NCi5raWRze21hcmdpbi1sZWZ0OjE2cHg7Ym9yZGVyLWxlZnQ6MXB4IGRhc2hlZCB2YXIoLS1s
aW5lKTtwYWRkaW5nLWxlZnQ6NHB4fQ0KLmhpZGV7ZGlzcGxheTpub25lfQ0KaDJ7Zm9udC1zaXpl
OjE1cHg7bWFyZ2luOjE4cHggMCA4cHg7Y29sb3I6dmFyKC0tYWNjKTtib3JkZXItYm90dG9tOjFw
eCBzb2xpZCB2YXIoLS1saW5lKTtwYWRkaW5nLWJvdHRvbTo0cHh9DQpoM3tmb250LXNpemU6MTMu
NXB4O21hcmdpbjoxNHB4IDAgNnB4O2NvbG9yOnZhcigtLW11dGUpfQ0KdGFibGV7Ym9yZGVyLWNv
bGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS1wYW5lbCl9dGQsdGh7
Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtwYWRkaW5nOjVweCA4cHg7dGV4dC1hbGlnbjps
ZWZ0O3ZlcnRpY2FsLWFsaWduOnRvcDtmb250LXNpemU6MTNweH10aHtiYWNrZ3JvdW5kOiNmMWVm
ZTk7Zm9udC13ZWlnaHQ6NjAwO3dpZHRoOjEzMHB4fQ0KLmNoaXB7ZGlzcGxheTppbmxpbmUtYmxv
Y2s7YmFja2dyb3VuZDp2YXIoLS1jaGlwKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxcHgg
OHB4O21hcmdpbjoxcHggM3B4IDFweCAwO2ZvbnQtc2l6ZToxMnB4fQ0KLnJlbHtkaXNwbGF5Omdy
aWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjE1MHB4IDFmcjtnYXA6NHB4IDEwcHg7Zm9udC1zaXpl
OjEzcHh9LnJlbCAua3tjb2xvcjp2YXIoLS1hY2MyKTtmb250LXdlaWdodDo2MDB9DQphLmxua3tj
b2xvcjp2YXIoLS1hY2MpO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUg
ZG90dGVkfQ0KLnN0YXRze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0
KGF1dG8tZml0LG1pbm1heCgxNTBweCwxZnIpKTtnYXA6OHB4O21hcmdpbjo2cHggMCAxNHB4fQ0K
LnN0YXRzIGRpdntiYWNrZ3JvdW5kOnZhcigtLXBhbmVsKTtib3JkZXI6MXB4IHNvbGlkIHZhcigt
LWxpbmUpO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6OHB4IDEwcHh9LnN0YXRzIGJ7ZGlzcGxh
eTpibG9jaztmb250LXNpemU6MjBweDtjb2xvcjp2YXIoLS1hY2MpfS5zdGF0cyBzcGFue2ZvbnQt
c2l6ZToxMnB4O2NvbG9yOnZhcigtLW11dGUpfQ0KLmxlZ2VuZHtmb250LXNpemU6MTIuNXB4O2Nv
bG9yOnZhcigtLW11dGUpfS5sZWdlbmQgYntjb2xvcjp2YXIoLS1pbmspfQ0KLmVtcHR5e2NvbG9y
OnZhcigtLW11dGUpO2ZvbnQtc3R5bGU6aXRhbGljfQ0KLnRhYnN7ZGlzcGxheTpmbGV4O2dhcDo4
cHg7bWFyZ2luLWJvdHRvbToxMHB4fS50YWJzIGJ1dHRvbntib3JkZXI6MXB4IHNvbGlkIHZhcigt
LWxpbmUpO2JhY2tncm91bmQ6dmFyKC0tcGFuZWwpO3BhZGRpbmc6NXB4IDEycHg7Ym9yZGVyLXJh
ZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7Zm9udDppbmhlcml0fS50YWJzIGJ1dHRvbi5vbntiYWNr
Z3JvdW5kOnZhcigtLWFjYyk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tYWNjKX0NCjwv
c3R5bGU+PC9oZWFkPjxib2R5Pg0KPGhlYWRlcj48aDE+X19USVRMRV9fPC9oMT48aW5wdXQgaWQ9
InEiIHBsYWNlaG9sZGVyPSLsnbTrpoTCt+y9lOuTnMK37JibIOydtOumhMK3SUTroZwg7LC+6riw
ICjsmIg6IO2VmeyKtSwgUDAxLCBpcmlzOikiPjxzcGFuIGNsYXNzPSJzdCIgaWQ9InN0Ij48L3Nw
YW4+PC9oZWFkZXI+DQo8bWFpbj48ZGl2IGlkPSJ0cmVlIj48L2Rpdj48ZGl2IGlkPSJkZXRhaWwi
PjwvZGl2PjwvbWFpbj4NCjxzY3JpcHQ+DQpjb25zdCBEPV9fREFUQV9fO2NvbnN0IE49RC5ub2Rl
czsNCmNvbnN0ICQ9cz0+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzKTtjb25zdCBlc2M9cz0+U3Ry
aW5nKHM/PycnKS5yZXBsYWNlKC9bJjw+XS9nLGM9Pih7JyYnOicmYW1wOycsJzwnOicmbHQ7Jywn
Pic6JyZndDsnfVtjXSkpOw0KY29uc3QgbmFtZU9mPWlkPT5OW2lkXT9OW2lkXS5wLnNwbGl0KCdc
XCcpLnBvcCgpOmlkOw0KZnVuY3Rpb24gYmFkZ2Uobil7bGV0IGI9Jyc7aWYobi5zIT09J25vbmUn
KWIrPWA8c3BhbiBjbGFzcz0iYiI+JHtlc2MoRC5zY2hlbWVrb1tuLnNdfHxuLnMpfTwvc3Bhbj5g
O2lmKG4ubCE9PSdhY3RpdmUnKWIrPWA8c3BhbiBjbGFzcz0iYiBkIj4ke2VzYyhELmxpZmVrb1tu
LmxdfHxuLmwpfTwvc3Bhbj5gO2lmKG4uc3YpYis9YDxzcGFuIGNsYXNzPSJiIHMiPuuvvOqwkDwv
c3Bhbj5gO2lmKG4uZHIubGVuZ3RoKWIrPWA8c3BhbiBjbGFzcz0iYiBxIj7shJzrno0gJHtuLmRy
Lmxlbmd0aH08L3NwYW4+YDtjb25zdCByYz1uLm8ubGVuZ3RoK24uaS5sZW5ndGg7aWYocmMpYis9
YDxzcGFuIGNsYXNzPSJiIHEiPuq0gOqzhCAke3JjfTwvc3Bhbj5gO3JldHVybiBifQ0KZnVuY3Rp
b24gcm93KGlkLGRlcHRoKXtjb25zdCBuPU5baWRdO2NvbnN0IGhhcz1uLmNoLmxlbmd0aD4wO2Nv
bnN0IGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2VsLmlubmVySFRNTD1gPGRpdiBj
bGFzcz0ibiIgZGF0YS1pZD0iJHtpZH0iPjxzcGFuIGNsYXNzPSJ0dyI+JHtoYXM/J+KWuCc6J8K3
J308L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUiPiR7ZXNjKG4uY3x8JycpfTwvc3Bhbj48c3BhbiBj
bGFzcz0ibmFtZSIgdGl0bGU9IiR7ZXNjKG4ucCl9Ij4ke2VzYyhuYW1lT2YoaWQpLnJlcGxhY2Uo
L15bUkRQU1RdXGRcZChcLlxkXGQpPy0vLCcnKS5yZXBsYWNlKC9e44CWW17jgJddK+OAl1tSRFBT
VF1cZFxkLS8sJycpKX08L3NwYW4+JHtiYWRnZShuKX08L2Rpdj5gO2NvbnN0IGtpZHM9ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7a2lkcy5jbGFzc05hbWU9J2tpZHMgaGlkZSc7aWYoaGFz
KXtmb3IoY29uc3QgYyBvZiBuLmNoKWtpZHMuYXBwZW5kQ2hpbGQocm93KGMsZGVwdGgrMSkpfWVs
LmFwcGVuZENoaWxkKGtpZHMpO2NvbnN0IGhlYWQ9ZWwuZmlyc3RDaGlsZDtoZWFkLm9uY2xpY2s9
ZT0+e2lmKGhhcyl7a2lkcy5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlJyk7aGVhZC5xdWVyeVNlbGVj
dG9yKCcudHcnKS50ZXh0Q29udGVudD1raWRzLmNsYXNzTGlzdC5jb250YWlucygnaGlkZScpPyfi
lrgnOifilr4nfXNob3coaWQpfTtyZXR1cm4gZWx9DQpmdW5jdGlvbiBidWlsZCgpe2NvbnN0IHQ9
JCgnI3RyZWUnKTt0LmlubmVySFRNTD0nJztmb3IoY29uc3QgciBvZiBELnJvb3RzKXQuYXBwZW5k
Q2hpbGQocm93KHIsMCkpO2NvbnN0IHM9RC5zdGF0czskKCcjc3QnKS50ZXh0Q29udGVudD1g64W4
65OcICR7cy5ub2Rlc30gwrcg7ISg7Ja4IOq0gOqzhCAke3MuZWRnZXNfZGVjbH0gwrcg7ISc656N
ICR7cy5kcmF3ZXJzfSDCtyDsmJsg7J2066aEICR7cy5hbGlhc2VzfSDCtyDsg53shLEgJHtzLmdl
bmVyYXRlZC5zbGljZSgwLDE2KX1gfQ0KZnVuY3Rpb24gbGluayhyZWYpe2NvbnN0IGlkPVN0cmlu
ZyhyZWYpLnNwbGl0KCcvJylbMF07aWYoTltpZF0pe2NvbnN0IHJlc3Q9U3RyaW5nKHJlZikuc2xp
Y2UoaWQubGVuZ3RoKTtyZXR1cm4gYDxhIGNsYXNzPSJsbmsiIGRhdGEtZ289IiR7aWR9Ij4ke2Vz
YyhuYW1lT2YoaWQpKX08L2E+PHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLW11dGUpIj4ke2VzYyhy
ZXN0KX08L3NwYW4+YH1yZXR1cm4gYDxzcGFuIGNsYXNzPSJjaGlwIj4ke2VzYyhyZWYpfTwvc3Bh
bj5gfQ0KZnVuY3Rpb24gc2hvdyhpZCl7Y29uc3Qgbj1OW2lkXTtkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCcubi5zZWwnKS5mb3JFYWNoKHg9PnguY2xhc3NMaXN0LnJlbW92ZSgnc2VsJykpO2Nv
bnN0IGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5uW2RhdGEtaWQ9IiR7aWR9Il1gKTtpZihl
bCllbC5jbGFzc0xpc3QuYWRkKCdzZWwnKTsNCmxldCBoPWA8aDI+JHtlc2Mobi5wKX08L2gyPjx0
YWJsZT5gOw0KaCs9YDx0cj48dGg+aWQ8L3RoPjx0ZD48Y29kZT4ke2VzYyhpZCl9PC9jb2RlPjwv
dGQ+PC90cj48dHI+PHRoPuyiheulmCAvIOy9lOuTnDwvdGg+PHRkPiR7ZXNjKG4udCl9IC8gJHtl
c2Mobi5jfHwnJyl9PC90ZD48L3RyPmA7DQpoKz1gPHRyPjx0aD7sg4Htg5wg7LK06rOEPC90aD48
dGQ+JHtlc2MoRC5zY2hlbWVrb1tuLnNdfHxuLnMpfSR7bi50cj9gIMK3IOynhOyLpCDshozsiqQg
PGNvZGU+JHtlc2Mobi50cil9PC9jb2RlPmA6KG4ucyE9PSdub25lJz8nIMK3IDxzcGFuIGNsYXNz
PSJlbXB0eSI+7KeE7IukIOyGjOyKpCDrr7jquLDsnqw8L3NwYW4+JzonJyl9PC90ZD48L3RyPmA7
DQpoKz1gPHRyPjx0aD7siJjrqoU8L3RoPjx0ZD4ke2VzYyhELmxpZmVrb1tuLmxdfHxuLmwpfSR7
bi5zdj8nIMK3IDxiIHN0eWxlPSJjb2xvcjojOTkxYjFiIj7rr7zqsJAoc2Vuc2l0aXZlKTwvYj4n
OicnfSR7bi5mcj8nIMK3IOuPmeqysCc6Jyd9JHtuLmZ6Pycgwrcg7J6Q7Jyg6rWs7JetIOu/jOum
rCc6Jyd9JHtuLnNjLmxlbmd0aD8nIMK3IOyKpOy9lO2UhCDqsr3qs4Q6ICcrbi5zYy5qb2luKCcs
ICcpOicnfTwvdGQ+PC90cj5gOw0KaWYobi50Zy5sZW5ndGgpaCs9YDx0cj48dGg+7YOc6re4PC90
aD48dGQ+JHtuLnRnLm1hcCh4PT5gPHNwYW4gY2xhc3M9ImNoaXAiPiR7ZXNjKHgpfTwvc3Bhbj5g
KS5qb2luKCcnKX08L3RkPjwvdHI+YDsNCmlmKG4uYWwubGVuZ3RoKWgrPWA8dHI+PHRoPuyYmyDs
nbTrpoQ8L3RoPjx0ZD4ke24uYWwubWFwKHg9PmA8c3BhbiBjbGFzcz0iY2hpcCI+JHtlc2MoeCl9
PC9zcGFuPmApLmpvaW4oJycpfTwvdGQ+PC90cj5gOw0KaWYobi5kci5sZW5ndGgpaCs9YDx0cj48
dGg+7ISc656NPC90aD48dGQ+JHtuLmRyLm1hcCh4PT5gPHNwYW4gY2xhc3M9ImNoaXAiPiR7ZXNj
KHgpfTwvc3Bhbj5gKS5qb2luKCcnKX08L3RkPjwvdHI+YDsNCmlmKG4udXQubGVuZ3RoKWgrPWA8
dHI+PHRoPuycoO2LuDwvdGg+PHRkPiR7bi51dC5tYXAoeD0+YDxzcGFuIGNsYXNzPSJjaGlwIj4k
e2VzYyh4KX08L3NwYW4+YCkuam9pbignJyl9PC90ZD48L3RyPmA7DQppZihuLmNoLmxlbmd0aClo
Kz1gPHRyPjx0aD7tlZjsnIQ8L3RoPjx0ZD4ke24uY2gubWFwKGM9PmxpbmsoYykpLmpvaW4oJyDC
tyAnKX08L3RkPjwvdHI+YDsNCmgrPWA8L3RhYmxlPmA7DQpoKz1gPGgzPuydtCDrhbjrk5zqsIAg
7ISg7Ja47ZWcIOq0gOqzhCAoJHtuLm8ubGVuZ3RofSk8L2gzPmA7aCs9bi5vLmxlbmd0aD9gPGRp
diBjbGFzcz0icmVsIj4ke24uby5tYXAoKFtyLHRdKT0+YDxzcGFuIGNsYXNzPSJrIj4ke2VzYyhE
LnJlbGtvW3JdfHxyKX08L3NwYW4+PHNwYW4+JHtsaW5rKHQpfTwvc3Bhbj5gKS5qb2luKCcnKX08
L2Rpdj5gOmA8ZGl2IGNsYXNzPSJlbXB0eSI+7JeG7J2MPC9kaXY+YDsNCmgrPWA8aDM+7J20IOuF
uOuTnOulvCDqsIDrpqztgqTripQg6rSA6rOEICgke24uaS5sZW5ndGh9LCDsl63rsKntlqUg6rOE
7IKwKTwvaDM+YDtoKz1uLmkubGVuZ3RoP2A8ZGl2IGNsYXNzPSJyZWwiPiR7bi5pLm1hcCgoW3Is
Zl0pPT5gPHNwYW4gY2xhc3M9ImsiPiR7ZXNjKEQucmVsa29bcl18fHIpfTwvc3Bhbj48c3Bhbj4k
e2xpbmsoZil9PC9zcGFuPmApLmpvaW4oJycpfTwvZGl2PmA6YDxkaXYgY2xhc3M9ImVtcHR5Ij7s
l4bsnYw8L2Rpdj5gOw0KJCgnI2RldGFpbCcpLmlubmVySFRNTD1oOyQoJyNkZXRhaWwnKS5xdWVy
eVNlbGVjdG9yQWxsKCdbZGF0YS1nb10nKS5mb3JFYWNoKGE9PmEub25jbGljaz0oKT0+e3JldmVh
bChhLmRhdGFzZXQuZ28pO3Nob3coYS5kYXRhc2V0LmdvKX0pfQ0KZnVuY3Rpb24gcmV2ZWFsKGlk
KXtsZXQgcD1OW2lkXTtjb25zdCBwYXRoPVtdO2xldCBjdXI9aWQ7d2hpbGUoY3VyKXtwYXRoLnVu
c2hpZnQoY3VyKTtjb25zdCBwYXI9T2JqZWN0LmtleXMoTikuZmluZChrPT5OW2tdLmNoLmluY2x1
ZGVzKGN1cikpO2N1cj1wYXJ9Zm9yKGNvbnN0IHBpZCBvZiBwYXRoLnNsaWNlKDAsLTEpKXtjb25z
dCBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAubltkYXRhLWlkPSIke3BpZH0iXWApO2lmKGVs
KXtjb25zdCBraWRzPWVsLm5leHRTaWJsaW5nO2lmKGtpZHMmJmtpZHMuY2xhc3NMaXN0LmNvbnRh
aW5zKCdoaWRlJykpe2tpZHMuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZScpO2VsLnF1ZXJ5U2VsZWN0
b3IoJy50dycpLnRleHRDb250ZW50PSfilr4nfX19Y29uc3QgZWw9ZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcihgLm5bZGF0YS1pZD0iJHtpZH0iXWApO2lmKGVsKWVsLnNjcm9sbEludG9WaWV3KHtibG9j
azonY2VudGVyJ30pfQ0KZnVuY3Rpb24gaG9tZSgpe2NvbnN0IHM9RC5zdGF0cztsZXQgaD1gPGgy
Pu2VnOuIiOyXkDwvaDI+PGRpdiBjbGFzcz0ic3RhdHMiPjxkaXY+PGI+JHtzLm5vZGVzfTwvYj48
c3Bhbj7rhbjrk5woUsK3RMK3UCk8L3NwYW4+PC9kaXY+PGRpdj48Yj4ke3MuZWRnZXNfZGVjbH08
L2I+PHNwYW4+7ISg7Ja4IOq0gOqzhDwvc3Bhbj48L2Rpdj48ZGl2PjxiPiR7cy5lZGdlc19hbGx9
PC9iPjxzcGFuPuqwhOyEoCjsl63rsKntlqUg7Y+s7ZWoKTwvc3Bhbj48L2Rpdj48ZGl2PjxiPiR7
cy5kcmF3ZXJzfTwvYj48c3Bhbj7shJzrno0g7ISg7Ja4PC9zcGFuPjwvZGl2PjxkaXY+PGI+JHtz
LmFsaWFzZXN9PC9iPjxzcGFuPuyYmyDsnbTrpoQ8L3NwYW4+PC9kaXY+PGRpdj48Yj4ke3Muc2Vu
c2l0aXZlfTwvYj48c3Bhbj7rr7zqsJAg64W465OcPC9zcGFuPjwvZGl2PjwvZGl2PmA7DQpoKz1g
PGgzPu2BtOuemOyKpDwvaDM+YCtPYmplY3QuZW50cmllcyhzLnR5cGVzKS5tYXAoKFtrLHZdKT0+
YDxzcGFuIGNsYXNzPSJjaGlwIj4ke2t9ICR7dn08L3NwYW4+YCkuam9pbignJyk7DQpoKz1gPGgz
PuyDge2DnCDssrTqs4Q8L2gzPmArT2JqZWN0LmVudHJpZXMocy5zY2hlbWVzKS5tYXAoKFtrLHZd
KT0+YDxzcGFuIGNsYXNzPSJjaGlwIj4ke0Quc2NoZW1la29ba118fGt9ICR7dn08L3NwYW4+YCku
am9pbignJyk7DQpoKz1gPGgzPuyImOuqhTwvaDM+YCtPYmplY3QuZW50cmllcyhzLmxpZmUpLm1h
cCgoW2ssdl0pPT5gPHNwYW4gY2xhc3M9ImNoaXAiPiR7RC5saWZla29ba118fGt9ICR7dn08L3Nw
YW4+YCkuam9pbignJyk7DQpoKz1gPGgzPuq0gOqzhCDrj4TsnqXrs4Qg7ISg7Ja4IOyImDwvaDM+
YCtPYmplY3QuZW50cmllcyhzLnJlbHMpLnNvcnQoKGEsYik9PmJbMV0tYVsxXSkubWFwKChbayx2
XSk9PmA8c3BhbiBjbGFzcz0iY2hpcCI+JHtELnJlbGtvW2tdfHxrfSA8Yj4ke3Z9PC9iPjwvc3Bh
bj5gKS5qb2luKCcnKTsNCmgrPWA8aDI+65Ox66Gd67aAIOKAlCDtj7TrjZTqsIAg7JWE64uMIOuF
uOuTnDwvaDI+YDtmb3IoY29uc3Qgc2VjIG9mIFsndG9vbHMnLCdzdG9yZXMnLCdhY2NvdW50cycs
J3BlcnNvbnMnXSl7Y29uc3QgbT1ELnJlZ1tzZWNdfHx7fTtoKz1gPGgzPiR7KHt0b29sczon64+E
6rWsJyxzdG9yZXM6J+yggOyepeyGjCcsYWNjb3VudHM6J+qzhOyglScscGVyc29uczon7IKs656M
J30pW3NlY119ICgke09iamVjdC5rZXlzKG0pLmxlbmd0aH0pPC9oMz48dGFibGU+YDtmb3IoY29u
c3QgW2ssdl0gb2YgT2JqZWN0LmVudHJpZXMobSkpe2NvbnN0IG89dHlwZW9mIHY9PT0nb2JqZWN0
JyYmdj92Ont9O2grPWA8dHI+PHRoPiR7c2VjLnNsaWNlKDAsLTEpfToke2VzYyhrKX08L3RoPjx0
ZD4ke2VzYyhvLmxhYmVsfHwnJyl9ICR7ZXNjKG8ua2luZHx8JycpfSAke28ucGF0aD8nPGNvZGU+
Jytlc2Moby5wYXRoKSsnPC9jb2RlPic6Jyd9JHtvLnBhdGhzP28ucGF0aHMubWFwKHg9Pic8Y29k
ZT4nK2VzYyh4KSsnPC9jb2RlPicpLmpvaW4oJzxicj4nKTonJ30ke28udXJpPyc8Y29kZT4nK2Vz
YyhvLnVyaSkrJzwvY29kZT4nOicnfSR7by5ob3N0ZWRfYXQ/JyDCtyDsoJzqs7Ug64W465OcICcr
KEFycmF5LmlzQXJyYXkoby5ob3N0ZWRfYXQpP28uaG9zdGVkX2F0Lm1hcChlc2MpLmpvaW4oJywg
Jyk6bGluayhvLmhvc3RlZF9hdCkpOicnfSR7by5yb2xlcz8nIMK3ICcrby5yb2xlcy5tYXAoZXNj
KS5qb2luKCcsICcpOicnfSR7by5zdGF0dXM9PT0nY2FuZGlkYXRlJz8nIMK3IDxpPu2bhOuztDwv
aT4nOicnfSR7by5zZW5zaXRpdmU/JyDCtyA8YiBzdHlsZT0iY29sb3I6Izk5MWIxYiI+66+86rCQ
PC9iPic6Jyd9PC90ZD48L3RyPmB9aCs9YDwvdGFibGU+YH0NCmgrPWA8aDI+7J2964qUIOuylTwv
aDI+PHAgY2xhc3M9ImxlZ2VuZCI+PGI+7Jm87Kq9PC9iPiDtirjrpqzsl5DshJwg64W465Oc66W8
IOuIhOultOuptCDsubTrk5zsmYAg6rSA6rOE6rCAIOyXrOq4sCDrgpjsmKjri6QuIDxiPuuwsOyn
gDwvYj46IOyDge2DnCDssrTqs4Qgwrcg7Zy066m0L+uztOq0gCDCtyDrr7zqsJAgwrcg7ISc656N
IOyImCDCtyDqtIDqs4Qg7IiYLiA8Yj7qtIDqs4Q8L2I+64qUIOuqheyEuOyEnCAz7KCI7J2YIOuP
hOyepSAxNOyiheydtOupsCwg7JuQ67O47J2AIOydmOyhtO2VmOuKlCDsqr0g7Lm065Oc7JeQ66eM
IOyggeqzoCDrsJjrjIAg67Cp7Zal7J2AIOqzhOyCsO2VnCDqsoPsnbTri6QuIOydtCDtjIzsnbzs
nYAgPGNvZGU+X29udG9sb2d5L2dyYXBoLmpzb248L2NvZGU+7J2YIOqxsOyauOydtOuLpCDigJQg
7IaQ7Jy866GcIOqzoOy5mOyngCDrp5Dqs6AgPGNvZGU+cHl0aG9uIF9vbnRvbG9neS9yZW5kZXJf
dmlldy5weTwvY29kZT7roZwg64uk7IucIOunjOuToOuLpC48L3A+YDsNCiQoJyNkZXRhaWwnKS5p
bm5lckhUTUw9aDskKCcjZGV0YWlsJykucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtZ29dJykuZm9y
RWFjaChhPT5hLm9uY2xpY2s9KCk9PntyZXZlYWwoYS5kYXRhc2V0LmdvKTtzaG93KGEuZGF0YXNl
dC5nbyl9KX0NCiQoJyNxJykub25pbnB1dD1lPT57Y29uc3QgcT1lLnRhcmdldC52YWx1ZS50cmlt
KCkudG9Mb3dlckNhc2UoKTtpZighcSl7YnVpbGQoKTtyZXR1cm59Y29uc3QgaGl0cz1PYmplY3Qu
ZW50cmllcyhOKS5maWx0ZXIoKFtpZCxuXSk9PmlkLmluY2x1ZGVzKHEpfHxuLnAudG9Mb3dlckNh
c2UoKS5pbmNsdWRlcyhxKXx8bi5hbC5zb21lKGE9PmEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhx
KSkpO2NvbnN0IHQ9JCgnI3RyZWUnKTt0LmlubmVySFRNTD1gPGRpdiBzdHlsZT0icGFkZGluZzo0
cHggOHB4O2NvbG9yOnZhcigtLW11dGUpO2ZvbnQtc2l6ZToxMnB4Ij4ke2hpdHMubGVuZ3Rofeqx
tDwvZGl2PmA7Zm9yKGNvbnN0IFtpZCxuXSBvZiBoaXRzLnNsaWNlKDAsMjAwKSl7Y29uc3QgZWw9
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZWwuaW5uZXJIVE1MPWA8ZGl2IGNsYXNzPSJu
IiBkYXRhLWlkPSIke2lkfSI+PHNwYW4gY2xhc3M9ImNvZGUiPiR7ZXNjKG4uY3x8JycpfTwvc3Bh
bj48c3BhbiBjbGFzcz0ibmFtZSIgdGl0bGU9IiR7ZXNjKG4ucCl9Ij4ke2VzYyhuLnApfTwvc3Bh
bj4ke2JhZGdlKG4pfTwvZGl2PmA7ZWwuZmlyc3RDaGlsZC5vbmNsaWNrPSgpPT5zaG93KGlkKTt0
LmFwcGVuZENoaWxkKGVsKX19Ow0KYnVpbGQoKTtob21lKCk7DQo8L3NjcmlwdD48L2JvZHk+PC9o
dG1sPiIiIg0KDQppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOg0KICAgIG1haW4oKQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/requirements.txt","encoding":"base64","size":14,"runtimeSha256":"0969da99a0bc2a1b71ed50584560f4588a37567ac63af3ddbaf3c4617ca5621a","normalizedSha256":"0969da99a0bc2a1b71ed50584560f4588a37567ac63af3ddbaf3c4617ca5621a"} -->
```base64
UHlZQU1MPT02LjAuMwo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/files/validate.py","encoding":"base64","size":59326,"runtimeSha256":"d80fe0ce4d8e2a20f6063b7f62f680d37e1cbd9d10d4b75d9da318ed215ec8de","normalizedSha256":"01d8007c5a41b760ce015653bc0cc5ae6137da2234158d8f30dd00e552f6491e"} -->
```base64
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCiIiIklSSVMg7Jio7Yao66Gc7KeAIOqygOymneq4sCDi
gJQg66qF7IS47IScKElSSVMt7Jio7Yao66Gc7KeALm1kKSA17KCI7J2YIOqygOymnSAz7Li1ICsg
6riw6rOEIOqygOyCrCAxNOyiheydhCDqt7jrjIDroZwg6rWs7ZiE7ZWcIOydveq4sCDsoITsmqkg
64+E6rWsLg0KDQrsgqzsmqnrspUNCiAgcHl0aG9uIF9vbnRvbG9neS92YWxpZGF0ZS5weSAgICAg
ICAgICAgICAgICAgICAgICAgIyDsoITssrQNCiAgcHl0aG9uIF9vbnRvbG9neS92YWxpZGF0ZS5w
eSAtLXNjb3BlICJSMDEt7Jet7ZWg7J2066aEKFJvbGVOYW1lKSIgICAjIOuylOychCDsoJztlZwg
KOyekeyXheqzteqwhCDro6jtirgg6riw7KSAIOyDgeuMgOqyveuhnCDsoJHrkZApDQoNCuyeheug
pSjsoITrtoAg7J296riw66eMIO2VnOuLpCkNCiAgX29udG9sb2d5L2dyYXBoLmpzb24gwrcg6rCB
IOuFuOuTnCBBR0VOVFMubWQg66i466as66eQKGJ1aWxkX2dyYXBoLnJlYWRfZnJvbnRtYXR0ZXIp
IMK3IO2MjOydvOyLnOyKpO2FnA0KICBfb250b2xvZ3kvcmVnaXN0cnkueW1sIMK3IOuPmeqysCDr
qqnroZ0oYnVpbGRfZ3JhcGguRlJPWkVOX1JFTCArIFIg7Y+0642UKQ0KICBfYWdlbnQvY2xhdWRl
L3Byb2plY3RzLyovbWVtb3J5LyoubWQgKOqygOyCrCAjMTIpIMK3IOy1nOyLoCBgX2NsZWFudXAv
66as7Y+s7Yq4Lyot67aE66WYLSoubWRgIO2MkOygle2RnCAo6rKA7IKsICMxM8K3IzE0IO2bhOuz
tCDrqqnroZ0pDQrstpzroKUo7Jyg7J287ZWcIOyTsOq4sCkNCiAgX2NsZWFudXAv66as7Y+s7Yq4
L1lZWVktTU0tREQt6rKA7KadLTzrspTsnIQ+Lm1kDQoNCuybkOy5mQ0KICAtIOydtOumhCDsoJXq
t5zsi53snYAg66qF7IS47IScIDUtMSDruJTroZ0oYnVpbGRfZ3JhcGgubG9hZF9uYW1pbmcp66eM
IOyTtOuLpC4g7J20IO2MjOydvOydgCDsnpDquLAg7KCV6rec7Iud7J2EIOqwluyngCDslYrripTr
i6QocmUg66+47IKs7JqpKS4NCiAgLSDqsoDsgqwg67KI7Zi4KCMxfiMxNCnsmYAg7Li1KDEg7ZiV
7IudIC8gMiDsoJXtlakgLyAzIOq3nOy5mSnsnYAg66qF7IS47IScIDUtMyDtkZzsl5Ag6rOg7KCV
LiAz7Li1IOyLpO2MqOuKlCDsnpDrj5kg7IiY7KCVIOyXhuydtCAi7Lap64+M7ZGcIOy0iOyViCDt
m4Trs7Qi66Gc66eMIOyYrOumsOuLpC4NCiAgLSDslYTsp4Eg7Lm065Oc7JeQIGByZWxhdGlvbnM6
YOqwgCDqsbDsnZgg7JeG7Jy866+A66GcICM0wrcjNcK3IzbCtyMxMcK3IzEyIOulmOuKlCDrjIDs
g4HsnbQgMOqxtOydtOuptCAi6rKA7IKsIOuMgOyDgSDsl4bsnYwi7Jy866GcIOygleynge2VmOqy
jCDrs7Tqs6DtlZzri6QuDQogIC0g7ZWp66WYOiDri6Trpbgg7KCQ6rKAIOuPhOq1rOqwgCBgcnVu
X2NoZWNrcyhzY29wZSlgIOulvCBpbXBvcnQg7ZW0IOyekOq4sCDrpqztj6ztirgg64Gd7JeQIOqy
gOyCrCDsmpTslb0g7ZGc66W8IOu2meydvCDsiJgg7J6I64ukKOq3uOuVjOuKlCDsnbQg7YyM7J28
7J20IOumrO2PrO2KuOulvCDsk7Dsp4Ag7JWK64qU64ukKS4NCiIiIg0KaW1wb3J0IGFyZ3BhcnNl
DQppbXBvcnQgZGF0ZXRpbWUNCmltcG9ydCBpbw0KaW1wb3J0IGpzb24NCmltcG9ydCBzeXMNCmZy
b20gY29sbGVjdGlvbnMgaW1wb3J0IENvdW50ZXIsIGRlZmF1bHRkaWN0DQpmcm9tIHBhdGhsaWIg
aW1wb3J0IFBhdGgNCg0KaW1wb3J0IHlhbWwNCg0KX3N0ZG91dCA9IHN5cy5zdGRvdXQgPSBpby5U
ZXh0SU9XcmFwcGVyKHN5cy5zdGRvdXQuYnVmZmVyLCBlbmNvZGluZz0idXRmLTgiLCBlcnJvcnM9
InJlcGxhY2UiKQ0Kc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihQYXRoKF9fZmlsZV9fKS5yZXNvbHZl
KCkucGFyZW50KSkNCmltcG9ydCBidWlsZF9ncmFwaCBhcyBiZyAgIyBub3FhOiBFNDAyICAo6rCZ
7J2AIO2PtOuNlOydmCDsu7TtjIzsnbzrn6wg4oCUIOygleq3nOyLncK37Iqk7LqUwrfrqLjrpqzr
p5Ag7ZWo7IiYIOyerOyCrOyaqSkNCg0KaWYgc3lzLnN0ZG91dCBpcyBub3QgX3N0ZG91dDogICAg
ICAjIGJ1aWxkX2dyYXBoIOqwgCBpbXBvcnQg7IucIHN0ZG91dCDsnYQg7ZWcIOuyiCDrjZQg6rCQ
7Iu864ukIOKAlCDqt7gg656Y7Y2866W8IOuyhO2NvOyXkOyEnCDrlrzslrQo64ur7KeAIOyViuqz
oCkg7JuQ656YIOqyg+ycvOuhnCDrs7Xqt4ANCiAgICBzeXMuc3Rkb3V0LmRldGFjaCgpDQogICAg
c3lzLnN0ZG91dCA9IF9zdGRvdXQNCg0KUk9PVCA9IGJnLlJPT1QNCk9OVCA9IGJnLk9OVA0KUkVQ
T1JUX0RJUiA9IGJnLlJFUE9SVF9ESVINCkdSQVBIID0gT05UIC8gImdyYXBoLmpzb24iDQpSRUdJ
U1RSWSA9IE9OVCAvICJyZWdpc3RyeS55bWwiDQpNRU1PUllfUk9PVCA9IFJPT1QgLyAiX2FnZW50
IiAvICJjbGF1ZGUiIC8gInByb2plY3RzIiAgICMg6riw67O46rCSKO2BtOuhnOuTnOy9lOuTnCku
IOyLpOygnCDrqqnroZ3snYAg65Ox66Gd67aAIG1lbW9yeV9zdG9yZXMg6rCAIOyasOyEoA0KDQoN
CmRlZiBtZW1vcnlfcm9vdHMoKToNCiAgICAiIiLqsoDsgqwgIzEy6rCAIO2bkeydhCDquLDslrUg
67+M66asIOuqqeuhnSDigJQg65Ox66Gd67aAIGBtZW1vcnlfc3RvcmVzYCjsl5DsnbTsoITtirgg
7KSR66a9OiDsvZTrjbHsiqQg65OxIOuLpOuluCDsoIDsnqXshozripQg7ZWcIOykhCDstpTqsIDr
oZwg7Y647J6FKS4iIiINCiAgICByb290cyA9IFtdDQogICAgdHJ5Og0KICAgICAgICBpbXBvcnQg
eWFtbCBhcyBfeQ0KICAgICAgICByZWcgPSBfeS5zYWZlX2xvYWQoKFJPT1QgLyAiX29udG9sb2d5
IiAvICJyZWdpc3RyeS55bWwiKS5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpIG9yIHt9DQog
ICAgICAgIGZvciBpdGVtIGluIHJlZy5nZXQoIm1lbW9yeV9zdG9yZXMiKSBvciBbXToNCiAgICAg
ICAgICAgIHAgPSBST09UIC8gc3RyKGl0ZW0uZ2V0KCJwYXRoIiwgIiIpKQ0KICAgICAgICAgICAg
aWYgaXRlbS5nZXQoInBhdGgiKSBhbmQgcC5pc19kaXIoKToNCiAgICAgICAgICAgICAgICByb290
cy5hcHBlbmQocCkNCiAgICBleGNlcHQgRXhjZXB0aW9uOg0KICAgICAgICByb290cyA9IFtdDQog
ICAgcmV0dXJuIHJvb3RzIG9yIFtNRU1PUllfUk9PVF0NClRPREFZID0gZGF0ZXRpbWUuZGF0ZS50
b2RheSgpLmlzb2Zvcm1hdCgpDQpOQU1JTkcsIFRBR19LSU5EUyA9IGJnLk5BTUlORywgYmcuVEFH
X0tJTkRTDQoNCiMg4pSA4pSAIOuqheyEuOyEnCDri6vtnowg66qp66GdIOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgA0KVFlQRVNfMTcgPSB7InJvbGUiLCAiZG9tYWluIiwgImdyb3VwIiwgInByb2plY3Qi
LCAic3RlcCIsICJ0YXNrIiwgInV0aWwiLCAiZHJhd2VyIiwNCiAgICAgICAgICAgICJpbnN0cnVj
dGlvbiIsICJkb2N1bWVudCIsICJsZWRnZXIiLCAibWVtb3J5IiwNCiAgICAgICAgICAgICJwZXJz
b24iLCAiYWNjb3VudCIsICJzdG9yZSIsICJ0b29sIiwgInJ1bGUiLCAiZGVjaXNpb24ifQ0KUkVM
QVRJT05TXzE0ID0geyJjb250YWlucyIsICJjYW5vbmljYWwiLCAidHJ1dGhfYXQiLCAidGVtcGxh
dGUiLCAibWlycm9yX29mIiwgInByb21vdGVkX2Zyb20iLCAib3duZXIiLA0KICAgICAgICAgICAg
ICAgICJleHRlbmRzIiwgInNpYmxpbmdfZ3JvdXAiLCAic3RvcmVkX2F0IiwgInVzZXNfdG9vbCIs
ICJnb3Zlcm5lZF9ieSIsICJpbnZvbHZlcyIsICJhYm91dCJ9DQpTQ0hFTUVTID0geyJmdW5uZWwi
LCAibGFkZGVyIiwgInRhc2s1IiwgInRvcGljMyIsICJib29rIiwgIm5vbmUifQ0KTElGRUNZQ0xF
UyA9IHsiYWN0aXZlIiwgImRvcm1hbnQiLCAiYXJjaGl2ZWQiLCAicXVhcmFudGluZWQifQ0KSURf
QUxQSEFCRVQgPSBzZXQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIpDQpM
RVZFTF9MRVRURVIgPSB7IlIiOiAicm9sZSIsICJEIjogImRvbWFpbiIsICJQIjogInByb2plY3Qi
LCAiUyI6ICJzdGVwIiwgIlQiOiAidGFzayJ9DQpDSElMRF9MRVZFTCA9IHsicm9sZSI6ICJkb21h
aW4iLCAiZG9tYWluIjogInByb2plY3QiLCAicHJvamVjdCI6ICJzdGVwIiwgInN0ZXAiOiAidGFz
ayIsICJ0YXNrIjogTm9uZX0NCiMg7KKM7ZGcIOKGkiBTIOyEnOuejSDrsojtmLggKOq5lOuVjOq4
sMK37IKs64uk66asIOqwgeqwgeydmCDrj4TrqZTsnbgg6rec7LmZ7JeQ7IScIOygle2VnCDshJzr
no0g7ZGcKQ0KRlVOTkVMX0RSQVdFUiA9IHswOiAxLCAxOiAyLCAyOiAyLCAzOiAyLCA0OiAyLCA1
OiAzLCA2OiAzLCA3OiA0LCA4OiA0LCA5OiA0LCAxMDogNCwgMTE6IDR9DQpMQURERVJfRFJBV0VS
ID0gezA6IDEsIDE6IDIsIDI6IDIsIDM6IDIsIDQ6IDMsIDU6IDMsIDY6IDQsIDc6IDUsIDg6IDUs
IDk6IDUsIDEwOiA1LCAxMTogNX0NCk1PVkVfSlVER0VNRU5UUyA9IHsi6rCc66qFIiwgIuydtOuP
mSIsICLqsqnrpqwiLCAi67O06rSAIn0NCk9VVF9PRl9PTlRPTE9HWV9VVElMUyA9IHsiX2FnZW50
IiwgIl90cmFzaCJ9ICAgIyDrqoXshLjshJwgMS0xICLsmKjthqjroZzsp4Ag67CWIg0KQVVUT19P
VVRQVVRfRElSUyA9IHsiX2RyeS1ydW4iLCAiX3Ntb2tlIiwgIl9fcHljYWNoZV9fIn0gICAjIOy9
lOuTnOqwgCDsiqTsiqTroZwg66eM65Ok6rOgIOyngOyasOuKlCDstpzroKUg7Y+0642UIOKAlCDq
soDsgqwgIzMg66m07KCcKOuqheyEuOyEnCA1LTMgIzMsIFE5IDIwMjYtMDktMDQpDQpNVUxUSV9U
QUdfS0lORCA9ICLshoztlITtirjsm6jslrQv7IKw7Lac66y8IOyiheulmCIgICAjIOydtCDsooXr
pZjrp4wg67O17IiYIOuzkeq4sCDtl4jsmqko66Oo7Yq4IOOAiO2RnOq4sCDquLDtmLgg6rec7LmZ
44CJLCBRMiAyMDI2LTA5LTA0KQ0KQ0hFQ0tTID0gWyAgIyAo67KI7Zi4LCDsnbTrpoQsIOq3vOqx
sCDqt5zsuZlJRCwg7Li1KQ0KICAgICgxLCAi7Y+0642U66qF7J20IDUtMSDsoJXqt5zsi53sl5Ag
66ee64qU6rCAICguTk7Ct+q3uOujuSDsoJHrkZDCt1AwWCDtj6ztlagpIiwgIkctMDR+Ry0xMSwg
Ry0xOCwgQy0wNyIsIDMpLA0KICAgICgyLCAi67CY7KCE6rCBIO2DnOq3uOqwgCAxMeyihSDslYjs
nbjqsIAsIO2VnCDtj7TrjZQg7ZWcIOyiheulmOyduOqwgCIsICJHLTE3LCBDLTA2IiwgMyksDQog
ICAgKDMsICLsnITqs4Qg7Y+0642UwrfsnKDti7jrp4jri6QgQUdFTlRTLm1kICsgQEFHRU5UUy5t
ZCDqu43rjbDquLAgQ0xBVURFLm1kIOynnSAoQk9NIOustOyLnCkiLCAiRy0wMSwgRy0xMyIsIDIp
LA0KICAgICg0LCAiY2Fub25pY2Fswrd0ZW1wbGF0ZcK3cHJvbW90ZWRfZnJvbSDrjIDsg4HsnbQg
7Iuk7KG07ZWY64qU6rCAIiwgIuygleuzuCA1NeqxtCwgQy0xMMK3Qy0zNMK3Qy0zOCIsIDIpLA0K
ICAgICg1LCAibWlycm9yX29mIOybkOuzuOuztOuLpCDqsbDsmrjsnbQg7Jik656Y65CQ64qU6rCA
ICjsnqzsg53shLEg6rK96rOgKSIsICLqsbDsmrgg7J6s7IOd7ISxIOq3nOy5mSIsIDIpLA0KICAg
ICg2LCAiZnVubmVswrdsYWRkZXIgUOuKlCBwcm9tb3RlZF9mcm9t7J20IOyeiOuKlOqwgCIsICJQ
IOy2nOyDnSDsobDqsbQiLCAzKSwNCiAgICAoNywgIuu5iCBTIOyEnOuejeydtCB0cnV0aOydmCDt
mITsnqwg7KKM7ZGc67O064ukIOyVnuyEnOuKlOqwgCIsICLsooztkZzihpTshJzrno0g7ZGcIiwg
MyksDQogICAgKDgsICJsYWRkZXIg64+E66mU7J247JeQ7IScIFAg67KI7Zi4ID0gTSDrsojtmLgg
KyAxIOyduOqwgCIsICLsgqzri6Trpqwg64+E66mU7J24IOq3nOy5mSIsIDMpLA0KICAgICg5LCAi
c2libGluZ19ncm91cCDslYjsl5DshJwgRCDrsojtmLgg6rO17Jygwrftg5zqt7gg6rWs67aE7J20
IOq3nOy5meuMgOuhnOyduOqwgCIsICJHLTA1IiwgMyksDQogICAgKDEwLCAi7Jyg7Yu4IO2PtOuN
lCDsnbTrpoTsnbQgX+yYgeyWtOyGjOusuOyekOyduOqwgCIsICJHLTE0LCBDLTIzIiwgMyksDQog
ICAgKDExLCAic3RvcmVkX2F0wrd1c2VzX3Rvb2wg64yA7IOB7J20IOyLpOyhtO2VmOqzoCDsiqTt
gazrpr3tirgg7JWIIElSSVMg6rK966Gc6rCAIO2YhOyerCDtj7TrjZTsmYAg7J287LmY7ZWY64qU
6rCAIiwgIuujqO2KuOygleuzuC0yMSwgQy0wMSIsIDIpLA0KICAgICgxMiwgImFib3V0IOq4sOyW
teydtCDqsIDrpqztgqTripQg64W465Oc6rCAIOyLpOyhtO2VmOqzoCDquLDslrUg7YyM7J287J20
IOq3uCDrhbjrk5zsnZgg7ZiE7J6sIOyKpOy9lO2UhCDtj7TrjZTsl5Ag7J6I64qU6rCAIiwgIkct
MjIsIEMtNDgiLCAyKSwNCiAgICAoMTMsICJmcm96ZW4g64W465Oc6rCAIOydtOuPmcK36rCc66qF
IO2bhOuztCDrqqnroZ3sl5Ag7JeG64qU6rCAIiwgIuuPmeqysCDrqqnroZ0g6rec7LmZIiwgMyks
DQogICAgKDE0LCAic2Vuc2l0aXZlIOuFuOuTnOqwgCDsnbTrj5nCt+qzteqwnMK37JqU7JW9IOqz
hO2ajeyXkCDsl4bripTqsIAiLCAi66qF7IS47IScIDQtMSIsIDMpLA0KXQ0KDQoNCmNsYXNzIFJl
c3VsdDoNCiAgICAiIiLqsoDsgqwg7ZWY64KY7J2YIOqysOqzvC4gdGFyZ2V0cz3rjIDsg4Eg7IiY
LCBmYWlscz3si6TtjKgg66qp66GdLCB1bnJlYWRhYmxlPe2MkOuPhSDrtojriqUo7Iuk7Yyo66Gc
IOyEuOyngCDslYrsnYwpLCBub3RlPe2VnCDspIQg67mE6rOgLiIiIg0KDQogICAgZGVmIF9faW5p
dF9fKHNlbGYsIG5vLCBsYXllciwgcnVsZSk6DQogICAgICAgIHNlbGYubm8sIHNlbGYubGF5ZXIs
IHNlbGYucnVsZSA9IG5vLCBsYXllciwgcnVsZQ0KICAgICAgICBzZWxmLnRhcmdldHMgPSAwDQog
ICAgICAgIHNlbGYuZmFpbHMgPSBbXSAgICAgICAgIyAo6rK966GcLCDqt7zqsbAg6rec7LmZSUQs
IO2VnCDspIQg7J207JygKQ0KICAgICAgICBzZWxmLnVucmVhZGFibGUgPSBbXSAgICMgKOqyveuh
nCwg7J207JygKQ0KICAgICAgICBzZWxmLmluZm9zID0gW10gICAgICAgICMgKOqyveuhnCwg7ZWc
IOykhCDshKTrqoUpIOKAlCDthrXqs7ztlZjrkJgg7IKs656M7J20IOyVjOyVhCDrkZgg6rKDLiDs
i6TtjKjroZwg7IS47KeAIOyViuuKlOuLpC4NCiAgICAgICAgc2VsZi5ub3RlID0gIiINCg0KICAg
IGRlZiBmYWlsKHNlbGYsIHBhdGgsIHJlYXNvbiwgcnVsZT1Ob25lKToNCiAgICAgICAgc2VsZi5m
YWlscy5hcHBlbmQoKHN0cihwYXRoKSwgcnVsZSBvciBzZWxmLnJ1bGUsIHJlYXNvbikpDQoNCiAg
ICBkZWYgaW5mbyhzZWxmLCBwYXRoLCByZWFzb24pOg0KICAgICAgICBzZWxmLmluZm9zLmFwcGVu
ZCgoc3RyKHBhdGgpLCByZWFzb24pKQ0KDQogICAgQHByb3BlcnR5DQogICAgZGVmIHBhc3NlZChz
ZWxmKToNCiAgICAgICAgcmV0dXJuIG1heChzZWxmLnRhcmdldHMgLSBsZW4oc2VsZi5mYWlscykg
LSBsZW4oc2VsZi51bnJlYWRhYmxlKSwgMCkNCg0KICAgIEBwcm9wZXJ0eQ0KICAgIGRlZiBub190
YXJnZXQoc2VsZik6DQogICAgICAgIHJldHVybiBzZWxmLnRhcmdldHMgPT0gMA0KDQoNCiMg4pSA
4pSAIOqzteyaqSDrj4TsmrDrr7gg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoN
CmRlZiByZWwocCk6DQogICAgcmV0dXJuIHN0cihQYXRoKHApLnJlbGF0aXZlX3RvKFJPT1QpKSBp
ZiBQYXRoKHApLmlzX2Fic29sdXRlKCkgZWxzZSBzdHIocCkNCg0KDQpkZWYgaW5fc2NvcGUocmVs
cGF0aCwgc2NvcGUpOg0KICAgIGlmIG5vdCBzY29wZToNCiAgICAgICAgcmV0dXJuIFRydWUNCiAg
ICByID0gc3RyKHJlbHBhdGgpLnJlcGxhY2UoIi8iLCAiXFwiKQ0KICAgIHJldHVybiByID09IHNj
b3BlIG9yIHIuc3RhcnRzd2l0aChzY29wZSArICJcXCIpDQoNCg0KZGVmIHNjb3BlX3RvdWNoZXMo
cmVscGF0aCwgc2NvcGUpOg0KICAgICIiIuyKpOy6lCDspJEg7J20IO2PtOuNlOuhnCDrgrTroKTq
sIDslbwg7ZWY64qU6rCAIOKAlCDrspTsnITsnZgg7KGw7IOB7J206rGw64KYIOuylOychCDslYgu
IiIiDQogICAgaWYgbm90IHNjb3BlOg0KICAgICAgICByZXR1cm4gVHJ1ZQ0KICAgIHIgPSBzdHIo
cmVscGF0aCkucmVwbGFjZSgiLyIsICJcXCIpDQogICAgcmV0dXJuIGluX3Njb3BlKHIsIHNjb3Bl
KSBvciBzY29wZS5zdGFydHN3aXRoKHIgKyAiXFwiKQ0KDQoNCmRlZiBiYXNlbmFtZV9ub19wYXJl
bihuYW1lKToNCiAgICAiIiJgUDAxLeyYiOyLnCDsnpHsl4UoRXhhbXBsZSBXb3JrKSDjgJbtg5zq
t7jjgJdgIOKGkiBgUDAxLeyYiOyLnCDsnpHsl4VgICjsmIHrrLgg6rSE7Zi4wrftg5zqt7gg7KCc
6rGwLCDsoJXqt5zsi50g7JeG7J20KS4iIiINCiAgICBzID0gbmFtZQ0KICAgIGlmICLjgJciIGlu
IHMgYW5kIHMuc3RhcnRzd2l0aCgi44CWIik6ICAgICAgICAgICMg6re466O5IOygkeuRkCDsoJzq
sbANCiAgICAgICAgcyA9IHNbcy5pbmRleCgi44CXIikgKyAxOl0NCiAgICBpZiAiKCIgaW4gczoN
CiAgICAgICAgcyA9IHNbOnMuaW5kZXgoIigiKV0NCiAgICBpZiAi44CWIiBpbiBzOg0KICAgICAg
ICBzID0gc1s6cy5pbmRleCgi44CWIildDQogICAgcmV0dXJuIHMuc3RyaXAoKQ0KDQoNCmRlZiBz
dHJpcF90YWdzKG5hbWUpOg0KICAgIG91dCwgZGVwdGggPSBbXSwgMA0KICAgIGZvciBjaCBpbiBu
YW1lOg0KICAgICAgICBpZiBjaCA9PSAi44CWIjoNCiAgICAgICAgICAgIGRlcHRoICs9IDENCiAg
ICAgICAgZWxpZiBjaCA9PSAi44CXIjoNCiAgICAgICAgICAgIGRlcHRoID0gbWF4KGRlcHRoIC0g
MSwgMCkNCiAgICAgICAgZWxpZiBkZXB0aCA9PSAwOg0KICAgICAgICAgICAgb3V0LmFwcGVuZChj
aCkNCiAgICByZXR1cm4gIiIuam9pbihvdXQpLnN0cmlwKCkNCg0KDQpkZWYgc2NvcGVfbmFtZV9v
ZihyZWxwYXRoKToNCiAgICAiIiLtgbTroZzrk5zsvZTrk5wg7ZSE66Gc7KCd7Yq4IOyKpOy9lO2U
hCDtj7TrjZQg7J2066aEIOq3nOy5mTog7KCI64yA6rK966Gc7J2YIOyYgeyIq+yekCDsmbgg66y4
7J6Q66W8IOyghOu2gCAnLSfroZwuIGBDOlxcSVJJU2Ag4oaSIGBDLS1JUklTYC4iIiINCiAgICBh
YnNfcGF0aCA9IHN0cihST09UKSBpZiByZWxwYXRoIGluICgiIiwgIi4iKSBlbHNlIHN0cihST09U
IC8gcmVscGF0aCkNCiAgICByZXR1cm4gIiIuam9pbihjaCBpZiBjaC5pc2FzY2lpKCkgYW5kIGNo
LmlzYWxudW0oKSBlbHNlICItIiBmb3IgY2ggaW4gYWJzX3BhdGgpDQoNCg0KZGVmIGRpZ2l0c19h
ZnRlcih0ZXh0LCBtYXJrZXIpOg0KICAgICIiImBtYXJrZXJgIOuSpOyXkCDrsJTroZwg7J207Ja0
7KeA64qUIOyLreynhOyImCjqs7XrsLEg7ZeI7JqpKeulvCBpbnQg66GcLiDsl4bsnLzrqbQgTm9u
ZS4gKOygleq3nOyLnSDsl4bsnbQpIiIiDQogICAgaSA9IHRleHQuZmluZChtYXJrZXIpDQogICAg
aWYgaSA8IDA6DQogICAgICAgIHJldHVybiBOb25lDQogICAgaiA9IGkgKyBsZW4obWFya2VyKQ0K
ICAgIHdoaWxlIGogPCBsZW4odGV4dCkgYW5kIHRleHRbal0gPT0gIiAiOg0KICAgICAgICBqICs9
IDENCiAgICBrID0gag0KICAgIHdoaWxlIGsgPCBsZW4odGV4dCkgYW5kIHRleHRba10uaXNkaWdp
dCgpOg0KICAgICAgICBrICs9IDENCiAgICByZXR1cm4gaW50KHRleHRbajprXSkgaWYgayA+IGog
ZWxzZSBOb25lDQoNCg0KZGVmIGJhcihkb25lLCB0b3RhbCwgd2lkdGg9MjApOg0KICAgIGlmIHRv
dGFsIDw9IDA6DQogICAgICAgIHJldHVybiAiWyIgKyAi4paRIiAqIHdpZHRoICsgIl0gICDigJQl
Ig0KICAgIHBjdCA9IGRvbmUgKiAxMDAgLy8gdG90YWwNCiAgICBmaWxsZWQgPSBkb25lICogd2lk
dGggLy8gdG90YWwNCiAgICByZXR1cm4gIlsiICsgIuKWiCIgKiBmaWxsZWQgKyAi4paRIiAqICh3
aWR0aCAtIGZpbGxlZCkgKyAiXSB7OjNkfSUiLmZvcm1hdChwY3QpDQoNCg0KZGVmIGlzX2VtcHR5
X2RyYXdlcihmb2xkZXIpOg0KICAgICIiIkFHRU5UUy5tZMK3Q0xBVURFLm1kIOyZuOyXkCDslYTr
rLTqsoPrj4Qg7JeG7Jy866m0IOu5iCDshJzrno0uIiIiDQogICAgdHJ5Og0KICAgICAgICByZXR1
cm4gYWxsKHAubmFtZSBpbiAoIkFHRU5UUy5tZCIsICJDTEFVREUubWQiKSBmb3IgcCBpbiBmb2xk
ZXIuaXRlcmRpcigpKQ0KICAgIGV4Y2VwdCBPU0Vycm9yOg0KICAgICAgICByZXR1cm4gVHJ1ZQ0K
DQoNCiMg4pSA4pSAIO2MjOydvOyLnOyKpO2FnCDsnITqs4Qg7Iqk7LqUICjqt7jrnpjtlITsl5Ag
7JWIIOyLpOumsCDsnITrsJgg7Y+0642U6rmM7KeAIOuztOugpOqzoCDrj4Xrpr0g7Iqk7LqUKSDi
lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KZGVmIHdhbGtfaGllcmFyY2h5KHNjb3BlKToN
CiAgICAiIiJJUklTIOychOqzhCDtj7TrjZQoUi9EL1AvUy9UKcK37Jyg7Yu4wrfshJzrno3snYQg
7Iqk7LqULiDqsIEg7ZWt66qpID0gZGljdChwYXRoLCBraW5kLCBsZXZlbCwgbmFtZSwgZXhwZWN0
ZWQsIHBhcmVudF9sZXZlbCkuIiIiDQogICAgaXRlbXMgPSBbXQ0KDQogICAgZGVmIHZpc2l0KGZv
bGRlciwgbGV2ZWwpOg0KICAgICAgICByZWxwID0gcmVsKGZvbGRlcikNCiAgICAgICAgY2hpbGRf
bGV2ZWwgPSBDSElMRF9MRVZFTC5nZXQobGV2ZWwpDQogICAgICAgIGlmIGJnLmZyZWVfem9uZV9v
Zihmb2xkZXIpOg0KICAgICAgICAgICAgcmV0dXJuICAgIyDsnpDsnKDqtazsl60g64K067aA64qU
IOyYqO2GqOuhnOyngCDrsJYNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgc3VicyA9IHNvcnRl
ZChwIGZvciBwIGluIGZvbGRlci5pdGVyZGlyKCkgaWYgcC5pc19kaXIoKSkNCiAgICAgICAgZXhj
ZXB0IE9TRXJyb3I6DQogICAgICAgICAgICByZXR1cm4NCiAgICAgICAgZm9yIHAgaW4gc3ViczoN
CiAgICAgICAgICAgIG4gPSBwLm5hbWUNCiAgICAgICAgICAgIGlmIG4gaW4gYmcuU0tJUF9ESVJT
IG9yIG4uc3RhcnRzd2l0aCgiLiIpIG9yIG4uZW5kc3dpdGgoIi7soJXrpqzrsLHsl4UiKToNCiAg
ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgaWYgbm90IHNjb3BlX3RvdWNoZXMo
cmVsKHApLCBzY29wZSk6DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIGlm
IG4uc3RhcnRzd2l0aCgiXyIpOg0KICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZCh7InBhdGgi
OiByZWwocCksICJraW5kIjogInV0aWwiLCAibGV2ZWwiOiAidXRpbCIsICJuYW1lIjogbiwgInBh
cmVudF9sZXZlbCI6IGxldmVsfSkNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAg
ICAgaWYgKHAgLyAiLmdpdCIpLmV4aXN0cygpIGFuZCBub3QgYmcuY29kZV9vZihuKToNCiAgICAg
ICAgICAgICAgICBjb250aW51ZSAgICMg7KSR7LKpIOy9lOuTnCDsoIDsnqXshowg67+M66asKOy9
lOuTnCDsl4bripQg7J2066aEKQ0KICAgICAgICAgICAgY29kZSA9IGJnLmNvZGVfb2YobikNCiAg
ICAgICAgICAgIGlmIGNvZGU6DQogICAgICAgICAgICAgICAgbHZsID0gTEVWRUxfTEVUVEVSW2Nv
ZGVbMF1dDQogICAgICAgICAgICAgICAgaXRlbXMuYXBwZW5kKHsicGF0aCI6IHJlbChwKSwgImtp
bmQiOiAiaGllciIsICJsZXZlbCI6IGx2bCwgIm5hbWUiOiBuLCAiY29kZSI6IGNvZGUsDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiBjaGlsZF9sZXZlbCwgInBhcmVu
dF9sZXZlbCI6IGxldmVsfSkNCiAgICAgICAgICAgICAgICBpZiBsdmwgaW4gQ0hJTERfTEVWRUwg
YW5kIENISUxEX0xFVkVMW2x2bF06DQogICAgICAgICAgICAgICAgICAgIHZpc2l0KHAsIGx2bCkN
CiAgICAgICAgICAgICAgICBlbGlmIGx2bCA9PSAidGFzayI6DQogICAgICAgICAgICAgICAgICAg
IHZpc2l0KHAsICJ0YXNrIikNCiAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgaXRl
bXMuYXBwZW5kKHsicGF0aCI6IHJlbChwKSwgImtpbmQiOiAiZHJhd2VyIiwgImxldmVsIjogImRy
YXdlciIsICJuYW1lIjogbiwgInBhcmVudF9sZXZlbCI6IGxldmVsfSkNCiAgICAjIOujqO2KuDog
UiDtj7TrjZQgKyDro6jtirgg7Jyg7Yu4DQogICAgZm9yIHAgaW4gc29ydGVkKHggZm9yIHggaW4g
Uk9PVC5pdGVyZGlyKCkgaWYgeC5pc19kaXIoKSk6DQogICAgICAgIG4gPSBwLm5hbWUNCiAgICAg
ICAgaWYgbiBpbiB7Im5vZGVfbW9kdWxlcyIsICIuZ2l0IiwgIl9fcHljYWNoZV9fIn0gb3Igbi5z
dGFydHN3aXRoKCIuIik6DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBpZiBub3Qgc2Nv
cGVfdG91Y2hlcyhuLCBzY29wZSk6DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBpZiBu
LnN0YXJ0c3dpdGgoIl8iKToNCiAgICAgICAgICAgIGlmIG4gbm90IGluIE9VVF9PRl9PTlRPTE9H
WV9VVElMUzoNCiAgICAgICAgICAgICAgICBpdGVtcy5hcHBlbmQoeyJwYXRoIjogbiwgImtpbmQi
OiAidXRpbCIsICJsZXZlbCI6ICJ1dGlsIiwgIm5hbWUiOiBuLCAicGFyZW50X2xldmVsIjogInJv
b3QifSkNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIGNvZGUgPSBiZy5jb2RlX29mKG4p
DQogICAgICAgIGlmIGNvZGU6DQogICAgICAgICAgICBpdGVtcy5hcHBlbmQoeyJwYXRoIjogbiwg
ImtpbmQiOiAiaGllciIsICJsZXZlbCI6IExFVkVMX0xFVFRFUltjb2RlWzBdXSwgIm5hbWUiOiBu
LCAiY29kZSI6IGNvZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJy
b2xlIiwgInBhcmVudF9sZXZlbCI6ICJyb290In0pDQogICAgICAgICAgICB2aXNpdChwLCBMRVZF
TF9MRVRURVJbY29kZVswXV0pDQogICAgcmV0dXJuIGl0ZW1zDQoNCg0KIyDilIDilIAg7Li1IDHC
tzIg7KCE7KCcIOqygOyCrCAoNS0yIO2RnOydmCDsmIjsi5wg7ZWt66qpOyAxNOyihSDri6vtnowg
66qp66GdIOuwluydtOudvCDrsojtmLgg7JeG7J2MKSDilIDilIDilIDilIDilIDilIDilIDilIDi
lIANCg0KZGVmIHByZWNoZWNrX2NhcmRzKG5vZGVzLCBzY29wZSk6DQogICAgIiIiMey4tSDtmJXs
i506IOuouOumrOunkCDtjIzsi7HCt+2VhOyImCDsho3shLHCt0lEIO2YleyLncK3SUQg7KSR67O1
wrd0eXBlL+uPhOyepS9zdGF0dXNfc2NoZW1lL2xpZmVjeWNsZSDtl4jsmqnqsJIuDQogICAgICAg
Muy4tSDsoJXtlak6IHRydXRoIO2MjOydvCDsi6TsobTCt2RyYXdlcnMg7Iuk7KG0wrftj7TrjZTr
qoUg7YOc6re44oaUdGFnc8K3YWxpYXNlc+yXkCDtmITsnqwg7J2066aEwrdjb2Rl4oaU7Y+0642U
66qFLiIiIg0KICAgIGYxID0gUmVzdWx0KCLtmJXsi50iLCAxLCAi66qF7IS47IScIDItMcK3Mi0y
wrc0LTEiKQ0KICAgIGYyID0gUmVzdWx0KCLsoJXtlakiLCAyLCAi66qF7IS47IScIDUtMiAy7Li1
IikNCiAgICBpZHMgPSBDb3VudGVyKCkNCiAgICBjYXJkcyA9IHt9DQogICAgZm9yIG5pZCwgbiBp
biBub2Rlcy5pdGVtcygpOg0KICAgICAgICBpZiBub3QgaW5fc2NvcGUoblsicGF0aCJdLCBzY29w
ZSk6DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBmMS50YXJnZXRzICs9IDENCiAgICAg
ICAgZjIudGFyZ2V0cyArPSAxDQogICAgICAgIGZvbGRlciA9IFJPT1QgLyBuWyJwYXRoIl0NCiAg
ICAgICAgZm0gPSBiZy5yZWFkX2Zyb250bWF0dGVyKGZvbGRlciAvICJBR0VOVFMubWQiKQ0KICAg
ICAgICBpZiBmbSBpcyBOb25lOg0KICAgICAgICAgICAgZjEuZmFpbChuWyJwYXRoIl0sICLrqLjr
pqzrp5Ag7JeG7J2MIOuYkOuKlCBZQU1MIO2MjOyLsSDsi6TtjKgiIGlmIChmb2xkZXIgLyAiQUdF
TlRTLm1kIikuZXhpc3RzKCkgZWxzZSAiQUdFTlRTLm1kIOyXhuydjCjsubTrk5wg7JeG7J2MKSIp
DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBjYXJkc1tuaWRdID0gZm0NCiAgICAgICAg
Y2FyZF9pZCA9IGZtLmdldCgiaWQiKQ0KICAgICAgICBpZHNbY2FyZF9pZF0gKz0gMQ0KICAgICAg
ICBwcm9ibGVtcyA9IFtdDQogICAgICAgIGZvciBrIGluICgiaWQiLCAidHlwZSIsICJjb2RlIiwg
ImxpZmVjeWNsZSIpOg0KICAgICAgICAgICAgaWYgayBub3QgaW4gZm06DQogICAgICAgICAgICAg
ICAgcHJvYmxlbXMuYXBwZW5kKGYi7ZWE7IiYIOyGjeyEsSBge2t9YCDriITrnb0iKQ0KICAgICAg
ICBpZiBuWyJ0eXBlIl0gaW4gKCJkb21haW4iLCAicHJvamVjdCIpIGFuZCBuWyJzdGF0dXNfc2No
ZW1lIl0gIT0gIm5vbmUiIGFuZCAic3RhdHVzX3NjaGVtZSIgbm90IGluIGZtOg0KICAgICAgICAg
ICAgcHJvYmxlbXMuYXBwZW5kKCLtlYTsiJgg7IaN7ISxIGBzdGF0dXNfc2NoZW1lYCDriITrnb0o
RMK3UCkiKQ0KICAgICAgICBpZiBuWyJ0eXBlIl0gPT0gInByb2plY3QiIGFuZCBuWyJzdGF0dXNf
c2NoZW1lIl0gIT0gIm5vbmUiIGFuZCBub3QgZm0uZ2V0KCJ0cnV0aCIpOg0KICAgICAgICAgICAg
cHJvYmxlbXMuYXBwZW5kKGYi7ZWE7IiYIOyGjeyEsSBgdHJ1dGhgIOuvuOq4sOyerChQLCDssrTq
s4Qge25bJ3N0YXR1c19zY2hlbWUnXX0pIOKAlCDsp4Tsi6Qg7IaM7IqkIOyLpOusvCDtjIzsnbwg
7JeG7J2MIikNCiAgICAgICAgaWYgaXNpbnN0YW5jZShjYXJkX2lkLCBzdHIpOg0KICAgICAgICAg
ICAgaWYgbm90IChjYXJkX2lkLnN0YXJ0c3dpdGgoImlyaXM6IikgYW5kIGxlbihjYXJkX2lkKSA9
PSAxMyBhbmQgc2V0KGNhcmRfaWRbNTpdKSA8PSBJRF9BTFBIQUJFVCk6DQogICAgICAgICAgICAg
ICAgcHJvYmxlbXMuYXBwZW5kKGYiaWQg7ZiV7IudIOychOuwmCBge2NhcmRfaWR9YCAoaXJpczog
KyDshozrrLjsnpAg7JiB7Iir7J6QIDjsnpApIikNCiAgICAgICAgaWYgZm0uZ2V0KCJ0eXBlIikg
bm90IGluIFRZUEVTXzE3Og0KICAgICAgICAgICAgcHJvYmxlbXMuYXBwZW5kKGYidHlwZSBge2Zt
LmdldCgndHlwZScpfWAg7J20IO2BtOuemOyKpCAxN+yihSDrsJYiKQ0KICAgICAgICBlbGlmIGZt
LmdldCgidHlwZSIpICE9IG5bInR5cGUiXToNCiAgICAgICAgICAgIHByb2JsZW1zLmFwcGVuZChm
InR5cGUgYHtmbS5nZXQoJ3R5cGUnKX1gIOKJoCDtj7TrjZQg7JyE7LmY7JeQ7IScIOycoOuPhO2V
nCBge25bJ3R5cGUnXX1gIikNCiAgICAgICAgaWYgZm0uZ2V0KCJzdGF0dXNfc2NoZW1lIiwgIm5v
bmUiKSBub3QgaW4gU0NIRU1FUzoNCiAgICAgICAgICAgIHByb2JsZW1zLmFwcGVuZChmInN0YXR1
c19zY2hlbWUgYHtmbS5nZXQoJ3N0YXR1c19zY2hlbWUnKX1gIOydtCA0LTIg7ZGc7JeQIOyXhuyd
jCIpDQogICAgICAgIGlmIGZtLmdldCgibGlmZWN5Y2xlIikgbm90IGluIExJRkVDWUNMRVM6DQog
ICAgICAgICAgICBwcm9ibGVtcy5hcHBlbmQoZiJsaWZlY3ljbGUgYHtmbS5nZXQoJ2xpZmVjeWNs
ZScpfWAg7ZeI7JqpIOqwkiDrsJYiKQ0KICAgICAgICByZWxzID0gZm0uZ2V0KCJyZWxhdGlvbnMi
KSBvciB7fQ0KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZWxzLCBkaWN0KToNCiAgICAgICAg
ICAgIHByb2JsZW1zLmFwcGVuZCgicmVsYXRpb25zIOqwgCDrp6TtlZHsnbQg7JWE64uYIikNCiAg
ICAgICAgICAgIHJlbHMgPSB7fQ0KICAgICAgICBmb3Iga2V5IGluIHJlbHM6DQogICAgICAgICAg
ICBpZiBrZXkgbm90IGluIFJFTEFUSU9OU18xNDoNCiAgICAgICAgICAgICAgICBwcm9ibGVtcy5h
cHBlbmQoZiLrj4TsnqUgYHtrZXl9YCDsnbQg6rSA6rOEIOyWtO2cmCAxNOyihSDrsJYiKQ0KICAg
ICAgICBmb3IgcHIgaW4gcHJvYmxlbXM6DQogICAgICAgICAgICBmMS5mYWlsKG5bInBhdGgiXSwg
cHIpDQogICAgICAgICMg4pSA4pSAIDLsuLUg7KCV7ZWpDQogICAgICAgIGNfcHJvYmxlbXMgPSBb
XQ0KICAgICAgICBpZiBmbS5nZXQoImNvZGUiKSBhbmQgZm0uZ2V0KCJjb2RlIikgIT0gYmcuY29k
ZV9vZihmb2xkZXIubmFtZSk6DQogICAgICAgICAgICBjX3Byb2JsZW1zLmFwcGVuZChmImNvZGUg
YHtmbS5nZXQoJ2NvZGUnKX1gIOKJoCDtj7TrjZTrqoUg7L2U65OcIGB7YmcuY29kZV9vZihmb2xk
ZXIubmFtZSl9YCIpDQogICAgICAgIHRydXRoID0gZm0uZ2V0KCJ0cnV0aCIpDQogICAgICAgIGlm
IHRydXRoOg0KICAgICAgICAgICAgdGYgPSBmb2xkZXIgLyBzdHIodHJ1dGgpLnNwbGl0KCIjIiwg
MSlbMF0NCiAgICAgICAgICAgIGlmIG5vdCB0Zi5leGlzdHMoKToNCiAgICAgICAgICAgICAgICBj
X3Byb2JsZW1zLmFwcGVuZChmInRydXRoIO2MjOydvCDsl4bsnYwgYHt0cnV0aH1gIikNCiAgICAg
ICAgZm9yIGQgaW4gZm0uZ2V0KCJkcmF3ZXJzIikgb3IgW106DQogICAgICAgICAgICBpZiBub3Qg
KGZvbGRlciAvIHN0cihkKSkuaXNfZGlyKCk6DQogICAgICAgICAgICAgICAgY19wcm9ibGVtcy5h
cHBlbmQoZiJkcmF3ZXJzIO2PtOuNlCDsl4bsnYwgYHtkfWAiKQ0KICAgICAgICBjYXJkX3RhZ3Mg
PSBzb3J0ZWQoZiJ7dC5nZXQoJ2tpbmQnKX09e3QuZ2V0KCd2YWx1ZScpfSIgZm9yIHQgaW4gKGZt
LmdldCgidGFncyIpIG9yIFtdKSBpZiBpc2luc3RhbmNlKHQsIGRpY3QpKQ0KICAgICAgICBzY2Fu
X3RhZ3MgPSBzb3J0ZWQoZiJ7dFsna2luZCddfT17dFsndmFsdWUnXX0iIGZvciB0IGluIGJnLnBh
cnNlX3RhZ3MoblsidHlwZSJdLCBuWyJwYXRoIl0pKQ0KICAgICAgICBpZiBjYXJkX3RhZ3MgIT0g
c2Nhbl90YWdzOg0KICAgICAgICAgICAgY19wcm9ibGVtcy5hcHBlbmQoZiJ0YWdzIOu2iOydvOy5
mCDsubTrk5wge2NhcmRfdGFnc30g4omgIO2PtOuNlOuqhSB7c2Nhbl90YWdzfSIpDQogICAgICAg
IGZvciBhIGluIGZtLmdldCgiYWxpYXNlcyIpIG9yIFtdOg0KICAgICAgICAgICAgaWYgc3RyKGEp
ID09IGZvbGRlci5uYW1lIG9yIHN0cihhKS5yZXBsYWNlKCIvIiwgIlxcIikuZW5kc3dpdGgoIlxc
IiArIGZvbGRlci5uYW1lKToNCiAgICAgICAgICAgICAgICBjX3Byb2JsZW1zLmFwcGVuZChmImFs
aWFzZXMg7JeQIO2YhOyerCDsnbTrpoQg7Y+s7ZWoIGB7YX1gIikNCiAgICAgICAgZm9yIHByIGlu
IGNfcHJvYmxlbXM6DQogICAgICAgICAgICBmMi5mYWlsKG5bInBhdGgiXSwgcHIpDQogICAgZm9y
IGNpZCwgY250IGluIGlkcy5pdGVtcygpOg0KICAgICAgICBpZiBjaWQgYW5kIGNudCA+IDE6DQog
ICAgICAgICAgICBkdXAgPSBbbm9kZXNba11bInBhdGgiXSBmb3IgaywgYyBpbiBjYXJkcy5pdGVt
cygpIGlmIGMuZ2V0KCJpZCIpID09IGNpZF0NCiAgICAgICAgICAgIGYxLmZhaWwoIiDCtyAiLmpv
aW4oZHVwKSwgZiJJRCDspJHrs7UgYHtjaWR9YCAoe2NudH3tmowpIikNCiAgICByZXR1cm4gZjEs
IGYyLCBjYXJkcw0KDQoNCiMg4pSA4pSAIOqygOyCrCAjMX4jMTQg4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSADQoNCmRlZiBjaGVja18wMShpdGVtcyk6DQogICAgciA9IFJlc3VsdCgq
WyhjWzBdLCBjWzNdLCBjWzJdKSBmb3IgYyBpbiBDSEVDS1MgaWYgY1swXSA9PSAxXVswXSkNCiAg
ICBmb3JiaWRkZW4gPSBOQU1JTkdbImZvcmJpZGRlbl9jaGFycyJdDQogICAgc3BhY2VfcGFyZW4g
PSBOQU1JTkdbInNwYWNlX2JlZm9yZV9wYXJlbiJdDQogICAgZm9yIGl0IGluIGl0ZW1zOg0KICAg
ICAgICByLnRhcmdldHMgKz0gMQ0KICAgICAgICBuID0gaXRbIm5hbWUiXQ0KICAgICAgICBpZiBm
b3JiaWRkZW4uc2VhcmNoKG4pOg0KICAgICAgICAgICAgci5mYWlsKGl0WyJwYXRoIl0sICLquIjs
p4Ag66y47J6QIOyCrOyaqSjsoITqsIEg6rSE7Zi4wrfrjIDqtITtmLjCt+ykkeq0hO2YuCkiLCAi
Ry0xOCIpDQogICAgICAgIGlmIGl0WyJraW5kIl0gPT0gImhpZXIiOg0KICAgICAgICAgICAgaWYg
aXRbImV4cGVjdGVkIl0gYW5kIGl0WyJsZXZlbCJdICE9IGl0WyJleHBlY3RlZCJdOg0KICAgICAg
ICAgICAgICAgIHIuZmFpbChpdFsicGF0aCJdLCBmIuychOqzhCDsiJzshJwg7JyE67CYOiDrtoDr
qqgge2l0WydwYXJlbnRfbGV2ZWwnXX0g7JWE656Y7JeQIHtpdFsnbGV2ZWwnXX0g7L2U65OcIGB7
aXRbJ2NvZGUnXX1gIiwgIkctMDR+Ry0xMSIpDQogICAgICAgICAgICBlbGlmIG5vdCBOQU1JTkdb
aXRbImxldmVsIl1dLmZ1bGxtYXRjaChuKToNCiAgICAgICAgICAgICAgICBpZiBzcGFjZV9wYXJl
bi5zZWFyY2gobik6DQogICAgICAgICAgICAgICAgICAgIHdoeSA9ICLqtITtmLgg7JWeIOqzteuw
sSINCiAgICAgICAgICAgICAgICBlbGlmICLjgJfjgJYiIGluIG46DQogICAgICAgICAgICAgICAg
ICAgIHdoeSA9ICLtg5zqt7gg67OR6riwKOOAlkHjgJfjgJZC44CXKSINCiAgICAgICAgICAgICAg
ICBlbGlmICIp44CWIiBpbiBuOg0KICAgICAgICAgICAgICAgICAgICB3aHkgPSAi7YOc6re4IOyV
niDqs7XrsLEg7JeG7J2MIg0KICAgICAgICAgICAgICAgIGVsaWYgIigiIG5vdCBpbiBuIGFuZCBp
dFsibGV2ZWwiXSAhPSAidGFzayI6DQogICAgICAgICAgICAgICAgICAgIHdoeSA9ICIo7JiB7Ja0
KSDrs5HquLAg7JeG7J2MIg0KICAgICAgICAgICAgICAgIGVsaWYgbi5zdGFydHN3aXRoKCLjgJYi
KSBhbmQgIuOAlyAiIGluIG46DQogICAgICAgICAgICAgICAgICAgIHdoeSA9ICLqt7jro7kg7KCR
65GQ7JmAIOy9lOuTnCDsgqzsnbQg6rO167CxIg0KICAgICAgICAgICAgICAgIGVsc2U6DQogICAg
ICAgICAgICAgICAgICAgIHdoeSA9ICJg7L2U65OcLe2VnOq4gCjsmIHslrQpYCDtmJXsi50g7JWE
64uYIg0KICAgICAgICAgICAgICAgIHIuZmFpbChpdFsicGF0aCJdLCBmIntpdFsnbGV2ZWwnXX0g
7KCV6rec7IudIOu2iOydvOy5mCDigJQge3doeX0iLCAiRy0wNH5HLTExLCBDLTA3IikNCiAgICAg
ICAgZWxpZiBpdFsia2luZCJdID09ICJkcmF3ZXIiOg0KICAgICAgICAgICAgaWYgc3BhY2VfcGFy
ZW4uc2VhcmNoKG4pOg0KICAgICAgICAgICAgICAgIHIuZmFpbChpdFsicGF0aCJdLCAi6rSE7Zi4
IOyVniDqs7XrsLEo7ISc656NIOydtOumhCDigJQg7ZiV7IudIOq3nOy5meydgCDsl4bsnLzrgpgg
7ZGc6riwIOq4sO2YuCDqt5zsuZkg6rO17Ya1KSIsICJHLTE4IikNCiAgICByZXR1cm4gcg0KDQoN
CmRlZiBjaGVja18wMihpdGVtcywgbm9kZXNfYnlfcGF0aCk6DQogICAgciA9IFJlc3VsdCgyLCAz
LCAiRy0xNywgQy0wNiIpDQogICAgZm9yIGl0IGluIGl0ZW1zOg0KICAgICAgICBpZiBpdFsia2lu
ZCJdICE9ICJoaWVyIjoNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIG4gPSBpdFsibmFt
ZSJdDQogICAgICAgIGlmICLjgJYiIG5vdCBpbiBuOg0KICAgICAgICAgICAgY29udGludWUNCiAg
ICAgICAgci50YXJnZXRzICs9IDENCiAgICAgICAgbm9kZSA9IG5vZGVzX2J5X3BhdGguZ2V0KGl0
WyJwYXRoIl0pDQogICAgICAgIHRhZ3MgPSBub2RlWyJ0YWdzIl0gaWYgbm9kZSBlbHNlIGJnLnBh
cnNlX3RhZ3MoaXRbImxldmVsIl0sIGl0WyJwYXRoIl0pDQogICAgICAgIGtpbmRzID0gW3RbImtp
bmQiXSBmb3IgdCBpbiB0YWdzXQ0KICAgICAgICBmb3IgdCBpbiB0YWdzOg0KICAgICAgICAgICAg
aWYgdFsia2luZCJdIG5vdCBpbiBUQUdfS0lORFM6DQogICAgICAgICAgICAgICAgci5mYWlsKGl0
WyJwYXRoIl0sIGYi7YOc6re4IOOAlnt0Wyd2YWx1ZSddfeOAlyDsooXrpZgg7YyQ7KCVIOu2iOqw
gChge3RbJ2tpbmQnXX1gKSDigJQgMTHsooUg67CWIOuYkOuKlCDrr7jrtoTrpZgiLCAiRy0xNyIp
DQogICAgICAgIG5vbl9wcmVmaXggPSBbdCBmb3IgdCBpbiB0YWdzIGlmIHRbImtpbmQiXSAhPSAi
64+E66mU7J24IOq3uOujuSDsoJHrkZAiXQ0KICAgICAgICBpZiBsZW4obm9uX3ByZWZpeCkgPiAx
IGFuZCBub3QgYWxsKHRbImtpbmQiXSA9PSBNVUxUSV9UQUdfS0lORCBmb3IgdCBpbiBub25fcHJl
Zml4KToNCiAgICAgICAgICAgIHIuZmFpbChpdFsicGF0aCJdLCAi7YOc6re4IOuzkeq4sCAiICsg
IiIuam9pbihmIuOAlnt0Wyd2YWx1ZSddfeOAlyIgZm9yIHQgaW4gbm9uX3ByZWZpeCkgKyBmIiDi
gJQg7ZWcIO2PtOuNlCDtlZwg7KKF66WYIOq3nOy5mSjrs7XsiJgg67OR6riw64qUIGB7TVVMVElf
VEFHX0tJTkR9YOunjCDtl4jsmqkpIiwgIkctMTcsIEMtMDYiKQ0KICAgICAgICBpZiBpdFsibGV2
ZWwiXSBpbiAoInJvbGUiLCAic3RlcCIpIGFuZCBub25fcHJlZml4Og0KICAgICAgICAgICAgci5m
YWlsKGl0WyJwYXRoIl0sIGYie2l0WydsZXZlbCddfSDtj7TrjZTsl5DripQg7YOc6re4IOyaqeuP
hOqwgCDsl4bsnYwiLCAiRy0xNyIpDQogICAgcmV0dXJuIHINCg0KDQpkZWYgZGVjbGFyZWRfZHJh
d2VyX3BhdGhzKGNhcmRzLCBub2Rlcyk6DQogICAgIiIi7Lm065OcIGBkcmF3ZXJzOmAg7ISg7Ja4
IOyEnOuejeydmCBJUklTIOyDgeuMgOqyveuhnCDsp5HtlakgKOuqheyEuOyEnCA1LTMgIzMg7KCc
7Jm4IOuylOychCDigJQg7ISc656N6rO8IOq3uCDtlZjsnIQpLiIiIg0KICAgIG91dCA9IHNldCgp
DQogICAgZm9yIG5pZCwgZm0gaW4gY2FyZHMuaXRlbXMoKToNCiAgICAgICAgYmFzZSA9IG5vZGVz
W25pZF1bInBhdGgiXS5yZXBsYWNlKCIvIiwgIlxcIikNCiAgICAgICAgZm9yIGQgaW4gZm0uZ2V0
KCJkcmF3ZXJzIikgb3IgW106DQogICAgICAgICAgICBvdXQuYWRkKGJhc2UgKyAiXFwiICsgc3Ry
KGQpLnJlcGxhY2UoIi8iLCAiXFwiKS5zdHJpcCgiXFwiKSkNCiAgICByZXR1cm4gb3V0DQoNCg0K
ZGVmIGNoZWNrXzAzKGl0ZW1zLCBjYXJkcz1Ob25lLCBub2Rlcz1Ob25lKToNCiAgICByID0gUmVz
dWx0KDMsIDIsICJHLTAxLCBHLTEzIikNCiAgICBkcmF3ZXJzID0gZGVjbGFyZWRfZHJhd2VyX3Bh
dGhzKGNhcmRzIG9yIHt9LCBub2RlcyBvciB7fSkNCiAgICBza2lwcGVkID0gMA0KICAgIGZvciBp
dCBpbiBpdGVtczoNCiAgICAgICAgaWYgaXRbImtpbmQiXSBub3QgaW4gKCJoaWVyIiwgInV0aWwi
KToNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIHAgPSBpdFsicGF0aCJdLnJlcGxhY2Uo
Ii8iLCAiXFwiKQ0KICAgICAgICBpZiBpdFsibmFtZSJdIGluIEFVVE9fT1VUUFVUX0RJUlMgb3Ig
YW55KHAgPT0gZCBvciBwLnN0YXJ0c3dpdGgoZCArICJcXCIpIGZvciBkIGluIGRyYXdlcnMpOg0K
ICAgICAgICAgICAgc2tpcHBlZCArPSAxICAgIyDsnpDrj5kg7Lac66ClIO2PtOuNlCAvIOy5tOuT
nCDshKDslrgg7ISc656N6rO8IOq3uCDtlZjsnIQg4oCUIOuptOygnChROSkuIGBfYOycoO2LuOyd
gCDshJzrno0g7JWI7JeQIOyeiOydhCDrlYzrp4wg66m07KCcDQogICAgICAgICAgICBjb250aW51
ZQ0KICAgICAgICByLnRhcmdldHMgKz0gMQ0KICAgICAgICBmb2xkZXIgPSBST09UIC8gaXRbInBh
dGgiXQ0KICAgICAgICBhLCBjID0gZm9sZGVyIC8gIkFHRU5UUy5tZCIsIGZvbGRlciAvICJDTEFV
REUubWQiDQogICAgICAgIGlmIG5vdCBhLmV4aXN0cygpIGFuZCBub3QgYy5leGlzdHMoKToNCiAg
ICAgICAgICAgIHIuZmFpbChpdFsicGF0aCJdLCAiQUdFTlRTLm1kwrdDTEFVREUubWQg65GYIOuL
pCDsl4bsnYwiLCAiRy0xMyIpDQogICAgICAgIGVsaWYgbm90IGEuZXhpc3RzKCk6DQogICAgICAg
ICAgICByLmZhaWwoaXRbInBhdGgiXSwgIkFHRU5UUy5tZCDsl4bsnYwoQ0xBVURFLm1k66eMIOye
iOydjCkiLCAiRy0xMyIpDQogICAgICAgIGVsaWYgbm90IGMuZXhpc3RzKCk6DQogICAgICAgICAg
ICByLmZhaWwoaXRbInBhdGgiXSwgIuq7jeuNsOq4sCBDTEFVREUubWQg7JeG7J2MIiwgIkctMDEi
KQ0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgYm9keSA9IGMucmVhZF9ieXRlcygpLmRlY29k
ZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKS5sc3RyaXAoYmcuQk9NKS5zdHJpcCgpDQogICAg
ICAgICAgICBpZiBib2R5ICE9ICJAQUdFTlRTLm1kIjoNCiAgICAgICAgICAgICAgICByLmZhaWwo
aXRbInBhdGgiXSwgZiJDTEFVREUubWQg6rCAIGBAQUdFTlRTLm1kYCDtlZwg7KSE7J20IOyVhOuL
mCAo7LKrIOykhCBge2JvZHkuc3BsaXRsaW5lcygpWzBdWzo0MF0gaWYgYm9keSBlbHNlICcnfWAp
IiwgIkctMDEiKQ0KICAgIGlmIHNraXBwZWQ6DQogICAgICAgIHIubm90ZSA9IGYi66m07KCcIHtz
a2lwcGVkfeqzsyjsubTrk5wgZHJhd2Vyczog7ISg7Ja4IOyEnOuejcK37ZWY7JyEICsg7J6Q64+Z
IOy2nOugpSDtj7TrjZQge3NvcnRlZChBVVRPX09VVFBVVF9ESVJTKX0pIOKAlCDrqoXshLjshJwg
NS0zICMzLCBROSINCiAgICByZXR1cm4gcg0KDQoNCmRlZiByZXNvbHZlX3RhcmdldCh0YXJnZXQs
IG5vZGVzKToNCiAgICAiIiJgaXJpczp4eHh4Wy/sg4HrjIDqsr3roZxbI+yVtey7pF1dYCDrmJDr
ipQg65Ox66Gd67aAIOygkeuRkCDihpIgKOuFuOuTnGlkLCDsg4HrjIDqsr3roZwgb3IgTm9uZSwg
7KG07J6s7Jes67aALCDshKTrqoUpLiIiIg0KICAgIHQgPSBzdHIodGFyZ2V0KQ0KICAgIGlmIHQu
c3RhcnRzd2l0aCgiaXJpczoiKToNCiAgICAgICAgbmlkLCBfLCB0YWlsID0gdC5wYXJ0aXRpb24o
Ii8iKQ0KICAgICAgICBub2RlID0gbm9kZXMuZ2V0KG5pZCkNCiAgICAgICAgaWYgbm90IG5vZGU6
DQogICAgICAgICAgICByZXR1cm4gbmlkLCB0YWlsLCBGYWxzZSwgZiLrhbjrk5wgYHtuaWR9YCDq
sIAg6re4656Y7ZSE7JeQIOyXhuydjCINCiAgICAgICAgaWYgbm90IHRhaWw6DQogICAgICAgICAg
ICByZXR1cm4gbmlkLCBOb25lLCBUcnVlLCAiIg0KICAgICAgICBmcGF0aCA9IFJPT1QgLyBub2Rl
WyJwYXRoIl0gLyB0YWlsLnNwbGl0KCIjIiwgMSlbMF0NCiAgICAgICAgcmV0dXJuIG5pZCwgdGFp
bCwgZnBhdGguZXhpc3RzKCksICgiIiBpZiBmcGF0aC5leGlzdHMoKSBlbHNlIGYiYHtub2RlWydw
YXRoJ119XFx7dGFpbH1gIOyLpOyhtO2VmOyngCDslYrsnYwiKQ0KICAgIHJldHVybiBOb25lLCB0
LCBGYWxzZSwgZiJpcmlzOiDtmJXsi50g7JWE64uYIGB7dH1gIg0KDQoNCmRlZiBjaGVja18wNChj
YXJkcywgbm9kZXMpOg0KICAgIHIgPSBSZXN1bHQoNCwgMiwgIuygleuzuCA1NeqxtCwgQy0xMMK3
Qy0zNMK3Qy0zOCIpDQogICAgZm9yIG5pZCwgZm0gaW4gY2FyZHMuaXRlbXMoKToNCiAgICAgICAg
cmVscyA9IGZtLmdldCgicmVsYXRpb25zIikgb3Ige30NCiAgICAgICAgZm9yIGtleSBpbiAoImNh
bm9uaWNhbCIsICJ0ZW1wbGF0ZSIsICJwcm9tb3RlZF9mcm9tIik6DQogICAgICAgICAgICB2YWxz
ID0gcmVscy5nZXQoa2V5KQ0KICAgICAgICAgICAgaWYgbm90IHZhbHM6DQogICAgICAgICAgICAg
ICAgY29udGludWUNCiAgICAgICAgICAgIGZvciB2IGluICh2YWxzIGlmIGlzaW5zdGFuY2UodmFs
cywgbGlzdCkgZWxzZSBbdmFsc10pOg0KICAgICAgICAgICAgICAgIHIudGFyZ2V0cyArPSAxDQog
ICAgICAgICAgICAgICAgXywgXywgb2ssIHdoeSA9IHJlc29sdmVfdGFyZ2V0KHYsIG5vZGVzKQ0K
ICAgICAgICAgICAgICAgIGlmIG5vdCBvazoNCiAgICAgICAgICAgICAgICAgICAgci5mYWlsKG5v
ZGVzW25pZF1bInBhdGgiXSwgZiJ7a2V5fSDihpIge3Z9OiB7d2h5fSIpDQogICAgaWYgci5ub190
YXJnZXQ6DQogICAgICAgIHIubm90ZSA9ICLsubTrk5zsl5AgY2Fub25pY2Fswrd0ZW1wbGF0ZcK3
cHJvbW90ZWRfZnJvbSDrj4TsnqXsnbQg7JWE7KeBIDDqsbQo6rSA6rOEIOyImO2ZlSDsoIQpIOKA
lCDqsoDsgqwg64yA7IOBIOyXhuydjCINCiAgICByZXR1cm4gcg0KDQoNCmRlZiBjaGVja18wNShj
YXJkcywgbm9kZXMpOg0KICAgIHIgPSBSZXN1bHQoNSwgMiwgIuqxsOyauCDsnqzsg53shLEg6rec
7LmZIikNCiAgICBmb3IgbmlkLCBmbSBpbiBjYXJkcy5pdGVtcygpOg0KICAgICAgICB2YWxzID0g
KGZtLmdldCgicmVsYXRpb25zIikgb3Ige30pLmdldCgibWlycm9yX29mIikNCiAgICAgICAgaWYg
bm90IHZhbHM6DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBmb3IgdiBpbiAodmFscyBp
ZiBpc2luc3RhbmNlKHZhbHMsIGxpc3QpIGVsc2UgW3ZhbHNdKToNCiAgICAgICAgICAgIHIudGFy
Z2V0cyArPSAxDQogICAgICAgICAgICBvbmlkLCB0YWlsLCBvaywgd2h5ID0gcmVzb2x2ZV90YXJn
ZXQodiwgbm9kZXMpDQogICAgICAgICAgICBpZiBub3Qgb2s6DQogICAgICAgICAgICAgICAgci5m
YWlsKG5vZGVzW25pZF1bInBhdGgiXSwgZiJtaXJyb3Jfb2Yg4oaSIHt2fToge3doeX0iKQ0KICAg
ICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICBvcmlnID0gUk9PVCAvIG5vZGVzW29u
aWRdWyJwYXRoIl0gLyAodGFpbCBvciAiIikuc3BsaXQoIiMiLCAxKVswXQ0KICAgICAgICAgICAg
bWlycm9yID0gUk9PVCAvIG5vZGVzW25pZF1bInBhdGgiXQ0KICAgICAgICAgICAgaWYgb3JpZy5p
c19maWxlKCkgYW5kIG1pcnJvci5leGlzdHMoKSBhbmQgbWlycm9yLnN0YXQoKS5zdF9tdGltZSA8
IG9yaWcuc3RhdCgpLnN0X210aW1lOg0KICAgICAgICAgICAgICAgIHIuZmFpbChub2Rlc1tuaWRd
WyJwYXRoIl0sIGYi6rGw7Jq47J20IOybkOuzuOuztOuLpCDsmKTrnpjrkKggKOybkOuzuCB7dn0p
IOKAlCDsnqzsg53shLEg7ZWE7JqUIikNCiAgICBpZiByLm5vX3RhcmdldDoNCiAgICAgICAgci5u
b3RlID0gIuy5tOuTnOyXkCBtaXJyb3Jfb2Yg64+E7J6l7J20IOyVhOyngSAw6rG0IOKAlCDqsoDs
gqwg64yA7IOBIOyXhuydjCINCiAgICByZXR1cm4gcg0KDQoNCmRlZiBjaGVja18wNihjYXJkcywg
bm9kZXMsIHNjb3BlKToNCiAgICByID0gUmVzdWx0KDYsIDMsICJQIOy2nOyDnSDsobDqsbQiKQ0K
ICAgIGxlZ2FjeSA9IDANCiAgICBmb3IgbmlkLCBuIGluIG5vZGVzLml0ZW1zKCk6DQogICAgICAg
IGlmIG5bInR5cGUiXSAhPSAicHJvamVjdCIgb3Igblsic3RhdHVzX3NjaGVtZSJdIG5vdCBpbiAo
ImZ1bm5lbCIsICJsYWRkZXIiKSBvciBub3QgaW5fc2NvcGUoblsicGF0aCJdLCBzY29wZSk6DQog
ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICByLnRhcmdldHMgKz0gMQ0KICAgICAgICBmbSA9
IGNhcmRzLmdldChuaWQpIG9yIHt9DQogICAgICAgIGlmIGZtLmdldCgiYm9ybiIpID09ICJsZWdh
Y3kiOg0KICAgICAgICAgICAgbGVnYWN5ICs9IDEgICAjIOydtOyghCDssrTqs4QoMjAyNi0wOC0x
OCDsnbTsoIQpIOy2nOyDnSBQwrdQMDAg4oCUIHByb21vdGVkX2Zyb20g66m07KCcKOuqheyEuOyE
nCA0LTEgYGJvcm5gLCBRNSkNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIGlmIG5vdCAo
Zm0uZ2V0KCJyZWxhdGlvbnMiKSBvciB7fSkuZ2V0KCJwcm9tb3RlZF9mcm9tIik6DQogICAgICAg
ICAgICByLmZhaWwoblsicGF0aCJdLCBmIntuWydzdGF0dXNfc2NoZW1lJ119IFDsnbjrjbAgcHJv
bW90ZWRfZnJvbSjstpzsg50g6re86rGwKSDrr7jquLDsnqwg4oCUIOq0gOqzhCDsiJjtmZUg7KCE
7J2066m0IOy5tOuTnCDrs7TsmYQsIOyUqOyVlyDsl4bsnbQg7YOc7Ja064Ks7Jy866m0IOy2qeuP
jO2RnCjrmJDripQgYGJvcm46IGxlZ2FjeWApIikNCiAgICBpZiByLm5vX3RhcmdldDoNCiAgICAg
ICAgci5ub3RlID0gIuuylOychCDslYjsl5AgZnVubmVswrdsYWRkZXIgUCDsl4bsnYwg4oCUIOqy
gOyCrCDrjIDsg4Eg7JeG7J2MIg0KICAgIGVsaWYgbGVnYWN5Og0KICAgICAgICByLm5vdGUgPSBm
ImBib3JuOiBsZWdhY3lgIOuptOygnCB7bGVnYWN5feqxtCjrjIDsg4Hsl5Ag7Y+s7ZWoLCDthrXq
s7zroZwg7IWIKSINCiAgICByZXR1cm4gcg0KDQoNCmRlZiByZWFkX2Nvb3JkaW5hdGUoam91cm5h
bCk6DQogICAgIiIi7Jew6rWs7J287KeALm1kIO2YhOyerCDsg4Htg5wg67iU66Gd7J2YIGDtmITs
nqwg64uo6rOEOiBOYCDsnYQg7J2964qU64ukLiAo7KCV6rec7IudIOyXhuydtCkiIiINCiAgICB0
cnk6DQogICAgICAgIHRleHQgPSBqb3VybmFsLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiLCBl
cnJvcnM9InJlcGxhY2UiKQ0KICAgIGV4Y2VwdCBPU0Vycm9yOg0KICAgICAgICByZXR1cm4gTm9u
ZSwgIuyXsOq1rOydvOyngCDsnb3quLAg7Iuk7YyoIg0KICAgIGhlYWQgPSB0ZXh0Wzo0MDAwXQ0K
ICAgIGZvciBtYXJrZXIgaW4gKCLtmITsnqwg64uo6rOEOiIsICLtmITsnqwg64uo6rOEIDoiLCAi
7ZiE7J6sIOyijO2RnDoiLCAi7KKM7ZGcOiIpOg0KICAgICAgICB2ID0gZGlnaXRzX2FmdGVyKGhl
YWQsIG1hcmtlcikNCiAgICAgICAgaWYgdiBpcyBub3QgTm9uZToNCiAgICAgICAgICAgIHJldHVy
biB2LCAiIg0KICAgIHJldHVybiBOb25lLCAi7IOB7YOcIOu4lOuhneyXkOyEnCBg7ZiE7J6sIOuL
qOqzhDogTmAg7J2EIOywvuyngCDrqrvtlagiDQoNCg0KZGVmIGNoZWNrXzA3KG5vZGVzLCBzY29w
ZSk6DQogICAgciA9IFJlc3VsdCg3LCAzLCAi7KKM7ZGc4oaU7ISc656NIO2RnCIpDQogICAgZm9y
IG5pZCwgbiBpbiBub2Rlcy5pdGVtcygpOg0KICAgICAgICBpZiBuWyJ0eXBlIl0gIT0gInByb2pl
Y3QiIG9yIG5bInN0YXR1c19zY2hlbWUiXSBub3QgaW4gKCJmdW5uZWwiLCAibGFkZGVyIikgb3Ig
bm90IGluX3Njb3BlKG5bInBhdGgiXSwgc2NvcGUpOg0KICAgICAgICAgICAgY29udGludWUNCiAg
ICAgICAgci50YXJnZXRzICs9IDENCiAgICAgICAgZm9sZGVyID0gUk9PVCAvIG5bInBhdGgiXQ0K
ICAgICAgICBpZiBub3Qgbi5nZXQoInRydXRoIik6DQogICAgICAgICAgICByLnVucmVhZGFibGUu
YXBwZW5kKChuWyJwYXRoIl0sIGYidHJ1dGgg66+46riw7J6sKHtuWydzdGF0dXNfc2NoZW1lJ119
KSDigJQg7KKM7ZGc66W8IOydveydhCDqs7PsnbQg7JeG7Ja0IOyEnOuejSDrjIDsobAg67aI64ql
IikpDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBqb3VybmFsID0gZm9sZGVyIC8gc3Ry
KG5bInRydXRoIl0pLnNwbGl0KCIjIiwgMSlbMF0NCiAgICAgICAgY29vcmQsIHdoeSA9IHJlYWRf
Y29vcmRpbmF0ZShqb3VybmFsKQ0KICAgICAgICBpZiBjb29yZCBpcyBOb25lOg0KICAgICAgICAg
ICAgci51bnJlYWRhYmxlLmFwcGVuZCgoblsicGF0aCJdLCB3aHkpKQ0KICAgICAgICAgICAgY29u
dGludWUNCiAgICAgICAgdGFibGUgPSBGVU5ORUxfRFJBV0VSIGlmIG5bInN0YXR1c19zY2hlbWUi
XSA9PSAiZnVubmVsIiBlbHNlIExBRERFUl9EUkFXRVINCiAgICAgICAgY3VyID0gdGFibGUuZ2V0
KGNvb3JkKQ0KICAgICAgICBpZiBjdXIgaXMgTm9uZToNCiAgICAgICAgICAgIHIudW5yZWFkYWJs
ZS5hcHBlbmQoKG5bInBhdGgiXSwgZiLsooztkZwge2Nvb3JkfSDqsIAg64yA7J2R7ZGcIOuwliIp
KQ0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgZm9yIHMgaW4gbi5nZXQoImNoaWxkcmVu
Iikgb3IgW106DQogICAgICAgICAgICBpZHggPSBpbnQoc1sxOjNdKSBpZiBzWzE6M10uaXNkaWdp
dCgpIGVsc2UgTm9uZQ0KICAgICAgICAgICAgaWYgaWR4IGlzIE5vbmU6DQogICAgICAgICAgICAg
ICAgY29udGludWUNCiAgICAgICAgICAgIGlmIGlkeCA+IGN1ciBhbmQgaXNfZW1wdHlfZHJhd2Vy
KGZvbGRlciAvIHMpOg0KICAgICAgICAgICAgICAgIHIuZmFpbChuWyJwYXRoIl0sIGYi67mIIOuv
uOuemCDshJzrno0gYHtzfWAg4oCUIO2YhOyerCDsooztkZwge2Nvb3JkfSDihpIg7ISc656NIFN7
Y3VyOjAyZH0g7J24642wIFN7aWR4OjAyZH0g6rCAIOuvuOumrCDrp4zrk6TslrTsp5AiKQ0KICAg
IGlmIHIubm9fdGFyZ2V0Og0KICAgICAgICByLm5vdGUgPSAi67KU7JyEIOyViOyXkCBmdW5uZWzC
t2xhZGRlciBQIOyXhuydjCDigJQg6rKA7IKsIOuMgOyDgSDsl4bsnYwiDQogICAgcmV0dXJuIHIN
Cg0KDQpkZWYgY2hlY2tfMDgobm9kZXMsIHNjb3BlKToNCiAgICByID0gUmVzdWx0KDgsIDMsICLs
gqzri6Trpqwg64+E66mU7J24IOq3nOy5mSIpDQogICAgZm9yIG5pZCwgbiBpbiBub2Rlcy5pdGVt
cygpOg0KICAgICAgICBpZiBuWyJ0eXBlIl0gIT0gInByb2plY3QiIG9yIG5vdCBpbl9zY29wZShu
WyJwYXRoIl0sIHNjb3BlKToNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIHBhcmVudCA9
IFBhdGgoblsicGF0aCJdKS5wYXJlbnQubmFtZQ0KICAgICAgICBpZiBuLmdldCgic3RhdHVzX3Nj
aGVtZSIpICE9ICJsYWRkZXIiOg0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgbmFtZSA9
IFBhdGgoblsicGF0aCJdKS5uYW1lDQogICAgICAgIG0gPSBkaWdpdHNfYWZ0ZXIoYmFzZW5hbWVf
bm9fcGFyZW4obmFtZSksICIgTSIpDQogICAgICAgIGlmIG0gaXMgTm9uZToNCiAgICAgICAgICAg
IGNvbnRpbnVlICAgIyBNIOuyiO2YuCDsl4bripQgUChQMDAg642w7J207YSwIOyepeu2gCDrk7Ep
64qUIOuMgOyDgSDslYTri5gNCiAgICAgICAgci50YXJnZXRzICs9IDENCiAgICAgICAgaWYgblsi
Y29kZSJdID09ICJQMFgiOg0KICAgICAgICAgICAgci51bnJlYWRhYmxlLmFwcGVuZCgoblsicGF0
aCJdLCAi7J6E7IucIOy9lOuTnCBQMFgg4oCUIOyXrOyglSDsnITsuZgg66+47KCVKOq3nOy5meyD
gSDtl4jsmqkpIikpDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBwbm8gPSBpbnQoblsi
Y29kZSJdWzE6M10pDQogICAgICAgIGlmIHBubyAhPSBtICsgMToNCiAgICAgICAgICAgIHIuZmFp
bChuWyJwYXRoIl0sIGYiUHtwbm86MDJkfSDiiaAgTXttfSsxIikNCiAgICBpZiByLm5vX3Rhcmdl
dDoNCiAgICAgICAgci5ub3RlID0gIuuylOychCDslYjsl5AgbGFkZGVyIOuPhOuplOyduOydmCBN
IOuyiO2YuCBQIOyXhuydjCDigJQg6rKA7IKsIOuMgOyDgSDsl4bsnYwiDQogICAgcmV0dXJuIHIN
Cg0KDQpkZWYgY2hlY2tfMDkobm9kZXMsIHNjb3BlKToNCiAgICByID0gUmVzdWx0KDksIDMsICJH
LTA1IikNCiAgICBncm91cHMgPSBkZWZhdWx0ZGljdChsaXN0KQ0KICAgIGZvciBuaWQsIG4gaW4g
bm9kZXMuaXRlbXMoKToNCiAgICAgICAgaWYgblsidHlwZSJdICE9ICJkb21haW4iIG9yIG5vdCBp
bl9zY29wZShuWyJwYXRoIl0sIHNjb3BlKToNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAg
IG5hbWUgPSBQYXRoKG5bInBhdGgiXSkubmFtZQ0KICAgICAgICBwcmVmaXggPSBuYW1lWzpuYW1l
LmluZGV4KCLjgJciKSArIDFdIGlmIG5hbWUuc3RhcnRzd2l0aCgi44CWIikgZWxzZSAiIg0KICAg
ICAgICBncm91cHNbKFBhdGgoblsicGF0aCJdKS5wYXJlbnQubmFtZSwgcHJlZml4LCBuWyJjb2Rl
Il0pXS5hcHBlbmQobikNCiAgICBmb3IgKHJvbGUsIHByZWZpeCwgY29kZSksIG1lbWJlcnMgaW4g
Z3JvdXBzLml0ZW1zKCk6DQogICAgICAgIGlmIGxlbihtZW1iZXJzKSA8IDI6DQogICAgICAgICAg
ICBjb250aW51ZQ0KICAgICAgICByLnRhcmdldHMgKz0gMQ0KICAgICAgICBiYXNlcyA9IHtzdHJp
cF90YWdzKFBhdGgobVsicGF0aCJdKS5uYW1lKSBmb3IgbSBpbiBtZW1iZXJzfQ0KICAgICAgICBz
dWZmaXggPSB7fQ0KICAgICAgICB1bnRhZ2dlZCA9IFtdDQogICAgICAgIGZvciBtIGluIG1lbWJl
cnM6DQogICAgICAgICAgICBuYW1lID0gUGF0aChtWyJwYXRoIl0pLm5hbWUNCiAgICAgICAgICAg
IHRhZyA9IFt0WyJ2YWx1ZSJdIGZvciB0IGluIG1bInRhZ3MiXSBpZiB0WyJraW5kIl0gIT0gIuuP
hOuplOyduCDqt7jro7kg7KCR65GQIl0NCiAgICAgICAgICAgIGlmIG5vdCB0YWc6DQogICAgICAg
ICAgICAgICAgdW50YWdnZWQuYXBwZW5kKG5hbWUpDQogICAgICAgICAgICBlbHNlOg0KICAgICAg
ICAgICAgICAgIHN1ZmZpeC5zZXRkZWZhdWx0KHRhZ1swXSwgW10pLmFwcGVuZChuYW1lKQ0KICAg
ICAgICB3aGVyZSA9IGYie3JvbGV9XFx7cHJlZml4fXtjb2RlfSINCiAgICAgICAgZm9yIHRhZywg
bmFtZXMgaW4gc3VmZml4Lml0ZW1zKCk6DQogICAgICAgICAgICBpZiBsZW4obmFtZXMpID4gMToN
CiAgICAgICAgICAgICAgICByLmZhaWwod2hlcmUsIGYi7IS467aA7JiB7JetIO2DnOq3uCDjgJZ7
dGFnfeOAlyDspJHrs7U6ICIgKyAiIC8gIi5qb2luKG5hbWVzKSkNCiAgICAgICAgaWYgcHJlZml4
Og0KICAgICAgICAgICAgIyDsmIjsmbgg4pOQKFE0LCDrqoXshLjshJwgNS0zICM5KTog6re466O5
IOygkeuRkCBg44CWIOOAl0RgIOyViOyXkOyEnOuKlCBEIOuyiO2YuCA9IOuLqOqzhCjroIjrsqgp
LCDrtoTslbzripQgKirsnbTrpoQqKuycvOuhnCDqtazrs4TtlZzri6Qo7JiIOiBg44CW6rWQ7J6s
44CXRDAxYH5g44CW6rWQ7J6s44CXRDA1YCkuDQogICAgICAgICAgICAjICAg4oaSIOygkeuRkOqw
gCDqsJnsnYAg7ZiV7KCc6rCAIOy9lOuTnOulvCDqs7XsnKDtlbTrj4Qg7J2066aEKOu2hOyVvCns
nbQg7ISc66GcIOuLpOultOuptCDthrXqs7wuIOydtOumhOq5jOyngCDqsJnsnLzrqbQo6rCZ7J2A
IOuLqOqzhMK36rCZ7J2AIOu2hOyVvCDrkZgpIOychOuwmC4NCiAgICAgICAgICAgICMgICDrrLTt
g5zqt7gg7ZWY64KYIOq3nOy5mSjik5Ep7J2AIOyEuOu2gOyYgeyXrSDrtoTtlaAo7KCR65GQIOyX
huuKlCDtmJXsoJwp7JeQ66eMIOyggeyaqe2VmOuvgOuhnCDsl6zquLDshJzripQg67O07KeAIOyV
iuuKlOuLpC4NCiAgICAgICAgICAgIGR1cF9uYW1lcyA9IHNvcnRlZChiIGZvciBiIGluIGJhc2Vz
IGlmIHN1bSgxIGZvciBtIGluIG1lbWJlcnMgaWYgc3RyaXBfdGFncyhQYXRoKG1bInBhdGgiXSku
bmFtZSkgPT0gYikgPiAxKQ0KICAgICAgICAgICAgaWYgZHVwX25hbWVzOg0KICAgICAgICAgICAg
ICAgIHIuZmFpbCh3aGVyZSwgIuq3uOujuSDsoJHrkZAg7JWI7JeQ7IScIOqwmeydgCBEIOuyiO2Y
uMK36rCZ7J2AIOu2hOyVvCDsnbTrpoQg7KSR67O1OiAiICsgIiAvICIuam9pbihkdXBfbmFtZXMp
ICsgIiDigJQg7JiI7Jm4IOKTkOuKlCDsnbTrpoQo67aE7JW8KeydtCDri6Trpbwg65WM66eMIO2G
teqzvCIpDQogICAgICAgICAgICBpZiB1bnRhZ2dlZCBhbmQgbGVuKHVudGFnZ2VkKSAhPSBsZW4o
bWVtYmVycyk6DQogICAgICAgICAgICAgICAgci5mYWlsKHdoZXJlLCAi6re466O5IOygkeuRkCDt
mJXsoJwg7JWI7JeQIO2DnOq3uCDsnKDrrLTqsIAg7ISe7J6EOiAiICsgIiAvICIuam9pbih1bnRh
Z2dlZCkgKyAiIOKAlCDsmIjsmbgg4pOQ64qUIOydtOumhOycvOuhnOunjCDqtazrs4TtlaAg65WM
IOyggeyaqSIpDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICBpZiBsZW4oYmFzZXMpID4gMToN
CiAgICAgICAgICAgICAgICByLmZhaWwod2hlcmUsICLqsJnsnYAgRCDrsojtmLjsnbjrjbAg67aE
7JW8IOydtOumhOydtCDri6TrpoQ6ICIgKyAiIC8gIi5qb2luKHNvcnRlZChiYXNlcykpICsgIiDi
gJQg7L2U65OcIOykkeuzteydgCDqsJnsnYAg67aE7JW8KOyEuOu2gOyYgeyXrSDrtoTtlaAp7JeQ
7ISc66eMIO2XiOyaqSjqt7jro7kg7KCR65GQIOyViCDroIjrsqgg67KI7Zi464qUIOyYiOyZuCDi
k5ApIikNCiAgICAgICAgICAgIGlmIGxlbih1bnRhZ2dlZCkgPiAxOg0KICAgICAgICAgICAgICAg
ICMg7JiI7Jm4IOKTkShRNCk6IOyEuOu2gOyYgeyXrSDtmJXsoJwg7KSRIOustO2DnOq3uCBEICoq
7ZWY64KYKirripQg7ZGc7KSAwrfqs7XthrUg64+E66mU7J247Jy866GcIO2XiOyaqSDigJQg65GY
IOydtOyDgeydtOuptCDsnITrsJgNCiAgICAgICAgICAgICAgICByLmZhaWwod2hlcmUsICLrrLTt
g5zqt7gg7ZiV7KCc6rCAIOuRmCDsnbTsg4E6ICIgKyAiIC8gIi5qb2luKHVudGFnZ2VkKSArICIg
4oCUIOustO2DnOq3uCDtkZzspIAgROuKlCDtlZjrgpjrp4wg7ZeI7JqpKOyYiOyZuCDik5EpIikN
CiAgICBpZiByLm5vX3RhcmdldDoNCiAgICAgICAgci5ub3RlID0gIuuylOychCDslYjsl5AgRCDr
sojtmLjrpbwg6rO17Jyg7ZWY64qUIO2YleygnCDrj4TrqZTsnbgg7JeG7J2MIOKAlCDqsoDsgqwg
64yA7IOBIOyXhuydjCINCiAgICByZXR1cm4gcg0KDQoNCmRlZiBjaGVja18xMChpdGVtcyk6DQog
ICAgciA9IFJlc3VsdCgxMCwgMywgIkctMTQsIEMtMjMiKQ0KICAgIGZvciBpdCBpbiBpdGVtczoN
CiAgICAgICAgaWYgaXRbImtpbmQiXSAhPSAidXRpbCI6DQogICAgICAgICAgICBjb250aW51ZQ0K
ICAgICAgICByLnRhcmdldHMgKz0gMQ0KICAgICAgICBpZiBub3QgTkFNSU5HWyJ1dGlsIl0uZnVs
bG1hdGNoKGl0WyJuYW1lIl0pOg0KICAgICAgICAgICAgci5mYWlsKGl0WyJwYXRoIl0sIGYi7Jyg
7Yu4IOydtOumhCBge2l0WyduYW1lJ119YCDsnbQgYF/smIHslrTshozrrLjsnpAoLeyXsOqysClg
IO2YleyLnSDslYTri5giKQ0KICAgIHJldHVybiByDQoNCg0KZGVmIHN0cmluZ19saXRlcmFscyhz
Y3JpcHQpOg0KICAgICIiIuyKpO2BrOumve2KuOydmCDrrLjsnpDsl7Qg66as7YSw65+0IOuqqeuh
nS4gLnB5IOuKlCB0b2tlbml6ZSDroZwg7J296rOgIOyduOygke2VnCDrpqzthLDrn7Qo7JWU66y1
IOqysO2VqSnsnYQg7ZWY64KY66GcIO2Vqey5nOuLpC4g6re4IOuwluydgCDrlLDsmLTtkZzCt+uw
se2LseycvOuhnCDsnpDrpbjri6QuIiIiDQogICAgdHJ5Og0KICAgICAgICB0ZXh0ID0gc2NyaXB0
LnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQ0KICAgIGV4Y2Vw
dCBPU0Vycm9yOg0KICAgICAgICByZXR1cm4gW10NCiAgICBpZiBzY3JpcHQuc3VmZml4Lmxvd2Vy
KCkgPT0gIi5weSI6DQogICAgICAgIGltcG9ydCBhc3QNCiAgICAgICAgaW1wb3J0IHRva2VuaXpl
DQogICAgICAgIG91dCwgYnVmID0gW10sIFtdDQogICAgICAgIHRyeToNCiAgICAgICAgICAgIGZv
ciB0b2sgaW4gdG9rZW5pemUuZ2VuZXJhdGVfdG9rZW5zKGlvLlN0cmluZ0lPKHRleHQpLnJlYWRs
aW5lKToNCiAgICAgICAgICAgICAgICBpZiB0b2sudHlwZSA9PSB0b2tlbml6ZS5TVFJJTkc6DQog
ICAgICAgICAgICAgICAgICAgIHRyeToNCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBl
bmQoc3RyKGFzdC5saXRlcmFsX2V2YWwodG9rLnN0cmluZykpKQ0KICAgICAgICAgICAgICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uOg0KICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCh0
b2suc3RyaW5nLnN0cmlwKCJyYmZSQkZcIiciKSkNCiAgICAgICAgICAgICAgICBlbGlmIHRvay50
eXBlIGluICh0b2tlbml6ZS5OTCwgdG9rZW5pemUuQ09NTUVOVCk6DQogICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAg
aWYgYnVmOg0KICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiIi5qb2luKGJ1Zikp
DQogICAgICAgICAgICAgICAgICAgICAgICBidWYgPSBbXQ0KICAgICAgICAgICAgaWYgYnVmOg0K
ICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIiIuam9pbihidWYpKQ0KICAgICAgICAgICAgcmV0
dXJuIG91dA0KICAgICAgICBleGNlcHQgKHRva2VuaXplLlRva2VuRXJyb3IsIFN5bnRheEVycm9y
KToNCiAgICAgICAgICAgIHBhc3MNCiAgICBmb3IgcSBpbiAoJyInLCAiJyIsICJgIik6DQogICAg
ICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UocSwgIlx4MDAiKQ0KICAgIHJldHVybiB0ZXh0LnNwbGl0
KCJceDAwIikNCg0KDQpkZWYgc2NyaXB0X3BhdGhzKHNjcmlwdCk6DQogICAgIiIi7Iqk7YGs66a9
7Yq4IOyViCDrrLjsnpDsl7Qg66as7YSw65+07JeQ7IScIElSSVMg6rK966Gc7LKY65+8IOuztOyd
tOuKlCDqsoPsnYQg672R64qU64ukICjsnITqs4Qg7L2U65OcIOuYkOuKlCBgX+ycoO2LuGAg66Gc
IOyLnOyeke2VmOuKlCDqsoMuIOq4gOuhnOu4jCBgKmDCt+2PrOuntyBge31gIOyhsOqwgeydgCDs
oJzsmbgpLiIiIg0KICAgIGZvdW5kID0gW10NCiAgICBmb3IgdG9rIGluIHN0cmluZ19saXRlcmFs
cyhzY3JpcHQpOg0KICAgICAgICB0ID0gdG9rLnN0cmlwKCkNCiAgICAgICAgaWYgbm90IHQgb3Ig
KCIvIiBub3QgaW4gdCBhbmQgIlxcIiBub3QgaW4gdCkgb3IgIioiIGluIHQgb3IgInsiIGluIHQ6
DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBmb3IgcGZ4IGluIChzdHIoUk9PVCkgKyAi
XFwiLCBST09ULmFzX3Bvc2l4KCkgKyAiLyIpOg0KICAgICAgICAgICAgaWYgdC5zdGFydHN3aXRo
KHBmeCk6DQogICAgICAgICAgICAgICAgdCA9IHRbbGVuKHBmeCk6XQ0KICAgICAgICBmaXJzdCA9
IHQucmVwbGFjZSgiLyIsICJcXCIpLnN0cmlwKCJcXCIpLnNwbGl0KCJcXCIpWzBdDQogICAgICAg
IGlmIGJnLmNvZGVfb2YoZmlyc3QpIG9yIGZpcnN0LnN0YXJ0c3dpdGgoIl8iKToNCiAgICAgICAg
ICAgIGZvdW5kLmFwcGVuZCh0LnJlcGxhY2UoIi8iLCAiXFwiKS5zdHJpcCgiXFwiKSkNCiAgICBy
ZXR1cm4gZm91bmQNCg0KDQpkZWYgY2hlY2tfMTEoY2FyZHMsIG5vZGVzLCByZWdpc3RyeSwgc2Nv
cGUpOg0KICAgIHIgPSBSZXN1bHQoMTEsIDIsICLro6jtirjsoJXrs7gtMjEsIEMtMDEiKQ0KICAg
IHJlZ190b29scyA9IChyZWdpc3RyeS5nZXQoInRvb2xzIikgb3Ige30pDQogICAgcmVnX3N0b3Jl
cyA9IChyZWdpc3RyeS5nZXQoInN0b3JlcyIpIG9yIHt9KQ0KICAgIHJlZ19hY2NvdW50cyA9IChy
ZWdpc3RyeS5nZXQoImFjY291bnRzIikgb3Ige30pDQogICAgZm9yIG5pZCwgZm0gaW4gY2FyZHMu
aXRlbXMoKToNCiAgICAgICAgcmVscyA9IGZtLmdldCgicmVsYXRpb25zIikgb3Ige30NCiAgICAg
ICAgZm9yIGtleSwgdGFibGUgaW4gKCgic3RvcmVkX2F0IiwgcmVnX3N0b3JlcyksICgidXNlc190
b29sIiwgTm9uZSkpOg0KICAgICAgICAgICAgdmFscyA9IHJlbHMuZ2V0KGtleSkNCiAgICAgICAg
ICAgIGlmIG5vdCB2YWxzOg0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICBm
b3IgdiBpbiAodmFscyBpZiBpc2luc3RhbmNlKHZhbHMsIGxpc3QpIGVsc2UgW3ZhbHNdKToNCiAg
ICAgICAgICAgICAgICByLnRhcmdldHMgKz0gMQ0KICAgICAgICAgICAgICAgIGtpbmQsIF8sIHNs
dWcgPSBzdHIodikucGFydGl0aW9uKCI6IikNCiAgICAgICAgICAgICAgICAjIOuqheyEuOyEnCAz
7KCIICMxMMK3IzExOiDrjIDsg4HsnYAgYHN0b3JlOmAgLyBgdG9vbDpgwrdgYWNjb3VudDpgIOu/
kCjri6vtnowg66qp66GdKS4gSVJJUyDrhbjrk5woYGlyaXM6YCnrpbwg64yA7IOB7Jy866GcIOyT
tCDqtIDqs4TripQNCiAgICAgICAgICAgICAgICAjIOyImO2ZlSDrjbDsnbTthLAg7Jik66WY7J20
66+A66GcIOqygOymneq4sOqwgCDthrXqs7zsi5ztgqTsp4Ag7JWK64qU64ukIOKAlCDrhbjrk5zq
sIAg64+E6rWs66W8IOygnOqzte2VmOuptCDrk7HroZ3rtoDsl5AgdG9vbDrsnYQg65Ox66Gd7ZWY
6rOgIGhvc3RlZF9hdCDsnLzroZwg7J6H64qU64ukLg0KICAgICAgICAgICAgICAgIGJvb2sgPSB7
InN0b3JlIjogcmVnX3N0b3JlcywgInRvb2wiOiByZWdfdG9vbHMsICJhY2NvdW50IjogcmVnX2Fj
Y291bnRzfS5nZXQoa2luZCkNCiAgICAgICAgICAgICAgICBpZiBib29rIGlzIE5vbmUgb3Igc2x1
ZyBub3QgaW4gYm9vazoNCiAgICAgICAgICAgICAgICAgICAgci5mYWlsKG5vZGVzW25pZF1bInBh
dGgiXSwgZiJ7a2V5fSDihpIge3Z9OiDrk7HroZ3rtoAocmVnaXN0cnkueW1sKeyXkCDsl4bsnYwi
KQ0KICAgICMg65Ox66Gd67aAIOuPhOq1rCDsiqTtgazrpr3tirgg7J6Q7LK0OiDsi6TrrLwg7KG0
7J6sICsg7Iqk7YGs66a97Yq4IOyViCBJUklTIOqyveuhnOqwgCDtmITsnqwg7Y+0642U7JmAIOyd
vOy5mO2VmOuKlOqwgA0KICAgIGJ5X2Jhc2UgPSBkZWZhdWx0ZGljdChsaXN0KQ0KICAgIGZvciBu
IGluIG5vZGVzLnZhbHVlcygpOg0KICAgICAgICBieV9iYXNlW1BhdGgoblsicGF0aCJdKS5uYW1l
XS5hcHBlbmQoblsicGF0aCJdKQ0KICAgIGZvciBzbHVnLCB0IGluIHJlZ190b29scy5pdGVtcygp
Og0KICAgICAgICBwID0gdC5nZXQoInBhdGgiKQ0KICAgICAgICBpZiBub3QgcDoNCiAgICAgICAg
ICAgIGNvbnRpbnVlDQogICAgICAgIHIudGFyZ2V0cyArPSAxDQogICAgICAgIHNjcmlwdCA9IFJP
T1QgLyBwDQogICAgICAgIGlmIG5vdCBzY3JpcHQuZXhpc3RzKCk6DQogICAgICAgICAgICByLmZh
aWwoZiJyZWdpc3RyeS55bWwgdG9vbHMue3NsdWd9IiwgZiLsiqTtgazrpr3tirgg7Iuk66y8IOyX
huydjCBge3B9YCIpDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBmb3IgZnJhZyBpbiBz
Y3JpcHRfcGF0aHMoc2NyaXB0KToNCiAgICAgICAgICAgIGZpcnN0ID0gZnJhZy5zcGxpdCgiXFwi
KVswXQ0KICAgICAgICAgICAgY2FuZCA9IE5vbmUNCiAgICAgICAgICAgIGlmIChST09UIC8gZmly
c3QpLmV4aXN0cygpOg0KICAgICAgICAgICAgICAgIGNhbmQgPSBST09UIC8gZnJhZw0KICAgICAg
ICAgICAgZWxpZiBieV9iYXNlLmdldChmaXJzdCkgYW5kIGxlbihieV9iYXNlW2ZpcnN0XSkgPT0g
MToNCiAgICAgICAgICAgICAgICBjYW5kID0gUk9PVCAvIGJ5X2Jhc2VbZmlyc3RdWzBdIC8gIlxc
Ii5qb2luKGZyYWcuc3BsaXQoIlxcIilbMTpdKSBpZiAiXFwiIGluIGZyYWcgZWxzZSBST09UIC8g
YnlfYmFzZVtmaXJzdF1bMF0NCiAgICAgICAgICAgIGlmIGNhbmQgaXMgTm9uZToNCiAgICAgICAg
ICAgICAgICByLnVucmVhZGFibGUuYXBwZW5kKChwLCBmIuyhsOqwgSBge2ZyYWdbOjYwXX1gIOyd
mCDsnITsuZjrpbwg7Yq57KCVIOuquyDtlago64uo64+FIFAg7J2066aEIOuLpOyImCDrmJDripQg
66+47IOBKSIpKQ0KICAgICAgICAgICAgZWxpZiBub3QgY2FuZC5leGlzdHMoKToNCiAgICAgICAg
ICAgICAgICByLmZhaWwocCwgZiLsiqTtgazrpr3tirgg7JWIIElSSVMg6rK966Gc6rCAIO2YhOye
rCDtj7TrjZTsl5Ag7JeG7J2MOiBge2ZyYWdbOjkwXX1gIiwgIuujqO2KuOygleuzuC0yMSwgQy0w
MSIpDQogICAgaWYgci5ub190YXJnZXQ6DQogICAgICAgIHIubm90ZSA9ICJzdG9yZWRfYXTCt3Vz
ZXNfdG9vbCDrj4TsnqUgMOqxtCArIOuTseuhneu2gOyXkCBwYXRoIOyeiOuKlCDrj4TqtawgMOqx
tCDigJQg6rKA7IKsIOuMgOyDgSDsl4bsnYwiDQogICAgZWxpZiBub3QgYW55KChmbS5nZXQoInJl
bGF0aW9ucyIpIG9yIHt9KS5nZXQoInN0b3JlZF9hdCIpIG9yIChmbS5nZXQoInJlbGF0aW9ucyIp
IG9yIHt9KS5nZXQoInVzZXNfdG9vbCIpIGZvciBmbSBpbiBjYXJkcy52YWx1ZXMoKSk6DQogICAg
ICAgIHIubm90ZSA9ICLsubTrk5zsnZggc3RvcmVkX2F0wrd1c2VzX3Rvb2wg64+E7J6l7J2AIOyV
hOyngSAw6rG0LiDsnIQg64yA7IOB7J2AIOuTseuhneu2gChyZWdpc3RyeS55bWwpIGB0b29scy4q
LnBhdGhgIOyKpO2BrOumve2KuOydmCDsi6TsobTCt+uCtOu2gCDqsr3roZwg6rKA7IKs67+Q7J20
64ukIg0KICAgIHJldHVybiByDQoNCg0KZGVmIGFsaWFzX3BhdGhzKG5vZGUpOg0KICAgICIiIuyY
myDsnbTrpoQoYWxpYXNlcykg4oaSIOyYmyDsg4HrjIDqsr3roZwg7ZuE67O0LiBgROKApi9Q4oCm
YCDsspjrn7wg7Jes65+sIOuLqOqzhOqwgCDrk6Ag67OE7Lmt7J2AIOq3uOunjO2BvCDsnITsqr0g
7KGw6rCB7J2EIOuwlOq+vOuLpC4iIiINCiAgICBwYXJ0cyA9IFBhdGgobm9kZVsicGF0aCJdKS5w
YXJ0cw0KICAgIG91dCA9IFtdDQogICAgZm9yIGEgaW4gbm9kZS5nZXQoImFsaWFzZXMiKSBvciBb
XToNCiAgICAgICAgc2VncyA9IHN0cihhKS5yZXBsYWNlKCIvIiwgIlxcIikuc3BsaXQoIlxcIikN
CiAgICAgICAgaWYgbGVuKHNlZ3MpIDw9IGxlbihwYXJ0cyk6DQogICAgICAgICAgICBvdXQuYXBw
ZW5kKCJcXCIuam9pbihsaXN0KHBhcnRzWzpsZW4ocGFydHMpIC0gbGVuKHNlZ3MpXSkgKyBzZWdz
KSkNCiAgICByZXR1cm4gb3V0DQoNCg0KZGVmIGNoZWNrXzEyKG5vZGVzLCBpdGVtcywgc2NvcGUp
Og0KICAgIHIgPSBSZXN1bHQoMTIsIDIsICJHLTIyLCBDLTQ4IikNCiAgICBpZiBub3QgYW55KHIu
aXNfZGlyKCkgZm9yIHIgaW4gbWVtb3J5X3Jvb3RzKCkpOg0KICAgICAgICByLm5vdGUgPSAi6riw
7Ja1IO2PtOuNlCDsl4bsnYwiDQogICAgICAgIHJldHVybiByDQogICAgIyDtmITsnqwg7Iqk7L2U
7ZSEIOydtOumhCDsgqzsoIQo7Iuk7KG0IO2PtOuNlCDsoITrtoApICsg7JibIOydtOumhCDsiqTs
vZTtlIQg7IKs7KCEDQogICAgbGl2ZV9zY29wZSA9IHtzY29wZV9uYW1lX29mKCIiKTogIiJ9DQog
ICAgZm9yIGl0IGluIGl0ZW1zOg0KICAgICAgICBsaXZlX3Njb3BlW3Njb3BlX25hbWVfb2YoaXRb
InBhdGgiXSldID0gaXRbInBhdGgiXQ0KICAgIGZvciBuIGluIG5vZGVzLnZhbHVlcygpOg0KICAg
ICAgICBsaXZlX3Njb3BlLnNldGRlZmF1bHQoc2NvcGVfbmFtZV9vZihuWyJwYXRoIl0pLCBuWyJw
YXRoIl0pDQogICAgb2xkX3Njb3BlID0ge30NCiAgICBmb3IgbiBpbiBub2Rlcy52YWx1ZXMoKToN
CiAgICAgICAgZm9yIGFwIGluIGFsaWFzX3BhdGhzKG4pOg0KICAgICAgICAgICAgb2xkX3Njb3Bl
W3Njb3BlX25hbWVfb2YoYXApXSA9IChhcCwgblsicGF0aCJdKQ0KICAgICMg67O466y4IOuMgOyh
sCDtgqQ6IO2PtOuNlCDsoITssrQg7J2066aEKO2VreyDgSkgKyDsvZTrk5wt7ZWc6riAIOynp+yd
gCDsnbTrpoQo7KCE7LK07JeQ7IScIOycoOydvO2VmOqzoCA47J6QIOydtOyDgeydvCDrlYzrp4wp
DQogICAgZnVsbF9rZXkgPSB7UGF0aChuWyJwYXRoIl0pLm5hbWU6IG5pZCBmb3IgbmlkLCBuIGlu
IG5vZGVzLml0ZW1zKCl9DQogICAgc2hvcnRfY250ID0gQ291bnRlcihiYXNlbmFtZV9ub19wYXJl
bihQYXRoKG5bInBhdGgiXSkubmFtZSkgZm9yIG4gaW4gbm9kZXMudmFsdWVzKCkpDQogICAgc2hv
cnRfa2V5ID0ge2Jhc2VuYW1lX25vX3BhcmVuKFBhdGgoblsicGF0aCJdKS5uYW1lKTogbmlkIGZv
ciBuaWQsIG4gaW4gbm9kZXMuaXRlbXMoKQ0KICAgICAgICAgICAgICAgICBpZiBzaG9ydF9jbnRb
YmFzZW5hbWVfbm9fcGFyZW4oUGF0aChuWyJwYXRoIl0pLm5hbWUpXSA9PSAxIGFuZCBsZW4oYmFz
ZW5hbWVfbm9fcGFyZW4oUGF0aChuWyJwYXRoIl0pLm5hbWUpKSA+PSA4fQ0KICAgIGFsaWFzX2tl
eSA9IHt9DQogICAgZm9yIG5pZCwgbiBpbiBub2Rlcy5pdGVtcygpOg0KICAgICAgICBmb3IgYSBp
biBuLmdldCgiYWxpYXNlcyIpIG9yIFtdOg0KICAgICAgICAgICAgbGFzdCA9IHN0cihhKS5yZXBs
YWNlKCIvIiwgIlxcIikuc3BsaXQoIlxcIilbLTFdDQogICAgICAgICAgICBhbGlhc19rZXlbbGFz
dF0gPSBuaWQNCiAgICAgICAgICAgIHNrID0gYmFzZW5hbWVfbm9fcGFyZW4obGFzdCkNCiAgICAg
ICAgICAgIGlmIGxlbihzaykgPj0gOCBhbmQgc2sgbm90IGluIHNob3J0X2tleSBhbmQgc2sgbm90
IGluIHNob3J0X2NudDoNCiAgICAgICAgICAgICAgICBhbGlhc19rZXlbc2tdID0gbmlkDQogICAg
c2NvcGVfcHJlZml4ID0gc2NvcGVfbmFtZV9vZihzY29wZSkgaWYgc2NvcGUgZWxzZSBOb25lDQog
ICAgc3RhbGVfc2VlbiA9IHt9DQogICAgZm9yIHByb2ogaW4gc29ydGVkKHAgZm9yIHJvb3QgaW4g
bWVtb3J5X3Jvb3RzKCkgaWYgcm9vdC5pc19kaXIoKSBmb3IgcCBpbiByb290Lml0ZXJkaXIoKSk6
DQogICAgICAgIGlmIG5vdCBwcm9qLm5hbWUuc3RhcnRzd2l0aChzY29wZV9uYW1lX29mKCIiKSk6
DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBtZW0gPSBwcm9qIC8gIm1lbW9yeSINCiAg
ICAgICAgaWYgbm90IG1lbS5pc19kaXIoKToNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAg
IGZpbGVzID0gc29ydGVkKHAgZm9yIHAgaW4gbWVtLmdsb2IoIioubWQiKSkNCiAgICAgICAgaWYg
bm90IGZpbGVzOg0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgbWFwcGVkID0gbGl2ZV9z
Y29wZS5nZXQocHJvai5uYW1lKQ0KICAgICAgICBpZiBtYXBwZWQgaXMgTm9uZToNCiAgICAgICAg
ICAgIG9sZCA9IG9sZF9zY29wZS5nZXQocHJvai5uYW1lKQ0KICAgICAgICAgICAgaWYgc2NvcGVf
cHJlZml4IGFuZCBub3QgcHJvai5uYW1lLnN0YXJ0c3dpdGgoc2NvcGVfcHJlZml4KSBhbmQgbm90
IChvbGQgYW5kIGluX3Njb3BlKG9sZFsxXSwgc2NvcGUpKToNCiAgICAgICAgICAgICAgICBjb250
aW51ZQ0KICAgICAgICAgICAgci50YXJnZXRzICs9IGxlbihmaWxlcykNCiAgICAgICAgICAgIGlm
IG9sZDoNCiAgICAgICAgICAgICAgICBoaW50ID0gZiIg4oaSIOyYmyDqsr3roZwgYHtvbGRbMF19
YCA9IO2YhOyerCBge29sZFsxXX1gIg0KICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAg
ICBncm93biA9IHNvcnRlZCgodiBmb3IgaywgdiBpbiBsaXZlX3Njb3BlLml0ZW1zKCkgaWYgdiBh
bmQgay5zdGFydHN3aXRoKHByb2oubmFtZSkpLCBrZXk9bGVuKQ0KICAgICAgICAgICAgICAgIGRl
ZXBlciA9IHNvcnRlZCgodiBmb3IgaywgdiBpbiBsaXZlX3Njb3BlLml0ZW1zKCkgaWYgdiBhbmQg
cHJvai5uYW1lLnN0YXJ0c3dpdGgoayArICItIikpLCBrZXk9bGVuKQ0KICAgICAgICAgICAgICAg
IGlmIGdyb3duOg0KICAgICAgICAgICAgICAgICAgICBoaW50ID0gZiIgKGFsaWFzZXMg7JeQIOyX
huydjCDCtyDsnbTrpoTsnbQg64qY7Ja064KcIO2YhOyerCDtj7TrjZQg7ZuE67O0IGB7Z3Jvd25b
MF19YCDigJQg7YOc6re4IOy2lOqwgCDqsJzrqoUg7LaU7KCVLCDsgqzrnowg7ZmV7J24KSINCiAg
ICAgICAgICAgICAgICBlbGlmIGRlZXBlcjoNCiAgICAgICAgICAgICAgICAgICAgaGludCA9IGYi
IChhbGlhc2VzIOyXkCDsl4bsnYwgwrcg6rCA7J6lIOq5iuydgCDtmITsnqwg7KGw7IOBIGB7ZGVl
cGVyWy0xXX1gIOq5jOyngOunjCDrjIDsnZEg4oCUIOq3uCDslYTrnpgg7Y+0642U6rCAIOqwnOuq
hcK37J2064+Z65CoLCDsgqzrnowg7ZmV7J24KSINCiAgICAgICAgICAgICAgICBlbHNlOg0KICAg
ICAgICAgICAgICAgICAgICBoaW50ID0gIiAoYWxpYXNlcyDroZzrj4Qg7ZW07ISdIOyViCDrkKgg
4oCUIOyCrOuejCDtmZXsnbgpIg0KICAgICAgICAgICAgci5mYWlsKGYiX2FnZW50XFxjbGF1ZGVc
XHByb2plY3RzXFx7cHJvai5uYW1lfVxcbWVtb3J5ICh7bGVuKGZpbGVzKX3tjIzsnbwpIiwNCiAg
ICAgICAgICAgICAgICAgICBmIuq4sOyWtSDsiqTsvZTtlIQg7Y+0642U6rCAIO2YhOyerCDslrTr
lqQgSVJJUyDtj7TrjZTsl5Drj4Qg64yA7J2R7ZWY7KeAIOyViuydjHtoaW50fSIsICJHLTIyLCBD
LTQ4IikNCiAgICAgICAgICAgIHN0YWxlX3NlZW5bcHJvai5uYW1lXSA9IGxlbihmaWxlcykNCiAg
ICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIGZvciBmIGluIGZpbGVzOg0KICAgICAgICAgICAg
Zm0gPSBiZy5yZWFkX2Zyb250bWF0dGVyKGYpIG9yIHt9DQogICAgICAgICAgICB0ZXh0ID0gZi5y
ZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikNCiAgICAgICAgICAg
IGFib3V0ID0gW10NCiAgICAgICAgICAgIGZvciBrIGluICgibm9kZSIsICJhYm91dCIpOg0KICAg
ICAgICAgICAgICAgIHYgPSBmbS5nZXQoaykgb3IgKChmbS5nZXQoInJlbGF0aW9ucyIpIG9yIHt9
KS5nZXQoImFib3V0IikgaWYgaXNpbnN0YW5jZShmbS5nZXQoInJlbGF0aW9ucyIpLCBkaWN0KSBl
bHNlIE5vbmUpDQogICAgICAgICAgICAgICAgaWYgdjoNCiAgICAgICAgICAgICAgICAgICAgYWJv
dXQgKz0gdiBpZiBpc2luc3RhbmNlKHYsIGxpc3QpIGVsc2UgW3ZdDQogICAgICAgICAgICBoaXRz
ID0ge25pZCBmb3Iga2V5LCBuaWQgaW4gZnVsbF9rZXkuaXRlbXMoKSBpZiBrZXkgaW4gdGV4dH0N
CiAgICAgICAgICAgIGhpdHMgfD0ge25pZCBmb3Iga2V5LCBuaWQgaW4gc2hvcnRfa2V5Lml0ZW1z
KCkgaWYga2V5IGluIHRleHR9DQogICAgICAgICAgICBhbGlhc19oaXRzID0geyhrZXksIG5pZCkg
Zm9yIGtleSwgbmlkIGluIGFsaWFzX2tleS5pdGVtcygpIGlmIGtleSBpbiB0ZXh0IGFuZCBuaWQg
bm90IGluIGhpdHN9DQogICAgICAgICAgICBpZiBub3QgYWJvdXQgYW5kIG5vdCBoaXRzIGFuZCBu
b3QgYWxpYXNfaGl0czoNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgbWVt
b19yZWwgPSBmIl9hZ2VudFxcY2xhdWRlXFxwcm9qZWN0c1xce3Byb2oubmFtZX1cXG1lbW9yeVxc
e2YubmFtZX0iDQogICAgICAgICAgICByZWxldmFudCA9IFtuaWQgZm9yIG5pZCBpbiBsaXN0KGhp
dHMpICsgW2FbMV0gZm9yIGEgaW4gYWxpYXNfaGl0c10gaWYgaW5fc2NvcGUobm9kZXNbbmlkXVsi
cGF0aCJdLCBzY29wZSldDQogICAgICAgICAgICBpZiBzY29wZSBhbmQgbm90IHJlbGV2YW50IGFu
ZCBub3QgYWJvdXQ6DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIHIudGFy
Z2V0cyArPSAxDQogICAgICAgICAgICBmb3IgYSBpbiBhYm91dDoNCiAgICAgICAgICAgICAgICBu
aWQgPSBzdHIoYSkuc3BsaXQoIi8iLCAxKVswXQ0KICAgICAgICAgICAgICAgIGlmIG5pZCBub3Qg
aW4gbm9kZXM6DQogICAgICAgICAgICAgICAgICAgIHIuZmFpbChtZW1vX3JlbCwgZiJhYm91dC9u
b2RlIOKGkiBge2F9YCDqsIAg6re4656Y7ZSE7JeQIOyXhuydjCIpDQogICAgICAgICAgICAgICAg
ZWxzZToNCiAgICAgICAgICAgICAgICAgICAgaGl0cy5hZGQobmlkKQ0KICAgICAgICAgICAgZm9y
IGtleSwgbmlkIGluIHNvcnRlZChhbGlhc19oaXRzKToNCiAgICAgICAgICAgICAgICAjIOuqheyE
uOyEnCAyLTI6ICLqsoDspp3quLDripQg7JibIOydtOumhOycvOuhnCDqsoDsg4nrkJwg7J6U7ZW0
66W8IGFsaWFzZXMg66qp66Gd7Jy866GcIO2VtOyEne2VnOuLpCIuDQogICAgICAgICAgICAgICAg
IyDrs7jrrLjsl5Ag64Ko7J2AIOyYmyDsnbTrpoTsnYAgYWxpYXProZwg7ZiE7J6sIOuFuOuTnOqw
gCDtkoDrpqzrqbQgJ+2VtOyEneuQqCfsnbTsp4Ag7Iuk7Yyo6rCAIOyVhOuLiOuLpCjqsJzrqoUg
7J2066ClIOyEnOyIoOydhCDrs7TsobTtlZjquLAg7JyE7ZWoKS4NCiAgICAgICAgICAgICAgICAj
IOyLpO2MqOuhnCDshLjripQg6rKD7J2AIGFsaWFz66Gc64+EIOyViCDtkoDrpqzripQg6rK97Jqw
KOychCBhYm91dC9ub2RlIOu2hOq4sCnsmYAg7Iqk7L2U7ZSEIOu2iOydvOy5mCjslYTrnpgp67+Q
7J2064ukLg0KICAgICAgICAgICAgICAgIGhpdHMuYWRkKG5pZCkNCiAgICAgICAgICAgICAgICBy
LmluZm8obWVtb19yZWwsIGYi7JibIOydtOumhCBge2tleX1gIOKAlCBhbGlhc2Vz66GcIO2YhOye
rCBge25vZGVzW25pZF1bJ3BhdGgnXX1gIOuhnCDtlbTshJ3rkKgo67O466y4IOuztOyhtCkiKQ0K
ICAgICAgICAgICAgZm9yIG5pZCBpbiBzb3J0ZWQoaGl0cywga2V5PWxhbWJkYSB4OiBub2Rlc1t4
XVsicGF0aCJdKToNCiAgICAgICAgICAgICAgICBucGF0aCA9IG5vZGVzW25pZF1bInBhdGgiXQ0K
ICAgICAgICAgICAgICAgIGlmIG5vZGVzW25pZF1bInR5cGUiXSA9PSAicm9sZSI6DQogICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlICAgIyDsl63tlaAg7J2066aEIOyWuOq4ieydgCDrhIjrrLQg
7J2867CY7KCB7J206528ICfrrLTqtIAg7Iqk7L2U7ZSEJyDqt7zqsbDroZwg7IK87KeAIOyViuuK
lOuLpA0KICAgICAgICAgICAgICAgIGlmIG1hcHBlZCA9PSAiIiBvciBpbl9zY29wZShucGF0aCwg
bWFwcGVkKSBvciBpbl9zY29wZShtYXBwZWQsIG5wYXRoKToNCiAgICAgICAgICAgICAgICAgICAg
Y29udGludWUNCiAgICAgICAgICAgICAgICAjIGBhYm91dDpgIOydtCDsnpDquLAg7Iqk7L2U7ZSE
IOuFuOuTnOulvCDqsIDrpqztgqTrqbQsIOuzuOusuOydmCDri6Trpbgg64W465OcIOyWuOq4ieyd
gCDsg4HtmLjssLjsobDsp4Ag7Jik67Cw7LmY6rCAIOyVhOuLiOuLpA0KICAgICAgICAgICAgICAg
ICMgKOyYiDog7ZWcIOyXre2VoOydmCDquLDslrXsnbQg64uk66W4IOyXre2VoOydmCDslbHsnYQg
7KCV67O47Jy866GcIOqwgOumrO2CtCkuIOuPhOyepeydtCDsl4bsnYQg65WM66eMIOyYpOuwsOy5
mOuhnCDshLzri6QuDQogICAgICAgICAgICAgICAgaWYgYWJvdXQgYW5kIGFueShzdHIoYSkuc3Bs
aXQoIi8iLCAxKVswXSBpbiBub2Rlcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YW5kIChtYXBwZWQgPT0gIiIgb3IgaW5fc2NvcGUobm9kZXNbc3RyKGEpLnNwbGl0KCIvIiwgMSlb
MF1dWyJwYXRoIl0sIG1hcHBlZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3IgaW5fc2NvcGUobWFwcGVkLCBub2Rlc1tzdHIoYSkuc3BsaXQoIi8iLCAxKVswXV1bInBh
dGgiXSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYSBpbiBhYm91dCk6
DQogICAgICAgICAgICAgICAgICAgIHIuaW5mbyhtZW1vX3JlbCwgZiJge25wYXRofWAg7J2EIOyD
ge2YuOywuOyhsCjsnpDquLAgYGFib3V0OmAg64qUIOyKpOy9lO2UhOyZgCDsnbzsuZgpIikNCiAg
ICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICByLmZhaWwobWVtb19y
ZWwsIGYiYHtucGF0aH1gIOydhCDri6Tro6jripQg6riw7Ja17J20IOustOq0gO2VnCDsiqTsvZTt
lIQgYHttYXBwZWR9YCDsl5Ag7J6I7J2MIikNCiAgICBpZiByLm5vX3RhcmdldDoNCiAgICAgICAg
ci5ub3RlID0gIuuFuOuTnOulvCDslrjquIntlZjripQg6riw7Ja1IO2MjOydvOydtCDrspTsnIQg
7JWI7JeQIOyXhuydjCDigJQg6rKA7IKsIOuMgOyDgSDsl4bsnYwiDQogICAgZWxzZToNCiAgICAg
ICAgci5ub3RlID0gIuuzuOusuCDrjIDsobAgPSDtj7TrjZQg7KCE7LK0IOydtOumhCDrmJDripQg
7Jyg7J287ZWcIGDsvZTrk5wt7ZWc6riAYCDsnbTrpoTsnbQg6re464yA66GcIOuCmOyYrCDrlYzr
p4wo67O07IiY7KCBKS4gYGFib3V0OmAg64+E7J6l7J2AIOyVhOyngSAw6rG0Ig0KICAgIHJldHVy
biByDQoNCg0KZGVmIGxhdGVzdF9jbGFzc2lmaWNhdGlvbigpOg0KICAgIGNhbmRzID0gc29ydGVk
KFJFUE9SVF9ESVIuZ2xvYigiKi3rtoTrpZgtKi5tZCIpKQ0KICAgIHJldHVybiBjYW5kc1stMV0g
aWYgY2FuZHMgZWxzZSBOb25lDQoNCg0KZGVmIGp1ZGdlbWVudF9jYW5kaWRhdGVzKHJlcG9ydCk6
DQogICAgIiIi67aE66WYIOumrO2PrO2KuCDtjJDsoJXtkZzsl5DshJwg7YyQ7KCV7J20IOqwnOuq
hcK37J2064+ZwrfqsqnrpqzCt+uztOq0gOyduCDtlonsnZgg6rK966Gc66W8IOuqqOydgOuLpC4i
IiINCiAgICBvdXQgPSBbXQ0KICAgIGlmIG5vdCByZXBvcnQ6DQogICAgICAgIHJldHVybiBvdXQN
CiAgICBmb3IgbGluZSBpbiByZXBvcnQucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIsIGVycm9y
cz0icmVwbGFjZSIpLnNwbGl0bGluZXMoKToNCiAgICAgICAgaWYgbm90IGxpbmUuc3RhcnRzd2l0
aCgifCAiKToNCiAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgIGNlbGxzID0gW2Muc3RyaXAo
KSBmb3IgYyBpbiBsaW5lLnN0cmlwKCkuc3RyaXAoInwiKS5zcGxpdCgifCIpXQ0KICAgICAgICBp
ZiBsZW4oY2VsbHMpIDwgNyBvciBub3QgY2VsbHNbMF0uaXNkaWdpdCgpOg0KICAgICAgICAgICAg
Y29udGludWUNCiAgICAgICAganVkZ2UgPSBjZWxsc1s0XS5yZXBsYWNlKCIqIiwgIiIpLnN0cmlw
KCkNCiAgICAgICAgaWYganVkZ2UgaW4gTU9WRV9KVURHRU1FTlRTOg0KICAgICAgICAgICAgb3V0
LmFwcGVuZCgoY2VsbHNbMl0uc3RyaXAoImAiKS5zdHJpcCgpLCBqdWRnZSwgY2VsbHNbNV0pKQ0K
ICAgIHJldHVybiBvdXQNCg0KDQpkZWYgY2hlY2tfMTMobm9kZXMsIHNjb3BlLCBjYW5kaWRhdGVz
LCByZXBvcnQpOg0KICAgIHIgPSBSZXN1bHQoMTMsIDMsICLrj5nqsrAg66qp66GdIOq3nOy5mSIp
DQogICAgZm9yIG5pZCwgbiBpbiBub2Rlcy5pdGVtcygpOg0KICAgICAgICBpZiBub3Qgbi5nZXQo
ImZyb3plbiIpIG9yIG5vdCBpbl9zY29wZShuWyJwYXRoIl0sIHNjb3BlKToNCiAgICAgICAgICAg
IGNvbnRpbnVlDQogICAgICAgIHIudGFyZ2V0cyArPSAxDQogICAgICAgIGJhc2UgPSBQYXRoKG5b
InBhdGgiXSkubmFtZQ0KICAgICAgICBmb3IgcGF0aCwganVkZ2UsIHJ1bGUgaW4gY2FuZGlkYXRl
czoNCiAgICAgICAgICAgIGxhc3QgPSBwYXRoLnJlcGxhY2UoIi8iLCAiXFwiKS5yc3RyaXAoIlxc
Iikuc3BsaXQoIlxcIilbLTFdDQogICAgICAgICAgICBpZiBsYXN0ID09IGJhc2Ugb3IgcGF0aC5y
ZXBsYWNlKCIvIiwgIlxcIikgPT0gblsicGF0aCJdOg0KICAgICAgICAgICAgICAgIHIuZmFpbChu
WyJwYXRoIl0sIGYi64+Z6rKwIOuFuOuTnOqwgCDtjJDsoJUgYHtqdWRnZX1gIO2bhOuztOyXkCDs
mKzrnbwg7J6I7J2MICh7cmVwb3J0Lm5hbWV9IMK3IOq3vOqxsCB7cnVsZX0pIikNCiAgICByLm5v
dGUgPSBmIu2bhOuztCDrqqnroZ0gPSBge3JlcG9ydC5uYW1lfWAg7YyQ7KCV7ZGc7J2YIOqwnOuq
hcK37J2064+ZwrfqsqnrpqzCt+uztOq0gCB7bGVuKGNhbmRpZGF0ZXMpfe2WiSIgaWYgcmVwb3J0
IGVsc2UgIuu2hOulmCDrpqztj6ztirgg7JeG7J2MIOKAlCDtm4Trs7Qg66qp66GdIDDtlokiDQog
ICAgaWYgci5ub190YXJnZXQ6DQogICAgICAgIHIubm90ZSA9ICLrspTsnIQg7JWI7JeQIGZyb3pl
biDrhbjrk5wg7JeG7J2MIOKAlCDqsoDsgqwg64yA7IOBIOyXhuydjCINCiAgICByZXR1cm4gcg0K
DQoNCmRlZiBjaGVja18xNChub2Rlcywgc2NvcGUsIGNhbmRpZGF0ZXMsIHJlcG9ydCk6DQogICAg
ciA9IFJlc3VsdCgxNCwgMywgIuuqheyEuOyEnCA0LTEiKQ0KICAgIGZvciBuaWQsIG4gaW4gbm9k
ZXMuaXRlbXMoKToNCiAgICAgICAgaWYgbm90IG4uZ2V0KCJzZW5zaXRpdmUiKSBvciBub3QgaW5f
c2NvcGUoblsicGF0aCJdLCBzY29wZSk6DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBy
LnRhcmdldHMgKz0gMQ0KICAgICAgICBiYXNlID0gUGF0aChuWyJwYXRoIl0pLm5hbWUNCiAgICAg
ICAgZm9yIHBhdGgsIGp1ZGdlLCBydWxlIGluIGNhbmRpZGF0ZXM6DQogICAgICAgICAgICBpZiBi
YXNlIGluIHBhdGgucmVwbGFjZSgiLyIsICJcXCIpOg0KICAgICAgICAgICAgICAgIHIuZmFpbChu
WyJwYXRoIl0sIGYic2Vuc2l0aXZlIOuFuOuTnCjrmJDripQg7ZWY7JyEKeqwgCDtjJDsoJUgYHtq
dWRnZX1gIO2bhOuztOyXkCDsmKzrnbwg7J6I7J2MICh7cmVwb3J0Lm5hbWV9KSIpDQogICAgaWYg
ci5ub190YXJnZXQ6DQogICAgICAgIHIubm90ZSA9ICLsubTrk5zsl5AgYHNlbnNpdGl2ZTogdHJ1
ZWAg6rCAIOyVhOyngSAw6rG0IOKAlCDqsoDsgqwg64yA7IOBIOyXhuydjCjsmpTslb3Ct+qzteqw
nCDqs4Ttmo0g66qp66Gd64+EIO2YhOyerCDsl4bsnYwpIg0KICAgIHJldHVybiByDQoNCg0KIyDi
lIDilIAg66as7Y+s7Yq4IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgA0KDQpNQVhfUk9XUyA9IDEyMA0KDQoNCmRlZiBtZF9yb3dzKHJvd3MpOg0KICAg
IHJldHVybiBbZiJ8IGB7cH1gIHwge3J1bGV9IHwge3JlYXNvbi5yZXBsYWNlKCd8JywgJ1xcfCcp
fSB8IiBmb3IgcCwgcnVsZSwgcmVhc29uIGluIHJvd3NdDQoNCg0KZGVmIGJ1aWxkX3JlcG9ydChz
Y29wZSwgZjEsIGYyLCByZXN1bHRzLCBtZXRhKToNCiAgICBMID0gW10NCiAgICBzY29wZV9sYWJl
bCA9IHNjb3BlIG9yICLsoITssrQiDQogICAgTCArPSBbZiIjIElSSVMg7Jio7Yao66Gc7KeAIOqy
gOymnSDrpqztj6ztirgg4oCUIHtUT0RBWX0gwrcg67KU7JyEIHtzY29wZV9sYWJlbH0iLCAiIiwN
CiAgICAgICAgICBmIj4gYHB5dGhvbiBfb250b2xvZ3kvdmFsaWRhdGUucHl7KCcgLS1zY29wZSAn
ICsgY2hyKDM0KSArIHNjb3BlICsgY2hyKDM0KSkgaWYgc2NvcGUgZWxzZSAnJ31gIMK3IOygleuz
uCA9IGBJUklTLeyYqO2GqOuhnOyngC5tZGAgNeygiCjqsoDspp0gM+y4tcK36riw6rOEIOqygOyC
rCAxNOyihSkiLA0KICAgICAgICAgICI+ICoq7J296riwIOyghOyaqS4qKiDsnbQg66as7Y+s7Yq4
IO2MjOydvCDsmbjsl5Ag7JWE66y06rKD64+EIOyTsOyngCDslYrslZjri6QuIDPsuLUg7Iuk7Yyo
64qUIOyekOuPmSDsiJjsoJUg7JeG7J20ICoq7Lap64+M7ZGcIOy0iOyViCDtm4Trs7QqKuuhnOun
jCDsmKzrprDri6Qo7IKs7Jqp7J6QIOqysOyglSkuIiwNCiAgICAgICAgICBmIj4g7J6F66ClOiBn
cmFwaC5qc29uIOuFuOuTnCB7bWV0YVsnbm9kZXMnXX0o67KU7JyEIOyViCB7bWV0YVsnbm9kZXNf
aW5fc2NvcGUnXX0pIMK3IOyKpOy6lCDtj7TrjZQge21ldGFbJ2l0ZW1zJ119KOychOqzhCB7bWV0
YVsnaGllciddfSDCtyDsnKDti7gge21ldGFbJ3V0aWxzJ119IMK3IOyEnOuejSB7bWV0YVsnZHJh
d2VycyddfSkgwrcg6riw7Ja1IO2MjOydvCB7bWV0YVsnbWVtb3JpZXMnXX0gwrcg65Ox66Gd67aA
IOuPhOq1rCB7bWV0YVsncmVnX3Rvb2xzJ119L+yggOyepeyGjCB7bWV0YVsncmVnX3N0b3Jlcydd
fSDCtyDtm4Trs7Qg66qp66GdID0ge21ldGFbJ2NsYXNzX3JlcG9ydCddfSIsDQogICAgICAgICAg
IiJdDQogICAgIyDtlZzriIjsl5ANCiAgICBhbGxfciA9IFtmMSwgZjJdICsgcmVzdWx0cw0KICAg
IGNvdW50ZWQgPSBbciBmb3IgciBpbiByZXN1bHRzIGlmIG5vdCByLm5vX3RhcmdldF0NCiAgICB0
b3RfdCA9IHN1bShyLnRhcmdldHMgZm9yIHIgaW4gY291bnRlZCkNCiAgICB0b3RfcCA9IHN1bShy
LnBhc3NlZCBmb3IgciBpbiBjb3VudGVkKQ0KICAgIEwgKz0gWyIjIyAxLiDtlZzriIjsl5AiLCAi
IiwNCiAgICAgICAgICAi7IOB7YOcIOq8rOumrO2RnDogYOyZhOujjGAgPSDqsoDsgqwg7Iuk7ZaJ
65CoIMK3IGDrjIDquLBgID0g64yA7IOB7J20IDDqsbTsnbTrnbwg6rKA7IKs7ZWgIOqyg+ydtCDs
l4bsnYwo6rSA6rOEIOyImO2ZlSDrkqQg64uk7IucKS4iLA0KICAgICAgICAgICIiLA0KICAgICAg
ICAgICJgYGB0ZXh0IiwNCiAgICAgICAgICBmInsn7KCE7LK0KDE07KKFLCDrjIDsg4Eg7J6I64qU
IOqygOyCrCknOjwyNn17YmFyKHRvdF9wLCB0b3RfdCl9ICAoe3RvdF9wfS97dG90X3R9KSAgIO2G
teqzvC/rjIDsg4EiLA0KICAgICAgICAgICIiXQ0KICAgIGZvciByIGluIFtmMSwgZjJdOg0KICAg
ICAgICBMLmFwcGVuZChmInsoJ+yghOygnCAnICsgc3RyKHIubm8pICsgJygnICsgc3RyKHIubGF5
ZXIpICsgJ+y4tSknKTo8MjZ9e2JhcihyLnBhc3NlZCwgci50YXJnZXRzKX0gICh7ci5wYXNzZWR9
L3tyLnRhcmdldHN9KSAgIHsn7JmE66OMJyBpZiByLnRhcmdldHMgZWxzZSAn64yA6riwJ30iKQ0K
ICAgIEwuYXBwZW5kKCIiKQ0KICAgIGZvciByIGluIHJlc3VsdHM6DQogICAgICAgIG5hbWUgPSBm
IiN7ci5ubzo8M317ci5sYXllcn3suLUiDQogICAgICAgIHRhaWwgPSAi64yA6riwIiBpZiByLm5v
X3RhcmdldCBlbHNlICLsmYTro4wiDQogICAgICAgIEwuYXBwZW5kKGYie25hbWU6PDI2fXtiYXIo
ci5wYXNzZWQsIHIudGFyZ2V0cyl9ICAoe3IucGFzc2VkfS97ci50YXJnZXRzfSkgICB7dGFpbH0i
KQ0KICAgIEwgKz0gWyJgYGAiLCAiIiwgIuq4sOykgCA9IOqwgSDqsoDsgqzsnZgg64yA7IOBIOyI
mCjrhbjrk5zCt+2PtOuNlMK37YyM7J28wrfqtIDqs4Qg65OxLCDqsoDsgqzrp4jri6Qg64uk66aE
KSDspJEg7Iuk7YyowrftjJDrj4XrtojriqXsnbQg7JWE64uMIOyImC4g7Y287IS87Yq464qUIOuC
tOumvC4iLCAiIiwNCiAgICAgICAgICAifCAjIHwg6rKA7IKsIHwg7Li1IHwg64yA7IOBIHwg7Ya1
6rO8IHwg7Iuk7YyoIHwg7YyQ64+F67aI64qlIHwg7IOB7YOcIHwg67mE6rOgIHwiLCAifC0tLXwt
LS18LS0tfC0tLXwtLS18LS0tfC0tLXwtLS18LS0tfCIsDQogICAgICAgICAgZiJ8IOyghOygnCB8
IDHsuLUg7ZiV7IudIOKAlCDrqLjrpqzrp5Ag7YyM7IuxwrftlYTsiJgg7IaN7ISxwrdJRMK37ZeI
7JqpIOqwkig1LTIg7ZGcIOyYiOyLnCwgMTTsooUg67CWKSB8IDEgfCB7ZjEudGFyZ2V0c30gfCB7
ZjEucGFzc2VkfSB8IHtsZW4oZjEuZmFpbHMpfSB8IDAgfCB7J+yZhOujjCcgaWYgZjEudGFyZ2V0
cyBlbHNlICfrjIDquLAnfSB8IOyLpO2MqCDsiJjripQg64W465Oc6rCAIOyVhOuLiOudvCDrrLjs
oJwg6rG07IiYKO2VnCDrhbjrk5wg7Jes65+sIOqxtCDqsIDriqUpIHwiLA0KICAgICAgICAgIGYi
fCDsoITsoJwgfCAy7Li1IOy5tOuTnCDsoJXtlakg4oCUIHRydXRowrdkcmF3ZXJzwrd0YWdzwrdh
bGlhc2Vzwrdjb2RlIOyLpOusvCDrjIDsobAoNS0yIO2RnCDsmIjsi5wpIHwgMiB8IHtmMi50YXJn
ZXRzfSB8IHtmMi5wYXNzZWR9IHwge2xlbihmMi5mYWlscyl9IHwgMCB8IHsn7JmE66OMJyBpZiBm
Mi50YXJnZXRzIGVsc2UgJ+uMgOq4sCd9IHwg6rCZ7J2MIHwiXQ0KICAgIGZvciAobm8sIG5hbWUs
IHJ1bGUsIGxheWVyKSwgciBpbiB6aXAoQ0hFQ0tTLCByZXN1bHRzKToNCiAgICAgICAgc3RhdHVz
ID0gIuuMgOq4sCIgaWYgci5ub190YXJnZXQgZWxzZSAi7JmE66OMIg0KICAgICAgICBMLmFwcGVu
ZChmInwge25vfSB8IHtuYW1lfSB8IHtsYXllcn0gfCB7ci50YXJnZXRzfSB8IHtyLnBhc3NlZH0g
fCB7bGVuKHIuZmFpbHMpfSB8IHtsZW4oci51bnJlYWRhYmxlKX0gfCB7c3RhdHVzfSB8IHtyLm5v
dGV9IHwiKQ0KICAgIEwgKz0gWyIiLCAi7Li1IOucuzogKiox7Li1IO2YleyLnSoqID0g7Lm065Oc
IOyekOyytOqwgCDsmKzrsJTrpbjqsIAo7Iuk7YyoIOKGkiDsubTrk5wg7IiY7KCVKSDCtyAqKjLs
uLUg7KCV7ZWpKiogPSDsubTrk5zsmYAg7Iuk66y87J20IOunnuuKlOqwgCjsi6TtjKgg4oaSIOyL
pOusvCDrmJDripQg7Lm065OcIOyImOyglSkgwrcgKioz7Li1IOq3nOy5mSoqID0g6rec7LmZ64yA
7J6l7J2EIOyngO2CpOuKlOqwgCjsi6TtjKgg4oaSIOyekOuPmSDsiJjsoJUg7JeG7J2MLCDstqnr
j4ztkZwg7LSI7JWIKS4iLCAiIl0NCg0KICAgIGRlZiBzZWN0aW9uKHRpdGxlLCBycywgY29uZmxp
Y3Q9RmFsc2UpOg0KICAgICAgICBMLmFwcGVuZCh0aXRsZSkNCiAgICAgICAgTC5hcHBlbmQoIiIp
DQogICAgICAgIGlmIGNvbmZsaWN0Og0KICAgICAgICAgICAgTC5hcHBlbmQoIj4g7J20IOy4teyd
mCDrqqjrk6Ag7ZaJ7J2AICoq7Lap64+M7ZGcIOy0iOyViCDtm4Trs7QqKuuLpC4g7YyQ7KCVKOyc
oOyngC/qsJzrqoUv7J2064+ZL+qyqeumrC/rs7TqtIAv6rec7LmZ6rCc7KCVL+uztOulmCnsnYAg
7IKs7Jqp7J6Q6rCAIO2VnOuLpC4iKQ0KICAgICAgICAgICAgTC5hcHBlbmQoIiIpDQogICAgICAg
IGFueV9yb3dzID0gRmFsc2UNCiAgICAgICAgZm9yIHIgaW4gcnM6DQogICAgICAgICAgICBsYWJl
bCA9IGYi7KCE7KCcIHtyLm5vfSIgaWYgaXNpbnN0YW5jZShyLm5vLCBzdHIpIGVsc2UgZiIje3Iu
bm99Ig0KICAgICAgICAgICAgaWYgci5ub190YXJnZXQ6DQogICAgICAgICAgICAgICAgTC5hcHBl
bmQoZiIjIyMge2xhYmVsfSDigJQg6rKA7IKsIOuMgOyDgSDsl4bsnYwgKHtyLm5vdGV9KSIpDQog
ICAgICAgICAgICAgICAgTC5hcHBlbmQoIiIpDQogICAgICAgICAgICAgICAgY29udGludWUNCiAg
ICAgICAgICAgIGluZm9zID0gZ2V0YXR0cihyLCAiaW5mb3MiLCBbXSkNCiAgICAgICAgICAgIGlm
IG5vdCByLmZhaWxzIGFuZCBub3Qgci51bnJlYWRhYmxlIGFuZCBub3QgaW5mb3M6DQogICAgICAg
ICAgICAgICAgTC5hcHBlbmQoZiIjIyMge2xhYmVsfSDigJQg7Iuk7YyoIDDqsbQgKOuMgOyDgSB7
ci50YXJnZXRzfSkiKQ0KICAgICAgICAgICAgICAgIEwuYXBwZW5kKCIiKQ0KICAgICAgICAgICAg
ICAgIGNvbnRpbnVlDQogICAgICAgICAgICBhbnlfcm93cyA9IFRydWUNCiAgICAgICAgICAgIEwu
YXBwZW5kKGYiIyMjIHtsYWJlbH0g4oCUIOyLpO2MqCB7bGVuKHIuZmFpbHMpfeqxtCDCtyDtjJDr
j4XrtojriqUge2xlbihyLnVucmVhZGFibGUpfeqxtCDCtyDtlbTshJ3rkKgge2xlbihpbmZvcyl9
6rG0ICjrjIDsg4Ege3IudGFyZ2V0c30pIikNCiAgICAgICAgICAgIEwuYXBwZW5kKCIiKQ0KICAg
ICAgICAgICAgaWYgaW5mb3M6DQogICAgICAgICAgICAgICAgIyDthrXqs7ztlojsp4Drp4wg7IKs
656M7J20IOyVjOyVhOyVvCDtlaAg6rKDKOyYmyDsnbTrpoTsnbQgYWxpYXNlcyDroZwg7ZKA66aw
IOyelO2VtCwg7IOB7Zi47LC47KGwKS4g7Iio6riw7KeAIOyViuqzoCDsoITrtoAg7KCB64qU64uk
Lg0KICAgICAgICAgICAgICAgIEwuYXBwZW5kKCLtlbTshJ3rkKgo7Ya16rO8IOKAlCDrqoXshLjs
hJwgMi0ywrcz7KCIICMxNCDsl5Ag65Sw6528IOyLpO2MqOuhnCDshLjsp4Ag7JWK7J2MLiDrs7jr
rLjsnZgg7JibIO2RnOq4sOuKlCDsgqzrnozsnbQg7JuQ7ZWY66m0IOqwseyLoCk6IikNCiAgICAg
ICAgICAgICAgICBMLmFwcGVuZCgiIikNCiAgICAgICAgICAgICAgICBmb3IgcCwgd2h5IGluIGlu
Zm9zWzo4MF06DQogICAgICAgICAgICAgICAgICAgIEwuYXBwZW5kKGYiLSBge3B9YCDigJQge3do
eX0iKQ0KICAgICAgICAgICAgICAgIGlmIGxlbihpbmZvcykgPiA4MDoNCiAgICAgICAgICAgICAg
ICAgICAgTC5hcHBlbmQoZiItIOKApiDsmbgge2xlbihpbmZvcykgLSA4MH3qsbQiKQ0KICAgICAg
ICAgICAgICAgIEwuYXBwZW5kKCIiKQ0KICAgICAgICAgICAgaWYgci5mYWlsczoNCiAgICAgICAg
ICAgICAgICBMLmFwcGVuZCgifCDqsr3roZwgfCDqt7zqsbAg6rec7LmZSUQgfCDtlZwg7KSEIOyd
tOycoCB8IikNCiAgICAgICAgICAgICAgICBMLmFwcGVuZCgifC0tLXwtLS18LS0tfCIpDQogICAg
ICAgICAgICAgICAgTC5leHRlbmQobWRfcm93cyhyLmZhaWxzWzpNQVhfUk9XU10pKQ0KICAgICAg
ICAgICAgICAgIGlmIGxlbihyLmZhaWxzKSA+IE1BWF9ST1dTOg0KICAgICAgICAgICAgICAgICAg
ICBMLmFwcGVuZChmInwg4oCmIHwgfCDsmbgge2xlbihyLmZhaWxzKSAtIE1BWF9ST1dTfeqxtCAo
6rCZ7J2AIOqygOyCrCDigJQg7Iqk7YGs66a97Yq466W8IOuylOychCDsp4DsoJXsnLzroZwg64uk
7IucIOuPjOumrOuptCDsoITrtoAg64KY7Jio64ukKSB8IikNCiAgICAgICAgICAgICAgICBMLmFw
cGVuZCgiIikNCiAgICAgICAgICAgIGlmIHIudW5yZWFkYWJsZToNCiAgICAgICAgICAgICAgICBM
LmFwcGVuZCgi7YyQ64+FIOu2iOuKpSjsi6TtjKjroZwg7IS47KeAIOyViuydjCk6IikNCiAgICAg
ICAgICAgICAgICBMLmFwcGVuZCgiIikNCiAgICAgICAgICAgICAgICBmb3IgcCwgd2h5IGluIHIu
dW5yZWFkYWJsZVs6NDBdOg0KICAgICAgICAgICAgICAgICAgICBMLmFwcGVuZChmIi0gYHtwfWAg
4oCUIHt3aHl9IikNCiAgICAgICAgICAgICAgICBpZiBsZW4oci51bnJlYWRhYmxlKSA+IDQwOg0K
ICAgICAgICAgICAgICAgICAgICBMLmFwcGVuZChmIi0g4oCmIOyZuCB7bGVuKHIudW5yZWFkYWJs
ZSkgLSA0MH3qsbQiKQ0KICAgICAgICAgICAgICAgIEwuYXBwZW5kKCIiKQ0KICAgICAgICBpZiBu
b3QgYW55X3Jvd3M6DQogICAgICAgICAgICBMLmFwcGVuZCgi7J20IOy4teyXkOyEnCDsi6TtjKjt
lZwg6rKA7IKsIOyXhuydjC4iKQ0KICAgICAgICAgICAgTC5hcHBlbmQoIiIpDQoNCiAgICBzZWN0
aW9uKCIjIyAyLiAx7Li1IO2YleyLnSDigJQg7Iuk7YyoIOuqqeuhnSIsIFtmMV0pDQogICAgc2Vj
dGlvbigiIyMgMy4gMuy4tSDsoJXtlakg4oCUIOyLpO2MqCDrqqnroZ0iLCBbZjJdICsgW3IgZm9y
IHIgaW4gcmVzdWx0cyBpZiByLmxheWVyID09IDJdKQ0KICAgIHNlY3Rpb24oIiMjIDQuIDPsuLUg
6rec7LmZIOKAlCDsi6TtjKgg66qp66GdICjstqnrj4ztkZwg7LSI7JWIIO2bhOuztCkiLCBbciBm
b3IgciBpbiByZXN1bHRzIGlmIHIubGF5ZXIgPT0gM10sIGNvbmZsaWN0PVRydWUpDQogICAgIyDs
i6Ttlokg7JqU7JW9DQogICAgdG90YWxfZmFpbCA9IHN1bShsZW4oci5mYWlscykgZm9yIHIgaW4g
YWxsX3IpDQogICAgTCArPSBbIiMjIDUuIOyLpO2WiSDqsrDqs7wg7JqU7JW9IiwgIiIsDQogICAg
ICAgICAgZiItIOqygOyCrCAxNOyihSDspJEg7Iuk7ZaJIHtsZW4oY291bnRlZCl9IMK3IOuMgOyD
gSDsl4bsnYwo64yA6riwKSB7bGVuKHJlc3VsdHMpIC0gbGVuKGNvdW50ZWQpfSDCtyDsi6TtjKgg
7ZaJIO2VqeqzhCB7dG90YWxfZmFpbH0o7KCE7KCcIDLsooUg7Y+s7ZWoKSDCtyDtjJDrj4Ug67aI
64qlIHtzdW0obGVuKHIudW5yZWFkYWJsZSkgZm9yIHIgaW4gcmVzdWx0cyl9IiwNCiAgICAgICAg
ICBmIi0g7Lm065OcIGByZWxhdGlvbnM6YCDrj4TsnqUg67O07JygIOuFuOuTnCB7bWV0YVsnY2Fy
ZHNfd2l0aF9yZWxhdGlvbnMnXX0gLyB7bWV0YVsnbm9kZXNfaW5fc2NvcGUnXX0g4oCUIOuPhOye
pSDquLDrsJgg6rKA7IKsKCM0wrcjNcK3IzExIOydvOu2gMK3IzEyIGFib3V0KeuKlCDrp4Htgawg
7IiY7ZmVIOuSpOyXkCDsi6TtmqjqsIAg7IOd6ri064ukLiIsDQogICAgICAgICAgIi0g64uk7J2M
IO2WieuPmTog4pGgIDHsuLUg7Iuk7Yyo64qUIOy5tOuTnCDsiJjsoJUo66i466as66eQKSDikaEg
Muy4tSDsi6TtjKjripQg7Iuk66y84oaU7Lm065OcIOykkSDti4DrprAg7Kq9IOyImOyglSDikaIg
M+y4teydgCDsnbQg66as7Y+s7Yq47J2YIDTsoIjsnYQg7Lap64+M7ZGc66GcIOyYruqyqCDsgqzs
mqnsnpAg6rKw7KCVLiIsICIiXQ0KICAgIHJldHVybiAiXG4iLmpvaW4oTCkNCg0KDQojIOKUgOKU
gCDsi6Ttlokg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSADQoNCmRlZiBydW5fY2hlY2tzKHNjb3BlPU5vbmUpOg0KICAgICIiIuqygOyCrCDs
oITrtoDrpbwg64+M66CkIChmMSwgZjIsIHJlc3VsdHMsIG1ldGEpIOulvCDrj4zroKTspIDri6Qu
ICoq7JWE66y0IO2MjOydvOuPhCDsk7Dsp4Ag7JWK64qU64ukKiog4oCUIOuLpOuluCDsoJDqsoAg
64+E6rWs6rCAIGltcG9ydCDtlbTshJwg7JqU7JW97J2EIOunjOuTpCDrlYwg7JO064ukLg0KICAg
IHNjb3BlID0g7J6R7JeF6rO16rCEIOujqO2KuCDquLDspIAg7IOB64yA6rK966GcIOygkeuRkCjr
sLHsiqzrnpjsi5wpIOuYkOuKlCBOb25lLiIiIg0KICAgIHNjb3BlID0gc2NvcGUucmVwbGFjZSgi
LyIsICJcXCIpLnN0cmlwKCJcXCIpIGlmIHNjb3BlIGVsc2UgTm9uZQ0KICAgIGlmIHNjb3BlIGFu
ZCBub3QgKFJPT1QgLyBzY29wZSkuaXNfZGlyKCk6DQogICAgICAgIHJhaXNlIFN5c3RlbUV4aXQo
ZiLrspTsnIQg7Y+0642U6rCAIOyXhuydjDoge1JPT1QgLyBzY29wZX0iKQ0KDQogICAgYmcuYXNz
ZXJ0X3RyZWVfbG9jYWwoUk9PVCkNCiAgICBncmFwaCA9IGpzb24ubG9hZHMoYmcuYXNzZXJ0X2xv
Y2FsKEdSQVBIKS5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpDQogICAgaWYgbm90IGlzaW5z
dGFuY2UoZ3JhcGguZ2V0KCJub2RlcyIpLCBkaWN0KToNCiAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiZ3JhcGguanNvbiBub2Rlc+uKlCDtgqQ66rCSIOq1rOyhsOyXrOyVvCDtlagiKQ0KICAgIGZv
ciBub2RlIGluIGdyYXBoWyJub2RlcyJdLnZhbHVlcygpOg0KICAgICAgICBmb2xkZXIgPSBiZy5h
c3NlcnRfbG9jYWwoUk9PVCAvIG5vZGVbInBhdGgiXSkNCiAgICAgICAgZm9yIHZhbHVlIGluIFtu
b2RlLmdldCgidHJ1dGgiKV0gKyAobm9kZS5nZXQoImRyYXdlcnMiKSBvciBbXSk6DQogICAgICAg
ICAgICBpZiB2YWx1ZToNCiAgICAgICAgICAgICAgICBiZy5hc3NlcnRfbG9jYWwoZm9sZGVyIC8g
c3RyKHZhbHVlKS5zcGxpdCgiIyIsIDEpWzBdKQ0KICAgIGJnLmFzc2VydF9sb2NhbChSRUdJU1RS
WSkNCiAgICByYXdfcmVnaXN0cnkgPSB5YW1sLnNhZmVfbG9hZChSRUdJU1RSWS5yZWFkX3RleHQo
ZW5jb2Rpbmc9InV0Zi04IikpIGlmIFJFR0lTVFJZLmV4aXN0cygpIGVsc2Uge30NCiAgICBpZiBy
YXdfcmVnaXN0cnkgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKHJhd19yZWdpc3RyeSwg
ZGljdCk6DQogICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInJlZ2lzdHJ5LnltbOydgCDtgqQ66rCS
IOq1rOyhsOyXrOyVvCDtlagiKQ0KICAgIGZvciBlbnRyeSBpbiAocmF3X3JlZ2lzdHJ5IG9yIHt9
KS5nZXQoInRvb2xzIiwge30pLnZhbHVlcygpOg0KICAgICAgICBpZiBlbnRyeS5nZXQoInBhdGgi
KToNCiAgICAgICAgICAgIGJnLmFzc2VydF9sb2NhbChST09UIC8gZW50cnlbInBhdGgiXSkNCiAg
ICBmb3IgZW50cnkgaW4gKHJhd19yZWdpc3RyeSBvciB7fSkuZ2V0KCJtZW1vcnlfc3RvcmVzIiwg
W10pOg0KICAgICAgICBpZiBlbnRyeS5nZXQoInBhdGgiKToNCiAgICAgICAgICAgIGJnLmFzc2Vy
dF90cmVlX2xvY2FsKGJnLmFzc2VydF9sb2NhbChST09UIC8gZW50cnlbInBhdGgiXSkpDQogICAg
bm9kZXMgPSBncmFwaFsibm9kZXMiXQ0KICAgIG5vZGVzX2J5X3BhdGggPSB7blsicGF0aCJdOiBu
IGZvciBuIGluIG5vZGVzLnZhbHVlcygpfQ0KICAgIHJlZ2lzdHJ5ID0geWFtbC5zYWZlX2xvYWQo
UkVHSVNUUlkucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIpKSBvciB7fSBpZiBSRUdJU1RSWS5l
eGlzdHMoKSBlbHNlIHt9DQogICAgaXRlbXMgPSB3YWxrX2hpZXJhcmNoeShzY29wZSkNCiAgICBp
dGVtc19pbiA9IFtpdCBmb3IgaXQgaW4gaXRlbXMgaWYgaW5fc2NvcGUoaXRbInBhdGgiXSwgc2Nv
cGUpXQ0KDQogICAgZjEsIGYyLCBjYXJkcyA9IHByZWNoZWNrX2NhcmRzKG5vZGVzLCBzY29wZSkN
CiAgICBjbGFzc19yZXBvcnQgPSBsYXRlc3RfY2xhc3NpZmljYXRpb24oKQ0KICAgIGNhbmRpZGF0
ZXMgPSBqdWRnZW1lbnRfY2FuZGlkYXRlcyhjbGFzc19yZXBvcnQpDQogICAgcmVzdWx0cyA9IFsN
CiAgICAgICAgY2hlY2tfMDEoaXRlbXNfaW4pLA0KICAgICAgICBjaGVja18wMihpdGVtc19pbiwg
bm9kZXNfYnlfcGF0aCksDQogICAgICAgIGNoZWNrXzAzKGl0ZW1zX2luLCBjYXJkcywgbm9kZXMp
LA0KICAgICAgICBjaGVja18wNChjYXJkcywgbm9kZXMpLA0KICAgICAgICBjaGVja18wNShjYXJk
cywgbm9kZXMpLA0KICAgICAgICBjaGVja18wNihjYXJkcywgbm9kZXMsIHNjb3BlKSwNCiAgICAg
ICAgY2hlY2tfMDcobm9kZXMsIHNjb3BlKSwNCiAgICAgICAgY2hlY2tfMDgobm9kZXMsIHNjb3Bl
KSwNCiAgICAgICAgY2hlY2tfMDkobm9kZXMsIHNjb3BlKSwNCiAgICAgICAgY2hlY2tfMTAoaXRl
bXNfaW4pLA0KICAgICAgICBjaGVja18xMShjYXJkcywgbm9kZXMsIHJlZ2lzdHJ5LCBzY29wZSks
DQogICAgICAgIGNoZWNrXzEyKG5vZGVzLCBpdGVtcywgc2NvcGUpLA0KICAgICAgICBjaGVja18x
Myhub2Rlcywgc2NvcGUsIGNhbmRpZGF0ZXMsIGNsYXNzX3JlcG9ydCksDQogICAgICAgIGNoZWNr
XzE0KG5vZGVzLCBzY29wZSwgY2FuZGlkYXRlcywgY2xhc3NfcmVwb3J0KSwNCiAgICBdDQogICAg
bWVtX2NvdW50ID0gc3VtKDEgZm9yIHIgaW4gbWVtb3J5X3Jvb3RzKCkgZm9yIHAgaW4gci5nbG9i
KCIqL21lbW9yeS8qLm1kIikgaWYgci5pc19kaXIoKSkNCiAgICBtZXRhID0geyJub2RlcyI6IGxl
bihub2RlcyksICJub2Rlc19pbl9zY29wZSI6IHN1bSgxIGZvciBuIGluIG5vZGVzLnZhbHVlcygp
IGlmIGluX3Njb3BlKG5bInBhdGgiXSwgc2NvcGUpKSwNCiAgICAgICAgICAgICJpdGVtcyI6IGxl
bihpdGVtc19pbiksICJoaWVyIjogc3VtKDEgZm9yIGkgaW4gaXRlbXNfaW4gaWYgaVsia2luZCJd
ID09ICJoaWVyIiksDQogICAgICAgICAgICAidXRpbHMiOiBzdW0oMSBmb3IgaSBpbiBpdGVtc19p
biBpZiBpWyJraW5kIl0gPT0gInV0aWwiKSwgImRyYXdlcnMiOiBzdW0oMSBmb3IgaSBpbiBpdGVt
c19pbiBpZiBpWyJraW5kIl0gPT0gImRyYXdlciIpLA0KICAgICAgICAgICAgIm1lbW9yaWVzIjog
bWVtX2NvdW50LCAicmVnX3Rvb2xzIjogbGVuKHJlZ2lzdHJ5LmdldCgidG9vbHMiKSBvciB7fSks
ICJyZWdfc3RvcmVzIjogbGVuKHJlZ2lzdHJ5LmdldCgic3RvcmVzIikgb3Ige30pLA0KICAgICAg
ICAgICAgImNsYXNzX3JlcG9ydCI6IGYiYHtjbGFzc19yZXBvcnQubmFtZX1gIiBpZiBjbGFzc19y
ZXBvcnQgZWxzZSAi7JeG7J2MIiwNCiAgICAgICAgICAgICJjYXJkc193aXRoX3JlbGF0aW9ucyI6
IHN1bSgxIGZvciBmbSBpbiBjYXJkcy52YWx1ZXMoKSBpZiBmbS5nZXQoInJlbGF0aW9ucyIpKX0N
CiAgICByZXR1cm4gZjEsIGYyLCByZXN1bHRzLCBtZXRhDQoNCg0KZGVmIG1haW4oKToNCiAgICBh
cCA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSLsmKjthqjroZzsp4Ag6rKA
7KadOiAwPe2GteqzvCwgMT3si6TtjKgsIDI97YyQ64+F67aI64qlIikNCiAgICBhcC5hZGRfYXJn
dW1lbnQoIi0tc2NvcGUiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IuyekeyXheqzteqwhCDquLDspIAg
7IOB64yAIO2PtOuNlCIpDQogICAgYSA9IGFwLnBhcnNlX2FyZ3MoKQ0KICAgIHNjb3BlID0gYS5z
Y29wZS5yZXBsYWNlKCIvIiwgIlxcIikuc3RyaXAoIlxcIikgaWYgYS5zY29wZSBlbHNlIE5vbmUN
CiAgICBsYWJlbCA9ICLsoITssrQiIGlmIG5vdCBzY29wZSBlbHNlIHNjb3BlLnJlcGxhY2UoIlxc
IiwgIl8iKQ0KICAgIG91dCA9IFJFUE9SVF9ESVIgLyBmIntUT0RBWX0t6rKA7KadLXtsYWJlbH0u
bWQiDQogICAgdHJ5Og0KICAgICAgICBiZy5hc3NlcnRfbG9jYWwob3V0KQ0KICAgICAgICBSRVBP
UlRfRElSLm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkNCiAgICAgICAgZjEsIGYy
LCByZXN1bHRzLCBtZXRhID0gcnVuX2NoZWNrcyhzY29wZSkNCiAgICAgICAgYWxsX3Jlc3VsdHMg
PSBbZjEsIGYyXSArIHJlc3VsdHMNCiAgICAgICAgZmFpbHVyZXMgPSBzdW0obGVuKHIuZmFpbHMp
IGZvciByIGluIGFsbF9yZXN1bHRzKQ0KICAgICAgICB1bnJlYWRhYmxlID0gc3VtKGxlbihyLnVu
cmVhZGFibGUpIGZvciByIGluIGFsbF9yZXN1bHRzKQ0KICAgICAgICBjb2RlID0gMSBpZiBmYWls
dXJlcyBlbHNlICgyIGlmIHVucmVhZGFibGUgZWxzZSAwKQ0KICAgICAgICBzdW1tYXJ5ID0gZiLs
i6TtjKgge2ZhaWx1cmVzfeqxtCDCtyDtjJDrj4XrtojriqUge3VucmVhZGFibGV96rG0IMK3IOyi
heujjCDsvZTrk5wge2NvZGV9Ig0KICAgICAgICBvdXQud3JpdGVfdGV4dChidWlsZF9yZXBvcnQo
c2NvcGUsIGYxLCBmMiwgcmVzdWx0cywgbWV0YSkgKyAiXG5cbiIgKyBzdW1tYXJ5ICsgIlxuIiwg
ZW5jb2Rpbmc9InV0Zi04IikNCiAgICAgICAgcHJpbnQoZiLrpqztj6ztirgg4oaSIHtvdXR9IikN
CiAgICAgICAgcHJpbnQoc3VtbWFyeSkNCiAgICAgICAgZm9yIHIgaW4gYWxsX3Jlc3VsdHM6DQog
ICAgICAgICAgICByZXN1bHQgPSAi7Iuk7YyoIiBpZiByLmZhaWxzIGVsc2UgIu2MkOuPheu2iOuK
pSIgaWYgci51bnJlYWRhYmxlIGVsc2UgIuuMgOyDgSDsl4bsnYwiIGlmIHIubm9fdGFyZ2V0IGVs
c2UgIu2GteqzvCINCiAgICAgICAgICAgIHByaW50KGYie3Iubm99OiB7cmVzdWx0fSAo64yA7IOB
IHtyLnRhcmdldHN9LCDsi6TtjKgge2xlbihyLmZhaWxzKX0sIO2MkOuPheu2iOuKpSB7bGVuKHIu
dW5yZWFkYWJsZSl9KSIpDQogICAgICAgIHJldHVybiBjb2RlDQogICAgZXhjZXB0IChFeGNlcHRp
b24sIFN5c3RlbUV4aXQpIGFzIGV4YzoNCiAgICAgICAgZGV0YWlsID0gZiLqsoDspp0g7YyQ64+F
67aI64qlOiB7ZXhjfSINCiAgICAgICAgcHJpbnQoZGV0YWlsLCBmaWxlPXN5cy5zdGRlcnIpDQog
ICAgICAgIHRyeToNCiAgICAgICAgICAgIGJnLmFzc2VydF9sb2NhbChvdXQpDQogICAgICAgICAg
ICBSRVBPUlRfRElSLm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkNCiAgICAgICAg
ICAgIG91dC53cml0ZV90ZXh0KCIjIOyYqO2GqOuhnOyngCDqsoDspp0g7YyQ64+F67aI64qlXG5c
biIgKyBkZXRhaWwgKyAiXG5cbuyiheujjCDsvZTrk5wgMi4g6rKA7IKsIO2GteqzvOulvCDrnLvt
lZjsp4Ag7JWK7Iq164uI64ukLlxuIiwgZW5jb2Rpbmc9InV0Zi04IikNCiAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoNCiAgICAgICAgICAgIHBhc3MNCiAgICAgICAgcmV0dXJuIDINCg0KDQppZiBf
X25hbWVfXyA9PSAiX19tYWluX18iOg0KICAgIHN5cy5leGl0KG1haW4oKSkNCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/manifest.json","encoding":"base64","size":3795,"runtimeSha256":"4d1b7c3f400e0a4017978d737fb970191c54a4e5bf4eed0023098a75f48d69a9","normalizedSha256":"4d1b7c3f400e0a4017978d737fb970191c54a4e5bf4eed0023098a75f48d69a9"} -->
```base64
ewogICJ2ZXJzaW9uIjogOCwKICAiZ3VpZGUiOiA5LAogICJkYXRlIjogIjIwMjYtMDktMDciLAog
ICJlbmdpbmVTY2hlbWFWZXJzaW9uIjogNywKICAiZmlsZXMiOiBbCiAgICB7CiAgICAgICJzb3Vy
Y2UiOiAiZmlsZXMvYnVpbGRfZ3JhcGgucHkiLAogICAgICAidGFyZ2V0IjogIl9vbnRvbG9neS9i
dWlsZF9ncmFwaC5weSIsCiAgICAgICJzaGEyNTYiOiAiMjViNDVlNmM4ZjZmN2FkNTc2ZWZhMjYy
YzcxNWU1MTEyZDZiZTVkOTkxY2E0MjU4ZDVkNjUxYmExNTI5ODJiZSIsCiAgICAgICJwb2xpY3ki
OiAiZXhhY3QiCiAgICB9LAogICAgewogICAgICAic291cmNlIjogImZpbGVzL2J1aWxkX21hcC5w
eSIsCiAgICAgICJ0YXJnZXQiOiAiX21hcC1nZW5lcmF0b3IvYnVpbGRfbWFwLnB5IiwKICAgICAg
InNoYTI1NiI6ICIwMmM3Yzc2NzdkNDJkNGU0OThkOTk3MGY3NWU0NWU5YjRhNDFlYzE1M2E1N2Qx
M2M1MTE5MjRiNTEzZTJmMjNjIiwKICAgICAgInBvbGljeSI6ICJleGFjdCIKICAgIH0sCiAgICB7
CiAgICAgICJzb3VyY2UiOiAiZmlsZXMvY2hlY2tfZnJlc2gucHkiLAogICAgICAidGFyZ2V0Ijog
Il9vbnRvbG9neS9jaGVja19mcmVzaC5weSIsCiAgICAgICJzaGEyNTYiOiAiMGIwN2U5ZjhiMGM1
MTJlODAzYzA0MmJiN2I4ZjVmMGJhNzQxYWI2N2U3MjBiZDJkM2VkMWUyNjA1MWJmNDQxMyIsCiAg
ICAgICJwb2xpY3kiOiAiZXhhY3QiCiAgICB9LAogICAgewogICAgICAic291cmNlIjogImZpbGVz
L3F1ZXJ5LnB5IiwKICAgICAgInRhcmdldCI6ICJfb250b2xvZ3kvcXVlcnkucHkiLAogICAgICAi
c2hhMjU2IjogIjVjZmU4YjAwZjI2ZGEzZDQ2MzUwMmM2YjQxMGRiMmU5NzlmNDI4YmEwMzVhNzI5
MTNjMDI3NzhiYmRmMmUwYTgiLAogICAgICAicG9saWN5IjogImV4YWN0IgogICAgfSwKICAgIHsK
ICAgICAgInNvdXJjZSI6ICJmaWxlcy9yZW5kZXJfdmlldy5weSIsCiAgICAgICJ0YXJnZXQiOiAi
X29udG9sb2d5L3JlbmRlcl92aWV3LnB5IiwKICAgICAgInNoYTI1NiI6ICI3M2U3MzBhN2UyZDE3
Nzc2YzM4YTJmODcyZDA2ZDA3NzQ4M2VhMTNiOGViMzkyYWU4NmJkMjA0NmM4ZGRmYmUyIiwKICAg
ICAgInBvbGljeSI6ICJleGFjdCIKICAgIH0sCiAgICB7CiAgICAgICJzb3VyY2UiOiAiZmlsZXMv
dmFsaWRhdGUucHkiLAogICAgICAidGFyZ2V0IjogIl9vbnRvbG9neS92YWxpZGF0ZS5weSIsCiAg
ICAgICJzaGEyNTYiOiAiZDgwZmUwY2U0ZDhlMmEyMGY2MDYzYjdmNjJmNjgwZDM3ZTFjYmQ5ZDEw
ZDRiNzVkOWRhMzE4ZWQyMTVlYzhkZSIsCiAgICAgICJwb2xpY3kiOiAiZXhhY3QiCiAgICB9LAog
ICAgewogICAgICAic291cmNlIjogImZpbGVzL29udG9sb2d5LXNwZWMubWQiLAogICAgICAidGFy
Z2V0IjogIklSSVMt7Jio7Yao66Gc7KeALm1kIiwKICAgICAgInNoYTI1NiI6ICI1MTIwNDYxMWQy
ZDYxMjY5Y2M0ZjM0MzEzYjY2OThkOTA4YzU3NGM3NTA5ZWM2NzMxYzEwZTk0ZmUwMjVkM2QyIiwK
ICAgICAgInBvbGljeSI6ICJwcmVzZXJ2ZSIKICAgIH0sCiAgICB7CiAgICAgICJzb3VyY2UiOiAi
ZmlsZXMvcmVnaXN0cnkueW1sIiwKICAgICAgInRhcmdldCI6ICJfb250b2xvZ3kvcmVnaXN0cnku
eW1sIiwKICAgICAgInNoYTI1NiI6ICJlNjc4OTJlY2FmYTEzZDA1MzkwMjMwN2RiYTYwMTRjMmY3
YmMxNWVmMmJmNGNiMTE3YTg1YTk4YjMzZjgxNmIwIiwKICAgICAgInBvbGljeSI6ICJwcmVzZXJ2
ZSIKICAgIH0sCiAgICB7CiAgICAgICJzb3VyY2UiOiAiZmlsZXMvcmVxdWlyZW1lbnRzLnR4dCIs
CiAgICAgICJ0YXJnZXQiOiAiX29udG9sb2d5L3JlcXVpcmVtZW50cy50eHQiLAogICAgICAic2hh
MjU2IjogIjA5NjlkYTk5YTBiYzJhMWI3MWVkNTA1ODQ1NjBmNDU4OGEzNzU2N2FjNjNhZjNkZGJh
ZjNjNDYxN2NhNTYyMWEiLAogICAgICAicG9saWN5IjogImV4YWN0IgogICAgfSwKICAgIHsKICAg
ICAgInNvdXJjZSI6ICJmaWxlcy9fb250b2xvZ3ktQUdFTlRTLm1kIiwKICAgICAgInRhcmdldCI6
ICJfb250b2xvZ3kvQUdFTlRTLm1kIiwKICAgICAgInNoYTI1NiI6ICI1OGVmMGUzZTdhNWMxOWQ1
MTVmNWRmNTgyODYxZmMxMjk4YTdmMzkwMDVjMGYzYTZlMDI4ZGZjYzgzM2JiZTJkIiwKICAgICAg
InBvbGljeSI6ICJwcmVzZXJ2ZSIKICAgIH0sCiAgICB7CiAgICAgICJzb3VyY2UiOiAiZmlsZXMv
X29udG9sb2d5LUNMQVVERS5tZCIsCiAgICAgICJ0YXJnZXQiOiAiX29udG9sb2d5L0NMQVVERS5t
ZCIsCiAgICAgICJzaGEyNTYiOiAiMzM2Y2M0ZmJmMTliZWFhZGE3Y2NmOTk4NjQxNGZhOTE4NTFh
OGQ3YTA3ZGZiM2NjYmU4MDBhNjllZWQwYWI0OSIsCiAgICAgICJwb2xpY3kiOiAicHJlc2VydmUi
CiAgICB9LAogICAgewogICAgICAic291cmNlIjogImZpbGVzL19tYXAtZ2VuZXJhdG9yLUFHRU5U
Uy5tZCIsCiAgICAgICJ0YXJnZXQiOiAiX21hcC1nZW5lcmF0b3IvQUdFTlRTLm1kIiwKICAgICAg
InNoYTI1NiI6ICIzYzI5N2E1OTM2YTVkMjBmMzgxOTU3ZTg3MmQ5YmY4NTVmNWRlZGRmYTUyM2Zj
Yzg3YTZkNDU4MjVhMjgyMmNiIiwKICAgICAgInBvbGljeSI6ICJwcmVzZXJ2ZSIKICAgIH0sCiAg
ICB7CiAgICAgICJzb3VyY2UiOiAiZmlsZXMvX21hcC1nZW5lcmF0b3ItQ0xBVURFLm1kIiwKICAg
ICAgInRhcmdldCI6ICJfbWFwLWdlbmVyYXRvci9DTEFVREUubWQiLAogICAgICAic2hhMjU2Ijog
IjMzNmNjNGZiZjE5YmVhYWRhN2NjZjk5ODY0MTRmYTkxODUxYThkN2EwN2RmYjNjY2JlODAwYTY5
ZWVkMGFiNDkiLAogICAgICAicG9saWN5IjogInByZXNlcnZlIgogICAgfSwKICAgIHsKICAgICAg
InNvdXJjZSI6ICJmaWxlcy9fY2xlYW51cC1BR0VOVFMubWQiLAogICAgICAidGFyZ2V0IjogIl9j
bGVhbnVwL0FHRU5UUy5tZCIsCiAgICAgICJzaGEyNTYiOiAiYzM3MjA1NTc0ZTBkZjJhNDQyMzIx
YTNmYjRkMTQyMWEwMzZhZjBiNGY3Yzk1OGU0MGRmODMxYzI4ODQzOWNhYSIsCiAgICAgICJwb2xp
Y3kiOiAicHJlc2VydmUiCiAgICB9LAogICAgewogICAgICAic291cmNlIjogImZpbGVzL19jbGVh
bnVwLUNMQVVERS5tZCIsCiAgICAgICJ0YXJnZXQiOiAiX2NsZWFudXAvQ0xBVURFLm1kIiwKICAg
ICAgInNoYTI1NiI6ICIzMzZjYzRmYmYxOWJlYWFkYTdjY2Y5OTg2NDE0ZmE5MTg1MWE4ZDdhMDdk
ZmIzY2NiZTgwMGE2OWVlZDBhYjQ5IiwKICAgICAgInBvbGljeSI6ICJwcmVzZXJ2ZSIKICAgIH0s
CiAgICB7CiAgICAgICJzb3VyY2UiOiAiZmlsZXMvX3RyYXNoLUFHRU5UUy5tZCIsCiAgICAgICJ0
YXJnZXQiOiAiX3RyYXNoL0FHRU5UUy5tZCIsCiAgICAgICJzaGEyNTYiOiAiYzNjMDlmNjkxZmJi
OTIxNjZlYjc2ZjYxZTliNWM4NTBkNTZiNzIxNmRkYjlmYWY2NjVlZTYxZTY3Mjk0ZWY1ZSIsCiAg
ICAgICJwb2xpY3kiOiAicHJlc2VydmUiCiAgICB9LAogICAgewogICAgICAic291cmNlIjogImZp
bGVzL190cmFzaC1DTEFVREUubWQiLAogICAgICAidGFyZ2V0IjogIl90cmFzaC9DTEFVREUubWQi
LAogICAgICAic2hhMjU2IjogIjMzNmNjNGZiZjE5YmVhYWRhN2NjZjk5ODY0MTRmYTkxODUxYThk
N2EwN2RmYjNjY2JlODAwYTY5ZWVkMGFiNDkiLAogICAgICAicG9saWN5IjogInByZXNlcnZlIgog
ICAgfQogIF0sCiAgInRlbXBsYXRlcyI6IHsKICAgICJyb290LXY3Lm1kIjogIjQ1ZmI2NzJmOTNk
OTRhYTlmZjdkNWE3ZjQ0NGQ4ZmRiMDZhM2JmYzk4NWM3ODNjZmQ1MzdiYmNmMzA3MmMyMWEiLAog
ICAgInJvb3QtdjgubWQiOiAiZDRkMjlkNjc4OTFhNGU4YTE5ODYwZDAxMmYyNTYxNWNlNGQyYWJm
YTczMjMwNTQ1OWJlOGQ3YTFkNjEwOGM4NyIKICB9Cn0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/root-v7.md","encoding":"base64","size":3426,"runtimeSha256":"45fb672f93d94aa9ff7d5a7f444d8fdb06a3bfc985c783cfd537bbcf3072c21a","normalizedSha256":"45fb672f93d94aa9ff7d5a7f444d8fdb06a3bfc985c783cfd537bbcf3072c21a"} -->
```base64
IyA87JiB7Zi8IOydtOumhD4gV29ya3NwYWNlIOKAlCDsoITsl60g7KeA7LmoCgrsnbQg7YyM7J28
7J2AIOuqqOuToCDtlZjsnIQg7J6R7JeFIO2PtOuNlOyXkOyEnCDqs7XthrXsnLzroZwg7J2964qU
IOq3nOy5mSDsm5Drs7jsnbTri6QuCgojIyDsgqzsmqnsnpAg7J2R64yACgotIOyghOusuOyaqeyW
tOuKlCDsspjsnYwg64KY7JisIOuVjCDsiazsmrQg66eQ66GcIO2SgOqzoCwg7ZWcIOuyiOyXkCDt
lZwg7IOd6rCB7JSpIOyEpOuqhe2VnOuLpC4KLSDsi6Ttlokg7KCE7JeQ64qUIOustOyXh+ydhCDt
laDsp4Ag7ZWcIOusuOyepeycvOuhnCDslYzrpqzqs6AsIOyZhOujjCDtm4Tsl5DripQg6rKw6rO8
7JmAIOuCqOydgCDsnbzsnYQg7Ims7Jq0IOunkOuhnCDrs7Tqs6DtlZzri6QuCi0g7KCV66eQIO2V
hOyalO2VnCDqsrDsoJXrp4wg7ZWcIOuyiOyXkCDtlZjrgpjslKkg66y764qU64ukLgoKIyMg7JWI
7KCECgotIHNldHVwIGVuZ2luZeydgCDsgqzsmqnsnpAg7IaM7JygIO2MjOydvMK37J6Q66OMwrfq
uLDslrXCt+yEuOyFmMK3R2l0IOq4sOuhneydhCDsgq3soJztlZjqsbDrgpgg642u7Ja07JOw7KeA
IOyViuuKlOuLpC4KLSDqsrDsoJzCt+uwnOyGocK36rKM7IucwrfsmIjslb3Ct+ygnOy2nOydgCDs
gqzsmqnsnpAg7ZmV7J24IOyghCDsi6TtlontlZjsp4Ag7JWK64qU64ukLgotIOyLnO2BrOumvyDs
m5DrrLjsnYQg7KeA7LmowrfsvZTrk5zCt+uhnOq3uOyXkCDsk7Dsp4Ag7JWK64qU64ukLiDquIjq
s6DsnZgg7IOB64yA6rK966GcIO2PrOyduO2EsOunjCDrkZTri6QuCi0g67CU7YOV7ZmU66m07JeQ
64qUIO2MjOydvMK37J6E7Iuc66y8wrfsupDsi5zCt+uwlOuhnOqwgOq4sOulvCDsk7Dsp4Ag7JWK
64qU64ukLgoKIyMg7ISk6rOEIOyasOyEoAoK7Iuk7KeI7KCB7J24IOyekeyXhSDsoITsl5DripQg
66qp7ZGc66W8IOyekeydgCDsobDqsIHsnLzroZwg64KY64iE7Ja0IOyJrOyatCDrp5DroZwg7ISk
6rOE7ZWY6rOgLCDsgqzsmqnsnpAg7ZS865Oc67Cx7Jy866GcIOyhsOqwgeydhCDtmZXsoJXtlZwg
65KkIOyLpO2Wie2VnOuLpC4g7IKs656M7J20IOuwmOuTnOyLnCDtlbTslbwg7ZWY64qUIOyKueyd
uOqzvCDrkJjrj4zrpqzquLAg7Ja066Ck7Jq0IO2WieuPmeydgCDsnpDrj5kg7JyE7J6E7Jy866Gc
IOuEmOq4sOyngCDslYrripTri6QuIOydtCDsgqzsmqnsnpAg7Iq57J24IOq3nOy5meydgCBTdXBl
cnBvd2VycyB3b3JrZmxvd+uztOuLpCDsmrDshKDtlZzri6QuCgojIyDtj7TrjZQg6rOE7Li1Cgot
IFJvbGUgYFIwWC3tlZzquIAoRW5nbGlzaClgOiDsgqzsmqnsnpDsnZgg7Jet7ZWgCi0gRG9tYWlu
IGBEMFgt7ZWc6riAKEVuZ2xpc2gpYDog6rOE7IaNIOq0gOumrO2VmOuKlCDrtoTslbwKLSBQcm9q
ZWN0IGBQMFgt7ZWc6riAKEVuZ2xpc2gpYDog64Gd7J20IOyeiOuKlCDqtazssrTsoIHsnbgg7J28
Ci0gU3RlcCBgUzBYLe2VnOq4gChFbmdsaXNoKWA6IOydvOyymOumrCDsiJzshJzsnZgg7YGwIOuL
qOqzhAotIFRhc2sgYFQwWC3tlZzquIAoRW5nbGlzaClgOiDtlYTsmpTtlaAg65WM66eMIOunjOuT
nOuKlCDshLjrtoAg7J6R7JeFCi0g7JqU7LKt67Cb6rOgIOyKueyduOuQnCDtj7TrjZTrp4wg66eM
65Ok66mwIOq4sOyhtCDrsojtmLjrpbwg64uk7IucIOunpOq4sOyngCDslYrripTri6QuCi0g7IOI
IO2PtOuNlOyXkOuKlCDqt7gg66CI67KoIOqzoOycoCDqt5zsuZkg7ZWcIOykhOunjCDri7TsnYAg
YEFHRU5UUy5tZGDsmYAgYEBBR0VOVFMubWRgIO2VnCDspITsp5zrpqwgYENMQVVERS5tZGDrpbwg
7ZWo6ruYIOunjOuToOuLpC4KLSDri6gsIHZlbmRvciDsm5Drs7jCt25hdGl2ZSBhZ2VudCBob21l
wrdydW50aW1lwrdjYWNoZcK3Z2VuZXJhdGVkwrdgLmdpdGAg64K067aA7JeQ64qUIOyngOy5qCDt
jIzsnbzsnYQg7KO87J6F7ZWY7KeAIOyViuuKlOuLpC4g7YyM7J28IOyngOusuOqzvCDtlITroZzq
t7jrnqgg64+Z7J6R7J2EIO2bvOyGkO2VmOyngCDslYrquLAg7JyE7ZW07ISc64ukLgotIOyDgeyc
hCDqt5zsuZnsnYQg7ZWY7JyEIGBBR0VOVFMubWRg7JeQIOuwmOuzte2VmOyngCDslYrripTri6Qu
Ci0g7J6s7IKs7JqpIOuPhOq1rCDtj7TrjZTripQgYF9lbmdsaXNoLWxvd2VyY2FzZWAg7ZiV7Iud
66eMIOyTtOuLpC4KCiMjIO2DnOq3uOydmCDri6vtnowg66qp66GdCgrrsJjsoITqsIEgYOOAliDj
gJdg7J2AIOuLpOydjOyXkOunjCDsk7Tri6Q6IFByb2plY3TsnZgg6riw6rCEwrfsl7Drj4QsIFBy
b2plY3TsnZgg7IaM7ZSE7Yq47Juo7Ja0L+yCsOy2nOusvCDsooXrpZgsIFByb2plY3TsnZgg64u0
64u57J6QLCBUYXNr7J2YIO2VmeuFhOuwmMK367aE67CYLCDri7TsnoQgRG9tYWluIOyVhOuemCBQ
cm9qZWN07J2YIOyXsOuPhMK37ZWZ64WE67CYLCDsl6ztlokgRG9tYWluIOyVhOuemCBQcm9qZWN0
7J2YIOyEuOu2gCDsp4Dsl60sIOyXsOq1rCBEb21haW7snZgg7IS467aA7JiB7JetLCDsl7Dqtawg
UHJvamVjdOydmCDrhbzrrLgg64uo7JyELCBEb21haW4g7L2U65OcIOyVnuydmCDqt7jro7kg7KCR
65GQLiDsg4gg7Jqp64+E6rCAIO2VhOyalO2VmOuptCDrqLzsoIAg7J20IOuqqeuhneydhCDsiJjs
oJXtlZzri6QuCgojIyDsp4Dsuajqs7wg7J6R7JeFIOuylOychAoKLSDsi6Ttlokg7Y+0642U7JmA
IOuqqOuToCDsobDsg4EgYEFHRU5UUy5tZGDrpbwg7ZWo6ruYIOyggeyaqe2VnOuLpC4KLSDsoITs
l60g64ql66Cl7J2AIOyXkOydtOyghO2KuCDsgqzsmqnsnpAg7KCE7JetIOyXsOqysOu2gCwg7ZWc
IOyYgeyXrSDsoITsmqkg64ql66Cl7J2AIOq3uCDsmIHsl63snZgg66Gc7LusIOyXsOqysOu2gOyX
kCDrkZTri6QuCi0gQ29kZXjsnZgg7JiB7Zi8IOqyveqzhOuKlCBgcHJvamVjdF9yb290X21hcmtl
cnM9WyJzb3VsLXN0YXRlLmpzb24iXWDsnbTri6QuIOyYmyDsu6TrsIsg7JeG64qUIOujqO2KuCBg
LmdpdGDsnYAg67O07KG07ZWY7KeA66eMIOq3uOqzs+yXkOyEnCBjb21taXTCt2JyYW5jaMK3d29y
a3RyZWXrpbwg66eM65Ok7KeAIOyViuuKlOuLpC4KCiMjIOqzteyaqSDquLDslrXqs7wg64+Z7Iuc
IOyTsOq4sAoKLSBDbGF1ZGXsmYAgQ29kZXjripQgYF9hZ2VudC9zaGFyZWQvaGFuZG9mZi88c2Nv
cGUtaWQ+YOydmCDqsJnsnYAgQ1VSUkVOVMK3TUVNT1JZwrdldmVudHPrpbwg7IKs7Jqp7ZWc64uk
LgotIOyCrOyaqeyekCDrsJzslrgsIOyKueyduOuQnCDqsrDsoJUsIOyXkOydtOyghO2KuCDstpTs
oJXsnYQg6rWs67OE7ZWc64ukLgotIOqwmeydgCDrspTsnITsmYAg67aA66qo4oaU7J6Q7IudIOuy
lOychOuKlCDtlZwg7JeQ7J207KCE7Yq466eMIOyTsOqzoCwg7J2Y66+4IOy2qeuPjOydgCDsnpDr
j5kg67OR7ZWp7ZWY7KeAIOyViuuKlOuLpC4KLSDquLDsobQg7JeQ7J207KCE7Yq4IOqzoOycoCDs
hLjshZjqs7wg6riw7Ja17J2AIOyCreygnO2VmOqxsOuCmCDshJzroZwg7ZWp7LmY7KeAIOyViuuK
lOuLpC4K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/ontology-v8/root-v8.md","encoding":"base64","size":10304,"runtimeSha256":"d4d29d67891a4e8a19860d012f25615ce4d2abfa732305459be8d7a1d6108c87","normalizedSha256":"d4d29d67891a4e8a19860d012f25615ce4d2abfa732305459be8d7a1d6108c87"} -->
```base64
IyA87JiB7Zi8IOydtOumhD4gV29ya3NwYWNlIOKAlCDsoITsl60g7KeA7LmoCgrsnbQg7YyM7J28
7J2AIOuqqOuToCDtlZjsnIQg7J6R7JeFIO2PtOuNlOyXkOyEnCDqs7XthrXsnLzroZwg7J2964qU
IOq3nOy5mSDsm5Drs7jsnbTri6QuIElSSVMg7ZiV7Iud7J2YIO2PtOuNlOyZgCDrqqnroZ0g7Lm0
65OcIOyytOqzhOulvCDsgqzsmqntlZjrqbAsIOqwgSDtlZjsnIQg7KeA7Lmo7JeQ64qUIOyekOq4
sCDroIjrsqjsl5Ag6rOg7Jyg7ZWcIOq3nOy5meunjCDrkZTri6QuCgojIyDsgqzsmqnsnpAg7J2R
64yACgotIOyghOusuOyaqeyWtOuKlCDsspjsnYwg64KY7JisIOuVjCDsiazsmrQg66eQ66GcIO2S
gOqzoCwg7ZWcIOuyiOyXkCDtlZwg7IOd6rCB7JSpIOyEpOuqhe2VnOuLpC4KLSDsi6Ttlokg7KCE
7JeQ64qUIOustOyXh+ydhCDtlaDsp4Ag7JWM66as6rOgLCDsmYTro4wg7ZuE7JeQ64qUIOqysOqz
vOyZgCDrgqjsnYAg7J287J2EIOyJrOyatCDrp5DroZwg67O06rOg7ZWc64ukLgotIOygleunkCDt
lYTsmpTtlZwg6rKw7KCV66eMIO2VnCDrsojsl5Ag7ZWY64KY7JSpIOusu+uKlOuLpC4g7J2066+4
IOyKueyduMK37JyE7J6E65CcIOuylOychOuKlCDrsJjrs7Ug7ZmV7J247ZWY7KeAIOyViuuKlOuL
pC4KLSDsp4Ttlokg7IiY7LmY66W8IOunkO2VoCDrlYzripQg7L2U65Oc67iU66GdIOyViOyXkCBg
4paIYMK3YOKWkWAgMjDsubgsIOuCtOumvO2VnCDtjbzshLztirgsIOyZhOujjCDsiJgv7KCE7LK0
IOyImCwg7IOB7YOc66W8IO2VqOq7mCDsk7Tri6QuIOyDge2DnOuKlCDsmYTro4zCt+ynhO2Wieyk
kcK364yA6riwwrfrp4ntnpjCt+uztOulmOunjCDsgqzsmqntlZzri6QuIOyghOyytCDsiJjrpbwg
66qo66W066m0IGDsp4TtlonspJEo7LSd65+JIOuvuO2ZleyduClg7Jy866GcIOyggeuKlOuLpC4K
CiMjIOyViOyghAoKLSDshKTsuZjquLDripQg7IKs7Jqp7J6QIOyGjOycoCDtjIzsnbzCt+yekOuj
jMK36riw7Ja1wrfshLjshZjCt0dpdCDquLDroZ3snYQg7IKt7KCc7ZWY6rGw64KYIOuNruyWtOyT
sOyngCDslYrripTri6QuCi0g6rKw7KCcwrfrsJzshqHCt+qyjOyLnMK37JiI7JW9wrfsoJzstpwg
65OxIOyZuOu2gCDtlonrj5nsnYAg6riw7KG0IOyCrOyaqeyekCDsirnsnbgg67KU7JyE7JeQ7ISc
66eMIOyLpO2Wie2VnOuLpC4KLSDsi5ztgazrpr8g7JuQ66y47J2EIOyngOy5qMK37L2U65Ocwrfr
k7HroZ3rtoDCt+uhnOq3uOyXkCDsk7Dsp4Ag7JWK64qU64ukLiDquIjqs6DsnZgg7IOB64yA6rK9
66GcIO2PrOyduO2EsOunjCDrkZTri6QuCi0g67CU7YOV7ZmU66m07JeQ64qUIO2MjOydvMK37J6E
7Iuc66y8wrfsupDsi5zCt+uwlOuhnOqwgOq4sOulvCDsk7Dsp4Ag7JWK64qU64ukLgotIOq4sOyh
tCBgLmdpdGDsnYAg67O07KG07ZWc64ukLiDsu6TrsIsg7JeG64qUIOujqO2KuCDtkZzsp4DtjJAg
7KCA7J6l7IaM7JeQ7IScIGNvbW1pdMK3YnJhbmNowrd3b3JrdHJlZeulvCDrp4zrk6Tsp4Ag7JWK
64qU64ukLgoKIyMg7ISk6rOEIOyasOyEoAoK7Iuk7KeI7KCB7J24IOyekeyXhSDsoITsl5DripQg
7ISk6rOE66W8IOuPheumveuQnCDsobDqsIHsnLzroZwg64KY64iE6rOgLCDssqsg7KGw6rCB67aA
7YSwIO2VmOuCmOyUqSDsiazsmrQg66eQ66GcIOyEpOuqhe2VmOupsCDruYjti4jCt+ychO2XmMK3
6rCc7ISg7JWI7J2EIO2VqOq7mCDsoJDqsoDtlZzri6QuIOyCrOyaqeyekCDtlLzrk5zrsLHsnLzr
oZwg7ZW064u5IOyhsOqwgeydhCDtmZXsoJXtlZwg65KkIOuLpOydjCDsobDqsIHsnLzroZwg64SY
7Ja06rCA66mwIOuqqOuToCDsobDqsIHsnbQg7ZmV7KCV65CcIOuSpCDsi6TtlontlZzri6QuIOyg
hOusuOyaqeyWtOuKlCDsspjsnYwg64KY7JisIOuVjCDtkoDsnbTtlZzri6QuIOyCrOyaqeyekOqw
gCDtirnsoJUg7ZWY7JyEIOyYgeyXreydmCDsg4Hsi5wg7ISk6rOE66W8IOuqheyLnOyggeycvOuh
nCDsnITsnoTtlZjqs6Ag6re4IO2VmOychCBgQUdFTlRTLm1kYOqwgCDsnpDssrQg7ISk6rOEwrfr
j4Xrpr0g67mE7YyQwrfsiJjsoJXCt+qygOymneydhCDqt5zsoJXtlZwg6rK97Jqw7JeQ66eMIOyC
rOyaqeyekCDtmZXsoJUg64yA6riw66W8IOq3uCDsoIjssKjroZwg64yA7LK07ZWc64ukLiDsgqzr
nozsnbQg7ZW07JW8IO2VmOuKlCDtlonsnIQsIOuQmOuPjOumrOq4sCDslrTroKTsmrQg7Jm467aA
IOqysOyglSwg7KeA7LacwrfqtoztlZwg7ZmV64yA64qUIOydtCDsmIjsmbjsnZgg7Iq57J247J20
IOyVhOuLiOuLpC4g7IKs7Jqp7J6Q7J2YIO2YhOyerCDrqoXsi5zsoIEg7KeA7Iuc7JmAIOydtOuv
uCDtl4jsmqnrkJwg67KU7JyE66W8IOuovOyggCDtmZXsnbjtlZjrqbAsIOydtCDqt5zsuZnsnYAg
7Iqk7YKs7J2YIOyekeyXhSDrsKnsi53rs7Tri6Qg7Jqw7ISg7ZWc64ukLgoKIyMg7Y+0642UIOqz
hOy4tQoKLSBSb2xlIGBSMFgt7ZWc6riAKEVuZ2xpc2gpYDog7IKs7Jqp7J6Q7J2YIOyXre2VoC4K
LSBEb21haW4gYEQwWC3tlZzquIAoRW5nbGlzaClgOiDqs4Tsho0g6rSA66as7ZWY64qUIOu2hOyV
vC4KLSBQcm9qZWN0IGBQMFgt7ZWc6riAKEVuZ2xpc2gpYDog64Gd7J20IOyeiOuKlCDqtazssrTs
oIHsnbgg7J28LgotIFN0ZXAgYFMwWC3tlZzquIAoRW5nbGlzaClgOiDsnbzsspjrpqwg7Iic7ISc
7J2YIO2BsCDri6jqs4QuCi0gVGFzayBgVDBYLe2VnOq4gChFbmdsaXNoKWA6IO2VhOyalO2VoCDr
lYzrp4wg66eM65Oc64qUIOyEuOu2gCDsnpHsl4UuCi0g7L2U65Oc7JmAIOydtOumhOydgCBgLWDr
oZwg7J6H6rOgIOyYgeusuCDqtITtmLgg7JWe7JeQ64qUIOqzteuwseydhCDrhKPsp4Ag7JWK64qU
64ukLiDsmpTssq3rsJvsnYAg7Y+0642U66eMIOunjOuTpOupsCDquLDsobQg67KI7Zi466W8IOuL
pOyLnCDrp6TquLDsp4Ag7JWK64qU64ukLgotIETqsIAg7ZGc7KSAIFMg6rWs7KGw66W8IOyEoOyW
uO2WiOuLpOuptCDsg4ggUOyZgCDtlajqu5gg7ZW064u5IFPCt+uvuOuLiCDsp4DsuajsnYQg66eM
65OkIOyImCDsnojri6QuCi0g66qo65OgIOychOqzhCDtj7TrjZTCt+yerOyCrOyaqSDsnKDti7js
l5DripQg6rOg7JygIOygleyytOyEsSDtlZwg7KSE6rO8IOyDgeychCDqt5zsuZkg7J6s7ISc7Iig
IOq4iOyngCDso7zshJ3snYQg64u07J2AIGBBR0VOVFMubWRgLCBgQEFHRU5UUy5tZGAg7ZWcIOyk
hOynnOumrCBgQ0xBVURFLm1kYOulvCDrp4zrk6Dri6QuCi0gUsK3RMK3UOydmCBgQUdFTlRTLm1k
YOyXkOuKlCDsmKjthqjroZzsp4Ag66i466as66eQIOy5tOuTnOuPhCDrp4zrk6Dri6QuIFPCt1Tr
ipQg67OE64+EIOy5tOuTnOulvCDrp4zrk6Tsp4Ag7JWK64qU64ukLgotIOyerOyCrOyaqSDsnKDt
i7gg7J2066aE7J2AIGBfZW5nbGlzaC1sb3dlcmNhc2VgIO2YleyLneunjCDsk7Tri6QuIOyGjOus
uOyekCDsmIHslrQg7Jes65+sIOuLqOyWtOuKlCBgLWDroZwg7Jew6rKw7ZWc64ukLgotIOyCsOy2
nOusvMK37JuQ66y4wrfstKzsmIEg7J6Q66OM66W8IOuLtOq4sOunjCDtlZjripQg7Y+0642U64qU
IOydtOumhOydtCDslYTri4jrnbwg64K07Jqp7Jy866GcIOyEnOuejeydhCDtjJDsoJXtlZjqs6Ag
67aA66qoIFLCt0TCt1Ag7Lm065Oc7J2YIGBkcmF3ZXJzOmDsl5Ag7IOB64yA6rK966Gc66W8IOyE
oOyWuO2VnOuLpC4g7ISc656N7J2AIOychOqzhCDsvZTrk5zrpbwg6rCV7KCc7ZWY7KeAIOyViuyc
vOupsCDshKDslrjrkJwg7ISc656N6rO8IOq3uCDtlZjsnITsl5DripQg7KeA7LmoIO2MjOydvOyd
hCDrp4zrk6Tsp4Ag7JWK64qU64ukLgotIO2UhOuhnOq3uOueqOydtCDrp4zrk6Tqs6Ag7KeA7Jqw
64qUIOyekOuPmSDstpzroKUg7Y+0642ULCDsvZTrk5wg7KCA7J6l7IaMIOuCtOu2gMK3dmVuZG9y
IOybkOuzuMK37JeQ7J207KCE7Yq4IO2ZiMK37LqQ7IucwrdgLmdpdGAg64K067aA7JeQ64qUIOyn
gOy5qOydhCDso7zsnoXtlZjsp4Ag7JWK64qU64ukLiDsnqzsgqzsmqkgYF9gIOycoO2LuCDsnpDs
srTripQg66m07KCc7ZWY7KeAIOyViuuKlOuLpC4KLSBgLk5OYCDrr7jshLgg7ZWY7JyEIO2RnOq4
sOuKlCDtkZzspIAg7JyE6rOE66GcIO2RnO2YhO2VoCDsiJgg7JeG7J2EIOuVjOunjCDsk7Tri6Qu
IOusvOumrOyggeycvOuhnCDtmJXsoJwg7Y+0642U7J2066+A66GcIOydmOuvuOyDgSDrtoDrqqjs
nZgg7KeA7Lmo7J20IOyekOuPmSDsg4Hsho3rkJzri6Tqs6Ag6rCA7KCV7ZWY7KeAIOyViuuKlOuL
pC4KLSDrj4TrqZTsnbgg6re466O57J2AIOyLpO2PtOuNlCDrjIDsi6AgYOOAluq3uOujueOAl0Qw
MS3snbTrpoQoRW5nbGlzaClgIOygkeuRkOulvCDsk7DrqbAgYOOAl2DsmYAgRCDsgqzsnbTsl5Ag
6rO167Cx7J2EIOuEo+yngCDslYrripTri6QuIEQg67KI7Zi464qUIOq3uOujuSDslYjsl5DshJwg
7IOI66GcIOyLnOyeke2VnOuLpC4KLSDshLjrtoDsmIHsl60g7ZiV7KCcIETripQg6rCZ7J2AIOuy
iO2YuMK37ISc66GcIOuLpOuluCDtg5zqt7jroZwg6rWs67OE7ZWY66mwLCDrrLTtg5zqt7ggRCDt
lZjrgpjrpbwg7ZGc7KSAwrfqs7XthrUg64+E66mU7J247Jy866GcIOuRmCDsiJgg7J6I64ukLiDq
t7jro7kg7KCR65GQIOyViOyXkOyEnOuKlCDrsojtmLjqsIAg64uo6rOE7J206rOgIOu2hOyVvOuK
lCDsnbTrpoTsnLzroZwg6rWs67aE65CgIOyImCDsnojri6QuCgojIyDtg5zqt7gg7Jqp64+ECgrr
sJjsoITqsIEgYOOAliDjgJdg7J2YIOyaqeuPhOuKlCDslYTrnpggMTHsooXsnLzroZwg64ur7ZiA
IOyeiOuLpC4g7IOIIOyaqeuPhOuKlCDsoITsl60g6rec7LmZ6rO8IGBJUklTLeyYqO2GqOuhnOyn
gC5tZGDrpbwg66i87KCAIOqzoOy5nCDrkqQg7JO064ukLiDtlZwg7Y+0642U7JeQIOyEnOuhnCDr
i6Trpbgg7KKF66WY66W8IOyEnuyngCDslYrripTri6QuIOyGjO2UhO2KuOybqOyWtC/sgrDstpzr
rLwg7KKF66WY7JeQIO2VnO2VtCBgIOOAlldlYuOAl+OAlkFwcOOAl2Dsspjrn7wg6rCZ7J2AIOyi
heulmCDtg5zqt7jsnZgg67O17IiYIOuzkeq4sOulvCDtl4jsmqntlZzri6QuIOyghOqwgSBg44CQ
IOOAkWDCt+uMgOq0hO2YuMK37KSR6rSE7Zi464qUIO2PtOuNlOuqheyXkCDsk7Dsp4Ag7JWK64qU
64ukLgoKfCDsmqnrj4QgfCDsoIHsmqkg67KU7JyEwrfsmIjsi5wgfAp8LS0tfC0tLXwKfCDquLDq
sIQv7Jew64+EIHwgUDogYOOAljIwMjbrhYQuMe2Vmeq4sOOAl2DCt2DjgJYyMDI264WE44CXYMK3
YOOAljIwMjbrhYQg7Jes66aE67Cp7ZWZ44CXYCB8Cnwg7IaM7ZSE7Yq47Juo7Ja0L+yCsOy2nOus
vCDsooXrpZggfCBQOiBg44CWTUNQ44CXYMK3YOOAlldlYuOAl2DCt2DjgJZBcHDjgJdgwrdg44CW
TG9jYWwgQXBw44CXYMK3YOOAllBsdWdpbuOAl2AgfAp8IOuLtOuLueyekCB8IFA6IGDjgJbtmY3q
uLjrj5kg7ISg7IOd64uY44CXYCB8Cnwg6rCA7KGxIOq1rOyEseybkCB8IOuztO2XmCDrtoTslbwg
UOydmCDso7ztlLzrs7Ttl5jsnpA6IGDjgJbrgqjtjrjjgJdgwrdg44CW7JWE64K044CXYCB8Cnwg
7ZWZ64WE67CYwrfrtoTrsJggfCBUOiBg44CWMe2VmeuFhCAx67CY44CXYMK3YOOAlkHrsJjjgJdg
IHwKfCDsl7Drj4TCt+2VmeuFhOuwmCB8IOuLtOyehCDrtoTslbwgUDogYOOAljIwMjbrhYQgMe2V
meuFhCA167CY44CXYCB8Cnwg7IS467aAIOyngOyXrSB8IOyXrO2WiSDrtoTslbwgUDogYOOAluy9
lOuhoOOAl2DCt2DjgJbshLjrtoDjgJdgIHwKfCDshLjrtoDsmIHsl60gfCDsl7DqtawgRDog6rCZ
7J2AIEQg67KI7Zi4LCBg44CW66y866as7ZWZ44CXYMK3YOOAluusvOumrCDqtZDsnKHjgJdgIHwK
fCDrhbzrrLgg64uo7JyEIHwg6rCZ7J2AIOyjvOygnOyXkOyEnCDqsIjrnbzsp4DripQg7Jew6rWs
IFA6IGDjgJbshJ3sgqzrhbzrrLjjgJdgwrdg44CW67Cp67KV66Gg44CXYCB8Cnwg7ZmV7J6lIO2P
rOyduO2KuCB8IOyInOywqCDtmZXsnqUg7Jes7KCVIFA6IGDjgJbrsqDsnbTsiqTrnbzsnbjjgJdg
wrdg44CW7IS87IScIOy2lOqwgOOAl2AgfAp8IOuPhOuplOyduCDqt7jro7kg7KCR65GQIHwgRCDs
vZTrk5wg7JWeOiBg44CW6rWQ7J6s44CXRDAxLeKApmAsIOq3uOujuSDslYggRCDrsojtmLgg7IOI
IOyLnOyekSB8CgrigLsgYOyEuOu2gCDsp4Dsl61gwrdg64W866y4IOuLqOychGDCt2DtmZXsnqUg
7Y+s7J247Yq4YOuKlCDtj7TrjZQg7J2066aE7Jy866GcIOyekOuPmSDtjJDsoJXtlZjsp4Ag7JWK
64qU64ukLiDtlbTri7kgUCDsubTrk5zsnZggYHRhZ3M6YOyXkCBga2luZGDrpbwg7KeB7KCRIOyg
geuKlOuLpCjsoIHquLAg7KCE6rmM7KeAIGDrr7jrtoTrpZhg66GcIOq4sOuhneuQmOqzoCDqsoDs
gqwgIzLqsIAg7Iuk7Yyo7ZWc64ukKS4KCiMjIOuqqeuhnSDsubTrk5zsmYAg7KCV67O4CgotIOuq
qeuhnSDsubTrk5zsnZgg7KKF66WYwrfqs6DsnKDrsojtmLjCt+q0gOqzhMK37IOB7YOcIOyytOqz
hMK37J2066aEIOqygOyCrCDsoJXrs7jsnYAg66Oo7Yq4IGBJUklTLeyYqO2GqOuhnOyngC5tZGDr
i6QuIOyiheulmCDrqqnroZ3Ct+q0gOqzhCAxNOyihcK36rKA7IKsIDE07KKF7J2EIO2VmOychOyX
kOyEnCDsnoTsnZjroZwg64qY66as7KeAIOyViuuKlOuLpC4KLSDtj7TrjZTrqoXsnbQg7L2U65Oc
wrftg5zqt7jsnZgg7JuQ67O47J2064ukLiBSwrdEwrdQIOy5tOuTnOydmCBgaXJpczpgIOqzoOyc
oOuyiO2YuOuKlCDtlZwg67KIIOu2gOyXrO2VmOuptCDsnKDsp4DtlZzri6QuIOqwnOuqhcK37J20
64+ZIOyghOyXkCBgYWxpYXNlczpg7JeQIOyYmyDsnbTrpoTsnYQg64Ko6ri064ukLgotIOq0gOqz
hOuKlCDsnZjsobTtlZjripQg7Kq9IO2VnCDqs7Psl5Ag7KCB64qU64ukLiDsl63rsKntlqXsnYAg
64+E6rWs6rCAIOqzhOyCsO2VnOuLpC4KLSBgY2Fub25pY2FsYOydgCDrsKnrspXCt+2RnOykgOyd
mCDsoJXrs7gsIGB0cnV0aGDripQg7ZiE7J6sIOyDge2DnOulvCDsnb3snYQg7J6Q66as64ukLiDs
ubTrk5zsl5Ag7ZiE7J6sIOyDge2DnCDqsJLsnYQg67O17IKs7ZWY7KeAIOyViuuKlOuLpC4gYHN0
YXR1c19zY2hlbWU6IG5vbmVg7J24IFDsl5DripQgYHRydXRoYOqwgCDtlYTsiJjqsIAg7JWE64uI
64ukLgotIOyZuOu2gCDsgqzrnozCt+uPhOq1rMK36rOE7KCVwrfsoIDsnqXshozripQgYF9vbnRv
bG9neS9yZWdpc3RyeS55bWxg7JeQ7IScIOyLpOygnCDtlYTsmpTtlZwg7ZWt66qp66eMIOq0gOum
rO2VnOuLpC4g67mE67CA6rCS7J2AIOuEo+yngCDslYrripTri6QuCi0gYHNvdWwtc3RhdGUuanNv
bmDsnYAg7ISk7LmYIOyXlOynhOydmCDsg4Htg5wg6riw66Gd7Jy866GcIOuztOyhtO2VnOuLpC4g
YHNvdWxJZGDCt+qzteyaqSDquLDslrUgYHNjb3BlSWRgwrfsmKjthqjroZzsp4AgYGlyaXM6YCBJ
ROulvCDshJzroZwg67CU6r646rGw64KYIOuzteyCrO2VmOyngCDslYrripTri6QuCgojIyDsobDt
mozCt+qwseyLoMK36rKA7IKsCgotIENvZGV47JmAIENsYXVkZSDrqqjrkZAg7IS47IWYIOyLnOye
kSDrlYwgYHB5dGhvbiBfb250b2xvZ3kvY2hlY2tfZnJlc2gucHlg66W8IOyLpO2Wie2VnOuLpC4g
6riw7KG0IENsYXVkZSDtm4XsnbQg7Iuk7ZaJ7ZaI7Jy866m0IOqysOqzvOulvCDtmZXsnbjtlZjr
qbAsIO2bheydtCDsnojri6Tqs6Ag7LaU7KCV66eMIO2VmOyngCDslYrripTri6QuCi0g7Iug7ISg
64+EIOu2iOydvOy5mOuptCBgcHl0aG9uIF9vbnRvbG9neS9idWlsZF9ncmFwaC5weSAtLWNvbXBp
bGVg66GcIOyerOyDneyEse2VnOuLpC4g7IOIIFLCt0TCt1Dsl5DripQg66i87KCAIGAtLWluaXRg
IOy0iOyViOydhCDqsoDthqDtlZwg65KkIGAtLWluaXQgLS13cml0ZWDroZwg7Lm065Oc66W8IOu2
meyduOuLpC4KLSDtla3rqqnsnYAgYHB5dGhvbiBfb250b2xvZ3kvcXVlcnkucHkgd2hlcmUgIuqy
gOyDieyWtCJgLCDsoJXrs7jsnYAgYGNhbm9uaWNhbCAiSUQg65iQ64qUIOyDgeuMgOqyveuhnCJg
LCDrk6TslrTsmKTripQg7LC47KGw64qUIGBpbmJvdW5kICJJRCDrmJDripQg7IOB64yA6rK966Gc
ImDroZwg7LC+64qU64ukLiDsi6TsoJwg7YyM7J2864+EIO2ZleyduO2VnOuLpC4KLSBSL0QvUCDs
g53shLHCt+qwnOuqhcK37J2064+Zwrfqsqnrpqwg65iQ64qUIOy5tOuTnMK365Ox66Gd67aAwrfr
qoXshLgg67OA6rK9IOuSpOyXkOuKlCDqsJnsnYAg7YS07JeQIOy5tOuTnCDtmZXsnbgg4oaSIGBi
dWlsZF9ncmFwaC5weSAtLWNvbXBpbGVgIOKGkiBgdmFsaWRhdGUucHlgIOKGkiBgX21hcC1nZW5l
cmF0b3IvYnVpbGRfbWFwLnB5YCDihpIgYF9vbnRvbG9neS9yZW5kZXJfdmlldy5weWAg4oaSIGBj
aGVja19mcmVzaC5weWAg7Iic7ISc66GcIOqwseyLoO2VnOuLpC4g66qo65OgIOuqheugueydgCDs
mIHtmLwg66Oo7Yq47JeQ7IScIOyLpO2Wie2VnOuLpC4KLSBgX29udG9sb2d5L2dyYXBoLmpzb25g
wrdgPOyYge2YvCDsnbTrpoQ+Leq1rOyhsOyngOuPhC5odG1sYMK3YDzsmIHtmLwg7J2066aEPi3s
mKjthqjroZzsp4At67ewLmh0bWxg7J2AIOyDneyEseuQnCDqsbDsmrjsnbTri6QuIOyGkOycvOuh
nCDsiJjsoJXtlZjsp4Ag7JWK64qU64ukLiDrqoXshLgg7YyM7J2866qFIGBJUklTLeyYqO2GqOuh
nOyngC5tZGDripQg7JiB7Zi8IOydtOumhOqzvCDqtIDqs4Tsl4bsnbQg6rOg7KCV7ZWc64ukLgot
IOyLoOyEoOuPhOuKlCDqtaztmITsl5Ag65Sw6528IOqyveuhnOunjCDrmJDripQg7Lm065Ocwrfr
k7HroZ3rtoDCt+uqheyEuCDsp4DrrLjquYzsp4Ag67mE6rWQ7ZWc64ukLiDstZzsi6Ag7YyQ7KCV
7J20IOyXheustCDsg4Htg5wg7ZmV7J247J2064KYIOuqqOuToCDqt5zsuZkg7Ya16rO866W8IOuc
u+2VmOyngCDslYrripTri6QuCi0g6rKA7KadIOumrO2PrO2KuOydmCDsi6TtjKjCt+qyveqzoMK3
7ZW07ISd65CowrfqsoDsgqwg64yA7IOBIOyXhuydjMK36rKA7IKsIOu2iOqwgOulvCDqtazrtoTt
lZzri6QuIOuqheuguSDsooXro4wg7ISx6rO166eM7Jy866GcIOq3nOy5mSDthrXqs7zrnbzqs6Ag
67O06rOg7ZWY7KeAIOyViuuKlOuLpC4gM+y4tSDqt5zsuZkg7Iuk7Yyo64qUIOyekOuPmSDqsJzr
qoXCt+ydtOuPme2VmOyngCDslYrripTri6QuCi0g7ZuFwrfslbzqsIQg7JiI7JW9IOqygOyCrOuK
lCDsi6TsoJwg7ISk7KCV6rO8IOy1nOq3vCDsi6Ttlokg6rKw6rO866W8IO2ZleyduO2VnOuLpC4g
64+E6rWsIO2MjOydvOunjCDsobTsnqztlZjrqbQg7J6Q64+ZIOygkOqygOydgCDrr7jshKTsoJXs
nbwg7IiYIOyeiOuLpC4KCiMjIOyngOy5qOqzvCDsnpHsl4Ug67KU7JyECgotIOyLpO2WiSDtj7Tr
jZTsmYAg66qo65OgIOyhsOyDgSBgQUdFTlRTLm1kYOulvCDtlajqu5gg7KCB7Jqp7ZWc64ukLiDs
oITsl63snYAg66Oo7Yq4LCDsl63tlaAg7KCV7LK07ISx7J2AIFIsIOu2hOyVvCDqt5zsuZnsnYAg
RCwg7ZSE66Gc7KCd7Yq4IOqzoOycoOyCrO2VreydgCBQ7JeQIOuRlOuLpC4KLSDsp4Dsuagg7J20
7Jm47J2YIOyKpO2CrMK364+E6rWswrfshKTsoJXCt+q4sOyWteydtCDspJHqsIQg7KGw7IOBIO2P
tOuNlOyXkOyEnCDsnpDrj5kg7IOB7IaN65Cc64uk6rOgIOqwgOygle2VmOyngCDslYrripTri6Qu
IOyghOyXrSDriqXroKXsnYAg7IKs7Jqp7J6QIOyghOyXrSDsl7DqsrDrtoAsIO2KueyglSDsmIHs
l60g7KCE7JqpIOuKpeugpeydgCDtlbTri7kg7JiB7Jet7JeQIOuRlOuLpC4KLSDsg4gg7JiB7Zi8
7J2YIHY3IOyEpOy5mOuKlCBDb2RleCBgcHJvamVjdF9yb290X21hcmtlcnM9WyJzb3VsLXN0YXRl
Lmpzb24iXWDsnYQg7IKs7Jqp7ZWc64ukLiDquLDsobQgYC5naXRgIOq4sOuwmCDqsr3qs4TripQg
7Jyg7KeA7ZWY66mwIOyYqO2GqOuhnOyngCDshKTsuZjqsIAg67CU6r647KeAIOyViuuKlOuLpC4K
CiMjIOqzteyaqSDquLDslrXqs7wg64+Z7IucIOyTsOq4sAoKLSB2NyDqs7Xsmqkg6riw7Ja17J2E
IOyCrOyaqe2VmOuptCBgX2FnZW50L3NoYXJlZC9oYW5kb2ZmLzxzY29wZS1pZD5g7J2YIOqwmeyd
gCBDVVJSRU5UwrdNRU1PUlnCt2V2ZW50c+ulvCDsnb3ripTri6QuIOq4sOyhtCDsmIHtmLzsnZgg
6riw7Ja1IOuwsOy5mOuKlCDtmZXsnbgg7JeG7J20IOuwlOq+uOyngCDslYrripTri6QuCi0g7IKs
7Jqp7J6QIOuwnOyWuCwg7Iq57J2465CcIOqysOyglSwg7JeQ7J207KCE7Yq4IOy2lOygleydhCDq
tazrs4TtlZzri6QuCi0g6rCZ7J2AIOuylOychOyZgCDrtoDrqqjihpTsnpDsi50g67KU7JyE64qU
IO2VnCDsl5DsnbTsoITtirjrp4wg7JOw6rOgIOydmOuvuCDstqnrj4zsnYAg7J6Q64+ZIOuzke2V
qe2VmOyngCDslYrripTri6QuCi0g6riw7KG0IOyXkOydtOyghO2KuCDqs6DsnKAg7IS47IWY6rO8
IOq4sOyWteydgCDsgq3soJztlZjqsbDrgpgg7ISc66GcIO2Vqey5mOyngCDslYrripTri6QuIOyY
qO2GqOuhnOyngCDquLDslrUg6rKA7IKs64qUIOuTseuhneu2gOydmCBgbWVtb3J5X3N0b3Jlc2Dq
sIAg7Iuk7KCcIOqyveuhnOyduOyngCDrqLzsoIAg7ZmV7J247ZWc64ukLgo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/prepare-foundations-v7.ps1","encoding":"base64","size":44134,"runtimeSha256":"e8f1e41d1c77c06e13e140edd350cadcebdc92eed4ea8325078c4c9874c65fb8","normalizedSha256":"3f52d0efa7d6db1e7b415cd13fb7fa60940893ee4d90a185c59893718dd0ab28"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIEF1ZGl0cyBhbmQs
IG9ubHkgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZCwgcHJlcGFyZXMgdGhlIGxvY2tlZCB2NyBm
b3VuZGF0aW9ucy4NCg0KLkRFU0NSSVBUSU9ODQogIFRoZSBkZWZhdWx0IG1vZGUgaXMgUGxhbk9u
bHkgYW5kIHBlcmZvcm1zIG5vIHdyaXRlcy4gLVByZXBhcmVGb3VuZGF0aW9ucyBtYXkNCiAgaW5z
dGFsbCBtaXNzaW5nIFdpbmRvd3MgdG9vbHMgdGhyb3VnaCBXaW5HZXQsIGluc3RhbGwgQ2xhdWRl
IENvZGUgZnJvbSB0aGUNCiAgb2ZmaWNpYWwgc3RhYmxlIG5hdGl2ZSBpbnN0YWxsZXIsIG9yIHBy
ZXBhcmUgdGhlIGV4YWN0IENvZGV4IGZhbGxiYWNrIGFuZCB1dg0KICB3aGVlbCBpbnNpZGUgdGhl
IHNvdWwuIEV4aXN0aW5nIGNvbXBhdGlibGUgbmV3ZXIgdG9vbHMgYXJlIHByZXNlcnZlZC4gVGhp
cw0KICBzY3JpcHQgbmV2ZXIgZG93bmdyYWRlcyBhIG5ld2VyIHRvb2wsIGRlbGV0ZXMgdXNlciBk
YXRhLCB3cml0ZXMgdG8gRGVza3RvcCwgb3INCiAgY2hhbmdlcyBDbGF1ZGUvQ29kZXggc2V0dGlu
Z3MuDQojPg0KW0NtZGxldEJpbmRpbmcoKV0NCnBhcmFtKA0KICAgIFtzd2l0Y2hdJFBsYW5Pbmx5
LA0KICAgIFtzd2l0Y2hdJFByZXBhcmVGb3VuZGF0aW9ucywNCg0KICAgICMgVGhlIFRlc3QqIHBh
cmFtZXRlcnMgYXJlIGFjY2VwdGVkIG9ubHkgYmVsb3cgc2V0dXBcdGVzdHNcZml4dHVyZXMuIFRo
ZXkNCiAgICAjIG1ha2UgaW5zdGFsbGF0aW9uIHRlc3RzIHVzZSBmYWtlIGV4ZWN1dGFibGVzIGFu
ZCBpbmplY3RlZCBjYWxsYmFja3MuDQogICAgW3N0cmluZ10kVGVzdFJvb3QsDQogICAgW3N0cmlu
Z10kVGVzdENvbW1hbmREaXJlY3RvcnksDQogICAgW2hhc2h0YWJsZV0kVGVzdFZlcnNpb25PdmVy
cmlkZXMsDQogICAgW3N0cmluZ10kVGVzdFBvd2VyU2hlbGxWZXJzaW9uLA0KICAgIFtzdHJpbmdd
JFRlc3RVdlNoYTI1NiwNCiAgICBbc2NyaXB0YmxvY2tdJFRlc3RXaW5nZXRBY3Rpb24sDQogICAg
W3NjcmlwdGJsb2NrXSRUZXN0RG93bmxvYWRBY3Rpb24sDQogICAgW3NjcmlwdGJsb2NrXSRUZXN0
Q2xhdWRlSW5zdGFsbEFjdGlvbiwNCiAgICBbc2NyaXB0YmxvY2tdJFRlc3RDb2RleEluc3RhbGxB
Y3Rpb24NCikNCg0KU2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0DQokRXJyb3JBY3Rpb25Q
cmVmZXJlbmNlID0gJ1N0b3AnDQoNCiRtb2R1bGVQYXRoID0gSm9pbi1QYXRoICRQU1NjcmlwdFJv
b3QgJ2VuZ2luZVxTb3VsLkVuZ2luZS5wc20xJw0KSW1wb3J0LU1vZHVsZSAtTmFtZSAkbW9kdWxl
UGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCg0KaWYgKCRQbGFuT25seSAtYW5kICRQcmVw
YXJlRm91bmRhdGlvbnMpIHsNCiAgICB0aHJvdyAnQ2hvb3NlIGVpdGhlciBQbGFuT25seSBvciBQ
cmVwYXJlRm91bmRhdGlvbnMsIG5vdCBib3RoLicNCn0NCmlmICgtbm90ICRQbGFuT25seSAtYW5k
IC1ub3QgJFByZXBhcmVGb3VuZGF0aW9ucykgeyAkUGxhbk9ubHkgPSAkdHJ1ZSB9DQoNCiRzY3Jp
cHQ6VXRmOE5vQm9tID0gTmV3LU9iamVjdCBTeXN0ZW0uVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNl
KQ0KJHNjcmlwdDpQYXRoQ29tcGFyaXNvbiA9IFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbEln
bm9yZUNhc2UNCiRzY3JpcHQ6Rml4dHVyZU1vZGUgPSAtbm90IFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoJFRlc3RSb290KQ0KJHNjcmlwdDpQcm9kdWN0aW9uU291bFJvb3QgPSBbSU8uUGF0
aF06OkdldEZ1bGxQYXRoKChHZXQtU291bFJvb3QpKS5UcmltRW5kKCdcJywgJy8nKQ0KJHNjcmlw
dDpGaXh0dXJlQm91bmRhcnkgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBhdGggJFBT
U2NyaXB0Um9vdCAndGVzdHNcZml4dHVyZXMnKSkuVHJpbUVuZCgnXCcsICcvJykNCiRzY3JpcHQ6
TG9ja1BhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAnbWFuaWZlc3RzXHY3LWxvY2suanNv
bicNCiRzY3JpcHQ6T3JpZ2luYWxBbnRocm9waWNCYXNlVXJsID0gW0Vudmlyb25tZW50XTo6R2V0
RW52aXJvbm1lbnRWYXJpYWJsZSgnQU5USFJPUElDX0JBU0VfVVJMJywgJ1Byb2Nlc3MnKQ0KDQpm
dW5jdGlvbiBHZXQtRnVsbFBhdGggew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1b
c3RyaW5nXSRQYXRoKQ0KICAgIHJldHVybiBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQYXRoKS5U
cmltRW5kKCdcJywgJy8nKQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LVBhdGhXaXRoaW4gew0KICAgIHBh
cmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoLCBbUGFyYW1ldGVyKE1hbmRh
dG9yeSldW3N0cmluZ10kQm91bmRhcnksIFtzd2l0Y2hdJEFsbG93Qm91bmRhcnkpDQogICAgJGZ1
bGxQYXRoID0gR2V0LUZ1bGxQYXRoICRQYXRoDQogICAgJGZ1bGxCb3VuZGFyeSA9IEdldC1GdWxs
UGF0aCAkQm91bmRhcnkNCiAgICBpZiAoJGZ1bGxQYXRoLkVxdWFscygkZnVsbEJvdW5kYXJ5LCAk
c2NyaXB0OlBhdGhDb21wYXJpc29uKSkgeyByZXR1cm4gW2Jvb2xdJEFsbG93Qm91bmRhcnkgfQ0K
ICAgIHJldHVybiAkZnVsbFBhdGguU3RhcnRzV2l0aCgkZnVsbEJvdW5kYXJ5ICsgW0lPLlBhdGhd
OjpEaXJlY3RvcnlTZXBhcmF0b3JDaGFyLCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKQ0KfQ0KDQpp
ZiAoJHNjcmlwdDpGaXh0dXJlTW9kZSkgew0KICAgICRzY3JpcHQ6U291bFJvb3QgPSBHZXQtRnVs
bFBhdGggJFRlc3RSb290DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aFdpdGhpbiAtUGF0aCAkc2Ny
aXB0OlNvdWxSb290IC1Cb3VuZGFyeSAkc2NyaXB0OkZpeHR1cmVCb3VuZGFyeSkpIHsNCiAgICAg
ICAgdGhyb3cgJ1Rlc3RSb290IGlzIHBlcm1pdHRlZCBvbmx5IGJlbG93IF9hZ2VudFxzZXR1cFx0
ZXN0c1xmaXh0dXJlcy4nDQogICAgfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCRUZXN0Q29tbWFuZERpcmVjdG9yeSkpIHsNCiAgICAgICAgdGhyb3cgJ0ZpeHR1cmUgbW9k
ZSByZXF1aXJlcyBUZXN0Q29tbWFuZERpcmVjdG9yeS4nDQogICAgfQ0KICAgICRzY3JpcHQ6Q29t
bWFuZERpcmVjdG9yeSA9IEdldC1GdWxsUGF0aCAkVGVzdENvbW1hbmREaXJlY3RvcnkNCiAgICBp
ZiAoLW5vdCAoVGVzdC1QYXRoV2l0aGluIC1QYXRoICRzY3JpcHQ6Q29tbWFuZERpcmVjdG9yeSAt
Qm91bmRhcnkgJHNjcmlwdDpTb3VsUm9vdCkpIHsNCiAgICAgICAgdGhyb3cgJ1Rlc3RDb21tYW5k
RGlyZWN0b3J5IG11c3Qgc3RheSBiZWxvdyBUZXN0Um9vdC4nDQogICAgfQ0KfSBlbHNlIHsNCiAg
ICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Q29tbWFuZERpcmVj
dG9yeSkgLW9yDQogICAgICAgICRudWxsIC1uZSAkVGVzdFZlcnNpb25PdmVycmlkZXMgLW9yDQog
ICAgICAgIC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFBvd2VyU2hlbGxW
ZXJzaW9uKSAtb3INCiAgICAgICAgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRU
ZXN0VXZTaGEyNTYpIC1vcg0KICAgICAgICAkbnVsbCAtbmUgJFRlc3RXaW5nZXRBY3Rpb24gLW9y
ICRudWxsIC1uZSAkVGVzdERvd25sb2FkQWN0aW9uIC1vcg0KICAgICAgICAkbnVsbCAtbmUgJFRl
c3RDbGF1ZGVJbnN0YWxsQWN0aW9uIC1vciAkbnVsbCAtbmUgJFRlc3RDb2RleEluc3RhbGxBY3Rp
b24pIHsNCiAgICAgICAgdGhyb3cgJ1Rlc3QgaG9va3MgYXJlIGZvcmJpZGRlbiBvdXRzaWRlIGZp
eHR1cmUgbW9kZS4nDQogICAgfQ0KICAgICRzY3JpcHQ6U291bFJvb3QgPSAkc2NyaXB0OlByb2R1
Y3Rpb25Tb3VsUm9vdA0KICAgICRzY3JpcHQ6Q29tbWFuZERpcmVjdG9yeSA9ICRudWxsDQp9DQoN
CiRzY3JpcHQ6U2V0dXBEaXJlY3RvcnkgPSBKb2luLVBhdGggJHNjcmlwdDpTb3VsUm9vdCAnX2Fn
ZW50XHNldHVwJw0KJHNjcmlwdDpNb2R1bGVBcmd1bWVudHMgPSBpZiAoJHNjcmlwdDpGaXh0dXJl
TW9kZSkgeyBAeyBUZXN0U2V0dXBEaXJlY3RvcnkgPSAkc2NyaXB0OlNldHVwRGlyZWN0b3J5IH0g
fSBlbHNlIHsgQHt9IH0NCg0KZnVuY3Rpb24gQXNzZXJ0LU1hbmFnZWRQYXRoIHsNCiAgICBwYXJh
bShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGF0aCwgW3N3aXRjaF0kQWxsb3dSb290
KQ0KICAgICRmdWxsUGF0aCA9IEdldC1GdWxsUGF0aCAkUGF0aA0KICAgIGlmICgtbm90IChUZXN0
LVBhdGhXaXRoaW4gLVBhdGggJGZ1bGxQYXRoIC1Cb3VuZGFyeSAkc2NyaXB0OlNvdWxSb290IC1B
bGxvd0JvdW5kYXJ5OiRBbGxvd1Jvb3QpKSB7DQogICAgICAgIHRocm93ICJNYW5hZ2VkIHBhdGgg
ZXNjYXBlcyB0aGUgc291bDogJGZ1bGxQYXRoIg0KICAgIH0NCiAgICBpZiAoLW5vdCAkc2NyaXB0
OkZpeHR1cmVNb2RlKSB7IFt2b2lkXShBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkZnVsbFBh
dGggLUFsbG93Um9vdDokQWxsb3dSb290KSB9DQogICAgcmV0dXJuICRmdWxsUGF0aA0KfQ0KDQpm
dW5jdGlvbiBXcml0ZS1OZXdVdGY4RmlsZSB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRv
cnkpXVtzdHJpbmddJFBhdGgsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRUZXh0KQ0K
ICAgICRmdWxsUGF0aCA9IEFzc2VydC1NYW5hZ2VkUGF0aCAtUGF0aCAkUGF0aA0KICAgICRieXRl
cyA9ICRzY3JpcHQ6VXRmOE5vQm9tLkdldEJ5dGVzKCRUZXh0KQ0KICAgICRzdHJlYW0gPSBbSU8u
RmlsZV06Ok9wZW4oJGZ1bGxQYXRoLCBbSU8uRmlsZU1vZGVdOjpDcmVhdGVOZXcsIFtJTy5GaWxl
QWNjZXNzXTo6V3JpdGUsIFtJTy5GaWxlU2hhcmVdOjpOb25lKQ0KICAgIHRyeSB7ICRzdHJlYW0u
V3JpdGUoJGJ5dGVzLCAwLCAkYnl0ZXMuTGVuZ3RoKTsgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkgfSBm
aW5hbGx5IHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KfQ0KDQpmdW5jdGlvbiBFbnN1cmUtRm91bmRh
dGlvbkRpcmVjdG9yeSB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmdd
JFBhdGgsIFtzdHJpbmddJFRpdGxlID0gJ1BvcnRhYmxlIGZvdW5kYXRpb24gZGF0YScpDQogICAg
JGZ1bGxQYXRoID0gQXNzZXJ0LU1hbmFnZWRQYXRoIC1QYXRoICRQYXRoDQogICAgaWYgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJGZ1bGxQYXRoKSB7DQogICAgICAgICRpdGVtID0gR2V0LUl0ZW0g
LUxpdGVyYWxQYXRoICRmdWxsUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAg
aWYgKC1ub3QgJGl0ZW0uUFNJc0NvbnRhaW5lciAtb3IgKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQg
W0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgew0KICAgICAgICAgICAg
dGhyb3cgIkZvdW5kYXRpb24gZGlyZWN0b3J5IG11c3QgYmUgYSByZWFsIGRpcmVjdG9yeTogJGZ1
bGxQYXRoIg0KICAgICAgICB9DQogICAgfSBlbHNlIHsNCiAgICAgICAgJHBhcmVudCA9IFNwbGl0
LVBhdGggLVBhcmVudCAkZnVsbFBhdGgNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJHBhcmVudCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgew0KICAgICAgICAgICAgRW5z
dXJlLUZvdW5kYXRpb25EaXJlY3RvcnkgLVBhdGggJHBhcmVudCAtVGl0bGUgJ1BvcnRhYmxlIGZv
dW5kYXRpb24gcGFyZW50Jw0KICAgICAgICB9DQogICAgICAgIFt2b2lkXVtJTy5EaXJlY3Rvcnld
OjpDcmVhdGVEaXJlY3RvcnkoJGZ1bGxQYXRoKQ0KICAgIH0NCg0KICAgICRhZ2VudHNQYXRoID0g
Sm9pbi1QYXRoICRmdWxsUGF0aCAnQUdFTlRTLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRhZ2VudHNQYXRoKSkgew0KICAgICAgICBXcml0ZS1OZXdVdGY4RmlsZSAt
UGF0aCAkYWdlbnRzUGF0aCAtVGV4dCAoIiMgJFRpdGxlYHJgbmByYG5UaGlzIGRpcmVjdG9yeSBj
b250YWlucyBzZXR1cC1tYW5hZ2VkIGZvdW5kYXRpb24gZGF0YS5gcmBuYHJgbjwhLS0gRG8gbm90
IHJlc3RhdGUgaW5oZXJpdGVkIEFHRU5UUy5tZCBydWxlcy4gLS0+YHJgbiIpDQogICAgfQ0KICAg
ICRjbGF1ZGVQYXRoID0gSm9pbi1QYXRoICRmdWxsUGF0aCAnQ0xBVURFLm1kJw0KICAgIGlmICgt
bm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVQYXRoKSkgew0KICAgICAgICBXcml0
ZS1OZXdVdGY4RmlsZSAtUGF0aCAkY2xhdWRlUGF0aCAtVGV4dCAiQEFHRU5UUy5tZGByYG4iDQog
ICAgfQ0KfQ0KDQpmdW5jdGlvbiBHZXQtT3B0aW9uYWxQcm9wZXJ0eSB7DQogICAgcGFyYW0oJE9i
amVjdCwgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJE5hbWUpDQogICAgaWYgKCRudWxs
IC1lcSAkT2JqZWN0KSB7IHJldHVybiAkbnVsbCB9DQogICAgJHByb3BlcnR5ID0gJE9iamVjdC5Q
U09iamVjdC5Qcm9wZXJ0aWVzWyROYW1lXQ0KICAgIGlmICgkbnVsbCAtZXEgJHByb3BlcnR5KSB7
IHJldHVybiAkbnVsbCB9DQogICAgcmV0dXJuICRwcm9wZXJ0eS5WYWx1ZQ0KfQ0KDQpmdW5jdGlv
biBHZXQtRm91bmRhdGlvblJlY29yZCB7DQogICAgcGFyYW0oJExvY2ssIFtQYXJhbWV0ZXIoTWFu
ZGF0b3J5KV1bc3RyaW5nXSRJZCkNCiAgICAkbWF0Y2hlcyA9IEAoJExvY2suZm91bmRhdGlvbnMg
fCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlkIC1jZXEgJElkIH0pDQogICAgaWYgKCRtYXRj
aGVzLkNvdW50IC1uZSAxKSB7IHRocm93ICJUaGUgdjcgbG9jayBtdXN0IGNvbnRhaW4gb25lIGZv
dW5kYXRpb24gcmVjb3JkIGZvciAkSWQuIg0KICAgIH0NCiAgICByZXR1cm4gJG1hdGNoZXNbMF0N
Cn0NCg0KZnVuY3Rpb24gQXNzZXJ0LUZvdW5kYXRpb25Mb2NrQ29udHJhY3Qgew0KICAgIHBhcmFt
KCRMb2NrKQ0KICAgIGlmIChbaW50XSRMb2NrLnNjaGVtYVZlcnNpb24gLW5lIDcpIHsgdGhyb3cg
J1RoZSBmb3VuZGF0aW9uIGVuZ2luZSByZXF1aXJlcyBhIHNjaGVtYVZlcnNpb24gNyBsb2NrLicg
fQ0KICAgIGlmIChbc3RyaW5nXSRMb2NrLnBsYXRmb3JtIC1jbmUgJ3dpbmRvd3MteDY0JykgeyB0
aHJvdyAnVGhlIGZvdW5kYXRpb24gbG9jayBpcyBub3QgZm9yIFdpbmRvd3MgeDY0LicgfQ0KICAg
IGlmIChbc3RyaW5nXSRMb2NrLnBvbGljaWVzLmRlc2t0b3BXcml0ZXMgLWNuZSAnZGVueS1hbHdh
eXMnKSB7IHRocm93ICdEZXNrdG9wIHdyaXRlcyBtdXN0IHJlbWFpbiBkZW5pZWQuJyB9DQogICAg
aWYgKFtzdHJpbmddJExvY2sucG9saWNpZXMuYW50aHJvcGljRGlyZWN0UHJvYmUgLWNuZSAnZm9y
YmlkZGVuJykgeyB0aHJvdyAnQW50aHJvcGljIGRpcmVjdCBwcm9iZXMgbXVzdCByZW1haW4gZm9y
YmlkZGVuLicgfQ0KDQogICAgJGV4cGVjdGVkID0gW29yZGVyZWRdQHsNCiAgICAgICAgcG93ZXJz
aGVsbCA9IEB7IHBvbGljeSA9ICd3aW5kb3dzLWluYm94JzsgbWluaW11bVZlcnNpb24gPSAnNS4x
JyB9DQogICAgICAgIHdpbmdldCA9IEB7IHBvbGljeSA9ICdyZXVzZS1vci1vZmZpY2lhbC1yZXBh
aXInOyBwYWNrYWdlSWQgPSAnTWljcm9zb2Z0LkFwcEluc3RhbGxlcicgfQ0KICAgICAgICBnaXQg
PSBAeyBwb2xpY3kgPSAnZXhhY3Qtd2luZ2V0JzsgcGFja2FnZUlkID0gJ0dpdC5HaXQnOyB2ZXJz
aW9uID0gJzIuNTQuMC53aW5kb3dzLjEnIH0NCiAgICAgICAgbm9kZSA9IEB7IHBvbGljeSA9ICdl
eGFjdC13aW5nZXQnOyBwYWNrYWdlSWQgPSAnT3BlbkpTLk5vZGVKUy5MVFMnOyB2ZXJzaW9uID0g
JzI0LjE3LjAnIH0NCiAgICAgICAgcHl0aG9uID0gQHsgcG9saWN5ID0gJ2V4YWN0LXdpbmdldCc7
IHBhY2thZ2VJZCA9ICdQeXRob24uUHl0aG9uLjMuMTInOyB2ZXJzaW9uID0gJzMuMTIuMTAnIH0N
CiAgICAgICAgdXYgPSBAeyB2ZXJzaW9uID0gJzAuMTEuMjEnOyBzaGEyNTYgPSAnZDk1NmJhOTQ3
MGQ1MjY3Y2MwZWEzZDc1NzJjYWMzYmYwNDViYzc4YWRhZDViMDMxYjU1NThjNmRmMTNkMmUxOSc7
IGNhbm9uaWNhbFJlbGF0aXZlUGF0aCA9ICdfYWdlbnQvc2hhcmVkL3Rvb2xzL3V2LzAuMTEuMjEn
IH0NCiAgICAgICAgJ2NsYXVkZS1jb2RlJyA9IEB7IGNoYW5uZWwgPSAnb2ZmaWNpYWwtc3RhYmxl
JzsgbWluaW11bVZlcnNpb24gPSAnMi4xLjI0MSc7IGluc3RhbGwgPSAnb2ZmaWNpYWwtbmF0aXZl
LWluc3RhbGxlcicgfQ0KICAgICAgICAnY29kZXgtY2xpJyA9IEB7IGNoYW5uZWwgPSAnb2ZmaWNp
YWwtc3RhYmxlJzsgbWluaW11bVZlcnNpb24gPSAnMC4xNDkuMCc7IGZhbGxiYWNrUGFja2FnZSA9
ICdAb3BlbmFpL2NvZGV4QDAuMTQ5LjAnOyBmYWxsYmFja0Nhbm9uaWNhbFJlbGF0aXZlUGF0aCA9
ICdfYWdlbnQvc2hhcmVkL3Rvb2xzL2NvZGV4LzAuMTQ5LjAnIH0NCiAgICB9DQogICAgZm9yZWFj
aCAoJGlkIGluICRleHBlY3RlZC5LZXlzKSB7DQogICAgICAgICRyZWNvcmQgPSBHZXQtRm91bmRh
dGlvblJlY29yZCAtTG9jayAkTG9jayAtSWQgJGlkDQogICAgICAgIGZvcmVhY2ggKCRmaWVsZCBp
biAkZXhwZWN0ZWRbJGlkXS5LZXlzKSB7DQogICAgICAgICAgICBpZiAoW3N0cmluZ10oR2V0LU9w
dGlvbmFsUHJvcGVydHkgJHJlY29yZCAkZmllbGQpIC1jbmUgW3N0cmluZ10kZXhwZWN0ZWRbJGlk
XVskZmllbGRdKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgIkZvdW5kYXRpb24gbG9jayBtaXNt
YXRjaDogJGlkLiRmaWVsZCINCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg0K
JHNjcmlwdDpMb2NrID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkc2NyaXB0OkxvY2tQYXRoDQpBc3Nl
cnQtRm91bmRhdGlvbkxvY2tDb250cmFjdCAtTG9jayAkc2NyaXB0OkxvY2sNCg0KZnVuY3Rpb24g
Q29udmVydFRvLVZlcnNpb25WZWN0b3Igew0KICAgIHBhcmFtKFtzdHJpbmddJFRleHQpDQogICAg
aWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRleHQpKSB7IHJldHVybiAkbnVsbCB9
DQogICAgIyBBY2NlcHQgb3JkaW5hcnkgc2VtYW50aWMgdmVyc2lvbnMsIGZvdXItcGFydCBXaW5k
b3dzIHZlcnNpb25zLCBhbmQgR2l0J3MNCiAgICAjICIyLjU0LjAud2luZG93cy4xIiBmb3JtLiAg
RG8gbm90IG1pc3Rha2UgZGlnaXRzIGluIGEgdHJhaWxpbmcgY29tbWl0IGhhc2gNCiAgICAjIHN1
Y2ggYXMgdXYncyAiMC4xMS4yMSAoNWFhNjVkZDdhIC4uLikiIGZvciBhIGZvdXJ0aCB2ZXJzaW9u
IGNvbXBvbmVudC4NCiAgICAkbWF0Y2ggPSBbcmVnZXhdOjpNYXRjaCgkVGV4dCwgJyg/PCFcZCko
PzxtYWpvcj5cZCspXC4oPzxtaW5vcj5cZCspKD86XC4oPzxwYXRjaD5cZCspKT8oPzooPzpcLndp
bmRvd3MpP1wuKD88YnVpbGQ+XGQrKSk/JykNCiAgICBpZiAoLW5vdCAkbWF0Y2guU3VjY2Vzcykg
eyByZXR1cm4gJG51bGwgfQ0KICAgIHJldHVybiAsQCgNCiAgICAgICAgW2ludF0kbWF0Y2guR3Jv
dXBzWydtYWpvciddLlZhbHVlLA0KICAgICAgICBbaW50XSRtYXRjaC5Hcm91cHNbJ21pbm9yJ10u
VmFsdWUsDQogICAgICAgICQoaWYgKCRtYXRjaC5Hcm91cHNbJ3BhdGNoJ10uU3VjY2VzcykgeyBb
aW50XSRtYXRjaC5Hcm91cHNbJ3BhdGNoJ10uVmFsdWUgfSBlbHNlIHsgMCB9KSwNCiAgICAgICAg
JChpZiAoJG1hdGNoLkdyb3Vwc1snYnVpbGQnXS5TdWNjZXNzKSB7IFtpbnRdJG1hdGNoLkdyb3Vw
c1snYnVpbGQnXS5WYWx1ZSB9IGVsc2UgeyAwIH0pDQogICAgKQ0KfQ0KDQpmdW5jdGlvbiBDb21w
YXJlLVZlcnNpb25UZXh0IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmlu
Z10kT2JzZXJ2ZWQsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSZXF1aXJlZCkNCiAg
ICAkbGVmdCA9IENvbnZlcnRUby1WZXJzaW9uVmVjdG9yICRPYnNlcnZlZA0KICAgICRyaWdodCA9
IENvbnZlcnRUby1WZXJzaW9uVmVjdG9yICRSZXF1aXJlZA0KICAgIGlmICgkbnVsbCAtZXEgJGxl
ZnQgLW9yICRudWxsIC1lcSAkcmlnaHQpIHsgdGhyb3cgIkNhbm5vdCBjb21wYXJlIHZlcnNpb25z
OiAnJE9ic2VydmVkJyBhbmQgJyRSZXF1aXJlZCcuIiB9DQogICAgZm9yICgkaW5kZXggPSAwOyAk
aW5kZXggLWx0IDQ7ICRpbmRleCsrKSB7DQogICAgICAgIGlmICgkbGVmdFskaW5kZXhdIC1sdCAk
cmlnaHRbJGluZGV4XSkgeyByZXR1cm4gLTEgfQ0KICAgICAgICBpZiAoJGxlZnRbJGluZGV4XSAt
Z3QgJHJpZ2h0WyRpbmRleF0pIHsgcmV0dXJuIDEgfQ0KICAgIH0NCiAgICByZXR1cm4gMA0KfQ0K
DQpmdW5jdGlvbiBUZXN0LVNhbWVDb21wYXRpYmlsaXR5TGluZSB7DQogICAgcGFyYW0oW1BhcmFt
ZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJElkLCBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmlu
Z10kT2JzZXJ2ZWQsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSZXF1aXJlZCkNCiAg
ICAkbGVmdCA9IENvbnZlcnRUby1WZXJzaW9uVmVjdG9yICRPYnNlcnZlZA0KICAgICRyaWdodCA9
IENvbnZlcnRUby1WZXJzaW9uVmVjdG9yICRSZXF1aXJlZA0KICAgIGlmICgkbnVsbCAtZXEgJGxl
ZnQgLW9yICRudWxsIC1lcSAkcmlnaHQpIHsgcmV0dXJuICRmYWxzZSB9DQogICAgc3dpdGNoICgk
SWQpIHsNCiAgICAgICAgJ3B5dGhvbicgeyByZXR1cm4gJGxlZnRbMF0gLWVxICRyaWdodFswXSAt
YW5kICRsZWZ0WzFdIC1lcSAkcmlnaHRbMV0gfQ0KICAgICAgICAnbm9kZScgeyByZXR1cm4gJGxl
ZnRbMF0gLWVxICRyaWdodFswXSB9DQogICAgICAgICdnaXQnIHsgcmV0dXJuICRsZWZ0WzBdIC1l
cSAkcmlnaHRbMF0gfQ0KICAgICAgICBkZWZhdWx0IHsgcmV0dXJuICR0cnVlIH0NCiAgICB9DQp9
DQoNCmZ1bmN0aW9uIFJlc29sdmUtQXBwbGljYXRpb24gew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIo
TWFuZGF0b3J5KV1bc3RyaW5nXSROYW1lKQ0KICAgIGlmICgkc2NyaXB0OkZpeHR1cmVNb2RlKSB7
DQogICAgICAgIGZvcmVhY2ggKCRleHRlbnNpb24gaW4gQCgnLmV4ZScsICcuY21kJywgJy5iYXQn
KSkgew0KICAgICAgICAgICAgJGNhbmRpZGF0ZSA9IEpvaW4tUGF0aCAkc2NyaXB0OkNvbW1hbmRE
aXJlY3RvcnkgKCROYW1lICsgJGV4dGVuc2lvbikNCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRjYW5kaWRhdGUgLVBhdGhUeXBlIExlYWYpIHsgcmV0dXJuICRjYW5kaWRh
dGUgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkbnVsbA0KICAgIH0NCiAgICAkY29tbWFu
ZCA9IEdldC1Db21tYW5kIC1OYW1lICROYW1lIC1Db21tYW5kVHlwZSBBcHBsaWNhdGlvbiAtRXJy
b3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDENCiAgICBp
ZiAoJG51bGwgLWVxICRjb21tYW5kKSB7IHJldHVybiAkbnVsbCB9DQogICAgcmV0dXJuIFtzdHJp
bmddJGNvbW1hbmQuU291cmNlDQp9DQoNCmZ1bmN0aW9uIEludm9rZS1BcHBsaWNhdGlvbkNhcHR1
cmUgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRGaWxlUGF0aCwg
W3N0cmluZ1tdXSRBcmd1bWVudHMgPSBAKCkpDQogICAgJHNhdmVkUHJlZmVyZW5jZSA9ICRFcnJv
ckFjdGlvblByZWZlcmVuY2UNCiAgICB0cnkgew0KICAgICAgICAkRXJyb3JBY3Rpb25QcmVmZXJl
bmNlID0gJ0NvbnRpbnVlJw0KICAgICAgICAkb3V0cHV0ID0gQCgmICRGaWxlUGF0aCBAQXJndW1l
bnRzIDI+JjEpDQogICAgICAgICRleGl0Q29kZSA9ICRMQVNURVhJVENPREUNCiAgICB9IGNhdGNo
IHsNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBleGl0Q29kZSA9IC0xOyBvdXRw
dXQgPSBAKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKSB9DQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAg
JEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICRzYXZlZFByZWZlcmVuY2UNCiAgICB9DQogICAgcmV0
dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBleGl0Q29kZSA9ICRleGl0Q29kZTsgb3V0cHV0ID0gQCgk
b3V0cHV0IHwgRm9yRWFjaC1PYmplY3QgeyBbc3RyaW5nXSRfIH0pIH0NCn0NCg0KZnVuY3Rpb24g
R2V0LUV4ZWN1dGFibGVIYXNoIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgIGlmIChb
c3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRQYXRoKSAtb3IgLW5vdCAoVGVzdC1QYXRoIC1M
aXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgcmV0dXJuICRudWxsIH0NCiAgICAj
IFRoaXMgaXMgYSByZWFkLW9ubHkgb2JzZXJ2YXRpb24uIEZvdW5kYXRpb24gZXhlY3V0YWJsZXMg
bWF5IGxlZ2l0aW1hdGVseQ0KICAgICMgbGl2ZSBpbiBXaW5kb3dzLW1hbmFnZWQgbG9jYXRpb25z
IG91dHNpZGUgdGhlIHNvdWwuDQogICAgdHJ5IHsNCiAgICAgICAgJHN0cmVhbSA9IFtJTy5GaWxl
XTo6T3BlbigkUGF0aCwgW0lPLkZpbGVNb2RlXTo6T3BlbiwgW0lPLkZpbGVBY2Nlc3NdOjpSZWFk
LCBbSU8uRmlsZVNoYXJlXTo6UmVhZFdyaXRlKQ0KICAgICAgICAkYWxnb3JpdGhtID0gW1NlY3Vy
aXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAgICAgICB0cnkgeyByZXR1cm4g
KFtCaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkYWxnb3JpdGhtLkNvbXB1dGVIYXNoKCRzdHJlYW0p
KSkuUmVwbGFjZSgnLScsICcnKS5Ub0xvd2VySW52YXJpYW50KCkgfQ0KICAgICAgICBmaW5hbGx5
IHsgJGFsZ29yaXRobS5EaXNwb3NlKCk7ICRzdHJlYW0uRGlzcG9zZSgpIH0NCiAgICB9IGNhdGNo
IHsNCiAgICAgICAgIyBXaW5kb3dzIEFwcCBFeGVjdXRpb24gQWxpYXMgcGxhY2Vob2xkZXJzIGNh
biBiZSBleGVjdXRhYmxlIGJ1dCBub3QNCiAgICAgICAgIyBvcGVuZWQgYXMgb3JkaW5hcnkgZmls
ZXMuIFZlcnNpb24gZXZpZGVuY2UgcmVtYWlucyB2YWxpZDsgdGhlIGFic2VudA0KICAgICAgICAj
IGhhc2ggaXMgcmVjb3JkZWQgaG9uZXN0bHkgaW5zdGVhZCBvZiBmb2xsb3dpbmcgb3IgcmV3cml0
aW5nIHRoZSBhbGlhcy4NCiAgICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KfQ0KDQpmdW5jdGlv
biBHZXQtVmVyc2lvblByb2JlIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5k
YXRvcnkpXVtzdHJpbmddJElkLA0KICAgICAgICBbc3RyaW5nXSRDb21tYW5kTmFtZSwNCiAgICAg
ICAgW3N0cmluZ1tdXSRBcmd1bWVudHMgPSBAKCksDQogICAgICAgIFtzdHJpbmddJERpcmVjdFBh
dGgNCiAgICApDQogICAgJHBhdGggPSBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCREaXJlY3RQYXRoKSkgeyAkRGlyZWN0UGF0aCB9IGVsc2UgeyBSZXNvbHZlLUFwcGxpY2F0
aW9uIC1OYW1lICRDb21tYW5kTmFtZSB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJHBhdGgpIC1vciAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXRoIC1QYXRo
VHlwZSBMZWFmKSkgew0KICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJElk
OyBmb3VuZCA9ICRmYWxzZTsgcGF0aCA9ICRudWxsOyBvdXRwdXQgPSAkbnVsbDsgdmVyc2lvbiA9
ICRudWxsOyBzaGEyNTYgPSAkbnVsbCB9DQogICAgfQ0KDQogICAgJG91dHB1dFRleHQgPSAkbnVs
bA0KICAgIGlmICgkc2NyaXB0OkZpeHR1cmVNb2RlIC1hbmQgJG51bGwgLW5lICRUZXN0VmVyc2lv
bk92ZXJyaWRlcyAtYW5kICRUZXN0VmVyc2lvbk92ZXJyaWRlcy5Db250YWluc0tleSgkSWQpKSB7
DQogICAgICAgICRvdXRwdXRUZXh0ID0gW3N0cmluZ10kVGVzdFZlcnNpb25PdmVycmlkZXNbJElk
XQ0KICAgIH0gZWxzZSB7DQogICAgICAgICRpbnZvY2F0aW9uID0gSW52b2tlLUFwcGxpY2F0aW9u
Q2FwdHVyZSAtRmlsZVBhdGggJHBhdGggLUFyZ3VtZW50cyAkQXJndW1lbnRzDQogICAgICAgIGlm
IChbaW50XSRpbnZvY2F0aW9uLmV4aXRDb2RlIC1uZSAwKSB7DQogICAgICAgICAgICByZXR1cm4g
W3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJElkOyBmb3VuZCA9ICRmYWxzZTsgcGF0aCA9ICRwYXRo
OyBvdXRwdXQgPSAoJGludm9jYXRpb24ub3V0cHV0IC1qb2luICJgbiIpOyB2ZXJzaW9uID0gJG51
bGw7IHNoYTI1NiA9IEdldC1FeGVjdXRhYmxlSGFzaCAkcGF0aCB9DQogICAgICAgIH0NCiAgICAg
ICAgJG91dHB1dFRleHQgPSAoJGludm9jYXRpb24ub3V0cHV0IC1qb2luICJgbiIpLlRyaW0oKQ0K
ICAgIH0NCiAgICAkdmVjdG9yID0gQ29udmVydFRvLVZlcnNpb25WZWN0b3IgJG91dHB1dFRleHQN
CiAgICAkdmVyc2lvbiA9IGlmICgkbnVsbCAtZXEgJHZlY3RvcikgeyAkbnVsbCB9IGVsc2UgeyAo
JHZlY3RvciAtam9pbiAnLicpIH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0g
JElkOyBmb3VuZCA9ICgkbnVsbCAtbmUgJHZlY3Rvcik7IHBhdGggPSAkcGF0aDsgb3V0cHV0ID0g
JG91dHB1dFRleHQ7IHZlcnNpb24gPSAkdmVyc2lvbjsgc2hhMjU2ID0gR2V0LUV4ZWN1dGFibGVI
YXNoICRwYXRoIH0NCn0NCg0KZnVuY3Rpb24gR2V0LVB5dGhvblByb2JlIHsNCiAgICAkcHlQYXRo
ID0gUmVzb2x2ZS1BcHBsaWNhdGlvbiAtTmFtZSAncHknDQogICAgaWYgKC1ub3QgW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkcHlQYXRoKSkgew0KICAgICAgICAkcHJvYmUgPSBHZXQtVmVy
c2lvblByb2JlIC1JZCAncHl0aG9uJyAtRGlyZWN0UGF0aCAkcHlQYXRoIC1Bcmd1bWVudHMgQCgn
LTMuMTInLCAnLS12ZXJzaW9uJykNCiAgICAgICAgaWYgKCRwcm9iZS5mb3VuZCAtYW5kIChUZXN0
LVNhbWVDb21wYXRpYmlsaXR5TGluZSAtSWQgJ3B5dGhvbicgLU9ic2VydmVkICRwcm9iZS52ZXJz
aW9uIC1SZXF1aXJlZCAnMy4xMi4xMCcpKSB7IHJldHVybiAkcHJvYmUgfQ0KICAgIH0NCiAgICAk
cHl0aG9uUGF0aCA9IFJlc29sdmUtQXBwbGljYXRpb24gLU5hbWUgJ3B5dGhvbicNCiAgICBpZiAo
LW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRweXRob25QYXRoKSkgew0KICAgICAg
ICAkcHJvYmUgPSBHZXQtVmVyc2lvblByb2JlIC1JZCAncHl0aG9uJyAtRGlyZWN0UGF0aCAkcHl0
aG9uUGF0aCAtQXJndW1lbnRzIEAoJy0tdmVyc2lvbicpDQogICAgICAgIGlmICgkcHJvYmUuZm91
bmQgLWFuZCAoVGVzdC1TYW1lQ29tcGF0aWJpbGl0eUxpbmUgLUlkICdweXRob24nIC1PYnNlcnZl
ZCAkcHJvYmUudmVyc2lvbiAtUmVxdWlyZWQgJzMuMTIuMTAnKSkgeyByZXR1cm4gJHByb2JlIH0N
CiAgICB9DQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9ICdweXRob24nOyBmb3Vu
ZCA9ICRmYWxzZTsgcGF0aCA9ICRudWxsOyBvdXRwdXQgPSAkbnVsbDsgdmVyc2lvbiA9ICRudWxs
OyBzaGEyNTYgPSAkbnVsbCB9DQp9DQoNCmZ1bmN0aW9uIEdldC1VdkNhbm9uaWNhbFBhdGggew0K
ICAgICRyZWNvcmQgPSBHZXQtRm91bmRhdGlvblJlY29yZCAtTG9jayAkc2NyaXB0OkxvY2sgLUlk
ICd1dicNCiAgICAkcmVsYXRpdmUgPSAoW3N0cmluZ10kcmVjb3JkLmNhbm9uaWNhbFJlbGF0aXZl
UGF0aCkuUmVwbGFjZSgnLycsICdcJykNCiAgICAkcm9vdCA9IEFzc2VydC1NYW5hZ2VkUGF0aCAt
UGF0aCAoSm9pbi1QYXRoICRzY3JpcHQ6U291bFJvb3QgJHJlbGF0aXZlKQ0KICAgIHJldHVybiBK
b2luLVBhdGggJHJvb3QgJ2Jpblx1di5leGUnDQp9DQoNCmZ1bmN0aW9uIEdldC1Db2RleENhbm9u
aWNhbFBhdGggew0KICAgICRyZWNvcmQgPSBHZXQtRm91bmRhdGlvblJlY29yZCAtTG9jayAkc2Ny
aXB0OkxvY2sgLUlkICdjb2RleC1jbGknDQogICAgJHJlbGF0aXZlID0gKFtzdHJpbmddJHJlY29y
ZC5mYWxsYmFja0Nhbm9uaWNhbFJlbGF0aXZlUGF0aCkuUmVwbGFjZSgnLycsICdcJykNCiAgICAk
cm9vdCA9IEFzc2VydC1NYW5hZ2VkUGF0aCAtUGF0aCAoSm9pbi1QYXRoICRzY3JpcHQ6U291bFJv
b3QgJHJlbGF0aXZlKQ0KICAgIHJldHVybiBKb2luLVBhdGggJHJvb3QgJ25vZGVfbW9kdWxlc1wu
YmluXGNvZGV4LmNtZCcNCn0NCg0KZnVuY3Rpb24gU2VsZWN0LUhpZ2hlclByb2JlIHsNCiAgICBw
YXJhbSgkRmlyc3QsICRTZWNvbmQpDQogICAgaWYgKCRudWxsIC1lcSAkRmlyc3QgLW9yIC1ub3Qg
W2Jvb2xdJEZpcnN0LmZvdW5kKSB7IHJldHVybiAkU2Vjb25kIH0NCiAgICBpZiAoJG51bGwgLWVx
ICRTZWNvbmQgLW9yIC1ub3QgW2Jvb2xdJFNlY29uZC5mb3VuZCkgeyByZXR1cm4gJEZpcnN0IH0N
CiAgICBpZiAoKENvbXBhcmUtVmVyc2lvblRleHQgLU9ic2VydmVkIChbc3RyaW5nXSRTZWNvbmQu
dmVyc2lvbikgLVJlcXVpcmVkIChbc3RyaW5nXSRGaXJzdC52ZXJzaW9uKSkgLWd0IDApIHsgcmV0
dXJuICRTZWNvbmQgfQ0KICAgIHJldHVybiAkRmlyc3QNCn0NCg0KZnVuY3Rpb24gR2V0LUFsbEZv
dW5kYXRpb25Qcm9iZXMgew0KICAgICRwb3dlclNoZWxsVGV4dCA9IGlmICgkc2NyaXB0OkZpeHR1
cmVNb2RlIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0UG93ZXJT
aGVsbFZlcnNpb24pKSB7ICRUZXN0UG93ZXJTaGVsbFZlcnNpb24gfSBlbHNlIHsgW3N0cmluZ10k
UFNWZXJzaW9uVGFibGUuUFNWZXJzaW9uIH0NCiAgICAkcG93ZXJTaGVsbFZlY3RvciA9IENvbnZl
cnRUby1WZXJzaW9uVmVjdG9yICRwb3dlclNoZWxsVGV4dA0KICAgICRwcm9iZXMgPSBbb3JkZXJl
ZF1Ae30NCiAgICAkcHJvYmVzWydwb3dlcnNoZWxsJ10gPSBbcHNjdXN0b21vYmplY3RdQHsgaWQg
PSAncG93ZXJzaGVsbCc7IGZvdW5kID0gKCRudWxsIC1uZSAkcG93ZXJTaGVsbFZlY3Rvcik7IHBh
dGggPSAkUFNIT01FOyBvdXRwdXQgPSAkcG93ZXJTaGVsbFRleHQ7IHZlcnNpb24gPSAkKGlmICgk
bnVsbCAtZXEgJHBvd2VyU2hlbGxWZWN0b3IpIHsgJG51bGwgfSBlbHNlIHsgJHBvd2VyU2hlbGxW
ZWN0b3IgLWpvaW4gJy4nIH0pOyBzaGEyNTYgPSAkbnVsbCB9DQogICAgJHByb2Jlc1snd2luZ2V0
J10gPSBHZXQtVmVyc2lvblByb2JlIC1JZCAnd2luZ2V0JyAtQ29tbWFuZE5hbWUgJ3dpbmdldCcg
LUFyZ3VtZW50cyBAKCctLXZlcnNpb24nKQ0KICAgICRwcm9iZXNbJ2dpdCddID0gR2V0LVZlcnNp
b25Qcm9iZSAtSWQgJ2dpdCcgLUNvbW1hbmROYW1lICdnaXQnIC1Bcmd1bWVudHMgQCgnLS12ZXJz
aW9uJykNCiAgICAkcHJvYmVzWydub2RlJ10gPSBHZXQtVmVyc2lvblByb2JlIC1JZCAnbm9kZScg
LUNvbW1hbmROYW1lICdub2RlJyAtQXJndW1lbnRzIEAoJy0tdmVyc2lvbicpDQogICAgJHByb2Jl
c1sncHl0aG9uJ10gPSBHZXQtUHl0aG9uUHJvYmUNCiAgICAkcHJvYmVzWyd1diddID0gR2V0LVZl
cnNpb25Qcm9iZSAtSWQgJ3V2JyAtRGlyZWN0UGF0aCAoR2V0LVV2Q2Fub25pY2FsUGF0aCkgLUFy
Z3VtZW50cyBAKCctLXZlcnNpb24nKQ0KICAgICRwcm9iZXNbJ2NsYXVkZS1jb2RlJ10gPSBHZXQt
VmVyc2lvblByb2JlIC1JZCAnY2xhdWRlLWNvZGUnIC1Db21tYW5kTmFtZSAnY2xhdWRlJyAtQXJn
dW1lbnRzIEAoJy0tdmVyc2lvbicpDQogICAgJHN5c3RlbUNvZGV4ID0gR2V0LVZlcnNpb25Qcm9i
ZSAtSWQgJ2NvZGV4LWNsaScgLUNvbW1hbmROYW1lICdjb2RleCcgLUFyZ3VtZW50cyBAKCctLXZl
cnNpb24nKQ0KICAgICRwb3J0YWJsZUNvZGV4ID0gR2V0LVZlcnNpb25Qcm9iZSAtSWQgJ2NvZGV4
LWNsaScgLURpcmVjdFBhdGggKEdldC1Db2RleENhbm9uaWNhbFBhdGgpIC1Bcmd1bWVudHMgQCgn
LS12ZXJzaW9uJykNCiAgICAkcHJvYmVzWydjb2RleC1jbGknXSA9IFNlbGVjdC1IaWdoZXJQcm9i
ZSAtRmlyc3QgJHN5c3RlbUNvZGV4IC1TZWNvbmQgJHBvcnRhYmxlQ29kZXgNCiAgICByZXR1cm4g
JHByb2Jlcw0KfQ0KDQpmdW5jdGlvbiBHZXQtRm91bmRhdGlvbkRlY2lzaW9uIHsNCiAgICBwYXJh
bShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kSWQsICRQcm9iZSkNCiAgICAkcmVjb3Jk
ID0gR2V0LUZvdW5kYXRpb25SZWNvcmQgLUxvY2sgJHNjcmlwdDpMb2NrIC1JZCAkSWQNCiAgICBp
ZiAoJElkIC1lcSAnd2luZ2V0Jykgew0KICAgICAgICBpZiAoJFByb2JlLmZvdW5kKSB7IHJldHVy
biBbcHNjdXN0b21vYmplY3RdQHsgaWQgPSAkSWQ7IHN0YXRlID0gJ2hlYWx0aHktcmV1c2VkJzsg
cmVhZHkgPSAkdHJ1ZTsgYWN0aW9uID0gJ25vbmUnOyBvYnNlcnZlZFZlcnNpb24gPSAkUHJvYmUu
dmVyc2lvbjsgcGF0aCA9ICRQcm9iZS5wYXRoOyBzaGEyNTYgPSAkUHJvYmUuc2hhMjU2IH0gfQ0K
ICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJElkOyBzdGF0ZSA9ICdwZW5k
aW5nLW9mZmljaWFsLXJlcGFpcic7IHJlYWR5ID0gJGZhbHNlOyBhY3Rpb24gPSAndXNlci1yZXBh
aXItYXBwLWluc3RhbGxlcic7IG9ic2VydmVkVmVyc2lvbiA9ICRudWxsOyBwYXRoID0gJFByb2Jl
LnBhdGg7IHNoYTI1NiA9ICRQcm9iZS5zaGEyNTYgfQ0KICAgIH0NCg0KICAgICRyZXF1aXJlZCA9
IGlmICgkSWQgLWluIEAoJ3Bvd2Vyc2hlbGwnLCAnY2xhdWRlLWNvZGUnLCAnY29kZXgtY2xpJykp
IHsgW3N0cmluZ10kcmVjb3JkLm1pbmltdW1WZXJzaW9uIH0gZWxzZSB7IFtzdHJpbmddJHJlY29y
ZC52ZXJzaW9uIH0NCiAgICBpZiAoLW5vdCAkUHJvYmUuZm91bmQpIHsNCiAgICAgICAgJGFjdGlv
biA9IHN3aXRjaCAoJElkKSB7DQogICAgICAgICAgICAncG93ZXJzaGVsbCcgeyAncmVwYWlyLXdp
bmRvd3MnIH0NCiAgICAgICAgICAgICdnaXQnIHsgJ2luc3RhbGwtZXhhY3Qtd2luZ2V0JyB9DQog
ICAgICAgICAgICAnbm9kZScgeyAnaW5zdGFsbC1leGFjdC13aW5nZXQnIH0NCiAgICAgICAgICAg
ICdweXRob24nIHsgJ2luc3RhbGwtZXhhY3Qtd2luZ2V0JyB9DQogICAgICAgICAgICAndXYnIHsg
J3ByZXBhcmUtcG9ydGFibGUtd2hlZWwnIH0NCiAgICAgICAgICAgICdjbGF1ZGUtY29kZScgeyAn
aW5zdGFsbC1vZmZpY2lhbC1zdGFibGUnIH0NCiAgICAgICAgICAgICdjb2RleC1jbGknIHsgJ3By
ZXBhcmUtZXhhY3QtcG9ydGFibGUtZmFsbGJhY2snIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1
cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJElkOyBzdGF0ZSA9ICdtaXNzaW5nJzsgcmVhZHkg
PSAkZmFsc2U7IGFjdGlvbiA9ICRhY3Rpb247IHJlcXVpcmVkVmVyc2lvbiA9ICRyZXF1aXJlZDsg
b2JzZXJ2ZWRWZXJzaW9uID0gJG51bGw7IHBhdGggPSAkUHJvYmUucGF0aDsgc2hhMjU2ID0gJFBy
b2JlLnNoYTI1NiB9DQogICAgfQ0KDQogICAgJGNvbXBhcmlzb24gPSBDb21wYXJlLVZlcnNpb25U
ZXh0IC1PYnNlcnZlZCAoW3N0cmluZ10kUHJvYmUudmVyc2lvbikgLVJlcXVpcmVkICRyZXF1aXJl
ZA0KICAgIGlmICgkY29tcGFyaXNvbiAtZXEgMCkgew0KICAgICAgICByZXR1cm4gW3BzY3VzdG9t
b2JqZWN0XUB7IGlkID0gJElkOyBzdGF0ZSA9ICdleGFjdCc7IHJlYWR5ID0gJHRydWU7IGFjdGlv
biA9ICdub25lJzsgcmVxdWlyZWRWZXJzaW9uID0gJHJlcXVpcmVkOyBvYnNlcnZlZFZlcnNpb24g
PSAkUHJvYmUudmVyc2lvbjsgcGF0aCA9ICRQcm9iZS5wYXRoOyBzaGEyNTYgPSAkUHJvYmUuc2hh
MjU2IH0NCiAgICB9DQogICAgaWYgKCRjb21wYXJpc29uIC1ndCAwKSB7DQogICAgICAgIGlmICgk
SWQgLWluIEAoJ2dpdCcsICdub2RlJywgJ3B5dGhvbicpIC1hbmQgLW5vdCAoVGVzdC1TYW1lQ29t
cGF0aWJpbGl0eUxpbmUgLUlkICRJZCAtT2JzZXJ2ZWQgJFByb2JlLnZlcnNpb24gLVJlcXVpcmVk
ICRyZXF1aXJlZCkpIHsNCiAgICAgICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgaWQg
PSAkSWQ7IHN0YXRlID0gJ25ld2VyLWluY29tcGF0aWJsZS1wcmVzZXJ2ZWQnOyByZWFkeSA9ICRm
YWxzZTsgYWN0aW9uID0gJ3VzZXItcmVzb2x2ZS1zaWRlLWJ5LXNpZGUnOyByZXF1aXJlZFZlcnNp
b24gPSAkcmVxdWlyZWQ7IG9ic2VydmVkVmVyc2lvbiA9ICRQcm9iZS52ZXJzaW9uOyBwYXRoID0g
JFByb2JlLnBhdGg7IHNoYTI1NiA9ICRQcm9iZS5zaGEyNTYgfQ0KICAgICAgICB9DQogICAgICAg
IHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgaWQgPSAkSWQ7IHN0YXRlID0gJ25ld2VyLWNvbXBh
dGlibGUtcHJlc2VydmVkJzsgcmVhZHkgPSAkdHJ1ZTsgYWN0aW9uID0gJ25vbmUnOyByZXF1aXJl
ZFZlcnNpb24gPSAkcmVxdWlyZWQ7IG9ic2VydmVkVmVyc2lvbiA9ICRQcm9iZS52ZXJzaW9uOyBw
YXRoID0gJFByb2JlLnBhdGg7IHNoYTI1NiA9ICRQcm9iZS5zaGEyNTYgfQ0KICAgIH0NCg0KICAg
ICRhY3Rpb24gPSBzd2l0Y2ggKCRJZCkgew0KICAgICAgICAncG93ZXJzaGVsbCcgeyAncmVwYWly
LXdpbmRvd3MnIH0NCiAgICAgICAgJ2dpdCcgeyAndXBncmFkZS1leGFjdC13aW5nZXQnIH0NCiAg
ICAgICAgJ25vZGUnIHsgJ3VwZ3JhZGUtZXhhY3Qtd2luZ2V0JyB9DQogICAgICAgICdweXRob24n
IHsgJ3VwZ3JhZGUtZXhhY3Qtd2luZ2V0JyB9DQogICAgICAgICd1dicgeyAnYmxvY2tlZC1jYW5v
bmljYWwtY29sbGlzaW9uJyB9DQogICAgICAgICdjbGF1ZGUtY29kZScgeyAnaW5zdGFsbC1vZmZp
Y2lhbC1zdGFibGUnIH0NCiAgICAgICAgJ2NvZGV4LWNsaScgeyAncHJlcGFyZS1leGFjdC1wb3J0
YWJsZS1mYWxsYmFjaycgfQ0KICAgIH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlk
ID0gJElkOyBzdGF0ZSA9ICdvbGRlci10aGFuLXJlcXVpcmVkJzsgcmVhZHkgPSAkZmFsc2U7IGFj
dGlvbiA9ICRhY3Rpb247IHJlcXVpcmVkVmVyc2lvbiA9ICRyZXF1aXJlZDsgb2JzZXJ2ZWRWZXJz
aW9uID0gJFByb2JlLnZlcnNpb247IHBhdGggPSAkUHJvYmUucGF0aDsgc2hhMjU2ID0gJFByb2Jl
LnNoYTI1NiB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Gb3VuZGF0aW9uQXVkaXQgew0KICAgICRwcm9i
ZXMgPSBHZXQtQWxsRm91bmRhdGlvblByb2Jlcw0KICAgICRpdGVtcyA9IE5ldy1PYmplY3QgU3lz
dGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yZWFjaCAoJGlkIGlu
IEAoJ3Bvd2Vyc2hlbGwnLCAnd2luZ2V0JywgJ2dpdCcsICdub2RlJywgJ3B5dGhvbicsICd1dics
ICdjbGF1ZGUtY29kZScsICdjb2RleC1jbGknKSkgew0KICAgICAgICAkaXRlbXMuQWRkKChHZXQt
Rm91bmRhdGlvbkRlY2lzaW9uIC1JZCAkaWQgLVByb2JlICRwcm9iZXNbJGlkXSkpDQogICAgfQ0K
ICAgIHJldHVybiAkaXRlbXMuVG9BcnJheSgpDQp9DQoNCmZ1bmN0aW9uIFJlZnJlc2gtUHJvY2Vz
c1BhdGggew0KICAgIGlmICgkc2NyaXB0OkZpeHR1cmVNb2RlKSB7IHJldHVybiB9DQogICAgJHBh
cnRzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10N
CiAgICBmb3JlYWNoICgkc2NvcGUgaW4gQCgnTWFjaGluZScsICdVc2VyJywgJ1Byb2Nlc3MnKSkg
ew0KICAgICAgICAkdmFsdWUgPSBbRW52aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxl
KCdQQVRIJywgJHNjb3BlKQ0KICAgICAgICBmb3JlYWNoICgkcGFydCBpbiBAKCR2YWx1ZSAtc3Bs
aXQgJzsnKSkgew0KICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo
JHBhcnQpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgIGlmICgtbm90ICgkcGFydHMgfCBXaGVy
ZS1PYmplY3QgeyAkXy5FcXVhbHMoJHBhcnQsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pIH0pKSB7
ICRwYXJ0cy5BZGQoJHBhcnQpIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBbRW52aXJvbm1lbnRd
OjpTZXRFbnZpcm9ubWVudFZhcmlhYmxlKCdQQVRIJywgKCRwYXJ0cyAtam9pbiAnOycpLCAnUHJv
Y2VzcycpDQp9DQoNCmZ1bmN0aW9uIEludm9rZS1XaW5HZXRMb2NrZWRJbnN0YWxsIHsNCiAgICBw
YXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldJFJlY29yZCwgW1BhcmFtZXRlcihNYW5kYXRvcnkp
XVtzdHJpbmddJFZlcmIpDQogICAgaWYgKCRzY3JpcHQ6Rml4dHVyZU1vZGUpIHsNCiAgICAgICAg
aWYgKCRudWxsIC1lcSAkVGVzdFdpbmdldEFjdGlvbikgeyB0aHJvdyAnRml4dHVyZSBpbnN0YWxs
YXRpb24gcmVxdWlyZXMgVGVzdFdpbmdldEFjdGlvbi4nIH0NCiAgICAgICAgcmV0dXJuICYgJFRl
c3RXaW5nZXRBY3Rpb24gKFtzdHJpbmddJFJlY29yZC5pZCkgKFtzdHJpbmddJFJlY29yZC52ZXJz
aW9uKSAkVmVyYiAkc2NyaXB0OkNvbW1hbmREaXJlY3RvcnkNCiAgICB9DQogICAgJHdpbmdldFBh
dGggPSBSZXNvbHZlLUFwcGxpY2F0aW9uIC1OYW1lICd3aW5nZXQnDQogICAgaWYgKFtzdHJpbmdd
OjpJc051bGxPcldoaXRlU3BhY2UoJHdpbmdldFBhdGgpKSB7IHRocm93ICdXaW5HZXQgaXMgdW5h
dmFpbGFibGU7IEFwcCBJbnN0YWxsZXIgcmVxdWlyZXMgb2ZmaWNpYWwgcmVwYWlyLicgfQ0KICAg
ICRhcmd1bWVudHMgPSBAKA0KICAgICAgICAkVmVyYiwgJy0taWQnLCBbc3RyaW5nXSRSZWNvcmQu
cGFja2FnZUlkLCAnLS12ZXJzaW9uJywgW3N0cmluZ10kUmVjb3JkLnZlcnNpb24sDQogICAgICAg
ICctLWV4YWN0JywgJy0tc291cmNlJywgJ3dpbmdldCcsICctLXNjb3BlJywgJ3VzZXInLCAnLS1z
aWxlbnQnLA0KICAgICAgICAnLS1hY2NlcHQtc291cmNlLWFncmVlbWVudHMnLCAnLS1hY2NlcHQt
cGFja2FnZS1hZ3JlZW1lbnRzJywgJy0tZGlzYWJsZS1pbnRlcmFjdGl2aXR5Jw0KICAgICkNCiAg
ICAkcmVzdWx0ID0gSW52b2tlLUFwcGxpY2F0aW9uQ2FwdHVyZSAtRmlsZVBhdGggJHdpbmdldFBh
dGggLUFyZ3VtZW50cyAkYXJndW1lbnRzDQogICAgaWYgKFtpbnRdJHJlc3VsdC5leGl0Q29kZSAt
bmUgMCkgew0KICAgICAgICAkdGFpbCA9IEAoJHJlc3VsdC5vdXRwdXQgfCBTZWxlY3QtT2JqZWN0
IC1MYXN0IDEyKSAtam9pbiBbRW52aXJvbm1lbnRdOjpOZXdMaW5lDQogICAgICAgIHRocm93ICJX
aW5HZXQgY291bGQgbm90IGNvbXBsZXRlICQoJFJlY29yZC5pZCkuIFVBQywgb3JnYW5pemF0aW9u
IHBvbGljeSwgb3IgYSBwYWNrYWdlLXNjb3BlIGNob2ljZSBtYXkgcmVxdWlyZSB0aGUgdXNlci5g
biR0YWlsIg0KICAgIH0NCiAgICBSZWZyZXNoLVByb2Nlc3NQYXRoDQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAnaW5zdGFsbGVkJzsgaWQgPSBbc3RyaW5nXSRSZWNvcmQu
aWQ7IHZlcnNpb24gPSBbc3RyaW5nXSRSZWNvcmQudmVyc2lvbiB9DQp9DQoNCmZ1bmN0aW9uIFNh
dmUtRm91bmRhdGlvbkRvd25sb2FkIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSld
W3N0cmluZ10kVXJpLCBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kRGVzdGluYXRpb24p
DQogICAgW3ZvaWRdKEFzc2VydC1NYW5hZ2VkUGF0aCAtUGF0aCAkRGVzdGluYXRpb24pDQogICAg
aWYgKCRzY3JpcHQ6Rml4dHVyZU1vZGUpIHsNCiAgICAgICAgaWYgKCRudWxsIC1lcSAkVGVzdERv
d25sb2FkQWN0aW9uKSB7IHRocm93ICdGaXh0dXJlIGRvd25sb2FkIHJlcXVpcmVzIFRlc3REb3du
bG9hZEFjdGlvbi4nIH0NCiAgICAgICAgW3ZvaWRdKCYgJFRlc3REb3dubG9hZEFjdGlvbiAkVXJp
ICREZXN0aW5hdGlvbikNCiAgICB9IGVsc2Ugew0KICAgICAgICBJbnZva2UtV2ViUmVxdWVzdCAt
VXNlQmFzaWNQYXJzaW5nIC1VcmkgJFVyaSAtT3V0RmlsZSAkRGVzdGluYXRpb24NCiAgICB9DQog
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJERlc3RpbmF0aW9uIC1QYXRoVHlw
ZSBMZWFmKSkgeyB0aHJvdyAiRG93bmxvYWQgZGlkIG5vdCBjcmVhdGU6ICREZXN0aW5hdGlvbiIg
fQ0KfQ0KDQpmdW5jdGlvbiBHZXQtU2hhNTEyQmFzZTY0IHsNCiAgICBwYXJhbShbUGFyYW1ldGVy
KE1hbmRhdG9yeSldW3N0cmluZ10kUGF0aCkNCiAgICAkc3RyZWFtID0gW0lPLkZpbGVdOjpPcGVu
KCRQYXRoLCBbSU8uRmlsZU1vZGVdOjpPcGVuLCBbSU8uRmlsZUFjY2Vzc106OlJlYWQsIFtJTy5G
aWxlU2hhcmVdOjpSZWFkKQ0KICAgICRhbGdvcml0aG0gPSBbU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5
LlNIQTUxMl06OkNyZWF0ZSgpDQogICAgdHJ5IHsgcmV0dXJuIFtDb252ZXJ0XTo6VG9CYXNlNjRT
dHJpbmcoJGFsZ29yaXRobS5Db21wdXRlSGFzaCgkc3RyZWFtKSkgfQ0KICAgIGZpbmFsbHkgeyAk
YWxnb3JpdGhtLkRpc3Bvc2UoKTsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KfQ0KDQpmdW5jdGlvbiBD
b3B5LU5ld0ZpbGUgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRT
b3VyY2UsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSREZXN0aW5hdGlvbikNCiAgICBb
dm9pZF0oQXNzZXJ0LU1hbmFnZWRQYXRoIC1QYXRoICREZXN0aW5hdGlvbikNCiAgICAkaW5wdXQg
PSBbSU8uRmlsZV06Ok9wZW4oJFNvdXJjZSwgW0lPLkZpbGVNb2RlXTo6T3BlbiwgW0lPLkZpbGVB
Y2Nlc3NdOjpSZWFkLCBbSU8uRmlsZVNoYXJlXTo6UmVhZCkNCiAgICB0cnkgew0KICAgICAgICAk
b3V0cHV0ID0gW0lPLkZpbGVdOjpPcGVuKCREZXN0aW5hdGlvbiwgW0lPLkZpbGVNb2RlXTo6Q3Jl
YXRlTmV3LCBbSU8uRmlsZUFjY2Vzc106OldyaXRlLCBbSU8uRmlsZVNoYXJlXTo6Tm9uZSkNCiAg
ICAgICAgdHJ5IHsgJGlucHV0LkNvcHlUbygkb3V0cHV0KTsgJG91dHB1dC5GbHVzaCgkdHJ1ZSkg
fSBmaW5hbGx5IHsgJG91dHB1dC5EaXNwb3NlKCkgfQ0KICAgIH0gZmluYWxseSB7ICRpbnB1dC5E
aXNwb3NlKCkgfQ0KfQ0KDQpmdW5jdGlvbiBFeHBhbmQtWmlwTm9UcmF2ZXJzYWwgew0KICAgIHBh
cmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRBcmNoaXZlUGF0aCwgW1BhcmFtZXRl
cihNYW5kYXRvcnkpXVtzdHJpbmddJERlc3RpbmF0aW9uKQ0KICAgIEFkZC1UeXBlIC1Bc3NlbWJs
eU5hbWUgU3lzdGVtLklPLkNvbXByZXNzaW9uLkZpbGVTeXN0ZW0NCiAgICBFbnN1cmUtRm91bmRh
dGlvbkRpcmVjdG9yeSAtUGF0aCAkRGVzdGluYXRpb24gLVRpdGxlICdWZXJpZmllZCB3aGVlbCBl
eHRyYWN0aW9uJw0KICAgICRkZXN0aW5hdGlvblJvb3QgPSBHZXQtRnVsbFBhdGggJERlc3RpbmF0
aW9uDQogICAgJGFyY2hpdmUgPSBbSU8uQ29tcHJlc3Npb24uWmlwRmlsZV06Ok9wZW5SZWFkKCRB
cmNoaXZlUGF0aCkNCiAgICB0cnkgew0KICAgICAgICBmb3JlYWNoICgkZW50cnkgaW4gJGFyY2hp
dmUuRW50cmllcykgew0KICAgICAgICAgICAgJGVudHJ5TmFtZSA9IChbc3RyaW5nXSRlbnRyeS5G
dWxsTmFtZSkuUmVwbGFjZSgnLycsICdcJykNCiAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNO
dWxsT3JXaGl0ZVNwYWNlKCRlbnRyeU5hbWUpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICR0
YXJnZXQgPSBHZXQtRnVsbFBhdGggKEpvaW4tUGF0aCAkZGVzdGluYXRpb25Sb290ICRlbnRyeU5h
bWUpDQogICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoV2l0aGluIC1QYXRoICR0YXJnZXQg
LUJvdW5kYXJ5ICRkZXN0aW5hdGlvblJvb3QgLUFsbG93Qm91bmRhcnkpKSB7IHRocm93ICdBcmNo
aXZlIGVudHJ5IGVzY2FwZXMgZXh0cmFjdGlvbiByb290LicgfQ0KICAgICAgICAgICAgaWYgKFtz
dHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW0lPLlBhdGhdOjpHZXRGaWxlTmFtZSgkZW50cnlO
YW1lKSkpIHsNCiAgICAgICAgICAgICAgICBFbnN1cmUtRm91bmRhdGlvbkRpcmVjdG9yeSAtUGF0
aCAkdGFyZ2V0IC1UaXRsZSAnVmVyaWZpZWQgd2hlZWwgZGlyZWN0b3J5Jw0KICAgICAgICAgICAg
ICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICAkcGFyZW50ID0gU3BsaXQt
UGF0aCAtUGFyZW50ICR0YXJnZXQNCiAgICAgICAgICAgIEVuc3VyZS1Gb3VuZGF0aW9uRGlyZWN0
b3J5IC1QYXRoICRwYXJlbnQgLVRpdGxlICdWZXJpZmllZCB3aGVlbCBkaXJlY3RvcnknDQogICAg
ICAgICAgICAkaW5wdXQgPSAkZW50cnkuT3BlbigpDQogICAgICAgICAgICB0cnkgew0KICAgICAg
ICAgICAgICAgICRvdXRwdXQgPSBbSU8uRmlsZV06Ok9wZW4oJHRhcmdldCwgW0lPLkZpbGVNb2Rl
XTo6Q3JlYXRlTmV3LCBbSU8uRmlsZUFjY2Vzc106OldyaXRlLCBbSU8uRmlsZVNoYXJlXTo6Tm9u
ZSkNCiAgICAgICAgICAgICAgICB0cnkgeyAkaW5wdXQuQ29weVRvKCRvdXRwdXQpOyAkb3V0cHV0
LkZsdXNoKCR0cnVlKSB9IGZpbmFsbHkgeyAkb3V0cHV0LkRpc3Bvc2UoKSB9DQogICAgICAgICAg
ICB9IGZpbmFsbHkgeyAkaW5wdXQuRGlzcG9zZSgpIH0NCiAgICAgICAgfQ0KICAgIH0gZmluYWxs
eSB7ICRhcmNoaXZlLkRpc3Bvc2UoKSB9DQp9DQoNCmZ1bmN0aW9uIFB1Ymxpc2gtTmV3RGlyZWN0
b3J5IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUHJlcGFyZWRQ
YXRoLCBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kQ2Fub25pY2FsUGF0aCkNCiAgICBb
dm9pZF0oQXNzZXJ0LU1hbmFnZWRQYXRoIC1QYXRoICRQcmVwYXJlZFBhdGgpDQogICAgW3ZvaWRd
KEFzc2VydC1NYW5hZ2VkUGF0aCAtUGF0aCAkQ2Fub25pY2FsUGF0aCkNCiAgICBpZiAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkQ2Fub25pY2FsUGF0aCkgeyB0aHJvdyAiQ2Fub25pY2FsIHBhdGgg
YWxyZWFkeSBleGlzdHMgYW5kIHdpbGwgbm90IGJlIG92ZXJ3cml0dGVuOiAkQ2Fub25pY2FsUGF0
aCIgfQ0KICAgIEVuc3VyZS1Gb3VuZGF0aW9uRGlyZWN0b3J5IC1QYXRoIChTcGxpdC1QYXRoIC1Q
YXJlbnQgJENhbm9uaWNhbFBhdGgpIC1UaXRsZSAnUG9ydGFibGUgdG9vbCB2ZXJzaW9ucycNCiAg
ICAjIFdpbmRvd3Mgc2VjdXJpdHkgc2Nhbm5lcnMgbWF5IGJyaWVmbHkgaG9sZCBhIGp1c3QtZXhl
Y3V0ZWQgYmluYXJ5IGFmdGVyDQogICAgIyBpdHMgdmVyc2lvbiBwcm9iZS4gIFJldHJ5IG9ubHkg
dGhlIHNhbWUgYXRvbWljIGRpcmVjdG9yeSBtb3ZlOyBuZXZlciBjb3B5LA0KICAgICMgb3Zlcndy
aXRlLCBvciBkZWxldGUgZWl0aGVyIHNpZGUgYXMgYSB3b3JrYXJvdW5kLg0KICAgIGZvciAoJGF0
dGVtcHQgPSAwOyAkYXR0ZW1wdCAtbHQgNjsgJGF0dGVtcHQrKykgew0KICAgICAgICB0cnkgew0K
ICAgICAgICAgICAgW0lPLkRpcmVjdG9yeV06Ok1vdmUoJFByZXBhcmVkUGF0aCwgJENhbm9uaWNh
bFBhdGgpDQogICAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBjYXRjaCBbVW5h
dXRob3JpemVkQWNjZXNzRXhjZXB0aW9uXSwgW0lPLklPRXhjZXB0aW9uXSB7DQogICAgICAgICAg
ICBpZiAoKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJENhbm9uaWNhbFBhdGgpIC1vciAtbm90IChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoICRQcmVwYXJlZFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikg
LW9yICRhdHRlbXB0IC1lcSA1KSB7IHRocm93IH0NCiAgICAgICAgICAgIFN0YXJ0LVNsZWVwIC1N
aWxsaXNlY29uZHMgKDI1MCAqICgkYXR0ZW1wdCArIDEpKQ0KICAgICAgICB9DQogICAgfQ0KfQ0K
DQpmdW5jdGlvbiBFbnN1cmUtRXhhY3RTaGltIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRh
dG9yeSldW3N0cmluZ10kTmFtZSwgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJEJvZHkp
DQogICAgJHNoaW1Sb290ID0gSm9pbi1QYXRoICRzY3JpcHQ6U291bFJvb3QgJ19hZ2VudFxzaGFy
ZWRcc2hpbXMnDQogICAgRW5zdXJlLUZvdW5kYXRpb25EaXJlY3RvcnkgLVBhdGggJHNoaW1Sb290
IC1UaXRsZSAnUG9ydGFibGUgY29tbWFuZCBzaGltcycNCiAgICAkcGF0aCA9IEpvaW4tUGF0aCAk
c2hpbVJvb3QgJE5hbWUNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0aCAtUGF0
aFR5cGUgTGVhZikgew0KICAgICAgICAkZXhpc3RpbmcgPSBbSU8uRmlsZV06OlJlYWRBbGxUZXh0
KCRwYXRoKQ0KICAgICAgICBpZiAoJGV4aXN0aW5nIC1jbmUgJEJvZHkpIHsgdGhyb3cgIkV4aXN0
aW5nIHNoaW0gZGlmZmVycyBhbmQgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW46ICRwYXRoIiB9DQog
ICAgICAgIHJldHVybiAkcGF0aA0KICAgIH0NCiAgICBXcml0ZS1OZXdVdGY4RmlsZSAtUGF0aCAk
cGF0aCAtVGV4dCAkQm9keQ0KICAgIHJldHVybiAkcGF0aA0KfQ0KDQpmdW5jdGlvbiBHZXQtTmV3
T3BlcmF0aW9uRGlyZWN0b3J5IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0
cmluZ10kUHVycG9zZSkNCiAgICAkcm9vdCA9IEpvaW4tUGF0aCAkc2NyaXB0OlNldHVwRGlyZWN0
b3J5ICdmb3VuZGF0aW9uLW9wZXJhdGlvbnMnDQogICAgRW5zdXJlLUZvdW5kYXRpb25EaXJlY3Rv
cnkgLVBhdGggJHJvb3QgLVRpdGxlICdGb3VuZGF0aW9uIG9wZXJhdGlvbiByZWNvcmRzJw0KICAg
ICRwYXRoID0gSm9pbi1QYXRoICRyb290ICgoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGltZSgpLlRv
U3RyaW5nKCd5eXl5TU1kZFRISG1tc3NmZmZaJykgKyAnLScgKyAkUHVycG9zZSArICctJyArIFtn
dWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykpDQogICAgRW5zdXJlLUZvdW5kYXRpb25EaXJl
Y3RvcnkgLVBhdGggJHBhdGggLVRpdGxlICIkUHVycG9zZSBmb3VuZGF0aW9uIG9wZXJhdGlvbiIN
CiAgICByZXR1cm4gJHBhdGgNCn0NCg0KZnVuY3Rpb24gUHJlcGFyZS1VdlBvcnRhYmxlIHsNCiAg
ICAkcmVjb3JkID0gR2V0LUZvdW5kYXRpb25SZWNvcmQgLUxvY2sgJHNjcmlwdDpMb2NrIC1JZCAn
dXYnDQogICAgJHZlcnNpb24gPSBbc3RyaW5nXSRyZWNvcmQudmVyc2lvbg0KICAgICRjYW5vbmlj
YWxSb290ID0gQXNzZXJ0LU1hbmFnZWRQYXRoIC1QYXRoIChKb2luLVBhdGggJHNjcmlwdDpTb3Vs
Um9vdCAoKFtzdHJpbmddJHJlY29yZC5jYW5vbmljYWxSZWxhdGl2ZVBhdGgpLlJlcGxhY2UoJy8n
LCAnXCcpKSkNCiAgICAkY2Fub25pY2FsRXhlID0gSm9pbi1QYXRoICRjYW5vbmljYWxSb290ICdi
aW5cdXYuZXhlJw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYW5vbmljYWxSb290
KSB7DQogICAgICAgICRwcm9iZSA9IEdldC1WZXJzaW9uUHJvYmUgLUlkICd1dicgLURpcmVjdFBh
dGggJGNhbm9uaWNhbEV4ZSAtQXJndW1lbnRzIEAoJy0tdmVyc2lvbicpDQogICAgICAgICRwcm9v
ZlBhdGggPSBKb2luLVBhdGggJGNhbm9uaWNhbFJvb3QgJ3NvdXJjZS1wcm9vZi5qc29uJw0KICAg
ICAgICBpZiAoLW5vdCAkcHJvYmUuZm91bmQgLW9yIChDb21wYXJlLVZlcnNpb25UZXh0IC1PYnNl
cnZlZCAkcHJvYmUudmVyc2lvbiAtUmVxdWlyZWQgJHZlcnNpb24pIC1uZSAwIC1vciAtbm90IChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwcm9vZlBhdGggLVBhdGhUeXBlIExlYWYpKSB7DQogICAg
ICAgICAgICB0aHJvdyAnVGhlIGV4aXN0aW5nIHV2IGNhbm9uaWNhbCBkaXJlY3RvcnkgaXMgaW5j
b21wbGV0ZSBvciBkaWZmZXJlbnQ7IGl0IHdhcyBwcmVzZXJ2ZWQgYW5kIG5vdCBvdmVyd3JpdHRl
bi4nDQogICAgICAgIH0NCiAgICAgICAgJHByb29mID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkcHJv
b2ZQYXRoDQogICAgICAgIGlmIChbc3RyaW5nXSRwcm9vZi5zb3VyY2VTaGEyNTYgLWNuZSBbc3Ry
aW5nXSRyZWNvcmQuc2hhMjU2IC1hbmQgLW5vdCAkc2NyaXB0OkZpeHR1cmVNb2RlKSB7DQogICAg
ICAgICAgICB0aHJvdyAnVGhlIGV4aXN0aW5nIHV2IHByb29mIGRvZXMgbm90IG1hdGNoIHRoZSBs
b2NrZWQgd2hlZWw7IGl0IHdhcyBwcmVzZXJ2ZWQuJw0KICAgICAgICB9DQogICAgfSBlbHNlIHsN
CiAgICAgICAgJG9wZXJhdGlvbiA9IEdldC1OZXdPcGVyYXRpb25EaXJlY3RvcnkgLVB1cnBvc2Ug
J3V2Jw0KICAgICAgICAkZG93bmxvYWRzID0gSm9pbi1QYXRoICRvcGVyYXRpb24gJ2Rvd25sb2Fk
cycNCiAgICAgICAgJHVucGFjayA9IEpvaW4tUGF0aCAkb3BlcmF0aW9uICd1bnBhY2snDQogICAg
ICAgICRwcmVwYXJlZCA9IEpvaW4tUGF0aCAkb3BlcmF0aW9uICdwcmVwYXJlZCcNCiAgICAgICAg
RW5zdXJlLUZvdW5kYXRpb25EaXJlY3RvcnkgLVBhdGggJGRvd25sb2FkcyAtVGl0bGUgJ0xvY2tl
ZCB1diBkb3dubG9hZCcNCiAgICAgICAgRW5zdXJlLUZvdW5kYXRpb25EaXJlY3RvcnkgLVBhdGgg
JHByZXBhcmVkIC1UaXRsZSAnUHJlcGFyZWQgcG9ydGFibGUgdXYnDQogICAgICAgICR3aGVlbFBh
dGggPSBKb2luLVBhdGggJGRvd25sb2FkcyAndXYubG9ja2VkLndobCcNCiAgICAgICAgU2F2ZS1G
b3VuZGF0aW9uRG93bmxvYWQgLVVyaSAoW3N0cmluZ10kcmVjb3JkLnNvdXJjZSkgLURlc3RpbmF0
aW9uICR3aGVlbFBhdGgNCiAgICAgICAgJGFjdHVhbFNoYSA9IChHZXQtU291bFNoYTI1NiAtUGF0
aCAkd2hlZWxQYXRoKS5Ub0xvd2VySW52YXJpYW50KCkNCiAgICAgICAgJGV4cGVjdGVkU2hhID0g
aWYgKCRzY3JpcHQ6Rml4dHVyZU1vZGUgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRl
U3BhY2UoJFRlc3RVdlNoYTI1NikpIHsgJFRlc3RVdlNoYTI1Ni5Ub0xvd2VySW52YXJpYW50KCkg
fSBlbHNlIHsgKFtzdHJpbmddJHJlY29yZC5zaGEyNTYpLlRvTG93ZXJJbnZhcmlhbnQoKSB9DQog
ICAgICAgIGlmICgkYWN0dWFsU2hhIC1jbmUgJGV4cGVjdGVkU2hhKSB7IHRocm93ICdUaGUgdXYg
d2hlZWwgU0hBLTI1NiBkb2VzIG5vdCBtYXRjaCB0aGUgbG9jay4nIH0NCiAgICAgICAgRXhwYW5k
LVppcE5vVHJhdmVyc2FsIC1BcmNoaXZlUGF0aCAkd2hlZWxQYXRoIC1EZXN0aW5hdGlvbiAkdW5w
YWNrDQogICAgICAgICR1dk1hdGNoZXMgPSBAKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICR1
bnBhY2sgLUZpbHRlciAndXYuZXhlJyAtRmlsZSAtUmVjdXJzZSAtRm9yY2UpDQogICAgICAgICR1
dnhNYXRjaGVzID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkdW5wYWNrIC1GaWx0ZXIg
J3V2eC5leGUnIC1GaWxlIC1SZWN1cnNlIC1Gb3JjZSkNCiAgICAgICAgaWYgKCR1dk1hdGNoZXMu
Q291bnQgLW5lIDEgLW9yICR1dnhNYXRjaGVzLkNvdW50IC1uZSAxKSB7IHRocm93ICdUaGUgdXYg
d2hlZWwgZG9lcyBub3QgY29udGFpbiBleGFjdGx5IG9uZSB1di5leGUgYW5kIHV2eC5leGUuJyB9
DQogICAgICAgICRiaW4gPSBKb2luLVBhdGggJHByZXBhcmVkICdiaW4nDQogICAgICAgICRzb3Vy
Y2UgPSBKb2luLVBhdGggJHByZXBhcmVkICdzb3VyY2UnDQogICAgICAgIEVuc3VyZS1Gb3VuZGF0
aW9uRGlyZWN0b3J5IC1QYXRoICRiaW4gLVRpdGxlICdQb3J0YWJsZSB1diBiaW5hcmllcycNCiAg
ICAgICAgRW5zdXJlLUZvdW5kYXRpb25EaXJlY3RvcnkgLVBhdGggJHNvdXJjZSAtVGl0bGUgJ1Zl
cmlmaWVkIHV2IHNvdXJjZSBhcnRpZmFjdCcNCiAgICAgICAgQ29weS1OZXdGaWxlIC1Tb3VyY2Ug
JHV2TWF0Y2hlc1swXS5GdWxsTmFtZSAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkYmluICd1di5l
eGUnKQ0KICAgICAgICBDb3B5LU5ld0ZpbGUgLVNvdXJjZSAkdXZ4TWF0Y2hlc1swXS5GdWxsTmFt
ZSAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkYmluICd1dnguZXhlJykNCiAgICAgICAgQ29weS1O
ZXdGaWxlIC1Tb3VyY2UgJHdoZWVsUGF0aCAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkc291cmNl
ICd1di0wLjExLjIxLXB5My1ub25lLXdpbl9hbWQ2NC53aGwnKQ0KICAgICAgICAkcHJvYmUgPSBH
ZXQtVmVyc2lvblByb2JlIC1JZCAndXYnIC1EaXJlY3RQYXRoIChKb2luLVBhdGggJGJpbiAndXYu
ZXhlJykgLUFyZ3VtZW50cyBAKCctLXZlcnNpb24nKQ0KICAgICAgICBpZiAoLW5vdCAkcHJvYmUu
Zm91bmQgLW9yIChDb21wYXJlLVZlcnNpb25UZXh0IC1PYnNlcnZlZCAkcHJvYmUudmVyc2lvbiAt
UmVxdWlyZWQgJHZlcnNpb24pIC1uZSAwKSB7IHRocm93ICdQcmVwYXJlZCB1diBiaW5hcnkgZmFp
bGVkIGV4YWN0IHZlcnNpb24gdmVyaWZpY2F0aW9uLicgfQ0KICAgICAgICBbdm9pZF0oV3JpdGUt
U291bEpzb25BdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkcHJlcGFyZWQgJ3NvdXJjZS1wcm9vZi5q
c29uJykgLVZhbHVlIChbb3JkZXJlZF1Aew0KICAgICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDEN
CiAgICAgICAgICAgIGlkID0gJ3V2Jw0KICAgICAgICAgICAgdmVyc2lvbiA9ICR2ZXJzaW9uDQog
ICAgICAgICAgICBzb3VyY2UgPSBbc3RyaW5nXSRyZWNvcmQuc291cmNlDQogICAgICAgICAgICBz
b3VyY2VTaGEyNTYgPSAkKGlmICgkc2NyaXB0OkZpeHR1cmVNb2RlKSB7ICRleHBlY3RlZFNoYSB9
IGVsc2UgeyBbc3RyaW5nXSRyZWNvcmQuc2hhMjU2IH0pDQogICAgICAgICAgICB1dkV4ZVNoYTI1
NiA9IEdldC1FeGVjdXRhYmxlSGFzaCAoSm9pbi1QYXRoICRiaW4gJ3V2LmV4ZScpDQogICAgICAg
ICAgICB1dnhFeGVTaGEyNTYgPSBHZXQtRXhlY3V0YWJsZUhhc2ggKEpvaW4tUGF0aCAkYmluICd1
dnguZXhlJykNCiAgICAgICAgICAgIHByZXBhcmVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cu
VG9TdHJpbmcoJ28nKQ0KICAgICAgICB9KSkNCiAgICAgICAgUHVibGlzaC1OZXdEaXJlY3Rvcnkg
LVByZXBhcmVkUGF0aCAkcHJlcGFyZWQgLUNhbm9uaWNhbFBhdGggJGNhbm9uaWNhbFJvb3QNCiAg
ICB9DQoNCiAgICAkdXZCb2R5ID0gIkBlY2hvIG9mZmByYG5gIiV+ZHAwLi5cdG9vbHNcdXZcJHZl
cnNpb25cYmluXHV2LmV4ZWAiICUqYHJgbmV4aXQgL2IgJWVycm9ybGV2ZWwlYHJgbiINCiAgICAk
dXZ4Qm9keSA9ICJAZWNobyBvZmZgcmBuYCIlfmRwMC4uXHRvb2xzXHV2XCR2ZXJzaW9uXGJpblx1
dnguZXhlYCIgJSpgcmBuZXhpdCAvYiAlZXJyb3JsZXZlbCVgcmBuIg0KICAgIFt2b2lkXShFbnN1
cmUtRXhhY3RTaGltIC1OYW1lICd1di5jbWQnIC1Cb2R5ICR1dkJvZHkpDQogICAgW3ZvaWRdKEVu
c3VyZS1FeGFjdFNoaW0gLU5hbWUgJ3V2eC5jbWQnIC1Cb2R5ICR1dnhCb2R5KQ0KICAgIHJldHVy
biBbcHNjdXN0b21vYmplY3RdQHsgc3RhdHVzID0gJ3ByZXBhcmVkJzsgaWQgPSAndXYnOyB2ZXJz
aW9uID0gJHZlcnNpb247IGNhbm9uaWNhbFBhdGggPSAkY2Fub25pY2FsUm9vdCB9DQp9DQoNCmZ1
bmN0aW9uIEluc3RhbGwtQ2xhdWRlU3RhYmxlIHsNCiAgICAkcmVjb3JkID0gR2V0LUZvdW5kYXRp
b25SZWNvcmQgLUxvY2sgJHNjcmlwdDpMb2NrIC1JZCAnY2xhdWRlLWNvZGUnDQogICAgaWYgKCRz
Y3JpcHQ6Rml4dHVyZU1vZGUpIHsNCiAgICAgICAgaWYgKCRudWxsIC1lcSAkVGVzdENsYXVkZUlu
c3RhbGxBY3Rpb24pIHsgdGhyb3cgJ0ZpeHR1cmUgQ2xhdWRlIGluc3RhbGxhdGlvbiByZXF1aXJl
cyBUZXN0Q2xhdWRlSW5zdGFsbEFjdGlvbi4nIH0NCiAgICAgICAgcmV0dXJuICYgJFRlc3RDbGF1
ZGVJbnN0YWxsQWN0aW9uIChbc3RyaW5nXSRyZWNvcmQubWluaW11bVZlcnNpb24pICRzY3JpcHQ6
Q29tbWFuZERpcmVjdG9yeQ0KICAgIH0NCg0KICAgICRvcGVyYXRpb24gPSBHZXQtTmV3T3BlcmF0
aW9uRGlyZWN0b3J5IC1QdXJwb3NlICdjbGF1ZGUtc3RhYmxlJw0KICAgICRpbnN0YWxsZXJQYXRo
ID0gSm9pbi1QYXRoICRvcGVyYXRpb24gJ29mZmljaWFsLWluc3RhbGwucHMxJw0KICAgIGlmIChb
c3RyaW5nXSRyZWNvcmQuaW5zdGFsbCAtY25lICdvZmZpY2lhbC1uYXRpdmUtaW5zdGFsbGVyJykg
eyB0aHJvdyAnQ2xhdWRlIGluc3RhbGwgbWV0aG9kIGlzIG5vdCB0aGUgbG9ja2VkIG9mZmljaWFs
IG5hdGl2ZSBpbnN0YWxsZXIuJyB9DQogICAgU2F2ZS1Gb3VuZGF0aW9uRG93bmxvYWQgLVVyaSAn
aHR0cHM6Ly9jbGF1ZGUuYWkvaW5zdGFsbC5wczEnIC1EZXN0aW5hdGlvbiAkaW5zdGFsbGVyUGF0
aA0KICAgICRpc29sYXRlZENvbmZpZyA9IEpvaW4tUGF0aCAkb3BlcmF0aW9uICdpc29sYXRlZC1j
bGF1ZGUtY29uZmlnJw0KICAgIEVuc3VyZS1Gb3VuZGF0aW9uRGlyZWN0b3J5IC1QYXRoICRpc29s
YXRlZENvbmZpZyAtVGl0bGUgJ0lzb2xhdGVkIENsYXVkZSBpbnN0YWxsZXIgY29uZmlndXJhdGlv
bicNCg0KICAgICRwb3dlclNoZWxsUGF0aCA9IEpvaW4tUGF0aCAkUFNIT01FICdwb3dlcnNoZWxs
LmV4ZScNCiAgICAkc3RhcnRJbmZvID0gTmV3LU9iamVjdCBEaWFnbm9zdGljcy5Qcm9jZXNzU3Rh
cnRJbmZvDQogICAgJHN0YXJ0SW5mby5GaWxlTmFtZSA9ICRwb3dlclNoZWxsUGF0aA0KICAgICRz
dGFydEluZm8uQXJndW1lbnRzID0gJy1Ob0xvZ28gLU5vUHJvZmlsZSAtRXhlY3V0aW9uUG9saWN5
IEJ5cGFzcyAtRmlsZSAiJyArICRpbnN0YWxsZXJQYXRoICsgJyIgc3RhYmxlJw0KICAgICRzdGFy
dEluZm8uVXNlU2hlbGxFeGVjdXRlID0gJGZhbHNlDQogICAgJHN0YXJ0SW5mby5DcmVhdGVOb1dp
bmRvdyA9ICR0cnVlDQogICAgJHN0YXJ0SW5mby5FbnZpcm9ubWVudFZhcmlhYmxlc1snQ0xBVURF
X0NPTkZJR19ESVInXSA9ICRpc29sYXRlZENvbmZpZw0KICAgICRwcm9jZXNzID0gTmV3LU9iamVj
dCBEaWFnbm9zdGljcy5Qcm9jZXNzDQogICAgJHByb2Nlc3MuU3RhcnRJbmZvID0gJHN0YXJ0SW5m
bw0KICAgIGlmICgtbm90ICRwcm9jZXNzLlN0YXJ0KCkpIHsgdGhyb3cgJ1RoZSBvZmZpY2lhbCBD
bGF1ZGUgc3RhYmxlIGluc3RhbGxlciBjb3VsZCBub3Qgc3RhcnQuJyB9DQogICAgJHByb2Nlc3Mu
V2FpdEZvckV4aXQoKQ0KICAgICRleGl0Q29kZSA9ICRwcm9jZXNzLkV4aXRDb2RlDQogICAgJHBy
b2Nlc3MuRGlzcG9zZSgpDQogICAgaWYgKCRleGl0Q29kZSAtbmUgMCkgeyB0aHJvdyAiVGhlIG9m
ZmljaWFsIENsYXVkZSBzdGFibGUgaW5zdGFsbGVyIHJldHVybmVkIGV4aXQgY29kZSAkZXhpdENv
ZGUuIiB9DQogICAgUmVmcmVzaC1Qcm9jZXNzUGF0aA0KICAgIHJldHVybiBbcHNjdXN0b21vYmpl
Y3RdQHsgc3RhdHVzID0gJ2luc3RhbGxlZC1vZmZpY2lhbC1zdGFibGUnOyBpbnN0YWxsZXJTaGEy
NTYgPSBHZXQtRXhlY3V0YWJsZUhhc2ggJGluc3RhbGxlclBhdGggfQ0KfQ0KDQpmdW5jdGlvbiBQ
cmVwYXJlLUNvZGV4RmFsbGJhY2sgew0KICAgICRyZWNvcmQgPSBHZXQtRm91bmRhdGlvblJlY29y
ZCAtTG9jayAkc2NyaXB0OkxvY2sgLUlkICdjb2RleC1jbGknDQogICAgJHZlcnNpb24gPSBbc3Ry
aW5nXSRyZWNvcmQubWluaW11bVZlcnNpb24NCiAgICAkY2Fub25pY2FsUm9vdCA9IEFzc2VydC1N
YW5hZ2VkUGF0aCAtUGF0aCAoSm9pbi1QYXRoICRzY3JpcHQ6U291bFJvb3QgKChbc3RyaW5nXSRy
ZWNvcmQuZmFsbGJhY2tDYW5vbmljYWxSZWxhdGl2ZVBhdGgpLlJlcGxhY2UoJy8nLCAnXCcpKSkN
CiAgICAkY2Fub25pY2FsQ29tbWFuZCA9IEpvaW4tUGF0aCAkY2Fub25pY2FsUm9vdCAnbm9kZV9t
b2R1bGVzXC5iaW5cY29kZXguY21kJw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRj
YW5vbmljYWxSb290KSB7DQogICAgICAgICRwcm9iZSA9IEdldC1WZXJzaW9uUHJvYmUgLUlkICdj
b2RleC1jbGknIC1EaXJlY3RQYXRoICRjYW5vbmljYWxDb21tYW5kIC1Bcmd1bWVudHMgQCgnLS12
ZXJzaW9uJykNCiAgICAgICAgaWYgKC1ub3QgJHByb2JlLmZvdW5kIC1vciAoQ29tcGFyZS1WZXJz
aW9uVGV4dCAtT2JzZXJ2ZWQgJHByb2JlLnZlcnNpb24gLVJlcXVpcmVkICR2ZXJzaW9uKSAtbmUg
MCAtb3IgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRjYW5vbmljYWxS
b290ICdzb3VyY2UtcHJvb2YuanNvbicpIC1QYXRoVHlwZSBMZWFmKSkgew0KICAgICAgICAgICAg
dGhyb3cgJ1RoZSBleGlzdGluZyBDb2RleCBmYWxsYmFjayBpcyBpbmNvbXBsZXRlIG9yIGRpZmZl
cmVudDsgaXQgd2FzIHByZXNlcnZlZCBhbmQgbm90IG92ZXJ3cml0dGVuLicNCiAgICAgICAgfQ0K
ICAgIH0gZWxzZSB7DQogICAgICAgICRvcGVyYXRpb24gPSBHZXQtTmV3T3BlcmF0aW9uRGlyZWN0
b3J5IC1QdXJwb3NlICdjb2RleC1mYWxsYmFjaycNCiAgICAgICAgJHByZXBhcmVkID0gSm9pbi1Q
YXRoICRvcGVyYXRpb24gJ3ByZXBhcmVkJw0KICAgICAgICBFbnN1cmUtRm91bmRhdGlvbkRpcmVj
dG9yeSAtUGF0aCAkcHJlcGFyZWQgLVRpdGxlICdQcmVwYXJlZCBleGFjdCBDb2RleCBmYWxsYmFj
aycNCiAgICAgICAgaWYgKCRzY3JpcHQ6Rml4dHVyZU1vZGUpIHsNCiAgICAgICAgICAgIGlmICgk
bnVsbCAtZXEgJFRlc3RDb2RleEluc3RhbGxBY3Rpb24pIHsgdGhyb3cgJ0ZpeHR1cmUgQ29kZXgg
aW5zdGFsbGF0aW9uIHJlcXVpcmVzIFRlc3RDb2RleEluc3RhbGxBY3Rpb24uJyB9DQogICAgICAg
ICAgICBbdm9pZF0oJiAkVGVzdENvZGV4SW5zdGFsbEFjdGlvbiAkdmVyc2lvbiAkcHJlcGFyZWQg
JHNjcmlwdDpDb21tYW5kRGlyZWN0b3J5KQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg
JG5wbVBhdGggPSBSZXNvbHZlLUFwcGxpY2F0aW9uIC1OYW1lICducG0nDQogICAgICAgICAgICBp
ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkbnBtUGF0aCkpIHsgdGhyb3cgJ25wbSBp
cyB1bmF2YWlsYWJsZSBhZnRlciB0aGUgbG9ja2VkIE5vZGUgcHJlcGFyYXRpb24uJyB9DQogICAg
ICAgICAgICAkZG93bmxvYWRzID0gSm9pbi1QYXRoICRvcGVyYXRpb24gJ2Rvd25sb2FkcycNCiAg
ICAgICAgICAgIEVuc3VyZS1Gb3VuZGF0aW9uRGlyZWN0b3J5IC1QYXRoICRkb3dubG9hZHMgLVRp
dGxlICdMb2NrZWQgQ29kZXggZmFsbGJhY2sgZG93bmxvYWQnDQogICAgICAgICAgICAkcGFja1Jl
c3VsdCA9IEludm9rZS1BcHBsaWNhdGlvbkNhcHR1cmUgLUZpbGVQYXRoICRucG1QYXRoIC1Bcmd1
bWVudHMgQCgncGFjaycsIFtzdHJpbmddJHJlY29yZC5mYWxsYmFja1BhY2thZ2UsICctLXBhY2st
ZGVzdGluYXRpb24nLCAkZG93bmxvYWRzKQ0KICAgICAgICAgICAgaWYgKFtpbnRdJHBhY2tSZXN1
bHQuZXhpdENvZGUgLW5lIDApIHsgdGhyb3cgJ25wbSBjb3VsZCBub3QgZG93bmxvYWQgdGhlIGV4
YWN0IENvZGV4IGZhbGxiYWNrIHBhY2thZ2UuJyB9DQogICAgICAgICAgICAkcGFja2FnZXMgPSBA
KEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRkb3dubG9hZHMgLUZpbHRlciAnKi50Z3onIC1G
aWxlIC1Gb3JjZSkNCiAgICAgICAgICAgIGlmICgkcGFja2FnZXMuQ291bnQgLW5lIDEpIHsgdGhy
b3cgJ0V4cGVjdGVkIG9uZSBleGFjdCBDb2RleCBmYWxsYmFjayBwYWNrYWdlIGFyY2hpdmUuJyB9
DQogICAgICAgICAgICAkaW50ZWdyaXR5ID0gW3N0cmluZ10kcmVjb3JkLmZhbGxiYWNrSW50ZWdy
aXR5DQogICAgICAgICAgICBpZiAoLW5vdCAkaW50ZWdyaXR5LlN0YXJ0c1dpdGgoJ3NoYTUxMi0n
LCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7IHRocm93ICdVbnN1cHBvcnRlZCBDb2Rl
eCBmYWxsYmFjayBpbnRlZ3JpdHkgZm9ybWF0LicgfQ0KICAgICAgICAgICAgaWYgKChHZXQtU2hh
NTEyQmFzZTY0IC1QYXRoICRwYWNrYWdlc1swXS5GdWxsTmFtZSkgLWNuZSAkaW50ZWdyaXR5LlN1
YnN0cmluZyg3KSkgeyB0aHJvdyAnQ29kZXggZmFsbGJhY2sgcGFja2FnZSBpbnRlZ3JpdHkgbWlz
bWF0Y2guJyB9DQogICAgICAgICAgICAkaW5zdGFsbFJlc3VsdCA9IEludm9rZS1BcHBsaWNhdGlv
bkNhcHR1cmUgLUZpbGVQYXRoICRucG1QYXRoIC1Bcmd1bWVudHMgQCgnaW5zdGFsbCcsICctLXBy
ZWZpeCcsICRwcmVwYXJlZCwgJy0tbm8tc2F2ZScsICctLW5vLWF1ZGl0JywgJy0tbm8tZnVuZCcs
ICctLWlnbm9yZS1zY3JpcHRzJywgJHBhY2thZ2VzWzBdLkZ1bGxOYW1lKQ0KICAgICAgICAgICAg
aWYgKFtpbnRdJGluc3RhbGxSZXN1bHQuZXhpdENvZGUgLW5lIDApIHsgdGhyb3cgJ25wbSBjb3Vs
ZCBub3QgbWF0ZXJpYWxpemUgdGhlIGV4YWN0IENvZGV4IGZhbGxiYWNrLicgfQ0KICAgICAgICAg
ICAgQ29weS1OZXdGaWxlIC1Tb3VyY2UgJHBhY2thZ2VzWzBdLkZ1bGxOYW1lIC1EZXN0aW5hdGlv
biAoSm9pbi1QYXRoICRwcmVwYXJlZCAkcGFja2FnZXNbMF0uTmFtZSkNCiAgICAgICAgfQ0KICAg
ICAgICAkcHJvYmUgPSBHZXQtVmVyc2lvblByb2JlIC1JZCAnY29kZXgtY2xpJyAtRGlyZWN0UGF0
aCAoSm9pbi1QYXRoICRwcmVwYXJlZCAnbm9kZV9tb2R1bGVzXC5iaW5cY29kZXguY21kJykgLUFy
Z3VtZW50cyBAKCctLXZlcnNpb24nKQ0KICAgICAgICBpZiAoLW5vdCAkcHJvYmUuZm91bmQgLW9y
IChDb21wYXJlLVZlcnNpb25UZXh0IC1PYnNlcnZlZCAkcHJvYmUudmVyc2lvbiAtUmVxdWlyZWQg
JHZlcnNpb24pIC1uZSAwKSB7IHRocm93ICdQcmVwYXJlZCBDb2RleCBmYWxsYmFjayBmYWlsZWQg
ZXhhY3QgdmVyc2lvbiB2ZXJpZmljYXRpb24uJyB9DQogICAgICAgIFt2b2lkXShXcml0ZS1Tb3Vs
SnNvbkF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRwcmVwYXJlZCAnc291cmNlLXByb29mLmpzb24n
KSAtVmFsdWUgKFtvcmRlcmVkXUB7DQogICAgICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAg
ICAgICAgICAgaWQgPSAnY29kZXgtY2xpJw0KICAgICAgICAgICAgdmVyc2lvbiA9ICR2ZXJzaW9u
DQogICAgICAgICAgICBwYWNrYWdlID0gW3N0cmluZ10kcmVjb3JkLmZhbGxiYWNrUGFja2FnZQ0K
ICAgICAgICAgICAgaW50ZWdyaXR5ID0gW3N0cmluZ10kcmVjb3JkLmZhbGxiYWNrSW50ZWdyaXR5
DQogICAgICAgICAgICBjb21tYW5kU2hhMjU2ID0gR2V0LUV4ZWN1dGFibGVIYXNoIChKb2luLVBh
dGggJHByZXBhcmVkICdub2RlX21vZHVsZXNcLmJpblxjb2RleC5jbWQnKQ0KICAgICAgICAgICAg
cHJlcGFyZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgICAg
IH0pKQ0KICAgICAgICBQdWJsaXNoLU5ld0RpcmVjdG9yeSAtUHJlcGFyZWRQYXRoICRwcmVwYXJl
ZCAtQ2Fub25pY2FsUGF0aCAkY2Fub25pY2FsUm9vdA0KICAgIH0NCg0KICAgICRib2R5ID0gIkBl
Y2hvIG9mZmByYG5jYWxsIGAiJX5kcDAuLlx0b29sc1xjb2RleFwkdmVyc2lvblxub2RlX21vZHVs
ZXNcLmJpblxjb2RleC5jbWRgIiAlKmByYG5leGl0IC9iICVlcnJvcmxldmVsJWByYG4iDQogICAg
W3ZvaWRdKEVuc3VyZS1FeGFjdFNoaW0gLU5hbWUgJ2NvZGV4LmNtZCcgLUJvZHkgJGJvZHkpDQog
ICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAncHJlcGFyZWQtZXhhY3QtZmFs
bGJhY2snOyBpZCA9ICdjb2RleC1jbGknOyB2ZXJzaW9uID0gJHZlcnNpb247IGNhbm9uaWNhbFBh
dGggPSAkY2Fub25pY2FsUm9vdCB9DQp9DQoNCmZ1bmN0aW9uIE5ldy1SZXN1bHQgew0KICAgIHBh
cmFtKFtzdHJpbmddJE1vZGUsIFtvYmplY3RbXV0kQXVkaXQsIFtvYmplY3RbXV0kQWN0aW9ucywg
W29iamVjdFtdXSRGYWlsdXJlcywgW3N0cmluZ10kUmVjZWlwdFBhdGgpDQogICAgJG5vdFJlYWR5
ID0gQCgkQXVkaXQgfCBXaGVyZS1PYmplY3QgeyAtbm90IFtib29sXSRfLnJlYWR5IH0pDQogICAg
JHJlcXVpcmVzVXNlciA9IEAoJG5vdFJlYWR5IHwgV2hlcmUtT2JqZWN0IHsgJF8uYWN0aW9uIC1p
biBAKCdyZXBhaXItd2luZG93cycsICd1c2VyLXJlcGFpci1hcHAtaW5zdGFsbGVyJywgJ3VzZXIt
cmVzb2x2ZS1zaWRlLWJ5LXNpZGUnKSB9KQ0KICAgICRzdGF0dXMgPSBpZiAoJG5vdFJlYWR5LkNv
dW50IC1lcSAwKSB7ICdyZWFkeScgfSBlbHNlaWYgKCRGYWlsdXJlcy5Db3VudCAtZ3QgMCkgeyAn
cGVuZGluZy11c2VyLW9yLXBvbGljeScgfSBlbHNlaWYgKCRNb2RlIC1lcSAncGxhbicpIHsgJ2Fj
dGlvbnMtcmVxdWlyZWQnIH0gZWxzZSB7ICdpbmNvbXBsZXRlJyB9DQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBtb2RlID0g
JE1vZGUNCiAgICAgICAgc3RhdHVzID0gJHN0YXR1cw0KICAgICAgICBtYWNoaW5lUmVhZHkgPSAo
JG5vdFJlYWR5LkNvdW50IC1lcSAwKQ0KICAgICAgICBhdWRpdCA9IEAoJEF1ZGl0KQ0KICAgICAg
ICBhY3Rpb25zID0gQCgkQWN0aW9ucykNCiAgICAgICAgZmFpbHVyZXMgPSBAKCRGYWlsdXJlcykN
CiAgICAgICAgdXNlckRlY2lzaW9uUmVxdWlyZWQgPSAoJHJlcXVpcmVzVXNlci5Db3VudCAtZ3Qg
MCAtb3IgJEZhaWx1cmVzLkNvdW50IC1ndCAwKQ0KICAgICAgICByZWNlaXB0UGF0aCA9ICRSZWNl
aXB0UGF0aA0KICAgICAgICBkZXNrdG9wV3JpdGVzID0gJGZhbHNlDQogICAgICAgIGFjdGl2ZUFn
ZW50U2V0dGluZ3NDaGFuZ2VkID0gJGZhbHNlDQogICAgICAgIGFudGhyb3BpY0Jhc2VVcmxDaGFu
Z2VkID0gJGZhbHNlDQogICAgfQ0KfQ0KDQokaW5pdGlhbEF1ZGl0ID0gQChHZXQtRm91bmRhdGlv
bkF1ZGl0KQ0KaWYgKCRQbGFuT25seSkgew0KICAgIHJldHVybiAoTmV3LVJlc3VsdCAtTW9kZSAn
cGxhbicgLUF1ZGl0ICRpbml0aWFsQXVkaXQgLUFjdGlvbnMgQCgpIC1GYWlsdXJlcyBAKCkgLVJl
Y2VpcHRQYXRoICRudWxsKQ0KfQ0KDQokb3BlcmF0aW9uTG9jayA9IE5ldy1Tb3VsT3BlcmF0aW9u
TG9jayAtTmFtZSAncHJlcGFyZS1mb3VuZGF0aW9ucy12NycgQHNjcmlwdDpNb2R1bGVBcmd1bWVu
dHMNCiRhY3Rpb25zID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0
W29iamVjdF0NCiRmYWlsdXJlcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVy
aWMuTGlzdFtvYmplY3RdDQp0cnkgew0KICAgICRieUlkID0gQHt9DQogICAgZm9yZWFjaCAoJGl0
ZW0gaW4gJGluaXRpYWxBdWRpdCkgeyAkYnlJZFtbc3RyaW5nXSRpdGVtLmlkXSA9ICRpdGVtIH0N
Cg0KICAgIGlmICgtbm90IFtib29sXSRieUlkWydwb3dlcnNoZWxsJ10ucmVhZHkpIHsNCiAgICAg
ICAgJGZhaWx1cmVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgaWQgPSAncG93ZXJzaGVsbCc7IHN0
YXR1cyA9ICdibG9ja2VkJzsgZXhwbGFuYXRpb24gPSAnV2luZG93cyBQb3dlclNoZWxsIDUuMSBv
ciBuZXdlciBtdXN0IGJlIHJlcGFpcmVkIGJ5IFdpbmRvd3MuJyB9KQ0KICAgIH0NCiAgICBpZiAo
LW5vdCBbYm9vbF0kYnlJZFsnd2luZ2V0J10ucmVhZHkpIHsNCiAgICAgICAgJGZhaWx1cmVzLkFk
ZChbcHNjdXN0b21vYmplY3RdQHsgaWQgPSAnd2luZ2V0Jzsgc3RhdHVzID0gJ3BlbmRpbmctdXNl
cic7IGV4cGxhbmF0aW9uID0gJ01pY3Jvc29mdCBBcHAgSW5zdGFsbGVyIGlzIG1pc3Npbmcgb3Ig
dW5oZWFsdGh5LiBNaWNyb3NvZnQgU3RvcmUsIFVBQywgb3Igb3JnYW5pemF0aW9uIHBvbGljeSBt
dXN0IHJlcGFpciBpdC4nIH0pDQogICAgfQ0KDQogICAgJHdpbmdldFJlYWR5ID0gW2Jvb2xdJGJ5
SWRbJ3dpbmdldCddLnJlYWR5DQogICAgZm9yZWFjaCAoJGlkIGluIEAoJ2dpdCcsICdub2RlJywg
J3B5dGhvbicpKSB7DQogICAgICAgICRkZWNpc2lvbiA9ICRieUlkWyRpZF0NCiAgICAgICAgaWYg
KFtib29sXSRkZWNpc2lvbi5yZWFkeSkgeyBjb250aW51ZSB9DQogICAgICAgIGlmIChbc3RyaW5n
XSRkZWNpc2lvbi5zdGF0ZSAtZXEgJ25ld2VyLWluY29tcGF0aWJsZS1wcmVzZXJ2ZWQnKSB7DQog
ICAgICAgICAgICAkZmFpbHVyZXMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9ICRpZDsgc3Rh
dHVzID0gJ3BlbmRpbmctdXNlcic7IGV4cGxhbmF0aW9uID0gJ0EgbmV3ZXIgYnV0IGRpZmZlcmVu
dCBjb21wYXRpYmlsaXR5IGxpbmUgd2FzIHByZXNlcnZlZC4gVGhlIGVuZ2luZSB3aWxsIG5vdCBk
b3duZ3JhZGUgaXQuJyB9KQ0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgfQ0KICAgICAg
ICBpZiAoLW5vdCAkd2luZ2V0UmVhZHkpIHsNCiAgICAgICAgICAgICRmYWlsdXJlcy5BZGQoW3Bz
Y3VzdG9tb2JqZWN0XUB7IGlkID0gJGlkOyBzdGF0dXMgPSAnYmxvY2tlZC1ieS13aW5nZXQnOyBl
eHBsYW5hdGlvbiA9ICdXaW5HZXQgbXVzdCBiZSByZXBhaXJlZCBmaXJzdC4nIH0pDQogICAgICAg
ICAgICBjb250aW51ZQ0KICAgICAgICB9DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICAkcmVj
b3JkID0gR2V0LUZvdW5kYXRpb25SZWNvcmQgLUxvY2sgJHNjcmlwdDpMb2NrIC1JZCAkaWQNCiAg
ICAgICAgICAgICR2ZXJiID0gaWYgKFtzdHJpbmddJGRlY2lzaW9uLnN0YXRlIC1lcSAnbWlzc2lu
ZycpIHsgJ2luc3RhbGwnIH0gZWxzZSB7ICd1cGdyYWRlJyB9DQogICAgICAgICAgICAkYWN0aW9u
cy5BZGQoKEludm9rZS1XaW5HZXRMb2NrZWRJbnN0YWxsIC1SZWNvcmQgJHJlY29yZCAtVmVyYiAk
dmVyYikpDQogICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgJGZhaWx1cmVzLkFkZChbcHNj
dXN0b21vYmplY3RdQHsgaWQgPSAkaWQ7IHN0YXR1cyA9ICdwZW5kaW5nLXVzZXItb3ItcG9saWN5
JzsgZXhwbGFuYXRpb24gPSAkXy5FeGNlcHRpb24uTWVzc2FnZSB9KQ0KICAgICAgICB9DQogICAg
fQ0KDQogICAgdHJ5IHsgJGFjdGlvbnMuQWRkKChQcmVwYXJlLVV2UG9ydGFibGUpKSB9DQogICAg
Y2F0Y2ggeyAkZmFpbHVyZXMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9ICd1dic7IHN0YXR1
cyA9ICdibG9ja2VkLXByZXNlcnZlZC1leGlzdGluZy1vci1zb3VyY2UtZmFpbGVkJzsgZXhwbGFu
YXRpb24gPSAkXy5FeGNlcHRpb24uTWVzc2FnZSB9KSB9DQoNCiAgICAkY3VycmVudCA9IEAoR2V0
LUZvdW5kYXRpb25BdWRpdCkNCiAgICAkY3VycmVudEJ5SWQgPSBAe30NCiAgICBmb3JlYWNoICgk
aXRlbSBpbiAkY3VycmVudCkgeyAkY3VycmVudEJ5SWRbW3N0cmluZ10kaXRlbS5pZF0gPSAkaXRl
bSB9DQogICAgaWYgKC1ub3QgW2Jvb2xdJGN1cnJlbnRCeUlkWydjbGF1ZGUtY29kZSddLnJlYWR5
KSB7DQogICAgICAgIHRyeSB7ICRhY3Rpb25zLkFkZCgoSW5zdGFsbC1DbGF1ZGVTdGFibGUpKTsg
UmVmcmVzaC1Qcm9jZXNzUGF0aCB9DQogICAgICAgIGNhdGNoIHsgJGZhaWx1cmVzLkFkZChbcHNj
dXN0b21vYmplY3RdQHsgaWQgPSAnY2xhdWRlLWNvZGUnOyBzdGF0dXMgPSAncGVuZGluZy11c2Vy
LW9yLXBvbGljeSc7IGV4cGxhbmF0aW9uID0gJF8uRXhjZXB0aW9uLk1lc3NhZ2UgfSkgfQ0KICAg
IH0NCg0KICAgICRjdXJyZW50ID0gQChHZXQtRm91bmRhdGlvbkF1ZGl0KQ0KICAgICRjdXJyZW50
QnlJZCA9IEB7fQ0KICAgIGZvcmVhY2ggKCRpdGVtIGluICRjdXJyZW50KSB7ICRjdXJyZW50QnlJ
ZFtbc3RyaW5nXSRpdGVtLmlkXSA9ICRpdGVtIH0NCiAgICBpZiAoLW5vdCBbYm9vbF0kY3VycmVu
dEJ5SWRbJ2NvZGV4LWNsaSddLnJlYWR5KSB7DQogICAgICAgIHRyeSB7ICRhY3Rpb25zLkFkZCgo
UHJlcGFyZS1Db2RleEZhbGxiYWNrKSkgfQ0KICAgICAgICBjYXRjaCB7ICRmYWlsdXJlcy5BZGQo
W3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJ2NvZGV4LWNsaSc7IHN0YXR1cyA9ICdwZW5kaW5nLXVz
ZXItb3ItcG9saWN5JzsgZXhwbGFuYXRpb24gPSAkXy5FeGNlcHRpb24uTWVzc2FnZSB9KSB9DQog
ICAgfQ0KDQogICAgJGZpbmFsQXVkaXQgPSBAKEdldC1Gb3VuZGF0aW9uQXVkaXQpDQogICAgJHJl
Y2VpcHRSb290ID0gSm9pbi1QYXRoICRzY3JpcHQ6U2V0dXBEaXJlY3RvcnkgJ2ZvdW5kYXRpb24t
cmVjZWlwdHMnDQogICAgRW5zdXJlLUZvdW5kYXRpb25EaXJlY3RvcnkgLVBhdGggJHJlY2VpcHRS
b290IC1UaXRsZSAnSW1tdXRhYmxlIGZvdW5kYXRpb24gcmVjZWlwdHMnDQogICAgJHJlY2VpcHRQ
YXRoID0gSm9pbi1QYXRoICRyZWNlaXB0Um9vdCAoKEdldC1EYXRlKS5Ub1VuaXZlcnNhbFRpbWUo
KS5Ub1N0cmluZygneXl5eU1NZGRUSEhtbXNzZmZmWicpICsgJy0nICsgW2d1aWRdOjpOZXdHdWlk
KCkuVG9TdHJpbmcoJ04nKSArICcuanNvbicpDQogICAgJHJlY2VpcHQgPSBbb3JkZXJlZF1Aew0K
ICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBzb3VyY2VMb2NrU2hhMjU2ID0gKEdl
dC1Tb3VsU2hhMjU2IC1QYXRoICRzY3JpcHQ6TG9ja1BhdGgpLlRvTG93ZXJJbnZhcmlhbnQoKQ0K
ICAgICAgICBjcmVhdGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0K
ICAgICAgICBtb2RlID0gJ3ByZXBhcmUnDQogICAgICAgIGF1ZGl0ID0gJGZpbmFsQXVkaXQNCiAg
ICAgICAgYWN0aW9ucyA9ICRhY3Rpb25zLlRvQXJyYXkoKQ0KICAgICAgICBmYWlsdXJlcyA9ICRm
YWlsdXJlcy5Ub0FycmF5KCkNCiAgICAgICAgZGVza3RvcFdyaXRlcyA9ICRmYWxzZQ0KICAgICAg
ICBhY3RpdmVBZ2VudFNldHRpbmdzQ2hhbmdlZCA9ICRmYWxzZQ0KICAgICAgICBhbnRocm9waWNC
YXNlVXJsQ2hhbmdlZCA9ICRmYWxzZQ0KICAgIH0NCiAgICBbdm9pZF0oV3JpdGUtU291bEpzb25B
dG9taWMgLVBhdGggJHJlY2VpcHRQYXRoIC1WYWx1ZSAkcmVjZWlwdCkNCg0KICAgIGlmIChbRW52
aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCdBTlRIUk9QSUNfQkFTRV9VUkwnLCAn
UHJvY2VzcycpIC1jbmUgJHNjcmlwdDpPcmlnaW5hbEFudGhyb3BpY0Jhc2VVcmwpIHsNCiAgICAg
ICAgdGhyb3cgJ0FOVEhST1BJQ19CQVNFX1VSTCBjaGFuZ2VkIHVuZXhwZWN0ZWRseTsgZm91bmRh
dGlvbiBwcmVwYXJhdGlvbiBhYm9ydGVkLicNCiAgICB9DQogICAgcmV0dXJuIChOZXctUmVzdWx0
IC1Nb2RlICdwcmVwYXJlJyAtQXVkaXQgJGZpbmFsQXVkaXQgLUFjdGlvbnMgJGFjdGlvbnMuVG9B
cnJheSgpIC1GYWlsdXJlcyAkZmFpbHVyZXMuVG9BcnJheSgpIC1SZWNlaXB0UGF0aCAkcmVjZWlw
dFBhdGgpDQp9IGZpbmFsbHkgew0KICAgIEV4aXQtU291bE9wZXJhdGlvbkxvY2sgLUxvY2sgJG9w
ZXJhdGlvbkxvY2sNCn0NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/prepare-sources-v7.ps1","encoding":"base64","size":46066,"runtimeSha256":"626f84db60474b9fdfd449cfc4bc61cb40d7fbe20bfbdef5a3f2babde3110124","normalizedSha256":"0703b476aa8d7159a00bac90e1d469fff9aba2a5bdd055c866f11f6df0143f7a"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIFByZXBhcmVzIGlt
bXV0YWJsZSB2NyB0b29sIHNvdXJjZXMgaW5zaWRlIHRoZSBzb3VsIHdpdGhvdXQgY2hhbmdpbmcg
bGl2ZSBhZ2VudHMuDQoNCi5ERVNDUklQVElPTg0KICBUaGUgZGVmYXVsdCBpcyBQbGFuT25seS4g
LVByZXBhcmVTb3VyY2VzIGRvd25sb2FkcyBvbmx5IGxvY2stZmlsZS1zZWxlY3RlZA0KICBhcnRp
ZmFjdHMgaW50byBhIHNldHVwLW93bmVkIHN0YWdpbmcgZGlyZWN0b3J5LCB2ZXJpZmllcyB0aGUg
YWR2ZXJ0aXNlZA0KICBjb21taXQvZGlnZXN0L2ludGVncml0eSwgdGhlbiBwdWJsaXNoZXMgYSBw
cmV2aW91c2x5IGFic2VudCBjYW5vbmljYWwgY29weS4NCiAgRXhpc3RpbmcgY2Fub25pY2FsIHBh
dGhzIGFuZCBkZXZlbG9wbWVudCB3b3JraW5nIHRyZWVzIGFyZSBuZXZlciBvdmVyd3JpdHRlbi4N
CiM+DQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oDQogICAgW3N3aXRjaF0kUGxhbk9ubHksDQog
ICAgW3N3aXRjaF0kUHJlcGFyZVNvdXJjZXMNCikNCg0KU2V0LVN0cmljdE1vZGUgLVZlcnNpb24g
TGF0ZXN0DQokRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJ1N0b3AnDQoNCiRtb2R1bGVQYXRoID0g
Sm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ2VuZ2luZVxTb3VsLkVuZ2luZS5wc20xJw0KSW1wb3J0
LU1vZHVsZSAtTmFtZSAkbW9kdWxlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCg0KaWYg
KCRQbGFuT25seSAtYW5kICRQcmVwYXJlU291cmNlcykgew0KICAgIHRocm93ICdDaG9vc2UgZWl0
aGVyIFBsYW5Pbmx5IG9yIFByZXBhcmVTb3VyY2VzLCBub3QgYm90aC4nDQp9DQppZiAoLW5vdCAk
UGxhbk9ubHkgLWFuZCAtbm90ICRQcmVwYXJlU291cmNlcykgeyAkUGxhbk9ubHkgPSAkdHJ1ZSB9
DQoNCmZ1bmN0aW9uIE5ldy1TZXR1cENvbnRhaW5lciB7DQogICAgcGFyYW0oDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoLA0KICAgICAgICBbUGFyYW1ldGVyKE1h
bmRhdG9yeSldW3N0cmluZ10kVGl0bGUNCiAgICApDQoNCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxP
d25lZFBhdGggLVBhdGggJFBhdGgpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBh
dGggJFBhdGgpKSB7DQogICAgICAgIFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3Rv
cnkoJFBhdGgpDQogICAgfQ0KICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRQYXRo
IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgtbm90ICRpdGVtLlBTSXNDb250YWlu
ZXIgLW9yICgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFy
c2VQb2ludCkgLW5lIDApIHsNCiAgICAgICAgdGhyb3cgIkEgc2V0dXAgY29udGFpbmVyIG11c3Qg
YmUgYSByZWFsIGRpcmVjdG9yeTogJFBhdGgiDQogICAgfQ0KDQogICAgJGFnZW50c1BhdGggPSBK
b2luLVBhdGggJFBhdGggJ0FHRU5UUy5tZCcNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkYWdlbnRzUGF0aCkpIHsNCiAgICAgICAgJGJvZHkgPSAiIyAkVGl0bGVgcmBuYHJg
blRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHNldHVwLW1hbmFnZWQgcG9ydGFibGUgcmVzb3VyY2Vz
LmByYG5gcmBuPCEtLSBEbyBub3QgcmVzdGF0ZSBpbmhlcml0ZWQgQUdFTlRTLm1kIHJ1bGVzLiAt
LT5gcmBuIg0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGFnZW50
c1BhdGggLVRleHQgJGJvZHkpDQogICAgfQ0KICAgICRjbGF1ZGVQYXRoID0gSm9pbi1QYXRoICRQ
YXRoICdDTEFVREUubWQnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNs
YXVkZVBhdGgpKSB7DQogICAgICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAk
Y2xhdWRlUGF0aCAtVGV4dCAiQEFHRU5UUy5tZGByYG4iKQ0KICAgIH0NCiAgICByZXR1cm4gJFBh
dGgNCn0NCg0KZnVuY3Rpb24gVGVzdC1Db21tYW5kQXZhaWxhYmxlIHsNCiAgICBwYXJhbShbUGFy
YW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kTmFtZSkNCiAgICByZXR1cm4gJG51bGwgLW5lIChH
ZXQtQ29tbWFuZCAtTmFtZSAkTmFtZSAtQ29tbWFuZFR5cGUgQXBwbGljYXRpb24gLUVycm9yQWN0
aW9uIFNpbGVudGx5Q29udGludWUgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxKQ0KfQ0KDQpmdW5j
dGlvbiBHZXQtRG9jdW1lbnRQeXRob25SdW50aW1lUmVjb3JkIHsNCiAgICBwYXJhbShbUGFyYW1l
dGVyKE1hbmRhdG9yeSldJExvY2spDQoNCiAgICAkcmVjb3JkcyA9IEAoJExvY2sucHl0aG9uUnVu
dGltZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlkIC1jZXEgJ2RvY3VtZW50LW1jcCcg
fSkNCiAgICBpZiAoJHJlY29yZHMuQ291bnQgLW5lIDEpIHsgdGhyb3cgJ1RoZSB2NyBsb2NrIG11
c3QgY29udGFpbiBleGFjdGx5IG9uZSBkb2N1bWVudC1tY3AgUHl0aG9uIHJ1bnRpbWUuJyB9DQog
ICAgJHJlY29yZCA9ICRyZWNvcmRzWzBdDQogICAgaWYgKFtzdHJpbmddJHJlY29yZC5weXRob25W
ZXJzaW9uIC1jbmUgJzMuMTInIC1vcg0KICAgICAgICBbc3RyaW5nXSRyZWNvcmQuaW5zdGFsbFBv
bGljeSAtY25lICdvZmZsaW5lLWhhc2gtbG9ja2VkLXdoZWVsaG91c2UnIC1vcg0KICAgICAgICBb
aW50XSRyZWNvcmQuZXhwZWN0ZWRQYWNrYWdlQ291bnQgLWx0IDEpIHsNCiAgICAgICAgdGhyb3cg
J1RoZSBkb2N1bWVudC1tY3AgUHl0aG9uIHJ1bnRpbWUgcG9saWN5IGlzIGluY29tcGxldGUgb3Ig
dW5zdXBwb3J0ZWQuJw0KICAgIH0NCiAgICByZXR1cm4gJHJlY29yZA0KfQ0KDQpmdW5jdGlvbiBS
ZXNvbHZlLUxvY2tlZFNpZGVjYXJQYXRoIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRl
cihNYW5kYXRvcnkpXVtzdHJpbmddJFJlbGF0aXZlUGF0aCwNCiAgICAgICAgW1BhcmFtZXRlcihN
YW5kYXRvcnkpXVtzdHJpbmddJEV4cGVjdGVkU2hhMjU2DQogICAgKQ0KDQogICAgJHBhdGggPSBb
SU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAkUmVsYXRpdmVQ
YXRoLlJlcGxhY2UoJy8nLCAnXCcpKSkNCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGgg
LVBhdGggJHBhdGgpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhdGgg
LVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICJMb2NrZWQgc2lkZWNhciBpcyBtaXNzaW5nOiAkUmVs
YXRpdmVQYXRoIiB9DQogICAgaWYgKC1ub3QgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRwYXRoKS5F
cXVhbHMoJEV4cGVjdGVkU2hhMjU2LCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVD
YXNlKSkgew0KICAgICAgICB0aHJvdyAiTG9ja2VkIHNpZGVjYXIgaGFzaCBtaXNtYXRjaDogJFJl
bGF0aXZlUGF0aCINCiAgICB9DQogICAgcmV0dXJuICRwYXRoDQp9DQoNCmZ1bmN0aW9uIEdldC1Q
eXRob24zMTJJbnZvY2F0aW9uIHsNCiAgICAkY2FuZGlkYXRlcyA9IE5ldy1PYmplY3QgU3lzdGVt
LkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJHB5ID0gR2V0LUNvbW1hbmQg
LU5hbWUgJ3B5LmV4ZScgLUNvbW1hbmRUeXBlIEFwcGxpY2F0aW9uIC1FcnJvckFjdGlvbiBTaWxl
bnRseUNvbnRpbnVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0KICAgIGlmICgkbnVsbCAtbmUg
JHB5KSB7ICRjYW5kaWRhdGVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9IFtzdHJpbmdd
JHB5LlNvdXJjZTsgcHJlZml4ID0gQCgnLTMuMTInKSB9KSB9DQogICAgJHB5dGhvbiA9IEdldC1D
b21tYW5kIC1OYW1lICdweXRob24uZXhlJyAtQ29tbWFuZFR5cGUgQXBwbGljYXRpb24gLUVycm9y
QWN0aW9uIFNpbGVudGx5Q29udGludWUgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxDQogICAgaWYg
KCRudWxsIC1uZSAkcHl0aG9uKSB7ICRjYW5kaWRhdGVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsg
cGF0aCA9IFtzdHJpbmddJHB5dGhvbi5Tb3VyY2U7IHByZWZpeCA9IEAoKSB9KSB9DQoNCiAgICBm
b3JlYWNoICgkY2FuZGlkYXRlIGluICRjYW5kaWRhdGVzKSB7DQogICAgICAgIHRyeSB7DQogICAg
ICAgICAgICAjIEF2b2lkIHBhc3NpbmcgcXVvdGVkIFB5dGhvbiBzb3VyY2UgdGhyb3VnaCBXaW5k
b3dzIFBvd2VyU2hlbGwgNS4xOg0KICAgICAgICAgICAgIyBuYXRpdmUgYXJndW1lbnQgaGFuZGxp
bmcgY2FuIHJlbW92ZSB0aGUgaW5uZXIgcXVvdGVzIGJlZm9yZSBQeXRob24NCiAgICAgICAgICAg
ICMgcmVjZWl2ZXMgdGhlbS4gLS12ZXJzaW9uIGlzIHF1b3RlLWZyZWUgYW5kIGlzIHN1cHBvcnRl
ZCBieSBib3RoIHRoZQ0KICAgICAgICAgICAgIyBQeXRob24gbGF1bmNoZXIgYW5kIHB5dGhvbi5l
eGUuDQogICAgICAgICAgICAkb3V0cHV0ID0gQChJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1G
aWxlUGF0aCAkY2FuZGlkYXRlLnBhdGggLUFyZ3VtZW50TGlzdCBAKCRjYW5kaWRhdGUucHJlZml4
ICsgQCgnLS12ZXJzaW9uJykpKQ0KICAgICAgICAgICAgaWYgKCgkb3V0cHV0IC1qb2luICJgbiIp
LlRyaW0oKSAtbWF0Y2ggJ15QeXRob25ccyszXC4xMig/OlwufCQpJykgeyByZXR1cm4gJGNhbmRp
ZGF0ZSB9DQogICAgICAgIH0gY2F0Y2ggeyB9DQogICAgfQ0KICAgIHRocm93ICdDUHl0aG9uIDMu
MTIgaXMgcmVxdWlyZWQgYmVmb3JlIHByZXBhcmluZyB0aGUgZG9jdW1lbnQgTUNQIHdoZWVsaG91
c2UuJw0KfQ0KDQpmdW5jdGlvbiBHZXQtRG9jdW1lbnRXaGVlbGhvdXNlU3RhdHVzIHsNCiAgICBw
YXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFJvb3QsDQogICAg
ICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kUnVudGltZVJlY29yZCwNCiAgICAgICAgW1BhcmFt
ZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFJlcXVpcmVtZW50c0xvY2tQYXRoDQogICAgKQ0KDQog
ICAgJGNhbm9uaWNhbFBhdGggPSBKb2luLVBhdGggJFJvb3QgKFtzdHJpbmddJFJ1bnRpbWVSZWNv
cmQud2hlZWxob3VzZVJlbGF0aXZlUGF0aCkuUmVwbGFjZSgnLycsICdcJykNCiAgICBbdm9pZF0o
QXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJGNhbm9uaWNhbFBhdGgpDQogICAgJHByb29mUGF0
aCA9IEpvaW4tUGF0aCAkY2Fub25pY2FsUGF0aCAnd2hlZWxob3VzZS1wcm9vZi5qc29uJw0KICAg
IGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYW5vbmljYWxQYXRoIC1QYXRoVHlw
ZSBDb250YWluZXIpKSB7DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgaWQgPSAn
ZG9jdW1lbnQtbWNwJzsgcmVhZHkgPSAkZmFsc2U7IHN0YXR1cyA9ICdtaXNzaW5nJzsgY2Fub25p
Y2FsUGF0aCA9ICRjYW5vbmljYWxQYXRoOyByZWFzb24gPSAnd2hlZWxob3VzZS1taXNzaW5nJyB9
DQogICAgfQ0KICAgICRyb290SXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkY2Fub25pY2Fs
UGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICBpZiAoKCRyb290SXRlbS5BdHRyaWJ1
dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsNCiAg
ICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9ICdkb2N1bWVudC1tY3AnOyByZWFk
eSA9ICRmYWxzZTsgc3RhdHVzID0gJ2ludmFsaWQnOyBjYW5vbmljYWxQYXRoID0gJGNhbm9uaWNh
bFBhdGg7IHJlYXNvbiA9ICd3aGVlbGhvdXNlLXJlcGFyc2UtcG9pbnQnIH0NCiAgICB9DQogICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHByb29mUGF0aCAtUGF0aFR5cGUgTGVh
ZikpIHsNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9ICdkb2N1bWVudC1t
Y3AnOyByZWFkeSA9ICRmYWxzZTsgc3RhdHVzID0gJ2ludmFsaWQnOyBjYW5vbmljYWxQYXRoID0g
JGNhbm9uaWNhbFBhdGg7IHJlYXNvbiA9ICd3aGVlbGhvdXNlLXByb29mLW1pc3NpbmcnIH0NCiAg
ICB9DQoNCiAgICB0cnkgew0KICAgICAgICAkcHJvb2YgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRw
cm9vZlBhdGgNCiAgICAgICAgJGV4cGVjdGVkTG9ja1NoYSA9IEdldC1Tb3VsU2hhMjU2IC1QYXRo
ICRSZXF1aXJlbWVudHNMb2NrUGF0aA0KICAgICAgICBpZiAoW3N0cmluZ10kcHJvb2YucmVxdWly
ZW1lbnRzTG9ja1NoYTI1NiAtY25lICRleHBlY3RlZExvY2tTaGEgLW9yDQogICAgICAgICAgICBb
c3RyaW5nXSRwcm9vZi5weXRob25WZXJzaW9uIC1jbmUgW3N0cmluZ10kUnVudGltZVJlY29yZC5w
eXRob25WZXJzaW9uKSB7DQogICAgICAgICAgICB0aHJvdyAnd2hlZWxob3VzZSBwcm9vZiBsb2Nr
IG1pc21hdGNoJw0KICAgICAgICB9DQogICAgICAgICR3aGVlbFJvb3QgPSBKb2luLVBhdGggJGNh
bm9uaWNhbFBhdGggJ3doZWVscycNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJh
bFBhdGggJHdoZWVsUm9vdCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyB0aHJvdyAnd2hlZWwgZGly
ZWN0b3J5IG1pc3NpbmcnIH0NCiAgICAgICAgJHdoZWVsRmlsZXMgPSBAKEdldC1DaGlsZEl0ZW0g
LUxpdGVyYWxQYXRoICR3aGVlbFJvb3QgLUZpbHRlciAnKi53aGwnIC1GaWxlIC1Gb3JjZSAtRXJy
b3JBY3Rpb24gU3RvcCB8IFNvcnQtT2JqZWN0IE5hbWUpDQogICAgICAgICRwcm9vZkZpbGVzID0g
QCgkcHJvb2YuZmlsZXMpDQogICAgICAgIGlmICgkd2hlZWxGaWxlcy5Db3VudCAtbmUgW2ludF0k
UnVudGltZVJlY29yZC5leHBlY3RlZFBhY2thZ2VDb3VudCAtb3IgJHByb29mRmlsZXMuQ291bnQg
LW5lICR3aGVlbEZpbGVzLkNvdW50KSB7DQogICAgICAgICAgICB0aHJvdyAnd2hlZWwgY291bnQg
bWlzbWF0Y2gnDQogICAgICAgIH0NCiAgICAgICAgZm9yICgkaW5kZXggPSAwOyAkaW5kZXggLWx0
ICR3aGVlbEZpbGVzLkNvdW50OyAkaW5kZXgrKykgew0KICAgICAgICAgICAgJGZpbGUgPSAkd2hl
ZWxGaWxlc1skaW5kZXhdDQogICAgICAgICAgICBpZiAoKCRmaWxlLkF0dHJpYnV0ZXMgLWJhbmQg
W0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCAtb3INCiAgICAgICAgICAg
ICAgICBbc3RyaW5nXSRwcm9vZkZpbGVzWyRpbmRleF0ubmFtZSAtY25lICRmaWxlLk5hbWUgLW9y
DQogICAgICAgICAgICAgICAgW2xvbmddJHByb29mRmlsZXNbJGluZGV4XS5sZW5ndGggLW5lIFts
b25nXSRmaWxlLkxlbmd0aCAtb3INCiAgICAgICAgICAgICAgICBbc3RyaW5nXSRwcm9vZkZpbGVz
WyRpbmRleF0uc2hhMjU2IC1jbmUgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRmaWxlLkZ1bGxOYW1l
KSkgew0KICAgICAgICAgICAgICAgIHRocm93ICd3aGVlbCBpbnZlbnRvcnkgbWlzbWF0Y2gnDQog
ICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1A
eyBpZCA9ICdkb2N1bWVudC1tY3AnOyByZWFkeSA9ICR0cnVlOyBzdGF0dXMgPSAndmVyaWZpZWQt
ZXhpc3RpbmcnOyBjYW5vbmljYWxQYXRoID0gJGNhbm9uaWNhbFBhdGg7IHJlYXNvbiA9ICRudWxs
OyB3aGVlbENvdW50ID0gJHdoZWVsRmlsZXMuQ291bnQgfQ0KICAgIH0gY2F0Y2ggew0KICAgICAg
ICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJ2RvY3VtZW50LW1jcCc7IHJlYWR5ID0g
JGZhbHNlOyBzdGF0dXMgPSAnaW52YWxpZCc7IGNhbm9uaWNhbFBhdGggPSAkY2Fub25pY2FsUGF0
aDsgcmVhc29uID0gJF8uRXhjZXB0aW9uLk1lc3NhZ2UgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24g
UHJlcGFyZS1Eb2N1bWVudFdoZWVsaG91c2Ugew0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1l
dGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUm9vdCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRv
cnkpXSRSdW50aW1lUmVjb3JkLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmlu
Z10kUmVxdWlyZW1lbnRzTG9ja1BhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1b
c3RyaW5nXSRUcmFuc2FjdGlvblJvb3QsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1b
c3RyaW5nXSRQaXBDYWNoZQ0KICAgICkNCg0KICAgICRzdGF0dXMgPSBHZXQtRG9jdW1lbnRXaGVl
bGhvdXNlU3RhdHVzIC1Sb290ICRSb290IC1SdW50aW1lUmVjb3JkICRSdW50aW1lUmVjb3JkIC1S
ZXF1aXJlbWVudHNMb2NrUGF0aCAkUmVxdWlyZW1lbnRzTG9ja1BhdGgNCiAgICBpZiAoJHN0YXR1
cy5yZWFkeSkgeyByZXR1cm4gJHN0YXR1cyB9DQogICAgaWYgKFtzdHJpbmddJHN0YXR1cy5zdGF0
dXMgLWVxICdpbnZhbGlkJykgew0KICAgICAgICB0aHJvdyAiVGhlIGV4aXN0aW5nIGRvY3VtZW50
IE1DUCB3aGVlbGhvdXNlIGlzIGluY29tcGxldGUgb3IgZGlmZmVyZW50IGFuZCB3YXMgcHJlc2Vy
dmVkOiAkKCRzdGF0dXMucmVhc29uKSINCiAgICB9DQoNCiAgICAkcHl0aG9uID0gR2V0LVB5dGhv
bjMxMkludm9jYXRpb24NCiAgICAkaXRlbVN0YWdlID0gSm9pbi1QYXRoICRUcmFuc2FjdGlvblJv
b3QgJ2RvY3VtZW50LW1jcC13aGVlbGhvdXNlJw0KICAgICRwcmVwYXJlZCA9IEpvaW4tUGF0aCAk
aXRlbVN0YWdlICdwcmVwYXJlZCcNCiAgICAkd2hlZWxzID0gSm9pbi1QYXRoICRwcmVwYXJlZCAn
d2hlZWxzJw0KICAgIFt2b2lkXShOZXctU2V0dXBDb250YWluZXIgLVBhdGggJGl0ZW1TdGFnZSAt
VGl0bGUgJ0RvY3VtZW50IE1DUCB3aGVlbGhvdXNlIHRyYW5zYWN0aW9uJykNCiAgICBbdm9pZF0o
TmV3LVNldHVwQ29udGFpbmVyIC1QYXRoICRwcmVwYXJlZCAtVGl0bGUgJ0RvY3VtZW50IE1DUCBw
b3J0YWJsZSB3aGVlbGhvdXNlJykNCiAgICBbdm9pZF0oTmV3LVNldHVwQ29udGFpbmVyIC1QYXRo
ICR3aGVlbHMgLVRpdGxlICdEb2N1bWVudCBNQ1AgbG9ja2VkIHdoZWVscycpDQoNCiAgICAkc2F2
ZWRQaXBDYWNoZSA9IFtFbnZpcm9ubWVudF06OkdldEVudmlyb25tZW50VmFyaWFibGUoJ1BJUF9D
QUNIRV9ESVInLCAnUHJvY2VzcycpDQogICAgdHJ5IHsNCiAgICAgICAgW0Vudmlyb25tZW50XTo6
U2V0RW52aXJvbm1lbnRWYXJpYWJsZSgnUElQX0NBQ0hFX0RJUicsICRQaXBDYWNoZSwgJ1Byb2Nl
c3MnKQ0KICAgICAgICAkYXJndW1lbnRzID0gQCgkcHl0aG9uLnByZWZpeCArIEAoDQogICAgICAg
ICAgICAnLW0nLCAncGlwJywgJ2Rvd25sb2FkJywNCiAgICAgICAgICAgICctLXJlcXVpcmUtaGFz
aGVzJywgJy0tb25seS1iaW5hcnk9OmFsbDonLCAnLS1kaXNhYmxlLXBpcC12ZXJzaW9uLWNoZWNr
JywNCiAgICAgICAgICAgICctLWRlc3QnLCAkd2hlZWxzLCAnLS1yZXF1aXJlbWVudCcsICRSZXF1
aXJlbWVudHNMb2NrUGF0aA0KICAgICAgICApKQ0KICAgICAgICBbdm9pZF0oSW52b2tlLUNoZWNr
ZWRBcHBsaWNhdGlvbiAtRmlsZVBhdGggJHB5dGhvbi5wYXRoIC1Bcmd1bWVudExpc3QgJGFyZ3Vt
ZW50cykNCiAgICB9IGZpbmFsbHkgew0KICAgICAgICBbRW52aXJvbm1lbnRdOjpTZXRFbnZpcm9u
bWVudFZhcmlhYmxlKCdQSVBfQ0FDSEVfRElSJywgJHNhdmVkUGlwQ2FjaGUsICdQcm9jZXNzJykN
CiAgICB9DQoNCiAgICAkbG9ja1RleHQgPSBbSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRSZXF1aXJl
bWVudHNMb2NrUGF0aCwgKE5ldy1PYmplY3QgVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKSkpDQog
ICAgJGFsbG93ZWRIYXNoZXMgPSBAe30NCiAgICBmb3JlYWNoICgkbWF0Y2ggaW4gW3JlZ2V4XTo6
TWF0Y2hlcygkbG9ja1RleHQsICcoP2kpLS1oYXNoPXNoYTI1NjooWzAtOWEtZl17NjR9KScpKSB7
DQogICAgICAgICRhbGxvd2VkSGFzaGVzWyRtYXRjaC5Hcm91cHNbMV0uVmFsdWUuVG9Mb3dlcklu
dmFyaWFudCgpXSA9ICR0cnVlDQogICAgfQ0KICAgICR3aGVlbEZpbGVzID0gQChHZXQtQ2hpbGRJ
dGVtIC1MaXRlcmFsUGF0aCAkd2hlZWxzIC1GaWx0ZXIgJyoud2hsJyAtRmlsZSAtRm9yY2UgLUVy
cm9yQWN0aW9uIFN0b3AgfCBTb3J0LU9iamVjdCBOYW1lKQ0KICAgIGlmICgkd2hlZWxGaWxlcy5D
b3VudCAtbmUgW2ludF0kUnVudGltZVJlY29yZC5leHBlY3RlZFBhY2thZ2VDb3VudCkgew0KICAg
ICAgICB0aHJvdyAiRG9jdW1lbnQgTUNQIHdoZWVsIGNvdW50IG1pc21hdGNoOiBleHBlY3RlZCAk
KCRSdW50aW1lUmVjb3JkLmV4cGVjdGVkUGFja2FnZUNvdW50KSwgZm91bmQgJCgkd2hlZWxGaWxl
cy5Db3VudCkuIg0KICAgIH0NCiAgICAkaW52ZW50b3J5ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29s
bGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICBmb3JlYWNoICgkZmlsZSBpbiAkd2hl
ZWxGaWxlcykgew0KICAgICAgICBpZiAoKCRmaWxlLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVB
dHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAiV2hlZWwgaXMgYSByZXBh
cnNlIHBvaW50OiAkKCRmaWxlLk5hbWUpIiB9DQogICAgICAgICRzaGEgPSAoR2V0LVNvdWxTaGEy
NTYgLVBhdGggJGZpbGUuRnVsbE5hbWUpLlRvTG93ZXJJbnZhcmlhbnQoKQ0KICAgICAgICBpZiAo
LW5vdCAkYWxsb3dlZEhhc2hlcy5Db250YWluc0tleSgkc2hhKSkgeyB0aHJvdyAiRG93bmxvYWRl
ZCB3aGVlbCBoYXNoIGlzIGFic2VudCBmcm9tIHRoZSBsb2NrZWQgcmVxdWlyZW1lbnRzOiAkKCRm
aWxlLk5hbWUpIiB9DQogICAgICAgICRpbnZlbnRvcnkuQWRkKFtvcmRlcmVkXUB7IG5hbWUgPSAk
ZmlsZS5OYW1lOyBsZW5ndGggPSBbbG9uZ10kZmlsZS5MZW5ndGg7IHNoYTI1NiA9ICRzaGEgfSkN
CiAgICB9DQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGgg
JHByZXBhcmVkICd3aGVlbGhvdXNlLXByb29mLmpzb24nKSAtVmFsdWUgKFtvcmRlcmVkXUB7DQog
ICAgICAgIHNjaGVtYVZlcnNpb24gPSAxDQogICAgICAgIGlkID0gJ2RvY3VtZW50LW1jcCcNCiAg
ICAgICAgcHl0aG9uVmVyc2lvbiA9IFtzdHJpbmddJFJ1bnRpbWVSZWNvcmQucHl0aG9uVmVyc2lv
bg0KICAgICAgICByZXF1aXJlbWVudHNMb2NrU2hhMjU2ID0gR2V0LVNvdWxTaGEyNTYgLVBhdGgg
JFJlcXVpcmVtZW50c0xvY2tQYXRoDQogICAgICAgIGV4cGVjdGVkUGFja2FnZUNvdW50ID0gW2lu
dF0kUnVudGltZVJlY29yZC5leHBlY3RlZFBhY2thZ2VDb3VudA0KICAgICAgICBmaWxlcyA9IEAo
JGludmVudG9yeS5Ub0FycmF5KCkpDQogICAgICAgIHByZXBhcmVkQXRVdGMgPSBbRGF0ZVRpbWVd
OjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgIH0pKQ0KDQogICAgUHVibGlzaC1OZXdDYW5vbmlj
YWxEaXJlY3RvcnkgLVByZXBhcmVkUGF0aCAkcHJlcGFyZWQgLUNhbm9uaWNhbFBhdGggKFtzdHJp
bmddJHN0YXR1cy5jYW5vbmljYWxQYXRoKQ0KICAgICR2ZXJpZmllZCA9IEdldC1Eb2N1bWVudFdo
ZWVsaG91c2VTdGF0dXMgLVJvb3QgJFJvb3QgLVJ1bnRpbWVSZWNvcmQgJFJ1bnRpbWVSZWNvcmQg
LVJlcXVpcmVtZW50c0xvY2tQYXRoICRSZXF1aXJlbWVudHNMb2NrUGF0aA0KICAgIGlmICgtbm90
ICR2ZXJpZmllZC5yZWFkeSkgeyB0aHJvdyAiUHVibGlzaGVkIGRvY3VtZW50IE1DUCB3aGVlbGhv
dXNlIHZlcmlmaWNhdGlvbiBmYWlsZWQ6ICQoJHZlcmlmaWVkLnJlYXNvbikiIH0NCiAgICByZXR1
cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gJ2RvY3VtZW50LW1jcCc7IHJlYWR5ID0gJHRydWU7
IHN0YXR1cyA9ICdwcmVwYXJlZCc7IGNhbm9uaWNhbFBhdGggPSAkdmVyaWZpZWQuY2Fub25pY2Fs
UGF0aDsgd2hlZWxDb3VudCA9ICR2ZXJpZmllZC53aGVlbENvdW50IH0NCn0NCg0KZnVuY3Rpb24g
SW52b2tlLUNoZWNrZWRBcHBsaWNhdGlvbiB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0
ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRGaWxlUGF0aCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5k
YXRvcnkpXVtzdHJpbmdbXV0kQXJndW1lbnRMaXN0LA0KICAgICAgICBbc3RyaW5nXSRXb3JraW5n
RGlyZWN0b3J5DQogICAgKQ0KDQogICAgJG9sZExvY2F0aW9uID0gJG51bGwNCiAgICBpZiAoLW5v
dCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRXb3JraW5nRGlyZWN0b3J5KSkgew0KICAg
ICAgICAkb2xkTG9jYXRpb24gPSBHZXQtTG9jYXRpb24NCiAgICAgICAgU2V0LUxvY2F0aW9uIC1M
aXRlcmFsUGF0aCAkV29ya2luZ0RpcmVjdG9yeQ0KICAgIH0NCiAgICAkc2F2ZWRFcnJvckFjdGlv
biA9ICRFcnJvckFjdGlvblByZWZlcmVuY2UNCiAgICB0cnkgew0KICAgICAgICAjIFdpbmRvd3Mg
UG93ZXJTaGVsbCA1LjEgd3JhcHMgbmF0aXZlIHN0ZGVyciBhcyBFcnJvclJlY29yZC4gTWFueSBo
ZWFsdGh5DQogICAgICAgICMgdG9vbHMgKG5vdGFibHkgbnBtKSBwcmludCBub3RpY2VzIHRoZXJl
LCBzbyB0cnVzdCB0aGUgcHJvY2VzcyBleGl0IGNvZGUuDQogICAgICAgICRFcnJvckFjdGlvblBy
ZWZlcmVuY2UgPSAnQ29udGludWUnDQogICAgICAgICRvdXRwdXQgPSBAKCYgJEZpbGVQYXRoIEBB
cmd1bWVudExpc3QgMj4mMSkNCiAgICAgICAgJGV4aXRDb2RlID0gJExBU1RFWElUQ09ERQ0KICAg
IH0gZmluYWxseSB7DQogICAgICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAkc2F2ZWRFcnJv
ckFjdGlvbg0KICAgICAgICBpZiAoJG51bGwgLW5lICRvbGRMb2NhdGlvbikgeyBTZXQtTG9jYXRp
b24gLUxpdGVyYWxQYXRoICRvbGRMb2NhdGlvbi5QYXRoIH0NCiAgICB9DQogICAgaWYgKCRleGl0
Q29kZSAtbmUgMCkgew0KICAgICAgICAkc2FmZU91dHB1dCA9ICgkb3V0cHV0IHwgU2VsZWN0LU9i
amVjdCAtTGFzdCAyMCkgLWpvaW4gW0Vudmlyb25tZW50XTo6TmV3TGluZQ0KICAgICAgICB0aHJv
dyAiJEZpbGVQYXRoIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAkZXhpdENvZGUuYG4kc2FmZU91dHB1
dCINCiAgICB9DQogICAgcmV0dXJuIEAoJG91dHB1dCkNCn0NCg0KZnVuY3Rpb24gR2V0LUZpbGVT
aGE1MTJCYXNlNjQgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQ
YXRoKQ0KDQogICAgJHN0cmVhbSA9IFtJTy5GaWxlXTo6T3BlbigkUGF0aCwgW0lPLkZpbGVNb2Rl
XTo6T3BlbiwgW0lPLkZpbGVBY2Nlc3NdOjpSZWFkLCBbSU8uRmlsZVNoYXJlXTo6UmVhZCkNCiAg
ICAkYWxnb3JpdGhtID0gW1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEE1MTJdOjpDcmVhdGUoKQ0K
ICAgIHRyeSB7DQogICAgICAgIHJldHVybiBbQ29udmVydF06OlRvQmFzZTY0U3RyaW5nKCRhbGdv
cml0aG0uQ29tcHV0ZUhhc2goJHN0cmVhbSkpDQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAgJGFs
Z29yaXRobS5EaXNwb3NlKCkNCiAgICAgICAgJHN0cmVhbS5EaXNwb3NlKCkNCiAgICB9DQp9DQoN
CmZ1bmN0aW9uIFNhdmUtTG9ja2VkRG93bmxvYWQgew0KICAgIHBhcmFtKA0KICAgICAgICBbUGFy
YW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kVXJpLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRh
dG9yeSldW3N0cmluZ10kRGVzdGluYXRpb24sDQogICAgICAgIFtzdHJpbmddJFNoYTI1NiwNCiAg
ICAgICAgW3N0cmluZ10kSW50ZWdyaXR5DQogICAgKQ0KDQogICAgW3ZvaWRdKEFzc2VydC1Tb3Vs
T3duZWRQYXRoIC1QYXRoICREZXN0aW5hdGlvbikNCiAgICBJbnZva2UtV2ViUmVxdWVzdCAtVXNl
QmFzaWNQYXJzaW5nIC1VcmkgJFVyaSAtT3V0RmlsZSAkRGVzdGluYXRpb24NCg0KICAgIGlmICgt
bm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFNoYTI1NikpIHsNCiAgICAgICAgJGFj
dHVhbFNoYTI1NiA9IEdldC1Tb3VsU2hhMjU2IC1QYXRoICREZXN0aW5hdGlvbg0KICAgICAgICBp
ZiAoLW5vdCAkYWN0dWFsU2hhMjU2LkVxdWFscygkU2hhMjU2LCBbU3RyaW5nQ29tcGFyaXNvbl06
Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgICAgICAgICAgdGhyb3cgIlNIQS0yNTYgbWlzbWF0
Y2ggZm9yICRVcmkiDQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKC1ub3QgW3N0cmluZ106Oklz
TnVsbE9yV2hpdGVTcGFjZSgkSW50ZWdyaXR5KSkgew0KICAgICAgICBpZiAoLW5vdCAkSW50ZWdy
aXR5LlN0YXJ0c1dpdGgoJ3NoYTUxMi0nLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7
DQogICAgICAgICAgICB0aHJvdyAiVW5zdXBwb3J0ZWQgbnBtIGludGVncml0eSBhbGdvcml0aG0g
Zm9yICRVcmkiDQogICAgICAgIH0NCiAgICAgICAgJGV4cGVjdGVkID0gJEludGVncml0eS5TdWJz
dHJpbmcoNykNCiAgICAgICAgJGFjdHVhbCA9IEdldC1GaWxlU2hhNTEyQmFzZTY0IC1QYXRoICRE
ZXN0aW5hdGlvbg0KICAgICAgICBpZiAoJGFjdHVhbCAtY25lICRleHBlY3RlZCkgeyB0aHJvdyAi
U0hBLTUxMiBpbnRlZ3JpdHkgbWlzbWF0Y2ggZm9yICRVcmkiIH0NCiAgICB9DQp9DQoNCmZ1bmN0
aW9uIENvcHktVHJlZVdpdGhvdXRMaW5rcyB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0
ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRTb3VyY2UsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0
b3J5KV1bc3RyaW5nXSREZXN0aW5hdGlvbiwNCiAgICAgICAgW3N0cmluZ1tdXSRFeGNsdWRlZFRv
cExldmVsID0gQCgpDQogICAgKQ0KDQogICAgJHNvdXJjZVJvb3QgPSBbSU8uUGF0aF06OkdldEZ1
bGxQYXRoKCRTb3VyY2UpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgW3ZvaWRdKEFzc2VydC1Tb3Vs
T3duZWRQYXRoIC1QYXRoICRzb3VyY2VSb290KQ0KICAgIFt2b2lkXShBc3NlcnQtU291bE93bmVk
UGF0aCAtUGF0aCAkRGVzdGluYXRpb24pDQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0
ZURpcmVjdG9yeSgkRGVzdGluYXRpb24pDQoNCiAgICAkcXVldWUgPSBOZXctT2JqZWN0ICdTeXN0
ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5RdWV1ZVtvYmplY3RdJw0KICAgICRxdWV1ZS5FbnF1ZXVl
KFtwc2N1c3RvbW9iamVjdF1AeyBTb3VyY2UgPSAkc291cmNlUm9vdDsgRGVzdGluYXRpb24gPSAk
RGVzdGluYXRpb247IERlcHRoID0gMCB9KQ0KICAgIHdoaWxlICgkcXVldWUuQ291bnQgLWd0IDAp
IHsNCiAgICAgICAgJGN1cnJlbnQgPSAkcXVldWUuRGVxdWV1ZSgpDQogICAgICAgIGZvcmVhY2gg
KCRpdGVtIGluIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRjdXJyZW50LlNvdXJjZSAtRm9y
Y2UgLUVycm9yQWN0aW9uIFN0b3ApIHsNCiAgICAgICAgICAgIGlmICgkY3VycmVudC5EZXB0aCAt
ZXEgMCAtYW5kICRFeGNsdWRlZFRvcExldmVsIC1jb250YWlucyAkaXRlbS5OYW1lKSB7IGNvbnRp
bnVlIH0NCiAgICAgICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0
dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAgICAgICAgICAgdGhyb3cg
IlJlcGFyc2UgcG9pbnRzIGFyZSBub3QgcHVibGlzaGVkIGFzIGNhbm9uaWNhbCBzb3VyY2U6ICQo
JGl0ZW0uRnVsbE5hbWUpIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHRhcmdldCA9IEpv
aW4tUGF0aCAkY3VycmVudC5EZXN0aW5hdGlvbiAkaXRlbS5OYW1lDQogICAgICAgICAgICBbdm9p
ZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHRhcmdldCkNCiAgICAgICAgICAgIGlmICgk
aXRlbS5QU0lzQ29udGFpbmVyKSB7DQogICAgICAgICAgICAgICAgW3ZvaWRdW0lPLkRpcmVjdG9y
eV06OkNyZWF0ZURpcmVjdG9yeSgkdGFyZ2V0KQ0KICAgICAgICAgICAgICAgICRxdWV1ZS5FbnF1
ZXVlKFtwc2N1c3RvbW9iamVjdF1AeyBTb3VyY2UgPSAkaXRlbS5GdWxsTmFtZTsgRGVzdGluYXRp
b24gPSAkdGFyZ2V0OyBEZXB0aCA9IChbaW50XSRjdXJyZW50LkRlcHRoICsgMSkgfSkNCiAgICAg
ICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgJGlucHV0ID0gW0lPLkZpbGVdOjpPcGVu
KCRpdGVtLkZ1bGxOYW1lLCBbSU8uRmlsZU1vZGVdOjpPcGVuLCBbSU8uRmlsZUFjY2Vzc106OlJl
YWQsIFtJTy5GaWxlU2hhcmVdOjpSZWFkKQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAg
ICAgICAgICAgICAgICRvdXRwdXQgPSBbSU8uRmlsZV06Ok9wZW4oJHRhcmdldCwgW0lPLkZpbGVN
b2RlXTo6Q3JlYXRlTmV3LCBbSU8uRmlsZUFjY2Vzc106OldyaXRlLCBbSU8uRmlsZVNoYXJlXTo6
Tm9uZSkNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgJGlucHV0LkNvcHlUbygkb3V0cHV0KTsg
JG91dHB1dC5GbHVzaCgkdHJ1ZSkgfSBmaW5hbGx5IHsgJG91dHB1dC5EaXNwb3NlKCkgfQ0KICAg
ICAgICAgICAgICAgIH0gZmluYWxseSB7ICRpbnB1dC5EaXNwb3NlKCkgfQ0KICAgICAgICAgICAg
fQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBQdWJsaXNoLU5ld0Nhbm9uaWNhbERp
cmVjdG9yeSB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3Ry
aW5nXSRQcmVwYXJlZFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5n
XSRDYW5vbmljYWxQYXRoDQogICAgKQ0KDQogICAgW3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQYXRo
IC1QYXRoICRQcmVwYXJlZFBhdGgpDQogICAgW3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQYXRoIC1Q
YXRoICRDYW5vbmljYWxQYXRoKQ0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRDYW5v
bmljYWxQYXRoKSB7DQogICAgICAgIHRocm93ICJDYW5vbmljYWwgcGF0aCBhcHBlYXJlZCBkdXJp
bmcgcHJlcGFyYXRpb247IGl0IHdpbGwgbm90IGJlIG92ZXJ3cml0dGVuOiAkQ2Fub25pY2FsUGF0
aCINCiAgICB9DQogICAgJHBhcmVudCA9IFNwbGl0LVBhdGggLVBhcmVudCAkQ2Fub25pY2FsUGF0
aA0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXJlbnQgLVBhdGhUeXBl
IENvbnRhaW5lcikpIHsNCiAgICAgICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVj
dG9yeSgkcGFyZW50KQ0KICAgIH0NCiAgICBbSU8uRGlyZWN0b3J5XTo6TW92ZSgkUHJlcGFyZWRQ
YXRoLCAkQ2Fub25pY2FsUGF0aCkNCn0NCg0KZnVuY3Rpb24gSW5pdGlhbGl6ZS1DYW5vbmljYWxQ
YXJlbnRDb250YWluZXJzIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRv
cnkpXVtzdHJpbmddJFJvb3QsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5n
XSRDYW5vbmljYWxSZWxhdGl2ZVBhdGgNCiAgICApDQoNCiAgICAkbm9ybWFsaXplZCA9ICRDYW5v
bmljYWxSZWxhdGl2ZVBhdGguUmVwbGFjZSgnLycsICdcJykuVHJpbSgnXCcpDQogICAgJHNlZ21l
bnRzID0gQCgkbm9ybWFsaXplZCAtc3BsaXQgJ1xcJykNCiAgICBpZiAoJHNlZ21lbnRzLkNvdW50
IC1sdCAyKSB7IHRocm93ICJDYW5vbmljYWwgcGF0aCBoYXMgbm8gbWFuYWdlZCBwYXJlbnQ6ICRD
YW5vbmljYWxSZWxhdGl2ZVBhdGgiIH0NCiAgICAkY3Vyc29yID0gJFJvb3QNCiAgICBmb3IgKCRp
bmRleCA9IDA7ICRpbmRleCAtbHQgKCRzZWdtZW50cy5Db3VudCAtIDEpOyAkaW5kZXgrKykgew0K
ICAgICAgICAkY3Vyc29yID0gSm9pbi1QYXRoICRjdXJzb3IgJHNlZ21lbnRzWyRpbmRleF0NCiAg
ICAgICAgW3ZvaWRdKE5ldy1TZXR1cENvbnRhaW5lciAtUGF0aCAkY3Vyc29yIC1UaXRsZSAoJ1Bv
cnRhYmxlICcgKyAkc2VnbWVudHNbJGluZGV4XSArICcgY29udGFpbmVyJykpDQogICAgfQ0KfQ0K
DQpmdW5jdGlvbiBHZXQtQ2Fub25pY2FsU291cmNlU3RhdHVzIHsNCiAgICBwYXJhbShbUGFyYW1l
dGVyKE1hbmRhdG9yeSldJFJlY29yZCwgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFJv
b3QpDQoNCiAgICAkcmVsYXRpdmUgPSBbc3RyaW5nXSRSZWNvcmQuY2Fub25pY2FsUmVsYXRpdmVQ
YXRoDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHJlbGF0aXZlKSkgeyBy
ZXR1cm4gJG51bGwgfQ0KICAgICRwYXRoID0gSm9pbi1QYXRoICRSb290ICgkcmVsYXRpdmUuUmVw
bGFjZSgnLycsICdcJykpDQogICAgW3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQYXRoIC1QYXRoICRw
YXRoKQ0KICAgICRleGlzdHMgPSBUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXRoIC1QYXRoVHlw
ZSBDb250YWluZXINCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIGlkID0g
W3N0cmluZ10kUmVjb3JkLmlkDQogICAgICAgIHJlbGF0aXZlUGF0aCA9ICRyZWxhdGl2ZQ0KICAg
ICAgICBjYW5vbmljYWxQYXRoID0gJHBhdGgNCiAgICAgICAgZXhpc3RzID0gJGV4aXN0cw0KICAg
ICAgICBhY3Rpb24gPSAkKGlmICgkZXhpc3RzKSB7ICdwcmVzZXJ2ZS1hbmQtdmVyaWZ5JyB9IGVs
c2UgeyAncHJlcGFyZS1uZXctY29weScgfSkNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1TdGFi
bGVUcmVlRGlnZXN0IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10k
UGF0aCkNCg0KICAgICRpbnZlbnRvcnkgPSBAKEdldC1Tb3VsVHJlZUludmVudG9yeSAtUGF0aCAk
UGF0aCkNCiAgICBpZiAoQCgkaW52ZW50b3J5IHwgV2hlcmUtT2JqZWN0IHsgLW5vdCAkXy5zdGFi
bGUgLW9yICRfLmtpbmQgLWVxICdyZXBhcnNlLWJsb2NrZWQnIH0pLkNvdW50IC1ndCAwKSB7DQog
ICAgICAgIHRocm93ICJDYW5vbmljYWwgc291cmNlIGlzIHVuc3RhYmxlIG9yIGNvbnRhaW5zIGEg
cmVwYXJzZSBwb2ludDogJFBhdGgiDQogICAgfQ0KICAgICRyb3dzID0gQCgkaW52ZW50b3J5IHwg
V2hlcmUtT2JqZWN0IHsgJF8ua2luZCAtZXEgJ2ZpbGUnIH0gfCBTb3J0LU9iamVjdCBwYXRoIHwg
Rm9yRWFjaC1PYmplY3Qgew0KICAgICAgICAnezB9fHsxfXx7Mn0nIC1mICRfLnBhdGgsICRfLmxl
bmd0aCwgJF8uc2hhMjU2DQogICAgfSkNCiAgICAkYnl0ZXMgPSBbVGV4dC5FbmNvZGluZ106OlVU
RjguR2V0Qnl0ZXMoKCRyb3dzIC1qb2luICJgbiIpKQ0KICAgICRhbGdvcml0aG0gPSBbU2VjdXJp
dHkuQ3J5cHRvZ3JhcGh5LlNIQTI1Nl06OkNyZWF0ZSgpDQogICAgdHJ5IHsgJGhhc2ggPSAoW0Jp
dENvbnZlcnRlcl06OlRvU3RyaW5nKCRhbGdvcml0aG0uQ29tcHV0ZUhhc2goJGJ5dGVzKSkpLlJl
cGxhY2UoJy0nLCAnJykuVG9Mb3dlckludmFyaWFudCgpIH0NCiAgICBmaW5hbGx5IHsgJGFsZ29y
aXRobS5EaXNwb3NlKCkgfQ0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgc2hhMjU2ID0g
JGhhc2g7IGVudHJ5Q291bnQgPSAkaW52ZW50b3J5LkNvdW50OyBpbnZlbnRvcnkgPSAkaW52ZW50
b3J5IH0NCn0NCg0KZnVuY3Rpb24gR2V0LVBheWxvYWREaWdlc3RGb3JQcm9vZiB7DQogICAgcGFy
YW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFBhdGgpDQoNCiAgICAkaW52ZW50b3J5
ID0gQChHZXQtU291bFRyZWVJbnZlbnRvcnkgLVBhdGggJFBhdGggfCBXaGVyZS1PYmplY3QgeyAk
Xy5wYXRoIC1uZSAnc291cmNlLXByb29mLmpzb24nIH0pDQogICAgaWYgKEAoJGludmVudG9yeSB8
IFdoZXJlLU9iamVjdCB7IC1ub3QgJF8uc3RhYmxlIC1vciAkXy5raW5kIC1lcSAncmVwYXJzZS1i
bG9ja2VkJyB9KS5Db3VudCAtZ3QgMCkgew0KICAgICAgICB0aHJvdyAiU291cmNlIHBheWxvYWQg
aXMgdW5zdGFibGUgb3IgY29udGFpbnMgYSByZXBhcnNlIHBvaW50OiAkUGF0aCINCiAgICB9DQog
ICAgJHJvd3MgPSBAKCRpbnZlbnRvcnkgfCBGb3JFYWNoLU9iamVjdCB7ICd7MH18ezF9fHsyfXx7
M30nIC1mICRfLnBhdGgsICRfLmtpbmQsICRfLmxlbmd0aCwgJF8uc2hhMjU2IH0pDQogICAgJGFs
Z29yaXRobSA9IFtTZWN1cml0eS5DcnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkNCiAgICB0
cnkgew0KICAgICAgICAkYnl0ZXMgPSBbVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoKCRy
b3dzIC1qb2luICJgbiIpKQ0KICAgICAgICByZXR1cm4gKFtCaXRDb252ZXJ0ZXJdOjpUb1N0cmlu
ZygkYWxnb3JpdGhtLkNvbXB1dGVIYXNoKCRieXRlcykpKS5SZXBsYWNlKCctJywgJycpLlRvTG93
ZXJJbnZhcmlhbnQoKQ0KICAgIH0gZmluYWxseSB7ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0NCn0N
Cg0KZnVuY3Rpb24gR2V0LVJlY29yZFBpbiB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRv
cnkpXSRSZWNvcmQpDQogICAgZm9yZWFjaCAoJG5hbWUgaW4gQCgnY29tbWl0JywgJ2ludGVncml0
eScsICdzaGEyNTYnLCAndmVyc2lvbicpKSB7DQogICAgICAgICRwcm9wZXJ0eSA9ICRSZWNvcmQu
UFNPYmplY3QuUHJvcGVydGllc1skbmFtZV0NCiAgICAgICAgaWYgKCRudWxsIC1uZSAkcHJvcGVy
dHkgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kcHJvcGVy
dHkuVmFsdWUpKSB7DQogICAgICAgICAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGtpbmQg
PSAkbmFtZTsgdmFsdWUgPSBbc3RyaW5nXSRwcm9wZXJ0eS5WYWx1ZSB9DQogICAgICAgIH0NCiAg
ICB9DQogICAgdGhyb3cgIk5vIGltbXV0YWJsZSBwaW4gaXMgYXZhaWxhYmxlIGZvciAkKCRSZWNv
cmQuaWQpLiINCn0NCg0KZnVuY3Rpb24gV3JpdGUtQ2Fub25pY2FsU291cmNlUHJvb2Ygew0KICAg
IHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldJFJlY29yZCwNCiAgICAgICAg
W1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJENhbm9uaWNhbFBhdGgsDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRTb3VyY2VMb2NrU2hhMjU2DQogICAgKQ0KDQog
ICAgJHByb29mUGF0aCA9IEpvaW4tUGF0aCAkQ2Fub25pY2FsUGF0aCAnc291cmNlLXByb29mLmpz
b24nDQogICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHByb29mUGF0aCkgeyB0aHJvdyAi
QSBzb3VyY2UgcHJvb2YgdW5leHBlY3RlZGx5IGFscmVhZHkgZXhpc3RzOiAkcHJvb2ZQYXRoIiB9
DQogICAgJHBpbiA9IEdldC1SZWNvcmRQaW4gLVJlY29yZCAkUmVjb3JkDQogICAgJHBheWxvYWRE
aWdlc3QgPSBHZXQtUGF5bG9hZERpZ2VzdEZvclByb29mIC1QYXRoICRDYW5vbmljYWxQYXRoDQog
ICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRwcm9vZlBhdGggLVZhbHVlIChb
b3JkZXJlZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBpZCA9IFtzdHJp
bmddJFJlY29yZC5pZA0KICAgICAgICBwaW5LaW5kID0gJHBpbi5raW5kDQogICAgICAgIHBpblZh
bHVlID0gJHBpbi52YWx1ZQ0KICAgICAgICBwYXlsb2FkVHJlZVNoYTI1NiA9ICRwYXlsb2FkRGln
ZXN0DQogICAgICAgIHNvdXJjZUxvY2tTaGEyNTYgPSAkU291cmNlTG9ja1NoYTI1Ng0KICAgICAg
ICBjcmVhdGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgIH0p
KQ0KICAgIHJldHVybiAkcGF5bG9hZERpZ2VzdA0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtUmVjb3Jk
U3BlY2lmaWNTb3VyY2Ugew0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9y
eSldJFJlY29yZCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJENhbm9u
aWNhbFBhdGgNCiAgICApDQoNCiAgICAkZW50cnlQcm9wZXJ0eSA9ICRSZWNvcmQuUFNPYmplY3Qu
UHJvcGVydGllc1snZW50cnknXQ0KICAgIGlmICgkbnVsbCAtbmUgJGVudHJ5UHJvcGVydHkgLWFu
ZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kZW50cnlQcm9wZXJ0
eS5WYWx1ZSkpIHsNCiAgICAgICAgJGVudHJ5ID0gSm9pbi1QYXRoICRDYW5vbmljYWxQYXRoIChb
c3RyaW5nXSRlbnRyeVByb3BlcnR5LlZhbHVlKS5SZXBsYWNlKCcvJywgJ1wnKQ0KICAgICAgICBp
ZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZW50cnkgLVBhdGhUeXBlIExlYWYpKSB7
IHRocm93ICJSZXF1aXJlZCBzb3VyY2UgZW50cnkgaXMgbWlzc2luZyBmb3IgJCgkUmVjb3JkLmlk
KSIgfQ0KICAgIH0NCiAgICAkY291bnRQcm9wZXJ0eSA9ICRSZWNvcmQuUFNPYmplY3QuUHJvcGVy
dGllc1snZXhwZWN0ZWRTa2lsbENvdW50J10NCiAgICBpZiAoJG51bGwgLW5lICRjb3VudFByb3Bl
cnR5IC1hbmQgJG51bGwgLW5lICRjb3VudFByb3BlcnR5LlZhbHVlKSB7DQogICAgICAgICRza2ls
bENvdW50ID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkQ2Fub25pY2FsUGF0aCAtUmVj
dXJzZSAtRmlsZSAtRmlsdGVyICdTS0lMTC5tZCcgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wIHwN
CiAgICAgICAgICAgIFdoZXJlLU9iamVjdCB7ICgkXy5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxl
QXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLWVxIDAgfSkuQ291bnQNCiAgICAgICAgaWYgKCRz
a2lsbENvdW50IC1uZSBbaW50XSRjb3VudFByb3BlcnR5LlZhbHVlKSB7DQogICAgICAgICAgICB0
aHJvdyAiU2tpbGwgY291bnQgbWlzbWF0Y2ggZm9yICQoJFJlY29yZC5pZCk6IGV4cGVjdGVkICQo
JGNvdW50UHJvcGVydHkuVmFsdWUpLCBmb3VuZCAkc2tpbGxDb3VudCINCiAgICAgICAgfQ0KICAg
IH0NCn0NCg0KZnVuY3Rpb24gSW5zdGFsbC1HaXRTbmFwc2hvdCB7DQogICAgcGFyYW0oDQogICAg
ICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kUmVjb3JkLA0KICAgICAgICBbUGFyYW1ldGVyKE1h
bmRhdG9yeSldW3N0cmluZ10kSXRlbVN0YWdlLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9y
eSldW3N0cmluZ10kQ2Fub25pY2FsUGF0aCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkp
XVtzdHJpbmddJFNvdXJjZUxvY2tTaGEyNTYNCiAgICApDQoNCiAgICBpZiAoLW5vdCAoVGVzdC1D
b21tYW5kQXZhaWxhYmxlIC1OYW1lICdnaXQuZXhlJykpIHsgdGhyb3cgJ0dpdCBpcyByZXF1aXJl
ZCB0byBwcmVwYXJlIEdpdEh1YiBzb3VyY2VzLicgfQ0KICAgICRyZXBvc2l0b3J5ID0gSm9pbi1Q
YXRoICRJdGVtU3RhZ2UgJ3JlcG9zaXRvcnknDQogICAgJHBheWxvYWQgPSBKb2luLVBhdGggJEl0
ZW1TdGFnZSAncGF5bG9hZCcNCiAgICBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0
b3J5KCRyZXBvc2l0b3J5KQ0KICAgIFt2b2lkXShJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1G
aWxlUGF0aCAnZ2l0LmV4ZScgLUFyZ3VtZW50TGlzdCBAKCctYycsJ2NvcmUuYXV0b2NybGY9ZmFs
c2UnLCctYycsJ2NvcmUuc3ltbGlua3M9ZmFsc2UnLCdpbml0JywnLS1xdWlldCcpIC1Xb3JraW5n
RGlyZWN0b3J5ICRyZXBvc2l0b3J5KQ0KICAgIFt2b2lkXShJbnZva2UtQ2hlY2tlZEFwcGxpY2F0
aW9uIC1GaWxlUGF0aCAnZ2l0LmV4ZScgLUFyZ3VtZW50TGlzdCBAKCdyZW1vdGUnLCdhZGQnLCdv
cmlnaW4nLFtzdHJpbmddJFJlY29yZC5zb3VyY2UpIC1Xb3JraW5nRGlyZWN0b3J5ICRyZXBvc2l0
b3J5KQ0KICAgIFt2b2lkXShJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1GaWxlUGF0aCAnZ2l0
LmV4ZScgLUFyZ3VtZW50TGlzdCBAKCctYycsJ3Byb3RvY29sLnZlcnNpb249MicsJ2ZldGNoJywn
LS1xdWlldCcsJy0tZGVwdGgnLCcxJywnb3JpZ2luJyxbc3RyaW5nXSRSZWNvcmQuY29tbWl0KSAt
V29ya2luZ0RpcmVjdG9yeSAkcmVwb3NpdG9yeSkNCiAgICBbdm9pZF0oSW52b2tlLUNoZWNrZWRB
cHBsaWNhdGlvbiAtRmlsZVBhdGggJ2dpdC5leGUnIC1Bcmd1bWVudExpc3QgQCgnLWMnLCdjb3Jl
LmF1dG9jcmxmPWZhbHNlJywnLWMnLCdjb3JlLnN5bWxpbmtzPWZhbHNlJywnY2hlY2tvdXQnLCct
LXF1aWV0JywnLS1kZXRhY2gnLCdGRVRDSF9IRUFEJykgLVdvcmtpbmdEaXJlY3RvcnkgJHJlcG9z
aXRvcnkpDQogICAgJGFjdHVhbENvbW1pdCA9ICgoSW52b2tlLUNoZWNrZWRBcHBsaWNhdGlvbiAt
RmlsZVBhdGggJ2dpdC5leGUnIC1Bcmd1bWVudExpc3QgQCgncmV2LXBhcnNlJywnSEVBRCcpIC1X
b3JraW5nRGlyZWN0b3J5ICRyZXBvc2l0b3J5KSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDEpLlRv
U3RyaW5nKCkuVHJpbSgpDQogICAgaWYgKCRhY3R1YWxDb21taXQgLWNuZSBbc3RyaW5nXSRSZWNv
cmQuY29tbWl0KSB7IHRocm93ICJDb21taXQgbWlzbWF0Y2ggZm9yICQoJFJlY29yZC5pZCkiIH0N
Cg0KICAgICRjb3B5Um9vdCA9ICRyZXBvc2l0b3J5DQogICAgJHN1YmRpclByb3BlcnR5ID0gJFJl
Y29yZC5QU09iamVjdC5Qcm9wZXJ0aWVzWydzdWJkaXInXQ0KICAgIGlmICgkbnVsbCAtbmUgJHN1
YmRpclByb3BlcnR5IC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJp
bmddJHN1YmRpclByb3BlcnR5LlZhbHVlKSkgew0KICAgICAgICAkY29weVJvb3QgPSBKb2luLVBh
dGggJHJlcG9zaXRvcnkgKFtzdHJpbmddJHN1YmRpclByb3BlcnR5LlZhbHVlKS5SZXBsYWNlKCcv
JywgJ1wnKQ0KICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY29weVJv
b3QgLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgIlBpbm5lZCBzdWJkaXJlY3Rvcnkgbm90
IGZvdW5kIGZvciAkKCRSZWNvcmQuaWQpIiB9DQogICAgfQ0KICAgIENvcHktVHJlZVdpdGhvdXRM
aW5rcyAtU291cmNlICRjb3B5Um9vdCAtRGVzdGluYXRpb24gJHBheWxvYWQgLUV4Y2x1ZGVkVG9w
TGV2ZWwgQCgnLmdpdCcpDQogICAgJHBheWxvYWRUcmVlU2hhMjU2ID0gV3JpdGUtQ2Fub25pY2Fs
U291cmNlUHJvb2YgLVJlY29yZCAkUmVjb3JkIC1DYW5vbmljYWxQYXRoICRwYXlsb2FkIC1Tb3Vy
Y2VMb2NrU2hhMjU2ICRTb3VyY2VMb2NrU2hhMjU2DQogICAgUHVibGlzaC1OZXdDYW5vbmljYWxE
aXJlY3RvcnkgLVByZXBhcmVkUGF0aCAkcGF5bG9hZCAtQ2Fub25pY2FsUGF0aCAkQ2Fub25pY2Fs
UGF0aA0KICAgIHJldHVybiBbb3JkZXJlZF1AeyBraW5kID0gJ2dpdCc7IGNvbW1pdCA9ICRhY3R1
YWxDb21taXQ7IHNvdXJjZSA9IFtzdHJpbmddJFJlY29yZC5zb3VyY2U7IHBheWxvYWRUcmVlU2hh
MjU2ID0gJHBheWxvYWRUcmVlU2hhMjU2IH0NCn0NCg0KZnVuY3Rpb24gSW5zdGFsbC1OcG1TbmFw
c2hvdCB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kUmVjb3Jk
LA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kSXRlbVN0YWdlLA0KICAg
ICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kQ2Fub25pY2FsUGF0aCwNCiAgICAg
ICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJE5wbUNhY2hlLA0KICAgICAgICBbUGFy
YW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kU291cmNlTG9ja1NoYTI1Ng0KICAgICkNCg0KICAg
IGlmICgtbm90IChUZXN0LUNvbW1hbmRBdmFpbGFibGUgLU5hbWUgJ25wbS5jbWQnKSkgeyB0aHJv
dyAnbnBtIGlzIHJlcXVpcmVkIHRvIHByZXBhcmUgbnBtIHNvdXJjZXMuJyB9DQogICAgZm9yZWFj
aCAoJHJlcXVpcmVkUHJvcGVydHkgaW4gQCgnbnBtUGFja2FnZUpzb25SZWxhdGl2ZVBhdGgnLCdu
cG1QYWNrYWdlSnNvblNoYTI1NicsJ25wbUxvY2tSZWxhdGl2ZVBhdGgnLCducG1Mb2NrU2hhMjU2
JykpIHsNCiAgICAgICAgJHByb3BlcnR5ID0gJFJlY29yZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRy
ZXF1aXJlZFByb3BlcnR5XQ0KICAgICAgICBpZiAoJG51bGwgLWVxICRwcm9wZXJ0eSAtb3IgW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRwcm9wZXJ0eS5WYWx1ZSkpIHsNCiAg
ICAgICAgICAgIHRocm93ICJUaGUgTlBNIGxvY2sgcmVjb3JkIGZvciAkKCRSZWNvcmQuaWQpIGxh
Y2tzICRyZXF1aXJlZFByb3BlcnR5LiINCiAgICAgICAgfQ0KICAgIH0NCg0KICAgICRwYWNrYWdl
U2lkZWNhciA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoKEpvaW4tUGF0aCAkUFNTY3JpcHRSb290
IChbc3RyaW5nXSRSZWNvcmQubnBtUGFja2FnZUpzb25SZWxhdGl2ZVBhdGgpLlJlcGxhY2UoJy8n
LCAnXCcpKSkNCiAgICAkbG9ja1NpZGVjYXIgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2lu
LVBhdGggJFBTU2NyaXB0Um9vdCAoW3N0cmluZ10kUmVjb3JkLm5wbUxvY2tSZWxhdGl2ZVBhdGgp
LlJlcGxhY2UoJy8nLCAnXCcpKSkNCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBh
dGggJHBhY2thZ2VTaWRlY2FyKQ0KICAgIFt2b2lkXShBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0
aCAkbG9ja1NpZGVjYXIpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBh
Y2thZ2VTaWRlY2FyIC1QYXRoVHlwZSBMZWFmKSAtb3INCiAgICAgICAgLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkbG9ja1NpZGVjYXIgLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgIHRo
cm93ICJFbWJlZGRlZCBOUE0gbG9jayBzaWRlY2FycyBhcmUgbWlzc2luZyBmb3IgJCgkUmVjb3Jk
LmlkKS4iDQogICAgfQ0KICAgIGlmICgtbm90IChHZXQtU291bFNoYTI1NiAtUGF0aCAkcGFja2Fn
ZVNpZGVjYXIpLkVxdWFscyhbc3RyaW5nXSRSZWNvcmQubnBtUGFja2FnZUpzb25TaGEyNTYsIFtT
dHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpIC1vcg0KICAgICAgICAtbm90IChH
ZXQtU291bFNoYTI1NiAtUGF0aCAkbG9ja1NpZGVjYXIpLkVxdWFscyhbc3RyaW5nXSRSZWNvcmQu
bnBtTG9ja1NoYTI1NiwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsN
CiAgICAgICAgdGhyb3cgIkVtYmVkZGVkIE5QTSBsb2NrIHNpZGVjYXIgaGFzaCBtaXNtYXRjaCBm
b3IgJCgkUmVjb3JkLmlkKS4iDQogICAgfQ0KDQogICAgJHRhcmJhbGwgPSBKb2luLVBhdGggJEl0
ZW1TdGFnZSAncGFja2FnZS50Z3onDQogICAgU2F2ZS1Mb2NrZWREb3dubG9hZCAtVXJpIChbc3Ry
aW5nXSRSZWNvcmQuc291cmNlKSAtRGVzdGluYXRpb24gJHRhcmJhbGwgLUludGVncml0eSAoW3N0
cmluZ10kUmVjb3JkLmludGVncml0eSkNCiAgICAkcGF5bG9hZCA9IEpvaW4tUGF0aCAkSXRlbVN0
YWdlICdwYXlsb2FkJw0KICAgIFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3Rvcnko
JHBheWxvYWQpDQogICAgW0lPLkZpbGVdOjpDb3B5KCRwYWNrYWdlU2lkZWNhciwgKEpvaW4tUGF0
aCAkcGF5bG9hZCAncGFja2FnZS5qc29uJyksICRmYWxzZSkNCiAgICBbSU8uRmlsZV06OkNvcHko
JGxvY2tTaWRlY2FyLCAoSm9pbi1QYXRoICRwYXlsb2FkICdwYWNrYWdlLWxvY2suanNvbicpLCAk
ZmFsc2UpDQoNCiAgICAkbG9ja1RleHQgPSBbSU8uRmlsZV06OlJlYWRBbGxUZXh0KChKb2luLVBh
dGggJHBheWxvYWQgJ3BhY2thZ2UtbG9jay5qc29uJyksIChOZXctT2JqZWN0IFRleHQuVVRGOEVu
Y29kaW5nKCRmYWxzZSkpKQ0KICAgIGlmICgkbG9ja1RleHQgLW5vdG1hdGNoIFtyZWdleF06OkVz
Y2FwZShbc3RyaW5nXSRSZWNvcmQuaW50ZWdyaXR5KSkgew0KICAgICAgICB0aHJvdyAiRW1iZWRk
ZWQgTlBNIGxvY2sgZG9lcyBub3QgY29udGFpbiB0aGUgZXhwZWN0ZWQgdG9wLXBhY2thZ2UgaW50
ZWdyaXR5IGZvciAkKCRSZWNvcmQuaWQpLiINCiAgICB9DQoNCiAgICAkc2F2ZWRDYWNoZSA9IFtF
bnZpcm9ubWVudF06OkdldEVudmlyb25tZW50VmFyaWFibGUoJ25wbV9jb25maWdfY2FjaGUnLCAn
UHJvY2VzcycpDQogICAgdHJ5IHsNCiAgICAgICAgW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1l
bnRWYXJpYWJsZSgnbnBtX2NvbmZpZ19jYWNoZScsICROcG1DYWNoZSwgJ1Byb2Nlc3MnKQ0KICAg
ICAgICBbdm9pZF0oSW52b2tlLUNoZWNrZWRBcHBsaWNhdGlvbiAtRmlsZVBhdGggJ25wbS5jbWQn
IC1Bcmd1bWVudExpc3QgQCgnY2knLCctLWlnbm9yZS1zY3JpcHRzJywnLS1uby1hdWRpdCcsJy0t
bm8tZnVuZCcpIC1Xb3JraW5nRGlyZWN0b3J5ICRwYXlsb2FkKQ0KICAgIH0gZmluYWxseSB7DQog
ICAgICAgIFtFbnZpcm9ubWVudF06OlNldEVudmlyb25tZW50VmFyaWFibGUoJ25wbV9jb25maWdf
Y2FjaGUnLCAkc2F2ZWRDYWNoZSwgJ1Byb2Nlc3MnKQ0KICAgIH0NCg0KICAgICRsb2NrUGF0aCA9
IEpvaW4tUGF0aCAkcGF5bG9hZCAncGFja2FnZS1sb2NrLmpzb24nDQogICAgaWYgKC1ub3QgKFRl
c3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxvY2tQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi
bnBtIGRpZCBub3QgY3JlYXRlIGEgbG9jayBmaWxlIGZvciAkKCRSZWNvcmQuaWQpIiB9DQogICAg
aWYgKC1ub3QgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRsb2NrUGF0aCkuRXF1YWxzKFtzdHJpbmdd
JFJlY29yZC5ucG1Mb2NrU2hhMjU2LCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVD
YXNlKSkgew0KICAgICAgICB0aHJvdyAibnBtIGNpIGNoYW5nZWQgdGhlIGVtYmVkZGVkIGxvY2sg
Zm9yICQoJFJlY29yZC5pZCkuIg0KICAgIH0NCiAgICAkZW50cnlQcm9wZXJ0eSA9ICRSZWNvcmQu
UFNPYmplY3QuUHJvcGVydGllc1snZW50cnknXQ0KICAgIGlmICgkbnVsbCAtbmUgJGVudHJ5UHJv
cGVydHkgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kZW50
cnlQcm9wZXJ0eS5WYWx1ZSkpIHsNCiAgICAgICAgJGVudHJ5UGF0aCA9IEpvaW4tUGF0aCAkcGF5
bG9hZCAoW3N0cmluZ10kZW50cnlQcm9wZXJ0eS5WYWx1ZSkuUmVwbGFjZSgnLycsICdcJykNCiAg
ICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGVudHJ5UGF0aCAtUGF0aFR5
cGUgTGVhZikpIHsgdGhyb3cgIkV4cGVjdGVkIG5wbSBlbnRyeSBpcyBtaXNzaW5nIGZvciAkKCRS
ZWNvcmQuaWQpIiB9DQogICAgfQ0KDQogICAgJHNraWxsU291cmNlUHJvcGVydHkgPSAkUmVjb3Jk
LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NraWxsU291cmNlJ10NCiAgICAkc2tpbGxDb21taXRQcm9w
ZXJ0eSA9ICRSZWNvcmQuUFNPYmplY3QuUHJvcGVydGllc1snc2tpbGxTb3VyY2VDb21taXQnXQ0K
ICAgIGlmICgkbnVsbCAtbmUgJHNraWxsU291cmNlUHJvcGVydHkgLWFuZCAkbnVsbCAtbmUgJHNr
aWxsQ29tbWl0UHJvcGVydHkgLWFuZA0KICAgICAgICAtbm90IFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoW3N0cmluZ10kc2tpbGxTb3VyY2VQcm9wZXJ0eS5WYWx1ZSkgLWFuZA0KICAgICAg
ICAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kc2tpbGxDb21taXRQ
cm9wZXJ0eS5WYWx1ZSkpIHsNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtQ29tbWFuZEF2YWlsYWJs
ZSAtTmFtZSAnZ2l0LmV4ZScpKSB7IHRocm93ICdHaXQgaXMgcmVxdWlyZWQgdG8gcHJlcGFyZSB0
aGUgcGlubmVkIHNraWxsIHNvdXJjZS4nIH0NCiAgICAgICAgJHNraWxsUmVwb3NpdG9yeSA9IEpv
aW4tUGF0aCAkSXRlbVN0YWdlICdza2lsbC1yZXBvc2l0b3J5Jw0KICAgICAgICBbdm9pZF1bSU8u
RGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRza2lsbFJlcG9zaXRvcnkpDQogICAgICAgIFt2
b2lkXShJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1GaWxlUGF0aCAnZ2l0LmV4ZScgLUFyZ3Vt
ZW50TGlzdCBAKCctYycsJ2NvcmUuYXV0b2NybGY9ZmFsc2UnLCctYycsJ2NvcmUuc3ltbGlua3M9
ZmFsc2UnLCdpbml0JywnLS1xdWlldCcpIC1Xb3JraW5nRGlyZWN0b3J5ICRza2lsbFJlcG9zaXRv
cnkpDQogICAgICAgIFt2b2lkXShJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1GaWxlUGF0aCAn
Z2l0LmV4ZScgLUFyZ3VtZW50TGlzdCBAKCdyZW1vdGUnLCdhZGQnLCdvcmlnaW4nLFtzdHJpbmdd
JHNraWxsU291cmNlUHJvcGVydHkuVmFsdWUpIC1Xb3JraW5nRGlyZWN0b3J5ICRza2lsbFJlcG9z
aXRvcnkpDQogICAgICAgIFt2b2lkXShJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1GaWxlUGF0
aCAnZ2l0LmV4ZScgLUFyZ3VtZW50TGlzdCBAKCctYycsJ3Byb3RvY29sLnZlcnNpb249MicsJ2Zl
dGNoJywnLS1xdWlldCcsJy0tZGVwdGgnLCcxJywnb3JpZ2luJyxbc3RyaW5nXSRza2lsbENvbW1p
dFByb3BlcnR5LlZhbHVlKSAtV29ya2luZ0RpcmVjdG9yeSAkc2tpbGxSZXBvc2l0b3J5KQ0KICAg
ICAgICBbdm9pZF0oSW52b2tlLUNoZWNrZWRBcHBsaWNhdGlvbiAtRmlsZVBhdGggJ2dpdC5leGUn
IC1Bcmd1bWVudExpc3QgQCgnLWMnLCdjb3JlLmF1dG9jcmxmPWZhbHNlJywnLWMnLCdjb3JlLnN5
bWxpbmtzPWZhbHNlJywnY2hlY2tvdXQnLCctLXF1aWV0JywnLS1kZXRhY2gnLCdGRVRDSF9IRUFE
JykgLVdvcmtpbmdEaXJlY3RvcnkgJHNraWxsUmVwb3NpdG9yeSkNCiAgICAgICAgJGFjdHVhbFNr
aWxsQ29tbWl0ID0gKChJbnZva2UtQ2hlY2tlZEFwcGxpY2F0aW9uIC1GaWxlUGF0aCAnZ2l0LmV4
ZScgLUFyZ3VtZW50TGlzdCBAKCdyZXYtcGFyc2UnLCdIRUFEJykgLVdvcmtpbmdEaXJlY3Rvcnkg
JHNraWxsUmVwb3NpdG9yeSkgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxKS5Ub1N0cmluZygpLlRy
aW0oKQ0KICAgICAgICBpZiAoJGFjdHVhbFNraWxsQ29tbWl0IC1jbmUgW3N0cmluZ10kc2tpbGxD
b21taXRQcm9wZXJ0eS5WYWx1ZSkgeyB0aHJvdyAiU2tpbGwtc291cmNlIGNvbW1pdCBtaXNtYXRj
aCBmb3IgJCgkUmVjb3JkLmlkKSIgfQ0KICAgICAgICAkc2tpbGxTdWJkaXIgPSBpZiAoJG51bGwg
LWVxICRSZWNvcmQuUFNPYmplY3QuUHJvcGVydGllc1snc2tpbGxTdWJkaXInXSkgeyAnLicgfSBl
bHNlIHsgW3N0cmluZ10kUmVjb3JkLnNraWxsU3ViZGlyIH0NCiAgICAgICAgJHNraWxsU291cmNl
Um9vdCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoKEpvaW4tUGF0aCAkc2tpbGxSZXBvc2l0b3J5
ICRza2lsbFN1YmRpci5SZXBsYWNlKCcvJywgJ1wnKSkpDQogICAgICAgIGlmICgtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRza2lsbFNvdXJjZVJvb3QgLVBhdGhUeXBlIENvbnRhaW5lcikp
IHsgdGhyb3cgIlBpbm5lZCBza2lsbCBzb3VyY2UgZGlyZWN0b3J5IGlzIG1pc3NpbmcgZm9yICQo
JFJlY29yZC5pZCkiIH0NCiAgICAgICAgJG1hdGVyaWFsaXplZFJvb3QgPSBKb2luLVBhdGggJHBh
eWxvYWQgJ21hdGVyaWFsaXplZC1za2lsbHMnDQogICAgICAgIFt2b2lkXVtJTy5EaXJlY3Rvcnld
OjpDcmVhdGVEaXJlY3RvcnkoJG1hdGVyaWFsaXplZFJvb3QpDQogICAgICAgICRzb3VyY2VTa2ls
bERpcmVjdG9yaWVzID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkc2tpbGxTb3VyY2VS
b290IC1EaXJlY3RvcnkgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wIHwNCiAgICAgICAgICAgIFdo
ZXJlLU9iamVjdCB7IFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkXy5GdWxsTmFt
ZSAnU0tJTEwubWQnKSAtUGF0aFR5cGUgTGVhZiB9IHwNCiAgICAgICAgICAgIFNvcnQtT2JqZWN0
IE5hbWUpDQogICAgICAgICRleHBlY3RlZFNraWxsQ291bnQgPSBbaW50XSRSZWNvcmQuZXhwZWN0
ZWRTa2lsbENvdW50DQogICAgICAgIGlmICgkc291cmNlU2tpbGxEaXJlY3Rvcmllcy5Db3VudCAt
bmUgJGV4cGVjdGVkU2tpbGxDb3VudCkgew0KICAgICAgICAgICAgdGhyb3cgIlBpbm5lZCByZXBv
c2l0b3J5IHNraWxsIGNvdW50IG1pc21hdGNoIGZvciAkKCRSZWNvcmQuaWQpOiBleHBlY3RlZCAk
ZXhwZWN0ZWRTa2lsbENvdW50LCBmb3VuZCAkKCRzb3VyY2VTa2lsbERpcmVjdG9yaWVzLkNvdW50
KS4iDQogICAgICAgIH0NCg0KICAgICAgICAkcGFja2FnZUNsaSA9IEpvaW4tUGF0aCAkcGF5bG9h
ZCAnbm9kZV9tb2R1bGVzXEBub21hZGFtYXNcay1za2lsbFxiaW5cay1za2lsbC5qcycNCiAgICAg
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhY2thZ2VDbGkgLVBhdGhUeXBl
IExlYWYpKSB7IHRocm93ICdQaW5uZWQgay1za2lsbCBydW50aW1lIENMSSBpcyBtaXNzaW5nLicg
fQ0KICAgICAgICAkcGFja2FnZVNraWxsTmFtZXMgPSBAKChJbnZva2UtQ2hlY2tlZEFwcGxpY2F0
aW9uIC1GaWxlUGF0aCAnbm9kZS5leGUnIC1Bcmd1bWVudExpc3QgQCgkcGFja2FnZUNsaSwgJ2xp
c3QnKSAtV29ya2luZ0RpcmVjdG9yeSAkcGF5bG9hZCkgfA0KICAgICAgICAgICAgRm9yRWFjaC1P
YmplY3QgeyAoW3N0cmluZ10kXykuVHJpbSgpIH0gfCBXaGVyZS1PYmplY3QgeyAkXyAtbWF0Y2gg
J15bYS16MC05XVthLXowLTktXSokJyB9IHwgU29ydC1PYmplY3QgLVVuaXF1ZSkNCiAgICAgICAg
JHJlcG9zaXRvcnlTa2lsbE5hbWVzID0gQCgkc291cmNlU2tpbGxEaXJlY3RvcmllcyB8IEZvckVh
Y2gtT2JqZWN0IHsgJF8uTmFtZSB9IHwgU29ydC1PYmplY3QgLVVuaXF1ZSkNCiAgICAgICAgaWYg
KCRwYWNrYWdlU2tpbGxOYW1lcy5Db3VudCAtbmUgJGV4cGVjdGVkU2tpbGxDb3VudCAtb3INCiAg
ICAgICAgICAgICgoJHBhY2thZ2VTa2lsbE5hbWVzIC1qb2luICJgbiIpIC1jbmUgKCRyZXBvc2l0
b3J5U2tpbGxOYW1lcyAtam9pbiAiYG4iKSkpIHsNCiAgICAgICAgICAgIHRocm93ICdQaW5uZWQg
ay1za2lsbCBydW50aW1lIGxpc3QgYW5kIHBpbm5lZCByZXBvc2l0b3J5IHNraWxsIHNldCBkaWZm
ZXIuJw0KICAgICAgICB9DQoNCiAgICAgICAgZm9yZWFjaCAoJHNraWxsRGlyZWN0b3J5IGluICRz
b3VyY2VTa2lsbERpcmVjdG9yaWVzKSB7DQogICAgICAgICAgICBpZiAoJHNraWxsRGlyZWN0b3J5
Lk5hbWUgLW5vdG1hdGNoICdeW2EtejAtOV1bYS16MC05LV0qJCcpIHsgdGhyb3cgIlVuc2FmZSBw
aW5uZWQgc2tpbGwgZGlyZWN0b3J5IG5hbWU6ICQoJHNraWxsRGlyZWN0b3J5Lk5hbWUpIiB9DQog
ICAgICAgICAgICBDb3B5LVRyZWVXaXRob3V0TGlua3MgLVNvdXJjZSAkc2tpbGxEaXJlY3Rvcnku
RnVsbE5hbWUgLURlc3RpbmF0aW9uIChKb2luLVBhdGggJG1hdGVyaWFsaXplZFJvb3QgJHNraWxs
RGlyZWN0b3J5Lk5hbWUpDQogICAgICAgIH0NCiAgICB9IGVsc2Ugew0KICAgICAgICAkYWN0dWFs
U2tpbGxDb21taXQgPSAkbnVsbA0KICAgIH0NCg0KICAgICRwYXlsb2FkVHJlZVNoYTI1NiA9IFdy
aXRlLUNhbm9uaWNhbFNvdXJjZVByb29mIC1SZWNvcmQgJFJlY29yZCAtQ2Fub25pY2FsUGF0aCAk
cGF5bG9hZCAtU291cmNlTG9ja1NoYTI1NiAkU291cmNlTG9ja1NoYTI1Ng0KICAgIFB1Ymxpc2gt
TmV3Q2Fub25pY2FsRGlyZWN0b3J5IC1QcmVwYXJlZFBhdGggJHBheWxvYWQgLUNhbm9uaWNhbFBh
dGggJENhbm9uaWNhbFBhdGgNCiAgICByZXR1cm4gW29yZGVyZWRdQHsNCiAgICAgICAga2luZCA9
ICducG0nDQogICAgICAgIHBhY2thZ2UgPSBbc3RyaW5nXSRSZWNvcmQucGFja2FnZQ0KICAgICAg
ICB0YXJiYWxsU2hhMjU2ID0gR2V0LVNvdWxTaGEyNTYgLVBhdGggJHRhcmJhbGwNCiAgICAgICAg
cGFja2FnZUxvY2tTaGEyNTYgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAoSm9pbi1QYXRoICRDYW5v
bmljYWxQYXRoICdwYWNrYWdlLWxvY2suanNvbicpDQogICAgICAgIHNraWxsU291cmNlQ29tbWl0
ID0gJGFjdHVhbFNraWxsQ29tbWl0DQogICAgICAgIHBheWxvYWRUcmVlU2hhMjU2ID0gJHBheWxv
YWRUcmVlU2hhMjU2DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBJbnN0YWxsLUFnZVNuYXBzaG90IHsN
CiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXSRSZWNvcmQsDQogICAg
ICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRJdGVtU3RhZ2UsDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRDYW5vbmljYWxQYXRoLA0KICAgICAgICBbUGFy
YW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kU291cmNlTG9ja1NoYTI1Ng0KICAgICkNCg0KICAg
ICRhcmNoaXZlID0gSm9pbi1QYXRoICRJdGVtU3RhZ2UgJ2FnZS56aXAnDQogICAgU2F2ZS1Mb2Nr
ZWREb3dubG9hZCAtVXJpIChbc3RyaW5nXSRSZWNvcmQuc291cmNlKSAtRGVzdGluYXRpb24gJGFy
Y2hpdmUgLVNoYTI1NiAoW3N0cmluZ10kUmVjb3JkLnNoYTI1NikNCiAgICAkZXhwYW5kZWQgPSBK
b2luLVBhdGggJEl0ZW1TdGFnZSAnZXhwYW5kZWQnDQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06
OkNyZWF0ZURpcmVjdG9yeSgkZXhwYW5kZWQpDQogICAgRXhwYW5kLUFyY2hpdmUgLUxpdGVyYWxQ
YXRoICRhcmNoaXZlIC1EZXN0aW5hdGlvblBhdGggJGV4cGFuZGVkDQogICAgJGFnZUV4ZWN1dGFi
bGUgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkZXhwYW5kZWQgLVJlY3Vyc2UgLUZpbGUg
LUZpbHRlciAnYWdlLmV4ZScgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxDQogICAgJGtleWdlbkV4
ZWN1dGFibGUgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkZXhwYW5kZWQgLVJlY3Vyc2Ug
LUZpbGUgLUZpbHRlciAnYWdlLWtleWdlbi5leGUnIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0K
ICAgIGlmICgkbnVsbCAtZXEgJGFnZUV4ZWN1dGFibGUgLW9yICRudWxsIC1lcSAka2V5Z2VuRXhl
Y3V0YWJsZSkgeyB0aHJvdyAnVGhlIHZlcmlmaWVkIGFnZSBhcmNoaXZlIGxhY2tzIHJlcXVpcmVk
IGV4ZWN1dGFibGVzLicgfQ0KICAgICRwYXlsb2FkUm9vdCA9ICRhZ2VFeGVjdXRhYmxlLkRpcmVj
dG9yeS5GdWxsTmFtZQ0KICAgICRwYXlsb2FkID0gSm9pbi1QYXRoICRJdGVtU3RhZ2UgJ3BheWxv
YWQnDQogICAgQ29weS1UcmVlV2l0aG91dExpbmtzIC1Tb3VyY2UgJHBheWxvYWRSb290IC1EZXN0
aW5hdGlvbiAkcGF5bG9hZA0KICAgICRwYXlsb2FkVHJlZVNoYTI1NiA9IFdyaXRlLUNhbm9uaWNh
bFNvdXJjZVByb29mIC1SZWNvcmQgJFJlY29yZCAtQ2Fub25pY2FsUGF0aCAkcGF5bG9hZCAtU291
cmNlTG9ja1NoYTI1NiAkU291cmNlTG9ja1NoYTI1Ng0KICAgIFB1Ymxpc2gtTmV3Q2Fub25pY2Fs
RGlyZWN0b3J5IC1QcmVwYXJlZFBhdGggJHBheWxvYWQgLUNhbm9uaWNhbFBhdGggJENhbm9uaWNh
bFBhdGgNCiAgICAkcHVibGlzaGVkQWdlID0gSm9pbi1QYXRoICRDYW5vbmljYWxQYXRoICdhZ2Uu
ZXhlJw0KICAgICRwdWJsaXNoZWRLZXlnZW4gPSBKb2luLVBhdGggJENhbm9uaWNhbFBhdGggJ2Fn
ZS1rZXlnZW4uZXhlJw0KICAgICRwdWJsaXNoZWRCYXRjaHBhc3MgPSBKb2luLVBhdGggJENhbm9u
aWNhbFBhdGggJ2FnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4ZScNCiAgICBpZiAoLW5vdCAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkcHVibGlzaGVkQWdlIC1QYXRoVHlwZSBMZWFmKSAtb3INCiAgICAg
ICAgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcHVibGlzaGVkS2V5Z2VuIC1QYXRoVHlw
ZSBMZWFmKSAtb3INCiAgICAgICAgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcHVibGlz
aGVkQmF0Y2hwYXNzIC1QYXRoVHlwZSBMZWFmKSkgew0KICAgICAgICB0aHJvdyAnVGhlIHB1Ymxp
c2hlZCBhZ2UgZGlyZWN0b3J5IGxhY2tzIHJlcXVpcmVkIGV4ZWN1dGFibGVzLicNCiAgICB9DQog
ICAgcmV0dXJuIFtvcmRlcmVkXUB7DQogICAgICAgIGtpbmQgPSAnemlwJw0KICAgICAgICBhcmNo
aXZlU2hhMjU2ID0gW3N0cmluZ10kUmVjb3JkLnNoYTI1Ng0KICAgICAgICB2ZXJzaW9uID0gW3N0
cmluZ10kUmVjb3JkLnZlcnNpb24NCiAgICAgICAgYWdlRXhlU2hhMjU2ID0gR2V0LVNvdWxTaGEy
NTYgLVBhdGggJHB1Ymxpc2hlZEFnZQ0KICAgICAgICBhZ2VLZXlnZW5FeGVTaGEyNTYgPSBHZXQt
U291bFNoYTI1NiAtUGF0aCAkcHVibGlzaGVkS2V5Z2VuDQogICAgICAgIGFnZVBsdWdpbkJhdGNo
cGFzc0V4ZVNoYTI1NiA9IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRwdWJsaXNoZWRCYXRjaHBhc3MN
CiAgICAgICAgcGF5bG9hZFRyZWVTaGEyNTYgPSAkcGF5bG9hZFRyZWVTaGEyNTYNCiAgICB9DQp9
DQoNCiRyb290ID0gR2V0LVNvdWxSb290DQpbdm9pZF0oQXNzZXJ0LVNvdWxSb290IC1QYXRoICRy
b290IC1SZXF1aXJlSW5pdGlhbGl6ZWQpDQokbG9ja1BhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0
Um9vdCAnbWFuaWZlc3RzXHY3LWxvY2suanNvbicNCmlmICgtbm90IChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRsb2NrUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ3Y3LWxvY2suanNvbiBp
cyBtaXNzaW5nLicgfQ0KJHNvdXJjZUxvY2sgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRsb2NrUGF0
aA0KaWYgKFtpbnRdJHNvdXJjZUxvY2suc2NoZW1hVmVyc2lvbiAtbmUgNykgeyB0aHJvdyAnVW5z
dXBwb3J0ZWQgc291cmNlIGxvY2sgc2NoZW1hLicgfQ0KJGRvY3VtZW50UHl0aG9uUnVudGltZSA9
IEdldC1Eb2N1bWVudFB5dGhvblJ1bnRpbWVSZWNvcmQgLUxvY2sgJHNvdXJjZUxvY2sNCiRkb2N1
bWVudFJlcXVpcmVtZW50c0luID0gUmVzb2x2ZS1Mb2NrZWRTaWRlY2FyUGF0aCAtUmVsYXRpdmVQ
YXRoIChbc3RyaW5nXSRkb2N1bWVudFB5dGhvblJ1bnRpbWUucmVxdWlyZW1lbnRzSW5SZWxhdGl2
ZVBhdGgpIC1FeHBlY3RlZFNoYTI1NiAoW3N0cmluZ10kZG9jdW1lbnRQeXRob25SdW50aW1lLnJl
cXVpcmVtZW50c0luU2hhMjU2KQ0KJGRvY3VtZW50UmVxdWlyZW1lbnRzTG9jayA9IFJlc29sdmUt
TG9ja2VkU2lkZWNhclBhdGggLVJlbGF0aXZlUGF0aCAoW3N0cmluZ10kZG9jdW1lbnRQeXRob25S
dW50aW1lLnJlcXVpcmVtZW50c0xvY2tSZWxhdGl2ZVBhdGgpIC1FeHBlY3RlZFNoYTI1NiAoW3N0
cmluZ10kZG9jdW1lbnRQeXRob25SdW50aW1lLnJlcXVpcmVtZW50c0xvY2tTaGEyNTYpDQokZG9j
dW1lbnRXaGVlbGhvdXNlU3RhdHVzID0gR2V0LURvY3VtZW50V2hlZWxob3VzZVN0YXR1cyAtUm9v
dCAkcm9vdCAtUnVudGltZVJlY29yZCAkZG9jdW1lbnRQeXRob25SdW50aW1lIC1SZXF1aXJlbWVu
dHNMb2NrUGF0aCAkZG9jdW1lbnRSZXF1aXJlbWVudHNMb2NrDQoNCiRhZ2VSZWNvcmQgPSBAKCRz
b3VyY2VMb2NrLmZvdW5kYXRpb25zIHwgV2hlcmUtT2JqZWN0IHsgW3N0cmluZ10kXy5pZCAtZXEg
J2FnZScgfSkgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxDQokcmVjb3JkcyA9IE5ldy1PYmplY3Qg
U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQppZiAoJG51bGwgLW5lICRh
Z2VSZWNvcmQpIHsgJHJlY29yZHMuQWRkKCRhZ2VSZWNvcmQpIH0NCmZvcmVhY2ggKCRleHRlbnNp
b24gaW4gQCgkc291cmNlTG9jay5leHRlbnNpb25zKSkgeyAkcmVjb3Jkcy5BZGQoJGV4dGVuc2lv
bikgfQ0KJHN0YXR1cyA9IEAoJHJlY29yZHMgfCBGb3JFYWNoLU9iamVjdCB7IEdldC1DYW5vbmlj
YWxTb3VyY2VTdGF0dXMgLVJlY29yZCAkXyAtUm9vdCAkcm9vdCB9KQ0KDQppZiAoJFBsYW5Pbmx5
KSB7DQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9u
ID0gNw0KICAgICAgICBtb2RlID0gJ3BsYW4tb25seScNCiAgICAgICAgc291cmNlTG9ja1NoYTI1
NiA9IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRsb2NrUGF0aA0KICAgICAgICBuZXR3b3JrV2lsbEJl
VXNlZCA9IChAKCRzdGF0dXMgfCBXaGVyZS1PYmplY3QgeyAtbm90ICRfLmV4aXN0cyB9KS5Db3Vu
dCAtZ3QgMCAtb3IgLW5vdCBbYm9vbF0kZG9jdW1lbnRXaGVlbGhvdXNlU3RhdHVzLnJlYWR5KQ0K
ICAgICAgICBsaXZlQWdlbnRIb21lc1dpbGxDaGFuZ2UgPSAkZmFsc2UNCiAgICAgICAgYWN0aXZl
UG9pbnRlcldpbGxDaGFuZ2UgPSAkZmFsc2UNCiAgICAgICAgc291cmNlcyA9ICRzdGF0dXMNCiAg
ICAgICAgcHl0aG9uUnVudGltZXMgPSBAKCRkb2N1bWVudFdoZWVsaG91c2VTdGF0dXMpDQogICAg
fQ0KfQ0KDQokbG9jayA9IE5ldy1Tb3VsT3BlcmF0aW9uTG9jayAtTmFtZSAncHJlcGFyZS1zb3Vy
Y2VzLXY3Jw0KdHJ5IHsNCiAgICAkYWdlbnREaXJlY3RvcnkgPSBOZXctU2V0dXBDb250YWluZXIg
LVBhdGggKEpvaW4tUGF0aCAkcm9vdCAnX2FnZW50JykgLVRpdGxlICdQb3J0YWJsZSBhZ2VudCBz
dGF0ZScNCiAgICAkc2hhcmVkRGlyZWN0b3J5ID0gTmV3LVNldHVwQ29udGFpbmVyIC1QYXRoIChK
b2luLVBhdGggJGFnZW50RGlyZWN0b3J5ICdzaGFyZWQnKSAtVGl0bGUgJ1NoYXJlZCBhZ2VudCBy
ZXNvdXJjZXMnDQogICAgW3ZvaWRdKE5ldy1TZXR1cENvbnRhaW5lciAtUGF0aCAoSm9pbi1QYXRo
ICRzaGFyZWREaXJlY3RvcnkgJ3NraWxscycpIC1UaXRsZSAnU2hhcmVkIHNraWxscycpDQogICAg
W3ZvaWRdKE5ldy1TZXR1cENvbnRhaW5lciAtUGF0aCAoSm9pbi1QYXRoICRzaGFyZWREaXJlY3Rv
cnkgJ3Rvb2xzJykgLVRpdGxlICdTaGFyZWQgdG9vbHMnKQ0KICAgICRydW50aW1lRGlyZWN0b3J5
ID0gTmV3LVNldHVwQ29udGFpbmVyIC1QYXRoIChKb2luLVBhdGggJGFnZW50RGlyZWN0b3J5ICdy
dW50aW1lJykgLVRpdGxlICdIb3N0IHJ1bnRpbWUgc3RhdGUnDQogICAgJGhvc3RzRGlyZWN0b3J5
ID0gTmV3LVNldHVwQ29udGFpbmVyIC1QYXRoIChKb2luLVBhdGggJHJ1bnRpbWVEaXJlY3Rvcnkg
J2hvc3RzJykgLVRpdGxlICdIb3N0IHJ1bnRpbWUgcmVjb3JkcycNCiAgICAkaG9zdERpcmVjdG9y
eSA9IE5ldy1TZXR1cENvbnRhaW5lciAtUGF0aCAoSm9pbi1QYXRoICRob3N0c0RpcmVjdG9yeSAo
W0Vudmlyb25tZW50XTo6TWFjaGluZU5hbWUuVG9Mb3dlckludmFyaWFudCgpKSkgLVRpdGxlICdD
dXJyZW50IGhvc3QgcnVudGltZScNCiAgICAkbnBtQ2FjaGUgPSBKb2luLVBhdGggJGhvc3REaXJl
Y3RvcnkgJ25wbS1jYWNoZScNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
bnBtQ2FjaGUpKSB7IFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJG5wbUNh
Y2hlKSB9DQogICAgJHBpcENhY2hlID0gSm9pbi1QYXRoICRob3N0RGlyZWN0b3J5ICdwaXAtY2Fj
aGUnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBpcENhY2hlKSkgeyBb
dm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRwaXBDYWNoZSkgfQ0KDQogICAg
JHNvdXJjZVN0YWdlUm9vdCA9IE5ldy1TZXR1cENvbnRhaW5lciAtUGF0aCAoSm9pbi1QYXRoICRQ
U1NjcmlwdFJvb3QgJ3NvdXJjZS1zdGFnaW5nJykgLVRpdGxlICdTb3VyY2Ugc3RhZ2luZycNCiAg
ICAkcmVjZWlwdFJvb3QgPSBOZXctU2V0dXBDb250YWluZXIgLVBhdGggKEpvaW4tUGF0aCAkUFNT
Y3JpcHRSb290ICdzb3VyY2UtcmVjZWlwdHMnKSAtVGl0bGUgJ1NvdXJjZSByZWNlaXB0cycNCiAg
ICAkdHJhbnNhY3Rpb25JZCA9IFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykNCiAgICAk
dHJhbnNhY3Rpb25Sb290ID0gTmV3LVNldHVwQ29udGFpbmVyIC1QYXRoIChKb2luLVBhdGggJHNv
dXJjZVN0YWdlUm9vdCAkdHJhbnNhY3Rpb25JZCkgLVRpdGxlICJTb3VyY2UgdHJhbnNhY3Rpb24g
JHRyYW5zYWN0aW9uSWQiDQogICAgJHJlc3VsdHMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0
aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRweXRob25SdW50aW1lUmVzdWx0cyA9IE5l
dy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQoNCiAgICAk
cHl0aG9uUnVudGltZVJlc3VsdHMuQWRkKChQcmVwYXJlLURvY3VtZW50V2hlZWxob3VzZSAtUm9v
dCAkcm9vdCAtUnVudGltZVJlY29yZCAkZG9jdW1lbnRQeXRob25SdW50aW1lIC1SZXF1aXJlbWVu
dHNMb2NrUGF0aCAkZG9jdW1lbnRSZXF1aXJlbWVudHNMb2NrIC1UcmFuc2FjdGlvblJvb3QgJHRy
YW5zYWN0aW9uUm9vdCAtUGlwQ2FjaGUgJHBpcENhY2hlKSkNCg0KICAgIGZvcmVhY2ggKCRyZWNv
cmQgaW4gJHJlY29yZHMpIHsNCiAgICAgICAgJHNvdXJjZVN0YXR1cyA9IEdldC1DYW5vbmljYWxT
b3VyY2VTdGF0dXMgLVJlY29yZCAkcmVjb3JkIC1Sb290ICRyb290DQogICAgICAgIGlmICgkc291
cmNlU3RhdHVzLmV4aXN0cykgew0KICAgICAgICAgICAgJGRpZ2VzdCA9IEdldC1TdGFibGVUcmVl
RGlnZXN0IC1QYXRoICRzb3VyY2VTdGF0dXMuY2Fub25pY2FsUGF0aA0KICAgICAgICAgICAgJHJl
Y2VpcHRQYXRoID0gSm9pbi1QYXRoICRyZWNlaXB0Um9vdCAoKFtzdHJpbmddJHJlY29yZC5pZCkg
KyAnLmpzb24nKQ0KICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
JHJlY2VpcHRQYXRoIC1QYXRoVHlwZSBMZWFmKSkgew0KICAgICAgICAgICAgICAgICMgQSBjcmFz
aCBjYW4gaGFwcGVuIGFmdGVyIHRoZSBmdWxseSBwcm92ZWQgZGlyZWN0b3J5IGlzIHJlbmFtZWQN
CiAgICAgICAgICAgICAgICAjIGludG8gcGxhY2UgYnV0IGJlZm9yZSBpdHMgcmVjZWlwdCBpcyB3
cml0dGVuLiBUaGUgcHJvb2YgaXMNCiAgICAgICAgICAgICAgICAjIGluc2lkZSB0aGF0IGF0b21p
YyBkaXJlY3RvcnksIHNvIGEgbWF0Y2hpbmcgcHJvb2YgcGVybWl0cyBhbg0KICAgICAgICAgICAg
ICAgICMgaG9uZXN0IHJlY292ZXJ5IHJlY2VpcHQgd2l0aG91dCBkb3dubG9hZGluZyBvciBvdmVy
d3JpdGluZy4NCiAgICAgICAgICAgICAgICAkcHJvb2ZQYXRoID0gSm9pbi1QYXRoICRzb3VyY2VT
dGF0dXMuY2Fub25pY2FsUGF0aCAnc291cmNlLXByb29mLmpzb24nDQogICAgICAgICAgICAgICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHByb29mUGF0aCAtUGF0aFR5cGUgTGVh
ZikpIHsNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkV4aXN0aW5nIGNhbm9uaWNhbCBzb3Vy
Y2UgaGFzIG5laXRoZXIgcmVjZWlwdCBub3IgaW1tdXRhYmxlIHByb29mIGFuZCB3aWxsIG5vdCBi
ZSB0cnVzdGVkIG9yIG92ZXJ3cml0dGVuOiAkKCRyZWNvcmQuaWQpIg0KICAgICAgICAgICAgICAg
IH0NCiAgICAgICAgICAgICAgICAkcHJvb2YgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRwcm9vZlBh
dGgNCiAgICAgICAgICAgICAgICAkcGluID0gR2V0LVJlY29yZFBpbiAtUmVjb3JkICRyZWNvcmQN
CiAgICAgICAgICAgICAgICAkcGF5bG9hZERpZ2VzdCA9IEdldC1QYXlsb2FkRGlnZXN0Rm9yUHJv
b2YgLVBhdGggJHNvdXJjZVN0YXR1cy5jYW5vbmljYWxQYXRoDQogICAgICAgICAgICAgICAgaWYg
KFtzdHJpbmddJHByb29mLmlkIC1jbmUgW3N0cmluZ10kcmVjb3JkLmlkIC1vcg0KICAgICAgICAg
ICAgICAgICAgICBbc3RyaW5nXSRwcm9vZi5waW5LaW5kIC1jbmUgW3N0cmluZ10kcGluLmtpbmQg
LW9yDQogICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJHByb29mLnBpblZhbHVlIC1jbmUgW3N0
cmluZ10kcGluLnZhbHVlIC1vcg0KICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXSRwcm9vZi5z
b3VyY2VMb2NrU2hhMjU2IC1jbmUgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRsb2NrUGF0aCkgLW9y
DQogICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJHByb29mLnBheWxvYWRUcmVlU2hhMjU2IC1j
bmUgJHBheWxvYWREaWdlc3QpIHsNCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkV4aXN0aW5n
IGNhbm9uaWNhbCBzb3VyY2UgcHJvb2YgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnQgbG9jazog
JCgkcmVjb3JkLmlkKSINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgW3ZvaWRd
KFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRyZWNlaXB0UGF0aCAtVmFsdWUgKFtvcmRlcmVk
XUB7DQogICAgICAgICAgICAgICAgICAgIHNjaGVtYVZlcnNpb24gPSAxDQogICAgICAgICAgICAg
ICAgICAgIGlkID0gW3N0cmluZ10kcmVjb3JkLmlkDQogICAgICAgICAgICAgICAgICAgIGNhbm9u
aWNhbFJlbGF0aXZlUGF0aCA9IFtzdHJpbmddJHJlY29yZC5jYW5vbmljYWxSZWxhdGl2ZVBhdGgN
CiAgICAgICAgICAgICAgICAgICAgcHJlcGFyZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5U
b1N0cmluZygnbycpDQogICAgICAgICAgICAgICAgICAgIHNvdXJjZUxvY2tTaGEyNTYgPSBHZXQt
U291bFNoYTI1NiAtUGF0aCAkbG9ja1BhdGgNCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0g
W29yZGVyZWRdQHsga2luZCA9ICdyZWNvdmVyZWQtYWZ0ZXItYXRvbWljLXB1Ymxpc2gnOyBwaW5L
aW5kID0gW3N0cmluZ10kcGluLmtpbmQ7IHBpblZhbHVlID0gW3N0cmluZ10kcGluLnZhbHVlIH0N
CiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZFRyZWVTaGEyNTYgPSAkcGF5bG9hZERpZ2VzdA0K
ICAgICAgICAgICAgICAgICAgICB0cmVlU2hhMjU2ID0gJGRpZ2VzdC5zaGEyNTYNCiAgICAgICAg
ICAgICAgICAgICAgZW50cnlDb3VudCA9ICRkaWdlc3QuZW50cnlDb3VudA0KICAgICAgICAgICAg
ICAgIH0pKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGV4aXN0aW5nUmVjZWlwdCA9IFJl
YWQtU291bEpzb24gLVBhdGggJHJlY2VpcHRQYXRoDQogICAgICAgICAgICBpZiAoW3N0cmluZ10k
ZXhpc3RpbmdSZWNlaXB0LnNvdXJjZUxvY2tTaGEyNTYgLWNuZSAoR2V0LVNvdWxTaGEyNTYgLVBh
dGggJGxvY2tQYXRoKSAtb3INCiAgICAgICAgICAgICAgICBbc3RyaW5nXSRleGlzdGluZ1JlY2Vp
cHQudHJlZVNoYTI1NiAtY25lIFtzdHJpbmddJGRpZ2VzdC5zaGEyNTYgLW9yDQogICAgICAgICAg
ICAgICAgW2ludF0kZXhpc3RpbmdSZWNlaXB0LmVudHJ5Q291bnQgLW5lIFtpbnRdJGRpZ2VzdC5l
bnRyeUNvdW50KSB7DQogICAgICAgICAgICAgICAgdGhyb3cgIkV4aXN0aW5nIGNhbm9uaWNhbCBz
b3VyY2UgZGlmZmVycyBmcm9tIGl0cyByZWNlaXB0IGFuZCB3aWxsIG5vdCBiZSBvdmVyd3JpdHRl
bjogJCgkcmVjb3JkLmlkKSINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRwcm9vZlBhdGgg
PSBKb2luLVBhdGggJHNvdXJjZVN0YXR1cy5jYW5vbmljYWxQYXRoICdzb3VyY2UtcHJvb2YuanNv
bicNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwcm9vZlBh
dGggLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgIkV4aXN0aW5nIGNh
bm9uaWNhbCBzb3VyY2UgaGFzIG5vIGltbXV0YWJsZSBzb3VyY2UgcHJvb2Y6ICQoJHJlY29yZC5p
ZCkiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBBc3NlcnQtUmVjb3JkU3BlY2lmaWNTb3Vy
Y2UgLVJlY29yZCAkcmVjb3JkIC1DYW5vbmljYWxQYXRoICRzb3VyY2VTdGF0dXMuY2Fub25pY2Fs
UGF0aA0KICAgICAgICAgICAgJHJlc3VsdHMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9IFtz
dHJpbmddJHJlY29yZC5pZDsgc3RhdHVzID0gJ3ZlcmlmaWVkLWV4aXN0aW5nJzsgY2Fub25pY2Fs
UGF0aCA9ICRzb3VyY2VTdGF0dXMuY2Fub25pY2FsUGF0aDsgdHJlZVNoYTI1NiA9ICRkaWdlc3Qu
c2hhMjU2IH0pDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICB9DQoNCiAgICAgICAgSW5p
dGlhbGl6ZS1DYW5vbmljYWxQYXJlbnRDb250YWluZXJzIC1Sb290ICRyb290IC1DYW5vbmljYWxS
ZWxhdGl2ZVBhdGggKFtzdHJpbmddJHJlY29yZC5jYW5vbmljYWxSZWxhdGl2ZVBhdGgpDQoNCiAg
ICAgICAgJGl0ZW1TdGFnZSA9IEpvaW4tUGF0aCAkdHJhbnNhY3Rpb25Sb290IChbc3RyaW5nXSRy
ZWNvcmQuaWQpDQogICAgICAgIFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3Rvcnko
JGl0ZW1TdGFnZSkNCiAgICAgICAgJHNvdXJjZVRleHQgPSBbc3RyaW5nXSRyZWNvcmQuc291cmNl
DQogICAgICAgICRjdXJyZW50U291cmNlTG9ja1NoYSA9IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRs
b2NrUGF0aA0KICAgICAgICBpZiAoW3N0cmluZ10kcmVjb3JkLmlkIC1lcSAnYWdlJykgew0KICAg
ICAgICAgICAgJHJlY2VpcHREYXRhID0gSW5zdGFsbC1BZ2VTbmFwc2hvdCAtUmVjb3JkICRyZWNv
cmQgLUl0ZW1TdGFnZSAkaXRlbVN0YWdlIC1DYW5vbmljYWxQYXRoICRzb3VyY2VTdGF0dXMuY2Fu
b25pY2FsUGF0aCAtU291cmNlTG9ja1NoYTI1NiAkY3VycmVudFNvdXJjZUxvY2tTaGENCiAgICAg
ICAgfSBlbHNlaWYgKCRzb3VyY2VUZXh0IC1tYXRjaCAnKD9pKV5odHRwczovL2dpdGh1YlwuY29t
Ly4rXC5naXQkJykgew0KICAgICAgICAgICAgJHJlY2VpcHREYXRhID0gSW5zdGFsbC1HaXRTbmFw
c2hvdCAtUmVjb3JkICRyZWNvcmQgLUl0ZW1TdGFnZSAkaXRlbVN0YWdlIC1DYW5vbmljYWxQYXRo
ICRzb3VyY2VTdGF0dXMuY2Fub25pY2FsUGF0aCAtU291cmNlTG9ja1NoYTI1NiAkY3VycmVudFNv
dXJjZUxvY2tTaGENCiAgICAgICAgfSBlbHNlaWYgKCRzb3VyY2VUZXh0IC1tYXRjaCAnKD9pKV5o
dHRwczovL3JlZ2lzdHJ5XC5ucG1qc1wub3JnLycpIHsNCiAgICAgICAgICAgICRyZWNlaXB0RGF0
YSA9IEluc3RhbGwtTnBtU25hcHNob3QgLVJlY29yZCAkcmVjb3JkIC1JdGVtU3RhZ2UgJGl0ZW1T
dGFnZSAtQ2Fub25pY2FsUGF0aCAkc291cmNlU3RhdHVzLmNhbm9uaWNhbFBhdGggLU5wbUNhY2hl
ICRucG1DYWNoZSAtU291cmNlTG9ja1NoYTI1NiAkY3VycmVudFNvdXJjZUxvY2tTaGENCiAgICAg
ICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHRocm93ICJVbnN1cHBvcnRlZCBsb2NrZWQgc291cmNl
IHR5cGU6ICRzb3VyY2VUZXh0Ig0KICAgICAgICB9DQoNCiAgICAgICAgQXNzZXJ0LVJlY29yZFNw
ZWNpZmljU291cmNlIC1SZWNvcmQgJHJlY29yZCAtQ2Fub25pY2FsUGF0aCAkc291cmNlU3RhdHVz
LmNhbm9uaWNhbFBhdGgNCiAgICAgICAgJHBheWxvYWRUcmVlU2hhMjU2ID0gW3N0cmluZ10kcmVj
ZWlwdERhdGEucGF5bG9hZFRyZWVTaGEyNTYNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxP
cldoaXRlU3BhY2UoJHBheWxvYWRUcmVlU2hhMjU2KSkgeyB0aHJvdyAiUHJlcGFyZWQgc291cmNl
IGRpZCBub3QgcmV0dXJuIGl0cyBwcmUtcHVibGlzaCBwcm9vZiBkaWdlc3Q6ICQoJHJlY29yZC5p
ZCkiIH0NCiAgICAgICAgJGRpZ2VzdCA9IEdldC1TdGFibGVUcmVlRGlnZXN0IC1QYXRoICRzb3Vy
Y2VTdGF0dXMuY2Fub25pY2FsUGF0aA0KICAgICAgICAkcmVjZWlwdCA9IFtvcmRlcmVkXUB7DQog
ICAgICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICAgICAgaWQgPSBbc3RyaW5nXSRy
ZWNvcmQuaWQNCiAgICAgICAgICAgIGNhbm9uaWNhbFJlbGF0aXZlUGF0aCA9IFtzdHJpbmddJHJl
Y29yZC5jYW5vbmljYWxSZWxhdGl2ZVBhdGgNCiAgICAgICAgICAgIHByZXBhcmVkQXRVdGMgPSBb
RGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgc291cmNlTG9ja1No
YTI1NiA9IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRsb2NrUGF0aA0KICAgICAgICAgICAgc291cmNl
ID0gJHJlY2VpcHREYXRhDQogICAgICAgICAgICBwYXlsb2FkVHJlZVNoYTI1NiA9ICRwYXlsb2Fk
VHJlZVNoYTI1Ng0KICAgICAgICAgICAgdHJlZVNoYTI1NiA9ICRkaWdlc3Quc2hhMjU2DQogICAg
ICAgICAgICBlbnRyeUNvdW50ID0gJGRpZ2VzdC5lbnRyeUNvdW50DQogICAgICAgIH0NCiAgICAg
ICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGggJHJlY2VpcHRS
b290ICgoW3N0cmluZ10kcmVjb3JkLmlkKSArICcuanNvbicpKSAtVmFsdWUgJHJlY2VpcHQpDQog
ICAgICAgICRyZXN1bHRzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgaWQgPSBbc3RyaW5nXSRyZWNv
cmQuaWQ7IHN0YXR1cyA9ICdwcmVwYXJlZCc7IGNhbm9uaWNhbFBhdGggPSAkc291cmNlU3RhdHVz
LmNhbm9uaWNhbFBhdGg7IGVudHJ5Q291bnQgPSAkZGlnZXN0LmVudHJ5Q291bnQ7IHRyZWVTaGEy
NTYgPSAkZGlnZXN0LnNoYTI1NiB9KQ0KICAgICAgICBbdm9pZF0oQWRkLVNvdWxKb3VybmFsRW50
cnkgLVR5cGUgJ3NvdXJjZS5wcmVwYXJlZCcgLURhdGEgQHsgaWQgPSBbc3RyaW5nXSRyZWNvcmQu
aWQ7IGNhbm9uaWNhbFJlbGF0aXZlUGF0aCA9IFtzdHJpbmddJHJlY29yZC5jYW5vbmljYWxSZWxh
dGl2ZVBhdGggfSkNCiAgICB9DQoNCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAg
ICAgIHNjaGVtYVZlcnNpb24gPSA3DQogICAgICAgIG1vZGUgPSAncHJlcGFyZWQtc291cmNlcycN
CiAgICAgICAgdHJhbnNhY3Rpb25JZCA9ICR0cmFuc2FjdGlvbklkDQogICAgICAgIHNvdXJjZUxv
Y2tTaGEyNTYgPSBHZXQtU291bFNoYTI1NiAtUGF0aCAkbG9ja1BhdGgNCiAgICAgICAgbGl2ZUFn
ZW50SG9tZXNDaGFuZ2VkID0gJGZhbHNlDQogICAgICAgIGFjdGl2ZVBvaW50ZXJDaGFuZ2VkID0g
JGZhbHNlDQogICAgICAgICMgV2luZG93cyBQb3dlclNoZWxsIDUuMSBjYW4gdGhyb3cgIkFyZ3Vt
ZW50IHR5cGVzIGRvIG5vdCBtYXRjaCIgd2hlbiBhDQogICAgICAgICMgZ2VuZXJpYyBMaXN0W29i
amVjdF0gaXMgd3JhcHBlZCBkaXJlY3RseSBpbiBAKC4uLikuIE1hdGVyaWFsaXplIHRoZQ0KICAg
ICAgICAjIGFycmF5cyB0aHJvdWdoIExpc3Q8VD4uVG9BcnJheSgpIGJlZm9yZSByZXR1cm5pbmcg
dGhlIHJlY2VpcHQgc3VtbWFyeS4NCiAgICAgICAgcmVzdWx0cyA9ICRyZXN1bHRzLlRvQXJyYXko
KQ0KICAgICAgICBweXRob25SdW50aW1lcyA9ICRweXRob25SdW50aW1lUmVzdWx0cy5Ub0FycmF5
KCkNCiAgICB9DQp9IGZpbmFsbHkgew0KICAgIEV4aXQtU291bE9wZXJhdGlvbkxvY2sgLUxvY2sg
JGxvY2sNCn0NCg==
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/secrets-vault.ps1","encoding":"base64","size":79259,"runtimeSha256":"a18bf4fbed09d500d65339a32074dd4aaf94292217e1ca533b0ca6dbac1bab8f","normalizedSha256":"723c23c87e0d0b1f1c13d66b6ec6d040bd8e707d9121320ae35ea322aa3702fe"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KPCMNCi5TWU5PUFNJUw0KICDsmIHtmLzsnZggQVBJ
IO2CpOulvCDtj4nrrLggLmVudiDsl4bsnbQgYWdlIOq4iOqzoOyXkCDrs7TqtIDtlZjqs6AgRFBB
UEkv67O16rWs66y46rWs66GcIOyXsOuLpC4NCg0KLkRFU0NSSVBUSU9ODQogIHZhdWx0LmFnZeuK
lCBhZ2Ug6rO16rCc7YKk66GcIOyVlO2YuO2ZlO2VnOuLpC4g64yA7J2RIOqwnOyduO2CpOuKlCDr
kZAg7ZiV7YOc66Gc66eMIOuztOq0gO2VnOuLpC4NCiAgMSkg7ZiE7J6sIFdpbmRvd3Mg7IKs7Jqp
7J6Qwrfsu7Ttk6jthLDsl5DshJzrp4wg7Je066as64qUIERQQVBJIOu0ie2IrA0KICAyKSDsgqzs
mqnsnpDqsIAg7JiB7Zi8IO2PtOuNlCDrsJbsl5Ag67O06rSA7ZWY64qUIOuzteq1rOusuOq1rOuh
nCDsnqDqt7wgYWdlIOu0ie2IrA0KDQogIOuzteq1rOusuOq1rCDsm5DrrLjsnbTrgpgg7J2867CY
IFNIQSDtlbTsi5zripQg7KCA7J6l7ZWY7KeAIOyViuuKlOuLpC4g66ee64qUIOusuOq1rOyduOyn
gCDtmZXsnbjtlaAg65WM64qUDQogIFBCS0RGMi1ITUFDLVNIQTI1NuycvOuhnCDrp4zrk6Ag6rKA
7Kad6rCS7J2EIOqzoOygleyLnOqwhCDruYTqtZDtlZzri6QuIOuzteq1rOusuOq1rOuKlCDsnbjs
iJjCt+uhnOq3uMK3DQogIO2BtOumveuztOuTnOuhnCDrsJvsp4Ag7JWK6rOgIOuztOyViCDsnoXr
oKXssL3sl5DshJzrp4wg67Cb64qU64ukLg0KIz4NCltDbWRsZXRCaW5kaW5nKCldDQpwYXJhbSgN
CiAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV0NCiAgICBbVmFsaWRhdGVTZXQoJ0lu
aXRpYWxpemUnLCAnSW1wb3J0RW52JywgJ1VubG9jaycsICdSb3RhdGVSZWNvdmVyeScsICdDbGVh
bnVwTGVhc2UnLCAnU3RhdHVzJywgJ1NlbGZUZXN0JyldDQogICAgW3N0cmluZ10kQWN0aW9uLA0K
DQogICAgW3N0cmluZ10kU291bFJvb3QsDQogICAgW3N0cmluZ10kRW52UGF0aCwNCiAgICBbc3Ry
aW5nXSRMZWdhY3lFbnZQYXRoLA0KICAgIFtzdHJpbmdbXV0kQ3JlZGVudGlhbEZpbGVQYXRoID0g
QCgpLA0KICAgIFtzdHJpbmdbXV0kSW5qZWN0S2V5ID0gQCgpLA0KICAgIFtzdHJpbmdbXV0kUmVz
dG9yZUZpbGVBbGlhcyA9IEAoKSwNCiAgICBbVmFsaWRhdGVQYXR0ZXJuKCdeWzAtOWEtZkEtRi1d
ezM2fSQnKV1bc3RyaW5nXSRMZWFzZUlkLA0KICAgIFtpbnRdJExlYXNlT3duZXJQcm9jZXNzSWQg
PSAwLA0KICAgIFtzdHJpbmddJExlYXNlT3duZXJTdGFydFV0YywNCiAgICBbc3dpdGNoXSRVc2VS
ZWNvdmVyeVBocmFzZSwNCiAgICBbc3dpdGNoXSROb0luamVjdCwNCiAgICBbc3RyaW5nXSRUcnVz
dGVkQWdlUGF0aCwNCiAgICBbVmFsaWRhdGVQYXR0ZXJuKCdeWzAtOWEtZkEtRl17NjR9JCcpXVtz
dHJpbmddJFRydXN0ZWRBZ2VTaGEyNTYsDQogICAgW3N0cmluZ10kVHJ1c3RlZEFnZUtleWdlblBh
dGgsDQogICAgW1ZhbGlkYXRlUGF0dGVybignXlswLTlhLWZBLUZdezY0fSQnKV1bc3RyaW5nXSRU
cnVzdGVkQWdlS2V5Z2VuU2hhMjU2LA0KICAgIFtzdHJpbmddJFRydXN0ZWRBZ2VQbHVnaW5CYXRj
aHBhc3NQYXRoLA0KICAgIFtWYWxpZGF0ZVBhdHRlcm4oJ15bMC05YS1mQS1GXXs2NH0kJyldW3N0
cmluZ10kVHJ1c3RlZEFnZVBsdWdpbkJhdGNocGFzc1NoYTI1Ng0KKQ0KDQpTZXQtU3RyaWN0TW9k
ZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCcNCg0KJG1v
ZHVsZVBhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAnZW5naW5lXFNvdWwuRW5naW5lLnBz
bTEnDQppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbW9kdWxlUGF0aCAtUGF0aFR5
cGUgTGVhZikpIHsNCiAgICB0aHJvdyAi6rO17Ya1IOyEuO2MhSDsl5Tsp4TsnYQg7LC+7KeAIOuq
u+2WiOyKteuLiOuLpDogJG1vZHVsZVBhdGhgbuq4sOyhtCDsi5ztgazrpr/snYAg6rG065Oc66as
7KeAIOyViuyVmOyKteuLiOuLpC4iDQp9DQpJbXBvcnQtTW9kdWxlIC1OYW1lICRtb2R1bGVQYXRo
IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0u
U2VjdXJpdHkgLUVycm9yQWN0aW9uIFN0b3ANCg0KZnVuY3Rpb24gR2V0LUZ1bGxMaXRlcmFsUGF0
aCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICBbU3lzdGVtLklPLlBhdGhdOjpHZXRG
dWxsUGF0aCgkUGF0aCkuVHJpbUVuZCgnXCcpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtSXNVbmRlclBh
dGggew0KICAgIHBhcmFtKFtzdHJpbmddJENhbmRpZGF0ZSwgW3N0cmluZ10kUGFyZW50KQ0KICAg
ICRjYW5kaWRhdGVGdWxsID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkQ2FuZGlkYXRlDQogICAgJHBh
cmVudEZ1bGwgPSBHZXQtRnVsbExpdGVyYWxQYXRoICRQYXJlbnQNCiAgICAkY2FuZGlkYXRlRnVs
bC5FcXVhbHMoJHBhcmVudEZ1bGwsIFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJ
Z25vcmVDYXNlKSAtb3INCiAgICAgICAgJGNhbmRpZGF0ZUZ1bGwuU3RhcnRzV2l0aCgkcGFyZW50
RnVsbCArICdcJywgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2Up
DQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1Ob1JlcGFyc2VXaXRoaW5TZWNyZXQgew0KICAgIHBhcmFt
KFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJEJvdW5kYXJ5KQ0KICAgICRmdWxsID0gR2V0LUZ1bGxM
aXRlcmFsUGF0aCAkUGF0aA0KICAgICRiYXNlID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkQm91bmRh
cnkNCiAgICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVyUGF0aCAtQ2FuZGlkYXRlICRmdWxsIC1QYXJl
bnQgJGJhc2UpKSB7IHRocm93ICfsi5ztgazrpr8g6rSA66asIOqyveuhnOqwgCDtl4jsmqkg67KU
7JyE66W8IOuyl+yWtOuCrOyKteuLiOuLpC4nIH0NCiAgICAkY3VycmVudCA9ICRiYXNlDQogICAg
aWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGN1cnJlbnQpIHsNCiAgICAgICAgJGJhc2VJdGVt
ID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRjdXJyZW50IC1Gb3JjZQ0KICAgICAgICBpZiAoKCRi
YXNlSXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2lu
dCkgLW5lIDApIHsgdGhyb3cgJ+yLnO2BrOumvyDqtIDrpqwg6rK96rOE6rCAIOyXsOqysOygkOye
heuLiOuLpC4nIH0NCiAgICB9DQogICAgZm9yZWFjaCAoJHBhcnQgaW4gJGZ1bGwuU3Vic3RyaW5n
KCRiYXNlLkxlbmd0aCkuVHJpbVN0YXJ0KCdcJykuU3BsaXQoJ1wnKSkgew0KICAgICAgICBpZiAo
W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkcGFydCkpIHsgY29udGludWUgfQ0KICAgICAg
ICAkY3VycmVudCA9IEpvaW4tUGF0aCAkY3VycmVudCAkcGFydA0KICAgICAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY3VycmVudCkpIHsgYnJlYWsgfQ0KICAgICAgICAkaXRl
bSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkY3VycmVudCAtRm9yY2UNCiAgICAgICAgaWYgKCgk
aXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkg
LW5lIDApIHsgdGhyb3cgJ+yLnO2BrOumvyDqtIDrpqwg6rK966Gc7JeQIOyXsOqysOygkOydtCDs
nojsirXri4jri6QuJyB9DQogICAgfQ0KICAgIHJldHVybiAkZnVsbA0KfQ0KDQpmdW5jdGlvbiBH
ZXQtRmlsZVNoYTI1NiB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICAkc3RyZWFtID0g
TmV3LU9iamVjdCBTeXN0ZW0uSU8uRmlsZVN0cmVhbSgkUGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9k
ZV06Ok9wZW4sIFtTeXN0ZW0uSU8uRmlsZUFjY2Vzc106OlJlYWQsIFtTeXN0ZW0uSU8uRmlsZVNo
YXJlXTo6UmVhZCkNCiAgICAkc2hhID0gW1N5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuU0hB
MjU2XTo6Q3JlYXRlKCkNCiAgICB0cnkgeyAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRzaGEu
Q29tcHV0ZUhhc2goJHN0cmVhbSkpKS5SZXBsYWNlKCctJywgJycpLlRvTG93ZXJJbnZhcmlhbnQo
KSB9DQogICAgZmluYWxseSB7ICRzaGEuRGlzcG9zZSgpOyAkc3RyZWFtLkRpc3Bvc2UoKSB9DQp9
DQoNCmZ1bmN0aW9uIEdldC1GaWxlSG1hYyB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW3N0
cmluZ10kSWRlbnRpdHksIFtzdHJpbmddJENvbnRleHQsIFtzdHJpbmddJFNvdWxJZCkNCiAgICAk
a2V5ID0gW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCRJZGVudGl0eSkNCiAgICAkaG1h
YyA9IE5ldy1PYmplY3QgU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LkhNQUNTSEEyNTYgLUFyZ3VtZW50
TGlzdCAoLCRrZXkpDQogICAgJHN0cmVhbSA9IE5ldy1PYmplY3QgSU8uRmlsZVN0cmVhbSgkUGF0
aCwgW0lPLkZpbGVNb2RlXTo6T3BlbiwgW0lPLkZpbGVBY2Nlc3NdOjpSZWFkLCBbSU8uRmlsZVNo
YXJlXTo6UmVhZCkNCiAgICB0cnkgew0KICAgICAgICAkcHJlZml4ID0gW1RleHQuRW5jb2Rpbmdd
OjpVVEY4LkdldEJ5dGVzKCRDb250ZXh0ICsgJ3wnICsgJFNvdWxJZCArICd8JykNCiAgICAgICAg
JGhtYWMuVHJhbnNmb3JtQmxvY2soJHByZWZpeCwgMCwgJHByZWZpeC5MZW5ndGgsICRudWxsLCAw
KSB8IE91dC1OdWxsDQogICAgICAgICRidWZmZXIgPSBOZXctT2JqZWN0IGJ5dGVbXSAxMDQ4NTc2
DQogICAgICAgIHdoaWxlICgoJHJlYWQgPSAkc3RyZWFtLlJlYWQoJGJ1ZmZlciwgMCwgJGJ1ZmZl
ci5MZW5ndGgpKSAtZ3QgMCkgeyAkaG1hYy5UcmFuc2Zvcm1CbG9jaygkYnVmZmVyLCAwLCAkcmVh
ZCwgJG51bGwsIDApIHwgT3V0LU51bGwgfQ0KICAgICAgICAkaG1hYy5UcmFuc2Zvcm1GaW5hbEJs
b2NrKChOZXctT2JqZWN0IGJ5dGVbXSAwKSwgMCwgMCkgfCBPdXQtTnVsbA0KICAgICAgICBbQ29u
dmVydF06OlRvQmFzZTY0U3RyaW5nKCRobWFjLkhhc2gpDQogICAgfQ0KICAgIGZpbmFsbHkgeyAk
c3RyZWFtLkRpc3Bvc2UoKTsgJGhtYWMuRGlzcG9zZSgpOyBbQXJyYXldOjpDbGVhcigka2V5LCAw
LCAka2V5Lkxlbmd0aCkgfQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LUZpbGVIbWFjIHsNCiAgICBwYXJh
bShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRJZGVudGl0eSwgW3N0cmluZ10kQ29udGV4dCwgW3N0
cmluZ10kU291bElkLCBbc3RyaW5nXSRFeHBlY3RlZCkNCiAgICAkYWN0dWFsQnl0ZXMgPSBbQ29u
dmVydF06OkZyb21CYXNlNjRTdHJpbmcoKEdldC1GaWxlSG1hYyAtUGF0aCAkUGF0aCAtSWRlbnRp
dHkgJElkZW50aXR5IC1Db250ZXh0ICRDb250ZXh0IC1Tb3VsSWQgJFNvdWxJZCkpDQogICAgJGV4
cGVjdGVkQnl0ZXMgPSBbQ29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoJEV4cGVjdGVkKQ0KICAg
IHRyeSB7IFRlc3QtQ29uc3RhbnRUaW1lQnl0ZXMgLUxlZnQgJGFjdHVhbEJ5dGVzIC1SaWdodCAk
ZXhwZWN0ZWRCeXRlcyB9DQogICAgZmluYWxseSB7IFtBcnJheV06OkNsZWFyKCRhY3R1YWxCeXRl
cywgMCwgJGFjdHVhbEJ5dGVzLkxlbmd0aCk7IFtBcnJheV06OkNsZWFyKCRleHBlY3RlZEJ5dGVz
LCAwLCAkZXhwZWN0ZWRCeXRlcy5MZW5ndGgpIH0NCn0NCg0KZnVuY3Rpb24gV3JpdGUtVGV4dENy
ZWF0ZU5ldyB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kVGV4dCkNCiAgICBb
U3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoU3BsaXQtUGF0aCAtUGFyZW50
ICRQYXRoKSkgfCBPdXQtTnVsbA0KICAgICRzdHJlYW0gPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5G
aWxlU3RyZWFtKCRQYXRoLCBbU3lzdGVtLklPLkZpbGVNb2RlXTo6Q3JlYXRlTmV3LCBbU3lzdGVt
LklPLkZpbGVBY2Nlc3NdOjpXcml0ZSwgW1N5c3RlbS5JTy5GaWxlU2hhcmVdOjpOb25lKQ0KICAg
IHRyeSB7DQogICAgICAgICR1dGY4ID0gTmV3LU9iamVjdCBTeXN0ZW0uVGV4dC5VVEY4RW5jb2Rp
bmcoJGZhbHNlKQ0KICAgICAgICAkd3JpdGVyID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8uU3RyZWFt
V3JpdGVyKCRzdHJlYW0sICR1dGY4KQ0KICAgICAgICB0cnkgeyAkd3JpdGVyLldyaXRlKCRUZXh0
KTsgJHdyaXRlci5GbHVzaCgpOyAkc3RyZWFtLkZsdXNoKCR0cnVlKSB9IGZpbmFsbHkgeyAkd3Jp
dGVyLkRpc3Bvc2UoKSB9DQogICAgfQ0KICAgIGZpbmFsbHkgeyAkc3RyZWFtLkRpc3Bvc2UoKSB9
DQp9DQoNCmZ1bmN0aW9uIFdyaXRlLUJ5dGVzQ3JlYXRlTmV3IHsNCiAgICBwYXJhbShbc3RyaW5n
XSRQYXRoLCBbYnl0ZVtdXSRCeXRlcykNCiAgICBbU3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0
ZURpcmVjdG9yeSgoU3BsaXQtUGF0aCAtUGFyZW50ICRQYXRoKSkgfCBPdXQtTnVsbA0KICAgICRz
dHJlYW0gPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5GaWxlU3RyZWFtKCRQYXRoLCBbU3lzdGVtLklP
LkZpbGVNb2RlXTo6Q3JlYXRlTmV3LCBbU3lzdGVtLklPLkZpbGVBY2Nlc3NdOjpXcml0ZSwgW1N5
c3RlbS5JTy5GaWxlU2hhcmVdOjpOb25lKQ0KICAgIHRyeSB7ICRzdHJlYW0uV3JpdGUoJEJ5dGVz
LCAwLCAkQnl0ZXMuTGVuZ3RoKTsgJHN0cmVhbS5GbHVzaCgkdHJ1ZSkgfSBmaW5hbGx5IHsgJHN0
cmVhbS5EaXNwb3NlKCkgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1Kc29uQ3JlYXRlTmV3IHsNCiAg
ICBwYXJhbShbc3RyaW5nXSRQYXRoLCAkVmFsdWUpDQogICAgV3JpdGUtVGV4dENyZWF0ZU5ldyAt
UGF0aCAkUGF0aCAtVGV4dCAoKCRWYWx1ZSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAzMCkgKyBb
RW52aXJvbm1lbnRdOjpOZXdMaW5lKQ0KfQ0KDQpmdW5jdGlvbiBSZXBsYWNlLUZpbGVQcmVzZXJ2
ZU9sZCB7DQogICAgcGFyYW0oW3N0cmluZ10kTmV3UGF0aCwgW3N0cmluZ10kQ3VycmVudFBhdGgs
IFtzdHJpbmddJExlZ2FjeURpcmVjdG9yeSwgW3N0cmluZ10kTGFiZWwpDQogICAgW1N5c3RlbS5J
Ty5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJExlZ2FjeURpcmVjdG9yeSkgfCBPdXQtTnVs
bA0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRDdXJyZW50UGF0aCAtUGF0
aFR5cGUgTGVhZikpIHsNCiAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6TW92ZSgkTmV3UGF0aCwg
JEN1cnJlbnRQYXRoKQ0KICAgICAgICByZXR1cm4gJG51bGwNCiAgICB9DQogICAgJGxlZ2FjeVBh
dGggPSBKb2luLVBhdGggJExlZ2FjeURpcmVjdG9yeSAoJExhYmVsICsgJy0nICsgW0RhdGVUaW1l
XTo6VXRjTm93LlRvU3RyaW5nKCd5eXl5TU1kZFRISG1tc3NmZmZmZmZmWicpICsgJy0nICsgW2d1
aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKSArIFtTeXN0ZW0uSU8uUGF0aF06OkdldEV4dGVu
c2lvbigkQ3VycmVudFBhdGgpKQ0KICAgIFtTeXN0ZW0uSU8uRmlsZV06OkNvcHkoJEN1cnJlbnRQ
YXRoLCAkbGVnYWN5UGF0aCwgJGZhbHNlKQ0KICAgIFtTeXN0ZW0uSU8uRmlsZV06OlNldEF0dHJp
YnV0ZXMoJGxlZ2FjeVBhdGgsIChbU3lzdGVtLklPLkZpbGVdOjpHZXRBdHRyaWJ1dGVzKCRsZWdh
Y3lQYXRoKSAtYm9yIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZWFkT25seSkpDQogICAg
JHJlcGxhY2VCYWNrdXAgPSBKb2luLVBhdGggKFNwbGl0LVBhdGggLVBhcmVudCAkQ3VycmVudFBh
dGgpICgnLnJlcGxhY2UtJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykpDQogICAg
dHJ5IHsgW1N5c3RlbS5JTy5GaWxlXTo6UmVwbGFjZSgkTmV3UGF0aCwgJEN1cnJlbnRQYXRoLCAk
cmVwbGFjZUJhY2t1cCwgJHRydWUpIH0NCiAgICBmaW5hbGx5IHsgaWYgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJHJlcGxhY2VCYWNrdXAgLVBhdGhUeXBlIExlYWYpIHsgW1N5c3RlbS5JTy5GaWxl
XTo6RGVsZXRlKCRyZXBsYWNlQmFja3VwKSB9IH0NCiAgICByZXR1cm4gJGxlZ2FjeVBhdGgNCn0N
Cg0KZnVuY3Rpb24gUmVwYWlyLUNpcGhlckZyb21FbmNyeXB0ZWRMZWdhY3kgew0KICAgIHBhcmFt
KFtzdHJpbmddJEN1cnJlbnRQYXRoLCBbc3RyaW5nXSRFeHBlY3RlZFNoYTI1NiwgW3N0cmluZ10k
TGVnYWN5RGlyZWN0b3J5LCBbc3RyaW5nXSRMZWdhY3lQYXR0ZXJuLCBbc3RyaW5nXSRMYWJlbCkN
CiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkQ3VycmVudFBhdGggLVBhdGhU
eXBlIExlYWYpKSB7IHRocm93ICIkTGFiZWwg7YyM7J287J20IOyXhuyKteuLiOuLpC4iIH0NCiAg
ICBpZiAoKEdldC1GaWxlU2hhMjU2ICRDdXJyZW50UGF0aCkgLWVxICRFeHBlY3RlZFNoYTI1Nikg
eyByZXR1cm4gJGZhbHNlIH0NCiAgICAkY2FuZGlkYXRlID0gR2V0LUNoaWxkSXRlbSAtTGl0ZXJh
bFBhdGggJExlZ2FjeURpcmVjdG9yeSAtRmlsdGVyICRMZWdhY3lQYXR0ZXJuIC1GaWxlIC1FcnJv
ckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwNCiAgICAgICAgU29ydC1PYmplY3QgTGFzdFdyaXRl
VGltZVV0YyAtRGVzY2VuZGluZyB8IFdoZXJlLU9iamVjdCB7IChHZXQtRmlsZVNoYTI1NiAkXy5G
dWxsTmFtZSkgLWVxICRFeHBlY3RlZFNoYTI1NiB9IHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQ0K
ICAgIGlmICgkbnVsbCAtZXEgJGNhbmRpZGF0ZSkgeyB0aHJvdyAiJExhYmVsIO2VtOyLnOqwgCBt
ZXRhZGF0YeyZgCDri6TrpbTqs6AsIOunnuuKlCDslZTtmLjtmZQg7J207KCE67O464+EIOyXhuyK
teuLiOuLpC4iIH0NCiAgICAkdGVtcG9yYXJ5ID0gSm9pbi1QYXRoIChTcGxpdC1QYXRoIC1QYXJl
bnQgJEN1cnJlbnRQYXRoKSAoJy5yZXBhaXItJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5n
KCdOJykgKyBbSU8uUGF0aF06OkdldEV4dGVuc2lvbigkQ3VycmVudFBhdGgpKQ0KICAgIFtJTy5G
aWxlXTo6Q29weSgkY2FuZGlkYXRlLkZ1bGxOYW1lLCAkdGVtcG9yYXJ5LCAkZmFsc2UpDQogICAg
W0lPLkZpbGVdOjpTZXRBdHRyaWJ1dGVzKCR0ZW1wb3JhcnksIChbSU8uRmlsZV06OkdldEF0dHJp
YnV0ZXMoJHRlbXBvcmFyeSkgLWJhbmQgKC1ibm90IFtJTy5GaWxlQXR0cmlidXRlc106OlJlYWRP
bmx5KSkpDQogICAgJGZhaWxlZCA9IEpvaW4tUGF0aCAkTGVnYWN5RGlyZWN0b3J5ICgnZmFpbGVk
LScgKyAkTGFiZWwgKyAnLScgKyBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ3l5eXlNTWRk
VEhIbW1zc2ZmZmZmZmZaJykgKyAnLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnTicp
ICsgW0lPLlBhdGhdOjpHZXRFeHRlbnNpb24oJEN1cnJlbnRQYXRoKSkNCiAgICBbSU8uRmlsZV06
OlJlcGxhY2UoJHRlbXBvcmFyeSwgJEN1cnJlbnRQYXRoLCAkZmFpbGVkLCAkdHJ1ZSkNCiAgICBb
SU8uRmlsZV06OlNldEF0dHJpYnV0ZXMoJGZhaWxlZCwgKFtJTy5GaWxlXTo6R2V0QXR0cmlidXRl
cygkZmFpbGVkKSAtYm9yIFtJTy5GaWxlQXR0cmlidXRlc106OlJlYWRPbmx5KSkNCiAgICByZXR1
cm4gJHRydWUNCn0NCg0KZnVuY3Rpb24gQ29udmVydEZyb20tU2VjdXJlU3RyaW5nTWVtb3J5IHsN
CiAgICBwYXJhbShbU3lzdGVtLlNlY3VyaXR5LlNlY3VyZVN0cmluZ10kU2VjdXJlKQ0KICAgICRw
b2ludGVyID0gW1J1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTZWN1cmVTdHJpbmdU
b0JTVFIoJFNlY3VyZSkNCiAgICB0cnkgeyBbUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hh
bF06OlB0clRvU3RyaW5nQlNUUigkcG9pbnRlcikgfQ0KICAgIGZpbmFsbHkgeyBbUnVudGltZS5J
bnRlcm9wU2VydmljZXMuTWFyc2hhbF06Olplcm9GcmVlQlNUUigkcG9pbnRlcikgfQ0KfQ0KDQpm
dW5jdGlvbiBOb3JtYWxpemUtUmVjb3ZlcnlQaHJhc2Ugew0KICAgIHBhcmFtKFtzdHJpbmddJFBo
cmFzZSkNCiAgICBpZiAoJG51bGwgLWVxICRQaHJhc2UpIHsgcmV0dXJuICcnIH0NCiAgICByZXR1
cm4gKCgkUGhyYXNlIC1yZXBsYWNlICdbXHMtXScsICcnKS5Ub1VwcGVySW52YXJpYW50KCkpDQp9
DQoNCmZ1bmN0aW9uIFJlYWQtUmVjb3ZlcnlQaHJhc2Ugew0KICAgICRzZWN1cmUgPSBSZWFkLUhv
c3QgJ+yYge2YvCDtj7TrjZQg67CW7JeQIOuztOq0gO2VnCDrs7XqtazrrLjqtazrpbwg7J6F66Cl
7ZWY7IS47JqUKO2ZlOuptMK366Gc6re4wrftgbTrpr3rs7Trk5zsl5Ag7ZGc7Iuc7ZWY7KeAIOyV
iuydjCknIC1Bc1NlY3VyZVN0cmluZw0KICAgICRwaHJhc2UgPSBOb3JtYWxpemUtUmVjb3ZlcnlQ
aHJhc2UgKENvbnZlcnRGcm9tLVNlY3VyZVN0cmluZ01lbW9yeSAkc2VjdXJlKQ0KICAgIGlmICgk
cGhyYXNlLkxlbmd0aCAtbHQgMjApIHsgJHBocmFzZSA9ICRudWxsOyB0aHJvdyAn67O16rWs66y4
6rWs6rCAIOuEiOustCDsp6fqsbDrgpgg7J6Y66q7IOyeheugpeuQmOyXiOyKteuLiOuLpC4nIH0N
CiAgICByZXR1cm4gJHBocmFzZQ0KfQ0KDQpmdW5jdGlvbiBDb252ZXJ0VG8tQ3JvY2tmb3JkQmFz
ZTMyIHsNCiAgICBwYXJhbShbYnl0ZVtdXSRCeXRlcykNCiAgICAkYWxwaGFiZXQgPSAnMDEyMzQ1
Njc4OUFCQ0RFRkdISktNTlBRUlNUVldYWVonDQogICAgJGJ1aWxkZXIgPSBOZXctT2JqZWN0IFRl
eHQuU3RyaW5nQnVpbGRlcg0KICAgICRidWZmZXIgPSAwDQogICAgJGJpdHMgPSAwDQogICAgZm9y
ZWFjaCAoJGJ5dGUgaW4gJEJ5dGVzKSB7DQogICAgICAgICRidWZmZXIgPSAoKCRidWZmZXIgLXNo
bCA4KSAtYm9yIFtpbnRdJGJ5dGUpIC1iYW5kIDB4N0ZGRkZGRkYNCiAgICAgICAgJGJpdHMgKz0g
OA0KICAgICAgICB3aGlsZSAoJGJpdHMgLWdlIDUpIHsNCiAgICAgICAgICAgICRiaXRzIC09IDUN
CiAgICAgICAgICAgIFt2b2lkXSRidWlsZGVyLkFwcGVuZCgkYWxwaGFiZXRbKCRidWZmZXIgLXNo
ciAkYml0cykgLWJhbmQgMzFdKQ0KICAgICAgICAgICAgJGJ1ZmZlciA9ICRidWZmZXIgLWJhbmQg
KCgxIC1zaGwgJGJpdHMpIC0gMSkNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoJGJpdHMgLWd0
IDApIHsgW3ZvaWRdJGJ1aWxkZXIuQXBwZW5kKCRhbHBoYWJldFsoJGJ1ZmZlciAtc2hsICg1IC0g
JGJpdHMpKSAtYmFuZCAzMV0pIH0NCiAgICAkYnVpbGRlci5Ub1N0cmluZygpDQp9DQoNCmZ1bmN0
aW9uIE5ldy1HZW5lcmF0ZWRSZWNvdmVyeVBocmFzZSB7DQogICAgJGJ5dGVzID0gTmV3LVJhbmRv
bUJ5dGVzIDMyDQogICAgdHJ5IHsgQ29udmVydFRvLUNyb2NrZm9yZEJhc2UzMiAtQnl0ZXMgJGJ5
dGVzIH0NCiAgICBmaW5hbGx5IHsgW0FycmF5XTo6Q2xlYXIoJGJ5dGVzLCAwLCAkYnl0ZXMuTGVu
Z3RoKSB9DQp9DQoNCmZ1bmN0aW9uIFNob3ctTmV3UmVjb3ZlcnlQaHJhc2VPbmNlIHsNCiAgICBp
ZiAoW1RocmVhZGluZy5UaHJlYWRdOjpDdXJyZW50VGhyZWFkLkFwYXJ0bWVudFN0YXRlIC1uZSBb
VGhyZWFkaW5nLkFwYXJ0bWVudFN0YXRlXTo6U1RBKSB7DQogICAgICAgIHRocm93ICfrs7Xqtazr
rLjqtawg7ZmV7J247LC97J2AIFNUQSBQb3dlclNoZWxs7JeQ7IScIOyXtOyWtOyVvCDtlanri4jr
i6QuIOyLoOuisOuQnCDshoztmZjquLDqsIAg7J6Q64+Z7Jy866GcIFNUQeuhnCDri6Tsi5wg7Iuk
7ZaJ7ZW07JW8IO2VqeuLiOuLpC4nDQogICAgfQ0KICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUg
U3lzdGVtLldpbmRvd3MuRm9ybXMgLUVycm9yQWN0aW9uIFN0b3ANCiAgICBBZGQtVHlwZSAtQXNz
ZW1ibHlOYW1lIFN5c3RlbS5EcmF3aW5nIC1FcnJvckFjdGlvbiBTdG9wDQogICAgJGNhbm9uaWNh
bCA9IE5ldy1HZW5lcmF0ZWRSZWNvdmVyeVBocmFzZQ0KICAgICRncm91cHMgPSBOZXctT2JqZWN0
IENvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgZm9yICgkaSA9IDA7ICRpIC1s
dCAkY2Fub25pY2FsLkxlbmd0aDsgJGkgKz0gNCkgeyAkZ3JvdXBzLkFkZCgkY2Fub25pY2FsLlN1
YnN0cmluZygkaSwgW01hdGhdOjpNaW4oNCwgJGNhbm9uaWNhbC5MZW5ndGggLSAkaSkpKSB9DQog
ICAgJGRpc3BsYXkgPSAkZ3JvdXBzIC1qb2luICctJw0KICAgICRmb3JtID0gTmV3LU9iamVjdCBX
aW5kb3dzLkZvcm1zLkZvcm0NCiAgICAkZm9ybS5UZXh0ID0gJ+yYge2YvCDrs7XqtazrrLjqtawg
4oCUIOydtOuyiCDtlZwg67KI66eMIO2RnOyLnCcNCiAgICAkZm9ybS5XaWR0aCA9IDgyMDsgJGZv
cm0uSGVpZ2h0ID0gNDIwOyAkZm9ybS5TdGFydFBvc2l0aW9uID0gJ0NlbnRlclNjcmVlbic7ICRm
b3JtLlRvcE1vc3QgPSAkdHJ1ZQ0KICAgICRmb3JtLkZvcm1Cb3JkZXJTdHlsZSA9IFtXaW5kb3dz
LkZvcm1zLkZvcm1Cb3JkZXJTdHlsZV06OkZpeGVkRGlhbG9nOyAkZm9ybS5NYXhpbWl6ZUJveCA9
ICRmYWxzZTsgJGZvcm0uTWluaW1pemVCb3ggPSAkZmFsc2UNCiAgICAkdGl0bGUgPSBOZXctT2Jq
ZWN0IFdpbmRvd3MuRm9ybXMuTGFiZWwNCiAgICAkdGl0bGUuTGVmdCA9IDI0OyAkdGl0bGUuVG9w
ID0gMjI7ICR0aXRsZS5XaWR0aCA9IDc1MDsgJHRpdGxlLkhlaWdodCA9IDQ4DQogICAgJHRpdGxl
LkZvbnQgPSBOZXctT2JqZWN0IERyYXdpbmcuRm9udCgnTWFsZ3VuIEdvdGhpYycsIDE0LCBbRHJh
d2luZy5Gb250U3R5bGVdOjpCb2xkKQ0KICAgICR0aXRsZS5UZXh0ID0gJ+yVhOuemCDrs7Xqtazr
rLjqtazrpbwg7KKF7J207JeQIOyggeyWtCDsmIHtmLwg7Y+0642UwrdVU0LsmYAg64uk66W4IOqz
s+yXkCDrs7TqtIDtlZjshLjsmpQuJw0KICAgICRwaHJhc2VMYWJlbCA9IE5ldy1PYmplY3QgV2lu
ZG93cy5Gb3Jtcy5MYWJlbA0KICAgICRwaHJhc2VMYWJlbC5MZWZ0ID0gMjQ7ICRwaHJhc2VMYWJl
bC5Ub3AgPSA4ODsgJHBocmFzZUxhYmVsLldpZHRoID0gNzUwOyAkcGhyYXNlTGFiZWwuSGVpZ2h0
ID0gNjINCiAgICAkcGhyYXNlTGFiZWwuRm9udCA9IE5ldy1PYmplY3QgRHJhd2luZy5Gb250KCdD
b25zb2xhcycsIDEzLCBbRHJhd2luZy5Gb250U3R5bGVdOjpCb2xkKQ0KICAgICRwaHJhc2VMYWJl
bC5Cb3JkZXJTdHlsZSA9IFtXaW5kb3dzLkZvcm1zLkJvcmRlclN0eWxlXTo6Rml4ZWRTaW5nbGU7
ICRwaHJhc2VMYWJlbC5UZXh0QWxpZ24gPSBbRHJhd2luZy5Db250ZW50QWxpZ25tZW50XTo6TWlk
ZGxlQ2VudGVyDQogICAgJHBocmFzZUxhYmVsLlRleHQgPSAkZGlzcGxheQ0KICAgICRub3RpY2Ug
PSBOZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuTGFiZWwNCiAgICAkbm90aWNlLkxlZnQgPSAyNDsg
JG5vdGljZS5Ub3AgPSAxNjI7ICRub3RpY2UuV2lkdGggPSA3NTA7ICRub3RpY2UuSGVpZ2h0ID0g
NDQNCiAgICAkbm90aWNlLlRleHQgPSAn7J20IOusuOq1rOuKlCDtjIzsnbzCt+uhnOq3uMK366qF
66C5IOyduOyImMK37YG066a967O065Oc7JeQIOyggOyepeuQmOyngCDslYrsirXri4jri6QuIOyw
veydhCDri6vsnLzrqbQg6rCZ7J2AIOusuOq1rOulvCDri6Tsi5wg67O07Jes7KO87KeAIOyViuyK
teuLiOuLpC4nDQogICAgJGNoZWNrID0gTmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkNoZWNrQm94
DQogICAgJGNoZWNrLkxlZnQgPSAyNDsgJGNoZWNrLlRvcCA9IDIxODsgJGNoZWNrLldpZHRoID0g
NzUwOyAkY2hlY2suVGV4dCA9ICfsmIHtmLwg7Y+0642U7JmAIOuLpOuluCDslYjsoITtlZwg7J6l
7IaM7JeQIOyngeygkSDquLDroZ3tlojsirXri4jri6QuJw0KICAgICRpbnB1dExhYmVsID0gTmV3
LU9iamVjdCBXaW5kb3dzLkZvcm1zLkxhYmVsDQogICAgJGlucHV0TGFiZWwuTGVmdCA9IDI0OyAk
aW5wdXRMYWJlbC5Ub3AgPSAyNTQ7ICRpbnB1dExhYmVsLldpZHRoID0gMjIwOyAkaW5wdXRMYWJl
bC5UZXh0ID0gJ+2ZleyduOydhCDsnITtlbQg64uk7IucIOyeheugpTonDQogICAgJGlucHV0ID0g
TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLlRleHRCb3gNCiAgICAkaW5wdXQuTGVmdCA9IDIzMDsg
JGlucHV0LlRvcCA9IDI0OTsgJGlucHV0LldpZHRoID0gNTQ0OyAkaW5wdXQuVXNlU3lzdGVtUGFz
c3dvcmRDaGFyID0gJHRydWUNCiAgICAkY29uZmlybSA9IE5ldy1PYmplY3QgV2luZG93cy5Gb3Jt
cy5CdXR0b24NCiAgICAkY29uZmlybS5MZWZ0ID0gNTk0OyAkY29uZmlybS5Ub3AgPSAzMDQ7ICRj
b25maXJtLldpZHRoID0gMTgwOyAkY29uZmlybS5IZWlnaHQgPSAzNjsgJGNvbmZpcm0uVGV4dCA9
ICftmZXsnbjtlZjqs6Ag6riI6rOgIOunjOuTpOq4sCcNCiAgICAkY2FuY2VsID0gTmV3LU9iamVj
dCBXaW5kb3dzLkZvcm1zLkJ1dHRvbg0KICAgICRjYW5jZWwuTGVmdCA9IDQzMDsgJGNhbmNlbC5U
b3AgPSAzMDQ7ICRjYW5jZWwuV2lkdGggPSAxNTA7ICRjYW5jZWwuSGVpZ2h0ID0gMzY7ICRjYW5j
ZWwuVGV4dCA9ICfst6jshownDQogICAgJGZvcm0uQ29udHJvbHMuQWRkUmFuZ2UoQCgkdGl0bGUs
ICRwaHJhc2VMYWJlbCwgJG5vdGljZSwgJGNoZWNrLCAkaW5wdXRMYWJlbCwgJGlucHV0LCAkY29u
ZmlybSwgJGNhbmNlbCkpDQogICAgJGZvcm0uQWNjZXB0QnV0dG9uID0gJGNvbmZpcm07ICRmb3Jt
LkNhbmNlbEJ1dHRvbiA9ICRjYW5jZWwNCiAgICAkY29uZmlybWVkID0gJGZhbHNlDQogICAgJGNv
bmZpcm0uQWRkX0NsaWNrKHsNCiAgICAgICAgaWYgKC1ub3QgJGNoZWNrLkNoZWNrZWQpIHsgW1dp
bmRvd3MuRm9ybXMuTWVzc2FnZUJveF06OlNob3coJ+uovOyggCDsmbjrtoDsnZgg7JWI7KCE7ZWc
IOyepeyGjOyXkCDsp4HsoJEg6riw66Gd7ZaI7J2M7J2EIO2ZleyduO2VtOyjvOyEuOyalC4nLCAn
67O16rWs66y46rWsIO2ZleyduCcpIHwgT3V0LU51bGw7IHJldHVybiB9DQogICAgICAgIGlmICgt
bm90IChUZXN0LUNvbnN0YW50VGltZVRleHQgLUxlZnQgJGNhbm9uaWNhbCAtUmlnaHQgKE5vcm1h
bGl6ZS1SZWNvdmVyeVBocmFzZSAkaW5wdXQuVGV4dCkpKSB7ICRpbnB1dC5DbGVhcigpOyBbV2lu
ZG93cy5Gb3Jtcy5NZXNzYWdlQm94XTo6U2hvdygn64uk7IucIOyeheugpe2VnCDrrLjqtazqsIAg
64uk66aF64uI64ukLiDsooXsnbTsl5Ag7KCB7J2AIOusuOq1rOulvCDsspzsspztnogg7ZmV7J24
7ZW07KO87IS47JqULicsICfrs7XqtazrrLjqtawg67aI7J287LmYJykgfCBPdXQtTnVsbDsgcmV0
dXJuIH0NCiAgICAgICAgJHNjcmlwdDpSZWNvdmVyeVBocmFzZURpYWxvZ0NvbmZpcm1lZCA9ICR0
cnVlDQogICAgICAgICRwaHJhc2VMYWJlbC5UZXh0ID0gJ+2ZleyduCDsmYTro4wg4oCUIOusuOq1
rOqwgCDtmZTrqbTsl5DshJwg7KeA7JuM7KGM7Iq164uI64ukLic7ICRpbnB1dC5DbGVhcigpOyAk
Zm9ybS5EaWFsb2dSZXN1bHQgPSBbV2luZG93cy5Gb3Jtcy5EaWFsb2dSZXN1bHRdOjpPSzsgJGZv
cm0uQ2xvc2UoKQ0KICAgIH0pDQogICAgJGNhbmNlbC5BZGRfQ2xpY2soeyAkZm9ybS5EaWFsb2dS
ZXN1bHQgPSBbV2luZG93cy5Gb3Jtcy5EaWFsb2dSZXN1bHRdOjpDYW5jZWw7ICRmb3JtLkNsb3Nl
KCkgfSkNCiAgICAkc2NyaXB0OlJlY292ZXJ5UGhyYXNlRGlhbG9nQ29uZmlybWVkID0gJGZhbHNl
DQogICAgdHJ5IHsNCiAgICAgICAgJHJlc3VsdCA9ICRmb3JtLlNob3dEaWFsb2coKQ0KICAgICAg
ICAkY29uZmlybWVkID0gJHNjcmlwdDpSZWNvdmVyeVBocmFzZURpYWxvZ0NvbmZpcm1lZCAtYW5k
ICRyZXN1bHQgLWVxIFtXaW5kb3dzLkZvcm1zLkRpYWxvZ1Jlc3VsdF06Ok9LDQogICAgfQ0KICAg
IGZpbmFsbHkgeyAkcGhyYXNlTGFiZWwuVGV4dCA9ICcnOyAkaW5wdXQuQ2xlYXIoKTsgJGZvcm0u
RGlzcG9zZSgpOyAkZGlzcGxheSA9ICRudWxsOyAkc2NyaXB0OlJlY292ZXJ5UGhyYXNlRGlhbG9n
Q29uZmlybWVkID0gJGZhbHNlIH0NCiAgICBpZiAoLW5vdCAkY29uZmlybWVkKSB7ICRjYW5vbmlj
YWwgPSAkbnVsbDsgdGhyb3cgJ+uzteq1rOusuOq1rCDtmZXsnbjsnYQg7Leo7IaM7ZaI7Iq164uI
64ukLiDquIjqs6Drpbwg7ZmV7KCV7ZWY7KeAIOyViuyVmOyKteuLiOuLpC4nIH0NCiAgICByZXR1
cm4gJGNhbm9uaWNhbA0KfQ0KDQpmdW5jdGlvbiBUZXN0LUNvbnN0YW50VGltZUJ5dGVzIHsNCiAg
ICBwYXJhbShbYnl0ZVtdXSRMZWZ0LCBbYnl0ZVtdXSRSaWdodCkNCiAgICBpZiAoJG51bGwgLWVx
ICRMZWZ0KSB7ICRMZWZ0ID0gTmV3LU9iamVjdCBieXRlW10gMCB9DQogICAgaWYgKCRudWxsIC1l
cSAkUmlnaHQpIHsgJFJpZ2h0ID0gTmV3LU9iamVjdCBieXRlW10gMCB9DQogICAgJGRpZmZlcmVu
Y2UgPSAkTGVmdC5MZW5ndGggLWJ4b3IgJFJpZ2h0Lkxlbmd0aA0KICAgICRtYXhpbXVtID0gW01h
dGhdOjpNYXgoJExlZnQuTGVuZ3RoLCAkUmlnaHQuTGVuZ3RoKQ0KICAgIGZvciAoJGkgPSAwOyAk
aSAtbHQgJG1heGltdW07ICRpKyspIHsNCiAgICAgICAgJGEgPSBpZiAoJGkgLWx0ICRMZWZ0Lkxl
bmd0aCkgeyAkTGVmdFskaV0gfSBlbHNlIHsgMCB9DQogICAgICAgICRiID0gaWYgKCRpIC1sdCAk
UmlnaHQuTGVuZ3RoKSB7ICRSaWdodFskaV0gfSBlbHNlIHsgMCB9DQogICAgICAgICRkaWZmZXJl
bmNlID0gJGRpZmZlcmVuY2UgLWJvciAoJGEgLWJ4b3IgJGIpDQogICAgfQ0KICAgICRkaWZmZXJl
bmNlIC1lcSAwDQp9DQoNCmZ1bmN0aW9uIFRlc3QtQ29uc3RhbnRUaW1lVGV4dCB7DQogICAgcGFy
YW0oW3N0cmluZ10kTGVmdCwgW3N0cmluZ10kUmlnaHQpDQogICAgVGVzdC1Db25zdGFudFRpbWVC
eXRlcyAtTGVmdCAoW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCQoaWYgKCRudWxsIC1l
cSAkTGVmdCkgeyAnJyB9IGVsc2UgeyAkTGVmdCB9KSkpIC1SaWdodCAoW1RleHQuRW5jb2Rpbmdd
OjpVVEY4LkdldEJ5dGVzKCQoaWYgKCRudWxsIC1lcSAkUmlnaHQpIHsgJycgfSBlbHNlIHsgJFJp
Z2h0IH0pKSkNCn0NCg0KZnVuY3Rpb24gTmV3LVJhbmRvbUJ5dGVzIHsNCiAgICBwYXJhbShbaW50
XSRMZW5ndGgpDQogICAgJGJ5dGVzID0gTmV3LU9iamVjdCBieXRlW10gJExlbmd0aA0KICAgICRy
bmcgPSBbU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LlJhbmRvbU51bWJlckdlbmVyYXRvcl06OkNyZWF0
ZSgpDQogICAgdHJ5IHsgJHJuZy5HZXRCeXRlcygkYnl0ZXMpIH0gZmluYWxseSB7ICRybmcuRGlz
cG9zZSgpIH0NCiAgICByZXR1cm4gJGJ5dGVzDQp9DQoNCmZ1bmN0aW9uIE5ldy1SZWNvdmVyeVZl
cmlmaWVyIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQaHJhc2UsIFtzdHJpbmddJFNvdWxJZCwgW2J5
dGVbXV0kU2FsdCwgW2ludF0kSXRlcmF0aW9ucyA9IDI0MDAwMCkNCiAgICBpZiAoJG51bGwgLWVx
ICRTYWx0KSB7ICRTYWx0ID0gTmV3LVJhbmRvbUJ5dGVzIDE2IH0NCiAgICAkZGVyaXZlID0gTmV3
LU9iamVjdCBTZWN1cml0eS5DcnlwdG9ncmFwaHkuUmZjMjg5OERlcml2ZUJ5dGVzKCRQaHJhc2Us
ICRTYWx0LCAkSXRlcmF0aW9ucywgW1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5IYXNoQWxnb3JpdGht
TmFtZV06OlNIQTI1NikNCiAgICAka2V5ID0gJG51bGwNCiAgICB0cnkgew0KICAgICAgICAka2V5
ID0gJGRlcml2ZS5HZXRCeXRlcygzMikNCiAgICAgICAgJGhtYWMgPSBOZXctT2JqZWN0IFNlY3Vy
aXR5LkNyeXB0b2dyYXBoeS5ITUFDU0hBMjU2IC1Bcmd1bWVudExpc3QgKCwka2V5KQ0KICAgICAg
ICB0cnkgeyAkdmFsdWUgPSAkaG1hYy5Db21wdXRlSGFzaChbVGV4dC5FbmNvZGluZ106OlVURjgu
R2V0Qnl0ZXMoJ3NvdWwtcmVjb3ZlcnktdmVyaWZpZXItdjF8JyArICRTb3VsSWQpKSB9DQogICAg
ICAgIGZpbmFsbHkgeyAkaG1hYy5EaXNwb3NlKCkgfQ0KICAgICAgICBbcHNjdXN0b21vYmplY3Rd
QHsgYWxnb3JpdGhtID0gJ1BCS0RGMi1ITUFDLVNIQTI1Nic7IGl0ZXJhdGlvbnMgPSAkSXRlcmF0
aW9uczsgc2FsdCA9IFtDb252ZXJ0XTo6VG9CYXNlNjRTdHJpbmcoJFNhbHQpOyBobWFjID0gW0Nv
bnZlcnRdOjpUb0Jhc2U2NFN0cmluZygkdmFsdWUpIH0NCiAgICB9DQogICAgZmluYWxseSB7DQog
ICAgICAgIGlmICgkbnVsbCAtbmUgJGtleSkgeyBbQXJyYXldOjpDbGVhcigka2V5LCAwLCAka2V5
Lkxlbmd0aCkgfQ0KICAgICAgICAkZGVyaXZlLkRpc3Bvc2UoKQ0KICAgIH0NCn0NCg0KZnVuY3Rp
b24gVGVzdC1SZWNvdmVyeVZlcmlmaWVyIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQaHJhc2UsIFtz
dHJpbmddJFNvdWxJZCwgJFZlcmlmaWVyKQ0KICAgIGlmIChbc3RyaW5nXSRWZXJpZmllci5hbGdv
cml0aG0gLW5lICdQQktERjItSE1BQy1TSEEyNTYnKSB7IHRocm93ICfsp4Dsm5DtlZjsp4Ag7JWK
64qUIOuzteq1rOusuOq1rCDqsoDspp0g67Cp7Iud7J6F64uI64ukLicgfQ0KICAgICRzYWx0ID0g
W0NvbnZlcnRdOjpGcm9tQmFzZTY0U3RyaW5nKFtzdHJpbmddJFZlcmlmaWVyLnNhbHQpDQogICAg
JGNhbmRpZGF0ZSA9IE5ldy1SZWNvdmVyeVZlcmlmaWVyIC1QaHJhc2UgJFBocmFzZSAtU291bElk
ICRTb3VsSWQgLVNhbHQgJHNhbHQgLUl0ZXJhdGlvbnMgKFtpbnRdJFZlcmlmaWVyLml0ZXJhdGlv
bnMpDQogICAgJGV4cGVjdGVkQnl0ZXMgPSBbQ29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoW3N0
cmluZ10kVmVyaWZpZXIuaG1hYykNCiAgICAkYWN0dWFsQnl0ZXMgPSBbQ29udmVydF06OkZyb21C
YXNlNjRTdHJpbmcoW3N0cmluZ10kY2FuZGlkYXRlLmhtYWMpDQogICAgdHJ5IHsgVGVzdC1Db25z
dGFudFRpbWVCeXRlcyAtTGVmdCAkZXhwZWN0ZWRCeXRlcyAtUmlnaHQgJGFjdHVhbEJ5dGVzIH0N
CiAgICBmaW5hbGx5IHsgW0FycmF5XTo6Q2xlYXIoJGV4cGVjdGVkQnl0ZXMsIDAsICRleHBlY3Rl
ZEJ5dGVzLkxlbmd0aCk7IFtBcnJheV06OkNsZWFyKCRhY3R1YWxCeXRlcywgMCwgJGFjdHVhbEJ5
dGVzLkxlbmd0aCkgfQ0KfQ0KDQpmdW5jdGlvbiBRdW90ZS1Qcm9jZXNzQXJndW1lbnQgew0KICAg
IHBhcmFtKFtzdHJpbmddJFZhbHVlKQ0KICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051bGxPckVt
cHR5KCRWYWx1ZSkgLWFuZCAkVmFsdWUgLW5vdG1hdGNoICdbXHMiXScpIHsgcmV0dXJuICRWYWx1
ZSB9DQogICAgJGJ1aWxkZXIgPSBOZXctT2JqZWN0IFRleHQuU3RyaW5nQnVpbGRlcg0KICAgIFt2
b2lkXSRidWlsZGVyLkFwcGVuZCgnIicpDQogICAgJHNsYXNoZXMgPSAwDQogICAgZm9yZWFjaCAo
JGNoYXJhY3RlciBpbiAkVmFsdWUuVG9DaGFyQXJyYXkoKSkgew0KICAgICAgICBpZiAoJGNoYXJh
Y3RlciAtZXEgJ1wnKSB7ICRzbGFzaGVzKys7IGNvbnRpbnVlIH0NCiAgICAgICAgaWYgKCRjaGFy
YWN0ZXIgLWVxICciJykgew0KICAgICAgICAgICAgW3ZvaWRdJGJ1aWxkZXIuQXBwZW5kKCgnXCcg
KiAoKCRzbGFzaGVzICogMikgKyAxKSkpDQogICAgICAgICAgICBbdm9pZF0kYnVpbGRlci5BcHBl
bmQoJyInKQ0KICAgICAgICAgICAgJHNsYXNoZXMgPSAwDQogICAgICAgICAgICBjb250aW51ZQ0K
ICAgICAgICB9DQogICAgICAgIGlmICgkc2xhc2hlcyAtZ3QgMCkgeyBbdm9pZF0kYnVpbGRlci5B
cHBlbmQoKCdcJyAqICRzbGFzaGVzKSk7ICRzbGFzaGVzID0gMCB9DQogICAgICAgIFt2b2lkXSRi
dWlsZGVyLkFwcGVuZCgkY2hhcmFjdGVyKQ0KICAgIH0NCiAgICBpZiAoJHNsYXNoZXMgLWd0IDAp
IHsgW3ZvaWRdJGJ1aWxkZXIuQXBwZW5kKCgnXCcgKiAoJHNsYXNoZXMgKiAyKSkpIH0NCiAgICBb
dm9pZF0kYnVpbGRlci5BcHBlbmQoJyInKQ0KICAgICRidWlsZGVyLlRvU3RyaW5nKCkNCn0NCg0K
ZnVuY3Rpb24gSW52b2tlLVNlY3JldFByb2Nlc3Mgew0KICAgIHBhcmFtKA0KICAgICAgICBbc3Ry
aW5nXSRFeGVjdXRhYmxlLA0KICAgICAgICBbc3RyaW5nW11dJEFyZ3VtZW50cywNCiAgICAgICAg
W3N0cmluZ10kSW5wdXRUZXh0LA0KICAgICAgICBbc3RyaW5nXSRQYXNzcGhyYXNlLA0KICAgICAg
ICBbc3RyaW5nXSRQbHVnaW5EaXJlY3RvcnkNCiAgICApDQogICAgJHN0YXJ0ID0gTmV3LU9iamVj
dCBEaWFnbm9zdGljcy5Qcm9jZXNzU3RhcnRJbmZvDQogICAgJHN0YXJ0LkZpbGVOYW1lID0gJEV4
ZWN1dGFibGUNCiAgICAkaGFzSW5wdXQgPSAkUFNCb3VuZFBhcmFtZXRlcnMuQ29udGFpbnNLZXko
J0lucHV0VGV4dCcpDQogICAgJHBpcGUgPSAkbnVsbA0KICAgICRwaXBlV2FpdCA9ICRudWxsDQog
ICAgJHBpcGVOYW1lID0gJG51bGwNCiAgICAkcGlwZVRva2VuID0gJ3tTT1VMLVNFQ1JFVC1JTlBV
VC1QSVBFfScNCiAgICAkZWZmZWN0aXZlQXJndW1lbnRzID0gQCgkQXJndW1lbnRzKQ0KICAgIGlm
ICgkaGFzSW5wdXQpIHsNCiAgICAgICAgaWYgKCRlZmZlY3RpdmVBcmd1bWVudHMgLW5vdGNvbnRh
aW5zICRwaXBlVG9rZW4pIHsgdGhyb3cgJ+u5hOuwgCDsnoXroKXsnYAg7J6E7IucIO2MjOydvMK3
Qk9N7J2EIO2UvO2VmOuKlCDsoJztlZzrkJwgbmFtZWQgcGlwZSDsnbjsiJjroZzrp4wg7KCE64us
7ZWp64uI64ukLicgfQ0KICAgICAgICAkcGlwZU5hbWUgPSAnc291bC1zZWNyZXQtJyArIFtndWlk
XTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykNCiAgICAgICAgJHBpcGVTZWN1cml0eSA9IE5ldy1P
YmplY3QgU3lzdGVtLklPLlBpcGVzLlBpcGVTZWN1cml0eQ0KICAgICAgICAkcGlwZVNlY3VyaXR5
LlNldEFjY2Vzc1J1bGVQcm90ZWN0aW9uKCR0cnVlLCAkZmFsc2UpDQogICAgICAgICRjdXJyZW50
U2lkID0gW1NlY3VyaXR5LlByaW5jaXBhbC5XaW5kb3dzSWRlbnRpdHldOjpHZXRDdXJyZW50KCku
VXNlcg0KICAgICAgICAkcGlwZVJ1bGUgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5QaXBlcy5QaXBl
QWNjZXNzUnVsZSgkY3VycmVudFNpZCwgW1N5c3RlbS5JTy5QaXBlcy5QaXBlQWNjZXNzUmlnaHRz
XTo6UmVhZCwgW1NlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuQWNjZXNzQ29udHJvbFR5cGVdOjpBbGxv
dykNCiAgICAgICAgJHBpcGVTZWN1cml0eS5BZGRBY2Nlc3NSdWxlKCRwaXBlUnVsZSkNCiAgICAg
ICAgJHBpcGUgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5QaXBlcy5OYW1lZFBpcGVTZXJ2ZXJTdHJl
YW0oDQogICAgICAgICAgICAkcGlwZU5hbWUsIFtJTy5QaXBlcy5QaXBlRGlyZWN0aW9uXTo6T3V0
LCAxLCBbSU8uUGlwZXMuUGlwZVRyYW5zbWlzc2lvbk1vZGVdOjpCeXRlLA0KICAgICAgICAgICAg
KFtJTy5QaXBlcy5QaXBlT3B0aW9uc106OkFzeW5jaHJvbm91cyAtYm9yIFtJTy5QaXBlcy5QaXBl
T3B0aW9uc106OldyaXRlVGhyb3VnaCksIDQwOTYsIDQwOTYsICRwaXBlU2VjdXJpdHkNCiAgICAg
ICAgKQ0KICAgICAgICAkcGlwZVBhdGggPSAnXFwuXHBpcGVcJyArICRwaXBlTmFtZQ0KICAgICAg
ICAkZWZmZWN0aXZlQXJndW1lbnRzID0gQCgkZWZmZWN0aXZlQXJndW1lbnRzIHwgRm9yRWFjaC1P
YmplY3QgeyBpZiAoJF8gLWVxICRwaXBlVG9rZW4pIHsgJHBpcGVQYXRoIH0gZWxzZSB7ICRfIH0g
fSkNCiAgICB9DQogICAgJHN0YXJ0LkFyZ3VtZW50cyA9ICgoJGVmZmVjdGl2ZUFyZ3VtZW50cyB8
IEZvckVhY2gtT2JqZWN0IHsgUXVvdGUtUHJvY2Vzc0FyZ3VtZW50IChbc3RyaW5nXSRfKSB9KSAt
am9pbiAnICcpDQogICAgJHN0YXJ0LlVzZVNoZWxsRXhlY3V0ZSA9ICRmYWxzZQ0KICAgICRzdGFy
dC5DcmVhdGVOb1dpbmRvdyA9ICR0cnVlDQogICAgJHN0YXJ0LlJlZGlyZWN0U3RhbmRhcmRJbnB1
dCA9ICRmYWxzZQ0KICAgICRzdGFydC5SZWRpcmVjdFN0YW5kYXJkT3V0cHV0ID0gJHRydWUNCiAg
ICAkc3RhcnQuUmVkaXJlY3RTdGFuZGFyZEVycm9yID0gJHRydWUNCiAgICAkc3RhcnQuU3RhbmRh
cmRPdXRwdXRFbmNvZGluZyA9IE5ldy1PYmplY3QgVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0K
ICAgICRzdGFydC5TdGFuZGFyZEVycm9yRW5jb2RpbmcgPSBOZXctT2JqZWN0IFRleHQuVVRGOEVu
Y29kaW5nKCRmYWxzZSkNCiAgICAkaGFzUGFzc3BocmFzZSA9ICRQU0JvdW5kUGFyYW1ldGVycy5D
b250YWluc0tleSgnUGFzc3BocmFzZScpDQogICAgaWYgKCRoYXNQYXNzcGhyYXNlKSB7DQogICAg
ICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRQbHVnaW5EaXJlY3RvcnkpIC1v
ciAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRQbHVnaW5EaXJlY3RvcnkgLVBhdGhUeXBl
IENvbnRhaW5lcikpIHsNCiAgICAgICAgICAgIHRocm93ICfruYTrjIDtmZTsi50g67O16rWs7JeQ
64qUIOqygOymneuQnCBiYXRjaHBhc3Mg7ZSM65+s6re47J24IO2PtOuNlOqwgCDtlYTsmpTtlanr
i4jri6QuJw0KICAgICAgICB9DQogICAgICAgICRwbHVnaW5GdWxsID0gR2V0LUZ1bGxMaXRlcmFs
UGF0aCAkUGx1Z2luRGlyZWN0b3J5DQogICAgICAgICRzdGFydC5Xb3JraW5nRGlyZWN0b3J5ID0g
JHBsdWdpbkZ1bGwNCiAgICAgICAgIyBhZ2XqsIAg64uk66W4IFBBVEjsnZgg64+Z66qFIO2UjOuf
rOq3uOyduOydhCDqs6DrpbTsp4Ag66q77ZWY6rKMIOqygOymneuQnCDtj7TrjZQg7ZWY64KY66eM
IOyekOyLnSBQQVRI66GcIOykgOuLpC4NCiAgICAgICAgJHN0YXJ0LkVudmlyb25tZW50VmFyaWFi
bGVzWydQQVRIJ10gPSAkcGx1Z2luRnVsbA0KICAgICAgICAkc3RhcnQuRW52aXJvbm1lbnRWYXJp
YWJsZXNbJ0FHRV9QQVNTUEhSQVNFJ10gPSAkUGFzc3BocmFzZQ0KICAgIH0NCiAgICAkcHJvY2Vz
cyA9IE5ldy1PYmplY3QgRGlhZ25vc3RpY3MuUHJvY2Vzcw0KICAgICRwcm9jZXNzLlN0YXJ0SW5m
byA9ICRzdGFydA0KICAgICRpbnB1dEJ5dGVzID0gJG51bGwNCiAgICAkc3RhcnRlZCA9ICRmYWxz
ZQ0KICAgIHRyeSB7DQogICAgICAgIGlmICgkbnVsbCAtbmUgJHBpcGUpIHsgJHBpcGVXYWl0ID0g
JHBpcGUuQmVnaW5XYWl0Rm9yQ29ubmVjdGlvbigkbnVsbCwgJG51bGwpIH0NCiAgICAgICAgaWYg
KC1ub3QgJHByb2Nlc3MuU3RhcnQoKSkgeyB0aHJvdyAn7JWU7Zi4IOuPhOq1rOulvCDsi5zsnpHt
lZjsp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAgICAgICAkc3RhcnRlZCA9ICR0cnVlDQogICAg
ICAgIGlmICgkbnVsbCAtbmUgJHBpcGUpIHsNCiAgICAgICAgICAgIGlmICgtbm90ICRwaXBlV2Fp
dC5Bc3luY1dhaXRIYW5kbGUuV2FpdE9uZSgxNTAwMCkpIHsgdGhyb3cgJ+yVlO2YuCDrj4Tqtazq
sIAg7KCc7ZWc65CcIOu5hOuwgCDsnoXroKUg7YyM7J207ZSE7JeQIOyXsOqysO2VmOyngCDrqrvt
lojsirXri4jri6QuJyB9DQogICAgICAgICAgICAkcGlwZS5FbmRXYWl0Rm9yQ29ubmVjdGlvbigk
cGlwZVdhaXQpDQogICAgICAgICAgICAkaW5wdXRCeXRlcyA9IFtUZXh0LkVuY29kaW5nXTo6VVRG
OC5HZXRCeXRlcygkSW5wdXRUZXh0KQ0KICAgICAgICAgICAgJHBpcGUuV3JpdGUoJGlucHV0Qnl0
ZXMsIDAsICRpbnB1dEJ5dGVzLkxlbmd0aCkNCiAgICAgICAgICAgICRwaXBlLkZsdXNoKCkNCiAg
ICAgICAgICAgICRwaXBlLkRpc3Bvc2UoKQ0KICAgICAgICAgICAgJHBpcGUgPSAkbnVsbA0KICAg
ICAgICB9DQogICAgICAgICRzdGRvdXRUYXNrID0gJHByb2Nlc3MuU3RhbmRhcmRPdXRwdXQuUmVh
ZFRvRW5kQXN5bmMoKQ0KICAgICAgICAkc3RkZXJyVGFzayA9ICRwcm9jZXNzLlN0YW5kYXJkRXJy
b3IuUmVhZFRvRW5kQXN5bmMoKQ0KICAgICAgICBpZiAoLW5vdCAkcHJvY2Vzcy5XYWl0Rm9yRXhp
dCgxMjAwMDApKSB7IHRocm93ICfslZTtmLgg64+E6rWs6rCAIOygnO2VnOyLnOqwhCDslYjsl5Ag
64Gd64KY7KeAIOyViuyVmOyKteuLiOuLpC4nIH0NCiAgICAgICAgJHByb2Nlc3MuV2FpdEZvckV4
aXQoKQ0KICAgICAgICAkc3Rkb3V0ID0gJHN0ZG91dFRhc2suR2V0QXdhaXRlcigpLkdldFJlc3Vs
dCgpDQogICAgICAgICRzdGRlcnIgPSAkc3RkZXJyVGFzay5HZXRBd2FpdGVyKCkuR2V0UmVzdWx0
KCkNCiAgICAgICAgaWYgKCRwcm9jZXNzLkV4aXRDb2RlIC1uZSAwKSB7IHRocm93ICLslZTtmLgg
64+E6rWs6rCAIOyLpO2MqO2WiOyKteuLiOuLpDogJHN0ZGVyciIgfQ0KICAgICAgICByZXR1cm4g
JHN0ZG91dA0KICAgIH0NCiAgICBmaW5hbGx5IHsNCiAgICAgICAgaWYgKCRudWxsIC1uZSAkcGlw
ZVdhaXQgLWFuZCAkbnVsbCAtbmUgJHBpcGVXYWl0LkFzeW5jV2FpdEhhbmRsZSkgeyAkcGlwZVdh
aXQuQXN5bmNXYWl0SGFuZGxlLkRpc3Bvc2UoKSB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgJHBp
cGUpIHsgJHBpcGUuRGlzcG9zZSgpIH0NCiAgICAgICAgaWYgKCRzdGFydGVkIC1hbmQgLW5vdCAk
cHJvY2Vzcy5IYXNFeGl0ZWQpIHsgdHJ5IHsgJHByb2Nlc3MuS2lsbCgpOyAkcHJvY2Vzcy5XYWl0
Rm9yRXhpdCgpIH0gY2F0Y2gge30gfQ0KICAgICAgICBpZiAoJG51bGwgLW5lICRpbnB1dEJ5dGVz
KSB7IFtBcnJheV06OkNsZWFyKCRpbnB1dEJ5dGVzLCAwLCAkaW5wdXRCeXRlcy5MZW5ndGgpIH0N
CiAgICAgICAgaWYgKCRoYXNQYXNzcGhyYXNlKSB7ICRzdGFydC5FbnZpcm9ubWVudFZhcmlhYmxl
cy5SZW1vdmUoJ0FHRV9QQVNTUEhSQVNFJykgfQ0KICAgICAgICAkcHJvY2Vzcy5EaXNwb3NlKCkN
CiAgICB9DQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1UcnVzdGVkVG9vbCB7DQogICAgcGFyYW0oW3N0
cmluZ10kUGF0aCwgW3N0cmluZ10kRXhwZWN0ZWRIYXNoLCBbc3RyaW5nXSRFeHBlY3RlZE5hbWUs
IFtzdHJpbmddJEFsbG93ZWRSb290KQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCRQYXRoKSAtb3IgLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5
cGUgTGVhZikpIHsgdGhyb3cgIiRFeHBlY3RlZE5hbWUg6rK966Gc6rCAIOyXhuyKteuLiOuLpC4i
IH0NCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkRXhwZWN0ZWRIYXNoKSkg
eyB0aHJvdyAiJEV4cGVjdGVkTmFtZSDqs6DsoJUgU0hBLTI1NuydtCDtlYTsmpTtlanri4jri6Qu
IiB9DQogICAgJGZ1bGwgPSBHZXQtRnVsbExpdGVyYWxQYXRoICRQYXRoDQogICAgJGFsbG93ZWQg
PSBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQWxsb3dlZFJvb3QpKSB7IEpvaW4t
UGF0aCAoR2V0LVNvdWxSb290KSAnX2FnZW50XHNoYXJlZFx0b29sc1xhZ2VcMS4zLjEnIH0gZWxz
ZSB7IEdldC1GdWxsTGl0ZXJhbFBhdGggJEFsbG93ZWRSb290IH0NCiAgICBpZiAoLW5vdCAoVGVz
dC1Jc1VuZGVyUGF0aCAtQ2FuZGlkYXRlICRmdWxsIC1QYXJlbnQgJGFsbG93ZWQpKSB7IHRocm93
ICIkRXhwZWN0ZWROYW1l7J2AIOyYge2YvCDrgrTrtoDsnZgg6rOg7KCV65CcIGFnZSAxLjMuMSDt
j7TrjZTsl5DshJzrp4wg7Iuk7ZaJ7ZWp64uI64ukLiIgfQ0KICAgIGlmICgtbm90IChbSU8uUGF0
aF06OkdldEZpbGVOYW1lKCRmdWxsKSkuRXF1YWxzKCRFeHBlY3RlZE5hbWUsIFtTdHJpbmdDb21w
YXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7IHRocm93ICIkRXhwZWN0ZWROYW1lIO2MjOyd
vOuqheydtCDqs6DsoJXqsJLqs7wg64uk66aF64uI64ukLiIgfQ0KICAgICRjdXJyZW50ID0gR2V0
LUZ1bGxMaXRlcmFsUGF0aCAkYWxsb3dlZA0KICAgIGZvcmVhY2ggKCRwYXJ0IGluICRmdWxsLlN1
YnN0cmluZygkY3VycmVudC5MZW5ndGgpLlRyaW1TdGFydCgnXCcpLlNwbGl0KCdcJykpIHsNCiAg
ICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHBhcnQpKSB7IGNvbnRpbnVl
IH0NCiAgICAgICAgJGN1cnJlbnQgPSBKb2luLVBhdGggJGN1cnJlbnQgJHBhcnQNCiAgICAgICAg
JGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGN1cnJlbnQgLUZvcmNlDQogICAgICAgIGlm
ICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9p
bnQpIC1uZSAwKSB7IHRocm93ICIkRXhwZWN0ZWROYW1lIOqyveuhnOyXkCDsl7DqsrDsoJDsnbQg
7J6I7Ja0IOyLpO2Wie2VmOyngCDslYrsirXri4jri6QuIiB9DQogICAgfQ0KICAgIGlmICgoR2V0
LUZpbGVTaGEyNTYgJGZ1bGwpIC1uZSAkRXhwZWN0ZWRIYXNoLlRvTG93ZXJJbnZhcmlhbnQoKSkg
eyB0aHJvdyAiJEV4cGVjdGVkTmFtZSBTSEEtMjU27J20IOqzoOygleqwkuqzvCDri6TrpoXri4jr
i6QuIiB9DQogICAgcmV0dXJuICRmdWxsDQp9DQoNCmZ1bmN0aW9uIEdldC1WYXVsdExheW91dCB7
DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCkNCiAgICAkc2VjcmV0Um9vdCA9IEpvaW4tUGF0aCAk
Um9vdCAnX2FnZW50XHNoYXJlZFxzZWNyZXRzJw0KICAgIFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICBSb290ID0gJHNlY3JldFJvb3QNCiAgICAgICAgVmF1bHQgPSBKb2luLVBhdGggJHNlY3Jl
dFJvb3QgJ3ZhdWx0LmFnZScNCiAgICAgICAgTWV0YWRhdGEgPSBKb2luLVBhdGggJHNlY3JldFJv
b3QgJ3ZhdWx0LW1ldGFkYXRhLmpzb24nDQogICAgICAgIFJlY292ZXJ5SWRlbnRpdHkgPSBKb2lu
LVBhdGggJHNlY3JldFJvb3QgJ3JlY292ZXJ5LWlkZW50aXR5LmFnZScNCiAgICAgICAgTGVnYWN5
ID0gSm9pbi1QYXRoICRzZWNyZXRSb290ICdsZWdhY3knDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBS
ZWFkLVNvdWxJZGVudGl0eSB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCkNCiAgICAkcGF0aCA9
IEpvaW4tUGF0aCAkUm9vdCAnc291bC1zdGF0ZS5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRwYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAnc291bC1zdGF0
ZS5qc29u7J20IOyXhuyKteuLiOuLpC4nIH0NCiAgICAkc3RhdGUgPSBHZXQtQ29udGVudCAtTGl0
ZXJhbFBhdGggJHBhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAg
ICAkaWQgPSBbZ3VpZF06OkVtcHR5DQogICAgaWYgKC1ub3QgW2d1aWRdOjpUcnlQYXJzZShbc3Ry
aW5nXSRzdGF0ZS5zb3VsSWQsIFtyZWZdJGlkKSkgeyB0aHJvdyAnc291bElk6rCAIOyYrOuwlOul
tOyngCDslYrsirXri4jri6QuJyB9DQogICAgW3N0cmluZ10kaWQNCn0NCg0KZnVuY3Rpb24gR2V0
LU1hY2hpbmVHdWlkIHsNCiAgICAkdmFsdWUgPSBHZXQtSXRlbVByb3BlcnR5VmFsdWUgLUxpdGVy
YWxQYXRoICdIS0xNOlxTT0ZUV0FSRVxNaWNyb3NvZnRcQ3J5cHRvZ3JhcGh5JyAtTmFtZSBNYWNo
aW5lR3VpZCAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0
ZVNwYWNlKFtzdHJpbmddJHZhbHVlKSkgeyB0aHJvdyAnV2luZG93cyBNYWNoaW5lR3VpZOulvCDs
nb3sp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAgIFtzdHJpbmddJHZhbHVlDQp9DQoNCmZ1bmN0
aW9uIEdldC1Ib3N0SWRlbnRpdHkgew0KICAgIHBhcmFtKFtzdHJpbmddJFNvdWxJZCkNCiAgICAk
bWFjaGluZSA9IEdldC1NYWNoaW5lR3VpZA0KICAgICRobWFjID0gTmV3LU9iamVjdCBTZWN1cml0
eS5DcnlwdG9ncmFwaHkuSE1BQ1NIQTI1NiAtQXJndW1lbnRMaXN0ICgsW1RleHQuRW5jb2Rpbmdd
OjpVVEY4LkdldEJ5dGVzKCRTb3VsSWQpKQ0KICAgIHRyeSB7ICRoYXNoID0gJGhtYWMuQ29tcHV0
ZUhhc2goW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCdzb3VsLWhvc3QtdjF8JyArICRt
YWNoaW5lKSkgfQ0KICAgIGZpbmFsbHkgeyAkaG1hYy5EaXNwb3NlKCkgfQ0KICAgICRndWlkQnl0
ZXMgPSBOZXctT2JqZWN0IGJ5dGVbXSAxNg0KICAgIFtBcnJheV06OkNvcHkoJGhhc2gsICRndWlk
Qnl0ZXMsIDE2KQ0KICAgICRob3N0SWQgPSAoTmV3LU9iamVjdCBndWlkKCwkZ3VpZEJ5dGVzKSku
VG9TdHJpbmcoKQ0KICAgICRlbnRyb3B5SG1hYyA9IE5ldy1PYmplY3QgU2VjdXJpdHkuQ3J5cHRv
Z3JhcGh5LkhNQUNTSEEyNTYgLUFyZ3VtZW50TGlzdCAoLFtUZXh0LkVuY29kaW5nXTo6VVRGOC5H
ZXRCeXRlcygkU291bElkKSkNCiAgICB0cnkgeyAkZW50cm9weSA9ICRlbnRyb3B5SG1hYy5Db21w
dXRlSGFzaChbVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJ3NvdWwtZHBhcGktdjF8JyAr
ICRtYWNoaW5lKSkgfQ0KICAgIGZpbmFsbHkgeyAkZW50cm9weUhtYWMuRGlzcG9zZSgpOyBbQXJy
YXldOjpDbGVhcigkaGFzaCwgMCwgJGhhc2guTGVuZ3RoKTsgW0FycmF5XTo6Q2xlYXIoJGd1aWRC
eXRlcywgMCwgJGd1aWRCeXRlcy5MZW5ndGgpIH0NCiAgICBbcHNjdXN0b21vYmplY3RdQHsgaG9z
dElkID0gJGhvc3RJZDsgZW50cm9weSA9ICRlbnRyb3B5IH0NCn0NCg0KZnVuY3Rpb24gR2V0LUhv
c3RXcmFwcGVyUGF0aCB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kSG9zdElk
KQ0KICAgIEpvaW4tUGF0aCAkUm9vdCAoJ19hZ2VudFxydW50aW1lXGhvc3RzXCcgKyAkSG9zdElk
ICsgJ1xzZWNyZXRzXHVubG9jay5kcGFwaScpDQp9DQoNCmZ1bmN0aW9uIFByb3RlY3QtSWRlbnRp
dHlGb3JIb3N0IHsNCiAgICBwYXJhbShbc3RyaW5nXSRJZGVudGl0eSwgW3N0cmluZ10kU291bElk
LCBbc3RyaW5nXSRSb290LCBbc3RyaW5nXSRPdXRwdXRQYXRoKQ0KICAgICRob3N0SW5mbyA9IEdl
dC1Ib3N0SWRlbnRpdHkgLVNvdWxJZCAkU291bElkDQogICAgJHBsYWluID0gW1RleHQuRW5jb2Rp
bmddOjpVVEY4LkdldEJ5dGVzKCRJZGVudGl0eSkNCiAgICB0cnkgeyAkcHJvdGVjdGVkID0gW1N5
c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuUHJvdGVjdGVkRGF0YV06OlByb3RlY3QoJHBsYWlu
LCAkaG9zdEluZm8uZW50cm9weSwgW1N5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuRGF0YVBy
b3RlY3Rpb25TY29wZV06OkN1cnJlbnRVc2VyKSB9DQogICAgZmluYWxseSB7IFtBcnJheV06OkNs
ZWFyKCRwbGFpbiwgMCwgJHBsYWluLkxlbmd0aCkgfQ0KICAgIHRyeSB7DQogICAgICAgICRwYXRo
ID0gaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJE91dHB1dFBhdGgpKSB7IEdldC1I
b3N0V3JhcHBlclBhdGggLVJvb3QgJFJvb3QgLUhvc3RJZCAkaG9zdEluZm8uaG9zdElkIH0gZWxz
ZSB7ICRPdXRwdXRQYXRoIH0NCiAgICAgICAgJHBhdGggPSBBc3NlcnQtU291bE93bmVkUGF0aCAt
UGF0aCAkcGF0aA0KICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0aCkgeyB0
aHJvdyAn7ZiE7J6sIO2YuOyKpO2KuOydmCBEUEFQSSDrtIntiKzqsIAg7J2066+4IOyeiOyKteuL
iOuLpC4g642u7Ja07JOw7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAgICAgV3JpdGUtSnNvbkNy
ZWF0ZU5ldyAtUGF0aCAkcGF0aCAtVmFsdWUgKFtwc2N1c3RvbW9iamVjdF1AeyBzY2hlbWFWZXJz
aW9uID0gMTsgc291bElkID0gJFNvdWxJZDsgaG9zdElkID0gJGhvc3RJbmZvLmhvc3RJZDsgc2Nv
cGUgPSAnQ3VycmVudFVzZXIrTWFjaGluZUVudHJvcHknOyBibG9iID0gW0NvbnZlcnRdOjpUb0Jh
c2U2NFN0cmluZygkcHJvdGVjdGVkKTsgY3JlYXRlZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRjTm93
LlRvU3RyaW5nKCdvJykgfSkNCiAgICAgICAgcmV0dXJuICRwYXRoDQogICAgfQ0KICAgIGZpbmFs
bHkgeyBbQXJyYXldOjpDbGVhcigkcHJvdGVjdGVkLCAwLCAkcHJvdGVjdGVkLkxlbmd0aCk7IFtB
cnJheV06OkNsZWFyKCRob3N0SW5mby5lbnRyb3B5LCAwLCAkaG9zdEluZm8uZW50cm9weS5MZW5n
dGgpIH0NCn0NCg0KZnVuY3Rpb24gVW5wcm90ZWN0LUlkZW50aXR5Rm9ySG9zdCB7DQogICAgcGFy
YW0oW3N0cmluZ10kU291bElkLCBbc3RyaW5nXSRSb290KQ0KICAgICRob3N0SW5mbyA9IEdldC1I
b3N0SWRlbnRpdHkgLVNvdWxJZCAkU291bElkDQogICAgJHBhdGggPSBBc3NlcnQtU291bE93bmVk
UGF0aCAtUGF0aCAoR2V0LUhvc3RXcmFwcGVyUGF0aCAtUm9vdCAkUm9vdCAtSG9zdElkICRob3N0
SW5mby5ob3N0SWQpDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhdGgg
LVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICfsnbQg7Lu07ZOo7YSw7JqpIERQQVBJIOu0ie2IrOqw
gCDsl4bsirXri4jri6QuIC1Vc2VSZWNvdmVyeVBocmFzZeuhnCDtlZwg67KIIOuTseuhne2VmOyE
uOyalC4nIH0NCiAgICAkcGF0aCA9IEFzc2VydC1DcmVkZW50aWFsU291cmNlTm9Gb2xsb3cgLVBh
dGggJHBhdGgNCiAgICAkd3JhcHBlciA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkcGF0aCAt
UmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgIGlmIChbc3RyaW5nXSR3
cmFwcGVyLnNvdWxJZCAtbmUgJFNvdWxJZCAtb3IgW3N0cmluZ10kd3JhcHBlci5ob3N0SWQgLW5l
ICRob3N0SW5mby5ob3N0SWQpIHsgdGhyb3cgJ0RQQVBJIOu0ie2IrOydmCDsmIHtmLwv7Zi47Iqk
7Yq4IElE6rCAIOuLpOumheuLiOuLpC4nIH0NCiAgICAkcHJvdGVjdGVkID0gW0NvbnZlcnRdOjpG
cm9tQmFzZTY0U3RyaW5nKFtzdHJpbmddJHdyYXBwZXIuYmxvYikNCiAgICB0cnkgeyAkcGxhaW4g
PSBbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5Qcm90ZWN0ZWREYXRhXTo6VW5wcm90ZWN0
KCRwcm90ZWN0ZWQsICRob3N0SW5mby5lbnRyb3B5LCBbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dy
YXBoeS5EYXRhUHJvdGVjdGlvblNjb3BlXTo6Q3VycmVudFVzZXIpIH0NCiAgICBmaW5hbGx5IHsg
W0FycmF5XTo6Q2xlYXIoJHByb3RlY3RlZCwgMCwgJHByb3RlY3RlZC5MZW5ndGgpOyBbQXJyYXld
OjpDbGVhcigkaG9zdEluZm8uZW50cm9weSwgMCwgJGhvc3RJbmZvLmVudHJvcHkuTGVuZ3RoKSB9
DQogICAgdHJ5IHsgW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldFN0cmluZygkcGxhaW4pIH0NCiAg
ICBmaW5hbGx5IHsgW0FycmF5XTo6Q2xlYXIoJHBsYWluLCAwLCAkcGxhaW4uTGVuZ3RoKSB9DQp9
DQoNCmZ1bmN0aW9uIFJlYWQtRW52RmlsZVNlY3JldCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0
aCkNCiAgICAkdmFsdWVzID0gQHt9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3Bh
Y2UoJFBhdGgpKSB7IHJldHVybiAkdmFsdWVzIH0NCiAgICAkUGF0aCA9IEFzc2VydC1DcmVkZW50
aWFsU291cmNlTm9Gb2xsb3cgLVBhdGggJFBhdGgNCiAgICBpZiAoKEdldC1JdGVtIC1MaXRlcmFs
UGF0aCAkUGF0aCAtRm9yY2UpLkxlbmd0aCAtZ3QgNDE5NDMwNCkgeyB0aHJvdyAn6rCA7KC47Jis
IC5lbnYg7YyM7J287J20IDRNaULrpbwg64SY7Ja0IOykkeuLqO2VqeuLiOuLpC4nIH0NCiAgICAk
c3RyZWFtID0gTmV3LU9iamVjdCBJTy5GaWxlU3RyZWFtKCRQYXRoLCBbSU8uRmlsZU1vZGVdOjpP
cGVuLCBbSU8uRmlsZUFjY2Vzc106OlJlYWQsIFtJTy5GaWxlU2hhcmVdOjpSZWFkKQ0KICAgIHRy
eSB7DQogICAgICAgICRyZWFkZXIgPSBOZXctT2JqZWN0IElPLlN0cmVhbVJlYWRlcigkc3RyZWFt
LCBbVGV4dC5FbmNvZGluZ106OlVURjgsICR0cnVlKQ0KICAgICAgICB0cnkgeyAkdGV4dCA9ICRy
ZWFkZXIuUmVhZFRvRW5kKCkgfSBmaW5hbGx5IHsgJHJlYWRlci5EaXNwb3NlKCkgfQ0KICAgIH0N
CiAgICBmaW5hbGx5IHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KICAgIGZvcmVhY2ggKCRsaW5lIGlu
ICgkdGV4dCAtc3BsaXQgImByP2BuIikpIHsNCiAgICAgICAgJHRyaW1tZWQgPSAkbGluZS5Ucmlt
KCkNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHRyaW1tZWQpIC1v
ciAkdHJpbW1lZC5TdGFydHNXaXRoKCcjJykpIHsgY29udGludWUgfQ0KICAgICAgICAkZXF1YWxz
ID0gJGxpbmUuSW5kZXhPZignPScpDQogICAgICAgIGlmICgkZXF1YWxzIC1sZSAwKSB7IHRocm93
ICdLRVk9VkFMVUXqsIAg7JWE64uMIOykhOydtCDsnojsirXri4jri6QuIOqwkuydgCDstpzroKXt
lZjsp4Ag7JWK7JWY7Iq164uI64ukLicgfQ0KICAgICAgICAka2V5ID0gJGxpbmUuU3Vic3RyaW5n
KDAsICRlcXVhbHMpLlRyaW0oKQ0KICAgICAgICAkdmFsdWUgPSAkbGluZS5TdWJzdHJpbmcoJGVx
dWFscyArIDEpDQogICAgICAgIGlmICgka2V5IC1ub3RtYXRjaCAnXltBLVphLXpfXVtBLVphLXow
LTlfXSokJykgeyB0aHJvdyAn7ZmY6rK967OA7IiYIOydtOumhCDtmJXsi53snbQg7Jis67CU66W0
7KeAIOyViuyKteuLiOuLpC4g7J2066aEL+qwkuydgCDstpzroKXtlZjsp4Ag7JWK7JWY7Iq164uI
64ukLicgfQ0KICAgICAgICAkdmFsdWVzWyRrZXldID0gJHZhbHVlDQogICAgfQ0KICAgICR0ZXh0
ID0gJG51bGwNCiAgICByZXR1cm4gJHZhbHVlcw0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtQ3JlZGVu
dGlhbFNvdXJjZU5vRm9sbG93IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgICRmdWxs
ID0gR2V0LUZ1bGxMaXRlcmFsUGF0aCAkUGF0aA0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICRmdWxsIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAn6rCA7KC47JisIGNyZWRl
bnRpYWwg7YyM7J287J2EIOywvuyngCDrqrvtlojsirXri4jri6QuIOqyveuhnCDrgrTsmqnsnYAg
7Lac66Cl7ZWY7KeAIOyViuyVmOyKteuLiOuLpC4nIH0NCiAgICAkZHJpdmVSb290ID0gW0lPLlBh
dGhdOjpHZXRQYXRoUm9vdCgkZnVsbCkNCiAgICAkY3VycmVudCA9ICRkcml2ZVJvb3QuVHJpbUVu
ZCgnXCcpDQogICAgZm9yZWFjaCAoJHBhcnQgaW4gJGZ1bGwuU3Vic3RyaW5nKCRkcml2ZVJvb3Qu
TGVuZ3RoKS5TcGxpdCgnXCcpKSB7DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0
ZVNwYWNlKCRwYXJ0KSkgeyBjb250aW51ZSB9DQogICAgICAgICRjdXJyZW50ID0gaWYgKCRjdXJy
ZW50LkVuZHNXaXRoKCc6JykpIHsgJGN1cnJlbnQgKyAnXCcgKyAkcGFydCB9IGVsc2UgeyBKb2lu
LVBhdGggJGN1cnJlbnQgJHBhcnQgfQ0KICAgICAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFs
UGF0aCAkY3VycmVudCAtRm9yY2UNCiAgICAgICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5k
IFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgJ2NyZWRl
bnRpYWwg6rK966Gc7JeQIOyXsOqysOygkOydtCDsnojslrQg65Sw65286rCA7KeAIOyViuyKteuL
iOuLpC4nIH0NCiAgICB9DQogICAgJHN0cmVhbXMgPSBAKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAk
ZnVsbCAtU3RyZWFtICogLUVycm9yQWN0aW9uIFN0b3ApDQogICAgaWYgKEAoJHN0cmVhbXMgfCBX
aGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLlN0cmVhbSAtbmUgJzokREFUQScgfSkuQ291bnQgLWd0
IDApIHsgdGhyb3cgJ2NyZWRlbnRpYWwg7YyM7J287JeQIEFEU+qwgCDsnojslrQg6rCA7KC47Jik
7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICByZXR1cm4gJGZ1bGwNCn0NCg0KZnVuY3Rpb24gR2V0
LUNyZWRlbnRpYWxNZWRpYVR5cGUgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgpDQogICAgc3dp
dGNoIChbSU8uUGF0aF06OkdldEV4dGVuc2lvbigkUGF0aCkuVG9Mb3dlckludmFyaWFudCgpKSB7
DQogICAgICAgICcuanNvbicgeyAnYXBwbGljYXRpb24vanNvbicgfQ0KICAgICAgICAnLnBlbScg
eyAnYXBwbGljYXRpb24veC1wZW0tZmlsZScgfQ0KICAgICAgICAnLmNydCcgeyAnYXBwbGljYXRp
b24veC14NTA5LWNhLWNlcnQnIH0NCiAgICAgICAgJy5jZXInIHsgJ2FwcGxpY2F0aW9uL3BraXgt
Y2VydCcgfQ0KICAgICAgICAnLnAxMicgeyAnYXBwbGljYXRpb24veC1wa2NzMTInIH0NCiAgICAg
ICAgJy5wZngnIHsgJ2FwcGxpY2F0aW9uL3gtcGtjczEyJyB9DQogICAgICAgIGRlZmF1bHQgeyAn
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLUNy
ZWRlbnRpYWxGaWxlRW50cnkgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtzdHJpbmddJEFs
aWFzLCBbc3RyaW5nXSRQdXJwb3NlKQ0KICAgIGlmICgkQWxpYXMgLW5vdG1hdGNoICdeW0EtWmEt
ejAtOS5fLy1dKyQnIC1vciAtbm90IChUZXN0LVJlbGF0aXZlQXJjaGl2ZVBhdGhGb3JTZWNyZXQg
JEFsaWFzKSkgeyB0aHJvdyAnY3JlZGVudGlhbOydmCDruYTrsIDsnbQg7JWE64uMIOyDgeuMgCDr
s4Tsua0g7ZiV7Iud7J20IOyViOyghO2VmOyngCDslYrsirXri4jri6QuJyB9DQogICAgJGZ1bGwg
PSBBc3NlcnQtQ3JlZGVudGlhbFNvdXJjZU5vRm9sbG93IC1QYXRoICRQYXRoDQogICAgJGl0ZW0g
PSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGZ1bGwgLUZvcmNlDQogICAgaWYgKFtsb25nXSRpdGVt
Lkxlbmd0aCAtZ3QgMTY3NzcyMTYpIHsgdGhyb3cgJ2NyZWRlbnRpYWwg7YyM7J28IO2VmOuCmOqw
gCAxNk1pQuulvCDrhJjslrQg7J6Q64+ZIOq4iOqzoOyXkCDrhKPsp4Ag7JWK7Iq164uI64ukLicg
fQ0KICAgICRzdHJlYW0gPSBOZXctT2JqZWN0IElPLkZpbGVTdHJlYW0oJGZ1bGwsIFtJTy5GaWxl
TW9kZV06Ok9wZW4sIFtJTy5GaWxlQWNjZXNzXTo6UmVhZCwgW0lPLkZpbGVTaGFyZV06OlJlYWQp
DQogICAgdHJ5IHsNCiAgICAgICAgJGJ5dGVzID0gTmV3LU9iamVjdCBieXRlW10gKFtpbnRdJHN0
cmVhbS5MZW5ndGgpDQogICAgICAgICRvZmZzZXQgPSAwDQogICAgICAgIHdoaWxlICgkb2Zmc2V0
IC1sdCAkYnl0ZXMuTGVuZ3RoKSB7DQogICAgICAgICAgICAkcmVhZCA9ICRzdHJlYW0uUmVhZCgk
Ynl0ZXMsICRvZmZzZXQsICRieXRlcy5MZW5ndGggLSAkb2Zmc2V0KQ0KICAgICAgICAgICAgaWYg
KCRyZWFkIC1sZSAwKSB7IHRocm93ICdjcmVkZW50aWFsIO2MjOydvOydhCDrgZ3quYzsp4Ag7J29
7KeAIOuqu+2WiOyKteuLiOuLpC4nIH0NCiAgICAgICAgICAgICRvZmZzZXQgKz0gJHJlYWQNCiAg
ICAgICAgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0KICAgICRz
aGEgPSBbU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LlNIQTI1Nl06OkNyZWF0ZSgpDQogICAgdHJ5IHsg
JGhhc2ggPSAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRzaGEuQ29tcHV0ZUhhc2goJGJ5dGVz
KSkpLlJlcGxhY2UoJy0nLCAnJykuVG9Mb3dlckludmFyaWFudCgpIH0NCiAgICBmaW5hbGx5IHsg
JHNoYS5EaXNwb3NlKCkgfQ0KICAgIHRyeSB7DQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1Aew0K
ICAgICAgICAgICAgYWxpYXMgPSAkQWxpYXM7IHB1cnBvc2UgPSAkUHVycG9zZTsgZmlsZU5hbWUg
PSBbSU8uUGF0aF06OkdldEZpbGVOYW1lKCRmdWxsKQ0KICAgICAgICAgICAgbWVkaWFUeXBlID0g
R2V0LUNyZWRlbnRpYWxNZWRpYVR5cGUgJGZ1bGw7IGxlbmd0aCA9IFtsb25nXSRieXRlcy5MZW5n
dGg7IHNoYTI1NiA9ICRoYXNoDQogICAgICAgICAgICBjb250ZW50QmFzZTY0ID0gW0NvbnZlcnRd
OjpUb0Jhc2U2NFN0cmluZygkYnl0ZXMpOyBjYXB0dXJlZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRj
Tm93LlRvU3RyaW5nKCdvJykNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgW0FycmF5
XTo6Q2xlYXIoJGJ5dGVzLCAwLCAkYnl0ZXMuTGVuZ3RoKSB9DQp9DQoNCmZ1bmN0aW9uIFRlc3Qt
UmVsYXRpdmVBcmNoaXZlUGF0aEZvclNlY3JldCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkN
CiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkUGF0aCkgLW9yICRQYXRoLkNv
bnRhaW5zKCc6JykgLW9yICRQYXRoLlN0YXJ0c1dpdGgoJy8nKSAtb3IgJFBhdGguU3RhcnRzV2l0
aCgnXCcpKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIGZvcmVhY2ggKCRwYXJ0IGluICRQYXRoLlJl
cGxhY2UoJ1wnLCAnLycpLlNwbGl0KCcvJykpIHsNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051
bGxPcldoaXRlU3BhY2UoJHBhcnQpIC1vciAkcGFydCAtaW4gQCgnLicsICcuLicpIC1vciAkcGFy
dC5MZW5ndGggLWd0IDI1NSAtb3IgJHBhcnQgLW5lICRwYXJ0LlRyaW1FbmQoJyAnLCAnLicpKSB7
IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICBpZiAoJHBhcnQuSW5kZXhPZkFueShbSU8uUGF0aF06
OkdldEludmFsaWRGaWxlTmFtZUNoYXJzKCkpIC1nZSAwKSB7IHJldHVybiAkZmFsc2UgfQ0KICAg
ICAgICAkZGV2aWNlU3RlbSA9ICgkcGFydCAtc3BsaXQgJ1wuJywgMilbMF0NCiAgICAgICAgaWYg
KCRkZXZpY2VTdGVtIC1tYXRjaCAnXig/aTpDT058UFJOfEFVWHxOVUx8Q09NWzEtOV18TFBUWzEt
OV0pJCcpIHsgcmV0dXJuICRmYWxzZSB9DQogICAgfQ0KICAgIHJldHVybiAkdHJ1ZQ0KfQ0KDQpm
dW5jdGlvbiBHZXQtQ3JlZGVudGlhbENhcHR1cmVzIHsNCiAgICBwYXJhbShbaGFzaHRhYmxlXSRB
Y3RpdmUsIFtzdHJpbmdbXV0kRXhwbGljaXRQYXRocywgW3N0cmluZ10kQWxpYXNQcmVmaXggPSAn
JykNCiAgICAka25vd24gPSBbb3JkZXJlZF1Aew0KICAgICAgICBHT09HTEVfQVBQTElDQVRJT05f
Q1JFREVOVElBTFMgPSAnZ29vZ2xlLXNlcnZpY2UtYWNjb3VudCcNCiAgICAgICAgQVdTX1NIQVJF
RF9DUkVERU5USUFMU19GSUxFID0gJ2F3cy1zaGFyZWQtY3JlZGVudGlhbHMnDQogICAgICAgIEFa
VVJFX0FVVEhfTE9DQVRJT04gPSAnYXp1cmUtYXV0aC1jcmVkZW50aWFscycNCiAgICAgICAgS1VC
RUNPTkZJRyA9ICdrdWJlcm5ldGVzLWNyZWRlbnRpYWxzJw0KICAgICAgICBTU0xfQ0VSVF9GSUxF
ID0gJ3Rscy1jZXJ0aWZpY2F0ZScNCiAgICAgICAgU1NIX1BSSVZBVEVfS0VZX1BBVEggPSAnc3No
LXByaXZhdGUta2V5Jw0KICAgIH0NCiAgICAkZW50cmllcyA9IE5ldy1PYmplY3QgQ29sbGVjdGlv
bnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICAkc2VlbkFsaWFzZXMgPSBAe30NCiAgICAkYmlu
ZGluZ3MgPSBAe30NCiAgICBmb3JlYWNoICgka2V5IGluICRrbm93bi5LZXlzKSB7DQogICAgICAg
IGlmICgtbm90ICRBY3RpdmUuQ29udGFpbnNLZXkoJGtleSkpIHsgY29udGludWUgfQ0KICAgICAg
ICAkdmFsdWUgPSBbc3RyaW5nXSRBY3RpdmVbJGtleV0NCiAgICAgICAgaWYgKCR2YWx1ZS5TdGFy
dHNXaXRoKCdAY3JlZGVudGlhbDonLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7IGNv
bnRpbnVlIH0NCiAgICAgICAgJGNsZWFuVmFsdWUgPSAkdmFsdWUuVHJpbSgnIicpDQogICAgICAg
ICRzYWZlRmlsZSA9IChbSU8uUGF0aF06OkdldEZpbGVOYW1lKCRjbGVhblZhbHVlKSAtcmVwbGFj
ZSAnW15BLVphLXowLTkuXy1dJywgJ18nKQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9y
V2hpdGVTcGFjZSgkc2FmZUZpbGUpKSB7ICRzYWZlRmlsZSA9ICdjcmVkZW50aWFsLmJpbicgfQ0K
ICAgICAgICAkYWxpYXMgPSAkQWxpYXNQcmVmaXggKyAnZW52LycgKyAka2V5ICsgJy8nICsgJHNh
ZmVGaWxlDQogICAgICAgICRlbnRyeSA9IFJlYWQtQ3JlZGVudGlhbEZpbGVFbnRyeSAtUGF0aCAk
Y2xlYW5WYWx1ZSAtQWxpYXMgJGFsaWFzIC1QdXJwb3NlIChbc3RyaW5nXSRrbm93blska2V5XSkN
CiAgICAgICAgaWYgKCRzZWVuQWxpYXNlcy5Db250YWluc0tleSgkYWxpYXMpKSB7IHRocm93ICdj
cmVkZW50aWFsIOyDgeuMgCDrs4Tsua3snbQg7KSR67O165Cp64uI64ukLicgfQ0KICAgICAgICAk
c2VlbkFsaWFzZXNbJGFsaWFzXSA9ICRlbnRyeS5zaGEyNTYNCiAgICAgICAgJGVudHJpZXMuQWRk
KCRlbnRyeSk7ICRiaW5kaW5nc1ska2V5XSA9ICRhbGlhczsgJEFjdGl2ZVska2V5XSA9ICdAY3Jl
ZGVudGlhbDonICsgJGFsaWFzDQogICAgfQ0KICAgICRpbmRleCA9IDANCiAgICBmb3JlYWNoICgk
cGF0aCBpbiBAKCRFeHBsaWNpdFBhdGhzKSkgew0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkcGF0aCkpIHsgY29udGludWUgfQ0KICAgICAgICAkc2FmZUZpbGUgPSAo
W0lPLlBhdGhdOjpHZXRGaWxlTmFtZSgkcGF0aCkgLXJlcGxhY2UgJ1teQS1aYS16MC05Ll8tXScs
ICdfJykNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHNhZmVGaWxl
KSkgeyAkc2FmZUZpbGUgPSAnY3JlZGVudGlhbC5iaW4nIH0NCiAgICAgICAgJHByb3Zpc2lvbmFs
ID0gUmVhZC1DcmVkZW50aWFsRmlsZUVudHJ5IC1QYXRoICRwYXRoIC1BbGlhcyAoJ2V4cGxpY2l0
L3BlbmRpbmcvJyArICRzYWZlRmlsZSkgLVB1cnBvc2UgJ2V4cGxpY2l0LWNyZWRlbnRpYWwnDQog
ICAgICAgICRhbGlhcyA9ICRBbGlhc1ByZWZpeCArICdleHBsaWNpdC8nICsgJHByb3Zpc2lvbmFs
LnNoYTI1Ni5TdWJzdHJpbmcoMCwgMTIpICsgJy0nICsgJHNhZmVGaWxlDQogICAgICAgICRwcm92
aXNpb25hbC5hbGlhcyA9ICRhbGlhcw0KICAgICAgICBpZiAoLW5vdCAkc2VlbkFsaWFzZXMuQ29u
dGFpbnNLZXkoJGFsaWFzKSkgeyAkc2VlbkFsaWFzZXNbJGFsaWFzXSA9ICRwcm92aXNpb25hbC5z
aGEyNTY7ICRlbnRyaWVzLkFkZCgkcHJvdmlzaW9uYWwpIH0NCiAgICAgICAgZWxzZWlmIChbc3Ry
aW5nXSRzZWVuQWxpYXNlc1skYWxpYXNdIC1uZSBbc3RyaW5nXSRwcm92aXNpb25hbC5zaGEyNTYp
IHsgdGhyb3cgJ2NyZWRlbnRpYWwg67OE7LmtIOy2qeuPjOydhCDslYjsoITtlZjqsowg7ZWp7Lmg
IOyImCDsl4bsirXri4jri6QuJyB9DQogICAgICAgICRpbmRleCsrDQogICAgfQ0KICAgICR0b3Rh
bCA9IFtsb25nXSgoJGVudHJpZXMgfCBNZWFzdXJlLU9iamVjdCAtUHJvcGVydHkgbGVuZ3RoIC1T
dW0pLlN1bSkNCiAgICBpZiAoJHRvdGFsIC1ndCA2NzEwODg2NCkgeyB0aHJvdyAnY3JlZGVudGlh
bCDtjIzsnbwg7ZWp6rOE6rCAIDY0TWlC66W8IOuEmOyWtCDsnpDrj5kg6riI6rOg7JeQIOuEo+yn
gCDslYrsirXri4jri6QuJyB9DQogICAgJGVudHJ5QXJyYXkgPSBOZXctT2JqZWN0IG9iamVjdFtd
ICRlbnRyaWVzLkNvdW50DQogICAgaWYgKCRlbnRyaWVzLkNvdW50IC1ndCAwKSB7ICRlbnRyaWVz
LkNvcHlUbygkZW50cnlBcnJheSkgfQ0KICAgIFtwc2N1c3RvbW9iamVjdF1AeyBlbnRyaWVzID0g
JGVudHJ5QXJyYXk7IGJpbmRpbmdzID0gJGJpbmRpbmdzIH0NCn0NCg0KZnVuY3Rpb24gU2V0LVJl
c3RyaWN0ZWREaXJlY3RvcnlBY2wgew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgpDQogICAgJGlk
ZW50aXR5ID0gW1NlY3VyaXR5LlByaW5jaXBhbC5XaW5kb3dzSWRlbnRpdHldOjpHZXRDdXJyZW50
KCkNCiAgICAkYWNsID0gTmV3LU9iamVjdCBTZWN1cml0eS5BY2Nlc3NDb250cm9sLkRpcmVjdG9y
eVNlY3VyaXR5DQogICAgJGFjbC5TZXRBY2Nlc3NSdWxlUHJvdGVjdGlvbigkdHJ1ZSwgJGZhbHNl
KQ0KICAgICRpbmhlcml0ID0gW1NlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuSW5oZXJpdGFuY2VGbGFn
c106OkNvbnRhaW5lckluaGVyaXQgLWJvciBbU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5Jbmhlcml0
YW5jZUZsYWdzXTo6T2JqZWN0SW5oZXJpdA0KICAgICRwcm9wYWdhdGlvbiA9IFtTZWN1cml0eS5B
Y2Nlc3NDb250cm9sLlByb3BhZ2F0aW9uRmxhZ3NdOjpOb25lDQogICAgJGFjbC5BZGRBY2Nlc3NS
dWxlKChOZXctT2JqZWN0IFNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuRmlsZVN5c3RlbUFjY2Vzc1J1
bGUoJGlkZW50aXR5LlVzZXIsIFtTZWN1cml0eS5BY2Nlc3NDb250cm9sLkZpbGVTeXN0ZW1SaWdo
dHNdOjpGdWxsQ29udHJvbCwgJGluaGVyaXQsICRwcm9wYWdhdGlvbiwgW1NlY3VyaXR5LkFjY2Vz
c0NvbnRyb2wuQWNjZXNzQ29udHJvbFR5cGVdOjpBbGxvdykpKQ0KICAgICRzeXN0ZW1TaWQgPSBO
ZXctT2JqZWN0IFNlY3VyaXR5LlByaW5jaXBhbC5TZWN1cml0eUlkZW50aWZpZXIoJ1MtMS01LTE4
JykNCiAgICAkYWNsLkFkZEFjY2Vzc1J1bGUoKE5ldy1PYmplY3QgU2VjdXJpdHkuQWNjZXNzQ29u
dHJvbC5GaWxlU3lzdGVtQWNjZXNzUnVsZSgkc3lzdGVtU2lkLCBbU2VjdXJpdHkuQWNjZXNzQ29u
dHJvbC5GaWxlU3lzdGVtUmlnaHRzXTo6RnVsbENvbnRyb2wsICRpbmhlcml0LCAkcHJvcGFnYXRp
b24sIFtTZWN1cml0eS5BY2Nlc3NDb250cm9sLkFjY2Vzc0NvbnRyb2xUeXBlXTo6QWxsb3cpKSkN
CiAgICBbSU8uRGlyZWN0b3J5XTo6U2V0QWNjZXNzQ29udHJvbCgkUGF0aCwgJGFjbCkNCn0NCg0K
ZnVuY3Rpb24gRW5zdXJlLVNlY3JldERpcmVjdG9yeVBhdGggew0KICAgIHBhcmFtKFtzdHJpbmdd
JERpcmVjdG9yeSwgW3N0cmluZ10kQm91bmRhcnkpDQogICAgJGRpcmVjdG9yeUZ1bGwgPSBHZXQt
RnVsbExpdGVyYWxQYXRoICREaXJlY3RvcnkNCiAgICAkYm91bmRhcnlGdWxsID0gR2V0LUZ1bGxM
aXRlcmFsUGF0aCAkQm91bmRhcnkNCiAgICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVyUGF0aCAtQ2Fu
ZGlkYXRlICRkaXJlY3RvcnlGdWxsIC1QYXJlbnQgJGJvdW5kYXJ5RnVsbCkpIHsgdGhyb3cgJ2Ny
ZWRlbnRpYWwgbGVhc2Ug7Y+0642U6rCAIO2XiOyaqSDrspTsnITrpbwg67KX7Ja064Ks7Iq164uI
64ukLicgfQ0KICAgICRjdXJyZW50ID0gQXNzZXJ0LU5vUmVwYXJzZVdpdGhpblNlY3JldCAtUGF0
aCAkYm91bmRhcnlGdWxsIC1Cb3VuZGFyeSAkYm91bmRhcnlGdWxsDQogICAgZm9yZWFjaCAoJHBh
cnQgaW4gJGRpcmVjdG9yeUZ1bGwuU3Vic3RyaW5nKCRib3VuZGFyeUZ1bGwuTGVuZ3RoKS5Ucmlt
U3RhcnQoJ1wnKS5TcGxpdCgnXCcpKSB7DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JX
aGl0ZVNwYWNlKCRwYXJ0KSkgeyBjb250aW51ZSB9DQogICAgICAgICRjdXJyZW50ID0gSm9pbi1Q
YXRoICRjdXJyZW50ICRwYXJ0DQogICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRj
dXJyZW50KSB7DQogICAgICAgICAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkY3Vy
cmVudCAtRm9yY2UNCiAgICAgICAgICAgIGlmICgtbm90ICRpdGVtLlBTSXNDb250YWluZXIgLW9y
ICgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2lu
dCkgLW5lIDApIHsgdGhyb3cgJ2NyZWRlbnRpYWwgbGVhc2Ug7Y+0642UIOqyveuhnOqwgCDslYjs
oITtlZjsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAg
ICAgICAgICAgW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkY3VycmVudCkgfCBPdXQt
TnVsbA0KICAgICAgICAgICAgJGNyZWF0ZWQgPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGN1cnJl
bnQgLUZvcmNlDQogICAgICAgICAgICBpZiAoKCRjcmVhdGVkLkF0dHJpYnV0ZXMgLWJhbmQgW0lP
LkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAn7IOIIGNyZWRl
bnRpYWwgbGVhc2Ug7Y+0642U6rCAIOucu+uwluydmCDsl7DqsrDsoJDsnoXri4jri6QuJyB9DQog
ICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuICRkaXJlY3RvcnlGdWxsDQp9DQoNCmZ1bmN0aW9u
IFJlc3RvcmUtQ3JlZGVudGlhbExlYXNlIHsNCiAgICBwYXJhbSgkVmF1bHQsIFtzdHJpbmdbXV0k
QWxpYXNlcywgW3N0cmluZ10kUm9vdCwgW3N0cmluZ10kU291bElkLCBbaW50XSRPd25lclByb2Nl
c3NJZCwgW3N0cmluZ10kT3duZXJTdGFydFV0YykNCiAgICAkd2FudGVkID0gQCgkQWxpYXNlcyB8
IFdoZXJlLU9iamVjdCB7IC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkXykgfSB8
IFNvcnQtT2JqZWN0IC1VbmlxdWUpDQogICAgaWYgKCR3YW50ZWQuQ291bnQgLWVxIDApIHsgcmV0
dXJuICRudWxsIH0NCiAgICAkaG9zdEluZm8gPSBHZXQtSG9zdElkZW50aXR5IC1Tb3VsSWQgJFNv
dWxJZA0KICAgICRsZWFzZVJvb3QgPSAkbnVsbA0KICAgIHRyeSB7DQogICAgICAgICRsZWFzZUlk
VmFsdWUgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQogICAgICAgICRsZWFzZVJvb3Qg
PSBKb2luLVBhdGggJFJvb3QgKCdfYWdlbnRccnVudGltZVxob3N0c1wnICsgJGhvc3RJbmZvLmhv
c3RJZCArICdcc2VjcmV0LWxlYXNlc1wnICsgJGxlYXNlSWRWYWx1ZSkNCiAgICAgICAgRW5zdXJl
LVNlY3JldERpcmVjdG9yeVBhdGggLURpcmVjdG9yeSAkbGVhc2VSb290IC1Cb3VuZGFyeSAkUm9v
dCB8IE91dC1OdWxsDQogICAgICAgIFNldC1SZXN0cmljdGVkRGlyZWN0b3J5QWNsIC1QYXRoICRs
ZWFzZVJvb3QNCiAgICAgICAgJG1hcmtlciA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBzY2hl
bWFWZXJzaW9uID0gMTsga2luZCA9ICdzZWNyZXQtbGVhc2UnOyBzb3VsSWQgPSAkU291bElkOyBo
b3N0SWQgPSAkaG9zdEluZm8uaG9zdElkOyBsZWFzZUlkID0gJGxlYXNlSWRWYWx1ZQ0KICAgICAg
ICAgICAgY3JlYXRlZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7IG93
bmVyUHJvY2Vzc0lkID0gaWYgKCRPd25lclByb2Nlc3NJZCAtZ3QgMCkgeyAkT3duZXJQcm9jZXNz
SWQgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgb3duZXJQcm9jZXNzU3RhcnRVdGMgPSBp
ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkT3duZXJTdGFydFV0YykpIHsgJG51bGwg
fSBlbHNlIHsgJE93bmVyU3RhcnRVdGMgfQ0KICAgICAgICAgICAgYWxpYXNlcyA9IEAoJHdhbnRl
ZCk7IHN0YXR1cyA9ICdjcmVhdGluZycNCiAgICAgICAgfQ0KICAgICAgICAjIO2PieusuOuztOuL
pCDshozsnKAg7ZGc7KeA66W8IOuovOyggCDsk7Tri6QuIOu5hOygleyDgSDsooXro4wg65Kk7JeQ
64+EIOygle2Zle2VnCBsZWFzZeunjCDsoJXrpqztlaAg7IiYIOyeiOuLpC4NCiAgICAgICAgV3Jp
dGUtSnNvbkNyZWF0ZU5ldyAtUGF0aCAoSm9pbi1QYXRoICRsZWFzZVJvb3QgJy5sZWFzZS5qc29u
JykgLVZhbHVlICRtYXJrZXINCiAgICAgICAgJGZpbGVNYXAgPSBAe30NCiAgICAgICAgZm9yZWFj
aCAoJGFsaWFzIGluICR3YW50ZWQpIHsNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVJlbGF0
aXZlQXJjaGl2ZVBhdGhGb3JTZWNyZXQgJGFsaWFzKSkgeyB0aHJvdyAn7JqU7LKt7ZWcIGNyZWRl
bnRpYWwg67OE7Lmt7J20IOyViOyghO2VmOyngCDslYrsirXri4jri6QuJyB9DQogICAgICAgICAg
ICAkbWF0Y2hlcyA9IEAoJFZhdWx0LmZpbGVzIHwgV2hlcmUtT2JqZWN0IHsgW3N0cmluZ10kXy5h
bGlhcyAtZXEgJGFsaWFzIH0pDQogICAgICAgICAgICBpZiAoJG1hdGNoZXMuQ291bnQgLW5lIDEp
IHsgdGhyb3cgJ+yalOyyre2VnCBjcmVkZW50aWFsIOuzhOy5reydtCDquIjqs6Dsl5Ag7JeG6rGw
64KYIOykkeuzteuQqeuLiOuLpC4nIH0NCiAgICAgICAgICAgICRlbnRyeSA9ICRtYXRjaGVzWzBd
DQogICAgICAgICAgICAkYnl0ZXMgPSBbQ29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoW3N0cmlu
Z10kZW50cnkuY29udGVudEJhc2U2NCkNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg
ICAgaWYgKCRieXRlcy5MZW5ndGggLW5lIFtsb25nXSRlbnRyeS5sZW5ndGgpIHsgdGhyb3cgJ2Ny
ZWRlbnRpYWwg6ri47J20IOqygOymneyXkCDsi6TtjKjtlojsirXri4jri6QuJyB9DQogICAgICAg
ICAgICAgICAgJHNoYSA9IFtTZWN1cml0eS5DcnlwdG9ncmFwaHkuU0hBMjU2XTo6Q3JlYXRlKCkN
CiAgICAgICAgICAgICAgICB0cnkgeyAkaGFzaCA9IChbQml0Q29udmVydGVyXTo6VG9TdHJpbmco
JHNoYS5Db21wdXRlSGFzaCgkYnl0ZXMpKSkuUmVwbGFjZSgnLScsICcnKS5Ub0xvd2VySW52YXJp
YW50KCkgfSBmaW5hbGx5IHsgJHNoYS5EaXNwb3NlKCkgfQ0KICAgICAgICAgICAgICAgIGlmICgk
aGFzaCAtbmUgW3N0cmluZ10kZW50cnkuc2hhMjU2KSB7IHRocm93ICdjcmVkZW50aWFsIO2VtOyL
nCDqsoDspp3sl5Ag7Iuk7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgICAgICAgICAgICAgICR0YXJn
ZXQgPSBKb2luLVBhdGggJGxlYXNlUm9vdCAkYWxpYXMuUmVwbGFjZSgnLycsICdcJykNCiAgICAg
ICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc1VuZGVyUGF0aCAtQ2FuZGlkYXRlICR0YXJnZXQg
LVBhcmVudCAkbGVhc2VSb290KSkgeyB0aHJvdyAnY3JlZGVudGlhbCDrs7Xsm5Ag6rK966Gc6rCA
IGxlYXNl66W8IOuyl+yWtOuCrOyKteuLiOuLpC4nIH0NCiAgICAgICAgICAgICAgICBFbnN1cmUt
U2VjcmV0RGlyZWN0b3J5UGF0aCAtRGlyZWN0b3J5IChTcGxpdC1QYXRoIC1QYXJlbnQgJHRhcmdl
dCkgLUJvdW5kYXJ5ICRsZWFzZVJvb3QgfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgIFdyaXRl
LUJ5dGVzQ3JlYXRlTmV3IC1QYXRoICR0YXJnZXQgLUJ5dGVzICRieXRlcw0KICAgICAgICAgICAg
ICAgICRmaWxlTWFwWyRhbGlhc10gPSAkdGFyZ2V0DQogICAgICAgICAgICB9DQogICAgICAgICAg
ICBmaW5hbGx5IHsgW0FycmF5XTo6Q2xlYXIoJGJ5dGVzLCAwLCAkYnl0ZXMuTGVuZ3RoKSB9DQog
ICAgICAgIH0NCiAgICAgICAgW3BzY3VzdG9tb2JqZWN0XUB7IGxlYXNlSWQgPSAkbGVhc2VJZFZh
bHVlOyBsZWFzZVJvb3QgPSAkbGVhc2VSb290OyBmaWxlTWFwID0gJGZpbGVNYXAgfQ0KICAgIH0N
CiAgICBjYXRjaCB7DQogICAgICAgICMg7Iuk7Yyo7ZWcIGxlYXNl64+EIO2PieusuOydhCDtkojs
nYQg7IiYIOyeiOycvOuvgOuhnCDshozsnKAg67KU7JyEIOyViOydmCDsg4ggVVVJRCDtj7TrjZTr
p4wg7KaJ7IucIOygleumrO2VnOuLpC4NCiAgICAgICAgaWYgKCRudWxsIC1uZSAkbGVhc2VSb290
IC1hbmQgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxlYXNlUm9vdCAtUGF0aFR5cGUgQ29udGFp
bmVyKSAtYW5kIChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUgJGxlYXNlUm9vdCAtUGFyZW50
IChKb2luLVBhdGggJFJvb3QgJ19hZ2VudFxydW50aW1lXGhvc3RzJykpKSB7DQogICAgICAgICAg
ICAkdW5zYWZlID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkbGVhc2VSb290IC1Gb3Jj
ZSAtUmVjdXJzZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB8IFdoZXJlLU9iamVjdCB7
ICgkXy5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkg
LW5lIDAgfSkNCiAgICAgICAgICAgIGlmICgkdW5zYWZlLkNvdW50IC1lcSAwKSB7IFtJTy5EaXJl
Y3RvcnldOjpEZWxldGUoJGxlYXNlUm9vdCwgJHRydWUpIH0NCiAgICAgICAgfQ0KICAgICAgICB0
aHJvdw0KICAgIH0NCiAgICBmaW5hbGx5IHsgW0FycmF5XTo6Q2xlYXIoJGhvc3RJbmZvLmVudHJv
cHksIDAsICRob3N0SW5mby5lbnRyb3B5Lkxlbmd0aCkgfQ0KfQ0KDQpmdW5jdGlvbiBSZW1vdmUt
Q3JlZGVudGlhbExlYXNlIHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290LCBbc3RyaW5nXSRTb3Vs
SWQsIFtzdHJpbmddJExlYXNlSWRWYWx1ZSkNCiAgICAkcGFyc2VkID0gW2d1aWRdOjpFbXB0eQ0K
ICAgIGlmICgtbm90IFtndWlkXTo6VHJ5UGFyc2UoJExlYXNlSWRWYWx1ZSwgW3JlZl0kcGFyc2Vk
KSkgeyB0aHJvdyAn7KCV66as7ZWgIGxlYXNlSWTqsIAg7Jis67CU66W4IFVVSUTqsIAg7JWE64uZ
64uI64ukLicgfQ0KICAgICRob3N0SW5mbyA9IEdldC1Ib3N0SWRlbnRpdHkgLVNvdWxJZCAkU291
bElkDQogICAgdHJ5IHsNCiAgICAgICAgJGxlYXNlUGFyZW50ID0gSm9pbi1QYXRoICRSb290ICgn
X2FnZW50XHJ1bnRpbWVcaG9zdHNcJyArICRob3N0SW5mby5ob3N0SWQgKyAnXHNlY3JldC1sZWFz
ZXMnKQ0KICAgICAgICAkbGVhc2VSb290ID0gSm9pbi1QYXRoICRsZWFzZVBhcmVudCAoW3N0cmlu
Z10kcGFyc2VkKQ0KICAgICAgICBpZiAoKFNwbGl0LVBhdGggLVBhcmVudCAoR2V0LUZ1bGxMaXRl
cmFsUGF0aCAkbGVhc2VSb290KSkgLW5lIChHZXQtRnVsbExpdGVyYWxQYXRoICRsZWFzZVBhcmVu
dCkpIHsgdGhyb3cgJ2xlYXNlIOygleumrCDqsr3roZzqsIAg7ZeI7JqpIOuylOychOulvCDrspfs
lrTrgqzsirXri4jri6QuJyB9DQogICAgICAgIEFzc2VydC1Ob1JlcGFyc2VXaXRoaW5TZWNyZXQg
LVBhdGggJGxlYXNlUm9vdCAtQm91bmRhcnkgJFJvb3QgfCBPdXQtTnVsbA0KICAgICAgICAkbWFy
a2VyUGF0aCA9IEpvaW4tUGF0aCAkbGVhc2VSb290ICcubGVhc2UuanNvbicNCiAgICAgICAgaWYg
KC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJG1hcmtlclBhdGggLVBhdGhUeXBlIExlYWYp
KSB7IHRocm93ICfshozsnKAg7ZGc7KeA6rCAIOyXhuuKlCBzZWNyZXQgbGVhc2XripQg7IKt7KCc
7ZWY7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAgICAgJG1hcmtlciA9IEdldC1Db250ZW50IC1M
aXRlcmFsUGF0aCAkbWFya2VyUGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20t
SnNvbg0KICAgICAgICBpZiAoW3N0cmluZ10kbWFya2VyLmtpbmQgLW5lICdzZWNyZXQtbGVhc2Un
IC1vciBbc3RyaW5nXSRtYXJrZXIuc291bElkIC1uZSAkU291bElkIC1vciBbc3RyaW5nXSRtYXJr
ZXIuaG9zdElkIC1uZSAkaG9zdEluZm8uaG9zdElkIC1vciBbZ3VpZF0kbWFya2VyLmxlYXNlSWQg
LW5lICRwYXJzZWQpIHsNCiAgICAgICAgICAgIHRocm93ICdzZWNyZXQgbGVhc2Ug7IaM7JygIO2R
nOyngOqwgCDtmITsnqwg7JiB7Zi8L+2YuOyKpO2KuC9sZWFzZeyZgCDri6TrpoXri4jri6QuJw0K
ICAgICAgICB9DQogICAgICAgIGlmICgkbnVsbCAtbmUgJG1hcmtlci5vd25lclByb2Nlc3NJZCAt
YW5kIFtpbnRdJG1hcmtlci5vd25lclByb2Nlc3NJZCAtZ3QgMCAtYW5kIC1ub3QgW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRtYXJrZXIub3duZXJQcm9jZXNzU3RhcnRVdGMp
KSB7DQogICAgICAgICAgICBpZiAoVGVzdC1Tb3VsUHJvY2Vzc0lkZW50aXR5IC1Qcm9jZXNzSWQg
KFtpbnRdJG1hcmtlci5vd25lclByb2Nlc3NJZCkgLVN0YXJ0VGltZVV0YyAoW3N0cmluZ10kbWFy
a2VyLm93bmVyUHJvY2Vzc1N0YXJ0VXRjKSkgeyB0aHJvdyAn7Iuc7YGs66a/IO2MjOydvOydhCDs
k7DripQg7J6Q7IudIO2UhOuhnOyEuOyKpOqwgCDslYTsp4Eg7Iuk7ZaJIOykkeydtOudvCDsoJXr
pqztlZjsp4Ag7JWK7Iq164uI64ukLicgfQ0KICAgICAgICB9DQogICAgICAgIGZvcmVhY2ggKCRp
dGVtIGluIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRsZWFzZVJvb3QgLUZvcmNlIC1SZWN1
cnNlKSB7DQogICAgICAgICAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVB
dHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAnc2VjcmV0IGxlYXNlIOyV
iOyXkCDsl7DqsrDsoJDsnbQg7J6I7Ja0IOyekOuPmSDsgq3soJztlZjsp4Ag7JWK7Iq164uI64uk
LicgfQ0KICAgICAgICB9DQogICAgICAgIFtJTy5EaXJlY3RvcnldOjpEZWxldGUoJGxlYXNlUm9v
dCwgJHRydWUpDQogICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAnbGVhc2UtY2xl
YW5lZCc7IGxlYXNlSWQgPSBbc3RyaW5nXSRwYXJzZWQ7IHBsYWludGV4dEZpbGVzUmVtb3ZlZCA9
ICR0cnVlIH0NCiAgICB9DQogICAgZmluYWxseSB7IFtBcnJheV06OkNsZWFyKCRob3N0SW5mby5l
bnRyb3B5LCAwLCAkaG9zdEluZm8uZW50cm9weS5MZW5ndGgpIH0NCn0NCg0KZnVuY3Rpb24gQXNz
ZXJ0LUFnZVRvb2xzIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW3N0cmluZ10kQWdlUGF0aCA9ICRU
cnVzdGVkQWdlUGF0aCwNCiAgICAgICAgW3N0cmluZ10kQWdlSGFzaCA9ICRUcnVzdGVkQWdlU2hh
MjU2LA0KICAgICAgICBbc3RyaW5nXSRLZXlnZW5QYXRoID0gJFRydXN0ZWRBZ2VLZXlnZW5QYXRo
LA0KICAgICAgICBbc3RyaW5nXSRLZXlnZW5IYXNoID0gJFRydXN0ZWRBZ2VLZXlnZW5TaGEyNTYs
DQogICAgICAgIFtzdHJpbmddJEJhdGNocGFzc1BhdGggPSAkVHJ1c3RlZEFnZVBsdWdpbkJhdGNo
cGFzc1BhdGgsDQogICAgICAgIFtzdHJpbmddJEJhdGNocGFzc0hhc2ggPSAkVHJ1c3RlZEFnZVBs
dWdpbkJhdGNocGFzc1NoYTI1NiwNCiAgICAgICAgW3N0cmluZ10kQWxsb3dlZFJvb3QNCiAgICAp
DQogICAgJHJlY2VpcHRQYXRoID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ3NvdXJjZS1yZWNl
aXB0c1xhZ2UuanNvbicNCiAgICAkcmVjZWlwdCA9ICRudWxsDQogICAgJHJlY2VpcHRTb3VyY2Ug
PSAkbnVsbA0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRyZWNlaXB0UGF0aCAtUGF0
aFR5cGUgTGVhZikgew0KICAgICAgICAkcmVjZWlwdCA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0
aCAkcmVjZWlwdFBhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAg
ICAgICAgJHNvdXJjZVByb3BlcnR5ID0gJHJlY2VpcHQuUFNPYmplY3QuUHJvcGVydGllc1snc291
cmNlJ10NCiAgICAgICAgaWYgKFtpbnRdJHJlY2VpcHQuc2NoZW1hVmVyc2lvbiAtbmUgMSAtb3Ig
W3N0cmluZ10kcmVjZWlwdC5pZCAtY25lICdhZ2UnIC1vcg0KICAgICAgICAgICAgW3N0cmluZ10k
cmVjZWlwdC5jYW5vbmljYWxSZWxhdGl2ZVBhdGggLWNuZSAnX2FnZW50L3NoYXJlZC90b29scy9h
Z2UvMS4zLjEnIC1vcg0KICAgICAgICAgICAgJG51bGwgLWVxICRzb3VyY2VQcm9wZXJ0eSAtb3Ig
JG51bGwgLWVxICRzb3VyY2VQcm9wZXJ0eS5WYWx1ZSkgew0KICAgICAgICAgICAgdGhyb3cgJ2Fn
ZSBzb3VyY2UgcmVjZWlwdOydmCDqtazsobAg65iQ64qUIOuMgOyDgSDqsr3roZzqsIAg7Jis67CU
66W07KeAIOyViuyKteuLiOuLpC4nDQogICAgICAgIH0NCiAgICAgICAgJHJlY2VpcHRTb3VyY2Ug
PSAkc291cmNlUHJvcGVydHkuVmFsdWUNCiAgICAgICAgaWYgKFtzdHJpbmddJHJlY2VpcHRTb3Vy
Y2Uua2luZCAtY25lICd6aXAnIC1vciBbc3RyaW5nXSRyZWNlaXB0U291cmNlLnZlcnNpb24gLWNu
ZSAnMS4zLjEnKSB7DQogICAgICAgICAgICB0aHJvdyAnYWdlIHNvdXJjZSByZWNlaXB07J2YIOyi
heulmCDrmJDripQg67KE7KCE7J20IOqzoOygleqwkuqzvCDri6TrpoXri4jri6QuJw0KICAgICAg
ICB9DQogICAgfQ0KICAgICRjYW5vbmljYWxSb290ID0gSm9pbi1QYXRoIChHZXQtU291bFJvb3Qp
ICdfYWdlbnRcc2hhcmVkXHRvb2xzXGFnZVwxLjMuMScNCiAgICBpZiAoW3N0cmluZ106OklzTnVs
bE9yV2hpdGVTcGFjZSgkQWxsb3dlZFJvb3QpKSB7ICRBbGxvd2VkUm9vdCA9ICRjYW5vbmljYWxS
b290IH0NCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQWdlUGF0aCkpIHsg
JEFnZVBhdGggPSBKb2luLVBhdGggJGNhbm9uaWNhbFJvb3QgJ2FnZS5leGUnIH0NCiAgICBpZiAo
W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkS2V5Z2VuUGF0aCkpIHsgJEtleWdlblBhdGgg
PSBKb2luLVBhdGggJGNhbm9uaWNhbFJvb3QgJ2FnZS1rZXlnZW4uZXhlJyB9DQogICAgaWYgKFtz
dHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEJhdGNocGFzc1BhdGgpKSB7ICRCYXRjaHBhc3NQ
YXRoID0gSm9pbi1QYXRoICRjYW5vbmljYWxSb290ICdhZ2UtcGx1Z2luLWJhdGNocGFzcy5leGUn
IH0NCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQWdlSGFzaCkgLWFuZCAk
bnVsbCAtbmUgJHJlY2VpcHRTb3VyY2UgLWFuZCAkbnVsbCAtbmUgJHJlY2VpcHRTb3VyY2UuUFNP
YmplY3QuUHJvcGVydGllc1snYWdlRXhlU2hhMjU2J10pIHsgJEFnZUhhc2ggPSBbc3RyaW5nXSRy
ZWNlaXB0U291cmNlLmFnZUV4ZVNoYTI1NiB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoJEtleWdlbkhhc2gpIC1hbmQgJG51bGwgLW5lICRyZWNlaXB0U291cmNlIC1hbmQg
JG51bGwgLW5lICRyZWNlaXB0U291cmNlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FnZUtleWdlbkV4
ZVNoYTI1NiddKSB7ICRLZXlnZW5IYXNoID0gW3N0cmluZ10kcmVjZWlwdFNvdXJjZS5hZ2VLZXln
ZW5FeGVTaGEyNTYgfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRCYXRj
aHBhc3NIYXNoKSAtYW5kICRudWxsIC1uZSAkcmVjZWlwdFNvdXJjZSAtYW5kICRudWxsIC1uZSAk
cmVjZWlwdFNvdXJjZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydhZ2VQbHVnaW5CYXRjaHBhc3NFeGVT
aGEyNTYnXSkgeyAkQmF0Y2hwYXNzSGFzaCA9IFtzdHJpbmddJHJlY2VpcHRTb3VyY2UuYWdlUGx1
Z2luQmF0Y2hwYXNzRXhlU2hhMjU2IH0NCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVT
cGFjZSgkQWdlSGFzaCkgLW9yIFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEtleWdlbkhh
c2gpIC1vciBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRCYXRjaHBhc3NIYXNoKSkgew0K
ICAgICAgICB0aHJvdyAi6rKA7Kad65CcIOyLpO2Wie2MjOydvCDtlbTsi5zqsIAg7JeG7Iq164uI
64ukLiDrqLzsoIAg7KSA67mEIOyXlOynhOydtCAkcmVjZWlwdFBhdGgg66W8IOunjOuTpOyWtOyV
vCDtlanri4jri6QuIg0KICAgIH0NCiAgICAkYWdlID0gQXNzZXJ0LVRydXN0ZWRUb29sIC1QYXRo
ICRBZ2VQYXRoIC1FeHBlY3RlZEhhc2ggJEFnZUhhc2ggLUV4cGVjdGVkTmFtZSAnYWdlLmV4ZScg
LUFsbG93ZWRSb290ICRBbGxvd2VkUm9vdA0KICAgICRrZXlnZW4gPSBBc3NlcnQtVHJ1c3RlZFRv
b2wgLVBhdGggJEtleWdlblBhdGggLUV4cGVjdGVkSGFzaCAkS2V5Z2VuSGFzaCAtRXhwZWN0ZWRO
YW1lICdhZ2Uta2V5Z2VuLmV4ZScgLUFsbG93ZWRSb290ICRBbGxvd2VkUm9vdA0KICAgICRiYXRj
aHBhc3MgPSBBc3NlcnQtVHJ1c3RlZFRvb2wgLVBhdGggJEJhdGNocGFzc1BhdGggLUV4cGVjdGVk
SGFzaCAkQmF0Y2hwYXNzSGFzaCAtRXhwZWN0ZWROYW1lICdhZ2UtcGx1Z2luLWJhdGNocGFzcy5l
eGUnIC1BbGxvd2VkUm9vdCAkQWxsb3dlZFJvb3QNCiAgICAkYWdlVmVyc2lvbiA9IEludm9rZS1T
ZWNyZXRQcm9jZXNzIC1FeGVjdXRhYmxlICRhZ2UgLUFyZ3VtZW50cyBAKCctLXZlcnNpb24nKQ0K
ICAgIGlmICgkYWdlVmVyc2lvbiAtbm90bWF0Y2ggJyg/PCFbMC05XSkxXC4zXC4xKD8hWzAtOV0p
JykgeyB0aHJvdyAnYWdlLmV4ZeqwgCAxLjMuMeydtCDslYTri5nri4jri6QuJyB9DQogICAgJGtl
eWdlblZlcnNpb24gPSBJbnZva2UtU2VjcmV0UHJvY2VzcyAtRXhlY3V0YWJsZSAka2V5Z2VuIC1B
cmd1bWVudHMgQCgnLS12ZXJzaW9uJykNCiAgICBpZiAoJGtleWdlblZlcnNpb24gLW5vdG1hdGNo
ICcoPzwhWzAtOV0pMVwuM1wuMSg/IVswLTldKScpIHsgdGhyb3cgJ2FnZS1rZXlnZW4uZXhl6rCA
IDEuMy4x7J20IOyVhOuLmeuLiOuLpC4nIH0NCiAgICAkYmF0Y2hwYXNzVmVyc2lvbiA9IEludm9r
ZS1TZWNyZXRQcm9jZXNzIC1FeGVjdXRhYmxlICRiYXRjaHBhc3MgLUFyZ3VtZW50cyBAKCctLXZl
cnNpb24nKQ0KICAgIGlmICgkYmF0Y2hwYXNzVmVyc2lvbiAtbm90bWF0Y2ggJyg/PCFbMC05XSkx
XC4zXC4xKD8hWzAtOV0pJykgeyB0aHJvdyAnYWdlLXBsdWdpbi1iYXRjaHBhc3MuZXhl6rCAIDEu
My4x7J20IOyVhOuLmeuLiOuLpC4nIH0NCiAgICBbcHNjdXN0b21vYmplY3RdQHsgYWdlID0gJGFn
ZTsga2V5Z2VuID0gJGtleWdlbjsgYmF0Y2hwYXNzID0gJGJhdGNocGFzcyB9DQp9DQoNCmZ1bmN0
aW9uIE5ldy1BZ2VJZGVudGl0eSB7DQogICAgcGFyYW0oW3N0cmluZ10kS2V5Z2VuKQ0KICAgICRv
dXRwdXQgPSBJbnZva2UtU2VjcmV0UHJvY2VzcyAtRXhlY3V0YWJsZSAkS2V5Z2VuIC1Bcmd1bWVu
dHMgQCgpDQogICAgJGlkZW50aXR5TWF0Y2ggPSBbcmVnZXhdOjpNYXRjaCgkb3V0cHV0LCAnKD9t
KV5BR0UtU0VDUkVULUtFWS1bQS1aMC05XSskJykNCiAgICBpZiAoLW5vdCAkaWRlbnRpdHlNYXRj
aC5TdWNjZXNzKSB7ICRvdXRwdXQgPSAkbnVsbDsgdGhyb3cgJ2FnZSDqsJzsnbjtgqQg7IOd7ISx
IOqysOqzvOulvCDtmZXsnbjtlZjsp4Ag66q77ZaI7Iq164uI64ukLicgfQ0KICAgICRyZWNpcGll
bnRPdXRwdXQgPSBJbnZva2UtU2VjcmV0UHJvY2VzcyAtRXhlY3V0YWJsZSAkS2V5Z2VuIC1Bcmd1
bWVudHMgQCgnLXknLCAne1NPVUwtU0VDUkVULUlOUFVULVBJUEV9JykgLUlucHV0VGV4dCAoJGlk
ZW50aXR5TWF0Y2guVmFsdWUgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lKQ0KICAgICRyZWNpcGll
bnRNYXRjaCA9IFtyZWdleF06Ok1hdGNoKCRyZWNpcGllbnRPdXRwdXQsICcoP20pXihhZ2UxWzAt
OWEtel0rKVxzKiQnKQ0KICAgIGlmICgtbm90ICRyZWNpcGllbnRNYXRjaC5TdWNjZXNzKSB7ICRv
dXRwdXQgPSAkbnVsbDsgJHJlY2lwaWVudE91dHB1dCA9ICRudWxsOyB0aHJvdyAnYWdlIOqzteqw
nO2CpCDtjIzsg50g6rKw6rO866W8IO2ZleyduO2VmOyngCDrqrvtlojsirXri4jri6QuJyB9DQog
ICAgJHJlc3VsdCA9IFtwc2N1c3RvbW9iamVjdF1AeyBpZGVudGl0eSA9ICRpZGVudGl0eU1hdGNo
LlZhbHVlOyByZWNpcGllbnQgPSAkcmVjaXBpZW50TWF0Y2guR3JvdXBzWzFdLlZhbHVlIH0NCiAg
ICAkb3V0cHV0ID0gJG51bGwNCiAgICAkcmVjaXBpZW50T3V0cHV0ID0gJG51bGwNCiAgICByZXR1
cm4gJHJlc3VsdA0KfQ0KDQpmdW5jdGlvbiBFbmNyeXB0LVRleHRUb0FnZVJlY2lwaWVudCB7DQog
ICAgcGFyYW0oW3N0cmluZ10kQWdlLCBbc3RyaW5nXSRSZWNpcGllbnQsIFtzdHJpbmddJFBsYWlu
VGV4dCwgW3N0cmluZ10kT3V0cHV0UGF0aCkNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkT3V0cHV0UGF0aCkgeyB0aHJvdyAi7JWU7Zi4IOy2nOugpeydtCDsnbTrr7gg7J6I7Ja0IOuN
ruyWtOyTsOyngCDslYrsirXri4jri6Q6ICRPdXRwdXRQYXRoIiB9DQogICAgJG51bGwgPSBJbnZv
a2UtU2VjcmV0UHJvY2VzcyAtRXhlY3V0YWJsZSAkQWdlIC1Bcmd1bWVudHMgQCgnLS1lbmNyeXB0
JywgJy0tcmVjaXBpZW50JywgJFJlY2lwaWVudCwgJy0tb3V0cHV0JywgJE91dHB1dFBhdGgsICd7
U09VTC1TRUNSRVQtSU5QVVQtUElQRX0nKSAtSW5wdXRUZXh0ICRQbGFpblRleHQNCiAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkT3V0cHV0UGF0aCAtUGF0aFR5cGUgTGVhZikp
IHsgdGhyb3cgJ2FnZSDslZTtmLgg7YyM7J287J20IOunjOuTpOyWtOyngOyngCDslYrslZjsirXr
i4jri6QuJyB9DQp9DQoNCmZ1bmN0aW9uIEVuY3J5cHQtSWRlbnRpdHlSZWNvdmVyeSB7DQogICAg
cGFyYW0oW3N0cmluZ10kQWdlLCBbc3RyaW5nXSRCYXRjaHBhc3MsIFtzdHJpbmddJElkZW50aXR5
LCBbc3RyaW5nXSRQaHJhc2UsIFtzdHJpbmddJE91dHB1dFBhdGgpDQogICAgaWYgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJE91dHB1dFBhdGgpIHsgdGhyb3cgJ+uzteq1rCDqsJzsnbjtgqQg67SJ
7Yis6rCAIOydtOuvuCDsnojslrQg642u7Ja07JOw7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAk
bnVsbCA9IEludm9rZS1TZWNyZXRQcm9jZXNzIC1FeGVjdXRhYmxlICRBZ2UgLUFyZ3VtZW50cyBA
KCctLWVuY3J5cHQnLCAnLWonLCAnYmF0Y2hwYXNzJywgJy0tb3V0cHV0JywgJE91dHB1dFBhdGgs
ICd7U09VTC1TRUNSRVQtSU5QVVQtUElQRX0nKSAtSW5wdXRUZXh0ICgkSWRlbnRpdHkgKyBbRW52
aXJvbm1lbnRdOjpOZXdMaW5lKSAtUGFzc3BocmFzZSAkUGhyYXNlIC1QbHVnaW5EaXJlY3Rvcnkg
KFNwbGl0LVBhdGggLVBhcmVudCAkQmF0Y2hwYXNzKQ0KfQ0KDQpmdW5jdGlvbiBEZWNyeXB0LVJl
Y292ZXJ5SWRlbnRpdHkgew0KICAgIHBhcmFtKFtzdHJpbmddJEFnZSwgW3N0cmluZ10kQmF0Y2hw
YXNzLCBbc3RyaW5nXSRQaHJhc2UsIFtzdHJpbmddJFJlY292ZXJ5UGF0aCkNCiAgICAoSW52b2tl
LVNlY3JldFByb2Nlc3MgLUV4ZWN1dGFibGUgJEFnZSAtQXJndW1lbnRzIEAoJy0tZGVjcnlwdCcs
ICctaicsICdiYXRjaHBhc3MnLCAkUmVjb3ZlcnlQYXRoKSAtUGFzc3BocmFzZSAkUGhyYXNlIC1Q
bHVnaW5EaXJlY3RvcnkgKFNwbGl0LVBhdGggLVBhcmVudCAkQmF0Y2hwYXNzKSkuVHJpbSgpDQp9
DQoNCmZ1bmN0aW9uIERlY3J5cHQtVmF1bHRUZXh0IHsNCiAgICBwYXJhbShbc3RyaW5nXSRBZ2Us
IFtzdHJpbmddJElkZW50aXR5LCBbc3RyaW5nXSRWYXVsdFBhdGgpDQogICAgKEludm9rZS1TZWNy
ZXRQcm9jZXNzIC1FeGVjdXRhYmxlICRBZ2UgLUFyZ3VtZW50cyBAKCctLWRlY3J5cHQnLCAnLS1p
ZGVudGl0eScsICd7U09VTC1TRUNSRVQtSU5QVVQtUElQRX0nLCAkVmF1bHRQYXRoKSAtSW5wdXRU
ZXh0ICgkSWRlbnRpdHkgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lKSkuVHJpbUVuZCgiYHIiLCAi
YG4iKQ0KfQ0KDQpmdW5jdGlvbiBHZXQtVW5sb2NrZWRJZGVudGl0eSB7DQogICAgcGFyYW0oW3N0
cmluZ10kUm9vdCwgW3N0cmluZ10kU291bElkLCAkTGF5b3V0LCBbc3RyaW5nXSRBZ2UsIFtzdHJp
bmddJEJhdGNocGFzcywgW3N3aXRjaF0kUmVjb3ZlcnkpDQogICAgaWYgKC1ub3QgJFJlY292ZXJ5
KSB7IHJldHVybiBVbnByb3RlY3QtSWRlbnRpdHlGb3JIb3N0IC1Tb3VsSWQgJFNvdWxJZCAtUm9v
dCAkUm9vdCB9DQogICAgJG1ldGFkYXRhID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRMYXlv
dXQuTWV0YWRhdGEgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAk
cGhyYXNlID0gUmVhZC1SZWNvdmVyeVBocmFzZQ0KICAgIHRyeSB7DQogICAgICAgIGlmICgtbm90
IChUZXN0LVJlY292ZXJ5VmVyaWZpZXIgLVBocmFzZSAkcGhyYXNlIC1Tb3VsSWQgJFNvdWxJZCAt
VmVyaWZpZXIgJG1ldGFkYXRhLnJlY292ZXJ5VmVyaWZpZXIpKSB7IHRocm93ICfrs7XqtazrrLjq
tazqsIAg66ee7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAgICAgJGlkZW50aXR5ID0gRGVjcnlw
dC1SZWNvdmVyeUlkZW50aXR5IC1BZ2UgJEFnZSAtQmF0Y2hwYXNzICRCYXRjaHBhc3MgLVBocmFz
ZSAkcGhyYXNlIC1SZWNvdmVyeVBhdGggJExheW91dC5SZWNvdmVyeUlkZW50aXR5DQogICAgICAg
ICMg7IOIIO2YuOyKpO2KuOyXkOyEnOunjCDrtIntiKzrpbwg66eM65Og64ukLiDquLDsobQg67SJ
7Yis64qUIOuNruyWtOyTsOyngCDslYrripTri6QuDQogICAgICAgICRob3N0SW5mbyA9IEdldC1I
b3N0SWRlbnRpdHkgLVNvdWxJZCAkU291bElkDQogICAgICAgICRob3N0UGF0aCA9IEdldC1Ib3N0
V3JhcHBlclBhdGggLVJvb3QgJFJvb3QgLUhvc3RJZCAkaG9zdEluZm8uaG9zdElkDQogICAgICAg
IFtBcnJheV06OkNsZWFyKCRob3N0SW5mby5lbnRyb3B5LCAwLCAkaG9zdEluZm8uZW50cm9weS5M
ZW5ndGgpDQogICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRob3N0UGF0
aCkpIHsgJG51bGwgPSBQcm90ZWN0LUlkZW50aXR5Rm9ySG9zdCAtSWRlbnRpdHkgJGlkZW50aXR5
IC1Tb3VsSWQgJFNvdWxJZCAtUm9vdCAkUm9vdCB9DQogICAgICAgIHJldHVybiAkaWRlbnRpdHkN
CiAgICB9DQogICAgZmluYWxseSB7ICRwaHJhc2UgPSAkbnVsbDsgW0dDXTo6Q29sbGVjdCgpIH0N
Cn0NCg0KZnVuY3Rpb24gQXNzZXJ0LVZhdWx0Q29tcGxldGUgew0KICAgIHBhcmFtKCRMYXlvdXQp
DQogICAgZm9yZWFjaCAoJHBhdGggaW4gQCgkTGF5b3V0LlZhdWx0LCAkTGF5b3V0Lk1ldGFkYXRh
LCAkTGF5b3V0LlJlY292ZXJ5SWRlbnRpdHkpKSB7DQogICAgICAgIGlmICgtbm90IChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRwYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAi7Iuc7YGs66a/
IOq4iOqzoCDqtazshLHsnbQg7JmE7KCE7ZWY7KeAIOyViuyKteuLiOuLpDogJHBhdGgiIH0NCiAg
ICAgICAgQXNzZXJ0LUNyZWRlbnRpYWxTb3VyY2VOb0ZvbGxvdyAtUGF0aCAkcGF0aCB8IE91dC1O
dWxsDQogICAgfQ0KfQ0KDQokcm9vdCA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNl
KCRTb3VsUm9vdCkpIHsgR2V0LVNvdWxSb290IH0gZWxzZSB7IEFzc2VydC1Tb3VsUm9vdCAtUGF0
aCAkU291bFJvb3QgLVJlcXVpcmVJbml0aWFsaXplZCB9DQppZiAoLW5vdCAkcm9vdC5FcXVhbHMo
KEdldC1Tb3VsUm9vdCksIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7
IHRocm93ICfsi5ztgazrpr8g7JeU7KeE7J2AIOyekOyLoOydtCDsho3tlZwg7JiB7Zi866eMIOq0
gOumrO2VqeuLiOuLpC4nIH0NCiRzb3VsSWQgPSBpZiAoJEFjdGlvbiAtZXEgJ1NlbGZUZXN0JyAt
YW5kIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkcm9vdCAnc291bC1z
dGF0ZS5qc29uJykgLVBhdGhUeXBlIExlYWYpKSB7DQogICAgJzAwMDAwMDAwLTAwMDAtNDAwMC04
MDAwLTAwMDAwMDAwMDAwMScNCn0gZWxzZSB7IFJlYWQtU291bElkZW50aXR5IC1Sb290ICRyb290
IH0NCiRsYXlvdXQgPSBHZXQtVmF1bHRMYXlvdXQgLVJvb3QgJHJvb3QNCmZvcmVhY2ggKCRtYW5h
Z2VkUGF0aCBpbiBAKCRsYXlvdXQuUm9vdCwgJGxheW91dC5WYXVsdCwgJGxheW91dC5NZXRhZGF0
YSwgJGxheW91dC5SZWNvdmVyeUlkZW50aXR5LCAkbGF5b3V0LkxlZ2FjeSkpIHsNCiAgICBBc3Nl
cnQtU291bE93bmVkUGF0aCAtUGF0aCAkbWFuYWdlZFBhdGggfCBPdXQtTnVsbA0KfQ0KDQppZiAo
JEFjdGlvbiAtZXEgJ1NlbGZUZXN0Jykgew0KICAgICRwaHJhc2UgPSAnY29ycmVjdCBob3JzZSBi
YXR0ZXJ5IHN0YXBsZSDthYzsiqTtirgg67O16rWs66y46rWsJw0KICAgICR2ZXJpZmllciA9IE5l
dy1SZWNvdmVyeVZlcmlmaWVyIC1QaHJhc2UgJHBocmFzZSAtU291bElkICRzb3VsSWQgLVNhbHQg
KE5ldy1SYW5kb21CeXRlcyAxNikgLUl0ZXJhdGlvbnMgMTAwMA0KICAgIGlmICgtbm90IChUZXN0
LVJlY292ZXJ5VmVyaWZpZXIgLVBocmFzZSAkcGhyYXNlIC1Tb3VsSWQgJHNvdWxJZCAtVmVyaWZp
ZXIgJHZlcmlmaWVyKSkgeyB0aHJvdyAnSE1BQyDrs7XqtazrrLjqtawg7J6Q7LK0IOygkOqygOyX
kCDsi6TtjKjtlojsirXri4jri6QuJyB9DQogICAgaWYgKFRlc3QtUmVjb3ZlcnlWZXJpZmllciAt
UGhyYXNlICgkcGhyYXNlICsgJ1gnKSAtU291bElkICRzb3VsSWQgLVZlcmlmaWVyICR2ZXJpZmll
cikgeyB0aHJvdyAn7YuA66awIOuzteq1rOusuOq1rOulvCDtl4jsmqntlojsirXri4jri6QuJyB9
DQogICAgJHNhbXBsZUlkZW50aXR5ID0gJ0FHRS1TRUNSRVQtS0VZLVNFTEZURVNULURPLU5PVC1V
U0UnDQogICAgJGhvc3RJbmZvID0gR2V0LUhvc3RJZGVudGl0eSAtU291bElkICRzb3VsSWQNCiAg
ICAkcGxhaW4gPSBbVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJHNhbXBsZUlkZW50aXR5
KQ0KICAgICRwcm90ZWN0ZWQgPSAkbnVsbA0KICAgICRyb3VuZFRyaXAgPSAkbnVsbA0KICAgIHRy
eSB7DQogICAgICAgICRwcm90ZWN0ZWQgPSBbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5Q
cm90ZWN0ZWREYXRhXTo6UHJvdGVjdCgkcGxhaW4sICRob3N0SW5mby5lbnRyb3B5LCBbU3lzdGVt
LlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5EYXRhUHJvdGVjdGlvblNjb3BlXTo6Q3VycmVudFVzZXIp
DQogICAgICAgICRyb3VuZFRyaXAgPSBbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5Qcm90
ZWN0ZWREYXRhXTo6VW5wcm90ZWN0KCRwcm90ZWN0ZWQsICRob3N0SW5mby5lbnRyb3B5LCBbU3lz
dGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5EYXRhUHJvdGVjdGlvblNjb3BlXTo6Q3VycmVudFVz
ZXIpDQogICAgICAgIGlmICgtbm90IChUZXN0LUNvbnN0YW50VGltZUJ5dGVzIC1MZWZ0ICRwbGFp
biAtUmlnaHQgJHJvdW5kVHJpcCkpIHsgdGhyb3cgJ0RQQVBJIOyZleuztSDsnpDssrQg7KCQ6rKA
7JeQIOyLpO2MqO2WiOyKteuLiOuLpC4nIH0NCiAgICB9DQogICAgZmluYWxseSB7DQogICAgICAg
IGZvcmVhY2ggKCRieXRlcyBpbiBAKCRwbGFpbiwgJHByb3RlY3RlZCwgJHJvdW5kVHJpcCwgJGhv
c3RJbmZvLmVudHJvcHkpKSB7IGlmICgkbnVsbCAtbmUgJGJ5dGVzKSB7IFtBcnJheV06OkNsZWFy
KCRieXRlcywgMCwgJGJ5dGVzLkxlbmd0aCkgfSB9DQogICAgICAgICRwaHJhc2UgPSAkbnVsbDsg
JHNhbXBsZUlkZW50aXR5ID0gJG51bGwNCiAgICB9DQogICAgJHRlc3ROYW1lcyA9IE5ldy1PYmpl
Y3QgQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICBmb3JlYWNoICgkbmFtZSBp
biBAKCdQQktERjItSE1BQy1TSEEyNTYtdmVyaWZpZXInLCAnY29uc3RhbnQtdGltZS1jb21wYXJl
JywgJ3NhbWUtaG9zdC1EUEFQSS1tZW1vcnktcm91bmR0cmlwJykpIHsgJHRlc3ROYW1lcy5BZGQo
JG5hbWUpIH0NCiAgICAkY3JlZGVudGlhbEZpeHR1cmVQYXJlbnQgPSBKb2luLVBhdGggJFBTU2Ny
aXB0Um9vdCAndGVzdHNcZml4dHVyZXMnDQogICAgJGNyZWRlbnRpYWxGaXh0dXJlSWQgPSBbZ3Vp
ZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQogICAgJGNyZWRlbnRpYWxGaXh0dXJlID0gSm9pbi1Q
YXRoICRjcmVkZW50aWFsRml4dHVyZVBhcmVudCAoJ3NlY3JldC1maWxlcy0nICsgJGNyZWRlbnRp
YWxGaXh0dXJlSWQpDQogICAgW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkY3JlZGVu
dGlhbEZpeHR1cmUpIHwgT3V0LU51bGwNCiAgICAkY3JlZGVudGlhbE93bmVyTWFya2VyID0gSm9p
bi1QYXRoICRjcmVkZW50aWFsRml4dHVyZSAnLm93bmVkLXNlY3JldC1zZWxmdGVzdCcNCiAgICBX
cml0ZS1UZXh0Q3JlYXRlTmV3IC1QYXRoICRjcmVkZW50aWFsT3duZXJNYXJrZXIgLVRleHQgJGNy
ZWRlbnRpYWxGaXh0dXJlSWQNCiAgICB0cnkgew0KICAgICAgICAkc291cmNlQ3JlZGVudGlhbCA9
IEpvaW4tUGF0aCAkY3JlZGVudGlhbEZpeHR1cmUgJ3NlcnZpY2UtYWNjb3VudC5qc29uJw0KICAg
ICAgICAkY3JlZGVudGlhbEJ5dGVzID0gTmV3LVJhbmRvbUJ5dGVzIDI1Ng0KICAgICAgICB0cnkg
eyBXcml0ZS1CeXRlc0NyZWF0ZU5ldyAtUGF0aCAkc291cmNlQ3JlZGVudGlhbCAtQnl0ZXMgJGNy
ZWRlbnRpYWxCeXRlcyB9IGZpbmFsbHkgeyBbQXJyYXldOjpDbGVhcigkY3JlZGVudGlhbEJ5dGVz
LCAwLCAkY3JlZGVudGlhbEJ5dGVzLkxlbmd0aCkgfQ0KICAgICAgICAkdGVzdEFjdGl2ZSA9IEB7
IEdPT0dMRV9BUFBMSUNBVElPTl9DUkVERU5USUFMUyA9ICRzb3VyY2VDcmVkZW50aWFsIH0NCiAg
ICAgICAgJGNhcHR1cmUgPSBHZXQtQ3JlZGVudGlhbENhcHR1cmVzIC1BY3RpdmUgJHRlc3RBY3Rp
dmUgLUV4cGxpY2l0UGF0aHMgQCgpDQogICAgICAgIGlmIChAKCRjYXB0dXJlLmVudHJpZXMpLkNv
dW50IC1uZSAxIC1vciAtbm90IChbc3RyaW5nXSR0ZXN0QWN0aXZlLkdPT0dMRV9BUFBMSUNBVElP
Tl9DUkVERU5USUFMUykuU3RhcnRzV2l0aCgnQGNyZWRlbnRpYWw6JykpIHsgdGhyb3cgJ2NyZWRl
bnRpYWwgcG9ydGFibGUgY2FwdHVyZSDsnpDssrQg7KCQ6rKA7JeQIOyLpO2MqO2WiOyKteuLiOuL
pC4nIH0NCiAgICAgICAgJGZha2VWYXVsdCA9IFtwc2N1c3RvbW9iamVjdF1AeyBmaWxlcyA9IEAo
JGNhcHR1cmUuZW50cmllcykgfQ0KICAgICAgICAkYWxpYXMgPSBbc3RyaW5nXSRjYXB0dXJlLmVu
dHJpZXNbMF0uYWxpYXMNCiAgICAgICAgJGxlYXNlID0gUmVzdG9yZS1DcmVkZW50aWFsTGVhc2Ug
LVZhdWx0ICRmYWtlVmF1bHQgLUFsaWFzZXMgQCgkYWxpYXMpIC1Sb290ICRjcmVkZW50aWFsRml4
dHVyZSAtU291bElkICRzb3VsSWQgLU93bmVyUHJvY2Vzc0lkIDAgLU93bmVyU3RhcnRVdGMgJycN
CiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKFtzdHJpbmddJGxlYXNl
LmZpbGVNYXBbJGFsaWFzXSkgLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICdjcmVkZW50aWFsIOyg
nO2VnCBsZWFzZSDrs7Xsm5Ag7J6Q7LK0IOygkOqygOyXkCDsi6TtjKjtlojsirXri4jri6QuJyB9
DQogICAgICAgICRjbGVhbnVwID0gUmVtb3ZlLUNyZWRlbnRpYWxMZWFzZSAtUm9vdCAkY3JlZGVu
dGlhbEZpeHR1cmUgLVNvdWxJZCAkc291bElkIC1MZWFzZUlkVmFsdWUgJGxlYXNlLmxlYXNlSWQN
CiAgICAgICAgaWYgKFtzdHJpbmddJGNsZWFudXAuc3RhdHVzIC1uZSAnbGVhc2UtY2xlYW5lZCcg
LW9yIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRsZWFzZS5sZWFzZVJvb3QpKSB7IHRocm93ICdj
cmVkZW50aWFsIGxlYXNlIOygleumrCDsnpDssrQg7KCQ6rKA7JeQIOyLpO2MqO2WiOyKteuLiOuL
pC4nIH0NCiAgICAgICAgJHRlc3ROYW1lcy5BZGQoJ2NyZWRlbnRpYWwtZmlsZS1lbmNyeXB0ZWQt
Y2FwdHVyZS1tb2RlbCcpDQogICAgICAgICR0ZXN0TmFtZXMuQWRkKCdyZXN0cmljdGVkLXJ1bnRp
bWUtbGVhc2UtcmVzdG9yZS1jbGVhbnVwJykNCiAgICB9DQogICAgZmluYWxseSB7DQogICAgICAg
ICRmaXh0dXJlRnVsbCA9IEdldC1GdWxsTGl0ZXJhbFBhdGggJGNyZWRlbnRpYWxGaXh0dXJlDQog
ICAgICAgIGlmICgoU3BsaXQtUGF0aCAtUGFyZW50ICRmaXh0dXJlRnVsbCkgLWVxIChHZXQtRnVs
bExpdGVyYWxQYXRoICRjcmVkZW50aWFsRml4dHVyZVBhcmVudCkgLWFuZCAoVGVzdC1QYXRoIC1M
aXRlcmFsUGF0aCAkY3JlZGVudGlhbE93bmVyTWFya2VyIC1QYXRoVHlwZSBMZWFmKSAtYW5kIChH
ZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJGNyZWRlbnRpYWxPd25lck1hcmtlciAtUmF3IC1FbmNv
ZGluZyBVVEY4KSAtZXEgJGNyZWRlbnRpYWxGaXh0dXJlSWQpIHsNCiAgICAgICAgICAgIFtJTy5E
aXJlY3RvcnldOjpEZWxldGUoJGZpeHR1cmVGdWxsLCAkdHJ1ZSkNCiAgICAgICAgfQ0KICAgIH0N
CiAgICAkcmVjZWlwdFBhdGggPSBKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAnc291cmNlLXJlY2Vp
cHRzXGFnZS5qc29uJw0KICAgICRkZWZhdWx0QWdlID0gSm9pbi1QYXRoIChHZXQtU291bFJvb3Qp
ICdfYWdlbnRcc2hhcmVkXHRvb2xzXGFnZVwxLjMuMVxhZ2UuZXhlJw0KICAgICRkZWZhdWx0S2V5
Z2VuID0gSm9pbi1QYXRoIChHZXQtU291bFJvb3QpICdfYWdlbnRcc2hhcmVkXHRvb2xzXGFnZVwx
LjMuMVxhZ2Uta2V5Z2VuLmV4ZScNCiAgICAkZGVmYXVsdEJhdGNocGFzcyA9IEpvaW4tUGF0aCAo
R2V0LVNvdWxSb290KSAnX2FnZW50XHNoYXJlZFx0b29sc1xhZ2VcMS4zLjFcYWdlLXBsdWdpbi1i
YXRjaHBhc3MuZXhlJw0KICAgICRmaXh0dXJlQmluID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3Qg
J3Rlc3RzXGZpeHR1cmVzXGFnZS1pbnRlZ3JhdGlvblxleHBhbmRlZFxhZ2UnDQogICAgJGFnZUlu
dGVncmF0aW9uID0gJ1NLSVBQRUQ6IHBpbm5lZCBhZ2UgMS4zLjEg64+E6rWsIOyEuCDrsowg65iQ
64qUIOqygOymnSByZWNlaXB06rCAIOyVhOyngSDsl4bsnYwnDQogICAgJHRvb2xzRm9yVGVzdCA9
ICRudWxsDQogICAgaWYgKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRyZWNlaXB0UGF0aCAtUGF0
aFR5cGUgTGVhZikgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGVmYXVsdEFnZSAtUGF0
aFR5cGUgTGVhZikgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGVmYXVsdEtleWdlbiAt
UGF0aFR5cGUgTGVhZikgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGVmYXVsdEJhdGNo
cGFzcyAtUGF0aFR5cGUgTGVhZikpIHsNCiAgICAgICAgJHRvb2xzRm9yVGVzdCA9IEFzc2VydC1B
Z2VUb29scw0KICAgIH0NCiAgICBlbHNlaWYgKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2lu
LVBhdGggJGZpeHR1cmVCaW4gJ2FnZS5leGUnKSAtUGF0aFR5cGUgTGVhZikgLWFuZCAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRmaXh0dXJlQmluICdhZ2Uta2V5Z2VuLmV4ZScp
IC1QYXRoVHlwZSBMZWFmKSAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGgg
JGZpeHR1cmVCaW4gJ2FnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4ZScpIC1QYXRoVHlwZSBMZWFmKSkg
ew0KICAgICAgICAjIOu2gOuqqCDsl5Tsp4TsnbQg6rO17IudIHYxLjMuMSBhcmNoaXZlIFNIQS0y
NTbquYzsp4Ag7ZmV7J247ZWcIOydvO2ajOyaqSDthrXtlakgZml4dHVyZeunjCDtl4jsmqntlZzr
i6QuDQogICAgICAgICR0b29sc0ZvclRlc3QgPSBBc3NlcnQtQWdlVG9vbHMgYA0KICAgICAgICAg
ICAgLUFnZVBhdGggKEpvaW4tUGF0aCAkZml4dHVyZUJpbiAnYWdlLmV4ZScpIC1BZ2VIYXNoICc5
MGY1Y2MzNzI0OWMwNmUwYjMwMmU0NzZhOGE2M2JjZWZlZWNkOTQzN2MxOTJiOGFmMzNlNmZmMmQ2
OTU1OGRkJyBgDQogICAgICAgICAgICAtS2V5Z2VuUGF0aCAoSm9pbi1QYXRoICRmaXh0dXJlQmlu
ICdhZ2Uta2V5Z2VuLmV4ZScpIC1LZXlnZW5IYXNoICc4YjljMjdlZjJhYjZmMjE1ZjY4OWJmMWU2
MDliZjgyYzhmYWY0YzA0MWYzMjQ1MmZhODAzOTZiM2Y4YzRmNjg3JyBgDQogICAgICAgICAgICAt
QmF0Y2hwYXNzUGF0aCAoSm9pbi1QYXRoICRmaXh0dXJlQmluICdhZ2UtcGx1Z2luLWJhdGNocGFz
cy5leGUnKSAtQmF0Y2hwYXNzSGFzaCAnMmNjYjRiNzgzNDkwMzIwMmU5MWYzZGVlYzA4YmZkODJl
ODY4MjdhZDIyZTExODE1ZjBmYmZkZjlkZjYxY2Q1MCcgYA0KICAgICAgICAgICAgLUFsbG93ZWRS
b290ICRmaXh0dXJlQmluDQogICAgfQ0KICAgIGlmICgkbnVsbCAtbmUgJHRvb2xzRm9yVGVzdCkg
ew0KICAgICAgICAkZml4dHVyZVJvb3QgPSBKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAndGVzdHNc
Zml4dHVyZXMnDQogICAgICAgICR0ZXN0SWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygn
TicpDQogICAgICAgICRjaXBoZXIgPSBKb2luLVBhdGggJGZpeHR1cmVSb290ICgnLnNlY3JldHMt
JyArICR0ZXN0SWQgKyAnLmFnZScpDQogICAgICAgICRyZWNvdmVyeSA9IEpvaW4tUGF0aCAkZml4
dHVyZVJvb3QgKCcucmVjb3ZlcnktJyArICR0ZXN0SWQgKyAnLmFnZScpDQogICAgICAgICRnZW5l
cmF0ZWRGb3JUZXN0ID0gJG51bGwNCiAgICAgICAgJHNhbXBsZSA9ICRudWxsOyAkcm91bmRUcmlw
VGV4dCA9ICRudWxsOyAkdGVzdFBhc3NwaHJhc2UgPSAkbnVsbDsgJHJvdW5kVHJpcElkZW50aXR5
ID0gJG51bGwNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICRnZW5lcmF0ZWRGb3JUZXN0ID0g
TmV3LUFnZUlkZW50aXR5IC1LZXlnZW4gJHRvb2xzRm9yVGVzdC5rZXlnZW4NCiAgICAgICAgICAg
ICRzYW1wbGUgPSAnYWdlLWludGVncmF0aW9uLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmlu
ZygpDQogICAgICAgICAgICBFbmNyeXB0LVRleHRUb0FnZVJlY2lwaWVudCAtQWdlICR0b29sc0Zv
clRlc3QuYWdlIC1SZWNpcGllbnQgJGdlbmVyYXRlZEZvclRlc3QucmVjaXBpZW50IC1QbGFpblRl
eHQgJHNhbXBsZSAtT3V0cHV0UGF0aCAkY2lwaGVyDQogICAgICAgICAgICAkcm91bmRUcmlwVGV4
dCA9IERlY3J5cHQtVmF1bHRUZXh0IC1BZ2UgJHRvb2xzRm9yVGVzdC5hZ2UgLUlkZW50aXR5ICRn
ZW5lcmF0ZWRGb3JUZXN0LmlkZW50aXR5IC1WYXVsdFBhdGggJGNpcGhlcg0KICAgICAgICAgICAg
aWYgKC1ub3QgKFRlc3QtQ29uc3RhbnRUaW1lVGV4dCAtTGVmdCAkc2FtcGxlIC1SaWdodCAkcm91
bmRUcmlwVGV4dCkpIHsgdGhyb3cgJ2FnZSByZWNpcGllbnQg7JmV67O1IOyekOyytCDsoJDqsoDs
l5Ag7Iuk7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgICAgICAgICAgJHRlc3RQYXNzcGhyYXNlID0g
TmV3LUdlbmVyYXRlZFJlY292ZXJ5UGhyYXNlDQogICAgICAgICAgICBFbmNyeXB0LUlkZW50aXR5
UmVjb3ZlcnkgLUFnZSAkdG9vbHNGb3JUZXN0LmFnZSAtQmF0Y2hwYXNzICR0b29sc0ZvclRlc3Qu
YmF0Y2hwYXNzIC1JZGVudGl0eSAkZ2VuZXJhdGVkRm9yVGVzdC5pZGVudGl0eSAtUGhyYXNlICR0
ZXN0UGFzc3BocmFzZSAtT3V0cHV0UGF0aCAkcmVjb3ZlcnkNCiAgICAgICAgICAgICRyb3VuZFRy
aXBJZGVudGl0eSA9IERlY3J5cHQtUmVjb3ZlcnlJZGVudGl0eSAtQWdlICR0b29sc0ZvclRlc3Qu
YWdlIC1CYXRjaHBhc3MgJHRvb2xzRm9yVGVzdC5iYXRjaHBhc3MgLVBocmFzZSAkdGVzdFBhc3Nw
aHJhc2UgLVJlY292ZXJ5UGF0aCAkcmVjb3ZlcnkNCiAgICAgICAgICAgIGlmICgtbm90IChUZXN0
LUNvbnN0YW50VGltZVRleHQgLUxlZnQgJGdlbmVyYXRlZEZvclRlc3QuaWRlbnRpdHkgLVJpZ2h0
ICRyb3VuZFRyaXBJZGVudGl0eSkpIHsgdGhyb3cgJ0FHRV9QQVNTUEhSQVNFIOuzteq1rCDrtInt
iKwg7JmV67O1IOyekOyytCDsoJDqsoDsl5Ag7Iuk7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgICAg
ICAgICAgJHRlc3ROYW1lcy5BZGQoJ2FnZS0xLjMuMS1yZWNpcGllbnQtcm91bmR0cmlwJykNCiAg
ICAgICAgICAgICR0ZXN0TmFtZXMuQWRkKCdhZ2UtMS4zLjEtYmF0Y2hwYXNzLUFHRV9QQVNTUEhS
QVNFLXJvdW5kdHJpcCcpDQogICAgICAgICAgICAkYWdlSW50ZWdyYXRpb24gPSAnUEFTUycNCiAg
ICAgICAgfQ0KICAgICAgICBmaW5hbGx5IHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRwYXRoIGlu
IEAoJGNpcGhlciwgJHJlY292ZXJ5KSkgew0KICAgICAgICAgICAgICAgIGlmICgoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkcGF0aCAtUGF0aFR5cGUgTGVhZikgLWFuZCAoU3BsaXQtUGF0aCAtUGFy
ZW50IChHZXQtRnVsbExpdGVyYWxQYXRoICRwYXRoKSkgLWVxIChHZXQtRnVsbExpdGVyYWxQYXRo
ICRmaXh0dXJlUm9vdCkpIHsgW0lPLkZpbGVdOjpEZWxldGUoJHBhdGgpIH0NCiAgICAgICAgICAg
IH0NCiAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJGdlbmVyYXRlZEZvclRlc3QpIHsgJGdlbmVy
YXRlZEZvclRlc3QuaWRlbnRpdHkgPSAkbnVsbCB9DQogICAgICAgICAgICAkc2FtcGxlID0gJG51
bGw7ICRyb3VuZFRyaXBUZXh0ID0gJG51bGw7ICR0ZXN0UGFzc3BocmFzZSA9ICRudWxsOyAkcm91
bmRUcmlwSWRlbnRpdHkgPSAkbnVsbDsgW0dDXTo6Q29sbGVjdCgpDQogICAgICAgIH0NCiAgICB9
DQogICAgW3BzY3VzdG9tb2JqZWN0XUB7IGNvbXBvbmVudCA9ICdzZWNyZXRzLXZhdWx0Jzsgc3Rh
dHVzID0gJ1BBU1MnOyB0ZXN0cyA9IEAoJHRlc3ROYW1lcyk7IGFnZUludGVncmF0aW9uID0gJGFn
ZUludGVncmF0aW9uIH0NCiAgICByZXR1cm4NCn0NCg0KaWYgKCRBY3Rpb24gLWVxICdTdGF0dXMn
KSB7DQogICAgJGhvc3RJbmZvID0gR2V0LUhvc3RJZGVudGl0eSAtU291bElkICRzb3VsSWQNCiAg
ICB0cnkgew0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIGluaXRpYWxp
emVkID0gKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxheW91dC5WYXVsdCAtUGF0aFR5cGUgTGVh
ZikgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbGF5b3V0Lk1ldGFkYXRhIC1QYXRoVHlw
ZSBMZWFmKSAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRsYXlvdXQuUmVjb3ZlcnlJZGVu
dGl0eSAtUGF0aFR5cGUgTGVhZikNCiAgICAgICAgICAgIHZhdWx0UGF0aCA9ICRsYXlvdXQuVmF1
bHQ7IHJlY292ZXJ5SWRlbnRpdHlQYXRoID0gJGxheW91dC5SZWNvdmVyeUlkZW50aXR5DQogICAg
ICAgICAgICBjdXJyZW50SG9zdERwYXBpID0gVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoR2V0LUhv
c3RXcmFwcGVyUGF0aCAtUm9vdCAkcm9vdCAtSG9zdElkICRob3N0SW5mby5ob3N0SWQpIC1QYXRo
VHlwZSBMZWFmDQogICAgICAgICAgICBwbGFpbnRleHRFbnZJbnNpZGVTb3VsID0gQChHZXQtQ2hp
bGRJdGVtIC1MaXRlcmFsUGF0aCAkbGF5b3V0LlJvb3QgLUZvcmNlIC1GaWxlIC1SZWN1cnNlIC1F
cnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgV2hlcmUtT2JqZWN0IHsgJF8uTmFtZSAtZXEg
Jy5lbnYnIH0pLkNvdW50DQogICAgICAgIH0NCiAgICB9DQogICAgZmluYWxseSB7IFtBcnJheV06
OkNsZWFyKCRob3N0SW5mby5lbnRyb3B5LCAwLCAkaG9zdEluZm8uZW50cm9weS5MZW5ndGgpIH0N
CiAgICByZXR1cm4NCn0NCg0KaWYgKCRBY3Rpb24gLWVxICdDbGVhbnVwTGVhc2UnKSB7DQogICAg
aWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJExlYXNlSWQpKSB7IHRocm93ICdDbGVh
bnVwTGVhc2Xsl5DripQgLUxlYXNlSWTqsIAg7ZWE7JqU7ZWp64uI64ukLicgfQ0KICAgIFJlbW92
ZS1DcmVkZW50aWFsTGVhc2UgLVJvb3QgJHJvb3QgLVNvdWxJZCAkc291bElkIC1MZWFzZUlkVmFs
dWUgJExlYXNlSWQNCiAgICByZXR1cm4NCn0NCg0KJHRvb2xzID0gQXNzZXJ0LUFnZVRvb2xzDQoN
CmlmICgkQWN0aW9uIC1lcSAnSW5pdGlhbGl6ZScpIHsNCiAgICBpZiAoKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJGxheW91dC5WYXVsdCkgLW9yIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRsYXlv
dXQuTWV0YWRhdGEpIC1vciAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbGF5b3V0LlJlY292ZXJ5
SWRlbnRpdHkpKSB7IHRocm93ICfquLDsobQg6riI6rOgIOuYkOuKlCDrtoDrtoQg6rWs7ISx7J20
IOyeiOyKteuLiOuLpC4g642u7Ja07JOw7KeAIOunkOqzoCDrqLzsoIAg67O16rWsIOyDge2DnOul
vCDtmZXsnbjtlZjshLjsmpQuJyB9DQogICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVE
aXJlY3RvcnkoJGxheW91dC5Sb290KSB8IE91dC1OdWxsDQogICAgJGFjdGl2ZSA9IFJlYWQtRW52
RmlsZVNlY3JldCAtUGF0aCAkRW52UGF0aA0KICAgICRsZWdhY3lWYWx1ZXMgPSBSZWFkLUVudkZp
bGVTZWNyZXQgLVBhdGggJExlZ2FjeUVudlBhdGgNCiAgICAkYWN0aXZlQ3JlZGVudGlhbENhcHR1
cmUgPSBHZXQtQ3JlZGVudGlhbENhcHR1cmVzIC1BY3RpdmUgJGFjdGl2ZSAtRXhwbGljaXRQYXRo
cyAkQ3JlZGVudGlhbEZpbGVQYXRoDQogICAgJGxlZ2FjeVByZWZpeCA9ICdsZWdhY3kvJyArIFtE
YXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygneXl5eU1NZGRUSEhtbXNzWicpICsgJy8nDQogICAg
JGxlZ2FjeUNyZWRlbnRpYWxDYXB0dXJlID0gR2V0LUNyZWRlbnRpYWxDYXB0dXJlcyAtQWN0aXZl
ICRsZWdhY3lWYWx1ZXMgLUV4cGxpY2l0UGF0aHMgQCgpIC1BbGlhc1ByZWZpeCAkbGVnYWN5UHJl
Zml4DQogICAgJGFsbENyZWRlbnRpYWxGaWxlcyA9IEAoJGFjdGl2ZUNyZWRlbnRpYWxDYXB0dXJl
LmVudHJpZXMpICsgQCgkbGVnYWN5Q3JlZGVudGlhbENhcHR1cmUuZW50cmllcykNCiAgICAkZ2Vu
ZXJhdGVkID0gTmV3LUFnZUlkZW50aXR5IC1LZXlnZW4gJHRvb2xzLmtleWdlbg0KICAgICRwaHJh
c2UgPSBTaG93LU5ld1JlY292ZXJ5UGhyYXNlT25jZQ0KICAgICRvcGVyYXRpb25JZCA9IFtndWlk
XTo6TmV3R3VpZCgpLlRvU3RyaW5nKCkNCiAgICAkc3RhZ2luZyA9IEpvaW4tUGF0aCAkcm9vdCAo
J19hZ2VudFxzZXR1cFx0cmFuc2FjdGlvbnNcJyArICRvcGVyYXRpb25JZCArICdcc2VjcmV0cycp
DQogICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHN0YWdpbmcpIHwg
T3V0LU51bGwNCiAgICB0cnkgew0KICAgICAgICAkdmF1bHRPYmplY3QgPSBbb3JkZXJlZF1Aew0K
ICAgICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDE7IHNvdWxJZCA9ICRzb3VsSWQ7IGNyZWF0ZWRB
dFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpOyBhY3RpdmUgPSAkYWN0aXZl
DQogICAgICAgICAgICBwYXRoQmluZGluZ3MgPSAkYWN0aXZlQ3JlZGVudGlhbENhcHR1cmUuYmlu
ZGluZ3M7IGZpbGVzID0gJGFsbENyZWRlbnRpYWxGaWxlcw0KICAgICAgICAgICAgbGVnYWN5U25h
cHNob3RzID0gaWYgKCRsZWdhY3lWYWx1ZXMuQ291bnQgLW9yIEAoJGxlZ2FjeUNyZWRlbnRpYWxD
YXB0dXJlLmVudHJpZXMpLkNvdW50KSB7IEAoW29yZGVyZWRdQHsgaW1wb3J0ZWRBdFV0YyA9IFtE
YXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpOyBzb3VyY2UgPSAnbGVnYWN5LWVudic7IHZh
bHVlcyA9ICRsZWdhY3lWYWx1ZXM7IHBhdGhCaW5kaW5ncyA9ICRsZWdhY3lDcmVkZW50aWFsQ2Fw
dHVyZS5iaW5kaW5ncyB9KSB9IGVsc2UgeyBAKCkgfQ0KICAgICAgICB9DQogICAgICAgICR2YXVs
dFRleHQgPSAkdmF1bHRPYmplY3QgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjANCiAgICAgICAg
JHN0YWdlZFZhdWx0ID0gSm9pbi1QYXRoICRzdGFnaW5nICd2YXVsdC5hZ2UnDQogICAgICAgICRz
dGFnZWRSZWNvdmVyeSA9IEpvaW4tUGF0aCAkc3RhZ2luZyAncmVjb3ZlcnktaWRlbnRpdHkuYWdl
Jw0KICAgICAgICAkc3RhZ2VkRHBhcGkgPSBKb2luLVBhdGggJHN0YWdpbmcgJ3VubG9jay5kcGFw
aScNCiAgICAgICAgRW5jcnlwdC1UZXh0VG9BZ2VSZWNpcGllbnQgLUFnZSAkdG9vbHMuYWdlIC1S
ZWNpcGllbnQgJGdlbmVyYXRlZC5yZWNpcGllbnQgLVBsYWluVGV4dCAkdmF1bHRUZXh0IC1PdXRw
dXRQYXRoICRzdGFnZWRWYXVsdA0KICAgICAgICBFbmNyeXB0LUlkZW50aXR5UmVjb3ZlcnkgLUFn
ZSAkdG9vbHMuYWdlIC1CYXRjaHBhc3MgJHRvb2xzLmJhdGNocGFzcyAtSWRlbnRpdHkgJGdlbmVy
YXRlZC5pZGVudGl0eSAtUGhyYXNlICRwaHJhc2UgLU91dHB1dFBhdGggJHN0YWdlZFJlY292ZXJ5
DQogICAgICAgICR2ZXJpZmllciA9IE5ldy1SZWNvdmVyeVZlcmlmaWVyIC1QaHJhc2UgJHBocmFz
ZSAtU291bElkICRzb3VsSWQNCiAgICAgICAgJGhvc3RJbmZvID0gR2V0LUhvc3RJZGVudGl0eSAt
U291bElkICRzb3VsSWQNCiAgICAgICAgJGRwYXBpUGF0aCA9IEdldC1Ib3N0V3JhcHBlclBhdGgg
LVJvb3QgJHJvb3QgLUhvc3RJZCAkaG9zdEluZm8uaG9zdElkDQogICAgICAgIFtBcnJheV06OkNs
ZWFyKCRob3N0SW5mby5lbnRyb3B5LCAwLCAkaG9zdEluZm8uZW50cm9weS5MZW5ndGgpDQogICAg
ICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRkcGFwaVBhdGgpIHsgdGhyb3cgJ+2YhOye
rCDtmLjsiqTtirjsnZggRFBBUEkg67SJ7Yis6rCAIOydtOuvuCDsnojsirXri4jri6QuIOuNruyW
tOyTsOyngCDslYrsirXri4jri6QuJyB9DQogICAgICAgICRudWxsID0gUHJvdGVjdC1JZGVudGl0
eUZvckhvc3QgLUlkZW50aXR5ICRnZW5lcmF0ZWQuaWRlbnRpdHkgLVNvdWxJZCAkc291bElkIC1S
b290ICRyb290IC1PdXRwdXRQYXRoICRzdGFnZWREcGFwaQ0KICAgICAgICAkbWV0YWRhdGEgPSBb
b3JkZXJlZF1Aew0KICAgICAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDE7IHNvdWxJZCA9ICRzb3Vs
SWQ7IHJlY2lwaWVudCA9ICRnZW5lcmF0ZWQucmVjaXBpZW50DQogICAgICAgICAgICB2YXVsdENp
cGhlclNoYTI1NiA9IEdldC1GaWxlU2hhMjU2ICRzdGFnZWRWYXVsdA0KICAgICAgICAgICAgdmF1
bHRDaXBoZXJIbWFjID0gR2V0LUZpbGVIbWFjIC1QYXRoICRzdGFnZWRWYXVsdCAtSWRlbnRpdHkg
JGdlbmVyYXRlZC5pZGVudGl0eSAtQ29udGV4dCAndmF1bHQtY2lwaGVyLXYxJyAtU291bElkICRz
b3VsSWQNCiAgICAgICAgICAgIHJlY292ZXJ5SWRlbnRpdHlDaXBoZXJTaGEyNTYgPSBHZXQtRmls
ZVNoYTI1NiAkc3RhZ2VkUmVjb3ZlcnkNCiAgICAgICAgICAgIHJlY292ZXJ5SWRlbnRpdHlDaXBo
ZXJIbWFjID0gR2V0LUZpbGVIbWFjIC1QYXRoICRzdGFnZWRSZWNvdmVyeSAtSWRlbnRpdHkgJGdl
bmVyYXRlZC5pZGVudGl0eSAtQ29udGV4dCAncmVjb3ZlcnktaWRlbnRpdHktY2lwaGVyLXYxJyAt
U291bElkICRzb3VsSWQNCiAgICAgICAgICAgIHJlY292ZXJ5VmVyaWZpZXIgPSAkdmVyaWZpZXI7
IGNyZWF0ZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgICAg
IH0NCiAgICAgICAgJHN0YWdlZE1ldGFkYXRhID0gSm9pbi1QYXRoICRzdGFnaW5nICd2YXVsdC1t
ZXRhZGF0YS5qc29uJw0KICAgICAgICBXcml0ZS1Kc29uQ3JlYXRlTmV3IC1QYXRoICRzdGFnZWRN
ZXRhZGF0YSAtVmFsdWUgJG1ldGFkYXRhDQogICAgICAgIFtTeXN0ZW0uSU8uRmlsZV06Ok1vdmUo
JHN0YWdlZFZhdWx0LCAkbGF5b3V0LlZhdWx0KQ0KICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpN
b3ZlKCRzdGFnZWRSZWNvdmVyeSwgJGxheW91dC5SZWNvdmVyeUlkZW50aXR5KQ0KICAgICAgICBb
U3lzdGVtLklPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoU3BsaXQtUGF0aCAtUGFyZW50
ICRkcGFwaVBhdGgpKSB8IE91dC1OdWxsDQogICAgICAgIFtTeXN0ZW0uSU8uRmlsZV06Ok1vdmUo
JHN0YWdlZERwYXBpLCAkZHBhcGlQYXRoKQ0KICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpNb3Zl
KCRzdGFnZWRNZXRhZGF0YSwgJGxheW91dC5NZXRhZGF0YSkNCiAgICAgICAgW3BzY3VzdG9tb2Jq
ZWN0XUB7IHN0YXR1cyA9ICdpbml0aWFsaXplZCc7IHZhdWx0UGF0aCA9ICRsYXlvdXQuVmF1bHQ7
IGhvc3REcGFwaVBhdGggPSAkZHBhcGlQYXRoOyBhY3RpdmVLZXlDb3VudCA9ICRhY3RpdmUuQ291
bnQ7IGVuY3J5cHRlZENyZWRlbnRpYWxGaWxlQ291bnQgPSBAKCRhbGxDcmVkZW50aWFsRmlsZXMp
LkNvdW50OyBsZWdhY3lTbmFwc2hvdENvdW50ID0gaWYgKCRsZWdhY3lWYWx1ZXMuQ291bnQgLW9y
IEAoJGxlZ2FjeUNyZWRlbnRpYWxDYXB0dXJlLmVudHJpZXMpLkNvdW50KSB7IDEgfSBlbHNlIHsg
MCB9OyByZWNvdmVyeVBocmFzZVN0b3JlZCA9ICRmYWxzZTsgcGxhaW50ZXh0U291cmNlUHJlc2Vy
dmVkID0gJHRydWUgfQ0KICAgIH0NCiAgICBmaW5hbGx5IHsgJHBocmFzZSA9ICRudWxsOyAkZ2Vu
ZXJhdGVkLmlkZW50aXR5ID0gJG51bGw7ICR2YXVsdFRleHQgPSAkbnVsbDsgW0dDXTo6Q29sbGVj
dCgpIH0NCiAgICByZXR1cm4NCn0NCg0KQXNzZXJ0LVZhdWx0Q29tcGxldGUgLUxheW91dCAkbGF5
b3V0DQokbWV0YWRhdGEgPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJGxheW91dC5NZXRhZGF0
YSAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KaWYgKFtzdHJpbmddJG1l
dGFkYXRhLnNvdWxJZCAtbmUgJHNvdWxJZCkgeyB0aHJvdyAn6riI6rOgIG1ldGFkYXRh7J2YIOyY
ge2YvCBJROqwgCDri6TrpoXri4jri6QuJyB9DQokbnVsbCA9IFJlcGFpci1DaXBoZXJGcm9tRW5j
cnlwdGVkTGVnYWN5IC1DdXJyZW50UGF0aCAkbGF5b3V0LlZhdWx0IC1FeHBlY3RlZFNoYTI1NiAo
W3N0cmluZ10kbWV0YWRhdGEudmF1bHRDaXBoZXJTaGEyNTYpIC1MZWdhY3lEaXJlY3RvcnkgJGxh
eW91dC5MZWdhY3kgLUxlZ2FjeVBhdHRlcm4gJ3ZhdWx0LSouYWdlJyAtTGFiZWwgJ3ZhdWx0Jw0K
JG51bGwgPSBSZXBhaXItQ2lwaGVyRnJvbUVuY3J5cHRlZExlZ2FjeSAtQ3VycmVudFBhdGggJGxh
eW91dC5SZWNvdmVyeUlkZW50aXR5IC1FeHBlY3RlZFNoYTI1NiAoW3N0cmluZ10kbWV0YWRhdGEu
cmVjb3ZlcnlJZGVudGl0eUNpcGhlclNoYTI1NikgLUxlZ2FjeURpcmVjdG9yeSAkbGF5b3V0Lkxl
Z2FjeSAtTGVnYWN5UGF0dGVybiAncmVjb3ZlcnktaWRlbnRpdHktKi5hZ2UnIC1MYWJlbCAncmVj
b3ZlcnktaWRlbnRpdHknDQokaWRlbnRpdHkgPSBHZXQtVW5sb2NrZWRJZGVudGl0eSAtUm9vdCAk
cm9vdCAtU291bElkICRzb3VsSWQgLUxheW91dCAkbGF5b3V0IC1BZ2UgJHRvb2xzLmFnZSAtQmF0
Y2hwYXNzICR0b29scy5iYXRjaHBhc3MgLVJlY292ZXJ5OiRVc2VSZWNvdmVyeVBocmFzZQ0KdHJ5
IHsNCiAgICBpZiAoLW5vdCAoVGVzdC1GaWxlSG1hYyAtUGF0aCAkbGF5b3V0LlZhdWx0IC1JZGVu
dGl0eSAkaWRlbnRpdHkgLUNvbnRleHQgJ3ZhdWx0LWNpcGhlci12MScgLVNvdWxJZCAkc291bElk
IC1FeHBlY3RlZCAoW3N0cmluZ10kbWV0YWRhdGEudmF1bHRDaXBoZXJIbWFjKSkpIHsgdGhyb3cg
J3ZhdWx0LmFnZeydmCBITUFDIOyduOymneyXkCDsi6TtjKjtlojsirXri4jri6QuJyB9DQogICAg
aWYgKC1ub3QgKFRlc3QtRmlsZUhtYWMgLVBhdGggJGxheW91dC5SZWNvdmVyeUlkZW50aXR5IC1J
ZGVudGl0eSAkaWRlbnRpdHkgLUNvbnRleHQgJ3JlY292ZXJ5LWlkZW50aXR5LWNpcGhlci12MScg
LVNvdWxJZCAkc291bElkIC1FeHBlY3RlZCAoW3N0cmluZ10kbWV0YWRhdGEucmVjb3ZlcnlJZGVu
dGl0eUNpcGhlckhtYWMpKSkgeyB0aHJvdyAn67O16rWsIOqwnOyduO2CpCDrtIntiKzsnZggSE1B
QyDsnbjspp3sl5Ag7Iuk7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgIGlmICgkQWN0aW9uIC1lcSAn
Um90YXRlUmVjb3ZlcnknKSB7DQogICAgICAgICRuZXdQaHJhc2UgPSBTaG93LU5ld1JlY292ZXJ5
UGhyYXNlT25jZQ0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJHRlbXBvcmFyeSA9IEpvaW4t
UGF0aCAkbGF5b3V0LlJvb3QgKCcucmVjb3ZlcnktJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3Ry
aW5nKCdOJykgKyAnLmFnZScpDQogICAgICAgICAgICBFbmNyeXB0LUlkZW50aXR5UmVjb3Zlcnkg
LUFnZSAkdG9vbHMuYWdlIC1CYXRjaHBhc3MgJHRvb2xzLmJhdGNocGFzcyAtSWRlbnRpdHkgJGlk
ZW50aXR5IC1QaHJhc2UgJG5ld1BocmFzZSAtT3V0cHV0UGF0aCAkdGVtcG9yYXJ5DQogICAgICAg
ICAgICBSZXBsYWNlLUZpbGVQcmVzZXJ2ZU9sZCAtTmV3UGF0aCAkdGVtcG9yYXJ5IC1DdXJyZW50
UGF0aCAkbGF5b3V0LlJlY292ZXJ5SWRlbnRpdHkgLUxlZ2FjeURpcmVjdG9yeSAkbGF5b3V0Lkxl
Z2FjeSAtTGFiZWwgJ3JlY292ZXJ5LWlkZW50aXR5Jw0KICAgICAgICAgICAgJG1ldGFkYXRhLnJl
Y292ZXJ5VmVyaWZpZXIgPSBOZXctUmVjb3ZlcnlWZXJpZmllciAtUGhyYXNlICRuZXdQaHJhc2Ug
LVNvdWxJZCAkc291bElkDQogICAgICAgICAgICAkbWV0YWRhdGEucmVjb3ZlcnlJZGVudGl0eUNp
cGhlclNoYTI1NiA9IEdldC1GaWxlU2hhMjU2ICRsYXlvdXQuUmVjb3ZlcnlJZGVudGl0eQ0KICAg
ICAgICAgICAgJG1ldGFkYXRhLnJlY292ZXJ5SWRlbnRpdHlDaXBoZXJIbWFjID0gR2V0LUZpbGVI
bWFjIC1QYXRoICRsYXlvdXQuUmVjb3ZlcnlJZGVudGl0eSAtSWRlbnRpdHkgJGlkZW50aXR5IC1D
b250ZXh0ICdyZWNvdmVyeS1pZGVudGl0eS1jaXBoZXItdjEnIC1Tb3VsSWQgJHNvdWxJZA0KICAg
ICAgICAgICAgJG1ldGFkYXRhLnVwZGF0ZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0
cmluZygnbycpDQogICAgICAgICAgICAkbWV0YWRhdGFUZW1wID0gSm9pbi1QYXRoICRsYXlvdXQu
Um9vdCAoJy5tZXRhZGF0YS0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKSArICcu
anNvbicpDQogICAgICAgICAgICBXcml0ZS1Kc29uQ3JlYXRlTmV3IC1QYXRoICRtZXRhZGF0YVRl
bXAgLVZhbHVlICRtZXRhZGF0YQ0KICAgICAgICAgICAgUmVwbGFjZS1GaWxlUHJlc2VydmVPbGQg
LU5ld1BhdGggJG1ldGFkYXRhVGVtcCAtQ3VycmVudFBhdGggJGxheW91dC5NZXRhZGF0YSAtTGVn
YWN5RGlyZWN0b3J5ICRsYXlvdXQuTGVnYWN5IC1MYWJlbCAndmF1bHQtbWV0YWRhdGEnDQogICAg
ICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgc3RhdHVzID0gJ3JlY292ZXJ5LXJvdGF0ZWQnOyBy
ZWNvdmVyeVBocmFzZVN0b3JlZCA9ICRmYWxzZTsgb2xkRW5jcnlwdGVkV3JhcHBlclByZXNlcnZl
ZCA9ICR0cnVlIH0NCiAgICAgICAgfQ0KICAgICAgICBmaW5hbGx5IHsgJG5ld1BocmFzZSA9ICRu
dWxsOyBbR0NdOjpDb2xsZWN0KCkgfQ0KICAgICAgICByZXR1cm4NCiAgICB9DQoNCiAgICAkdmF1
bHRUZXh0ID0gRGVjcnlwdC1WYXVsdFRleHQgLUFnZSAkdG9vbHMuYWdlIC1JZGVudGl0eSAkaWRl
bnRpdHkgLVZhdWx0UGF0aCAkbGF5b3V0LlZhdWx0DQogICAgJHZhdWx0ID0gJHZhdWx0VGV4dCB8
IENvbnZlcnRGcm9tLUpzb24NCiAgICBpZiAoW3N0cmluZ10kdmF1bHQuc291bElkIC1uZSAkc291
bElkKSB7IHRocm93ICfrs7XtmLjtmZTtlZwg6riI6rOg7J2YIOyYge2YvCBJROqwgCDri6TrpoXr
i4jri6QuJyB9DQogICAgaWYgKCRBY3Rpb24gLWVxICdVbmxvY2snKSB7DQogICAgICAgICRhY3Rp
dmVWYWx1ZXMgPSBAe30NCiAgICAgICAgZm9yZWFjaCAoJHByb3BlcnR5IGluICR2YXVsdC5hY3Rp
dmUuUFNPYmplY3QuUHJvcGVydGllcykgeyAkYWN0aXZlVmFsdWVzWyRwcm9wZXJ0eS5OYW1lXSA9
IFtzdHJpbmddJHByb3BlcnR5LlZhbHVlIH0NCiAgICAgICAgJGJpbmRpbmdzID0gQHt9DQogICAg
ICAgIGlmICgkbnVsbCAtbmUgJHZhdWx0LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BhdGhCaW5kaW5n
cyddIC1hbmQgJG51bGwgLW5lICR2YXVsdC5wYXRoQmluZGluZ3MpIHsNCiAgICAgICAgICAgIGZv
cmVhY2ggKCRwcm9wZXJ0eSBpbiAkdmF1bHQucGF0aEJpbmRpbmdzLlBTT2JqZWN0LlByb3BlcnRp
ZXMpIHsgJGJpbmRpbmdzWyRwcm9wZXJ0eS5OYW1lXSA9IFtzdHJpbmddJHByb3BlcnR5LlZhbHVl
IH0NCiAgICAgICAgfQ0KICAgICAgICAkYWxpYXNlcyA9IE5ldy1PYmplY3QgQ29sbGVjdGlvbnMu
R2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAgICAgZm9yZWFjaCAoJGFsaWFzIGluIEAoJFJlc3Rv
cmVGaWxlQWxpYXMpKSB7IGlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGFs
aWFzKSkgeyAkYWxpYXNlcy5BZGQoJGFsaWFzKSB9IH0NCiAgICAgICAgZm9yZWFjaCAoJGtleSBp
biBAKCRJbmplY3RLZXkgfCBTb3J0LU9iamVjdCAtVW5pcXVlKSkgew0KICAgICAgICAgICAgaWYg
KCRrZXkgLW5vdG1hdGNoICdeW0EtWmEtel9dW0EtWmEtejAtOV9dKiQnKSB7IHRocm93ICfsmpTs
sq3tlZwg7ZmY6rK967OA7IiYIGFsbG93bGlzdCDsnbTrpoTsnbQg7Jis67CU66W07KeAIOyViuyK
teuLiOuLpC4nIH0NCiAgICAgICAgICAgIGlmICgtbm90ICRhY3RpdmVWYWx1ZXMuQ29udGFpbnNL
ZXkoJGtleSkpIHsgdGhyb3cgJ+yalOyyre2VnCDtmZjqsr3rs4DsiJjqsIAg6riI6rOg7JeQIOyX
huyKteuLiOuLpC4g7J2066aEL+qwkuydgCDstpzroKXtlZjsp4Ag7JWK7JWY7Iq164uI64ukLicg
fQ0KICAgICAgICAgICAgaWYgKCRiaW5kaW5ncy5Db250YWluc0tleSgka2V5KSkgeyAkYWxpYXNl
cy5BZGQoW3N0cmluZ10kYmluZGluZ3NbJGtleV0pIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAo
KCRMZWFzZU93bmVyUHJvY2Vzc0lkIC1ndCAwKSAteG9yICgtbm90IFtzdHJpbmddOjpJc051bGxP
cldoaXRlU3BhY2UoJExlYXNlT3duZXJTdGFydFV0YykpKSB7IHRocm93ICdsZWFzZSDshozsnKAg
7ZSE66Gc7IS47IqkIElE7JmAIOyLnOyekeyLnOqwgeydgCDtlajqu5gg7KeA7KCV7ZW07JW8IO2V
qeuLiOuLpC4nIH0NCiAgICAgICAgJGxlYXNlID0gUmVzdG9yZS1DcmVkZW50aWFsTGVhc2UgLVZh
dWx0ICR2YXVsdCAtQWxpYXNlcyBAKCRhbGlhc2VzKSAtUm9vdCAkcm9vdCAtU291bElkICRzb3Vs
SWQgLU93bmVyUHJvY2Vzc0lkICRMZWFzZU93bmVyUHJvY2Vzc0lkIC1Pd25lclN0YXJ0VXRjICRM
ZWFzZU93bmVyU3RhcnRVdGMNCiAgICAgICAgZm9yZWFjaCAoJGtleSBpbiBAKCRJbmplY3RLZXkg
fCBTb3J0LU9iamVjdCAtVW5pcXVlKSkgew0KICAgICAgICAgICAgaWYgKCRiaW5kaW5ncy5Db250
YWluc0tleSgka2V5KSAtYW5kICgkbnVsbCAtZXEgJGxlYXNlIC1vciAtbm90ICRsZWFzZS5maWxl
TWFwLkNvbnRhaW5zS2V5KFtzdHJpbmddJGJpbmRpbmdzWyRrZXldKSkpIHsgdGhyb3cgJ+yalOyy
re2VnCBjcmVkZW50aWFsIO2MjOydvOydhCDsoJztlZzrkJwgbGVhc2Xsl5Ag67O17JuQ7ZWY7KeA
IOuqu+2WiOyKteuLiOuLpC4nIH0NCiAgICAgICAgfQ0KICAgICAgICAkaW5qZWN0ZWQgPSAwDQog
ICAgICAgIGlmICgtbm90ICROb0luamVjdCkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGtleSBp
biBAKCRJbmplY3RLZXkgfCBTb3J0LU9iamVjdCAtVW5pcXVlKSkgew0KICAgICAgICAgICAgICAg
ICR2YWx1ZSA9IFtzdHJpbmddJGFjdGl2ZVZhbHVlc1ska2V5XQ0KICAgICAgICAgICAgICAgIGlm
ICgkYmluZGluZ3MuQ29udGFpbnNLZXkoJGtleSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHZh
bHVlID0gW3N0cmluZ10kbGVhc2UuZmlsZU1hcFtbc3RyaW5nXSRiaW5kaW5nc1ska2V5XV0NCiAg
ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZWlmICgkdmFsdWUuU3RhcnRzV2l0
aCgnQGNyZWRlbnRpYWw6JywgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsKSkgeyB0aHJvdyAn
Y3JlZGVudGlhbCDqsr3roZwg67CU7J2465Sp7J20IOyGkOyDgeuQmOyXiOyKteuLiOuLpC4nIH0N
CiAgICAgICAgICAgICAgICBbRW52aXJvbm1lbnRdOjpTZXRFbnZpcm9ubWVudFZhcmlhYmxlKCRr
ZXksICR2YWx1ZSwgW0Vudmlyb25tZW50VmFyaWFibGVUYXJnZXRdOjpQcm9jZXNzKQ0KICAgICAg
ICAgICAgICAgICRpbmplY3RlZCsrDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAg
W3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgICAgICBzdGF0dXMgPSAndW5sb2NrZWQnOyBhbGxv
d2xpc3RlZEtleUNvdW50ID0gQCgkSW5qZWN0S2V5IHwgU29ydC1PYmplY3QgLVVuaXF1ZSkuQ291
bnQ7IGluamVjdGVkSW50b0N1cnJlbnRQcm9jZXNzID0gJGluamVjdGVkDQogICAgICAgICAgICBy
ZXN0b3JlZENyZWRlbnRpYWxGaWxlQ291bnQgPSBpZiAoJG51bGwgLWVxICRsZWFzZSkgeyAwIH0g
ZWxzZSB7ICRsZWFzZS5maWxlTWFwLkNvdW50IH0NCiAgICAgICAgICAgIGxlYXNlSWQgPSBpZiAo
JG51bGwgLWVxICRsZWFzZSkgeyAkbnVsbCB9IGVsc2UgeyAkbGVhc2UubGVhc2VJZCB9OyBsZWFz
ZVJvb3QgPSBpZiAoJG51bGwgLWVxICRsZWFzZSkgeyAkbnVsbCB9IGVsc2UgeyAkbGVhc2UubGVh
c2VSb290IH0NCiAgICAgICAgICAgIGNsZWFudXBSZXF1aXJlZEFmdGVyQ2hpbGRFeGl0ID0gJG51
bGwgLW5lICRsZWFzZTsgcGxhaW50ZXh0RW52RmlsZVdyaXR0ZW4gPSAkZmFsc2UNCiAgICAgICAg
fQ0KICAgICAgICByZXR1cm4NCiAgICB9DQogICAgaWYgKCRBY3Rpb24gLWVxICdJbXBvcnRFbnYn
KSB7DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRFbnZQYXRoKSAt
YW5kIFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJExlZ2FjeUVudlBhdGgpIC1hbmQgQCgk
Q3JlZGVudGlhbEZpbGVQYXRoKS5Db3VudCAtZXEgMCkgeyB0aHJvdyAn6rCA7KC47JisIC1FbnZQ
YXRoLCAtTGVnYWN5RW52UGF0aCDrmJDripQgLUNyZWRlbnRpYWxGaWxlUGF0aOqwgCDtlYTsmpTt
lanri4jri6QuJyB9DQogICAgICAgICRpbmNvbWluZyA9IFJlYWQtRW52RmlsZVNlY3JldCAtUGF0
aCAkRW52UGF0aA0KICAgICAgICAkbGVnYWN5SW5jb21pbmcgPSBSZWFkLUVudkZpbGVTZWNyZXQg
LVBhdGggJExlZ2FjeUVudlBhdGgNCiAgICAgICAgJGFjdGl2ZVRhYmxlID0gQHt9DQogICAgICAg
IGZvcmVhY2ggKCRwcm9wZXJ0eSBpbiAkdmF1bHQuYWN0aXZlLlBTT2JqZWN0LlByb3BlcnRpZXMp
IHsgJGFjdGl2ZVRhYmxlWyRwcm9wZXJ0eS5OYW1lXSA9IFtzdHJpbmddJHByb3BlcnR5LlZhbHVl
IH0NCiAgICAgICAgZm9yZWFjaCAoJGtleSBpbiAkaW5jb21pbmcuS2V5cykgeyAkYWN0aXZlVGFi
bGVbJGtleV0gPSAkaW5jb21pbmdbJGtleV0gfQ0KICAgICAgICAkYWN0aXZlQ2FwdHVyZSA9IEdl
dC1DcmVkZW50aWFsQ2FwdHVyZXMgLUFjdGl2ZSAkYWN0aXZlVGFibGUgLUV4cGxpY2l0UGF0aHMg
JENyZWRlbnRpYWxGaWxlUGF0aA0KICAgICAgICAkbGVnYWN5Q2FwdHVyZVByZWZpeCA9ICdsZWdh
Y3kvJyArIFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygneXl5eU1NZGRUSEhtbXNzWicpICsg
Jy0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKS5TdWJzdHJpbmcoMCwgOCkgKyAn
LycNCiAgICAgICAgJGxlZ2FjeUNhcHR1cmUgPSBHZXQtQ3JlZGVudGlhbENhcHR1cmVzIC1BY3Rp
dmUgJGxlZ2FjeUluY29taW5nIC1FeHBsaWNpdFBhdGhzIEAoKSAtQWxpYXNQcmVmaXggJGxlZ2Fj
eUNhcHR1cmVQcmVmaXgNCiAgICAgICAgJGZpbGVzQnlBbGlhcyA9IEB7fQ0KICAgICAgICBpZiAo
JG51bGwgLW5lICR2YXVsdC5QU09iamVjdC5Qcm9wZXJ0aWVzWydmaWxlcyddIC1hbmQgJG51bGwg
LW5lICR2YXVsdC5maWxlcykgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGVudHJ5IGluIEAoJHZh
dWx0LmZpbGVzKSkgeyAkZmlsZXNCeUFsaWFzW1tzdHJpbmddJGVudHJ5LmFsaWFzXSA9ICRlbnRy
eSB9DQogICAgICAgIH0NCiAgICAgICAgZm9yZWFjaCAoJGVudHJ5IGluIEAoJGFjdGl2ZUNhcHR1
cmUuZW50cmllcykgKyBAKCRsZWdhY3lDYXB0dXJlLmVudHJpZXMpKSB7ICRmaWxlc0J5QWxpYXNb
W3N0cmluZ10kZW50cnkuYWxpYXNdID0gJGVudHJ5IH0NCiAgICAgICAgJHBhdGhCaW5kaW5ncyA9
IEB7fQ0KICAgICAgICBpZiAoJG51bGwgLW5lICR2YXVsdC5QU09iamVjdC5Qcm9wZXJ0aWVzWydw
YXRoQmluZGluZ3MnXSAtYW5kICRudWxsIC1uZSAkdmF1bHQucGF0aEJpbmRpbmdzKSB7DQogICAg
ICAgICAgICBmb3JlYWNoICgkcHJvcGVydHkgaW4gJHZhdWx0LnBhdGhCaW5kaW5ncy5QU09iamVj
dC5Qcm9wZXJ0aWVzKSB7ICRwYXRoQmluZGluZ3NbJHByb3BlcnR5Lk5hbWVdID0gW3N0cmluZ10k
cHJvcGVydHkuVmFsdWUgfQ0KICAgICAgICB9DQogICAgICAgIGZvcmVhY2ggKCRrZXkgaW4gJGFj
dGl2ZUNhcHR1cmUuYmluZGluZ3MuS2V5cykgeyAkcGF0aEJpbmRpbmdzWyRrZXldID0gW3N0cmlu
Z10kYWN0aXZlQ2FwdHVyZS5iaW5kaW5nc1ska2V5XSB9DQogICAgICAgICRsZWdhY3lTbmFwc2hv
dHMgPSBAKCR2YXVsdC5sZWdhY3lTbmFwc2hvdHMpDQogICAgICAgIGlmICgkbGVnYWN5SW5jb21p
bmcuQ291bnQgLW9yIEAoJGxlZ2FjeUNhcHR1cmUuZW50cmllcykuQ291bnQpIHsgJGxlZ2FjeVNu
YXBzaG90cyArPSBbb3JkZXJlZF1AeyBpbXBvcnRlZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRjTm93
LlRvU3RyaW5nKCdvJyk7IHNvdXJjZSA9ICdsZWdhY3ktZW52JzsgdmFsdWVzID0gJGxlZ2FjeUlu
Y29taW5nOyBwYXRoQmluZGluZ3MgPSAkbGVnYWN5Q2FwdHVyZS5iaW5kaW5ncyB9IH0NCiAgICAg
ICAgJG5ld1ZhdWx0ID0gW29yZGVyZWRdQHsNCiAgICAgICAgICAgIHNjaGVtYVZlcnNpb24gPSAx
OyBzb3VsSWQgPSAkc291bElkOyBjcmVhdGVkQXRVdGMgPSBbc3RyaW5nXSR2YXVsdC5jcmVhdGVk
QXRVdGM7IHVwZGF0ZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQog
ICAgICAgICAgICBhY3RpdmUgPSAkYWN0aXZlVGFibGU7IHBhdGhCaW5kaW5ncyA9ICRwYXRoQmlu
ZGluZ3M7IGZpbGVzID0gQCgkZmlsZXNCeUFsaWFzLlZhbHVlcyB8IFNvcnQtT2JqZWN0IGFsaWFz
KTsgbGVnYWN5U25hcHNob3RzID0gJGxlZ2FjeVNuYXBzaG90cw0KICAgICAgICB9DQogICAgICAg
ICRuZXdUZXh0ID0gJG5ld1ZhdWx0IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDMwDQogICAgICAg
ICR0ZW1wb3JhcnlWYXVsdCA9IEpvaW4tUGF0aCAkbGF5b3V0LlJvb3QgKCcudmF1bHQtJyArIFtn
dWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykgKyAnLmFnZScpDQogICAgICAgIEVuY3J5cHQt
VGV4dFRvQWdlUmVjaXBpZW50IC1BZ2UgJHRvb2xzLmFnZSAtUmVjaXBpZW50IChbc3RyaW5nXSRt
ZXRhZGF0YS5yZWNpcGllbnQpIC1QbGFpblRleHQgJG5ld1RleHQgLU91dHB1dFBhdGggJHRlbXBv
cmFyeVZhdWx0DQogICAgICAgIFJlcGxhY2UtRmlsZVByZXNlcnZlT2xkIC1OZXdQYXRoICR0ZW1w
b3JhcnlWYXVsdCAtQ3VycmVudFBhdGggJGxheW91dC5WYXVsdCAtTGVnYWN5RGlyZWN0b3J5ICRs
YXlvdXQuTGVnYWN5IC1MYWJlbCAndmF1bHQnDQogICAgICAgICRtZXRhZGF0YS52YXVsdENpcGhl
clNoYTI1NiA9IEdldC1GaWxlU2hhMjU2ICRsYXlvdXQuVmF1bHQNCiAgICAgICAgJG1ldGFkYXRh
LnZhdWx0Q2lwaGVySG1hYyA9IEdldC1GaWxlSG1hYyAtUGF0aCAkbGF5b3V0LlZhdWx0IC1JZGVu
dGl0eSAkaWRlbnRpdHkgLUNvbnRleHQgJ3ZhdWx0LWNpcGhlci12MScgLVNvdWxJZCAkc291bElk
DQogICAgICAgICRtZXRhZGF0YS51cGRhdGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9T
dHJpbmcoJ28nKQ0KICAgICAgICAkdGVtcG9yYXJ5TWV0YWRhdGEgPSBKb2luLVBhdGggJGxheW91
dC5Sb290ICgnLm1ldGFkYXRhLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnTicpICsg
Jy5qc29uJykNCiAgICAgICAgV3JpdGUtSnNvbkNyZWF0ZU5ldyAtUGF0aCAkdGVtcG9yYXJ5TWV0
YWRhdGEgLVZhbHVlICRtZXRhZGF0YQ0KICAgICAgICBSZXBsYWNlLUZpbGVQcmVzZXJ2ZU9sZCAt
TmV3UGF0aCAkdGVtcG9yYXJ5TWV0YWRhdGEgLUN1cnJlbnRQYXRoICRsYXlvdXQuTWV0YWRhdGEg
LUxlZ2FjeURpcmVjdG9yeSAkbGF5b3V0LkxlZ2FjeSAtTGFiZWwgJ3ZhdWx0LW1ldGFkYXRhJw0K
ICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgc3RhdHVzID0gJ2ltcG9ydGVkJzsgYWN0aXZlS2V5
Q291bnQgPSAkYWN0aXZlVGFibGUuQ291bnQ7IGVuY3J5cHRlZENyZWRlbnRpYWxGaWxlQ291bnQg
PSAkZmlsZXNCeUFsaWFzLkNvdW50OyBpbXBvcnRlZEFjdGl2ZUNvdW50ID0gJGluY29taW5nLkNv
dW50OyBpbXBvcnRlZExlZ2FjeUNvdW50ID0gJGxlZ2FjeUluY29taW5nLkNvdW50OyBpbXBvcnRl
ZENyZWRlbnRpYWxGaWxlQ291bnQgPSBAKCRhY3RpdmVDYXB0dXJlLmVudHJpZXMpLkNvdW50ICsg
QCgkbGVnYWN5Q2FwdHVyZS5lbnRyaWVzKS5Db3VudDsgb2xkRW5jcnlwdGVkVmF1bHRQcmVzZXJ2
ZWQgPSAkdHJ1ZTsgcGxhaW50ZXh0U291cmNlc1ByZXNlcnZlZCA9ICR0cnVlIH0NCiAgICAgICAg
cmV0dXJuDQogICAgfQ0KfQ0KZmluYWxseSB7ICRpZGVudGl0eSA9ICRudWxsOyAkdmF1bHRUZXh0
ID0gJG51bGw7IFtHQ106OkNvbGxlY3QoKSB9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/secure-root-v7.ps1","encoding":"base64","size":45888,"runtimeSha256":"031fee0c8f33d63127f8618ab7598795f2b41850bf71d114040520ae5837b5dd","normalizedSha256":"30e2d0fef7772d431b0f800a7aeadcaafeb8d66fbe7fb16afd92ceddd3b33b25"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIFBsYW5zIG9yIGFw
cGxpZXMgYSBwcml2YXRlIE5URlMgQUNMIHRvIG9uZSBpbml0aWFsaXplZCBzb3VsIHJvb3QuDQoN
Ci5ERVNDUklQVElPTg0KICBUaGUgZGVmYXVsdCBpcyByZWFkLW9ubHkgUGxhbk9ubHkuIFRoZSBE
QUNMIGlzIGNoYW5nZWQgb25seSB3aGVuDQogIC1BcHBseVByaXZhdGVBY2wgaXMgZXhwbGljaXRs
eSBzdXBwbGllZC4gQmVmb3JlIHRoYXQgY2hhbmdlLCB0aGUgb3JpZ2luYWwNCiAgcm9vdCBTRERM
IGlzIGR1cmFibHkgd3JpdHRlbiBiZWxvdyBfYWdlbnRcc2V0dXBcYmFja3Vwc1xhY2wsIGhhc2hl
ZCwgYW5kDQogIHJlZmVyZW5jZWQgYnkgYW4gaW1tdXRhYmxlIHJlY292ZXJ5IGpvdXJuYWwuDQoN
CiAgVGhpcyBzY3JpcHQgaXMgaW50ZW50aW9uYWxseSBjb25zZXJ2YXRpdmUuIEl0IG5ldmVyIHJl
bW92ZXMgYW4gZXhwbGljaXQgQUNFDQogIGZvciBhbiB1bnJlY29nbml6ZWQgaWRlbnRpdHkuIFN1
Y2ggYW4gQUNFIGlzIHJlcG9ydGVkIGFzIGJsb2NrZWQvcGVuZGluZyBmb3INCiAgYSBodW1hbiBk
ZWNpc2lvbi4gSXQgYWxzbyByZWZ1c2VzIHJlcGFyc2UgcG9pbnRzLCBhbHRlcm5hdGUgZGF0YSBz
dHJlYW1zLA0KICBsaXZlIENsYXVkZS9Db2RleCBwcm9jZXNzZXMsIGFuZCBmaWxlcyB0aGF0IGNh
bm5vdCBiZSBvcGVuZWQgZXhjbHVzaXZlbHkuDQoNCi5FWEFNUExFDQogIHBvd2Vyc2hlbGwuZXhl
IC1Ob1Byb2ZpbGUgLUZpbGUgLlxzZWN1cmUtcm9vdC12Ny5wczEgLVNvdWxSb290IEM6XElSSVMN
Cg0KLkVYQU1QTEUNCiAgcG93ZXJzaGVsbC5leGUgLU5vUHJvZmlsZSAtRmlsZSAuXHNlY3VyZS1y
b290LXY3LnBzMSAtU291bFJvb3QgQzpcSVJJUyAtQXBwbHlQcml2YXRlQWNsDQoNCi5FWEFNUExF
DQogIHBvd2Vyc2hlbGwuZXhlIC1Ob1Byb2ZpbGUgLUZpbGUgLlxzZWN1cmUtcm9vdC12Ny5wczEg
LVNvdWxSb290IEM6XElSSVMgYA0KICAgIC1SZXN0b3JlRnJvbUpvdXJuYWwgQzpcSVJJU1xfYWdl
bnRcc2V0dXBcYmFja3Vwc1xhY2xccm9vdC1hY2wtLi4uLmpvdXJuYWwuanNvbg0KIz4NCg0KW0Nt
ZGxldEJpbmRpbmcoKV0NCnBhcmFtKA0KICAgIFtzdHJpbmddJFNvdWxSb290LA0KICAgIFtzd2l0
Y2hdJEFwcGx5UHJpdmF0ZUFjbCwNCiAgICBbc3RyaW5nXSRSZXN0b3JlRnJvbUpvdXJuYWwsDQoN
CiAgICAjIEludGVncmF0aW9uLXRlc3QgZXNjYXBlIGhhdGNoLiBJdCBvbmx5IHN1cHByZXNzZXMg
dGhlIHByb2R1Y3Rpb24gcm9vdCBhbmQNCiAgICAjIGdsb2JhbCBhZ2VudC1wcm9jZXNzIGNoZWNr
cyBmb3Igb25lIG5vbmNlLWJvdW5kIGRpc3Bvc2FibGUgZGlyZWN0b3J5IGJlbG93DQogICAgIyB0
aGlzIHNldHVwIGVuZ2luZSdzIHRlc3RzXGZpeHR1cmVzIGJvdW5kYXJ5Lg0KICAgIFtQYXJhbWV0
ZXIoRG9udFNob3cpXQ0KICAgIFtzd2l0Y2hdJEZpeHR1cmVNb2RlLA0KICAgIFtQYXJhbWV0ZXIo
RG9udFNob3cpXQ0KICAgIFtzdHJpbmddJEZpeHR1cmVOb25jZQ0KKQ0KDQpTZXQtU3RyaWN0TW9k
ZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCcNCg0KJHNj
cmlwdDpVdGY4Tm9Cb20gPSBOZXctT2JqZWN0IFN5c3RlbS5UZXh0LlVURjhFbmNvZGluZygkZmFs
c2UpDQokc2NyaXB0OlBhdGhDb21wYXJpc29uID0gW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6
T3JkaW5hbElnbm9yZUNhc2UNCiRzY3JpcHQ6Q3VycmVudElkZW50aXR5ID0gW1N5c3RlbS5TZWN1
cml0eS5QcmluY2lwYWwuV2luZG93c0lkZW50aXR5XTo6R2V0Q3VycmVudCgpDQokc2NyaXB0OkN1
cnJlbnRTaWQgPSAkc2NyaXB0OkN1cnJlbnRJZGVudGl0eS5Vc2VyLlZhbHVlDQokc2NyaXB0OlN5
c3RlbVNpZCA9ICdTLTEtNS0xOCcNCiRzY3JpcHQ6QWRtaW5pc3RyYXRvcnNTaWQgPSAnUy0xLTUt
MzItNTQ0Jw0KJHNjcmlwdDpVc2Vyc1NpZCA9ICdTLTEtNS0zMi01NDUnDQokc2NyaXB0OkF1dGhl
bnRpY2F0ZWRVc2Vyc1NpZCA9ICdTLTEtNS0xMScNCiRzY3JpcHQ6Q3JlYXRvck93bmVyU2lkID0g
J1MtMS0zLTAnDQokc2NyaXB0OkFkbWluaXN0cmF0b3JzUG9saWN5ID0gW29yZGVyZWRdQHsNCiAg
ICBwb2xpY3kgPSAnYnJlYWstZ2xhc3MtZnVsbC1jb250cm9sJw0KICAgIHNpZCA9ICRzY3JpcHQ6
QWRtaW5pc3RyYXRvcnNTaWQNCiAgICByaWdodHMgPSAnRnVsbENvbnRyb2wnDQogICAgaW5oZXJp
dGFuY2UgPSAnQ29udGFpbmVySW5oZXJpdCxPYmplY3RJbmhlcml0Jw0KICAgIHJhdGlvbmFsZSA9
ICdMb2NhbCBhZG1pbmlzdHJhdG9ycyBhcmUgYW4gT1MtdHJ1c3RlZCBicmVhay1nbGFzcyBpZGVu
dGl0eSBhbmQgY2FuIHRha2Ugb3duZXJzaGlwIGV2ZW4gd2l0aG91dCBhbiBBQ0U7IHRoZSBleHBs
aWNpdCBydWxlIG1ha2VzIHRoYXQgcG9saWN5IGF1ZGl0YWJsZS4nDQp9DQoNCmZ1bmN0aW9uIENv
bnZlcnRUby1DYW5vbmljYWxQYXRoIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSld
W3N0cmluZ10kUGF0aCkNCiAgICByZXR1cm4gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgo
JFBhdGgpLlRyaW1FbmQoJ1wnLCAnLycpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtUGF0aFdpdGhpbiB7
DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRo
LA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGFyZW50LA0KICAgICAg
ICBbc3dpdGNoXSRBbGxvd1BhcmVudA0KICAgICkNCiAgICAkZnVsbFBhdGggPSBDb252ZXJ0VG8t
Q2Fub25pY2FsUGF0aCAkUGF0aA0KICAgICRmdWxsUGFyZW50ID0gQ29udmVydFRvLUNhbm9uaWNh
bFBhdGggJFBhcmVudA0KICAgIGlmICgkZnVsbFBhdGguRXF1YWxzKCRmdWxsUGFyZW50LCAkc2Ny
aXB0OlBhdGhDb21wYXJpc29uKSkgeyByZXR1cm4gW2Jvb2xdJEFsbG93UGFyZW50IH0NCiAgICBy
ZXR1cm4gJGZ1bGxQYXRoLlN0YXJ0c1dpdGgoJGZ1bGxQYXJlbnQgKyAnXCcsICRzY3JpcHQ6UGF0
aENvbXBhcmlzb24pDQp9DQoNCmZ1bmN0aW9uIEdldC1EZWZhdWx0U291bFJvb3Qgew0KICAgICRh
Z2VudERpcmVjdG9yeSA9IFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6R2V0UGFyZW50KCRQU1Njcmlw
dFJvb3QpLkZ1bGxOYW1lDQogICAgcmV0dXJuIFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6R2V0UGFy
ZW50KCRhZ2VudERpcmVjdG9yeSkuRnVsbE5hbWUNCn0NCg0KZnVuY3Rpb24gVGVzdC1Tb3VsSW5p
dGlhbGl6ZWQgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRo
KQ0KDQogICAgaWYgKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJFBhdGggJ19h
Z2VudCcpIC1QYXRoVHlwZSBDb250YWluZXIpIC1hbmQNCiAgICAgICAgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggKEpvaW4tUGF0aCAkUGF0aCAnQUdFTlRTLm1kJykgLVBhdGhUeXBlIExlYWYpIC1h
bmQNCiAgICAgICAgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkUGF0aCAnQ0xB
VURFLm1kJykgLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgIHJldHVybiAkdHJ1ZQ0KICAgIH0N
Cg0KICAgICRzdGF0ZVBhdGggPSBKb2luLVBhdGggJFBhdGggJ3NvdWwtc3RhdGUuanNvbicNCiAg
ICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3RhdGVQYXRoIC1QYXRoVHlwZSBM
ZWFmKSkgeyByZXR1cm4gJGZhbHNlIH0NCiAgICB0cnkgew0KICAgICAgICAkc3RhdGUgPSBbU3lz
dGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkc3RhdGVQYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkg
fCBDb252ZXJ0RnJvbS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgIHJldHVybiAoJG51
bGwgLW5lICRzdGF0ZS5zY2hlbWFWZXJzaW9uIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JX
aGl0ZVNwYWNlKFtzdHJpbmddJHN0YXRlLnNvdWxJZCkpDQogICAgfSBjYXRjaCB7DQogICAgICAg
IHJldHVybiAkZmFsc2UNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1WYWxpZFNvdWxSb290
IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGF0aCkNCg0KICAg
ICRmdWxsUGF0aCA9IENvbnZlcnRUby1DYW5vbmljYWxQYXRoICRQYXRoDQogICAgJGRyaXZlUm9v
dCA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldFBhdGhSb290KCRmdWxsUGF0aCkNCiAgICBpZiAoW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkZHJpdmVSb290KSAtb3INCiAgICAgICAgLW5vdCAk
ZHJpdmVSb290LkVxdWFscygnQzpcJywgJHNjcmlwdDpQYXRoQ29tcGFyaXNvbikpIHsNCiAgICAg
ICAgdGhyb3cgJ1RoZSBzb3VsIHJvb3QgbXVzdCBiZSBleGFjdGx5IG9uZSBkaXJlY3RvcnkgZGly
ZWN0bHkgYmVsb3cgQzpcLicNCiAgICB9DQogICAgJHJlbGF0aXZlID0gJGZ1bGxQYXRoLlN1YnN0
cmluZygkZHJpdmVSb290Lkxlbmd0aCkuVHJpbSgnXCcsICcvJykNCiAgICBpZiAoW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkcmVsYXRpdmUpIC1vciAkcmVsYXRpdmUgLW1hdGNoICdbXFwv
XScpIHsNCiAgICAgICAgdGhyb3cgJ1RoZSBzb3VsIHJvb3QgbXVzdCBiZSBleGFjdGx5IG9uZSBk
aXJlY3RvcnkgZGlyZWN0bHkgYmVsb3cgQzpcLicNCiAgICB9DQoNCiAgICAkcmVzZXJ2ZWQgPSBA
KA0KICAgICAgICAnJFJlY3ljbGUuQmluJywgJ0NvbmZpZy5Nc2knLCAnRG9jdW1lbnRzIGFuZCBT
ZXR0aW5ncycsICdEcml2ZXJzJywgJ0ludGVsJywNCiAgICAgICAgJ01TT0NhY2hlJywgJ09uZURy
aXZlVGVtcCcsICdQZXJmTG9ncycsICdQcm9ncmFtIEZpbGVzJywgJ1Byb2dyYW0gRmlsZXMgKHg4
NiknLA0KICAgICAgICAnUHJvZ3JhbURhdGEnLCAnUmVjb3ZlcnknLCAnU3lzdGVtIFZvbHVtZSBJ
bmZvcm1hdGlvbicsICdVc2VycycsICdXaW5kb3dzJywNCiAgICAgICAgJ0Rlc2t0b3AnLCAoLWpv
aW4gQChbY2hhcl0weEJDMTQsIFtjaGFyXTB4RDBENSwgW2NoYXJdMHgyMCwgW2NoYXJdMHhENjU0
LCBbY2hhcl0weEJBNzQpKQ0KICAgICkNCiAgICBpZiAoJHJlc2VydmVkIC1jb250YWlucyAkcmVs
YXRpdmUpIHsgdGhyb3cgIkEgc3lzdGVtIG9yIERlc2t0b3AgZm9sZGVyIGNhbm5vdCBiZSBhIHNv
dWwgcm9vdDogJHJlbGF0aXZlIiB9DQoNCiAgICAkZGVza3RvcFBhdGhzID0gTmV3LU9iamVjdCBT
eXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICB0cnkgew0KICAgICAg
ICAkZGVza3RvcCA9IFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmlyb25tZW50K1Nw
ZWNpYWxGb2xkZXJdOjpEZXNrdG9wKQ0KICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxs
T3JXaGl0ZVNwYWNlKCRkZXNrdG9wKSkgeyAkZGVza3RvcFBhdGhzLkFkZCgoQ29udmVydFRvLUNh
bm9uaWNhbFBhdGggJGRlc2t0b3ApKSB9DQogICAgfSBjYXRjaCB7IH0NCiAgICBmb3JlYWNoICgk
dmFyaWFibGVOYW1lIGluIEAoJ09uZURyaXZlJywgJ09uZURyaXZlQ29uc3VtZXInLCAnT25lRHJp
dmVDb21tZXJjaWFsJykpIHsNCiAgICAgICAgJHZhbHVlID0gW0Vudmlyb25tZW50XTo6R2V0RW52
aXJvbm1lbnRWYXJpYWJsZSgkdmFyaWFibGVOYW1lKQ0KICAgICAgICBpZiAoW3N0cmluZ106Oklz
TnVsbE9yV2hpdGVTcGFjZSgkdmFsdWUpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJGRlc2t0b3BQ
YXRocy5BZGQoKENvbnZlcnRUby1DYW5vbmljYWxQYXRoIChKb2luLVBhdGggJHZhbHVlICdEZXNr
dG9wJykpKQ0KICAgICAgICAkZGVza3RvcFBhdGhzLkFkZCgoQ29udmVydFRvLUNhbm9uaWNhbFBh
dGggKEpvaW4tUGF0aCAkdmFsdWUgKC1qb2luIEAoW2NoYXJdMHhCQzE0LCBbY2hhcl0weEQwRDUs
IFtjaGFyXTB4MjAsIFtjaGFyXTB4RDY1NCwgW2NoYXJdMHhCQTc0KSkpKSkNCiAgICB9DQogICAg
Zm9yZWFjaCAoJGRlc2t0b3BQYXRoIGluIEAoJGRlc2t0b3BQYXRocyB8IFNlbGVjdC1PYmplY3Qg
LVVuaXF1ZSkpIHsNCiAgICAgICAgaWYgKCRmdWxsUGF0aC5FcXVhbHMoJGRlc2t0b3BQYXRoLCAk
c2NyaXB0OlBhdGhDb21wYXJpc29uKSAtb3INCiAgICAgICAgICAgIChUZXN0LVBhdGhXaXRoaW4g
LVBhdGggJGZ1bGxQYXRoIC1QYXJlbnQgJGRlc2t0b3BQYXRoIC1BbGxvd1BhcmVudCkpIHsNCiAg
ICAgICAgICAgIHRocm93ICdEZXNrdG9wIGFuZCBPbmVEcml2ZSBEZXNrdG9wIGxvY2F0aW9ucyBh
cmUgZm9yYmlkZGVuLicNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgICRkcml2ZSA9IE5ldy1PYmpl
Y3QgU3lzdGVtLklPLkRyaXZlSW5mbygkZHJpdmVSb290KQ0KICAgIGlmICgtbm90ICRkcml2ZS5J
c1JlYWR5IC1vciAtbm90ICRkcml2ZS5Ecml2ZUZvcm1hdC5FcXVhbHMoJ05URlMnLCAkc2NyaXB0
OlBhdGhDb21wYXJpc29uKSkgew0KICAgICAgICB0aHJvdyAnVGhlIHNvdWwgcm9vdCBtdXN0IGJl
IG9uIGEgcmVhZHkgTlRGUyBDOiBkcml2ZS4nDQogICAgfQ0KICAgIGlmICgtbm90IChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRmdWxsUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyB0aHJvdyAi
U291bCByb290IG5vdCBmb3VuZDogJGZ1bGxQYXRoIiB9DQogICAgJGl0ZW0gPSBHZXQtSXRlbSAt
TGl0ZXJhbFBhdGggJGZ1bGxQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgo
JGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJz
ZVBvaW50KSAtbmUgMCkgew0KICAgICAgICB0aHJvdyAnVGhlIHNvdWwgcm9vdCBjYW5ub3QgYmUg
YSBqdW5jdGlvbiwgc3ltbGluaywgb3Igb3RoZXIgcmVwYXJzZSBwb2ludC4nDQogICAgfQ0KICAg
IGlmICgtbm90IChUZXN0LVNvdWxJbml0aWFsaXplZCAtUGF0aCAkZnVsbFBhdGgpKSB7IHRocm93
ICdUaGUgdGFyZ2V0IGlzIG5vdCBhbiBpbml0aWFsaXplZCBzb3VsLicgfQ0KICAgIHJldHVybiAk
ZnVsbFBhdGgNCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LUZpeHR1cmVBdXRob3JpdHkgew0KICAgIHBh
cmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSb290KQ0KICAgIGlmICgtbm90ICRG
aXh0dXJlTW9kZSkgeyByZXR1cm4gfQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCRGaXh0dXJlTm9uY2UpKSB7IHRocm93ICdGaXh0dXJlTW9kZSByZXF1aXJlcyBGaXh0dXJl
Tm9uY2UuJyB9DQogICAgJGZpeHR1cmVCb3VuZGFyeSA9IENvbnZlcnRUby1DYW5vbmljYWxQYXRo
IChKb2luLVBhdGggJFBTU2NyaXB0Um9vdCAndGVzdHNcZml4dHVyZXMnKQ0KICAgICRmdWxsUm9v
dCA9IENvbnZlcnRUby1DYW5vbmljYWxQYXRoICRSb290DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGZpeHR1cmVCb3VuZGFyeSAtUGF0aFR5cGUgQ29udGFpbmVyKSAtb3IN
CiAgICAgICAgLW5vdCAoQ29udmVydFRvLUNhbm9uaWNhbFBhdGggKFNwbGl0LVBhdGggLVBhcmVu
dCAkZnVsbFJvb3QpKS5FcXVhbHMoJGZpeHR1cmVCb3VuZGFyeSwgJHNjcmlwdDpQYXRoQ29tcGFy
aXNvbikgLW9yDQogICAgICAgIFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRmdWxsUm9v
dCkgLW5vdG1hdGNoICdec2VjdXJlLXJvb3QtWzAtOWEtZl17MzJ9JCcpIHsNCiAgICAgICAgdGhy
b3cgJ0ZpeHR1cmVNb2RlIGlzIHJlc3RyaWN0ZWQgdG8gdGVzdHNcZml4dHVyZXNcc2VjdXJlLXJv
b3QtPGd1aWQ+IHJvb3RzLicNCiAgICB9DQogICAgJGJvdW5kYXJ5SXRlbSA9IEdldC1JdGVtIC1M
aXRlcmFsUGF0aCAkZml4dHVyZUJvdW5kYXJ5IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAg
ICRyb290SXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkZnVsbFJvb3QgLUZvcmNlIC1FcnJv
ckFjdGlvbiBTdG9wDQogICAgaWYgKCgkYm91bmRhcnlJdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5
c3RlbS5JTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDAgLW9yDQogICAgICAg
ICgkcm9vdEl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6
UmVwYXJzZVBvaW50KSAtbmUgMCkgew0KICAgICAgICB0aHJvdyAnRml4dHVyZSBib3VuZGFyeSBh
bmQgcm9vdCBtdXN0IGJlIHJlYWwgZGlyZWN0b3JpZXMuJw0KICAgIH0NCiAgICBpZiAoLW5vdCAo
VGVzdC1Tb3VsSW5pdGlhbGl6ZWQgLVBhdGggJGZ1bGxSb290KSkgeyB0aHJvdyAnRml4dHVyZSBy
b290IGlzIG5vdCBhbiBpbml0aWFsaXplZCBzb3VsLicgfQ0KICAgICRtYXJrZXJQYXRoID0gSm9p
bi1QYXRoICRmdWxsUm9vdCAnc291bC10ZXN0LWZpeHR1cmUuanNvbicNCiAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkbWFya2VyUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhy
b3cgJ0ZpeHR1cmUgYXV0aG9yaXR5IG1hcmtlciBpcyBtaXNzaW5nLicgfQ0KICAgICRtYXJrZXIg
PSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkbWFya2VyUGF0aCwgJHNjcmlwdDpVdGY4
Tm9Cb20pIHwgQ29udmVydEZyb20tSnNvbiAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmIChbc3Ry
aW5nXSRtYXJrZXIucHVycG9zZSAtY25lICdzZWN1cmUtcm9vdC12Ny1kaXNwb3NhYmxlLWZpeHR1
cmUnIC1vcg0KICAgICAgICAtbm90IChbc3RyaW5nXSRtYXJrZXIubm9uY2UpLkVxdWFscygkRml4
dHVyZU5vbmNlLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7DQogICAgICAgIHRocm93
ICdGaXh0dXJlIGF1dGhvcml0eSBtYXJrZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHN1cHBsaWVkIG5v
bmNlLicNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1TaGEyNTZCeXRlcyB7DQogICAgcGFyYW0o
W1BhcmFtZXRlcihNYW5kYXRvcnkpXVtieXRlW11dJEJ5dGVzKQ0KICAgICRhbGdvcml0aG0gPSBb
U3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAgIHRyeSB7
DQogICAgICAgIHJldHVybiAoW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkYWxnb3Jp
dGhtLkNvbXB1dGVIYXNoKCRCeXRlcykpKS5SZXBsYWNlKCctJywgJycpLlRvTG93ZXJJbnZhcmlh
bnQoKQ0KICAgIH0gZmluYWxseSB7DQogICAgICAgICRhbGdvcml0aG0uRGlzcG9zZSgpDQogICAg
fQ0KfQ0KDQpmdW5jdGlvbiBHZXQtU2hhMjU2RmlsZSB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihN
YW5kYXRvcnkpXVtzdHJpbmddJFBhdGgpDQogICAgJHN0cmVhbSA9ICRudWxsDQogICAgJGFsZ29y
aXRobSA9ICRudWxsDQogICAgdHJ5IHsNCiAgICAgICAgJHN0cmVhbSA9IE5ldy1PYmplY3QgU3lz
dGVtLklPLkZpbGVTdHJlYW0oJFBhdGgsIFtTeXN0ZW0uSU8uRmlsZU1vZGVdOjpPcGVuLCBbU3lz
dGVtLklPLkZpbGVBY2Nlc3NdOjpSZWFkLCBbU3lzdGVtLklPLkZpbGVTaGFyZV06OlJlYWQpDQog
ICAgICAgICRhbGdvcml0aG0gPSBbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZd
OjpDcmVhdGUoKQ0KICAgICAgICByZXR1cm4gKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJp
bmcoJGFsZ29yaXRobS5Db21wdXRlSGFzaCgkc3RyZWFtKSkpLlJlcGxhY2UoJy0nLCAnJykuVG9M
b3dlckludmFyaWFudCgpDQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAgaWYgKCRudWxsIC1uZSAk
YWxnb3JpdGhtKSB7ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0NCiAgICAgICAgaWYgKCRudWxsIC1u
ZSAkc3RyZWFtKSB7ICRzdHJlYW0uRGlzcG9zZSgpIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEFz
c2VydC1Ob1JlcGFyc2VPblBhdGggew0KICAgIHBhcmFtKA0KICAgICAgICBbUGFyYW1ldGVyKE1h
bmRhdG9yeSldW3N0cmluZ10kUGF0aCwNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtz
dHJpbmddJEJvdW5kYXJ5DQogICAgKQ0KICAgICRmdWxsUGF0aCA9IENvbnZlcnRUby1DYW5vbmlj
YWxQYXRoICRQYXRoDQogICAgJGZ1bGxCb3VuZGFyeSA9IENvbnZlcnRUby1DYW5vbmljYWxQYXRo
ICRCb3VuZGFyeQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGhXaXRoaW4gLVBhdGggJGZ1bGxQYXRo
IC1QYXJlbnQgJGZ1bGxCb3VuZGFyeSAtQWxsb3dQYXJlbnQpKSB7DQogICAgICAgIHRocm93ICJN
YW5hZ2VkIHBhdGggZXNjYXBlcyB0aGUgc291bCByb290OiAkZnVsbFBhdGgiDQogICAgfQ0KICAg
ICRjdXJyZW50ID0gJGZ1bGxCb3VuZGFyeQ0KICAgICRyZWxhdGl2ZSA9ICRmdWxsUGF0aC5TdWJz
dHJpbmcoJGZ1bGxCb3VuZGFyeS5MZW5ndGgpLlRyaW1TdGFydCgnXCcsICcvJykNCiAgICBmb3Jl
YWNoICgkc2VnbWVudCBpbiAoJHJlbGF0aXZlIC1zcGxpdCAnW1xcL10nKSkgew0KICAgICAgICBp
ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkc2VnbWVudCkpIHsgY29udGludWUgfQ0K
ICAgICAgICAkY3VycmVudCA9IEpvaW4tUGF0aCAkY3VycmVudCAkc2VnbWVudA0KICAgICAgICBp
ZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY3VycmVudCkpIHsgYnJlYWsgfQ0KICAg
ICAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkY3VycmVudCAtRm9yY2UgLUVycm9y
QWN0aW9uIFN0b3ANCiAgICAgICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0u
SU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAgICAgICB0
aHJvdyAiUmVwYXJzZSBwb2ludCBibG9ja2VkOiAkY3VycmVudCINCiAgICAgICAgfQ0KICAgIH0N
Cn0NCg0KZnVuY3Rpb24gV3JpdGUtQXRvbWljTmV3VXRmOCB7DQogICAgcGFyYW0oDQogICAgICAg
IFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQYXRoLA0KICAgICAgICBbUGFyYW1ldGVy
KE1hbmRhdG9yeSldW0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRUZXh0LA0KICAgICAgICBb
UGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kQm91bmRhcnkNCiAgICApDQogICAgJGZ1bGxQ
YXRoID0gQ29udmVydFRvLUNhbm9uaWNhbFBhdGggJFBhdGgNCiAgICBpZiAoLW5vdCAoVGVzdC1Q
YXRoV2l0aGluIC1QYXRoICRmdWxsUGF0aCAtUGFyZW50ICRCb3VuZGFyeSkpIHsgdGhyb3cgIkF0
b21pYyB3cml0ZSBlc2NhcGVzIGl0cyBib3VuZGFyeTogJGZ1bGxQYXRoIiB9DQogICAgaWYgKFRl
c3QtUGF0aCAtTGl0ZXJhbFBhdGggJGZ1bGxQYXRoKSB7IHRocm93ICJBdG9taWMgY3JlYXRlIHRh
cmdldCBhbHJlYWR5IGV4aXN0czogJGZ1bGxQYXRoIiB9DQogICAgJHBhcmVudCA9IFtTeXN0ZW0u
SU8uUGF0aF06OkdldERpcmVjdG9yeU5hbWUoJGZ1bGxQYXRoKQ0KICAgIGlmICgtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRwYXJlbnQgLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cg
IkF0b21pYyB3cml0ZSBwYXJlbnQgaXMgbWlzc2luZzogJHBhcmVudCIgfQ0KICAgIEFzc2VydC1O
b1JlcGFyc2VPblBhdGggLVBhdGggJHBhcmVudCAtQm91bmRhcnkgJEJvdW5kYXJ5DQoNCiAgICAk
Ynl0ZXMgPSAkc2NyaXB0OlV0ZjhOb0JvbS5HZXRCeXRlcygkVGV4dCkNCiAgICAkZXhwZWN0ZWRI
YXNoID0gR2V0LVNoYTI1NkJ5dGVzIC1CeXRlcyAkYnl0ZXMNCiAgICAkdGVtcG9yYXJ5UGF0aCA9
IEpvaW4tUGF0aCAkcGFyZW50ICgnLnNlY3VyZS1yb290LXY3LXRtcC0nICsgW2d1aWRdOjpOZXdH
dWlkKCkuVG9TdHJpbmcoJ04nKSkNCiAgICAkc3RyZWFtID0gJG51bGwNCiAgICB0cnkgew0KICAg
ICAgICAkc3RyZWFtID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8uRmlsZVN0cmVhbSgkdGVtcG9yYXJ5
UGF0aCwgW1N5c3RlbS5JTy5GaWxlTW9kZV06OkNyZWF0ZU5ldywgW1N5c3RlbS5JTy5GaWxlQWNj
ZXNzXTo6V3JpdGUsIFtTeXN0ZW0uSU8uRmlsZVNoYXJlXTo6UmVhZCkNCiAgICAgICAgJHN0cmVh
bS5Xcml0ZSgkYnl0ZXMsIDAsICRieXRlcy5MZW5ndGgpDQogICAgICAgICRzdHJlYW0uRmx1c2go
JHRydWUpDQogICAgICAgICRzdHJlYW0uRGlzcG9zZSgpDQogICAgICAgICRzdHJlYW0gPSAkbnVs
bA0KICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpNb3ZlKCR0ZW1wb3JhcnlQYXRoLCAkZnVsbFBh
dGgpDQogICAgICAgICRhY3R1YWxIYXNoID0gR2V0LVNoYTI1NkZpbGUgLVBhdGggJGZ1bGxQYXRo
DQogICAgICAgIGlmICgtbm90ICRhY3R1YWxIYXNoLkVxdWFscygkZXhwZWN0ZWRIYXNoLCBbU3Ry
aW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7DQogICAgICAgICAgICB0aHJvdyAiQXRvbWljIGZp
bGUgaGFzaCB2ZXJpZmljYXRpb24gZmFpbGVkOiAkZnVsbFBhdGgiDQogICAgICAgIH0NCiAgICAg
ICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJGZ1bGxQYXRoOyBzaGEyNTYgPSAk
YWN0dWFsSGFzaDsgbGVuZ3RoID0gJGJ5dGVzLkxlbmd0aCB9DQogICAgfSBmaW5hbGx5IHsNCiAg
ICAgICAgaWYgKCRudWxsIC1uZSAkc3RyZWFtKSB7ICRzdHJlYW0uRGlzcG9zZSgpIH0NCiAgICAg
ICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHRlbXBvcmFyeVBhdGggLVBhdGhUeXBlIExl
YWYpIHsNCiAgICAgICAgICAgICMgT25seSB0aGlzIGludm9jYXRpb24ncyB1bmlxdWVseSBuYW1l
ZCB0ZW1wb3JhcnkgZmlsZSBpcyByZW1vdmVkLg0KICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxl
XTo6RGVsZXRlKCR0ZW1wb3JhcnlQYXRoKQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlv
biBHZXQtUGF0aEFsdGVybmF0ZVN0cmVhbXMgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0
b3J5KV1bc3RyaW5nXSRQYXRoKQ0KICAgICRzdHJlYW1zID0gQChHZXQtSXRlbSAtTGl0ZXJhbFBh
dGggJFBhdGggLVN0cmVhbSAqIC1FcnJvckFjdGlvbiBTdG9wKQ0KICAgIHJldHVybiBAKCRzdHJl
YW1zIHwgV2hlcmUtT2JqZWN0IHsNCiAgICAgICAgJG5hbWUgPSBbc3RyaW5nXSRfLlN0cmVhbQ0K
ICAgICAgICAkbmFtZSAtbmUgJzokREFUQScgLWFuZCAkbmFtZSAtbmUgJyREQVRBJyAtYW5kIC1u
b3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkbmFtZSkNCiAgICB9KQ0KfQ0KDQpmdW5j
dGlvbiBHZXQtU2FmZVRyZWVTbmFwc2hvdCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRv
cnkpXVtzdHJpbmddJFJvb3QpDQoNCiAgICAkaXRlbXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xs
ZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRpc3N1ZXMgPSBOZXctT2JqZWN0IFN5
c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICRxdWV1ZSA9IE5ldy1P
YmplY3QgJ1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlF1ZXVlW1N5c3RlbS5JTy5EaXJlY3Rv
cnlJbmZvXScNCiAgICAkcm9vdEl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJFJvb3QgLUZv
cmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgJGl0ZW1zLkFkZChbcHNjdXN0b21vYmplY3RdQHsg
cGF0aCA9ICRyb290SXRlbS5GdWxsTmFtZTsga2luZCA9ICdkaXJlY3RvcnknIH0pDQogICAgdHJ5
IHsNCiAgICAgICAgZm9yZWFjaCAoJHN0cmVhbSBpbiBAKEdldC1QYXRoQWx0ZXJuYXRlU3RyZWFt
cyAtUGF0aCAkcm9vdEl0ZW0uRnVsbE5hbWUpKSB7DQogICAgICAgICAgICAkaXNzdWVzLkFkZChb
cHNjdXN0b21vYmplY3RdQHsgcGF0aCA9ICRyb290SXRlbS5GdWxsTmFtZTsgaXNzdWUgPSAnYWx0
ZXJuYXRlLWRhdGEtc3RyZWFtJzsgZGV0YWlsID0gW3N0cmluZ10kc3RyZWFtLlN0cmVhbSB9KQ0K
ICAgICAgICB9DQogICAgfSBjYXRjaCB7DQogICAgICAgICRpc3N1ZXMuQWRkKFtwc2N1c3RvbW9i
amVjdF1AeyBwYXRoID0gJHJvb3RJdGVtLkZ1bGxOYW1lOyBpc3N1ZSA9ICdzdHJlYW0tc2Nhbi1m
YWlsZWQnOyBkZXRhaWwgPSAkXy5FeGNlcHRpb24uTWVzc2FnZSB9KQ0KICAgIH0NCiAgICAkcXVl
dWUuRW5xdWV1ZSgkcm9vdEl0ZW0pDQoNCiAgICB3aGlsZSAoJHF1ZXVlLkNvdW50IC1ndCAwKSB7
DQogICAgICAgICRkaXJlY3RvcnkgPSAkcXVldWUuRGVxdWV1ZSgpDQogICAgICAgICRjaGlsZHJl
biA9ICRudWxsDQogICAgICAgIHRyeSB7ICRjaGlsZHJlbiA9IEAoJGRpcmVjdG9yeS5FbnVtZXJh
dGVGaWxlU3lzdGVtSW5mb3MoKSkgfQ0KICAgICAgICBjYXRjaCB7DQogICAgICAgICAgICAkaXNz
dWVzLkFkZChbcHNjdXN0b21vYmplY3RdQHsgcGF0aCA9ICRkaXJlY3RvcnkuRnVsbE5hbWU7IGlz
c3VlID0gJ2VudW1lcmF0aW9uLWZhaWxlZCc7IGRldGFpbCA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdl
IH0pDQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICB9DQogICAgICAgIGZvcmVhY2ggKCRp
dGVtIGluICRjaGlsZHJlbikgew0KICAgICAgICAgICAgJGlzUmVwYXJzZSA9ICgoJGl0ZW0uQXR0
cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAt
bmUgMCkNCiAgICAgICAgICAgIGlmICgkaXNSZXBhcnNlKSB7DQogICAgICAgICAgICAgICAgJGlz
c3Vlcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IHBhdGggPSAkaXRlbS5GdWxsTmFtZTsgaXNzdWUg
PSAncmVwYXJzZS1wb2ludCc7IGRldGFpbCA9ICRpdGVtLkF0dHJpYnV0ZXMuVG9TdHJpbmcoKSB9
KQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICAk
a2luZCA9IGlmICgkaXRlbSAtaXMgW1N5c3RlbS5JTy5EaXJlY3RvcnlJbmZvXSkgeyAnZGlyZWN0
b3J5JyB9IGVsc2UgeyAnZmlsZScgfQ0KICAgICAgICAgICAgJGl0ZW1zLkFkZChbcHNjdXN0b21v
YmplY3RdQHsgcGF0aCA9ICRpdGVtLkZ1bGxOYW1lOyBraW5kID0gJGtpbmQgfSkNCiAgICAgICAg
ICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHN0cmVhbSBpbiBAKEdldC1QYXRo
QWx0ZXJuYXRlU3RyZWFtcyAtUGF0aCAkaXRlbS5GdWxsTmFtZSkpIHsNCiAgICAgICAgICAgICAg
ICAgICAgJGlzc3Vlcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IHBhdGggPSAkaXRlbS5GdWxsTmFt
ZTsgaXNzdWUgPSAnYWx0ZXJuYXRlLWRhdGEtc3RyZWFtJzsgZGV0YWlsID0gW3N0cmluZ10kc3Ry
ZWFtLlN0cmVhbSB9KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gY2F0Y2ggew0K
ICAgICAgICAgICAgICAgICRpc3N1ZXMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJGl0
ZW0uRnVsbE5hbWU7IGlzc3VlID0gJ3N0cmVhbS1zY2FuLWZhaWxlZCc7IGRldGFpbCA9ICRfLkV4
Y2VwdGlvbi5NZXNzYWdlIH0pDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJGtpbmQg
LWVxICdkaXJlY3RvcnknKSB7ICRxdWV1ZS5FbnF1ZXVlKCRpdGVtKSB9DQogICAgICAgIH0NCiAg
ICB9DQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBpdGVtcyA9IEAoJGl0ZW1zLlRvQXJy
YXkoKSk7IGlzc3VlcyA9IEAoJGlzc3Vlcy5Ub0FycmF5KCkpIH0NCn0NCg0KZnVuY3Rpb24gR2V0
LVJ1bGVSZWNvcmQgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kUnVsZSwgW1Bh
cmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFBhdGgsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1b
c3RyaW5nXSRSZWFzb24pDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICBw
YXRoID0gJFBhdGgNCiAgICAgICAgcmVhc29uID0gJFJlYXNvbg0KICAgICAgICBzaWQgPSBbc3Ry
aW5nXSRSdWxlLklkZW50aXR5UmVmZXJlbmNlLlZhbHVlDQogICAgICAgIHR5cGUgPSAkUnVsZS5B
Y2Nlc3NDb250cm9sVHlwZS5Ub1N0cmluZygpDQogICAgICAgIHJpZ2h0cyA9ICRSdWxlLkZpbGVT
eXN0ZW1SaWdodHMuVG9TdHJpbmcoKQ0KICAgICAgICByaWdodHNWYWx1ZSA9IFtpbnQ2NF0kUnVs
ZS5GaWxlU3lzdGVtUmlnaHRzDQogICAgICAgIGluaGVyaXRlZCA9IFtib29sXSRSdWxlLklzSW5o
ZXJpdGVkDQogICAgICAgIGluaGVyaXRhbmNlRmxhZ3MgPSAkUnVsZS5Jbmhlcml0YW5jZUZsYWdz
LlRvU3RyaW5nKCkNCiAgICAgICAgcHJvcGFnYXRpb25GbGFncyA9ICRSdWxlLlByb3BhZ2F0aW9u
RmxhZ3MuVG9TdHJpbmcoKQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gVGVzdC1SdWxlSGFzRnVsbENv
bnRyb2wgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kUnVsZSkNCiAgICAkZnVs
bCA9IFtpbnQ2NF1bU3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuRmlsZVN5c3RlbVJpZ2h0
c106OkZ1bGxDb250cm9sDQogICAgJGFjdHVhbCA9IFtpbnQ2NF0kUnVsZS5GaWxlU3lzdGVtUmln
aHRzDQogICAgcmV0dXJuICgkUnVsZS5BY2Nlc3NDb250cm9sVHlwZSAtZXEgW1N5c3RlbS5TZWN1
cml0eS5BY2Nlc3NDb250cm9sLkFjY2Vzc0NvbnRyb2xUeXBlXTo6QWxsb3cgLWFuZCAoKCRhY3R1
YWwgLWJhbmQgJGZ1bGwpIC1lcSAkZnVsbCkpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtQWNsSGFzUmVx
dWlyZWRQcml2YXRlUnVsZXMgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kQWNs
KQ0KICAgICRydWxlcyA9IEAoJEFjbC5HZXRBY2Nlc3NSdWxlcygkdHJ1ZSwgJHRydWUsIFtTeXN0
ZW0uU2VjdXJpdHkuUHJpbmNpcGFsLlNlY3VyaXR5SWRlbnRpZmllcl0pKQ0KICAgICRyZXF1aXJl
ZCA9IEAoJHNjcmlwdDpDdXJyZW50U2lkLCAkc2NyaXB0OlN5c3RlbVNpZCwgJHNjcmlwdDpBZG1p
bmlzdHJhdG9yc1NpZCkgfCBTZWxlY3QtT2JqZWN0IC1VbmlxdWUNCiAgICBmb3JlYWNoICgkc2lk
IGluICRyZXF1aXJlZCkgew0KICAgICAgICAkbWF0Y2ggPSBAKCRydWxlcyB8IFdoZXJlLU9iamVj
dCB7IFtzdHJpbmddJF8uSWRlbnRpdHlSZWZlcmVuY2UuVmFsdWUgLWVxICRzaWQgLWFuZCAoVGVz
dC1SdWxlSGFzRnVsbENvbnRyb2wgLVJ1bGUgJF8pIH0pDQogICAgICAgIGlmICgkbWF0Y2guQ291
bnQgLWVxIDApIHsgcmV0dXJuICRmYWxzZSB9DQogICAgfQ0KICAgIHJldHVybiAkdHJ1ZQ0KfQ0K
DQpmdW5jdGlvbiBUZXN0LVJvb3RBY2xQcml2YXRlIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1h
bmRhdG9yeSldJEFjbCkNCiAgICBpZiAoLW5vdCAkQWNsLkFyZUFjY2Vzc1J1bGVzUHJvdGVjdGVk
KSB7IHJldHVybiAkZmFsc2UgfQ0KICAgICRhbGxvd2VkID0gQCgkc2NyaXB0OkN1cnJlbnRTaWQs
ICRzY3JpcHQ6U3lzdGVtU2lkLCAkc2NyaXB0OkFkbWluaXN0cmF0b3JzU2lkKSB8IFNlbGVjdC1P
YmplY3QgLVVuaXF1ZQ0KICAgIGZvcmVhY2ggKCRydWxlIGluIEAoJEFjbC5HZXRBY2Nlc3NSdWxl
cygkdHJ1ZSwgJHRydWUsIFtTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsLlNlY3VyaXR5SWRlbnRp
Zmllcl0pKSkgew0KICAgICAgICBpZiAoJHJ1bGUuSXNJbmhlcml0ZWQgLW9yDQogICAgICAgICAg
ICAkcnVsZS5BY2Nlc3NDb250cm9sVHlwZSAtbmUgW1N5c3RlbS5TZWN1cml0eS5BY2Nlc3NDb250
cm9sLkFjY2Vzc0NvbnRyb2xUeXBlXTo6QWxsb3cgLW9yDQogICAgICAgICAgICAkYWxsb3dlZCAt
bm90Y29udGFpbnMgW3N0cmluZ10kcnVsZS5JZGVudGl0eVJlZmVyZW5jZS5WYWx1ZSkgew0KICAg
ICAgICAgICAgcmV0dXJuICRmYWxzZQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiAoVGVz
dC1BY2xIYXNSZXF1aXJlZFByaXZhdGVSdWxlcyAtQWNsICRBY2wpDQp9DQoNCmZ1bmN0aW9uIEdl
dC1BY2xBdWRpdCB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1b
b2JqZWN0W11dJEl0ZW1zLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10k
Um9vdA0KICAgICkNCiAgICAkcGVuZGluZyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25z
LkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgJGFjbEJ5UGF0aCA9IEB7fQ0KICAgICRwcml2aWxl
Z2VkID0gQCgkc2NyaXB0OkN1cnJlbnRTaWQsICRzY3JpcHQ6U3lzdGVtU2lkLCAkc2NyaXB0OkFk
bWluaXN0cmF0b3JzU2lkKSB8IFNlbGVjdC1PYmplY3QgLVVuaXF1ZQ0KICAgICRzYWZlSW5oZXJp
dGVkID0gQCgNCiAgICAgICAgJHNjcmlwdDpDdXJyZW50U2lkLCAkc2NyaXB0OlN5c3RlbVNpZCwg
JHNjcmlwdDpBZG1pbmlzdHJhdG9yc1NpZCwNCiAgICAgICAgJHNjcmlwdDpVc2Vyc1NpZCwgJHNj
cmlwdDpBdXRoZW50aWNhdGVkVXNlcnNTaWQsICRzY3JpcHQ6Q3JlYXRvck93bmVyU2lkDQogICAg
KSB8IFNlbGVjdC1PYmplY3QgLVVuaXF1ZQ0KDQogICAgZm9yZWFjaCAoJGVudHJ5IGluICRJdGVt
cykgew0KICAgICAgICAkcGF0aCA9IFtzdHJpbmddJGVudHJ5LnBhdGgNCiAgICAgICAgdHJ5IHsN
CiAgICAgICAgICAgICRhY2wgPSBHZXQtQWNsIC1MaXRlcmFsUGF0aCAkcGF0aCAtRXJyb3JBY3Rp
b24gU3RvcA0KICAgICAgICAgICAgJGFjbEJ5UGF0aFskcGF0aF0gPSAkYWNsDQogICAgICAgICAg
ICAkcnVsZXMgPSBAKCRhY2wuR2V0QWNjZXNzUnVsZXMoJHRydWUsICR0cnVlLCBbU3lzdGVtLlNl
Y3VyaXR5LlByaW5jaXBhbC5TZWN1cml0eUlkZW50aWZpZXJdKSkNCiAgICAgICAgICAgIGZvcmVh
Y2ggKCRydWxlIGluICRydWxlcykgew0KICAgICAgICAgICAgICAgICRzaWQgPSBbc3RyaW5nXSRy
dWxlLklkZW50aXR5UmVmZXJlbmNlLlZhbHVlDQogICAgICAgICAgICAgICAgIyBBIGZpeHR1cmUg
aXMgZGVsaWJlcmF0ZWx5IG5lc3RlZCBiZWxvdyB0aGUgc2hhcmVkIElSSVMgdGVzdA0KICAgICAg
ICAgICAgICAgICMgYm91bmRhcnksIHNvIGl0cyBpbmhlcml0ZWQgQUNFcyBkZXNjcmliZSB0aGF0
IGRpc3Bvc2FibGUNCiAgICAgICAgICAgICAgICAjIGJvdW5kYXJ5IHJhdGhlciB0aGFuIHRoZSBw
cm9kdWN0aW9uIHNvdWwtcm9vdCBwb2xpY3kuICBLZWVwDQogICAgICAgICAgICAgICAgIyBhdWRp
dGluZyBldmVyeSBleHBsaWNpdCBBQ0UsIGJ1dCBpZ25vcmUgaW5oZXJpdGVkIGZpeHR1cmUtb25s
eQ0KICAgICAgICAgICAgICAgICMgcnVsZXMgd2hpbGUgcGxhbm5pbmcgdGhlIGludGVncmF0aW9u
IHRlc3QuICBQcm9kdWN0aW9uIG1vZGUNCiAgICAgICAgICAgICAgICAjIG5ldmVyIHRha2VzIHRo
aXMgYnJhbmNoLg0KICAgICAgICAgICAgICAgIGlmICgkRml4dHVyZU1vZGUgLWFuZCAkcnVsZS5J
c0luaGVyaXRlZCkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYgKCRydWxlLkFjY2Vz
c0NvbnRyb2xUeXBlIC1uZSBbU3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuQWNjZXNzQ29u
dHJvbFR5cGVdOjpBbGxvdykgew0KICAgICAgICAgICAgICAgICAgICAkcGVuZGluZy5BZGQoKEdl
dC1SdWxlUmVjb3JkIC1SdWxlICRydWxlIC1QYXRoICRwYXRoIC1SZWFzb24gJ2RlbnktYWNlLXJl
cXVpcmVzLWh1bWFuLXJldmlldycpKQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkcnVsZS5Jc0luaGVyaXRl
ZCAtYW5kICRwcml2aWxlZ2VkIC1ub3Rjb250YWlucyAkc2lkKSB7DQogICAgICAgICAgICAgICAg
ICAgICRwZW5kaW5nLkFkZCgoR2V0LVJ1bGVSZWNvcmQgLVJ1bGUgJHJ1bGUgLVBhdGggJHBhdGgg
LVJlYXNvbiAnZXhwbGljaXQtY3VzdG9tLWFjZS1wcmVzZXJ2ZWQtcGVuZGluZycpKQ0KICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg
ICBpZiAoJHJ1bGUuSXNJbmhlcml0ZWQgLWFuZCAkc2FmZUluaGVyaXRlZCAtbm90Y29udGFpbnMg
JHNpZCkgew0KICAgICAgICAgICAgICAgICAgICAkcGVuZGluZy5BZGQoKEdldC1SdWxlUmVjb3Jk
IC1SdWxlICRydWxlIC1QYXRoICRwYXRoIC1SZWFzb24gJ3Vua25vd24taW5oZXJpdGVkLWFjZS1y
ZXF1aXJlcy1odW1hbi1yZXZpZXcnKSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9
DQoNCiAgICAgICAgICAgICRpc1Jvb3QgPSAkcGF0aC5FcXVhbHMoJFJvb3QsICRzY3JpcHQ6UGF0
aENvbXBhcmlzb24pDQogICAgICAgICAgICBpZiAoLW5vdCAkaXNSb290IC1hbmQgJGFjbC5BcmVB
Y2Nlc3NSdWxlc1Byb3RlY3RlZCAtYW5kIC1ub3QgKFRlc3QtQWNsSGFzUmVxdWlyZWRQcml2YXRl
UnVsZXMgLUFjbCAkYWNsKSkgew0KICAgICAgICAgICAgICAgICRwZW5kaW5nLkFkZChbcHNjdXN0
b21vYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgcGF0aCA9ICRwYXRoDQogICAgICAgICAg
ICAgICAgICAgIHJlYXNvbiA9ICdwcm90ZWN0ZWQtY2hpbGQtd291bGQtbm90LWluaGVyaXQtcHJp
dmF0ZS1yb290Jw0KICAgICAgICAgICAgICAgICAgICBzaWQgPSAkbnVsbA0KICAgICAgICAgICAg
ICAgICAgICB0eXBlID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgcmlnaHRzID0gJG51bGwN
CiAgICAgICAgICAgICAgICAgICAgcmlnaHRzVmFsdWUgPSAkbnVsbA0KICAgICAgICAgICAgICAg
ICAgICBpbmhlcml0ZWQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdGFuY2VG
bGFncyA9ICRudWxsDQogICAgICAgICAgICAgICAgICAgIHByb3BhZ2F0aW9uRmxhZ3MgPSAkbnVs
bA0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggew0K
ICAgICAgICAgICAgJHBlbmRpbmcuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAg
ICAgIHBhdGggPSAkcGF0aA0KICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdhY2wtcmVhZC1mYWls
ZWQnDQogICAgICAgICAgICAgICAgc2lkID0gJG51bGwNCiAgICAgICAgICAgICAgICB0eXBlID0g
JG51bGwNCiAgICAgICAgICAgICAgICByaWdodHMgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHJp
Z2h0c1ZhbHVlID0gJG51bGwNCiAgICAgICAgICAgICAgICBpbmhlcml0ZWQgPSAkbnVsbA0KICAg
ICAgICAgICAgICAgIGluaGVyaXRhbmNlRmxhZ3MgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHBy
b3BhZ2F0aW9uRmxhZ3MgPSAkbnVsbA0KICAgICAgICAgICAgICAgIGRldGFpbCA9ICRfLkV4Y2Vw
dGlvbi5NZXNzYWdlDQogICAgICAgICAgICB9KQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgJHJv
b3RBY2wgPSAkYWNsQnlQYXRoWyRSb290XQ0KICAgIGlmICgkbnVsbCAtZXEgJHJvb3RBY2wpIHsg
dGhyb3cgJ1RoZSByb290IEFDTCBjb3VsZCBub3QgYmUgcmVhZC4nIH0NCiAgICByZXR1cm4gW3Bz
Y3VzdG9tb2JqZWN0XUB7DQogICAgICAgIHJvb3RBY2wgPSAkcm9vdEFjbA0KICAgICAgICBwZW5k
aW5nID0gQCgkcGVuZGluZy5Ub0FycmF5KCkpDQogICAgICAgIGFscmVhZHlQcml2YXRlID0gVGVz
dC1Sb290QWNsUHJpdmF0ZSAtQWNsICRyb290QWNsDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBOZXct
UHJpdmF0ZUFjbE9iamVjdCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJp
bmddJFBhdGgpDQogICAgJGFjbCA9IEdldC1BY2wgLUxpdGVyYWxQYXRoICRQYXRoIC1FcnJvckFj
dGlvbiBTdG9wDQogICAgJGFjbC5TZXRBY2Nlc3NSdWxlUHJvdGVjdGlvbigkdHJ1ZSwgJGZhbHNl
KQ0KICAgIGZvcmVhY2ggKCRydWxlIGluIEAoJGFjbC5HZXRBY2Nlc3NSdWxlcygkdHJ1ZSwgJGZh
bHNlLCBbU3lzdGVtLlNlY3VyaXR5LlByaW5jaXBhbC5TZWN1cml0eUlkZW50aWZpZXJdKSkpIHsN
CiAgICAgICAgW3ZvaWRdJGFjbC5SZW1vdmVBY2Nlc3NSdWxlU3BlY2lmaWMoJHJ1bGUpDQogICAg
fQ0KICAgICRpbmhlcml0YW5jZSA9IFtTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5Jbmhl
cml0YW5jZUZsYWdzXTo6Q29udGFpbmVySW5oZXJpdCAtYm9yIFtTeXN0ZW0uU2VjdXJpdHkuQWNj
ZXNzQ29udHJvbC5Jbmhlcml0YW5jZUZsYWdzXTo6T2JqZWN0SW5oZXJpdA0KICAgICRwcm9wYWdh
dGlvbiA9IFtTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5Qcm9wYWdhdGlvbkZsYWdzXTo6
Tm9uZQ0KICAgIGZvcmVhY2ggKCRzaWRUZXh0IGluIEAoJHNjcmlwdDpDdXJyZW50U2lkLCAkc2Ny
aXB0OlN5c3RlbVNpZCwgJHNjcmlwdDpBZG1pbmlzdHJhdG9yc1NpZCkgfCBTZWxlY3QtT2JqZWN0
IC1VbmlxdWUpIHsNCiAgICAgICAgJHNpZCA9IE5ldy1PYmplY3QgU3lzdGVtLlNlY3VyaXR5LlBy
aW5jaXBhbC5TZWN1cml0eUlkZW50aWZpZXIoJHNpZFRleHQpDQogICAgICAgICRydWxlID0gTmV3
LU9iamVjdCBTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5GaWxlU3lzdGVtQWNjZXNzUnVs
ZSgNCiAgICAgICAgICAgICRzaWQsDQogICAgICAgICAgICBbU3lzdGVtLlNlY3VyaXR5LkFjY2Vz
c0NvbnRyb2wuRmlsZVN5c3RlbVJpZ2h0c106OkZ1bGxDb250cm9sLA0KICAgICAgICAgICAgJGlu
aGVyaXRhbmNlLA0KICAgICAgICAgICAgJHByb3BhZ2F0aW9uLA0KICAgICAgICAgICAgW1N5c3Rl
bS5TZWN1cml0eS5BY2Nlc3NDb250cm9sLkFjY2Vzc0NvbnRyb2xUeXBlXTo6QWxsb3cNCiAgICAg
ICAgKQ0KICAgICAgICBbdm9pZF0kYWNsLkFkZEFjY2Vzc1J1bGUoJHJ1bGUpDQogICAgfQ0KICAg
IHJldHVybiAkYWNsDQp9DQoNCmZ1bmN0aW9uIEdldC1EYWNsU2RkbCB7DQogICAgcGFyYW0oW1Bh
cmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFNkZGwpDQogICAgJHJhdyA9IE5ldy1PYmplY3Qg
U3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuUmF3U2VjdXJpdHlEZXNjcmlwdG9yKCRTZGRs
KQ0KICAgIHJldHVybiAkcmF3LkdldFNkZGxGb3JtKFtTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29u
dHJvbC5BY2Nlc3NDb250cm9sU2VjdGlvbnNdOjpBY2Nlc3MpDQp9DQoNCmZ1bmN0aW9uIFNldC1E
YWNsRnJvbVNkZGwgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRQ
YXRoLCBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kU2RkbCkNCiAgICAjIFN0YXJ0IHdp
dGggYSBmcmVzaCBkZXNjcmlwdG9yIHdob3NlIG9ubHkgbW9kaWZpZWQgc2VjdGlvbiBpcyBBY2Nl
c3MuDQogICAgIyBSZXVzaW5nIEdldC1BY2wgaGVyZSBjYW4gbWFrZSBTZXQtQWNsIGF0dGVtcHQg
dG8gcGVyc2lzdCBhbiBhdWRpdCBzZWN0aW9uLA0KICAgICMgd2hpY2ggaW5jb3JyZWN0bHkgcmVx
dWlyZXMgU2VTZWN1cml0eVByaXZpbGVnZSBvbiBhbiBvcmRpbmFyeSB1c2VyIHJ1bi4NCiAgICAk
YWNsID0gTmV3LU9iamVjdCBTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5EaXJlY3RvcnlT
ZWN1cml0eQ0KICAgICRhY2wuU2V0U2VjdXJpdHlEZXNjcmlwdG9yU2RkbEZvcm0oJFNkZGwsIFtT
eXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5BY2Nlc3NDb250cm9sU2VjdGlvbnNdOjpBY2Nl
c3MpDQogICAgJGRpcmVjdG9yeSA9IE5ldy1PYmplY3QgU3lzdGVtLklPLkRpcmVjdG9yeUluZm8o
JFBhdGgpDQogICAgJGRpcmVjdG9yeS5TZXRBY2Nlc3NDb250cm9sKCRhY2wpDQp9DQoNCmZ1bmN0
aW9uIEdldC1TZWN1cml0eVBsYW4gew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1b
c3RyaW5nXSRSb290KQ0KICAgICRzbmFwc2hvdCA9IEdldC1TYWZlVHJlZVNuYXBzaG90IC1Sb290
ICRSb290DQogICAgJGF1ZGl0ID0gR2V0LUFjbEF1ZGl0IC1JdGVtcyAkc25hcHNob3QuaXRlbXMg
LVJvb3QgJFJvb3QNCiAgICAkYmxvY2tlZENvdW50ID0gJHNuYXBzaG90Lmlzc3Vlcy5Db3VudCAr
ICRhdWRpdC5wZW5kaW5nLkNvdW50DQogICAgJHN0YXR1cyA9IGlmICgkYmxvY2tlZENvdW50IC1n
dCAwKSB7ICdibG9ja2VkLXBlbmRpbmcnIH0gZWxzZWlmICgkYXVkaXQuYWxyZWFkeVByaXZhdGUp
IHsgJ2FscmVhZHktcHJpdmF0ZScgfSBlbHNlIHsgJ3JlYWR5JyB9DQogICAgcmV0dXJuIFtwc2N1
c3RvbW9iamVjdF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBtb2RlID0g
J1BsYW5Pbmx5Jw0KICAgICAgICBzdGF0dXMgPSAkc3RhdHVzDQogICAgICAgIHNvdWxSb290ID0g
JFJvb3QNCiAgICAgICAgY3VycmVudFVzZXIgPSBbb3JkZXJlZF1AeyBhY2NvdW50ID0gJHNjcmlw
dDpDdXJyZW50SWRlbnRpdHkuTmFtZTsgc2lkID0gJHNjcmlwdDpDdXJyZW50U2lkIH0NCiAgICAg
ICAgYWRtaW5pc3RyYXRvcnNQb2xpY3kgPSAkc2NyaXB0OkFkbWluaXN0cmF0b3JzUG9saWN5DQog
ICAgICAgIGl0ZW1Db3VudCA9ICRzbmFwc2hvdC5pdGVtcy5Db3VudA0KICAgICAgICB1bnNhZmVQ
YXRoQ291bnQgPSAkc25hcHNob3QuaXNzdWVzLkNvdW50DQogICAgICAgIHVuc2FmZVBhdGhzID0g
QCgkc25hcHNob3QuaXNzdWVzKQ0KICAgICAgICBwZW5kaW5nQWNlQ291bnQgPSAkYXVkaXQucGVu
ZGluZy5Db3VudA0KICAgICAgICBwZW5kaW5nQWNlcyA9IEAoJGF1ZGl0LnBlbmRpbmcpDQogICAg
ICAgIHJvb3RBY2wgPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgb3duZXIgPSBbc3RyaW5nXSRh
dWRpdC5yb290QWNsLk93bmVyDQogICAgICAgICAgICBwcm90ZWN0ZWQgPSBbYm9vbF0kYXVkaXQu
cm9vdEFjbC5BcmVBY2Nlc3NSdWxlc1Byb3RlY3RlZA0KICAgICAgICAgICAgc2RkbFNoYTI1NiA9
IEdldC1TaGEyNTZCeXRlcyAtQnl0ZXMgJHNjcmlwdDpVdGY4Tm9Cb20uR2V0Qnl0ZXMoKFtzdHJp
bmddJGF1ZGl0LnJvb3RBY2wuU2RkbCkpDQogICAgICAgIH0NCiAgICAgICAgcmVxdWlyZWRBY3Rp
b24gPSBpZiAoJHN0YXR1cyAtZXEgJ2Jsb2NrZWQtcGVuZGluZycpIHsNCiAgICAgICAgICAgICdS
ZXZpZXcgZXZlcnkgcGVuZGluZyBwYXRoL0FDRS4gTm8gQUNMIHdhcyBvciB3aWxsIGJlIHJlbW92
ZWQgYXV0b21hdGljYWxseS4nDQogICAgICAgIH0gZWxzZWlmICgkc3RhdHVzIC1lcSAnYWxyZWFk
eS1wcml2YXRlJykgew0KICAgICAgICAgICAgJ05vbmUuJw0KICAgICAgICB9IGVsc2Ugew0KICAg
ICAgICAgICAgJ1JlLXJ1biB3aXRoIC1BcHBseVByaXZhdGVBY2wgb25seSBhZnRlciBhbGwgQ2xh
dWRlL0NvZGV4IHByb2Nlc3NlcyBhcmUgY2xvc2VkLicNCiAgICAgICAgfQ0KICAgIH0NCn0NCg0K
ZnVuY3Rpb24gR2V0LUxpdmVBZ2VudFByb2Nlc3NlcyB7DQogICAgJGZvdW5kID0gTmV3LU9iamVj
dCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0NCiAgICB0cnkgew0KICAg
ICAgICBmb3JlYWNoICgkcHJvY2VzcyBpbiBAKEdldC1DaW1JbnN0YW5jZSAtQ2xhc3NOYW1lIFdp
bjMyX1Byb2Nlc3MgLUVycm9yQWN0aW9uIFN0b3ApKSB7DQogICAgICAgICAgICAkbmFtZSA9IFtz
dHJpbmddJHByb2Nlc3MuTmFtZQ0KICAgICAgICAgICAgJGNvbW1hbmRMaW5lID0gW3N0cmluZ10k
cHJvY2Vzcy5Db21tYW5kTGluZQ0KICAgICAgICAgICAgJGhhcm5lc3MgPSAkbnVsbA0KICAgICAg
ICAgICAgaWYgKCRuYW1lIC1tYXRjaCAnXig/aTpjbGF1ZGV8Y2xhdWRlLWNvZGUpKD86XC5leGUp
PyQnKSB7ICRoYXJuZXNzID0gJ2NsYXVkZScgfQ0KICAgICAgICAgICAgZWxzZWlmICgkbmFtZSAt
bWF0Y2ggJ14oP2k6Y29kZXgpKD86LVthLXowLTlfLV0rKT8oPzpcLmV4ZSk/JCcpIHsgJGhhcm5l
c3MgPSAnY29kZXgnIH0NCiAgICAgICAgICAgIGVsc2VpZiAoJG5hbWUgLW1hdGNoICdeKD9pOm5v
ZGUpKD86XC5leGUpPyQnKSB7DQogICAgICAgICAgICAgICAgaWYgKCRjb21tYW5kTGluZSAtbWF0
Y2ggJyg/aTpAYW50aHJvcGljLWFpW1xcL11jbGF1ZGUtY29kZXxbXFwvXWNsYXVkZSg/OlwuanMp
Pyg/OlxzfCJ8JCkpJykgeyAkaGFybmVzcyA9ICdjbGF1ZGUnIH0NCiAgICAgICAgICAgICAgICBl
bHNlaWYgKCRjb21tYW5kTGluZSAtbWF0Y2ggJyg/aTpAb3BlbmFpW1xcL11jb2RleHxbXFwvXWNv
ZGV4W1xcL11iaW5bXFwvXWNvZGV4XC5qcycpIHsgJGhhcm5lc3MgPSAnY29kZXgnIH0NCiAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGhhcm5lc3MpIHsgY29udGludWUg
fQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAkcnVudGltZSA9IEdldC1Qcm9j
ZXNzIC1JZCAoW2ludF0kcHJvY2Vzcy5Qcm9jZXNzSWQpIC1FcnJvckFjdGlvbiBTdG9wDQogICAg
ICAgICAgICAgICAgJGZvdW5kLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgICAg
ICAgICAgaGFybmVzcyA9ICRoYXJuZXNzDQogICAgICAgICAgICAgICAgICAgIHByb2Nlc3NJZCA9
IFtpbnRdJHJ1bnRpbWUuSWQNCiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc05hbWUgPSAkcnVu
dGltZS5Qcm9jZXNzTmFtZQ0KICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWVVdGMgPSAkcnVu
dGltZS5TdGFydFRpbWUuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAg
ICAgICAgIH0pDQogICAgICAgICAgICB9IGNhdGNoIHsgfQ0KICAgICAgICB9DQogICAgfSBjYXRj
aCB7DQogICAgICAgIGZvcmVhY2ggKCRydW50aW1lIGluIEAoR2V0LVByb2Nlc3MgLUVycm9yQWN0
aW9uIFNpbGVudGx5Q29udGludWUpKSB7DQogICAgICAgICAgICAkaGFybmVzcyA9ICRudWxsDQog
ICAgICAgICAgICBpZiAoJHJ1bnRpbWUuUHJvY2Vzc05hbWUgLW1hdGNoICdeKD9pOmNsYXVkZXxj
bGF1ZGUtY29kZSkkJykgeyAkaGFybmVzcyA9ICdjbGF1ZGUnIH0NCiAgICAgICAgICAgIGVsc2Vp
ZiAoJHJ1bnRpbWUuUHJvY2Vzc05hbWUgLW1hdGNoICdeKD9pOmNvZGV4KSg/Oi1bYS16MC05Xy1d
Kyk/JCcpIHsgJGhhcm5lc3MgPSAnY29kZXgnIH0NCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEg
JGhhcm5lc3MpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg
ICAkZm91bmQuQWRkKFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgICAgICAgICBoYXJu
ZXNzID0gJGhhcm5lc3MNCiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0lkID0gW2ludF0kcnVu
dGltZS5JZA0KICAgICAgICAgICAgICAgICAgICBwcm9jZXNzTmFtZSA9ICRydW50aW1lLlByb2Nl
c3NOYW1lDQogICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZVV0YyA9ICRydW50aW1lLlN0YXJ0
VGltZS5Ub1VuaXZlcnNhbFRpbWUoKS5Ub1N0cmluZygnbycpDQogICAgICAgICAgICAgICAgfSkN
CiAgICAgICAgICAgIH0gY2F0Y2ggeyB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIEAo
JGZvdW5kIHwgU29ydC1PYmplY3QgaGFybmVzcywgcHJvY2Vzc0lkIC1VbmlxdWUpDQp9DQoNCmZ1
bmN0aW9uIEFzc2VydC1Ob0xpdmVBZ2VudHMgew0KICAgIGlmICgkRml4dHVyZU1vZGUpIHsgcmV0
dXJuIH0NCiAgICAkbGl2ZSA9IEAoR2V0LUxpdmVBZ2VudFByb2Nlc3NlcykNCiAgICBpZiAoJGxp
dmUuQ291bnQgLWd0IDApIHsNCiAgICAgICAgJGlkZW50aXRpZXMgPSBAKCRsaXZlIHwgRm9yRWFj
aC1PYmplY3QgeyAnezB9OnsxfUB7Mn0nIC1mICRfLmhhcm5lc3MsICRfLnByb2Nlc3NJZCwgJF8u
c3RhcnRUaW1lVXRjIH0pIC1qb2luICcsICcNCiAgICAgICAgdGhyb3cgIkFDTCBhcHBsaWNhdGlv
bi9yZWNvdmVyeSByZXF1aXJlcyB6ZXJvIGxpdmUgQ2xhdWRlL0NvZGV4IHByb2Nlc3NlczogJGlk
ZW50aXRpZXMiDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtTm9PcGVuRmlsZUhhbmRsZXMg
ew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bb2JqZWN0W11dJEl0ZW1zKQ0KICAg
ICRibG9ja2VkID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29i
amVjdF0NCiAgICBmb3JlYWNoICgkaXRlbSBpbiBAKCRJdGVtcyB8IFdoZXJlLU9iamVjdCB7ICRf
LmtpbmQgLWVxICdmaWxlJyB9KSkgew0KICAgICAgICAkc3RyZWFtID0gJG51bGwNCiAgICAgICAg
dHJ5IHsNCiAgICAgICAgICAgICRzdHJlYW0gPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5GaWxlU3Ry
ZWFtKA0KICAgICAgICAgICAgICAgIChbc3RyaW5nXSRpdGVtLnBhdGgpLA0KICAgICAgICAgICAg
ICAgIFtTeXN0ZW0uSU8uRmlsZU1vZGVdOjpPcGVuLA0KICAgICAgICAgICAgICAgIFtTeXN0ZW0u
SU8uRmlsZUFjY2Vzc106OlJlYWQsDQogICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlU2hh
cmVdOjpOb25lDQogICAgICAgICAgICApDQogICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAg
JGJsb2NrZWQuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gW3N0cmluZ10kaXRlbS5wYXRo
OyBlcnJvciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0pDQogICAgICAgIH0gZmluYWxseSB7DQog
ICAgICAgICAgICBpZiAoJG51bGwgLW5lICRzdHJlYW0pIHsgJHN0cmVhbS5EaXNwb3NlKCkgfQ0K
ICAgICAgICB9DQogICAgfQ0KICAgIGlmICgkYmxvY2tlZC5Db3VudCAtZ3QgMCkgew0KICAgICAg
ICAkc2FtcGxlID0gQCgkYmxvY2tlZCB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDEwIHwgRm9yRWFj
aC1PYmplY3QgeyAkXy5wYXRoIH0pIC1qb2luICcsICcNCiAgICAgICAgdGhyb3cgIk9wZW4vc2hh
cmVkIG9yIHVucmVhZGFibGUgZmlsZXMgYmxvY2sgQUNMIGFwcGxpY2F0aW9uICgkKCRibG9ja2Vk
LkNvdW50KSk6ICRzYW1wbGUiDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBFbnRlci1Sb290TXV0ZXgg
ew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSb290KQ0KICAgICRu
YW1lSGFzaCA9IEdldC1TaGEyNTZCeXRlcyAtQnl0ZXMgJHNjcmlwdDpVdGY4Tm9Cb20uR2V0Qnl0
ZXMoJFJvb3QuVG9Mb3dlckludmFyaWFudCgpKQ0KICAgICRtdXRleCA9IE5ldy1PYmplY3QgU3lz
dGVtLlRocmVhZGluZy5NdXRleCgkZmFsc2UsICgnTG9jYWxcU291bFNlY3VyZVJvb3RWNy0nICsg
JG5hbWVIYXNoLlN1YnN0cmluZygwLCAyNCkpKQ0KICAgICRhY3F1aXJlZCA9ICRmYWxzZQ0KICAg
IHRyeSB7DQogICAgICAgIHRyeSB7ICRhY3F1aXJlZCA9ICRtdXRleC5XYWl0T25lKDAsICRmYWxz
ZSkgfQ0KICAgICAgICBjYXRjaCBbU3lzdGVtLlRocmVhZGluZy5BYmFuZG9uZWRNdXRleEV4Y2Vw
dGlvbl0geyAkYWNxdWlyZWQgPSAkdHJ1ZSB9DQogICAgICAgIGlmICgtbm90ICRhY3F1aXJlZCkg
eyB0aHJvdyAnQW5vdGhlciBzZWN1cmUtcm9vdC12NyBvcGVyYXRpb24gaXMgYWN0aXZlIGZvciB0
aGlzIHNvdWwuJyB9DQogICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgbXV0ZXggPSAk
bXV0ZXg7IGFjcXVpcmVkID0gJHRydWUgfQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICAkbXV0ZXgu
RGlzcG9zZSgpDQogICAgICAgIHRocm93DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBFeGl0LVJvb3RN
dXRleCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXSRMb2NrKQ0KICAgIHRyeSB7
IGlmICgkTG9jay5hY3F1aXJlZCkgeyAkTG9jay5tdXRleC5SZWxlYXNlTXV0ZXgoKSB9IH0NCiAg
ICBmaW5hbGx5IHsgJExvY2subXV0ZXguRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gU2V0LVBy
aXZhdGVBY2xPblBhdGggew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5n
XSRQYXRoKQ0KICAgICRkZXNpcmVkID0gTmV3LVByaXZhdGVBY2xPYmplY3QgLVBhdGggJFBhdGgN
CiAgICBbdm9pZF0oU2V0LUFjbCAtTGl0ZXJhbFBhdGggJFBhdGggLUFjbE9iamVjdCAkZGVzaXJl
ZCAtRXJyb3JBY3Rpb24gU3RvcCkNCiAgICAkYWN0dWFsID0gR2V0LUFjbCAtTGl0ZXJhbFBhdGgg
JFBhdGggLUVycm9yQWN0aW9uIFN0b3ANCiAgICBpZiAoLW5vdCAoVGVzdC1Sb290QWNsUHJpdmF0
ZSAtQWNsICRhY3R1YWwpKSB7IHRocm93ICJQcml2YXRlIEFDTCB2ZXJpZmljYXRpb24gZmFpbGVk
OiAkUGF0aCIgfQ0KfQ0KDQpmdW5jdGlvbiBJbml0aWFsaXplLVByaXZhdGVNYW5hZ2VkRGlyZWN0
b3J5IHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmdd
JFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSb290LA0KICAg
ICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kVGl0bGUNCiAgICApDQogICAgJGZ1
bGxQYXRoID0gQ29udmVydFRvLUNhbm9uaWNhbFBhdGggJFBhdGgNCiAgICBpZiAoLW5vdCAoVGVz
dC1QYXRoV2l0aGluIC1QYXRoICRmdWxsUGF0aCAtUGFyZW50ICRSb290KSkgeyB0aHJvdyAiU2V0
dXAgYmFja3VwIGRpcmVjdG9yeSBlc2NhcGVzIHRoZSBzb3VsOiAkZnVsbFBhdGgiIH0NCiAgICBB
c3NlcnQtTm9SZXBhcnNlT25QYXRoIC1QYXRoIChbU3lzdGVtLklPLlBhdGhdOjpHZXREaXJlY3Rv
cnlOYW1lKCRmdWxsUGF0aCkpIC1Cb3VuZGFyeSAkUm9vdA0KICAgIGlmICgtbm90IChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICRmdWxsUGF0aCkpIHsgW3ZvaWRdW1N5c3RlbS5JTy5EaXJlY3Rvcnld
OjpDcmVhdGVEaXJlY3RvcnkoJGZ1bGxQYXRoKSB9DQogICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0
ZXJhbFBhdGggJGZ1bGxQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmICgtbm90
ICRpdGVtLlBTSXNDb250YWluZXIgLW9yICgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0u
SU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAgIHRocm93
ICJVbnNhZmUgc2V0dXAgYmFja3VwIGRpcmVjdG9yeTogJGZ1bGxQYXRoIg0KICAgIH0NCiAgICBT
ZXQtUHJpdmF0ZUFjbE9uUGF0aCAtUGF0aCAkZnVsbFBhdGgNCg0KICAgICRhZ2VudHNQYXRoID0g
Sm9pbi1QYXRoICRmdWxsUGF0aCAnQUdFTlRTLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRhZ2VudHNQYXRoKSkgew0KICAgICAgICAkYm9keSA9ICIjICRUaXRsZWBy
YG5gcmBuVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgc2V0dXAtb3duZWQgQUNMIHJlY292ZXJ5IHJl
Y29yZHMgb25seS5gcmBuYHJgbjwhLS0gRG8gbm90IHJlc3RhdGUgaW5oZXJpdGVkIEFHRU5UUy5t
ZCBydWxlcy4gLS0+YHJgbiINCiAgICAgICAgW3ZvaWRdKFdyaXRlLUF0b21pY05ld1V0ZjggLVBh
dGggJGFnZW50c1BhdGggLVRleHQgJGJvZHkgLUJvdW5kYXJ5ICRSb290KQ0KICAgIH0NCiAgICAk
Y2xhdWRlUGF0aCA9IEpvaW4tUGF0aCAkZnVsbFBhdGggJ0NMQVVERS5tZCcNCiAgICBpZiAoLW5v
dCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY2xhdWRlUGF0aCkpIHsNCiAgICAgICAgW3ZvaWRd
KFdyaXRlLUF0b21pY05ld1V0ZjggLVBhdGggJGNsYXVkZVBhdGggLVRleHQgIkBBR0VOVFMubWRg
cmBuIiAtQm91bmRhcnkgJFJvb3QpDQogICAgfQ0KICAgIHJldHVybiAkZnVsbFBhdGgNCn0NCg0K
ZnVuY3Rpb24gTmV3LUFjbFJlY292ZXJ5Sm91cm5hbCB7DQogICAgcGFyYW0oDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSb290LA0KICAgICAgICBbUGFyYW1ldGVyKE1h
bmRhdG9yeSldW3N0cmluZ10kT3JpZ2luYWxTZGRsLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRh
dG9yeSldW3N0cmluZ10kRGVzaXJlZFNkZGwNCiAgICApDQogICAgJHNldHVwUGF0aCA9IEpvaW4t
UGF0aCAkUm9vdCAnX2FnZW50XHNldHVwJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRzZXR1cFBhdGggLVBhdGhUeXBlIENvbnRhaW5lcikpIHsgdGhyb3cgJ0luaXRpYWxp
emVkIHNvdWwgaXMgbWlzc2luZyBfYWdlbnRcc2V0dXAuJyB9DQogICAgJGJhY2t1cHNQYXRoID0g
SW5pdGlhbGl6ZS1Qcml2YXRlTWFuYWdlZERpcmVjdG9yeSAtUGF0aCAoSm9pbi1QYXRoICRzZXR1
cFBhdGggJ2JhY2t1cHMnKSAtUm9vdCAkUm9vdCAtVGl0bGUgJ1NldHVwIGJhY2t1cHMnDQogICAg
JGFjbFBhdGggPSBJbml0aWFsaXplLVByaXZhdGVNYW5hZ2VkRGlyZWN0b3J5IC1QYXRoIChKb2lu
LVBhdGggJGJhY2t1cHNQYXRoICdhY2wnKSAtUm9vdCAkUm9vdCAtVGl0bGUgJ0FDTCByZWNvdmVy
eSBiYWNrdXBzJw0KDQogICAgJGlkID0gJ3swfS17MX0nIC1mIChbRGF0ZVRpbWVdOjpVdGNOb3cu
VG9TdHJpbmcoJ3l5eXlNTWRkVEhIbW1zc2ZmZmZmZmZaJykpLCAoW2d1aWRdOjpOZXdHdWlkKCku
VG9TdHJpbmcoJ04nKSkNCiAgICAkYmFzZU5hbWUgPSAncm9vdC1hY2wtJyArICRpZA0KICAgICRz
ZGRsUGF0aCA9IEpvaW4tUGF0aCAkYWNsUGF0aCAoJGJhc2VOYW1lICsgJy5zZGRsJykNCiAgICAk
c2RkbFdyaXRlID0gV3JpdGUtQXRvbWljTmV3VXRmOCAtUGF0aCAkc2RkbFBhdGggLVRleHQgKCRP
cmlnaW5hbFNkZGwgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lKSAtQm91bmRhcnkgJFJvb3QNCiAg
ICBpZiAoLW5vdCAoR2V0LVNoYTI1NkZpbGUgLVBhdGggJHNkZGxQYXRoKS5FcXVhbHMoW3N0cmlu
Z10kc2RkbFdyaXRlLnNoYTI1NiwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsKSkgew0KICAg
ICAgICB0aHJvdyAnVGhlIG9yaWdpbmFsIFNEREwgYmFja3VwIGZhaWxlZCBpdHMgcG9zdC13cml0
ZSBTSEEtMjU2IHZlcmlmaWNhdGlvbi4nDQogICAgfQ0KDQogICAgJGpvdXJuYWwgPSBbb3JkZXJl
ZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBqb3VybmFsSWQgPSAkaWQN
CiAgICAgICAgc3RhdGUgPSAncHJlcGFyZWQtYmVmb3JlLXJvb3QtYWNsLWNoYW5nZScNCiAgICAg
ICAgc291bFJvb3QgPSAkUm9vdA0KICAgICAgICBwcmVwYXJlZEF0VXRjID0gW0RhdGVUaW1lXTo6
VXRjTm93LlRvU3RyaW5nKCdvJykNCiAgICAgICAgcHJlcGFyZWRCeSA9IFtvcmRlcmVkXUB7DQog
ICAgICAgICAgICBhY2NvdW50ID0gJHNjcmlwdDpDdXJyZW50SWRlbnRpdHkuTmFtZQ0KICAgICAg
ICAgICAgc2lkID0gJHNjcmlwdDpDdXJyZW50U2lkDQogICAgICAgICAgICBwcm9jZXNzSWQgPSAk
UElEDQogICAgICAgICAgICBtYWNoaW5lID0gW0Vudmlyb25tZW50XTo6TWFjaGluZU5hbWUNCiAg
ICAgICAgfQ0KICAgICAgICBhZG1pbmlzdHJhdG9yc1BvbGljeSA9ICRzY3JpcHQ6QWRtaW5pc3Ry
YXRvcnNQb2xpY3kNCiAgICAgICAgb3JpZ2luYWwgPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAg
c2RkbEZpbGVOYW1lID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RmlsZU5hbWUoJHNkZGxQYXRoKQ0K
ICAgICAgICAgICAgc2RkbFNoYTI1NiA9IFtzdHJpbmddJHNkZGxXcml0ZS5zaGEyNTYNCiAgICAg
ICAgICAgIGRhY2xTZGRsID0gR2V0LURhY2xTZGRsIC1TZGRsICRPcmlnaW5hbFNkZGwNCiAgICAg
ICAgfQ0KICAgICAgICBpbnRlbmRlZCA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBkYWNsU2Rk
bCA9IEdldC1EYWNsU2RkbCAtU2RkbCAkRGVzaXJlZFNkZGwNCiAgICAgICAgICAgIGN1cnJlbnRV
c2VyU2lkID0gJHNjcmlwdDpDdXJyZW50U2lkDQogICAgICAgICAgICBzeXN0ZW1TaWQgPSAkc2Ny
aXB0OlN5c3RlbVNpZA0KICAgICAgICAgICAgYWRtaW5pc3RyYXRvcnNTaWQgPSAkc2NyaXB0OkFk
bWluaXN0cmF0b3JzU2lkDQogICAgICAgIH0NCiAgICAgICAgcmVjb3ZlcnkgPSBbb3JkZXJlZF1A
ew0KICAgICAgICAgICAgY29tbWFuZCA9ICdwb3dlcnNoZWxsLmV4ZSAtTm9Qcm9maWxlIC1GaWxl
IDxzb3VsPlxfYWdlbnRcc2V0dXBcc2VjdXJlLXJvb3QtdjcucHMxIC1Tb3VsUm9vdCA8c291bD4g
LVJlc3RvcmVGcm9tSm91cm5hbCA8am91cm5hbC1wYXRoPicNCiAgICAgICAgICAgIHJ1bGUgPSAn
U3RvcCBhbGwgQ2xhdWRlL0NvZGV4IHByb2Nlc3NlcyBiZWZvcmUgcmVjb3ZlcnkuIFRoZSBqb3Vy
bmFsIGFuZCBTRERMIFNIQS0yNTYgbXVzdCB2ZXJpZnkuJw0KICAgICAgICB9DQogICAgfQ0KICAg
ICRqb3VybmFsUGF0aCA9IEpvaW4tUGF0aCAkYWNsUGF0aCAoJGJhc2VOYW1lICsgJy5qb3VybmFs
Lmpzb24nKQ0KICAgICRqb3VybmFsVGV4dCA9ICgkam91cm5hbCB8IENvbnZlcnRUby1Kc29uIC1E
ZXB0aCAzMikgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lDQogICAgJGpvdXJuYWxXcml0ZSA9IFdy
aXRlLUF0b21pY05ld1V0ZjggLVBhdGggJGpvdXJuYWxQYXRoIC1UZXh0ICRqb3VybmFsVGV4dCAt
Qm91bmRhcnkgJFJvb3QNCiAgICAkaGFzaFBhdGggPSAkam91cm5hbFBhdGggKyAnLnNoYTI1NicN
CiAgICBbdm9pZF0oV3JpdGUtQXRvbWljTmV3VXRmOCAtUGF0aCAkaGFzaFBhdGggLVRleHQgKFtz
dHJpbmddJGpvdXJuYWxXcml0ZS5zaGEyNTYgKyBbRW52aXJvbm1lbnRdOjpOZXdMaW5lKSAtQm91
bmRhcnkgJFJvb3QpDQogICAgaWYgKC1ub3QgKEdldC1TaGEyNTZGaWxlIC1QYXRoICRqb3VybmFs
UGF0aCkuRXF1YWxzKChbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkaGFzaFBhdGgsICRz
Y3JpcHQ6VXRmOE5vQm9tKS5UcmltKCkpLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7
DQogICAgICAgIHRocm93ICdUaGUgQUNMIHJlY292ZXJ5IGpvdXJuYWwgZmFpbGVkIFNIQS0yNTYg
dmVyaWZpY2F0aW9uLicNCiAgICB9DQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICBpZCA9ICRpZA0KICAgICAgICBkaXJlY3RvcnkgPSAkYWNsUGF0aA0KICAgICAgICBzZGRs
UGF0aCA9ICRzZGRsUGF0aA0KICAgICAgICBzZGRsU2hhMjU2ID0gW3N0cmluZ10kc2RkbFdyaXRl
LnNoYTI1Ng0KICAgICAgICBqb3VybmFsUGF0aCA9ICRqb3VybmFsUGF0aA0KICAgICAgICBqb3Vy
bmFsU2hhMjU2ID0gW3N0cmluZ10kam91cm5hbFdyaXRlLnNoYTI1Ng0KICAgIH0NCn0NCg0KZnVu
Y3Rpb24gV3JpdGUtQWNsUmVjZWlwdCB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIo
TWFuZGF0b3J5KV1bc3RyaW5nXSRSb290LA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSld
W3N0cmluZ10kRGlyZWN0b3J5LA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmlu
Z10kSm91cm5hbElkLA0KICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kRXZl
bnQsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV0kRGF0YQ0KICAgICkNCiAgICAkcmVj
b3JkID0gW29yZGVyZWRdQHsNCiAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgam91
cm5hbElkID0gJEpvdXJuYWxJZA0KICAgICAgICBldmVudCA9ICRFdmVudA0KICAgICAgICB0aW1l
c3RhbXBVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgICAgICBwcm9j
ZXNzSWQgPSAkUElEDQogICAgICAgIGRhdGEgPSAkRGF0YQ0KICAgIH0NCiAgICAkcGF0aCA9IEpv
aW4tUGF0aCAkRGlyZWN0b3J5ICgncm9vdC1hY2wtJyArICRKb3VybmFsSWQgKyAnLicgKyAkRXZl
bnQgKyAnLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnTicpICsgJy5qc29uJykNCiAg
ICBbdm9pZF0oV3JpdGUtQXRvbWljTmV3VXRmOCAtUGF0aCAkcGF0aCAtVGV4dCAoKCRyZWNvcmQg
fCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMzIpICsgW0Vudmlyb25tZW50XTo6TmV3TGluZSkgLUJv
dW5kYXJ5ICRSb290KQ0KICAgIHJldHVybiAkcGF0aA0KfQ0KDQpmdW5jdGlvbiBSZWFkLVZlcmlm
aWVkUmVjb3ZlcnlKb3VybmFsIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5k
YXRvcnkpXVtzdHJpbmddJFJvb3QsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3Ry
aW5nXSRQYXRoDQogICAgKQ0KICAgICRqb3VybmFsUGF0aCA9IENvbnZlcnRUby1DYW5vbmljYWxQ
YXRoICRQYXRoDQogICAgJGFjbEJhY2t1cFJvb3QgPSBDb252ZXJ0VG8tQ2Fub25pY2FsUGF0aCAo
Sm9pbi1QYXRoICRSb290ICdfYWdlbnRcc2V0dXBcYmFja3Vwc1xhY2wnKQ0KICAgIGlmICgtbm90
IChUZXN0LVBhdGhXaXRoaW4gLVBhdGggJGpvdXJuYWxQYXRoIC1QYXJlbnQgJGFjbEJhY2t1cFJv
b3QpKSB7DQogICAgICAgIHRocm93ICdSZWNvdmVyeSBqb3VybmFsIG11c3QgYmUgYSBkaXJlY3Qg
ZmlsZSBiZWxvdyBfYWdlbnRcc2V0dXBcYmFja3Vwc1xhY2wuJw0KICAgIH0NCiAgICBpZiAoLW5v
dCAoW1N5c3RlbS5JTy5QYXRoXTo6R2V0RGlyZWN0b3J5TmFtZSgkam91cm5hbFBhdGgpKS5FcXVh
bHMoJGFjbEJhY2t1cFJvb3QsICRzY3JpcHQ6UGF0aENvbXBhcmlzb24pKSB7DQogICAgICAgIHRo
cm93ICdSZWNvdmVyeSBqb3VybmFsIG11c3QgYmUgYSBkaXJlY3QgZmlsZSBiZWxvdyBfYWdlbnRc
c2V0dXBcYmFja3Vwc1xhY2wuJw0KICAgIH0NCiAgICBBc3NlcnQtTm9SZXBhcnNlT25QYXRoIC1Q
YXRoICRqb3VybmFsUGF0aCAtQm91bmRhcnkgJFJvb3QNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkam91cm5hbFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICdSZWNv
dmVyeSBqb3VybmFsIG5vdCBmb3VuZC4nIH0NCiAgICBpZiAoQChHZXQtUGF0aEFsdGVybmF0ZVN0
cmVhbXMgLVBhdGggJGpvdXJuYWxQYXRoKS5Db3VudCAtZ3QgMCkgeyB0aHJvdyAnUmVjb3Zlcnkg
am91cm5hbCBoYXMgYW4gYWx0ZXJuYXRlIGRhdGEgc3RyZWFtLicgfQ0KICAgICRoYXNoUGF0aCA9
ICRqb3VybmFsUGF0aCArICcuc2hhMjU2Jw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRoYXNoUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ1JlY292ZXJ5IGpvdXJu
YWwgaGFzaCBzaWRlY2FyIGlzIG1pc3NpbmcuJyB9DQogICAgJGV4cGVjdGVkSm91cm5hbEhhc2gg
PSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkaGFzaFBhdGgsICRzY3JpcHQ6VXRmOE5v
Qm9tKS5UcmltKCkNCiAgICBpZiAoJGV4cGVjdGVkSm91cm5hbEhhc2ggLW5vdG1hdGNoICdeWzAt
OWEtZl17NjR9JCcgLW9yDQogICAgICAgIC1ub3QgKEdldC1TaGEyNTZGaWxlIC1QYXRoICRqb3Vy
bmFsUGF0aCkuRXF1YWxzKCRleHBlY3RlZEpvdXJuYWxIYXNoLCBbU3RyaW5nQ29tcGFyaXNvbl06
Ok9yZGluYWwpKSB7DQogICAgICAgIHRocm93ICdSZWNvdmVyeSBqb3VybmFsIFNIQS0yNTYgdmVy
aWZpY2F0aW9uIGZhaWxlZC4nDQogICAgfQ0KICAgICRqb3VybmFsID0gW1N5c3RlbS5JTy5GaWxl
XTo6UmVhZEFsbFRleHQoJGpvdXJuYWxQYXRoLCAkc2NyaXB0OlV0ZjhOb0JvbSkgfCBDb252ZXJ0
RnJvbS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYgKFtpbnRdJGpvdXJuYWwuc2NoZW1h
VmVyc2lvbiAtbmUgMSAtb3IgW3N0cmluZ10kam91cm5hbC5zdGF0ZSAtY25lICdwcmVwYXJlZC1i
ZWZvcmUtcm9vdC1hY2wtY2hhbmdlJykgew0KICAgICAgICB0aHJvdyAnVW5zdXBwb3J0ZWQgQUNM
IHJlY292ZXJ5IGpvdXJuYWwuJw0KICAgIH0NCiAgICBpZiAoLW5vdCAoW3N0cmluZ10kam91cm5h
bC5zb3VsUm9vdCkuRXF1YWxzKCRSb290LCAkc2NyaXB0OlBhdGhDb21wYXJpc29uKSkgeyB0aHJv
dyAnUmVjb3Zlcnkgam91cm5hbCBuYW1lcyBhbm90aGVyIHNvdWwgcm9vdC4nIH0NCiAgICAkc2Rk
bEZpbGVOYW1lID0gW3N0cmluZ10kam91cm5hbC5vcmlnaW5hbC5zZGRsRmlsZU5hbWUNCiAgICBp
ZiAoJHNkZGxGaWxlTmFtZSAtbm90bWF0Y2ggJ15yb290LWFjbC1bQS1aYS16MC05Li1dK1wuc2Rk
bCQnIC1vciBbU3lzdGVtLklPLlBhdGhdOjpHZXRGaWxlTmFtZSgkc2RkbEZpbGVOYW1lKSAtY25l
ICRzZGRsRmlsZU5hbWUpIHsNCiAgICAgICAgdGhyb3cgJ1JlY292ZXJ5IGpvdXJuYWwgY29udGFp
bnMgYW4gdW5zYWZlIFNEREwgZmlsZSBuYW1lLicNCiAgICB9DQogICAgJHNkZGxQYXRoID0gSm9p
bi1QYXRoICRhY2xCYWNrdXBSb290ICRzZGRsRmlsZU5hbWUNCiAgICBBc3NlcnQtTm9SZXBhcnNl
T25QYXRoIC1QYXRoICRzZGRsUGF0aCAtQm91bmRhcnkgJFJvb3QNCiAgICBpZiAoLW5vdCAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkc2RkbFBhdGggLVBhdGhUeXBlIExlYWYpKSB7IHRocm93ICdS
ZWNvdmVyeSBTRERMIGZpbGUgaXMgbWlzc2luZy4nIH0NCiAgICBpZiAoQChHZXQtUGF0aEFsdGVy
bmF0ZVN0cmVhbXMgLVBhdGggJHNkZGxQYXRoKS5Db3VudCAtZ3QgMCkgeyB0aHJvdyAnUmVjb3Zl
cnkgU0RETCBmaWxlIGhhcyBhbiBhbHRlcm5hdGUgZGF0YSBzdHJlYW0uJyB9DQogICAgJGV4cGVj
dGVkU2RkbEhhc2ggPSBbc3RyaW5nXSRqb3VybmFsLm9yaWdpbmFsLnNkZGxTaGEyNTYNCiAgICBp
ZiAoJGV4cGVjdGVkU2RkbEhhc2ggLW5vdG1hdGNoICdeWzAtOWEtZl17NjR9JCcgLW9yDQogICAg
ICAgIC1ub3QgKEdldC1TaGEyNTZGaWxlIC1QYXRoICRzZGRsUGF0aCkuRXF1YWxzKCRleHBlY3Rl
ZFNkZGxIYXNoLCBbU3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWwpKSB7DQogICAgICAgIHRocm93
ICdSZWNvdmVyeSBTRERMIFNIQS0yNTYgdmVyaWZpY2F0aW9uIGZhaWxlZC4nDQogICAgfQ0KICAg
ICRzZGRsID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJHNkZGxQYXRoLCAkc2NyaXB0
OlV0ZjhOb0JvbSkuVHJpbSgpDQogICAgaWYgKChHZXQtRGFjbFNkZGwgLVNkZGwgJHNkZGwpIC1j
bmUgW3N0cmluZ10kam91cm5hbC5vcmlnaW5hbC5kYWNsU2RkbCkgew0KICAgICAgICB0aHJvdyAn
UmVjb3ZlcnkgU0RETCBjb250ZW50IGRvZXMgbm90IG1hdGNoIHRoZSBqb3VybmFsIERBQ0wuJw0K
ICAgIH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIGpvdXJuYWwgPSAk
am91cm5hbA0KICAgICAgICBqb3VybmFsUGF0aCA9ICRqb3VybmFsUGF0aA0KICAgICAgICBkaXJl
Y3RvcnkgPSAkYWNsQmFja3VwUm9vdA0KICAgICAgICBzZGRsUGF0aCA9ICRzZGRsUGF0aA0KICAg
ICAgICBzZGRsID0gJHNkZGwNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEludm9rZS1SZXN0b3JlRnJv
bUpvdXJuYWwgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRSb290
LCBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kSm91cm5hbFBhdGgpDQogICAgQXNzZXJ0
LU5vTGl2ZUFnZW50cw0KICAgICRsb2NrID0gRW50ZXItUm9vdE11dGV4IC1Sb290ICRSb290DQog
ICAgdHJ5IHsNCiAgICAgICAgQXNzZXJ0LU5vTGl2ZUFnZW50cw0KICAgICAgICAkdmVyaWZpZWQg
PSBSZWFkLVZlcmlmaWVkUmVjb3ZlcnlKb3VybmFsIC1Sb290ICRSb290IC1QYXRoICRKb3VybmFs
UGF0aA0KICAgICAgICAkc25hcHNob3QgPSBHZXQtU2FmZVRyZWVTbmFwc2hvdCAtUm9vdCAkUm9v
dA0KICAgICAgICBpZiAoJHNuYXBzaG90Lmlzc3Vlcy5Db3VudCAtZ3QgMCkgeyB0aHJvdyAnUmVw
YXJzZSBwb2ludHMsIEFEUywgb3IgdW5yZWFkYWJsZSBwYXRocyBibG9jayBBQ0wgcmVjb3Zlcnku
JyB9DQogICAgICAgIEFzc2VydC1Ob09wZW5GaWxlSGFuZGxlcyAtSXRlbXMgJHNuYXBzaG90Lml0
ZW1zDQogICAgICAgIFNldC1EYWNsRnJvbVNkZGwgLVBhdGggJFJvb3QgLVNkZGwgJHZlcmlmaWVk
LnNkZGwNCiAgICAgICAgJGFjdHVhbCA9IEdldC1EYWNsU2RkbCAtU2RkbCAoW3N0cmluZ10oR2V0
LUFjbCAtTGl0ZXJhbFBhdGggJFJvb3QgLUVycm9yQWN0aW9uIFN0b3ApLlNkZGwpDQogICAgICAg
ICRleHBlY3RlZCA9IEdldC1EYWNsU2RkbCAtU2RkbCAkdmVyaWZpZWQuc2RkbA0KICAgICAgICBp
ZiAoLW5vdCAkYWN0dWFsLkVxdWFscygkZXhwZWN0ZWQsIFtTdHJpbmdDb21wYXJpc29uXTo6T3Jk
aW5hbCkpIHsgdGhyb3cgJ1JlY292ZXJlZCByb290IERBQ0wgZG9lcyBub3QgbWF0Y2ggdGhlIGpv
dXJuYWwuJyB9DQogICAgICAgICRyZWNlaXB0ID0gV3JpdGUtQWNsUmVjZWlwdCAtUm9vdCAkUm9v
dCAtRGlyZWN0b3J5ICR2ZXJpZmllZC5kaXJlY3RvcnkgLUpvdXJuYWxJZCAoW3N0cmluZ10kdmVy
aWZpZWQuam91cm5hbC5qb3VybmFsSWQpIC1FdmVudCAncmVzdG9yZWQnIC1EYXRhIChbb3JkZXJl
ZF1Aew0KICAgICAgICAgICAgcmVzdG9yZWREYWNsU2RkbCA9ICRhY3R1YWwNCiAgICAgICAgICAg
IHNvdXJjZUpvdXJuYWwgPSAkdmVyaWZpZWQuam91cm5hbFBhdGgNCiAgICAgICAgICAgIHNvdXJj
ZVNkZGxTaGEyNTYgPSBbc3RyaW5nXSR2ZXJpZmllZC5qb3VybmFsLm9yaWdpbmFsLnNkZGxTaGEy
NTYNCiAgICAgICAgfSkNCiAgICAgICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAg
ICAgICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgICAgIG1vZGUgPSAnUmVzdG9yZUZyb21K
b3VybmFsJw0KICAgICAgICAgICAgc3RhdHVzID0gJ3Jlc3RvcmVkJw0KICAgICAgICAgICAgc291
bFJvb3QgPSAkUm9vdA0KICAgICAgICAgICAgam91cm5hbFBhdGggPSAkdmVyaWZpZWQuam91cm5h
bFBhdGgNCiAgICAgICAgICAgIHJlY2VpcHRQYXRoID0gJHJlY2VpcHQNCiAgICAgICAgfQ0KICAg
IH0gZmluYWxseSB7DQogICAgICAgIEV4aXQtUm9vdE11dGV4IC1Mb2NrICRsb2NrDQogICAgfQ0K
fQ0KDQpmdW5jdGlvbiBJbnZva2UtQXBwbHlQcml2YXRlQWNsIHsNCiAgICBwYXJhbShbUGFyYW1l
dGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUm9vdCkNCg0KICAgIEFzc2VydC1Ob0xpdmVBZ2VudHMN
CiAgICAkbG9jayA9IEVudGVyLVJvb3RNdXRleCAtUm9vdCAkUm9vdA0KICAgICRvcmlnaW5hbFNk
ZGwgPSAkbnVsbA0KICAgICRqb3VybmFsSW5mbyA9ICRudWxsDQogICAgJGNoYW5nZUF0dGVtcHRl
ZCA9ICRmYWxzZQ0KICAgIHRyeSB7DQogICAgICAgIEFzc2VydC1Ob0xpdmVBZ2VudHMNCiAgICAg
ICAgJHBsYW4gPSBHZXQtU2VjdXJpdHlQbGFuIC1Sb290ICRSb290DQogICAgICAgIGlmICgkcGxh
bi5zdGF0dXMgLWVxICdibG9ja2VkLXBlbmRpbmcnKSB7DQogICAgICAgICAgICBXcml0ZS1PdXRw
dXQgJHBsYW4NCiAgICAgICAgICAgIHRocm93ICdQcml2YXRlIEFDTCBhcHBsaWNhdGlvbiBpcyBi
bG9ja2VkOyBleHBsaWNpdC9jdXN0b20gb3Igb3RoZXJ3aXNlIHVuc2FmZSBBQ0wgc3RhdGUgaXMg
cGVuZGluZyBodW1hbiByZXZpZXcuJw0KICAgICAgICB9DQogICAgICAgIGlmICgkcGxhbi5zdGF0
dXMgLWVxICdhbHJlYWR5LXByaXZhdGUnKSB7DQogICAgICAgICAgICAkcGxhbi5tb2RlID0gJ0Fw
cGx5UHJpdmF0ZUFjbCcNCiAgICAgICAgICAgIHJldHVybiAkcGxhbg0KICAgICAgICB9DQogICAg
ICAgICRiZWZvcmVTbmFwc2hvdCA9IEdldC1TYWZlVHJlZVNuYXBzaG90IC1Sb290ICRSb290DQog
ICAgICAgIGlmICgkYmVmb3JlU25hcHNob3QuaXNzdWVzLkNvdW50IC1ndCAwKSB7IHRocm93ICdV
bnNhZmUgdHJlZSBzdGF0ZSBhcHBlYXJlZCBhZnRlciBwbGFubmluZy4nIH0NCiAgICAgICAgQXNz
ZXJ0LU5vT3BlbkZpbGVIYW5kbGVzIC1JdGVtcyAkYmVmb3JlU25hcHNob3QuaXRlbXMNCg0KICAg
ICAgICAkb3JpZ2luYWxBY2wgPSBHZXQtQWNsIC1MaXRlcmFsUGF0aCAkUm9vdCAtRXJyb3JBY3Rp
b24gU3RvcA0KICAgICAgICAkb3JpZ2luYWxTZGRsID0gW3N0cmluZ10kb3JpZ2luYWxBY2wuU2Rk
bA0KICAgICAgICAkZGVzaXJlZEFjbCA9IE5ldy1Qcml2YXRlQWNsT2JqZWN0IC1QYXRoICRSb290
DQogICAgICAgICRkZXNpcmVkU2RkbCA9IFtzdHJpbmddJGRlc2lyZWRBY2wuU2RkbA0KICAgICAg
ICAkam91cm5hbEluZm8gPSBOZXctQWNsUmVjb3ZlcnlKb3VybmFsIC1Sb290ICRSb290IC1Pcmln
aW5hbFNkZGwgJG9yaWdpbmFsU2RkbCAtRGVzaXJlZFNkZGwgJGRlc2lyZWRTZGRsDQoNCiAgICAg
ICAgaWYgKC1ub3QgKEdldC1TaGEyNTZGaWxlIC1QYXRoICRqb3VybmFsSW5mby5zZGRsUGF0aCku
RXF1YWxzKFtzdHJpbmddJGpvdXJuYWxJbmZvLnNkZGxTaGEyNTYsIFtTdHJpbmdDb21wYXJpc29u
XTo6T3JkaW5hbCkpIHsNCiAgICAgICAgICAgIHRocm93ICdPcmlnaW5hbCBBQ0wgYmFja3VwIGNo
YW5nZWQgYmVmb3JlIGFwcGxpY2F0aW9uLicNCiAgICAgICAgfQ0KICAgICAgICBpZiAoLW5vdCAo
R2V0LVNoYTI1NkZpbGUgLVBhdGggJGpvdXJuYWxJbmZvLmpvdXJuYWxQYXRoKS5FcXVhbHMoW3N0
cmluZ10kam91cm5hbEluZm8uam91cm5hbFNoYTI1NiwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRp
bmFsKSkgew0KICAgICAgICAgICAgdGhyb3cgJ0FDTCByZWNvdmVyeSBqb3VybmFsIGNoYW5nZWQg
YmVmb3JlIGFwcGxpY2F0aW9uLicNCiAgICAgICAgfQ0KDQogICAgICAgIEFzc2VydC1Ob0xpdmVB
Z2VudHMNCiAgICAgICAgJGZpbmFsUGxhbiA9IEdldC1TZWN1cml0eVBsYW4gLVJvb3QgJFJvb3QN
CiAgICAgICAgaWYgKCRmaW5hbFBsYW4uc3RhdHVzIC1lcSAnYmxvY2tlZC1wZW5kaW5nJykgeyB0
aHJvdyAnQUNML3RyZWUgc3RhdGUgY2hhbmdlZCBhZnRlciB0aGUgcmVjb3Zlcnkgam91cm5hbCB3
YXMgcHJlcGFyZWQuJyB9DQogICAgICAgICRmaW5hbFNuYXBzaG90ID0gR2V0LVNhZmVUcmVlU25h
cHNob3QgLVJvb3QgJFJvb3QNCiAgICAgICAgaWYgKCRmaW5hbFNuYXBzaG90Lmlzc3Vlcy5Db3Vu
dCAtZ3QgMCkgeyB0aHJvdyAnVW5zYWZlIHRyZWUgc3RhdGUgYXBwZWFyZWQgYmVmb3JlIEFDTCBh
cHBsaWNhdGlvbi4nIH0NCiAgICAgICAgQXNzZXJ0LU5vT3BlbkZpbGVIYW5kbGVzIC1JdGVtcyAk
ZmluYWxTbmFwc2hvdC5pdGVtcw0KDQogICAgICAgICRjaGFuZ2VBdHRlbXB0ZWQgPSAkdHJ1ZQ0K
ICAgICAgICBbdm9pZF0oU2V0LUFjbCAtTGl0ZXJhbFBhdGggJFJvb3QgLUFjbE9iamVjdCAkZGVz
aXJlZEFjbCAtRXJyb3JBY3Rpb24gU3RvcCkNCiAgICAgICAgJGFmdGVyUGxhbiA9IEdldC1TZWN1
cml0eVBsYW4gLVJvb3QgJFJvb3QNCiAgICAgICAgaWYgKCRhZnRlclBsYW4uc3RhdHVzIC1lcSAn
YmxvY2tlZC1wZW5kaW5nJyAtb3IgLW5vdCAoVGVzdC1Sb290QWNsUHJpdmF0ZSAtQWNsIChHZXQt
QWNsIC1MaXRlcmFsUGF0aCAkUm9vdCAtRXJyb3JBY3Rpb24gU3RvcCkpKSB7DQogICAgICAgICAg
ICB0aHJvdyAnUHJpdmF0ZSBBQ0wgdmVyaWZpY2F0aW9uIGZhaWxlZCBhZnRlciBhcHBsaWNhdGlv
bi4nDQogICAgICAgIH0NCiAgICAgICAgJGFjdHVhbERhY2wgPSBHZXQtRGFjbFNkZGwgLVNkZGwg
KFtzdHJpbmddKEdldC1BY2wgLUxpdGVyYWxQYXRoICRSb290IC1FcnJvckFjdGlvbiBTdG9wKS5T
ZGRsKQ0KICAgICAgICAkZGVzaXJlZERhY2wgPSBHZXQtRGFjbFNkZGwgLVNkZGwgJGRlc2lyZWRT
ZGRsDQogICAgICAgIGlmICgtbm90ICRhY3R1YWxEYWNsLkVxdWFscygkZGVzaXJlZERhY2wsIFtT
dHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbCkpIHsgdGhyb3cgJ0FwcGxpZWQgcm9vdCBEQUNMIGRp
ZmZlcnMgZnJvbSB0aGUgaW50ZW5kZWQgREFDTC4nIH0NCg0KICAgICAgICAkcmVjZWlwdCA9IFdy
aXRlLUFjbFJlY2VpcHQgLVJvb3QgJFJvb3QgLURpcmVjdG9yeSAkam91cm5hbEluZm8uZGlyZWN0
b3J5IC1Kb3VybmFsSWQgJGpvdXJuYWxJbmZvLmlkIC1FdmVudCAnYXBwbGllZCcgLURhdGEgKFtv
cmRlcmVkXUB7DQogICAgICAgICAgICByb290RGFjbFNkZGwgPSAkYWN0dWFsRGFjbA0KICAgICAg
ICAgICAgc2RkbEJhY2t1cFBhdGggPSAkam91cm5hbEluZm8uc2RkbFBhdGgNCiAgICAgICAgICAg
IHNkZGxCYWNrdXBTaGEyNTYgPSAkam91cm5hbEluZm8uc2RkbFNoYTI1Ng0KICAgICAgICAgICAg
am91cm5hbFBhdGggPSAkam91cm5hbEluZm8uam91cm5hbFBhdGgNCiAgICAgICAgICAgIGpvdXJu
YWxTaGEyNTYgPSAkam91cm5hbEluZm8uam91cm5hbFNoYTI1Ng0KICAgICAgICAgICAgdmVyaWZp
ZWRJdGVtQ291bnQgPSAkYWZ0ZXJQbGFuLml0ZW1Db3VudA0KICAgICAgICAgICAgYWRtaW5pc3Ry
YXRvcnNQb2xpY3kgPSAkc2NyaXB0OkFkbWluaXN0cmF0b3JzUG9saWN5DQogICAgICAgIH0pDQog
ICAgICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIHNjaGVtYVZlcnNp
b24gPSAxDQogICAgICAgICAgICBtb2RlID0gJ0FwcGx5UHJpdmF0ZUFjbCcNCiAgICAgICAgICAg
IHN0YXR1cyA9ICdhcHBsaWVkJw0KICAgICAgICAgICAgc291bFJvb3QgPSAkUm9vdA0KICAgICAg
ICAgICAgYmFja3VwU2RkbFBhdGggPSAkam91cm5hbEluZm8uc2RkbFBhdGgNCiAgICAgICAgICAg
IGJhY2t1cFNkZGxTaGEyNTYgPSAkam91cm5hbEluZm8uc2RkbFNoYTI1Ng0KICAgICAgICAgICAg
cmVjb3ZlcnlKb3VybmFsUGF0aCA9ICRqb3VybmFsSW5mby5qb3VybmFsUGF0aA0KICAgICAgICAg
ICAgcmVjb3ZlcnlKb3VybmFsU2hhMjU2ID0gJGpvdXJuYWxJbmZvLmpvdXJuYWxTaGEyNTYNCiAg
ICAgICAgICAgIHJlY2VpcHRQYXRoID0gJHJlY2VpcHQNCiAgICAgICAgICAgIGFkbWluaXN0cmF0
b3JzUG9saWN5ID0gJHNjcmlwdDpBZG1pbmlzdHJhdG9yc1BvbGljeQ0KICAgICAgICB9DQogICAg
fSBjYXRjaCB7DQogICAgICAgICRmYWlsdXJlID0gJF8NCiAgICAgICAgaWYgKCRjaGFuZ2VBdHRl
bXB0ZWQgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJG9yaWdpbmFsU2Rk
bCkpIHsNCiAgICAgICAgICAgICRyb2xsYmFja0Vycm9yID0gJG51bGwNCiAgICAgICAgICAgIHRy
eSB7DQogICAgICAgICAgICAgICAgU2V0LURhY2xGcm9tU2RkbCAtUGF0aCAkUm9vdCAtU2RkbCAk
b3JpZ2luYWxTZGRsDQogICAgICAgICAgICAgICAgJGFjdHVhbCA9IEdldC1EYWNsU2RkbCAtU2Rk
bCAoW3N0cmluZ10oR2V0LUFjbCAtTGl0ZXJhbFBhdGggJFJvb3QgLUVycm9yQWN0aW9uIFN0b3Ap
LlNkZGwpDQogICAgICAgICAgICAgICAgJGV4cGVjdGVkID0gR2V0LURhY2xTZGRsIC1TZGRsICRv
cmlnaW5hbFNkZGwNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYWN0dWFsLkVxdWFscygkZXhw
ZWN0ZWQsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbCkpIHsgdGhyb3cgJ0F1dG9tYXRpYyBy
b2xsYmFjayBEQUNMIHZlcmlmaWNhdGlvbiBmYWlsZWQuJyB9DQogICAgICAgICAgICAgICAgaWYg
KCRudWxsIC1uZSAkam91cm5hbEluZm8pIHsNCiAgICAgICAgICAgICAgICAgICAgW3ZvaWRdKFdy
aXRlLUFjbFJlY2VpcHQgLVJvb3QgJFJvb3QgLURpcmVjdG9yeSAkam91cm5hbEluZm8uZGlyZWN0
b3J5IC1Kb3VybmFsSWQgJGpvdXJuYWxJbmZvLmlkIC1FdmVudCAncm9sbGVkLWJhY2snIC1EYXRh
IChbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZSA9ICRmYWlsdXJl
LkV4Y2VwdGlvbi5NZXNzYWdlDQogICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlZERhY2xT
ZGRsID0gJGFjdHVhbA0KICAgICAgICAgICAgICAgICAgICB9KSkNCiAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAkcm9sbGJhY2tFcnJvciA9
ICRfLkV4Y2VwdGlvbi5NZXNzYWdlDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJG51
bGwgLW5lICRyb2xsYmFja0Vycm9yKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgIkFDTCBhcHBs
aWNhdGlvbiBmYWlsZWQgYW5kIGF1dG9tYXRpYyByb2xsYmFjayBhbHNvIGZhaWxlZC4gVXNlIHRo
ZSB2ZXJpZmllZCByZWNvdmVyeSBqb3VybmFsLiBBcHBseSBlcnJvcjogJCgkZmFpbHVyZS5FeGNl
cHRpb24uTWVzc2FnZSkgUm9sbGJhY2sgZXJyb3I6ICRyb2xsYmFja0Vycm9yIg0KICAgICAgICAg
ICAgfQ0KICAgICAgICB9DQogICAgICAgIHRocm93ICRmYWlsdXJlDQogICAgfSBmaW5hbGx5IHsN
CiAgICAgICAgRXhpdC1Sb290TXV0ZXggLUxvY2sgJGxvY2sNCiAgICB9DQp9DQoNCmlmICgkQXBw
bHlQcml2YXRlQWNsIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRSZXN0
b3JlRnJvbUpvdXJuYWwpKSB7DQogICAgdGhyb3cgJy1BcHBseVByaXZhdGVBY2wgYW5kIC1SZXN0
b3JlRnJvbUpvdXJuYWwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4nDQp9DQppZiAoW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkU291bFJvb3QpKSB7ICRTb3VsUm9vdCA9IEdldC1EZWZhdWx0
U291bFJvb3QgfQ0KJHJlc29sdmVkUm9vdCA9IGlmICgkRml4dHVyZU1vZGUpIHsgQ29udmVydFRv
LUNhbm9uaWNhbFBhdGggJFNvdWxSb290IH0gZWxzZSB7IEFzc2VydC1WYWxpZFNvdWxSb290IC1Q
YXRoICRTb3VsUm9vdCB9DQpBc3NlcnQtRml4dHVyZUF1dGhvcml0eSAtUm9vdCAkcmVzb2x2ZWRS
b290DQoNCmlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFJlc3RvcmVGcm9t
Sm91cm5hbCkpIHsNCiAgICBJbnZva2UtUmVzdG9yZUZyb21Kb3VybmFsIC1Sb290ICRyZXNvbHZl
ZFJvb3QgLUpvdXJuYWxQYXRoICRSZXN0b3JlRnJvbUpvdXJuYWwNCn0gZWxzZWlmICgkQXBwbHlQ
cml2YXRlQWNsKSB7DQogICAgSW52b2tlLUFwcGx5UHJpdmF0ZUFjbCAtUm9vdCAkcmVzb2x2ZWRS
b290DQp9IGVsc2Ugew0KICAgIEdldC1TZWN1cml0eVBsYW4gLVJvb3QgJHJlc29sdmVkUm9vdA0K
fQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/stage-v7.ps1","encoding":"base64","size":15183,"runtimeSha256":"8c24b2aabbfd7dcbaf73bc9bb64578b9b05606e2743bc7f61904abdd8e907628","normalizedSha256":"57f36f94266a74d83b4b6500d0920cbc2492f0ecbdae67b4f4116f8f8514f254"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQo8Iw0KLlNZTk9QU0lTDQogIENyZWF0ZXMgYSBz
dGF0aWMsIHJlc3VtYWJsZSB2NyBnZW5lcmF0aW9uIHdpdGhvdXQgdG91Y2hpbmcgbGl2ZSBhZ2Vu
dCBob21lcy4NCg0KLkRFU0NSSVBUSU9ODQogIFRoZSBkZWZhdWx0IGlzIFBsYW5Pbmx5LiAtUHJl
cGFyZVN0YXRpY1N0YWdlIHdyaXRlcyBvbmx5IGJlbG93DQogIF9hZ2VudC9zZXR1cC9nZW5lcmF0
aW9ucyBhbmQgdGhlIHNldHVwIGpvdXJuYWwuIEl0IG5ldmVyIGRvd25sb2FkcywgbGF1bmNoZXMg
YW4NCiAgYWdlbnQsIGVkaXRzIHNldHRpbmdzLCBmb2xsb3dzIGEgcmVwYXJzZSBwb2ludCwgb3Ig
Y2hhbmdlcyBhY3RpdmUtZ2VuZXJhdGlvbi5qc29uLg0KIz4NCltDbWRsZXRCaW5kaW5nKCldDQpw
YXJhbSgNCiAgICBbc3dpdGNoXSRQbGFuT25seSwNCiAgICBbc3dpdGNoXSRQcmVwYXJlU3RhdGlj
U3RhZ2UsDQoNCiAgICBbVmFsaWRhdGVQYXR0ZXJuKCdeW0EtWmEtejAtOV1bQS1aYS16MC05Ll8t
XXswLDEyN30kJyldDQogICAgW3N0cmluZ10kR2VuZXJhdGlvbklkLA0KDQogICAgIyBJbnRlZ3Jh
dGlvbi10ZXN0IG9ubHkuIFRoZSBwYXRoIG11c3QgcmVtYWluIGJlbG93IHNldHVwL3Rlc3RzL2Zp
eHR1cmVzLg0KICAgIFtQYXJhbWV0ZXIoRG9udFNob3cpXQ0KICAgIFtzdHJpbmddJFRlc3RSb290
DQopDQoNClNldC1TdHJpY3RNb2RlIC1WZXJzaW9uIExhdGVzdA0KJEVycm9yQWN0aW9uUHJlZmVy
ZW5jZSA9ICdTdG9wJw0KDQokbW9kdWxlUGF0aCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdl
bmdpbmVcU291bC5FbmdpbmUucHNtMScNCkltcG9ydC1Nb2R1bGUgLU5hbWUgJG1vZHVsZVBhdGgg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQoNCmlmICgkUGxhbk9ubHkgLWFuZCAkUHJlcGFyZVN0
YXRpY1N0YWdlKSB7DQogICAgdGhyb3cgJ0Nob29zZSBlaXRoZXIgUGxhbk9ubHkgb3IgUHJlcGFy
ZVN0YXRpY1N0YWdlLCBub3QgYm90aC4nDQp9DQppZiAoLW5vdCAkUGxhbk9ubHkgLWFuZCAtbm90
ICRQcmVwYXJlU3RhdGljU3RhZ2UpIHsgJFBsYW5Pbmx5ID0gJHRydWUgfQ0KDQpmdW5jdGlvbiBU
ZXN0LVBhdGhCZWxvdyB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kUGFyZW50
LCBbc3dpdGNoXSRBbGxvd1BhcmVudCkNCiAgICAkZnVsbFBhdGggPSBbU3lzdGVtLklPLlBhdGhd
OjpHZXRGdWxsUGF0aCgkUGF0aCkuVHJpbUVuZCgnXCcsICcvJykNCiAgICAkZnVsbFBhcmVudCA9
IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQYXJlbnQpLlRyaW1FbmQoJ1wnLCAnLycp
DQogICAgaWYgKCRmdWxsUGF0aC5FcXVhbHMoJGZ1bGxQYXJlbnQsIFtTdHJpbmdDb21wYXJpc29u
XTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7IHJldHVybiBbYm9vbF0kQWxsb3dQYXJlbnQgfQ0KICAg
IHJldHVybiAkZnVsbFBhdGguU3RhcnRzV2l0aCgkZnVsbFBhcmVudCArIFtTeXN0ZW0uSU8uUGF0
aF06OkRpcmVjdG9yeVNlcGFyYXRvckNoYXIsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbEln
bm9yZUNhc2UpDQp9DQoNCmZ1bmN0aW9uIFJlc29sdmUtU3RhZ2VSb290IHsNCiAgICBpZiAoW3N0
cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVGVzdFJvb3QpKSB7DQogICAgICAgICRyb290ID0g
R2V0LVNvdWxSb290DQogICAgICAgIFt2b2lkXShBc3NlcnQtU291bFJvb3QgLVBhdGggJHJvb3Qg
LVJlcXVpcmVJbml0aWFsaXplZCkNCiAgICAgICAgcmV0dXJuICRyb290DQogICAgfQ0KDQogICAg
JHJvb3QgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRGdWxsUGF0aCgkVGVzdFJvb3QpLlRyaW1FbmQo
J1wnLCAnLycpDQogICAgJGZpeHR1cmVCb3VuZGFyeSA9IEpvaW4tUGF0aCAoR2V0LVNvdWxFbmdp
bmVMYXlvdXQpLlNldHVwRGlyZWN0b3J5ICd0ZXN0c1xmaXh0dXJlcycNCiAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoQmVsb3cgLVBhdGggJHJvb3QgLVBhcmVudCAkZml4dHVyZUJvdW5kYXJ5KSkgew0K
ICAgICAgICB0aHJvdyAnVGVzdFJvb3QgaXMgcGVybWl0dGVkIG9ubHkgYmVsb3cgX2FnZW50XHNl
dHVwXHRlc3RzXGZpeHR1cmVzLicNCiAgICB9DQogICAgW3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQ
YXRoIC1QYXRoICRyb290KQ0KICAgIHJldHVybiAkcm9vdA0KfQ0KDQpmdW5jdGlvbiBJbml0aWFs
aXplLVN0YWdlRGlyZWN0b3J5IHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRU
aXRsZSkNCiAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJFBhdGgpDQogICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJFBhdGgpKSB7IFt2b2lkXVtTeXN0ZW0u
SU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRQYXRoKSB9DQogICAgJGl0ZW0gPSBHZXQt
SXRlbSAtTGl0ZXJhbFBhdGggJFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYg
KCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2lu
dCkgLW5lIDApIHsNCiAgICAgICAgdGhyb3cgIkEgc2V0dXAgZGlyZWN0b3J5IGNhbm5vdCBiZSBh
IHJlcGFyc2UgcG9pbnQ6ICRQYXRoIg0KICAgIH0NCiAgICAkYWdlbnRzUGF0aCA9IEpvaW4tUGF0
aCAkUGF0aCAnQUdFTlRTLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRhZ2VudHNQYXRoKSkgew0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBh
dGggJGFnZW50c1BhdGggLVRleHQgIiMgJFRpdGxlYHJgbmByYG5UaGlzIGRpcmVjdG9yeSBjb250
YWlucyBzZXR1cC1vd25lZCBzdGF0ZSBvbmx5LmByYG5gcmBuPCEtLSBEbyBub3QgcmVzdGF0ZSBp
bmhlcml0ZWQgQUdFTlRTLm1kIHJ1bGVzLiAtLT5gcmBuIikNCiAgICB9DQogICAgJGNsYXVkZVBh
dGggPSBKb2luLVBhdGggJFBhdGggJ0NMQVVERS5tZCcNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkY2xhdWRlUGF0aCkpIHsNCiAgICAgICAgW3ZvaWRdKFdyaXRlLVNvdWxV
dGY4QXRvbWljIC1QYXRoICRjbGF1ZGVQYXRoIC1UZXh0ICJAQUdFTlRTLm1kYHJgbiIpDQogICAg
fQ0KICAgIHJldHVybiAkUGF0aA0KfQ0KDQpmdW5jdGlvbiBHZXQtU3RhZ2VNb2R1bGVBcmd1bWVu
dHMgew0KICAgIHBhcmFtKFtzdHJpbmddJFN0YXRlRGlyZWN0b3J5KQ0KICAgIGlmIChbc3RyaW5n
XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUZXN0Um9vdCkpIHsgcmV0dXJuIEB7fSB9DQogICAgcmV0
dXJuIEB7IFRlc3RTZXR1cERpcmVjdG9yeSA9ICRTdGF0ZURpcmVjdG9yeSB9DQp9DQoNCmZ1bmN0
aW9uIFJlYWQtU291bFN0YXRlRm9yU3RhZ2Ugew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQog
ICAgJHBhdGggPSBKb2luLVBhdGggJFJvb3QgJ3NvdWwtc3RhdGUuanNvbicNCiAgICBpZiAoLW5v
dCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cg
J3NvdWwtc3RhdGUuanNvbiBpcyByZXF1aXJlZCBiZWZvcmUgc3RhZ2luZy4nIH0NCiAgICAkc3Rh
dGUgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRwYXRoDQogICAgJHBhcnNlZCA9IFtndWlkXTo6RW1w
dHkNCiAgICBpZiAoLW5vdCBbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJHN0YXRlLnNvdWxJZCwg
W3JlZl0kcGFyc2VkKSkgeyB0aHJvdyAnc291bC1zdGF0ZS5qc29uIGhhcyBhbiBpbnZhbGlkIHNv
dWxJZC4nIH0NCiAgICByZXR1cm4gJHN0YXRlDQp9DQoNCmZ1bmN0aW9uIEdldC1PcHRpb25hbFBy
b3BlcnR5VmFsdWUgew0KICAgIHBhcmFtKCRPYmplY3QsIFtzdHJpbmddJE5hbWUpDQogICAgJHBy
b3BlcnR5ID0gJE9iamVjdC5QU09iamVjdC5Qcm9wZXJ0aWVzWyROYW1lXQ0KICAgIGlmICgkbnVs
bCAtZXEgJHByb3BlcnR5KSB7IHJldHVybiAkbnVsbCB9DQogICAgcmV0dXJuICRwcm9wZXJ0eS5W
YWx1ZQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LUltbXV0YWJsZVNvdXJjZUxvY2sgew0KICAgIHBhcmFt
KCRMb2NrKQ0KICAgIGlmIChbaW50XSRMb2NrLnNjaGVtYVZlcnNpb24gLW5lIDcpIHsgdGhyb3cg
J1RoZSBzb3VyY2UgbG9jayBpcyBub3Qgc2NoZW1hIHY3LicgfQ0KICAgICRweXRob25SdW50aW1l
cyA9IEAoJExvY2sucHl0aG9uUnVudGltZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlk
IC1jZXEgJ2RvY3VtZW50LW1jcCcgfSkNCiAgICBpZiAoJHB5dGhvblJ1bnRpbWVzLkNvdW50IC1u
ZSAxIC1vcg0KICAgICAgICBbc3RyaW5nXSRweXRob25SdW50aW1lc1swXS5weXRob25WZXJzaW9u
IC1jbmUgJzMuMTInIC1vcg0KICAgICAgICBbc3RyaW5nXSRweXRob25SdW50aW1lc1swXS5pbnN0
YWxsUG9saWN5IC1jbmUgJ29mZmxpbmUtaGFzaC1sb2NrZWQtd2hlZWxob3VzZScgLW9yDQogICAg
ICAgIFtzdHJpbmddJHB5dGhvblJ1bnRpbWVzWzBdLnJlcXVpcmVtZW50c0xvY2tTaGEyNTYgLW5v
dG1hdGNoICdeWzAtOWEtZl17NjR9JCcpIHsNCiAgICAgICAgdGhyb3cgJ1RoZSBzb3VyY2UgbG9j
ayBoYXMgbm8gY29tcGxldGUgaW1tdXRhYmxlIGRvY3VtZW50LW1jcCBQeXRob24gcnVudGltZS4n
DQogICAgfQ0KICAgIGZvcmVhY2ggKCRmaWVsZCBpbiBAKCdyZXF1aXJlbWVudHNJblJlbGF0aXZl
UGF0aCcsICdyZXF1aXJlbWVudHNMb2NrUmVsYXRpdmVQYXRoJykpIHsNCiAgICAgICAgJHJlbGF0
aXZlID0gW3N0cmluZ10kcHl0aG9uUnVudGltZXNbMF0uJGZpZWxkDQogICAgICAgICRzaWRlY2Fy
ID0gW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgoSm9pbi1QYXRoIChHZXQtU291bEVuZ2luZUxheW91
dCkuU2V0dXBEaXJlY3RvcnkgJHJlbGF0aXZlLlJlcGxhY2UoJy8nLCAnXCcpKSkNCiAgICAgICAg
W3ZvaWRdKEFzc2VydC1Tb3VsT3duZWRQYXRoIC1QYXRoICRzaWRlY2FyKQ0KICAgICAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc2lkZWNhciAtUGF0aFR5cGUgTGVhZikpIHsg
dGhyb3cgIlRoZSBQeXRob24gcnVudGltZSBzaWRlY2FyIGlzIG1pc3Npbmc6ICRyZWxhdGl2ZSIg
fQ0KICAgICAgICAkaGFzaEZpZWxkID0gaWYgKCRmaWVsZCAtY2VxICdyZXF1aXJlbWVudHNJblJl
bGF0aXZlUGF0aCcpIHsgJ3JlcXVpcmVtZW50c0luU2hhMjU2JyB9IGVsc2UgeyAncmVxdWlyZW1l
bnRzTG9ja1NoYTI1NicgfQ0KICAgICAgICBpZiAoLW5vdCAoR2V0LVNvdWxTaGEyNTYgLVBhdGgg
JHNpZGVjYXIpLkVxdWFscyhbc3RyaW5nXSRweXRob25SdW50aW1lc1swXS4kaGFzaEZpZWxkLCBb
U3RyaW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgICAgICAgICAgdGhy
b3cgIlRoZSBQeXRob24gcnVudGltZSBzaWRlY2FyIGhhc2ggZGlmZmVyczogJHJlbGF0aXZlIg0K
ICAgICAgICB9DQogICAgfQ0KICAgIGZvcmVhY2ggKCRleHRlbnNpb24gaW4gQCgkTG9jay5leHRl
bnNpb25zKSkgew0KICAgICAgICAkc291cmNlID0gW3N0cmluZ10kZXh0ZW5zaW9uLnNvdXJjZQ0K
ICAgICAgICAkY29tbWl0ID0gW3N0cmluZ10oR2V0LU9wdGlvbmFsUHJvcGVydHlWYWx1ZSAtT2Jq
ZWN0ICRleHRlbnNpb24gLU5hbWUgJ2NvbW1pdCcpDQogICAgICAgICRpbnRlZ3JpdHkgPSBbc3Ry
aW5nXShHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlIC1PYmplY3QgJGV4dGVuc2lvbiAtTmFtZSAn
aW50ZWdyaXR5JykNCiAgICAgICAgJHNoYTI1NiA9IFtzdHJpbmddKEdldC1PcHRpb25hbFByb3Bl
cnR5VmFsdWUgLU9iamVjdCAkZXh0ZW5zaW9uIC1OYW1lICdzaGEyNTYnKQ0KICAgICAgICBpZiAo
JHNvdXJjZSAtbWF0Y2ggJyg/aSlnaXRodWJcLmNvbScgLWFuZCBbc3RyaW5nXTo6SXNOdWxsT3JX
aGl0ZVNwYWNlKCRjb21taXQpKSB7DQogICAgICAgICAgICB0aHJvdyAiR2l0SHViIGV4dGVuc2lv
biAnJCgkZXh0ZW5zaW9uLmlkKScgaGFzIG5vIGltbXV0YWJsZSBjb21taXQuIg0KICAgICAgICB9
DQogICAgICAgIGlmICgkc291cmNlIC1tYXRjaCAnKD9pKXJlZ2lzdHJ5XC5ucG1qc1wub3JnJyAt
YW5kIFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGludGVncml0eSkpIHsNCiAgICAgICAg
ICAgIHRocm93ICJucG0gZXh0ZW5zaW9uICckKCRleHRlbnNpb24uaWQpJyBoYXMgbm8gaW1tdXRh
YmxlIGludGVncml0eSB2YWx1ZS4iDQogICAgICAgIH0NCiAgICAgICAgaWYgKCRzb3VyY2UgLW1h
dGNoICcoP2kpL3JlbGVhc2VzL2Rvd25sb2FkLycgLWFuZA0KICAgICAgICAgICAgW3N0cmluZ106
OklzTnVsbE9yV2hpdGVTcGFjZSgkc2hhMjU2KSAtYW5kDQogICAgICAgICAgICBbc3RyaW5nXTo6
SXNOdWxsT3JXaGl0ZVNwYWNlKCRjb21taXQpKSB7DQogICAgICAgICAgICB0aHJvdyAiUmVsZWFz
ZSBleHRlbnNpb24gJyQoJGV4dGVuc2lvbi5pZCknIGhhcyBubyBpbW11dGFibGUgZGlnZXN0LiIN
CiAgICAgICAgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gR2V0LVByb3RlY3RlZFN0YWdlRmluZ2Vy
cHJpbnQgew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QpDQoNCiAgICAkcmVsYXRpdmVGaWxlcyA9
IEAoDQogICAgICAgICdfYWdlbnRcY2xhdWRlXHNldHRpbmdzLmpzb24nLA0KICAgICAgICAnX2Fn
ZW50XGNsYXVkZVwuY2xhdWRlLmpzb24nLA0KICAgICAgICAnX2FnZW50XGNsYXVkZVxoaXN0b3J5
Lmpzb25sJywNCiAgICAgICAgJ19hZ2VudFxjb2RleFxjb25maWcudG9tbCcsDQogICAgICAgICdf
YWdlbnRcY29kZXhcLmNvZGV4LWdsb2JhbC1zdGF0ZS5qc29uJywNCiAgICAgICAgJ19hZ2VudFxj
b2RleFxzdGF0ZV81LnNxbGl0ZScsDQogICAgICAgICdfYWdlbnRcY29kZXhcc3RhdGVfNS5zcWxp
dGUtd2FsJywNCiAgICAgICAgJ19hZ2VudFxjb2RleFxzdGF0ZV81LnNxbGl0ZS1zaG0nDQogICAg
KQ0KICAgICRyZWNvcmRzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5M
aXN0W29iamVjdF0NCiAgICBmb3JlYWNoICgkcmVsYXRpdmUgaW4gJHJlbGF0aXZlRmlsZXMpIHsN
CiAgICAgICAgJHBhdGggPSBKb2luLVBhdGggJFJvb3QgJHJlbGF0aXZlDQogICAgICAgIGlmICgt
bm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXRoIC1QYXRoVHlwZSBMZWFmKSkgew0KICAg
ICAgICAgICAgJHJlY29yZHMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJHJlbGF0aXZl
LlJlcGxhY2UoJ1wnLCAnLycpOyBleGlzdHMgPSAkZmFsc2U7IGxlbmd0aCA9ICRudWxsOyBsYXN0
V3JpdGVVdGMgPSAkbnVsbDsgc2hhMjU2ID0gJG51bGwgfSkNCiAgICAgICAgICAgIGNvbnRpbnVl
DQogICAgICAgIH0NCiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHBhdGgg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAt
YmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAg
ICAgICB0aHJvdyAiQSBwcm90ZWN0ZWQgbGl2ZSBmaWxlIGlzIGEgcmVwYXJzZSBwb2ludDogJHBh
dGgiDQogICAgICAgIH0NCiAgICAgICAgJHNoYSA9ICRudWxsDQogICAgICAgIHRyeSB7ICRzaGEg
PSBHZXQtU291bFNoYTI1NiAtUGF0aCAkcGF0aCB9IGNhdGNoIHsgJHNoYSA9ICd1bnJlYWRhYmxl
LXdpdGhvdXQtc2hhcmluZy1jaGFuZ2UnIH0NCiAgICAgICAgJGl0ZW0uUmVmcmVzaCgpDQogICAg
ICAgICRyZWNvcmRzLkFkZChbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAgIHBhdGggPSAk
cmVsYXRpdmUuUmVwbGFjZSgnXCcsICcvJykNCiAgICAgICAgICAgIGV4aXN0cyA9ICR0cnVlDQog
ICAgICAgICAgICBsZW5ndGggPSBbbG9uZ10kaXRlbS5MZW5ndGgNCiAgICAgICAgICAgIGxhc3RX
cml0ZVV0YyA9ICRpdGVtLkxhc3RXcml0ZVRpbWVVdGMuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAg
ICAgc2hhMjU2ID0gJHNoYQ0KICAgICAgICB9KQ0KICAgIH0NCiAgICByZXR1cm4gQCgkcmVjb3Jk
cy5Ub0FycmF5KCkpDQp9DQoNCmZ1bmN0aW9uIEdldC1JbW11dGFibGVTb3VyY2VEaXNjb3Zlcnkg
ew0KICAgIHBhcmFtKFtzdHJpbmddJFJvb3QsICRMb2NrKQ0KDQogICAgJHJlY29yZHMgPSBOZXct
T2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgIGZvcmVh
Y2ggKCRleHRlbnNpb24gaW4gQCgkTG9jay5leHRlbnNpb25zKSkgew0KICAgICAgICAkcmVsYXRp
dmUgPSBbc3RyaW5nXSRleHRlbnNpb24uY2Fub25pY2FsUmVsYXRpdmVQYXRoDQogICAgICAgIGlm
IChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRyZWxhdGl2ZSkpIHsgY29udGludWUgfQ0K
ICAgICAgICAkcGF0aCA9IEpvaW4tUGF0aCAkUm9vdCAoJHJlbGF0aXZlLlJlcGxhY2UoJy8nLCAn
XCcpKQ0KICAgICAgICBbdm9pZF0oQXNzZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggJHBhdGgpDQog
ICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwYXRoKSkgew0KICAgICAg
ICAgICAgJHJlY29yZHMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9IFtzdHJpbmddJGV4dGVu
c2lvbi5pZDsgcmVsYXRpdmVQYXRoID0gJHJlbGF0aXZlOyBzdGF0dXMgPSAnbWlzc2luZyc7IHRy
ZWVTaGEyNTYgPSAkbnVsbDsgZW50cnlDb3VudCA9IDAgfSkNCiAgICAgICAgICAgIGNvbnRpbnVl
DQogICAgICAgIH0NCiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHBhdGgg
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAt
YmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7DQogICAgICAg
ICAgICAkcmVjb3Jkcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IGlkID0gW3N0cmluZ10kZXh0ZW5z
aW9uLmlkOyByZWxhdGl2ZVBhdGggPSAkcmVsYXRpdmU7IHN0YXR1cyA9ICdyZXBhcnNlLWJsb2Nr
ZWQnOyB0cmVlU2hhMjU2ID0gJG51bGw7IGVudHJ5Q291bnQgPSAwIH0pDQogICAgICAgICAgICBj
b250aW51ZQ0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKCRpdGVtLlBTSXNDb250YWluZXIpIHsN
CiAgICAgICAgICAgICRpbnZlbnRvcnkgPSBAKEdldC1Tb3VsVHJlZUludmVudG9yeSAtUGF0aCAk
cGF0aCkNCiAgICAgICAgICAgICRzdGFibGVSb3dzID0gQCgkaW52ZW50b3J5IHwgV2hlcmUtT2Jq
ZWN0IHsgJF8ua2luZCAtZXEgJ2ZpbGUnIC1hbmQgJF8uc3RhYmxlIC1hbmQgJG51bGwgLW5lICRf
LnNoYTI1NiB9KQ0KICAgICAgICAgICAgJGNhbm9uaWNhbFJvd3MgPSBAKCRzdGFibGVSb3dzIHwg
Rm9yRWFjaC1PYmplY3QgeyAnezB9fHsxfXx7Mn0nIC1mICRfLnBhdGgsICRfLmxlbmd0aCwgJF8u
c2hhMjU2IH0pDQogICAgICAgICAgICAkdHJlZVRleHQgPSAkY2Fub25pY2FsUm93cyAtam9pbiAi
YG4iDQogICAgICAgICAgICAkc2hhQWxnb3JpdGhtID0gW1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5T
SEEyNTZdOjpDcmVhdGUoKQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAkdHJl
ZUhhc2ggPSAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRzaGFBbGdvcml0aG0uQ29tcHV0ZUhh
c2goW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCR0cmVlVGV4dCkpKSkuUmVwbGFjZSgn
LScsICcnKS5Ub0xvd2VySW52YXJpYW50KCkNCiAgICAgICAgICAgIH0gZmluYWxseSB7ICRzaGFB
bGdvcml0aG0uRGlzcG9zZSgpIH0NCiAgICAgICAgICAgICRzdGF0dXMgPSBpZiAoQCgkaW52ZW50
b3J5IHwgV2hlcmUtT2JqZWN0IHsgLW5vdCAkXy5zdGFibGUgLW9yICRfLmtpbmQgLWVxICdyZXBh
cnNlLWJsb2NrZWQnIH0pLkNvdW50IC1lcSAwKSB7ICdyZWFkeScgfSBlbHNlIHsgJ3Vuc3RhYmxl
LW9yLXJlcGFyc2UnIH0NCiAgICAgICAgICAgICRyZWNvcmRzLkFkZChbcHNjdXN0b21vYmplY3Rd
QHsgaWQgPSBbc3RyaW5nXSRleHRlbnNpb24uaWQ7IHJlbGF0aXZlUGF0aCA9ICRyZWxhdGl2ZTsg
c3RhdHVzID0gJHN0YXR1czsgdHJlZVNoYTI1NiA9ICR0cmVlSGFzaDsgZW50cnlDb3VudCA9ICRp
bnZlbnRvcnkuQ291bnQgfSkNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRyZWNvcmRz
LkFkZChbcHNjdXN0b21vYmplY3RdQHsgaWQgPSBbc3RyaW5nXSRleHRlbnNpb24uaWQ7IHJlbGF0
aXZlUGF0aCA9ICRyZWxhdGl2ZTsgc3RhdHVzID0gJ3JlYWR5JzsgdHJlZVNoYTI1NiA9IChHZXQt
U291bFNoYTI1NiAtUGF0aCAkcGF0aCk7IGVudHJ5Q291bnQgPSAxIH0pDQogICAgICAgIH0NCiAg
ICB9DQogICAgcmV0dXJuIEAoJHJlY29yZHMuVG9BcnJheSgpKQ0KfQ0KDQokcm9vdCA9IFJlc29s
dmUtU3RhZ2VSb290DQokc3RhdGVEaXJlY3RvcnkgPSBKb2luLVBhdGggJHJvb3QgJ19hZ2VudFxz
ZXR1cCcNCiRtb2R1bGVBcmd1bWVudHMgPSBHZXQtU3RhZ2VNb2R1bGVBcmd1bWVudHMgLVN0YXRl
RGlyZWN0b3J5ICRzdGF0ZURpcmVjdG9yeQ0KJHNvdXJjZUxvY2tQYXRoID0gSm9pbi1QYXRoIChH
ZXQtU291bEVuZ2luZUxheW91dCkuU2V0dXBEaXJlY3RvcnkgJ21hbmlmZXN0c1x2Ny1sb2NrLmpz
b24nDQppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc291cmNlTG9ja1BhdGggLVBh
dGhUeXBlIExlYWYpKSB7IHRocm93ICdUaGUgaW1tdXRhYmxlIHY3IHNvdXJjZSBsb2NrIGlzIG1p
c3NpbmcuJyB9DQokc291cmNlTG9jayA9IFJlYWQtU291bEpzb24gLVBhdGggJHNvdXJjZUxvY2tQ
YXRoDQpUZXN0LUltbXV0YWJsZVNvdXJjZUxvY2sgLUxvY2sgJHNvdXJjZUxvY2sNCiRzb3VyY2VM
b2NrU2hhID0gR2V0LVNvdWxTaGEyNTYgLVBhdGggJHNvdXJjZUxvY2tQYXRoDQokc291bFN0YXRl
ID0gUmVhZC1Tb3VsU3RhdGVGb3JTdGFnZSAtUm9vdCAkcm9vdA0KJHByb3RlY3RlZEJlZm9yZSA9
IEAoR2V0LVByb3RlY3RlZFN0YWdlRmluZ2VycHJpbnQgLVJvb3QgJHJvb3QpDQokZGlzY292ZXJ5
ID0gQChHZXQtSW1tdXRhYmxlU291cmNlRGlzY292ZXJ5IC1Sb290ICRyb290IC1Mb2NrICRzb3Vy
Y2VMb2NrKQ0KDQppZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkR2VuZXJhdGlvbklk
KSkgew0KICAgICRHZW5lcmF0aW9uSWQgPSAndjctJyArIFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0
cmluZygneXl5eU1NZGRUSEhtbXNzWicpICsgJy0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJp
bmcoJ04nKS5TdWJzdHJpbmcoMCwgOCkNCn0NCg0KJGdlbmVyYXRpb25EaXJlY3RvcnkgPSBKb2lu
LVBhdGggJHN0YXRlRGlyZWN0b3J5ICgnZ2VuZXJhdGlvbnNcJyArICRHZW5lcmF0aW9uSWQpDQok
cGxhbiA9IFtwc2N1c3RvbW9iamVjdF1Aew0KICAgIHNjaGVtYVZlcnNpb24gPSA3DQogICAgbW9k
ZSA9ICQoaWYgKCRQbGFuT25seSkgeyAncGxhbi1vbmx5JyB9IGVsc2UgeyAncHJlcGFyZS1zdGF0
aWMtc3RhZ2UnIH0pDQogICAgc291bElkID0gW3N0cmluZ10kc291bFN0YXRlLnNvdWxJZA0KICAg
IGdlbmVyYXRpb25JZCA9ICRHZW5lcmF0aW9uSWQNCiAgICBnZW5lcmF0aW9uRGlyZWN0b3J5ID0g
JGdlbmVyYXRpb25EaXJlY3RvcnkNCiAgICBzb3VyY2VMb2NrU2hhMjU2ID0gJHNvdXJjZUxvY2tT
aGENCiAgICBzb3VyY2VEaXNjb3ZlcnkgPSAkZGlzY292ZXJ5DQogICAgcHJvdGVjdGVkTGl2ZUZp
bGVzID0gJHByb3RlY3RlZEJlZm9yZQ0KICAgIGFjdGl2ZVBvaW50ZXJXaWxsQ2hhbmdlID0gJGZh
bHNlDQogICAgbmV0d29ya1dpbGxCZVVzZWQgPSAkZmFsc2UNCiAgICBsaXZlQWdlbnRIb21lc1dp
bGxDaGFuZ2UgPSAkZmFsc2UNCn0NCg0KaWYgKCRQbGFuT25seSkgeyByZXR1cm4gJHBsYW4gfQ0K
DQokbG9jayA9IE5ldy1Tb3VsT3BlcmF0aW9uTG9jayAtTmFtZSAnZ2xvYmFsLW1pZ3JhdGlvbicg
QG1vZHVsZUFyZ3VtZW50cw0KdHJ5IHsNCiAgICAkZ2VuZXJhdGlvblJvb3QgPSBJbml0aWFsaXpl
LVN0YWdlRGlyZWN0b3J5IC1QYXRoIChKb2luLVBhdGggJHN0YXRlRGlyZWN0b3J5ICdnZW5lcmF0
aW9ucycpIC1UaXRsZSAnU2V0dXAgZ2VuZXJhdGlvbnMnDQogICAgaWYgKFRlc3QtUGF0aCAtTGl0
ZXJhbFBhdGggJGdlbmVyYXRpb25EaXJlY3RvcnkpIHsNCiAgICAgICAgdGhyb3cgIkdlbmVyYXRp
b24gYWxyZWFkeSBleGlzdHMgYW5kIHdpbGwgbm90IGJlIG92ZXJ3cml0dGVuOiAkR2VuZXJhdGlv
bklkIg0KICAgIH0NCiAgICBbdm9pZF0oSW5pdGlhbGl6ZS1TdGFnZURpcmVjdG9yeSAtUGF0aCAk
Z2VuZXJhdGlvbkRpcmVjdG9yeSAtVGl0bGUgIiRHZW5lcmF0aW9uSWQgZ2VuZXJhdGlvbiIpDQoN
CiAgICAkbWFuaWZlc3RQYXRoID0gSm9pbi1QYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5ICdnZW5l
cmF0aW9uLmpzb24nDQogICAgJG1hbmlmZXN0ID0gW29yZGVyZWRdQHsNCiAgICAgICAgc2NoZW1h
VmVyc2lvbiA9IDcNCiAgICAgICAgZ2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZA0KICAgICAg
ICBzb3VsSWQgPSBbc3RyaW5nXSRzb3VsU3RhdGUuc291bElkDQogICAgICAgIHN0YXR1cyA9ICdz
dGFnaW5nJw0KICAgICAgICBjcmVhdGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJp
bmcoJ28nKQ0KICAgICAgICBzb3VyY2VMb2NrU2hhMjU2ID0gJHNvdXJjZUxvY2tTaGENCiAgICAg
ICAgY29uZmlnQXBwbGllZCA9ICRmYWxzZQ0KICAgICAgICBhZGFwdGVyc1N0YXR1cyA9ICdwbGFu
bmVkJw0KICAgICAgICBtYWNoaW5lUmVhZHkgPSAkZmFsc2UNCiAgICB9DQogICAgW3ZvaWRdKFdy
aXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRtYW5pZmVzdFBhdGggLVZhbHVlICRtYW5pZmVzdCkN
Cg0KICAgICRsb2NrZWRUZXh0ID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkc291cmNlTG9ja1Bh
dGgsIChOZXctT2JqZWN0IFRleHQuVVRGOEVuY29kaW5nKCRmYWxzZSkpKQ0KICAgIFt2b2lkXShX
cml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5
ICdzb3VyY2UtbG9jay5qc29uJykgLVRleHQgJGxvY2tlZFRleHQpDQogICAgW3ZvaWRdKFdyaXRl
LVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGggJGdlbmVyYXRpb25EaXJlY3RvcnkgJ3Nv
dXJjZS1kaXNjb3ZlcnkuanNvbicpIC1WYWx1ZSAoW29yZGVyZWRdQHsNCiAgICAgICAgc2NoZW1h
VmVyc2lvbiA9IDENCiAgICAgICAgb2JzZXJ2ZWRBdFV0YyA9IFtEYXRlVGltZV06OlV0Y05vdy5U
b1N0cmluZygnbycpDQogICAgICAgIHNvdXJjZXMgPSAkZGlzY292ZXJ5DQogICAgfSkpDQoNCiAg
ICAkYWRhcHRlclBsYW4gPSBbb3JkZXJlZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0K
ICAgICAgICBzdGF0dXMgPSAncGxhbm5lZC1ub3QtYXBwbGllZCcNCiAgICAgICAgcHJlc2VydmVF
eGlzdGluZ0J5dGVzID0gJHRydWUNCiAgICAgICAgZXhjbHVkZWQgPSBAKCRzb3VyY2VMb2NrLmV4
Y2x1ZGVkKQ0KICAgICAgICBleHRlbnNpb25zID0gQCgkc291cmNlTG9jay5leHRlbnNpb25zIHwg
Rm9yRWFjaC1PYmplY3Qgew0KICAgICAgICAgICAgW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAg
ICBpZCA9IFtzdHJpbmddJF8uaWQNCiAgICAgICAgICAgICAgICBjYW5vbmljYWxSZWxhdGl2ZVBh
dGggPSBbc3RyaW5nXSRfLmNhbm9uaWNhbFJlbGF0aXZlUGF0aA0KICAgICAgICAgICAgICAgIGNs
YXVkZUFkYXB0ZXIgPSBHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlIC1PYmplY3QgJF8gLU5hbWUg
J2NsYXVkZUFkYXB0ZXInDQogICAgICAgICAgICAgICAgY29kZXhBZGFwdGVyID0gR2V0LU9wdGlv
bmFsUHJvcGVydHlWYWx1ZSAtT2JqZWN0ICRfIC1OYW1lICdjb2RleEFkYXB0ZXInDQogICAgICAg
ICAgICAgICAgYWRhcHRlcnMgPSBHZXQtT3B0aW9uYWxQcm9wZXJ0eVZhbHVlIC1PYmplY3QgJF8g
LU5hbWUgJ2FkYXB0ZXJzJw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgIH0NCiAgICBb
dm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkZ2VuZXJhdGlvbkRp
cmVjdG9yeSAnYWRhcHRlci1wbGFuLmpzb24nKSAtVmFsdWUgJGFkYXB0ZXJQbGFuKQ0KDQogICAg
JHByb3RlY3RlZEFmdGVyID0gQChHZXQtUHJvdGVjdGVkU3RhZ2VGaW5nZXJwcmludCAtUm9vdCAk
cm9vdCkNCiAgICAkYmVmb3JlSnNvbiA9ICRwcm90ZWN0ZWRCZWZvcmUgfCBDb252ZXJ0VG8tSnNv
biAtRGVwdGggOCAtQ29tcHJlc3MNCiAgICAkYWZ0ZXJKc29uID0gJHByb3RlY3RlZEFmdGVyIHwg
Q29udmVydFRvLUpzb24gLURlcHRoIDggLUNvbXByZXNzDQogICAgaWYgKCRiZWZvcmVKc29uIC1j
bmUgJGFmdGVySnNvbikgew0KICAgICAgICB0aHJvdyAnQSBwcm90ZWN0ZWQgbGl2ZSBjb25maWcs
IGhpc3RvcnksIGRhdGFiYXNlLCBvciBXQUwgY2hhbmdlZCBkdXJpbmcgc3RhZ2luZy4gVGhlIGdl
bmVyYXRpb24gcmVtYWlucyBpbmFjdGl2ZS4nDQogICAgfQ0KDQogICAgJG1hbmlmZXN0LnN0YXR1
cyA9ICdwZW5kaW5nLWZpbmFsaXplJw0KICAgICRtYW5pZmVzdC5wZW5kaW5nRmluYWxpemVBdFV0
YyA9IFtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpDQogICAgJG1hbmlmZXN0LnByb3Rl
Y3RlZExpdmVGaWxlc1VuY2hhbmdlZCA9ICR0cnVlDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29u
QXRvbWljIC1QYXRoICRtYW5pZmVzdFBhdGggLVZhbHVlICRtYW5pZmVzdCkNCiAgICBbdm9pZF0o
QWRkLVNvdWxKb3VybmFsRW50cnkgLVR5cGUgJ2dlbmVyYXRpb24ucGVuZGluZy1maW5hbGl6ZScg
LURhdGEgQHsNCiAgICAgICAgZ2VuZXJhdGlvbklkID0gJEdlbmVyYXRpb25JZA0KICAgICAgICBz
b3VyY2VMb2NrU2hhMjU2ID0gJHNvdXJjZUxvY2tTaGENCiAgICB9IEBtb2R1bGVBcmd1bWVudHMp
DQoNCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7DQogICAgICAgIHNjaGVtYVZlcnNpb24g
PSA3DQogICAgICAgIG1vZGUgPSAncHJlcGFyZWQtc3RhdGljLXN0YWdlJw0KICAgICAgICBzb3Vs
SWQgPSBbc3RyaW5nXSRzb3VsU3RhdGUuc291bElkDQogICAgICAgIGdlbmVyYXRpb25JZCA9ICRH
ZW5lcmF0aW9uSWQNCiAgICAgICAgZ2VuZXJhdGlvbkRpcmVjdG9yeSA9ICRnZW5lcmF0aW9uRGly
ZWN0b3J5DQogICAgICAgIHN0YXR1cyA9ICdwZW5kaW5nLWZpbmFsaXplJw0KICAgICAgICBhY3Rp
dmVQb2ludGVyQ2hhbmdlZCA9ICRmYWxzZQ0KICAgICAgICBwcm90ZWN0ZWRMaXZlRmlsZXNVbmNo
YW5nZWQgPSAkdHJ1ZQ0KICAgIH0NCn0gZmluYWxseSB7DQogICAgRXhpdC1Tb3VsT3BlcmF0aW9u
TG9jayAtTG9jayAkbG9jaw0KfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/AGENTS.md","encoding":"base64","size":162,"runtimeSha256":"1f426f3a6a274793cdb1a2aafb2bc80230e15ea4c9c820434b7ce007567d6ef9","normalizedSha256":"723a7c6a007e1722a983b7713a3533b0f0e787257139b906f169b683f6ee0362"} -->
```base64
IyDshKTsuZgg7JeU7KeEIO2FjOyKpO2KuA0KDQrsnbQg7Y+0642U7J2YIO2FjOyKpO2KuOuKlCBg
Zml4dHVyZXNgIOyVhOuemCDsnbztmozsmqkg7J6Q66OM66eMIOuzgOqyve2VnOuLpC4NCg0KPCEt
LSDsg4HsnIQgQUdFTlRTLm1kIOq3nOy5mSDsnqzshJzsiKAg6riI7KeAIC0tPg0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/CLAUDE.md","encoding":"base64","size":12,"runtimeSha256":"d631d88045f74623d568adfb4783b72e3d1b732330d749bc6c72e6648d4581d3","normalizedSha256":"336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49"} -->
```base64
QEFHRU5UUy5tZA0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-Auxiliary.ps1","encoding":"base64","size":11175,"runtimeSha256":"ad4c7b268c0072a455d7bd044d9025ec275e0fb798b129e36daccb6c145d5718","normalizedSha256":"aa1d17781d6c721f8677f08e8124c0d4db593ed22c22780ee1a4ace7618aeb75"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KW0NtZGxldEJpbmRpbmcoKV0NCnBhcmFtKCkNCg0K
U2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0DQokRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0g
J1N0b3AnDQoNCiRzZXR1cFJvb3QgPSBbU3lzdGVtLklPLkRpcmVjdG9yeV06OkdldFBhcmVudCgk
UFNTY3JpcHRSb290KS5GdWxsTmFtZQ0KJGZpeHR1cmVCb3VuZGFyeSA9IEpvaW4tUGF0aCAkUFNT
Y3JpcHRSb290ICdmaXh0dXJlcycNCiRjYXNlSWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmlu
ZygnTicpDQokY2FzZVJvb3QgPSBKb2luLVBhdGggJGZpeHR1cmVCb3VuZGFyeSAoJ2F1eC0nICsg
JGNhc2VJZCkNCiRvd25lcnNoaXBNYXJrZXIgPSBKb2luLVBhdGggJGNhc2VSb290ICcub3duZWQt
YXV4LXRlc3QuanNvbicNCiRzY3JpcHQ6UGFzc2VkID0gMA0KDQpmdW5jdGlvbiBBc3NlcnQtVHJ1
ZSB7DQogICAgcGFyYW0oW3N0cmluZ10kTmFtZSwgW2Jvb2xdJENvbmRpdGlvbikNCiAgICBpZiAo
LW5vdCAkQ29uZGl0aW9uKSB7IHRocm93ICJGQUlMRUQ6ICROYW1lIiB9DQogICAgJHNjcmlwdDpQ
YXNzZWQrKw0KICAgIFdyaXRlLUhvc3QgIlBBU1MgICROYW1lIg0KfQ0KDQpmdW5jdGlvbiBBc3Nl
cnQtVGhyb3dzIHsNCiAgICBwYXJhbShbc3RyaW5nXSROYW1lLCBbc2NyaXB0YmxvY2tdJEJvZHkp
DQogICAgJHRocmV3ID0gJGZhbHNlDQogICAgdHJ5IHsgJiAkQm9keSB9IGNhdGNoIHsgJHRocmV3
ID0gJHRydWUgfQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICROYW1lIC1Db25kaXRpb24gJHRocmV3
DQp9DQoNCmZ1bmN0aW9uIFdyaXRlLVV0Zjggew0KICAgIHBhcmFtKFtzdHJpbmddJFBhdGgsIFtz
dHJpbmddJFRleHQpDQogICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3Rvcnko
KFNwbGl0LVBhdGggLVBhcmVudCAkUGF0aCkpIHwgT3V0LU51bGwNCiAgICAkdXRmOCA9IE5ldy1P
YmplY3QgU3lzdGVtLlRleHQuVVRGOEVuY29kaW5nKCRmYWxzZSkNCiAgICBbU3lzdGVtLklPLkZp
bGVdOjpXcml0ZUFsbFRleHQoJFBhdGgsICRUZXh0LCAkdXRmOCkNCn0NCg0KZnVuY3Rpb24gUmVt
b3ZlLU93bmVkRml4dHVyZSB7DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
JGNhc2VSb290IC1QYXRoVHlwZSBDb250YWluZXIpKSB7IHJldHVybiB9DQogICAgJGZ1bGwgPSBb
U3lzdGVtLklPLlBhdGhdOjpHZXRGdWxsUGF0aCgkY2FzZVJvb3QpLlRyaW1FbmQoJ1wnKQ0KICAg
ICRwYXJlbnQgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRGdWxsUGF0aCgkZml4dHVyZUJvdW5kYXJ5
KS5UcmltRW5kKCdcJykNCiAgICBpZiAoKFNwbGl0LVBhdGggLVBhcmVudCAkZnVsbCkgLW5lICRw
YXJlbnQgLW9yIC1ub3QgKFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRmdWxsKSkuU3Rh
cnRzV2l0aCgnYXV4LScpKSB7DQogICAgICAgIHRocm93ICfthYzsiqTtirgg7J6E7IucIO2PtOuN
lOqwgCBmaXh0dXJlcyDsp4HtlZjqsIAg7JWE64uI66+A66GcIOyCreygnO2VmOyngCDslYrsirXr
i4jri6QuJw0KICAgIH0NCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkb3du
ZXJzaGlwTWFya2VyIC1QYXRoVHlwZSBMZWFmKSkgeyB0aHJvdyAn7YWM7Iqk7Yq4IOyGjOycoCDt
kZzsp4DqsIAg7JeG7Ja0IOyehOyLnCDtj7TrjZTrpbwg7IKt7KCc7ZWY7KeAIOyViuyKteuLiOuL
pC4nIH0NCiAgICAkb3duZWQgPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJG93bmVyc2hpcE1h
cmtlciAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgIGlmIChbc3Ry
aW5nXSRvd25lZC5jYXNlSWQgLW5lICRjYXNlSWQpIHsgdGhyb3cgJ+2FjOyKpO2KuCDshozsnKAg
SUTqsIAg64us6528IOyehOyLnCDtj7TrjZTrpbwg7IKt7KCc7ZWY7KeAIOyViuyKteuLiOuLpC4n
IH0NCiAgICBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkY2FzZVJvb3QgLUZvcmNlIC1SZWN1
cnNlIC1GaWxlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgRm9yRWFjaC1PYmplY3Qg
ew0KICAgICAgICBpZiAoKCRfLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmli
dXRlc106OlJlYWRPbmx5KSAtbmUgMCkgew0KICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6
U2V0QXR0cmlidXRlcygkXy5GdWxsTmFtZSwgKCRfLkF0dHJpYnV0ZXMgLWJhbmQgKC1ibm90IFtT
eXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZWFkT25seSkpKQ0KICAgICAgICB9DQogICAgfQ0K
ICAgIFtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6RGVsZXRlKCRjYXNlUm9vdCwgJHRydWUpDQp9DQoN
CnRyeSB7DQogICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJGNhc2VS
b290KSB8IE91dC1OdWxsDQogICAgV3JpdGUtVXRmOCAtUGF0aCAkb3duZXJzaGlwTWFya2VyIC1U
ZXh0ICgoW3BzY3VzdG9tb2JqZWN0XUB7IGNhc2VJZCA9ICRjYXNlSWQgfSB8IENvbnZlcnRUby1K
c29uKSArIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUpDQogICAgV3JpdGUtVXRmOCAtUGF0aCAoSm9p
bi1QYXRoICRjYXNlUm9vdCAnQUdFTlRTLm1kJykgLVRleHQgIiMgQXV4aWxpYXJ5IGRpc3Bvc2Fi
bGUgc291bGByYG5gcmBuPCEtLSDthYzsiqTtirgg7KCE7JqpOyDsg4HsnIQg6rec7LmZIOyerOyE
nOyIoCDquIjsp4AgLS0+YHJgbiINCiAgICBXcml0ZS1VdGY4IC1QYXRoIChKb2luLVBhdGggJGNh
c2VSb290ICdDTEFVREUubWQnKSAtVGV4dCAiQEFHRU5UUy5tZGByYG4iDQogICAgJHNvdWxJZCA9
IFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCkNCiAgICBXcml0ZS1VdGY4IC1QYXRoIChKb2lu
LVBhdGggJGNhc2VSb290ICdzb3VsLXN0YXRlLmpzb24nKSAtVGV4dCAoKFtwc2N1c3RvbW9iamVj
dF1AeyBzY2hlbWFWZXJzaW9uID0gMTsgc291bElkID0gJHNvdWxJZDsgc291bE5hbWUgPSAnQXV4
VGVzdCcgfSB8IENvbnZlcnRUby1Kc29uKSArIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUpDQogICAg
JHNjb3BlUGF0aCA9IEpvaW4tUGF0aCAkY2FzZVJvb3QgJ1IwMS3thYzsiqTtirgoVGVzdCknDQog
ICAgW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHNjb3BlUGF0aCkgfCBP
dXQtTnVsbA0KICAgIFdyaXRlLVV0ZjggLVBhdGggKEpvaW4tUGF0aCAkc2NvcGVQYXRoICdBR0VO
VFMubWQnKSAtVGV4dCAiIyDthYzsiqTtirgg7Jet7ZWgYHJgbmByYG48IS0tIO2FjOyKpO2KuCDs
oITsmqk7IOyDgeychCDqt5zsuZkg7J6s7ISc7IigIOq4iOyngCAtLT5gcmBuIg0KICAgIFdyaXRl
LVV0ZjggLVBhdGggKEpvaW4tUGF0aCAkc2NvcGVQYXRoICdDTEFVREUubWQnKSAtVGV4dCAiQEFH
RU5UUy5tZGByYG4iDQoNCiAgICBmb3JlYWNoICgkbmFtZSBpbiBAKCd3aXphcmQucHMxJywgJ2hh
bmRvZmYucHMxJywgJ2V4cG9ydC1yZXN0b3JlLnBzMScsICdzZWNyZXRzLXZhdWx0LnBzMScpKSB7
DQogICAgICAgICRwYXRoID0gSm9pbi1QYXRoICRzZXR1cFJvb3QgJG5hbWUNCiAgICAgICAgJHRv
a2VucyA9ICRudWxsOyAkcGFyc2VFcnJvcnMgPSAkbnVsbA0KICAgICAgICBbU3lzdGVtLk1hbmFn
ZW1lbnQuQXV0b21hdGlvbi5MYW5ndWFnZS5QYXJzZXJdOjpQYXJzZUZpbGUoJHBhdGgsIFtyZWZd
JHRva2VucywgW3JlZl0kcGFyc2VFcnJvcnMpIHwgT3V0LU51bGwNCiAgICAgICAgQXNzZXJ0LVRy
dWUgLU5hbWUgIiRuYW1lIHBhcnNlcyBpbiBXaW5kb3dzIFBvd2VyU2hlbGwgNS4xIiAtQ29uZGl0
aW9uIChAKCRwYXJzZUVycm9ycykuQ291bnQgLWVxIDApDQogICAgfQ0KDQogICAgJHdpemFyZFJl
c3VsdCA9ICYgKEpvaW4tUGF0aCAkc2V0dXBSb290ICd3aXphcmQucHMxJykgLVNvdWxSb290ICdD
OlxJUklTJyAtU2VsZlRlc3QNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnd2l6YXJkIHNjaGVtYS9z
ZWN1cml0eSBzZWxmLXRlc3QnIC1Db25kaXRpb24gKFtzdHJpbmddJHdpemFyZFJlc3VsdC5zdGF0
dXMgLWVxICdQQVNTJykNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnd2l6YXJkIHRlc3RzIGFjdGl2
ZSBSIGd1YXJkJyAtQ29uZGl0aW9uIChAKCR3aXphcmRSZXN1bHQudGVzdHMpIC1jb250YWlucyAn
YWN0aXZlLVItcmVxdWlyZWQnKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd3aXphcmQgdGVzdHMg
ZGVmZXJyZWQgcGFyZW50IGd1YXJkJyAtQ29uZGl0aW9uIChAKCR3aXphcmRSZXN1bHQudGVzdHMp
IC1jb250YWlucyAnZGVmZXJyZWQtcGFyZW50LWd1YXJkJykNCg0KICAgICRleHBvcnRSZXN1bHQg
PSAmIChKb2luLVBhdGggJHNldHVwUm9vdCAnZXhwb3J0LXJlc3RvcmUucHMxJykgLUFjdGlvbiBT
ZWxmVGVzdA0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdleHBvcnQvcmVzdG9yZSBwYXRoIHNlbGYt
dGVzdCcgLUNvbmRpdGlvbiAoW3N0cmluZ10kZXhwb3J0UmVzdWx0LnN0YXR1cyAtZXEgJ1BBU1Mn
KQ0KDQogICAgJHNlY3JldHNSZXN1bHQgPSAmIChKb2luLVBhdGggJHNldHVwUm9vdCAnc2VjcmV0
cy12YXVsdC5wczEnKSAtQWN0aW9uIFNlbGZUZXN0DQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3Jl
Y292ZXJ5IHBocmFzZSBITUFDIHNlbGYtdGVzdCcgLUNvbmRpdGlvbiAoW3N0cmluZ10kc2VjcmV0
c1Jlc3VsdC5zdGF0dXMgLWVxICdQQVNTJyAtYW5kIEAoJHNlY3JldHNSZXN1bHQudGVzdHMpIC1j
b250YWlucyAnUEJLREYyLUhNQUMtU0hBMjU2LXZlcmlmaWVyJykNCiAgICBBc3NlcnQtVHJ1ZSAt
TmFtZSAnc2FtZS1ob3N0IERQQVBJIHNlbGYtdGVzdCcgLUNvbmRpdGlvbiAoQCgkc2VjcmV0c1Jl
c3VsdC50ZXN0cykgLWNvbnRhaW5zICdzYW1lLWhvc3QtRFBBUEktbWVtb3J5LXJvdW5kdHJpcCcp
DQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2NyZWRlbnRpYWwgZmlsZSBwb3J0YWJsZSBjYXB0dXJl
IHNlbGYtdGVzdCcgLUNvbmRpdGlvbiAoQCgkc2VjcmV0c1Jlc3VsdC50ZXN0cykgLWNvbnRhaW5z
ICdjcmVkZW50aWFsLWZpbGUtZW5jcnlwdGVkLWNhcHR1cmUtbW9kZWwnKQ0KICAgIEFzc2VydC1U
cnVlIC1OYW1lICdyZXN0cmljdGVkIHJ1bnRpbWUgbGVhc2UgY2xlYW51cCBzZWxmLXRlc3QnIC1D
b25kaXRpb24gKEAoJHNlY3JldHNSZXN1bHQudGVzdHMpIC1jb250YWlucyAncmVzdHJpY3RlZC1y
dW50aW1lLWxlYXNlLXJlc3RvcmUtY2xlYW51cCcpDQogICAgJGFnZVJlYWR5ID0gW3N0cmluZ10k
c2VjcmV0c1Jlc3VsdC5hZ2VJbnRlZ3JhdGlvbiAtZXEgJ1BBU1MnDQogICAgJGFnZVBlbmRpbmcg
PSBbc3RyaW5nXSRzZWNyZXRzUmVzdWx0LmFnZUludGVncmF0aW9uIC1lcSAnU0tJUFBFRDogcGlu
bmVkIGFnZSAxLjMuMSDrj4Tqtawg7IS4IOuyjCDrmJDripQg6rKA7KadIHJlY2VpcHTqsIAg7JWE
7KeBIOyXhuydjCcNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnYWdlIGludGVncmF0aW9uIHJlcG9y
dHMgdmVyaWZpZWQgUEFTUyBvciBhbiBleGFjdCBob25lc3QgcGVuZGluZyByZWFzb24nIC1Db25k
aXRpb24gKCRhZ2VSZWFkeSAtb3IgJGFnZVBlbmRpbmcpDQogICAgaWYgKCRhZ2VSZWFkeSkgew0K
ICAgICAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnYWdlIDEuMy4xIHJlY2lwaWVudCBmaXh0dXJlIHJv
dW5kLXRyaXAnIC1Db25kaXRpb24gKEAoJHNlY3JldHNSZXN1bHQudGVzdHMpIC1jb250YWlucyAn
YWdlLTEuMy4xLXJlY2lwaWVudC1yb3VuZHRyaXAnKQ0KICAgICAgICBBc3NlcnQtVHJ1ZSAtTmFt
ZSAnYWdlIDEuMy4xIGJhdGNocGFzcyBlbnZpcm9ubWVudCByb3VuZC10cmlwJyAtQ29uZGl0aW9u
IChAKCRzZWNyZXRzUmVzdWx0LnRlc3RzKSAtY29udGFpbnMgJ2FnZS0xLjMuMS1iYXRjaHBhc3Mt
QUdFX1BBU1NQSFJBU0Utcm91bmR0cmlwJykNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIEFz
c2VydC1UcnVlIC1OYW1lICd1bnByZXBhcmVkIGFnZSB0b29scyBuZXZlciBjbGFpbSBhIHJvdW5k
LXRyaXAgdGVzdCcgLUNvbmRpdGlvbiAoDQogICAgICAgICAgICBAKCRzZWNyZXRzUmVzdWx0LnRl
c3RzIHwgV2hlcmUtT2JqZWN0IHsgJF8gLWxpa2UgJ2FnZS0xLjMuMS0qLXJvdW5kdHJpcCcgfSku
Q291bnQgLWVxIDANCiAgICAgICAgKQ0KICAgIH0NCg0KICAgICRoYW5kb2ZmID0gSm9pbi1QYXRo
ICRzZXR1cFJvb3QgJ2hhbmRvZmYucHMxJw0KICAgICRyZWdpc3RyYXRpb24gPSAmICRoYW5kb2Zm
IC1BY3Rpb24gUmVnaXN0ZXJTY29wZSAtU291bFJvb3QgJGNhc2VSb290IC1TY29wZVBhdGggJHNj
b3BlUGF0aA0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdzY29wZSBVVUlEIG1hcmtlciBjcmVhdGVk
JyAtQ29uZGl0aW9uIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHNjb3BlUGF0
aCAnLnNvdWwtc2NvcGUuanNvbicpIC1QYXRoVHlwZSBMZWFmKQ0KICAgIEFzc2VydC1UcnVlIC1O
YW1lICdzY29wZSBhbGlhcyByZWdpc3RyeSBjcmVhdGVkJyAtQ29uZGl0aW9uIChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGNhc2VSb290ICdfYWdlbnRcc2hhcmVkXGhhbmRvZmZc
c2NvcGUtcmVnaXN0cnkuanNvbicpIC1QYXRoVHlwZSBMZWFmKQ0KICAgICRwYXJzZWRTY29wZUlk
ID0gW2d1aWRdOjpFbXB0eQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdzY29wZSBJRCBpcyBVVUlE
JyAtQ29uZGl0aW9uIChbZ3VpZF06OlRyeVBhcnNlKFtzdHJpbmddJHJlZ2lzdHJhdGlvbi5zY29w
ZUlkLCBbcmVmXSRwYXJzZWRTY29wZUlkKSkNCg0KICAgICRvbmUgPSAmICRoYW5kb2ZmIC1BY3Rp
b24gQXBwZW5kIC1Tb3VsUm9vdCAkY2FzZVJvb3QgLVNjb3BlUGF0aCAkc2NvcGVQYXRoIC1BZ2Vu
dCBjbGF1ZGUgLUtpbmQgVXNlckRpcmVjdGl2ZSAtQWN0b3IgdXNlciAtQ29udGVudCAn7J6Q66OM
66W8IOyCreygnO2VmOyngCDslYrripTri6QuJw0KICAgICR0d28gPSAmICRoYW5kb2ZmIC1BY3Rp
b24gQXBwZW5kIC1Tb3VsUm9vdCAkY2FzZVJvb3QgLVNjb3BlUGF0aCAkc2NvcGVQYXRoIC1BZ2Vu
dCBjb2RleCAtS2luZCBBcHByb3ZlZERlY2lzaW9uIC1BcHByb3ZlZEJ5IHVzZXIgLUNvbnRlbnQg
J+uRkCDsl5DsnbTsoITtirjqsIAg6rCZ7J2AIOyepeu2gOulvCDsk7Tri6QuJw0KICAgICR0aHJl
ZSA9ICYgJGhhbmRvZmYgLUFjdGlvbiBBcHBlbmQgLVNvdWxSb290ICRjYXNlUm9vdCAtU2NvcGVQ
YXRoICRzY29wZVBhdGggLUFnZW50IGNvZGV4IC1LaW5kIEFnZW50SW5mZXJlbmNlIC1Db250ZW50
ICfri6TsnYwg7J6R7JeF7J2AIOqygOymneydtCDtlYTsmpTtlbQg67O07J2464ukLicNCiAgICBB
c3NlcnQtVHJ1ZSAtTmFtZSAnc2VxdWVuY2VzIGFyZSBtb25vdG9uaWMnIC1Db25kaXRpb24gKCRv
bmUuc2VxdWVuY2UgLWVxIDEgLWFuZCAkdHdvLnNlcXVlbmNlIC1lcSAyIC1hbmQgJHRocmVlLnNl
cXVlbmNlIC1lcSAzKQ0KDQogICAgQXNzZXJ0LVRocm93cyAtTmFtZSAnaW5mZXJlbmNlIGNhbm5v
dCBjbGFpbSB1c2VyIGFwcHJvdmFsJyAtQm9keSB7DQogICAgICAgICYgJGhhbmRvZmYgLUFjdGlv
biBBcHBlbmQgLVNvdWxSb290ICRjYXNlUm9vdCAtU2NvcGVQYXRoICRzY29wZVBhdGggLUFnZW50
IGNvZGV4IC1LaW5kIEFnZW50SW5mZXJlbmNlIC1BcHByb3ZlZEJ5IHVzZXIgLUNvbnRlbnQgJ+ye
mOuqu+uQnCDsirnsnbgg7ZGc7IudJyB8IE91dC1OdWxsDQogICAgfQ0KICAgICRzdGF0dXNBZnRl
clJlamVjdCA9ICYgJGhhbmRvZmYgLUFjdGlvbiBTdGF0dXMgLVNvdWxSb290ICRjYXNlUm9vdCAt
U2NvcGVQYXRoICRzY29wZVBhdGgNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAncmVqZWN0ZWQgZXZl
bnQgbGVhdmVzIGxlZGdlciB1bmNoYW5nZWQnIC1Db25kaXRpb24gKCRzdGF0dXNBZnRlclJlamVj
dC5ldmVudENvdW50IC1lcSAzIC1hbmQgJHN0YXR1c0FmdGVyUmVqZWN0Lmxhc3RTZXF1ZW5jZSAt
ZXEgMykNCg0KICAgICRqb2JzID0gQCgNCiAgICAgICAgU3RhcnQtSm9iIC1TY3JpcHRCbG9jayB7
IHBhcmFtKCRzY3JpcHRQYXRoLCAkcm9vdCwgJHNjb3BlKSAmICRzY3JpcHRQYXRoIC1BY3Rpb24g
QXBwZW5kIC1Tb3VsUm9vdCAkcm9vdCAtU2NvcGVQYXRoICRzY29wZSAtQWdlbnQgY2xhdWRlIC1L
aW5kIEFnZW50SW5mZXJlbmNlIC1Db250ZW50ICfrj5nsi5wg6riw66GdIEEnIH0gLUFyZ3VtZW50
TGlzdCAkaGFuZG9mZiwgJGNhc2VSb290LCAkc2NvcGVQYXRoDQogICAgICAgIFN0YXJ0LUpvYiAt
U2NyaXB0QmxvY2sgeyBwYXJhbSgkc2NyaXB0UGF0aCwgJHJvb3QsICRzY29wZSkgJiAkc2NyaXB0
UGF0aCAtQWN0aW9uIEFwcGVuZCAtU291bFJvb3QgJHJvb3QgLVNjb3BlUGF0aCAkc2NvcGUgLUFn
ZW50IGNvZGV4IC1LaW5kIEFnZW50SW5mZXJlbmNlIC1Db250ZW50ICfrj5nsi5wg6riw66GdIEIn
IH0gLUFyZ3VtZW50TGlzdCAkaGFuZG9mZiwgJGNhc2VSb290LCAkc2NvcGVQYXRoDQogICAgKQ0K
ICAgIHRyeSB7DQogICAgICAgICRqb2JzIHwgV2FpdC1Kb2IgLVRpbWVvdXQgNDUgfCBPdXQtTnVs
bA0KICAgICAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnY29uY3VycmVudCBhcHBlbmQgam9icyBjb21w
bGV0ZScgLUNvbmRpdGlvbiAoQCgkam9icyB8IFdoZXJlLU9iamVjdCBTdGF0ZSAtbmUgJ0NvbXBs
ZXRlZCcpLkNvdW50IC1lcSAwKQ0KICAgICAgICAkam9iRXJyb3JzID0gQCgpDQogICAgICAgIGZv
cmVhY2ggKCRqb2IgaW4gJGpvYnMpIHsgJG51bGwgPSBSZWNlaXZlLUpvYiAtSm9iICRqb2IgLUVy
cm9yVmFyaWFibGUgK2pvYkVycm9ycyAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9DQog
ICAgICAgIEFzc2VydC1UcnVlIC1OYW1lICdjb25jdXJyZW50IGFwcGVuZCBqb2JzIGhhdmUgbm8g
ZXJyb3JzJyAtQ29uZGl0aW9uICgkam9iRXJyb3JzLkNvdW50IC1lcSAwKQ0KICAgIH0NCiAgICBm
aW5hbGx5IHsgJGpvYnMgfCBSZW1vdmUtSm9iIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlD
b250aW51ZSB9DQoNCiAgICAkc2NvcGVEaXJlY3RvcnkgPSBKb2luLVBhdGggJGNhc2VSb290ICgn
X2FnZW50XHNoYXJlZFxoYW5kb2ZmXCcgKyBbc3RyaW5nXSRyZWdpc3RyYXRpb24uc2NvcGVJZCkN
CiAgICAkZXZlbnRzID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRz
Y29wZURpcmVjdG9yeSAnZXZlbnRzJykgLUZpbHRlciAnKi5qc29uJyAtRmlsZSAtUmVjdXJzZSB8
IEZvckVhY2gtT2JqZWN0IHsgR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRfLkZ1bGxOYW1lIC1S
YXcgLUVuY29kaW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uIH0gfCBTb3J0LU9iamVjdCB7IFts
b25nXSRfLnNlcXVlbmNlIH0pDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2NvbmN1cnJlbnQgc2Vx
dWVuY2VzIHJlbWFpbiB1bmlxdWUgYW5kIGNvbnRpZ3VvdXMnIC1Db25kaXRpb24gKCgkZXZlbnRz
LnNlcXVlbmNlIC1qb2luICcsJykgLWVxICcxLDIsMyw0LDUnKQ0KICAgICRldmVudEZpbGVzID0g
QChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRzY29wZURpcmVjdG9yeSAn
ZXZlbnRzJykgLUZpbHRlciAnKi5qc29uJyAtRmlsZSAtUmVjdXJzZSkNCiAgICBBc3NlcnQtVHJ1
ZSAtTmFtZSAnaW1tdXRhYmxlIGV2ZW50cyBoYXZlIFVVSUQgbmFtZXMnIC1Db25kaXRpb24gKEAo
JGV2ZW50RmlsZXMgfCBXaGVyZS1PYmplY3QgeyBbZ3VpZF06OkVtcHR5IC1lcSAkKHRyeSB7IFtn
dWlkXSRfLkJhc2VOYW1lIH0gY2F0Y2ggeyBbZ3VpZF06OkVtcHR5IH0pIH0pLkNvdW50IC1lcSAw
KQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdpbW11dGFibGUgZXZlbnRzIGFyZSByZWFkLW9ubHkg
Z3VhcmRlZCcgLUNvbmRpdGlvbiAoQCgkZXZlbnRGaWxlcyB8IFdoZXJlLU9iamVjdCB7ICgkXy5B
dHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZWFkT25seSkgLWVx
IDAgfSkuQ291bnQgLWVxIDApDQoNCiAgICAkY3VycmVudCA9IEdldC1Db250ZW50IC1MaXRlcmFs
UGF0aCAoSm9pbi1QYXRoICRzY29wZURpcmVjdG9yeSAnQ1VSUkVOVC5tZCcpIC1SYXcgLUVuY29k
aW5nIFVURjgNCiAgICAkbWVtb3J5ID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoIChKb2luLVBh
dGggJHNjb3BlRGlyZWN0b3J5ICdNRU1PUlkubWQnKSAtUmF3IC1FbmNvZGluZyBVVEY4DQogICAg
QXNzZXJ0LVRydWUgLU5hbWUgJ0NVUlJFTlQgc2VwYXJhdGVzIHVzZXIgZGlyZWN0aXZlJyAtQ29u
ZGl0aW9uICgkY3VycmVudC5Db250YWlucygn7IKs7Jqp7J6Q6rCAIOyngeygkSDrp5DtlZwg7KeA
7IucJykpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ0NVUlJFTlQgbGFiZWxzIGFnZW50IGluZmVy
ZW5jZScgLUNvbmRpdGlvbiAoJGN1cnJlbnQuQ29udGFpbnMoJ+yXkOydtOyghO2KuOydmCDstpTr
oaAnKSkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnTUVNT1JZIHByZXNlcnZlcyBhcHByb3ZlZCBk
ZWNpc2lvbnMnIC1Db25kaXRpb24gKCRtZW1vcnkuQ29udGFpbnMoJ+yKueyduOuQnCDqsrDsoJUn
KSkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnZGVyaXZlZCByZXZpc2lvbnMgYXJlIHByZXNlcnZl
ZCcgLUNvbmRpdGlvbiAoQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRz
Y29wZURpcmVjdG9yeSAncmV2aXNpb25zJykgLUZpbGUpLkNvdW50IC1ndCAwKQ0KDQogICAgJHNl
c3Npb25zID0gJiAkaGFuZG9mZiAtQWN0aW9uIFNldFNlc3Npb25zIC1Tb3VsUm9vdCAkY2FzZVJv
b3QgLVNjb3BlUGF0aCAkc2NvcGVQYXRoIC1DbGF1ZGVTZXNzaW9uSWQgJ2NsYXVkZS1leGFjdC10
ZXN0LWlkJyAtQ29kZXhTZXNzaW9uSWQgJ2NvZGV4LWV4YWN0LXRlc3QtaWQnDQogICAgQXNzZXJ0
LVRydWUgLU5hbWUgJ2V4YWN0IG5hdGl2ZSBzZXNzaW9uIElEcyByZWNvcmRlZCcgLUNvbmRpdGlv
biAoJHNlc3Npb25zLmNsYXVkZS5zZXNzaW9uSWQgLWVxICdjbGF1ZGUtZXhhY3QtdGVzdC1pZCcg
LWFuZCAkc2Vzc2lvbnMuY29kZXguc2Vzc2lvbklkIC1lcSAnY29kZXgtZXhhY3QtdGVzdC1pZCcp
DQoNCiAgICBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgc3RhdHVzID0gJ1BBU1MnDQogICAg
ICAgIHBhc3NlZCA9ICRzY3JpcHQ6UGFzc2VkDQogICAgICAgIGFnZUludGVncmF0aW9uID0gW3N0
cmluZ10kc2VjcmV0c1Jlc3VsdC5hZ2VJbnRlZ3JhdGlvbg0KICAgICAgICBmaXh0dXJlUmVtb3Zl
ZCA9ICR0cnVlDQogICAgfQ0KfQ0KZmluYWxseSB7DQogICAgUmVtb3ZlLU93bmVkRml4dHVyZQ0K
fQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-BootstrapV7.ps1","encoding":"base64","size":36768,"runtimeSha256":"b64e531f1050afcac2fa9ce583337113c988050fe0b4e1aa967a1b16189ac2a4","normalizedSha256":"67ef68b90322195c82c91ec3cda15f128bd3f53c146866b102905a587a33c74e"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJHNjcmlwdDpQYXNzZWQgPSAwDQokc2NyaXB0OkZhaWxlZCA9IDANCiR1dGY4
Tm9Cb20gPSBOZXctT2JqZWN0IFN5c3RlbS5UZXh0LlVURjhFbmNvZGluZygkZmFsc2UpDQokc2V0
dXBSb290ID0gW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgoSm9pbi1QYXRoICRQU1NjcmlwdFJvb3Qg
Jy4uJykpLlRyaW1FbmQoJ1wnLCAnLycpDQokZml4dHVyZUJvdW5kYXJ5ID0gSm9pbi1QYXRoICRQ
U1NjcmlwdFJvb3QgJ2ZpeHR1cmVzJw0KJGNhc2VSb290ID0gSm9pbi1QYXRoICRmaXh0dXJlQm91
bmRhcnkgKCdib290c3RyYXAtJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykpDQoN
CmZ1bmN0aW9uIEFzc2VydC1UcnVlIHsNCiAgICBwYXJhbShbc3RyaW5nXSROYW1lLCBbYm9vbF0k
Q29uZGl0aW9uKQ0KICAgIGlmICgtbm90ICRDb25kaXRpb24pIHsgJHNjcmlwdDpGYWlsZWQrKzsg
dGhyb3cgIkZBSUwgICROYW1lIiB9DQogICAgJHNjcmlwdDpQYXNzZWQrKw0KICAgIFdyaXRlLUhv
c3QgIlBBU1MgICROYW1lIg0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtRXF1YWwgew0KICAgIHBhcmFt
KFtzdHJpbmddJE5hbWUsICRFeHBlY3RlZCwgJEFjdHVhbCkNCiAgICBpZiAoW3N0cmluZ10kRXhw
ZWN0ZWQgLWNuZSBbc3RyaW5nXSRBY3R1YWwpIHsNCiAgICAgICAgJHNjcmlwdDpGYWlsZWQrKw0K
ICAgICAgICB0aHJvdyAiRkFJTCAgJE5hbWVgbiAgZXhwZWN0ZWQ6ICRFeHBlY3RlZGBuICBhY3R1
YWw6ICAgJEFjdHVhbCINCiAgICB9DQogICAgJHNjcmlwdDpQYXNzZWQrKw0KICAgIFdyaXRlLUhv
c3QgIlBBU1MgICROYW1lIg0KfQ0KDQpmdW5jdGlvbiBHZXQtT3B0aW9uYWxIYXNoIHsNCiAgICBw
YXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRQYXRoIC1QYXRoVHlwZSBMZWFmKSkgeyByZXR1cm4gJzxtaXNzaW5nPicgfQ0KICAgIHJldHVy
biAoR2V0LUZpbGVIYXNoIC1MaXRlcmFsUGF0aCAkUGF0aCAtQWxnb3JpdGhtIFNIQTI1NikuSGFz
aC5Ub0xvd2VySW52YXJpYW50KCkNCn0NCg0KZnVuY3Rpb24gV3JpdGUtVXRmOCB7DQogICAgcGFy
YW0oW3N0cmluZ10kUGF0aCwgW0FsbG93RW1wdHlTdHJpbmcoKV1bc3RyaW5nXSRUZXh0KQ0KICAg
ICRwYXJlbnQgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJFBhdGgNCiAgICBpZiAoLW5vdCAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkcGFyZW50KSkgeyBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRl
RGlyZWN0b3J5KCRwYXJlbnQpIH0NCiAgICBbSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkUGF0aCwg
JFRleHQsICR1dGY4Tm9Cb20pDQp9DQoNCmZ1bmN0aW9uIFdyaXRlLUpzb24gew0KICAgIHBhcmFt
KFtzdHJpbmddJFBhdGgsICRWYWx1ZSkNCiAgICBXcml0ZS1VdGY4IC1QYXRoICRQYXRoIC1UZXh0
ICgoJFZhbHVlIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDY0KSArICJgcmBuIikNCn0NCg0KZnVu
Y3Rpb24gR2V0LVRvcExldmVsSW52ZW50b3J5SGFzaCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0
aCkNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5cGUg
Q29udGFpbmVyKSkgeyByZXR1cm4gJzxtaXNzaW5nPicgfQ0KICAgICRyb3dzID0gQChHZXQtQ2hp
bGRJdGVtIC1MaXRlcmFsUGF0aCAkUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3AgfCBTb3J0
LU9iamVjdCBOYW1lIHwgRm9yRWFjaC1PYmplY3QgeyAkbGVuZ3RoPWlmKCRfLlBTSXNDb250YWlu
ZXIpeyc8ZGlyPid9ZWxzZXtbc3RyaW5nXSRfLkxlbmd0aH07J3swfXx7MX18ezJ9fHszfScgLWYg
JF8uTmFtZSwkXy5QU0lzQ29udGFpbmVyLCRsZW5ndGgsJF8uTGFzdFdyaXRlVGltZVV0Yy5UaWNr
cyB9KQ0KICAgICRhbGdvcml0aG09W1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVh
dGUoKQ0KICAgIHRyeSB7IHJldHVybiAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRhbGdvcml0
aG0uQ29tcHV0ZUhhc2goW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCgkcm93cyAtam9p
biAiYG4iKSkpKSkuUmVwbGFjZSgnLScsJycpLlRvTG93ZXJJbnZhcmlhbnQoKSB9DQogICAgZmlu
YWxseSB7ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gV3JpdGUtTWluaW1h
bEljbyB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICBbYnl0ZVtdXSRieXRlcyA9IEAo
MCwwLDEsMCwxLDAsMSwxLDAsMCwxLDAsMzIsMCw4LDAsMCwwLDIyLDAsMCwwLDEzNyw4MCw3OCw3
MSwxMywxMCwyNiwxMCkNCiAgICBbSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFBhdGgsICRieXRl
cykNCn0NCg0KZnVuY3Rpb24gTmV3LVRlc3RTb3VsUGF5bG9hZCB7DQogICAgcGFyYW0oW3N0cmlu
Z10kTmFtZSkNCiAgICAkcm9vdCA9IEpvaW4tUGF0aCAkY2FzZVJvb3QgJE5hbWUNCiAgICAkdGFy
Z2V0U2V0dXAgPSBKb2luLVBhdGggJHJvb3QgJ19hZ2VudFxzZXR1cCcNCiAgICAkdGFyZ2V0RW5n
aW5lID0gSm9pbi1QYXRoICR0YXJnZXRTZXR1cCAnZW5naW5lJw0KICAgICR0YXJnZXRNYW5pZmVz
dHMgPSBKb2luLVBhdGggJHRhcmdldFNldHVwICdtYW5pZmVzdHMnDQogICAgZm9yZWFjaCAoJGRp
cmVjdG9yeSBpbiBAKCR0YXJnZXRFbmdpbmUsICR0YXJnZXRNYW5pZmVzdHMpKSB7IFt2b2lkXVtJ
Ty5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJGRpcmVjdG9yeSkgfQ0KDQogICAgW0lPLkZp
bGVdOjpDb3B5KChKb2luLVBhdGggJHNldHVwUm9vdCAnYm9vdHN0cmFwLXY3LnBzMScpLCAoSm9p
bi1QYXRoICR0YXJnZXRTZXR1cCAnYm9vdHN0cmFwLXY3LnBzMScpLCAkZmFsc2UpDQogICAgW0lP
LkZpbGVdOjpDb3B5KChKb2luLVBhdGggJHNldHVwUm9vdCAnZW5naW5lXFNvdWwuRW5naW5lLnBz
bTEnKSwgKEpvaW4tUGF0aCAkdGFyZ2V0RW5naW5lICdTb3VsLkVuZ2luZS5wc20xJyksICRmYWxz
ZSkNCiAgICBbSU8uRmlsZV06OkNvcHkoKEpvaW4tUGF0aCAkc2V0dXBSb290ICdtYW5pZmVzdHNc
c291bC1zdGF0ZS5zY2hlbWEuanNvbicpLCAoSm9pbi1QYXRoICR0YXJnZXRNYW5pZmVzdHMgJ3Nv
dWwtc3RhdGUuc2NoZW1hLmpzb24nKSwgJGZhbHNlKQ0KICAgIFdyaXRlLVV0ZjggLVBhdGggKEpv
aW4tUGF0aCAkdGFyZ2V0TWFuaWZlc3RzICd2Ny1sb2NrLmpzb24nKSAtVGV4dCAie2ByYG4gIGAi
c2NoZW1hVmVyc2lvbmAiOiA3LGByYG4gIGAiZml4dHVyZWAiOiB0cnVlYHJgbn1gcmBuIg0KDQog
ICAgJG1hcFN0dWIgPSBAJw0KI3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KW0NtZGxldEJpbmRpbmco
KV0gcGFyYW0oW3N0cmluZ10kU291bFJvb3QpDQokc2V0dXAgPSAkUFNTY3JpcHRSb290DQokY291
bnRQYXRoID0gSm9pbi1QYXRoICRzZXR1cCAnbWFwLWNhbGwtY291bnQudHh0Jw0KJGNvdW50ID0g
aWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNvdW50UGF0aCkgeyBbaW50XShHZXQtQ29udGVu
dCAtTGl0ZXJhbFBhdGggJGNvdW50UGF0aCAtUmF3KSB9IGVsc2UgeyAwIH0NCltJTy5GaWxlXTo6
V3JpdGVBbGxUZXh0KCRjb3VudFBhdGgsIFtzdHJpbmddKCRjb3VudCArIDEpLCAoTmV3LU9iamVj
dCBUZXh0LlVURjhFbmNvZGluZygkZmFsc2UpKSkNCiR0YXJnZXQgPSBKb2luLVBhdGggJFNvdWxS
b290ICdzdHJ1Y3R1cmUtbWFwLmh0bWwnDQpbSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkdGFyZ2V0
LCAnPCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0ia28iPjxib2R5PmZpeHR1cmUgbWFwPC9ib2R5
PjwvaHRtbD4nLCAoTmV3LU9iamVjdCBUZXh0LlVURjhFbmNvZGluZygkZmFsc2UpKSkNCltwc2N1
c3RvbW9iamVjdF1AeyBzdGF0dXMgPSAnZ2VuZXJhdGVkJzsgb3V0cHV0UGF0aCA9ICR0YXJnZXQ7
IG5vZGVDb3VudCA9IDUgfQ0KJ0ANCiAgICAkc3RhZ2VTdHViID0gQCcNCiNyZXF1aXJlcyAtVmVy
c2lvbiA1LjENCltDbWRsZXRCaW5kaW5nKCldIHBhcmFtKFtzd2l0Y2hdJFByZXBhcmVTdGF0aWNT
dGFnZSxbc3RyaW5nXSRUZXN0Um9vdCkNCmlmICgtbm90ICRQcmVwYXJlU3RhdGljU3RhZ2UpIHsg
dGhyb3cgJ2ZpeHR1cmUgc3RhZ2UgcmVxdWlyZXMgUHJlcGFyZVN0YXRpY1N0YWdlJyB9DQokc2V0
dXAgPSAkUFNTY3JpcHRSb290DQokY291bnRQYXRoID0gSm9pbi1QYXRoICRzZXR1cCAnc3RhZ2Ut
Y2FsbC1jb3VudC50eHQnDQokY291bnQgPSBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY291
bnRQYXRoKSB7IFtpbnRdKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkY291bnRQYXRoIC1SYXcp
IH0gZWxzZSB7IDAgfQ0KW0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoJGNvdW50UGF0aCwgW3N0cmlu
Z10oJGNvdW50ICsgMSksIChOZXctT2JqZWN0IFRleHQuVVRGOEVuY29kaW5nKCRmYWxzZSkpKQ0K
JGdlbmVyYXRpb25JZCA9IGlmICgkY291bnQgLWVxIDApIHsgJ3Y3LWZpeHR1cmUtZ2VuZXJhdGlv
bicgfSBlbHNlIHsgJ3Y3LWZpeHR1cmUtZ2VuZXJhdGlvbi0nICsgW3N0cmluZ10oJGNvdW50ICsg
MSkgfQ0KJGdlbmVyYXRpb25EaXJlY3RvcnkgPSBKb2luLVBhdGggJHNldHVwICgnZ2VuZXJhdGlv
bnNcJyArICRnZW5lcmF0aW9uSWQpDQpbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0
b3J5KCRnZW5lcmF0aW9uRGlyZWN0b3J5KQ0KJGxvY2tQYXRoPUpvaW4tUGF0aCAkc2V0dXAgJ21h
bmlmZXN0c1x2Ny1sb2NrLmpzb24nOyRsb2NrSGFzaD0oR2V0LUZpbGVIYXNoIC1MaXRlcmFsUGF0
aCAkbG9ja1BhdGggLUFsZ29yaXRobSBTSEEyNTYpLkhhc2guVG9Mb3dlckludmFyaWFudCgpDQpb
SU8uRmlsZV06OkNvcHkoJGxvY2tQYXRoLChKb2luLVBhdGggJGdlbmVyYXRpb25EaXJlY3Rvcnkg
J3NvdXJjZS1sb2NrLmpzb24nKSwkZmFsc2UpDQokc3RhdGU9R2V0LUNvbnRlbnQgLUxpdGVyYWxQ
YXRoIChKb2luLVBhdGggKFNwbGl0LVBhdGggLVBhcmVudCAoU3BsaXQtUGF0aCAtUGFyZW50ICRz
ZXR1cCkpICdzb3VsLXN0YXRlLmpzb24nKSAtUmF3IC1FbmNvZGluZyBVVEY4fENvbnZlcnRGcm9t
LUpzb24NCiRtYW5pZmVzdD1bcHNjdXN0b21vYmplY3RdQHtzY2hlbWFWZXJzaW9uPTc7Z2VuZXJh
dGlvbklkPSRnZW5lcmF0aW9uSWQ7c291bElkPVtzdHJpbmddJHN0YXRlLnNvdWxJZDtzdGF0dXM9
J3BlbmRpbmctZmluYWxpemUnO3NvdXJjZUxvY2tTaGEyNTY9JGxvY2tIYXNoO2NvbmZpZ0FwcGxp
ZWQ9JGZhbHNlO21hY2hpbmVSZWFkeT0kZmFsc2U7cHJvdGVjdGVkTGl2ZUZpbGVzVW5jaGFuZ2Vk
PSR0cnVlfQ0KW0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoKEpvaW4tUGF0aCAkZ2VuZXJhdGlvbkRp
cmVjdG9yeSAnZ2VuZXJhdGlvbi5qc29uJyksKCgkbWFuaWZlc3R8Q29udmVydFRvLUpzb24gLURl
cHRoIDgpKyJgcmBuIiksKE5ldy1PYmplY3QgVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKSkpDQpb
cHNjdXN0b21vYmplY3RdQHsgc2NoZW1hVmVyc2lvbiA9IDc7IG1vZGUgPSAncHJlcGFyZWQtc3Rh
dGljLXN0YWdlJzsgZ2VuZXJhdGlvbklkID0gJGdlbmVyYXRpb25JZDsgZ2VuZXJhdGlvbkRpcmVj
dG9yeSA9ICRnZW5lcmF0aW9uRGlyZWN0b3J5OyBzdGF0dXMgPSAncGVuZGluZy1maW5hbGl6ZSc7
IGFjdGl2ZVBvaW50ZXJDaGFuZ2VkID0gJGZhbHNlOyBwcm90ZWN0ZWRMaXZlRmlsZXNVbmNoYW5n
ZWQgPSAkdHJ1ZSB9DQonQA0KICAgICR3aXphcmRTdHViID0gQCcNCiNyZXF1aXJlcyAtVmVyc2lv
biA1LjENCltDbWRsZXRCaW5kaW5nKCldcGFyYW0oW3N0cmluZ10kU291bFJvb3QsW3N0cmluZ10k
VHJhbnNhY3Rpb25JZCxbc3dpdGNoXSRSZXN1bWUpDQpleGl0IDMNCidADQogICAgJGxhdW5jaGVy
U3R1YiA9IEAnDQojcmVxdWlyZXMgLVZlcnNpb24gNS4xDQp0aHJvdyAnTEFVTkNIRVJfTVVTVF9O
T1RfUlVOX0RVUklOR19CT09UU1RSQVAnDQonQA0KICAgIFdyaXRlLVV0ZjggLVBhdGggKEpvaW4t
UGF0aCAkdGFyZ2V0U2V0dXAgJ21hcC1nZW5lcmF0b3IucHMxJykgLVRleHQgJG1hcFN0dWINCiAg
ICBXcml0ZS1VdGY4IC1QYXRoIChKb2luLVBhdGggJHRhcmdldFNldHVwICdzdGFnZS12Ny5wczEn
KSAtVGV4dCAkc3RhZ2VTdHViDQogICAgV3JpdGUtVXRmOCAtUGF0aCAoSm9pbi1QYXRoICR0YXJn
ZXRTZXR1cCAnd2l6YXJkLnBzMScpIC1UZXh0ICR3aXphcmRTdHViDQogICAgV3JpdGUtVXRmOCAt
UGF0aCAoSm9pbi1QYXRoICR0YXJnZXRTZXR1cCAnbGF1bmNoZXIucHMxJykgLVRleHQgJGxhdW5j
aGVyU3R1Yg0KICAgIHJldHVybiBbcHNjdXN0b21vYmplY3RdQHsgUm9vdCA9ICRyb290OyBTZXR1
cCA9ICR0YXJnZXRTZXR1cDsgQm9vdHN0cmFwID0gKEpvaW4tUGF0aCAkdGFyZ2V0U2V0dXAgJ2Jv
b3RzdHJhcC12Ny5wczEnKSB9DQp9DQoNCmZ1bmN0aW9uIE5ldy1BY3R1YWxTdGFnZVRlc3RTb3Vs
IHsNCiAgICBwYXJhbShbc3RyaW5nXSROYW1lKQ0KICAgICRmaXh0dXJlID0gTmV3LVRlc3RTb3Vs
UGF5bG9hZCAtTmFtZSAkTmFtZQ0KICAgIFtJTy5GaWxlXTo6Q29weSgoSm9pbi1QYXRoICRzZXR1
cFJvb3QgJ2xhdW5jaGVyLnBzMScpLCAoSm9pbi1QYXRoICRmaXh0dXJlLlNldHVwICdsYXVuY2hl
ci5wczEnKSwgJHRydWUpDQogICAgW0lPLkZpbGVdOjpDb3B5KChKb2luLVBhdGggJHNldHVwUm9v
dCAnbWFuaWZlc3RzXHY3LWxvY2suanNvbicpLCAoSm9pbi1QYXRoICRmaXh0dXJlLlNldHVwICdt
YW5pZmVzdHNcdjctbG9jay5qc29uJyksICR0cnVlKQ0KICAgICRhY3R1YWxTdGFnZSA9IChKb2lu
LVBhdGggJHNldHVwUm9vdCAnc3RhZ2UtdjcucHMxJykuUmVwbGFjZSgiJyIsICInJyIpDQogICAg
JHN0YWdlV3JhcHBlciA9ICIjcmVxdWlyZXMgLVZlcnNpb24gNS4xYHJgbltDbWRsZXRCaW5kaW5n
KCldcGFyYW0oW3N3aXRjaF1gJFByZXBhcmVTdGF0aWNTdGFnZSxbc3RyaW5nXWAkVGVzdFJvb3Qp
YHJgbiYgJyRhY3R1YWxTdGFnZScgLVByZXBhcmVTdGF0aWNTdGFnZTpgJFByZXBhcmVTdGF0aWNT
dGFnZSAtVGVzdFJvb3QgYCRUZXN0Um9vdGByYG4iDQogICAgV3JpdGUtVXRmOCAtUGF0aCAoSm9p
bi1QYXRoICRmaXh0dXJlLlNldHVwICdzdGFnZS12Ny5wczEnKSAtVGV4dCAkc3RhZ2VXcmFwcGVy
DQogICAgcmV0dXJuICRmaXh0dXJlDQp9DQoNCmZ1bmN0aW9uIE5ldy1XaXphcmRSZXN1bHQgew0K
ICAgIHBhcmFtKFtzdHJpbmddJFJvb3QsIFtzdHJpbmddJEljb25Nb2RlID0gJ2RlZmF1bHQnLCBb
c3RyaW5nXSRJY29uUGF0aCA9ICcnKQ0KICAgICRzdGF0ZVBhdGg9Sm9pbi1QYXRoICRSb290ICdz
b3VsLXN0YXRlLmpzb24nDQogICAgaWYoLW5vdChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzdGF0
ZVBhdGggLVBhdGhUeXBlIExlYWYpKXsNCiAgICAgICAgJGZpeHR1cmU9W3BzY3VzdG9tb2JqZWN0
XUB7Um9vdD0kUm9vdDtTZXR1cD0oSm9pbi1QYXRoICRSb290ICdfYWdlbnRcc2V0dXAnKTtCb290
c3RyYXA9KEpvaW4tUGF0aCAkUm9vdCAnX2FnZW50XHNldHVwXGJvb3RzdHJhcC12Ny5wczEnKX0N
CiAgICAgICAgW3ZvaWRdKEludm9rZS1GaXh0dXJlQm9vdHN0cmFwIC1GaXh0dXJlICRmaXh0dXJl
IC1SZXN1bHRQYXRoICcnKQ0KICAgIH0NCiAgICAkc291bFN0YXRlPUdldC1Db250ZW50IC1MaXRl
cmFsUGF0aCAkc3RhdGVQYXRoIC1SYXcgLUVuY29kaW5nIFVURjh8Q29udmVydEZyb20tSnNvbg0K
ICAgICR0cmFuc2FjdGlvbklkID0gaWYoLW5vdFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo
W3N0cmluZ10kc291bFN0YXRlLnBlbmRpbmdUcmFuc2FjdGlvbikpe1tzdHJpbmddJHNvdWxTdGF0
ZS5wZW5kaW5nVHJhbnNhY3Rpb259ZWxzZXtbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpfQ0K
ICAgICRpZHMgPSBAew0KICAgICAgICBSID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0K
ICAgICAgICBEID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAgICAgICBQID0gW2d1
aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAgICAgICBTID0gW2d1aWRdOjpOZXdHdWlkKCku
VG9TdHJpbmcoKQ0KICAgICAgICBUID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAg
IH0NCiAgICAkcmVzdWx0ID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7DQogICAgICAgIHNj
aGVtYVZlcnNpb24gPSAxDQogICAgICAgIHRyYW5zYWN0aW9uSWQgPSAkdHJhbnNhY3Rpb25JZA0K
ICAgICAgICBzb3VsSWQgPSBbc3RyaW5nXSRzb3VsU3RhdGUuc291bElkDQogICAgICAgIHN0YXR1
cyA9ICdhcHByb3ZlZCcNCiAgICAgICAgYXBwcm92ZWQgPSAkdHJ1ZQ0KICAgICAgICBub2RlcyA9
IEAoDQogICAgICAgICAgICBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsgaWQgPSAkaWRzLlI7
IHBhcmVudElkID0gJG51bGw7IGxldmVsID0gJ1InOyBuYW1lS28gPSAn6rWQ7IKsJzsgbmFtZUVu
ID0gJ1RlYWNoZXInOyB0YWcgPSAnJzsgb3JkZXIgPSAwOyBzdGF0dXMgPSAnYWN0aXZlJyB9LA0K
ICAgICAgICAgICAgW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7IGlkID0gJGlkcy5EOyBwYXJl
bnRJZCA9ICRpZHMuUjsgbGV2ZWwgPSAnRCc7IG5hbWVLbyA9ICfrrLzrpqztlZknOyBuYW1lRW4g
PSAnUGh5c2ljcyc7IHRhZyA9ICcnOyBvcmRlciA9IDA7IHN0YXR1cyA9ICdhY3RpdmUnIH0sDQog
ICAgICAgICAgICBbcHNjdXN0b21vYmplY3RdW29yZGVyZWRdQHsgaWQgPSAkaWRzLlA7IHBhcmVu
dElkID0gJGlkcy5EOyBsZXZlbCA9ICdQJzsgbmFtZUtvID0gJ+yImOyXhSc7IG5hbWVFbiA9ICdM
ZXNzb24nOyB0YWcgPSAnMjAyNuuFhCc7IG9yZGVyID0gMDsgc3RhdHVzID0gJ2FjdGl2ZScgfSwN
CiAgICAgICAgICAgIFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBpZCA9ICRpZHMuUzsgcGFy
ZW50SWQgPSAkaWRzLlA7IGxldmVsID0gJ1MnOyBuYW1lS28gPSAn7KSA67mEJzsgbmFtZUVuID0g
J1ByZXBhcmF0aW9uJzsgdGFnID0gJyc7IG9yZGVyID0gMDsgc3RhdHVzID0gJ2FjdGl2ZScgfSwN
CiAgICAgICAgICAgIFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBpZCA9ICRpZHMuVDsgcGFy
ZW50SWQgPSAkaWRzLlM7IGxldmVsID0gJ1QnOyBuYW1lS28gPSAn7J6Q66OMJzsgbmFtZUVuID0g
Jyc7IHRhZyA9ICcnOyBvcmRlciA9IDA7IHN0YXR1cyA9ICdhY3RpdmUnIH0NCiAgICAgICAgKQ0K
ICAgICAgICBkZWZlcnJlZExldmVscyA9IFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBSID0g
JGZhbHNlOyBEID0gJGZhbHNlOyBQID0gJGZhbHNlOyBTID0gJGZhbHNlOyBUID0gJGZhbHNlIH0N
CiAgICAgICAgaWNvbiA9IFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBtb2RlID0gJEljb25N
b2RlOyBwYXRoID0gJChpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkSWNvblBhdGgp
KSB7ICRudWxsIH0gZWxzZSB7ICRJY29uUGF0aCB9KSB9DQogICAgICAgIGFwcHJvdmVkQXRVdGMg
PSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKQ0KICAgIH0NCiAgICAkdHJhbnNhY3Rp
b25EaXJlY3RvcnkgPSBKb2luLVBhdGggJFJvb3QgKCdfYWdlbnRcc2V0dXBcdHJhbnNhY3Rpb25z
XCcgKyAkdHJhbnNhY3Rpb25JZCkNCiAgICBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGly
ZWN0b3J5KCR0cmFuc2FjdGlvbkRpcmVjdG9yeSkNCiAgICAkcmVzdWx0UGF0aCA9IEpvaW4tUGF0
aCAkdHJhbnNhY3Rpb25EaXJlY3RvcnkgJ3dpemFyZC1yZXN1bHQuanNvbicNCiAgICBXcml0ZS1K
c29uIC1QYXRoICRyZXN1bHRQYXRoIC1WYWx1ZSAkcmVzdWx0DQogICAgcmV0dXJuICRyZXN1bHRQ
YXRoDQp9DQoNCmZ1bmN0aW9uIEludm9rZS1GaXh0dXJlQm9vdHN0cmFwIHsNCiAgICBwYXJhbSgk
Rml4dHVyZSwgW3N0cmluZ10kUmVzdWx0UGF0aCwgW1ZhbGlkYXRlU2V0KCdDbGF1ZGUnLCdDb2Rl
eCcpXVtzdHJpbmddJFNvdXJjZUVkaXRpb24gPSAnQ2xhdWRlJykNCiAgICAkb2xkID0gW0Vudmly
b25tZW50XTo6R2V0RW52aXJvbm1lbnRWYXJpYWJsZSgnU09VTF9CT09UU1RSQVBfVEVTVF9NT0RF
JywgJ1Byb2Nlc3MnKQ0KICAgIHRyeSB7DQogICAgICAgIFtFbnZpcm9ubWVudF06OlNldEVudmly
b25tZW50VmFyaWFibGUoJ1NPVUxfQk9PVFNUUkFQX1RFU1RfTU9ERScsICcxJywgJ1Byb2Nlc3Mn
KQ0KICAgICAgICAkcGFyYW1ldGVycyA9IEB7IFRlc3RGaXh0dXJlQm91bmRhcnkgPSAkZml4dHVy
ZUJvdW5kYXJ5OyBTb3VyY2VFZGl0aW9uID0gJFNvdXJjZUVkaXRpb24gfQ0KICAgICAgICBpZiAo
LW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRSZXN1bHRQYXRoKSkgeyAkcGFyYW1l
dGVycy5BcHByb3ZlZFdpemFyZFJlc3VsdFBhdGggPSAkUmVzdWx0UGF0aCB9DQogICAgICAgIHJl
dHVybiBAKCYgJEZpeHR1cmUuQm9vdHN0cmFwIEBwYXJhbWV0ZXJzKQ0KICAgIH0NCiAgICBmaW5h
bGx5IHsgW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1lbnRWYXJpYWJsZSgnU09VTF9CT09UU1RS
QVBfVEVTVF9NT0RFJywgJG9sZCwgJ1Byb2Nlc3MnKSB9DQp9DQoNCmZ1bmN0aW9uIEdldC1Cb290
c3RyYXBSZXN1bHQgew0KICAgIHBhcmFtKCRPdXRwdXQpDQogICAgcmV0dXJuIEAoJE91dHB1dCB8
IFdoZXJlLU9iamVjdCB7ICRudWxsIC1uZSAkXy5QU09iamVjdC5Qcm9wZXJ0aWVzWydnZW5lcmF0
aW9uSWQnXSAtYW5kICRudWxsIC1uZSAkXy5QU09iamVjdC5Qcm9wZXJ0aWVzWydmaW5hbGl6ZXJS
YW4nXSB9KSB8IFNlbGVjdC1PYmplY3QgLUxhc3QgMQ0KfQ0KDQpmdW5jdGlvbiBFeHBlY3QtQm9v
dHN0cmFwRmFpbHVyZSB7DQogICAgcGFyYW0oJEZpeHR1cmUsIFtzdHJpbmddJFJlc3VsdFBhdGgs
IFtzdHJpbmddJFBhdHRlcm4pDQogICAgJG1lc3NhZ2UgPSAkbnVsbA0KICAgIHRyeSB7IFt2b2lk
XShJbnZva2UtRml4dHVyZUJvb3RzdHJhcCAtRml4dHVyZSAkRml4dHVyZSAtUmVzdWx0UGF0aCAk
UmVzdWx0UGF0aCkgfQ0KICAgIGNhdGNoIHsgJG1lc3NhZ2UgPSAkXy5FeGNlcHRpb24uTWVzc2Fn
ZSB9DQogICAgQXNzZXJ0LVRydWUgLU5hbWUgImV4cGVjdGVkIGJvb3RzdHJhcCBmYWlsdXJlOiAk
UGF0dGVybiIgLUNvbmRpdGlvbiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRt
ZXNzYWdlKSAtYW5kICRtZXNzYWdlIC1tYXRjaCAkUGF0dGVybikNCn0NCg0KaWYgKC1ub3QgKFRl
c3QtUGF0aCAtTGl0ZXJhbFBhdGggJGZpeHR1cmVCb3VuZGFyeSAtUGF0aFR5cGUgQ29udGFpbmVy
KSkgeyBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRmaXh0dXJlQm91bmRh
cnkpIH0NClt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJGNhc2VSb290KQ0K
DQokYW50aHJvcGljQmFzZVVybEJlZm9yZSA9IFtFbnZpcm9ubWVudF06OkdldEVudmlyb25tZW50
VmFyaWFibGUoJ0FOVEhST1BJQ19CQVNFX1VSTCcsICdQcm9jZXNzJykNCiRyZWFsQ2xhdWRlU2V0
dGluZ3MgPSBKb2luLVBhdGggJGVudjpVU0VSUFJPRklMRSAnLmNsYXVkZVxzZXR0aW5ncy5qc29u
Jw0KJHJlYWxDb2RleFNldHRpbmdzID0gSm9pbi1QYXRoICRlbnY6VVNFUlBST0ZJTEUgJy5jb2Rl
eFxjb25maWcudG9tbCcNCiRyZWFsQ2xhdWRlSGFzaEJlZm9yZSA9IEdldC1PcHRpb25hbEhhc2gg
JHJlYWxDbGF1ZGVTZXR0aW5ncw0KJHJlYWxDb2RleEhhc2hCZWZvcmUgPSBHZXQtT3B0aW9uYWxI
YXNoICRyZWFsQ29kZXhTZXR0aW5ncw0KJHJlYWxBY3RpdmVQb2ludGVyID0gSm9pbi1QYXRoICRz
ZXR1cFJvb3QgJ2FjdGl2ZS1nZW5lcmF0aW9uLmpzb24nDQokcmVhbEFjdGl2ZVBvaW50ZXJIYXNo
QmVmb3JlID0gR2V0LU9wdGlvbmFsSGFzaCAkcmVhbEFjdGl2ZVBvaW50ZXINCiRkZXNrdG9wUGF0
aCA9IFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmlyb25tZW50K1NwZWNpYWxGb2xk
ZXJdOjpEZXNrdG9wKQ0KJGRlc2t0b3BJbnZlbnRvcnlCZWZvcmUgPSBHZXQtVG9wTGV2ZWxJbnZl
bnRvcnlIYXNoICRkZXNrdG9wUGF0aA0KDQp0cnkgew0KICAgICRmcmVzaCA9IE5ldy1UZXN0U291
bFBheWxvYWQgLU5hbWUgJ2ZyZXNoLXNvdWwnDQogICAgJGFwcHJvdmVkUGF0aCA9IE5ldy1XaXph
cmRSZXN1bHQgLVJvb3QgJGZyZXNoLlJvb3QNCiAgICAkZmlyc3RPdXRwdXQgPSBJbnZva2UtRml4
dHVyZUJvb3RzdHJhcCAtRml4dHVyZSAkZnJlc2ggLVJlc3VsdFBhdGggJGFwcHJvdmVkUGF0aA0K
ICAgICRmaXJzdCA9IEdldC1Cb290c3RyYXBSZXN1bHQgLU91dHB1dCAkZmlyc3RPdXRwdXQNCiAg
ICBBc3NlcnQtVHJ1ZSAtTmFtZSAnZnJlc2ggYXBwcm92ZWQgYm9vdHN0cmFwIHJlYWNoZXMgcGVu
ZGluZy1maW5hbGl6ZScgLUNvbmRpdGlvbiAoJG51bGwgLW5lICRmaXJzdCAtYW5kIFtzdHJpbmdd
JGZpcnN0LnN0YXR1cyAtZXEgJ3BlbmRpbmctZmluYWxpemUnKQ0KICAgIEFzc2VydC1UcnVlIC1O
YW1lICdib290c3RyYXAgcmVwb3J0cyBubyBmaW5hbGl6ZXIgYW5kIG5vIGxpdmUtaG9tZSBvciBh
Y3RpdmUtcG9pbnRlciBjaGFuZ2UnIC1Db25kaXRpb24gKC1ub3QgW2Jvb2xdJGZpcnN0LmZpbmFs
aXplclJhbiAtYW5kIC1ub3QgW2Jvb2xdJGZpcnN0LmxpdmVBZ2VudEhvbWVzQ2hhbmdlZCAtYW5k
IC1ub3QgW2Jvb2xdJGZpcnN0LmFjdGl2ZUdlbmVyYXRpb25DaGFuZ2VkKQ0KICAgIEFzc2VydC1U
cnVlIC1OYW1lICdib290c3RyYXAgcmVwb3J0cyBubyBEZXNrdG9wIHdyaXRlJyAtQ29uZGl0aW9u
ICgtbm90IFtib29sXSRmaXJzdC5kZXNrdG9wV3JpdGVzKQ0KDQogICAgJGV4cGVjdGVkUmVsYXRp
dmUgPSAnUjAxLeq1kOyCrChUZWFjaGVyKVxEMDEt66y866as7ZWZKFBoeXNpY3MpXFAwMS3siJjs
l4UoTGVzc29uKSDjgJYyMDI264WE44CXXFMwMS3spIDruYQoUHJlcGFyYXRpb24pXFQwMS3snpDr
o4wnDQogICAgJGxlYWYgPSBKb2luLVBhdGggJGZyZXNoLlJvb3QgJGV4cGVjdGVkUmVsYXRpdmUN
CiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnb25seSB0aGUgYXBwcm92ZWQgUi9EL1AvUy9UIGNoYWlu
IGlzIGNyZWF0ZWQnIC1Db25kaXRpb24gKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxlYWYgLVBh
dGhUeXBlIENvbnRhaW5lcikNCiAgICAkY3Vyc29yID0gJGZyZXNoLlJvb3QNCiAgICBmb3JlYWNo
ICgkc2VnbWVudCBpbiAoJGV4cGVjdGVkUmVsYXRpdmUgLXNwbGl0ICdcXCcpKSB7DQogICAgICAg
ICRjdXJzb3IgPSBKb2luLVBhdGggJGN1cnNvciAkc2VnbWVudA0KICAgICAgICBBc3NlcnQtVHJ1
ZSAtTmFtZSAibWFuYWdlZCBmb2xkZXIgaGFzIG1pbmltYWwgaW5zdHJ1Y3Rpb24gcGFpcjogJHNl
Z21lbnQiIC1Db25kaXRpb24gKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGN1
cnNvciAnQUdFTlRTLm1kJykgLVBhdGhUeXBlIExlYWYpIC1hbmQgKFRlc3QtUGF0aCAtTGl0ZXJh
bFBhdGggKEpvaW4tUGF0aCAkY3Vyc29yICdDTEFVREUubWQnKSAtUGF0aFR5cGUgTGVhZikpDQog
ICAgICAgIEFzc2VydC1FcXVhbCAtTmFtZSAiQ2xhdWRlIGluc3RydWN0aW9uIHBvaW50cyB0byBB
R0VOVFM6ICRzZWdtZW50IiAtRXhwZWN0ZWQgIkBBR0VOVFMubWRgcmBuIiAtQWN0dWFsIChbSU8u
RmlsZV06OlJlYWRBbGxUZXh0KChKb2luLVBhdGggJGN1cnNvciAnQ0xBVURFLm1kJyksICR1dGY4
Tm9Cb20pKQ0KICAgIH0NCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnZGVmYXVsdCBpY29uIGlzIGEg
dHJ1ZSBuby1vcCcgLUNvbmRpdGlvbiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9p
bi1QYXRoICRmcmVzaC5Sb290ICdfaWNvbnMnKSkgLWFuZCAtbm90IChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoIChKb2luLVBhdGggJGZyZXNoLlJvb3QgJ2Rlc2t0b3AuaW5pJykpKQ0KDQogICAgJHN0
YXRlUGF0aCA9IEpvaW4tUGF0aCAkZnJlc2guUm9vdCAnc291bC1zdGF0ZS5qc29uJw0KICAgICRz
dGF0ZSA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkc3RhdGVQYXRoIC1SYXcgLUVuY29kaW5n
IFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgJGZpcnN0U291bElkID0gW3N0cmluZ10kc3Rh
dGUuc291bElkDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdmcmVzaCBzdGF0ZSB1c2VzIHNjaGVt
YSB2NycgLUV4cGVjdGVkIDcgLUFjdHVhbCAkc3RhdGUuc2NoZW1hVmVyc2lvbg0KICAgIEFzc2Vy
dC1FcXVhbCAtTmFtZSAncG9ydGFibGUgcm9vdCBpcyByZWNvcmRlZCBhcyBhIGRvdCcgLUV4cGVj
dGVkICcuJyAtQWN0dWFsICRzdGF0ZS5yb290DQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3BlbmRp
bmcgdjcgc3RhZ2UgYWx3YXlzIGZvcmNlcyBtYWNoaW5lUmVhZHkgZmFsc2UnIC1Db25kaXRpb24g
KCRzdGF0ZS5tYWNoaW5lUmVhZHkgLWVxICRmYWxzZSkNCiAgICAkcm9vdEFnZW50cyA9IFtJTy5G
aWxlXTo6UmVhZEFsbFRleHQoKEpvaW4tUGF0aCAkZnJlc2guUm9vdCAnQUdFTlRTLm1kJyksICR1
dGY4Tm9Cb20pDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2ZyZXNoIHJvb3QgcmVjZWl2ZXMgdGhl
IGZ1bGwgZ3VpZGUgQXBwZW5kaXggQi0zIEFHRU5UUyBvcmlnaW5hbCcgLUNvbmRpdGlvbiAoJHJv
b3RBZ2VudHMuQ29udGFpbnMoJyMjIOyCrOyaqeyekCDsnZHrjIAnKSAtYW5kICRyb290QWdlbnRz
LkNvbnRhaW5zKCcjIyDqs7Xsmqkg6riw7Ja16rO8IOuPmeyLnCDsk7DquLAnKSAtYW5kICRyb290
QWdlbnRzLkNvbnRhaW5zKCdwcm9qZWN0X3Jvb3RfbWFya2Vycz1bInNvdWwtc3RhdGUuanNvbiJd
JykpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2RlY2lzaW9uIGhhc2hlcyBhcmUgU0hBLTI1NiB2
YWx1ZXMnIC1Db25kaXRpb24gKFtzdHJpbmddJHN0YXRlLnN0cnVjdHVyZURlY2lzaW9uLmRlY2lz
aW9uSGFzaCAtbWF0Y2ggJ15bMC05YS1mXXs2NH0kJyAtYW5kIFtzdHJpbmddJHN0YXRlLmljb25E
ZWNpc2lvbi5kZWNpc2lvbkhhc2ggLW1hdGNoICdeWzAtOWEtZl17NjR9JCcpDQogICAgQXNzZXJ0
LVRydWUgLU5hbWUgJ21hcCBydW5zIGJlZm9yZSBhIHN0YXRpYyBwZW5kaW5nIGdlbmVyYXRpb24g
aXMgcmVjb3JkZWQnIC1Db25kaXRpb24gKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChbc3RyaW5n
XSRmaXJzdC5tYXBQYXRoKSAtUGF0aFR5cGUgTGVhZikgLWFuZCBbc3RyaW5nXSRzdGF0ZS5ib290
c3RyYXAuc3RhZ2VTdGF0dXMgLWVxICdwZW5kaW5nLWZpbmFsaXplJykNCiAgICAkbGF1bmNoZXJQ
YXRoID0gSm9pbi1QYXRoICRmcmVzaC5Sb290ICgoLWpvaW4gQChbY2hhcl0weEMxOEMsIFtjaGFy
XTB4RDY1OCwgW2NoYXJdMHhENTU4LCBbY2hhcl0weEFFMzApKSArICcuY21kJykNCiAgICAkbGF1
bmNoZXJUZXh0ID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkbGF1bmNoZXJQYXRoLCAkdXRmOE5v
Qm9tKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdyb290IGxhdW5jaGVyIGlzIHJlbG9jYXRpb24t
c2FmZScgLUNvbmRpdGlvbiAoJGxhdW5jaGVyVGV4dC5Db250YWlucygnJX5kcDBfYWdlbnRcc2V0
dXBcbGF1bmNoZXIucHMxJykgLWFuZCAtbm90ICRsYXVuY2hlclRleHQuQ29udGFpbnMoJGZyZXNo
LlJvb3QpKQ0KDQogICAgJHN0YXRlIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVy
dHkgLU5hbWUgJ2Z1dHVyZVVua25vd25GaWVsZCcgLVZhbHVlIChbcHNjdXN0b21vYmplY3RdQHsg
a2VlcCA9ICd2ZXJiYXRpbS12YWx1ZSc7IG51bWJlciA9IDM3IH0pDQogICAgV3JpdGUtSnNvbiAt
UGF0aCAkc3RhdGVQYXRoIC1WYWx1ZSAkc3RhdGUNCiAgICAkc2Vjb25kT3V0cHV0ID0gSW52b2tl
LUZpeHR1cmVCb290c3RyYXAgLUZpeHR1cmUgJGZyZXNoIC1SZXN1bHRQYXRoICcnDQogICAgJHNl
Y29uZCA9IEdldC1Cb290c3RyYXBSZXN1bHQgLU91dHB1dCAkc2Vjb25kT3V0cHV0DQogICAgJHN0
YXRlQWdhaW4gPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJHN0YXRlUGF0aCAtUmF3IC1FbmNv
ZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAncmVy
dW4gbmV2ZXIgY2hhbmdlcyBzb3VsSWQnIC1FeHBlY3RlZCAkZmlyc3RTb3VsSWQgLUFjdHVhbCAo
W3N0cmluZ10kc3RhdGVBZ2Fpbi5zb3VsSWQpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICd1bmtu
b3duIGV4aXN0aW5nIHN0YXRlIGZpZWxkcyBzdXJ2aXZlIHRoZSByZXdyaXRlJyAtRXhwZWN0ZWQg
J3ZlcmJhdGltLXZhbHVlJyAtQWN0dWFsIChbc3RyaW5nXSRzdGF0ZUFnYWluLmZ1dHVyZVVua25v
d25GaWVsZC5rZWVwKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdjb21wbGV0ZWQgZGVjaXNpb25z
IHN1cHByZXNzIHRoZSBicm93c2VyIHdpemFyZCcgLUNvbmRpdGlvbiAoW2Jvb2xdJHNlY29uZC5k
ZWNpc2lvbnNSZXVzZWQpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ21hdGNoaW5nIHBlbmRpbmcg
Z2VuZXJhdGlvbiBpcyByZXVzZWQgaWRlbXBvdGVudGx5JyAtQ29uZGl0aW9uIChbYm9vbF0kc2Vj
b25kLmdlbmVyYXRpb25SZXVzZWQpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdzdGFnZSBpcyBj
YWxsZWQgb25seSBvbmNlIGFjcm9zcyB0d28gYm9vdHN0cmFwIHJ1bnMnIC1FeHBlY3RlZCAxIC1B
Y3R1YWwgKFtpbnRdKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRmcmVzaC5T
ZXR1cCAnc3RhZ2UtY2FsbC1jb3VudC50eHQnKSAtUmF3KSkNCiAgICBBc3NlcnQtRXF1YWwgLU5h
bWUgJ21hcCBpcyByZWdlbmVyYXRlZCBvbiBlYWNoIHNhZmUgYm9vdHN0cmFwIHJ1bicgLUV4cGVj
dGVkIDIgLUFjdHVhbCAoW2ludF0oR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoIChKb2luLVBhdGgg
JGZyZXNoLlNldHVwICdtYXAtY2FsbC1jb3VudC50eHQnKSAtUmF3KSkNCg0KICAgICRnZW5lcmF0
ZWQgPSBOZXctVGVzdFNvdWxQYXlsb2FkIC1OYW1lICdnZW5lcmF0ZWQtaWNvbi1zb3VsJw0KICAg
ICRnZW5lcmF0ZWRSZXN1bHRQYXRoID0gTmV3LVdpemFyZFJlc3VsdCAtUm9vdCAkZ2VuZXJhdGVk
LlJvb3QgLUljb25Nb2RlICdnZW5lcmF0ZWQnDQogICAgJGdlbmVyYXRlZE91dHB1dCA9IEludm9r
ZS1GaXh0dXJlQm9vdHN0cmFwIC1GaXh0dXJlICRnZW5lcmF0ZWQgLVJlc3VsdFBhdGggJGdlbmVy
YXRlZFJlc3VsdFBhdGgNCiAgICAkZ2VuZXJhdGVkUnVuID0gR2V0LUJvb3RzdHJhcFJlc3VsdCAt
T3V0cHV0ICRnZW5lcmF0ZWRPdXRwdXQNCiAgICAkZ2VuZXJhdGVkU3RhdGUgPSBHZXQtQ29udGVu
dCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkZ2VuZXJhdGVkLlJvb3QgJ3NvdWwtc3RhdGUuanNv
bicpIC1SYXcgLUVuY29kaW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgQXNzZXJ0LVRy
dWUgLU5hbWUgJ2dlbmVyYXRlZCBpY29uIGlzIGEgbG9jYWwgU3lzdGVtLkRyYXdpbmcgYmFkZ2Ug
d2l0aCBubyBwZW5kaW5nIG1vZGVsIGNhcGFiaWxpdHknIC1Db25kaXRpb24gKA0KICAgICAgICAk
bnVsbCAtbmUgJGdlbmVyYXRlZFJ1biAtYW5kIFtzdHJpbmddJGdlbmVyYXRlZFN0YXRlLmljb25E
ZWNpc2lvbi5jYXBhYmlsaXR5U3RhdHVzIC1lcSAncmVhZHknIC1hbmQNCiAgICAgICAgQCgkZ2Vu
ZXJhdGVkU3RhdGUucGVuZGluZ0NhcGFiaWxpdGllcyB8IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1l
cSAncm9vdC1pY29uLWdlbmVyYXRpb24nIH0pLkNvdW50IC1lcSAwIC1hbmQNCiAgICAgICAgKFRl
c3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkZ2VuZXJhdGVkLlJvb3QgJ19pY29uc1xz
b3VsLmljbycpIC1QYXRoVHlwZSBMZWFmKQ0KICAgICkNCg0KICAgICRpbXBvcnRlZCA9IE5ldy1U
ZXN0U291bFBheWxvYWQgLU5hbWUgJ2ltcG9ydGVkLWljb24tc291bCcNCiAgICAkaWNvblNvdXJj
ZSA9IEpvaW4tUGF0aCAkaW1wb3J0ZWQuU2V0dXAgJ2ZpeHR1cmUuaWNvJw0KICAgIFdyaXRlLU1p
bmltYWxJY28gLVBhdGggJGljb25Tb3VyY2UNCiAgICAkaW1wb3J0ZWRSZXN1bHRQYXRoID0gTmV3
LVdpemFyZFJlc3VsdCAtUm9vdCAkaW1wb3J0ZWQuUm9vdCAtSWNvbk1vZGUgJ2ltcG9ydGVkJyAt
SWNvblBhdGggJGljb25Tb3VyY2UNCiAgICAkaW1wb3J0ZWRPdXRwdXQgPSBJbnZva2UtRml4dHVy
ZUJvb3RzdHJhcCAtRml4dHVyZSAkaW1wb3J0ZWQgLVJlc3VsdFBhdGggJGltcG9ydGVkUmVzdWx0
UGF0aA0KICAgICRpbXBvcnRlZFJ1biA9IEdldC1Cb290c3RyYXBSZXN1bHQgLU91dHB1dCAkaW1w
b3J0ZWRPdXRwdXQNCiAgICAkaW1wb3J0ZWRTdGF0ZSA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0
aCAoSm9pbi1QYXRoICRpbXBvcnRlZC5Sb290ICdzb3VsLXN0YXRlLmpzb24nKSAtUmF3IC1FbmNv
ZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgICRjb3BpZWRJY29uID0gSm9pbi1QYXRo
ICRpbXBvcnRlZC5Sb290ICdfaWNvbnNcc291bC5pY28nDQogICAgQXNzZXJ0LVRydWUgLU5hbWUg
J2FwcHJvdmVkIElDTyBpcyBjb3BpZWQgaW50byB0aGUgc291bCBhbmQgV2luZG93cyBtZXRhZGF0
YSBpcyBhcHBsaWVkIHNhZmVseScgLUNvbmRpdGlvbiAoDQogICAgICAgICRudWxsIC1uZSAkaW1w
b3J0ZWRSdW4gLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY29waWVkSWNvbiAtUGF0aFR5
cGUgTGVhZikgLWFuZA0KICAgICAgICAoR2V0LU9wdGlvbmFsSGFzaCAkY29waWVkSWNvbikgLWVx
IChHZXQtT3B0aW9uYWxIYXNoICRpY29uU291cmNlKSAtYW5kDQogICAgICAgIChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGltcG9ydGVkLlJvb3QgJ2Rlc2t0b3AuaW5pJykgLVBh
dGhUeXBlIExlYWYpIC1hbmQNCiAgICAgICAgW3N0cmluZ10kaW1wb3J0ZWRTdGF0ZS5pY29uRGVj
aXNpb24uY2FwYWJpbGl0eVN0YXR1cyAtZXEgJ3JlYWR5Jw0KICAgICkNCiAgICBBc3NlcnQtVHJ1
ZSAtTmFtZSAnaWNvbiB1dGlsaXR5IGZvbGRlciByZWNlaXZlcyBpdHMgaW5zdHJ1Y3Rpb24gcGFp
cicgLUNvbmRpdGlvbiAoKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkaW1wb3J0
ZWQuUm9vdCAnX2ljb25zXEFHRU5UUy5tZCcpIC1QYXRoVHlwZSBMZWFmKSAtYW5kIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGltcG9ydGVkLlJvb3QgJ19pY29uc1xDTEFVREUu
bWQnKSAtUGF0aFR5cGUgTGVhZikpDQoNCiAgICAkZXhpc3RpbmdSb290SWNvbiA9IE5ldy1UZXN0
U291bFBheWxvYWQgLU5hbWUgJ2ZyZXNoLWV4aXN0aW5nLXJvb3QtaWNvbicNCiAgICAkZXhpc3Rp
bmdSb290SWNvblBhdGggPSBKb2luLVBhdGggJGV4aXN0aW5nUm9vdEljb24uUm9vdCAnX2Nvc21v
cy5pY28nOyBXcml0ZS1NaW5pbWFsSWNvIC1QYXRoICRleGlzdGluZ1Jvb3RJY29uUGF0aA0KICAg
IFdyaXRlLVV0ZjggLVBhdGggKEpvaW4tUGF0aCAkZXhpc3RpbmdSb290SWNvbi5Sb290ICdkZXNr
dG9wLmluaScpIC1UZXh0ICJbLlNoZWxsQ2xhc3NJbmZvXWByYG5JY29uUmVzb3VyY2U9X2Nvc21v
cy5pY28sMGByYG4iDQogICAgJGV4aXN0aW5nSWNvblJlc3VsdCA9IE5ldy1XaXphcmRSZXN1bHQg
LVJvb3QgJGV4aXN0aW5nUm9vdEljb24uUm9vdCAtSWNvbk1vZGUgJ2Fkb3B0LWV4aXN0aW5nJyAt
SWNvblBhdGggJGV4aXN0aW5nUm9vdEljb25QYXRoDQogICAgW3ZvaWRdKEludm9rZS1GaXh0dXJl
Qm9vdHN0cmFwIC1GaXh0dXJlICRleGlzdGluZ1Jvb3RJY29uIC1SZXN1bHRQYXRoICRleGlzdGlu
Z0ljb25SZXN1bHQpDQogICAgJGV4aXN0aW5nSWNvblN0YXRlID0gR2V0LUNvbnRlbnQgLUxpdGVy
YWxQYXRoIChKb2luLVBhdGggJGV4aXN0aW5nUm9vdEljb24uUm9vdCAnc291bC1zdGF0ZS5qc29u
JykgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICBBc3NlcnQtVHJ1
ZSAtTmFtZSAnZnJlc2ggdmFsaWQgcm9vdCBJQ08gaXMgZGlzY292ZXJlZCBhbmQgYWRvcHRlZCBp
biBwbGFjZSB3aXRob3V0IHJlcGxhY2VtZW50JyAtQ29uZGl0aW9uIChbc3RyaW5nXSRleGlzdGlu
Z0ljb25TdGF0ZS5pY29uRGVjaXNpb24ubW9kZSAtZXEgJ2Fkb3B0LWV4aXN0aW5nJyAtYW5kIFtz
dHJpbmddJGV4aXN0aW5nSWNvblN0YXRlLmljb25EZWNpc2lvbi5yZWxhdGl2ZVBhdGggLWVxICdf
Y29zbW9zLmljbycgLWFuZCAtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGgg
JGV4aXN0aW5nUm9vdEljb24uUm9vdCAnX2ljb25zXHNvdWwuaWNvJykpKQ0KDQogICAgJGJhZERl
ZmVycmVkID0gTmV3LVRlc3RTb3VsUGF5bG9hZCAtTmFtZSAnYmFkLWRlZmVycmVkLWRlY2lzaW9u
Jw0KICAgICRiYWREZWZlcnJlZFJlc3VsdFBhdGggPSBOZXctV2l6YXJkUmVzdWx0IC1Sb290ICRi
YWREZWZlcnJlZC5Sb290DQogICAgJGJhZERlZmVycmVkUmVzdWx0ID0gR2V0LUNvbnRlbnQgLUxp
dGVyYWxQYXRoICRiYWREZWZlcnJlZFJlc3VsdFBhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENv
bnZlcnRGcm9tLUpzb24NCiAgICAkYmFkRGVmZXJyZWRSZXN1bHQuZGVmZXJyZWRMZXZlbHMuUiA9
ICR0cnVlDQogICAgV3JpdGUtSnNvbiAtUGF0aCAkYmFkRGVmZXJyZWRSZXN1bHRQYXRoIC1WYWx1
ZSAkYmFkRGVmZXJyZWRSZXN1bHQNCiAgICBFeHBlY3QtQm9vdHN0cmFwRmFpbHVyZSAtRml4dHVy
ZSAkYmFkRGVmZXJyZWQgLVJlc3VsdFBhdGggJGJhZERlZmVycmVkUmVzdWx0UGF0aCAtUGF0dGVy
biAn66+466OsIOyDge2DnHzsgqzsmqkg7KSR7J24IO2VreuqqScNCiAgICBBc3NlcnQtVHJ1ZSAt
TmFtZSAnaW52YWxpZCBkZWZlcnJlZCBkZWNpc2lvbiBjcmVhdGVzIG5vIHdvcmsgZm9sZGVycycg
LUNvbmRpdGlvbiAoQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkYmFkRGVmZXJyZWQuUm9v
dCAtRGlyZWN0b3J5IC1Gb3JjZSB8IFdoZXJlLU9iamVjdCB7ICRfLk5hbWUgLW1hdGNoICdeUlxk
ezJ9LScgfSkuQ291bnQgLWVxIDApDQoNCiAgICAkdW50cnVzdGVkID0gTmV3LVRlc3RTb3VsUGF5
bG9hZCAtTmFtZSAndW50cnVzdGVkLW5vbmVtcHR5Jw0KICAgICRmb3JlaWduUGF0aCA9IEpvaW4t
UGF0aCAkdW50cnVzdGVkLlJvb3QgJ2ZvcmVpZ24tdXNlci1maWxlLnR4dCcNCiAgICBXcml0ZS1V
dGY4IC1QYXRoICRmb3JlaWduUGF0aCAtVGV4dCAnbXVzdCByZW1haW4gYnl0ZS1pZGVudGljYWwn
DQogICAgJGZvcmVpZ25IYXNoID0gR2V0LU9wdGlvbmFsSGFzaCAkZm9yZWlnblBhdGgNCiAgICBF
eHBlY3QtQm9vdHN0cmFwRmFpbHVyZSAtRml4dHVyZSAkdW50cnVzdGVkIC1SZXN1bHRQYXRoICcn
IC1QYXR0ZXJuICfrgq/shKB87J6Q64+ZIOyxhO2DnScNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUg
J3VudHJ1c3RlZCBmb3JlaWduIGZpbGUgcmVtYWlucyBieXRlLWlkZW50aWNhbCcgLUV4cGVjdGVk
ICRmb3JlaWduSGFzaCAtQWN0dWFsIChHZXQtT3B0aW9uYWxIYXNoICRmb3JlaWduUGF0aCkNCiAg
ICBBc3NlcnQtVHJ1ZSAtTmFtZSAndW50cnVzdGVkIG5vbmVtcHR5IHJvb3QgcmVjZWl2ZXMgbm8g
c291bCBzdGF0ZScgLUNvbmRpdGlvbiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9p
bi1QYXRoICR1bnRydXN0ZWQuUm9vdCAnc291bC1zdGF0ZS5qc29uJykpKQ0KDQogICAgJG5ld2Vy
ID0gTmV3LVRlc3RTb3VsUGF5bG9hZCAtTmFtZSAnbmV3ZXItc2NoZW1hJw0KICAgIFdyaXRlLVV0
ZjggLVBhdGggKEpvaW4tUGF0aCAkbmV3ZXIuUm9vdCAnQUdFTlRTLm1kJykgLVRleHQgIiMgZnV0
dXJlIHNvdWxgcmBuIg0KICAgIFdyaXRlLVV0ZjggLVBhdGggKEpvaW4tUGF0aCAkbmV3ZXIuUm9v
dCAnQ0xBVURFLm1kJykgLVRleHQgIkBBR0VOVFMubWRgcmBuIg0KICAgICRmdXR1cmVTdGF0ZSA9
IFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBzY2hlbWFWZXJzaW9uID0gODsgc291bElkID0g
W2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKTsgZnV0dXJlID0gW3BzY3VzdG9tb2JqZWN0XUB7
IHZhbHVlID0gJ2RvLW5vdC10b3VjaCcgfSB9DQogICAgJGZ1dHVyZVN0YXRlUGF0aCA9IEpvaW4t
UGF0aCAkbmV3ZXIuUm9vdCAnc291bC1zdGF0ZS5qc29uJw0KICAgIFdyaXRlLUpzb24gLVBhdGgg
JGZ1dHVyZVN0YXRlUGF0aCAtVmFsdWUgJGZ1dHVyZVN0YXRlDQogICAgJGZ1dHVyZUhhc2ggPSBH
ZXQtT3B0aW9uYWxIYXNoICRmdXR1cmVTdGF0ZVBhdGgNCiAgICBFeHBlY3QtQm9vdHN0cmFwRmFp
bHVyZSAtRml4dHVyZSAkbmV3ZXIgLVJlc3VsdFBhdGggJycgLVBhdHRlcm4gJ+uNlCDstZzsi6Ag
7Iqk7YKk66eIfHY3Jw0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAnbmV3ZXIgc2NoZW1hIHN0YXRl
IHJlbWFpbnMgYnl0ZS1pZGVudGljYWwnIC1FeHBlY3RlZCAkZnV0dXJlSGFzaCAtQWN0dWFsIChH
ZXQtT3B0aW9uYWxIYXNoICRmdXR1cmVTdGF0ZVBhdGgpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUg
J25ld2VyIHNjaGVtYSBmYWlscyBiZWZvcmUgYWRkaW5nIHNldHVwIG1hcmtlcnMnIC1Db25kaXRp
b24gKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkbmV3ZXIuU2V0dXAg
J0FHRU5UUy5tZCcpKSAtYW5kIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0
aCAkbmV3ZXIuU2V0dXAgJ0NMQVVERS5tZCcpKSkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnbmV3
ZXIgc2NoZW1hIGlzIG5vdCBzdGFnZWQgb3IgbWFwcGVkJyAtQ29uZGl0aW9uICgtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJG5ld2VyLlNldHVwICdzdGFnZS1jYWxsLWNv
dW50LnR4dCcpKSAtYW5kIC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAk
bmV3ZXIuU2V0dXAgJ21hcC1jYWxsLWNvdW50LnR4dCcpKSkNCg0KICAgICRpbnZhbGlkSWNvbiA9
IE5ldy1UZXN0U291bFBheWxvYWQgLU5hbWUgJ2ludmFsaWQtaW1wb3J0LWljb24nDQogICAgJGlu
dmFsaWRJY29uU291cmNlID0gSm9pbi1QYXRoICRpbnZhbGlkSWNvbi5TZXR1cCAnYnJva2VuLmlj
bycNCiAgICBbSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJGludmFsaWRJY29uU291cmNlLCBbYnl0
ZVtdXSgwLDAsMSwwLDEsMCwwLDApKQ0KICAgICRpbnZhbGlkSWNvblJlc3VsdCA9IE5ldy1XaXph
cmRSZXN1bHQgLVJvb3QgJGludmFsaWRJY29uLlJvb3QgLUljb25Nb2RlICdpbXBvcnRlZCcgLUlj
b25QYXRoICRpbnZhbGlkSWNvblNvdXJjZQ0KICAgIEV4cGVjdC1Cb290c3RyYXBGYWlsdXJlIC1G
aXh0dXJlICRpbnZhbGlkSWNvbiAtUmVzdWx0UGF0aCAkaW52YWxpZEljb25SZXN1bHQgLVBhdHRl
cm4gJ+yVhOydtOy9mCDsirnsnbjsnYQg7KCB7Jqp7ZWgIOyImCDsl4bsirXri4jri6R8SUNPJw0K
ICAgIEFzc2VydC1UcnVlIC1OYW1lICdpbnZhbGlkIGltcG9ydCBuZXZlciBiZWNvbWVzIGFwcHJv
dmVkIGFuZCBjcmVhdGVzIG5vIHdvcmsgZm9sZGVycycgLUNvbmRpdGlvbiAoDQogICAgICAgIEAo
KEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRpbnZhbGlkSWNvbi5Sb290IC1EaXJlY3Rvcnkg
LUZvcmNlKSB8IFdoZXJlLU9iamVjdCB7ICRfLk5hbWUgLW1hdGNoICdeUlxkezJ9LScgfSkuQ291
bnQgLWVxIDAgLWFuZA0KICAgICAgICBbc3RyaW5nXShHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGgg
KEpvaW4tUGF0aCAkaW52YWxpZEljb24uUm9vdCAnc291bC1zdGF0ZS5qc29uJykgLVJhdyAtRW5j
b2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24pLmljb25EZWNpc2lvbi5zdGF0dXMgLWVxICd3
aXphcmQtcGF1c2VkJw0KICAgICkNCg0KICAgICRtaXNtYXRjaCA9IE5ldy1UZXN0U291bFBheWxv
YWQgLU5hbWUgJ3RyYW5zYWN0aW9uLW1pc21hdGNoJw0KICAgICRtaXNtYXRjaFJlc3VsdFBhdGgg
PSBOZXctV2l6YXJkUmVzdWx0IC1Sb290ICRtaXNtYXRjaC5Sb290DQogICAgJG1pc21hdGNoUmVz
dWx0ID0gR2V0LUNvbnRlbnQgLUxpdGVyYWxQYXRoICRtaXNtYXRjaFJlc3VsdFBhdGggLVJhdyAt
RW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAkbWlzbWF0Y2hSZXN1bHQudHJh
bnNhY3Rpb25JZCA9IFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCkNCiAgICBXcml0ZS1Kc29u
IC1QYXRoICRtaXNtYXRjaFJlc3VsdFBhdGggLVZhbHVlICRtaXNtYXRjaFJlc3VsdA0KICAgIEV4
cGVjdC1Cb290c3RyYXBGYWlsdXJlIC1GaXh0dXJlICRtaXNtYXRjaCAtUmVzdWx0UGF0aCAkbWlz
bWF0Y2hSZXN1bHRQYXRoIC1QYXR0ZXJuICfqsbDrnpgg67KI7Zi4Lirri6TrpoXri4jri6QnDQog
ICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3RyYW5zYWN0aW9uIG1pc21hdGNoIGNyZWF0ZXMgbm8gd29y
ayBmb2xkZXJzJyAtQ29uZGl0aW9uIChAKChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkbWlz
bWF0Y2guUm9vdCAtRGlyZWN0b3J5IC1Gb3JjZSkgfCBXaGVyZS1PYmplY3QgeyAkXy5OYW1lIC1t
YXRjaCAnXlJcZHsyfS0nIH0pLkNvdW50IC1lcSAwKQ0KDQogICAgJHN0YWxlID0gTmV3LVRlc3RT
b3VsUGF5bG9hZCAtTmFtZSAnc3RhbGUtdHJhbnNhY3Rpb24nDQogICAgJHN0YWxlUmVzdWx0UGF0
aCA9IE5ldy1XaXphcmRSZXN1bHQgLVJvb3QgJHN0YWxlLlJvb3QNCiAgICAkc3RhbGVTdGF0ZVBh
dGggPSBKb2luLVBhdGggJHN0YWxlLlJvb3QgJ3NvdWwtc3RhdGUuanNvbicNCiAgICAkc3RhbGVT
dGF0ZSA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkc3RhbGVTdGF0ZVBhdGggLVJhdyAtRW5j
b2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAkc3RhbGVTdGF0ZS5wZW5kaW5nVHJh
bnNhY3Rpb24gPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQogICAgV3JpdGUtSnNvbiAt
UGF0aCAkc3RhbGVTdGF0ZVBhdGggLVZhbHVlICRzdGFsZVN0YXRlDQogICAgJHN0YWxlT3V0cHV0
ID0gSW52b2tlLUZpeHR1cmVCb290c3RyYXAgLUZpeHR1cmUgJHN0YWxlIC1SZXN1bHRQYXRoICcn
DQogICAgJHN0YWxlUGF1c2VkID0gQCgkc3RhbGVPdXRwdXQgfCBXaGVyZS1PYmplY3QgeyAkXy5z
dGF0dXMgLWVxICd3aXphcmQtcGF1c2VkJyB9KSB8IFNlbGVjdC1PYmplY3QgLUxhc3QgMQ0KICAg
IEFzc2VydC1UcnVlIC1OYW1lICdib290c3RyYXAgbmV2ZXIgYXV0by1waWNrcyBhIHN0YWxlIGFw
cHJvdmVkIHRyYW5zYWN0aW9uJyAtQ29uZGl0aW9uICgkbnVsbCAtbmUgJHN0YWxlUGF1c2VkIC1h
bmQgQCgoR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJHN0YWxlLlJvb3QgLURpcmVjdG9yeSAt
Rm9yY2UpIHwgV2hlcmUtT2JqZWN0IHsgJF8uTmFtZSAtbWF0Y2ggJ15SXGR7Mn0tJyB9KS5Db3Vu
dCAtZXEgMCkNCg0KICAgICRsZWdhY3kgPSBOZXctVGVzdFNvdWxQYXlsb2FkIC1OYW1lICdsZWdh
Y3ktY3VycmVudC1zaGFwZScNCiAgICBbdm9pZF0oSW52b2tlLUZpeHR1cmVCb290c3RyYXAgLUZp
eHR1cmUgJGxlZ2FjeSAtUmVzdWx0UGF0aCAnJykNCiAgICAkbGVnYWN5Q2hhaW4gPSAnUjA3Leqw
nOuwnOyekChEZXZlbG9wZXIpXOOAluq1kOyWkeOAl0QwMS3snbjqs7Xsp4DriqUoQXJ0aWZpY2lh
bCBJbnRlbGxpZ2VuY2UpXFAwMy4wMS3rj4TqtawoVG9vbHMpIOOAllBsdWdpbuOAl1xTMDIt6rKA
7KadKFZhbGlkYXRpb24pJw0KICAgIFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3Rv
cnkoKEpvaW4tUGF0aCAkbGVnYWN5LlJvb3QgJGxlZ2FjeUNoYWluKSkNCiAgICAkbGVnYWN5WmVy
b0NoYWluID0gJ1IwMC3qsJzsnbgoUGVyc29uYWwpXEQwMC3quLDrs7goQmFzZSknDQogICAgW3Zv
aWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoSm9pbi1QYXRoICRsZWdhY3kuUm9v
dCAkbGVnYWN5WmVyb0NoYWluKSkNCiAgICAkbGVnYWN5T3JkaW5hcnlDb2RlRGlyZWN0b3J5ID0g
Sm9pbi1QYXRoICRsZWdhY3kuUm9vdCAnUjA3LeqwnOuwnOyekChEZXZlbG9wZXIpXOOAluq1kOyW
keOAl0QwMS3snbjqs7Xsp4DriqUoQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2UpXFAwMy4wMS3rj4Tq
tawoVG9vbHMpIOOAllBsdWdpbuOAl1xkMDQtcDAxLW9yaWdpbi1vZi1zcGVjaWVzJw0KICAgIFt2
b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJGxlZ2FjeU9yZGluYXJ5Q29kZURp
cmVjdG9yeSkNCiAgICAkbGVnYWN5SWNvblBhdGggPSBKb2luLVBhdGggJGxlZ2FjeS5Sb290ICdf
Y29zbW9zLmljbyc7IFdyaXRlLU1pbmltYWxJY28gLVBhdGggJGxlZ2FjeUljb25QYXRoDQogICAg
JGxlZ2FjeVN0YXRlUGF0aCA9IEpvaW4tUGF0aCAkbGVnYWN5LlJvb3QgJ3NvdWwtc3RhdGUuanNv
bicNCiAgICAkbGVnYWN5U3RhdGUgPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJGxlZ2FjeVN0
YXRlUGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgICRsZWdh
Y3lTdGF0ZS5saWZlY3ljbGUgPSAncGVuZGluZy1maW5hbGl6ZSc7ICRsZWdhY3lTdGF0ZS5tYWNo
aW5lUmVhZHkgPSAkdHJ1ZTsgJGxlZ2FjeVN0YXRlLnBlbmRpbmdUcmFuc2FjdGlvbiA9ICRudWxs
DQogICAgJGxlZ2FjeVN0YXRlLnN0cnVjdHVyZURlY2lzaW9uID0gW3BzY3VzdG9tb2JqZWN0XUB7
c3RhdHVzPSdhcHByb3ZlZCc7bW9kZT0nYWRvcHQtZXhpc3RpbmcnO2FwcHJvdmVkQXQ9W0RhdGVU
aW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7ZGVjaXNpb25IYXNoPSgnMCcqNjQpO2FwcHJvdmVk
Tm9kZUlkcz1AKCk7ZGVmZXJyZWRMZXZlbHM9QCgpfQ0KICAgICRsZWdhY3lTdGF0ZS5pY29uRGVj
aXNpb24gPSBbcHNjdXN0b21vYmplY3RdQHtzdGF0dXM9J2FwcHJvdmVkJzttb2RlPSdhZG9wdC1l
eGlzdGluZyc7cmVsYXRpdmVQYXRoPSdfY29zbW9zLmljbyc7c291cmNlSGFzaD0oJzAnKjY0KTt0
YXJnZXQ9J3Jvb3QnfQ0KICAgIFdyaXRlLUpzb24gLVBhdGggJGxlZ2FjeVN0YXRlUGF0aCAtVmFs
dWUgJGxlZ2FjeVN0YXRlDQogICAgJGxlZ2FjeU91dHB1dCA9IEludm9rZS1GaXh0dXJlQm9vdHN0
cmFwIC1GaXh0dXJlICRsZWdhY3kgLVJlc3VsdFBhdGggJycNCiAgICAkbGVnYWN5UnVuID0gR2V0
LUJvb3RzdHJhcFJlc3VsdCAtT3V0cHV0ICRsZWdhY3lPdXRwdXQNCiAgICAkbGVnYWN5QWZ0ZXIg
PSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJGxlZ2FjeVN0YXRlUGF0aCAtUmF3IC1FbmNvZGlu
ZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgICRsZWdhY3lQYXRocyA9IEAoJGxlZ2FjeUFm
dGVyLnN0cnVjdHVyZURlY2lzaW9uLm5vZGVzIHwgRm9yRWFjaC1PYmplY3QgeyBbc3RyaW5nXSRf
LnJlbGF0aXZlUGF0aCB9KQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdsZWdhY3kgYXBwcm92ZWQt
ZW1wdHkgc3RhdGUgaXMgc3VwcGxlbWVudGVkIGZyb20gZXhpc3RpbmcgZm9sZGVycyB3aXRob3V0
IHJlbnVtYmVyaW5nJyAtQ29uZGl0aW9uICgNCiAgICAgICAgJG51bGwgLW5lICRsZWdhY3lSdW4g
LWFuZCAkbGVnYWN5UGF0aHMgLWNvbnRhaW5zICRsZWdhY3lDaGFpbi5SZXBsYWNlKCdcJywnLycp
IC1hbmQNCiAgICAgICAgQCgkbGVnYWN5QWZ0ZXIuc3RydWN0dXJlRGVjaXNpb24ubm9kZXMgfCBX
aGVyZS1PYmplY3QgeyAkXy5jb2RlIC1lcSAnUDAzLjAxJyAtYW5kICRfLmltbXV0YWJsZSAtZXEg
JHRydWUgfSkuQ291bnQgLWVxIDEgLWFuZA0KICAgICAgICAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAoSm9pbi1QYXRoICRsZWdhY3kuUm9vdCAkbGVnYWN5Q2hhaW4pIC1QYXRoVHlwZSBDb250YWlu
ZXIpDQogICAgKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdsb3dlcmNhc2UgcHJvamVjdCBjb2Rl
IGRpcmVjdG9yaWVzIGFyZSBwcmVzZXJ2ZWQgYnV0IG5vdCBtaXNyZWFkIGFzIElSSVMgbGV2ZWxz
JyAtQ29uZGl0aW9uICgNCiAgICAgICAgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGxlZ2FjeU9y
ZGluYXJ5Q29kZURpcmVjdG9yeSAtUGF0aFR5cGUgQ29udGFpbmVyKSAtYW5kDQogICAgICAgIEAo
JGxlZ2FjeVBhdGhzIHwgV2hlcmUtT2JqZWN0IHsgJF8gLW1hdGNoICcvZDA0LXAwMS1vcmlnaW4t
b2Ytc3BlY2llcyg/Oi98JCknIH0pLkNvdW50IC1lcSAwDQogICAgKQ0KICAgIEFzc2VydC1UcnVl
IC1OYW1lICdleGlzdGluZyAwMC1sZXZlbCBjb2RlcyByZW1haW4gaW1tdXRhYmxlIHdpdGggYSBu
b25uZWdhdGl2ZSBpbnRlcm5hbCBvcmRlcicgLUNvbmRpdGlvbiAoDQogICAgICAgICRsZWdhY3lQ
YXRocyAtY29udGFpbnMgJGxlZ2FjeVplcm9DaGFpbi5SZXBsYWNlKCdcJywnLycpIC1hbmQNCiAg
ICAgICAgQCgkbGVnYWN5QWZ0ZXIuc3RydWN0dXJlRGVjaXNpb24ubm9kZXMgfCBXaGVyZS1PYmpl
Y3QgeyAkXy5jb2RlIC1pbiBAKCdSMDAnLCdEMDAnKSAtYW5kIFtpbnRdJF8ub3JkZXIgLWVxIDAg
LWFuZCAkXy5pbW11dGFibGUgLWVxICR0cnVlIH0pLkNvdW50IC1lcSAyDQogICAgKQ0KICAgIEFz
c2VydC1UcnVlIC1OYW1lICdsZWdhY3kgcm9vdCBJQ08gaXMgYWRvcHRlZCBpbiBwbGFjZSBhbmQg
cGVuZGluZyBzdGF0ZSBpcyBub3QgbWFjaGluZS1yZWFkeScgLUNvbmRpdGlvbiAoW3N0cmluZ10k
bGVnYWN5QWZ0ZXIuaWNvbkRlY2lzaW9uLnJlbGF0aXZlUGF0aCAtZXEgJ19jb3Ntb3MuaWNvJyAt
YW5kIFtzdHJpbmddJGxlZ2FjeUFmdGVyLmljb25EZWNpc2lvbi5tb2RlIC1lcSAnYWRvcHQtZXhp
c3RpbmcnIC1hbmQgJGxlZ2FjeUFmdGVyLm1hY2hpbmVSZWFkeSAtZXEgJGZhbHNlKQ0KDQogICAg
JG1pZ3JhdGlvbiA9IE5ldy1UZXN0U291bFBheWxvYWQgLU5hbWUgJ3Y2LW1pZ3JhdGlvbicNCiAg
ICBbdm9pZF0oSW52b2tlLUZpeHR1cmVCb290c3RyYXAgLUZpeHR1cmUgJG1pZ3JhdGlvbiAtUmVz
dWx0UGF0aCAnJykNCiAgICAkbWlncmF0aW9uU3RhdGVQYXRoID0gSm9pbi1QYXRoICRtaWdyYXRp
b24uUm9vdCAnc291bC1zdGF0ZS5qc29uJw0KICAgICRtaWdyYXRpb25TdGF0ZSA9IEdldC1Db250
ZW50IC1MaXRlcmFsUGF0aCAkbWlncmF0aW9uU3RhdGVQYXRoIC1SYXcgLUVuY29kaW5nIFVURjgg
fCBDb252ZXJ0RnJvbS1Kc29uDQogICAgJG1pZ3JhdGlvblN0YXRlLnNjaGVtYVZlcnNpb24gPSA2
OyAkbWlncmF0aW9uU3RhdGUgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAt
TmFtZSAnbGVnYWN5VW5rbm93bicgLVZhbHVlICdwcmVzZXJ2ZS1tZScNCiAgICAkbWlncmF0aW9u
U3RhdGUuc3RydWN0dXJlRGVjaXNpb24gPSBbcHNjdXN0b21vYmplY3RdQHtzdGF0dXM9J3dpemFy
ZC1wYXVzZWQnfTsgJG1pZ3JhdGlvblN0YXRlLmljb25EZWNpc2lvbj1bcHNjdXN0b21vYmplY3Rd
QHtzdGF0dXM9J3dpemFyZC1wYXVzZWQnfTsgJG1pZ3JhdGlvblN0YXRlLmxpZmVjeWNsZT0nd2l6
YXJkLXBhdXNlZCc7ICRtaWdyYXRpb25TdGF0ZS5tYWNoaW5lUmVhZHk9JGZhbHNlOyAkbWlncmF0
aW9uU3RhdGUucGVuZGluZ1RyYW5zYWN0aW9uPSRudWxsDQogICAgaWYgKCRudWxsIC1uZSAkbWln
cmF0aW9uU3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1snYm9vdHN0cmFwJ10pIHsgJG1pZ3JhdGlv
blN0YXRlLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCdib290c3RyYXAnKSB9DQogICAgV3Jp
dGUtSnNvbiAtUGF0aCAkbWlncmF0aW9uU3RhdGVQYXRoIC1WYWx1ZSAkbWlncmF0aW9uU3RhdGUN
CiAgICAkbWlncmF0aW9uUmVzdWx0ID0gTmV3LVdpemFyZFJlc3VsdCAtUm9vdCAkbWlncmF0aW9u
LlJvb3QNCiAgICBbdm9pZF0oSW52b2tlLUZpeHR1cmVCb290c3RyYXAgLUZpeHR1cmUgJG1pZ3Jh
dGlvbiAtUmVzdWx0UGF0aCAkbWlncmF0aW9uUmVzdWx0KQ0KICAgICRtaWdyYXRpb25BZnRlciA9
IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkbWlncmF0aW9uU3RhdGVQYXRoIC1SYXcgLUVuY29k
aW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgJHJlY2VpcHRQYXRoID0gSm9pbi1QYXRo
ICRtaWdyYXRpb24uUm9vdCAoW3N0cmluZ10kbWlncmF0aW9uQWZ0ZXIubWlncmF0aW9uUmVjZWlw
dFJlbGF0aXZlUGF0aCkuUmVwbGFjZSgnLycsJ1wnKQ0KICAgICRyZWNlaXB0ID0gR2V0LUNvbnRl
bnQgLUxpdGVyYWxQYXRoICRyZWNlaXB0UGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVy
dEZyb20tSnNvbg0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd2MS12NiBtaWdyYXRpb24ga2VlcHMg
YSB2ZXJpZmllZCBiYWNrdXAgYW5kIGNvbXBsZXRlZCByZWNlaXB0JyAtQ29uZGl0aW9uIChbc3Ry
aW5nXSRyZWNlaXB0LnN0YXR1cyAtZXEgJ2NvbXBsZXRlZCcgLWFuZCBbc3RyaW5nXSRyZWNlaXB0
LnNvdXJjZVNoYTI1NiAtbWF0Y2ggJ15bMC05YS1mXXs2NH0kJyAtYW5kIFtzdHJpbmddJHJlY2Vp
cHQudGFyZ2V0U2hhMjU2IC1tYXRjaCAnXlswLTlhLWZdezY0fSQnIC1hbmQgKFRlc3QtUGF0aCAt
TGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkbWlncmF0aW9uLlJvb3QgKFtzdHJpbmddJHJlY2VpcHQu
YmFja3VwUmVsYXRpdmVQYXRoKS5SZXBsYWNlKCcvJywnXCcpKSAtUGF0aFR5cGUgTGVhZikpDQog
ICAgQXNzZXJ0LUVxdWFsIC1OYW1lICd2MS12NiBtaWdyYXRpb24gcHJlc2VydmVzIHVua25vd24g
dG9wLWxldmVsIGZpZWxkcycgLUV4cGVjdGVkICdwcmVzZXJ2ZS1tZScgLUFjdHVhbCAoW3N0cmlu
Z10kbWlncmF0aW9uQWZ0ZXIubGVnYWN5VW5rbm93bikNCg0KICAgICRjb2RleEVkaXRpb24gPSBO
ZXctVGVzdFNvdWxQYXlsb2FkIC1OYW1lICdjb2RleC1lZGl0aW9uJw0KICAgIFt2b2lkXShJbnZv
a2UtRml4dHVyZUJvb3RzdHJhcCAtRml4dHVyZSAkY29kZXhFZGl0aW9uIC1SZXN1bHRQYXRoICcn
IC1Tb3VyY2VFZGl0aW9uIENvZGV4KQ0KICAgICRjb2RleFJlc3VsdCA9IE5ldy1XaXphcmRSZXN1
bHQgLVJvb3QgJGNvZGV4RWRpdGlvbi5Sb290DQogICAgW3ZvaWRdKEludm9rZS1GaXh0dXJlQm9v
dHN0cmFwIC1GaXh0dXJlICRjb2RleEVkaXRpb24gLVJlc3VsdFBhdGggJGNvZGV4UmVzdWx0IC1T
b3VyY2VFZGl0aW9uIENvZGV4KQ0KICAgICRjb2RleFN0YXRlID0gR2V0LUNvbnRlbnQgLUxpdGVy
YWxQYXRoIChKb2luLVBhdGggJGNvZGV4RWRpdGlvbi5Sb290ICdzb3VsLXN0YXRlLmpzb24nKSAt
UmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbg0KICAgIEFzc2VydC1FcXVhbCAt
TmFtZSAnU291cmNlRWRpdGlvbiByZWNvcmRzIHRoZSBDb2RleCBleGVjdXRpb24gZ3VpZGUgcHJv
dmVuYW5jZScgLUV4cGVjdGVkICdDb2RleCDsi6TtlontjJAnIC1BY3R1YWwgKFtzdHJpbmddJGNv
ZGV4U3RhdGUuc291cmNlR3VpZGUuZWRpdGlvbikNCg0KICAgIFtJTy5GaWxlXTo6V3JpdGVBbGxU
ZXh0KChKb2luLVBhdGggJGZyZXNoLlNldHVwICdnZW5lcmF0aW9uc1x2Ny1maXh0dXJlLWdlbmVy
YXRpb25cc291cmNlLWxvY2suanNvbicpLCAnY29ycnVwdGVkJywgJHV0ZjhOb0JvbSkNCiAgICAk
cmVzdGFnZWRPdXRwdXQgPSBJbnZva2UtRml4dHVyZUJvb3RzdHJhcCAtRml4dHVyZSAkZnJlc2gg
LVJlc3VsdFBhdGggJycNCiAgICAkcmVzdGFnZWQgPSBHZXQtQm9vdHN0cmFwUmVzdWx0IC1PdXRw
dXQgJHJlc3RhZ2VkT3V0cHV0DQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2NvcnJ1cHQgcGVuZGlu
ZyBnZW5lcmF0aW9uIGxvY2sgaXMgbmV2ZXIgcmV1c2VkJyAtQ29uZGl0aW9uICgkbnVsbCAtbmUg
JHJlc3RhZ2VkIC1hbmQgLW5vdCBbYm9vbF0kcmVzdGFnZWQuZ2VuZXJhdGlvblJldXNlZCAtYW5k
IFtzdHJpbmddJHJlc3RhZ2VkLmdlbmVyYXRpb25JZCAtbmUgJ3Y3LWZpeHR1cmUtZ2VuZXJhdGlv
bicpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdpbnZhbGlkIHN0YWdlIHByb29mIGNhdXNlcyBl
eGFjdGx5IG9uZSBmcmVzaCByZXN0YWdlJyAtRXhwZWN0ZWQgMiAtQWN0dWFsIChbaW50XShHZXQt
Q29udGVudCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkZnJlc2guU2V0dXAgJ3N0YWdlLWNhbGwt
Y291bnQudHh0JykgLVJhdykpDQoNCiAgICAkYWN0dWFsSW50ZWdyYXRpb24gPSBOZXctQWN0dWFs
U3RhZ2VUZXN0U291bCAtTmFtZSAnYWN0dWFsLW1hcC1zdGFnZS1pbnRlZ3JhdGlvbicNCiAgICBb
dm9pZF0oSW52b2tlLUZpeHR1cmVCb290c3RyYXAgLUZpeHR1cmUgJGFjdHVhbEludGVncmF0aW9u
IC1SZXN1bHRQYXRoICcnKQ0KICAgICRwcm90ZWN0ZWRGaXh0dXJlQ29uZmlnID0gSm9pbi1QYXRo
ICRhY3R1YWxJbnRlZ3JhdGlvbi5Sb290ICdfYWdlbnRcY2xhdWRlXHNldHRpbmdzLmpzb24nDQog
ICAgV3JpdGUtVXRmOCAtUGF0aCAkcHJvdGVjdGVkRml4dHVyZUNvbmZpZyAtVGV4dCAie2ByYG4g
IGAiZml4dHVyZVByb3RlY3RlZGAiOiB0cnVlYHJgbn1gcmBuIg0KICAgICRwcm90ZWN0ZWRGaXh0
dXJlSGFzaCA9IEdldC1PcHRpb25hbEhhc2ggJHByb3RlY3RlZEZpeHR1cmVDb25maWcNCiAgICAk
Zml4dHVyZUFjdGl2ZVBvaW50ZXIgPSBKb2luLVBhdGggJGFjdHVhbEludGVncmF0aW9uLlNldHVw
ICdhY3RpdmUtZ2VuZXJhdGlvbi5qc29uJw0KICAgIFdyaXRlLVV0ZjggLVBhdGggJGZpeHR1cmVB
Y3RpdmVQb2ludGVyIC1UZXh0ICJ7YHJgbiAgYCJnZW5lcmF0aW9uSWRgIjogYCJtdXN0LW5vdC1j
aGFuZ2VgImByYG59YHJgbiINCiAgICAkZml4dHVyZUFjdGl2ZUhhc2ggPSBHZXQtT3B0aW9uYWxI
YXNoICRmaXh0dXJlQWN0aXZlUG9pbnRlcg0KICAgICRhY3R1YWxSZXN1bHRQYXRoID0gTmV3LVdp
emFyZFJlc3VsdCAtUm9vdCAkYWN0dWFsSW50ZWdyYXRpb24uUm9vdA0KICAgICRhY3R1YWxPdXRw
dXQgPSBJbnZva2UtRml4dHVyZUJvb3RzdHJhcCAtRml4dHVyZSAkYWN0dWFsSW50ZWdyYXRpb24g
LVJlc3VsdFBhdGggJGFjdHVhbFJlc3VsdFBhdGgNCiAgICAkYWN0dWFsUnVuID0gR2V0LUJvb3Rz
dHJhcFJlc3VsdCAtT3V0cHV0ICRhY3R1YWxPdXRwdXQNCiAgICAkYWN0dWFsR2VuZXJhdGlvbiA9
IEpvaW4tUGF0aCAkYWN0dWFsSW50ZWdyYXRpb24uU2V0dXAgKCdnZW5lcmF0aW9uc1wnICsgW3N0
cmluZ10kYWN0dWFsUnVuLmdlbmVyYXRpb25JZCkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnb25l
IG5vcm1hbCBib290c3RyYXAgcGF0aCBydW5zIHRoZSByZWFsIHN0YWdlLXY3IGJlaGluZCB0aGUg
Zml4dHVyZSBib3VuZGFyeScgLUNvbmRpdGlvbiAoDQogICAgICAgICRudWxsIC1uZSAkYWN0dWFs
UnVuIC1hbmQgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKFtzdHJpbmddJGFjdHVhbFJ1bi5tYXBQ
YXRoKSAtUGF0aFR5cGUgTGVhZikgLWFuZA0KICAgICAgICAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAoSm9pbi1QYXRoICRhY3R1YWxHZW5lcmF0aW9uICdnZW5lcmF0aW9uLmpzb24nKSAtUGF0aFR5
cGUgTGVhZikgLWFuZA0KICAgICAgICAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRo
ICRhY3R1YWxHZW5lcmF0aW9uICdzb3VyY2UtbG9jay5qc29uJykgLVBhdGhUeXBlIExlYWYpDQog
ICAgKQ0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAncmVhbCBzdGF0aWMgc3RhZ2UgbGVhdmVzIGZp
eHR1cmUgcHJvdGVjdGVkIGFnZW50LWhvbWUgY29uZmlnIGJ5dGUtaWRlbnRpY2FsJyAtRXhwZWN0
ZWQgJHByb3RlY3RlZEZpeHR1cmVIYXNoIC1BY3R1YWwgKEdldC1PcHRpb25hbEhhc2ggJHByb3Rl
Y3RlZEZpeHR1cmVDb25maWcpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdyZWFsIHN0YXRpYyBz
dGFnZSBsZWF2ZXMgZml4dHVyZSBhY3RpdmUgcG9pbnRlciBieXRlLWlkZW50aWNhbCcgLUV4cGVj
dGVkICRmaXh0dXJlQWN0aXZlSGFzaCAtQWN0dWFsIChHZXQtT3B0aW9uYWxIYXNoICRmaXh0dXJl
QWN0aXZlUG9pbnRlcikNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ3JlYWwgc3RhdGljIHN0YWdl
IGxlYXZlcyBjdXJyZW50IHNvdWwgYWN0aXZlIHBvaW50ZXIgYnl0ZS1pZGVudGljYWwnIC1FeHBl
Y3RlZCAkcmVhbEFjdGl2ZVBvaW50ZXJIYXNoQmVmb3JlIC1BY3R1YWwgKEdldC1PcHRpb25hbEhh
c2ggJHJlYWxBY3RpdmVQb2ludGVyKQ0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAncmVhbCBzdGF0
aWMgc3RhZ2UgbGVhdmVzIERlc2t0b3AgdG9wLWxldmVsIGludmVudG9yeSB1bmNoYW5nZWQnIC1F
eHBlY3RlZCAkZGVza3RvcEludmVudG9yeUJlZm9yZSAtQWN0dWFsIChHZXQtVG9wTGV2ZWxJbnZl
bnRvcnlIYXNoICRkZXNrdG9wUGF0aCkNCg0KICAgICR3aXphcmRTb3VyY2UgPSBbSU8uRmlsZV06
OlJlYWRBbGxUZXh0KChKb2luLVBhdGggJHNldHVwUm9vdCAnd2l6YXJkLnBzMScpLCAkdXRmOE5v
Qm9tKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd3aXphcmQgcGVyc2lzdHMgdHJhbnNhY3Rpb24g
bWV0YWRhdGEgb25seSBiZWZvcmUgZmluYWwgYXBwcm92YWwnIC1Db25kaXRpb24gKCR3aXphcmRT
b3VyY2UuQ29udGFpbnMoJ2Fuc3dlcnNQZXJzaXN0ZWQ9JGZhbHNlJykgLWFuZCAtbm90ICR3aXph
cmRTb3VyY2UuQ29udGFpbnMoJ1dyaXRlLUpzb25BdG9taWMgLVZhbHVlICRzdGF0ZSAtUGF0aCAk
c3RhdGVQYXRoJykpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3dpemFyZCBVSSBhbmQgc2VydmVy
IGJvdGggZW5mb3JjZSBpbW11dGFibGUgZXhpc3Rpbmcgbm9kZXMnIC1Db25kaXRpb24gKCR3aXph
cmRTb3VyY2UuQ29udGFpbnMoJ+q4sOyhtCjqs6DsoJUpJykgLWFuZCAkd2l6YXJkU291cmNlLkNv
bnRhaW5zKCckc2NyaXB0OkltbXV0YWJsZU5vZGVzQnlJZCcpKQ0KICAgIEFzc2VydC1UcnVlIC1O
YW1lICd3aXphcmQgcmVxdWlyZXMgZXhhY3QgSG9zdCBhbmQgbWFuZGF0b3J5IE9yaWdpbiBhbmQg
ZXhwb3NlcyBhIGNsb3NlIGVuZHBvaW50JyAtQ29uZGl0aW9uICgkd2l6YXJkU291cmNlLkNvbnRh
aW5zKCItbm90IGAkcmVxdWVzdC5IZWFkZXJzLkNvbnRhaW5zS2V5KCdob3N0JykiKSAtYW5kICR3
aXphcmRTb3VyY2UuQ29udGFpbnMoIi1ub3QgYCRyZXF1ZXN0LkhlYWRlcnMuQ29udGFpbnNLZXko
J29yaWdpbicpIikgLWFuZCAkd2l6YXJkU291cmNlLkNvbnRhaW5zKCInL2FwaS9jbG9zZSciKSkN
CiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnd2l6YXJkIHJlc3VtZSByZXF1aXJlcyBhbiBleHBsaWNp
dCB0cmFuc2FjdGlvbiBpbnN0ZWFkIG9mIG5ld2VzdC1maWxlIHNlbGVjdGlvbicgLUNvbmRpdGlv
biAoJHdpemFyZFNvdXJjZS5Db250YWlucygn7Jik656Y65CcIOqxsOuemOulvCDsnpDrj5nsnLzr
oZwg6rOg66W07KeAIOyViuyKteuLiOuLpCcpIC1hbmQgLW5vdCAkd2l6YXJkU291cmNlLkNvbnRh
aW5zKCdTb3J0LU9iamVjdCBMYXN0V3JpdGVUaW1lVXRjIC1EZXNjZW5kaW5nJykpDQogICAgJHNj
aGVtYSA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRzZXR1cFJvb3QgJ21h
bmlmZXN0c1xzb3VsLXN0YXRlLnNjaGVtYS5qc29uJykgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENv
bnZlcnRGcm9tLUpzb24NCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnc3RhdGUgc2NoZW1hIGNvbnRh
aW5zIGNvbmRpdGlvbmFsIHBlbmRpbmctbWFjaGluZVJlYWR5IHZhbGlkYXRpb24gYW5kIHJlYWR5
IHRyYW5zaXRpb24nIC1Db25kaXRpb24gKEAoJHNjaGVtYS5hbGxPZikuQ291bnQgLWdlIDMgLWFu
ZCBAKCRzY2hlbWEucHJvcGVydGllcy5ib290c3RyYXAucHJvcGVydGllcy5zdGFnZVN0YXR1cy5l
bnVtKSAtY29udGFpbnMgJ3JlYWR5JykNCg0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAnQU5USFJP
UElDX0JBU0VfVVJMIHJlbWFpbnMgYnl0ZS1mb3ItYnl0ZSB1bmNoYW5nZWQnIC1FeHBlY3RlZCAk
YW50aHJvcGljQmFzZVVybEJlZm9yZSAtQWN0dWFsIChbRW52aXJvbm1lbnRdOjpHZXRFbnZpcm9u
bWVudFZhcmlhYmxlKCdBTlRIUk9QSUNfQkFTRV9VUkwnLCAnUHJvY2VzcycpKQ0KICAgIEFzc2Vy
dC1FcXVhbCAtTmFtZSAncmVhbCBDbGF1ZGUgc2V0dGluZ3MgcmVtYWluIHVuY2hhbmdlZCcgLUV4
cGVjdGVkICRyZWFsQ2xhdWRlSGFzaEJlZm9yZSAtQWN0dWFsIChHZXQtT3B0aW9uYWxIYXNoICRy
ZWFsQ2xhdWRlU2V0dGluZ3MpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdyZWFsIENvZGV4IHNl
dHRpbmdzIHJlbWFpbiB1bmNoYW5nZWQnIC1FeHBlY3RlZCAkcmVhbENvZGV4SGFzaEJlZm9yZSAt
QWN0dWFsIChHZXQtT3B0aW9uYWxIYXNoICRyZWFsQ29kZXhTZXR0aW5ncykNCg0KICAgIFdyaXRl
LUhvc3QgJycNCiAgICBXcml0ZS1Ib3N0ICJCb290c3RyYXAgdjcgdGVzdHMgcGFzc2VkOiAkKCRz
Y3JpcHQ6UGFzc2VkKS4iDQp9DQpjYXRjaCB7DQogICAgaWYgKCRfLkV4Y2VwdGlvbi5NZXNzYWdl
IC1ub3RtYXRjaCAnXkZBSUwgICcpIHsgJHNjcmlwdDpGYWlsZWQrKyB9DQogICAgV3JpdGUtSG9z
dCAoJ0ZBSUwgICcgKyAkXy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICBXcml0ZS1Ib3N0ICRfLlNj
cmlwdFN0YWNrVHJhY2UNCiAgICB0aHJvdw0KfQ0KZmluYWxseSB7DQogICAgaWYgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGNhc2VSb290KSB7DQogICAgICAgICRyZXNvbHZlZCA9IFtJTy5QYXRo
XTo6R2V0RnVsbFBhdGgoJGNhc2VSb290KS5UcmltRW5kKCdcJywgJy8nKQ0KICAgICAgICAkYm91
bmRhcnkgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRmaXh0dXJlQm91bmRhcnkpLlRyaW1FbmQo
J1wnLCAnLycpDQogICAgICAgICRyZXF1aXJlZFByZWZpeCA9ICRib3VuZGFyeSArIFtJTy5QYXRo
XTo6RGlyZWN0b3J5U2VwYXJhdG9yQ2hhciArICdib290c3RyYXAtJw0KICAgICAgICBpZiAoLW5v
dCAkcmVzb2x2ZWQuU3RhcnRzV2l0aCgkcmVxdWlyZWRQcmVmaXgsIFtTdHJpbmdDb21wYXJpc29u
XTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7DQogICAgICAgICAgICB0aHJvdyAiUmVmdXNpbmcgY2xl
YW51cCBvdXRzaWRlIGJvb3RzdHJhcCBmaXh0dXJlIGJvdW5kYXJ5OiAkcmVzb2x2ZWQiDQogICAg
ICAgIH0NCiAgICAgICAgUmVtb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRyZXNvbHZlZCAtUmVjdXJz
ZSAtRm9yY2UNCiAgICB9DQp9DQoNCmlmICgkc2NyaXB0OkZhaWxlZCAtZ3QgMCkgeyBleGl0IDEg
fQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-Foundations.ps1","encoding":"base64","size":17741,"runtimeSha256":"4dfa0b6448a3dede94965fbcad6ff863fff85a4106b737532f02ba039e56a8f2","normalizedSha256":"39f45132011e01712c15f7fc931fd343a2bfe3b6035d8fe299a5f42708aeb511"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJHNldHVwUm9vdCA9IFtJTy5EaXJlY3RvcnldOjpHZXRQYXJlbnQoJFBTU2Ny
aXB0Um9vdCkuRnVsbE5hbWUNCiRmb3VuZGF0aW9uUGF0aCA9IEpvaW4tUGF0aCAkc2V0dXBSb290
ICdwcmVwYXJlLWZvdW5kYXRpb25zLXY3LnBzMScNCiRtb2R1bGVQYXRoID0gSm9pbi1QYXRoICRz
ZXR1cFJvb3QgJ2VuZ2luZVxTb3VsLkVuZ2luZS5wc20xJw0KJGxvY2tQYXRoID0gSm9pbi1QYXRo
ICRzZXR1cFJvb3QgJ21hbmlmZXN0c1x2Ny1sb2NrLmpzb24nDQpJbXBvcnQtTW9kdWxlIC1OYW1l
ICRtb2R1bGVQYXRoIC1Gb3JjZQ0KDQokc2NyaXB0OlBhc3NlZCA9IDANCiRzY3JpcHQ6RmFpbGVk
ID0gMA0KJHNjcmlwdDpVdGY4Tm9Cb20gPSBOZXctT2JqZWN0IFRleHQuVVRGOEVuY29kaW5nKCRm
YWxzZSkNCg0KZnVuY3Rpb24gQXNzZXJ0LVRydWUgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFu
ZGF0b3J5KV1bc3RyaW5nXSROYW1lLCBbUGFyYW1ldGVyKE1hbmRhdG9yeSldW2Jvb2xdJENvbmRp
dGlvbikNCiAgICBpZiAoLW5vdCAkQ29uZGl0aW9uKSB7ICRzY3JpcHQ6RmFpbGVkKys7IHRocm93
ICJGQUlMRUQ6ICROYW1lIiB9DQogICAgJHNjcmlwdDpQYXNzZWQrKw0KICAgIFdyaXRlLUhvc3Qg
IlBBU1MgICROYW1lIg0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtRXF1YWwgew0KICAgIHBhcmFtKFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSROYW1lLCAkRXhwZWN0ZWQsICRBY3R1YWwpDQog
ICAgQXNzZXJ0LVRydWUgLU5hbWUgJE5hbWUgLUNvbmRpdGlvbiAoW29iamVjdF06OkVxdWFscygk
RXhwZWN0ZWQsICRBY3R1YWwpKQ0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtVGhyb3dzIHsNCiAgICBw
YXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kTmFtZSwgW1BhcmFtZXRlcihNYW5k
YXRvcnkpXVtzY3JpcHRibG9ja10kQWN0aW9uKQ0KICAgICR0aHJldyA9ICRmYWxzZQ0KICAgIHRy
eSB7ICYgJEFjdGlvbiB9IGNhdGNoIHsgJHRocmV3ID0gJHRydWUgfQ0KICAgIEFzc2VydC1UcnVl
IC1OYW1lICROYW1lIC1Db25kaXRpb24gJHRocmV3DQp9DQoNCmZ1bmN0aW9uIE5ldy1GaXh0dXJl
RGlyZWN0b3J5IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGF0
aCwgW3N0cmluZ10kVGl0bGUgPSAnRm91bmRhdGlvbiBmaXh0dXJlJykNCiAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyBbdm9p
ZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRQYXRoKSB9DQogICAgJGFnZW50cyA9
IEpvaW4tUGF0aCAkUGF0aCAnQUdFTlRTLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICRhZ2VudHMpKSB7DQogICAgICAgIFtJTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCRh
Z2VudHMsICIjICRUaXRsZWByYG5gcmBuVGhpcyBkaXJlY3RvcnkgaXMgZGlzcG9zYWJsZSBmb3Vu
ZGF0aW9uIHRlc3QgZGF0YS5gcmBuYHJgbjwhLS0gRG8gbm90IHJlc3RhdGUgaW5oZXJpdGVkIEFH
RU5UUy5tZCBydWxlcy4gLS0+YHJgbiIsICRzY3JpcHQ6VXRmOE5vQm9tKQ0KICAgIH0NCiAgICAk
Y2xhdWRlID0gSm9pbi1QYXRoICRQYXRoICdDTEFVREUubWQnDQogICAgaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJGNsYXVkZSkpIHsgW0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoJGNs
YXVkZSwgIkBBR0VOVFMubWRgcmBuIiwgJHNjcmlwdDpVdGY4Tm9Cb20pIH0NCn0NCg0KZnVuY3Rp
b24gRW5zdXJlLUZpeHR1cmVUcmVlIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSld
W3N0cmluZ10kUGF0aCwgW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJEJvdW5kYXJ5KQ0K
ICAgICRmdWxsID0gW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgkUGF0aCkuVHJpbUVuZCgnXCcsICcv
JykNCiAgICAkcm9vdCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJEJvdW5kYXJ5KS5UcmltRW5k
KCdcJywgJy8nKQ0KICAgIGlmICgtbm90ICRmdWxsLlN0YXJ0c1dpdGgoJHJvb3QgKyAnXCcsIFtT
dHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpIC1hbmQgLW5vdCAkZnVsbC5FcXVh
bHMoJHJvb3QsIFtTdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7DQogICAg
ICAgIHRocm93ICdGaXh0dXJlIGRpcmVjdG9yeSBlc2NhcGVkIGl0cyBib3VuZGFyeS4nDQogICAg
fQ0KICAgICRyZWxhdGl2ZSA9ICRmdWxsLlN1YnN0cmluZygkcm9vdC5MZW5ndGgpLlRyaW1TdGFy
dCgnXCcsICcvJykNCiAgICAkY3Vyc29yID0gJHJvb3QNCiAgICBmb3JlYWNoICgkc2VnbWVudCBp
biBAKCRyZWxhdGl2ZSAtc3BsaXQgJ1tcXC9dJykpIHsNCiAgICAgICAgaWYgKFtzdHJpbmddOjpJ
c051bGxPcldoaXRlU3BhY2UoJHNlZ21lbnQpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJGN1cnNv
ciA9IEpvaW4tUGF0aCAkY3Vyc29yICRzZWdtZW50DQogICAgICAgIE5ldy1GaXh0dXJlRGlyZWN0
b3J5IC1QYXRoICRjdXJzb3INCiAgICB9DQp9DQoNCmZ1bmN0aW9uIFdyaXRlLUZha2VDb21tYW5k
IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kRGlyZWN0b3J5LCBb
UGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kTmFtZSwgW1BhcmFtZXRlcihNYW5kYXRvcnkp
XVtzdHJpbmddJE91dHB1dCkNCiAgICBOZXctRml4dHVyZURpcmVjdG9yeSAtUGF0aCAkRGlyZWN0
b3J5IC1UaXRsZSAnRmFrZSBmb3VuZGF0aW9uIGNvbW1hbmRzJw0KICAgICRwYXRoID0gSm9pbi1Q
YXRoICREaXJlY3RvcnkgKCROYW1lICsgJy5jbWQnKQ0KICAgICRib2R5ID0gIkBlY2hvIG9mZmBy
YG5lY2hvICRPdXRwdXRgcmBuZXhpdCAvYiAwYHJgbiINCiAgICBbSU8uRmlsZV06OldyaXRlQWxs
VGV4dCgkcGF0aCwgJGJvZHksICRzY3JpcHQ6VXRmOE5vQm9tKQ0KICAgIHJldHVybiAkcGF0aA0K
fQ0KDQpmdW5jdGlvbiBOZXctRmFrZVV2V2hlZWwgew0KICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFu
ZGF0b3J5KV1bc3RyaW5nXSRQYXRoKQ0KICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgU3lzdGVt
LklPLkNvbXByZXNzaW9uDQogICAgQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8uQ29t
cHJlc3Npb24uRmlsZVN5c3RlbQ0KICAgICRzdHJlYW0gPSBbSU8uRmlsZV06Ok9wZW4oJFBhdGgs
IFtJTy5GaWxlTW9kZV06OkNyZWF0ZU5ldywgW0lPLkZpbGVBY2Nlc3NdOjpSZWFkV3JpdGUsIFtJ
Ty5GaWxlU2hhcmVdOjpOb25lKQ0KICAgIHRyeSB7DQogICAgICAgICRhcmNoaXZlID0gTmV3LU9i
amVjdCBJTy5Db21wcmVzc2lvbi5aaXBBcmNoaXZlKCRzdHJlYW0sIFtJTy5Db21wcmVzc2lvbi5a
aXBBcmNoaXZlTW9kZV06OkNyZWF0ZSwgJHRydWUpDQogICAgICAgIHRyeSB7DQogICAgICAgICAg
ICBmb3JlYWNoICgkbmFtZSBpbiBAKCd1di5kYXRhL3NjcmlwdHMvdXYuZXhlJywgJ3V2LmRhdGEv
c2NyaXB0cy91dnguZXhlJykpIHsNCiAgICAgICAgICAgICAgICAkZW50cnkgPSAkYXJjaGl2ZS5D
cmVhdGVFbnRyeSgkbmFtZSkNCiAgICAgICAgICAgICAgICAkZW50cnlTdHJlYW0gPSAkZW50cnku
T3BlbigpDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJGJ5dGVz
ID0gJHNjcmlwdDpVdGY4Tm9Cb20uR2V0Qnl0ZXMoImZha2UtJG5hbWUiKQ0KICAgICAgICAgICAg
ICAgICAgICAkZW50cnlTdHJlYW0uV3JpdGUoJGJ5dGVzLCAwLCAkYnl0ZXMuTGVuZ3RoKQ0KICAg
ICAgICAgICAgICAgIH0gZmluYWxseSB7ICRlbnRyeVN0cmVhbS5EaXNwb3NlKCkgfQ0KICAgICAg
ICAgICAgfQ0KICAgICAgICB9IGZpbmFsbHkgeyAkYXJjaGl2ZS5EaXNwb3NlKCkgfQ0KICAgIH0g
ZmluYWxseSB7ICRzdHJlYW0uRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gTmV3LVNvdWxGaXh0
dXJlIHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGFyZW50LCBb
UGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kTmFtZSwgW2hhc2h0YWJsZV0kVmVyc2lvbnMp
DQogICAgJHJvb3QgPSBKb2luLVBhdGggJFBhcmVudCAkTmFtZQ0KICAgIE5ldy1GaXh0dXJlRGly
ZWN0b3J5IC1QYXRoICRyb290IC1UaXRsZSAnRml4dHVyZSBzb3VsJw0KICAgIGZvcmVhY2ggKCRy
ZWxhdGl2ZSBpbiBAKCdfYWdlbnQnLCAnX2FnZW50XHNldHVwJywgJ19hZ2VudFxzaGFyZWQnLCAn
X2FnZW50XHNoYXJlZFx0b29scycpKSB7DQogICAgICAgIEVuc3VyZS1GaXh0dXJlVHJlZSAtUGF0
aCAoSm9pbi1QYXRoICRyb290ICRyZWxhdGl2ZSkgLUJvdW5kYXJ5ICRyb290DQogICAgfQ0KICAg
ICRjb21tYW5kcyA9IEpvaW4tUGF0aCAkcm9vdCAnX2FnZW50XHNldHVwXGZha2UtY29tbWFuZHMn
DQogICAgRW5zdXJlLUZpeHR1cmVUcmVlIC1QYXRoICRjb21tYW5kcyAtQm91bmRhcnkgJHJvb3QN
CiAgICBmb3JlYWNoICgkZW50cnkgaW4gJFZlcnNpb25zLkdldEVudW1lcmF0b3IoKSkgeyBbdm9p
ZF0oV3JpdGUtRmFrZUNvbW1hbmQgLURpcmVjdG9yeSAkY29tbWFuZHMgLU5hbWUgKFtzdHJpbmdd
JGVudHJ5LktleSkgLU91dHB1dCAoW3N0cmluZ10kZW50cnkuVmFsdWUpKSB9DQogICAgcmV0dXJu
IFtwc2N1c3RvbW9iamVjdF1AeyByb290ID0gJHJvb3Q7IGNvbW1hbmRzID0gJGNvbW1hbmRzIH0N
Cn0NCg0KZnVuY3Rpb24gR2V0LUF1ZGl0SXRlbSB7DQogICAgcGFyYW0oJFJlc3VsdCwgW1BhcmFt
ZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJElkKQ0KICAgIHJldHVybiBAKCRSZXN1bHQuYXVkaXQg
fCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlkIC1lcSAkSWQgfSlbMF0NCn0NCg0KZnVuY3Rp
b24gR2V0LU9wdGlvbmFsSGFzaCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5cGUgTGVhZikpIHsgcmV0
dXJuICRudWxsIH0NCiAgICByZXR1cm4gKEdldC1GaWxlSGFzaCAtTGl0ZXJhbFBhdGggJFBhdGgg
LUFsZ29yaXRobSBTSEEyNTYpLkhhc2gNCn0NCg0KJGZpeHR1cmVCb3VuZGFyeSA9IEpvaW4tUGF0
aCAkUFNTY3JpcHRSb290ICdmaXh0dXJlcycNCiRjYXNlUm9vdCA9IEpvaW4tUGF0aCAkZml4dHVy
ZUJvdW5kYXJ5ICgnZm91bmRhdGlvbi0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04n
KS5TdWJzdHJpbmcoMCwgMTApKQ0KJHJlYWxDbGF1ZGVTZXR0aW5ncyA9IEpvaW4tUGF0aCAoW0lP
LkRpcmVjdG9yeV06OkdldFBhcmVudCgkc2V0dXBSb290KS5GdWxsTmFtZSkgJ2NsYXVkZVxzZXR0
aW5ncy5qc29uJw0KJHJlYWxDb2RleFNldHRpbmdzID0gSm9pbi1QYXRoIChbSU8uRGlyZWN0b3J5
XTo6R2V0UGFyZW50KCRzZXR1cFJvb3QpLkZ1bGxOYW1lKSAnY29kZXhcY29uZmlnLnRvbWwnDQok
cmVhbENsYXVkZUhhc2hCZWZvcmUgPSBHZXQtT3B0aW9uYWxIYXNoICRyZWFsQ2xhdWRlU2V0dGlu
Z3MNCiRyZWFsQ29kZXhIYXNoQmVmb3JlID0gR2V0LU9wdGlvbmFsSGFzaCAkcmVhbENvZGV4U2V0
dGluZ3MNCiRhbnRocm9waWNCYXNlVXJsQmVmb3JlID0gW0Vudmlyb25tZW50XTo6R2V0RW52aXJv
bm1lbnRWYXJpYWJsZSgnQU5USFJPUElDX0JBU0VfVVJMJywgJ1Byb2Nlc3MnKQ0KDQp0cnkgew0K
ICAgIE5ldy1GaXh0dXJlRGlyZWN0b3J5IC1QYXRoICRjYXNlUm9vdCAtVGl0bGUgJ0ZvdW5kYXRp
b24gdGVzdCBjYXNlJw0KDQogICAgJGV4YWN0VmVyc2lvbnMgPSBAew0KICAgICAgICB3aW5nZXQg
PSAndjEuMjkuMjkwJw0KICAgICAgICBnaXQgPSAnZ2l0IHZlcnNpb24gMi41NC4wLndpbmRvd3Mu
MScNCiAgICAgICAgbm9kZSA9ICd2MjQuMTcuMCcNCiAgICAgICAgcHkgPSAnUHl0aG9uIDMuMTIu
MTAnDQogICAgfQ0KICAgICRmaXh0dXJlID0gTmV3LVNvdWxGaXh0dXJlIC1QYXJlbnQgJGNhc2VS
b290IC1OYW1lICdmcmVzaCcgLVZlcnNpb25zICRleGFjdFZlcnNpb25zDQogICAgJHNlbnRpbmVs
ID0gSm9pbi1QYXRoICRmaXh0dXJlLnJvb3QgJ2V4aXN0aW5nLXVzZXItZmlsZS50eHQnDQogICAg
W0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoJHNlbnRpbmVsLCAncHJlc2VydmUtbWUnLCAkc2NyaXB0
OlV0ZjhOb0JvbSkNCiAgICAkc2VudGluZWxIYXNoID0gR2V0LU9wdGlvbmFsSGFzaCAkc2VudGlu
ZWwNCg0KICAgICRwbGFuRGlyZWN0b3J5ID0gSm9pbi1QYXRoICRmaXh0dXJlLnJvb3QgJ19hZ2Vu
dFxzZXR1cFxmb3VuZGF0aW9uLW9wZXJhdGlvbnMnDQogICAgJHBsYW4gPSAmICRmb3VuZGF0aW9u
UGF0aCAtVGVzdFJvb3QgJGZpeHR1cmUucm9vdCAtVGVzdENvbW1hbmREaXJlY3RvcnkgJGZpeHR1
cmUuY29tbWFuZHMgLVRlc3RQb3dlclNoZWxsVmVyc2lvbiAnNS4xLjAnDQogICAgQXNzZXJ0LUVx
dWFsIC1OYW1lICdkZWZhdWx0IG1vZGUgaXMgUGxhbk9ubHknIC1FeHBlY3RlZCAncGxhbicgLUFj
dHVhbCAoW3N0cmluZ10kcGxhbi5tb2RlKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdQbGFuT25s
eSBwZXJmb3JtcyBubyBvcGVyYXRpb24tZGlyZWN0b3J5IHdyaXRlcycgLUNvbmRpdGlvbiAoLW5v
dCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGxhbkRpcmVjdG9yeSkpDQogICAgQXNzZXJ0LUVx
dWFsIC1OYW1lICdQbGFuT25seSByZXBvcnRzIHBvcnRhYmxlIHV2IHByZXBhcmF0aW9uJyAtRXhw
ZWN0ZWQgJ3ByZXBhcmUtcG9ydGFibGUtd2hlZWwnIC1BY3R1YWwgKFtzdHJpbmddKEdldC1BdWRp
dEl0ZW0gLVJlc3VsdCAkcGxhbiAtSWQgJ3V2JykuYWN0aW9uKQ0KICAgIEFzc2VydC1FcXVhbCAt
TmFtZSAnUGxhbk9ubHkgcmVwb3J0cyBleGFjdCBsb2NrZWQgR2l0JyAtRXhwZWN0ZWQgJ2V4YWN0
JyAtQWN0dWFsIChbc3RyaW5nXShHZXQtQXVkaXRJdGVtIC1SZXN1bHQgJHBsYW4gLUlkICdnaXQn
KS5zdGF0ZSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ1BsYW5Pbmx5IHJlcG9ydHMgZXhhY3Qg
bG9ja2VkIE5vZGUnIC1FeHBlY3RlZCAnZXhhY3QnIC1BY3R1YWwgKFtzdHJpbmddKEdldC1BdWRp
dEl0ZW0gLVJlc3VsdCAkcGxhbiAtSWQgJ25vZGUnKS5zdGF0ZSkNCiAgICBBc3NlcnQtRXF1YWwg
LU5hbWUgJ1BsYW5Pbmx5IHJlcG9ydHMgZXhhY3QgbG9ja2VkIFB5dGhvbiAzLjEyJyAtRXhwZWN0
ZWQgJ2V4YWN0JyAtQWN0dWFsIChbc3RyaW5nXShHZXQtQXVkaXRJdGVtIC1SZXN1bHQgJHBsYW4g
LUlkICdweXRob24nKS5zdGF0ZSkNCiAgICBBc3NlcnQtVGhyb3dzIC1OYW1lICdQbGFuT25seSBh
bmQgUHJlcGFyZUZvdW5kYXRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUnIC1BY3Rpb24gew0K
ICAgICAgICAmICRmb3VuZGF0aW9uUGF0aCAtUGxhbk9ubHkgLVByZXBhcmVGb3VuZGF0aW9ucyAt
VGVzdFJvb3QgJGZpeHR1cmUucm9vdCAtVGVzdENvbW1hbmREaXJlY3RvcnkgJGZpeHR1cmUuY29t
bWFuZHMgLVRlc3RQb3dlclNoZWxsVmVyc2lvbiAnNS4xLjAnIHwgT3V0LU51bGwNCiAgICB9DQoN
CiAgICAkd2hlZWwgPSBKb2luLVBhdGggJGZpeHR1cmUucm9vdCAnZmFrZS11di53aGwnDQogICAg
TmV3LUZha2VVdldoZWVsIC1QYXRoICR3aGVlbA0KICAgICR3aGVlbFNoYSA9IChHZXQtRmlsZUhh
c2ggLUxpdGVyYWxQYXRoICR3aGVlbCAtQWxnb3JpdGhtIFNIQTI1NikuSGFzaC5Ub0xvd2VySW52
YXJpYW50KCkNCiAgICAkY2FsbHMgPSBAeyBkb3dubG9hZCA9IDA7IGNsYXVkZSA9IDA7IGNvZGV4
ID0gMDsgd2luZ2V0ID0gMCB9DQogICAgJGRvd25sb2FkQWN0aW9uID0gew0KICAgICAgICBwYXJh
bSgkdXJpLCAkZGVzdGluYXRpb24pDQogICAgICAgICRjYWxscy5kb3dubG9hZCsrDQogICAgICAg
IFtJTy5GaWxlXTo6Q29weSgkd2hlZWwsICRkZXN0aW5hdGlvbiwgJGZhbHNlKQ0KICAgIH0uR2V0
TmV3Q2xvc3VyZSgpDQogICAgJHdpbmdldEFjdGlvbiA9IHsNCiAgICAgICAgcGFyYW0oJGlkLCAk
dmVyc2lvbiwgJHZlcmIsICRjb21tYW5kRGlyZWN0b3J5KQ0KICAgICAgICAkY2FsbHMud2luZ2V0
KysNCiAgICAgICAgdGhyb3cgJ0V4YWN0IG5hdGl2ZSB0b29scyBzaG91bGQgbm90IGludm9rZSB0
aGUgZmFrZSBXaW5HZXQgaW5zdGFsbGVyLicNCiAgICB9LkdldE5ld0Nsb3N1cmUoKQ0KICAgICRj
bGF1ZGVBY3Rpb24gPSB7DQogICAgICAgIHBhcmFtKCR2ZXJzaW9uLCAkY29tbWFuZERpcmVjdG9y
eSkNCiAgICAgICAgJGNhbGxzLmNsYXVkZSsrDQogICAgICAgICRlbmNvZGluZyA9IE5ldy1PYmpl
Y3QgVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0KICAgICAgICAkY29tbWFuZFBhdGggPSBKb2lu
LVBhdGggJGNvbW1hbmREaXJlY3RvcnkgJ2NsYXVkZS5jbWQnDQogICAgICAgIFtJTy5GaWxlXTo6
V3JpdGVBbGxUZXh0KCRjb21tYW5kUGF0aCwgIkBlY2hvIG9mZmByYG5lY2hvIENsYXVkZSBDb2Rl
ICR2ZXJzaW9uYHJgbmV4aXQgL2IgMGByYG4iLCAkZW5jb2RpbmcpDQogICAgICAgIFtwc2N1c3Rv
bW9iamVjdF1AeyBzdGF0dXMgPSAnZmFrZS1pbnN0YWxsZWQnOyBpZCA9ICdjbGF1ZGUtY29kZSc7
IHZlcnNpb24gPSAkdmVyc2lvbiB9DQogICAgfS5HZXROZXdDbG9zdXJlKCkNCiAgICAkY29kZXhB
Y3Rpb24gPSB7DQogICAgICAgIHBhcmFtKCR2ZXJzaW9uLCAkcHJlcGFyZWQsICRjb21tYW5kRGly
ZWN0b3J5KQ0KICAgICAgICAkY2FsbHMuY29kZXgrKw0KICAgICAgICAkZW5jb2RpbmcgPSBOZXct
T2JqZWN0IFRleHQuVVRGOEVuY29kaW5nKCRmYWxzZSkNCiAgICAgICAgJG5vZGVNb2R1bGVzID0g
Sm9pbi1QYXRoICRwcmVwYXJlZCAnbm9kZV9tb2R1bGVzJw0KICAgICAgICAkYmluID0gSm9pbi1Q
YXRoICRwcmVwYXJlZCAnbm9kZV9tb2R1bGVzXC5iaW4nDQogICAgICAgIGZvcmVhY2ggKCRkaXJl
Y3RvcnlSZWNvcmQgaW4gQCgNCiAgICAgICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0g
JG5vZGVNb2R1bGVzOyB0aXRsZSA9ICdGYWtlIENvZGV4IG5vZGUgbW9kdWxlcycgfSwNCiAgICAg
ICAgICAgIFtwc2N1c3RvbW9iamVjdF1AeyBwYXRoID0gJGJpbjsgdGl0bGUgPSAnRmFrZSBDb2Rl
eCBjb21tYW5kIGJpbicgfQ0KICAgICAgICApKSB7DQogICAgICAgICAgICBpZiAoLW5vdCAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkZGlyZWN0b3J5UmVjb3JkLnBhdGggLVBhdGhUeXBlIENvbnRh
aW5lcikpIHsgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkZGlyZWN0b3J5
UmVjb3JkLnBhdGgpIH0NCiAgICAgICAgICAgICRhZ2VudHNQYXRoID0gSm9pbi1QYXRoICRkaXJl
Y3RvcnlSZWNvcmQucGF0aCAnQUdFTlRTLm1kJw0KICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJGFnZW50c1BhdGgpKSB7DQogICAgICAgICAgICAgICAgW0lPLkZp
bGVdOjpXcml0ZUFsbFRleHQoJGFnZW50c1BhdGgsICIjICQoJGRpcmVjdG9yeVJlY29yZC50aXRs
ZSlgcmBuYHJgblRoaXMgZGlyZWN0b3J5IGlzIGRpc3Bvc2FibGUgZm91bmRhdGlvbiB0ZXN0IGRh
dGEuYHJgbmByYG48IS0tIERvIG5vdCByZXN0YXRlIGluaGVyaXRlZCBBR0VOVFMubWQgcnVsZXMu
IC0tPmByYG4iLCAkZW5jb2RpbmcpDQogICAgICAgICAgICB9DQogICAgICAgICAgICAkY2xhdWRl
UGF0aCA9IEpvaW4tUGF0aCAkZGlyZWN0b3J5UmVjb3JkLnBhdGggJ0NMQVVERS5tZCcNCiAgICAg
ICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjbGF1ZGVQYXRoKSkgeyBb
SU8uRmlsZV06OldyaXRlQWxsVGV4dCgkY2xhdWRlUGF0aCwgIkBBR0VOVFMubWRgcmBuIiwgJGVu
Y29kaW5nKSB9DQogICAgICAgIH0NCiAgICAgICAgW0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoKEpv
aW4tUGF0aCAkYmluICdjb2RleC5jbWQnKSwgIkBlY2hvIG9mZmByYG5lY2hvIGNvZGV4LWNsaSAk
dmVyc2lvbmByYG5leGl0IC9iIDBgcmBuIiwgJGVuY29kaW5nKQ0KICAgICAgICBbcHNjdXN0b21v
YmplY3RdQHsgc3RhdHVzID0gJ2Zha2UtbWF0ZXJpYWxpemVkJzsgaWQgPSAnY29kZXgtY2xpJzsg
dmVyc2lvbiA9ICR2ZXJzaW9uIH0NCiAgICB9LkdldE5ld0Nsb3N1cmUoKQ0KDQogICAgJHByZXBh
cmVkID0gJiAkZm91bmRhdGlvblBhdGggLVByZXBhcmVGb3VuZGF0aW9ucyAtVGVzdFJvb3QgJGZp
eHR1cmUucm9vdCAtVGVzdENvbW1hbmREaXJlY3RvcnkgJGZpeHR1cmUuY29tbWFuZHMgLVRlc3RQ
b3dlclNoZWxsVmVyc2lvbiAnNS4xLjAnIC1UZXN0VXZTaGEyNTYgJHdoZWVsU2hhIC1UZXN0VmVy
c2lvbk92ZXJyaWRlcyBAeyB1diA9ICd1diAwLjExLjIxICg1YWE2NWRkN2EgMjAyNi0wNi0xMSB4
ODZfNjQtcGMtd2luZG93cy1tc3ZjKSc7ICdjb2RleC1jbGknID0gJ2NvZGV4LWNsaSAwLjE0OS4w
JyB9IC1UZXN0RG93bmxvYWRBY3Rpb24gJGRvd25sb2FkQWN0aW9uIC1UZXN0V2luZ2V0QWN0aW9u
ICR3aW5nZXRBY3Rpb24gLVRlc3RDbGF1ZGVJbnN0YWxsQWN0aW9uICRjbGF1ZGVBY3Rpb24gLVRl
c3RDb2RleEluc3RhbGxBY3Rpb24gJGNvZGV4QWN0aW9uDQogICAgaWYgKFtzdHJpbmddJHByZXBh
cmVkLnN0YXR1cyAtbmUgJ3JlYWR5JykgeyBXcml0ZS1Ib3N0ICgkcHJlcGFyZWQgfCBDb252ZXJ0
VG8tSnNvbiAtRGVwdGggMTIpIH0NCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ2ZpeHR1cmUgcHJl
cGFyYXRpb24gcmVhY2hlcyByZWFkeSBzdGF0ZScgLUV4cGVjdGVkICdyZWFkeScgLUFjdHVhbCAo
W3N0cmluZ10kcHJlcGFyZWQuc3RhdHVzKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdmaXh0dXJl
IHByZXBhcmF0aW9uIHJlcG9ydHMgbWFjaGluZSByZWFkeScgLUNvbmRpdGlvbiAoW2Jvb2xdJHBy
ZXBhcmVkLm1hY2hpbmVSZWFkeSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ2V4YWN0IG5hdGl2
ZSBmb3VuZGF0aW9ucyBhcmUgbmV2ZXIgcmVpbnN0YWxsZWQnIC1FeHBlY3RlZCAwIC1BY3R1YWwg
JGNhbGxzLndpbmdldA0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAnbG9ja2VkIHV2IHdoZWVsIGlz
IGRvd25sb2FkZWQgb25jZScgLUV4cGVjdGVkIDEgLUFjdHVhbCAkY2FsbHMuZG93bmxvYWQNCiAg
ICBBc3NlcnQtRXF1YWwgLU5hbWUgJ21pc3NpbmcgQ2xhdWRlIGlzIGluc3RhbGxlZCBvbmNlIHRo
cm91Z2ggZmFrZSBhY3Rpb24nIC1FeHBlY3RlZCAxIC1BY3R1YWwgJGNhbGxzLmNsYXVkZQ0KICAg
IEFzc2VydC1FcXVhbCAtTmFtZSAnbWlzc2luZyBDb2RleCBpcyBwcmVwYXJlZCBvbmNlIHRocm91
Z2ggZmFrZSBhY3Rpb24nIC1FeHBlY3RlZCAxIC1BY3R1YWwgJGNhbGxzLmNvZGV4DQogICAgJHNv
dXJjZUxvY2sgPSBSZWFkLVNvdWxKc29uIC1QYXRoICRsb2NrUGF0aA0KICAgICR1dkxvY2sgPSBA
KCRzb3VyY2VMb2NrLmZvdW5kYXRpb25zIHwgV2hlcmUtT2JqZWN0IHsgJF8uaWQgLWVxICd1dicg
fSlbMF0NCiAgICAkY29kZXhMb2NrID0gQCgkc291cmNlTG9jay5mb3VuZGF0aW9ucyB8IFdoZXJl
LU9iamVjdCB7ICRfLmlkIC1lcSAnY29kZXgtY2xpJyB9KVswXQ0KICAgICRsb2NrZWRVdlJvb3Qg
PSBKb2luLVBhdGggJGZpeHR1cmUucm9vdCAoKFtzdHJpbmddJHV2TG9jay5jYW5vbmljYWxSZWxh
dGl2ZVBhdGgpLlJlcGxhY2UoJy8nLCAnXCcpKQ0KICAgICRsb2NrZWRDb2RleFJvb3QgPSBKb2lu
LVBhdGggJGZpeHR1cmUucm9vdCAoKFtzdHJpbmddJGNvZGV4TG9jay5mYWxsYmFja0Nhbm9uaWNh
bFJlbGF0aXZlUGF0aCkuUmVwbGFjZSgnLycsICdcJykpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUg
J3V2IGNhbm9uaWNhbCBiaW5hcnkgZm9sbG93cyB0aGUgZXhwbGljaXQgbG9jayBwYXRoIGluc2lk
ZSB0aGUgc291bCcgLUNvbmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRo
ICRsb2NrZWRVdlJvb3QgJ2Jpblx1di5leGUnKSAtUGF0aFR5cGUgTGVhZikNCiAgICBBc3NlcnQt
VHJ1ZSAtTmFtZSAnQ29kZXggZmFsbGJhY2sgZm9sbG93cyB0aGUgZXhwbGljaXQgbG9jayBwYXRo
IGluc2lkZSB0aGUgc291bCcgLUNvbmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9p
bi1QYXRoICRsb2NrZWRDb2RleFJvb3QgJ25vZGVfbW9kdWxlc1wuYmluXGNvZGV4LmNtZCcpIC1Q
YXRoVHlwZSBMZWFmKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd1diBzaGltIGlzIGluc2lkZSB0
aGUgc291bCcgLUNvbmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRm
aXh0dXJlLnJvb3QgJ19hZ2VudFxzaGFyZWRcc2hpbXNcdXYuY21kJykgLVBhdGhUeXBlIExlYWYp
DQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ0NvZGV4IHNoaW0gaXMgaW5zaWRlIHRoZSBzb3VsJyAt
Q29uZGl0aW9uIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGZpeHR1cmUucm9v
dCAnX2FnZW50XHNoYXJlZFxzaGltc1xjb2RleC5jbWQnKSAtUGF0aFR5cGUgTGVhZikNCiAgICAk
dXZTaGltID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgoSm9pbi1QYXRoICRmaXh0dXJlLnJvb3Qg
J19hZ2VudFxzaGFyZWRcc2hpbXNcdXYuY21kJykpDQogICAgJGNvZGV4U2hpbSA9IFtJTy5GaWxl
XTo6UmVhZEFsbFRleHQoKEpvaW4tUGF0aCAkZml4dHVyZS5yb290ICdfYWdlbnRcc2hhcmVkXHNo
aW1zXGNvZGV4LmNtZCcpKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd1diBzaGltIGlzIHJlbG9j
YXRpb24tc2FmZSBhbmQgY29udGFpbnMgbm8gYWJzb2x1dGUgZml4dHVyZSBwYXRoJyAtQ29uZGl0
aW9uICgtbm90ICR1dlNoaW0uQ29udGFpbnMoJGZpeHR1cmUucm9vdCkgLWFuZCAkdXZTaGltLkNv
bnRhaW5zKCclfmRwMCcpKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdDb2RleCBzaGltIGlzIHJl
bG9jYXRpb24tc2FmZSBhbmQgY29udGFpbnMgbm8gYWJzb2x1dGUgZml4dHVyZSBwYXRoJyAtQ29u
ZGl0aW9uICgtbm90ICRjb2RleFNoaW0uQ29udGFpbnMoJGZpeHR1cmUucm9vdCkgLWFuZCAkY29k
ZXhTaGltLkNvbnRhaW5zKCclfmRwMCcpKQ0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAncHJlLWV4
aXN0aW5nIHVzZXIgZmlsZSByZW1haW5zIGJ5dGUtaWRlbnRpY2FsJyAtRXhwZWN0ZWQgJHNlbnRp
bmVsSGFzaCAtQWN0dWFsIChHZXQtT3B0aW9uYWxIYXNoICRzZW50aW5lbCkNCiAgICBBc3NlcnQt
VHJ1ZSAtTmFtZSAnaW1tdXRhYmxlIGZvdW5kYXRpb24gcmVjZWlwdCBpcyB3cml0dGVuIGluc2lk
ZSBmaXh0dXJlIHNvdWwnIC1Db25kaXRpb24gKFtzdHJpbmddJHByZXBhcmVkLnJlY2VpcHRQYXRo
IC1saWtlICgkZml4dHVyZS5yb290ICsgJyonKSAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICRwcmVwYXJlZC5yZWNlaXB0UGF0aCAtUGF0aFR5cGUgTGVhZikpDQogICAgQXNzZXJ0LVRydWUg
LU5hbWUgJ3Jlc3VsdCByZWNvcmRzIG5vIERlc2t0b3Agd3JpdGUnIC1Db25kaXRpb24gKC1ub3Qg
W2Jvb2xdJHByZXBhcmVkLmRlc2t0b3BXcml0ZXMpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3Jl
c3VsdCByZWNvcmRzIG5vIGFjdGl2ZSBhZ2VudCBzZXR0aW5ncyBjaGFuZ2UnIC1Db25kaXRpb24g
KC1ub3QgW2Jvb2xdJHByZXBhcmVkLmFjdGl2ZUFnZW50U2V0dGluZ3NDaGFuZ2VkKQ0KICAgIEFz
c2VydC1UcnVlIC1OYW1lICdyZXN1bHQgcmVjb3JkcyBubyBwcm94eSBlbnZpcm9ubWVudCBjaGFu
Z2UnIC1Db25kaXRpb24gKC1ub3QgW2Jvb2xdJHByZXBhcmVkLmFudGhyb3BpY0Jhc2VVcmxDaGFu
Z2VkKQ0KDQogICAgJG5ld2VyRml4dHVyZSA9IE5ldy1Tb3VsRml4dHVyZSAtUGFyZW50ICRjYXNl
Um9vdCAtTmFtZSAnbmV3ZXInIC1WZXJzaW9ucyBAew0KICAgICAgICB3aW5nZXQgPSAndjEuNDAu
MCcNCiAgICAgICAgZ2l0ID0gJ2dpdCB2ZXJzaW9uIDIuNTUuMS53aW5kb3dzLjEnDQogICAgICAg
IG5vZGUgPSAndjI0LjE4LjInDQogICAgICAgIHB5ID0gJ1B5dGhvbiAzLjEyLjExJw0KICAgICAg
ICBjbGF1ZGUgPSAnQ2xhdWRlIENvZGUgMi4yLjAnDQogICAgICAgIGNvZGV4ID0gJ2NvZGV4LWNs
aSAwLjE1MC4xJw0KICAgIH0NCiAgICAkbmV3ZXIgPSAmICRmb3VuZGF0aW9uUGF0aCAtUGxhbk9u
bHkgLVRlc3RSb290ICRuZXdlckZpeHR1cmUucm9vdCAtVGVzdENvbW1hbmREaXJlY3RvcnkgJG5l
d2VyRml4dHVyZS5jb21tYW5kcyAtVGVzdFBvd2VyU2hlbGxWZXJzaW9uICc1LjEuMCcNCiAgICBm
b3JlYWNoICgkaWQgaW4gQCgnZ2l0JywgJ25vZGUnLCAncHl0aG9uJywgJ2NsYXVkZS1jb2RlJywg
J2NvZGV4LWNsaScpKSB7DQogICAgICAgIEFzc2VydC1FcXVhbCAtTmFtZSAiY29tcGF0aWJsZSBu
ZXdlciAkaWQgaXMgcHJlc2VydmVkIiAtRXhwZWN0ZWQgJ25ld2VyLWNvbXBhdGlibGUtcHJlc2Vy
dmVkJyAtQWN0dWFsIChbc3RyaW5nXShHZXQtQXVkaXRJdGVtIC1SZXN1bHQgJG5ld2VyIC1JZCAk
aWQpLnN0YXRlKQ0KICAgIH0NCg0KICAgICRpbmNvbXBhdGlibGVGaXh0dXJlID0gTmV3LVNvdWxG
aXh0dXJlIC1QYXJlbnQgJGNhc2VSb290IC1OYW1lICdpbmNvbXBhdGlibGUnIC1WZXJzaW9ucyBA
ew0KICAgICAgICB3aW5nZXQgPSAndjEuMjkuMjkwJw0KICAgICAgICBnaXQgPSAnZ2l0IHZlcnNp
b24gMi41NC4wLndpbmRvd3MuMScNCiAgICAgICAgbm9kZSA9ICd2MjUuMC4wJw0KICAgICAgICBw
eSA9ICdQeXRob24gMy4xMi4xMCcNCiAgICAgICAgY2xhdWRlID0gJ0NsYXVkZSBDb2RlIDIuMS4y
NDEnDQogICAgICAgIGNvZGV4ID0gJ2NvZGV4LWNsaSAwLjE0OS4wJw0KICAgIH0NCiAgICAkaW5j
b21wYXRpYmxlID0gJiAkZm91bmRhdGlvblBhdGggLVBsYW5Pbmx5IC1UZXN0Um9vdCAkaW5jb21w
YXRpYmxlRml4dHVyZS5yb290IC1UZXN0Q29tbWFuZERpcmVjdG9yeSAkaW5jb21wYXRpYmxlRml4
dHVyZS5jb21tYW5kcyAtVGVzdFBvd2VyU2hlbGxWZXJzaW9uICc1LjEuMCcNCiAgICBBc3NlcnQt
RXF1YWwgLU5hbWUgJ25ld2VyIGluY29tcGF0aWJsZSBOb2RlIGlzIHByZXNlcnZlZCB3aXRob3V0
IGRvd25ncmFkZScgLUV4cGVjdGVkICduZXdlci1pbmNvbXBhdGlibGUtcHJlc2VydmVkJyAtQWN0
dWFsIChbc3RyaW5nXShHZXQtQXVkaXRJdGVtIC1SZXN1bHQgJGluY29tcGF0aWJsZSAtSWQgJ25v
ZGUnKS5zdGF0ZSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ25ld2VyIGluY29tcGF0aWJsZSBO
b2RlIHJlcXVpcmVzIGh1bWFuIHNpZGUtYnktc2lkZSBkZWNpc2lvbicgLUV4cGVjdGVkICd1c2Vy
LXJlc29sdmUtc2lkZS1ieS1zaWRlJyAtQWN0dWFsIChbc3RyaW5nXShHZXQtQXVkaXRJdGVtIC1S
ZXN1bHQgJGluY29tcGF0aWJsZSAtSWQgJ25vZGUnKS5hY3Rpb24pDQoNCiAgICAkYmFkRml4dHVy
ZSA9IE5ldy1Tb3VsRml4dHVyZSAtUGFyZW50ICRjYXNlUm9vdCAtTmFtZSAnYmFkLWhhc2gnIC1W
ZXJzaW9ucyBAew0KICAgICAgICB3aW5nZXQgPSAndjEuMjkuMjkwJw0KICAgICAgICBnaXQgPSAn
Z2l0IHZlcnNpb24gMi41NC4wLndpbmRvd3MuMScNCiAgICAgICAgbm9kZSA9ICd2MjQuMTcuMCcN
CiAgICAgICAgcHkgPSAnUHl0aG9uIDMuMTIuMTAnDQogICAgICAgIGNsYXVkZSA9ICdDbGF1ZGUg
Q29kZSAyLjEuMjQxJw0KICAgICAgICBjb2RleCA9ICdjb2RleC1jbGkgMC4xNDkuMCcNCiAgICB9
DQogICAgJGJhZFdoZWVsID0gSm9pbi1QYXRoICRiYWRGaXh0dXJlLnJvb3QgJ2JhZC11di53aGwn
DQogICAgTmV3LUZha2VVdldoZWVsIC1QYXRoICRiYWRXaGVlbA0KICAgICRiYWREb3dubG9hZCA9
IHsgcGFyYW0oJHVyaSwgJGRlc3RpbmF0aW9uKSBbSU8uRmlsZV06OkNvcHkoJGJhZFdoZWVsLCAk
ZGVzdGluYXRpb24sICRmYWxzZSkgfS5HZXROZXdDbG9zdXJlKCkNCiAgICAkYmFkID0gJiAkZm91
bmRhdGlvblBhdGggLVByZXBhcmVGb3VuZGF0aW9ucyAtVGVzdFJvb3QgJGJhZEZpeHR1cmUucm9v
dCAtVGVzdENvbW1hbmREaXJlY3RvcnkgJGJhZEZpeHR1cmUuY29tbWFuZHMgLVRlc3RQb3dlclNo
ZWxsVmVyc2lvbiAnNS4xLjAnIC1UZXN0VXZTaGEyNTYgKCcwJyAqIDY0KSAtVGVzdFZlcnNpb25P
dmVycmlkZXMgQHsgdXYgPSAndXYgMC4xMS4yMScgfSAtVGVzdERvd25sb2FkQWN0aW9uICRiYWRE
b3dubG9hZA0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd1diBoYXNoIG1pc21hdGNoIGtlZXBzIG1h
Y2hpbmUgbm90IHJlYWR5JyAtQ29uZGl0aW9uICgtbm90IFtib29sXSRiYWQubWFjaGluZVJlYWR5
KQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICd1diBoYXNoIG1pc21hdGNoIGlzIHJlcG9ydGVkIHdp
dGhvdXQgcHVibGlzaGluZyBjYW5vbmljYWwnIC1Db25kaXRpb24gKEAoJGJhZC5mYWlsdXJlcyB8
IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1lcSAndXYnIH0pLkNvdW50IC1lcSAxIC1hbmQgLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRiYWRGaXh0dXJlLnJvb3QgJ19hZ2Vu
dFxzaGFyZWRcdG9vbHNcdXZcMC4xMS4yMScpKSkNCg0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAn
QU5USFJPUElDX0JBU0VfVVJMIHJlbWFpbnMgYnl0ZS1mb3ItYnl0ZSB1bmNoYW5nZWQnIC1FeHBl
Y3RlZCAkYW50aHJvcGljQmFzZVVybEJlZm9yZSAtQWN0dWFsIChbRW52aXJvbm1lbnRdOjpHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKCdBTlRIUk9QSUNfQkFTRV9VUkwnLCAnUHJvY2VzcycpKQ0KICAg
IEFzc2VydC1FcXVhbCAtTmFtZSAncmVhbCBDbGF1ZGUgc2V0dGluZ3MgcmVtYWluIHVuY2hhbmdl
ZCcgLUV4cGVjdGVkICRyZWFsQ2xhdWRlSGFzaEJlZm9yZSAtQWN0dWFsIChHZXQtT3B0aW9uYWxI
YXNoICRyZWFsQ2xhdWRlU2V0dGluZ3MpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdyZWFsIENv
ZGV4IHNldHRpbmdzIHJlbWFpbiB1bmNoYW5nZWQnIC1FeHBlY3RlZCAkcmVhbENvZGV4SGFzaEJl
Zm9yZSAtQWN0dWFsIChHZXQtT3B0aW9uYWxIYXNoICRyZWFsQ29kZXhTZXR0aW5ncykNCg0KICAg
IFdyaXRlLUhvc3QgJycNCiAgICBXcml0ZS1Ib3N0ICJGb3VuZGF0aW9uIHRlc3RzIHBhc3NlZDog
JCgkc2NyaXB0OlBhc3NlZCkuIg0KfSBjYXRjaCB7DQogICAgJHNjcmlwdDpGYWlsZWQrKw0KICAg
IFdyaXRlLUhvc3QgKCdGQUlMICAnICsgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpDQogICAgV3JpdGUt
SG9zdCAkXy5TY3JpcHRTdGFja1RyYWNlDQogICAgdGhyb3cNCn0gZmluYWxseSB7DQogICAgaWYg
KFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNhc2VSb290KSB7DQogICAgICAgICRyZXNvbHZlZCA9
IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJGNhc2VSb290KS5UcmltRW5kKCdcJywgJy8nKQ0KICAg
ICAgICAkYm91bmRhcnkgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRmaXh0dXJlQm91bmRhcnkp
LlRyaW1FbmQoJ1wnLCAnLycpDQogICAgICAgICRyZXF1aXJlZFByZWZpeCA9ICRib3VuZGFyeSAr
IFtJTy5QYXRoXTo6RGlyZWN0b3J5U2VwYXJhdG9yQ2hhciArICdmb3VuZGF0aW9uLScNCiAgICAg
ICAgaWYgKC1ub3QgJHJlc29sdmVkLlN0YXJ0c1dpdGgoJHJlcXVpcmVkUHJlZml4LCBbU3RyaW5n
Q29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgew0KICAgICAgICAgICAgdGhyb3cgIlJl
ZnVzaW5nIGNsZWFudXAgb3V0c2lkZSBmb3VuZGF0aW9uIGZpeHR1cmUgYm91bmRhcnk6ICRyZXNv
bHZlZCINCiAgICAgICAgfQ0KICAgICAgICBSZW1vdmUtSXRlbSAtTGl0ZXJhbFBhdGggJHJlc29s
dmVkIC1SZWN1cnNlIC1Gb3JjZQ0KICAgIH0NCn0NCg0KaWYgKCRzY3JpcHQ6RmFpbGVkIC1ndCAw
KSB7IGV4aXQgMSB9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-HomeMigration.ps1","encoding":"base64","size":17522,"runtimeSha256":"f391348fdc4fdb85d81798ae32247c964238f2cffa637d4e1a2cbb8c15afabc3","normalizedSha256":"f3ad75b4905a01e1fe49a831c6a1e71bba47110cf38d1c6a7e33a05b4eddc10d"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJHNldHVwRGlyZWN0b3J5ID0gW0lPLkRpcmVjdG9yeV06OkdldFBhcmVudCgk
UFNTY3JpcHRSb290KS5GdWxsTmFtZQ0KJGFkYXB0ZXJQYXRoID0gSm9pbi1QYXRoICRzZXR1cERp
cmVjdG9yeSAnYXBwbHktYWRhcHRlcnMtdjcucHMxJw0KJGZpeHR1cmVCb3VuZGFyeSA9IEpvaW4t
UGF0aCAkUFNTY3JpcHRSb290ICdmaXh0dXJlcycNCiRjYXNlSWQgPSBbZ3VpZF06Ok5ld0d1aWQo
KS5Ub1N0cmluZygnTicpDQokY2FzZVJvb3QgPSBKb2luLVBhdGggJGZpeHR1cmVCb3VuZGFyeSAo
J2hvbWUtbWlncmF0aW9uLScgKyAkY2FzZUlkKQ0KJG93bmVyc2hpcE1hcmtlciA9IEpvaW4tUGF0
aCAkY2FzZVJvb3QgJy5vd25lZC1ob21lLW1pZ3JhdGlvbi10ZXN0Lmpzb24nDQokc2NyaXB0OlBh
c3NlZCA9IDANCg0KZnVuY3Rpb24gQXNzZXJ0LVRydWUgew0KICAgIHBhcmFtKFtzdHJpbmddJE5h
bWUsIFtib29sXSRDb25kaXRpb24pDQogICAgaWYgKC1ub3QgJENvbmRpdGlvbikgeyB0aHJvdyAi
RkFJTEVEOiAkTmFtZSIgfQ0KICAgICRzY3JpcHQ6UGFzc2VkKysNCiAgICBXcml0ZS1Ib3N0ICJQ
QVNTICAkTmFtZSINCn0NCg0KZnVuY3Rpb24gQXNzZXJ0LUVxdWFsIHsNCiAgICBwYXJhbShbc3Ry
aW5nXSROYW1lLCAkRXhwZWN0ZWQsICRBY3R1YWwpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJE5h
bWUgLUNvbmRpdGlvbiAoW29iamVjdF06OkVxdWFscygkRXhwZWN0ZWQsICRBY3R1YWwpKQ0KfQ0K
DQpmdW5jdGlvbiBXcml0ZS1VdGY4Rml4dHVyZSB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwg
W3N0cmluZ10kVGV4dCkNCiAgICAkcGFyZW50ID0gU3BsaXQtUGF0aCAtUGFyZW50ICRQYXRoDQog
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBhcmVudCAtUGF0aFR5cGUgQ29u
dGFpbmVyKSkgeyBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRwYXJlbnQp
IH0NCiAgICAkdXRmOCA9IE5ldy1PYmplY3QgVGV4dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0KICAg
IFtJTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCRQYXRoLCAkVGV4dCwgJHV0ZjgpDQp9DQoNCmZ1bmN0
aW9uIE5ldy1NaWdyYXRpb25GaXh0dXJlIHsNCiAgICBwYXJhbShbc3RyaW5nXSROYW1lKQ0KICAg
ICRzY2VuYXJpbyA9IEpvaW4tUGF0aCAkY2FzZVJvb3QgJE5hbWUNCiAgICAkc291bCA9IEpvaW4t
UGF0aCAkc2NlbmFyaW8gJ3NvdWwnDQogICAgJHByb2ZpbGUgPSBKb2luLVBhdGggJHNjZW5hcmlv
ICdwcm9maWxlJw0KICAgIFt2b2lkXVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJHNv
dWwpDQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkcHJvZmlsZSkN
CiAgICBXcml0ZS1VdGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRzb3VsICdBR0VOVFMubWQn
KSAtVGV4dCAiIyBEaXNwb3NhYmxlIG1pZ3JhdGlvbiBmaXh0dXJlYHJgbiINCiAgICBXcml0ZS1V
dGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRzb3VsICdDTEFVREUubWQnKSAtVGV4dCAiQEFH
RU5UUy5tZGByYG4iDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpvaW4tUGF0aCAkc291
bCAnc291bC1zdGF0ZS5qc29uJykgLVRleHQgKChbb3JkZXJlZF1Aew0KICAgICAgICBzY2hlbWFW
ZXJzaW9uID0gMTsgc291bElkID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKTsgc291bE5h
bWUgPSAnSG9tZU1pZ3JhdGlvbkZpeHR1cmUnDQogICAgfSB8IENvbnZlcnRUby1Kc29uKSArIFtF
bnZpcm9ubWVudF06Ok5ld0xpbmUpDQogICAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBzY2Vu
YXJpbyA9ICRzY2VuYXJpbzsgc291bCA9ICRzb3VsOyBwcm9maWxlID0gJHByb2ZpbGU7IGdlbmVy
YXRpb24gPSAoJ2ctJyArICROYW1lKSB9DQp9DQoNCmZ1bmN0aW9uIEludm9rZS1NaWdyYXRpb25G
aXh0dXJlIHsNCiAgICBwYXJhbSgkRml4dHVyZSwgW3N0cmluZ10kRmFpbHVyZVBvaW50ID0gJ25v
bmUnKQ0KICAgIHJldHVybiAmICRhZGFwdGVyUGF0aCAtR2VuZXJhdGlvbklkICRGaXh0dXJlLmdl
bmVyYXRpb24gLVRlc3RSb290ICRGaXh0dXJlLnNvdWwgLVRlc3RFeHRlcm5hbFByb2ZpbGVSb290
ICRGaXh0dXJlLnByb2ZpbGUgYA0KICAgICAgICAtVGVzdE5hdHVyYWxIb21lTWlncmF0aW9uT25s
eSAtVGVzdE5vTGl2ZUFnZW50cyAtVGVzdEhvbWVNaWdyYXRpb25GYWlsdXJlUG9pbnQgJEZhaWx1
cmVQb2ludA0KfQ0KDQpmdW5jdGlvbiBUZXN0LUlzUmVwYXJzZVBvaW50IHsNCiAgICBwYXJhbShb
c3RyaW5nXSRQYXRoKQ0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRQYXRo
KSkgeyByZXR1cm4gJGZhbHNlIH0NCiAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAk
UGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICByZXR1cm4gKCgkaXRlbS5BdHRyaWJ1
dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApDQp9DQoN
CmZ1bmN0aW9uIEdldC1UZXN0TGlua1RhcmdldCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkN
CiAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkUGF0aCAtRm9yY2UgLUVycm9yQWN0
aW9uIFN0b3ANCiAgICAkcHJvcGVydHkgPSAkaXRlbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydUYXJn
ZXQnXQ0KICAgIGlmICgkbnVsbCAtZXEgJHByb3BlcnR5KSB7IHJldHVybiAkbnVsbCB9DQogICAg
JHRhcmdldCA9IEAoJHByb3BlcnR5LlZhbHVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMSkNCiAg
ICBpZiAoJHRhcmdldC5Db3VudCAtZXEgMCkgeyByZXR1cm4gJG51bGwgfQ0KICAgIHJldHVybiBb
SU8uUGF0aF06OkdldEZ1bGxQYXRoKFtzdHJpbmddJHRhcmdldFswXSkuVHJpbUVuZCgnXCcsICcv
JykNCn0NCg0KZnVuY3Rpb24gUmVtb3ZlLUZpeHR1cmVKdW5jdGlvbnNOb0ZvbGxvdyB7DQogICAg
cGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkUGF0aCAtUGF0aFR5cGUgQ29udGFpbmVyKSkgeyByZXR1cm4gfQ0KICAgICRxdWV1ZSA9IE5l
dy1PYmplY3QgJ1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlF1ZXVlW1N5c3RlbS5JTy5EaXJl
Y3RvcnlJbmZvXScNCiAgICAkcXVldWUuRW5xdWV1ZSgoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRQ
YXRoIC1Gb3JjZSkpDQogICAgJGp1bmN0aW9ucyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rp
b25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgd2hpbGUgKCRxdWV1ZS5Db3VudCAtZ3QgMCkg
ew0KICAgICAgICAkZGlyZWN0b3J5ID0gJHF1ZXVlLkRlcXVldWUoKQ0KICAgICAgICBmb3JlYWNo
ICgkaXRlbSBpbiAkZGlyZWN0b3J5LkVudW1lcmF0ZURpcmVjdG9yaWVzKCkpIHsNCiAgICAgICAg
ICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBh
cnNlUG9pbnQpIC1uZSAwKSB7ICRqdW5jdGlvbnMuQWRkKCRpdGVtLkZ1bGxOYW1lKSB9DQogICAg
ICAgICAgICBlbHNlIHsgJHF1ZXVlLkVucXVldWUoJGl0ZW0pIH0NCiAgICAgICAgfQ0KICAgIH0N
CiAgICBmb3JlYWNoICgkanVuY3Rpb24gaW4gQCgkanVuY3Rpb25zLlRvQXJyYXkoKSB8IFNvcnQt
T2JqZWN0IExlbmd0aCAtRGVzY2VuZGluZykpIHsgW0lPLkRpcmVjdG9yeV06OkRlbGV0ZSgkanVu
Y3Rpb24sICRmYWxzZSkgfQ0KfQ0KDQpmdW5jdGlvbiBSZW1vdmUtT3duZWRGaXh0dXJlIHsNCiAg
ICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY2FzZVJvb3QgLVBhdGhUeXBlIENv
bnRhaW5lcikpIHsgcmV0dXJuIH0NCiAgICAkZnVsbCA9IFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgo
JGNhc2VSb290KS5UcmltRW5kKCdcJykNCiAgICAkYm91bmRhcnkgPSBbSU8uUGF0aF06OkdldEZ1
bGxQYXRoKCRmaXh0dXJlQm91bmRhcnkpLlRyaW1FbmQoJ1wnKQ0KICAgIGlmICgoU3BsaXQtUGF0
aCAtUGFyZW50ICRmdWxsKSAtbmUgJGJvdW5kYXJ5IC1vciAtbm90IChbSU8uUGF0aF06OkdldEZp
bGVOYW1lKCRmdWxsKSkuU3RhcnRzV2l0aCgnaG9tZS1taWdyYXRpb24tJykpIHsNCiAgICAgICAg
dGhyb3cgJ1RoZSBkaXNwb3NhYmxlIG1pZ3JhdGlvbiBmaXh0dXJlIGlzIG91dHNpZGUgdGhlIGV4
YWN0IGZpeHR1cmVzIGJvdW5kYXJ5LicNCiAgICB9DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAt
TGl0ZXJhbFBhdGggJG93bmVyc2hpcE1hcmtlciAtUGF0aFR5cGUgTGVhZikpIHsgdGhyb3cgJ1Ro
ZSBkaXNwb3NhYmxlIG1pZ3JhdGlvbiBmaXh0dXJlIGhhcyBubyBvd25lcnNoaXAgbWFya2VyLicg
fQ0KICAgICRvd25lZCA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkb3duZXJzaGlwTWFya2Vy
IC1SYXcgLUVuY29kaW5nIFVURjggfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgaWYgKFtzdHJpbmdd
JG93bmVkLmNhc2VJZCAtY25lICRjYXNlSWQpIHsgdGhyb3cgJ1RoZSBkaXNwb3NhYmxlIG1pZ3Jh
dGlvbiBmaXh0dXJlIG93bmVyc2hpcCBJRCBkaWZmZXJzLicgfQ0KICAgIFJlbW92ZS1GaXh0dXJl
SnVuY3Rpb25zTm9Gb2xsb3cgLVBhdGggJGNhc2VSb290DQogICAgR2V0LUNoaWxkSXRlbSAtTGl0
ZXJhbFBhdGggJGNhc2VSb290IC1Gb3JjZSAtUmVjdXJzZSAtRmlsZSAtRXJyb3JBY3Rpb24gU2ls
ZW50bHlDb250aW51ZSB8IEZvckVhY2gtT2JqZWN0IHsNCiAgICAgICAgaWYgKCgkXy5BdHRyaWJ1
dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlYWRPbmx5KSAtbmUgMCkgew0KICAgICAg
ICAgICAgW0lPLkZpbGVdOjpTZXRBdHRyaWJ1dGVzKCRfLkZ1bGxOYW1lLCAoJF8uQXR0cmlidXRl
cyAtYmFuZCAoLWJub3QgW0lPLkZpbGVBdHRyaWJ1dGVzXTo6UmVhZE9ubHkpKSkNCiAgICAgICAg
fQ0KICAgIH0NCiAgICBbSU8uRGlyZWN0b3J5XTo6RGVsZXRlKCRjYXNlUm9vdCwgJHRydWUpDQp9
DQoNCnRyeSB7DQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkY2Fz
ZVJvb3QpDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggJG93bmVyc2hpcE1hcmtlciAtVGV4
dCAoKFtvcmRlcmVkXUB7IGNhc2VJZCA9ICRjYXNlSWQgfSB8IENvbnZlcnRUby1Kc29uKSArIFtF
bnZpcm9ubWVudF06Ok5ld0xpbmUpDQoNCiAgICAkbm9ybWFsID0gTmV3LU1pZ3JhdGlvbkZpeHR1
cmUgLU5hbWUgJ25vcm1hbCcNCiAgICAkbm9ybWFsQ2xhdWRlSW50ZXJuYWwgPSBKb2luLVBhdGgg
JG5vcm1hbC5zb3VsICdfYWdlbnRcY2xhdWRlJw0KICAgICRub3JtYWxDb2RleEludGVybmFsID0g
Sm9pbi1QYXRoICRub3JtYWwuc291bCAnX2FnZW50XGNvZGV4Jw0KICAgIFt2b2lkXVtJTy5EaXJl
Y3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJG5vcm1hbENsYXVkZUludGVybmFsKQ0KICAgIFt2b2lk
XVtJTy5EaXJlY3RvcnldOjpDcmVhdGVEaXJlY3RvcnkoJG5vcm1hbENvZGV4SW50ZXJuYWwpDQog
ICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpvaW4tUGF0aCAkbm9ybWFsQ2xhdWRlSW50ZXJu
YWwgJ3NhbWUuanNvbicpIC1UZXh0ICJzYW1lIGJ5dGVzYHJgbiINCiAgICBXcml0ZS1VdGY4Rml4
dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRub3JtYWxDbGF1ZGVJbnRlcm5hbCAnaW50ZXJuYWwtb25s
eS5qc29uJykgLVRleHQgImludGVybmFsIHN1cnZpdmVzYHJgbiINCiAgICBXcml0ZS1VdGY4Rml4
dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRub3JtYWwucHJvZmlsZSAnLmNsYXVkZVxzYW1lLmpzb24n
KSAtVGV4dCAic2FtZSBieXRlc2ByYG4iDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpv
aW4tUGF0aCAkbm9ybWFsLnByb2ZpbGUgJy5jbGF1ZGVcbGVnYWN5XG9ubHkuanNvbicpIC1UZXh0
ICJsZWdhY3kgY2xhdWRlYHJgbiINCiAgICBXcml0ZS1VdGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1Q
YXRoICRub3JtYWwucHJvZmlsZSAnLmNsYXVkZVxBR0VOVFMubWQnKSAtVGV4dCAibXVzdCBuZXZl
ciBlbnRlciBuYXRpdmUgaG9tZWByYG4iDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpv
aW4tUGF0aCAkbm9ybWFsLnByb2ZpbGUgJy5jbGF1ZGVcbmVzdGVkXENMQVVERS5tZCcpIC1UZXh0
ICJtdXN0IHJlbWFpbiBvbmx5IGluIG9yaWdpbmFsYHJgbiINCiAgICBXcml0ZS1VdGY4Rml4dHVy
ZSAtUGF0aCAoSm9pbi1QYXRoICRub3JtYWwucHJvZmlsZSAnLmNvZGV4XGxlZ2FjeS50b21sJykg
LVRleHQgImxlZ2FjeSBjb2RleGByYG4iDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpv
aW4tUGF0aCAkbm9ybWFsLnByb2ZpbGUgJy5hZ2VudHNcc2tpbGxzXGxlZ2FjeS1za2lsbFxTS0lM
TC5tZCcpIC1UZXh0ICJsZWdhY3kgc2tpbGxgcmBuIg0KICAgIFdyaXRlLVV0ZjhGaXh0dXJlIC1Q
YXRoIChKb2luLVBhdGggJG5vcm1hbC5wcm9maWxlICcuYWdlbnRzXEFHRU5UUy5tZCcpIC1UZXh0
ICJtdXN0IHJlbWFpbiBvbmx5IGluIG9yaWdpbmFsYHJgbiINCiAgICAkbm9ybWFsTGlua1Rhcmdl
dCA9IEpvaW4tUGF0aCAkbm9ybWFsLnNjZW5hcmlvICdzaGFyZWQtbGluay10YXJnZXQnDQogICAg
W3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgkbm9ybWFsTGlua1RhcmdldCkN
CiAgICBXcml0ZS1VdGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRub3JtYWxMaW5rVGFyZ2V0
ICdTS0lMTC5tZCcpIC1UZXh0ICJzaGFyZWQgdGFyZ2V0YHJgbiINCiAgICBbdm9pZF0oTmV3LUl0
ZW0gLUl0ZW1UeXBlIEp1bmN0aW9uIC1QYXRoIChKb2luLVBhdGggJG5vcm1hbENsYXVkZUludGVy
bmFsICdsaW5rZWQtc2tpbGwnKSAtVGFyZ2V0ICRub3JtYWxMaW5rVGFyZ2V0IC1FcnJvckFjdGlv
biBTdG9wKQ0KICAgIFt2b2lkXShOZXctSXRlbSAtSXRlbVR5cGUgSnVuY3Rpb24gLVBhdGggKEpv
aW4tUGF0aCAkbm9ybWFsLnByb2ZpbGUgJy5jbGF1ZGVcbGlua2VkLXNraWxsJykgLVRhcmdldCAk
bm9ybWFsTGlua1RhcmdldCAtRXJyb3JBY3Rpb24gU3RvcCkNCg0KICAgICRub3JtYWxSZXN1bHQg
PSBJbnZva2UtTWlncmF0aW9uRml4dHVyZSAtRml4dHVyZSAkbm9ybWFsDQogICAgQXNzZXJ0LUVx
dWFsIC1OYW1lICdub3JtYWwgbWlncmF0aW9uIGNvbXBsZXRlcycgLUV4cGVjdGVkICduYXR1cmFs
LWhvbWUtbWlncmF0aW9uLXZlcmlmaWVkJyAtQWN0dWFsIChbc3RyaW5nXSRub3JtYWxSZXN1bHQu
c3RhdHVzKQ0KICAgIGZvcmVhY2ggKCRuYW1lIGluIEAoJy5jbGF1ZGUnLCAnLmNvZGV4JywgJy5h
Z2VudHMnKSkgew0KICAgICAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAiJG5hbWUgYmVjb21lcyBhIHZl
cmlmaWVkIGp1bmN0aW9uIiAtQ29uZGl0aW9uIChUZXN0LUlzUmVwYXJzZVBvaW50IC1QYXRoIChK
b2luLVBhdGggJG5vcm1hbC5wcm9maWxlICRuYW1lKSkNCiAgICB9DQogICAgQXNzZXJ0LUVxdWFs
IC1OYW1lICdDbGF1ZGUganVuY3Rpb24gdGFyZ2V0cyBwb3J0YWJsZSBob21lJyAtRXhwZWN0ZWQg
KFtJTy5QYXRoXTo6R2V0RnVsbFBhdGgoJG5vcm1hbENsYXVkZUludGVybmFsKS5UcmltRW5kKCdc
JywgJy8nKSkgYA0KICAgICAgICAtQWN0dWFsIChHZXQtVGVzdExpbmtUYXJnZXQgLVBhdGggKEpv
aW4tUGF0aCAkbm9ybWFsLnByb2ZpbGUgJy5jbGF1ZGUnKSkNCiAgICBBc3NlcnQtRXF1YWwgLU5h
bWUgJ21pc3NpbmcgQ2xhdWRlIGZpbGUgaXMgY29waWVkIGJ5dGUtZm9yLWJ5dGUnIC1FeHBlY3Rl
ZCAibGVnYWN5IGNsYXVkZWByYG4iIGANCiAgICAgICAgLUFjdHVhbCAoW0lPLkZpbGVdOjpSZWFk
QWxsVGV4dCgoSm9pbi1QYXRoICRub3JtYWxDbGF1ZGVJbnRlcm5hbCAnbGVnYWN5XG9ubHkuanNv
bicpKSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ21pc3NpbmcgQ29kZXggZmlsZSBpcyBjb3Bp
ZWQgYnl0ZS1mb3ItYnl0ZScgLUV4cGVjdGVkICJsZWdhY3kgY29kZXhgcmBuIiBgDQogICAgICAg
IC1BY3R1YWwgKFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoKEpvaW4tUGF0aCAkbm9ybWFsQ29kZXhJ
bnRlcm5hbCAnbGVnYWN5LnRvbWwnKSkpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ0FHRU5UUy5t
ZCBpcyBub3QgY29waWVkIGludG8gQ2xhdWRlIG5hdGl2ZSBob21lJyAtQ29uZGl0aW9uICgtbm90
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJG5vcm1hbENsYXVkZUludGVybmFs
ICdBR0VOVFMubWQnKSkpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ25lc3RlZCBDTEFVREUubWQg
aXMgbm90IGNvcGllZCBpbnRvIENsYXVkZSBuYXRpdmUgaG9tZScgLUNvbmRpdGlvbiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRub3JtYWxDbGF1ZGVJbnRlcm5hbCAn
bmVzdGVkXENMQVVERS5tZCcpKSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ21hdGNoaW5nIHJl
cGFyc2UgbWV0YWRhdGEgaXMgY29tcGFyZWQgd2l0aG91dCBmb2xsb3dpbmcgb3IgcmVwbGFjaW5n
IGl0JyBgDQogICAgICAgIC1FeHBlY3RlZCAoW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgkbm9ybWFs
TGlua1RhcmdldCkuVHJpbUVuZCgnXCcsICcvJykpIGANCiAgICAgICAgLUFjdHVhbCAoR2V0LVRl
c3RMaW5rVGFyZ2V0IC1QYXRoIChKb2luLVBhdGggJG5vcm1hbENsYXVkZUludGVybmFsICdsaW5r
ZWQtc2tpbGwnKSkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnQUdFTlRTLm1kIGlzIG5vdCBzY2Fm
Zm9sZGVkIGluIEFnZW50IFN0YW5kYXJkIG5hdGl2ZSBob21lJyBgDQogICAgICAgIC1Db25kaXRp
b24gKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkbm9ybWFsLnNvdWwg
J19hZ2VudFxzaGFyZWRcYWdlbnQtc3RhbmRhcmQtaG9tZVxBR0VOVFMubWQnKSkpDQogICAgJG5v
cm1hbEV2aWRlbmNlID0gQCgkbm9ybWFsUmVzdWx0Lm5hdHVyYWxIYXJuZXNzSG9tZXMpICsgQCgk
bm9ybWFsUmVzdWx0LmFnZW50U3RhbmRhcmRIb21lLm1pZ3JhdGlvbkV2aWRlbmNlKQ0KICAgIGZv
cmVhY2ggKCRldmlkZW5jZSBpbiAkbm9ybWFsRXZpZGVuY2UpIHsNCiAgICAgICAgQXNzZXJ0LVRy
dWUgLU5hbWUgIiQoJGV2aWRlbmNlLm5hbWUpIHByZXNlcnZlZCBvcmlnaW5hbCByZW1haW5zIGlu
IGhpc3RvcnkiIGANCiAgICAgICAgICAgIC1Db25kaXRpb24gKFRlc3QtUGF0aCAtTGl0ZXJhbFBh
dGggKFtzdHJpbmddJGV2aWRlbmNlLnByZXNlcnZlZE9yaWdpbmFsUGF0aCkgLVBhdGhUeXBlIENv
bnRhaW5lcikNCiAgICB9DQogICAgJGNsYXVkZU9yaWdpbmFsID0gW3N0cmluZ10oQCgkbm9ybWFs
UmVzdWx0Lm5hdHVyYWxIYXJuZXNzSG9tZXMgfCBXaGVyZS1PYmplY3QgbmFtZSAtZXEgJ2NsYXVk
ZScpWzBdLnByZXNlcnZlZE9yaWdpbmFsUGF0aCkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnZm9y
YmlkZGVuIGluc3RydWN0aW9uIHJlbWFpbnMgaW4gcHJlc2VydmVkIG9yaWdpbmFsJyAtQ29uZGl0
aW9uIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGNsYXVkZU9yaWdpbmFsICdB
R0VOVFMubWQnKSAtUGF0aFR5cGUgTGVhZikNCiAgICAkbm9ybWFsU2Vjb25kID0gSW52b2tlLU1p
Z3JhdGlvbkZpeHR1cmUgLUZpeHR1cmUgJG5vcm1hbA0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAn
c2Vjb25kIHJ1biBpcyBpZGVtcG90ZW50JyAtRXhwZWN0ZWQgJ25hdHVyYWwtaG9tZS1taWdyYXRp
b24tdmVyaWZpZWQnIC1BY3R1YWwgKFtzdHJpbmddJG5vcm1hbFNlY29uZC5zdGF0dXMpDQogICAg
QXNzZXJ0LVRydWUgLU5hbWUgJ2R1cmFibGUgam91cm5hbCByZWNvcmRzIGNvbXBsZXRlZCBtaWdy
YXRpb24nIC1Db25kaXRpb24gKChHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAk
bm9ybWFsLnNvdWwgJ19hZ2VudFxzZXR1cFxqb3VybmFsLmpzb25sJykgLUVuY29kaW5nIFVURjgg
fCBTZWxlY3QtU3RyaW5nICduYXR1cmFsLWhvbWUuY29tcGxldGVkJykuQ291bnQgLWdlIDMpDQoN
CiAgICAkY29uZmxpY3QgPSBOZXctTWlncmF0aW9uRml4dHVyZSAtTmFtZSAnY29uZmxpY3QnDQog
ICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpvaW4tUGF0aCAkY29uZmxpY3Quc291bCAnX2Fn
ZW50XGNsYXVkZVxjb25maWcuanNvbicpIC1UZXh0ICJjdXJyZW50IGJ5dGVzYHJgbiINCiAgICBX
cml0ZS1VdGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRjb25mbGljdC5zb3VsICdfYWdlbnRc
Y2xhdWRlXGJsb2NrZWQnKSAtVGV4dCAiaW50ZXJuYWwgZmlsZSBibG9ja3MgbGVnYWN5IGRpcmVj
dG9yeWByYG4iDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpvaW4tUGF0aCAkY29uZmxp
Y3QucHJvZmlsZSAnLmNsYXVkZVxjb25maWcuanNvbicpIC1UZXh0ICJsZWdhY3kgYnl0ZXNgcmBu
Ig0KICAgIFdyaXRlLVV0ZjhGaXh0dXJlIC1QYXRoIChKb2luLVBhdGggJGNvbmZsaWN0LnByb2Zp
bGUgJy5jbGF1ZGVcYmxvY2tlZFxjaGlsZC5qc29uJykgLVRleHQgIm11c3QgcmVtYWluIGV4dGVy
bmFsYHJgbiINCiAgICBXcml0ZS1VdGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1QYXRoICRjb25mbGlj
dC5wcm9maWxlICcuY2xhdWRlXGxlZ2FjeS1vbmx5Lmpzb24nKSAtVGV4dCAic2FmZSBtaXNzaW5n
IGZpbGVgcmBuIg0KICAgICRjb25mbGljdFJlc3VsdCA9IEludm9rZS1NaWdyYXRpb25GaXh0dXJl
IC1GaXh0dXJlICRjb25mbGljdA0KICAgIEFzc2VydC1FcXVhbCAtTmFtZSAnYnl0ZSBjb2xsaXNp
b24gcmV0dXJucyBleHBsaWNpdCBwZW5kaW5nIHN0YXR1cycgLUV4cGVjdGVkICdwZW5kaW5nLW5h
dHVyYWwtaG9tZS1tZXJnZScgLUFjdHVhbCAoW3N0cmluZ10kY29uZmxpY3RSZXN1bHQuc3RhdHVz
KQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdjb25mbGljdGluZyBleHRlcm5hbCBob21lIGlzIG5v
dCByZW5hbWVkJyAtQ29uZGl0aW9uICgtbm90IChUZXN0LUlzUmVwYXJzZVBvaW50IC1QYXRoIChK
b2luLVBhdGggJGNvbmZsaWN0LnByb2ZpbGUgJy5jbGF1ZGUnKSkpDQogICAgQXNzZXJ0LUVxdWFs
IC1OYW1lICdpbnRlcm5hbCBjb25mbGljdGluZyBieXRlcyBhcmUgdW50b3VjaGVkJyAtRXhwZWN0
ZWQgImN1cnJlbnQgYnl0ZXNgcmBuIiBgDQogICAgICAgIC1BY3R1YWwgKFtJTy5GaWxlXTo6UmVh
ZEFsbFRleHQoKEpvaW4tUGF0aCAkY29uZmxpY3Quc291bCAnX2FnZW50XGNsYXVkZVxjb25maWcu
anNvbicpKSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ2V4dGVybmFsIGNvbmZsaWN0aW5nIGJ5
dGVzIGFyZSB1bnRvdWNoZWQnIC1FeHBlY3RlZCAibGVnYWN5IGJ5dGVzYHJgbiIgYA0KICAgICAg
ICAtQWN0dWFsIChbSU8uRmlsZV06OlJlYWRBbGxUZXh0KChKb2luLVBhdGggJGNvbmZsaWN0LnBy
b2ZpbGUgJy5jbGF1ZGVcY29uZmlnLmpzb24nKSkpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdu
b25jb25mbGljdGluZyBtaXNzaW5nIGZpbGUgc3RpbGwgbWVyZ2VzIHNhZmVseScgLUV4cGVjdGVk
ICJzYWZlIG1pc3NpbmcgZmlsZWByYG4iIGANCiAgICAgICAgLUFjdHVhbCAoW0lPLkZpbGVdOjpS
ZWFkQWxsVGV4dCgoSm9pbi1QYXRoICRjb25mbGljdC5zb3VsICdfYWdlbnRcY2xhdWRlXGxlZ2Fj
eS1vbmx5Lmpzb24nKSkpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3BlbmRpbmcgcmVzdWx0IG5h
bWVzIGV4YWN0IGNvbGxpc2lvbiBwYXRoJyAtQ29uZGl0aW9uIChAKCRjb25mbGljdFJlc3VsdC5w
ZW5kaW5nWzBdLmNvbmZsaWN0cyB8IFdoZXJlLU9iamVjdCBwYXRoIC1lcSAnY29uZmlnLmpzb24n
KS5Db3VudCAtZXEgMSkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAndHlwZS1jb25mbGljdCBkZXNj
ZW5kYW50cyBhcmUgbm90IGNvcGllZCB0aHJvdWdoIHRoZSBibG9ja2luZyBmaWxlJyBgDQogICAg
ICAgIC1Db25kaXRpb24gKChbSU8uRmlsZV06OlJlYWRBbGxUZXh0KChKb2luLVBhdGggJGNvbmZs
aWN0LnNvdWwgJ19hZ2VudFxjbGF1ZGVcYmxvY2tlZCcpKSkgLWVxICJpbnRlcm5hbCBmaWxlIGJs
b2NrcyBsZWdhY3kgZGlyZWN0b3J5YHJgbiIpDQoNCiAgICAkaW50ZXJydXB0ZWQgPSBOZXctTWln
cmF0aW9uRml4dHVyZSAtTmFtZSAnaW50ZXJydXB0ZWQnDQogICAgV3JpdGUtVXRmOEZpeHR1cmUg
LVBhdGggKEpvaW4tUGF0aCAkaW50ZXJydXB0ZWQucHJvZmlsZSAnLmNsYXVkZVxzZXNzaW9uLmpz
b24nKSAtVGV4dCAicmVjb3ZlciBtZWByYG4iDQogICAgJGludGVycnVwdGlvblRocm93biA9ICRm
YWxzZQ0KICAgIHRyeSB7ICRudWxsID0gSW52b2tlLU1pZ3JhdGlvbkZpeHR1cmUgLUZpeHR1cmUg
JGludGVycnVwdGVkIC1GYWlsdXJlUG9pbnQgJ2FmdGVyLXJlbmFtZS1iZWZvcmUtanVuY3Rpb24n
IH0NCiAgICBjYXRjaCB7ICRpbnRlcnJ1cHRpb25UaHJvd24gPSAkdHJ1ZSB9DQogICAgQXNzZXJ0
LVRydWUgLU5hbWUgJ2ludGVycnVwdGlvbiBob29rIGZpcmVzIGFmdGVyIHJlbmFtZScgLUNvbmRp
dGlvbiAkaW50ZXJydXB0aW9uVGhyb3duDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2ludGVycnVw
dGVkIGV4dGVybmFsIHBhdGggaXMgYWJzZW50IGJlZm9yZSByZWNvdmVyeScgLUNvbmRpdGlvbiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRpbnRlcnJ1cHRlZC5wcm9m
aWxlICcuY2xhdWRlJykpKQ0KICAgICRpbnRlcnJ1cHRlZE1hcmtlciA9IEdldC1Db250ZW50IC1M
aXRlcmFsUGF0aCAoSm9pbi1QYXRoICRpbnRlcnJ1cHRlZC5zb3VsICdfYWdlbnRcc2V0dXBccmVj
b3ZlcnlcbmF0dXJhbC1ob21lc1xjbGF1ZGUuanNvbicpIC1SYXcgLUVuY29kaW5nIFVURjggfCBD
b252ZXJ0RnJvbS1Kc29uDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdpbnRlcnJ1cHRlZCBtYXJr
ZXIgcmVjb3JkcyByZW5hbWUgc3RhZ2UnIC1FeHBlY3RlZCAnZXh0ZXJuYWwtcmVuYW1lZCcgLUFj
dHVhbCAoW3N0cmluZ10kaW50ZXJydXB0ZWRNYXJrZXIuc3RhdHVzKQ0KICAgIEFzc2VydC1UcnVl
IC1OYW1lICdpbnRlcnJ1cHRlZCBvcmlnaW5hbCByZW1haW5zIGluIGhpc3RvcnknIC1Db25kaXRp
b24gKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKFtzdHJpbmddJGludGVycnVwdGVkTWFya2VyLnBy
ZXNlcnZlZE9yaWdpbmFsUGF0aCkgLVBhdGhUeXBlIENvbnRhaW5lcikNCiAgICAkcmVjb3ZlcmVk
ID0gSW52b2tlLU1pZ3JhdGlvbkZpeHR1cmUgLUZpeHR1cmUgJGludGVycnVwdGVkDQogICAgQXNz
ZXJ0LUVxdWFsIC1OYW1lICduZXh0IHJ1biByZWNvdmVycyByZW5hbWUtYmVmb3JlLWp1bmN0aW9u
JyAtRXhwZWN0ZWQgJ25hdHVyYWwtaG9tZS1taWdyYXRpb24tdmVyaWZpZWQnIC1BY3R1YWwgKFtz
dHJpbmddJHJlY292ZXJlZC5zdGF0dXMpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3JlY292ZXJl
ZCBleHRlcm5hbCBwYXRoIGlzIHRoZSBleHBlY3RlZCBqdW5jdGlvbicgLUNvbmRpdGlvbiAoVGVz
dC1Jc1JlcGFyc2VQb2ludCAtUGF0aCAoSm9pbi1QYXRoICRpbnRlcnJ1cHRlZC5wcm9maWxlICcu
Y2xhdWRlJykpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3JlY292ZXJ5IGtlZXBzIHByZXNlcnZl
ZCBvcmlnaW5hbCBoaXN0b3J5JyAtQ29uZGl0aW9uIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChb
c3RyaW5nXSRpbnRlcnJ1cHRlZE1hcmtlci5wcmVzZXJ2ZWRPcmlnaW5hbFBhdGgpIC1QYXRoVHlw
ZSBDb250YWluZXIpDQoNCiAgICAkcm9sbGJhY2sgPSBOZXctTWlncmF0aW9uRml4dHVyZSAtTmFt
ZSAncm9sbGJhY2snDQogICAgV3JpdGUtVXRmOEZpeHR1cmUgLVBhdGggKEpvaW4tUGF0aCAkcm9s
bGJhY2sucHJvZmlsZSAnLmNsYXVkZVxhdXRoLmpzb24nKSAtVGV4dCAicmVzdG9yZSBleGFjdGx5
YHJgbiINCiAgICAkcm9sbGJhY2tUaHJvd24gPSAkZmFsc2UNCiAgICB0cnkgeyAkbnVsbCA9IElu
dm9rZS1NaWdyYXRpb25GaXh0dXJlIC1GaXh0dXJlICRyb2xsYmFjayAtRmFpbHVyZVBvaW50ICdq
dW5jdGlvbi1jcmVhdGUnIH0NCiAgICBjYXRjaCB7ICRyb2xsYmFja1Rocm93biA9ICR0cnVlIH0N
CiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnanVuY3Rpb24gZmFpbHVyZSBpcyBzdXJmYWNlZCcgLUNv
bmRpdGlvbiAkcm9sbGJhY2tUaHJvd24NCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAnanVuY3Rpb24g
ZmFpbHVyZSByZXN0b3JlcyBhIHJlYWwgZXh0ZXJuYWwgZGlyZWN0b3J5JyBgDQogICAgICAgIC1D
b25kaXRpb24gKChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHJvbGxiYWNrLnBy
b2ZpbGUgJy5jbGF1ZGUnKSAtUGF0aFR5cGUgQ29udGFpbmVyKSAtYW5kIC1ub3QgKFRlc3QtSXNS
ZXBhcnNlUG9pbnQgLVBhdGggKEpvaW4tUGF0aCAkcm9sbGJhY2sucHJvZmlsZSAnLmNsYXVkZScp
KSkNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ2p1bmN0aW9uIGZhaWx1cmUgcmVzdG9yZXMgb3Jp
Z2luYWwgYnl0ZXMnIC1FeHBlY3RlZCAicmVzdG9yZSBleGFjdGx5YHJgbiIgYA0KICAgICAgICAt
QWN0dWFsIChbSU8uRmlsZV06OlJlYWRBbGxUZXh0KChKb2luLVBhdGggJHJvbGxiYWNrLnByb2Zp
bGUgJy5jbGF1ZGVcYXV0aC5qc29uJykpKQ0KICAgICRyb2xsYmFja01hcmtlciA9IEdldC1Db250
ZW50IC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRyb2xsYmFjay5zb3VsICdfYWdlbnRcc2V0dXBc
cmVjb3ZlcnlcbmF0dXJhbC1ob21lc1xjbGF1ZGUuanNvbicpIC1SYXcgLUVuY29kaW5nIFVURjgg
fCBDb252ZXJ0RnJvbS1Kc29uDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICdyb2xsYmFjayBtYXJr
ZXIgcmVjb3JkcyBpbW1lZGlhdGUgcmVzdG9yYXRpb24nIC1FeHBlY3RlZCAncmVzdG9yZWQtYWZ0
ZXItanVuY3Rpb24tZmFpbHVyZScgLUFjdHVhbCAoW3N0cmluZ10kcm9sbGJhY2tNYXJrZXIuc3Rh
dHVzKQ0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdyb2xsZWQtYmFjayBoaXN0b3J5IHNsb3QgaXMg
YWJzZW50IGJlY2F1c2UgdGhlIG9yaWdpbmFsIG1vdmVkIGhvbWUnIC1Db25kaXRpb24gKC1ub3Qg
KFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKFtzdHJpbmddJHJvbGxiYWNrTWFya2VyLnByZXNlcnZl
ZE9yaWdpbmFsUGF0aCkpKQ0KDQogICAgJHZlcmlmeVJvbGxiYWNrID0gTmV3LU1pZ3JhdGlvbkZp
eHR1cmUgLU5hbWUgJ3ZlcmlmeS1yb2xsYmFjaycNCiAgICBXcml0ZS1VdGY4Rml4dHVyZSAtUGF0
aCAoSm9pbi1QYXRoICR2ZXJpZnlSb2xsYmFjay5wcm9maWxlICcuY2xhdWRlXHN0YXRlLmpzb24n
KSAtVGV4dCAicmVzdG9yZSBhZnRlciB2ZXJpZnlgcmBuIg0KICAgICR2ZXJpZnlSb2xsYmFja1Ro
cm93biA9ICRmYWxzZQ0KICAgIHRyeSB7ICRudWxsID0gSW52b2tlLU1pZ3JhdGlvbkZpeHR1cmUg
LUZpeHR1cmUgJHZlcmlmeVJvbGxiYWNrIC1GYWlsdXJlUG9pbnQgJ2p1bmN0aW9uLXZlcmlmeScg
fQ0KICAgIGNhdGNoIHsgJHZlcmlmeVJvbGxiYWNrVGhyb3duID0gJHRydWUgfQ0KICAgIEFzc2Vy
dC1UcnVlIC1OYW1lICdqdW5jdGlvbiB2ZXJpZmljYXRpb24gZmFpbHVyZSBpcyBzdXJmYWNlZCcg
LUNvbmRpdGlvbiAkdmVyaWZ5Um9sbGJhY2tUaHJvd24NCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAn
dmVyaWZpY2F0aW9uIGZhaWx1cmUgcmVtb3ZlcyBvbmx5IHRoZSBuZXdseSBjcmVhdGVkIGp1bmN0
aW9uIGFuZCByZXN0b3JlcyB0aGUgcmVhbCBob21lJyBgDQogICAgICAgIC1Db25kaXRpb24gKChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHZlcmlmeVJvbGxiYWNrLnByb2ZpbGUg
Jy5jbGF1ZGUnKSAtUGF0aFR5cGUgQ29udGFpbmVyKSAtYW5kDQogICAgICAgICAgICAtbm90IChU
ZXN0LUlzUmVwYXJzZVBvaW50IC1QYXRoIChKb2luLVBhdGggJHZlcmlmeVJvbGxiYWNrLnByb2Zp
bGUgJy5jbGF1ZGUnKSkpDQogICAgQXNzZXJ0LUVxdWFsIC1OYW1lICd2ZXJpZmljYXRpb24gZmFp
bHVyZSByZXN0b3JlcyBleGFjdCBvcmlnaW5hbCBieXRlcycgLUV4cGVjdGVkICJyZXN0b3JlIGFm
dGVyIHZlcmlmeWByYG4iIGANCiAgICAgICAgLUFjdHVhbCAoW0lPLkZpbGVdOjpSZWFkQWxsVGV4
dCgoSm9pbi1QYXRoICR2ZXJpZnlSb2xsYmFjay5wcm9maWxlICcuY2xhdWRlXHN0YXRlLmpzb24n
KSkpDQoNCiAgICAkYmxvY2tlZCA9IE5ldy1NaWdyYXRpb25GaXh0dXJlIC1OYW1lICdyZXBhcnNl
LWJsb2NrZWQnDQogICAgJGJsb2NrZWRUYXJnZXQgPSBKb2luLVBhdGggJGJsb2NrZWQuc2NlbmFy
aW8gJ2xpbmtlZC10YXJnZXQnDQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVj
dG9yeSgkYmxvY2tlZFRhcmdldCkNCiAgICBXcml0ZS1VdGY4Rml4dHVyZSAtUGF0aCAoSm9pbi1Q
YXRoICRibG9ja2VkVGFyZ2V0ICdvdXRzaWRlLnR4dCcpIC1UZXh0ICJtdXN0IG5vdCBiZSBmb2xs
b3dlZGByYG4iDQogICAgW3ZvaWRdW0lPLkRpcmVjdG9yeV06OkNyZWF0ZURpcmVjdG9yeSgoSm9p
bi1QYXRoICRibG9ja2VkLnByb2ZpbGUgJy5jbGF1ZGUnKSkNCiAgICBbdm9pZF0oTmV3LUl0ZW0g
LUl0ZW1UeXBlIEp1bmN0aW9uIC1QYXRoIChKb2luLVBhdGggJGJsb2NrZWQucHJvZmlsZSAnLmNs
YXVkZVxsaW5rZWQnKSAtVGFyZ2V0ICRibG9ja2VkVGFyZ2V0IC1FcnJvckFjdGlvbiBTdG9wKQ0K
ICAgICRibG9ja2VkUmVzdWx0ID0gSW52b2tlLU1pZ3JhdGlvbkZpeHR1cmUgLUZpeHR1cmUgJGJs
b2NrZWQNCiAgICBBc3NlcnQtRXF1YWwgLU5hbWUgJ2xlZ2FjeSBjaGlsZCByZXBhcnNlIHBvaW50
IHJldHVybnMgZXhwbGljaXQgcGVuZGluZyBzdGF0dXMgd2l0aG91dCB0cmF2ZXJzYWwnIGANCiAg
ICAgICAgLUV4cGVjdGVkICdwZW5kaW5nLW5hdHVyYWwtaG9tZS1tZXJnZScgLUFjdHVhbCAoW3N0
cmluZ10kYmxvY2tlZFJlc3VsdC5zdGF0dXMpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ3BlbmRp
bmcgcmVzdWx0IG5hbWVzIHRoZSB1bm1lcmdlZCByZXBhcnNlIHBvaW50JyBgDQogICAgICAgIC1D
b25kaXRpb24gKEAoJGJsb2NrZWRSZXN1bHQucGVuZGluZ1swXS5jb25mbGljdHMgfCBXaGVyZS1P
YmplY3QgcGF0aCAtZXEgJ2xpbmtlZCcpLkNvdW50IC1lcSAxKQ0KICAgIEFzc2VydC1UcnVlIC1O
YW1lICdyZXBhcnNlIHJlamVjdGlvbiBsZWF2ZXMgZXh0ZXJuYWwgaG9tZSBpbiBwbGFjZScgLUNv
bmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRibG9ja2VkLnByb2Zp
bGUgJy5jbGF1ZGUnKSAtUGF0aFR5cGUgQ29udGFpbmVyKQ0KICAgIEFzc2VydC1FcXVhbCAtTmFt
ZSAncmVwYXJzZSB0YXJnZXQgYnl0ZXMgYXJlIHVudG91Y2hlZCcgLUV4cGVjdGVkICJtdXN0IG5v
dCBiZSBmb2xsb3dlZGByYG4iIC1BY3R1YWwgKFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoKEpvaW4t
UGF0aCAkYmxvY2tlZFRhcmdldCAnb3V0c2lkZS50eHQnKSkpDQoNCiAgICBbcHNjdXN0b21vYmpl
Y3RdQHsgc3RhdHVzID0gJ1BBU1MnOyBwYXNzZWQgPSAkc2NyaXB0OlBhc3NlZDsgZml4dHVyZVJl
bW92ZWQgPSAkdHJ1ZTsgbm9Nb2RlbENhbGwgPSAkdHJ1ZSB9DQp9DQpmaW5hbGx5IHsNCiAgICBS
ZW1vdmUtT3duZWRGaXh0dXJlDQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-Migration.ps1","encoding":"base64","size":51758,"runtimeSha256":"3558edf3445097b10e6601298fab9f88aa3e0ae7a212ddcbdd055ae7dc5dc391","normalizedSha256":"b30b9f00a0fa042dd875b9392c8f76a740ece02c1b58fc3eb2c10f4afd5a1ac5"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJHNldHVwRGlyZWN0b3J5ID0gW0lPLkRpcmVjdG9yeV06OkdldFBhcmVudCgk
UFNTY3JpcHRSb290KS5GdWxsTmFtZQ0KJG1vZHVsZVBhdGggPSBKb2luLVBhdGggJHNldHVwRGly
ZWN0b3J5ICdlbmdpbmVcU291bC5FbmdpbmUucHNtMScNCiRzdGFnZVBhdGggPSBKb2luLVBhdGgg
JHNldHVwRGlyZWN0b3J5ICdzdGFnZS12Ny5wczEnDQokZmluYWxpemVyUGF0aCA9IEpvaW4tUGF0
aCAkc2V0dXBEaXJlY3RvcnkgJ2ZpbmFsaXplLXY3LnBzMScNCiRhZGFwdGVyUGF0aCA9IEpvaW4t
UGF0aCAkc2V0dXBEaXJlY3RvcnkgJ2FwcGx5LWFkYXB0ZXJzLXY3LnBzMScNCiRsYXVuY2hlclBh
dGggPSBKb2luLVBhdGggJHNldHVwRGlyZWN0b3J5ICdsYXVuY2hlci5wczEnDQokc291cmNlUHJl
cGFyYXRpb25QYXRoID0gSm9pbi1QYXRoICRzZXR1cERpcmVjdG9yeSAncHJlcGFyZS1zb3VyY2Vz
LXY3LnBzMScNCkltcG9ydC1Nb2R1bGUgLU5hbWUgJG1vZHVsZVBhdGggLUZvcmNlDQoNCiRzY3Jp
cHQ6UGFzc2VkID0gMA0KJHNjcmlwdDpGYWlsZWQgPSAwDQoNCmZ1bmN0aW9uIEFzc2VydC1UZXN0
VHJ1ZSB7DQogICAgcGFyYW0oW3N0cmluZ10kTmFtZSwgW2Jvb2xdJENvbmRpdGlvbikNCiAgICBp
ZiAoLW5vdCAkQ29uZGl0aW9uKSB7ICRzY3JpcHQ6RmFpbGVkKys7IHRocm93ICJGQUlMRUQ6ICRO
YW1lIiB9DQogICAgJHNjcmlwdDpQYXNzZWQrKw0KICAgIFdyaXRlLUhvc3QgIlBBU1MgICROYW1l
Ig0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtVGVzdEVxdWFsIHsNCiAgICBwYXJhbShbc3RyaW5nXSRO
YW1lLCAkRXhwZWN0ZWQsICRBY3R1YWwpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICROYW1l
IC1Db25kaXRpb24gKFtvYmplY3RdOjpFcXVhbHMoJEV4cGVjdGVkLCAkQWN0dWFsKSkNCn0NCg0K
ZnVuY3Rpb24gQXNzZXJ0LVRlc3RUaHJvd3Mgew0KICAgIHBhcmFtKFtzdHJpbmddJE5hbWUsIFtz
Y3JpcHRibG9ja10kQWN0aW9uKQ0KICAgICR0aHJldyA9ICRmYWxzZQ0KICAgIHRyeSB7ICYgJEFj
dGlvbiB9IGNhdGNoIHsgJHRocmV3ID0gJHRydWUgfQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFt
ZSAkTmFtZSAtQ29uZGl0aW9uICR0aHJldw0KfQ0KDQpmdW5jdGlvbiBOZXctVGVzdERpcmVjdG9y
eSB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kVGl0bGUgPSAnTWlncmF0aW9u
IHRlc3QgZGlyZWN0b3J5JykNCiAgICBbdm9pZF1bSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0
b3J5KCRQYXRoKQ0KICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAoSm9pbi1Q
YXRoICRQYXRoICdBR0VOVFMubWQnKSAtVGV4dCAiIyAkVGl0bGVgcmBuYHJgblRoaXMgZGlyZWN0
b3J5IGlzIGRpc3Bvc2FibGUgZml4dHVyZSBkYXRhLmByYG5gcmBuPCEtLSBEbyBub3QgcmVzdGF0
ZSBpbmhlcml0ZWQgQUdFTlRTLm1kIHJ1bGVzLiAtLT5gcmBuIikNCiAgICBbdm9pZF0oV3JpdGUt
U291bFV0ZjhBdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkUGF0aCAnQ0xBVURFLm1kJykgLVRleHQg
IkBBR0VOVFMubWRgcmBuIikNCn0NCg0KZnVuY3Rpb24gU2V0LUdlbmVyYXRpb25UZXN0U3RhdHVz
IHsNCiAgICBwYXJhbShbc3RyaW5nXSRGaXh0dXJlU2V0dXAsIFtzdHJpbmddJEdlbmVyYXRpb25J
ZCwgW3N0cmluZ10kU3RhdHVzKQ0KICAgICRwYXRoID0gSm9pbi1QYXRoICRGaXh0dXJlU2V0dXAg
KCJnZW5lcmF0aW9uc1wkR2VuZXJhdGlvbklkXGdlbmVyYXRpb24uanNvbiIpDQogICAgJG1hbmlm
ZXN0ID0gUmVhZC1Tb3VsSnNvbiAtUGF0aCAkcGF0aA0KICAgICRtYW5pZmVzdC5zdGF0dXMgPSAk
U3RhdHVzDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoICRwYXRoIC1WYWx1
ZSAkbWFuaWZlc3QpDQp9DQoNCmZ1bmN0aW9uIEdldC1UZXN0T3B0aW9uYWxQcm9wZXJ0eSB7DQog
ICAgcGFyYW0oJE9iamVjdCwgW3N0cmluZ10kTmFtZSkNCiAgICAkcHJvcGVydHkgPSAkT2JqZWN0
LlBTT2JqZWN0LlByb3BlcnRpZXNbJE5hbWVdDQogICAgaWYgKCRudWxsIC1lcSAkcHJvcGVydHkp
IHsgcmV0dXJuICRudWxsIH0NCiAgICByZXR1cm4gJHByb3BlcnR5LlZhbHVlDQp9DQoNCmZ1bmN0
aW9uIEdldC1UZXN0VGV4dFNoYTI1NiB7DQogICAgcGFyYW0oW3N0cmluZ10kVGV4dCkNCiAgICAk
YWxnb3JpdGhtID0gW1NlY3VyaXR5LkNyeXB0b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAg
IHRyeSB7IHJldHVybiAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRhbGdvcml0aG0uQ29tcHV0
ZUhhc2goW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCRUZXh0KSkpKS5SZXBsYWNlKCct
JywgJycpLlRvTG93ZXJJbnZhcmlhbnQoKSB9DQogICAgZmluYWxseSB7ICRhbGdvcml0aG0uRGlz
cG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gRW5zdXJlLVRlc3REaXJlY3RvcnlUcmVlIHsNCiAgICBw
YXJhbShbc3RyaW5nXSRQYXRoLCBbc3RyaW5nXSRCb3VuZGFyeSkNCiAgICAkZnVsbFBhdGggPSBb
SU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQYXRoKS5UcmltRW5kKCdcJywgJy8nKQ0KICAgICRmdWxs
Qm91bmRhcnkgPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRCb3VuZGFyeSkuVHJpbUVuZCgnXCcs
ICcvJykNCiAgICAkcmVsYXRpdmUgPSAkZnVsbFBhdGguU3Vic3RyaW5nKCRmdWxsQm91bmRhcnku
TGVuZ3RoKS5UcmltU3RhcnQoJ1wnLCAnLycpDQogICAgJGN1cnNvciA9ICRmdWxsQm91bmRhcnkN
CiAgICBmb3JlYWNoICgkc2VnbWVudCBpbiAoJHJlbGF0aXZlIC1zcGxpdCAnW1xcL10nKSkgew0K
ICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkc2VnbWVudCkpIHsgY29u
dGludWUgfQ0KICAgICAgICAkY3Vyc29yID0gSm9pbi1QYXRoICRjdXJzb3IgJHNlZ21lbnQNCiAg
ICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGN1cnNvciAtUGF0aFR5cGUg
Q29udGFpbmVyKSkgeyBOZXctVGVzdERpcmVjdG9yeSAtUGF0aCAkY3Vyc29yIC1UaXRsZSAnRml4
dHVyZSBjYW5vbmljYWwgc291cmNlIHBhdGgnIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldC1U
ZXN0UGF5bG9hZERpZ2VzdCB7DQogICAgcGFyYW0oW3N0cmluZ10kUGF0aCkNCiAgICAkaW52ZW50
b3J5ID0gQChHZXQtU291bFRyZWVJbnZlbnRvcnkgLVBhdGggJFBhdGggfCBXaGVyZS1PYmplY3Qg
eyAkXy5wYXRoIC1uZSAnc291cmNlLXByb29mLmpzb24nIH0pDQogICAgJHJvd3MgPSBAKCRpbnZl
bnRvcnkgfCBGb3JFYWNoLU9iamVjdCB7ICd7MH18ezF9fHsyfXx7M30nIC1mICRfLnBhdGgsICRf
LmtpbmQsICRfLmxlbmd0aCwgJF8uc2hhMjU2IH0pDQogICAgcmV0dXJuIEdldC1UZXN0VGV4dFNo
YTI1NiAtVGV4dCAoJHJvd3MgLWpvaW4gImBuIikNCn0NCg0KZnVuY3Rpb24gTmV3LVRlc3RDYW5v
bmljYWxTb3VyY2VzIHsNCiAgICBwYXJhbShbc3RyaW5nXSRSb290LCBbc3RyaW5nXSRMb2NrUGF0
aCkNCiAgICAkbG9jayA9IFJlYWQtU291bEpzb24gLVBhdGggJExvY2tQYXRoDQogICAgZm9yZWFj
aCAoJGV4dGVuc2lvbiBpbiBAKCRsb2NrLmV4dGVuc2lvbnMpKSB7DQogICAgICAgICRzb3VyY2VQ
YXRoID0gSm9pbi1QYXRoICRSb290ICgoW3N0cmluZ10kZXh0ZW5zaW9uLmNhbm9uaWNhbFJlbGF0
aXZlUGF0aCkuUmVwbGFjZSgnLycsICdcJykpDQogICAgICAgIEVuc3VyZS1UZXN0RGlyZWN0b3J5
VHJlZSAtUGF0aCAkc291cmNlUGF0aCAtQm91bmRhcnkgJFJvb3QNCiAgICAgICAgJGVudHJ5ID0g
W3N0cmluZ10oR2V0LVRlc3RPcHRpb25hbFByb3BlcnR5ICRleHRlbnNpb24gJ2VudHJ5JykNCiAg
ICAgICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkZW50cnkpKSB7DQog
ICAgICAgICAgICAkZW50cnlQYXRoID0gSm9pbi1QYXRoICRzb3VyY2VQYXRoICgkZW50cnkuUmVw
bGFjZSgnLycsICdcJykpDQogICAgICAgICAgICBFbnN1cmUtVGVzdERpcmVjdG9yeVRyZWUgLVBh
dGggKFNwbGl0LVBhdGggJGVudHJ5UGF0aCAtUGFyZW50KSAtQm91bmRhcnkgJFJvb3QNCiAgICAg
ICAgICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkZW50cnlQYXRoIC1UZXh0
ICJmaXh0dXJlIGV4ZWN1dGFibGUgZm9yICQoJGV4dGVuc2lvbi5pZClgcmBuIikNCiAgICAgICAg
fQ0KICAgICAgICAkY2xhdWRlQWRhcHRlciA9IEdldC1UZXN0T3B0aW9uYWxQcm9wZXJ0eSAkZXh0
ZW5zaW9uICdjbGF1ZGVBZGFwdGVyJw0KICAgICAgICBpZiAoJG51bGwgLW5lICRjbGF1ZGVBZGFw
dGVyIC1hbmQgW3N0cmluZ10kY2xhdWRlQWRhcHRlci50eXBlIC1tYXRjaCAnXmxvY2FsLXBsdWdp
bicpIHsNCiAgICAgICAgICAgICRwbHVnaW5OYW1lID0gW3N0cmluZ10oR2V0LVRlc3RPcHRpb25h
bFByb3BlcnR5ICRjbGF1ZGVBZGFwdGVyICdwbHVnaW4nKQ0KICAgICAgICAgICAgaWYgKFtzdHJp
bmddOjpJc051bGxPcldoaXRlU3BhY2UoJHBsdWdpbk5hbWUpKSB7ICRwbHVnaW5OYW1lID0gW3N0
cmluZ10kZXh0ZW5zaW9uLmlkIH0NCiAgICAgICAgICAgICRwbHVnaW5Sb290ID0gaWYgKFtzdHJp
bmddJGV4dGVuc2lvbi5pZCAtZXEgJ2Zyb250ZW5kLWRlc2lnbicpIHsgSm9pbi1QYXRoICRzb3Vy
Y2VQYXRoICdwbHVnaW5zXGZyb250ZW5kLWRlc2lnbicgfSBlbHNlIHsgJHNvdXJjZVBhdGggfQ0K
ICAgICAgICAgICAgRW5zdXJlLVRlc3REaXJlY3RvcnlUcmVlIC1QYXRoIChKb2luLVBhdGggJHBs
dWdpblJvb3QgJy5jbGF1ZGUtcGx1Z2luJykgLUJvdW5kYXJ5ICRSb290DQogICAgICAgICAgICBb
dm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkcGx1Z2luUm9vdCAn
LmNsYXVkZS1wbHVnaW5ccGx1Z2luLmpzb24nKSAtVmFsdWUgKFtvcmRlcmVkXUB7IG5hbWUgPSAk
cGx1Z2luTmFtZTsgdmVyc2lvbiA9IFtzdHJpbmddKEdldC1UZXN0T3B0aW9uYWxQcm9wZXJ0eSAk
ZXh0ZW5zaW9uICd2ZXJzaW9uJykgfSkpDQogICAgICAgICAgICBFbnN1cmUtVGVzdERpcmVjdG9y
eVRyZWUgLVBhdGggKEpvaW4tUGF0aCAkc291cmNlUGF0aCAnLmNsYXVkZS1wbHVnaW4nKSAtQm91
bmRhcnkgJFJvb3QNCiAgICAgICAgICAgICRwbHVnaW5Tb3VyY2UgPSBpZiAoW3N0cmluZ10kZXh0
ZW5zaW9uLmlkIC1lcSAnZnJvbnRlbmQtZGVzaWduJykgeyAnLi9wbHVnaW5zL2Zyb250ZW5kLWRl
c2lnbicgfSBlbHNlIHsgJy4vJyB9DQogICAgICAgICAgICBbdm9pZF0oV3JpdGUtU291bEpzb25B
dG9taWMgLVBhdGggKEpvaW4tUGF0aCAkc291cmNlUGF0aCAnLmNsYXVkZS1wbHVnaW5cbWFya2V0
cGxhY2UuanNvbicpIC1WYWx1ZSAoW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICBuYW1lID0g
J3Vwc3RyZWFtLWZpeHR1cmUnDQogICAgICAgICAgICAgICAgcGx1Z2lucyA9IEAoW29yZGVyZWRd
QHsgbmFtZSA9ICRwbHVnaW5OYW1lOyB2ZXJzaW9uID0gW3N0cmluZ10oR2V0LVRlc3RPcHRpb25h
bFByb3BlcnR5ICRleHRlbnNpb24gJ3ZlcnNpb24nKTsgc291cmNlID0gJHBsdWdpblNvdXJjZSB9
KQ0KICAgICAgICAgICAgfSkpDQogICAgICAgIH0NCiAgICAgICAgJGV4cGVjdGVkQ291bnRWYWx1
ZSA9IEdldC1UZXN0T3B0aW9uYWxQcm9wZXJ0eSAkZXh0ZW5zaW9uICdleHBlY3RlZFNraWxsQ291
bnQnDQogICAgICAgIGlmICgkbnVsbCAtbmUgJGV4cGVjdGVkQ291bnRWYWx1ZSkgew0KICAgICAg
ICAgICAgJHNraWxsQ29udGFpbmVyID0gaWYgKFtzdHJpbmddJGV4dGVuc2lvbi5pZCAtZXEgJ2st
c2tpbGwnKSB7IEpvaW4tUGF0aCAkc291cmNlUGF0aCAnbWF0ZXJpYWxpemVkLXNraWxscycgfSBl
bHNlIHsgSm9pbi1QYXRoICRzb3VyY2VQYXRoICdza2lsbHMnIH0NCiAgICAgICAgICAgICRleHBl
Y3RlZENvdW50ID0gW2ludF0kZXhwZWN0ZWRDb3VudFZhbHVlDQogICAgICAgICAgICBmb3IgKCRz
a2lsbEluZGV4ID0gMTsgJHNraWxsSW5kZXggLWxlICRleHBlY3RlZENvdW50OyAkc2tpbGxJbmRl
eCsrKSB7DQogICAgICAgICAgICAgICAgJHNraWxsTmFtZSA9ICd7MH0tZml4dHVyZS17MTpEM30n
IC1mIFtzdHJpbmddJGV4dGVuc2lvbi5pZCwgJHNraWxsSW5kZXgNCiAgICAgICAgICAgICAgICAk
c2tpbGxQYXRoID0gSm9pbi1QYXRoICRza2lsbENvbnRhaW5lciAkc2tpbGxOYW1lDQogICAgICAg
ICAgICAgICAgRW5zdXJlLVRlc3REaXJlY3RvcnlUcmVlIC1QYXRoICRza2lsbFBhdGggLUJvdW5k
YXJ5ICRSb290DQogICAgICAgICAgICAgICAgJGV4dHJhID0gaWYgKFtzdHJpbmddJGV4dGVuc2lv
bi5pZCAtZXEgJ2stc2tpbGwnIC1hbmQgJHNraWxsSW5kZXggLWVxIDEpIHsgIlJ1biBucHggLXkg
QG5vbWFkYW1hcy9rLXNraWxsQDAgcmVwb3J0LmByYG4iIH0gZWxzZSB7ICcnIH0NCiAgICAgICAg
ICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkc2tp
bGxQYXRoICdTS0lMTC5tZCcpIC1UZXh0ICItLS1gcmBubmFtZTogJHNraWxsTmFtZWByYG5kZXNj
cmlwdGlvbjogZml4dHVyZWByYG4tLS1gcmBuJGV4dHJhIikNCiAgICAgICAgICAgIH0NCiAgICAg
ICAgfQ0KICAgICAgICBpZiAoW3N0cmluZ10kZXh0ZW5zaW9uLmlkIC1lcSAnay1za2lsbCcpIHsN
CiAgICAgICAgICAgICRwYWNrYWdlUm9vdCA9IEpvaW4tUGF0aCAkc291cmNlUGF0aCAnbm9kZV9t
b2R1bGVzXEBub21hZGFtYXNcay1za2lsbCcNCiAgICAgICAgICAgIEVuc3VyZS1UZXN0RGlyZWN0
b3J5VHJlZSAtUGF0aCAoSm9pbi1QYXRoICRwYWNrYWdlUm9vdCAnYmluJykgLUJvdW5kYXJ5ICRS
b290DQogICAgICAgICAgICBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggKEpvaW4t
UGF0aCAkcGFja2FnZVJvb3QgJ3BhY2thZ2UuanNvbicpIC1WYWx1ZSAoW29yZGVyZWRdQHsgbmFt
ZSA9ICdAbm9tYWRhbWFzL2stc2tpbGwnOyB2ZXJzaW9uID0gJzAuNC4zJzsgYmluID0gW29yZGVy
ZWRdQHsgJ2stc2tpbGwnID0gJ2JpblxjbGkuanMnIH0gfSkpDQogICAgICAgICAgICBbdm9pZF0o
V3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkcGFja2FnZVJvb3QgJ2Jpblxj
bGkuanMnKSAtVGV4dCAicHJvY2Vzcy5leGl0KDApO2ByYG4iKQ0KICAgICAgICB9DQogICAgICAg
ICRwaW5LaW5kID0gJG51bGwNCiAgICAgICAgJHBpblZhbHVlID0gJG51bGwNCiAgICAgICAgZm9y
ZWFjaCAoJG5hbWUgaW4gQCgnY29tbWl0JywgJ2ludGVncml0eScsICdzaGEyNTYnLCAndmVyc2lv
bicpKSB7DQogICAgICAgICAgICAkY2FuZGlkYXRlID0gW3N0cmluZ10oR2V0LVRlc3RPcHRpb25h
bFByb3BlcnR5ICRleHRlbnNpb24gJG5hbWUpDQogICAgICAgICAgICBpZiAoLW5vdCBbc3RyaW5n
XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRjYW5kaWRhdGUpKSB7ICRwaW5LaW5kID0gJG5hbWU7ICRw
aW5WYWx1ZSA9ICRjYW5kaWRhdGU7IGJyZWFrIH0NCiAgICAgICAgfQ0KICAgICAgICBbdm9pZF0o
V3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkc291cmNlUGF0aCAnc291cmNl
LXByb29mLmpzb24nKSAtVmFsdWUgKFtvcmRlcmVkXUB7DQogICAgICAgICAgICBzY2hlbWFWZXJz
aW9uID0gMQ0KICAgICAgICAgICAgaWQgPSBbc3RyaW5nXSRleHRlbnNpb24uaWQNCiAgICAgICAg
ICAgIHBpbktpbmQgPSAkcGluS2luZA0KICAgICAgICAgICAgcGluVmFsdWUgPSAkcGluVmFsdWUN
CiAgICAgICAgICAgIHBheWxvYWRUcmVlU2hhMjU2ID0gR2V0LVRlc3RQYXlsb2FkRGlnZXN0IC1Q
YXRoICRzb3VyY2VQYXRoDQogICAgICAgIH0pKQ0KICAgIH0NCg0KICAgICRydW50aW1lUmVjb3Jk
cyA9IEAoJGxvY2sucHl0aG9uUnVudGltZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlk
IC1jZXEgJ2RvY3VtZW50LW1jcCcgfSkNCiAgICBpZiAoJHJ1bnRpbWVSZWNvcmRzLkNvdW50IC1u
ZSAxKSB7IHRocm93ICdGaXh0dXJlIGxvY2sgaGFzIG5vIGRvY3VtZW50LW1jcCBQeXRob24gcnVu
dGltZS4nIH0NCiAgICAkcnVudGltZVJlY29yZCA9ICRydW50aW1lUmVjb3Jkc1swXQ0KICAgICR3
aGVlbGhvdXNlID0gSm9pbi1QYXRoICRSb290IChbc3RyaW5nXSRydW50aW1lUmVjb3JkLndoZWVs
aG91c2VSZWxhdGl2ZVBhdGgpLlJlcGxhY2UoJy8nLCAnXCcpDQogICAgJHdoZWVscyA9IEpvaW4t
UGF0aCAkd2hlZWxob3VzZSAnd2hlZWxzJw0KICAgIEVuc3VyZS1UZXN0RGlyZWN0b3J5VHJlZSAt
UGF0aCAkd2hlZWxzIC1Cb3VuZGFyeSAkUm9vdA0KICAgICR3aGVlbEludmVudG9yeSA9IE5ldy1P
YmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtvYmplY3RdDQogICAgZm9yICgk
d2hlZWxJbmRleCA9IDE7ICR3aGVlbEluZGV4IC1sZSBbaW50XSRydW50aW1lUmVjb3JkLmV4cGVj
dGVkUGFja2FnZUNvdW50OyAkd2hlZWxJbmRleCsrKSB7DQogICAgICAgICR3aGVlbFBhdGggPSBK
b2luLVBhdGggJHdoZWVscyAoJ2ZpeHR1cmVfcGFja2FnZV97MDpEMn0tMS4wLXB5My1ub25lLWFu
eS53aGwnIC1mICR3aGVlbEluZGV4KQ0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9t
aWMgLVBhdGggJHdoZWVsUGF0aCAtVGV4dCAoImZpeHR1cmUtd2hlZWwtJHdoZWVsSW5kZXhgcmBu
IikpDQogICAgICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICR3aGVlbFBhdGggLUZv
cmNlDQogICAgICAgICR3aGVlbEludmVudG9yeS5BZGQoW29yZGVyZWRdQHsgbmFtZSA9ICRpdGVt
Lk5hbWU7IGxlbmd0aCA9IFtsb25nXSRpdGVtLkxlbmd0aDsgc2hhMjU2ID0gR2V0LVNvdWxTaGEy
NTYgLVBhdGggJHdoZWVsUGF0aCB9KQ0KICAgIH0NCiAgICAkd2hlZWxQcm9vZlBhdGggPSBKb2lu
LVBhdGggJHdoZWVsaG91c2UgJ3doZWVsaG91c2UtcHJvb2YuanNvbicNCiAgICBbdm9pZF0oV3Jp
dGUtU291bEpzb25BdG9taWMgLVBhdGggJHdoZWVsUHJvb2ZQYXRoIC1WYWx1ZSAoW29yZGVyZWRd
QHsNCiAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgaWQgPSAnZG9jdW1lbnQtbWNw
Jw0KICAgICAgICBweXRob25WZXJzaW9uID0gW3N0cmluZ10kcnVudGltZVJlY29yZC5weXRob25W
ZXJzaW9uDQogICAgICAgIHJlcXVpcmVtZW50c0xvY2tTaGEyNTYgPSBbc3RyaW5nXSRydW50aW1l
UmVjb3JkLnJlcXVpcmVtZW50c0xvY2tTaGEyNTYNCiAgICAgICAgZXhwZWN0ZWRQYWNrYWdlQ291
bnQgPSBbaW50XSRydW50aW1lUmVjb3JkLmV4cGVjdGVkUGFja2FnZUNvdW50DQogICAgICAgIGZp
bGVzID0gQCgkd2hlZWxJbnZlbnRvcnkuVG9BcnJheSgpKQ0KICAgIH0pKQ0KDQogICAgJHJ1bnRp
bWVSZWxhdGl2ZSA9IChbc3RyaW5nXSRydW50aW1lUmVjb3JkLnJ1bnRpbWVSZWxhdGl2ZVBhdGgp
LlJlcGxhY2UoJzxob3N0PicsIFtFbnZpcm9ubWVudF06Ok1hY2hpbmVOYW1lLlRvTG93ZXJJbnZh
cmlhbnQoKSkuUmVwbGFjZSgnLycsICdcJykNCiAgICAkcnVudGltZVBhdGggPSBKb2luLVBhdGgg
JFJvb3QgJHJ1bnRpbWVSZWxhdGl2ZQ0KICAgICRydW50aW1lU2NyaXB0cyA9IEpvaW4tUGF0aCAk
cnVudGltZVBhdGggJ1NjcmlwdHMnDQogICAgRW5zdXJlLVRlc3REaXJlY3RvcnlUcmVlIC1QYXRo
ICRydW50aW1lU2NyaXB0cyAtQm91bmRhcnkgJFJvb3QNCiAgICBbdm9pZF0oV3JpdGUtU291bFV0
ZjhBdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkcnVudGltZVNjcmlwdHMgJ3B5dGhvbi5leGUnKSAt
VGV4dCAiZml4dHVyZS1weXRob24tMy4xMmByYG4iKQ0KICAgIFt2b2lkXShXcml0ZS1Tb3VsSnNv
bkF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRydW50aW1lUGF0aCAncnVudGltZS1wcm9vZi5qc29u
JykgLVZhbHVlIChbb3JkZXJlZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAg
ICBpZCA9ICdkb2N1bWVudC1tY3AnDQogICAgICAgIHB5dGhvblZlcnNpb24gPSAnMy4xMi4xMCcN
CiAgICAgICAgcmVxdWlyZW1lbnRzTG9ja1NoYTI1NiA9IFtzdHJpbmddJHJ1bnRpbWVSZWNvcmQu
cmVxdWlyZW1lbnRzTG9ja1NoYTI1Ng0KICAgICAgICB3aGVlbGhvdXNlUHJvb2ZTaGEyNTYgPSBH
ZXQtU291bFNoYTI1NiAtUGF0aCAkd2hlZWxQcm9vZlBhdGgNCiAgICAgICAgaW5zdGFsbGVkRnJl
ZXplU2hhMjU2ID0gR2V0LVRlc3RUZXh0U2hhMjU2IC1UZXh0ICdmaXh0dXJlLWZyZWV6ZScNCiAg
ICB9KSkNCn0NCg0KJGZpeHR1cmVCb3VuZGFyeSA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdm
aXh0dXJlcycNCiRjYXNlUm9vdCA9IEpvaW4tUGF0aCAkZml4dHVyZUJvdW5kYXJ5ICgnbS0nICsg
W2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKS5TdWJzdHJpbmcoMCwgOCkpDQokc291bFJv
b3QgPSBKb2luLVBhdGggJGNhc2VSb290ICdzJw0KJGZpeHR1cmVTZXR1cCA9IEpvaW4tUGF0aCAk
c291bFJvb3QgJ19hZ2VudFxzZXR1cCcNCiRjYW5vbmljYWxQb2ludGVyUGF0aCA9IEdldC1Tb3Vs
QWN0aXZlR2VuZXJhdGlvblBhdGgNCiRjYW5vbmljYWxQb2ludGVyRXhpc3RlZCA9IFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGNhbm9uaWNhbFBvaW50ZXJQYXRoIC1QYXRoVHlwZSBMZWFmDQokY2Fu
b25pY2FsUG9pbnRlckhhc2ggPSBpZiAoJGNhbm9uaWNhbFBvaW50ZXJFeGlzdGVkKSB7IEdldC1T
b3VsU2hhMjU2IC1QYXRoICRjYW5vbmljYWxQb2ludGVyUGF0aCB9IGVsc2UgeyAkbnVsbCB9DQok
ZW52aXJvbm1lbnROYW1lcyA9IEAoJ0NMQVVERV9DT05GSUdfRElSJywgJ0NPREVYX0hPTUUnLCAn
U09VTF9ST09UJywgJ1NPVUxfSUQnLCAnU09VTF9IT1NUX0lEJywgJ1RFTVAnLCAnVE1QJywgJ25w
bV9jb25maWdfY2FjaGUnLCAnUElQX0NBQ0hFX0RJUicsICdQTEFZV1JJR0hUX0JST1dTRVJTX1BB
VEgnLCAnU1VQRVJQT1dFUlNfRElTQUJMRV9URUxFTUVUUlknLCAnU0VMRl9JTVBST1ZFX0RJUicp
DQokZW52aXJvbm1lbnRCZWZvcmUgPSBAe30NCmZvcmVhY2ggKCRuYW1lIGluICRlbnZpcm9ubWVu
dE5hbWVzKSB7ICRlbnZpcm9ubWVudEJlZm9yZVskbmFtZV0gPSBbRW52aXJvbm1lbnRdOjpHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKCRuYW1lLCAnUHJvY2VzcycpIH0NCiRwYXRoQmVmb3JlID0gJGVu
djpQQVRIDQoNCnRyeSB7DQogICAgJHNvdXJjZVByZXBhcmF0aW9uVGV4dCA9IFtJTy5GaWxlXTo6
UmVhZEFsbFRleHQoJHNvdXJjZVByZXBhcmF0aW9uUGF0aCkNCiAgICBBc3NlcnQtVGVzdFRydWUg
LU5hbWUgJ3NvdXJjZSBwcmVwYXJhdGlvbiBwcm9iZXMgUHl0aG9uIDMuMTIgd2l0aG91dCBxdW90
ZWQgaW5saW5lIGNvZGUnIC1Db25kaXRpb24gKA0KICAgICAgICAkc291cmNlUHJlcGFyYXRpb25U
ZXh0LkNvbnRhaW5zKCJAKCctLXZlcnNpb24nKSIpIC1hbmQNCiAgICAgICAgLW5vdCAkc291cmNl
UHJlcGFyYXRpb25UZXh0LkNvbnRhaW5zKCdpbXBvcnQgc3lzOyBwcmludChmIntzeXMudmVyc2lv
bl9pbmZvLm1ham9yfS57c3lzLnZlcnNpb25faW5mby5taW5vcn0iKScpDQogICAgKQ0KICAgIEFz
c2VydC1UZXN0VHJ1ZSAtTmFtZSAnc291cmNlIHByZXBhcmF0aW9uIHJldHVybnMgZ2VuZXJpYyBy
ZXN1bHQgbGlzdHMgY29tcGF0aWJseSB3aXRoIFdpbmRvd3MgUG93ZXJTaGVsbCA1LjEnIC1Db25k
aXRpb24gKA0KICAgICAgICAkc291cmNlUHJlcGFyYXRpb25UZXh0LkNvbnRhaW5zKCdyZXN1bHRz
ID0gJHJlc3VsdHMuVG9BcnJheSgpJykgLWFuZA0KICAgICAgICAkc291cmNlUHJlcGFyYXRpb25U
ZXh0LkNvbnRhaW5zKCdweXRob25SdW50aW1lcyA9ICRweXRob25SdW50aW1lUmVzdWx0cy5Ub0Fy
cmF5KCknKSAtYW5kDQogICAgICAgIC1ub3QgJHNvdXJjZVByZXBhcmF0aW9uVGV4dC5Db250YWlu
cygncmVzdWx0cyA9IEAoJHJlc3VsdHMpJykgLWFuZA0KICAgICAgICAtbm90ICRzb3VyY2VQcmVw
YXJhdGlvblRleHQuQ29udGFpbnMoJ3B5dGhvblJ1bnRpbWVzID0gQCgkcHl0aG9uUnVudGltZVJl
c3VsdHMpJykNCiAgICApDQogICAgTmV3LVRlc3REaXJlY3RvcnkgLVBhdGggJGNhc2VSb290IC1U
aXRsZSAnTWlncmF0aW9uIHRlc3QgY2FzZScNCiAgICBOZXctVGVzdERpcmVjdG9yeSAtUGF0aCAk
c291bFJvb3QgLVRpdGxlICdGaXh0dXJlIHNvdWwnDQogICAgJGFnZW50Um9vdCA9IEpvaW4tUGF0
aCAkc291bFJvb3QgJ19hZ2VudCcNCiAgICBOZXctVGVzdERpcmVjdG9yeSAtUGF0aCAkYWdlbnRS
b290IC1UaXRsZSAnRml4dHVyZSBhZ2VudCBzdGF0ZScNCiAgICAkY2xhdWRlSG9tZSA9IEpvaW4t
UGF0aCAkYWdlbnRSb290ICdjbGF1ZGUnDQogICAgJGNvZGV4SG9tZSA9IEpvaW4tUGF0aCAkYWdl
bnRSb290ICdjb2RleCcNCiAgICAkc2hhcmVkUm9vdCA9IEpvaW4tUGF0aCAkYWdlbnRSb290ICdz
aGFyZWQnDQogICAgTmV3LVRlc3REaXJlY3RvcnkgLVBhdGggJGNsYXVkZUhvbWUgLVRpdGxlICdG
aXh0dXJlIENsYXVkZSBob21lJw0KICAgIE5ldy1UZXN0RGlyZWN0b3J5IC1QYXRoICRjb2RleEhv
bWUgLVRpdGxlICdGaXh0dXJlIENvZGV4IGhvbWUnDQogICAgTmV3LVRlc3REaXJlY3RvcnkgLVBh
dGggJHNoYXJlZFJvb3QgLVRpdGxlICdGaXh0dXJlIHNoYXJlZCBzdGF0ZScNCiAgICBOZXctVGVz
dERpcmVjdG9yeSAtUGF0aCAkZml4dHVyZVNldHVwIC1UaXRsZSAnRml4dHVyZSBzZXR1cCBzdGF0
ZScNCg0KICAgICRzb3VsSWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnRCcpDQogICAg
JGluaXRpYWxTdGF0ZVRpbWUgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuQWRkTWludXRlcygtMSkuVG9T
dHJpbmcoJ28nKQ0KICAgIFt2b2lkXShXcml0ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAoSm9pbi1Q
YXRoICRzb3VsUm9vdCAnc291bC1zdGF0ZS5qc29uJykgLVZhbHVlIChbb3JkZXJlZF1Aew0KICAg
ICAgICBzY2hlbWFWZXJzaW9uID0gNw0KICAgICAgICBzb3VsSWQgPSAkc291bElkDQogICAgICAg
IHNvdWxOYW1lID0gJ0ZpeHR1cmVTb3VsJw0KICAgICAgICBsaWZlY3ljbGUgPSAncGVuZGluZy1m
aW5hbGl6ZScNCiAgICAgICAgY3JlYXRlZEF0ID0gJGluaXRpYWxTdGF0ZVRpbWUNCiAgICAgICAg
dXBkYXRlZEF0ID0gJGluaXRpYWxTdGF0ZVRpbWUNCiAgICAgICAgbWFjaGluZVJlYWR5ID0gJGZh
bHNlDQogICAgICAgIHBlbmRpbmdDYXBhYmlsaXRpZXMgPSBAKCdmaXh0dXJlLXBlbmRpbmcnKQ0K
ICAgICAgICBib290c3RyYXAgPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgc2NoZW1hVmVyc2lv
biA9IDENCiAgICAgICAgICAgIGdlbmVyYXRpb25JZCA9ICdnLW9uZScNCiAgICAgICAgICAgIHN0
YWdlU3RhdHVzID0gJ3BlbmRpbmctZmluYWxpemUnDQogICAgICAgIH0NCiAgICAgICAgY3VzdG9t
UG9ydGFibGVTdGF0ZSA9ICdwcmVzZXJ2ZS1tZScNCiAgICB9KSkNCg0KICAgICRjbGF1ZGVTZXR0
aW5nc1BhdGggPSBKb2luLVBhdGggJGNsYXVkZUhvbWUgJ3NldHRpbmdzLmpzb24nDQogICAgJGNs
YXVkZVNldHRpbmdzID0gW29yZGVyZWRdQHsNCiAgICAgICAgZW52ID0gW29yZGVyZWRdQHsNCiAg
ICAgICAgICAgIEFOVEhST1BJQ19CQVNFX1VSTCA9ICdodHRwOi8vMTI3LjAuMC4xOjM0NTYnDQog
ICAgICAgICAgICBLRUVQX0VOViA9ICd1bmNoYW5nZWQnDQogICAgICAgIH0NCiAgICAgICAgcGVy
bWlzc2lvbnMgPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgZGVmYXVsdE1vZGUgPSAnZGVmYXVs
dCcNCiAgICAgICAgICAgIGFsbG93ID0gQCgnUmVhZCgqKScpDQogICAgICAgIH0NCiAgICAgICAg
c2tpcERhbmdlcm91c01vZGVQZXJtaXNzaW9uUHJvbXB0ID0gJGZhbHNlDQogICAgICAgIGF1dG9N
ZW1vcnlFbmFibGVkID0gJHRydWUNCiAgICAgICAgY2xlYW51cFBlcmlvZERheXMgPSAzMA0KICAg
ICAgICBlbmFibGVkUGx1Z2lucyA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAnZG9jdW1lbnQt
c2tpbGxzQGFudGhyb3BpYy1hZ2VudC1za2lsbHMnID0gJHRydWUNCiAgICAgICAgICAgICdrZWVw
LXBsdWdpbkBleGFtcGxlJyA9ICR0cnVlDQogICAgICAgIH0NCiAgICAgICAgY3VzdG9tU2V0dGlu
ZyA9ICdwcmVzZXJ2ZS1tZScNCiAgICB9DQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWlj
IC1QYXRoICRjbGF1ZGVTZXR0aW5nc1BhdGggLVZhbHVlICRjbGF1ZGVTZXR0aW5ncykNCg0KICAg
ICRjbGF1ZGVTdGF0ZVBhdGggPSBKb2luLVBhdGggJGNsYXVkZUhvbWUgJy5jbGF1ZGUuanNvbicN
CiAgICBbdm9pZF0oV3JpdGUtU291bEpzb25BdG9taWMgLVBhdGggJGNsYXVkZVN0YXRlUGF0aCAt
VmFsdWUgKFtvcmRlcmVkXUB7DQogICAgICAgIHByb3h5ID0gW29yZGVyZWRdQHsgYmFzZVVybCA9
ICdodHRwOi8vMTI3LjAuMC4xOjM0NTYnOyBrZWVwUHJveHkgPSAndW5jaGFuZ2VkJyB9DQogICAg
ICAgIG1jcFNlcnZlcnMgPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgJ2tlZXAtZXhpc3Rpbmcn
ID0gW29yZGVyZWRdQHsgdHlwZSA9ICdzdGRpbyc7IGNvbW1hbmQgPSAna2VlcC10aGlzLWNvbW1h
bmQnOyBhcmdzID0gQCgna2VlcC10aGlzLWFyZ3VtZW50JykgfQ0KICAgICAgICAgICAgJ2h3cC1h
dXRvbWF0aW9uJyA9IFtvcmRlcmVkXUB7IHR5cGUgPSAnc3RkaW8nOyBjb21tYW5kID0gJ0M6XGxl
Z2FjeS1kZXZcaHdwXC52ZW52XFNjcmlwdHNccHl0aG9uLmV4ZSc7IGFyZ3MgPSBAKCdDOlxsZWdh
Y3ktZGV2XGh3cFxzZXJ2ZXIucHknKSB9DQogICAgICAgICAgICAnc2VsZi1pbXByb3ZlJyA9IFtv
cmRlcmVkXUB7IHR5cGUgPSAnc3RkaW8nOyBjb21tYW5kID0gJ25vZGUnOyBhcmdzID0gQCgnQzpc
bGVnYWN5LWRldlxzZWxmLWltcHJvdmVcc2VydmVyXGluZGV4LmpzJykgfQ0KICAgICAgICAgICAg
J3BsYXl3cmlnaHQnID0gW29yZGVyZWRdQHsgdHlwZSA9ICdzdGRpbyc7IGNvbW1hbmQgPSAnbnB4
LmNtZCc7IGFyZ3MgPSBAKCcteScsICdAcGxheXdyaWdodC9tY3BAbGF0ZXN0JykgfQ0KICAgICAg
ICB9DQogICAgICAgIGN1c3RvbVN0YXRlID0gJ3ByZXNlcnZlLW1lJw0KICAgIH0pKQ0KDQogICAg
JGNvZGV4Q29uZmlnUGF0aCA9IEpvaW4tUGF0aCAkY29kZXhIb21lICdjb25maWcudG9tbCcNCiAg
ICAkY29kZXhUZXh0ID0gQCcNCm1vZGVsID0gImdwdC10ZXN0Ig0KYXBwcm92YWxfcG9saWN5ID0g
Im9uLXJlcXVlc3QiDQpzYW5kYm94X21vZGUgPSAid29ya3NwYWNlLXdyaXRlIg0KcHJvamVjdF9y
b290X21hcmtlcnMgPSBbIi5naXQiXQ0Kd2ViX3NlYXJjaCA9ICJjYWNoZWQiDQoNCltmZWF0dXJl
c10NCm1lbW9yaWVzID0gdHJ1ZQ0KbXVsdGlfYWdlbnQgPSBmYWxzZQ0Ka2VlcF9mZWF0dXJlID0g
dHJ1ZQ0KDQpbc2hlbGxfZW52aXJvbm1lbnRfcG9saWN5XQ0KaW5oZXJpdCA9ICJhbGwiDQppZ25v
cmVfZGVmYXVsdF9leGNsdWRlcyA9IHRydWUNCmluY2x1ZGVfb25seSA9IFsiS0VFUF9NRSJdDQoN
Clttb2RlbF9wcm92aWRlcnMudGVhbV0NCmJhc2VfdXJsID0gImh0dHA6Ly9wcm92aWRlci5pbnZh
bGlkL3YxIg0Kd2lyZV9hcGkgPSAicmVzcG9uc2VzIg0KDQpbbWNwX3NlcnZlcnMuZG9jdW1lbnQt
c2tpbGxzLW9sZF0NCmNvbW1hbmQgPSAicHJlc2VydmUtdGhpcy1jb21tYW5kIg0KZW5hYmxlZCA9
IHRydWUNCg0KW21jcF9zZXJ2ZXJzLmtlZXAtc2VydmVyXQ0KY29tbWFuZCA9ICJrZWVwLXRoaXMt
c2VydmVyIg0KDQpbbWNwX3NlcnZlcnMuaHdwLWF1dG9tYXRpb25dDQpjb21tYW5kID0gJ0M6XGxl
Z2FjeS1kZXZcaHdwXC52ZW52XFNjcmlwdHNccHl0aG9uLmV4ZScNCmFyZ3MgPSBbJ0M6XGxlZ2Fj
eS1kZXZcaHdwXHNlcnZlci5weSddDQoNClttY3Bfc2VydmVycy5zZWxmLWltcHJvdmVdDQpjb21t
YW5kID0gJ25vZGUnDQphcmdzID0gWydDOlxsZWdhY3ktZGV2XHNlbGYtaW1wcm92ZVxzZXJ2ZXJc
aW5kZXguanMnXQ0KDQpbbWNwX3NlcnZlcnMucGxheXdyaWdodF0NCmNvbW1hbmQgPSAnbnB4LmNt
ZCcNCmFyZ3MgPSBbJy15JywgJ0BwbGF5d3JpZ2h0L21jcEBsYXRlc3QnXQ0KJ0ANCiAgICBbdm9p
ZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGNvZGV4Q29uZmlnUGF0aCAtVGV4dCAoJGNv
ZGV4VGV4dCArIFtFbnZpcm9ubWVudF06Ok5ld0xpbmUpKQ0KICAgIFt2b2lkXShXcml0ZS1Tb3Vs
VXRmOEF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRjb2RleEhvbWUgJ3N0YXRlXzUuc3FsaXRlJykg
LVRleHQgJ2ZpeHR1cmUtZGItYnl0ZXMnKQ0KICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21p
YyAtUGF0aCAoSm9pbi1QYXRoICRjb2RleEhvbWUgJ3N0YXRlXzUuc3FsaXRlLXdhbCcpIC1UZXh0
ICdmaXh0dXJlLXdhbC1ieXRlcycpDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1Q
YXRoIChKb2luLVBhdGggJGNsYXVkZUhvbWUgJ2hpc3RvcnkuanNvbmwnKSAtVGV4dCAie31gcmBu
IikNCg0KICAgICRwcm9qZWN0c1BhdGggPSBKb2luLVBhdGggJGNsYXVkZUhvbWUgJ3Byb2plY3Rz
Jw0KICAgICRwcm9qZWN0TWVtb3J5UGFyZW50ID0gSm9pbi1QYXRoICRwcm9qZWN0c1BhdGggJ3Nj
b3BlLWEnDQogICAgJG1lbW9yeVBhdGggPSBKb2luLVBhdGggJHByb2plY3RNZW1vcnlQYXJlbnQg
J21lbW9yeScNCiAgICBOZXctVGVzdERpcmVjdG9yeSAtUGF0aCAkcHJvamVjdHNQYXRoIC1UaXRs
ZSAnRml4dHVyZSBDbGF1ZGUgcHJvamVjdHMnDQogICAgTmV3LVRlc3REaXJlY3RvcnkgLVBhdGgg
JHByb2plY3RNZW1vcnlQYXJlbnQgLVRpdGxlICdGaXh0dXJlIENsYXVkZSBwcm9qZWN0Jw0KICAg
IE5ldy1UZXN0RGlyZWN0b3J5IC1QYXRoICRtZW1vcnlQYXRoIC1UaXRsZSAnRml4dHVyZSBuYXRp
dmUgbWVtb3J5Jw0KICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAoSm9pbi1Q
YXRoICRtZW1vcnlQYXRoICdNRU1PUlkubWQnKSAtVGV4dCAiIyByZW1lbWJlcmVkIGZhY3RgcmBu
IikNCg0KICAgICRvcmlnaW5hbENsYXVkZUhhc2ggPSBHZXQtU291bFNoYTI1NiAtUGF0aCAkY2xh
dWRlU2V0dGluZ3NQYXRoDQogICAgJG9yaWdpbmFsQ2xhdWRlU3RhdGVIYXNoID0gR2V0LVNvdWxT
aGEyNTYgLVBhdGggJGNsYXVkZVN0YXRlUGF0aA0KICAgICRvcmlnaW5hbENvZGV4SGFzaCA9IEdl
dC1Tb3VsU2hhMjU2IC1QYXRoICRjb2RleENvbmZpZ1BhdGgNCiAgICAkb3JpZ2luYWxEYkhhc2gg
PSBHZXQtU291bFNoYTI1NiAtUGF0aCAoSm9pbi1QYXRoICRjb2RleEhvbWUgJ3N0YXRlXzUuc3Fs
aXRlJykNCiAgICAkb3JpZ2luYWxXYWxIYXNoID0gR2V0LVNvdWxTaGEyNTYgLVBhdGggKEpvaW4t
UGF0aCAkY29kZXhIb21lICdzdGF0ZV81LnNxbGl0ZS13YWwnKQ0KICAgICRvcmlnaW5hbE1lbW9y
eUhhc2ggPSBHZXQtU291bFNoYTI1NiAtUGF0aCAoSm9pbi1QYXRoICRtZW1vcnlQYXRoICdNRU1P
UlkubWQnKQ0KDQogICAgJHBsYW4gPSAmICRzdGFnZVBhdGggLUdlbmVyYXRpb25JZCAnZy1wbGFu
JyAtVGVzdFJvb3QgJHNvdWxSb290DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnc3RhZ2Ug
ZGVmYXVsdHMgdG8gcGxhbi1vbmx5JyAtRXhwZWN0ZWQgJ3BsYW4tb25seScgLUFjdHVhbCAoW3N0
cmluZ10kcGxhbi5tb2RlKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAncGxhbi1vbmx5IGNy
ZWF0ZXMgbm8gZ2VuZXJhdGlvbicgLUNvbmRpdGlvbiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFs
UGF0aCAoSm9pbi1QYXRoICRmaXh0dXJlU2V0dXAgJ2dlbmVyYXRpb25zXGctcGxhbicpKSkNCg0K
ICAgICRzdGFnZSA9ICYgJHN0YWdlUGF0aCAtUHJlcGFyZVN0YXRpY1N0YWdlIC1HZW5lcmF0aW9u
SWQgJ2ctb25lJyAtVGVzdFJvb3QgJHNvdWxSb290DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFt
ZSAnc3RhdGljIHN0YWdlIHJlYWNoZXMgcGVuZGluZy1maW5hbGl6ZScgLUV4cGVjdGVkICdwZW5k
aW5nLWZpbmFsaXplJyAtQWN0dWFsIChbc3RyaW5nXSRzdGFnZS5zdGF0dXMpDQogICAgQXNzZXJ0
LVRlc3RUcnVlIC1OYW1lICdzdGFnZSBkb2VzIG5vdCBjcmVhdGUgYWN0aXZlIHBvaW50ZXInIC1D
b25kaXRpb24gKCRudWxsIC1lcSAoR2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIC1UZXN0U2V0dXBE
aXJlY3RvcnkgJGZpeHR1cmVTZXR1cCkpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnc3Rh
Z2UgcHJlc2VydmVzIENsYXVkZSBzZXR0aW5ncyBieXRlcycgLUV4cGVjdGVkICRvcmlnaW5hbENs
YXVkZUhhc2ggLUFjdHVhbCAoR2V0LVNvdWxTaGEyNTYgLVBhdGggJGNsYXVkZVNldHRpbmdzUGF0
aCkNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdzdGFnZSBwcmVzZXJ2ZXMgQ2xhdWRlIHN0
YXRlIGJ5dGVzJyAtRXhwZWN0ZWQgJG9yaWdpbmFsQ2xhdWRlU3RhdGVIYXNoIC1BY3R1YWwgKEdl
dC1Tb3VsU2hhMjU2IC1QYXRoICRjbGF1ZGVTdGF0ZVBhdGgpDQogICAgQXNzZXJ0LVRlc3RFcXVh
bCAtTmFtZSAnc3RhZ2UgcHJlc2VydmVzIENvZGV4IGNvbmZpZyBieXRlcycgLUV4cGVjdGVkICRv
cmlnaW5hbENvZGV4SGFzaCAtQWN0dWFsIChHZXQtU291bFNoYTI1NiAtUGF0aCAkY29kZXhDb25m
aWdQYXRoKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ3N0YWdlIHByZXNlcnZlcyBDb2Rl
eCBXQUwgYnl0ZXMnIC1FeHBlY3RlZCAkb3JpZ2luYWxXYWxIYXNoIC1BY3R1YWwgKEdldC1Tb3Vs
U2hhMjU2IC1QYXRoIChKb2luLVBhdGggJGNvZGV4SG9tZSAnc3RhdGVfNS5zcWxpdGUtd2FsJykp
DQoNCiAgICAkd3JpdGVyU3RyZWFtID0gTmV3LU9iamVjdCBJTy5GaWxlU3RyZWFtKCRjb2RleENv
bmZpZ1BhdGgsIFtJTy5GaWxlTW9kZV06Ok9wZW4sIFtJTy5GaWxlQWNjZXNzXTo6UmVhZCwgW0lP
LkZpbGVTaGFyZV06Ok5vbmUpDQogICAgdHJ5IHsNCiAgICAgICAgQXNzZXJ0LVRlc3RUaHJvd3Mg
LU5hbWUgJ2ZpbmFsaXplciBibG9ja3MgYSBsaXZlIGZpbGUgd3JpdGVyJyAtQWN0aW9uIHsNCiAg
ICAgICAgICAgIFt2b2lkXSgmICRmaW5hbGl6ZXJQYXRoIC1HZW5lcmF0aW9uSWQgJ2ctb25lJyAt
VGVzdFJvb3QgJHNvdWxSb290IC1UZXN0Tm9MaXZlQWdlbnRzKQ0KICAgICAgICB9DQogICAgfSBm
aW5hbGx5IHsgJHdyaXRlclN0cmVhbS5EaXNwb3NlKCkgfQ0KICAgIEFzc2VydC1UZXN0RXF1YWwg
LU5hbWUgJ3dyaXRlciBibG9jayBsZWF2ZXMgQ2xhdWRlIGNvbmZpZyB1bnRvdWNoZWQnIC1FeHBl
Y3RlZCAkb3JpZ2luYWxDbGF1ZGVIYXNoIC1BY3R1YWwgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRj
bGF1ZGVTZXR0aW5nc1BhdGgpDQoNCiAgICAkZmlyc3RGaW5hbGl6ZSA9ICYgJGZpbmFsaXplclBh
dGggLUdlbmVyYXRpb25JZCAnZy1vbmUnIC1UZXN0Um9vdCAkc291bFJvb3QgLVRlc3ROb0xpdmVB
Z2VudHMNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdjb25maWcgZmluYWxpemUgd2FpdHMg
Zm9yIGFkYXB0ZXJzIGFuZCBzbW9rZScgLUV4cGVjdGVkICdwZW5kaW5nLWFkYXB0ZXJzLWFuZC1z
bW9rZScgLUFjdHVhbCAoW3N0cmluZ10kZmlyc3RGaW5hbGl6ZS5zdGF0dXMpDQogICAgQXNzZXJ0
LVRlc3RUcnVlIC1OYW1lICdubyBhY3RpdmUgcG9pbnRlciBiZWZvcmUgYWRhcHRlciBzbW9rZSBl
dmlkZW5jZScgLUNvbmRpdGlvbiAoJG51bGwgLWVxIChHZXQtU291bEFjdGl2ZUdlbmVyYXRpb24g
LVRlc3RTZXR1cERpcmVjdG9yeSAkZml4dHVyZVNldHVwKSkNCiAgICBBc3NlcnQtVGVzdFRydWUg
LU5hbWUgJ25hdGl2ZSBtZW1vcnkgY29tcGxldGlvbiBtYXJrZXIgZXhpc3RzJyAtQ29uZGl0aW9u
IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGZpeHR1cmVTZXR1cCAnZ2VuZXJh
dGlvbnNcZy1vbmVcbmF0aXZlLW1lbW9yeS1zbmFwc2hvdC5qc29uJykpDQogICAgJG1lbW9yeU1h
cmtlciA9IFJlYWQtU291bEpzb24gLVBhdGggKEpvaW4tUGF0aCAkZml4dHVyZVNldHVwICdnZW5l
cmF0aW9uc1xnLW9uZVxuYXRpdmUtbWVtb3J5LXNuYXBzaG90Lmpzb24nKQ0KICAgIEFzc2VydC1U
ZXN0VHJ1ZSAtTmFtZSAnbmF0aXZlIG1lbW9yeSBtYXJrZXIgaGFzIGNvbXBsZXRlIFNIQS0yNTYn
IC1Db25kaXRpb24gKFtib29sXSRtZW1vcnlNYXJrZXIuY29tcGxldGUgLWFuZCBbc3RyaW5nXSRt
ZW1vcnlNYXJrZXIuc25hcHNob3RUcmVlU2hhMjU2IC1tYXRjaCAnXlswLTlhLWZdezY0fSQnKQ0K
ICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ25hdGl2ZSBtZW1vcnkgc291cmNlIGJ5dGVzIHJl
bWFpbiBwcmVzZXJ2ZWQnIC1FeHBlY3RlZCAkb3JpZ2luYWxNZW1vcnlIYXNoIC1BY3R1YWwgKEdl
dC1Tb3VsU2hhMjU2IC1QYXRoIChKb2luLVBhdGggJG1lbW9yeVBhdGggJ01FTU9SWS5tZCcpKQ0K
DQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdkYW5nZXJvdXMgQ2xhdWRlIHNldHRpbmcgcmVt
YWlucyBpbmVydCB3aGlsZSBhZGFwdGVycyBhcmUgcGVuZGluZycgLUNvbmRpdGlvbiAoKEdldC1T
b3VsU2hhMjU2IC1QYXRoICRjbGF1ZGVTZXR0aW5nc1BhdGgpIC1jZXEgJG9yaWdpbmFsQ2xhdWRl
SGFzaCkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ2Rhbmdlcm91cyBDb2RleCBzZXR0aW5n
IHJlbWFpbnMgaW5lcnQgd2hpbGUgYWRhcHRlcnMgYXJlIHBlbmRpbmcnIC1Db25kaXRpb24gKChH
ZXQtU291bFNoYTI1NiAtUGF0aCAkY29kZXhDb25maWdQYXRoKSAtY2VxICRvcmlnaW5hbENvZGV4
SGFzaCkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ3BlbmRpbmcgZmluYWxpemVyIHJlcG9y
dHMgY29uZmlnIG5vdCBhcHBsaWVkJyAtQ29uZGl0aW9uICgtbm90IFtib29sXSRmaXJzdEZpbmFs
aXplLmNvbmZpZ0FwcGxpZWQpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZmluYWxpemVy
IHByZXNlcnZlcyBDb2RleCBEQiBieXRlcycgLUV4cGVjdGVkICRvcmlnaW5hbERiSGFzaCAtQWN0
dWFsIChHZXQtU291bFNoYTI1NiAtUGF0aCAoSm9pbi1QYXRoICRjb2RleEhvbWUgJ3N0YXRlXzUu
c3FsaXRlJykpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZmluYWxpemVyIHByZXNlcnZl
cyBDb2RleCBXQUwgYnl0ZXMnIC1FeHBlY3RlZCAkb3JpZ2luYWxXYWxIYXNoIC1BY3R1YWwgKEdl
dC1Tb3VsU2hhMjU2IC1QYXRoIChKb2luLVBhdGggJGNvZGV4SG9tZSAnc3RhdGVfNS5zcWxpdGUt
d2FsJykpDQoNCiAgICAkZ2VuZXJhdGlvbk9uZSA9IEpvaW4tUGF0aCAkZml4dHVyZVNldHVwICdn
ZW5lcmF0aW9uc1xnLW9uZScNCiAgICAkcGVuZGluZ1NvdXJjZVJlc3VsdCA9ICYgJGxhdW5jaGVy
UGF0aCAtVGVzdFJvb3QgJHNvdWxSb290IC1UZXN0RW52aXJvbm1lbnQgQHt9DQogICAgQXNzZXJ0
LVRlc3RFcXVhbCAtTmFtZSAnbGF1bmNoZXIgcmVwb3J0cyBtaXNzaW5nIHBpbm5lZCBzb3VyY2Vz
IHdpdGhvdXQgbGF1bmNoaW5nJyAtRXhwZWN0ZWQgJ3BlbmRpbmctc291cmNlJyAtQWN0dWFsIChb
c3RyaW5nXSRwZW5kaW5nU291cmNlUmVzdWx0Lm1vZGUpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1O
YW1lICdwZW5kaW5nLXNvdXJjZSBwZXJmb3JtcyB6ZXJvIGFkYXB0ZXIgd3JpdGVzJyAtQ29uZGl0
aW9uIChbaW50XSRwZW5kaW5nU291cmNlUmVzdWx0LnNvdXJjZVJlc3VsdC5hZGFwdGVyV3JpdGVz
IC1lcSAwIC1hbmQgLW5vdCBbYm9vbF0kcGVuZGluZ1NvdXJjZVJlc3VsdC5hZ2VudFdpbGxMYXVu
Y2gpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdsYXVuY2hlciBhdHRlbXB0cyBhdXRvbWF0
aWMgcGlubmVkLXNvdXJjZSBwcmVwYXJhdGlvbiBvbmNlJyAtQ29uZGl0aW9uIChbYm9vbF0kcGVu
ZGluZ1NvdXJjZVJlc3VsdC5wcmVwYXJhdGlvbkF0dGVtcHRlZCkNCg0KICAgICRmYWtlQmluID0g
Sm9pbi1QYXRoICRjYXNlUm9vdCAnZmFrZS1iaW4nDQogICAgTmV3LVRlc3REaXJlY3RvcnkgLVBh
dGggJGZha2VCaW4gLVRpdGxlICdGYWtlIGxhdW5jaGVyIGJpbmFyaWVzJw0KICAgIFt2b2lkXShX
cml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRmYWtlQmluICdjbGF1ZGUuY21k
JykgLVRleHQgIkBlY2hvIG9mZmByYG5lY2hvIGhhcm1sZXNzIGZpeHR1cmUgbm90aWNlIDE+JjJg
cmBuZXhpdCAvYiAwYHJgbiIpDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRo
IChKb2luLVBhdGggJGZha2VCaW4gJ2NvZGV4LmNtZCcpIC1UZXh0ICJAZWNobyBvZmZgcmBuZWNo
byBoYXJtbGVzcyBmaXh0dXJlIG5vdGljZSAxPiYyYHJgbmV4aXQgL2IgMGByYG4iKQ0KICAgICRm
YWtlTWNwID0gQCcNCiRudWxsID0gW0NvbnNvbGVdOjpJbi5SZWFkTGluZSgpDQpbQ29uc29sZV06
Ok91dC5Xcml0ZUxpbmUoJ3sianNvbnJwYyI6IjIuMCIsImlkIjoxLCJyZXN1bHQiOnsicHJvdG9j
b2xWZXJzaW9uIjoiMjAyNC0xMS0wNSIsInNlcnZlckluZm8iOnsibmFtZSI6ImZpeHR1cmUtbWNw
IiwidmVyc2lvbiI6IjEuMCJ9LCJjYXBhYmlsaXRpZXMiOnt9fX0nKQ0KW0NvbnNvbGVdOjpPdXQu
Rmx1c2goKQ0KJG51bGwgPSBbQ29uc29sZV06OkluLlJlYWRMaW5lKCkNCiRudWxsID0gW0NvbnNv
bGVdOjpJbi5SZWFkTGluZSgpDQpbQ29uc29sZV06Ok91dC5Xcml0ZUxpbmUoJ3sianNvbnJwYyI6
IjIuMCIsImlkIjoyLCJyZXN1bHQiOnsidG9vbHMiOlt7Im5hbWUiOiJmaXh0dXJlX29uZSJ9LHsi
bmFtZSI6ImZpeHR1cmVfdHdvIn0seyJuYW1lIjoiZml4dHVyZV90aHJlZSJ9LHsibmFtZSI6ImZp
eHR1cmVfZm91ciJ9XX19JykNCltDb25zb2xlXTo6T3V0LkZsdXNoKCkNCidADQogICAgW3ZvaWRd
KFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoIChKb2luLVBhdGggJGZha2VCaW4gJ2Zha2UtbWNw
LnBzMScpIC1UZXh0ICgkZmFrZU1jcC5UcmltU3RhcnQoImByIiwgImBuIikgLXJlcGxhY2UgImBu
IiwgImByYG4iKSkNCiAgICAkZmFrZU5vZGUgPSBAJw0KQGVjaG8gb2ZmDQplY2hvICUqIHwgZmlu
ZHN0ciAvaSAvYzoiIGluaXQgIiA+bnVsDQppZiBlcnJvcmxldmVsIDEgKA0KICBwb3dlcnNoZWxs
LmV4ZSAtTm9Mb2dvIC1Ob1Byb2ZpbGUgLU5vbkludGVyYWN0aXZlIC1FeGVjdXRpb25Qb2xpY3kg
QnlwYXNzIC1GaWxlICIlfmRwMGZha2UtbWNwLnBzMSINCiAgZXhpdCAvYiAlZXJyb3JsZXZlbCUN
CikNCmVjaG8gaGFybWxlc3MgZ2VuZXJhdG9yIG5vdGljZSAxPiYyDQpta2RpciAiLmFnZW50c1xz
a2lsbHNcdWktdXgtcHJvLW1heFxkYXRhIiAyPm51bA0KbWtkaXIgIi5hZ2VudHNcc2tpbGxzXHVp
LXV4LXByby1tYXhcc2NyaXB0cyIgMj5udWwNCj4gIi5hZ2VudHNcc2tpbGxzXHVpLXV4LXByby1t
YXhcU0tJTEwubWQiIGVjaG8gLS0tDQo+PiAiLmFnZW50c1xza2lsbHNcdWktdXgtcHJvLW1heFxT
S0lMTC5tZCIgZWNobyBuYW1lOiB1aS11eC1wcm8tbWF4DQo+PiAiLmFnZW50c1xza2lsbHNcdWkt
dXgtcHJvLW1heFxTS0lMTC5tZCIgZWNobyBkZXNjcmlwdGlvbjogZ2VuZXJhdGVkIGZpeHR1cmUN
Cj4+ICIuYWdlbnRzXHNraWxsc1x1aS11eC1wcm8tbWF4XFNLSUxMLm1kIiBlY2hvIC0tLQ0KPiAi
LmFnZW50c1xza2lsbHNcdWktdXgtcHJvLW1heFxkYXRhXGZpeHR1cmUuY3N2IiBlY2hvIGZpeHR1
cmUNCj4gIi5hZ2VudHNcc2tpbGxzXHVpLXV4LXByby1tYXhcc2NyaXB0c1xzZWFyY2gucHkiIGVj
aG8gcHJpbnQoJ2ZpeHR1cmUnKQ0KZXhpdCAvYiAwDQonQA0KICAgIFt2b2lkXShXcml0ZS1Tb3Vs
VXRmOEF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRmYWtlQmluICdub2RlLmNtZCcpIC1UZXh0ICgk
ZmFrZU5vZGUuVHJpbVN0YXJ0KCJgciIsICJgbiIpIC1yZXBsYWNlICJgbiIsICJgcmBuIikpDQog
ICAgJGVudjpQQVRIID0gJGZha2VCaW4gKyBbSU8uUGF0aF06OlBhdGhTZXBhcmF0b3IgKyAkcGF0
aEJlZm9yZQ0KICAgICRzb3VyY2VQcmVwTWFya2VyID0gSm9pbi1QYXRoICRjYXNlUm9vdCAnc291
cmNlLXByZXBhcmF0aW9uLWNhbGxlZC50eHQnDQogICAgJG5ld1Rlc3RDYW5vbmljYWxTb3VyY2Vz
ID0gJHtmdW5jdGlvbjpOZXctVGVzdENhbm9uaWNhbFNvdXJjZXN9DQogICAgJHNvdXJjZVByZXBh
cmF0aW9uQWN0aW9uID0gew0KICAgICAgICAmICRuZXdUZXN0Q2Fub25pY2FsU291cmNlcyAtUm9v
dCAkc291bFJvb3QgLUxvY2tQYXRoIChKb2luLVBhdGggJGdlbmVyYXRpb25PbmUgJ3NvdXJjZS1s
b2NrLmpzb24nKQ0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJHNv
dXJjZVByZXBNYXJrZXIgLVRleHQgImNhbGxlZGByYG4iKQ0KICAgICAgICBbcHNjdXN0b21vYmpl
Y3RdQHsgbW9kZSA9ICdwcmVwYXJlZC1zb3VyY2VzJzsgYWN0aXZlUG9pbnRlckNoYW5nZWQgPSAk
ZmFsc2UgfQ0KICAgIH0uR2V0TmV3Q2xvc3VyZSgpDQoNCiAgICAkbGVnYWN5Q2xhdWRlU3RhdGVU
ZXh0ID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkY2xhdWRlU3RhdGVQYXRoKQ0KICAgICRsZWdh
Y3lDb2RleFRleHQgPSBbSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRjb2RleENvbmZpZ1BhdGgpDQog
ICAgJGFtYmlndW91c0NsYXVkZVN0YXRlVGV4dCA9ICRsZWdhY3lDbGF1ZGVTdGF0ZVRleHQuUmVw
bGFjZSgnImh3cC1hdXRvbWF0aW9uIjonLCAnIkhXUC1BVVRPTUFUSU9OIjp7InR5cGUiOiJzdGRp
byIsImNvbW1hbmQiOiJhbWJpZ3VvdXMiLCJhcmdzIjpbIngiXX0sImh3cC1hdXRvbWF0aW9uIjon
KQ0KICAgIGlmICgkYW1iaWd1b3VzQ2xhdWRlU3RhdGVUZXh0IC1jZXEgJGxlZ2FjeUNsYXVkZVN0
YXRlVGV4dCkgeyB0aHJvdyAnRml4dHVyZSBjb3VsZCBub3QgaW5qZWN0IGFuIGFtYmlndW91cyBD
bGF1ZGUgTUNQIGRlZmluaXRpb24uJyB9DQogICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWlj
IC1QYXRoICRjbGF1ZGVTdGF0ZVBhdGggLVRleHQgJGFtYmlndW91c0NsYXVkZVN0YXRlVGV4dCkN
CiAgICAkYW1iaWd1b3VzQ29kZXhUZXh0ID0gJGxlZ2FjeUNvZGV4VGV4dCArICJgcmBuW21jcF9z
ZXJ2ZXJzLkhXUC1BVVRPTUFUSU9OXWByYG5jb21tYW5kID0gJ2FtYmlndW91cydgcmBuYXJncyA9
IFsneCddYHJgbiINCiAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggJGNvZGV4
Q29uZmlnUGF0aCAtVGV4dCAkYW1iaWd1b3VzQ29kZXhUZXh0KQ0KDQogICAgJGFtYmlndW91c0Ns
YXVkZUxhdW5jaCA9ICYgJGxhdW5jaGVyUGF0aCAtQWdlbnQgY2xhdWRlIC1TY29wZVBhdGggJHNv
dWxSb290IC1OZXdTZXNzaW9uIC1UZXN0Um9vdCAkc291bFJvb3QgLVRlc3RFbnZpcm9ubWVudCBA
eyBQQVRIID0gJGVudjpQQVRIIH0gLVRlc3RQcmVwYXJlU291cmNlc0FjdGlvbiAkc291cmNlUHJl
cGFyYXRpb25BY3Rpb24NCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ2xhdW5jaGVyIGF1dG9t
YXRpY2FsbHkgaW52b2tlcyBwaW5uZWQtc291cmNlIHByZXBhcmF0aW9uJyAtQ29uZGl0aW9uIChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoICRzb3VyY2VQcmVwTWFya2VyIC1QYXRoVHlwZSBMZWFmKQ0K
ICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnYXV0b21hdGljIHByZXBhcmF0aW9uIGluY2x1ZGVz
IHRoZSBsb2NrZWQgZG9jdW1lbnQgd2hlZWxob3VzZSBhbmQgaG9zdCBydW50aW1lIGZpeHR1cmUn
IC1Db25kaXRpb24gKA0KICAgICAgICBbYm9vbF0kYW1iaWd1b3VzQ2xhdWRlTGF1bmNoLnByZXBh
cmF0aW9uQXR0ZW1wdGVkIC1hbmQNCiAgICAgICAgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggKEpv
aW4tUGF0aCAkc291bFJvb3QgJ19hZ2VudFxzaGFyZWRcdG9vbHNccHl0aG9uLXdoZWVsaG91c2Vc
ZG9jdW1lbnQtbWNwLXY3XHdoZWVsaG91c2UtcHJvb2YuanNvbicpIC1QYXRoVHlwZSBMZWFmKSAt
YW5kDQogICAgICAgIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHNvdWxSb290
ICgoJ19hZ2VudFxydW50aW1lXGhvc3RzXHswfVx2ZW52c1xkb2N1bWVudC1tY3AtdjdccnVudGlt
ZS1wcm9vZi5qc29uJyAtZiBbRW52aXJvbm1lbnRdOjpNYWNoaW5lTmFtZS5Ub0xvd2VySW52YXJp
YW50KCkpKSkgLVBhdGhUeXBlIExlYWYpDQogICAgKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFt
ZSAnYW1iaWd1b3VzIENsYXVkZSBtYW5hZ2VkIE1DUCBkZWZpbml0aW9ucyBhcmUgcmVmdXNlZCBi
ZWZvcmUgYWRhcHRlciB3cml0ZXMnIC1Db25kaXRpb24gKA0KICAgICAgICAkbnVsbCAtbmUgJGFt
YmlndW91c0NsYXVkZUxhdW5jaC5hZGFwdGVyRmFpbHVyZSAtYW5kDQogICAgICAgIFtzdHJpbmdd
JGFtYmlndW91c0NsYXVkZUxhdW5jaC5hZGFwdGVyRmFpbHVyZS5tZXNzYWdlIC1tYXRjaCAnKD9p
KWR1cGxpY2F0ZWQga2V5c3xhbWJpZ3VvdXMgZHVwbGljYXRlJyAtYW5kDQogICAgICAgIChHZXQt
U291bFNoYTI1NiAtUGF0aCAkY2xhdWRlU3RhdGVQYXRoKSAtZXEgKEdldC1UZXN0VGV4dFNoYTI1
NiAtVGV4dCAkYW1iaWd1b3VzQ2xhdWRlU3RhdGVUZXh0KQ0KICAgICkNCg0KICAgIFt2b2lkXShX
cml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkY2xhdWRlU3RhdGVQYXRoIC1UZXh0ICRsZWdhY3lD
bGF1ZGVTdGF0ZVRleHQpDQogICAgJGFtYmlndW91c0NvZGV4SGFzaCA9IEdldC1Tb3VsU2hhMjU2
IC1QYXRoICRjb2RleENvbmZpZ1BhdGgNCiAgICAkYW1iaWd1b3VzQ29kZXhPbkRpc2sgPSBbSU8u
RmlsZV06OlJlYWRBbGxUZXh0KCRjb2RleENvbmZpZ1BhdGgpDQogICAgQXNzZXJ0LVRlc3RFcXVh
bCAtTmFtZSAnQ29kZXggYW1iaWd1aXR5IGZpeHR1cmUgY29udGFpbnMgdHdvIGNhc2UtaW5zZW5z
aXRpdmUgbWFuYWdlZCBzZWN0aW9ucycgLUV4cGVjdGVkIDIgLUFjdHVhbCAoW3JlZ2V4XTo6TWF0
Y2hlcygkYW1iaWd1b3VzQ29kZXhPbkRpc2ssICcoP2ltKV5cW21jcF9zZXJ2ZXJzXC5od3AtYXV0
b21hdGlvblxdXHMqJCcpLkNvdW50KQ0KICAgICRjb2RleEFtYmlndWl0eUVycm9yID0gJG51bGwN
CiAgICAkY29kZXhBbWJpZ3VpdHlSZXN1bHQgPSAkbnVsbA0KICAgIHRyeSB7ICRjb2RleEFtYmln
dWl0eVJlc3VsdCA9ICYgJGFkYXB0ZXJQYXRoIC1HZW5lcmF0aW9uSWQgJ2ctb25lJyAtVGVzdFJv
b3QgJHNvdWxSb290IC1UZXN0Tm9MaXZlQWdlbnRzIH0NCiAgICBjYXRjaCB7ICRjb2RleEFtYmln
dWl0eUVycm9yID0gJF8gfQ0KICAgIGlmICgkbnVsbCAtZXEgJGNvZGV4QW1iaWd1aXR5RXJyb3Ip
IHsNCiAgICAgICAgV3JpdGUtSG9zdCAoJ0RJQUdOT1NUSUMgQ29kZXggYW1iaWd1aXR5IHJlc3Vs
dDogJyArICgkY29kZXhBbWJpZ3VpdHlSZXN1bHQgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggOCAt
Q29tcHJlc3MpKQ0KICAgIH0NCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ2FtYmlndW91cyBD
b2RleCBtYW5hZ2VkIE1DUCBzZWN0aW9ucyBhcmUgcmVmdXNlZCBiZWZvcmUgYWRhcHRlciB3cml0
ZXMnIC1Db25kaXRpb24gKA0KICAgICAgICAkbnVsbCAtbmUgJGNvZGV4QW1iaWd1aXR5RXJyb3Ig
LWFuZCBbc3RyaW5nXSRjb2RleEFtYmlndWl0eUVycm9yLkV4Y2VwdGlvbi5NZXNzYWdlIC1tYXRj
aCAnKD9pKWFtYmlndW91cyBkdXBsaWNhdGV8ZHVwbGljYXRlLipDb2RleCBNQ1AnDQogICAgKQ0K
ICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ0NvZGV4IGFtYmlndWl0eSByZWZ1c2FsIHByZXNl
cnZlcyBleGFjdCBjb25maWcgYnl0ZXMnIC1FeHBlY3RlZCAkYW1iaWd1b3VzQ29kZXhIYXNoIC1B
Y3R1YWwgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRjb2RleENvbmZpZ1BhdGgpDQogICAgW3ZvaWRd
KFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoICRjb2RleENvbmZpZ1BhdGggLVRleHQgJGxlZ2Fj
eUNvZGV4VGV4dCkNCg0KICAgICRhdXRvbWF0aW9uTGF1bmNoUmVzdWx0ID0gJiAkbGF1bmNoZXJQ
YXRoIC1BZ2VudCBjbGF1ZGUgLVNjb3BlUGF0aCAkc291bFJvb3QgLU5ld1Nlc3Npb24gLVRlc3RS
b290ICRzb3VsUm9vdCAtVGVzdEVudmlyb25tZW50IEB7IFBBVEggPSAkZW52OlBBVEggfSAtVGVz
dFByZXBhcmVTb3VyY2VzQWN0aW9uICRzb3VyY2VQcmVwYXJhdGlvbkFjdGlvbg0KICAgIGlmICgt
bm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGdlbmVyYXRpb25PbmUgJ2Fk
YXB0ZXItdmVyaWZpY2F0aW9uLmpzb24nKSkpIHsNCiAgICAgICAgV3JpdGUtSG9zdCAoJ0RJQUdO
T1NUSUMgbGF1bmNoZXIgcmVzdWx0OiAnICsgKCRhdXRvbWF0aW9uTGF1bmNoUmVzdWx0IHwgQ29u
dmVydFRvLUpzb24gLURlcHRoIDEyIC1Db21wcmVzcykpDQogICAgfQ0KICAgIEFzc2VydC1UZXN0
VHJ1ZSAtTmFtZSAnYWRhcHRlciBleGVjdXRvciB3cml0ZXMgZXhhY3QgdmVyaWZpY2F0aW9uIG1h
cmtlcicgLUNvbmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRnZW5l
cmF0aW9uT25lICdhZGFwdGVyLXZlcmlmaWNhdGlvbi5qc29uJykpDQogICAgJGFkYXB0ZXJWZXJp
ZmljYXRpb24gPSBSZWFkLVNvdWxKc29uIC1QYXRoIChKb2luLVBhdGggJGdlbmVyYXRpb25PbmUg
J2FkYXB0ZXItdmVyaWZpY2F0aW9uLmpzb24nKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAn
YWRhcHRlciBleGVjdXRvciBuZXZlciBtYWtlcyBhIG1vZGVsIGNhbGwnIC1Db25kaXRpb24gKFti
b29sXSRhZGFwdGVyVmVyaWZpY2F0aW9uLm5vTW9kZWxDYWxsKQ0KICAgIEFzc2VydC1UZXN0VHJ1
ZSAtTmFtZSAnYmluZGluZ3MgaG9uZXN0bHkgZGlzdGluZ3Vpc2ggc3RhdGljIGFuZCBuZXctcHJv
Y2VzcyBldmlkZW5jZScgLUNvbmRpdGlvbiAoQCgkYWRhcHRlclZlcmlmaWNhdGlvbi5iaW5kaW5n
cyB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8uc21va2VTdGF0dXMgLWluIEAoJ3N0YXRpYy1w
YXNzZWQnLCAncGFzc2VkJykgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo
W3N0cmluZ10kXy52ZXJpZmljYXRpb25UeXBlKSB9KS5Db3VudCAtZXEgQCgkYWRhcHRlclZlcmlm
aWNhdGlvbi5iaW5kaW5ncykuQ291bnQpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdNQ1Ag
cHJvdG9jb2wgYmluZGluZ3MgcmVjb3JkIG5ldy1wcm9jZXNzIGluaXRpYWxpemUgZXZpZGVuY2Un
IC1Db25kaXRpb24gKEAoJGFkYXB0ZXJWZXJpZmljYXRpb24uYmluZGluZ3MgfCBXaGVyZS1PYmpl
Y3QgeyBbc3RyaW5nXSRfLnZlcmlmaWNhdGlvblR5cGUgLW1hdGNoICdebmV3LXByb2Nlc3MtbWNw
LWluaXRpYWxpemUnIC1hbmQgW3N0cmluZ10kXy5zbW9rZVN0YXR1cyAtZXEgJ3Bhc3NlZCcgfSku
Q291bnQgLWdlIDIpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICduZXctcHJvY2VzcyBoYXJu
ZXNzIHNtb2tlIHJlY29yZHMgaXRzIGxpbWl0ZWQgdmVyaWZpY2F0aW9uIHR5cGUnIC1Db25kaXRp
b24gKEAoJGFkYXB0ZXJWZXJpZmljYXRpb24uaGFybmVzc0NvbmZpZ1Ntb2tlIHwgV2hlcmUtT2Jq
ZWN0IHsgW3N0cmluZ10kXy52ZXJpZmljYXRpb25UeXBlIC1lcSAnbmV3LXByb2Nlc3MtdmVyc2lv
bicgfSkuQ291bnQgLWVxIDIpDQogICAgJHJlcGxhY2VkTWFuYWdlZERlZmluaXRpb25zID0gQCgk
YWRhcHRlclZlcmlmaWNhdGlvbi5tYW5hZ2VkTWNwRGVmaW5pdGlvbkNoYW5nZXMgfCBXaGVyZS1P
YmplY3QgeyBbc3RyaW5nXSRfLmFjdGlvbiAtZXEgJ3JlcGxhY2VkJyB9KQ0KICAgIEFzc2VydC1U
ZXN0VHJ1ZSAtTmFtZSAnbGVnYWN5IHNhbWUtbmFtZSBtYW5hZ2VkIE1DUCBkZWZpbml0aW9ucyBh
cmUgcmVwbGFjZWQgaW4gYm90aCBoYXJuZXNzZXMnIC1Db25kaXRpb24gKA0KICAgICAgICBAKCRy
ZXBsYWNlZE1hbmFnZWREZWZpbml0aW9ucyB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8uaGFy
bmVzcyAtZXEgJ2NsYXVkZScgLWFuZCBbc3RyaW5nXSRfLm5hbWUgLWluIEAoJ2h3cC1hdXRvbWF0
aW9uJywgJ3NlbGYtaW1wcm92ZScsICdwbGF5d3JpZ2h0JykgfSkuQ291bnQgLWVxIDMgLWFuZA0K
ICAgICAgICBAKCRyZXBsYWNlZE1hbmFnZWREZWZpbml0aW9ucyB8IFdoZXJlLU9iamVjdCB7IFtz
dHJpbmddJF8uaGFybmVzcyAtZXEgJ2NvZGV4JyAtYW5kIFtzdHJpbmddJF8ubmFtZSAtaW4gQCgn
aHdwLWF1dG9tYXRpb24nLCAnc2VsZi1pbXByb3ZlJywgJ3BsYXl3cmlnaHQnKSB9KS5Db3VudCAt
ZXEgMw0KICAgICkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ21hbmFnZWQgTUNQIHJlcGxh
Y2VtZW50IGV2aWRlbmNlIHBvaW50cyB0byB2ZXJpZmllZCBmdWxsLWJ5dGUgYmFja3VwcycgLUNv
bmRpdGlvbiAoDQogICAgICAgIEAoJHJlcGxhY2VkTWFuYWdlZERlZmluaXRpb25zIHwgV2hlcmUt
T2JqZWN0IHsNCiAgICAgICAgICAgIFtzdHJpbmddJF8uYmFja3VwU2hhMjU2IC1tYXRjaCAnXlsw
LTlhLWZdezY0fSQnIC1hbmQNCiAgICAgICAgICAgIFtzdHJpbmddJF8uYmFja3VwU2hhMjU2IC1l
cSBbc3RyaW5nXSRfLm9yaWdpbmFsQ29uZmlnU2hhMjU2IC1hbmQNCiAgICAgICAgICAgIChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoIChbc3RyaW5nXSRfLmJhY2t1cFBhdGgpIC1QYXRoVHlwZSBMZWFm
KSAtYW5kDQogICAgICAgICAgICAoR2V0LVNvdWxTaGEyNTYgLVBhdGggKFtzdHJpbmddJF8uYmFj
a3VwUGF0aCkpIC1lcSBbc3RyaW5nXSRfLmJhY2t1cFNoYTI1Ng0KICAgICAgICB9KS5Db3VudCAt
ZXEgJHJlcGxhY2VkTWFuYWdlZERlZmluaXRpb25zLkNvdW50DQogICAgKQ0KICAgIEFzc2VydC1U
ZXN0VHJ1ZSAtTmFtZSAnbWlzc2luZyBkZXNrdG9wIGRvY3VtZW50IGFwcHMgcmVtYWluIHBlbmRp
bmcgY2FwYWJpbGl0aWVzIHdpdGhvdXQgYmxvY2tpbmcgYWRhcHRlcnMnIC1Db25kaXRpb24gKA0K
ICAgICAgICBAKCRhZGFwdGVyVmVyaWZpY2F0aW9uLmV4dGVybmFsQ2FwYWJpbGl0aWVzIHwgV2hl
cmUtT2JqZWN0IHsgW3N0cmluZ10kXy5pZCAtaW4gQCgnaHdwLWF1dG9tYXRpb24nLCAnZXhjZWwt
YXV0b21hdGlvbicsICd3b3JkLWF1dG9tYXRpb24nLCAncHB0LWF1dG9tYXRpb24nKSAtYW5kIFtz
dHJpbmddJF8uc3RhdHVzIC1lcSAncGVuZGluZy1jYXBhYmlsaXR5JyAtYW5kIFtib29sXSRfLnJl
YWRPbmx5RGV0ZWN0aW9uIC1hbmQgLW5vdCBbYm9vbF0kXy5jb21JbnN0YW50aWF0ZWQgfSkuQ291
bnQgLWVxIDQgLWFuZA0KICAgICAgICBAKCRhZGFwdGVyVmVyaWZpY2F0aW9uLnBlbmRpbmdDYXBh
YmlsaXRpZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlkIC1pbiBAKCdod3AtYXV0b21h
dGlvbicsICdleGNlbC1hdXRvbWF0aW9uJywgJ3dvcmQtYXV0b21hdGlvbicsICdwcHQtYXV0b21h
dGlvbicpIH0pLkNvdW50IC1lcSA0DQogICAgKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAn
UERGIGNhcGFiaWxpdHkgaXMgYXBwbGljYXRpb24taW5kZXBlbmRlbnQgYW5kIHJlYWR5JyAtQ29u
ZGl0aW9uICgNCiAgICAgICAgQCgkYWRhcHRlclZlcmlmaWNhdGlvbi5leHRlcm5hbENhcGFiaWxp
dGllcyB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8uaWQgLWVxICdwZGYtYXV0b21hdGlvbicg
LWFuZCBbc3RyaW5nXSRfLnN0YXR1cyAtZXEgJ3JlYWR5JyAtYW5kIC1ub3QgW2Jvb2xdJF8uYXBw
bGljYXRpb25SZXF1aXJlZCAtYW5kIC1ub3QgW2Jvb2xdJF8uY29tSW5zdGFudGlhdGVkIH0pLkNv
dW50IC1lcSAxDQogICAgKQ0KICAgICRhZGFwdGVyQ2xhdWRlU3RhdGUgPSBSZWFkLVNvdWxKc29u
IC1QYXRoICRjbGF1ZGVTdGF0ZVBhdGgNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdhZGFw
dGVyIGV4ZWN1dG9yIHByZXNlcnZlcyBDbGF1ZGUgcHJveHkgYmFzZSBVUkwgZXhhY3RseScgLUV4
cGVjdGVkICdodHRwOi8vMTI3LjAuMC4xOjM0NTYnIC1BY3R1YWwgKFtzdHJpbmddJGFkYXB0ZXJD
bGF1ZGVTdGF0ZS5wcm94eS5iYXNlVXJsKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ2Fk
YXB0ZXIgZXhlY3V0b3IgcHJlc2VydmVzIHVucmVsYXRlZCBDbGF1ZGUgTUNQJyAtRXhwZWN0ZWQg
J2tlZXAtdGhpcy1jb21tYW5kJyAtQWN0dWFsIChbc3RyaW5nXSRhZGFwdGVyQ2xhdWRlU3RhdGUu
bWNwU2VydmVycy4na2VlcC1leGlzdGluZycuY29tbWFuZCkNCiAgICBBc3NlcnQtVGVzdEVxdWFs
IC1OYW1lICdhZGFwdGVyIGV4ZWN1dG9yIHByZXNlcnZlcyB1bnJlbGF0ZWQgQ2xhdWRlIHN0YXRl
JyAtRXhwZWN0ZWQgJ3ByZXNlcnZlLW1lJyAtQWN0dWFsIChbc3RyaW5nXSRhZGFwdGVyQ2xhdWRl
U3RhdGUuY3VzdG9tU3RhdGUpDQogICAgJHBvc3RBZGFwdGVyQ2xhdWRlU2V0dGluZ3MgPSBSZWFk
LVNvdWxKc29uIC1QYXRoICRjbGF1ZGVTZXR0aW5nc1BhdGgNCiAgICAkc3VwZXJwb3dlcnNLZXlz
ID0gQCgkcG9zdEFkYXB0ZXJDbGF1ZGVTZXR0aW5ncy5lbmFibGVkUGx1Z2lucy5QU09iamVjdC5Q
cm9wZXJ0aWVzIHwgV2hlcmUtT2JqZWN0IHsgJF8uTmFtZSAtbWF0Y2ggJ15zdXBlcnBvd2Vyc0Bz
b3VsLXY3LXN1cGVycG93ZXJzLVswLTlhLWZdezEyfSQnIC1hbmQgW2Jvb2xdJF8uVmFsdWUgfSkN
CiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ1N1cGVycG93ZXJzIHVzZXMgb25lIGNvbnRlbnQt
YWRkcmVzc2VkIGxvY2FsIG1hcmtldHBsYWNlIGtleScgLUNvbmRpdGlvbiAoJHN1cGVycG93ZXJz
S2V5cy5Db3VudCAtZXEgMSkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ1VJIFVYIENvZGV4
IHNraWxsIGNvbWVzIGZyb20gcGlubmVkIENMSSBnZW5lcmF0aW9uJyAtQ29uZGl0aW9uIChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJGNvZGV4SG9tZSAnc2tpbGxzXHVpLXV4LXBy
by1tYXhcc2NyaXB0c1xzZWFyY2gucHknKSAtUGF0aFR5cGUgTGVhZikNCiAgICAka1NraWxsU2hp
bSA9IEpvaW4tUGF0aCAkc2hhcmVkUm9vdCAnc2hpbXNcay1za2lsbC1zb3VsLmNtZCcNCiAgICBB
c3NlcnQtVGVzdFRydWUgLU5hbWUgJ2stc2tpbGwgZXhhY3QgbG9jYWwgc2hpbSBpcyBjcmVhdGVk
IGluc2lkZSBzb3VsJyAtQ29uZGl0aW9uIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRrU2tpbGxT
aGltIC1QYXRoVHlwZSBMZWFmKQ0KICAgICRkZXJpdmVkS1NraWxsUm9vdCA9IEpvaW4tUGF0aCAk
Zml4dHVyZVNldHVwICdhZGFwdGVyc1xkZXJpdmVkLXNraWxsc1xrLXNraWxsJw0KICAgIEFzc2Vy
dC1UZXN0VHJ1ZSAtTmFtZSAnZGVyaXZlZCBrLXNraWxsIHNldCByZW1vdmVzIGZsb2F0aW5nIDAu
eCBucHggY2FsbHMnIC1Db25kaXRpb24gKEAoR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJGRl
cml2ZWRLU2tpbGxSb290IC1SZWN1cnNlIC1GaWx0ZXIgJyoubWQnIC1GaWxlIC1Gb3JjZSB8IFNl
bGVjdC1TdHJpbmcgLVBhdHRlcm4gJyg/aSlcYm5weCg/OlwuY21kKT9ccysoPzoteVxzKyk/QG5v
bWFkYW1hcy9rLXNraWxsQDAnKS5Db3VudCAtZXEgMCkNCiAgICAkYWdlbnRTdGFuZGFyZFNraWxs
Q291bnQgPSBAKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoIChKb2luLVBhdGggJHNoYXJlZFJv
b3QgJ2FnZW50LXN0YW5kYXJkLWhvbWVcc2tpbGxzJykgLURpcmVjdG9yeSAtRm9yY2UgfCBXaGVy
ZS1PYmplY3QgeyAoJF8uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZXBh
cnNlUG9pbnQpIC1uZSAwIH0pLkNvdW50DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnQWdl
bnQgU3RhbmRhcmQgaG9tZSByZXNvbHZlcyBhbGwgcGlubmVkIGstc2tpbGxzIGluc2lkZSBzb3Vs
JyAtRXhwZWN0ZWQgMTE4IC1BY3R1YWwgJGFnZW50U3RhbmRhcmRTa2lsbENvdW50DQoNCiAgICAk
YWN0aXZlTWFuaWZlc3RBZnRlckF1dG9tYXRpb24gPSBSZWFkLVNvdWxKc29uIC1QYXRoIChKb2lu
LVBhdGggJGdlbmVyYXRpb25PbmUgJ2dlbmVyYXRpb24uanNvbicpDQogICAgQXNzZXJ0LVRlc3RF
cXVhbCAtTmFtZSAndmVyaWZpZWQgYWRhcHRlcnMgcGVybWl0IGFjdGl2YXRpb24nIC1FeHBlY3Rl
ZCAnZy1vbmUnIC1BY3R1YWwgKFtzdHJpbmddKEdldC1Tb3VsQWN0aXZlR2VuZXJhdGlvbiAtVGVz
dFNldHVwRGlyZWN0b3J5ICRmaXh0dXJlU2V0dXApLmdlbmVyYXRpb25JZCkNCiAgICBBc3NlcnQt
VGVzdFRydWUgLU5hbWUgJ21hY2hpbmUtcmVhZHkgdHJ1ZSBvbmx5IGFmdGVyIGV2aWRlbmNlJyAt
Q29uZGl0aW9uIChbYm9vbF0kYWN0aXZlTWFuaWZlc3RBZnRlckF1dG9tYXRpb24ubWFjaGluZVJl
YWR5KQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ2FjdGl2ZSBwb2ludGVyIGNvbW1pdHMg
dmVyaWZpZWQgZ2VuZXJhdGlvbicgLUV4cGVjdGVkICdnLW9uZScgLUFjdHVhbCAoW3N0cmluZ10o
R2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIC1UZXN0U2V0dXBEaXJlY3RvcnkgJGZpeHR1cmVTZXR1
cCkuZ2VuZXJhdGlvbklkKQ0KICAgICRyZWFkeVNvdWxTdGF0ZSA9IFJlYWQtU291bEpzb24gLVBh
dGggKEpvaW4tUGF0aCAkc291bFJvb3QgJ3NvdWwtc3RhdGUuanNvbicpDQogICAgQXNzZXJ0LVRl
c3RFcXVhbCAtTmFtZSAncG9ydGFibGUgc3RhdGUgcmVhY2hlcyByZWFkeSB3aXRoIHRoZSB2ZXJp
ZmllZCBnZW5lcmF0aW9uJyAtRXhwZWN0ZWQgJ3JlYWR5JyAtQWN0dWFsIChbc3RyaW5nXSRyZWFk
eVNvdWxTdGF0ZS5saWZlY3ljbGUpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdwb3J0YWJs
ZSBzdGF0ZSBtYWNoaW5lUmVhZHkgYmVjb21lcyB0cnVlIG9ubHkgYXQgYWN0aXZhdGlvbicgLUNv
bmRpdGlvbiAoW2Jvb2xdJHJlYWR5U291bFN0YXRlLm1hY2hpbmVSZWFkeSkNCiAgICBBc3NlcnQt
VGVzdEVxdWFsIC1OYW1lICdwb3J0YWJsZSBib290c3RyYXAgc3RhZ2UgcmVhY2hlcyByZWFkeSBp
biB0aGUgc2FtZSBzdGF0ZSByZXBsYWNlbWVudCcgLUV4cGVjdGVkICdyZWFkeScgLUFjdHVhbCAo
W3N0cmluZ10kcmVhZHlTb3VsU3RhdGUuYm9vdHN0cmFwLnN0YWdlU3RhdHVzKQ0KICAgIEFzc2Vy
dC1UZXN0VHJ1ZSAtTmFtZSAncG9ydGFibGUgYm9vdHN0cmFwIHJlY29yZHMgYSByZWFkeSB0aW1l
c3RhbXAnIC1Db25kaXRpb24gKFtzdHJpbmddJHJlYWR5U291bFN0YXRlLmJvb3RzdHJhcC5yZWFk
eUF0IC1tYXRjaCAnXlxkezR9LVxkezJ9LVxkezJ9VCcpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAt
TmFtZSAncG9ydGFibGUgc3RhdGUgcHJlc2VydmVzIHVua25vd24gdXNlciBmaWVsZHMnIC1FeHBl
Y3RlZCAncHJlc2VydmUtbWUnIC1BY3R1YWwgKFtzdHJpbmddJHJlYWR5U291bFN0YXRlLmN1c3Rv
bVBvcnRhYmxlU3RhdGUpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAncG9ydGFibGUgcGVu
ZGluZyBjYXBhYmlsaXRpZXMgbWlycm9yIHZlcmlmaWVkIGdlbmVyYXRpb24gZXZpZGVuY2UnIC1F
eHBlY3RlZCAoQCgkYWN0aXZlTWFuaWZlc3RBZnRlckF1dG9tYXRpb24ucGVuZGluZ0NhcGFiaWxp
dGllcyB8IENvbnZlcnRUby1Kc29uIC1Db21wcmVzcyAtRGVwdGggMjApIC1qb2luICcnKSAtQWN0
dWFsIChAKCRyZWFkeVNvdWxTdGF0ZS5wZW5kaW5nQ2FwYWJpbGl0aWVzIHwgQ29udmVydFRvLUpz
b24gLUNvbXByZXNzIC1EZXB0aCAyMCkgLWpvaW4gJycpDQoNCiAgICAkbWVyZ2VkQ2xhdWRlID0g
UmVhZC1Tb3VsSnNvbiAtUGF0aCAkY2xhdWRlU2V0dGluZ3NQYXRoDQogICAgQXNzZXJ0LVRlc3RF
cXVhbCAtTmFtZSAnQ2xhdWRlIGRhbmdlcm91cyBtb2RlIG1lcmdlZCBvbmx5IGF0IGZpbmFsIHJl
YWRpbmVzcycgLUV4cGVjdGVkICdieXBhc3NQZXJtaXNzaW9ucycgLUFjdHVhbCAoW3N0cmluZ10k
bWVyZ2VkQ2xhdWRlLnBlcm1pc3Npb25zLmRlZmF1bHRNb2RlKQ0KICAgIEFzc2VydC1UZXN0VHJ1
ZSAtTmFtZSAnQ2xhdWRlIGRhbmdlcm91cyBwcm9tcHQgc2tpcCBtZXJnZWQnIC1Db25kaXRpb24g
KFtib29sXSRtZXJnZWRDbGF1ZGUuc2tpcERhbmdlcm91c01vZGVQZXJtaXNzaW9uUHJvbXB0KQ0K
ICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnQ2xhdWRlIGF1dG8tbWVtb3J5IGRpc2FibGVkIGFm
dGVyIHNuYXBzaG90JyAtQ29uZGl0aW9uICgtbm90IFtib29sXSRtZXJnZWRDbGF1ZGUuYXV0b01l
bW9yeUVuYWJsZWQpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnQ2xhdWRlIGNsZWFudXAg
cmV0ZW50aW9uIG1lcmdlZCcgLUV4cGVjdGVkIDM2NTAwIC1BY3R1YWwgKFtpbnRdJG1lcmdlZENs
YXVkZS5jbGVhbnVwUGVyaW9kRGF5cykNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdDbGF1
ZGUgcHJveHkgYmFzZSBVUkwgcHJlc2VydmVkIGV4YWN0bHknIC1FeHBlY3RlZCAnaHR0cDovLzEy
Ny4wLjAuMTozNDU2JyAtQWN0dWFsIChbc3RyaW5nXSRtZXJnZWRDbGF1ZGUuZW52LkFOVEhST1BJ
Q19CQVNFX1VSTCkNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdDbGF1ZGUgdW5rbm93biBz
ZXR0aW5nIHByZXNlcnZlZCcgLUV4cGVjdGVkICdwcmVzZXJ2ZS1tZScgLUFjdHVhbCAoW3N0cmlu
Z10kbWVyZ2VkQ2xhdWRlLmN1c3RvbVNldHRpbmcpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1l
ICdDbGF1ZGUgZXhpc3RpbmcgcGVybWlzc2lvbiBsaXN0IHByZXNlcnZlZCcgLUNvbmRpdGlvbiAo
QCgkbWVyZ2VkQ2xhdWRlLnBlcm1pc3Npb25zLmFsbG93KS5Db3VudCAtZXEgMSkNCiAgICBBc3Nl
cnQtVGVzdFRydWUgLU5hbWUgJ2RvY3VtZW50LXNraWxscyBhZGFwdGVyIGRpc2FibGVkIHdpdGhv
dXQgZGVsZXRpb24nIC1Db25kaXRpb24gKC1ub3QgW2Jvb2xdJG1lcmdlZENsYXVkZS5lbmFibGVk
UGx1Z2lucy4nZG9jdW1lbnQtc2tpbGxzQGFudGhyb3BpYy1hZ2VudC1za2lsbHMnKQ0KICAgIEFz
c2VydC1UZXN0VHJ1ZSAtTmFtZSAnZmluYWxpemVyIGRvZXMgbm90IGludmVudCBhIHN0YWxlIFN1
cGVycG93ZXJzIG1hcmtldHBsYWNlIGtleScgLUNvbmRpdGlvbiAoJG51bGwgLWVxICRtZXJnZWRD
bGF1ZGUuZW5hYmxlZFBsdWdpbnMuUFNPYmplY3QuUHJvcGVydGllc1snc3VwZXJwb3dlcnNAc3Vw
ZXJwb3dlcnMtbWFya2V0cGxhY2UnXSkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ3VucmVs
YXRlZCBDbGF1ZGUgcGx1Z2luIHByZXNlcnZlZCcgLUNvbmRpdGlvbiAoW2Jvb2xdJG1lcmdlZENs
YXVkZS5lbmFibGVkUGx1Z2lucy4na2VlcC1wbHVnaW5AZXhhbXBsZScpDQoNCiAgICAkbWVyZ2Vk
Q29kZXhUZXh0ID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkY29kZXhDb25maWdQYXRoKQ0KICAg
IEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnQ29kZXggYXBwcm92YWwgcG9saWN5IG1lcmdlZCBvbmx5
IGF0IGZpbmFsIHJlYWRpbmVzcycgLUNvbmRpdGlvbiAoJG1lcmdlZENvZGV4VGV4dCAtbWF0Y2gg
Jyg/bSleYXBwcm92YWxfcG9saWN5ID0gIm5ldmVyIlxyPyQnKQ0KICAgIEFzc2VydC1UZXN0VHJ1
ZSAtTmFtZSAnQ29kZXggZGFuZ2VyLWZ1bGwtYWNjZXNzIG1lcmdlZCcgLUNvbmRpdGlvbiAoJG1l
cmdlZENvZGV4VGV4dCAtbWF0Y2ggJyg/bSlec2FuZGJveF9tb2RlID0gImRhbmdlci1mdWxsLWFj
Y2VzcyJccj8kJykNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ0NvZGV4IHNvdWwtc3RhdGUg
cHJvamVjdCBtYXJrZXIgbWVyZ2VkJyAtQ29uZGl0aW9uICgkbWVyZ2VkQ29kZXhUZXh0IC1tYXRj
aCAnKD9tKV5wcm9qZWN0X3Jvb3RfbWFya2VycyA9IFxbInNvdWwtc3RhdGVcLmpzb24iXF1ccj8k
JykNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ0NvZGV4IGxpdmUgd2ViIHNlYXJjaCBtZXJn
ZWQnIC1Db25kaXRpb24gKCRtZXJnZWRDb2RleFRleHQgLW1hdGNoICcoP20pXndlYl9zZWFyY2gg
PSAibGl2ZSJccj8kJykNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ0NvZGV4IG1lbW9yaWVz
IGRpc2FibGVkJyAtQ29uZGl0aW9uICgkbWVyZ2VkQ29kZXhUZXh0IC1tYXRjaCAnKD9tcyleXFtm
ZWF0dXJlc1xdLio/Xm1lbW9yaWVzID0gZmFsc2Vccj8kJykNCiAgICBBc3NlcnQtVGVzdFRydWUg
LU5hbWUgJ0NvZGV4IG11bHRpLWFnZW50IGVuYWJsZWQnIC1Db25kaXRpb24gKCRtZXJnZWRDb2Rl
eFRleHQgLW1hdGNoICcoP21zKV5cW2ZlYXR1cmVzXF0uKj9ebXVsdGlfYWdlbnQgPSB0cnVlXHI/
JCcpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdDb2RleCBzaGVsbCBlbnYgaW5oZXJpdCBj
b3JlIG1lcmdlZCcgLUNvbmRpdGlvbiAoJG1lcmdlZENvZGV4VGV4dCAtbWF0Y2ggJyg/bXMpXlxb
c2hlbGxfZW52aXJvbm1lbnRfcG9saWN5XF0uKj9eaW5oZXJpdCA9ICJjb3JlIlxyPyQnKQ0KICAg
IEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnQ29kZXggZGVmYXVsdCBleGNsdWRlcyByZW1haW4gZWZm
ZWN0aXZlJyAtQ29uZGl0aW9uICgkbWVyZ2VkQ29kZXhUZXh0IC1tYXRjaCAnKD9tcyleXFtzaGVs
bF9lbnZpcm9ubWVudF9wb2xpY3lcXS4qP15pZ25vcmVfZGVmYXVsdF9leGNsdWRlcyA9IGZhbHNl
XHI/JCcpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdDb2RleCBwcm92aWRlciBiYXNlIFVS
TCBwcmVzZXJ2ZWQgZXhhY3RseScgLUNvbmRpdGlvbiAoJG1lcmdlZENvZGV4VGV4dC5Db250YWlu
cygnYmFzZV91cmwgPSAiaHR0cDovL3Byb3ZpZGVyLmludmFsaWQvdjEiJykpDQogICAgQXNzZXJ0
LVRlc3RUcnVlIC1OYW1lICdDb2RleCB1bnJlbGF0ZWQgc2hlbGwgcG9saWN5IHByZXNlcnZlZCcg
LUNvbmRpdGlvbiAoJG1lcmdlZENvZGV4VGV4dC5Db250YWlucygnaW5jbHVkZV9vbmx5ID0gWyJL
RUVQX01FIl0nKSkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ0NvZGV4IGRvY3VtZW50LXNr
aWxscyBzZXJ2ZXIgcHJlc2VydmVkIGJ1dCBkaXNhYmxlZCcgLUNvbmRpdGlvbiAoJG1lcmdlZENv
ZGV4VGV4dCAtbWF0Y2ggJyg/bXMpXlxbbWNwX3NlcnZlcnNcLmRvY3VtZW50LXNraWxscy1vbGRc
XS4qP15jb21tYW5kID0gInByZXNlcnZlLXRoaXMtY29tbWFuZCIuKj9eZW5hYmxlZCA9IGZhbHNl
XHI/JCcpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdDb2RleCB1bnJlbGF0ZWQgTUNQIHBy
ZXNlcnZlZCcgLUNvbmRpdGlvbiAoJG1lcmdlZENvZGV4VGV4dC5Db250YWlucygnY29tbWFuZCA9
ICJrZWVwLXRoaXMtc2VydmVyIicpKQ0KICAgICRsb2NrZWREb2N1bWVudFB5dGhvbiA9IFtzdHJp
bmddJGFkYXB0ZXJWZXJpZmljYXRpb24uZG9jdW1lbnRQeXRob25SdW50aW1lLnB5dGhvbkNvbW1h
bmQNCiAgICAkZG9jdW1lbnRNY3BOYW1lcyA9IEAoJ2h3cC1hdXRvbWF0aW9uJywgJ2V4Y2VsLWF1
dG9tYXRpb24nLCAncHB0LWF1dG9tYXRpb24nLCAnd29yZC1hdXRvbWF0aW9uJywgJ3BkZi1hdXRv
bWF0aW9uJykNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ2ZpdmUgQ2xhdWRlIGRvY3VtZW50
IE1DUCBkZWZpbml0aW9ucyB1c2UgdGhlIGV4YWN0IGhvc3Qtc3BlY2lmaWMgbG9ja2VkIFB5dGhv
biBjb21tYW5kJyAtQ29uZGl0aW9uICgNCiAgICAgICAgQCgkYWRhcHRlckNsYXVkZVN0YXRlLm1j
cFNlcnZlcnMuUFNPYmplY3QuUHJvcGVydGllcyB8IFdoZXJlLU9iamVjdCB7ICRfLk5hbWUgLWlu
ICRkb2N1bWVudE1jcE5hbWVzIC1hbmQgW3N0cmluZ10kXy5WYWx1ZS5jb21tYW5kIC1jZXEgJGxv
Y2tlZERvY3VtZW50UHl0aG9uIH0pLkNvdW50IC1lcSA1IC1hbmQNCiAgICAgICAgJGxvY2tlZERv
Y3VtZW50UHl0aG9uIC1tYXRjaCAnKD9pKVxcX2FnZW50XFxydW50aW1lXFxob3N0c1xcW15cXF0r
XFx2ZW52c1xcZG9jdW1lbnQtbWNwLXY3XFxTY3JpcHRzXFxweXRob25cLmV4ZSQnDQogICAgKQ0K
ICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnZml2ZSBDb2RleCBkb2N1bWVudCBNQ1AgZGVmaW5p
dGlvbnMgdXNlIHRoZSBleGFjdCBob3N0LXNwZWNpZmljIGxvY2tlZCBQeXRob24gY29tbWFuZCcg
LUNvbmRpdGlvbiAoDQogICAgICAgIEAoJGRvY3VtZW50TWNwTmFtZXMgfCBXaGVyZS1PYmplY3Qg
ew0KICAgICAgICAgICAgJG1lcmdlZENvZGV4VGV4dCAtbWF0Y2ggKCIoP21zKV5cW21jcF9zZXJ2
ZXJzXC4iICsgW3JlZ2V4XTo6RXNjYXBlKCRfKSArICJcXS4qP15jb21tYW5kID0gIiArIFtyZWdl
eF06OkVzY2FwZSgoIiciICsgJGxvY2tlZERvY3VtZW50UHl0aG9uICsgIiciKSkgKyAiXHI/JCIp
DQogICAgICAgIH0pLkNvdW50IC1lcSA1DQogICAgKQ0KDQogICAgJGJhY2t1cEZpbGVzID0gQChH
ZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAoSm9pbi1QYXRoICRnZW5lcmF0aW9uT25lICdiYWNr
dXBzJykgLUZpbGUgLUZvcmNlKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnYnl0ZSBiYWNr
dXAgY29udGFpbnMgb3JpZ2luYWwgQ2xhdWRlIHNldHRpbmdzIGhhc2gnIC1Db25kaXRpb24gKEAo
JGJhY2t1cEZpbGVzIHwgV2hlcmUtT2JqZWN0IHsgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRfLkZ1
bGxOYW1lKSAtZXEgJG9yaWdpbmFsQ2xhdWRlSGFzaCB9KS5Db3VudCAtZXEgMSkNCiAgICBBc3Nl
cnQtVGVzdFRydWUgLU5hbWUgJ2J5dGUgYmFja3VwIGNvbnRhaW5zIG9yaWdpbmFsIENvZGV4IGNv
bmZpZyBoYXNoJyAtQ29uZGl0aW9uIChAKCRiYWNrdXBGaWxlcyB8IFdoZXJlLU9iamVjdCB7IChH
ZXQtU291bFNoYTI1NiAtUGF0aCAkXy5GdWxsTmFtZSkgLWVxICRvcmlnaW5hbENvZGV4SGFzaCB9
KS5Db3VudCAtZXEgMSkNCg0KICAgICRwb3N0UmVhZHlDbGF1ZGVIYXNoID0gR2V0LVNvdWxTaGEy
NTYgLVBhdGggJGNsYXVkZVNldHRpbmdzUGF0aA0KICAgICRwb3N0UmVhZHlDb2RleEhhc2ggPSBH
ZXQtU291bFNoYTI1NiAtUGF0aCAkY29kZXhDb25maWdQYXRoDQogICAgJHBvc3RSZWFkeVNvdWxT
dGF0ZUhhc2ggPSBHZXQtU291bFNoYTI1NiAtUGF0aCAoSm9pbi1QYXRoICRzb3VsUm9vdCAnc291
bC1zdGF0ZS5qc29uJykNCiAgICBbdm9pZF0oJiAkc3RhZ2VQYXRoIC1QcmVwYXJlU3RhdGljU3Rh
Z2UgLUdlbmVyYXRpb25JZCAnZy1yb2xsYmFjaycgLVRlc3RSb290ICRzb3VsUm9vdCkNCiAgICAk
cm9sbGJhY2tQZW5kaW5nID0gJiAkZmluYWxpemVyUGF0aCAtR2VuZXJhdGlvbklkICdnLXJvbGxi
YWNrJyAtVGVzdFJvb3QgJHNvdWxSb290IC1UZXN0Tm9MaXZlQWdlbnRzDQogICAgQXNzZXJ0LVRl
c3RFcXVhbCAtTmFtZSAncm9sbGJhY2sgZml4dHVyZSBmaXJzdCB3YWl0cyB3aXRoIGRhbmdlcm91
cyBjb25maWcgaW5lcnQnIC1FeHBlY3RlZCAncGVuZGluZy1hZGFwdGVycy1hbmQtc21va2UnIC1B
Y3R1YWwgKFtzdHJpbmddJHJvbGxiYWNrUGVuZGluZy5zdGF0dXMpDQogICAgJHByZXNlbnREb2N1
bWVudEFwcGxpY2F0aW9ucyA9IEB7DQogICAgICAgICdod3AtYXV0b21hdGlvbicgPSAkdHJ1ZQ0K
ICAgICAgICAnZXhjZWwtYXV0b21hdGlvbicgPSAkdHJ1ZQ0KICAgICAgICAnd29yZC1hdXRvbWF0
aW9uJyA9ICR0cnVlDQogICAgICAgICdwcHQtYXV0b21hdGlvbicgPSAkdHJ1ZQ0KICAgIH0NCiAg
ICBbdm9pZF0oJiAkYWRhcHRlclBhdGggLUdlbmVyYXRpb25JZCAnZy1yb2xsYmFjaycgLVRlc3RS
b290ICRzb3VsUm9vdCAtVGVzdE5vTGl2ZUFnZW50cyAtVGVzdENhcGFiaWxpdHlTdGF0ZSAkcHJl
c2VudERvY3VtZW50QXBwbGljYXRpb25zKQ0KICAgICRyb2xsYmFja0FkYXB0ZXJWZXJpZmljYXRp
b24gPSBSZWFkLVNvdWxKc29uIC1QYXRoIChKb2luLVBhdGggJGZpeHR1cmVTZXR1cCAnZ2VuZXJh
dGlvbnNcZy1yb2xsYmFja1xhZGFwdGVyLXZlcmlmaWNhdGlvbi5qc29uJykNCiAgICBBc3NlcnQt
VGVzdFRydWUgLU5hbWUgJ3ByZXNlbnQgZGVza3RvcCBkb2N1bWVudCBhcHBzIGFyZSByZWNvcmRl
ZCByZWFkeSB0aHJvdWdoIGZpeHR1cmUtb25seSByZWFkLW9ubHkgY29udHJvbHMnIC1Db25kaXRp
b24gKA0KICAgICAgICBAKCRyb2xsYmFja0FkYXB0ZXJWZXJpZmljYXRpb24uZXh0ZXJuYWxDYXBh
YmlsaXRpZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlkIC1pbiBAKCdod3AtYXV0b21h
dGlvbicsICdleGNlbC1hdXRvbWF0aW9uJywgJ3dvcmQtYXV0b21hdGlvbicsICdwcHQtYXV0b21h
dGlvbicpIC1hbmQgW3N0cmluZ10kXy5zdGF0dXMgLWVxICdyZWFkeScgLWFuZCBbYm9vbF0kXy5y
ZWFkT25seURldGVjdGlvbiAtYW5kIC1ub3QgW2Jvb2xdJF8uY29tSW5zdGFudGlhdGVkIH0pLkNv
dW50IC1lcSA0IC1hbmQNCiAgICAgICAgQCgkcm9sbGJhY2tBZGFwdGVyVmVyaWZpY2F0aW9uLnBl
bmRpbmdDYXBhYmlsaXRpZXMgfCBXaGVyZS1PYmplY3QgeyBbc3RyaW5nXSRfLmlkIC1pbiBAKCdo
d3AtYXV0b21hdGlvbicsICdleGNlbC1hdXRvbWF0aW9uJywgJ3dvcmQtYXV0b21hdGlvbicsICdw
cHQtYXV0b21hdGlvbicpIH0pLkNvdW50IC1lcSAwDQogICAgKQ0KICAgIEFzc2VydC1UZXN0VGhy
b3dzIC1OYW1lICdpbmplY3RlZCBwb3N0LUNsYXVkZSBmYWlsdXJlIGlzIHJlcG9ydGVkJyAtQWN0
aW9uIHsNCiAgICAgICAgW3ZvaWRdKCYgJGZpbmFsaXplclBhdGggLUdlbmVyYXRpb25JZCAnZy1y
b2xsYmFjaycgLVRlc3RSb290ICRzb3VsUm9vdCAtVGVzdE5vTGl2ZUFnZW50cyAtVGVzdEZhaWxB
ZnRlckNsYXVkZUFwcGx5KQ0KICAgIH0NCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdyb2xs
YmFjayByZXN0b3JlcyBsYXRlc3QgQ2xhdWRlIGNvbmZpZyBieXRlcycgLUV4cGVjdGVkICRwb3N0
UmVhZHlDbGF1ZGVIYXNoIC1BY3R1YWwgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRjbGF1ZGVTZXR0
aW5nc1BhdGgpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAncm9sbGJhY2sgbGVhdmVzIENv
ZGV4IGNvbmZpZyBieXRlcyB1bmNoYW5nZWQnIC1FeHBlY3RlZCAkcG9zdFJlYWR5Q29kZXhIYXNo
IC1BY3R1YWwgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRjb2RleENvbmZpZ1BhdGgpDQogICAgQXNz
ZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZWFybHkgY29uZmlnIHJvbGxiYWNrIGxlYXZlcyBwb3J0YWJs
ZSBzdGF0ZSB1bmNoYW5nZWQnIC1FeHBlY3RlZCAkcG9zdFJlYWR5U291bFN0YXRlSGFzaCAtQWN0
dWFsIChHZXQtU291bFNoYTI1NiAtUGF0aCAoSm9pbi1QYXRoICRzb3VsUm9vdCAnc291bC1zdGF0
ZS5qc29uJykpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAncm9sbGJhY2sgbmV2ZXIgY2hh
bmdlcyBhY3RpdmUgcG9pbnRlcicgLUV4cGVjdGVkICdnLW9uZScgLUFjdHVhbCAoW3N0cmluZ10o
R2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIC1UZXN0U2V0dXBEaXJlY3RvcnkgJGZpeHR1cmVTZXR1
cCkuZ2VuZXJhdGlvbklkKQ0KDQogICAgQXNzZXJ0LVRlc3RUaHJvd3MgLU5hbWUgJ2luamVjdGVk
IHBvc3Qtc3RhdGUgZmFpbHVyZSBpcyByZXBvcnRlZCcgLUFjdGlvbiB7DQogICAgICAgIFt2b2lk
XSgmICRmaW5hbGl6ZXJQYXRoIC1HZW5lcmF0aW9uSWQgJ2ctcm9sbGJhY2snIC1UZXN0Um9vdCAk
c291bFJvb3QgLVRlc3ROb0xpdmVBZ2VudHMgLVRlc3RGYWlsQWZ0ZXJTdGF0ZUFwcGx5KQ0KICAg
IH0NCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdwb3N0LXN0YXRlIHJvbGxiYWNrIHJlc3Rv
cmVzIENsYXVkZSBjb25maWcgYnl0ZXMnIC1FeHBlY3RlZCAkcG9zdFJlYWR5Q2xhdWRlSGFzaCAt
QWN0dWFsIChHZXQtU291bFNoYTI1NiAtUGF0aCAkY2xhdWRlU2V0dGluZ3NQYXRoKQ0KICAgIEFz
c2VydC1UZXN0RXF1YWwgLU5hbWUgJ3Bvc3Qtc3RhdGUgcm9sbGJhY2sgcmVzdG9yZXMgQ29kZXgg
Y29uZmlnIGJ5dGVzJyAtRXhwZWN0ZWQgJHBvc3RSZWFkeUNvZGV4SGFzaCAtQWN0dWFsIChHZXQt
U291bFNoYTI1NiAtUGF0aCAkY29kZXhDb25maWdQYXRoKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwg
LU5hbWUgJ3Bvc3Qtc3RhdGUgcm9sbGJhY2sgcmVzdG9yZXMgcG9ydGFibGUgc3RhdGUgYnl0ZSBm
b3IgYnl0ZScgLUV4cGVjdGVkICRwb3N0UmVhZHlTb3VsU3RhdGVIYXNoIC1BY3R1YWwgKEdldC1T
b3VsU2hhMjU2IC1QYXRoIChKb2luLVBhdGggJHNvdWxSb290ICdzb3VsLXN0YXRlLmpzb24nKSkN
CiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdwb3N0LXN0YXRlIHJvbGxiYWNrIGtlZXBzIHRo
ZSBwcmV2aW91cyBhY3RpdmUgcG9pbnRlcicgLUV4cGVjdGVkICdnLW9uZScgLUFjdHVhbCAoW3N0
cmluZ10oR2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIC1UZXN0U2V0dXBEaXJlY3RvcnkgJGZpeHR1
cmVTZXR1cCkuZ2VuZXJhdGlvbklkKQ0KICAgICRyb2xsYmFja1N0YXRlQmFja3VwcyA9IEAoR2V0
LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkZml4dHVyZVNldHVwICdnZW5lcmF0
aW9uc1xnLXJvbGxiYWNrXGJhY2t1cHMnKSAtRmlsdGVyICdzb3VsLXN0YXRlLiouanNvbicgLUZp
bGUgLUZvcmNlKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAncG9ydGFibGUgc3RhdGUgcm9s
bGJhY2sgaGFzIGEgdmVyaWZpZWQgYnl0ZSBiYWNrdXAnIC1Db25kaXRpb24gKEAoJHJvbGxiYWNr
U3RhdGVCYWNrdXBzIHwgV2hlcmUtT2JqZWN0IHsgKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRfLkZ1
bGxOYW1lKSAtZXEgJHBvc3RSZWFkeVNvdWxTdGF0ZUhhc2ggfSkuQ291bnQgLWVxIDEpDQogICAg
U2V0LUdlbmVyYXRpb25UZXN0U3RhdHVzIC1GaXh0dXJlU2V0dXAgJGZpeHR1cmVTZXR1cCAtR2Vu
ZXJhdGlvbklkICdnLXJvbGxiYWNrJyAtU3RhdHVzICdmYWlsZWQtdGVzdCcNCg0KICAgICRoYW5k
b2ZmUm9vdCA9IEpvaW4tUGF0aCAkc2hhcmVkUm9vdCAnaGFuZG9mZicNCiAgICBOZXctVGVzdERp
cmVjdG9yeSAtUGF0aCAkaGFuZG9mZlJvb3QgLVRpdGxlICdGaXh0dXJlIGhhbmRvZmYgc3RhdGUn
DQogICAgJHNjb3BlUGF0aCA9IEpvaW4tUGF0aCAkc291bFJvb3QgJ1IwMS1GaXh0dXJlJw0KICAg
IE5ldy1UZXN0RGlyZWN0b3J5IC1QYXRoICRzY29wZVBhdGggLVRpdGxlICdGaXh0dXJlIHNjb3Bl
Jw0KICAgICRzY29wZUlkID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ0QnKQ0KICAgIFt2
b2lkXShXcml0ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRzY29wZVBhdGggJy5z
b3VsLXNjb3BlLmpzb24nKSAtVmFsdWUgKFtvcmRlcmVkXUB7IHNjaGVtYVZlcnNpb24gPSAxOyBz
b3VsSWQgPSAkc291bElkOyBzY29wZUlkID0gJHNjb3BlSWQgfSkpDQogICAgW3ZvaWRdKFdyaXRl
LVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGggJGhhbmRvZmZSb290ICdzY29wZS1yZWdp
c3RyeS5qc29uJykgLVZhbHVlIChbb3JkZXJlZF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0g
MQ0KICAgICAgICBzb3VsSWQgPSAkc291bElkDQogICAgICAgIGFsaWFzZXMgPSBAKFtvcmRlcmVk
XUB7IHBhdGggPSAnUjAxLUZpeHR1cmUnOyBzY29wZUlkID0gJHNjb3BlSWQgfSkNCiAgICB9KSkN
CiAgICAkc2NvcGVMZWRnZXIgPSBKb2luLVBhdGggJGhhbmRvZmZSb290ICRzY29wZUlkDQogICAg
TmV3LVRlc3REaXJlY3RvcnkgLVBhdGggJHNjb3BlTGVkZ2VyIC1UaXRsZSAnRml4dHVyZSBzY29w
ZSBsZWRnZXInDQogICAgJGNsYXVkZVNlc3Npb25JZCA9IFtndWlkXTo6TmV3R3VpZCgpLlRvU3Ry
aW5nKCdEJykNCiAgICAkY29kZXhTZXNzaW9uSWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmlu
ZygnRCcpDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29uQXRvbWljIC1QYXRoIChKb2luLVBhdGgg
JHNjb3BlTGVkZ2VyICduYXRpdmUtc2Vzc2lvbnMuanNvbicpIC1WYWx1ZSAoW29yZGVyZWRdQHsN
CiAgICAgICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgc2NvcGVJZCA9ICRzY29wZUlkDQog
ICAgICAgIGNsYXVkZSA9IFtvcmRlcmVkXUB7IHNlc3Npb25JZCA9ICRjbGF1ZGVTZXNzaW9uSWQ7
IHJlY29yZGVkQXRVdGMgPSBbRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKSB9DQogICAg
ICAgIGNvZGV4ID0gW29yZGVyZWRdQHsgc2Vzc2lvbklkID0gJGNvZGV4U2Vzc2lvbklkOyByZWNv
cmRlZEF0VXRjID0gW0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJykgfQ0KICAgIH0pKQ0K
DQogICAgJGNvZGV4TGF1bmNoID0gJiAkbGF1bmNoZXJQYXRoIC1BZ2VudCBjb2RleCAtU2NvcGVQ
YXRoICRzY29wZVBhdGggLURyeVJ1biAtVGVzdFJvb3QgJHNvdWxSb290IC1UZXN0RW52aXJvbm1l
bnQgQHt9DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnQ29kZXggbGF1bmNoZXIgdXNlcyBl
eGFjdCByZWdpc3RlcmVkIHNlc3Npb24nIC1FeHBlY3RlZCAkY29kZXhTZXNzaW9uSWQgLUFjdHVh
bCAoW3N0cmluZ10kY29kZXhMYXVuY2guZXhhY3RTZXNzaW9uSWQpDQogICAgQXNzZXJ0LVRlc3RU
cnVlIC1OYW1lICdDb2RleCByZXN1bWUgYXJndW1lbnRzIGFyZSBleGFjdCBhbmQgbmV2ZXIgLS1s
YXN0JyAtQ29uZGl0aW9uICgkY29kZXhMYXVuY2guYXJndW1lbnRzWzBdIC1lcSAncmVzdW1lJyAt
YW5kICRjb2RleExhdW5jaC5hcmd1bWVudHNbMV0gLWVxICRjb2RleFNlc3Npb25JZCAtYW5kIEAo
JGNvZGV4TGF1bmNoLmFyZ3VtZW50cyB8IFdoZXJlLU9iamVjdCB7ICRfIC1lcSAnLS1sYXN0JyB9
KS5Db3VudCAtZXEgMCkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ2xhdW5jaGVyIGhvc3Qg
VEVNUCBpcyBpbnNpZGUgZml4dHVyZSBzb3VsJyAtQ29uZGl0aW9uIChbc3RyaW5nXSRjb2RleExh
dW5jaC5jaGlsZEVudmlyb25tZW50LlRFTVAgLWxpa2UgKCRzb3VsUm9vdCArICcqJykpDQogICAg
QXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdsYXVuY2hlciBob3N0IG5wbSBjYWNoZSBpcyBpbnNpZGUg
Zml4dHVyZSBzb3VsJyAtQ29uZGl0aW9uIChbc3RyaW5nXSRjb2RleExhdW5jaC5jaGlsZEVudmly
b25tZW50Lm5wbV9jb25maWdfY2FjaGUgLWxpa2UgKCRzb3VsUm9vdCArICcqJykpDQogICAgQXNz
ZXJ0LVRlc3RUcnVlIC1OYW1lICdsYXVuY2hlciBob3N0IHBpcCBjYWNoZSBpcyBpbnNpZGUgZml4
dHVyZSBzb3VsJyAtQ29uZGl0aW9uIChbc3RyaW5nXSRjb2RleExhdW5jaC5jaGlsZEVudmlyb25t
ZW50LlBJUF9DQUNIRV9ESVIgLWxpa2UgKCRzb3VsUm9vdCArICcqJykpDQogICAgQXNzZXJ0LVRl
c3RUcnVlIC1OYW1lICdsYXVuY2hlciBQbGF5d3JpZ2h0IGNhY2hlIGlzIGluc2lkZSBmaXh0dXJl
IHNvdWwnIC1Db25kaXRpb24gKFtzdHJpbmddJGNvZGV4TGF1bmNoLmNoaWxkRW52aXJvbm1lbnQu
UExBWVdSSUdIVF9CUk9XU0VSU19QQVRIIC1saWtlICgkc291bFJvb3QgKyAnKicpKQ0KICAgIEFz
c2VydC1UZXN0VHJ1ZSAtTmFtZSAnbGF1bmNoZXIgcHJlcGVuZHMgdGhlIHBpbm5lZCBzb3VsIHNo
aW0gZGlyZWN0b3J5IHRvIGNoaWxkIFBBVEgnIC1Db25kaXRpb24gKFtzdHJpbmddJGNvZGV4TGF1
bmNoLmNoaWxkRW52aXJvbm1lbnQuUEFUSCAtbGlrZSAoKEpvaW4tUGF0aCAkc2hhcmVkUm9vdCAn
c2hpbXMnKSArICcqJykpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdsYXVuY2hlciBkb2Vz
IG5vdCB0b3VjaCBwcm94eSBlbnZpcm9ubWVudCcgLUNvbmRpdGlvbiAoLW5vdCBbYm9vbF0kY29k
ZXhMYXVuY2gucHJveHlFbnZpcm9ubWVudFRvdWNoZWQpDQoNCiAgICBBc3NlcnQtVGVzdFRocm93
cyAtTmFtZSAnbGF1bmNoZXIgYmxvY2tzIHNwbGl0LWJyYWluIGFnZW50IGhvbWUnIC1BY3Rpb24g
ew0KICAgICAgICBbdm9pZF0oJiAkbGF1bmNoZXJQYXRoIC1BZ2VudCBjbGF1ZGUgLVNjb3BlUGF0
aCAkc2NvcGVQYXRoIC1EcnlSdW4gLVRlc3RSb290ICRzb3VsUm9vdCAtVGVzdEVudmlyb25tZW50
IEB7IENMQVVERV9DT05GSUdfRElSID0gKEpvaW4tUGF0aCAkc291bFJvb3QgJ3dyb25nLWhvbWUn
KSB9KQ0KICAgIH0NCiAgICAkbWVudVBsYW4gPSAmICRsYXVuY2hlclBhdGggLU1lbnUgLURyeVJ1
biAtVGVzdFJvb3QgJHNvdWxSb290IC1UZXN0RW52aXJvbm1lbnQgQHt9DQogICAgQXNzZXJ0LVRl
c3RFcXVhbCAtTmFtZSAnbWVudSBhcHBlYXJzIG9ubHkgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3Rl
ZCcgLUV4cGVjdGVkICdtZW51LXBsYW4nIC1BY3R1YWwgKFtzdHJpbmddJG1lbnVQbGFuLm1vZGUp
DQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdtZW51IGxpc3RzIHJlZ2lzdGVyZWQgc2NvcGUn
IC1Db25kaXRpb24gKEAoJG1lbnVQbGFuLm9wdGlvbnMgfCBXaGVyZS1PYmplY3QgeyAkXy5zY29w
ZUlkIC1lcSAkc2NvcGVJZCB9KS5Db3VudCAtZXEgMSkNCg0KICAgIFt2b2lkXSgmICRsYXVuY2hl
clBhdGggLUFnZW50IGNsYXVkZSAtU2NvcGVQYXRoICRzY29wZVBhdGggLVRlc3RSb290ICRzb3Vs
Um9vdCAtVGVzdEVudmlyb25tZW50IEB7fSkNCiAgICAkbGFzdExhdW5jaFBhdGggPSBKb2luLVBh
dGggJGhhbmRvZmZSb290ICdsYXN0LWxhdW5jaC5qc29uJw0KICAgICRsYXN0TGF1bmNoID0gUmVh
ZC1Tb3VsSnNvbiAtUGF0aCAkbGFzdExhdW5jaFBhdGgNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1O
YW1lICdzdWNjZXNzZnVsIGxhdW5jaCBwbGFuIHJlY29yZHMgYWdlbnQgYXRvbWljYWxseScgLUV4
cGVjdGVkICdjbGF1ZGUnIC1BY3R1YWwgKFtzdHJpbmddJGxhc3RMYXVuY2guYWdlbnQpDQogICAg
QXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnc3VjY2Vzc2Z1bCBsYXVuY2ggcGxhbiByZWNvcmRzIHNj
b3BlJyAtRXhwZWN0ZWQgJ1IwMS1GaXh0dXJlJyAtQWN0dWFsIChbc3RyaW5nXSRsYXN0TGF1bmNo
LnNjb3BlUmVsYXRpdmVQYXRoKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ3N1Y2Nlc3Nm
dWwgbGF1bmNoIHBsYW4gcmVjb3JkcyBleGFjdCBzZXNzaW9uJyAtRXhwZWN0ZWQgJGNsYXVkZVNl
c3Npb25JZCAtQWN0dWFsIChbc3RyaW5nXSRsYXN0TGF1bmNoLmV4YWN0U2Vzc2lvbklkKQ0KDQog
ICAgJGRlZmF1bHRMYXVuY2ggPSAmICRsYXVuY2hlclBhdGggLURyeVJ1biAtVGVzdFJvb3QgJHNv
dWxSb290IC1UZXN0RW52aXJvbm1lbnQgQHt9DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAn
ZGVmYXVsdCBsYXVuY2hlciByZXN0b3JlcyBsYXN0IGFnZW50JyAtRXhwZWN0ZWQgJ2NsYXVkZScg
LUFjdHVhbCAoW3N0cmluZ10kZGVmYXVsdExhdW5jaC5hZ2VudCkNCiAgICBBc3NlcnQtVGVzdEVx
dWFsIC1OYW1lICdkZWZhdWx0IGxhdW5jaGVyIHJlc3RvcmVzIGxhc3Qgc2NvcGUnIC1FeHBlY3Rl
ZCAkc2NvcGVJZCAtQWN0dWFsIChbc3RyaW5nXSRkZWZhdWx0TGF1bmNoLnNjb3BlSWQpDQogICAg
QXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZGVmYXVsdCBsYXVuY2hlciByZXN1bWVzIGV4YWN0IGxh
c3Qgc2Vzc2lvbicgLUV4cGVjdGVkICRjbGF1ZGVTZXNzaW9uSWQgLUFjdHVhbCAoW3N0cmluZ10k
ZGVmYXVsdExhdW5jaC5leGFjdFNlc3Npb25JZCkNCg0KICAgIFt2b2lkXSgmICRzdGFnZVBhdGgg
LVByZXBhcmVTdGF0aWNTdGFnZSAtR2VuZXJhdGlvbklkICdnLXBlbmRpbmcnIC1UZXN0Um9vdCAk
c291bFJvb3QpDQogICAgJGxhc3RMYXVuY2hIYXNoQmVmb3JlUGVuZGluZyA9IEdldC1Tb3VsU2hh
MjU2IC1QYXRoICRsYXN0TGF1bmNoUGF0aA0KICAgICRwZW5kaW5nRHJ5UnVuID0gJiAkbGF1bmNo
ZXJQYXRoIC1EcnlSdW4gLVRlc3RSb290ICRzb3VsUm9vdCAtVGVzdEVudmlyb25tZW50IEB7fQ0K
ICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ3BlbmRpbmcgZ2VuZXJhdGlvbiBibG9ja3MgZHJ5
LXJ1biBsYXVuY2ggcGxhbicgLUV4cGVjdGVkICdwZW5kaW5nLWZpbmFsaXplcicgLUFjdHVhbCAo
W3N0cmluZ10kcGVuZGluZ0RyeVJ1bi5tb2RlKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAn
cGVuZGluZyBnZW5lcmF0aW9uIHJlcG9ydHMgbm8gYWdlbnQgbGF1bmNoJyAtQ29uZGl0aW9uICgt
bm90IFtib29sXSRwZW5kaW5nRHJ5UnVuLmFnZW50V2lsbExhdW5jaCkNCiAgICBbdm9pZF0oJiAk
bGF1bmNoZXJQYXRoIC1UZXN0Um9vdCAkc291bFJvb3QgLVRlc3RFbnZpcm9ubWVudCBAe30pDQog
ICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnbGF1bmNoZXIgYXV0b21hdGljYWxseSBjb21wbGV0
ZXMgdmVyaWZpZWQgcGVuZGluZyBnZW5lcmF0aW9uJyAtRXhwZWN0ZWQgJ2ctcGVuZGluZycgLUFj
dHVhbCAoW3N0cmluZ10oR2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uIC1UZXN0U2V0dXBEaXJlY3Rv
cnkgJGZpeHR1cmVTZXR1cCkuZ2VuZXJhdGlvbklkKQ0KICAgICRwZW5kaW5nTWFuaWZlc3QgPSBS
ZWFkLVNvdWxKc29uIC1QYXRoIChKb2luLVBhdGggJGZpeHR1cmVTZXR1cCAnZ2VuZXJhdGlvbnNc
Zy1wZW5kaW5nXGdlbmVyYXRpb24uanNvbicpDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdh
dXRvbWF0aWMgcGVuZGluZyBwYXRoIHJlcXVpcmVzIG1hY2hpbmUtcmVhZHkgZXZpZGVuY2UnIC1D
b25kaXRpb24gKFtib29sXSRwZW5kaW5nTWFuaWZlc3QubWFjaGluZVJlYWR5KQ0KICAgIEFzc2Vy
dC1UZXN0VHJ1ZSAtTmFtZSAnc3VjY2Vzc2Z1bCBhdXRvbWF0aWMgbGF1bmNoIHJlZnJlc2hlcyBs
YXN0LWxhdW5jaCcgLUNvbmRpdGlvbiAoKEdldC1Tb3VsU2hhMjU2IC1QYXRoICRsYXN0TGF1bmNo
UGF0aCkgLW5lICRsYXN0TGF1bmNoSGFzaEJlZm9yZVBlbmRpbmcpDQoNCiAgICAkY2Fub25pY2Fs
QWZ0ZXJFeGlzdHMgPSBUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYW5vbmljYWxQb2ludGVyUGF0
aCAtUGF0aFR5cGUgTGVhZg0KICAgICRjYW5vbmljYWxBZnRlckhhc2ggPSBpZiAoJGNhbm9uaWNh
bEFmdGVyRXhpc3RzKSB7IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRjYW5vbmljYWxQb2ludGVyUGF0
aCB9IGVsc2UgeyAkbnVsbCB9DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZml4dHVyZSBt
aWdyYXRpb24gZGlkIG5vdCBjcmVhdGUvcmVtb3ZlIHJlYWwgYWN0aXZlIHBvaW50ZXInIC1FeHBl
Y3RlZCAkY2Fub25pY2FsUG9pbnRlckV4aXN0ZWQgLUFjdHVhbCAkY2Fub25pY2FsQWZ0ZXJFeGlz
dHMNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdmaXh0dXJlIG1pZ3JhdGlvbiBkaWQgbm90
IG1vZGlmeSByZWFsIGFjdGl2ZSBwb2ludGVyJyAtRXhwZWN0ZWQgJGNhbm9uaWNhbFBvaW50ZXJI
YXNoIC1BY3R1YWwgJGNhbm9uaWNhbEFmdGVySGFzaA0KICAgIGZvcmVhY2ggKCRuYW1lIGluICRl
bnZpcm9ubWVudE5hbWVzKSB7DQogICAgICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgImxhdW5j
aGVyIHJlc3RvcmVkIHByb2Nlc3MgZW52ICRuYW1lIiAtRXhwZWN0ZWQgJGVudmlyb25tZW50QmVm
b3JlWyRuYW1lXSAtQWN0dWFsIChbRW52aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxl
KCRuYW1lLCAnUHJvY2VzcycpKQ0KICAgIH0NCg0KICAgIFdyaXRlLUhvc3QgJycNCiAgICBXcml0
ZS1Ib3N0ICJNaWdyYXRpb24gdGVzdHMgcGFzc2VkOiAkKCRzY3JpcHQ6UGFzc2VkKS4iDQp9IGNh
dGNoIHsNCiAgICAkc2NyaXB0OkZhaWxlZCsrDQogICAgV3JpdGUtSG9zdCAoIkZBSUwgICIgKyAk
Xy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICBXcml0ZS1Ib3N0ICRfLlNjcmlwdFN0YWNrVHJhY2UN
CiAgICB0aHJvdw0KfSBmaW5hbGx5IHsNCiAgICAkZW52OlBBVEggPSAkcGF0aEJlZm9yZQ0KICAg
IGZvcmVhY2ggKCRuYW1lIGluICRlbnZpcm9ubWVudE5hbWVzKSB7IFtFbnZpcm9ubWVudF06OlNl
dEVudmlyb25tZW50VmFyaWFibGUoJG5hbWUsICRlbnZpcm9ubWVudEJlZm9yZVskbmFtZV0sICdQ
cm9jZXNzJykgfQ0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYXNlUm9vdCkgew0K
ICAgICAgICAkcmVzb2x2ZWRDYXNlID0gW0lPLlBhdGhdOjpHZXRGdWxsUGF0aCgkY2FzZVJvb3Qp
LlRyaW1FbmQoJ1wnLCAnLycpDQogICAgICAgICRyZXNvbHZlZEJvdW5kYXJ5ID0gW0lPLlBhdGhd
OjpHZXRGdWxsUGF0aCgkZml4dHVyZUJvdW5kYXJ5KS5UcmltRW5kKCdcJywgJy8nKQ0KICAgICAg
ICAkcmVxdWlyZWRQcmVmaXggPSAkcmVzb2x2ZWRCb3VuZGFyeSArIFtJTy5QYXRoXTo6RGlyZWN0
b3J5U2VwYXJhdG9yQ2hhciArICdtLScNCiAgICAgICAgaWYgKC1ub3QgJHJlc29sdmVkQ2FzZS5T
dGFydHNXaXRoKCRyZXF1aXJlZFByZWZpeCwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdu
b3JlQ2FzZSkpIHsNCiAgICAgICAgICAgIHRocm93ICJSZWZ1c2luZyBjbGVhbnVwIG91dHNpZGUg
dGhlIG1pZ3JhdGlvbiBmaXh0dXJlIGJvdW5kYXJ5OiAkcmVzb2x2ZWRDYXNlIg0KICAgICAgICB9
DQogICAgICAgIFJlbW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkcmVzb2x2ZWRDYXNlIC1SZWN1cnNl
IC1Gb3JjZQ0KICAgIH0NCn0NCg0KaWYgKCRzY3JpcHQ6RmFpbGVkIC1ndCAwKSB7IGV4aXQgMSB9
DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-PortableRestore.ps1","encoding":"base64","size":4610,"runtimeSha256":"762c40506d5ce541b4645f70d7e095ecc9e94e71ea91bc1ade66dabac2b31838","normalizedSha256":"12b23e8f36ffaddcd68725f99c84a20404735adc8416915bf0f5b0d439609b92"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KW0NtZGxldEJpbmRpbmcoKV0NCnBhcmFtKCkNCg0K
U2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0DQokRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0g
J1N0b3AnDQoNCiRzZXR1cFJvb3QgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJFBTU2NyaXB0Um9vdA0K
JHNjcmlwdFBhdGggPSBKb2luLVBhdGggJHNldHVwUm9vdCAnZXhwb3J0LXJlc3RvcmUucHMxJw0K
JGZpeHR1cmVzUm9vdCA9IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdmaXh0dXJlcycNCiRjYXNl
SWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQokY2FzZVJvb3QgPSBKb2luLVBhdGgg
JGZpeHR1cmVzUm9vdCAoJ3BvcnRhYmxlLXJlc3RvcmUtJyArICRjYXNlSWQpDQokb3duZXJNYXJr
ZXIgPSBKb2luLVBhdGggJGNhc2VSb290ICcub3duZWQtcG9ydGFibGUtdGVzdCcNCiR1dGY4Tm9C
b20gPSBOZXctT2JqZWN0IFRleHQuVVRGOEVuY29kaW5nKCRmYWxzZSkNCg0KZnVuY3Rpb24gQXNz
ZXJ0LVRydWUgew0KICAgIHBhcmFtKFtzdHJpbmddJE5hbWUsIFtib29sXSRDb25kaXRpb24pDQog
ICAgaWYgKC1ub3QgJENvbmRpdGlvbikgeyB0aHJvdyAiQXNzZXJ0aW9uIGZhaWxlZDogJE5hbWUi
IH0NCiAgICBXcml0ZS1Ib3N0ICgnUEFTUyAgJyArICROYW1lKQ0KfQ0KDQpmdW5jdGlvbiBHZXQt
RnVsbFBhdGhTYWZlIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoKQ0KICAgICRmdWxsID0gW0lP
LlBhdGhdOjpHZXRGdWxsUGF0aCgkUGF0aCkNCiAgICAkcm9vdCA9IFtJTy5QYXRoXTo6R2V0UGF0
aFJvb3QoJGZ1bGwpDQogICAgaWYgKCRmdWxsLkxlbmd0aCAtZ3QgJHJvb3QuTGVuZ3RoKSB7IHJl
dHVybiAkZnVsbC5UcmltRW5kKCdcJykgfQ0KICAgIHJldHVybiAkcm9vdA0KfQ0KDQpbSU8uRGly
ZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRjYXNlUm9vdCkgfCBPdXQtTnVsbA0KW0lPLkZpbGVd
OjpXcml0ZUFsbFRleHQoJG93bmVyTWFya2VyLCAkY2FzZUlkLCAkdXRmOE5vQm9tKQ0KW0lPLkZp
bGVdOjpXcml0ZUFsbFRleHQoKEpvaW4tUGF0aCAkY2FzZVJvb3QgJ0FHRU5UUy5tZCcpLCAiIyBQ
b3J0YWJsZSByZXN0b3JlIGRpc3Bvc2FibGUgZml4dHVyZWByYG5gcmBuPCEtLSBEbyBub3QgcmVz
dGF0ZSBpbmhlcml0ZWQgQUdFTlRTLm1kIHJ1bGVzLiAtLT5gcmBuIiwgJHV0ZjhOb0JvbSkNCltJ
Ty5GaWxlXTo6V3JpdGVBbGxUZXh0KChKb2luLVBhdGggJGNhc2VSb290ICdDTEFVREUubWQnKSwg
IkBBR0VOVFMubWRgcmBuIiwgJHV0ZjhOb0JvbSkNCg0KdHJ5IHsNCiAgICBBc3NlcnQtVHJ1ZSAt
TmFtZSAnc291cmNlIHNjcmlwdCBleGlzdHMnIC1Db25kaXRpb24gKFRlc3QtUGF0aCAtTGl0ZXJh
bFBhdGggJHNjcmlwdFBhdGggLVBhdGhUeXBlIExlYWYpDQogICAgJHRva2VucyA9ICRudWxsDQog
ICAgJHBhcnNlRXJyb3JzID0gJG51bGwNCiAgICBbTWFuYWdlbWVudC5BdXRvbWF0aW9uLkxhbmd1
YWdlLlBhcnNlcl06OlBhcnNlRmlsZSgkc2NyaXB0UGF0aCwgW3JlZl0kdG9rZW5zLCBbcmVmXSRw
YXJzZUVycm9ycykgfCBPdXQtTnVsbA0KICAgIEFzc2VydC1UcnVlIC1OYW1lICdleHBvcnQtcmVz
dG9yZSBwYXJzZXMgaW4gV2luZG93cyBQb3dlclNoZWxsIHN5bnRheCcgLUNvbmRpdGlvbiAoQCgk
cGFyc2VFcnJvcnMpLkNvdW50IC1lcSAwKQ0KDQogICAgJHJlc3VsdCA9ICYgJHNjcmlwdFBhdGgg
LUFjdGlvbiBTZWxmVGVzdCAtUG9ydGFibGVUZXN0Um9vdCAkY2FzZVJvb3QNCiAgICBBc3NlcnQt
VHJ1ZSAtTmFtZSAnYmFzZSBleHBvcnQgcmVzdG9yZSBzZWxmLXRlc3QgcGFzc2VzJyAtQ29uZGl0
aW9uIChbc3RyaW5nXSRyZXN1bHQuc3RhdHVzIC1lcSAnUEFTUycpDQogICAgQXNzZXJ0LVRydWUg
LU5hbWUgJ3BvcnRhYmxlIGludGVncmF0aW9uIHJlc3VsdCBpcyBwcmVzZW50JyAtQ29uZGl0aW9u
ICgkbnVsbCAtbmUgJHJlc3VsdC5wb3J0YWJsZSkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAncG9y
dGFibGUgaW50ZWdyYXRpb24gcGFzc2VzJyAtQ29uZGl0aW9uIChbc3RyaW5nXSRyZXN1bHQucG9y
dGFibGUuc3RhdHVzIC1lcSAnUEFTUycpDQogICAgQXNzZXJ0LVRydWUgLU5hbWUgJ2FsbCBwb3J0
YWJsZSBzYWZldHkgY2FzZXMgcmFuJyAtQ29uZGl0aW9uIChAKCRyZXN1bHQucG9ydGFibGUudGVz
dHMpLkNvdW50IC1lcSAxMCkNCg0KICAgICRidW5kbGUgPSBHZXQtRnVsbFBhdGhTYWZlIChbc3Ry
aW5nXSRyZXN1bHQucG9ydGFibGUuYnVuZGxlUGF0aCkNCiAgICAkdGFyZ2V0ID0gR2V0LUZ1bGxQ
YXRoU2FmZSAoW3N0cmluZ10kcmVzdWx0LnBvcnRhYmxlLnRhcmdldFBhdGgpDQogICAgQXNzZXJ0
LVRydWUgLU5hbWUgJ2J1bmRsZSBzdGF5cyBpbnNpZGUgZGlzcG9zYWJsZSBmaXh0dXJlJyAtQ29u
ZGl0aW9uICgkYnVuZGxlLlN0YXJ0c1dpdGgoKEdldC1GdWxsUGF0aFNhZmUgJGNhc2VSb290KSAr
ICdcJywgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpDQogICAgQXNzZXJ0
LVRydWUgLU5hbWUgJ3RhcmdldCBzdGF5cyBpbnNpZGUgZGlzcG9zYWJsZSBmaXh0dXJlJyAtQ29u
ZGl0aW9uICgkdGFyZ2V0LlN0YXJ0c1dpdGgoKEdldC1GdWxsUGF0aFNhZmUgJGNhc2VSb290KSAr
ICdcJywgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2FzZSkpDQogICAgZm9yZWFj
aCAoJHJlbGF0aXZlIGluIEAoJ21hbmlmZXN0Lmpzb24nLCAnbWFuaWZlc3Quc2hhMjU2JywgJ+uz
teybkC5wczEnLCAn67O17JuQ7ZWY6riwLmNtZCcsICd0b29sc1xhZ2VcYWdlLmV4ZScsICd0b29s
c1xhZ2VcYWdlLWtleWdlbi5leGUnLCAndG9vbHNcYWdlXGFnZS1wbHVnaW4tYmF0Y2hwYXNzLmV4
ZScpKSB7DQogICAgICAgIEFzc2VydC1UcnVlIC1OYW1lICgnYnVuZGxlIGZpbGUgZXhpc3RzOiAn
ICsgJHJlbGF0aXZlKSAtQ29uZGl0aW9uIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChKb2luLVBh
dGggJGJ1bmRsZSAkcmVsYXRpdmUpIC1QYXRoVHlwZSBMZWFmKQ0KICAgIH0NCiAgICAkbWFuaWZl
c3QgPSBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggKEpvaW4tUGF0aCAkYnVuZGxlICdtYW5pZmVz
dC5qc29uJykgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICBBc3Nl
cnQtVHJ1ZSAtTmFtZSAncHVibGljIG1hbmlmZXN0IGhhcyBidW5kbGUgc2NoZW1hJyAtQ29uZGl0
aW9uIChbaW50XSRtYW5pZmVzdC5zY2hlbWFWZXJzaW9uIC1lcSAyIC1hbmQgW3N0cmluZ10kbWFu
aWZlc3QuZm9ybWF0IC1lcSAnc291bC1wb3J0YWJsZS1yZXN0b3JlLWJ1bmRsZScpDQogICAgQXNz
ZXJ0LVRydWUgLU5hbWUgJ3B1YmxpYyBtYW5pZmVzdCBleHBvc2VzIHNvdWwgaWRlbnRpdHkgYW5k
IGNpcGhlciBzaXplJyAtQ29uZGl0aW9uICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3Bh
Y2UoW3N0cmluZ10kbWFuaWZlc3Quc291bElkKSAtYW5kIFtsb25nXSRtYW5pZmVzdC5hcmNoaXZl
Lmxlbmd0aCAtZ3QgMCkNCiAgICBBc3NlcnQtVHJ1ZSAtTmFtZSAncmVzdG9yZWQgdGFyZ2V0IGtl
ZXBzIHVzZXIgZWRpdCcgLUNvbmRpdGlvbiAoKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAoSm9p
bi1QYXRoICR0YXJnZXQgJ2RhdGFcaGVsbG8udHh0JykgLVJhdyAtRW5jb2RpbmcgVVRGOCkgLWVx
ICJleGlzdGluZyB1c2VyIGVkaXRgcmBuIikNCg0KICAgIFtwc2N1c3RvbW9iamVjdF1Aew0KICAg
ICAgICBjb21wb25lbnQgPSAncG9ydGFibGUtcmVzdG9yZScNCiAgICAgICAgc3RhdHVzID0gJ1BB
U1MnDQogICAgICAgIHRlc3RzID0gQCgkcmVzdWx0LnBvcnRhYmxlLnRlc3RzKQ0KICAgICAgICBm
aXh0dXJlID0gJGNhc2VSb290DQogICAgfQ0KfQ0KY2F0Y2ggew0KICAgIFdyaXRlLUhvc3QgKCdG
QUlMICAnICsgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpDQogICAgdGhyb3cNCn0NCmZpbmFsbHkgew0K
ICAgICRjYXNlRnVsbCA9IEdldC1GdWxsUGF0aFNhZmUgJGNhc2VSb290DQogICAgJGZpeHR1cmVz
RnVsbCA9IEdldC1GdWxsUGF0aFNhZmUgJGZpeHR1cmVzUm9vdA0KICAgIGlmICgoU3BsaXQtUGF0
aCAtUGFyZW50ICRjYXNlRnVsbCkgLWVxICRmaXh0dXJlc0Z1bGwgLWFuZA0KICAgICAgICAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkb3duZXJNYXJrZXIgLVBhdGhUeXBlIExlYWYpIC1hbmQNCiAg
ICAgICAgKFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJG93bmVyTWFya2VyLCBbVGV4dC5FbmNvZGlu
Z106OlVURjgpIC1lcSAkY2FzZUlkKSkgew0KICAgICAgICBmb3JlYWNoICgkaXRlbSBpbiBAKEdl
dC1JdGVtIC1MaXRlcmFsUGF0aCAkY2FzZUZ1bGwgLUZvcmNlKSArIEAoR2V0LUNoaWxkSXRlbSAt
TGl0ZXJhbFBhdGggJGNhc2VGdWxsIC1Gb3JjZSAtUmVjdXJzZSAtRXJyb3JBY3Rpb24gU3RvcCkp
IHsNCiAgICAgICAgICAgIGlmICgoJGl0ZW0uQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJp
YnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICdGaXh0dXJlIGNsZWFudXAgcmVm
dXNlZCBhIHJlbWFpbmluZyByZXBhcnNlIHBvaW50LicgfQ0KICAgICAgICB9DQogICAgICAgIFtJ
Ty5EaXJlY3RvcnldOjpEZWxldGUoJGNhc2VGdWxsLCAkdHJ1ZSkNCiAgICB9DQp9DQo=
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-SecureRootV7.ps1","encoding":"base64","size":13767,"runtimeSha256":"c61333a64c5d08ff0893b198f08e93063b1f815cb16694f303fde09754405ea4","normalizedSha256":"5f03488bc45459ba30ab701d5dc58b7e1ba158282b2e44b8e3cd2b8c72dc23f0"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJHNjcmlwdDpQYXNzZWQgPSAwDQokc2NyaXB0OkZhaWxlZCA9IDANCiRzY3Jp
cHQ6U2tpcHBlZCA9IDANCiRzY3JpcHQ6VXRmOE5vQm9tID0gTmV3LU9iamVjdCBTeXN0ZW0uVGV4
dC5VVEY4RW5jb2RpbmcoJGZhbHNlKQ0KJHNldHVwRGlyZWN0b3J5ID0gW1N5c3RlbS5JTy5EaXJl
Y3RvcnldOjpHZXRQYXJlbnQoJFBTU2NyaXB0Um9vdCkuRnVsbE5hbWUNCiRzZWN1cmVSb290U2Ny
aXB0ID0gSm9pbi1QYXRoICRzZXR1cERpcmVjdG9yeSAnc2VjdXJlLXJvb3QtdjcucHMxJw0KJG5v
bmNlID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKQ0KJGZpeHR1cmVCb3VuZGFyeSA9
IEpvaW4tUGF0aCAkUFNTY3JpcHRSb290ICdmaXh0dXJlcycNCiRjYXNlTmFtZSA9ICdzZWN1cmUt
cm9vdC0nICsgW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKQ0KJGNhc2VSb290ID0gSm9p
bi1QYXRoICRmaXh0dXJlQm91bmRhcnkgJGNhc2VOYW1lDQoNCmZ1bmN0aW9uIEFzc2VydC1UZXN0
VHJ1ZSB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJE5hbWUsIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5KV1bYm9vbF0kQ29uZGl0aW9uKQ0KICAgIGlmICgtbm90ICRDb25k
aXRpb24pIHsNCiAgICAgICAgJHNjcmlwdDpGYWlsZWQrKw0KICAgICAgICB0aHJvdyAiRkFJTEVE
OiAkTmFtZSINCiAgICB9DQogICAgJHNjcmlwdDpQYXNzZWQrKw0KICAgIFdyaXRlLUhvc3QgIlBB
U1MgICROYW1lIg0KfQ0KDQpmdW5jdGlvbiBBc3NlcnQtVGVzdEVxdWFsIHsNCiAgICBwYXJhbShb
UGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kTmFtZSwgJEV4cGVjdGVkLCAkQWN0dWFsKQ0K
ICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAkTmFtZSAtQ29uZGl0aW9uIChbb2JqZWN0XTo6RXF1
YWxzKCRFeHBlY3RlZCwgJEFjdHVhbCkpDQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1UZXN0VGhyb3dz
IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kTmFtZSwgW1BhcmFt
ZXRlcihNYW5kYXRvcnkpXVtzY3JpcHRibG9ja10kQWN0aW9uKQ0KICAgICR0aHJldyA9ICRmYWxz
ZQ0KICAgIHRyeSB7ICYgJEFjdGlvbiB9IGNhdGNoIHsgJHRocmV3ID0gJHRydWUgfQ0KICAgIEFz
c2VydC1UZXN0VHJ1ZSAtTmFtZSAkTmFtZSAtQ29uZGl0aW9uICR0aHJldw0KfQ0KDQpmdW5jdGlv
biBXcml0ZS1GaXh0dXJlVXRmOCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtz
dHJpbmddJFBhdGgsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bQWxsb3dFbXB0eVN0cmluZygpXVtz
dHJpbmddJFRleHQpDQogICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCRQYXRoLCAk
VGV4dCwgJHNjcmlwdDpVdGY4Tm9Cb20pDQp9DQoNCmZ1bmN0aW9uIEluaXRpYWxpemUtRml4dHVy
ZURpcmVjdG9yeSB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFBh
dGgsIFtQYXJhbWV0ZXIoTWFuZGF0b3J5KV1bc3RyaW5nXSRUaXRsZSkNCiAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCkpIHsgW3ZvaWRdW1N5c3RlbS5JTy5EaXJlY3Rv
cnldOjpDcmVhdGVEaXJlY3RvcnkoJFBhdGgpIH0NCiAgICBXcml0ZS1GaXh0dXJlVXRmOCAtUGF0
aCAoSm9pbi1QYXRoICRQYXRoICdBR0VOVFMubWQnKSAtVGV4dCAiIyAkVGl0bGVgcmBuYHJgbkRp
c3Bvc2FibGUgc2VjdXJlLXJvb3QtdjcgdGVzdCBtYXRlcmlhbCBvbmx5LmByYG5gcmBuPCEtLSBE
byBub3QgcmVzdGF0ZSBpbmhlcml0ZWQgQUdFTlRTLm1kIHJ1bGVzLiAtLT5gcmBuIg0KICAgIFdy
aXRlLUZpeHR1cmVVdGY4IC1QYXRoIChKb2luLVBhdGggJFBhdGggJ0NMQVVERS5tZCcpIC1UZXh0
ICJAQUdFTlRTLm1kYHJgbiINCn0NCg0KZnVuY3Rpb24gR2V0LURhY2xTZGRsRm9yVGVzdCB7DQog
ICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkpXVtzdHJpbmddJFBhdGgpDQogICAgJHJhdyA9
IE5ldy1PYmplY3QgU3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuUmF3U2VjdXJpdHlEZXNj
cmlwdG9yKFtzdHJpbmddKEdldC1BY2wgLUxpdGVyYWxQYXRoICRQYXRoIC1FcnJvckFjdGlvbiBT
dG9wKS5TZGRsKQ0KICAgIHJldHVybiAkcmF3LkdldFNkZGxGb3JtKFtTeXN0ZW0uU2VjdXJpdHku
QWNjZXNzQ29udHJvbC5BY2Nlc3NDb250cm9sU2VjdGlvbnNdOjpBY2Nlc3MpDQp9DQoNCmZ1bmN0
aW9uIEdldC1BY2Nlc3NSdWxlU2lkcyB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkp
XVtzdHJpbmddJFBhdGgpDQogICAgJGFjbCA9IEdldC1BY2wgLUxpdGVyYWxQYXRoICRQYXRoIC1F
cnJvckFjdGlvbiBTdG9wDQogICAgcmV0dXJuIEAoJGFjbC5HZXRBY2Nlc3NSdWxlcygkdHJ1ZSwg
JHRydWUsIFtTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsLlNlY3VyaXR5SWRlbnRpZmllcl0pIHwg
Rm9yRWFjaC1PYmplY3Qgew0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgICAg
IHNpZCA9IFtzdHJpbmddJF8uSWRlbnRpdHlSZWZlcmVuY2UuVmFsdWUNCiAgICAgICAgICAgIHR5
cGUgPSAkXy5BY2Nlc3NDb250cm9sVHlwZS5Ub1N0cmluZygpDQogICAgICAgICAgICByaWdodHMg
PSBbaW50NjRdJF8uRmlsZVN5c3RlbVJpZ2h0cw0KICAgICAgICAgICAgaW5oZXJpdGVkID0gW2Jv
b2xdJF8uSXNJbmhlcml0ZWQNCiAgICAgICAgfQ0KICAgIH0pDQp9DQoNCmZ1bmN0aW9uIEdldC1T
aGEyNTZGb3JUZXN0IHsNCiAgICBwYXJhbShbUGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10k
UGF0aCkNCiAgICByZXR1cm4gKEdldC1GaWxlSGFzaCAtTGl0ZXJhbFBhdGggJFBhdGggLUFsZ29y
aXRobSBTSEEyNTYgLUVycm9yQWN0aW9uIFN0b3ApLkhhc2guVG9Mb3dlckludmFyaWFudCgpDQp9
DQoNCmZ1bmN0aW9uIEFzc2VydC1WZXJpZmllZEZpeHR1cmVUYXJnZXQgew0KICAgICRmdWxsID0g
W1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgoJGNhc2VSb290KS5UcmltRW5kKCdcJywgJy8n
KQ0KICAgICRib3VuZGFyeSA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRmaXh0dXJl
Qm91bmRhcnkpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgaWYgKC1ub3QgKFNwbGl0LVBhdGggLVBh
cmVudCAkZnVsbCkuRXF1YWxzKCRib3VuZGFyeSwgW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFs
SWdub3JlQ2FzZSkgLW9yDQogICAgICAgIFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRm
dWxsKSAtbm90bWF0Y2ggJ15zZWN1cmUtcm9vdC1bMC05YS1mXXszMn0kJykgew0KICAgICAgICB0
aHJvdyAiVW5zYWZlIGZpeHR1cmUgY2xlYW51cCB0YXJnZXQ6ICRmdWxsIg0KICAgIH0NCiAgICAk
aXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkZnVsbCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0
b3ANCiAgICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmli
dXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgJ0ZpeHR1cmUgcm9vdCBiZWNhbWUg
YSByZXBhcnNlIHBvaW50LicgfQ0KICAgICRtYXJrZXJQYXRoID0gSm9pbi1QYXRoICRmdWxsICdz
b3VsLXRlc3QtZml4dHVyZS5qc29uJw0KICAgICRtYXJrZXIgPSBbU3lzdGVtLklPLkZpbGVdOjpS
ZWFkQWxsVGV4dCgkbWFya2VyUGF0aCwgJHNjcmlwdDpVdGY4Tm9Cb20pIHwgQ29udmVydEZyb20t
SnNvbiAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmIChbc3RyaW5nXSRtYXJrZXIucHVycG9zZSAt
Y25lICdzZWN1cmUtcm9vdC12Ny1kaXNwb3NhYmxlLWZpeHR1cmUnIC1vcg0KICAgICAgICAtbm90
IChbc3RyaW5nXSRtYXJrZXIubm9uY2UpLkVxdWFscygkbm9uY2UsIFtTdHJpbmdDb21wYXJpc29u
XTo6T3JkaW5hbCkpIHsNCiAgICAgICAgdGhyb3cgJ0ZpeHR1cmUgY2xlYW51cCBtYXJrZXIgZG9l
cyBub3QgbWF0Y2ggdGhpcyB0ZXN0IHByb2Nlc3MuJw0KICAgIH0NCiAgICByZXR1cm4gJGZ1bGwN
Cn0NCg0KaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHNlY3VyZVJvb3RTY3JpcHQg
LVBhdGhUeXBlIExlYWYpKSB7DQogICAgdGhyb3cgIlNjcmlwdCB1bmRlciB0ZXN0IG5vdCBmb3Vu
ZDogJHNlY3VyZVJvb3RTY3JpcHQiDQp9DQppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0
aCAkZml4dHVyZUJvdW5kYXJ5IC1QYXRoVHlwZSBDb250YWluZXIpKSB7IHRocm93ICJGaXh0dXJl
IGJvdW5kYXJ5IGlzIG1pc3Npbmc6ICRmaXh0dXJlQm91bmRhcnkiIH0NCmlmIChUZXN0LVBhdGgg
LUxpdGVyYWxQYXRoICRjYXNlUm9vdCkgeyB0aHJvdyAiVW5pcXVlIGZpeHR1cmUgcGF0aCBhbHJl
YWR5IGV4aXN0czogJGNhc2VSb290IiB9DQoNCnRyeSB7DQogICAgIyBGaXh0dXJlTW9kZSBrZWVw
cyBldmVyeSB0ZXN0IHdyaXRlIGluc2lkZSBzZXR1cC90ZXN0cy9maXh0dXJlcyB3aGlsZSB0aGUN
CiAgICAjIHByb2R1Y3Rpb24gcGF0aCBzdGlsbCByZXF1aXJlcyBhIHJlYWwgaW5pdGlhbGl6ZWQg
QzpcIGRpcmVjdCBjaGlsZC4NCiAgICBJbml0aWFsaXplLUZpeHR1cmVEaXJlY3RvcnkgLVBhdGgg
JGNhc2VSb290IC1UaXRsZSAnRGlzcG9zYWJsZSBBQ0wgZml4dHVyZSByb290Jw0KICAgICRhZ2Vu
dFBhdGggPSBKb2luLVBhdGggJGNhc2VSb290ICdfYWdlbnQnDQogICAgSW5pdGlhbGl6ZS1GaXh0
dXJlRGlyZWN0b3J5IC1QYXRoICRhZ2VudFBhdGggLVRpdGxlICdEaXNwb3NhYmxlIGZpeHR1cmUg
YWdlbnQgc3RhdGUnDQogICAgJGZpeHR1cmVTZXR1cFBhdGggPSBKb2luLVBhdGggJGFnZW50UGF0
aCAnc2V0dXAnDQogICAgSW5pdGlhbGl6ZS1GaXh0dXJlRGlyZWN0b3J5IC1QYXRoICRmaXh0dXJl
U2V0dXBQYXRoIC1UaXRsZSAnRGlzcG9zYWJsZSBmaXh0dXJlIHNldHVwIHN0YXRlJw0KICAgICRk
YXRhUGF0aCA9IEpvaW4tUGF0aCAkY2FzZVJvb3QgJ2RhdGEnDQogICAgSW5pdGlhbGl6ZS1GaXh0
dXJlRGlyZWN0b3J5IC1QYXRoICRkYXRhUGF0aCAtVGl0bGUgJ0Rpc3Bvc2FibGUgZml4dHVyZSBw
YXlsb2FkJw0KICAgICRwYXlsb2FkUGF0aCA9IEpvaW4tUGF0aCAkZGF0YVBhdGggJ3BheWxvYWQu
dHh0Jw0KICAgIFdyaXRlLUZpeHR1cmVVdGY4IC1QYXRoICRwYXlsb2FkUGF0aCAtVGV4dCAnZml4
dHVyZSBwYXlsb2FkJw0KICAgIFdyaXRlLUZpeHR1cmVVdGY4IC1QYXRoIChKb2luLVBhdGggJGNh
c2VSb290ICdzb3VsLXRlc3QtZml4dHVyZS5qc29uJykgLVRleHQgKChbb3JkZXJlZF1Aew0KICAg
ICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICBwdXJwb3NlID0gJ3NlY3VyZS1yb290LXY3
LWRpc3Bvc2FibGUtZml4dHVyZScNCiAgICAgICAgbm9uY2UgPSAkbm9uY2UNCiAgICB9IHwgQ29u
dmVydFRvLUpzb24gLURlcHRoIDQpICsgW0Vudmlyb25tZW50XTo6TmV3TGluZSkNCg0KICAgICRv
cmlnaW5hbFJvb3REYWNsID0gR2V0LURhY2xTZGRsRm9yVGVzdCAtUGF0aCAkY2FzZVJvb3QNCiAg
ICAkb3JpZ2luYWxQYXlsb2FkRGFjbCA9IEdldC1EYWNsU2RkbEZvclRlc3QgLVBhdGggJHBheWxv
YWRQYXRoDQogICAgJHBsYW4gPSBAKCYgJHNlY3VyZVJvb3RTY3JpcHQgLVNvdWxSb290ICRjYXNl
Um9vdCAtRml4dHVyZU1vZGUgLUZpeHR1cmVOb25jZSAkbm9uY2UpIHwgU2VsZWN0LU9iamVjdCAt
TGFzdCAxDQogICAgaWYgKFtzdHJpbmddJHBsYW4uc3RhdHVzIC1uZSAncmVhZHknKSB7IFdyaXRl
LUhvc3QgKCdESUFHTk9TVElDIHNlY3VyZS1yb290IHBsYW46ICcgKyAoJHBsYW4gfCBDb252ZXJ0
VG8tSnNvbiAtRGVwdGggMTIgLUNvbXByZXNzKSkgfQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5h
bWUgJ2RlZmF1bHQgaW52b2NhdGlvbiBpcyBQbGFuT25seScgLUV4cGVjdGVkICdQbGFuT25seScg
LUFjdHVhbCAoW3N0cmluZ10kcGxhbi5tb2RlKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUg
J2ZyZXNoIGluaGVyaXRlZCBmaXh0dXJlIGlzIHJlYWR5JyAtRXhwZWN0ZWQgJ3JlYWR5JyAtQWN0
dWFsIChbc3RyaW5nXSRwbGFuLnN0YXR1cykNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdm
cmVzaCBwbGFuIGhhcyBubyB1bmtub3duIGN1c3RvbSBBQ0UnIC1FeHBlY3RlZCAwIC1BY3R1YWwg
KFtpbnRdJHBsYW4ucGVuZGluZ0FjZUNvdW50KQ0KDQogICAgJGFwcGxpZWQgPSBAKCYgJHNlY3Vy
ZVJvb3RTY3JpcHQgLVNvdWxSb290ICRjYXNlUm9vdCAtQXBwbHlQcml2YXRlQWNsIC1GaXh0dXJl
TW9kZSAtRml4dHVyZU5vbmNlICRub25jZSkgfCBTZWxlY3QtT2JqZWN0IC1MYXN0IDENCiAgICBB
c3NlcnQtVGVzdEVxdWFsIC1OYW1lICdleHBsaWNpdCBhcHBseSBjaGFuZ2VzIHRoZSBmaXh0dXJl
IEFDTCcgLUV4cGVjdGVkICdhcHBsaWVkJyAtQWN0dWFsIChbc3RyaW5nXSRhcHBsaWVkLnN0YXR1
cykNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ3Jvb3QgaW5oZXJpdGFuY2UgaXMgcHJvdGVj
dGVkIGFmdGVyIGFwcGx5JyAtQ29uZGl0aW9uIChbYm9vbF0oR2V0LUFjbCAtTGl0ZXJhbFBhdGgg
JGNhc2VSb290KS5BcmVBY2Nlc3NSdWxlc1Byb3RlY3RlZCkNCiAgICBBc3NlcnQtVGVzdFRydWUg
LU5hbWUgJ1NEREwgYmFja3VwIGV4aXN0cycgLUNvbmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFs
UGF0aCAoW3N0cmluZ10kYXBwbGllZC5iYWNrdXBTZGRsUGF0aCkgLVBhdGhUeXBlIExlYWYpDQog
ICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdyZWNvdmVyeSBqb3VybmFsIGV4aXN0cycgLUNvbmRp
dGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAoW3N0cmluZ10kYXBwbGllZC5yZWNvdmVyeUpv
dXJuYWxQYXRoKSAtUGF0aFR5cGUgTGVhZikNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdT
RERMIGJhY2t1cCBTSEEtMjU2IHZlcmlmaWVzJyAtRXhwZWN0ZWQgKFtzdHJpbmddJGFwcGxpZWQu
YmFja3VwU2RkbFNoYTI1NikgLUFjdHVhbCAoR2V0LVNoYTI1NkZvclRlc3QgLVBhdGggKFtzdHJp
bmddJGFwcGxpZWQuYmFja3VwU2RkbFBhdGgpKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUg
J2pvdXJuYWwgU0hBLTI1NiB2ZXJpZmllcycgLUV4cGVjdGVkIChbc3RyaW5nXSRhcHBsaWVkLnJl
Y292ZXJ5Sm91cm5hbFNoYTI1NikgLUFjdHVhbCAoR2V0LVNoYTI1NkZvclRlc3QgLVBhdGggKFtz
dHJpbmddJGFwcGxpZWQucmVjb3ZlcnlKb3VybmFsUGF0aCkpDQoNCiAgICAkY3VycmVudFNpZCA9
IFtTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsLldpbmRvd3NJZGVudGl0eV06OkdldEN1cnJlbnQo
KS5Vc2VyLlZhbHVlDQogICAgJGV4cGVjdGVkU2lkcyA9IEAoJGN1cnJlbnRTaWQsICdTLTEtNS0x
OCcsICdTLTEtNS0zMi01NDQnKSB8IFNlbGVjdC1PYmplY3QgLVVuaXF1ZQ0KICAgICRyb290UnVs
ZXMgPSBAKEdldC1BY2Nlc3NSdWxlU2lkcyAtUGF0aCAkY2FzZVJvb3QpDQogICAgZm9yZWFjaCAo
JHNpZCBpbiAkZXhwZWN0ZWRTaWRzKSB7DQogICAgICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAi
cHJpdmF0ZSByb290IGNvbnRhaW5zIEZ1bGxDb250cm9sIGZvciAkc2lkIiAtQ29uZGl0aW9uIChA
KCRyb290UnVsZXMgfCBXaGVyZS1PYmplY3Qgew0KICAgICAgICAgICAgJF8uc2lkIC1lcSAkc2lk
IC1hbmQgJF8udHlwZSAtZXEgJ0FsbG93JyAtYW5kICgoJF8ucmlnaHRzIC1iYW5kIFtpbnQ2NF1b
U3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wuRmlsZVN5c3RlbVJpZ2h0c106OkZ1bGxDb250
cm9sKSAtZXEgW2ludDY0XVtTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5GaWxlU3lzdGVt
UmlnaHRzXTo6RnVsbENvbnRyb2wpDQogICAgICAgIH0pLkNvdW50IC1nZSAxKQ0KICAgIH0NCiAg
ICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ2Jyb2FkIFVzZXJzIGFuZCBBdXRoZW50aWNhdGVkIFVz
ZXJzIGFyZSBhYnNlbnQgYWZ0ZXIgYXBwbHknIC1Db25kaXRpb24gKEAoJHJvb3RSdWxlcyB8IFdo
ZXJlLU9iamVjdCB7DQogICAgICAgICRfLnNpZCAtaW4gQCgnUy0xLTUtMzItNTQ1JywgJ1MtMS01
LTExJykNCiAgICB9KS5Db3VudCAtZXEgMCkNCiAgICAkcGF5bG9hZFJ1bGVzID0gQChHZXQtQWNj
ZXNzUnVsZVNpZHMgLVBhdGggJHBheWxvYWRQYXRoKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFt
ZSAnZXhpc3RpbmcgY2hpbGQgbm8gbG9uZ2VyIGluaGVyaXRzIGJyb2FkIHdyaXRlL3JlYWQgQUNF
cycgLUNvbmRpdGlvbiAoQCgkcGF5bG9hZFJ1bGVzIHwgV2hlcmUtT2JqZWN0IHsNCiAgICAgICAg
JF8uc2lkIC1pbiBAKCdTLTEtNS0zMi01NDUnLCAnUy0xLTUtMTEnKQ0KICAgIH0pLkNvdW50IC1l
cSAwKQ0KDQogICAgJHJlc3RvcmVkID0gQCgmICRzZWN1cmVSb290U2NyaXB0IC1Tb3VsUm9vdCAk
Y2FzZVJvb3QgLVJlc3RvcmVGcm9tSm91cm5hbCAoW3N0cmluZ10kYXBwbGllZC5yZWNvdmVyeUpv
dXJuYWxQYXRoKSAtRml4dHVyZU1vZGUgLUZpeHR1cmVOb25jZSAkbm9uY2UpIHwgU2VsZWN0LU9i
amVjdCAtTGFzdCAxDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnam91cm5hbCByZXN0b3Jl
IGNvbXBsZXRlcycgLUV4cGVjdGVkICdyZXN0b3JlZCcgLUFjdHVhbCAoW3N0cmluZ10kcmVzdG9y
ZWQuc3RhdHVzKQ0KICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ3Jvb3QgREFDTCByb3VuZHRy
aXBzIGV4YWN0bHknIC1FeHBlY3RlZCAkb3JpZ2luYWxSb290RGFjbCAtQWN0dWFsIChHZXQtRGFj
bFNkZGxGb3JUZXN0IC1QYXRoICRjYXNlUm9vdCkNCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1l
ICdyZXByZXNlbnRhdGl2ZSBjaGlsZCBEQUNMIHJvdW5kdHJpcHMgZXhhY3RseScgLUV4cGVjdGVk
ICRvcmlnaW5hbFBheWxvYWREYWNsIC1BY3R1YWwgKEdldC1EYWNsU2RkbEZvclRlc3QgLVBhdGgg
JHBheWxvYWRQYXRoKQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnaW1tdXRhYmxlIFNEREwg
YmFja3VwIHN1cnZpdmVzIHJlc3RvcmUnIC1Db25kaXRpb24gKFRlc3QtUGF0aCAtTGl0ZXJhbFBh
dGggKFtzdHJpbmddJGFwcGxpZWQuYmFja3VwU2RkbFBhdGgpIC1QYXRoVHlwZSBMZWFmKQ0KICAg
IEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ3ByZXNlcnZlZCBTRERMIGJhY2t1cCBoYXNoIHN1cnZp
dmVzIHJlc3RvcmUnIC1FeHBlY3RlZCAoW3N0cmluZ10kYXBwbGllZC5iYWNrdXBTZGRsU2hhMjU2
KSAtQWN0dWFsIChHZXQtU2hhMjU2Rm9yVGVzdCAtUGF0aCAoW3N0cmluZ10kYXBwbGllZC5iYWNr
dXBTZGRsUGF0aCkpDQoNCiAgICAjIEFkZCBhbiBleHBsaWNpdCBjdXN0b20gc2hhcmluZyBpZGVu
dGl0eSB0byBhIGNoaWxkLiBUaGUgcGxhbm5lciBtdXN0IHJlcG9ydA0KICAgICMgaXQgYW5kIEFw
cGx5IG11c3QgbGVhdmUgdGhlIGJ5dGUtZm9yLWJ5dGUgQUNMIHN0YXRlIHVudG91Y2hlZC4NCiAg
ICAkdW5rbm93blNpZFRleHQgPSAnUy0xLTUtMjEtMTExMTExMTExLTIyMjIyMjIyMi0zMzMzMzMz
MzMtNDQ0NCcNCiAgICAkdW5rbm93blNpZCA9IE5ldy1PYmplY3QgU3lzdGVtLlNlY3VyaXR5LlBy
aW5jaXBhbC5TZWN1cml0eUlkZW50aWZpZXIoJHVua25vd25TaWRUZXh0KQ0KICAgICRjdXN0b21S
dWxlID0gTmV3LU9iamVjdCBTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5GaWxlU3lzdGVt
QWNjZXNzUnVsZSgNCiAgICAgICAgJHVua25vd25TaWQsDQogICAgICAgIFtTeXN0ZW0uU2VjdXJp
dHkuQWNjZXNzQ29udHJvbC5GaWxlU3lzdGVtUmlnaHRzXTo6UmVhZEFuZEV4ZWN1dGUsDQogICAg
ICAgIFtTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5BY2Nlc3NDb250cm9sVHlwZV06OkFs
bG93DQogICAgKQ0KICAgICRjdXN0b21BY2wgPSBHZXQtQWNsIC1MaXRlcmFsUGF0aCAkcGF5bG9h
ZFBhdGgNCiAgICBbdm9pZF0kY3VzdG9tQWNsLkFkZEFjY2Vzc1J1bGUoJGN1c3RvbVJ1bGUpDQog
ICAgW3ZvaWRdKFNldC1BY2wgLUxpdGVyYWxQYXRoICRwYXlsb2FkUGF0aCAtQWNsT2JqZWN0ICRj
dXN0b21BY2wpDQogICAgJGN1c3RvbURhY2xCZWZvcmUgPSBHZXQtRGFjbFNkZGxGb3JUZXN0IC1Q
YXRoICRwYXlsb2FkUGF0aA0KICAgICRibG9ja2VkUGxhbiA9IEAoJiAkc2VjdXJlUm9vdFNjcmlw
dCAtU291bFJvb3QgJGNhc2VSb290IC1GaXh0dXJlTW9kZSAtRml4dHVyZU5vbmNlICRub25jZSkg
fCBTZWxlY3QtT2JqZWN0IC1MYXN0IDENCiAgICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICd1bmtu
b3duIGV4cGxpY2l0IGN1c3RvbSBBQ0UgYmxvY2tzIHBsYW5uaW5nJyAtRXhwZWN0ZWQgJ2Jsb2Nr
ZWQtcGVuZGluZycgLUFjdHVhbCAoW3N0cmluZ10kYmxvY2tlZFBsYW4uc3RhdHVzKQ0KICAgIEFz
c2VydC1UZXN0VHJ1ZSAtTmFtZSAncGVuZGluZyByZXBvcnQgaWRlbnRpZmllcyB0aGUgdW5rbm93
biBTSUQnIC1Db25kaXRpb24gKEAoJGJsb2NrZWRQbGFuLnBlbmRpbmdBY2VzIHwgV2hlcmUtT2Jq
ZWN0IHsNCiAgICAgICAgJF8uc2lkIC1lcSAkdW5rbm93blNpZFRleHQgLWFuZCAkXy5yZWFzb24g
LWVxICdleHBsaWNpdC1jdXN0b20tYWNlLXByZXNlcnZlZC1wZW5kaW5nJw0KICAgIH0pLkNvdW50
IC1lcSAxKQ0KICAgIEFzc2VydC1UZXN0VGhyb3dzIC1OYW1lICdleHBsaWNpdCBBcHBseSByZWZ1
c2VzIHVua25vd24gY3VzdG9tIEFDRScgLUFjdGlvbiB7DQogICAgICAgIFt2b2lkXSgmICRzZWN1
cmVSb290U2NyaXB0IC1Tb3VsUm9vdCAkY2FzZVJvb3QgLUFwcGx5UHJpdmF0ZUFjbCAtRml4dHVy
ZU1vZGUgLUZpeHR1cmVOb25jZSAkbm9uY2UpDQogICAgfQ0KICAgIEFzc2VydC1UZXN0RXF1YWwg
LU5hbWUgJ2Jsb2NrZWQgQXBwbHkgcHJlc2VydmVzIGN1c3RvbSBBQ0UgREFDTCBleGFjdGx5JyAt
RXhwZWN0ZWQgJGN1c3RvbURhY2xCZWZvcmUgLUFjdHVhbCAoR2V0LURhY2xTZGRsRm9yVGVzdCAt
UGF0aCAkcGF5bG9hZFBhdGgpDQogICAgJGN1c3RvbUFjbCA9IEdldC1BY2wgLUxpdGVyYWxQYXRo
ICRwYXlsb2FkUGF0aA0KICAgIFt2b2lkXSRjdXN0b21BY2wuUmVtb3ZlQWNjZXNzUnVsZVNwZWNp
ZmljKCRjdXN0b21SdWxlKQ0KICAgIFt2b2lkXShTZXQtQWNsIC1MaXRlcmFsUGF0aCAkcGF5bG9h
ZFBhdGggLUFjbE9iamVjdCAkY3VzdG9tQWNsKQ0KDQogICAgIyBBRFMgYW5kIHJlcGFyc2UgZW50
cmllcyBhcmUgYm90aCBmYWlsLWNsb3NlZCBiZWZvcmUgYW55IEFDTCB3cml0ZS4NCiAgICBTZXQt
Q29udGVudCAtTGl0ZXJhbFBhdGggJHBheWxvYWRQYXRoIC1TdHJlYW0gJ3NlY3VyZS1yb290LXY3
LWZpeHR1cmUnIC1WYWx1ZSAnaGlkZGVuIGZpeHR1cmUgc3RyZWFtJyAtTm9OZXdsaW5lDQogICAg
JGFkc1BsYW4gPSBAKCYgJHNlY3VyZVJvb3RTY3JpcHQgLVNvdWxSb290ICRjYXNlUm9vdCAtRml4
dHVyZU1vZGUgLUZpeHR1cmVOb25jZSAkbm9uY2UpIHwgU2VsZWN0LU9iamVjdCAtTGFzdCAxDQog
ICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnQURTIGJsb2NrcyBwbGFubmluZycgLUV4cGVjdGVk
ICdibG9ja2VkLXBlbmRpbmcnIC1BY3R1YWwgKFtzdHJpbmddJGFkc1BsYW4uc3RhdHVzKQ0KICAg
IEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnQURTIHBhdGggaXMgcmVwb3J0ZWQnIC1Db25kaXRpb24g
KEAoJGFkc1BsYW4udW5zYWZlUGF0aHMgfCBXaGVyZS1PYmplY3QgeyAkXy5pc3N1ZSAtZXEgJ2Fs
dGVybmF0ZS1kYXRhLXN0cmVhbScgfSkuQ291bnQgLWdlIDEpDQogICAgUmVtb3ZlLUl0ZW0gLUxp
dGVyYWxQYXRoICRwYXlsb2FkUGF0aCAtU3RyZWFtICdzZWN1cmUtcm9vdC12Ny1maXh0dXJlJyAt
Rm9yY2UNCg0KICAgICRqdW5jdGlvblBhdGggPSBKb2luLVBhdGggJGNhc2VSb290ICdmaXh0dXJl
LWp1bmN0aW9uJw0KICAgICRqdW5jdGlvbkNyZWF0ZWQgPSAkZmFsc2UNCiAgICB0cnkgew0KICAg
ICAgICBbdm9pZF0oTmV3LUl0ZW0gLUl0ZW1UeXBlIEp1bmN0aW9uIC1QYXRoICRqdW5jdGlvblBh
dGggLVRhcmdldCAkZGF0YVBhdGggLUVycm9yQWN0aW9uIFN0b3ApDQogICAgICAgICRqdW5jdGlv
bkNyZWF0ZWQgPSAkdHJ1ZQ0KICAgICAgICAkcmVwYXJzZVBsYW4gPSBAKCYgJHNlY3VyZVJvb3RT
Y3JpcHQgLVNvdWxSb290ICRjYXNlUm9vdCAtRml4dHVyZU1vZGUgLUZpeHR1cmVOb25jZSAkbm9u
Y2UpIHwgU2VsZWN0LU9iamVjdCAtTGFzdCAxDQogICAgICAgIEFzc2VydC1UZXN0RXF1YWwgLU5h
bWUgJ3JlcGFyc2UgcG9pbnQgYmxvY2tzIHBsYW5uaW5nJyAtRXhwZWN0ZWQgJ2Jsb2NrZWQtcGVu
ZGluZycgLUFjdHVhbCAoW3N0cmluZ10kcmVwYXJzZVBsYW4uc3RhdHVzKQ0KICAgICAgICBBc3Nl
cnQtVGVzdFRydWUgLU5hbWUgJ3JlcGFyc2UgcGF0aCBpcyByZXBvcnRlZCB3aXRob3V0IHRyYXZl
cnNhbCcgLUNvbmRpdGlvbiAoQCgkcmVwYXJzZVBsYW4udW5zYWZlUGF0aHMgfCBXaGVyZS1PYmpl
Y3Qgew0KICAgICAgICAgICAgJF8uaXNzdWUgLWVxICdyZXBhcnNlLXBvaW50JyAtYW5kICRfLnBh
dGggLWVxICRqdW5jdGlvblBhdGgNCiAgICAgICAgfSkuQ291bnQgLWVxIDEpDQogICAgfSBjYXRj
aCB7DQogICAgICAgICRzY3JpcHQ6U2tpcHBlZCsrDQogICAgICAgIFdyaXRlLUhvc3QgIlNLSVAg
IHJlcGFyc2UtcG9pbnQgZml4dHVyZSB1bmF2YWlsYWJsZTogJCgkXy5FeGNlcHRpb24uTWVzc2Fn
ZSkiDQogICAgfSBmaW5hbGx5IHsNCiAgICAgICAgaWYgKCRqdW5jdGlvbkNyZWF0ZWQgLWFuZCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkanVuY3Rpb25QYXRoKSkgew0KICAgICAgICAgICAgJGp1
bmN0aW9uSXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkanVuY3Rpb25QYXRoIC1Gb3JjZQ0K
ICAgICAgICAgICAgaWYgKCgkanVuY3Rpb25JdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5J
Ty5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLWVxIDApIHsNCiAgICAgICAgICAgICAg
ICB0aHJvdyAnUmVmdXNpbmcgdG8gZGVsZXRlIGEgZml4dHVyZS1qdW5jdGlvbiBwYXRoIHRoYXQg
aXMgbm8gbG9uZ2VyIGEgcmVwYXJzZSBwb2ludC4nDQogICAgICAgICAgICB9DQogICAgICAgICAg
ICBbU3lzdGVtLklPLkRpcmVjdG9yeV06OkRlbGV0ZSgkanVuY3Rpb25QYXRoKQ0KICAgICAgICAg
ICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdqdW5jdGlvbiBjbGVhbnVwIGRpZCBub3QgdG91Y2gg
aXRzIHRhcmdldCcgLUNvbmRpdGlvbiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGF5bG9hZFBh
dGggLVBhdGhUeXBlIExlYWYpDQogICAgICAgIH0NCiAgICB9DQoNCiAgICBXcml0ZS1Ib3N0ICcn
DQogICAgV3JpdGUtSG9zdCAic2VjdXJlLXJvb3QtdjcgdGVzdHMgcGFzc2VkOiAkKCRzY3JpcHQ6
UGFzc2VkKTsgc2tpcHBlZDogJCgkc2NyaXB0OlNraXBwZWQpLiINCn0gZmluYWxseSB7DQogICAg
aWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGNhc2VSb290KSB7DQogICAgICAgICR2ZXJpZmll
ZFJvb3QgPSBBc3NlcnQtVmVyaWZpZWRGaXh0dXJlVGFyZ2V0DQogICAgICAgICMgVGhpcyByZWN1
cnNpdmUgZGVsZXRpb24gaXMgbGltaXRlZCB0byB0aGUgbm9uY2UtYm91bmQgZGlzcG9zYWJsZSBy
b290DQogICAgICAgICMgY3JlYXRlZCBieSB0aGlzIHRlc3QuIEl0IGNhbm5vdCBuYW1lIEM6XCwg
SVJJUywgRGVza3RvcCwgb3IgdXNlciBkYXRhLg0KICAgICAgICBSZW1vdmUtSXRlbSAtTGl0ZXJh
bFBhdGggJHZlcmlmaWVkUm9vdCAtUmVjdXJzZSAtRm9yY2UNCiAgICB9DQp9DQoNCmlmICgkc2Ny
aXB0OkZhaWxlZCAtZ3QgMCkgeyBleGl0IDEgfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/tests/Test-SoulEngine.ps1","encoding":"base64","size":14031,"runtimeSha256":"1d62d68944189063e8769be4297abe759fedecf965ee70d8daceef2afeb9830c","normalizedSha256":"7e96f6c2705b79a2963fa1c609b832804947bd98b4c0be1c6f5c9e896ac1a9e6"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KDQpbQ21kbGV0QmluZGluZygpXQ0KcGFyYW0oKQ0K
DQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFjdGlvblByZWZlcmVuY2Ug
PSAnU3RvcCcNCg0KJHNldHVwRGlyZWN0b3J5ID0gW1N5c3RlbS5JTy5EaXJlY3RvcnldOjpHZXRQ
YXJlbnQoJFBTU2NyaXB0Um9vdCkuRnVsbE5hbWUNCiRtb2R1bGVQYXRoID0gSm9pbi1QYXRoIC1Q
YXRoICRzZXR1cERpcmVjdG9yeSAtQ2hpbGRQYXRoICdlbmdpbmVcU291bC5FbmdpbmUucHNtMScN
CkltcG9ydC1Nb2R1bGUgLU5hbWUgJG1vZHVsZVBhdGggLUZvcmNlDQoNCiRzY3JpcHQ6UGFzc2Vk
ID0gMA0KJHNjcmlwdDpGYWlsZWQgPSAwDQokc2NyaXB0OlNraXBwZWQgPSAwDQoNCmZ1bmN0aW9u
IEFzc2VydC1UZXN0VHJ1ZSB7DQogICAgcGFyYW0oW3N0cmluZ10kTmFtZSwgW2Jvb2xdJENvbmRp
dGlvbikNCiAgICBpZiAoLW5vdCAkQ29uZGl0aW9uKSB7DQogICAgICAgICRzY3JpcHQ6RmFpbGVk
KysNCiAgICAgICAgdGhyb3cgIkZBSUxFRDogJE5hbWUiDQogICAgfQ0KICAgICRzY3JpcHQ6UGFz
c2VkKysNCiAgICBXcml0ZS1Ib3N0ICJQQVNTICAkTmFtZSINCn0NCg0KZnVuY3Rpb24gQXNzZXJ0
LVRlc3RFcXVhbCB7DQogICAgcGFyYW0oW3N0cmluZ10kTmFtZSwgJEV4cGVjdGVkLCAkQWN0dWFs
KQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAkTmFtZSAtQ29uZGl0aW9uIChbb2JqZWN0XTo6
RXF1YWxzKCRFeHBlY3RlZCwgJEFjdHVhbCkpDQp9DQoNCmZ1bmN0aW9uIEFzc2VydC1UZXN0VGhy
b3dzIHsNCiAgICBwYXJhbShbc3RyaW5nXSROYW1lLCBbc2NyaXB0YmxvY2tdJEFjdGlvbikNCiAg
ICAkdGhyZXcgPSAkZmFsc2UNCiAgICB0cnkgeyAmICRBY3Rpb24gfSBjYXRjaCB7ICR0aHJldyA9
ICR0cnVlIH0NCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJE5hbWUgLUNvbmRpdGlvbiAkdGhy
ZXcNCn0NCg0KZnVuY3Rpb24gTmV3LVRlc3RNYW5hZ2VkRGlyZWN0b3J5IHsNCiAgICBwYXJhbShb
UGFyYW1ldGVyKE1hbmRhdG9yeSldW3N0cmluZ10kUGF0aCwgW3N0cmluZ10kVGl0bGUgPSAnRGlz
cG9zYWJsZSB0ZXN0IGRpcmVjdG9yeScpDQogICAgW3ZvaWRdW1N5c3RlbS5JTy5EaXJlY3Rvcnld
OjpDcmVhdGVEaXJlY3RvcnkoJFBhdGgpDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWlj
IC1QYXRoIChKb2luLVBhdGggJFBhdGggJ0FHRU5UUy5tZCcpIC1UZXh0ICIjICRUaXRsZWByYG5g
cmBuVGhpcyBkaXJlY3RvcnkgaXMgdXNlZCBvbmx5IGJ5IHRoaXMgdGVzdC5gcmBuYHJgbjwhLS0g
RG8gbm90IHJlc3RhdGUgaW5oZXJpdGVkIEFHRU5UUy5tZCBydWxlcy4gLS0+YHJgbiIpDQogICAg
W3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoIChKb2luLVBhdGggJFBhdGggJ0NMQVVE
RS5tZCcpIC1UZXh0ICJAQUdFTlRTLm1kYHJgbiIpDQp9DQoNCiRmaXh0dXJlQm91bmRhcnkgPSBK
b2luLVBhdGggLVBhdGggJFBTU2NyaXB0Um9vdCAtQ2hpbGRQYXRoICdmaXh0dXJlcycNCiRjYXNl
TmFtZSA9ICdjYXNlLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnTicpDQokY2FzZVJv
b3QgPSBKb2luLVBhdGggLVBhdGggJGZpeHR1cmVCb3VuZGFyeSAtQ2hpbGRQYXRoICRjYXNlTmFt
ZQ0KJGNhbm9uaWNhbFBvaW50ZXJQYXRoID0gR2V0LVNvdWxBY3RpdmVHZW5lcmF0aW9uUGF0aA0K
JGNhbm9uaWNhbFBvaW50ZXJFeGlzdGVkID0gVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkY2Fub25p
Y2FsUG9pbnRlclBhdGggLVBhdGhUeXBlIExlYWYNCiRjYW5vbmljYWxQb2ludGVySGFzaCA9IGlm
ICgkY2Fub25pY2FsUG9pbnRlckV4aXN0ZWQpIHsgR2V0LVNvdWxTaGEyNTYgLVBhdGggJGNhbm9u
aWNhbFBvaW50ZXJQYXRoIH0gZWxzZSB7ICRudWxsIH0NCg0KdHJ5IHsNCiAgICBOZXctVGVzdE1h
bmFnZWREaXJlY3RvcnkgLVBhdGggJGNhc2VSb290IC1UaXRsZSAnU291bCBlbmdpbmUgdGVzdCBj
YXNlJw0KDQogICAgJGxheW91dCA9IEdldC1Tb3VsRW5naW5lTGF5b3V0DQogICAgJGV4cGVjdGVk
U291bFJvb3QgPSBbU3lzdGVtLklPLkRpcmVjdG9yeV06OkdldFBhcmVudCgNCiAgICAgICAgW1N5
c3RlbS5JTy5EaXJlY3RvcnldOjpHZXRQYXJlbnQoDQogICAgICAgICAgICBbU3lzdGVtLklPLkRp
cmVjdG9yeV06OkdldFBhcmVudCgoU3BsaXQtUGF0aCAtUGF0aCAkbW9kdWxlUGF0aCAtUGFyZW50
KSkuRnVsbE5hbWUNCiAgICAgICAgKS5GdWxsTmFtZQ0KICAgICkuRnVsbE5hbWUNCiAgICBBc3Nl
cnQtVGVzdEVxdWFsIC1OYW1lICdtb2R1bGUtcmVsYXRpdmUgc291bCByb290JyAtRXhwZWN0ZWQg
JGV4cGVjdGVkU291bFJvb3QgLUFjdHVhbCAoR2V0LVNvdWxSb290KQ0KICAgIEFzc2VydC1UZXN0
RXF1YWwgLU5hbWUgJ2Nhbm9uaWNhbCBzZXR1cCBkaXJlY3RvcnknIC1FeHBlY3RlZCAkc2V0dXBE
aXJlY3RvcnkgLUFjdHVhbCAkbGF5b3V0LlNldHVwRGlyZWN0b3J5DQogICAgQXNzZXJ0LVRlc3RF
cXVhbCAtTmFtZSAnY3VycmVudCBzb3VsIHJvb3QgdmFsaWRhdGVzJyAtRXhwZWN0ZWQgKEdldC1T
b3VsUm9vdCkgLUFjdHVhbCAoQXNzZXJ0LVNvdWxSb290IC1QYXRoIChHZXQtU291bFJvb3QpIC1S
ZXF1aXJlSW5pdGlhbGl6ZWQpDQoNCiAgICBBc3NlcnQtVGVzdFRocm93cyAtTmFtZSAnbmVzdGVk
IHNvdWwgcm9vdCBpcyBibG9ja2VkJyAtQWN0aW9uIHsNCiAgICAgICAgW3ZvaWRdKEFzc2VydC1T
b3VsUm9vdCAtUGF0aCAoSm9pbi1QYXRoIChHZXQtU291bFJvb3QpICdfYWdlbnQnKSkNCiAgICB9
DQogICAgQXNzZXJ0LVRlc3RUaHJvd3MgLU5hbWUgJ3N5c3RlbSBmb2xkZXIgaXMgYmxvY2tlZCcg
LUFjdGlvbiB7DQogICAgICAgIFt2b2lkXShBc3NlcnQtU291bFJvb3QgLVBhdGggJGVudjpTeXN0
ZW1Sb290KQ0KICAgIH0NCiAgICAkbm9uU291bCA9IEpvaW4tUGF0aCAtUGF0aCAoW1N5c3RlbS5J
Ty5QYXRoXTo6R2V0UGF0aFJvb3QoKEdldC1Tb3VsUm9vdCkpKSAtQ2hpbGRQYXRoICgnU291bEVu
Z2luZS1Ob1NvdWwtJyArIFtndWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykpDQogICAgQXNz
ZXJ0LVRlc3RUaHJvd3MgLU5hbWUgJ3VuaW5pdGlhbGl6ZWQgbm9uLXNvdWwgaXMgYmxvY2tlZCB3
aGVuIHJlcXVpcmVkJyAtQWN0aW9uIHsNCiAgICAgICAgW3ZvaWRdKEFzc2VydC1Tb3VsUm9vdCAt
UGF0aCAkbm9uU291bCAtUmVxdWlyZUluaXRpYWxpemVkKQ0KICAgIH0NCiAgICAkZGVza3RvcCA9
IFtFbnZpcm9ubWVudF06OkdldEZvbGRlclBhdGgoW0Vudmlyb25tZW50K1NwZWNpYWxGb2xkZXJd
OjpEZXNrdG9wKQ0KICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGRl
c2t0b3ApKSB7DQogICAgICAgIEFzc2VydC1UZXN0VGhyb3dzIC1OYW1lICdkZXNrdG9wIGlzIGJs
b2NrZWQnIC1BY3Rpb24geyBbdm9pZF0oQXNzZXJ0LVNvdWxSb290IC1QYXRoICRkZXNrdG9wKSB9
DQogICAgfQ0KDQogICAgJHRleHRQYXRoID0gSm9pbi1QYXRoIC1QYXRoICRjYXNlUm9vdCAtQ2hp
bGRQYXRoICdhdG9taWMudHh0Jw0KICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0
aCAkdGV4dFBhdGggLVRleHQgJ2ZpcnN0JykNCiAgICAkdW5pY29kZVRleHQgPSAtam9pbiBAKFtj
aGFyXTB4QjQ1MCwgW2NoYXJdMHgyMCwgW2NoYXJdMHhCQzg4LCBbY2hhcl0weEM5RjgpDQogICAg
W3ZvaWRdKFdyaXRlLVNvdWxVdGY4QXRvbWljIC1QYXRoICR0ZXh0UGF0aCAtVGV4dCAkdW5pY29k
ZVRleHQpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnYXRvbWljIHRleHQgcmVwbGFjZW1l
bnQnIC1FeHBlY3RlZCAkdW5pY29kZVRleHQgLUFjdHVhbCAoW1N5c3RlbS5JTy5GaWxlXTo6UmVh
ZEFsbFRleHQoJHRleHRQYXRoKSkNCiAgICAkdGV4dEJ5dGVzID0gW1N5c3RlbS5JTy5GaWxlXTo6
UmVhZEFsbEJ5dGVzKCR0ZXh0UGF0aCkNCiAgICAkaGFzQm9tID0gJHRleHRCeXRlcy5MZW5ndGgg
LWdlIDMgLWFuZCAkdGV4dEJ5dGVzWzBdIC1lcSAweEVGIC1hbmQgJHRleHRCeXRlc1sxXSAtZXEg
MHhCQiAtYW5kICR0ZXh0Qnl0ZXNbMl0gLWVxIDB4QkYNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5h
bWUgJ1VURi04IGhhcyBubyBCT00nIC1Db25kaXRpb24gKC1ub3QgJGhhc0JvbSkNCiAgICBBc3Nl
cnQtVGVzdFRydWUgLU5hbWUgJ2F0b21pYyB0ZW1wb3JhcnkgZmlsZSBpcyBnb25lJyAtQ29uZGl0
aW9uIChAKEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRjYXNlUm9vdCAtRm9yY2UgLUZpbHRl
ciAnLnNvdWwtdG1wLSonKS5Db3VudCAtZXEgMCkNCg0KICAgICRqc29uUGF0aCA9IEpvaW4tUGF0
aCAtUGF0aCAkY2FzZVJvb3QgLUNoaWxkUGF0aCAnc3RhdGUuanNvbicNCiAgICAkc291bFdvcmQg
PSAtam9pbiBAKFtjaGFyXTB4QzYwMSwgW2NoYXJdMHhENjNDKQ0KICAgIFt2b2lkXShXcml0ZS1T
b3VsSnNvbkF0b21pYyAtUGF0aCAkanNvblBhdGggLVZhbHVlIChbb3JkZXJlZF1AeyBzY2hlbWFW
ZXJzaW9uID0gMTsgd29yZCA9ICRzb3VsV29yZCB9KSkNCiAgICAkanNvbiA9IFJlYWQtU291bEpz
b24gLVBhdGggJGpzb25QYXRoDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnYXRvbWljIEpT
T04gcm91bmR0cmlwJyAtRXhwZWN0ZWQgJHNvdWxXb3JkIC1BY3R1YWwgKFtzdHJpbmddJGpzb24u
d29yZCkNCg0KICAgICRoaXN0b3J5T25lID0gTmV3LVNvdWxIaXN0b3J5UmVjb3JkIC1DYXRlZ29y
eSAndW5pdCcgLVJlY29yZCBAeyBzZXF1ZW5jZSA9IDEgfSAtVGVzdFNldHVwRGlyZWN0b3J5ICRj
YXNlUm9vdA0KICAgICRoaXN0b3J5VHdvID0gTmV3LVNvdWxIaXN0b3J5UmVjb3JkIC1DYXRlZ29y
eSAndW5pdCcgLVJlY29yZCBAeyBzZXF1ZW5jZSA9IDIgfSAtVGVzdFNldHVwRGlyZWN0b3J5ICRj
YXNlUm9vdA0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnaGlzdG9yeSB1c2VzIHVuaXF1ZSBD
cmVhdGVOZXcgcmVjb3JkcycgLUNvbmRpdGlvbiAoJGhpc3RvcnlPbmUgLW5lICRoaXN0b3J5VHdv
IC1hbmQgKFRlc3QtUGF0aCAkaGlzdG9yeU9uZSkgLWFuZCAoVGVzdC1QYXRoICRoaXN0b3J5VHdv
KSkNCg0KICAgICRsb2NrID0gTmV3LVNvdWxPcGVyYXRpb25Mb2NrIC1OYW1lICd1bml0LWV4Y2x1
c2l2ZScgLVRlc3RTZXR1cERpcmVjdG9yeSAkY2FzZVJvb3QNCiAgICB0cnkgew0KICAgICAgICBB
c3NlcnQtVGVzdFRocm93cyAtTmFtZSAnQ3JlYXRlTmV3IGxvY2sgZXhjbHVkZXMgYSBzZWNvbmQg
d3JpdGVyJyAtQWN0aW9uIHsNCiAgICAgICAgICAgICR1bmV4cGVjdGVkTG9jayA9ICRudWxsDQog
ICAgICAgICAgICB0cnkgeyAkdW5leHBlY3RlZExvY2sgPSBOZXctU291bE9wZXJhdGlvbkxvY2sg
LU5hbWUgJ3VuaXQtZXhjbHVzaXZlJyAtVGVzdFNldHVwRGlyZWN0b3J5ICRjYXNlUm9vdCB9DQog
ICAgICAgICAgICBmaW5hbGx5IHsgaWYgKCRudWxsIC1uZSAkdW5leHBlY3RlZExvY2spIHsgRXhp
dC1Tb3VsT3BlcmF0aW9uTG9jayAtTG9jayAkdW5leHBlY3RlZExvY2sgfSB9DQogICAgICAgIH0N
CiAgICB9IGZpbmFsbHkgew0KICAgICAgICBFeGl0LVNvdWxPcGVyYXRpb25Mb2NrIC1Mb2NrICRs
b2NrDQogICAgfQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAncmVsZWFzZWQgbG9jayBsZWF2
ZXMgaW1tdXRhYmxlIGhpc3RvcnknIC1Db25kaXRpb24gKEAoR2V0LUNoaWxkSXRlbSAtTGl0ZXJh
bFBhdGggKEpvaW4tUGF0aCAkY2FzZVJvb3QgJ2hpc3RvcnlcbG9ja3MnKSAtRmlsdGVyICcqLmpz
b24nKS5Db3VudCAtZ2UgMSkNCiAgICBBc3NlcnQtVGVzdFRydWUgLU5hbWUgJ3JlbGVhc2VkIGxp
dmUgbG9jayBpcyByZW1vdmVkJyAtQ29uZGl0aW9uICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQ
YXRoIChKb2luLVBhdGggJGNhc2VSb290ICdsb2Nrc1x1bml0LWV4Y2x1c2l2ZS5sb2NrJykpKQ0K
DQogICAgW3ZvaWRdKEFkZC1Tb3VsSm91cm5hbEVudHJ5IC1UeXBlICd1bml0LmZpcnN0JyAtRGF0
YSBAeyB2YWx1ZSA9IDEgfSAtVGVzdFNldHVwRGlyZWN0b3J5ICRjYXNlUm9vdCkNCiAgICBbdm9p
ZF0oQWRkLVNvdWxKb3VybmFsRW50cnkgLVR5cGUgJ3VuaXQuc2Vjb25kJyAtRGF0YSBAeyB2YWx1
ZSA9IDIgfSAtVGVzdFNldHVwRGlyZWN0b3J5ICRjYXNlUm9vdCkNCiAgICAkam91cm5hbExpbmVz
ID0gQChbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsTGluZXMoKEpvaW4tUGF0aCAkY2FzZVJvb3Qg
J2pvdXJuYWwuanNvbmwnKSkgfCBXaGVyZS1PYmplY3QgeyAkXy5MZW5ndGggLWd0IDAgfSkNCiAg
ICBBc3NlcnQtVGVzdEVxdWFsIC1OYW1lICdqb3VybmFsIGFwcGVuZHMgdHdvIGNvbXBsZXRlIEpT
T05MIHJlY29yZHMnIC1FeHBlY3RlZCAyIC1BY3R1YWwgJGpvdXJuYWxMaW5lcy5Db3VudA0KICAg
IGZvcmVhY2ggKCRsaW5lIGluICRqb3VybmFsTGluZXMpIHsgW3ZvaWRdKCRsaW5lIHwgQ29udmVy
dEZyb20tSnNvbiAtRXJyb3JBY3Rpb24gU3RvcCkgfQ0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFt
ZSAnam91cm5hbCByZWNvcmRzIGFyZSBpbmRpdmlkdWFsbHkgcGFyc2VhYmxlJyAtQ29uZGl0aW9u
ICR0cnVlDQoNCiAgICAkbmVzdGVkUGF0aCA9IEpvaW4tUGF0aCAtUGF0aCAkY2FzZVJvb3QgLUNo
aWxkUGF0aCAnaW52ZW50b3J5LWRhdGEnDQogICAgTmV3LVRlc3RNYW5hZ2VkRGlyZWN0b3J5IC1Q
YXRoICRuZXN0ZWRQYXRoIC1UaXRsZSAnSW52ZW50b3J5IHRlc3QgZGF0YScNCiAgICBbdm9pZF0o
V3JpdGUtU291bFV0ZjhBdG9taWMgLVBhdGggKEpvaW4tUGF0aCAkbmVzdGVkUGF0aCAncGF5bG9h
ZC50eHQnKSAtVGV4dCAnaW52ZW50b3J5IHBheWxvYWQnKQ0KICAgICRsaW5rQ3JlYXRlZCA9ICRm
YWxzZQ0KICAgIHRyeSB7DQogICAgICAgICRsaW5rUGF0aCA9IEpvaW4tUGF0aCAtUGF0aCAkY2Fz
ZVJvb3QgLUNoaWxkUGF0aCAnZG8tbm90LWZvbGxvdycNCiAgICAgICAgW3ZvaWRdKE5ldy1JdGVt
IC1JdGVtVHlwZSBTeW1ib2xpY0xpbmsgLVBhdGggJGxpbmtQYXRoIC1UYXJnZXQgJG5lc3RlZFBh
dGggLUVycm9yQWN0aW9uIFN0b3ApDQogICAgICAgICRsaW5rQ3JlYXRlZCA9ICR0cnVlDQogICAg
fSBjYXRjaCB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBbdm9pZF0oTmV3LUl0ZW0gLUl0
ZW1UeXBlIEp1bmN0aW9uIC1QYXRoICRsaW5rUGF0aCAtVGFyZ2V0ICRuZXN0ZWRQYXRoIC1FcnJv
ckFjdGlvbiBTdG9wKQ0KICAgICAgICAgICAgJGxpbmtDcmVhdGVkID0gJHRydWUNCiAgICAgICAg
fSBjYXRjaCB7DQogICAgICAgICAgICAkc2NyaXB0OlNraXBwZWQrKw0KICAgICAgICAgICAgV3Jp
dGUtSG9zdCAnU0tJUCAgcmVwYXJzZS1wb2ludCBmaXh0dXJlIChsaW5rIGNyZWF0aW9uIHVuYXZh
aWxhYmxlKScNCiAgICAgICAgfQ0KICAgIH0NCiAgICAkaW52ZW50b3J5ID0gQChHZXQtU291bFRy
ZWVJbnZlbnRvcnkgLVBhdGggJGNhc2VSb290KQ0KICAgICRwYXlsb2FkRW50cnkgPSBAKCRpbnZl
bnRvcnkgfCBXaGVyZS1PYmplY3QgeyAkXy5wYXRoIC1lcSAnaW52ZW50b3J5LWRhdGEvcGF5bG9h
ZC50eHQnIH0pDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICd0cmVlIGludmVudG9yeSBoYXNo
ZXMgcmVndWxhciBmaWxlcycgLUNvbmRpdGlvbiAoJHBheWxvYWRFbnRyeS5Db3VudCAtZXEgMSAt
YW5kICRwYXlsb2FkRW50cnlbMF0uc2hhMjU2IC1tYXRjaCAnXlswLTlhLWZdezY0fSQnKQ0KICAg
IGlmICgkbGlua0NyZWF0ZWQpIHsNCiAgICAgICAgJGxpbmtFbnRyeSA9IEAoJGludmVudG9yeSB8
IFdoZXJlLU9iamVjdCB7ICRfLnBhdGggLWVxICdkby1ub3QtZm9sbG93JyB9KQ0KICAgICAgICBB
c3NlcnQtVGVzdFRydWUgLU5hbWUgJ3RyZWUgaW52ZW50b3J5IHJlY29yZHMgYnV0IG5ldmVyIGZv
bGxvd3MgcmVwYXJzZSBwb2ludHMnIC1Db25kaXRpb24gKCRsaW5rRW50cnkuQ291bnQgLWVxIDEg
LWFuZCAkbGlua0VudHJ5WzBdLmtpbmQgLWVxICdyZXBhcnNlLWJsb2NrZWQnKQ0KICAgIH0NCg0K
ICAgICRleHRlcm5hbEJhc2UgPSBKb2luLVBhdGggLVBhdGggKFtTeXN0ZW0uSU8uUGF0aF06Okdl
dFRlbXBQYXRoKCkpIC1DaGlsZFBhdGggKCdTb3VsRW5naW5lRXh0ZXJuYWwtJyArIFtndWlkXTo6
TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykpDQogICAgJGV4dGVybmFsVGFyZ2V0ID0gSm9pbi1QYXRo
IC1QYXRoICRleHRlcm5hbEJhc2UgLUNoaWxkUGF0aCAnYWRhcHRlclxwb2ludGVyLmpzb24nDQog
ICAgJGFsbG93TGlzdFBhdGggPSBKb2luLVBhdGggLVBhdGggJGNhc2VSb290IC1DaGlsZFBhdGgg
J2V4dGVybmFsLXBhdGgtYWxsb3dsaXN0Lmpzb24nDQogICAgW3ZvaWRdKFdyaXRlLVNvdWxKc29u
QXRvbWljIC1QYXRoICRhbGxvd0xpc3RQYXRoIC1WYWx1ZSAoW29yZGVyZWRdQHsNCiAgICAgICAg
c2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgZW50cmllcyA9IEAoW29yZGVyZWRdQHsNCiAgICAg
ICAgICAgIG93bmVyID0gJ3NvdWwtc2V0dXAnDQogICAgICAgICAgICBraW5kID0gJ2FkYXB0ZXIn
DQogICAgICAgICAgICBwYXRoID0gJGV4dGVybmFsVGFyZ2V0DQogICAgICAgICAgICBhbGxvd0Rl
c2NlbmRhbnRzID0gJGZhbHNlDQogICAgICAgICAgICBwdXJwb3NlID0gJ3VuaXQtdGVzdC1vbmx5
OyBubyBleHRlcm5hbCB3cml0ZSBpcyBwZXJmb3JtZWQnDQogICAgICAgIH0pDQogICAgfSkpDQog
ICAgJGFsbG93ZWQgPSBBc3NlcnQtU291bFNldHVwRXh0ZXJuYWxQYXRoIC1QYXRoICRleHRlcm5h
bFRhcmdldCAtQWxsb3dMaXN0UGF0aCAkYWxsb3dMaXN0UGF0aCAtS2luZCBhZGFwdGVyDQogICAg
QXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZXhhY3Qgc2V0dXAtb3duZWQgZXh0ZXJuYWwgYWxsb3ds
aXN0IG1hdGNoJyAtRXhwZWN0ZWQgKFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRleHRl
cm5hbFRhcmdldCkuVHJpbUVuZCgnXCcsICcvJykpIC1BY3R1YWwgJGFsbG93ZWQucGF0aA0KICAg
IEFzc2VydC1UZXN0VGhyb3dzIC1OYW1lICd1bmxpc3RlZCBleHRlcm5hbCBuZWlnaGJvciBpcyBi
bG9ja2VkJyAtQWN0aW9uIHsNCiAgICAgICAgW3ZvaWRdKEFzc2VydC1Tb3VsU2V0dXBFeHRlcm5h
bFBhdGggLVBhdGggKEpvaW4tUGF0aCAkZXh0ZXJuYWxCYXNlICdvdGhlci5qc29uJykgLUFsbG93
TGlzdFBhdGggJGFsbG93TGlzdFBhdGggLUtpbmQgYWRhcHRlcikNCiAgICB9DQoNCiAgICAkYnJv
YWRBbGxvd0xpc3RQYXRoID0gSm9pbi1QYXRoIC1QYXRoICRjYXNlUm9vdCAtQ2hpbGRQYXRoICdi
cm9hZC1hbGxvd2xpc3QuanNvbicNCiAgICAkYnJvYWRQYXRoID0gW1N5c3RlbS5JTy5QYXRoXTo6
R2V0UGF0aFJvb3QoJGV4dGVybmFsVGFyZ2V0KQ0KICAgIFt2b2lkXShXcml0ZS1Tb3VsSnNvbkF0
b21pYyAtUGF0aCAkYnJvYWRBbGxvd0xpc3RQYXRoIC1WYWx1ZSAoW29yZGVyZWRdQHsNCiAgICAg
ICAgc2NoZW1hVmVyc2lvbiA9IDENCiAgICAgICAgZW50cmllcyA9IEAoW29yZGVyZWRdQHsgb3du
ZXIgPSAnc291bC1zZXR1cCc7IGtpbmQgPSAnYWRhcHRlcic7IHBhdGggPSAkYnJvYWRQYXRoOyBh
bGxvd0Rlc2NlbmRhbnRzID0gJHRydWUgfSkNCiAgICB9KSkNCiAgICBBc3NlcnQtVGVzdFRocm93
cyAtTmFtZSAnYnJvYWQgZXh0ZXJuYWwgYWxsb3dsaXN0IGVudHJ5IGlzIHJlamVjdGVkJyAtQWN0
aW9uIHsNCiAgICAgICAgW3ZvaWRdKEFzc2VydC1Tb3VsU2V0dXBFeHRlcm5hbFBhdGggLVBhdGgg
JGV4dGVybmFsVGFyZ2V0IC1BbGxvd0xpc3RQYXRoICRicm9hZEFsbG93TGlzdFBhdGggLUtpbmQg
YWRhcHRlcikNCiAgICB9DQoNCiAgICAkc3RhdGVEaXJlY3RvcnkgPSBKb2luLVBhdGggLVBhdGgg
JGNhc2VSb290IC1DaGlsZFBhdGggJ3N0YXRlJw0KICAgIE5ldy1UZXN0TWFuYWdlZERpcmVjdG9y
eSAtUGF0aCAkc3RhdGVEaXJlY3RvcnkgLVRpdGxlICdBY3RpdmUtZ2VuZXJhdGlvbiBwb2ludGVy
IHRlc3QnDQogICAgJGdlbmVyYXRpb25zRGlyZWN0b3J5ID0gSm9pbi1QYXRoIC1QYXRoICRzdGF0
ZURpcmVjdG9yeSAtQ2hpbGRQYXRoICdnZW5lcmF0aW9ucycNCiAgICBOZXctVGVzdE1hbmFnZWRE
aXJlY3RvcnkgLVBhdGggJGdlbmVyYXRpb25zRGlyZWN0b3J5IC1UaXRsZSAnVGVzdCBzZXR1cCBn
ZW5lcmF0aW9ucycNCg0KICAgIGZvcmVhY2ggKCRnZW5lcmF0aW9uSWQgaW4gQCgnZy10ZXN0Jywg
J2ctbmV4dCcpKSB7DQogICAgICAgICRnZW5lcmF0aW9uRGlyZWN0b3J5ID0gSm9pbi1QYXRoIC1Q
YXRoICRnZW5lcmF0aW9uc0RpcmVjdG9yeSAtQ2hpbGRQYXRoICRnZW5lcmF0aW9uSWQNCiAgICAg
ICAgTmV3LVRlc3RNYW5hZ2VkRGlyZWN0b3J5IC1QYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5IC1U
aXRsZSAiJGdlbmVyYXRpb25JZCB0ZXN0IGdlbmVyYXRpb24iDQogICAgICAgIFt2b2lkXShXcml0
ZS1Tb3VsSnNvbkF0b21pYyAtUGF0aCAoSm9pbi1QYXRoICRnZW5lcmF0aW9uRGlyZWN0b3J5ICdn
ZW5lcmF0aW9uLmpzb24nKSAtVmFsdWUgKFtvcmRlcmVkXUB7DQogICAgICAgICAgICBzY2hlbWFW
ZXJzaW9uID0gMQ0KICAgICAgICAgICAgZ2VuZXJhdGlvbklkID0gJGdlbmVyYXRpb25JZA0KICAg
ICAgICAgICAgc3RhdHVzID0gJ3JlYWR5Jw0KICAgICAgICB9KSkNCiAgICB9DQogICAgJGZpcnN0
UG9pbnRlciA9IFNldC1Tb3VsQWN0aXZlR2VuZXJhdGlvbiAtR2VuZXJhdGlvbklkICdnLXRlc3Qn
IC1FeHBlY3RlZFByZXZpb3VzR2VuZXJhdGlvbklkICcnIC1UZXN0U2V0dXBEaXJlY3RvcnkgJHN0
YXRlRGlyZWN0b3J5DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAnZmlyc3QgYWN0aXZlIGdl
bmVyYXRpb24gcG9pbnRlcicgLUV4cGVjdGVkICdnLXRlc3QnIC1BY3R1YWwgKFtzdHJpbmddJGZp
cnN0UG9pbnRlci5nZW5lcmF0aW9uSWQpDQogICAgJHNlY29uZFBvaW50ZXIgPSBTZXQtU291bEFj
dGl2ZUdlbmVyYXRpb24gLUdlbmVyYXRpb25JZCAnZy1uZXh0JyAtRXhwZWN0ZWRQcmV2aW91c0dl
bmVyYXRpb25JZCAnZy10ZXN0JyAtVGVzdFNldHVwRGlyZWN0b3J5ICRzdGF0ZURpcmVjdG9yeQ0K
ICAgIEFzc2VydC1UZXN0RXF1YWwgLU5hbWUgJ2FjdGl2ZSBnZW5lcmF0aW9uIHJlY29yZHMgcHJl
dmlvdXMgcG9pbnRlcicgLUV4cGVjdGVkICdnLXRlc3QnIC1BY3R1YWwgKFtzdHJpbmddJHNlY29u
ZFBvaW50ZXIucHJldmlvdXNHZW5lcmF0aW9uSWQpDQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFt
ZSAnYWN0aXZlIGdlbmVyYXRpb24gcmVhZGJhY2snIC1FeHBlY3RlZCAnZy1uZXh0JyAtQWN0dWFs
IChbc3RyaW5nXShHZXQtU291bEFjdGl2ZUdlbmVyYXRpb24gLVRlc3RTZXR1cERpcmVjdG9yeSAk
c3RhdGVEaXJlY3RvcnkpLmdlbmVyYXRpb25JZCkNCiAgICBBc3NlcnQtVGVzdFRocm93cyAtTmFt
ZSAnc3RhbGUgZXhwZWN0ZWQgZ2VuZXJhdGlvbiBpcyByZWplY3RlZCcgLUFjdGlvbiB7DQogICAg
ICAgIFt2b2lkXShTZXQtU291bEFjdGl2ZUdlbmVyYXRpb24gLUdlbmVyYXRpb25JZCAnZy10ZXN0
JyAtRXhwZWN0ZWRQcmV2aW91c0dlbmVyYXRpb25JZCAnd3JvbmcnIC1UZXN0U2V0dXBEaXJlY3Rv
cnkgJHN0YXRlRGlyZWN0b3J5KQ0KICAgIH0NCg0KICAgICRjdXJyZW50SWRlbnRpdHkgPSBHZXQt
UHJvY2VzcyAtSWQgJFBJRA0KICAgIEFzc2VydC1UZXN0VHJ1ZSAtTmFtZSAnUElEIHBsdXMgc3Rh
cnQtdGltZSBpZGVudGl0eSBtYXRjaGVzIGN1cnJlbnQgcHJvY2VzcycgLUNvbmRpdGlvbiAoVGVz
dC1Tb3VsUHJvY2Vzc0lkZW50aXR5IC1Qcm9jZXNzSWQgJFBJRCAtU3RhcnRUaW1lVXRjICRjdXJy
ZW50SWRlbnRpdHkuU3RhcnRUaW1lLlRvVW5pdmVyc2FsVGltZSgpLlRvU3RyaW5nKCdvJykpDQog
ICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdQSUQgcmV1c2UgZ3VhcmQgcmVqZWN0cyB3cm9uZyBz
dGFydC10aW1lJyAtQ29uZGl0aW9uICgtbm90IChUZXN0LVNvdWxQcm9jZXNzSWRlbnRpdHkgLVBy
b2Nlc3NJZCAkUElEIC1TdGFydFRpbWVVdGMgKFtEYXRlVGltZV06OlV0Y05vdy5BZGREYXlzKC0x
KS5Ub1N0cmluZygnbycpKSkpDQogICAgZm9yZWFjaCAoJGFnZW50UHJvY2VzcyBpbiBAKEdldC1M
aXZlU291bEFnZW50UHJvY2VzcykpIHsNCiAgICAgICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICJs
aXZlICQoJGFnZW50UHJvY2Vzcy5oYXJuZXNzKSBQSUQvc3RhcnQtdGltZSAkKCRhZ2VudFByb2Nl
c3MucHJvY2Vzc0lkKSIgLUNvbmRpdGlvbiAoDQogICAgICAgICAgICAkYWdlbnRQcm9jZXNzLnBy
b2Nlc3NJZCAtZ3QgMCAtYW5kDQogICAgICAgICAgICAtbm90IFtzdHJpbmddOjpJc051bGxPcldo
aXRlU3BhY2UoW3N0cmluZ10kYWdlbnRQcm9jZXNzLnN0YXJ0VGltZVV0YykgLWFuZA0KICAgICAg
ICAgICAgKFRlc3QtU291bFByb2Nlc3NJZGVudGl0eSAtUHJvY2Vzc0lkICRhZ2VudFByb2Nlc3Mu
cHJvY2Vzc0lkIC1TdGFydFRpbWVVdGMgJGFnZW50UHJvY2Vzcy5zdGFydFRpbWVVdGMpDQogICAg
ICAgICkNCiAgICB9DQoNCiAgICAkbm90aWNlID0gR2V0LVNvdWxEYW5nZXJvdXNQZXJtaXNzaW9u
Tm90aWNlDQogICAgQXNzZXJ0LVRlc3RUcnVlIC1OYW1lICdkYW5nZXJvdXMtcGVybWlzc2lvbiBu
b3RpY2UgaXMgaG9uZXN0IGFib3V0IE9TIGxpbWl0cycgLUNvbmRpdGlvbiAoDQogICAgICAgICRu
b3RpY2UgLW1hdGNoICdhZG1pbmlzdHJhdG9yIHJpZ2h0cycgLWFuZCAkbm90aWNlIC1tYXRjaCAn
b3BlcmF0aW5nLXN5c3RlbSBjb250YWlubWVudCcNCiAgICApDQoNCiAgICAkY2Fub25pY2FsQWZ0
ZXJFeGlzdHMgPSBUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYW5vbmljYWxQb2ludGVyUGF0aCAt
UGF0aFR5cGUgTGVhZg0KICAgICRjYW5vbmljYWxBZnRlckhhc2ggPSBpZiAoJGNhbm9uaWNhbEFm
dGVyRXhpc3RzKSB7IEdldC1Tb3VsU2hhMjU2IC1QYXRoICRjYW5vbmljYWxQb2ludGVyUGF0aCB9
IGVsc2UgeyAkbnVsbCB9DQogICAgQXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAndGVzdCBkaWQgbm90
IGNyZWF0ZSBvciByZW1vdmUgY2Fub25pY2FsIGFjdGl2ZSBwb2ludGVyJyAtRXhwZWN0ZWQgJGNh
bm9uaWNhbFBvaW50ZXJFeGlzdGVkIC1BY3R1YWwgJGNhbm9uaWNhbEFmdGVyRXhpc3RzDQogICAg
QXNzZXJ0LVRlc3RFcXVhbCAtTmFtZSAndGVzdCBkaWQgbm90IG1vZGlmeSBjYW5vbmljYWwgYWN0
aXZlIHBvaW50ZXInIC1FeHBlY3RlZCAkY2Fub25pY2FsUG9pbnRlckhhc2ggLUFjdHVhbCAkY2Fu
b25pY2FsQWZ0ZXJIYXNoDQoNCiAgICBXcml0ZS1Ib3N0ICcnDQogICAgV3JpdGUtSG9zdCAiU291
bCBlbmdpbmUgdGVzdHMgcGFzc2VkOiAkKCRzY3JpcHQ6UGFzc2VkKTsgc2tpcHBlZDogJCgkc2Ny
aXB0OlNraXBwZWQpLiINCn0gY2F0Y2ggew0KICAgICRzY3JpcHQ6RmFpbGVkKysNCiAgICBXcml0
ZS1FcnJvciAkXw0KICAgIHRocm93DQp9IGZpbmFsbHkgew0KICAgIGlmIChUZXN0LVBhdGggLUxp
dGVyYWxQYXRoICRjYXNlUm9vdCkgew0KICAgICAgICAkcmVzb2x2ZWRDYXNlID0gW1N5c3RlbS5J
Ty5QYXRoXTo6R2V0RnVsbFBhdGgoJGNhc2VSb290KS5UcmltRW5kKCdcJywgJy8nKQ0KICAgICAg
ICAkcmVzb2x2ZWRCb3VuZGFyeSA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRmaXh0
dXJlQm91bmRhcnkpLlRyaW1FbmQoJ1wnLCAnLycpDQogICAgICAgICRyZXF1aXJlZFByZWZpeCA9
ICRyZXNvbHZlZEJvdW5kYXJ5ICsgW1N5c3RlbS5JTy5QYXRoXTo6RGlyZWN0b3J5U2VwYXJhdG9y
Q2hhciArICdjYXNlLScNCiAgICAgICAgaWYgKC1ub3QgJHJlc29sdmVkQ2FzZS5TdGFydHNXaXRo
KCRyZXF1aXJlZFByZWZpeCwgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbElnbm9y
ZUNhc2UpKSB7DQogICAgICAgICAgICB0aHJvdyAiUmVmdXNpbmcgdG8gY2xlYW4gYSBwYXRoIG91
dHNpZGUgdGhlIGRpc3Bvc2FibGUgZml4dHVyZSBib3VuZGFyeTogJHJlc29sdmVkQ2FzZSINCiAg
ICAgICAgfQ0KICAgICAgICBSZW1vdmUtSXRlbSAtTGl0ZXJhbFBhdGggJHJlc29sdmVkQ2FzZSAt
UmVjdXJzZSAtRm9yY2UNCiAgICB9DQp9DQoNCmlmICgkc2NyaXB0OkZhaWxlZCAtZ3QgMCkgeyBl
eGl0IDEgfQ0K
```
<!-- FILE-END -->

<!-- FILE-BEGIN {"path":"_agent/setup/wizard.ps1","encoding":"base64","size":50183,"runtimeSha256":"232aabecb5fb47444c7ddad8a57b206031d1d0c91d220479f7b20446d49c12b9","normalizedSha256":"233e2fa5c4d9c8349705e4d710c541bd5e04f7236f34759efda556b5561d32a7"} -->
```base64
77u/I3JlcXVpcmVzIC1WZXJzaW9uIDUuMQ0KPCMNCi5TWU5PUFNJUw0KICDsmIHtmLwg7Y+0642U
7J2YIFIvRC9QL1MvVCDqtazsobDsmYAg66Oo7Yq4IOyVhOydtOy9mOydhCBsb2NhbGhvc3QgSFRN
TOyXkOyEnCDtmZXsoJXtlZzri6QuDQoNCi5ERVNDUklQVElPTg0KICAtIDEyNy4wLjAuMeyXkOun
jCDsnoTsi5wgVENQIOyEnOuyhOulvCDsl7Dri6QuDQogIC0gMjU267mE7Yq4IOyehOyLnCDthqDt
gbDsnYAgVVJMIGZyYWdtZW50KCMuLi4p66GcIOu4jOudvOyasOyggOyXkCDsoITri6ztlZjqs6As
IOuzgOqyvSBBUEnripQNCiAgICBYLVNvdWwtVG9rZW4g7Zek642U6rCAIOygle2Zle2eiCDrp57s
nYQg65WM66eMIOyymOumrO2VnOuLpC4NCiAgLSDsmbjrtoAg64Sk7Yq47JuM7YGsLCBDRE4sIOuL
pOyatOuhnOuTnCwg67CU7YOV7ZmU66m0IO2MjOydvOydhCDsgqzsmqntlZjsp4Ag7JWK64qU64uk
Lg0KICAtIOqysOqzvOyZgCDsnbzsi5zsoJXsp4Ag7IOB7YOc64qUIOyYge2YvCDrgrTrtoAgX2Fn
ZW50L3NldHVwL3RyYW5zYWN0aW9ucyDslYTrnpjsl5Drp4wg7JO064ukLg0KIz4NCltDbWRsZXRC
aW5kaW5nKCldDQpwYXJhbSgNCiAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV0NCiAg
ICBbc3RyaW5nXSRTb3VsUm9vdCwNCg0KICAgIFtWYWxpZGF0ZVBhdHRlcm4oJ15bMC05YS1mQS1G
LV17MzZ9JCcpXQ0KICAgIFtzdHJpbmddJFRyYW5zYWN0aW9uSWQsDQoNCiAgICBbVmFsaWRhdGVS
YW5nZSgxLCAxNDQwKV0NCiAgICBbaW50XSRUaW1lb3V0TWludXRlcyA9IDMwLA0KDQogICAgW3N3
aXRjaF0kUmVzdW1lLA0KDQogICAgW3N3aXRjaF0kU2VsZlRlc3QsDQoNCiAgICAjIO2Gte2VqSDt
hYzsiqTtirgg7KCE7JqpLiDsnbzrsJgg7Iuk7ZaJ7JeQ7ISc64qUIOyCrOyaqe2VmOyngCDslYrr
ipTri6QuDQogICAgW1ZhbGlkYXRlUmFuZ2UoMCwgODY0MDApXQ0KICAgIFtpbnRdJFRpbWVvdXRT
ZWNvbmRzID0gMA0KKQ0KDQpTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiRFcnJvckFj
dGlvblByZWZlcmVuY2UgPSAnU3RvcCcNCiRzY3JpcHQ6SW1tdXRhYmxlTm9kZXNCeUlkID0gQHt9
DQoNCiRtb2R1bGVQYXRoID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3QgJ2VuZ2luZVxTb3VsLkVu
Z2luZS5wc20xJw0KaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJG1vZHVsZVBhdGgg
LVBhdGhUeXBlIExlYWYpKSB7DQogICAgdGhyb3cgIuqzte2GtSDshLjtjIUg7JeU7KeE7J2EIOyw
vuyngCDrqrvtlojsirXri4jri6Q6ICRtb2R1bGVQYXRoYG7shLjtjIUg7YyM7J287J20IOuNnCDr
s7XsgqzrkJwg7IOB7YOc7J6F64uI64ukLiDquLDsobQg7J6Q66OM64qUIOqxtOuTnOumrOyngCDs
lYrslZjsirXri4jri6QuIg0KfQ0KSW1wb3J0LU1vZHVsZSAtTmFtZSAkbW9kdWxlUGF0aCAtRm9y
Y2UgLUVycm9yQWN0aW9uIFN0b3ANCg0KZnVuY3Rpb24gR2V0LUZ1bGxMaXRlcmFsUGF0aCB7DQog
ICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kUGF0aCkNCiAg
ICByZXR1cm4gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFBhdGgpLlRyaW1FbmQoJ1wn
KQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LUlzVW5kZXJQYXRoIHsNCiAgICBwYXJhbSgNCiAgICAgICAg
W1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW3N0cmluZ10kQ2FuZGlkYXRlLA0KICAgICAg
ICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bc3RyaW5nXSRQYXJlbnQNCiAgICApDQog
ICAgJGNhbmRpZGF0ZUZ1bGwgPSBHZXQtRnVsbExpdGVyYWxQYXRoICRDYW5kaWRhdGUNCiAgICAk
cGFyZW50RnVsbCA9IEdldC1GdWxsTGl0ZXJhbFBhdGggJFBhcmVudA0KICAgIHJldHVybiAkY2Fu
ZGlkYXRlRnVsbC5FcXVhbHMoJHBhcmVudEZ1bGwsIFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06
Ok9yZGluYWxJZ25vcmVDYXNlKSAtb3INCiAgICAgICAgJGNhbmRpZGF0ZUZ1bGwuU3RhcnRzV2l0
aCgkcGFyZW50RnVsbCArICdcJywgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbEln
bm9yZUNhc2UpDQp9DQoNCmZ1bmN0aW9uIFdyaXRlLUpzb25BdG9taWMgew0KICAgIHBhcmFtKA0K
ICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV0kVmFsdWUsDQogICAgICAgIFtQ
YXJhbWV0ZXIoTWFuZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFBhdGgNCiAgICApDQogICAgJGRp
cmVjdG9yeSA9IFNwbGl0LVBhdGggLVBhcmVudCAkUGF0aA0KICAgIFtTeXN0ZW0uSU8uRGlyZWN0
b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRkaXJlY3RvcnkpIHwgT3V0LU51bGwNCiAgICAkdGVtcG9y
YXJ5ID0gSm9pbi1QYXRoICRkaXJlY3RvcnkgKCcudG1wLScgKyBbZ3VpZF06Ok5ld0d1aWQoKS5U
b1N0cmluZygnTicpICsgJy5qc29uJykNCiAgICAkanNvbiA9ICRWYWx1ZSB8IENvbnZlcnRUby1K
c29uIC1EZXB0aCAyMA0KICAgICR1dGY4Tm9Cb20gPSBOZXctT2JqZWN0IFN5c3RlbS5UZXh0LlVU
RjhFbmNvZGluZygkZmFsc2UpDQogICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCR0
ZW1wb3JhcnksICRqc29uICsgW0Vudmlyb25tZW50XTo6TmV3TGluZSwgJHV0ZjhOb0JvbSkNCiAg
ICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGF0aCAtUGF0aFR5cGUgTGVhZikgew0KICAg
ICAgICAkYmFja3VwID0gSm9pbi1QYXRoICRkaXJlY3RvcnkgKCcucHJldmlvdXMtJyArIFtndWlk
XTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykgKyAnLmpzb24nKQ0KICAgICAgICB0cnkgew0KICAg
ICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6UmVwbGFjZSgkdGVtcG9yYXJ5LCAkUGF0aCwgJGJh
Y2t1cCwgJHRydWUpDQogICAgICAgIH0NCiAgICAgICAgZmluYWxseSB7DQogICAgICAgICAgICBp
ZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmFja3VwIC1QYXRoVHlwZSBMZWFmKSB7DQogICAg
ICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6RGVsZXRlKCRiYWNrdXApDQogICAgICAgICAg
ICB9DQogICAgICAgIH0NCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIFtTeXN0ZW0uSU8uRmls
ZV06Ok1vdmUoJHRlbXBvcmFyeSwgJFBhdGgpDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBJbml0aWFs
aXplLVdpemFyZERpcmVjdG9yeSB7DQogICAgcGFyYW0oDQogICAgICAgIFtQYXJhbWV0ZXIoTWFu
ZGF0b3J5ID0gJHRydWUpXVtzdHJpbmddJFBhdGgsDQogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0
b3J5ID0gJHRydWUpXVtzdHJpbmddJElkZW50aXR5DQogICAgKQ0KICAgICRzYWZlUGF0aCA9IEFz
c2VydC1Tb3VsT3duZWRQYXRoIC1QYXRoICRQYXRoDQogICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJh
bFBhdGggJHNhZmVQYXRoKSB7DQogICAgICAgICRpdGVtID0gR2V0LUl0ZW0gLUxpdGVyYWxQYXRo
ICRzYWZlUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYgKC1ub3QgJGl0
ZW0uUFNJc0NvbnRhaW5lcikgeyB0aHJvdyAi66eI67KV7IKsIO2PtOuNlCDsnpDrpqzsl5Ag7YyM
7J287J20IOyeiOyKteuLiOuLpDogJHNhZmVQYXRoIiB9DQogICAgICAgIGlmICgoJGl0ZW0uQXR0
cmlidXRlcyAtYmFuZCBbU3lzdGVtLklPLkZpbGVBdHRyaWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAt
bmUgMCkgew0KICAgICAgICAgICAgdGhyb3cgIuuniOuyleyCrCDsg4Htg5wg7Y+0642U64qUIOun
ge2BrOydvCDsiJgg7JeG7Iq164uI64ukOiAkc2FmZVBhdGgiDQogICAgICAgIH0NCiAgICB9DQog
ICAgZWxzZSB7IFt2b2lkXVtTeXN0ZW0uSU8uRGlyZWN0b3J5XTo6Q3JlYXRlRGlyZWN0b3J5KCRz
YWZlUGF0aCkgfQ0KDQogICAgJGFnZW50c1BhdGggPSBKb2luLVBhdGggJHNhZmVQYXRoICdBR0VO
VFMubWQnDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGFnZW50c1BhdGgp
KSB7DQogICAgICAgIFt2b2lkXShXcml0ZS1Tb3VsVXRmOEF0b21pYyAtUGF0aCAkYWdlbnRzUGF0
aCAtVGV4dCAiIyAkSWRlbnRpdHlgcmBuYHJgbuydtCDtj7TrjZTripQgJElkZW50aXR5IOyekOuj
jOunjCDrs7TqtIDtlZzri6QuYHJgbmByYG48IS0tIOyDgeychCBBR0VOVFMubWQg6rec7LmZIOye
rOyEnOyIoCDquIjsp4AgLS0+YHJgbiIpDQogICAgfQ0KICAgICRjbGF1ZGVQYXRoID0gSm9pbi1Q
YXRoICRzYWZlUGF0aCAnQ0xBVURFLm1kJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRjbGF1ZGVQYXRoKSkgew0KICAgICAgICBbdm9pZF0oV3JpdGUtU291bFV0ZjhBdG9t
aWMgLVBhdGggJGNsYXVkZVBhdGggLVRleHQgIkBBR0VOVFMubWRgcmBuIikNCiAgICB9DQogICAg
cmV0dXJuICRzYWZlUGF0aA0KfQ0KDQpmdW5jdGlvbiBOZXctU2VjdXJlVG9rZW4gew0KICAgICRi
eXRlcyA9IE5ldy1PYmplY3QgYnl0ZVtdIDMyDQogICAgJHJuZyA9IFtTeXN0ZW0uU2VjdXJpdHku
Q3J5cHRvZ3JhcGh5LlJhbmRvbU51bWJlckdlbmVyYXRvcl06OkNyZWF0ZSgpDQogICAgdHJ5IHsg
JHJuZy5HZXRCeXRlcygkYnl0ZXMpIH0gZmluYWxseSB7ICRybmcuRGlzcG9zZSgpIH0NCiAgICBy
ZXR1cm4gW0NvbnZlcnRdOjpUb0Jhc2U2NFN0cmluZygkYnl0ZXMpLlRyaW1FbmQoJz0nKS5SZXBs
YWNlKCcrJywgJy0nKS5SZXBsYWNlKCcvJywgJ18nKQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LVRva2Vu
RXF1YWwgew0KICAgIHBhcmFtKFtzdHJpbmddJFByZXNlbnRlZCwgW3N0cmluZ10kRXhwZWN0ZWQp
DQogICAgaWYgKCRudWxsIC1lcSAkUHJlc2VudGVkKSB7ICRQcmVzZW50ZWQgPSAnJyB9DQogICAg
aWYgKCRudWxsIC1lcSAkRXhwZWN0ZWQpIHsgJEV4cGVjdGVkID0gJycgfQ0KICAgICRhID0gW1N5
c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcygkUHJlc2VudGVkKQ0KICAgICRiID0g
W1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcygkRXhwZWN0ZWQpDQogICAgJGRp
ZmZlcmVuY2UgPSAkYS5MZW5ndGggLWJ4b3IgJGIuTGVuZ3RoDQogICAgJG1heGltdW0gPSBbTWF0
aF06Ok1heCgkYS5MZW5ndGgsICRiLkxlbmd0aCkNCiAgICBmb3IgKCRpID0gMDsgJGkgLWx0ICRt
YXhpbXVtOyAkaSsrKSB7DQogICAgICAgICRhdiA9IGlmICgkaSAtbHQgJGEuTGVuZ3RoKSB7ICRh
WyRpXSB9IGVsc2UgeyAwIH0NCiAgICAgICAgJGJ2ID0gaWYgKCRpIC1sdCAkYi5MZW5ndGgpIHsg
JGJbJGldIH0gZWxzZSB7IDAgfQ0KICAgICAgICAkZGlmZmVyZW5jZSA9ICRkaWZmZXJlbmNlIC1i
b3IgKCRhdiAtYnhvciAkYnYpDQogICAgfQ0KICAgIHJldHVybiAkZGlmZmVyZW5jZSAtZXEgMA0K
fQ0KDQpmdW5jdGlvbiBDb252ZXJ0VG8tTm9kZUFycmF5IHsNCiAgICBwYXJhbSgkTm9kZXMpDQog
ICAgJHJlc3VsdCA9IEAoKQ0KICAgIGlmICgkbnVsbCAtbmUgJE5vZGVzKSB7DQogICAgICAgIGZv
cmVhY2ggKCRub2RlIGluIEAoJE5vZGVzKSkgeyAkcmVzdWx0ICs9ICRub2RlIH0NCiAgICB9DQog
ICAgcmV0dXJuICwkcmVzdWx0DQp9DQoNCmZ1bmN0aW9uIFRlc3QtU2FmZUZvbGRlclRleHQgew0K
ICAgIHBhcmFtKFtzdHJpbmddJFZhbHVlLCBbc3dpdGNoXSRBbGxvd0VtcHR5LCBbc3dpdGNoXSRU
YWcpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFZhbHVlKSkgeyByZXR1
cm4gW2Jvb2xdJEFsbG93RW1wdHkgfQ0KICAgIGlmICgkVmFsdWUgLW5lICRWYWx1ZS5UcmltKCkg
LW9yICRWYWx1ZS5FbmRzV2l0aCgnLicpIC1vciAkVmFsdWUuRW5kc1dpdGgoJyAnKSkgeyByZXR1
cm4gJGZhbHNlIH0NCiAgICBmb3JlYWNoICgkY2hhcmFjdGVyIGluICRWYWx1ZS5Ub0NoYXJBcnJh
eSgpKSB7DQogICAgICAgIGlmIChbaW50XVtjaGFyXSRjaGFyYWN0ZXIgLWx0IDMyIC1vciAnPD46
Ii9cfD8qJy5Db250YWlucyhbc3RyaW5nXSRjaGFyYWN0ZXIpKSB7IHJldHVybiAkZmFsc2UgfQ0K
ICAgIH0NCiAgICBpZiAoJFRhZyAtYW5kICgkVmFsdWUuQ29udGFpbnMoJ+OAlicpIC1vciAkVmFs
dWUuQ29udGFpbnMoJ+OAlycpKSkgeyByZXR1cm4gJGZhbHNlIH0NCiAgICByZXR1cm4gJHRydWUN
Cn0NCg0KZnVuY3Rpb24gTmV3LURldGVybWluaXN0aWNXaXphcmROb2RlSWQgew0KICAgIHBhcmFt
KFtzdHJpbmddJFJlbGF0aXZlUGF0aCkNCiAgICAkYWxnb3JpdGhtID0gW1NlY3VyaXR5LkNyeXB0
b2dyYXBoeS5TSEEyNTZdOjpDcmVhdGUoKQ0KICAgIHRyeSB7DQogICAgICAgICRieXRlcyA9ICRh
bGdvcml0aG0uQ29tcHV0ZUhhc2goW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCdzb3Vs
LW5vZGUtdjd8JyArICRSZWxhdGl2ZVBhdGguUmVwbGFjZSgnXCcsICcvJykuVG9Mb3dlckludmFy
aWFudCgpKSkNCiAgICAgICAgJGd1aWRCeXRlcyA9IE5ldy1PYmplY3QgYnl0ZVtdIDE2OyBbQXJy
YXldOjpDb3B5KCRieXRlcywgJGd1aWRCeXRlcywgMTYpDQogICAgICAgIHJldHVybiAoTmV3LU9i
amVjdCBHdWlkICgsJGd1aWRCeXRlcykpLlRvU3RyaW5nKCkNCiAgICB9DQogICAgZmluYWxseSB7
ICRhbGdvcml0aG0uRGlzcG9zZSgpIH0NCn0NCg0KZnVuY3Rpb24gQ29udmVydEZyb20tV2l6YXJk
Rm9sZGVyTmFtZSB7DQogICAgcGFyYW0oW3N0cmluZ10kTmFtZSwgW1ZhbGlkYXRlU2V0KCdSJywn
RCcsJ1AnLCdTJywnVCcpXVtzdHJpbmddJExldmVsKQ0KICAgICRwcmVmaXggPSBpZiAoJExldmVs
IC1lcSAnRCcpIHsgJ14oPzooPzxncm91cD7jgJZbXuOAluOAl10r44CXKSk/JyB9IGVsc2UgeyAn
XicgfQ0KICAgICRtYXRjaCA9IFtyZWdleF06Ok1hdGNoKCROYW1lLCAkcHJlZml4ICsgJyg/PGNv
ZGU+JyArICRMZXZlbCArICcoPzxtYWpvcj5cZHsyfSkoPzpcLig/PG1pbm9yPlxkezJ9KSk/KS0o
Pzxib2R5Pi4rKSQnKQ0KICAgIGlmICgtbm90ICRtYXRjaC5TdWNjZXNzKSB7IHJldHVybiAkbnVs
bCB9DQogICAgJGJvZHkgPSAkbWF0Y2guR3JvdXBzWydib2R5J10uVmFsdWU7ICR0YWcgPSAnJw0K
ICAgICR0YWdNYXRjaCA9IFtyZWdleF06Ok1hdGNoKCRib2R5LCAnXig/PGJvZHk+Lis/KSDjgJYo
Pzx0YWc+W17jgJbjgJddKynjgJckJykNCiAgICBpZiAoJHRhZ01hdGNoLlN1Y2Nlc3MpIHsgJGJv
ZHkgPSAkdGFnTWF0Y2guR3JvdXBzWydib2R5J10uVmFsdWU7ICR0YWcgPSAkdGFnTWF0Y2guR3Jv
dXBzWyd0YWcnXS5WYWx1ZSB9DQogICAgJG5hbWVLbyA9ICRib2R5OyAkbmFtZUVuID0gJycNCiAg
ICAkZW5nbGlzaCA9IFtyZWdleF06Ok1hdGNoKCRib2R5LCAnXig/PGtvPi4rKVwoKD88ZW4+W14o
KV0qKVwpJCcpDQogICAgaWYgKCRlbmdsaXNoLlN1Y2Nlc3MpIHsgJG5hbWVLbyA9ICRlbmdsaXNo
Lkdyb3Vwc1sna28nXS5WYWx1ZTsgJG5hbWVFbiA9ICRlbmdsaXNoLkdyb3Vwc1snZW4nXS5WYWx1
ZSB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJG5hbWVLbykpIHsgcmV0
dXJuICRudWxsIH0NCiAgICByZXR1cm4gW3BzY3VzdG9tb2JqZWN0XUB7IGNvZGUgPSAkbWF0Y2gu
R3JvdXBzWydjb2RlJ10uVmFsdWU7IG1ham9yID0gW2ludF0kbWF0Y2guR3JvdXBzWydtYWpvcidd
LlZhbHVlOyBncm91cFByZWZpeCA9ICRtYXRjaC5Hcm91cHNbJ2dyb3VwJ10uVmFsdWU7IG5hbWVL
byA9ICRuYW1lS287IG5hbWVFbiA9ICRuYW1lRW47IHRhZyA9ICR0YWcgfQ0KfQ0KDQpmdW5jdGlv
biBHZXQtV2l6YXJkRXhpc3RpbmdOb2RlcyB7DQogICAgcGFyYW0oW3N0cmluZ10kUm9vdCkNCiAg
ICAkcmVzdWx0ID0gTmV3LU9iamVjdCBDb2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0K
ICAgIGZ1bmN0aW9uIFZpc2l0LVdpemFyZExldmVsIHsNCiAgICAgICAgcGFyYW0oW3N0cmluZ10k
UGFyZW50UGF0aCwgW0FsbG93TnVsbCgpXVtzdHJpbmddJFBhcmVudElkLCBbc3RyaW5nXSRMZXZl
bCwgW3N0cmluZ10kUGFyZW50UmVsYXRpdmUpDQogICAgICAgICRuZXh0ID0gQHsgUj0nRCc7IEQ9
J1AnOyBQPSdTJzsgUz0nVCc7IFQ9JG51bGwgfVskTGV2ZWxdDQogICAgICAgIGZvcmVhY2ggKCRk
aXJlY3RvcnkgaW4gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkUGFyZW50UGF0aCAtRGly
ZWN0b3J5IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU3RvcCB8IFNvcnQtT2JqZWN0IE5hbWUpKSB7DQog
ICAgICAgICAgICBpZiAoKCRkaXJlY3RvcnkuQXR0cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJp
YnV0ZXNdOjpSZXBhcnNlUG9pbnQpIC1uZSAwKSB7IHRocm93ICLquLDsobQg7J6R7JeFIOq1rOyh
sOyXkCDrp4HtgazqsIAg7J6I7Iq164uI64ukOiAkKCRkaXJlY3RvcnkuRnVsbE5hbWUpIiB9DQog
ICAgICAgICAgICAkcGFyc2VkID0gQ29udmVydEZyb20tV2l6YXJkRm9sZGVyTmFtZSAtTmFtZSAk
ZGlyZWN0b3J5Lk5hbWUgLUxldmVsICRMZXZlbA0KICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAk
cGFyc2VkKSB7DQogICAgICAgICAgICAgICAgaWYgKCRkaXJlY3RvcnkuTmFtZSAtbWF0Y2ggJ14o
PzrjgJZbXuOAluOAl10r44CXKT9bUkRQU1RdXGR7Mn0oPzpcLlxkezJ9KT8tJykgeyB0aHJvdyAi
6riw7KG0IO2PtOuNlCDri6jqs4TqsIAg66ee7KeAIOyViuyKteuLiOuLpDogJCgkZGlyZWN0b3J5
LkZ1bGxOYW1lKSIgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQog
ICAgICAgICAgICAkcmVsYXRpdmUgPSBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgk
UGFyZW50UmVsYXRpdmUpKSB7ICRkaXJlY3RvcnkuTmFtZSB9IGVsc2UgeyAkUGFyZW50UmVsYXRp
dmUgKyAnXCcgKyAkZGlyZWN0b3J5Lk5hbWUgfQ0KICAgICAgICAgICAgJGlkID0gTmV3LURldGVy
bWluaXN0aWNXaXphcmROb2RlSWQgLVJlbGF0aXZlUGF0aCAkcmVsYXRpdmUNCiAgICAgICAgICAg
ICRyZXN1bHQuQWRkKFtwc2N1c3RvbW9iamVjdF1bb3JkZXJlZF1AeyBpZD0kaWQ7IHBhcmVudElk
PSRQYXJlbnRJZDsgbGV2ZWw9JExldmVsOyBuYW1lS289JHBhcnNlZC5uYW1lS287IG5hbWVFbj0k
cGFyc2VkLm5hbWVFbjsgdGFnPSRwYXJzZWQudGFnOyBvcmRlcj1bTWF0aF06Ok1heCgwLChbaW50
XSRwYXJzZWQubWFqb3ItMSkpOyBzdGF0dXM9J2FjdGl2ZSc7IGNvZGU9JHBhcnNlZC5jb2RlOyBn
cm91cFByZWZpeD0kcGFyc2VkLmdyb3VwUHJlZml4OyByZWxhdGl2ZVBhdGg9JHJlbGF0aXZlLlJl
cGxhY2UoJ1wnLCcvJyk7IGltbXV0YWJsZT0kdHJ1ZTsgb3JpZ2luPSdleGlzdGluZycgfSkNCiAg
ICAgICAgICAgIGlmICgkbnVsbCAtbmUgJG5leHQpIHsgVmlzaXQtV2l6YXJkTGV2ZWwgLVBhcmVu
dFBhdGggJGRpcmVjdG9yeS5GdWxsTmFtZSAtUGFyZW50SWQgJGlkIC1MZXZlbCAkbmV4dCAtUGFy
ZW50UmVsYXRpdmUgJHJlbGF0aXZlIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBWaXNpdC1XaXph
cmRMZXZlbCAtUGFyZW50UGF0aCAkUm9vdCAtUGFyZW50SWQgJG51bGwgLUxldmVsICdSJyAtUGFy
ZW50UmVsYXRpdmUgJycNCiAgICByZXR1cm4gQCgkcmVzdWx0LlRvQXJyYXkoKSkNCn0NCg0KZnVu
Y3Rpb24gVGVzdC1XaXphcmRJY29GaWxlIHsNCiAgICBwYXJhbShbc3RyaW5nXSRQYXRoLCBbcmVm
XSRSZWFzb24pDQogICAgJFJlYXNvbi5WYWx1ZSA9ICRudWxsDQogICAgdHJ5IHsNCiAgICAgICAg
aWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJFBhdGggLVBhdGhUeXBlIExlYWYpKSB7
ICRSZWFzb24uVmFsdWU9J0lDTyDtjIzsnbzsnbQg7JeG7Iq164uI64ukLic7IHJldHVybiAkZmFs
c2UgfQ0KICAgICAgICAkaXRlbSA9IEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkUGF0aCAtRm9yY2Ug
LUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYgKCgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtJ
Ty5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDAgLW9yIC1ub3QgJGl0ZW0uRXh0
ZW5zaW9uLkVxdWFscygnLmljbycsW1N0cmluZ0NvbXBhcmlzb25dOjpPcmRpbmFsSWdub3JlQ2Fz
ZSkpIHsgJFJlYXNvbi5WYWx1ZT0n66eB7YGs6rCAIOyVhOuLjCAuaWNvIO2MjOydvOydtOyWtOyV
vCDtlanri4jri6QuJzsgcmV0dXJuICRmYWxzZSB9DQogICAgICAgICRwYXJlbnRJdGVtPUdldC1J
dGVtIC1MaXRlcmFsUGF0aCAoU3BsaXQtUGF0aCAtUGFyZW50ICRpdGVtLkZ1bGxOYW1lKSAtRm9y
Y2UgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgaWYoKCRwYXJlbnRJdGVtLkF0dHJpYnV0ZXMt
YmFuZFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCktbmUgMCl7JFJlYXNvbi5WYWx1
ZT0nSUNPIO2MjOydvOydmCDrsJTroZwg7JyEIO2PtOuNlOqwgCDrp4HtgazsnoXri4jri6QuJzty
ZXR1cm4gJGZhbHNlfQ0KICAgICAgICAkYnl0ZXM9W0lPLkZpbGVdOjpSZWFkQWxsQnl0ZXMoJGl0
ZW0uRnVsbE5hbWUpDQogICAgICAgIGlmKCRieXRlcy5MZW5ndGggLWx0IDIyIC1vciBbQml0Q29u
dmVydGVyXTo6VG9VSW50MTYoJGJ5dGVzLDApLW5lIDAgLW9yIFtCaXRDb252ZXJ0ZXJdOjpUb1VJ
bnQxNigkYnl0ZXMsMiktbmUgMSl7JFJlYXNvbi5WYWx1ZT0nSUNPIOuouOumrO2RnOqwgCDsmKzr
sJTrpbTsp4Ag7JWK7Iq164uI64ukLic7cmV0dXJuICRmYWxzZX0NCiAgICAgICAgJGNvdW50PVtC
aXRDb252ZXJ0ZXJdOjpUb1VJbnQxNigkYnl0ZXMsNCk7IGlmKCRjb3VudC1sdCAxLW9yJGNvdW50
LWd0IDI1Ni1vciRieXRlcy5MZW5ndGgtbHQgNisxNiokY291bnQpeyRSZWFzb24uVmFsdWU9J0lD
TyDrlJTroInthLDrpqzqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nO3JldHVybiAkZmFs
c2V9DQogICAgICAgICRkaXJlY3RvcnlFbmQ9NisxNiokY291bnQNCiAgICAgICAgZm9yKCRpPTA7
JGktbHQkY291bnQ7JGkrKyl7ICRlbnRyeT02KzE2KiRpOyAkc2l6ZT1bQml0Q29udmVydGVyXTo6
VG9VSW50MzIoJGJ5dGVzLCRlbnRyeSs4KTskb2Zmc2V0PVtCaXRDb252ZXJ0ZXJdOjpUb1VJbnQz
MigkYnl0ZXMsJGVudHJ5KzEyKTtpZigkc2l6ZS1sdCA4LW9yJG9mZnNldC1sdCRkaXJlY3RvcnlF
bmQtb3IoW3VpbnQ2NF0kb2Zmc2V0K1t1aW50NjRdJHNpemUpLWd0W3VpbnQ2NF0kYnl0ZXMuTGVu
Z3RoKXskUmVhc29uLlZhbHVlPSJJQ08g7ZWt66qpICRpIOydmCDrspTsnITqsIAg7Jis67CU66W0
7KeAIOyViuyKteuLiOuLpC4iO3JldHVybiAkZmFsc2V9IH0NCiAgICAgICAgcmV0dXJuICR0cnVl
DQogICAgfSBjYXRjaCB7ICRSZWFzb24uVmFsdWU9JF8uRXhjZXB0aW9uLk1lc3NhZ2U7IHJldHVy
biAkZmFsc2UgfQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LVdpemFyZFN0YXRlIHsNCiAgICBwYXJhbSgN
CiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldJFN0YXRlLA0KICAgICAgICBb
c3dpdGNoXSRSZXF1aXJlQXBwcm92YWwNCiAgICApDQogICAgJGVycm9ycyA9IE5ldy1PYmplY3Qg
U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtzdHJpbmddDQogICAgJGxldmVscyA9IEAo
J1InLCAnRCcsICdQJywgJ1MnLCAnVCcpDQogICAgJGV4cGVjdGVkUGFyZW50ID0gQHsgUiA9ICRu
dWxsOyBEID0gJ1InOyBQID0gJ0QnOyBTID0gJ1AnOyBUID0gJ1MnIH0NCiAgICAkaWRzID0gQHt9
DQogICAgJG5vZGVzID0gQ29udmVydFRvLU5vZGVBcnJheSAkU3RhdGUubm9kZXMNCg0KICAgIGZv
cmVhY2ggKCRub2RlIGluICRub2Rlcykgew0KICAgICAgICAkcHJvcGVydGllcyA9IEAoJ2lkJywg
J3BhcmVudElkJywgJ2xldmVsJywgJ25hbWVLbycsICduYW1lRW4nLCAndGFnJywgJ29yZGVyJywg
J3N0YXR1cycpDQogICAgICAgIGZvcmVhY2ggKCRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcykgew0K
ICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkbm9kZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwcm9w
ZXJ0eV0pIHsNCiAgICAgICAgICAgICAgICAkZXJyb3JzLkFkZCgi64W465Oc7JeQIO2VhOuTnOqw
gCDsl4bsirXri4jri6Q6ICRwcm9wZXJ0eSIpDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAg
ICAgICAgaWYgKCRudWxsIC1lcSAkbm9kZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydpZCddKSB7IGNv
bnRpbnVlIH0NCiAgICAgICAgJHBhcnNlZCA9IFtndWlkXTo6RW1wdHkNCiAgICAgICAgaWYgKC1u
b3QgW2d1aWRdOjpUcnlQYXJzZShbc3RyaW5nXSRub2RlLmlkLCBbcmVmXSRwYXJzZWQpKSB7DQog
ICAgICAgICAgICAkZXJyb3JzLkFkZCgi64W465OcIGlk6rCAIFVVSUTqsIAg7JWE64uZ64uI64uk
OiAkKCRub2RlLmlkKSIpDQogICAgICAgIH0NCiAgICAgICAgZWxzZWlmICgkaWRzLkNvbnRhaW5z
S2V5KChbc3RyaW5nXSRub2RlLmlkKS5Ub0xvd2VySW52YXJpYW50KCkpKSB7DQogICAgICAgICAg
ICAkZXJyb3JzLkFkZCgi64W465OcIGlk6rCAIOykkeuzteuQqeuLiOuLpDogJCgkbm9kZS5pZCki
KQ0KICAgICAgICB9DQogICAgICAgIGVsc2UgeyAkaWRzWyhbc3RyaW5nXSRub2RlLmlkKS5Ub0xv
d2VySW52YXJpYW50KCldID0gJG5vZGUgfQ0KICAgICAgICBpZiAoJGxldmVscyAtbm90Y29udGFp
bnMgW3N0cmluZ10kbm9kZS5sZXZlbCkgew0KICAgICAgICAgICAgJGVycm9ycy5BZGQoIuyVjCDs
iJgg7JeG64qUIOuLqOqzhOyeheuLiOuLpDogJCgkbm9kZS5sZXZlbCkiKQ0KICAgICAgICB9DQog
ICAgICAgIGlmIChAKCdhY3RpdmUnLCAnZGVmZXJyZWQnKSAtbm90Y29udGFpbnMgW3N0cmluZ10k
bm9kZS5zdGF0dXMpIHsNCiAgICAgICAgICAgICRlcnJvcnMuQWRkKCJzdGF0dXPripQgYWN0aXZl
IOuYkOuKlCBkZWZlcnJlZOyXrOyVvCDtlanri4jri6Q6ICQoJG5vZGUuaWQpIikNCiAgICAgICAg
fQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRub2Rl
Lm5hbWVLbykpIHsNCiAgICAgICAgICAgICRlcnJvcnMuQWRkKCLtlZzquIAg7J2066aE7J20IOu5
hOyXiOyKteuLiOuLpDogJCgkbm9kZS5pZCkiKQ0KICAgICAgICB9DQogICAgICAgIGVsc2VpZiAo
LW5vdCAoVGVzdC1TYWZlRm9sZGVyVGV4dCAtVmFsdWUgKFtzdHJpbmddJG5vZGUubmFtZUtvKSkp
IHsNCiAgICAgICAgICAgICRlcnJvcnMuQWRkKCLtlZzquIAg7J2066aE7JeQIO2PtOuNlOuqheyc
vOuhnCDsk7gg7IiYIOyXhuuKlCDrrLjsnpDrgpgg64GdIOqzteuwsS/soJDsnbQg7J6I7Iq164uI
64ukOiAkKCRub2RlLmlkKSIpDQogICAgICAgIH0NCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtU2Fm
ZUZvbGRlclRleHQgLVZhbHVlIChbc3RyaW5nXSRub2RlLm5hbWVFbikgLUFsbG93RW1wdHkpKSB7
DQogICAgICAgICAgICAkZXJyb3JzLkFkZCgi7JiB66y4IOydtOumhOyXkCDtj7TrjZTrqoXsnLzr
oZwg7JO4IOyImCDsl4bripQg66y47J6Q64KYIOuBnSDqs7XrsLEv7KCQ7J20IOyeiOyKteuLiOuL
pDogJCgkbm9kZS5pZCkiKQ0KICAgICAgICB9DQogICAgICAgIGlmICgtbm90IChUZXN0LVNhZmVG
b2xkZXJUZXh0IC1WYWx1ZSAoW3N0cmluZ10kbm9kZS50YWcpIC1BbGxvd0VtcHR5IC1UYWcpKSB7
DQogICAgICAgICAgICAkZXJyb3JzLkFkZCgi7YOc6re47JeQIO2PtOuNlOuqheycvOuhnCDsk7gg
7IiYIOyXhuuKlCDrrLjsnpDCt+uwmOyghOqwgSDqtITtmLjCt+uBnSDqs7XrsLEv7KCQ7J20IOye
iOyKteuLiOuLpDogJCgkbm9kZS5pZCkiKQ0KICAgICAgICB9DQogICAgICAgIGlmIChbaW50XSRu
b2RlLm9yZGVyIC1sdCAwKSB7ICRlcnJvcnMuQWRkKCJvcmRlcuuKlCAwIOydtOyDgeydtOyWtOyV
vCDtlanri4jri6Q6ICQoJG5vZGUuaWQpIikgfQ0KICAgICAgICAkbm9kZUtleSA9IChbc3RyaW5n
XSRub2RlLmlkKS5Ub0xvd2VySW52YXJpYW50KCkNCiAgICAgICAgJGltbXV0YWJsZSA9ICRudWxs
IC1uZSAkbm9kZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydpbW11dGFibGUnXSAtYW5kICRub2RlLmlt
bXV0YWJsZSAtZXEgJHRydWUNCiAgICAgICAgaWYgKCRpbW11dGFibGUgLWFuZCAtbm90ICRzY3Jp
cHQ6SW1tdXRhYmxlTm9kZXNCeUlkLkNvbnRhaW5zS2V5KCRub2RlS2V5KSkgeyAkZXJyb3JzLkFk
ZCgi7KG07J6s7ZWY7KeAIOyViuuKlCDtla3rqqnsnYQg6riw7KG0IOqzoOyglSDtla3rqqnsnLzr
oZwg7ZGc7Iuc7ZaI7Iq164uI64ukOiAkKCRub2RlLmlkKSIpIH0NCiAgICAgICAgaWYgKCRzY3Jp
cHQ6SW1tdXRhYmxlTm9kZXNCeUlkLkNvbnRhaW5zS2V5KCRub2RlS2V5KSkgew0KICAgICAgICAg
ICAgJGV4cGVjdGVkTm9kZSA9ICRzY3JpcHQ6SW1tdXRhYmxlTm9kZXNCeUlkWyRub2RlS2V5XQ0K
ICAgICAgICAgICAgaWYgKC1ub3QgJGltbXV0YWJsZSkgeyAkZXJyb3JzLkFkZCgi6riw7KG0IO2V
reuqqeydmCDqs6DsoJUg7ZGc7Iuc6rCAIOu5oOyhjOyKteuLiOuLpDogJCgkbm9kZS5pZCkiKSB9
DQogICAgICAgICAgICBmb3JlYWNoICgkZmllbGQgaW4gQCgncGFyZW50SWQnLCdsZXZlbCcsJ25h
bWVLbycsJ25hbWVFbicsJ3RhZycsJ29yZGVyJywnc3RhdHVzJywnY29kZScsJ3JlbGF0aXZlUGF0
aCcsJ29yaWdpbicpKSB7DQogICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddJG5vZGUuUFNPYmpl
Y3QuUHJvcGVydGllc1skZmllbGRdLlZhbHVlIC1jbmUgW3N0cmluZ10kZXhwZWN0ZWROb2RlLlBT
T2JqZWN0LlByb3BlcnRpZXNbJGZpZWxkXS5WYWx1ZSkgeyAkZXJyb3JzLkFkZCgi6riw7KG0IO2V
reuqqeydgCDrsJTqvrjqsbDrgpgg7J6s67KI7Zi47ZmU7ZWgIOyImCDsl4bsirXri4jri6Q6ICQo
JG5vZGUuaWQpICgkZmllbGQpIikgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0K
ICAgIGZvcmVhY2ggKCRlbnRyeSBpbiAkc2NyaXB0OkltbXV0YWJsZU5vZGVzQnlJZC5HZXRFbnVt
ZXJhdG9yKCkpIHsNCiAgICAgICAgaWYgKC1ub3QgJGlkcy5Db250YWluc0tleShbc3RyaW5nXSRl
bnRyeS5LZXkpKSB7ICRlcnJvcnMuQWRkKCLquLDsobQg7J6R7JeFIO2PtOuNlOulvCDrqqnroZ3s
l5DshJwg7IKt7KCc7ZWgIOyImCDsl4bsirXri4jri6Q6ICQoJGVudHJ5LlZhbHVlLnJlbGF0aXZl
UGF0aCkiKSB9DQogICAgfQ0KDQogICAgZm9yZWFjaCAoJG5vZGUgaW4gJG5vZGVzKSB7DQogICAg
ICAgIGlmICgkbGV2ZWxzIC1ub3Rjb250YWlucyBbc3RyaW5nXSRub2RlLmxldmVsKSB7IGNvbnRp
bnVlIH0NCiAgICAgICAgJHBhcmVudExldmVsID0gJGV4cGVjdGVkUGFyZW50W1tzdHJpbmddJG5v
ZGUubGV2ZWxdDQogICAgICAgIGlmICgkbnVsbCAtZXEgJHBhcmVudExldmVsKSB7DQogICAgICAg
ICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJG5vZGUu
cGFyZW50SWQpKSB7DQogICAgICAgICAgICAgICAgJGVycm9ycy5BZGQoIlIg64W465Oc64qUIOu2
gOuqqOulvCDqsIDsp4gg7IiYIOyXhuyKteuLiOuLpDogJCgkbm9kZS5pZCkiKQ0KICAgICAgICAg
ICAgfQ0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJHBhcmVudEtleSA9
IChbc3RyaW5nXSRub2RlLnBhcmVudElkKS5Ub0xvd2VySW52YXJpYW50KCkNCiAgICAgICAgICAg
IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJG5vZGUucGFyZW50SWQp
IC1vciAtbm90ICRpZHMuQ29udGFpbnNLZXkoJHBhcmVudEtleSkpIHsNCiAgICAgICAgICAgICAg
ICAkZXJyb3JzLkFkZCgi67aA66qoIOuFuOuTnOulvCDssL7sp4Ag66q77ZaI7Iq164uI64ukOiAk
KCRub2RlLmlkKSIpDQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlaWYgKFtzdHJpbmdd
JGlkc1skcGFyZW50S2V5XS5sZXZlbCAtbmUgJHBhcmVudExldmVsKSB7DQogICAgICAgICAgICAg
ICAgJGVycm9ycy5BZGQoIiQoJG5vZGUubGV2ZWwp7J2YIOu2gOuqqOuKlCAkcGFyZW50TGV2ZWwg
64uo6rOE7Jes7JW8IO2VqeuLiOuLpDogJCgkbm9kZS5pZCkiKQ0KICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgZWxzZWlmIChbc3RyaW5nXSRub2RlLnN0YXR1cyAtZXEgJ2FjdGl2ZScgLWFuZCBb
c3RyaW5nXSRpZHNbJHBhcmVudEtleV0uc3RhdHVzIC1lcSAnZGVmZXJyZWQnKSB7DQogICAgICAg
ICAgICAgICAgJGVycm9ycy5BZGQoIuuvuOukhCDrkZQg67aA66qoIOyVhOuemOyXkOuKlCDsgqzs
mqkg7KSR7J24IOyekOyLneydhCDrkZgg7IiYIOyXhuyKteuLiOuLpDogJCgkbm9kZS5pZCkiKQ0K
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKFtzdHJpbmddJG5vZGUuc3RhdHVzIC1lcSAn
YWN0aXZlJyAtYW5kICRudWxsIC1uZSAkU3RhdGUuUFNPYmplY3QuUHJvcGVydGllc1snZGVmZXJy
ZWRMZXZlbHMnXSAtYW5kDQogICAgICAgICAgICAgICAgJG51bGwgLW5lICRTdGF0ZS5kZWZlcnJl
ZExldmVscy5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwYXJlbnRMZXZlbF0gLWFuZCAkU3RhdGUuZGVm
ZXJyZWRMZXZlbHMuUFNPYmplY3QuUHJvcGVydGllc1skcGFyZW50TGV2ZWxdLlZhbHVlIC1lcSAk
dHJ1ZSkgew0KICAgICAgICAgICAgICAgICRlcnJvcnMuQWRkKCIkcGFyZW50TGV2ZWwg64uo6rOE
IOyghOyytOulvCDrr7jro6wg64+Z7JWI7JeQ64qUIOq3uCDslYTrnpggJCgkbm9kZS5sZXZlbCkg
7ZWt66qp7J2EIOyCrOyaqe2VoCDsiJgg7JeG7Iq164uI64ukOiAkKCRub2RlLmlkKSIpDQogICAg
ICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAkc2libGluZ0tleXMgPSBAe30NCiAg
ICBmb3JlYWNoICgkbm9kZSBpbiAkbm9kZXMpIHsNCiAgICAgICAgaWYgKFtzdHJpbmddJG5vZGUu
c3RhdHVzIC1lcSAnYWN0aXZlJyAtYW5kICRudWxsIC1uZSAkU3RhdGUuUFNPYmplY3QuUHJvcGVy
dGllc1snZGVmZXJyZWRMZXZlbHMnXSAtYW5kDQogICAgICAgICAgICAkbnVsbCAtbmUgJFN0YXRl
LmRlZmVycmVkTGV2ZWxzLlBTT2JqZWN0LlByb3BlcnRpZXNbW3N0cmluZ10kbm9kZS5sZXZlbF0g
LWFuZCAkU3RhdGUuZGVmZXJyZWRMZXZlbHMuUFNPYmplY3QuUHJvcGVydGllc1tbc3RyaW5nXSRu
b2RlLmxldmVsXS5WYWx1ZSAtZXEgJHRydWUpIHsNCiAgICAgICAgICAgICRlcnJvcnMuQWRkKCIk
KCRub2RlLmxldmVsKSDri6jqs4Qg7KCE7LK066W8IOuvuOujrCDsg4Htg5zsmYAg7IKs7JqpIOyk
keyduCDtla3rqqnsnbQg64+Z7Iuc7JeQIOyeiOyKteuLiOuLpDogJCgkbm9kZS5pZCkiKQ0KICAg
ICAgICB9DQogICAgICAgICRrZXkgPSAoW3N0cmluZ10kbm9kZS5wYXJlbnRJZCkuVG9Mb3dlcklu
dmFyaWFudCgpICsgJ3wnICsgKFtzdHJpbmddJG5vZGUubGV2ZWwpICsgJ3wnICsgKFtzdHJpbmdd
JG5vZGUubmFtZUtvKS5UcmltKCkuVG9Mb3dlckludmFyaWFudCgpDQogICAgICAgIGlmICgkc2li
bGluZ0tleXMuQ29udGFpbnNLZXkoJGtleSkpIHsgJGVycm9ycy5BZGQoIuqwmeydgCDsnITsuZjs
l5Ag6rCZ7J2AIOydtOumhOydtCDspJHrs7XrkKnri4jri6Q6ICQoJG5vZGUubmFtZUtvKSIpIH0N
CiAgICAgICAgZWxzZSB7ICRzaWJsaW5nS2V5c1ska2V5XSA9ICR0cnVlIH0NCiAgICB9DQoNCiAg
ICBpZiAoJG51bGwgLWVxICRTdGF0ZS5pY29uIC1vciBAKCdkZWZhdWx0JywgJ2ltcG9ydGVkJywg
J2dlbmVyYXRlZCcsICdhZG9wdC1leGlzdGluZycpIC1ub3Rjb250YWlucyBbc3RyaW5nXSRTdGF0
ZS5pY29uLm1vZGUpIHsNCiAgICAgICAgJGVycm9ycy5BZGQoJ+ujqO2KuCDslYTsnbTsvZgg67Cp
7Iud7J2AIGRlZmF1bHQvaW1wb3J0ZWQvZ2VuZXJhdGVkL2Fkb3B0LWV4aXN0aW5nIOykkSDtlZjr
gpjsl6zslbwg7ZWp64uI64ukLicpDQogICAgfQ0KICAgIGVsc2VpZiAoW3N0cmluZ10kU3RhdGUu
aWNvbi5tb2RlIC1pbiBAKCdpbXBvcnRlZCcsJ2Fkb3B0LWV4aXN0aW5nJykgLWFuZCBbc3RyaW5n
XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJFN0YXRlLmljb24ucGF0aCkpIHsNCiAgICAg
ICAgJGVycm9ycy5BZGQoJ+qwgOyguOyYrCDslYTsnbTsvZjsnYQg7ISg7YOd7ZaI64uk66m0IOyb
kOuzuCDtjIzsnbwg6rK966Gc6rCAIO2VhOyalO2VqeuLiOuLpC4nKQ0KICAgIH0NCiAgICBlbHNl
aWYgKFtzdHJpbmddJFN0YXRlLmljb24ubW9kZSAtaW4gQCgnaW1wb3J0ZWQnLCdhZG9wdC1leGlz
dGluZycpKSB7DQogICAgICAgICRpY29uUmVhc29uPSRudWxsDQogICAgICAgIGlmKC1ub3QoVGVz
dC1XaXphcmRJY29GaWxlIC1QYXRoIChbc3RyaW5nXSRTdGF0ZS5pY29uLnBhdGgpIC1SZWFzb24g
KFtyZWZdJGljb25SZWFzb24pKSl7JGVycm9ycy5BZGQoIklDTyDtjIzsnbzsnYQg7Iq57J247ZWg
IOyImCDsl4bsirXri4jri6Q6ICRpY29uUmVhc29uIil9DQogICAgfQ0KICAgIGlmICgkUmVxdWly
ZUFwcHJvdmFsIC1hbmQgJFN0YXRlLmFwcHJvdmVkIC1uZSAkdHJ1ZSkgew0KICAgICAgICAkZXJy
b3JzLkFkZCgn66eI7KeA66eJIO2ZleyduCDsg4HsnpDrpbwg7ISg7YOd7ZW07JW8IOyggeyaqSDs
pIDruYTrpbwg66eI7LmgIOyImCDsnojsirXri4jri6QuJykNCiAgICB9DQogICAgaWYgKCRSZXF1
aXJlQXBwcm92YWwgLWFuZCBAKCRub2RlcyB8IFdoZXJlLU9iamVjdCB7ICRfLmxldmVsIC1lcSAn
UicgLWFuZCAkXy5zdGF0dXMgLWVxICdhY3RpdmUnIH0pLkNvdW50IC1sdCAxKSB7DQogICAgICAg
ICRlcnJvcnMuQWRkKCfstZzsooUg7ZmV7KCV7JeQ64qUIOyCrOyaqSDspJHsnbgg7Jet7ZWgKFIp
7J20IOy1nOyGjCAx6rCcIO2VhOyalO2VqeuLiOuLpC4nKQ0KICAgIH0NCiAgICByZXR1cm4gQCgk
ZXJyb3JzKQ0KfQ0KDQpmdW5jdGlvbiBHZXQtUHJldmlld1BhdGhzIHsNCiAgICBwYXJhbShbUGFy
YW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV0kU3RhdGUpDQogICAgJG5vZGVzID0gQ29udmVydFRv
LU5vZGVBcnJheSAkU3RhdGUubm9kZXMNCiAgICAkYnlJZCA9IEB7fQ0KICAgIGZvcmVhY2ggKCRu
b2RlIGluICRub2RlcykgeyAkYnlJZFtbc3RyaW5nXSRub2RlLmlkXSA9ICRub2RlIH0NCiAgICAk
cGF0aHMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0
XQ0KICAgIGZvcmVhY2ggKCRub2RlIGluICgkbm9kZXMgfCBTb3J0LU9iamVjdCBsZXZlbCwgb3Jk
ZXIsIG5hbWVLbykpIHsNCiAgICAgICAgJHBhcnRzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVj
dGlvbnMuR2VuZXJpYy5MaXN0W3N0cmluZ10NCiAgICAgICAgJGN1cnNvciA9ICRub2RlDQogICAg
ICAgICRndWFyZCA9IDANCiAgICAgICAgd2hpbGUgKCRudWxsIC1uZSAkY3Vyc29yIC1hbmQgJGd1
YXJkIC1sdCA4KSB7DQogICAgICAgICAgICAkY29kZSA9IFtzdHJpbmddJGN1cnNvci5jb2RlDQog
ICAgICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkY29kZSkpIHsgJGNv
ZGUgPSBbc3RyaW5nXSRjdXJzb3IubGV2ZWwgKyAoW2ludF0kY3Vyc29yLm9yZGVyICsgMSkuVG9T
dHJpbmcoJzAwJykgfQ0KICAgICAgICAgICAgJGxhYmVsID0gJGNvZGUgKyAnLScgKyAoW3N0cmlu
Z10kY3Vyc29yLm5hbWVLbykuVHJpbSgpDQogICAgICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6
SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJGN1cnNvci5uYW1lRW4pKSB7ICRsYWJlbCArPSAn
KCcgKyAoW3N0cmluZ10kY3Vyc29yLm5hbWVFbikuVHJpbSgpICsgJyknIH0NCiAgICAgICAgICAg
IGlmICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kY3Vyc29yLnRh
ZykpIHsgJGxhYmVsICs9ICcg44CWJyArIChbc3RyaW5nXSRjdXJzb3IudGFnKS5UcmltKCcgJywg
J+OAlicsICfjgJcnKSArICfjgJcnIH0NCiAgICAgICAgICAgICRwYXJ0cy5JbnNlcnQoMCwgJGxh
YmVsKQ0KICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmlu
Z10kY3Vyc29yLnBhcmVudElkKSkgeyAkY3Vyc29yID0gJG51bGwgfQ0KICAgICAgICAgICAgZWxz
ZWlmICgkYnlJZC5Db250YWluc0tleShbc3RyaW5nXSRjdXJzb3IucGFyZW50SWQpKSB7ICRjdXJz
b3IgPSAkYnlJZFtbc3RyaW5nXSRjdXJzb3IucGFyZW50SWRdIH0NCiAgICAgICAgICAgIGVsc2Ug
eyAkY3Vyc29yID0gJG51bGwgfQ0KICAgICAgICAgICAgJGd1YXJkKysNCiAgICAgICAgfQ0KICAg
ICAgICAkcGF0aHMuQWRkKFtwc2N1c3RvbW9iamVjdF1AeyBpZCA9IFtzdHJpbmddJG5vZGUuaWQ7
IHN0YXR1cyA9IFtzdHJpbmddJG5vZGUuc3RhdHVzOyBwYXRoID0gKCRwYXJ0cyAtam9pbiAnXCcp
IH0pDQogICAgfQ0KICAgIHJldHVybiBAKCRwYXRocykNCn0NCg0KZnVuY3Rpb24gUmVhZC1SYXdI
dHRwUmVxdWVzdCB7DQogICAgcGFyYW0oW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkdHJ1ZSldW1N5
c3RlbS5OZXQuU29ja2V0cy5UY3BDbGllbnRdJENsaWVudCkNCiAgICAkc3RyZWFtID0gJENsaWVu
dC5HZXRTdHJlYW0oKQ0KICAgICRzdHJlYW0uUmVhZFRpbWVvdXQgPSAxMDAwMA0KICAgICRoZWFk
ZXJCeXRlcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtieXRl
XQ0KICAgICRtYXRjaGVkID0gMA0KICAgICR0ZXJtaW5hdG9yID0gQCgxMywgMTAsIDEzLCAxMCkN
CiAgICB3aGlsZSAoJG1hdGNoZWQgLWx0IDQpIHsNCiAgICAgICAgJHZhbHVlID0gJHN0cmVhbS5S
ZWFkQnl0ZSgpDQogICAgICAgIGlmICgkdmFsdWUgLWx0IDApIHsgdGhyb3cgJ+yalOyyrSDtl6Tr
jZTqsIAg64Gd64KY6riwIOyghOyXkCDsl7DqsrDsnbQg64ur7ZiU7Iq164uI64ukLicgfQ0KICAg
ICAgICAkaGVhZGVyQnl0ZXMuQWRkKFtieXRlXSR2YWx1ZSkNCiAgICAgICAgaWYgKCRoZWFkZXJC
eXRlcy5Db3VudCAtZ3QgNjU1MzYpIHsgdGhyb3cgJ+yalOyyrSDtl6TrjZTqsIAg64SI66y0IO2B
veuLiOuLpC4nIH0NCiAgICAgICAgaWYgKCR2YWx1ZSAtZXEgJHRlcm1pbmF0b3JbJG1hdGNoZWRd
KSB7ICRtYXRjaGVkKysgfQ0KICAgICAgICBlbHNlaWYgKCR2YWx1ZSAtZXEgMTMpIHsgJG1hdGNo
ZWQgPSAxIH0NCiAgICAgICAgZWxzZSB7ICRtYXRjaGVkID0gMCB9DQogICAgfQ0KICAgICRoZWFk
ZXJUZXh0ID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6QVNDSUkuR2V0U3RyaW5nKCRoZWFkZXJC
eXRlcy5Ub0FycmF5KCkpDQogICAgJGxpbmVzID0gJGhlYWRlclRleHQgLXNwbGl0ICJgcmBuIg0K
ICAgICRyZXF1ZXN0TGluZSA9ICRsaW5lc1swXSAtc3BsaXQgJyAnDQogICAgaWYgKCRyZXF1ZXN0
TGluZS5Db3VudCAtbHQgMikgeyB0aHJvdyAn7Jis67CU66W07KeAIOyViuydgCBIVFRQIOyalOyy
reyeheuLiOuLpC4nIH0NCiAgICAkaGVhZGVycyA9IEB7fQ0KICAgIGZvcmVhY2ggKCRsaW5lIGlu
ICRsaW5lc1sxLi4oJGxpbmVzLkNvdW50IC0gMSldKSB7DQogICAgICAgIGlmIChbc3RyaW5nXTo6
SXNOdWxsT3JXaGl0ZVNwYWNlKCRsaW5lKSkgeyBjb250aW51ZSB9DQogICAgICAgICRjb2xvbiA9
ICRsaW5lLkluZGV4T2YoJzonKQ0KICAgICAgICBpZiAoJGNvbG9uIC1sZSAwKSB7IHRocm93ICfs
mKzrsJTrpbTsp4Ag7JWK7J2AIEhUVFAg7Zek642U7J6F64uI64ukLicgfQ0KICAgICAgICAkaGVh
ZGVyc1skbGluZS5TdWJzdHJpbmcoMCwgJGNvbG9uKS5UcmltKCkuVG9Mb3dlckludmFyaWFudCgp
XSA9ICRsaW5lLlN1YnN0cmluZygkY29sb24gKyAxKS5UcmltKCkNCiAgICB9DQogICAgaWYgKCRo
ZWFkZXJzLkNvbnRhaW5zS2V5KCd0cmFuc2Zlci1lbmNvZGluZycpKSB7IHRocm93ICdUcmFuc2Zl
ci1FbmNvZGluZyDsmpTssq3snYAg67Cb7KeAIOyViuyKteuLiOuLpC4nIH0NCiAgICAkY29udGVu
dExlbmd0aCA9IDANCiAgICBpZiAoJGhlYWRlcnMuQ29udGFpbnNLZXkoJ2NvbnRlbnQtbGVuZ3Ro
JykpIHsNCiAgICAgICAgaWYgKC1ub3QgW2ludF06OlRyeVBhcnNlKCRoZWFkZXJzWydjb250ZW50
LWxlbmd0aCddLCBbcmVmXSRjb250ZW50TGVuZ3RoKSAtb3IgJGNvbnRlbnRMZW5ndGggLWx0IDAg
LW9yICRjb250ZW50TGVuZ3RoIC1ndCAxMDQ4NTc2KSB7DQogICAgICAgICAgICB0aHJvdyAn7JqU
7LKtIOuzuOusuCDtgazquLDqsIAg7Jis67CU66W07KeAIOyViuyKteuLiOuLpC4nDQogICAgICAg
IH0NCiAgICB9DQogICAgJGJvZHlCeXRlcyA9IE5ldy1PYmplY3QgYnl0ZVtdICRjb250ZW50TGVu
Z3RoDQogICAgJG9mZnNldCA9IDANCiAgICB3aGlsZSAoJG9mZnNldCAtbHQgJGNvbnRlbnRMZW5n
dGgpIHsNCiAgICAgICAgJHJlYWQgPSAkc3RyZWFtLlJlYWQoJGJvZHlCeXRlcywgJG9mZnNldCwg
JGNvbnRlbnRMZW5ndGggLSAkb2Zmc2V0KQ0KICAgICAgICBpZiAoJHJlYWQgLWxlIDApIHsgdGhy
b3cgJ+yalOyyrSDrs7jrrLjsnbQg64Gd64KY6riwIOyghOyXkCDsl7DqsrDsnbQg64ur7ZiU7Iq1
64uI64ukLicgfQ0KICAgICAgICAkb2Zmc2V0ICs9ICRyZWFkDQogICAgfQ0KICAgIHJldHVybiBb
cHNjdXN0b21vYmplY3RdQHsNCiAgICAgICAgTWV0aG9kID0gJHJlcXVlc3RMaW5lWzBdLlRvVXBw
ZXJJbnZhcmlhbnQoKQ0KICAgICAgICBQYXRoID0gJHJlcXVlc3RMaW5lWzFdDQogICAgICAgIEhl
YWRlcnMgPSAkaGVhZGVycw0KICAgICAgICBCb2R5ID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6
VVRGOC5HZXRTdHJpbmcoJGJvZHlCeXRlcykNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIFNlbmQtSHR0
cFJlc3BvbnNlIHsNCiAgICBwYXJhbSgNCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAk
dHJ1ZSldW1N5c3RlbS5OZXQuU29ja2V0cy5UY3BDbGllbnRdJENsaWVudCwNCiAgICAgICAgW2lu
dF0kU3RhdHVzID0gMjAwLA0KICAgICAgICBbc3RyaW5nXSRDb250ZW50VHlwZSA9ICdhcHBsaWNh
dGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JywNCiAgICAgICAgW3N0cmluZ10kQm9keSA9ICd7fScN
CiAgICApDQogICAgJHJlYXNvbiA9IHN3aXRjaCAoJFN0YXR1cykgeyAyMDAgeyAnT0snIH0gNDAw
IHsgJ0JhZCBSZXF1ZXN0JyB9IDQwMSB7ICdVbmF1dGhvcml6ZWQnIH0gNDA0IHsgJ05vdCBGb3Vu
ZCcgfSA0MDUgeyAnTWV0aG9kIE5vdCBBbGxvd2VkJyB9IDQwOSB7ICdDb25mbGljdCcgfSBkZWZh
dWx0IHsgJ0Vycm9yJyB9IH0NCiAgICAkYm9keUJ5dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5n
XTo6VVRGOC5HZXRCeXRlcygkQm9keSkNCiAgICAkaGVhZGVycyA9ICJIVFRQLzEuMSAkU3RhdHVz
ICRyZWFzb25gcmBuQ29udGVudC1UeXBlOiAkQ29udGVudFR5cGVgcmBuQ29udGVudC1MZW5ndGg6
ICQoJGJvZHlCeXRlcy5MZW5ndGgpYHJgbkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlYHJgblgtQ29u
dGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmZgcmBuUmVmZXJyZXItUG9saWN5OiBuby1yZWZlcnJl
cmByYG5Db250ZW50LVNlY3VyaXR5LVBvbGljeTogZGVmYXVsdC1zcmMgJ25vbmUnOyBzdHlsZS1z
cmMgJ3Vuc2FmZS1pbmxpbmUnOyBzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJzsgY29ubmVjdC1z
cmMgJ3NlbGYnOyBpbWctc3JjICdzZWxmJyBkYXRhOjsgYmFzZS11cmkgJ25vbmUnOyBmb3JtLWFj
dGlvbiAnbm9uZSc7IGZyYW1lLWFuY2VzdG9ycyAnbm9uZSdgcmBuQ29ubmVjdGlvbjogY2xvc2Vg
cmBuYHJgbiINCiAgICAkc3RyZWFtID0gJENsaWVudC5HZXRTdHJlYW0oKQ0KICAgICRoZWFkZXJC
eXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OkFTQ0lJLkdldEJ5dGVzKCRoZWFkZXJzKQ0K
ICAgICRzdHJlYW0uV3JpdGUoJGhlYWRlckJ5dGVzLCAwLCAkaGVhZGVyQnl0ZXMuTGVuZ3RoKQ0K
ICAgICRzdHJlYW0uV3JpdGUoJGJvZHlCeXRlcywgMCwgJGJvZHlCeXRlcy5MZW5ndGgpDQogICAg
JHN0cmVhbS5GbHVzaCgpDQp9DQoNCiRodG1sID0gQCcNCjwhZG9jdHlwZSBodG1sPjxodG1sIGxh
bmc9ImtvIj48aGVhZD48bWV0YSBjaGFyc2V0PSJ1dGYtOCI+PG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiPg0KPHRpdGxlPuyY
ge2YvCDsnpHsl4Ug7Y+0642UIOyEpOyglTwvdGl0bGU+PHN0eWxlPg0KOnJvb3R7Zm9udC1mYW1p
bHk6Ik1hbGd1biBHb3RoaWMiLHNhbnMtc2VyaWY7Y29sb3I6IzE4MjEyZjtiYWNrZ3JvdW5kOiNl
ZWYzZjh9Ym9keXttYXJnaW46MH1tYWlue21heC13aWR0aDoxMTAwcHg7bWFyZ2luOjI4cHggYXV0
bztwYWRkaW5nOjAgMThweH0uY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAj
Y2FkNWUxO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjIwcHg7bWFyZ2luOjE0cHggMDtib3gt
c2hhZG93OjAgNHB4IDE4cHggIzE3MzI0ZDE0fWgxLGgye2NvbG9yOiMxODNiNWJ9bGFiZWx7ZGlz
cGxheTpibG9jazttYXJnaW46OHB4IDAgM3B4O2ZvbnQtd2VpZ2h0OjcwMH1pbnB1dCxzZWxlY3Qs
YnV0dG9ue2ZvbnQ6aW5oZXJpdDtwYWRkaW5nOjlweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6
MXB4IHNvbGlkICM5ZmIwYzJ9aW5wdXQsc2VsZWN0e21pbi13aWR0aDoxNzBweH1idXR0b257Y3Vy
c29yOnBvaW50ZXI7YmFja2dyb3VuZDojZTdlZWY2fWJ1dHRvbi5wcmltYXJ5e2JhY2tncm91bmQ6
IzE3NmI4Nztjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojMTc2Yjg3fS5kYW5nZXJ7Y29sb3I6Izhi
MWQyY310YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJX10aCx0ZHtib3Jk
ZXItYm90dG9tOjFweCBzb2xpZCAjZGJlM2ViO3BhZGRpbmc6N3B4O3RleHQtYWxpZ246bGVmdH0u
cm93e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczplbmR9
Lm11dGVke2NvbG9yOiM1YjY4NzV9Lm9re2NvbG9yOiMxNzZiNGR9LmVycm9ye2NvbG9yOiNhMDIw
MzI7d2hpdGUtc3BhY2U6cHJlLXdyYXB9cHJle3doaXRlLXNwYWNlOnByZS13cmFwO2JhY2tncm91
bmQ6I2Y0ZjdmYTtwYWRkaW5nOjEycHg7Ym9yZGVyLXJhZGl1czo4cHg7bWF4LWhlaWdodDoyNjBw
eDtvdmVyZmxvdzphdXRvfQ0KPC9zdHlsZT48L2hlYWQ+PGJvZHk+PG1haW4+DQo8ZGl2IGNsYXNz
PSJjYXJkIj48aDE+7JiB7Zi8IOyekeyXhSDtj7TrjZTrpbwg7ZWo6ruYIOygle2VqeuLiOuLpDwv
aDE+PHA+7Jet7ZWgKFIpIOKGkiDrtoTslbwoRCkg4oaSIO2UhOuhnOygne2KuChQKSDihpIg64uo
6rOEKFMpIOKGkiDtlYTsmpTtlaAg65WM66eMIOyEuOu2gCDsnpHsl4UoVCkg7Iic7ISc7J6F64uI
64ukLiDrqqjrpbTripQg64uo6rOE64qUIOyngOq4iCDrr7jrpITrj4Qg65Cp64uI64ukLiDrp4js
p4Drp4kg7ZmV7J24IOyghOyXkOuKlCDsi6TsoJwg7J6R7JeFIO2PtOuNlOulvCDrp4zrk6Tsp4Ag
7JWK7Iq164uI64ukLjwvcD48cCBpZD0ibWVzc2FnZSIgY2xhc3M9Im11dGVkIj7tmZTrqbTsnYQg
67aI65+s7Jik64qUIOykkeyeheuLiOuLpC48L3A+PC9kaXY+DQo8ZGl2IGNsYXNzPSJjYXJkIj48
aDI+MS4g7ZWt66qpIOy2lOqwgDwvaDI+PGRpdiBjbGFzcz0icm93Ij4NCjxkaXY+PGxhYmVsIGZv
cj0ibGV2ZWwiPuuLqOqzhDwvbGFiZWw+PHNlbGVjdCBpZD0ibGV2ZWwiPjxvcHRpb24+Ujwvb3B0
aW9uPjxvcHRpb24+RDwvb3B0aW9uPjxvcHRpb24+UDwvb3B0aW9uPjxvcHRpb24+Uzwvb3B0aW9u
PjxvcHRpb24+VDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2Pg0KPGRpdj48bGFiZWwgZm9yPSJwYXJl
bnQiPuuwlOuhnCDsnIQg7ZWt66qpPC9sYWJlbD48c2VsZWN0IGlkPSJwYXJlbnQiPjxvcHRpb24g
dmFsdWU9IiI+7JeG7J2MKFLrp4wpPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+DQo8ZGl2PjxsYWJl
bCBmb3I9Im5hbWVLbyI+7ZWc6riAIOydtOumhDwvbGFiZWw+PGlucHV0IGlkPSJuYW1lS28iIGF1
dG9jb21wbGV0ZT0ib2ZmIj48L2Rpdj4NCjxkaXY+PGxhYmVsIGZvcj0ibmFtZUVuIj7smIHrrLgg
7J2066aEKOyEoO2DnSk8L2xhYmVsPjxpbnB1dCBpZD0ibmFtZUVuIiBhdXRvY29tcGxldGU9Im9m
ZiI+PC9kaXY+DQo8ZGl2PjxsYWJlbCBmb3I9InRhZyI+6rWs67OEIO2DnOq3uCjshKDtg50pPC9s
YWJlbD48aW5wdXQgaWQ9InRhZyIgYXV0b2NvbXBsZXRlPSJvZmYiPjwvZGl2Pg0KPGJ1dHRvbiBp
ZD0iYWRkIj7stpTqsIA8L2J1dHRvbj48L2Rpdj4NCjxwIGNsYXNzPSJtdXRlZCI+7KeA6riIIOyg
le2VmOq4sCDslrTroKTsmrDrqbQg7ZW064u5IOuLqOqzhCDsoITssrTrpbwg66+466OwIOyImCDs
nojsirXri4jri6QuPC9wPjxkaXYgaWQ9ImRlZmVyQnV0dG9ucyIgY2xhc3M9InJvdyI+PC9kaXY+
PC9kaXY+DQo8ZGl2IGNsYXNzPSJjYXJkIj48aDI+Mi4g7ZiE7J6sIOq1rOyhsDwvaDI+PHRhYmxl
Pjx0aGVhZD48dHI+PHRoPuuLqOqzhDwvdGg+PHRoPuydtOumhDwvdGg+PHRoPuyDge2DnDwvdGg+
PHRoPuyhsOyekTwvdGg+PC90cj48L3RoZWFkPjx0Ym9keSBpZD0ibm9kZXMiPjwvdGJvZHk+PC90
YWJsZT48L2Rpdj4NCjxkaXYgY2xhc3M9ImNhcmQiPjxoMj4zLiDro6jtirgg7Y+0642UIOyVhOyd
tOy9mDwvaDI+PGRpdiBjbGFzcz0icm93Ij48ZGl2PjxsYWJlbCBmb3I9Imljb25Nb2RlIj7rsKns
i508L2xhYmVsPjxzZWxlY3QgaWQ9Imljb25Nb2RlIj48b3B0aW9uIHZhbHVlPSJkZWZhdWx0Ij7q
uLDrs7gg7JWE7J207L2YPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW1wb3J0ZWQiPuq4sOyhtCDs
lYTsnbTsvZgg6rCA7KC47Jik6riwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZ2VuZXJhdGVkIj7s
u7Ttk6jthLDsl5DshJwg67Cw7KeAIOyVhOydtOy9mCDrp4zrk6TquLA8L29wdGlvbj48b3B0aW9u
IHZhbHVlPSJhZG9wdC1leGlzdGluZyI+7ZiE7J6sIOujqO2KuCDslYTsnbTsvZgg6re464yA66Gc
IOyTsOq4sDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXY+PGxhYmVsIGZvcj0iaWNvblBhdGgi
PuybkOuzuCDqsr3roZwo6rCA7KC47Jik6riw7J28IOuVjCk8L2xhYmVsPjxpbnB1dCBpZD0iaWNv
blBhdGgiIHBsYWNlaG9sZGVyPSLsmIg6IEM6XOyekOujjFzslYTsnbTsvZguaWNvIj48L2Rpdj48
L2Rpdj48L2Rpdj4NCjxkaXYgY2xhc3M9ImNhcmQiPjxoMj40LiDrr7jrpqzrs7TquLDsmYAg7LWc
7KKFIO2ZleyduDwvaDI+PGJ1dHRvbiBpZD0icHJldmlldyI+6rK966GcIOuvuOumrOuztOq4sDwv
YnV0dG9uPjxwcmUgaWQ9InByZXZpZXdCb3giPuyVhOyngSDrr7jrpqzrs7Tsp4Ag7JWK7JWY7Iq1
64uI64ukLjwvcHJlPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhcHByb3ZlZCI+
IOychCDrgrTsmqnrjIDroZwg7J6R7JeFIO2PtOuNlOyZgCDslYTsnbTsvZjsnYQg7KSA67mE7ZWY
64qUIOqyg+yXkCDrj5nsnZjtlanri4jri6QuPC9sYWJlbD48ZGl2IGNsYXNzPSJyb3ciPjxidXR0
b24gY2xhc3M9InByaW1hcnkiIGlkPSJzYXZlIj7tmZXsoJU8L2J1dHRvbj48YnV0dG9uIGlkPSJw
YXVzZSI+7J287Iuc7KCV7KeAPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBpZD0iY2Fu
Y2VsIj7st6jshow8L2J1dHRvbj48L2Rpdj48L2Rpdj4NCjwvbWFpbj48c2NyaXB0Pg0KKCgpPT57
J3VzZSBzdHJpY3QnO2NvbnN0IHRva2VuPW5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uaGFz
aC5zbGljZSgxKSkuZ2V0KCd0b2tlbicpO2hpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsJycsbG9j
YXRpb24ucGF0aG5hbWUpO2NvbnN0IEg9eydDb250ZW50LVR5cGUnOidhcHBsaWNhdGlvbi9qc29u
JywnWC1Tb3VsLVRva2VuJzp0b2tlbnx8Jyd9LGJpbmRpbmc9e3RyYW5zYWN0aW9uSWQ6J19fVFJB
TlNBQ1RJT05fSURfXycsc291bElkOidfX1NPVUxfSURfXyd9O2xldCBzdGF0ZT1udWxsLGZpbmlz
aGVkPWZhbHNlO2NvbnN0ICQ9aWQ9PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtjb25zdCBt
c2c9KHQsYmFkPWZhbHNlKT0+eyQoJ21lc3NhZ2UnKS50ZXh0Q29udGVudD10OyQoJ21lc3NhZ2Un
KS5jbGFzc05hbWU9YmFkPydlcnJvcic6J29rJ307DQphc3luYyBmdW5jdGlvbiBhcGkocGF0aCxw
YXlsb2FkKXtjb25zdCByPWF3YWl0IGZldGNoKHBhdGgse21ldGhvZDpwYXlsb2FkPT09dW5kZWZp
bmVkPydHRVQnOidQT1NUJyxoZWFkZXJzOkgsYm9keTpwYXlsb2FkPT09dW5kZWZpbmVkP3VuZGVm
aW5lZDpKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxjYWNoZTonbm8tc3RvcmUnfSk7Y29uc3QgeD1h
d2FpdCByLmpzb24oKTtpZighci5vayl0aHJvdyBuZXcgRXJyb3IoKHguZXJyb3JzfHxbeC5lcnJv
cnx8J+yalOyyrSDsi6TtjKgnXSkuam9pbignXG4nKSk7cmV0dXJuIHh9DQpmdW5jdGlvbiB1aWQo
KXtyZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKToneHh4eHh4eHgt
eHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csYz0+e2NvbnN0IHI9
TWF0aC5yYW5kb20oKSoxNnwwLHY9Yz09PSd4Jz9yOihyJjN8OCk7cmV0dXJuIHYudG9TdHJpbmco
MTYpfSl9DQpmdW5jdGlvbiBsZXZlbEJlZm9yZShsKXtyZXR1cm4oe0Q6J1InLFA6J0QnLFM6J1An
LFQ6J1MnfSlbbF18fG51bGx9ZnVuY3Rpb24gZGVzY2VuZGFudHMoaWQpe2NvbnN0IGZvdW5kPW5l
dyBTZXQoW2lkXSk7bGV0IGNoYW5nZWQ9dHJ1ZTt3aGlsZShjaGFuZ2VkKXtjaGFuZ2VkPWZhbHNl
O3N0YXRlLm5vZGVzLmZvckVhY2gobj0+e2lmKG4ucGFyZW50SWQmJmZvdW5kLmhhcyhuLnBhcmVu
dElkKSYmIWZvdW5kLmhhcyhuLmlkKSl7Zm91bmQuYWRkKG4uaWQpO2NoYW5nZWQ9dHJ1ZX19KX1y
ZXR1cm4gZm91bmR9DQpmdW5jdGlvbiByZW5kZXIoKXtjb25zdCBsZXZlbD0kKCdsZXZlbCcpLnZh
bHVlLG5lZWQ9bGV2ZWxCZWZvcmUobGV2ZWwpOyQoJ3BhcmVudCcpLmlubmVySFRNTD0nPG9wdGlv
biB2YWx1ZT0iIj4nKyhuZWVkPyfsnIQg7ZWt66qp7J2EIOyEoO2Dne2VmOyEuOyalCc6J+yXhuyd
jChS66eMKScpKyc8L29wdGlvbj4nK3N0YXRlLm5vZGVzLmZpbHRlcihuPT5uLmxldmVsPT09bmVl
ZCYmbi5zdGF0dXM9PT0nYWN0aXZlJykubWFwKG49PmA8b3B0aW9uIHZhbHVlPSIke24uaWR9Ij4k
e24ubGV2ZWx9IMK3ICR7ZXNjYXBlSHRtbChuLm5hbWVLbyl9PC9vcHRpb24+YCkuam9pbignJyk7
JCgnbm9kZXMnKS5pbm5lckhUTUw9c3RhdGUubm9kZXMuc2xpY2UoKS5zb3J0KChhLGIpPT5hLmxl
dmVsLmxvY2FsZUNvbXBhcmUoYi5sZXZlbCl8fGEub3JkZXItYi5vcmRlcikubWFwKG49PmA8dHI+
PHRkPiR7bi5sZXZlbH08L3RkPjx0ZD4ke2VzY2FwZUh0bWwobi5uYW1lS28pfSAke24ubmFtZUVu
PycoJytlc2NhcGVIdG1sKG4ubmFtZUVuKSsnKSc6Jyd9ICR7bi50YWc/J+OAlicrZXNjYXBlSHRt
bChuLnRhZykrJ+OAlyc6Jyd9PC90ZD48dGQ+JHtuLmltbXV0YWJsZT8n6riw7KG0KOqzoOyglSkn
OihuLnN0YXR1cz09PSdkZWZlcnJlZCc/J+uvuOujuCc6J+yCrOyaqScpfTwvdGQ+PHRkPiR7bi5p
bW11dGFibGU/J+uyiO2YuMK37J2066aEIOuztOyhtCc6YDxidXR0b24gZGF0YS10b2dnbGU9IiR7
bi5pZH0iPiR7bi5zdGF0dXM9PT0nZGVmZXJyZWQnPyfri6Tsi5wg7IKs7JqpJzon66+466Oo6riw
J308L2J1dHRvbj4gPGJ1dHRvbiBkYXRhLXJlbW92ZT0iJHtuLmlkfSIgY2xhc3M9ImRhbmdlciI+
7IKt7KCcPC9idXR0b24+YH08L3RkPjwvdHI+YCkuam9pbignJyl8fCc8dHI+PHRkIGNvbHNwYW49
IjQiIGNsYXNzPSJtdXRlZCI+7JWE7KeBIO2VreuqqeydtCDsl4bsirXri4jri6QuPC90ZD48L3Ry
Pic7JCgnaWNvbk1vZGUnKS52YWx1ZT1zdGF0ZS5pY29uLm1vZGU7JCgnaWNvblBhdGgnKS52YWx1
ZT1zdGF0ZS5pY29uLnBhdGh8fCcnOyQoJ2ljb25Nb2RlJykuZGlzYWJsZWQ9ISFzdGF0ZS5pY29u
LmltbXV0YWJsZTskKCdpY29uUGF0aCcpLmRpc2FibGVkPSEhc3RhdGUuaWNvbi5pbW11dGFibGU7
JCgnZGVmZXJCdXR0b25zJykuaW5uZXJIVE1MPVsnRCcsJ1AnLCdTJywnVCddLm1hcChsPT5gPGJ1
dHRvbiBkYXRhLWxldmVsPSIke2x9Ij4ke3N0YXRlLmRlZmVycmVkTGV2ZWxzW2xdPyfinJMgJzon
J30ke2x9IOuLqOqzhCAke3N0YXRlLmRlZmVycmVkTGV2ZWxzW2xdPyfrr7jro7gg7Leo7IaMJzon
64KY7KSR7JeQIOygle2VmOq4sCd9PC9idXR0b24+YCkuam9pbignJyl9DQpmdW5jdGlvbiBlc2Nh
cGVIdG1sKHMpe2NvbnN0IGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZC50ZXh0Q29u
dGVudD1zfHwnJztyZXR1cm4gZC5pbm5lckhUTUx9ZnVuY3Rpb24gc3luYygpe2lmKCFzdGF0ZS5p
Y29uLmltbXV0YWJsZSlzdGF0ZS5pY29uPXttb2RlOiQoJ2ljb25Nb2RlJykudmFsdWUscGF0aDok
KCdpY29uUGF0aCcpLnZhbHVlLnRyaW0oKXx8bnVsbCxpbW11dGFibGU6ZmFsc2V9O3N0YXRlLmFw
cHJvdmVkPSQoJ2FwcHJvdmVkJykuY2hlY2tlZH0NCiQoJ2xldmVsJykub25jaGFuZ2U9cmVuZGVy
OyQoJ2FkZCcpLm9uY2xpY2s9KCk9Pntjb25zdCBsZXZlbD0kKCdsZXZlbCcpLnZhbHVlLHBhcmVu
dElkPSQoJ3BhcmVudCcpLnZhbHVlfHxudWxsLG5hbWVLbz0kKCduYW1lS28nKS52YWx1ZS50cmlt
KCk7aWYoIW5hbWVLbylyZXR1cm4gbXNnKCftlZzquIAg7J2066aE7J2EIOyggeyWtOyjvOyEuOya
lC4nLHRydWUpO2lmKGxldmVsQmVmb3JlKGxldmVsKSYmIXBhcmVudElkKXJldHVybiBtc2coJ+uw
lOuhnCDsnIQg7ZWt66qp7J2EIOyEoO2Dne2VtOyjvOyEuOyalC4nLHRydWUpO2NvbnN0IG9yZGVy
cz1zdGF0ZS5ub2Rlcy5maWx0ZXIobj0+bi5sZXZlbD09PWxldmVsJiZuLnBhcmVudElkPT09cGFy
ZW50SWQpLm1hcChuPT5uLm9yZGVyKTtzdGF0ZS5ub2Rlcy5wdXNoKHtpZDp1aWQoKSxwYXJlbnRJ
ZCxsZXZlbCxuYW1lS28sbmFtZUVuOiQoJ25hbWVFbicpLnZhbHVlLnRyaW0oKSx0YWc6JCgndGFn
JykudmFsdWUudHJpbSgpLG9yZGVyOm9yZGVycy5sZW5ndGg/TWF0aC5tYXgoLi4ub3JkZXJzKSsx
OjAsc3RhdHVzOidhY3RpdmUnLGltbXV0YWJsZTpmYWxzZSxvcmlnaW46J2FwcHJvdmVkLW5ldyd9
KTtzdGF0ZS5kZWZlcnJlZExldmVsc1tsZXZlbF09ZmFsc2U7JCgnbmFtZUtvJykudmFsdWU9JCgn
bmFtZUVuJykudmFsdWU9JCgndGFnJykudmFsdWU9Jyc7cmVuZGVyKCk7bXNnKCftla3rqqnsnYQg
7LaU6rCA7ZaI7Iq164uI64ukLiDtmZXsoJUg7KCE6rmM7KeAIOydtCDri7XsnYAg7J20IO2ZlOup
tCDslYjsl5Drp4wg7J6I7Iq164uI64ukLicpfTsNCiQoJ25vZGVzJykub25jbGljaz1lPT57Y29u
c3QgcmlkPWUudGFyZ2V0LmRhdGFzZXQucmVtb3ZlLHRpZD1lLnRhcmdldC5kYXRhc2V0LnRvZ2ds
ZTtpZihyaWQpe2NvbnN0IHRhcmdldD1zdGF0ZS5ub2Rlcy5maW5kKHg9PnguaWQ9PT1yaWQpO2lm
KHRhcmdldCYmdGFyZ2V0LmltbXV0YWJsZSlyZXR1cm4gbXNnKCfquLDsobQg7Y+0642U64qUIOyd
tCDtmZTrqbTsl5DshJwg7IKt7KCc7ZWY6rGw64KYIOyerOuyiO2YuO2ZlO2VoCDsiJgg7JeG7Iq1
64uI64ukLicsdHJ1ZSk7Y29uc3QgZ29uZT1kZXNjZW5kYW50cyhyaWQpO2lmKHN0YXRlLm5vZGVz
LnNvbWUobj0+Z29uZS5oYXMobi5pZCkmJm4uaW1tdXRhYmxlKSlyZXR1cm4gbXNnKCfslYTrnpjs
l5Ag6riw7KG0IO2PtOuNlOqwgCDsnojslrQg7IKt7KCc7ZWgIOyImCDsl4bsirXri4jri6QuJyx0
cnVlKTtzdGF0ZS5ub2Rlcz1zdGF0ZS5ub2Rlcy5maWx0ZXIobj0+IWdvbmUuaGFzKG4uaWQpKTty
ZW5kZXIoKTttc2coJ+yEoO2Dne2VnCDsg4gg7ZWt66qp6rO8IOq3uCDslYTrnpgg7IOIIO2Vreuq
qeydhCDrqqnroZ3sl5DshJwg67qQ7Iq164uI64ukLicpfWlmKHRpZCl7Y29uc3Qgbj1zdGF0ZS5u
b2Rlcy5maW5kKHg9PnguaWQ9PT10aWQpO2lmKG4uaW1tdXRhYmxlKXJldHVybiBtc2coJ+q4sOyh
tCDtj7TrjZQg7IOB7YOc64qUIOuwlOq/gCDsiJgg7JeG7Iq164uI64ukLicsdHJ1ZSk7aWYobi5z
dGF0dXM9PT0nZGVmZXJyZWQnKXtjb25zdCBwYXJlbnQ9bi5wYXJlbnRJZCYmc3RhdGUubm9kZXMu
ZmluZCh4PT54LmlkPT09bi5wYXJlbnRJZCk7aWYocGFyZW50JiZwYXJlbnQuc3RhdHVzIT09J2Fj
dGl2ZScpcmV0dXJuIG1zZygn66i87KCAIOuwlOuhnCDsnIQg7ZWt66qp7J2EIOuLpOyLnCDsgqzs
mqnsnLzroZwg67CU6r+U7KO87IS47JqULicsdHJ1ZSk7bi5zdGF0dXM9J2FjdGl2ZSc7c3RhdGUu
ZGVmZXJyZWRMZXZlbHNbbi5sZXZlbF09ZmFsc2V9ZWxzZXtjb25zdCBnb25lPWRlc2NlbmRhbnRz
KG4uaWQpO2lmKHN0YXRlLm5vZGVzLnNvbWUoeD0+Z29uZS5oYXMoeC5pZCkmJnguaW1tdXRhYmxl
KSlyZXR1cm4gbXNnKCfquLDsobQg7Y+0642U6rCAIO2PrO2VqOuQmOyWtCDrr7jro7Ag7IiYIOyX
huyKteuLiOuLpC4nLHRydWUpO3N0YXRlLm5vZGVzLmZvckVhY2goeD0+e2lmKGdvbmUuaGFzKHgu
aWQpKXguc3RhdHVzPSdkZWZlcnJlZCd9KX1yZW5kZXIoKTttc2coJ+yDge2DnOulvCDrsJTqv6js
irXri4jri6QuJyl9fTsNCiQoJ2RlZmVyQnV0dG9ucycpLm9uY2xpY2s9ZT0+e2NvbnN0IGw9ZS50
YXJnZXQuZGF0YXNldC5sZXZlbDtpZighbClyZXR1cm47Y29uc3QgbGV2ZWxzPVsnUicsJ0QnLCdQ
JywnUycsJ1QnXSxjdXQ9bGV2ZWxzLmluZGV4T2YobCk7aWYoIXN0YXRlLmRlZmVycmVkTGV2ZWxz
W2xdJiZzdGF0ZS5ub2Rlcy5zb21lKG49Pm4uaW1tdXRhYmxlJiZsZXZlbHMuaW5kZXhPZihuLmxl
dmVsKT49Y3V0KSlyZXR1cm4gbXNnKCftlbTri7kg64uo6rOE7JeQ64qUIOq4sOyhtCDtj7TrjZTq
sIAg7J6I7Ja0IOyghOyytOulvCDrr7jro7Ag7IiYIOyXhuyKteuLiOuLpC4nLHRydWUpO3N0YXRl
LmRlZmVycmVkTGV2ZWxzW2xdPSFzdGF0ZS5kZWZlcnJlZExldmVsc1tsXTtpZihzdGF0ZS5kZWZl
cnJlZExldmVsc1tsXSlzdGF0ZS5ub2Rlcy5mb3JFYWNoKG49PntpZihsZXZlbHMuaW5kZXhPZihu
LmxldmVsKT49Y3V0JiYhbi5pbW11dGFibGUpbi5zdGF0dXM9J2RlZmVycmVkJ30pO3JlbmRlcigp
O21zZyhgJHtsfSDri6jqs4TsnZgg6rKw7KCV7J2EICR7c3RhdGUuZGVmZXJyZWRMZXZlbHNbbF0/
J+uvuOukmOyKteuLiOuLpC4nOifri6Tsi5wg7Je07JeI7Iq164uI64ukLid9YCl9Ow0KJCgncHJl
dmlldycpLm9uY2xpY2s9YXN5bmMoKT0+e3RyeXtzeW5jKCk7Y29uc3QgeD1hd2FpdCBhcGkoJy9h
cGkvcHJldmlldycsc3RhdGUpOyQoJ3ByZXZpZXdCb3gnKS50ZXh0Q29udGVudD14LnBhdGhzLm1h
cChwPT4ocC5zdGF0dXM9PT0nZGVmZXJyZWQnPydb66+466O4XSAnOicnKStwLnBhdGgpLmpvaW4o
J1xuJyl8fCco7IOd7ISx7ZWgIOqyveuhnCDsl4bsnYwpJzttc2coJ+uvuOumrOuztOq4sOulvCDr
p4zrk6Tsl4jsirXri4jri6QuJyl9Y2F0Y2goZSl7bXNnKGUubWVzc2FnZSx0cnVlKX19Ow0KJCgn
c2F2ZScpLm9uY2xpY2s9YXN5bmMoKT0+e3RyeXtzeW5jKCk7Y29uc3QgeD1hd2FpdCBhcGkoJy9h
cGkvc2F2ZScsc3RhdGUpO2ZpbmlzaGVkPXRydWU7bXNnKHgubWVzc2FnZSl9Y2F0Y2goZSl7bXNn
KGUubWVzc2FnZSx0cnVlKX19OyQoJ3BhdXNlJykub25jbGljaz1hc3luYygpPT57dHJ5e2Zpbmlz
aGVkPXRydWU7YXdhaXQgYXBpKCcvYXBpL3BhdXNlJyx7dHJhbnNhY3Rpb25JZDpzdGF0ZS50cmFu
c2FjdGlvbklkLHNvdWxJZDpzdGF0ZS5zb3VsSWR9KTttc2coJ+yViOyghO2VmOqyjCDsnbzsi5zs
oJXsp4DtlojsirXri4jri6QuIOuLtSDrgrTsmqnsnYAg7KCA7J6l7ZWY7KeAIOyViuyVmOyKteuL
iOuLpC4nKX1jYXRjaChlKXtmaW5pc2hlZD1mYWxzZTttc2coZS5tZXNzYWdlLHRydWUpfX07JCgn
Y2FuY2VsJykub25jbGljaz1hc3luYygpPT57aWYoIWNvbmZpcm0oJ+y3qOyGjCDsg4Htg5zroZwg
64Ko6ri46rmM7JqUPyDquLDsobQg7YyM7J287J2AIOyngOybjOyngOyngCDslYrsirXri4jri6Qu
JykpcmV0dXJuO3RyeXtmaW5pc2hlZD10cnVlO2F3YWl0IGFwaSgnL2FwaS9jYW5jZWwnLHt0cmFu
c2FjdGlvbklkOnN0YXRlLnRyYW5zYWN0aW9uSWQsc291bElkOnN0YXRlLnNvdWxJZH0pO21zZygn
7Leo7IaM7ZaI7Iq164uI64ukLiDquLDsobQg7YyM7J287J2AIOuwlOuAjOyngCDslYrslZjsirXr
i4jri6QuJyl9Y2F0Y2goZSl7ZmluaXNoZWQ9ZmFsc2U7bXNnKGUubWVzc2FnZSx0cnVlKX19Ow0K
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywoKT0+e2lmKCFmaW5pc2hlZCYmc3Rh
dGUpe2ZpbmlzaGVkPXRydWU7ZmV0Y2goJy9hcGkvY2xvc2UnLHttZXRob2Q6J1BPU1QnLGhlYWRl
cnM6SCxib2R5OkpTT04uc3RyaW5naWZ5KHt0cmFuc2FjdGlvbklkOnN0YXRlLnRyYW5zYWN0aW9u
SWQsc291bElkOnN0YXRlLnNvdWxJZH0pLGtlZXBhbGl2ZTp0cnVlLGNhY2hlOiduby1zdG9yZSd9
KS5jYXRjaCgoKT0+e30pfX0pOw0KYXBpKCcvYXBpL3N0YXRlJyxiaW5kaW5nKS50aGVuKHg9Pntz
dGF0ZT14LnN0YXRlOyQoJ2FwcHJvdmVkJykuY2hlY2tlZD0hIXN0YXRlLmFwcHJvdmVkO3JlbmRl
cigpO21zZygn7KSA67mE65CY7JeI7Iq164uI64ukLiDtlZjrgpjslKkg7KCB7Ja07KO87IS47JqU
LicpfSkuY2F0Y2goZT0+bXNnKGUubWVzc2FnZSx0cnVlKSk7fSkoKTsNCjwvc2NyaXB0PjwvYm9k
eT48L2h0bWw+DQonQA0KDQppZiAoJFNlbGZUZXN0KSB7DQogICAgJHNhbXBsZSA9IFtwc2N1c3Rv
bW9iamVjdF1Aew0KICAgICAgICBzY2hlbWFWZXJzaW9uID0gMQ0KICAgICAgICB0cmFuc2FjdGlv
bklkID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKQ0KICAgICAgICBzdGF0dXMgPSAnZHJh
ZnQnDQogICAgICAgIGFwcHJvdmVkID0gJGZhbHNlDQogICAgICAgIG5vZGVzID0gQChbcHNjdXN0
b21vYmplY3RdQHsgaWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpOyBwYXJlbnRJZCA9
ICRudWxsOyBsZXZlbCA9ICdSJzsgbmFtZUtvID0gJ+2FjOyKpO2KuCc7IG5hbWVFbiA9ICdUZXN0
JzsgdGFnID0gJyc7IG9yZGVyID0gMDsgc3RhdHVzID0gJ2FjdGl2ZScgfSkNCiAgICAgICAgZGVm
ZXJyZWRMZXZlbHMgPSBbcHNjdXN0b21vYmplY3RdQHsgUiA9ICRmYWxzZTsgRCA9ICR0cnVlOyBQ
ID0gJHRydWU7IFMgPSAkdHJ1ZTsgVCA9ICR0cnVlIH0NCiAgICAgICAgaWNvbiA9IFtwc2N1c3Rv
bW9iamVjdF1AeyBtb2RlID0gJ2RlZmF1bHQnOyBwYXRoID0gJG51bGwgfQ0KICAgIH0NCiAgICAk
cHJvYmxlbXMgPSBAKFRlc3QtV2l6YXJkU3RhdGUgLVN0YXRlICRzYW1wbGUpDQogICAgaWYgKCRw
cm9ibGVtcy5Db3VudCAtbmUgMCkgeyB0aHJvdyAoJHByb2JsZW1zIC1qb2luIFtFbnZpcm9ubWVu
dF06Ok5ld0xpbmUpIH0NCiAgICAkYXBwcm92ZWQgPSAoJHNhbXBsZSB8IENvbnZlcnRUby1Kc29u
IC1EZXB0aCAyMCB8IENvbnZlcnRGcm9tLUpzb24pDQogICAgJGFwcHJvdmVkLmFwcHJvdmVkID0g
JHRydWUNCiAgICBpZiAoQChUZXN0LVdpemFyZFN0YXRlIC1TdGF0ZSAkYXBwcm92ZWQgLVJlcXVp
cmVBcHByb3ZhbCkuQ291bnQgLW5lIDApIHsgdGhyb3cgJ2FjdGl2ZSBS7J20IOyeiOuKlCDstZzs
ooUg7Iq57J24IOyDge2DnOulvCDsnpjrqrsg6rGw67aA7ZaI7Iq164uI64ukLicgfQ0KICAgICR3
aXRob3V0Um9sZSA9ICgkYXBwcm92ZWQgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjAgfCBDb252
ZXJ0RnJvbS1Kc29uKQ0KICAgICR3aXRob3V0Um9sZS5ub2RlcyA9IEAoKQ0KICAgIGlmIChAKFRl
c3QtV2l6YXJkU3RhdGUgLVN0YXRlICR3aXRob3V0Um9sZSAtUmVxdWlyZUFwcHJvdmFsKS5Db3Vu
dCAtbHQgMSkgeyB0aHJvdyAnYWN0aXZlIFLsnbQg7JeG64qUIOy1nOyihSDsirnsnbjsnYQg7ZeI
7Jqp7ZaI7Iq164uI64ukLicgfQ0KICAgICRkZWZlcnJlZFBhcmVudCA9ICgkYXBwcm92ZWQgfCBD
b252ZXJ0VG8tSnNvbiAtRGVwdGggMjAgfCBDb252ZXJ0RnJvbS1Kc29uKQ0KICAgICRkZWZlcnJl
ZFBhcmVudC5kZWZlcnJlZExldmVscy5SID0gJGZhbHNlDQogICAgJGRlZmVycmVkUGFyZW50LmRl
ZmVycmVkTGV2ZWxzLkQgPSAkZmFsc2UNCiAgICAkZGVmZXJyZWRQYXJlbnQubm9kZXNbMF0uc3Rh
dHVzID0gJ2RlZmVycmVkJw0KICAgICRkZWZlcnJlZFBhcmVudC5ub2RlcyArPSBbcHNjdXN0b21v
YmplY3RdQHsgaWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpOyBwYXJlbnRJZCA9IFtz
dHJpbmddJGRlZmVycmVkUGFyZW50Lm5vZGVzWzBdLmlkOyBsZXZlbCA9ICdEJzsgbmFtZUtvID0g
J+2ZnOyEsSDsnpDsi50nOyBuYW1lRW4gPSAnQWN0aXZlIENoaWxkJzsgdGFnID0gJyc7IG9yZGVy
ID0gMDsgc3RhdHVzID0gJ2FjdGl2ZScgfQ0KICAgIGlmIChAKFRlc3QtV2l6YXJkU3RhdGUgLVN0
YXRlICRkZWZlcnJlZFBhcmVudCkuQ291bnQgLWx0IDEpIHsgdGhyb3cgJ2RlZmVycmVkIOu2gOuq
qCDslYTrnpjsnZggYWN0aXZlIOyekOyLneydhCDtl4jsmqntlojsirXri4jri6QuJyB9DQogICAg
JGltbXV0YWJsZSA9ICgkYXBwcm92ZWQgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjAgfCBDb252
ZXJ0RnJvbS1Kc29uKQ0KICAgICRpbW11dGFibGVOb2RlID0gJGltbXV0YWJsZS5ub2Rlc1swXQ0K
ICAgICRpbW11dGFibGVOb2RlIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkg
LU5hbWUgY29kZSAtVmFsdWUgJ1IwMScNCiAgICAkaW1tdXRhYmxlTm9kZSB8IEFkZC1NZW1iZXIg
LU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIHJlbGF0aXZlUGF0aCAtVmFsdWUgJ1IwMS3t
hYzsiqTtirgoVGVzdCknDQogICAgJGltbXV0YWJsZU5vZGUgfCBBZGQtTWVtYmVyIC1NZW1iZXJU
eXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBpbW11dGFibGUgLVZhbHVlICR0cnVlDQogICAgJGltbXV0
YWJsZU5vZGUgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBvcmln
aW4gLVZhbHVlICdleGlzdGluZycNCiAgICAkc2NyaXB0OkltbXV0YWJsZU5vZGVzQnlJZFsoW3N0
cmluZ10kaW1tdXRhYmxlTm9kZS5pZCkuVG9Mb3dlckludmFyaWFudCgpXSA9ICgkaW1tdXRhYmxl
Tm9kZSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAxMCB8IENvbnZlcnRGcm9tLUpzb24pDQogICAg
aWYgKEAoVGVzdC1XaXphcmRTdGF0ZSAtU3RhdGUgJGltbXV0YWJsZSAtUmVxdWlyZUFwcHJvdmFs
KS5Db3VudCAtbmUgMCkgeyB0aHJvdyAn67OA6rK97ZWY7KeAIOyViuydgCDquLDsobQg6rOg7KCV
IOuFuOuTnOulvCDqsbDrtoDtlojsirXri4jri6QuJyB9DQogICAgJGltbXV0YWJsZS5ub2Rlc1sw
XS5vcmRlciA9IDENCiAgICBpZiAoQChUZXN0LVdpemFyZFN0YXRlIC1TdGF0ZSAkaW1tdXRhYmxl
IC1SZXF1aXJlQXBwcm92YWwpLkNvdW50IC1sdCAxKSB7IHRocm93ICfquLDsobQg6rOg7KCVIOuF
uOuTnOydmCDsnqzrsojtmLjtmZTrpbwg7ZeI7Jqp7ZaI7Iq164uI64ukLicgfQ0KICAgICRzY3Jp
cHQ6SW1tdXRhYmxlTm9kZXNCeUlkID0gQHt9DQogICAgaWYgKChOZXctU2VjdXJlVG9rZW4pLkxl
bmd0aCAtbHQgNDMpIHsgdGhyb3cgJzI1Nuu5hO2KuCDthqDtgbAg7IOd7ISxIOyekOyytCDsoJDq
soDsl5Ag7Iuk7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgIGlmICgkaHRtbCAtbm90bWF0Y2ggIicv
YXBpL2Nsb3NlJyIgLW9yICRodG1sIC1ub3RtYXRjaCAn6riw7KG0XCjqs6DsoJVcKScgLW9yICRo
dG1sIC1tYXRjaCAiYXBpXCgnL2FwaS9kcmFmdCciKSB7IHRocm93ICfruIzrnbzsmrDsoIAg66mU
66qo66aswrfssL0g64ur6riwwrfqs6DsoJUg64W465OcIFVJIOyekOyytCDsoJDqsoDsl5Ag7Iuk
7Yyo7ZaI7Iq164uI64ukLicgfQ0KICAgICRsaXN0ZW5lclRlc3QgPSBOZXctT2JqZWN0IFN5c3Rl
bS5OZXQuU29ja2V0cy5UY3BMaXN0ZW5lcihbU3lzdGVtLk5ldC5JUEFkZHJlc3NdOjpMb29wYmFj
aywgMCkNCiAgICB0cnkgew0KICAgICAgICAkbGlzdGVuZXJUZXN0LlN0YXJ0KCkNCiAgICAgICAg
JGJvdW5kID0gW1N5c3RlbS5OZXQuSVBFbmRQb2ludF0kbGlzdGVuZXJUZXN0LkxvY2FsRW5kcG9p
bnQNCiAgICAgICAgaWYgKC1ub3QgJGJvdW5kLkFkZHJlc3MuRXF1YWxzKFtTeXN0ZW0uTmV0LklQ
QWRkcmVzc106Okxvb3BiYWNrKSkgeyB0aHJvdyAn66as7Iqk64SI6rCAIGxvb3BiYWNr7JeQIOus
tuydtOyngCDslYrslZjsirXri4jri6QuJyB9DQogICAgfQ0KICAgIGZpbmFsbHkgeyAkbGlzdGVu
ZXJUZXN0LlN0b3AoKSB9DQogICAgW3BzY3VzdG9tb2JqZWN0XUB7IGNvbXBvbmVudCA9ICd3aXph
cmQnOyBzdGF0dXMgPSAnUEFTUyc7IHRlc3RzID0gQCgnc2NoZW1hJywgJ2FjdGl2ZS1SLXJlcXVp
cmVkJywgJ2RlZmVycmVkLXBhcmVudC1ndWFyZCcsICdpbW11dGFibGUtZXhpc3Rpbmctbm9kZScs
ICdicm93c2VyLW1lbW9yeS1vbmx5JywgJ3dpbmRvdy1jbG9zZScsICcyNTYtYml0LXRva2VuJywg
J2xvb3BiYWNrLWxpc3RlbmVyJykgfQ0KICAgIHJldHVybg0KfQ0KDQokc291bFJvb3RGdWxsID0g
QXNzZXJ0LVNvdWxSb290IC1QYXRoICRTb3VsUm9vdCAtUmVxdWlyZUluaXRpYWxpemVkDQppZiAo
LW5vdCAkc291bFJvb3RGdWxsLkVxdWFscygoR2V0LVNvdWxSb290KSwgW1N5c3RlbS5TdHJpbmdD
b21wYXJpc29uXTo6T3JkaW5hbElnbm9yZUNhc2UpKSB7DQogICAgdGhyb3cgJ+uniOuyleyCrOuK
lCDsnpDsi6DsnbQg7ISk7LmY65CcIOyYge2YvCDtj7TrjZTrp4wg7ISk7KCV7ZWp64uI64ukLicN
Cn0NCiRzZXR1cFJvb3QgPSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAoSm9pbi1QYXRoICRz
b3VsUm9vdEZ1bGwgJ19hZ2VudFxzZXR1cCcpDQokdHJhbnNhY3Rpb25zUm9vdCA9IEFzc2VydC1T
b3VsT3duZWRQYXRoIC1QYXRoIChKb2luLVBhdGggJHNldHVwUm9vdCAndHJhbnNhY3Rpb25zJykN
Clt2b2lkXShJbml0aWFsaXplLVdpemFyZERpcmVjdG9yeSAtUGF0aCAkdHJhbnNhY3Rpb25zUm9v
dCAtSWRlbnRpdHkgJ+yEpOyglSDsp4jrrLgg6rGw656YJykNCiRzb3VsU3RhdGVQYXRoID0gQXNz
ZXJ0LVNvdWxPd25lZFBhdGggLVBhdGggKEpvaW4tUGF0aCAkc291bFJvb3RGdWxsICdzb3VsLXN0
YXRlLmpzb24nKQ0KJHNvdWxTdGF0ZSA9IEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkc291bFN0
YXRlUGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbiAtRXJyb3JBY3Rp
b24gU3RvcA0KJHNvdWxJZEd1aWQgPSBbZ3VpZF06OkVtcHR5DQppZiAoLW5vdCBbZ3VpZF06OlRy
eVBhcnNlKFtzdHJpbmddJHNvdWxTdGF0ZS5zb3VsSWQsIFtyZWZdJHNvdWxJZEd1aWQpKSB7IHRo
cm93ICfsmIHtmLwg7IOB7YOc7J2YIHNvdWxJZOqwgCDsmKzrsJTrpbTsp4Ag7JWK7Iq164uI64uk
LicgfQ0KJHNvdWxJZCA9IFtzdHJpbmddJHNvdWxJZEd1aWQNCiRleGlzdGluZ05vZGVzID0gQChH
ZXQtV2l6YXJkRXhpc3RpbmdOb2RlcyAtUm9vdCAkc291bFJvb3RGdWxsKQ0KZm9yZWFjaCAoJGV4
aXN0aW5nTm9kZSBpbiAkZXhpc3RpbmdOb2RlcykgeyAkc2NyaXB0OkltbXV0YWJsZU5vZGVzQnlJ
ZFsoW3N0cmluZ10kZXhpc3RpbmdOb2RlLmlkKS5Ub0xvd2VySW52YXJpYW50KCldID0gJGV4aXN0
aW5nTm9kZSB9DQokZXhpc3RpbmdJY29uID0gJG51bGwNCmlmICgkbnVsbCAtbmUgJHNvdWxTdGF0
ZS5pY29uRGVjaXNpb24gLWFuZCBbc3RyaW5nXSRzb3VsU3RhdGUuaWNvbkRlY2lzaW9uLm1vZGUg
LWVxICdhZG9wdC1leGlzdGluZycgLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3Bh
Y2UoW3N0cmluZ10kc291bFN0YXRlLmljb25EZWNpc2lvbi5yZWxhdGl2ZVBhdGgpKSB7DQogICAg
JGNhbmRpZGF0ZUljb24gPSBbSU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBhdGggJHNvdWxS
b290RnVsbCAoW3N0cmluZ10kc291bFN0YXRlLmljb25EZWNpc2lvbi5yZWxhdGl2ZVBhdGgpLlJl
cGxhY2UoJy8nLCdcJykpKQ0KICAgIGlmICgtbm90IChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRh
dGUgJGNhbmRpZGF0ZUljb24gLVBhcmVudCAkc291bFJvb3RGdWxsKSkgeyB0aHJvdyAn6riw7KG0
IOyVhOydtOy9mCDqsrDsoJXsnbQg7JiB7Zi8IOuwluydhCDqsIDrpqztgrXri4jri6QuJyB9DQog
ICAgJGNhbmRpZGF0ZUl0ZW0gPSBHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGNhbmRpZGF0ZUljb24g
LUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgaWYgKCgkY2FuZGlkYXRlSXRlbS5BdHRyaWJ1
dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhy
b3cgJ+q4sOyhtCDslYTsnbTsvZjsnbQg66eB7YGs7J6F64uI64ukLicgfQ0KICAgICRpY29uUmVh
c29uPSRudWxsDQogICAgaWYgKC1ub3QgKFRlc3QtV2l6YXJkSWNvRmlsZSAtUGF0aCAkY2FuZGlk
YXRlSWNvbiAtUmVhc29uIChbcmVmXSRpY29uUmVhc29uKSkpIHsgdGhyb3cgIuq4sOyhtCDslYTs
nbTsvZjsnYQg7LGE7YOd7ZWgIOyImCDsl4bsirXri4jri6Q6ICRpY29uUmVhc29uIiB9DQogICAg
JGV4aXN0aW5nSWNvbiA9IFtwc2N1c3RvbW9iamVjdF1AeyBtb2RlPSdhZG9wdC1leGlzdGluZyc7
IHBhdGg9JGNhbmRpZGF0ZUljb247IGltbXV0YWJsZT0kdHJ1ZSB9DQp9DQoNCmlmICgkUmVzdW1l
IC1hbmQgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVHJhbnNhY3Rpb25JZCkpIHsNCiAg
ICB0aHJvdyAn7J207Ja06rCIIOqxsOuemCDrsojtmLjrpbwg66qF7Iuc7ZW07JW8IO2VqeuLiOuL
pC4g7Jik656Y65CcIOqxsOuemOulvCDsnpDrj5nsnLzroZwg6rOg66W07KeAIOyViuyKteuLiOuL
pC4nDQp9DQppZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVHJhbnNhY3Rpb25JZCkp
IHsgJFRyYW5zYWN0aW9uSWQgPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpIH0NCiR0cmFu
c2FjdGlvbkd1aWQgPSBbZ3VpZF06OkVtcHR5DQppZiAoLW5vdCBbZ3VpZF06OlRyeVBhcnNlKCRU
cmFuc2FjdGlvbklkLCBbcmVmXSR0cmFuc2FjdGlvbkd1aWQpKSB7IHRocm93ICfqsbDrnpgg67KI
7Zi46rCAIOyYrOuwlOuluCBVVUlE6rCAIOyVhOuLmeuLiOuLpC4nIH0NCiRUcmFuc2FjdGlvbklk
ID0gW3N0cmluZ10kdHJhbnNhY3Rpb25HdWlkDQokdHJhbnNhY3Rpb25EaXJlY3RvcnkgPSBKb2lu
LVBhdGggJHRyYW5zYWN0aW9uc1Jvb3QgJFRyYW5zYWN0aW9uSWQNCiRzdGF0ZVBhdGggPSBKb2lu
LVBhdGggJHRyYW5zYWN0aW9uRGlyZWN0b3J5ICd3aXphcmQtc3RhdGUuanNvbicNCmlmICgtbm90
IChUZXN0LUlzVW5kZXJQYXRoIC1DYW5kaWRhdGUgJHN0YXRlUGF0aCAtUGFyZW50ICR0cmFuc2Fj
dGlvbnNSb290KSkgeyB0aHJvdyAn6rGw656YIOyDge2DnCDqsr3roZzqsIAg7ZeI7JqpIOuylOyc
hOulvCDrspfslrTrgqzsirXri4jri6QuJyB9DQokdHJhbnNhY3Rpb25EaXJlY3RvcnkgPSBBc3Nl
cnQtU291bE93bmVkUGF0aCAtUGF0aCAkdHJhbnNhY3Rpb25EaXJlY3RvcnkNCiRzdGF0ZVBhdGgg
PSBBc3NlcnQtU291bE93bmVkUGF0aCAtUGF0aCAkc3RhdGVQYXRoDQpbdm9pZF0oSW5pdGlhbGl6
ZS1XaXphcmREaXJlY3RvcnkgLVBhdGggJHRyYW5zYWN0aW9uRGlyZWN0b3J5IC1JZGVudGl0eSAn
7ISk7KCVIOyniOusuCDqsbDrnpgg6riw66GdJykNCiR0cmFuc2FjdGlvbkl0ZW0gPSBHZXQtSXRl
bSAtTGl0ZXJhbFBhdGggJHRyYW5zYWN0aW9uRGlyZWN0b3J5IC1Gb3JjZSAtRXJyb3JBY3Rpb24g
U3RvcA0KaWYgKCgkdHJhbnNhY3Rpb25JdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW0lPLkZpbGVBdHRy
aWJ1dGVzXTo6UmVwYXJzZVBvaW50KSAtbmUgMCkgeyB0aHJvdyAn6rGw656YIO2PtOuNlOuKlCDr
p4Htgazsnbwg7IiYIOyXhuyKteuLiOuLpC4nIH0NCg0KaWYgKCRSZXN1bWUpIHsNCiAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3RhdGVQYXRoIC1QYXRoVHlwZSBMZWFmKSkg
eyB0aHJvdyAi7J207Ja06rCIIOyDge2DnCDtjIzsnbzsnbQg7JeG7Iq164uI64ukOiAkc3RhdGVQ
YXRoIiB9DQogICAgaWYgKCgoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRzdGF0ZVBhdGggLUZvcmNl
IC1FcnJvckFjdGlvbiBTdG9wKS5BdHRyaWJ1dGVzIC1iYW5kIFtJTy5GaWxlQXR0cmlidXRlc106
OlJlcGFyc2VQb2ludCkgLW5lIDApIHsgdGhyb3cgJ+ydtOyWtOqwiCDqsbDrnpgg7IOB7YOcIO2M
jOydvOydtCDrp4HtgazsnoXri4jri6QuJyB9DQogICAgJHByaW9yTWV0YWRhdGEgPSBHZXQtQ29u
dGVudCAtTGl0ZXJhbFBhdGggJHN0YXRlUGF0aCAtUmF3IC1FbmNvZGluZyBVVEY4IHwgQ29udmVy
dEZyb20tSnNvbiAtRXJyb3JBY3Rpb24gU3RvcA0KICAgIGlmIChbc3RyaW5nXSRwcmlvck1ldGFk
YXRhLnRyYW5zYWN0aW9uSWQgLWNuZSAkVHJhbnNhY3Rpb25JZCAtb3IgW3N0cmluZ10kcHJpb3JN
ZXRhZGF0YS5zb3VsSWQgLWNuZSAkc291bElkKSB7IHRocm93ICfsnbTslrTqsIgg6rGw656YIOup
lO2DgOuNsOydtO2EsOqwgCDtmITsnqwg7JiB7Zi86rO8IOunnuyngCDslYrsirXri4jri6QuJyB9
DQogICAgaWYgKFtzdHJpbmddJHByaW9yTWV0YWRhdGEuc3RhdHVzIC1ub3RpbiBAKCdvcGVuJywn
cGF1c2VkJywndGltZWQtb3V0Jywnd2luZG93LWNsb3NlZCcpKSB7IHRocm93ICfsnbTrr7gg7Iq5
7J24wrfst6jshozrkJjslrQg7J207Ja06rCIIOyImCDsl4bripQg6rGw656Y7J6F64uI64ukLicg
fQ0KICAgICRjcmVhdGVkQXQgPSBbc3RyaW5nXSRwcmlvck1ldGFkYXRhLmNyZWF0ZWRBdFV0Yw0K
fQ0KZWxzZSB7DQogICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHN0YXRlUGF0aCkgeyB0
aHJvdyAi6rCZ7J2AIOqxsOuemCDrsojtmLjqsIAg7J2066+4IOyeiOyKteuLiOuLpC4g642u7Ja0
7JOw7KeAIOyViuyKteuLiOuLpDogJFRyYW5zYWN0aW9uSWQiIH0NCiAgICAkY3JlYXRlZEF0ID0g
W0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJykNCn0NCiRtZXRhZGF0YSA9IFtwc2N1c3Rv
bW9iamVjdF1bb3JkZXJlZF1AeyBzY2hlbWFWZXJzaW9uPTE7IHRyYW5zYWN0aW9uSWQ9JFRyYW5z
YWN0aW9uSWQ7IHNvdWxJZD0kc291bElkOyBzdGF0dXM9J29wZW4nOyBjcmVhdGVkQXRVdGM9JGNy
ZWF0ZWRBdDsgdXBkYXRlZEF0VXRjPVtEYXRlVGltZV06OlV0Y05vdy5Ub1N0cmluZygnbycpOyBh
bnN3ZXJzUGVyc2lzdGVkPSRmYWxzZSB9DQpXcml0ZS1Kc29uQXRvbWljIC1WYWx1ZSAkbWV0YWRh
dGEgLVBhdGggJHN0YXRlUGF0aA0KJHN0YXRlID0gW3BzY3VzdG9tb2JqZWN0XVtvcmRlcmVkXUB7
DQogICAgc2NoZW1hVmVyc2lvbj0xOyB0cmFuc2FjdGlvbklkPSRUcmFuc2FjdGlvbklkOyBzb3Vs
SWQ9JHNvdWxJZDsgc3RhdHVzPSdkcmFmdCc7IGFwcHJvdmVkPSRmYWxzZQ0KICAgIG5vZGVzPUAo
JGV4aXN0aW5nTm9kZXMpOyBkZWZlcnJlZExldmVscz1bcHNjdXN0b21vYmplY3RdQHtSPSRmYWxz
ZTtEPSRmYWxzZTtQPSRmYWxzZTtTPSRmYWxzZTtUPSR0cnVlfQ0KICAgIGljb249JChpZiAoJG51
bGwgLW5lICRleGlzdGluZ0ljb24pIHsgJGV4aXN0aW5nSWNvbiB9IGVsc2UgeyBbcHNjdXN0b21v
YmplY3RdQHsgbW9kZT0nZGVmYXVsdCc7IHBhdGg9JG51bGw7IGltbXV0YWJsZT0kZmFsc2UgfSB9
KQ0KfQ0KJGh0bWwgPSAkaHRtbC5SZXBsYWNlKCdfX1RSQU5TQUNUSU9OX0lEX18nLCAkVHJhbnNh
Y3Rpb25JZCkuUmVwbGFjZSgnX19TT1VMX0lEX18nLCAkc291bElkKQ0KDQokdG9rZW4gPSBOZXct
U2VjdXJlVG9rZW4NCiRsaXN0ZW5lciA9IE5ldy1PYmplY3QgU3lzdGVtLk5ldC5Tb2NrZXRzLlRj
cExpc3RlbmVyKFtTeXN0ZW0uTmV0LklQQWRkcmVzc106Okxvb3BiYWNrLCAwKQ0KJGV4aXRDb2Rl
ID0gMA0KJGZpbmlzaGVkID0gJGZhbHNlDQp0cnkgew0KICAgICRsaXN0ZW5lci5TdGFydCgpDQog
ICAgJHBvcnQgPSAoW1N5c3RlbS5OZXQuSVBFbmRQb2ludF0kbGlzdGVuZXIuTG9jYWxFbmRwb2lu
dCkuUG9ydA0KICAgICR1cmwgPSAiaHR0cDovLzEyNy4wLjAuMTokcG9ydC8jdG9rZW49JHRva2Vu
Ig0KICAgIFN0YXJ0LVByb2Nlc3MgJHVybA0KICAgICRlZmZlY3RpdmVTZWNvbmRzID0gaWYgKCRU
aW1lb3V0U2Vjb25kcyAtZ3QgMCkgeyAkVGltZW91dFNlY29uZHMgfSBlbHNlIHsgJFRpbWVvdXRN
aW51dGVzICogNjAgfQ0KICAgICRkZWFkbGluZSA9IFtEYXRlVGltZV06OlV0Y05vdy5BZGRTZWNv
bmRzKCRlZmZlY3RpdmVTZWNvbmRzKQ0KDQogICAgd2hpbGUgKC1ub3QgJGZpbmlzaGVkIC1hbmQg
W0RhdGVUaW1lXTo6VXRjTm93IC1sdCAkZGVhZGxpbmUpIHsNCiAgICAgICAgaWYgKC1ub3QgJGxp
c3RlbmVyLlBlbmRpbmcoKSkgeyBTdGFydC1TbGVlcCAtTWlsbGlzZWNvbmRzIDEwMDsgY29udGlu
dWUgfQ0KICAgICAgICAkY2xpZW50ID0gJGxpc3RlbmVyLkFjY2VwdFRjcENsaWVudCgpDQogICAg
ICAgIHRyeSB7DQogICAgICAgICAgICAkcmVxdWVzdCA9IFJlYWQtUmF3SHR0cFJlcXVlc3QgLUNs
aWVudCAkY2xpZW50DQogICAgICAgICAgICAkaG9zdEV4cGVjdGVkID0gIjEyNy4wLjAuMTokcG9y
dCINCiAgICAgICAgICAgIGlmICgtbm90ICRyZXF1ZXN0LkhlYWRlcnMuQ29udGFpbnNLZXkoJ2hv
c3QnKSAtb3IgW3N0cmluZ10kcmVxdWVzdC5IZWFkZXJzWydob3N0J10gLWNuZSAkaG9zdEV4cGVj
dGVkKSB7DQogICAgICAgICAgICAgICAgU2VuZC1IdHRwUmVzcG9uc2UgLUNsaWVudCAkY2xpZW50
IC1TdGF0dXMgNDAxIC1Cb2R5ICd7ImVycm9yIjoiSG9zdCDrqLjrpqztkZzqsIAg7ZiE7J6sIGxv
Y2FsaG9zdCDshJzrsoTsmYAg66ee7KeAIOyViuyKteuLiOuLpC4ifScNCiAgICAgICAgICAgICAg
ICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRyZXF1ZXN0Lk1ldGhv
ZCAtZXEgJ0dFVCcgLWFuZCAkcmVxdWVzdC5QYXRoIC1lcSAnLycpIHsNCiAgICAgICAgICAgICAg
ICBTZW5kLUh0dHBSZXNwb25zZSAtQ2xpZW50ICRjbGllbnQgLUNvbnRlbnRUeXBlICd0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgnIC1Cb2R5ICRodG1sDQogICAgICAgICAgICAgICAgY29udGludWUN
CiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRwcmVzZW50ZWQgPSBpZiAoJHJlcXVlc3QuSGVh
ZGVycy5Db250YWluc0tleSgneC1zb3VsLXRva2VuJykpIHsgW3N0cmluZ10kcmVxdWVzdC5IZWFk
ZXJzWyd4LXNvdWwtdG9rZW4nXSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICBpZiAoLW5vdCAo
VGVzdC1Ub2tlbkVxdWFsIC1QcmVzZW50ZWQgJHByZXNlbnRlZCAtRXhwZWN0ZWQgJHRva2VuKSkg
ew0KICAgICAgICAgICAgICAgIFNlbmQtSHR0cFJlc3BvbnNlIC1DbGllbnQgJGNsaWVudCAtU3Rh
dHVzIDQwMSAtQm9keSAneyJlcnJvciI6IuyehOyLnCDsl7Tsh6DqsIAg66ee7KeAIOyViuyKteuL
iOuLpC4ifScNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgJG9yaWdpbkV4cGVjdGVkID0gImh0dHA6Ly8xMjcuMC4wLjE6JHBvcnQiDQogICAgICAg
ICAgICBpZiAoLW5vdCAkcmVxdWVzdC5IZWFkZXJzLkNvbnRhaW5zS2V5KCdvcmlnaW4nKSAtb3Ig
W3N0cmluZ10kcmVxdWVzdC5IZWFkZXJzWydvcmlnaW4nXSAtY25lICRvcmlnaW5FeHBlY3RlZCkg
ew0KICAgICAgICAgICAgICAgIFNlbmQtSHR0cFJlc3BvbnNlIC1DbGllbnQgJGNsaWVudCAtU3Rh
dHVzIDQwMSAtQm9keSAneyJlcnJvciI6IuuLpOuluCDtmZTrqbTsl5DshJwg7JioIOyalOyyreyd
gCDrsJvsp4Ag7JWK7Iq164uI64ukLiJ9Jw0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAg
ICAgICAgICB9DQogICAgICAgICAgICBpZiAoJHJlcXVlc3QuTWV0aG9kIC1uZSAnUE9TVCcpIHsN
CiAgICAgICAgICAgICAgICBTZW5kLUh0dHBSZXNwb25zZSAtQ2xpZW50ICRjbGllbnQgLVN0YXR1
cyA0MDUgLUJvZHkgJ3siZXJyb3IiOiLtl4jsmqnrkJjsp4Ag7JWK7J2AIOyalOyyrSDrsKnsi53s
noXri4jri6QuIn0nDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgIHRyeSB7ICRjYW5kaWRhdGVTdGF0ZSA9ICRyZXF1ZXN0LkJvZHkgfCBDb252ZXJ0
RnJvbS1Kc29uIC1FcnJvckFjdGlvbiBTdG9wIH0NCiAgICAgICAgICAgIGNhdGNoIHsNCiAgICAg
ICAgICAgICAgICBTZW5kLUh0dHBSZXNwb25zZSAtQ2xpZW50ICRjbGllbnQgLVN0YXR1cyA0MDAg
LUJvZHkgJ3siZXJyb3IiOiLtmZTrqbQg642w7J207YSwIO2YleyLneydtCDsmKzrsJTrpbTsp4Ag
7JWK7Iq164uI64ukLiJ9Jw0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9
DQogICAgICAgICAgICBpZiAoW3N0cmluZ10kY2FuZGlkYXRlU3RhdGUudHJhbnNhY3Rpb25JZCAt
Y25lICRUcmFuc2FjdGlvbklkIC1vciBbc3RyaW5nXSRjYW5kaWRhdGVTdGF0ZS5zb3VsSWQgLWNu
ZSAkc291bElkKSB7DQogICAgICAgICAgICAgICAgU2VuZC1IdHRwUmVzcG9uc2UgLUNsaWVudCAk
Y2xpZW50IC1TdGF0dXMgNDA5IC1Cb2R5ICd7ImVycm9yIjoi7JqU7LKt7J2YIOqxsOuemCDrsojt
mLgg65iQ64qUIHNvdWxJZOqwgCDtmITsnqwg7ZmU66m06rO8IOuLpOumheuLiOuLpC4ifScNCiAg
ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRy
ZXF1ZXN0LlBhdGggLWluIEAoJy9hcGkvcHJldmlldycsJy9hcGkvc2F2ZScsJy9hcGkvZHJhZnQn
KSkgew0KICAgICAgICAgICAgICAgICRjYW5kaWRhdGVTdGF0ZS5zY2hlbWFWZXJzaW9uID0gMQ0K
ICAgICAgICAgICAgICAgICRwcm9ibGVtcyA9IEAoVGVzdC1XaXphcmRTdGF0ZSAtU3RhdGUgJGNh
bmRpZGF0ZVN0YXRlIC1SZXF1aXJlQXBwcm92YWw6KCRyZXF1ZXN0LlBhdGggLWVxICcvYXBpL3Nh
dmUnKSkNCiAgICAgICAgICAgICAgICBpZiAoJHByb2JsZW1zLkNvdW50IC1ndCAwKSB7DQogICAg
ICAgICAgICAgICAgICAgIFNlbmQtSHR0cFJlc3BvbnNlIC1DbGllbnQgJGNsaWVudCAtU3RhdHVz
IDQwMCAtQm9keSAoW3BzY3VzdG9tb2JqZWN0XUB7IGVycm9ycyA9ICRwcm9ibGVtcyB9IHwgQ29u
dmVydFRvLUpzb24gLUNvbXByZXNzKQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAoJHJlcXVl
c3QuUGF0aCkgew0KICAgICAgICAgICAgICAgICcvYXBpL3N0YXRlJyB7DQogICAgICAgICAgICAg
ICAgICAgIFNlbmQtSHR0cFJlc3BvbnNlIC1DbGllbnQgJGNsaWVudCAtQm9keSAoW3BzY3VzdG9t
b2JqZWN0XUB7IHN0YXRlID0gJHN0YXRlIH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjAgLUNv
bXByZXNzKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAnL2FwaS9wcmV2aWV3
JyB7DQogICAgICAgICAgICAgICAgICAgICRwYXRocyA9IEAoR2V0LVByZXZpZXdQYXRocyAtU3Rh
dGUgJGNhbmRpZGF0ZVN0YXRlKQ0KICAgICAgICAgICAgICAgICAgICBTZW5kLUh0dHBSZXNwb25z
ZSAtQ2xpZW50ICRjbGllbnQgLUJvZHkgKFtwc2N1c3RvbW9iamVjdF1AeyBwYXRocyA9ICRwYXRo
cyB9IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDEwIC1Db21wcmVzcykNCiAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgJy9hcGkvZHJhZnQnIHsNCiAgICAgICAgICAgICAgICAgICAg
JHN0YXRlID0gJGNhbmRpZGF0ZVN0YXRlDQogICAgICAgICAgICAgICAgICAgIFNlbmQtSHR0cFJl
c3BvbnNlIC1DbGllbnQgJGNsaWVudCAtQm9keSAneyJtZXNzYWdlIjoi7ZmU66m0IOuplOuqqOum
rOyXkOyEnOunjCDtmZXsnbjtlojsirXri4jri6QuIOuLteydgCDrlJTsiqTtgazsl5Ag7KCA7J6l
7ZWY7KeAIOyViuyVmOyKteuLiOuLpC4ifScNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgJy9hcGkvc2F2ZScgew0KICAgICAgICAgICAgICAgICAgICAkY2FuZGlkYXRlU3RhdGUu
c3RhdHVzID0gJ2FwcHJvdmVkJzsgJGNhbmRpZGF0ZVN0YXRlLmFwcHJvdmVkQXRVdGMgPSBbRGF0
ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKTsgJHN0YXRlID0gJGNhbmRpZGF0ZVN0YXRlDQog
ICAgICAgICAgICAgICAgICAgICRyZXN1bHRQYXRoID0gSm9pbi1QYXRoICR0cmFuc2FjdGlvbkRp
cmVjdG9yeSAnd2l6YXJkLXJlc3VsdC5qc29uJw0KICAgICAgICAgICAgICAgICAgICBpZiAoVGVz
dC1QYXRoIC1MaXRlcmFsUGF0aCAkcmVzdWx0UGF0aCkgeyB0aHJvdyAn6rKw6rO8IO2MjOydvOyd
tCDsnbTrr7gg7J6I7Ja0IOuNruyWtOyTsOyngCDslYrsirXri4jri6QuJyB9DQogICAgICAgICAg
ICAgICAgICAgIFdyaXRlLUpzb25BdG9taWMgLVZhbHVlICRzdGF0ZSAtUGF0aCAkcmVzdWx0UGF0
aA0KICAgICAgICAgICAgICAgICAgICAkbWV0YWRhdGEuc3RhdHVzPSdhcHByb3ZlZCc7JG1ldGFk
YXRhLnVwZGF0ZWRBdFV0Yz1bRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKTtXcml0ZS1K
c29uQXRvbWljIC1WYWx1ZSAkbWV0YWRhdGEgLVBhdGggJHN0YXRlUGF0aA0KICAgICAgICAgICAg
ICAgICAgICBTZW5kLUh0dHBSZXNwb25zZSAtQ2xpZW50ICRjbGllbnQgLUJvZHkgJ3sibWVzc2Fn
ZSI6Iu2Zleygle2WiOyKteuLiOuLpC4g7J207KCcIOyViOyghO2VmOqyjCDtj7TrjZQg7IOd7ISx
IOykgOu5hOuhnCDrhJjslrTqsJHri4jri6QuIn0nDQogICAgICAgICAgICAgICAgICAgICRmaW5p
c2hlZCA9ICR0cnVlOyAkZXhpdENvZGUgPSAwDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgICAgICcvYXBpL3BhdXNlJyB7DQogICAgICAgICAgICAgICAgICAgICRtZXRhZGF0YS5zdGF0
dXM9J3BhdXNlZCc7JG1ldGFkYXRhLnVwZGF0ZWRBdFV0Yz1bRGF0ZVRpbWVdOjpVdGNOb3cuVG9T
dHJpbmcoJ28nKTtXcml0ZS1Kc29uQXRvbWljIC1WYWx1ZSAkbWV0YWRhdGEgLVBhdGggJHN0YXRl
UGF0aA0KICAgICAgICAgICAgICAgICAgICBTZW5kLUh0dHBSZXNwb25zZSAtQ2xpZW50ICRjbGll
bnQgLUJvZHkgJ3sibWVzc2FnZSI6IuydvOyLnOygleyngO2WiOyKteuLiOuLpC4ifScNCiAgICAg
ICAgICAgICAgICAgICAgJGZpbmlzaGVkID0gJHRydWU7ICRleGl0Q29kZSA9IDMNCiAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgJy9hcGkvY2FuY2VsJyB7DQogICAgICAgICAgICAg
ICAgICAgICRtZXRhZGF0YS5zdGF0dXM9J2NhbmNlbGxlZCc7JG1ldGFkYXRhLnVwZGF0ZWRBdFV0
Yz1bRGF0ZVRpbWVdOjpVdGNOb3cuVG9TdHJpbmcoJ28nKTtXcml0ZS1Kc29uQXRvbWljIC1WYWx1
ZSAkbWV0YWRhdGEgLVBhdGggJHN0YXRlUGF0aA0KICAgICAgICAgICAgICAgICAgICBTZW5kLUh0
dHBSZXNwb25zZSAtQ2xpZW50ICRjbGllbnQgLUJvZHkgJ3sibWVzc2FnZSI6Iuy3qOyGjCDsg4Ht
g5zroZwg6riw66Gd7ZaI7Iq164uI64ukLiDquLDsobQg7YyM7J287J2AIOuwlOuAjOyngCDslYrs
lZjsirXri4jri6QuIn0nDQogICAgICAgICAgICAgICAgICAgICRmaW5pc2hlZCA9ICR0cnVlOyAk
ZXhpdENvZGUgPSAyDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICcvYXBpL2Ns
b3NlJyB7DQogICAgICAgICAgICAgICAgICAgICRtZXRhZGF0YS5zdGF0dXM9J3dpbmRvdy1jbG9z
ZWQnOyRtZXRhZGF0YS51cGRhdGVkQXRVdGM9W0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdv
Jyk7V3JpdGUtSnNvbkF0b21pYyAtVmFsdWUgJG1ldGFkYXRhIC1QYXRoICRzdGF0ZVBhdGgNCiAg
ICAgICAgICAgICAgICAgICAgU2VuZC1IdHRwUmVzcG9uc2UgLUNsaWVudCAkY2xpZW50IC1Cb2R5
ICd7Im1lc3NhZ2UiOiLssL0g64ur7Z6Y7J2EIOq4sOuhne2WiOyKteuLiOuLpC4g64u1IOuCtOya
qeydgCDsoIDsnqXtlZjsp4Ag7JWK7JWY7Iq164uI64ukLiJ9Jw0KICAgICAgICAgICAgICAgICAg
ICAkZmluaXNoZWQgPSAkdHJ1ZTsgJGV4aXRDb2RlID0gNA0KICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICAgICBkZWZhdWx0IHsgU2VuZC1IdHRwUmVzcG9uc2UgLUNsaWVudCAkY2xpZW50
IC1TdGF0dXMgNDA0IC1Cb2R5ICd7ImVycm9yIjoi7JeG64qUIOq4sOuKpeyeheuLiOuLpC4ifScg
fQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGNhdGNoIHsNCiAgICAgICAgICAg
IHRyeSB7IFNlbmQtSHR0cFJlc3BvbnNlIC1DbGllbnQgJGNsaWVudCAtU3RhdHVzIDQwMCAtQm9k
eSAoW3BzY3VzdG9tb2JqZWN0XUB7IGVycm9yID0gJF8uRXhjZXB0aW9uLk1lc3NhZ2UgfSB8IENv
bnZlcnRUby1Kc29uIC1Db21wcmVzcykgfSBjYXRjaCB7IH0NCiAgICAgICAgfQ0KICAgICAgICBm
aW5hbGx5IHsgJGNsaWVudC5EaXNwb3NlKCkgfQ0KICAgIH0NCg0KICAgIGlmICgtbm90ICRmaW5p
c2hlZCkgew0KICAgICAgICAkbWV0YWRhdGEuc3RhdHVzPSd0aW1lZC1vdXQnOyRtZXRhZGF0YS51
cGRhdGVkQXRVdGM9W0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCdvJyk7V3JpdGUtSnNvbkF0
b21pYyAtVmFsdWUgJG1ldGFkYXRhIC1QYXRoICRzdGF0ZVBhdGgNCiAgICAgICAgJGV4aXRDb2Rl
ID0gMTI0DQogICAgfQ0KfQ0KZmluYWxseSB7DQogICAgJGxpc3RlbmVyLlN0b3AoKQ0KICAgICR0
b2tlbiA9ICRudWxsDQp9DQoNCltwc2N1c3RvbW9iamVjdF1AeyB0cmFuc2FjdGlvbklkID0gJFRy
YW5zYWN0aW9uSWQ7IHN0YXR1cyA9IFtzdHJpbmddJG1ldGFkYXRhLnN0YXR1czsgc3RhdGVQYXRo
ID0gJHN0YXRlUGF0aDsgZXhpdENvZGUgPSAkZXhpdENvZGUgfQ0KaWYgKCRleGl0Q29kZSAtbmUg
MCkgeyBleGl0ICRleGl0Q29kZSB9DQo=
```
<!-- FILE-END -->

<!-- V7-FILE-BLOCKS-END -->

---

## 부록 I. 시험과 오류 코드

| 코드 | 뜻 | 행동 |
|---|---|---|
| `E-SOUL-CONFLICT` | 서로 다른 영혼 ID | 중단하고 사용자 확인 |
| `E-NEWER-SCHEMA` | 더 최신 상태파일 | 읽기만 하고 중단 |
| `E-WRITE-OUTSIDE` | setup engine/훅 허용목록 밖 쓰기 | 즉시 차단; OS sandbox 보장으로 과장하지 않음 |
| `E-DESKTOP-WRITE` | 실제 바탕화면 쓰기 | 부모 정션까지 확인해 즉시 차단 |
| `E-ACL` | live 영혼이 NTFS가 아니거나 권한이 안전하지 않음 | 신규는 차단, 기존 공유 권한은 백업·충돌 보고 |
| `E-LIVE-WRITER` | 에이전트가 파일을 쓰는 중 | 전환을 미루고 옛 환경 유지 |
| `E-HASH-MISMATCH` | 복사본 지문 불일치 | 전환 금지, 다시 준비 |
| `E-CONFIG-DRIFT` | 준비 뒤 설정이 바뀜 | 최신 파일에 키 재병합 |
| `E-POLICY` | 조직 정책이 권한을 막음 | 우회 금지, blocked 보고 |
| `E-CAPABILITY` | Office/HWP 등 외부 앱 없음 | 해당 기능만 pending |
| `E-SECRET` | 금고·암호 문제 | 값 출력 금지, 복구 절차 안내 |

오류 보고는 “무엇이 망가졌다”보다 “옛 환경은 그대로 안전한지, 어디까지 끝났는지, 다음에 무엇을 하면 되는지” 순서로 말한다.

---

## 부록 J. 출처·라이선스·변경 기록

### J-1. 우선 확인할 공식 출처

- Claude Code settings: <https://code.claude.com/docs/en/settings>
- Claude Code permission modes: <https://code.claude.com/docs/en/permission-modes>
- Claude Code sessions: <https://code.claude.com/docs/en/sessions>
- Claude Code memory/instructions: <https://code.claude.com/docs/en/memory>
- Claude Code MCP: <https://code.claude.com/docs/en/mcp>
- Claude Code plugins: <https://code.claude.com/docs/en/plugins>
- Codex config reference: <https://learn.chatgpt.com/docs/config-file/config-reference>
- Codex skills: <https://learn.chatgpt.com/docs/build-skills>
- Superpowers upstream: <https://github.com/obra/superpowers>
- Playwright MCP: <https://github.com/microsoft/playwright-mcp>
- k-skill: <https://github.com/NomaDamas/k-skill>
- self-improve: <https://github.com/Feynman520/d06-p01-self-improve>
- frontend-design marketplace: <https://github.com/anthropics/claude-plugins-official>
- insane-search: <https://github.com/fivetaku/insane-search>
- UI/UX Pro Max CLI package: <https://www.npmjs.com/package/ui-ux-pro-max-cli>
- age encryption: <https://github.com/FiloSottile/age/releases/tag/v1.3.1>
- age official batchpass plugin: <https://github.com/FiloSottile/age/blob/main/cmd/age-plugin-batchpass/plugin-batchpass.go>
- HWP automation MCP: <https://github.com/Feynman520/d01-p01-hwp-form-automation-mcp>
- Excel automation MCP: <https://github.com/Feynman520/d01-p02-excel-engine-mcp>
- PowerPoint automation MCP: <https://github.com/Feynman520/d01-p03-ppt-engine-mcp>
- Word automation MCP: <https://github.com/Feynman520/d01-p04-word-engine-mcp>
- PDF automation MCP: <https://github.com/Feynman520/d01-p05-pdf-engine-mcp>

설치 직전 공식 출처의 존재와 라이선스를 확인하되, 버전은 이 가이드의 잠금표를 유지한다. 출처가 사라지거나 해시가 다르면 비슷한 다른 도구로 몰래 바꾸지 않는다.

UI/UX Pro Max 2.15.0은 package metadata의 `MIT`와 동봉 README의 `CC-BY-NC-4.0` 문구가 서로 다르다. 설치 자체는 고정 세트로 준비하되, 상업 프로젝트에서는 이 기능만 `pendingCapabilities`로 두고 권리 범위를 확인하기 전 산출물에 적용하지 않는다.

### J-2. v7의 핵심 변경

- Claude 최초 설치용 한 방향 가이드에서 신규·업데이트·복원·수리 통합 가이드로 변경
- 영혼 이름 하드코딩 제거, `C:\<영혼 이름>` 자동 발견·생성
- 바탕화면 쓰기 전면 금지
- R/D/P/S/T와 아이콘을 localhost HTML에서 필수 확인
- Claude·Codex 공용 영혼 본체와 각 에이전트 전용 연결부 분리
- 두 에이전트 모두 위험 권한 자동 전역 적용
- Superpowers와 self-improve를 양쪽 필수로 고정
- Codex 디자인 도구를 UI/UX Pro Max로 고정, 검색은 native live search 사용
- OpenAI Templates와 document-skills 신규 설치 제외
- 평문 `.env` 대신 영혼 내부 암호화 `vault.age`
- 공용 사건 장부·정확한 세션 연결·동시 쓰기 잠금 추가
- USB를 단순 폴더 복사에서 암호화 export/restore로 교체
- 거래·지문·재개·자연 종료 finalizer로 무손실 업데이트 보장

### J-3. v8의 핵심 변경 — 2026-09-05

- R/D/P 폴더에 고유번호·관계·상태 위치를 기록하는 목록 카드 체계 추가
- 카드·정본·진실 소스·서랍·등록부의 역할을 나누고 현재 IRIS 명세의 2026-09-04~05 결정 반영
- 신규 영혼용 온톨로지 묶음·추출기·충돌 없는 추가 설치기 내장, 임의의 다른 영혼 루트에서 동작하도록 배포
- 기존 IRIS 카드·ID·등록부·루트 `.git`·도구 묶음 보존, 같은 영혼 복원과 독립 새 영혼 구분
- 조회 → 카드 확인 → 그래프 생성 → 검증 → 구조지도·온톨로지 뷰 → 신선도 확인 절차 추가
- 기존 IRIS의 경로 지문과 신규 배포 도구의 내용 지문 차이, 검증 실패·미검사와 명령 실행 성공의 차이를 설명
- 가이드 v8·내장 설치 엔진 v7·온톨로지 형식 버전을 분리하고 `soul-state.json`·기존 `sourceGuide` 유지
- 새 루트 지침과 기존 지침 병합 후보를 구분하고 훅·야간 예약 작업의 미설정 상태를 숨기지 않음

이번 배포는 외부 도구의 새 버전을 추적해 올리는 작업이 아니다. 부록 G의 v7 고정 원본은 기존 배포에서 검증된 바이트를 유지한다. 온톨로지 규칙의 기준은 루트 `IRIS-온톨로지.md`의 2026-09-05까지의 변경 이력이며, 배포용 명세는 개인 프로젝트·계정 데이터 없이 독립 작업공간에 적용한다.

### J-4. v9의 핵심 변경 — 2026-09-07

- v8(2026-09-05)은 공개 배포 전 판이며 이 판이 대체한다. 내장 파일 78개 중 온톨로지 추가 묶음 쪽만 갱신했고 v7 원본 52개는 바이트 그대로다
- 배포 부품(`validate.py`·`build_graph.py`·`build_map.py`·`query.py`·`render_view.py`)의 예시·주석·검사 근거 문구를 일반 이름으로 바꾸고, 배포되지 않는 문서·도구 참조와 특정 도메인 폴더명 분기를 제거
- 온톨로지 명령이 필요로 하는 `PyYAML` 설치 절차를 6-5절 ②와 부록 H-1에 추가하고 8-1 표와 표준 구조에 반영
- 구조지도·온톨로지 뷰의 화면 제목과 트리 루트가 작업공간 이름을 따르도록 변경
- `세부 지역`·`논문 단위`·`확장 포인트` 태그는 카드에 사람이 적는다는 절차를 6-5절 ②와 태그 표에 명시
- 부록 G 도구 잠금표 JSON의 줄바꿈 오류(`\r\r\n`) 수정
- 온톨로지 추가 부품의 이름(`ontology-v8`, `install-ontology-v8.py`, `ontology-v8-receipt.json`)은 세대 이름이라 유지

---

## 마지막 한 문장

영혼 폴더는 이삿짐 상자이고, 목록 카드는 짐의 위치와 관계를 알려 주며, Claude와 Codex는 같은 카드와 장부를 확인해 일을 이어 간다.
