From 5842b26e8353a38192afb1ebe4c08809da48dbf4 Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 19 Oct 2026 03:02:51 +0100 Subject: 140's 9, HTTP/1.1 requests a packet at a time (RFC 9112), written in aup with no new opcode (aup's examples/http.aup: each packet an event, its bytes added to what the last left, every request they complete read, h11's grammar): 200 streams (132,623 bytes, 578 requests: methods, targets, HTTP/1.1 and a last 1.0, mixed-case names, spaces around values, Content-Length and chunked bodies with extensions and trailers, some ending in part of a request) fed whole, at random boundaries and a byte at a time (the 50 under 400 bytes), the requests read h11's on every cut and the bytes left those after them, the three paths' outputs the same bytes; 200 damaged streams fed whole as http_requests.py (the Python reference) reads them, 35 refused by both and 165 the same; module_specs in make check: 80 streams and their reading (tests/specs/http, no h11 at check time) whole on the three paths and cut 88 ways; bars: written, three workarounds (the bytes left in a list of one: bytes are no state; names and codings compared as text: bytes have no ==; field lines returned in a record: a fn returns no bare list), 159 lines against Python's 79, 278 ns a byte against the same algorithm in C 3.27 (85x), pure Python 67 (its bytes methods are C: Pure 4.1x slower), h11 284; 140's decision point after 027: bytes alone as a state (inflate, HTTP) and bytes' == (DNS, HTTP) now each met by two written specs, so the two-spec rule lets them into the core (their design not begun); a view calling a block fn met by one (DNS); aup's three its compiler's; CHECKPOINT's direction row --- CHECKPOINT.md | 2 +- docs/research/140-spec-suite.md | 89 +++++++- .../experiments/044-specs/2026-10-19-http.jsonl | 5 + research/experiments/044-specs/http_check.py | 201 +++++++++++++++++ research/experiments/044-specs/http_requests.py | 125 +++++++++++ research/experiments/044-specs/http_time.c | 247 +++++++++++++++++++++ tests/check.py | 39 +++- tests/specs/http/README.md | 9 + tests/specs/http/read.json | 1 + tests/specs/http/streams.bin | Bin 0 -> 54754 bytes 10 files changed, 714 insertions(+), 4 deletions(-) create mode 100644 research/experiments/044-specs/2026-10-19-http.jsonl create mode 100644 research/experiments/044-specs/http_check.py create mode 100644 research/experiments/044-specs/http_requests.py create mode 100644 research/experiments/044-specs/http_time.c create mode 100644 tests/specs/http/README.md create mode 100644 tests/specs/http/read.json create mode 100644 tests/specs/http/streams.bin diff --git a/CHECKPOINT.md b/CHECKPOINT.md index 72775c4..94f4d6c 100644 --- a/CHECKPOINT.md +++ b/CHECKPOINT.md @@ -26,7 +26,7 @@ | 표 크기의 상태 | 목록이 영속 B+트리다(변경·키 탐색·저장본 위치 O(log n), 스냅숏 O(1), 1,600만 항목, 런타임 상태 1 GiB). pgbench의 TPC-B 같은 이체(세 표의 행과 이력, 한 트랜잭션)가 10만 계좌에서 RAM 24.5k/s(전: 3만 계좌 3.2k/s), SD 카드 내구 1,339/s(SQLite WAL FULL 84–153/s) | [090](docs/research/090-tables.md) | | 일반 트랜잭션 | TPC-C의 다섯 트랜잭션을 aup 앱 하나로 쓴다(여러 표 읽기·쓰기, 조각 훑기, 중복 없는 셈, 실패하면 통째 되돌림). 같은 입력에서 SQLite와 아홉 표의 모든 행이 같다(창고 하나와 넷). RAM 초당 40,976건(W=4 35,838; 조율한 SQLite 10,164, 트랜잭션당 CPU 43–50 µs, HTTP·JSON 포함), SD 카드 내구 4,980건(W=4 4,590). SQLite도 카드에 맞게 조율하고 묶어 커밋하면 739건(W=4 426)이다. 남은 차이는 거래당 쓰는 바이트다(SQLite는 페이지째 써서 8–18배) | [092](docs/research/092-tpcc.md), [106](docs/research/106-tpcc-conditions-first.md), [107](docs/research/107-snapshot-nodes-reused.md) | | 질의 | 질의는 앱의 상태 위에 보기를 더한 모듈이다(`aup query`, `PUT·GET /queries/이름`). 검증한 뒤 스냅숏에서 돌고, 열 안의 fold가 그 행을 읽는다(상관 부질의). 잎이 항목을 필드별로 들고, fold와 필터는 잎 하나씩 돌며(결함이 날 잎만 항목별로), 열 안의 그룹·순위 fold는 목록을 한 번 지나 모든 행에 답한다. 10만 계좌에서 지점별 합계 4.9 ms(SQLite 45, 인덱스를 주면 14.3), 조인 0.48 ms(1.47), 자기 조인 순위 6.8 ms(2,840, 인덱스를 주면 7.6). Pure에는 인덱스 선언이 없다 | [091](docs/research/091-queries.md) | -| 방향(1.0 전) | 앱 계약을 1.0에서 얼릴 후보로 적었다: 이벤트는 전함수이고 원자적이며 결정적이다, 시간은 입력이다, 보기는 커밋된 상태의 순수 함수다, 보이는 역사는 커밋의 앞부분이다, 전달은 순서대로 한 번이다. 계산의 언어(명령 90개, 상태 종류 7개)는 패턴의 모음이라 다시 세운다. 분야마다 고른 명세 열한 개의 묶음에서 오늘의 aup는 바이트, 비트 연산, 중첩, 재귀, 갈래, 글자 읽기에 막힌다(탐침 열 개). 1.0 전에는 호환을 챙기지 않고, JSON과 HTTP는 경계에 남는다. 계산의 핵을 다섯 단계로 다시 세운다(027). 1단계(비트 연산, 자리의 바이트, 수의 리스트, 한 번에 주기)로 aup로 쓴 SHA-256이 공식 벡터를 세 실행 길에서 모두 지난다. 2a(형식 지정, 바이트 잇기와 자르기, 바이트와 text의 let, `while`, 단락 평가의 `&&`·`||`)로 쓴 JSON 검사기가 JSONTestSuite에서 하나도 틀리지 않는다. 2b(레코드 안의 레코드, 갈래와 `match`, 레코드 안의 리스트, 수 읽기)로 JSON을 트리로 읽어 다이제스트가 파이썬과 같다(JSONTestSuite, 무작위 문서 300개). 2c(스스로 부르는 함수: 부름마다 제 스택·지역 칸·리스트·레지스터·담은 값, 깊이는 표로 센 프레임 바이트가 몫에서 묶음; 값으로서의 레코드; 글자 읽기)로 JSON 트리를 재귀 하강으로 다시 써 JSONTestSuite와 무작위 문서 300개가 파이썬과 같고, 10만 겹은 `memory`로 거절한다. 반복 아래에 값을 둔 모듈이 검증을 지나 실행기를 죽이던 구멍도 찾아 막았다. 3단계(중첩한 저장 상태: 저장과 transient의 리스트가 리스트를 담은 레코드를 받고, 그 칸은 값을 항목들의 저장 형태로 바이트처럼 담아 이미지·로그·되돌리기·회복이 그대로다)로 열 → 카드 → 태그의 보드가 메모리 앱과 여덟 번 재시작하는 저장 앱에서 매 걸음 같고(스냅숏 2,400개), 커밋의 여섯 단계 어디서 죽여도 전부 아니면 없음이며, 교체는 이름으로 깊이까지 옮긴다. 중첩 리스트를 바꾸는 비용은 그 값의 크기에 비례한다(이미 있는 항목 하나에 170 ns). 줄 수는 검사기만 파이썬 이하이고(80 대 90), SHA-256(42 대 28)과 트리(142 대 105)는 길다. 시간은 C의 40–159배이고 바이트를 다루는 일은 순수 파이썬과 비슷하거나 느리다(0.43–1.6배): 핵이 선 뒤 빠르게 할 과녁이다. 4단계(패턴 모으기)로 메시지의 행이 중첩을 받고, 키별 문서가 키 있는 리스트에 녹고, 커서와 인덱스가 앵커 하나가 되고, 키·text·타이머·프레임·가리킴이 묶인 메시지가 되고, 보기가 아무 값(리스트 보기: 상태 그대로, 걸러짐, 지도, 본문이 지은 리스트; 바이트)이 되고, 고정 한도가 형식과 리스트 엔진의 너비만 남았다: 명령 106 → 95, 상태 종류 7 → 6, 입력 종류 6 → 3, 그동안 다섯 일의 명령 수와 은행 질의는 걸음마다 1% 안, TPC-C는 3단계 끝과 같다(+0.37%). 5단계(수의 모델: number는 binary64로 리터럴과 셈의 기본, i64는 정확한 정수·비트·돈, `/`와 내림한 몫 `//`, i64의 합은 정확하게, 돈은 i64의 센트로 `.2d`에 보이고, 교체는 정확할 때만 옮긴다)로 TPC-C의 돈과 비율이 Pure와 SQLite 모두에서 정수가 되어, 2만 트랜잭션 뒤 모든 행이 오차 없이 같다: 명령 95 → 96, 다섯 일의 명령 수와 은행 질의는 4단계 끝과 1% 안, TPC-C는 런타임이 같고(−0.03%) i64의 돈으로 앱이 2.6% 빠르다. 027의 다섯 단계를 마쳤다. 그 뒤 묶음의 3(inflate)을 새 명령 없이 썼다: zlib가 만든 스트림 640개와 손상된 240개가 파이썬 참조와 같지만, 우회가 셋(리스트를 받지 않는 fn, 바이트 하나인 상태, 블록 안의 리스트)이고 줄은 파이썬의 1.6배, 시간은 같은 알고리즘의 C의 108배다. 묶음의 1(DNS 메시지)도 새 명령 없이 썼다: dnspython이 만든 메시지 400개를 읽고 다시 써 dnspython이 같게 읽고, 손상된 300개가 파이썬 참조와 같다. 우회는 둘(바이트의 `==`, 보기에서 부르는 블록 fn)이고 둘 다 핵의 일이며, 줄은 파이썬의 1.6배, 시간은 C의 67배(파이썬보다 1.9배 느림)다 | [026](docs/design/026-app-contract.md), [027](docs/design/027-computation-core.md), [140](docs/research/140-spec-suite.md) | +| 방향(1.0 전) | 앱 계약을 1.0에서 얼릴 후보로 적었다: 이벤트는 전함수이고 원자적이며 결정적이다, 시간은 입력이다, 보기는 커밋된 상태의 순수 함수다, 보이는 역사는 커밋의 앞부분이다, 전달은 순서대로 한 번이다. 계산의 언어(명령 90개, 상태 종류 7개)는 패턴의 모음이라 다시 세운다. 분야마다 고른 명세 열한 개의 묶음에서 오늘의 aup는 바이트, 비트 연산, 중첩, 재귀, 갈래, 글자 읽기에 막힌다(탐침 열 개). 1.0 전에는 호환을 챙기지 않고, JSON과 HTTP는 경계에 남는다. 계산의 핵을 다섯 단계로 다시 세운다(027). 1단계(비트 연산, 자리의 바이트, 수의 리스트, 한 번에 주기)로 aup로 쓴 SHA-256이 공식 벡터를 세 실행 길에서 모두 지난다. 2a(형식 지정, 바이트 잇기와 자르기, 바이트와 text의 let, `while`, 단락 평가의 `&&`·`||`)로 쓴 JSON 검사기가 JSONTestSuite에서 하나도 틀리지 않는다. 2b(레코드 안의 레코드, 갈래와 `match`, 레코드 안의 리스트, 수 읽기)로 JSON을 트리로 읽어 다이제스트가 파이썬과 같다(JSONTestSuite, 무작위 문서 300개). 2c(스스로 부르는 함수: 부름마다 제 스택·지역 칸·리스트·레지스터·담은 값, 깊이는 표로 센 프레임 바이트가 몫에서 묶음; 값으로서의 레코드; 글자 읽기)로 JSON 트리를 재귀 하강으로 다시 써 JSONTestSuite와 무작위 문서 300개가 파이썬과 같고, 10만 겹은 `memory`로 거절한다. 반복 아래에 값을 둔 모듈이 검증을 지나 실행기를 죽이던 구멍도 찾아 막았다. 3단계(중첩한 저장 상태: 저장과 transient의 리스트가 리스트를 담은 레코드를 받고, 그 칸은 값을 항목들의 저장 형태로 바이트처럼 담아 이미지·로그·되돌리기·회복이 그대로다)로 열 → 카드 → 태그의 보드가 메모리 앱과 여덟 번 재시작하는 저장 앱에서 매 걸음 같고(스냅숏 2,400개), 커밋의 여섯 단계 어디서 죽여도 전부 아니면 없음이며, 교체는 이름으로 깊이까지 옮긴다. 중첩 리스트를 바꾸는 비용은 그 값의 크기에 비례한다(이미 있는 항목 하나에 170 ns). 줄 수는 검사기만 파이썬 이하이고(80 대 90), SHA-256(42 대 28)과 트리(142 대 105)는 길다. 시간은 C의 40–159배이고 바이트를 다루는 일은 순수 파이썬과 비슷하거나 느리다(0.43–1.6배): 핵이 선 뒤 빠르게 할 과녁이다. 4단계(패턴 모으기)로 메시지의 행이 중첩을 받고, 키별 문서가 키 있는 리스트에 녹고, 커서와 인덱스가 앵커 하나가 되고, 키·text·타이머·프레임·가리킴이 묶인 메시지가 되고, 보기가 아무 값(리스트 보기: 상태 그대로, 걸러짐, 지도, 본문이 지은 리스트; 바이트)이 되고, 고정 한도가 형식과 리스트 엔진의 너비만 남았다: 명령 106 → 95, 상태 종류 7 → 6, 입력 종류 6 → 3, 그동안 다섯 일의 명령 수와 은행 질의는 걸음마다 1% 안, TPC-C는 3단계 끝과 같다(+0.37%). 5단계(수의 모델: number는 binary64로 리터럴과 셈의 기본, i64는 정확한 정수·비트·돈, `/`와 내림한 몫 `//`, i64의 합은 정확하게, 돈은 i64의 센트로 `.2d`에 보이고, 교체는 정확할 때만 옮긴다)로 TPC-C의 돈과 비율이 Pure와 SQLite 모두에서 정수가 되어, 2만 트랜잭션 뒤 모든 행이 오차 없이 같다: 명령 95 → 96, 다섯 일의 명령 수와 은행 질의는 4단계 끝과 1% 안, TPC-C는 런타임이 같고(−0.03%) i64의 돈으로 앱이 2.6% 빠르다. 027의 다섯 단계를 마쳤다. 그 뒤 묶음의 3(inflate)을 새 명령 없이 썼다: zlib가 만든 스트림 640개와 손상된 240개가 파이썬 참조와 같지만, 우회가 셋(리스트를 받지 않는 fn, 바이트 하나인 상태, 블록 안의 리스트)이고 줄은 파이썬의 1.6배, 시간은 같은 알고리즘의 C의 108배다. 묶음의 1(DNS 메시지)도 새 명령 없이 썼다: dnspython이 만든 메시지 400개를 읽고 다시 써 dnspython이 같게 읽고, 손상된 300개가 파이썬 참조와 같다. 우회는 둘(바이트의 `==`, 보기에서 부르는 블록 fn)이고 둘 다 핵의 일이며, 줄은 파이썬의 1.6배, 시간은 C의 67배(파이썬보다 1.9배 느림)다. 묶음의 9(HTTP/1.1 요청을 패킷마다)도 새 명령 없이 썼다: 스트림 200개를 어디서 잘라도 h11과 같다. 이로써 바이트 하나인 상태와 바이트의 `==`는 써서 닿은 명세가 둘이 되어 핵에 들일 자격이 생겼다(140의 결정점, 설계는 아직) | [026](docs/design/026-app-contract.md), [027](docs/design/027-computation-core.md), [140](docs/research/140-spec-suite.md) | 키로 나눈 소유자와 저장을 넘길 스레드는 하지 않기로 했다. 이 장치는 동기화를 한 줄로 세워, 나누면 쓰기가 23% 줄고 넘겨도 기기의 일은 줄지 않는다([084](docs/research/084-parallel-syncs.md)). 다만 동기화가 공짜인 RAM에서 TPC-C는 소유자 하나가 diff --git a/docs/research/140-spec-suite.md b/docs/research/140-spec-suite.md index cc9898c..28883a0 100644 --- a/docs/research/140-spec-suite.md +++ b/docs/research/140-spec-suite.md @@ -29,11 +29,13 @@ - **다음 결정.** 계산의 핵을 설계한다. 여섯 가지와 고정 한도, 상수 시간 암호가 핵이 받아야 할 최소의 후보다. - **027 뒤(2026-10-19).** 핵을 다섯 단계로 다시 세웠다. 탐침의 필요는 셋을 빼고 모두 컴파일된다: 보기에서 재귀 fn을 부르기, 레코드나 갈래 하나인 상태, 커서 자리의 글자(아래 "027 뒤의 탐침"). 묶음에서 쓴 것은 2(SHA-256), 4(JSON), 3(inflate), - 1(DNS)이다. + 1(DNS), 9(HTTP/1.1)이다. inflate는 새 명령 없이 써졌고 zlib의 스트림을 모두 맞게 푼다. 다만 우회가 셋(리스트를 받는 fn, 바이트 하나인 상태, 블록 안의 리스트)이고, 줄은 파이썬의 1.6배, 시간은 같은 알고리즘의 C의 108배다. DNS도 새 명령 없이 써졌고 dnspython의 메시지를 모두 맞게 읽고 다시 쓴다. 우회는 둘(바이트의 `==`, 보기에서의 블록 fn)이고, 보기에서 블록 fn을 부르지 못하는 틈에 써서 닿은 것은 DNS가 처음이다(배치는 탐침뿐). 줄은 파이썬의 1.6배, 시간은 C의 67배다. + HTTP/1.1(패킷마다)도 새 명령 없이 써졌고, 어디서 잘라도 h11과 같다. 이로써 바이트 하나인 상태와 바이트의 `==`는 써서 닿은 + 명세가 둘이 되었다(아래 "027 뒤의 결정점"). ## 묶음 @@ -53,7 +55,7 @@ | 6 | 관계 질의, 그래프 탐색 | 데이터 모델 | 리스트, 키, 접기, 이벤트의 리스트 | TPC-C, 은행 질의, 파이썬 모델 | 된다(기준선: [092](092-tpcc.md), 040의 은행 질의, aup `routes.aup`) | 된다. TPC-C가 SQLite와 오차 없이 같다(5단계) | | 7 | 텍스트 편집 | UI 개념 | text, 커서 | 편집기의 참조 모델 대조(aup `make check`) | 된다 | 된다 | | 8 | 상자 배치(flex 같은) | UI 개념 | 중첩, 재귀 | 기존 배치 구현(Yoga, Taffy)의 결과와 대조 | 못 쓴다(중첩, 재귀) | 중첩과 재귀는 핸들러에서 된다. 보기에서 재귀 fn을 부르지 못한다(탐침). 쓰지 않음 | -| 9 | HTTP/1.1 요청을 패킷마다(RFC 9112) | 스트림의 상태 기계 | 바이트, 이벤트를 넘는 상태 | 경계를 아무 데서나 자른 요청 모음 | 못 쓴다(바이트). 지금은 `serve/`의 C다 | 처음 필요한 것(바이트)이 컴파일된다. 쓰지 않음 | +| 9 | HTTP/1.1 요청을 패킷마다(RFC 9112) | 스트림의 상태 기계 | 바이트, 이벤트를 넘는 상태 | 경계를 아무 데서나 자른 요청 모음 | 못 쓴다(바이트). 지금은 `serve/`의 C다 | 썼다: 스트림 200개를 어디서 잘라도 h11과 같다. 우회 셋, 줄 수 못 미침, C의 85배(아래) | | 10 | 재시도, 물러서기, 시간 제한 | 시간 | 시각, 한 번의 타이머 | 시각을 준 시뮬레이션 | 우회(주기 틱 `every`와 `now`) | 다시 보지 않음 | | 11 | X25519, ChaCha20-Poly1305 | 상수 시간 암호 | 데이터에 따라 달라지지 않는 시간 | RFC 7748, RFC 8439의 벡터 | aup 밖(설계상, 아래) | 그대로(설계상 aup 밖) | @@ -594,6 +596,89 @@ - `2026-10-19-dns.jsonl`: 잰 수 - `tests/specs/dns/`: Pure의 검사가 읽는 메시지 200개 +## 묶음의 9: HTTP/1.1 요청을 패킷마다 (2026-10-19) + +027 뒤에 셋째로 쓴 명세다. 새 명령도 코어의 C도 없이 aup와 Pure만으로 썼다(aup의 `examples/http.aup`). +- **패킷마다의 이벤트.** 패킷 하나가 이벤트 하나다. 그 바이트를 앞 패킷들이 남긴 바이트 뒤에 잇고, 그것으로 끝나는 요청을 모두 + 읽는다. 요청 줄, 필드(이름은 소문자로), Content-Length나 chunked의 본문, chunked의 트레일러를 읽는다. 남은 바이트는 다음 패킷을 + 기다린다. +- **문법은 h11의 것이다.** 머리 값의 낱말에는 NUL, 공백류, CR, LF가 없다. chunk의 크기는 16진 1–20자리이고, `;` 뒤의 확장은 줄 + 끝까지다. Host는 하나이고, HTTP/1.1이면 꼭 있다. Transfer-Encoding은 `chunked` 하나만 받고, Content-Length와 함께면 거절한다. +- **우리가 더한 것.** 크기와 길이는 2^31까지만 받는다. h11에는 없는 한도다. + +**맞음.** +- `http_check.py`: 스트림 200개(132,623바이트, 요청 578개)를 쓴다. + - 요청은 여러 메서드와 대상이다. HTTP/1.1이고, 마지막 하나는 HTTP/1.0일 수 있다. 필드 이름은 대소문자가 섞이고 값의 양옆에 + 공백이 있다. 본문은 Content-Length나 chunked(확장, 트레일러)다. 일부 스트림은 요청의 앞부분에서 끝난다. + - 각 스트림을 통째로, 무작위 경계로, 짧으면(400바이트 아래 50개) 한 바이트씩 잘라 패킷마다 이벤트로 준다. + - 읽은 요청은 모든 자름에서 h11(바이트가 오는 대로 읽는 알려진 구현)과 같다. 남은 바이트는 마지막 요청 뒤의 바이트다. 세 길의 + 출력이 바이트까지 같다. + - 견줄 때 h11이 Transfer-Encoding의 값만 소문자로 바꿔 내놓는 것은 맞춰 준다. +- 손상된 스트림 200개(자른 것, 비트 하나를 뒤집은 것)를 통째로 주고, 같은 길로 읽는 파이썬 참조(`http_requests.py`)와 견준다. 35개는 + 둘 다 거절하고, 165개는 같은 요청과 같은 남은 바이트를 낸다. +- Pure의 `make check`(`module_specs`)에 들어갔다. h11에 기대지 않도록, 스트림 80개와 그 읽음을 `tests/specs/http`에 두었다. + - 스트림마다 통째로 세 길에서 준다. + - 무작위 경계와, 짧으면 한 바이트씩으로도 준다(자른 꼴 88개). 모두 같은 요청과 남은 바이트다. + +**막대.** + +| 막대 | 잰 것 | | +|---|---|---| +| 쓸 수 있다 | aup와 Pure만. 새 명령 없음 | 지남 | +| 우회가 없다 | 셋(아래): 항목 하나의 리스트에 둔 남은 바이트, text로 바꿔 견준 바이트, 레코드에 담아 돌려준 필드의 리스트 | **못 미침** | +| 줄 수 ≤ 파이썬 참조 | aup 159줄(닫는 괄호만인 줄 24) 대 파이썬 79줄 | **못 미침** | +| C 대비 시간 | 온전한 스트림 151개(98,838바이트, 요청 444개)를 패킷 하나씩. 바이트당 278 ns, 같은 알고리즘의 C(3.27 ns)의 **85배**. 순수 파이썬 67 ns(Pure가 **4.1배 느림**), h11 284 ns(Pure와 비슷하다). 기계어 계층도 같다(278 ns) | 기록(막대 없음) | +| 견고하다 | 위의 맞음, 세 길이 같음, 예산 안에서 끝남. 세 기계는 아직 돌리지 않았다 | 일부 | + +**우회 셋.** +1. **바이트 하나인 상태가 없다.** 패킷 사이의 남은 바이트는 바이트 하나가 제격인 상태다. 항목 하나의 리스트 `pending`에 두고, + 이벤트마다 꺼내 지우고 다시 둔다. inflate의 둘째 우회와 같다. +2. **바이트에 `==`가 없다.** 필드 이름(`host`, `content-length`, `transfer-encoding`), 판(`HTTP/1.`), 코딩(`chunked`)을 `text(…)`로 + 바꿔 견준다. 토큰은 ASCII라 text가 되므로 이번에는 짧게 됐다. ASCII가 아닌 값이면 그 변환이 `encoding`으로 실패한다. 그래도 그런 + 요청은 어차피 거절할 것이라 뜻은 같다. DNS의 첫째 우회와 같다. +3. **fn이 맨 리스트를 돌려주지 못한다.** 머리와 트레일러의 필드 줄을 읽는 fn이 리스트를 레코드 `Fields`에 담아 돌려준다. inflate의 + 첫째 우회(aup의 일)와 같다. + +**줄을 길게 한 것.** 159 대 79다. 닫는 괄호의 줄을 빼면 135다. +- 닫는 괄호의 줄이 24줄이다. +- 레코드 넷(`Field`, `Fields`, `Request`, `Left`)이 18줄이다. 파이썬은 튜플이다. +- 파이썬의 바이트 메서드(`find`, `partition`, `strip`, `split`, `lower`, 집합의 `<=`)가 한 줄씩인 곳을, aup는 바이트마다 도는 고리로 + 쓴다. CRLF 찾기의 fn이 8줄, 소문자의 fn이 5줄(둘 다 괄호의 줄을 포함한다), 콜론 찾기와 양옆 공백 깎기가 6줄, 요청 줄의 공백 + 찾기가 4줄, 토큰과 16진의 판정이 5줄이다. + +**시간이 가는 곳.** 바이트당 Pure 명령이 61.4개이고, 명령 하나에 약 4.5 ns가 든다. +- 파이썬이 4배 빠른 것은 위의 바이트 메서드가 C로 돌기 때문이다. aup는 같은 일을 바이트마다 명령으로 한다. 같은 일을 파이썬으로만 + 하는 h11(정규식과 바이트 메서드)은 Pure와 비슷하다. +- 기계어 계층은 빠르게 하지 못한다(278 대 277 ns). + +**원본.** `research/experiments/044-specs/` +- `http_requests.py`: 파이썬 참조. 그 아래의 main은 같은 스트림에서 그것과 h11의 시간을 잰다. +- `http_check.py`: 맞음과 줄 수. 경로를 주면 `http_time.c`가 읽을 스트림을 쓰고, 디렉터리를 하나 더 주면 `tests/specs/http`를 쓴다. +- `http_time.c`: 같은 스트림으로 같은 알고리즘의 C와 Pure의 시간. 두 쪽이 같은 수의 요청을 읽어야 잰다. +- `2026-10-19-http.jsonl`: 잰 수 +- `tests/specs/http/`: Pure의 검사가 읽는 스트림 80개와 그 읽음 + +## 027 뒤의 결정점 (2026-10-19) + +명세 셋(inflate, DNS, HTTP/1.1)을 새 명령 없이 썼다. 모두 알려진 구현(zlib, dnspython, h11)과 같고, 손상된 입력에서 같은 길로 +읽는 파이썬 참조와 같다. 셋 다 줄 수는 파이썬의 1.6–2.0배이고, 시간은 같은 알고리즘의 C의 67–108배다. 쓰며 드러난 틈과 그것에 +써서 닿은 명세는 다음과 같다. + +| 틈 | 주인 | 써서 닿은 명세 | 쌓임을 막는 규칙(둘 이상) | +|---|---|---|---| +| 바이트 하나인 상태 | Pure의 상태 종류 | inflate, HTTP | **넘는다** | +| 바이트의 `==` | Pure(TEXT_COMPARE가 text만 받는다) | DNS, HTTP | **넘는다** | +| 보기에서 블록 fn 부르기 | Pure(CALL은 핸들러와 함수에만) | DNS(배치는 탐침뿐) | 아직 하나 | +| fn이 맨 리스트를 받거나 돌려주기 | aup | inflate, HTTP | 핵이 아니다 | +| 블록 안의 let 리스트 | aup | inflate | 핵이 아니다 | +| 작은 블록 fn의 인라인 | aup | inflate(시간의 23%) | 핵이 아니다 | + +- 앞의 둘은 이제 핵에 들일 자격이 있다. 바이트 하나인 상태(저장, 교체, 보기, HTTP의 GET이 그것을 어떻게 다루는가)와 바이트의 비교 + (TEXT_COMPARE의 인자로 할지, 새 명령으로 할지)는 설계 문서에서 정한다. 아직 시작하지 않았다. +- aup의 셋은 컴파일러의 일이다. Pure의 함수 서명은 이미 리스트를 받는다. +- 시간은 명령당 3.8–6.0 ns가 든다. 바이트 일을 C에 가깝게 하려면 명령의 수(바이트 찾기 같은 일을 명령 하나로 할지)와 명령당 + 비용(기계어 계층이 맡지 못하는 명령들) 둘 다를 봐야 한다. 이것도 따로 정한다. + ## 착수 기준 (다음 일) - **바꿀 결정.** 계산의 핵을 설계한다(027). 위 표의 여덟 후보 가운데 무엇을 어떤 모양으로 받을지 정한다. diff --git a/research/experiments/044-specs/2026-10-19-http.jsonl b/research/experiments/044-specs/2026-10-19-http.jsonl new file mode 100644 index 0000000..9f99101 --- /dev/null +++ b/research/experiments/044-specs/2026-10-19-http.jsonl @@ -0,0 +1,5 @@ +{"streams": 200, "bytes": 132623, "requests": 578, "right": {"whole": 200, "random": 200, "bytes": 50}, "paths": {"batches": 200, "rounds": 200, "all": 200}, "paths_same": true, "damaged": 200, "damaged_refused": 35, "damaged_agreed": 200, "aup_lines": 159, "aup_brace_lines": 24, "python_lines": 79} +{"streams":151,"bytes":98838,"requests":444,"jit":"0","batch":"","c_ns_per_byte":3.267,"pure_ns_per_byte":277.393,"to_c":84.9,"instructions":6066750,"instructions_per_byte":61.4} +{"streams":151,"bytes":98838,"requests":444,"jit":"0","batch":"0","c_ns_per_byte":3.281,"pure_ns_per_byte":279.531,"to_c":85.2,"instructions":6066750,"instructions_per_byte":61.4} +{"streams":151,"bytes":98838,"requests":444,"jit":"all","batch":"","c_ns_per_byte":3.274,"pure_ns_per_byte":278.113,"to_c":84.9,"instructions":6066750,"instructions_per_byte":61.4} +{"streams":151,"bytes":98838,"python_ns_per_byte":66.7,"h11_ns_per_byte":283.8} diff --git a/research/experiments/044-specs/http_check.py b/research/experiments/044-specs/http_check.py new file mode 100644 index 0000000..e3982c3 --- /dev/null +++ b/research/experiments/044-specs/http_check.py @@ -0,0 +1,201 @@ +#!/usr/bin/env python3 +"""Research 140: HTTP/1.1 requests read a packet at a time, written in aup (aup's examples/http.aup). + +Builds it with aup (AUP, default the sibling checkout) and feeds it streams of pipelined requests (methods, targets, +HTTP/1.1 and a last HTTP/1.0, fields with mixed-case names and spaces around their values, bodies by Content-Length or +chunked with extensions and trailers, some streams ending in part of a request), each cut into packets: whole, at +random boundaries, and a byte at a time for the shorter ones, each packet an event. The requests read must be h11's (a +known implementation that reads as bytes come) and the bytes left those after the last of them, on every cut, and the +three paths (batches, rounds, all compiled) the same. Then damaged streams (cut short, a bit flipped) fed whole against http_requests.py, which reads +them the same way: the same requests and bytes left when it takes one, a failed event when it refuses it. Then counts +lines (code lines: neither blank nor a comment; brace lines: a closing brace alone) of http.aup and of +http_requests.py's algorithm. One JSON line. Given a path, it also writes the whole streams there for http_time.c; given a directory after it, Pure's +tests/specs/http there.""" +import json, os, random, subprocess, sys, tempfile + +import h11 + +here = os.path.dirname(os.path.abspath(__file__)) +pure = os.path.normpath(os.path.join(here, '../../..')) +aup = os.environ.get('AUP', os.path.join(pure, '..', 'aup')) +sys.path.insert(0, here) +import http_requests # noqa: E402 + +TOKEN = "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + + +def lines(path, stop=None): + code = braces = 0 + for line in open(path): + if stop and line.startswith(stop): break + text = line.strip() + if not text or text.startswith('#'): continue + code += 1 + braces += text == '}' + return code, braces + + +def streams(chooser, count): + def word(chars, low, high): + return ''.join(chooser.choices(chars, k=chooser.randrange(low, high))).encode() + + def ows(): + return chooser.choice([b'', b'', b' ', b'\t', b' \t']) + + def request(minor): + method = chooser.choice([b'GET', b'POST', b'PUT', b'DELETE', b'PATCH', b'OPTIONS', b'HEAD', word(TOKEN, 1, 8)]) + target = b'/' + bytes(chooser.randrange(0x21, 0x7f) for _ in range(chooser.randrange(0, 30))) + fields = [(chooser.choice([b'Host', b'host', b'HOST']), b'example.com')] + for _ in range(chooser.randrange(0, 6)): + name = word(TOKEN, 1, 12) + if name.lower() in (b'host', b'content-length', b'transfer-encoding', b'connection', b'expect', b'upgrade'): + continue + value = (b' ' if chooser.random() < 0.5 else b'\t').join( + bytes(chooser.randrange(0x21, 0x7f) for _ in range(chooser.randrange(1, 10))) for _ in range(chooser.randrange(0, 4))) + fields.append((name, value)) + chooser.shuffle(fields) + body, framing = b'', [] + pick = chooser.random() + if pick < 0.35: + body = bytes(chooser.randrange(256) for _ in range(chooser.randrange(0, 300))) + framing = [(b'Content-Length', str(len(body)).encode())] + elif pick < 0.65 and minor == 1: + framing = [(chooser.choice([b'Transfer-Encoding', b'transfer-encoding']), chooser.choice([b'chunked', b'Chunked']))] + chunks = [bytes(chooser.randrange(256) for _ in range(chooser.randrange(1, 120))) for _ in range(chooser.randrange(0, 5))] + for c in chunks: + size = (f'{len(c):x}' if chooser.random() < 0.5 else f'{len(c):X}').encode() + size = b'0' * chooser.choice([0, 0, 1, 3]) + size + tail = b';' + word('abc=', 0, 6) if chooser.random() < 0.3 else ows() + body += size + tail + b'\r\n' + c + b'\r\n' + trailers = b''.join(word(TOKEN, 1, 8) + b':' + ows() + word('xyz', 0, 6) + b'\r\n' for _ in range(chooser.randrange(0, 3))) + body += b'0' + (b';x' if chooser.random() < 0.2 else b'') + b'\r\n' + trailers + b'\r\n' + head = method + b' ' + target + b' HTTP/1.' + str(minor).encode() + b'\r\n' + head += b''.join(n + b':' + ows() + v + ows() + b'\r\n' for n, v in fields + framing) + return head + b'\r\n' + body + + out = [] + for _ in range(count): + stream = b''.join(request(1) for _ in range(chooser.randrange(1, 5))) + if chooser.random() < 0.2: + stream += request(0) # an HTTP/1.0 request ends its connection: last + elif chooser.random() < 0.3: + part = request(1) + stream += part[:chooser.randrange(1, len(part))] + out.append(stream) + return out + + +def cuts(chooser, stream): + """The stream whole, at random boundaries, and (if it is short) a byte at a time.""" + at = sorted(chooser.sample(range(1, len(stream)), min(len(stream) - 1, chooser.randrange(1, 12)))) + out = [[stream], [stream[a:b] for a, b in zip([0] + at, at + [len(stream)])]] + if len(stream) < 400: + out.append([stream[i:i + 1] for i in range(len(stream))]) + return out + + +def h11_reading(packets): + """The requests h11 reads whole from the packets, each as http_requests' tuples. (h11 hands a request's line, fields + and body on as they come, so the bytes left are those after the last whole request, as http_requests keeps them.)""" + conn, out, current = h11.Connection(h11.SERVER), [], None + for packet in packets: + conn.receive_data(packet) + while True: + event = conn.next_event() + if event in (h11.NEED_DATA, h11.PAUSED): + break + if isinstance(event, h11.Request): + current = [event.method, event.target, int(event.http_version[-1:]), list(event.headers), b'', []] + elif isinstance(event, h11.Data): + current[4] += event.data + elif isinstance(event, h11.EndOfMessage): + current[5] = list(event.headers) + out.append(tuple(current)) + conn.send(h11.Response(status_code=200, headers=[(b'content-length', b'0')])) + conn.send(h11.EndOfMessage()) + if conn.our_state is h11.DONE and conn.their_state is h11.DONE: + conn.start_next_cycle() + return out + + +def normal(requests): + """Requests with transfer-encoding's value lowercased, as h11 hands it on (that field alone).""" + return [(m, t, v, [(n, x.lower() if n == b'transfer-encoding' else x) for n, x in f], b, tr) for m, t, v, f, b, tr in requests] + + +def run(module, packets, env, work): + given = [] + for n, packet in enumerate(packets): + path = os.path.join(work, f'{n}.packet') + with open(path, 'wb') as f: + f.write(packet) + given.append(f'message packet @{path}\n') + out = subprocess.run([os.path.join(pure, 'build', 'pure-run'), module], input=''.join(given), capture_output=True, + text=True, env=dict(os.environ, **env), timeout=600).stdout.splitlines() + state = json.loads(out[-1]) + s = state['states'] + pairs = lambda fs: [(bytes.fromhex(f['name']), bytes.fromhex(f['value'])) for f in fs] + requests = [(bytes.fromhex(r['method']), bytes.fromhex(r['target']), r['minor'], pairs(r['fields']), bytes.fromhex(r['body']), + pairs(r['trailers'])) for r in s['requests']] + left = bytes.fromhex(s['pending'][0]['data']) if s['pending'] else b'' + return out, (requests, left), any(json.loads(line)['fault'] != 'none' for line in out) + + +chooser = random.Random(140) +made = streams(chooser, 200) +if len(sys.argv) > 1: # the whole streams (no request left in part) for http_time.c: each a u32 big-endian length, then it + with open(sys.argv[1], 'wb') as f: + f.write(b''.join(len(s).to_bytes(4, 'big') + s for s in made if not http_requests.feed(b'', s)[1])) +if len(sys.argv) > 2: # Pure's tests/specs/http: the first 80 streams so, and what http_requests (h11's reading) reads + with open(os.path.join(sys.argv[2], 'streams.bin'), 'wb') as f: + f.write(b''.join(len(s).to_bytes(4, 'big') + s for s in made[:80])) + hexed = lambda fs: [[n.hex(), v.hex()] for n, v in fs] + with open(os.path.join(sys.argv[2], 'read.json'), 'w') as f: + json.dump([{'requests': [[m.hex(), t.hex(), v, hexed(fs), b.hex(), hexed(tr)] for m, t, v, fs, b, tr in got], 'left': left.hex()} + for got, left in (http_requests.feed(b'', s) for s in made[:80])], f, separators=(',', ':')) + f.write('\n') +paths = {'batches': 0, 'rounds': 0, 'all': 0} +fed = {'whole': 0, 'random': 0, 'bytes': 0} +same_paths = True +with tempfile.TemporaryDirectory() as work: + module = os.path.join(work, 'http.pmod') + subprocess.run([os.path.join(aup, 'build', 'aup'), 'build', os.path.join(aup, 'examples', 'http.aup'), '-o', module], + check=True) + for stream in made: + for kind, packets in zip(('whole', 'random', 'bytes'), cuts(chooser, stream)): + want = http_requests.feed(b'', stream) + assert normal(want[0]) == h11_reading(packets), 'the reference differs from h11' + envs = (('batches', {'PURE_JIT': '0'}), ('rounds', {'PURE_JIT': '0', 'PURE_BATCH': '0'}), ('all', {'PURE_JIT': 'all'})) \ + if kind == 'random' else (('batches', {'PURE_JIT': '0'}),) + raws = [] + for name, env in envs: + raw, got, failed = run(module, packets, env, work) + right = not failed and got == want + fed[kind] += right and name == 'batches' + if kind == 'random': + paths[name] += right + raws.append(raw) + same_paths = same_paths and all(r == raws[0] for r in raws) + broken = [] + for stream in chooser.sample(made, 100): + flipped = bytearray(stream) + flipped[chooser.randrange(len(stream))] ^= 1 << chooser.randrange(8) + broken += [stream[:chooser.randrange(1, len(stream))], bytes(flipped)] + agreed = refused = 0 + for stream in broken: + try: + want = http_requests.feed(b'', stream) + except ValueError: + want = None + refused += want is None + _, got, failed = run(module, [stream], {}, work) + agreed += (want is None and failed) or (want is not None and not failed and got == want) +aup_code, aup_braces = lines(os.path.join(aup, 'examples', 'http.aup')) +python_code, _ = lines(os.path.join(here, 'http_requests.py'), stop='if __name__') +ok = all(n == len(made) for n in paths.values()) and fed['whole'] == fed['random'] == len(made) and same_paths and \ + fed['bytes'] == sum(len(s) < 400 for s in made) and agreed == len(broken) +print(json.dumps({'streams': len(made), 'bytes': sum(map(len, made)), + 'requests': sum(len(http_requests.feed(b'', s)[0]) for s in made), 'right': fed, 'paths': paths, + 'paths_same': same_paths, 'damaged': len(broken), 'damaged_refused': refused, 'damaged_agreed': agreed, + 'aup_lines': aup_code, 'aup_brace_lines': aup_braces, 'python_lines': python_code})) +sys.exit(0 if ok else 1) diff --git a/research/experiments/044-specs/http_requests.py b/research/experiments/044-specs/http_requests.py new file mode 100644 index 0000000..20b0fb9 --- /dev/null +++ b/research/experiments/044-specs/http_requests.py @@ -0,0 +1,125 @@ +# HTTP/1.1 requests (RFC 9112) read a packet at a time in plain Python: the reference 140 counts aup's lines against. +# Each packet's bytes are added to what the last ones left, and every request they complete is read: its line, its +# fields (names lowercased), its body by Content-Length or chunked, a chunked one's trailers. The grammar is h11's. +TOKEN = set(b"!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") +HEX = set(b'0123456789abcdefABCDEF') +SPACE = set(b'\0\t\n\x0b\x0c\r ') # never in a field value's words + + +def line(d, i): + """The line from i to the next CRLF, and where the next starts; None, None if it has not come yet.""" + j = d.find(b'\r\n', i) + return (None, None) if j < 0 else (d[i:j], j + 2) + + +def field(text): + name, colon, value = text.partition(b':') + value = value.strip(b' \t') + if not colon or not name or not set(name) <= TOKEN or any(b in SPACE and b not in b' \t' for b in value): + raise ValueError('a field') + return name.lower(), value + + +def fields(d, i): + """The field lines from i to an empty line, and where it ends; None, None if they have not all come.""" + out = [] + while True: + text, i = line(d, i) + if text is None or not text: + return (None, None) if text is None else (out, i) + out.append(field(text)) + + +def request(d): + """The request at the start of d and its length; None if d holds only part of one.""" + text, i = line(d, 0) + if text is None: + return None + parts = text.split(b' ') + if len(parts) != 3 or not parts[0] or not set(parts[0]) <= TOKEN or not parts[1] or \ + any(b < 0x21 or b > 0x7e for b in parts[1]) or parts[2] not in (b'HTTP/1.0', b'HTTP/1.1'): + raise ValueError('a request line') + method, target, minor = parts[0], parts[1], parts[2][-1] - 0x30 + found, i = fields(d, i) + if found is None: + return None + named = lambda n: [v for k, v in found if k == n] + hosts, coded, length = named(b'host'), named(b'transfer-encoding'), named(b'content-length') + if len(hosts) > 1 or (minor == 1 and not hosts): + raise ValueError('a host') + body, trailers = b'', [] + if coded: + if length or len(coded) > 1 or coded[0].lower() != b'chunked': + raise ValueError('a coding') + while True: + text, i = line(d, i) + if text is None: + return None + size, semi, ext = text.partition(b';') + size = size if semi else size.rstrip(b' \t') + if not 1 <= len(size) <= 20 or not set(size) <= HEX or b'\n' in ext or int(size, 16) > 2 ** 31: + raise ValueError('a chunk size') # 2^31 at most: ours, not h11's + n = int(size, 16) + if n == 0: + trailers, i = fields(d, i) + if trailers is None: + return None + break + if len(d) < i + n + 2: + return None + if d[i + n:i + n + 2] != b'\r\n': + raise ValueError('a chunk end') + body += d[i:i + n] + i += n + 2 + elif length: + if len(length) > 1 or not length[0].isdigit() or int(length[0]) > 2 ** 31: + raise ValueError('a length') + if len(d) < i + int(length[0]): + return None + body, i = d[i:i + int(length[0])], i + int(length[0]) + return (method, target, minor, found, body, trailers), i + + +def feed(pending, packet): + """The requests the packet completes, and the bytes left for the next.""" + d, out = pending + packet, [] + while d: + got = request(d) + if got is None: + break + out.append(got[0]) + d = d[got[1]:] + return out, d + + +if __name__ == '__main__': + import sys, time + import h11 + with open(sys.argv[1], 'rb') as f: # http_check.py's whole streams: each a u32 big-endian length, then its bytes + given = f.read() + streams, at = [], 0 + while at < len(given): + streams.append(given[at + 4:at + 4 + int.from_bytes(given[at:at + 4], 'big')]) + at += 4 + len(streams[-1]) + size = sum(map(len, streams)) + + def by_h11(stream): # h11 as a server reads each request, answers it, and goes on + conn = h11.Connection(h11.SERVER) + conn.receive_data(stream) + while (event := conn.next_event()) not in (h11.NEED_DATA, h11.PAUSED): + if isinstance(event, h11.EndOfMessage): + conn.send(h11.Response(status_code=200, headers=[(b'content-length', b'0')])) + conn.send(h11.EndOfMessage()) + if conn.our_state is h11.DONE and conn.their_state is h11.DONE: + conn.start_next_cycle() + + times = {} + for name, read in (('python', lambda s: feed(b'', s)), ('h11', by_h11)): + runs = [] + for _ in range(7): + start = time.perf_counter() + for s in streams: + read(s) + runs.append((time.perf_counter() - start) * 1e9 / size) + times[name] = sorted(runs)[3] + print('{"streams":%d,"bytes":%d,"python_ns_per_byte":%.1f,"h11_ns_per_byte":%.1f}' % (len(streams), size, times['python'], times['h11'])) diff --git a/research/experiments/044-specs/http_time.c b/research/experiments/044-specs/http_time.c new file mode 100644 index 0000000..51bd595 --- /dev/null +++ b/research/experiments/044-specs/http_time.c @@ -0,0 +1,247 @@ +/* Research 140: HTTP/1.1 requests read a packet at a time in aup (aup's examples/http.aup, run by Pure) against the + * same algorithm in C, on the same streams (each whole, one packet). No C library for it is on the machine, so the + * world's reference is h11 in Python (http_check.py's oracle). C's and Pure's requests must be as many as the streams + * hold, none left over; then each is timed (the median of seven runs of rounds passes). + * + * cc -O2 -std=c17 -I../../../core http_time.c ../../../build/libpure.a -lm -pthread -o http_time + * ./http_time http.pmod STREAMS ROUNDS (STREAMS: each a u32 big-endian length, then its bytes, all whole) + * + * One JSON line: the streams, their bytes and requests, the nanoseconds per byte of each, Pure's ratio and the + * instructions Pure counted for one pass. */ +#define _POSIX_C_SOURCE 200809L +#include "module.h" +#include +#include +#include +#include +#include + +/* ---- the same algorithm in C */ +typedef struct { size_t name, name_size, value, value_size; } Field; +typedef struct { + size_t method, method_size, target, target_size; + int minor; + Field fields[64], trailers[16]; + int count, trailer_count; + unsigned char lowered[2048]; /* the names lowercased */ + size_t lowered_used; + unsigned char body[1 << 16]; + size_t body_size; +} Request; + +static bool token(unsigned char b) { + return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9') || (b && strchr("!#$%&'*+-.^_`|~", b)); +} +static bool hex(unsigned char b) { return (b >= '0' && b <= '9') || (b >= 'a' && b <= 'f') || (b >= 'A' && b <= 'F'); } +static bool space(unsigned char b) { return !b || (b >= 9 && b <= 13) || b == ' '; } +static bool blank(unsigned char b) { return b == ' ' || b == '\t'; } + +static long crlf(const unsigned char *d, size_t size, size_t i) { + for (size_t j = i; j + 1 < size; ++j) + if (d[j] == '\r' && d[j + 1] == '\n') return (long)j; + return -1; +} + +/* The field line d[i .. e] into f (its name lowercased into r's room); false if it is none. */ +static bool field(const unsigned char *d, size_t i, size_t e, Request *r, Field *f) { + size_t c = i; + while (c < e && d[c] != ':') ++c; + if (c == i || c == e || r->lowered_used + (c - i) > sizeof(r->lowered)) return false; + f->name = r->lowered_used, f->name_size = c - i; + for (size_t k = i; k < c; ++k) { + if (!token(d[k])) return false; + r->lowered[r->lowered_used++] = d[k] >= 'A' && d[k] <= 'Z' ? (unsigned char)(d[k] + 32) : d[k]; + } + size_t a = c + 1, b = e; + while (a < b && blank(d[a])) ++a; + while (b > a && blank(d[b - 1])) --b; + for (size_t k = a; k < b; ++k) + if (space(d[k]) && !blank(d[k])) return false; + f->value = a, f->value_size = b - a; + return true; +} + +/* The field lines from i into fields; where they end, -1 if they have not all come, -2 if they are none. */ +static long fields(const unsigned char *d, size_t size, size_t i, Request *r, Field *into, int room, int *count) { + *count = 0; + for (;;) { + long e = crlf(d, size, i); + if (e < 0) return -1; + if ((size_t)e == i) return e + 2; + if (*count == room || !field(d, i, (size_t)e, r, &into[(*count)++])) return -2; + i = (size_t)e + 2; + } +} + +static bool named(const Request *r, const Field *f, const char *name) { + return f->name_size == strlen(name) && !memcmp(r->lowered + f->name, name, f->name_size); +} + +/* The request at the start of d and its length: -1 if d holds only part of one, -2 if it is none. */ +static long request(const unsigned char *d, size_t size, Request *r) { + long e = crlf(d, size, 0); + if (e < 0) return -1; + size_t s1 = 0, s2; + while ((long)s1 < e && d[s1] != ' ') ++s1; + for (s2 = s1 + 1; (long)s2 < e && d[s2] != ' '; ++s2) {} + if (!s1 || s2 <= s1 + 1 || (long)s2 + 9 != e || memcmp(d + s2 + 1, "HTTP/1.", 7) || (d[e - 1] != '0' && d[e - 1] != '1')) + return -2; + for (size_t k = 0; k < s1; ++k) if (!token(d[k])) return -2; + for (size_t k = s1 + 1; k < s2; ++k) if (d[k] < 0x21 || d[k] > 0x7e) return -2; + r->method = 0, r->method_size = s1, r->target = s1 + 1, r->target_size = s2 - s1 - 1, r->minor = d[e - 1] - '0'; + r->lowered_used = 0, r->body_size = 0, r->trailer_count = 0; + long i = fields(d, size, (size_t)e + 2, r, r->fields, 64, &r->count); + if (i < 0) return i; + int hosts = 0, coded = 0, lengths = 0; + bool chunked = false; + double length = 0; + for (int k = 0; k < r->count; ++k) { + const Field *f = &r->fields[k]; + if (named(r, f, "host")) ++hosts; + if (named(r, f, "transfer-encoding")) { + ++coded; + chunked = f->value_size == 7 && !strncasecmp((const char *)d + f->value, "chunked", 7); + } + if (named(r, f, "content-length")) { + ++lengths; + if (!f->value_size) return -2; + for (size_t b = 0; b < f->value_size; ++b) { + if (d[f->value + b] < '0' || d[f->value + b] > '9') return -2; + length = length * 10 + (d[f->value + b] - '0'); + } + } + } + if (hosts > 1 || (!hosts && r->minor == 1)) return -2; + size_t j = (size_t)i; + if (coded) { + if (lengths || coded > 1 || !chunked) return -2; + for (;;) { + long c = crlf(d, size, j); + if (c < 0) return -1; + size_t semi = j, z; + while ((long)semi < c && d[semi] != ';') ++semi; + z = semi; + if ((long)semi == c) while (z > j && blank(d[z - 1])) --z; + if (z == j || z - j > 20) return -2; + double n = 0; + for (size_t k = j; k < z; ++k) { + if (!hex(d[k])) return -2; + n = n * 16 + (d[k] <= '9' ? d[k] - '0' : d[k] >= 'a' ? d[k] - 'a' + 10 : d[k] - 'A' + 10); + } + for (size_t k = semi; (long)k < c; ++k) if (d[k] == '\n') return -2; + if (n > 2147483648.0) return -2; + if (n == 0) { + long after = fields(d, size, (size_t)c + 2, r, r->trailers, 16, &r->trailer_count); + if (after < 0) return after; + return after; + } + size_t m = (size_t)n; + if (size < (size_t)c + 4 + m) return -1; + if (d[c + 2 + m] != '\r' || d[c + 3 + m] != '\n' || r->body_size + m > sizeof(r->body)) return -2; + memcpy(r->body + r->body_size, d + c + 2, m); + r->body_size += m; + j = (size_t)c + 4 + m; + } + } + if (lengths) { + if (lengths > 1 || length > 2147483648.0) return -2; + if (size < j + (size_t)length) return -1; + if ((size_t)length > sizeof(r->body)) return -2; + memcpy(r->body, d + j, (size_t)length); + r->body_size = (size_t)length; + j += (size_t)length; + } + return (long)j; +} + +static unsigned char pending[1 << 20]; +static size_t pending_size; +static Request current; + +/* The requests a packet completes (counted), the rest kept; -1 if the stream is no HTTP. */ +static long feed(const unsigned char *packet, size_t size) { + if (pending_size + size > sizeof(pending)) return -1; + memcpy(pending + pending_size, packet, size); + pending_size += size; + long count = 0, n; + size_t at = 0; + while (at < pending_size && (n = request(pending + at, pending_size - at, ¤t)) >= 0) at += (size_t)n, ++count; + if (at < pending_size && n == -2) return -1; + memmove(pending, pending + at, pending_size - at); + pending_size -= at; + return count; +} + +static double now_ns(void) { + struct timespec t; + clock_gettime(CLOCK_MONOTONIC, &t); + return (double)t.tv_sec * 1e9 + (double)t.tv_nsec; +} + +static int by_value(const void *a, const void *b) { + double x = *(const double *)a, y = *(const double *)b; + return (x > y) - (x < y); +} + +int main(int argc, char **argv) { + if (argc != 4) { fprintf(stderr, "usage: %s MODULE STREAMS ROUNDS\n", argv[0]); return 2; } + FILE *f = fopen(argv[2], "rb"); + if (!f) { fprintf(stderr, "cannot read %s\n", argv[2]); return 1; } + static unsigned char all[1 << 24]; + size_t size = fread(all, 1, sizeof(all), f), bytes = 0; + fclose(f); + int rounds = atoi(argv[3]), count = 0; + static size_t starts[65536], sizes[65536]; + for (size_t at = 0; at + 4 <= size && count < 65536; at += 4 + sizes[count++]) { + starts[count] = at + 4; + sizes[count] = (size_t)all[at] << 24 | (size_t)all[at + 1] << 16 | (size_t)all[at + 2] << 8 | all[at + 3]; + bytes += sizes[count]; + } + + PureModule module = {0}; + char error[160]; + if (pure_module_read(argv[1], &module, error, sizeof(error)) != PURE_OK) { fprintf(stderr, "%s\n", error); return 1; } + PureApp app; + if (pure_app_start(&app, &module, (PureData){0}) != PURE_OK) return 1; + int input = pure_module_input(&module, "packet"), requests = pure_module_state(&module, "requests"), + left = pure_module_state(&module, "pending"); + long c_requests = 0; + uint64_t work = 0; + for (int s = 0; s < count; ++s) { + long got = feed(all + starts[s], sizes[s]); + if (got < 0 || pending_size) { fprintf(stderr, "stream %d: C read no whole requests\n", s); return 1; } + c_requests += got; + if (pure_app_message(&app, (uint32_t)input, (PureSpan){all + starts[s], sizes[s]}) != PURE_OK) { + fprintf(stderr, "stream %d: Pure's event failed\n", s); + return 1; + } + work += app.work; + } + if ((long)pure_list_count(app.lists[requests]) != c_requests || pure_list_count(app.lists[left])) { + fprintf(stderr, "Pure read %zu requests, C %ld\n", pure_list_count(app.lists[requests]), c_requests); + return 1; + } + + double c_runs[7], pure_runs[7]; + for (int r = 0; r < 7; ++r) { + double start = now_ns(); + for (int i = 0; i < rounds; ++i) + for (int s = 0; s < count; ++s) feed(all + starts[s], sizes[s]); + c_runs[r] = (now_ns() - start) / rounds; + start = now_ns(); + for (int i = 0; i < rounds; ++i) + for (int s = 0; s < count; ++s) + if (pure_app_message(&app, (uint32_t)input, (PureSpan){all + starts[s], sizes[s]}) != PURE_OK) return 1; + pure_runs[r] = (now_ns() - start) / rounds; + } + qsort(c_runs, 7, sizeof(double), by_value); + qsort(pure_runs, 7, sizeof(double), by_value); + double n = (double)bytes; + const char *jit = getenv("PURE_JIT"), *batch = getenv("PURE_BATCH"); + printf("{\"streams\":%d,\"bytes\":%zu,\"requests\":%ld,\"jit\":\"%s\",\"batch\":\"%s\",\"c_ns_per_byte\":%.3f," + "\"pure_ns_per_byte\":%.3f,\"to_c\":%.1f,\"instructions\":%llu,\"instructions_per_byte\":%.1f}\n", + count, bytes, c_requests, jit ? jit : "", batch ? batch : "", c_runs[3] / n, pure_runs[3] / n, + pure_runs[3] / c_runs[3], (unsigned long long)work, (double)work / n); + pure_app_stop(&app); + return 0; +} diff --git a/tests/check.py b/tests/check.py index b78b184..b3b4750 100644 --- a/tests/check.py +++ b/tests/check.py @@ -1733,7 +1733,9 @@ def module_specs(aup, pure, work): a tree (its examples/json_tree.aup); raw deflate streams zlib made inflated by its examples/inflate.aup to the original's bytes, cut ones refused; DNS messages dnspython made (tests/specs/dns) read by its examples/dns.aup and - written back by its view to the same records, cut ones refused.""" + written back by its view to the same records, cut ones refused; HTTP/1.1 + request streams (tests/specs/http) read by its examples/http.aup a packet + at a time, cut anywhere, to the same requests.""" import hashlib import os import random @@ -1896,6 +1898,41 @@ def module_specs(aup, pure, work): cut = [wire[:len(wire) // 2] for wire in wires[::9]] assert all(json.loads(line)['fault'] != 'none' for line in read(cut, {}).splitlines()), 'dns cut' runs['dns'] = {'messages': len(wires), 'records': sum(len(state['states']['records']) for state in first), 'cut': len(cut)} + # HTTP/1.1 requests read a packet at a time (its examples/http.aup): streams and their reading (tests/specs/http, h11's + # in the research check), each stream fed whole, at random boundaries and a byte at a time if it is short, each packet + # an event: the same requests and bytes left on every cut, and on the three paths fed whole. + program = work / 'http.pmod' + compile_module(aup, EXAMPLES / 'http.aup', program) + given, made = (pure / 'tests/specs/http/streams.bin').read_bytes(), [] + while given: + made.append(given[4:4 + int.from_bytes(given[:4], 'big')]) + given = given[4 + len(made[-1]):] + reading = json.loads((pure / 'tests/specs/http/read.json').read_text()) + + def fed(packets, env): + lines = '' + for n, packet in enumerate(packets): + (work / f'{n}.packet').write_bytes(packet) + lines += f'message packet @{work / f"{n}.packet"}\n' + out = subprocess.run([str(pure / 'build/pure-run'), str(program)], input=lines, capture_output=True, text=True, + timeout=120, env=dict(os.environ, **env)).stdout.splitlines() + assert all(json.loads(line)['fault'] == 'none' for line in out), 'http' + s = json.loads(out[-1])['states'] + pairs = lambda fs: [[f['name'], f['value']] for f in fs] + return out[-1], {'requests': [[r['method'], r['target'], r['minor'], pairs(r['fields']), r['body'], pairs(r['trailers'])] + for r in s['requests']], 'left': s['pending'][0]['data'] if s['pending'] else ''} + + cuts = 0 + for stream, want in zip(made, reading): + whole = {name: fed([stream], env) for name, env in + (('batches', {'PURE_JIT': '0'}), ('rounds', {'PURE_JIT': '0', 'PURE_BATCH': '0'}), ('all', {'PURE_JIT': 'all'}))} + assert whole['rounds'][0] == whole['all'][0] == whole['batches'][0] and whole['batches'][1] == want, 'http' + at = sorted(chooser.sample(range(1, len(stream)), min(len(stream) - 1, 6))) + for packets in [[stream[a:b] for a, b in zip([0] + at, at + [len(stream)])]] + \ + ([[stream[i:i + 1] for i in range(len(stream))]] if len(stream) < 300 else []): + assert fed(packets, {})[1] == want, ('http cut', len(packets)) + cuts += 1 + runs['http'] = {'streams': len(made), 'requests': sum(len(w['requests']) for w in reading), 'cuts': cuts} return runs diff --git a/tests/specs/http/README.md b/tests/specs/http/README.md new file mode 100644 index 0000000..6bc44c7 --- /dev/null +++ b/tests/specs/http/README.md @@ -0,0 +1,9 @@ +# HTTP/1.1 request streams and their reading + +`streams.bin` is the first 80 of the 200 streams `research/experiments/044-specs/http_check.py` makes (its seed 140): +pipelined requests with methods, targets, HTTP/1.1 and a last HTTP/1.0, fields with mixed-case names and spaces around +their values, bodies by Content-Length or chunked with extensions and trailers, some ending in part of a request. Each +is a u32 big-endian length, then its bytes. `read.json` is what `http_requests.py` reads from each (its requests, its +bytes left, in hex), which the research check compares with h11 on every cut. `tests/check.py`'s `module_specs` feeds +each stream to aup's `examples/http.aup` whole, at random boundaries and (if it is short) a byte at a time, each packet +an event, and on Pure's three paths whole. diff --git a/tests/specs/http/read.json b/tests/specs/http/read.json new file mode 100644 index 0000000..1d53957 --- /dev/null +++ b/tests/specs/http/read.json @@ -0,0 +1 @@ +[{"requests":[["474554","2f7d3d2262397b5172524827373e6e39765579594628",1,[["686f7374","6578616d706c652e636f6d"],["687069727c2d",""],["666d647a5f707a",""],["71616b6539726365386432","5d6d775d6e4d206e7347537750712043573a506c5a"],["376d6a","2d21527178093c4e4b3b"],["636f6e74656e742d6c656e677468","323230"]],"09de434f9a6f85949af23c3831cfb7410585c124e2e9507773c59de9ef4bcf204158bf63b04e4881a61a3e2c3f2b51c47d63170cc7ceb93f1329bf48b6c6e8edbecc50f8250772b061ed7c04b34e592d8537909840ed3d5bf2365f5f1b1f19f1b7ecc2a648195f334b97dd95bed38281a47b1594a39b9abfe1d39aafe2b65a0af01f2e11f5986d17133bf38b836660b4291d8602957a4a5755660cd26ded2237cbdb8fdbb927231944a0ee05fe29e80266e0f2ba425737cae63518200da0c830dd1366af15a8470f1552ddaaafe62e84282710c31cee2994e8295841",[]],["474554","2f63703b2840706863402b394e776d234a2c3c",0,[["67632d6c787467",""],["6c385f7a7937623139",""],["6b6670762372777079255e","7964444332275d51093b5237"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["504f5354","2f7b313d26585b56255a3d4f2628",1,[["23265e736e63796564","66633047316a09437b7733"],["686f7374","6578616d706c652e636f6d"],["6b7a7466","5268415557740934097d374a3139296542"],["6c7e7a277969757226",""],["6e61","4d3321"],["3660",""],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"35572fa0d65c3ffe9ad660eee7f92d9e26359132790d35058e7f24d64e59b98d1fe2fc8121b5cb0c6316945d6cd646d2933b41a2bee858551e01ca852a705e915b1c7582c91fcc7e1c507d51540c21809b72dd58f13d3bb94ef4819e9743f4ea89c9300e3867f7589c16c124a666",[]],["505554","2f746f48752d273677",1,[["686f7374","6578616d706c652e636f6d"],["606d322523","42246d4209707d477a2f4a36097857392b39"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"51df93e5171fa41b34b60e61640b2da926b5755dd3ec76593e6459afa35a08ae1426fb8e45241405f2abcd9b8271e1591817bcb31d895fbc98ddd0931946161000af2ef5a5d6e1cd5aeea940527fc154d36109e0f02b59ec9891d3f8022130c430505d3d440c7f76a50cd4e31a258904aad253871dda21a2dd863d3366e848b886bb14e9fd96b6c21ceeb5e01385ffc557b406116f89fe02072b20a84ef68462b0b7ff68d17517453a5a1bdcffcd042bbad7d752f5275603fc59d107162f5f00758c45783012804c8e5b2ed9eacd184c4ab5e0fc10595356cc5827c335ae8b804a2170b343390e16d551e55c033c7be2834d81bc4af1ede378cb05d9d0410f5eed866dbdf4e9",[["3968385f25","79"],["78266d746d6e60",""]]],["48454144","2f7e7b6e6c5c3a396533704a267d7944663642276834",1,[["665f736177272a6e74306a","3f3354382b2275092b3009332d39637d"],["686f7374","6578616d706c652e636f6d"],["30376a6b","5d684c752e21202c2a70613d206d6e3b4369"],["6e77315e6a743379612d67",""],["387e","74093c4074714e7a556f4b"],["636f6e74656e742d6c656e677468","323535"]],"7c35bdf484c9927db2a347a9f34a385e7a6643b5d05303be642c3e5ee0f92a0ee9c31f358d97a8dbc15084d431a6f1ea4d4757c5055c34076fa9800c8e06d67ccf65f57e5022f4915cccd87b61a2bd443f1044f560e898c6f97c08283c6eabbe221de878dc46aea1fedbb6027df030bc8afc6d19d3b623bcf55a49b3ea61f02029a4e5d2a0a549f5f0e9fb7fa08ed201af5c00a9510415ade5a313f80b9e38fbeb2c536715dadfd286e3c0f508f59aaf1a73bb9bc92eb5511a63f7176276b53d1d952b8911c1017be45b64e2073ccc44d78e1c8da08114048b18c79c9f77dfd4c239e389fe700f7f5b9fb95f248a1d13cb2af6030751e254fcee3e324264b2",[]],["505554","2f2863693835596275586a4426555c6e594372",1,[["74",""],["686f7374","6578616d706c652e636f6d"],["6d26","5a633c4e235d096f58"],["65","6a4c3124793b2b477920472720574657385650"],["6e74",""]],"",[]]],"left":"44454c455445202f67304a3120485454502f312e310d0a26"},{"requests":[["4f5054494f4e53","2f59733e7e6e",1,[["70665f266668","36297b"],["68","3b354231275c365e55095f244f4d44475b09614f653b"],["686f7374","6578616d706c652e636f6d"],["72","70584c20312b4f3920396b71374563"],["6d766a7276777c78","75"],["6f2472266d5e",""]],"",[]],["2e357948514f23","2f742c434057266f2536792f706b",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313438"]],"f067e6e2fa021540f150f1084d6cfc53dca64e8d2f7e429f1febe5a0ffcbce930dcf41445159ccb4f77232a483fb140444ec245e30ad0f06206efff4fa56c46bd035dd2e47e139e44565d535183f9d4b01c7af2cc9e1e032df4fd7f3d8ffb8a12e647c9201a314e54846a3f642b7c5ebb1eac2ed4295cc71ab86942ce207b161ee2df78989161049023d042dc014c4288d231397",[]],["4f5054494f4e53","2f4b75253871",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["505554","2f4e71483073595e254a253631343b73445b494342374377474d5e",1,[["6730","3855222a2d4a3520732f207e382a"],["65","676b7b60"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323036"]],"3d80267d2567d13e665cb64b1a7d48fffe12b5be0636369e6f8b283518cef220f8764008bd48f49fc417e2b26d67cfb00dd2607bdb59be1d1442ec3c52f3dba7e642b343280c3ec95decb1a5b0dc04afaccc2701e63622c37a90c7126edc52ce3abe3edb37d5a541fad2ce0cb4584a356467e0d3599100c47692109651becf66291b6f444ec9f003a029cc4e5ac36499d3c19a79e06471712e3ffb491b36b91338af48e4f3b34d2663f05d61c4f0cbee42530505f0c8e111b94b9e1efdec40dddf24f042e407f7ec71cd21cf63d1",[]]],"left":""},{"requests":[["4f5054494f4e53","2f4a536648483b43666675622837457e5146525c76425948",1,[["6e6d6f657c2b7c246b","706c3f61617a095e475f32097d65746c27317b2e4f"],["686f7374","6578616d706c652e636f6d"],["7669682370606a","5c4644574e632a09535630277d3524713b"],["2778726b253735312760","67762e59432920292237"],["356e656a7564626b61","26745721092276367b48556a0948513b55"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"461c15099f9c26176775a19cb9f5f3ce3693ff9b218e865c63561b5c83ee834fdb090dbbc360947f13845b020aa7be3a87ee9429b1dd188133ddcf9137aa8b00738eea3471c64e20b761adc45cc118376ea809",[["63696c","79"],["6169636764","7a7a787a7a"]]],["505554","2f7843715c334d322b4d45373f624f714b6826736c2a463a6a734336",1,[["6d6b","7d"],["757a","37396849556c"],["65642e",""],["5e66","617043784e68606865"],["686f7374","6578616d706c652e636f6d"],["2b746965686261","535b207a2061"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"9ab07819aeac1796b8239dac908ff7102607574a670a01e54e92b538323f2c8f8e740a1e485ee1b7d4912d2453c249172fb95c611f5c7b54a1ca892b5da6747b1f6e7d926a9476ba33b6ecf507528f7bca4f3ee2f61eaa76b18c3bceabbb311df801c5744f8e54b0077f5b459b4d9e12663fc4991517c1283a8169fd67fd96a93ccec7145cbf56bf8b20202f0abe32b48a6b1681f7f63d2264309089cac5d5cd096e0e03d1ea296d939b2d4e8bffd510ef084d33c5",[["646a","7879"],["266d","7879787a"]]]],"left":""},{"requests":[["505554","2f716341362a6f402b3038325a705e3427",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323530"]],"e7997c78a1863fd996d46b115053049682022a8db52951f3e30e417bc510b4444cc965722ac5dee21acde0e06ac3c3e6493100b042ccad6f38b4ad3730fc641483894b54ce45898d9f75bbbf5bc383271456c5c16199c02cd4c21440f016664a510565b73ee746a63d45d629a7cef5e3a9608df31f6ff5b3cfe1879ae3804137cda5917ddc24d878613ab181141d895cb3a28863fcabfcb50858bcb05ed8b911dbedda3d04f636a65be4f8897b43bd375bc179214498d3a50f269456987902bf49e677b644b229d4e458eddde149f6e1c75b271b0bab0e7f4448caef2331892eeec29e375d7023d2a12fe836ffd37ecdd986683d5125ebbfb5ff",[]],["48454144","2f233678",1,[["676579757769","7a45405a566523407e0976092627282d5f583e3f"],["2a",""],["686f7374","6578616d706c652e636f6d"],["65","61"]],"",[]],["5041544348","2f413f39687a436c2363287b2d6f",1,[["657a30315e5e662a","4530"],["267a37",""],["36256f6c217e6360786023","7044405c206c2e47"],["686f7374","6578616d706c652e636f6d"],["6f612b2537","3558525146767457203f60493d2522207321603b3f586458"],["256176","784d2366346b392409352f0956"]],"",[]],["44454c455445","2f4f7a5163",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3531"]],"fa8ae389e22b3e1b9f9186543545e456d4aa0b12dc9245bd0f1070640367a0045e5f1737ea32b07dc7b21617b344e762fd49b6",[]]],"left":""},{"requests":[["48454144","2f573f284b675f2376463c73593d7c4a37453e385e783174",1,[["686f7374","6578616d706c652e636f6d"],["677a372a","5820337e6c3d66207457396f60423c"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"3080dbee53e46f30ff573369a61b113892b229058c22fc62af0e57cf09349a765c846818e30754015828cb469939009e628a24ff2c4142c34d",[["6337","7878"],["716b6976","7a7a78"]]],["44454c455445","2f366c32562a6a473b412c",1,[["686f7374","6578616d706c652e636f6d"],["67783377",""],["636f6e74656e742d6c656e677468","3332"]],"ed01f24b19b33361d8149ad156b509afac5896f2a0feeadb6909ba799233b770",[]],["5041544348","2f7b4e",1,[["686f7374","6578616d706c652e636f6d"],["7567707826667478712d","51"],["706b3775","3b6269097851612d6a5758236e09624241612f777e66"],["72612b6962",""],["336270676f2361272163","517e"],["7072776e793068696b21",""]],"",[]],["716527","2f2f59666057443a677e265f3f6b31263b257a",1,[["23656434",""],["76","7874203f7b5f4864"],["6b776a",""],["686f7374","6578616d706c652e636f6d"],["7c",""],["76",""],["636f6e74656e742d6c656e677468","323037"]],"0daa2a228e23cfaf88948877037f5f9bb85da5b41191e863abb949833bc2c7b91aec1808f8b0e53be5205e2527a6203609a6558f6ffb88046bb8512af34d7290ec4257c638b1366b6a4444f23a1852b01a26027136c5ff523c403ebbd164043a7b935325d7fff474588b251d2784585f13882c328174856c90152f383ef0df597a904ba00fc76c1025253a10c1651d69b47cfbe74919cc50ead79b3057d64bd82992c84b0d899c5ffeedf8344a539b63ca9a3fc7ef38419e64ca2806165733d72ab56c3ec657dfa72d65afd26ce1ac",[]]],"left":""},{"requests":[["48454144","2f33747e7e334a417b7a4a3a",1,[["2572787c676971766a366b",""],["376477686472736c","2d722d3736425e4449092b63767766"],["3539","71256b54784149"],["686f7374","6578616d706c652e636f6d"],["6f767663332670","6f266158565f507963093a385209573f677d713c586539"]],"",[]],["5041544348","2f7176214b7477394a6b39",1,[["686f7374","6578616d706c652e636f6d"],["30","7d5f7c224427202d69247a"],["32717625335e","33733643624d"],["6f63646535626e3575","6e78245c2822092909485d557636342f5b64"],["636f6e74656e742d6c656e677468","323335"]],"03260b020c52d6baec5e62d939bdab266295536572598625fcdfe5b1bf874c0279aafb95b9027f098f28905e773788edb646e78f7df766ea191278fedf4e5357ffb3baf53d00aaa2f4e157d8cee7b8379137bf1f5b30681048dc203575c36c0871bb56811f714e0854449e8a42e21dffcb8efdab5184986c1a8bf7667cd1f8b6d1c3c85072eb46d2b034accc73ce48787d9768091d797333f6865a2b3888f4ad8aa565dc47db8eed3a8ca6bdb5df3e0db3fba1d8226111ffaaff962589ee7e8867875b288f9016fc2027b49f1f401085281272bd7ecf75d92d8f8a17376cd31e96ec19b2208c5896b8b49e",[]]],"left":""},{"requests":[["4f5054494f4e53","2f",1,[["65","333a4b2c226f2274"],["63706c7a62706967703576","2f327c68412e6224206e7d7c77763e2e203f5b4e6d4d28"],["667366","7a21327e7c46203d723d534d6942206565332269"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3533"]],"afdff45ab759e930cc62a7c4bcd1aca7b73fda03cc93bb1498ed09727f5ab86cf44132a822140a7457a5e7eaac2d2aae3ab4994178",[]],["44454c455445","2f48724f2b3627552b69256f3a2b5a6277685f3054477c",1,[["795f63","7a783c6d7379202a54"],["686f7374","6578616d706c652e636f6d"],["3662","7a7e7263204f213b41792f5f"]],"",[]],["504f5354","2f277c33363067",1,[["6879","553725596b424a206b59465a29206f48267d26236e75"],["686f7374","6578616d706c652e636f6d"],["27682174",""],["636f6e74656e742d6c656e677468","3934"]],"62e450417012f670233848aa347f5600871082d39cf202378d0e0b43b7d07a488c168e387928a3da974adcedfbf40963eb3e10aea50d33869b0a2b49bab92418703d673102d01c930ec8799fdac86b2b38799b4893b6a4d1d892b0ef9e8f",[]]],"left":"734c4e347a7821202f5143755e7459213c68765c2c2b3f663533252f7e5f3a747a4c2e2520485454502f312e310d0a486f73743a096578616d706c652e636f6d090d0a646d7748495625553a09200d0a783a20673c757b604c7a393b093a733a5d6d"},{"requests":[["48454144","2f3d497c3d573958253942734c287463262778413e305777213e",1,[["686f7374","6578616d706c652e636f6d"],["36246f326e7166747768","475c725a225f4e0967"],["636f6e74656e742d6c656e677468","323537"]],"41ac39d4244bf398a4d379d1c201f1fdcd0426b1e314eeb392a611fb56ccc4f0432c8d21353abe7724b270ac598aaac9d452c617c410e6e3bf3fb524b3b10a6bb1e05285447fa2bbdd98ca27e032ca28992de138618816f66fcb82e5df21972fc98e2d8dee85b07b5215d6729b64c5d00f6c2973f2d4d988cde81acc6820cb411d0445878d72e1f43bec03683426c948b81e86f812e681f9b1943fb40145feccc7dfb2869303d2281ccb8a928fb35877f7cf922539c0b21ca9ca8d6cb2b6b1eb7471159d596e7f9409568ef9d96052869771d98089643ab55926334cde5f0897420673d50e5c754cfad024074ef58649a022916f07b40062b162fc5c65bf70528e",[]]],"left":""},{"requests":[["44454c455445","2f353228722b22525d7e25",1,[["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["44454c455445","2f34745e6a763d794745747e335b425c513c5b6b553c683a2b27",1,[["6c5e3365765e68",""],["67716f6268","246038463a5e"],["2e767a7e27","42472823615609353a4b"],["5e62386d36",""],["74702d626a7e6938237031","2a684838"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323735"]],"875c381042e4f6e88f36255e578912ae11f0ff63ce417ab283d6940ff24f4a87105e11c48586022c98f450ccbdcabb5fd8099eb3382f62f44c4a9eaeb6325e658fd97cac8196494da118abc9eada8ea83eb8ded095816046d087f913f441893ee8447043147f58f7326cc384dd5ffa4c93052bfd3c8e84ab57d718d4864b82196bced2ac351cdf42b19746620385999793f27ce913727c374dc73144c17a35a0019ca69fc4c9cfdf839c25e490da7c531d33bc250f254682286284f70fb69d3c68dc92766a097900f8a1956e33a45d5e44b725dfb348316dc241022a0a7aecca84525c5c09e9e2bc66930e3d0275c28eb1dbdab946d6d9dbe3ac25cb398306c866645cf0aa518b691f7a1b43e8e1236a3f7be2",[]],["4f5054494f4e53","2f4a655c687b324c2e44695a213f2e67",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["4f5054494f4e53","2f2a6e6d5a6c364f5922395050475f3d30486e7c214e2e7d6c43",1,[["686f7374","6578616d706c652e636f6d"],["32662161",""],["636f6e74656e742d6c656e677468","323931"]],"1825fdc10a9f6b9762048e5a44a7272498147c56e1467aa8c0f7968dc775bd41c440c5d1befca1f38dd95b653c9087bd62f413a1351ee63a758fbaaa12f38ad45748230c7282f7ccac87f36887d4408c50c87a6bf124d599704a98e8c88249d5b8ea230431b3df857f2c6b3723bba77fa196adf0cc963edd53ae2a739dc05e37cd381fcad4fc0170b957d2ffd4493a8c19d0b073984f85e6d8d367533d77ca26411dc466d80e467e396c0b05442636f90f94af7704b0e5f03248ee955cb549708de52336f1e3a43d01d06e915080c98b09e55fa157719627f79bb7ecee20ea1cd0207c6fb56eb8c9061080ac40b8aeb666555b2f926d422a58bd132952c4a0d86c3f19b00c191d31d413fb200afff139ce3d9b7ebb2b9c0db3cddec8eafa6939a3ace2",[]],["44454c455445","2f3f71383f763c6d7c2e6432722e3d28534b",1,[["686f7374","6578616d706c652e636f6d"],["6a",""],["6d","386f5b4520522069375f4f2b63"],["3677613072","5961412d09334c7636"],["636f6e74656e742d6c656e677468","3639"]],"906b2a34db82bc9bea0eb1b258ae963ceed5160380af70b1b1feb785cb7f462b120c77150b12bf5d3123bf8f6b4970e142168b043d658f4d28b6703dfdefbdb48664f1b1a9",[]]],"left":""},{"requests":[["505554","2f64296c735b557b61636b4338536b2a49377c",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[["78626e","78787978"]]],["505554","2f734e6a2c7a",0,[["385f7979",""],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["474554","2f4a31597449443d385e562d",1,[["3866785f65","763d4a453a7d3351290930504e7b737a3e"],["7131796d6f627a6221",""],["6968366438306e2b6e6979",""],["686f7374","6578616d706c652e636f6d"],["6975793367317463","34255e283a263562"]],"",[]],["48454144","2f7c3a52375f",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323239"]],"fe07438437936e5717a003433d39cd187d2aa61dd403cf6c4014ba23fea189390da793ece523489e4eddd6fdcff5d2e7eea5bea4845170aeea6494fc61d631988f08df085438522d78b607590fa976de02480775447bd902ab54fdfcc3356f53fd5880f3cbfd86f53d57e36b6bc7de673eabe06be2d67234204caa1c00fb69aea8f76389adc6615fc04b1e75768a4604d762e891ae2e91bb0f15e7d2a84cd3601c93e452b5faa390d96be2fe5decd437a8d34fff02aa653d26d8b7fffc34be902bbfbef1e7fd3acbce6057d1c55445c4a5f74b0257c068f4ca262eff13f464ab213090bafe",[]],["4f5054494f4e53","2f46684b606554557b40",1,[["686f7374","6578616d706c652e636f6d"],["746c6526265f2d6a732b","3c6f73206620526d52796b6f"],["6477266a3966636575796b","40293b41296a09557e3e46214a5b6309435e30265653"]],"",[]]],"left":""},{"requests":[["504f5354","2f6064732843384c44435c30315e37727e5f6f232b4d",1,[["60662e612d38","3b68437957"],["6f6c6e2d","3b2e4c206e7760303c2e4949"],["64706a","523e247a5c625a7d096a78"],["626321","715b486920584d576c4976417c41"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313532"]],"b217cf738354587e3f16bcd18261f19301571e1d37234fab9a96c00dd90ca8091ba46fa6b86133eb782d7b2b3e6fb414d5cc82486dc0a02841927cbc6c29c91f05ddd93f7c249e850fe883cf451dfb5c878cbf03e6b8bb48b00262af04b96ecc2663292d5796423fa1a616474fba5b76f5e87651af2a7dc1658ef45d5dbb499b706c4169422d2cb6a40803c99fb61cd58729bd9ad46854b0",[]],["504f5354","2f756d3d4e3964703e",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323337"]],"55126207c476c35c303f35c456049075b4e851bebae4d6d170ab58cc0a1e0da935e2a47e0ed27fb631f45d7c8f29b28d10eab29dc62b1fcd2c350d9fb54bff44bdbbd0a78fef0289bb54d65de41e29a86535f650ee2c4081a1e2ec7effe23ccd31c74b279a578fdf228affde0eb8d0d3d4c105eef75a14187654f72e6f5c1ab086e5e72467625a735c6963aaa9f9fea48b16bfb024a25cec146a7d8cb6f7140864d21ca6e8d59aeb2c7bf349496c0a607ddac236e6e74895cfbdf7ce5d97c204dcd39a96c50064df3524ea57f1280f245f668f8c71f82e976c37ce990bb9de4b6fa01e527288d0c5cb755015d6",[]],["5041544348","2f216c2c3b6a34676966",1,[["777662697236706b63",""],["36626730757978","65206b203e5b557361797430"],["667e64707e","7b3f66276c6b647b5d096a266f794c59743028"],["5f77","70456938"],["7272796b692a2768697234","663864"],["686f7374","6578616d706c652e636f6d"]],"",[]],["505554","2f6e37447d79",1,[["2a","2663202b3178"],["343577316d67237c7a77","242021367d"],["6c6f746271","4a7d75615620562042634530373670"],["686f7374","6578616d706c652e636f6d"],["786b","4934533d4520745938522c20385175434c48243e56"],["636f6e74656e742d6c656e677468","323032"]],"8282da4ab9ac8b79b0e08b7577ba4505838ed6a18e39e4894871b326abe76d2e65e2911f57ebcc461aba4c822bad4be21640f213df8ba0fb0d31d586d1c5c84db4324fdd98eca32359d4d03d20c5d992a950151a1c16a4e2d36d84581b05e02eb19cd9bb1dce541181d28eaf714a2dd081b05cbf7bff42977fd8a08a4826ae12a521ff1997021a20867b5a9ec563692ebfe2265d8ca6c5c282675448c222a4b58cd8dbc8cb8794cf15eb2e67c5eb9305986c7315b72f03372d0bccb268484d83d2326ef45247a8cdc72b",[]]],"left":""},{"requests":[["505554","2f74274d5b554f",1,[["72616734","563a203c2c4b4d303f303c20666e4b50"],["686f7374","6578616d706c652e636f6d"],["782d6a7a2b7a7c61647c","314b433d21492e"],["727c7727752d70",""],["363871682a","777b463b6e622052"]],"",[]],["505554","2f66492e633579402827",1,[["686f7374","6578616d706c652e636f6d"],["23647324737e7466796575",""],["2462632377607830",""],["77676f7a","72574a60094c6f3e766c535c"],["67756f31657667747e","5d40444b515d6d3120754a543c35"],["636f6e74656e742d6c656e677468","313832"]],"730b2ea4c50947f2f713f17675b26e9ddaded7c64a41d13a923c9590de29b7805e5acdf449bbaa1fd6d08cc3afefa1061c4067b0c10e7ee284f18b0b2dd074a30002d7b0aea211b0fbbad4daec9f6778c21edda1cf2bb4c492e743eb6a215570c124f84e6c7cff1a0486ed9ca80f31af8df69319b76c32dae3b474feb2012d8f2e1be1ecd12a3301ccbe9abfaa6dc207256fd34fb38bc9cdbfe55ec977a6a313196e1c1f1c8d216cbf07a080b93c808586a6ab979a23",[]],["504f5354","2f5c297d41",1,[["2524662e256238","367471202f642651387a79615320434c4b2c374a43612b"],["686f7374","6578616d706c652e636f6d"],["6e236d2d742d607334","464777785c4620586a26434a3b2078"]],"",[]],["4f5054494f4e53","2f766d742558",1,[["792a2526745e377a34",""],["696b","735a5e78336677"],["686f7374","6578616d706c652e636f6d"],["2a306b6c235e6d602e7333","245e"],["73686e3269627266","45780970534e37"],["6b636b74","593c76202d4a6e64207467594c645b6078"],["636f6e74656e742d6c656e677468","3233"]],"617ed795af8dc2c7af39cddfc3809b61c5a1b0b7ca4e5a",[]]],"left":"505554202f3e5938367721236b7150416c4441697b496b6d75405f7c487420485454502f312e310d0a484f"},{"requests":[["505554","2f567b7a527334503d46524655285f756731643b",1,[["5f277561737232717034","215c"],["7260","567b6c675d096e765d522c7e0977474f42564f"],["2a7272687e6a6f6c256437","25206c6043"],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"25a3070ad47d90d43fd2f0c27937374026592b3c36a5fa5813f8e799a754317153966998211c4180a24473792fa13c15e1c057250b69cff9763ab2b30f4c267d9dc166db09c37ba16e92",[]],["4f5054494f4e53","2f2d496c2646325956422e774f433a776e43",1,[["686f7374","6578616d706c652e636f6d"],["31",""],["6c7077716f2a74","3f453679312053545a522d"],["2a6f6c68756e","407d743135646a207e4b716e72"],["636f6e74656e742d6c656e677468","313539"]],"e84bd8874885148bd63b19efd528516bad93f0833601ce912a8fd1e7d009d15fc09c90c01a0df263bc9f377d9fc3725816f6f2b41c58065f50010a52935ced767954d8e108061a18c057ebba34515d6fe12c428c5229b9d6a15533e9ab8e1b48ef1bf639831ea1968c7eb863d52f211ac319ab91e70d4d5dc2fcb71f9bc0e38963217bf16c82497a1c0b20d68ec50de6345faa0d183521caff40aa79fd7980",[]],["4f5054494f4e53","2f335741227c22553058634c73726d3d2b45272c2c38517d7a",1,[["776d797338356275627877",""],["686f7374","6578616d706c652e636f6d"],["64266c6b6562642b","79442b205c494a24203774247c473c72"],["7063762b6b6a","615d39327220256e5d682920453b483c786544753d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"f3554014eb7d5711d64ea44baec671ae4a35c4ec90177cbb86d18be345c209aee7be50d5383b6d9bb597f9241ecd7dee4d8f164c49bcb955b9514def4c27fc02efe21385448bab7bb7f24b43229af0162352c5aa742ca5a21a31815190ede524c67369b8044ac190f7a15c8f023b595b357355962f4282305738ece5b74383ab594d92b44bbe132d401e1f10ec973251",[]],["48454144","2f486a7a432847376c4f2337414a747d4961607c35766475687231244b62",1,[["626871642a25","445d24635c71"],["5e61",""],["683166","462b56213b574d"],["686f7374","6578616d706c652e636f6d"],["266e707134737169666d73","606420225b202e632d3324642327"]],"",[]]],"left":"44454c455445"},{"requests":[["2a31","2f4e682e7133443c2d7c557b3373613352672c24753f234f7c",1,[["686f7374","6578616d706c652e636f6d"],["78","764c38093c6f6a3d514e096b213f48"],["73656a686168","5f595e39477645"],["7e6767","4b4d274f2952226e5d"],["5e6179785e","546b5d77466c292b2520577c5c"],["67786a63726b6f68637e5e","764c2f7b276a67093243434e0974"]],"",[]],["5041544348","2f3c6a713e595f2b2279772d65292e3458",1,[["656b","3c42555c517147323d0965"],["367121736c776a21746373","7760496e412520272d3c392146463154207178653a48477b60"],["626b70656e","4b3a7e27580949237a6d50247d"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["44454c455445","2f6d46724e",1,[["2b64",""],["2e776037655f","6e5d5c575f2b09754035093f"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323732"]],"83c8b74c82b8523c1cbd5cf6680bd20b2b46de2bcecb2e01323965a230a52d681a80973f38081ced47fdf9870890d099251dddc9248f26f8fea9e0e0674513957036c0631b1097caebc7300d3bdf190f1665d66bb50b8378804bd59210d53131c27f311116e3e4fb12532f9759453d6a1e23721281c89d21efddb37ab044d10e6973dfdda91b06a4c5afb95efc0c2326ac549286c38ff4f323893716a567ff1430ac5a486c312d8b0ff5cc3f335e15d9c15e3fff7e46ba30acceac47aa6663f8c238ff287749c174bc9c6b19e17e44fe8178e6b25958452c5322eb252613e5eba52dbc8199286a5c68a68c661fe65ca3274556ca741dd738ec7175fc1481ded28549d424f8509fbe83a680640bb733b0",[]],["474554","2f7b217e6243573a614728414e6957322f5625455363267a7d7b702761",1,[["2b667a666b66647a70",""],["7a38367e7364",""],["6a7774366a","5e38392b"],["332b257a","67"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313731"]],"312495048ac6579d38beaf17d23982708075b96f4331009b5bc7fa0e9a563cc5081cb8ccecd6dd6562aa7bed35da9b4c8d3e6b9839fbf10b770c1638885b28953c987505c4cf1e330c68a33d87d186a8461d1632ee595c4800f7ad60b38e6d1d95cdc9723bc2f41b5ec96a7868bf476024b56fe299674a7ac5db772e07487e0e86f93611a948c981b8e1d53e122eff1591907c03483626bc0a6af4fc381e8eb2c9afdf3a0a5dec57310177",[]],["5041544348","2f71295b704f6c615a494721645e6a7e5b3b607a5e323c7d565b7a423373",1,[["64632a6a686f2d66","3161"],["7e61","7d50593c6527"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["474554","2f622f2b3a78466b40506b5e454b5b43",1,[["752a7a716c2537","753e6571757b7c20703a3f"],["6723702b76326272686538","7971"],["676e2d796c327764322d67",""],["6d79666d5e6a6b71","326a79270965695533696367693e09556a63"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3338"]],"1b2179d8e9b6afcf6fba4f061e873d80ac4fc354e6839d1d8efd104debf9c2525256c394075e",[]],["504f5354","2f3c6c674d6466772e474e5e6b6147444b64497b6f3c5952",1,[["686f7374","6578616d706c652e636f6d"],["7767667e63","39096a34"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"9bb33f37b45bbf80e92fe01ac347e682aa8e71ad23302814885202aeebf247fe54f2b7246bf380309f154ab74f67e1b2993a7622fc5dc510f089592b1d29f73694a7031016f1bef7bfa7017b022844f8ba7b1f1b3461862653840864357bf8c0a75ad831b8c32088f72b8c6389502a19978db8bed6b033a01c7f51a655202d641ddfea814eac2d25cc5d846f37bcd9c4bb9026660b2d1df6bcccb457903c45",[]],["48454144","2f363a683f3e23226d383b2427272f6243693d4a222a",1,[["216b6137767271617523","2b4e5837696e39656b2042205e6b6f"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323033"]],"1a77b1e6c40fb353152814f23ddb5e087720e54496fb79f8e8d84383a21c8a7d8449b418563ba434d84b2b21c4100f3d235edb3950694bf2e33561d7637e417ff4f463b9b550ec9e811abcf3e158c6d1bd2d7e5656a06508b1c31809c4668d92e1da9ec5494dc890aef2200466bd774272e5b34baa45e87e41bbc2d4bd19b7c725d63d90e4b57098c38b50613cc96b2e1f8b1e51da6b02edf8d32d575635afbaf8e7b94240ed5b7eace4aabfad096038964e97feef809b27847ef40498bb4bf57363c3b21e5431e7a5fe6a",[]],["3746","2f52344d572f7057",0,[["686f7374","6578616d706c652e636f6d"],["60766562","4d4b2a7c2f2a2d7320494c4a202f7c624a5d3f635f"],["7878242d635f6077",""],["697976","7a4e4452"]],"",[]]],"left":""},{"requests":[["4f5054494f4e53","2f397233492e7167285955594c4b5a775165",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"ef2a403a2802a2568f74a131384e00d0e4ee85f676aef84e45f9cf8a68db1a360eda8d8a5ac123f9fbd10239a5b349ed4e2885fd686cade1edae918106b76ec66045272ff64cead2121a09909aec7cbe62a29947d8adc9eae50d0b11fdf9ba1e2fea81b483fe87af81a9e906f2642a5bef7a0768948b806e6595d9335724decd16",[["2769786b6e",""]]],["504f5354","2f343a703d697736644636686f616b733251",1,[["776a346f6a783060","4b57"],["71","4220274734"],["3277","2e"],["686f7374","6578616d706c652e636f6d"],["2565242e3266","26332068337566"]],"",[]],["4f5054494f4e53","2f792b3f7a47505d26406e58",1,[["686f7374","6578616d706c652e636f6d"],["686d27","30212e396e093b76390968703a6523285a"],["636f6e74656e742d6c656e677468","313639"]],"a30bf84ab215984ec4094d18f95dc52d661c7e1ffa8adbea76f4a30f7008c661015f50b6d94c20f44813fe6f8aebefe76c136d3541c08ff29a3ea83e8c286a33895e2c4cf7357b9babd5caa11125874fdf3d418d0008b7234b9d45d07fdc797c1d16ead46f9315a80f147936270a5f4655c7dbf829c031a95149b96f76b3fc44bb15d36794b232ded18cd2fb34c729292901a8430676b56ebb7e45c104801f6879ce7404cbdc269bb3",[]]],"left":"5041544348202f4f32273c314472625d50275d4a7e"},{"requests":[["505554","2f78",1,[["686f7374","6578616d706c652e636f6d"],["787871376f77","2151402e213e766c3409542b21553b303826"]],"",[]],["5041544348","2f365e24785b5f5070",1,[["7e386f71677e7561","7c753269"],["6e7975",""],["66","7d5a7b67"],["6c7031","502c632659425c3c2f093d730966"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313734"]],"5f73e2a8cbff443caeeb1477b62b41a7fa3916b01ba76727dd033cecc2ead302e3fc87e3b3c48ee8b3d5a6ef612424989fa4fddf05511036af12fd6aa021dfec4cfe8ac559483ee959fc97872048f2ec66e468f0eb1f4d95adfd55bb1fe78d178548ee1ad9d813e119cff30be24a046e7ce103982ea984584e01eb4a3aa571a06add10f4c428b04420dc2121a11c5f49640e7eba413c4be16c60a12010f254abf3835fcfae227bfce888e0733dc0",[]],["48454144","2f24687d7e46554a3c432d4d2853727e324023",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["504f5354","2f693a33543c6d6222",1,[["686f7374","6578616d706c652e636f6d"],["372372656a","786741232a"],["6c","552b57097871295f6b7a"],["66717477746671717969","6a785e732d6735093534226f6f2f512952"],["756d392468636562796760","3037532b22097026716c"],["69213973756c63",""],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[]],["4f5054494f4e53","2f42236861302c3f325e45693037614527624e6258706c4840",0,[["2677342e27232d","6a202a42312e304820417c6b454d44"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["44454c455445","2f24347b56244f4f68443e565d2f4433473237",1,[["696b2e365e",""],["653964","553847244c205954552e61394a3f5e205c4960"],["686f7374","6578616d706c652e636f6d"],["747a397025","6a3a5843760947"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"b1e130a69123f03daa1ebe04b61f6611ce4817454e4d1a5f1c66020c78468c3d542703c55b24f8c11398a6289ed8d07288003a5a6db74bb423514baa169f7932368fd66686284abeb56187e564f5f98252dc8b17c6d57ec5004733edd0e9fa06d922ccdc67a2457bf5cba337b11e87c3529482",[]],["4f5054494f4e53","2f5b486b423229",1,[["706b7874727265",""],["686f7374","6578616d706c652e636f6d"],["70742670703770777877",""],["636f6e74656e742d6c656e677468","39"]],"b443a6f8e7bdcd8b6c",[]]],"left":"48454144202f7a2f5871693b5c34224d4632692b675d4322635b4120485454502f312e310d0a2d2a"},{"requests":[["466e","2f74435a392d443b2c732a664a5b367e",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["4c5278","2f43464c3150",1,[["792b7764272762","4a34203e207e6b"],["6e",""],["686f7374","6578616d706c652e636f6d"],["716d676b2462",""],["636f6e74656e742d6c656e677468","313036"]],"0799d7fd9d1538917367e354b95e3715f1ed9e6236d9781c1f0699dc3e06ad6a1b1fb6f2b478cc0c2561ab7a94bd450062bbf4eca72f4b3aee9024476c89206606e4afd9b280e2c9defdd6a51908165ad12e7fe0ef8f7b956a4102840cf332ec0f9e0d1361fea24db10b",[]]],"left":"4f5054494f4e53202f385d34637c7b795a70364e233e4b2737263d6c47553c505a31575720485454502f312e310d0a484f53543a6578616d706c652e636f6d090d0a66266d333a30"},{"requests":[["5e4353","2f31226637693f7a4e7b36",1,[["796a69663238697a707270","54217c51333e48577720324656604266205f5a382c5637"],["5f6a23662e6c6b782b","665b4c"],["76743871676d2b7171","6721526a49095e3e4d"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323539"]],"7e7bc57f5150498e16656f4e6b829e85c3f34e03851c55b4e9edd88b211a6574ee91e34c67bbba5f54eb6f561eef81f32b825539bfcf45603f1507c1d802964438373afb3bd2eb96b85d1924dabc9eca85e6735a6ac195610d8dea43902741992172daf672694e961f6a718586cc9ed282608cf1030965749df2266adbd4c7cc050ff2317123539bb8ac286e781151738cc395ce46901e182cf621a56eb710f915a083480f16fd1179dea7abdcdc0323f30b36b20b91c523e95bd3af42595a07970e95cc4c3c78024377d922145249c373769ec56f09d231a1e39fe438afe0f058787cb5bf7977dc8a103e9c02d4403384999143d0d8c3f2823f645f56e57e494f614b",[]],["505554","2f6e476249682b7a6b366835286a7b6d217e6a5b4f7b",1,[["686f7374","6578616d706c652e636f6d"],["656274777072",""],["5e6a267e32625f64667270",""],["636f6e74656e742d6c656e677468","323234"]],"db5e6e2c8cc498cfd08dc80673bcaef8ffa4024e68b5d9f6bf75900bd1009c47f95471478e9ded4bd0df93bcfc359048d360690de522c5dea8efbfea837f31f6c5baa14426067d90bff93070bf421ed1ad9c624a0a4b4960c149d6daa64f3983a117515f010b1c6bea2616182ce66906e9bf7be3c72832ca60fcf0e34afd72964bcbb91ee9713da12735e99cc5e12a54b17436f44416adbb6ad8256bbad526729affb4b03f2a5443af24b7ddc0977d65b55665bf586434f21493f21aab1243d1146af241b5db7da360af1ef7571f01b6d05592d8a5c6dc3b531e9e8013984548",[]],["474554","2f55656a2f797b4a465f58317d416a7b7a235a563b725c584f70724a24",1,[["686f7374","6578616d706c652e636f6d"],["6d6764216b71242e21","3630203a715471312b2021667e55502d5364"],["2364",""],["67746d3273",""],["6f2a636a6f6b6d6c786277","72483e6a297854264e"],["79326c6e6f386c6e757e","6a4b3a4d754e68"],["636f6e74656e742d6c656e677468","313231"]],"721061b37facf43335114f5a5d9356e630beef570c2f9a831f30dc608bc4be74b4090185a02738796a4561bd6ff19746e852c4c60992db955073a2529a07fb802ae7ddaff6ec9c311417db19cc50fbfaaf968df511121cc0a7e597946096e52a9f443e5c6eceb7593096a319d0b89c8d444e4ed9fcc69a1673",[]]],"left":""},{"requests":[["48454144","2f362b6d7d7d6f5a5c597d234e55684456567a6f5c692c26",1,[["6a6632","45593e094b096c2e5a684572"],["7325356e2175",""],["7975702b796160","3f62657668545c20624a5c5a"],["686f7374","6578616d706c652e636f6d"],["6469633538","39484e5b486b206a7d"],["636f6e74656e742d6c656e677468","3133"]],"8e4e1a8cc360ba60e1f2732c26",[]],["5041544348","2f3a636751256a6e2a32",1,[["7e7631717c756f76","4530442d5920213565205e3226325227"],["6b","4a7a53446d23"],["6475757225723475",""],["686f7374","6578616d706c652e636f6d"]],"",[]],["4f5054494f4e53","2f6c673c30466e51425a4b79646c75577b4f782e",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323030"]],"85f42cf58386ffc71cf604d3a3013644be53f4c46aafdfa1736a5d017b4053b925e9c6fd68b7d431a9313d6f699d8a5ec8a66261e56acc9f4c13c825713b12c7469871e2abfac751f8f95451289af4ddd893bf87f83027a416f42dadf84f4aa96decf6b4ded61b0886296bad6e0ac7d513a5c8dd4985a34fa668b99a6bdf4e37acf19dbcd488a369aa8b685593d60b3432e13c658300eedd98d2eff6a4f294d1a0ca4a037116a0353de7fb73ca4346e72eb5116e3fb954869037870797ec3a64838d75f7ac731b73",[]]],"left":""},{"requests":[["474554","2f232f785f3563714139704c657d5c5a714d6b",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["48454144","2f674942745c",1,[["6339697a386f76323737","69315f7a38546d09555e51093a666f3f4a7c2c3f21"],["686f7374","6578616d706c652e636f6d"],["795e37626376357872","224509594f524d464352314a096e2d58"],["736f6c34653831","646d2126267630512d"]],"",[]],["48454144","2f386d36702f5c3a4b5c21667c4b43473b5a3e6a67",1,[["686f7374","6578616d706c652e636f6d"],["212b776b7772616b6e69",""],["396c6f212e74707535786a","3b59686f3a0954"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"0c157e9537a70e9f74990a54f2c6a61af853db158bdae53adc4a825b8a6e21632a9d2990cafc9bfb3267f4c93f92b4bd9a4490bad49f106e6d6568e22cfe72b6030047a7766d722bc4f58a927c726eaf64e1716716cf225959c1c31152f6a2d46bbc9e54842a270305ee605bdd12d529e1e4ff50256d1bbc077af74774d64009f098c10780d9e7d35beab53ea88c77a3073ba922590af914c0853f0c0276c800a468c49d6730ca4f39959707b3deb78cadb56a86",[["5f75","78"]]],["474554","2f6b6e316268377953",0,[["686f7374","6578616d706c652e636f6d"],["6b647067736d","3d562329"]],"",[]]],"left":""},{"requests":[["504f5354","2f4e365a274045336b6134254f726474312840",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["572e6e52","2f",1,[["69316d2b64","3309494c4009212d232f2a25"],["686f7374","6578616d706c652e636f6d"],["6e6b78646d6e7670637663",""],["6c783738616c79","40312841202d675c"],["7068657e256163396c366d","35314b492e78"],["70","6f4d713a43413941203a265e792e41202c507022"],["636f6e74656e742d6c656e677468","313330"]],"65d8a78c99c574950b4861305fb513fe623e98303664058125b657e2559595324f173b954acf05e3e3a7a483c068d9eedfd9d7807ec5b46938f426d0294d9debb47045ff53752e3c3e2f041e3c3047bf98fdeeebed9b4fb1f776dcc081393c9e11deb7dc1e7ec56b8d3e28bf82a717dc8758909941f55f0b1ac60b4640c89e9183aa",[]],["48454144","2f324c44473a7b4a783f37442e75797a3079217d356c267575",1,[["73266c","7e3564352875793c2a2072456a"],["686f7374","6578616d706c652e636f6d"]],"",[]],["474554","2f586e60373d36422a2a6622406a4b634b2a",1,[["6566772465","486f487628096a5b3c0968"],["686f7374","6578616d706c652e636f6d"]],"",[]],["505554","2f7244497e7350736f2865723f77",0,[["6139","2b6b443d3c204948"],["756d",""],["63727e24","46787929567569647d094d4e23695b3e515732"],["6a35276c786323736b68","275239685b0954765e48"],["767033707966",""],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["505554","2f7138272a543e754027692f4e587a",1,[["646d3837672b692b68","495c0949"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313935"]],"d71af2fbff5fce381d0bebbaaea402898eabf485fe97414c8ade8f21716954ccc88bf17227b44a1a6cc3e17221441db8f5da2e998929bc5b265b4e9c67c5fcde6c32d241c9232821394e840257ac61e6227b5aa72d17087fa9e833b573f728698cc474d5c20b3704def05aeed7b6eefdd56648f823c386e8422f879d0ca6681282173def0016e486ca0120e6e89d8596195a61917e30109eaeff93da040f19ff895419a25d7deb80c93f68f8020e3852dba75ba2a0fdbdd7f52eb9d2b105a1d91b682d",[]],["44454c455445","2f792d63422835",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"359f60b79b3a6c2ac4c7a527749237aac5f813c1d916383e7e9dcdf5544544a9329517986ca17d35fcc9be981be63184784fa5681f1f889abcc1cc3e3350520696fe5b28",[["766b5f2a746d69","79"],["6a","7978797879"]]],["5041544348","2f2e",1,[["676f686d396e217c30",""],["233826756d656c23",""],["6974656174726b7775","46654a626f4757392021704a6b62292068445b"],["686f7374","6578616d706c652e636f6d"]],"",[]],["5041544348","2f4b2d62562354274f44664022372337476077305e2f",1,[["686f7374","6578616d706c652e636f6d"],["786e2b6e7276","6109563e606f6c4e6c094728"],["6f76365f7e6a3524716f",""],["636f6e74656e742d6c656e677468","3738"]],"56d91e0c37e6d35c8731e69a1baf1d3bc301ea6d5f6d87861e766643d88a735010508feb38dc3d091d210d281bc3b86d9b2483b102c46bd0610e45cc71e2ab26ffd1ab9f8a78c25ccf81ed013f91",[]]],"left":"474554202f246e697020485454502f312e310d0a686f73743a6578616d706c652e636f6d0d0a436f6e74656e742d4c656e6774683a203435"},{"requests":[["504f5354","2f65244930786648413a335565572c",1,[["7a",""],["236377","276b234d095f6878"],["66","477d26203b3e2b21584b30202b7b4d3d324125"],["6d71616069677137732377","2520625a5d24286448"],["686f7374","6578616d706c652e636f6d"],["36676b303664366b",""],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"",[["776377",""]]]],"left":""},{"requests":[["5041544348","2f67642f5624516867435f236f",1,[["717626707027786c","573d20322f547b205c6121636f313141"],["6024716f7937243177","425a73552a6544205555"],["62686635686578","2b237b46095f66562f2a"],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"1a98534f8f4f5d1c84a701a806163f188e2814689c7d96adfb0358f59243e46df4689a308623b72e95407e1059989135d8c7992b70e9c51e70cd521f85be72d13aa03bbe58cad40b976e0dfbed8d0f5d24390fd7efb9c7ede71439e710604be63113f4efb7",[]],["5041544348","2f5c3f6b3137393d3a5d7d5f67214f",1,[["21216766796e6d7a3725","627a53313b663c"],["6b6e7e236f2d74","776e2b365a3720762d72544c703d23206724454358"],["71726b","4a635e2f636853466c2078207835"],["686f7374","6578616d706c652e636f6d"],["775e5e626d","515109282357602c276c"],["616871616669382a66","7b294f296b"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"28f61102defcf511d63015e5a4a0a07b962f341cd6a8e09c7e857036ac23cf42e7b2673359cfb7dceaebcbb5da68751ee11c58c226b10211b5462d2d7e944c0039b110395c85ab2bf56d785a40adbf15d12ec0d14f433964f62b4e1ed04e11c8d80ecd8dd0516c02859e272fce3d7ae6d0d9a4221070ec9805c593294c",[["71","79797a7a78"],["786575626d","797a787879"]]],["44454c455445","2f6c3e4034406a7d576b314e2246524d66454260785c757e4434",1,[["74","51683f096c40695451"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313937"]],"0d3a71e77a00d1b8ae8d273a1d628634392d5ac34dd8443095b41029679b72fc67ef8220f5c846d1d68006306a9fb5d6566b98858a67fbe89398015219f76db515e91deeec09c25e1d222975e6babeceedc065fc8188de9f391b2129e5c2fdc8bcb4d3541244f0ce4ca622c678b219f68b348f293083783b3578fc6da2f82b377cd37aa721ed55baf9fc3621d3ad93d20a4d301c75ed35cdb76412683cfcb297f4717d0458935e33caa92570c70ae06e72839e849d54e91d274f59f4fffb0b672b91e4c8a1",[]]],"left":"474554202f6f4d32607d6f60254d4138324a724f7320485454502f312e310d0a754a59213a09090d0a484f53543a096578616d706c652e636f6d0d0a504f333a5e515335382b61092b514035780d0a436f6e74656e742d4c"},{"requests":[["474554","2f4964583432",1,[["72","61"],["266769","467d5163583f"],["777663","3f25656265092a6509326a"],["686f7374","6578616d706c652e636f6d"],["37706f327324","647052697672204058"],["627972397737326d","42486f5577"],["636f6e74656e742d6c656e677468","313239"]],"c9d1b2f61a714104c4e3f76a20ed639f9f4e355d75fbf53b686426b4700e9c4f2881071c5d314d7b4181af68d8bc1165c3f5bc4dfc69774bc0080b83b8ec7354a8dad8db90bfb68e404e513156017b5d10129095dd5d803a09bfab5b2d49365e42b6aa144710de88436fa0892493f028f65d3f4b78b849d81901910db48863e18b",[]],["505554","2f6a54602425473b5c79",1,[["6e717536","7873362b553c24"],["64376c397169306267","6a493b4e565b74096236"],["7e63","5239094b4d26416b3b5e546f09594a3c"],["686f7374","6578616d706c652e636f6d"],["256777337430","687274792546674c512045383c3a3e63206a7e5439"],["636f6e74656e742d6c656e677468","313830"]],"ec3cbe9e511247ae32410988e46e147b5b5a4e5699a4be8fbb6dfa65d2b581601f5e3282c48a0000338c1ffb30cda05cc4838e3c4d018cbb9be5c0eb948d5d09be8048d73371c99ea4e380649dbeae1bd518a6cbf2f1ca852085501039336877c3c2cfa44f3e30edd4d8b845a21ccfe11e8cc79931fab033ae9956808a8fdc0f2c0bcf8bb009ceace4e9d9c8adbb60a2a331009420fdbc10418525b5d17dad561ec653a803c8ab86b0926653854df67920d6f89f",[]]],"left":""},{"requests":[["44454c455445","2f27255b2f623f46712f315a397657387c24572433254e453345474f",1,[["686f7374","6578616d706c652e636f6d"],["6b706773756868626761","73607b614b33245e096132327b373d23674109773534755075485c"]],"",[]],["5041544348","2f4a",1,[["686f7374","6578616d706c652e636f6d"],["2b352172",""],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"02fd1b02783fb7ada4331efd4c10e36ebaf93806f4b60c59c7c38d83e85467142fe7d04b72a93296567e42411a6efa2816d29c328350295f172a997c534bd6723803b6a8376f0304ea02ff0baa7b8ea4bf3d01d1a174fed24e25778bbb563799813b861bc09c91ef3d98cd9930bc22cb250ca87cd9a63b22805bb54dd01dfa8d8a7ca7bd16",[]]],"left":""},{"requests":[["4f5054494f4e53","2f2650383f673a773d395e36533a46307e4946717c74693f",1,[["27696136266a76","6355367e5c"],["762e6c62666273213969","25564825265a68092a6e"],["6e6136767925387a","7e58095d3e526a702f5b095b377d534b344047"],["3674",""],["7a652e","7b737e5f3c4e40586020382222302d"],["686f7374","6578616d706c652e636f6d"]],"",[]],["48454144","2f2d4776265653687e363a7a34",1,[["665f2e","6009242d5941367556"],["68366721327875743567","213558273e7a52"],["242a6c38782b6f71363226","7a77722a5b3e203542207625"],["5e71753962276e","74254655095b09233d787226765c"],["63697178706b33345f75",""],["686f7374","6578616d706c652e636f6d"]],"",[]],["5041544348","2f2e5d236c2e7621352f25",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"98098808a53aa46ec0a23010af50dd11492ecab72bd4c0bfa3bde76a4b9610e8f6340f38cc55a2342d8926b390dadb906cb239734de4ad94cf7626775faddcb0db0ee2fdf2780a8d1a32800142e8f4e5f93ca4f7a691e0b247d8180ea3f5c6b4f38f1a50bf0a6f1dc2066889aa511344c10ca6c1a94d0795b6bf9dc259e5836b4196a3be94be6ea7f2d0b7c54c",[]]],"left":"48454144202f31542c2d6e7b715f2d38442351436e7066714d405d20485454502f312e310d0a4c6c3a3631386048096d0d0a756c5333394f3058262a3a2020090d0a68"},{"requests":[["505554","2f6a6d21284034232b35",1,[["686f7374","6578616d706c652e636f6d"],["67","7d66442f55463c46207c7432202174383b4b3469"],["6f31397436747960647a5f","3145202763"],["6a70692d212e7623","2c"],["6e6f74","4f205a202f4c25"],["5e65735e2a6979396671",""],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[["7666","797a7a787a"],["3732676f","7a7a7a"]]],["474554","2f57717a7e42633832",1,[["6e772332766b6727696e","247a34096e2a3d5a4e3547"],["6b6424","286e6545443c2f6f093b5c760923432e285a7823"],["3931636d73316560","633d3e365a2e736a"],["685f30306f62726b70","627e4c422771"],["686f7374","6578616d706c652e636f6d"],["6f363865347e6b77",""]],"",[]],["5041544348","2f2c5a52692b5946495251595e643c42724a5b6b4c48366c5c3d4a33",1,[["647a30",""],["686f7374","6578616d706c652e636f6d"],["6d6775696c72",""],["7565","2878393020263457506b755a202e7571695c"],["756b326e6b646f7627","696e5d4e21297a432072232a67"],["627969632e646e",""],["636f6e74656e742d6c656e677468","3338"]],"75bd294432b47706fbc41912832737f86cd756e79bf61ea49fae2c4e35266c8708773732dde8",[]],["505554","2f555d3d654937732e494926582e3c53486143387c243e6468",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313836"]],"c0b2ac60a1b3b64fa8a41dfbb357aae2fd90d1b0b993ad205e99ad2d7cbe99a1271a022533a79954b38699bce4564c73fa50bc1f4c974b20b74342b3943602cc08ec61ca2bd8ce4c623880c8ecc2b6f146551cb65dc72e0dcd138ef43a2b524303199088c3556e34b66cfea3a82ce5dd83cb80a58e4f3b656a537987baa80f5f4cf35db7bf22e5069241331f46bf014feab87d02110d9e655b4630f9a3c1c841d2f959316075f16e360e228852ee4069162c651f04b32ecfe4ca",[]],["474554","2f522f505f593e216525416441504d4d565979",0,[["237a","39227d3c50"],["797175","2256095c285333234724"],["66656f382a756a38","7869095d37282d7130453b"],["696c5e332777766e6b6536","6251"],["2a6a6265673165",""],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["4f5054494f4e53","2f3c41",1,[["686f7374","6578616d706c652e636f6d"],["266b34396e2a3764356862","525a30247a64674a095271537528"],["67757466712e","5b55"],["737426743379797169756e","3d222f5250604235"],["776b34252d77","534d45555c3d50742e20755b"],["63","426b566c2e"]],"",[]],["614f65635f56","2f264f66413973666b216f2f5b6c684c3f295d2462325c332d65596a5c",1,[["6368636579636f386974","4145414e"],["6d65","59322f094d30644b5870612961"],["686f7374","6578616d706c652e636f6d"],["705e667e39667064393725",""],["636f6e74656e742d6c656e677468","323635"]],"048f79348ca98af28c583616b7fe1c27bfbb4fe9061726caa205d104e998b80c7966240a1fd648a55c09f9718f51d93836754135d2ab549b6b02b8c64a0d93d4c0e16ad353acecc6a229d6fa4851bde1a5e6830ad6dd548d713f27b414803f2f0e3205e9bd418da15e3f42e6544ac392e77cfcf4def8c439e3977eb926b21de7ffd69ae04b1b37ae5b1cd1580b3162b8a6cef82fa055452c290ef46f08352e2a31b87339d806f82e7c65d7715e714933aba2961c999bfb72ccde6bbac3639f018fdc8458f9ebd669b3643605fc84cb93e45b13fe9fe729ac89039d7663a4baf21b58534667cd28943a7572fec21609abd7a93a2028558ba897f07b0470312ace6c4c51341d378b6675",[]],["504f5354","2f45326a71386e",1,[["686f7374","6578616d706c652e636f6d"],["6968","273e"],["766a772a646a","24666c4c5c3569216c"],["346c3865707162757e74","53453b7c"],["7a6b797a","763d5f2d432a597277"],["6935387764756172696b67","404d2c475347426e2021607a2d635462"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"e5632fa1b2abf4f5d77b7c2caf2374eb810b2c76a6b59fb4ef2ac30a1dfd655cb97fe057c736b49ece9e69c796e0bc6546f650b5c43be00c01c08915e517ebad4832f3c8bd5a3084cf2a353b57918a2f42ff8690776479084563787848255edd3456f4ef4578b85ff04bb6a0f6e766236f87bd54e4e03ce2675987f4c3ab0aa203fcd4dfcae88623d04d6989ac24eba0e7b4999a463f12be996a9e8a77bffbdf5bb9f992fffc7214ab65436b1347bf00fa0e6d2a6243ad81b93be747671b36e85c4a5765fc9b0e162b2550602292ddeba7aff8981778940c9f0fd6dae1fa97caee97baa14041",[["6472602d2b","787a787a"]]]],"left":""},{"requests":[["474554","2f66695e",1,[["6a276b72787265","34206f635b5578347a233620716b7840747d697c"],["7662","377c"],["746860786362777238622e","7070226b462e6e4c2023244d6e30203b467066"],["686f7374","6578616d706c652e636f6d"],["786d76746567",""],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"",[]]],"left":"4c503721202f3f2120485454502f312e310d0a4b746d66553a314221"},{"requests":[["505554","2f515d772a7a716265437247624652387e324a2454283a5d672374567b3b",1,[["6267787c","744b09474e5426224b5c387809563e734e"],["686f7374","6578616d706c652e636f6d"],["79616136693436","4c0957"]],"",[]],["474554","2f4051736e502b223e742e775b676b69333879",1,[["6c79753372","3476"],["3067635e7265",""],["6d686779",""],["71776a677460737879","58462d2a4b7b4a67206d273968652a252037754d396c2a255a"],["686f7374","6578616d706c652e636f6d"],["62626c657839317434","633d6f423c31"],["636f6e74656e742d6c656e677468","313737"]],"a4af4440f83331902c7280982df5171ea4bbc0003e45720fe180511a92048a82f53296aaf7a8f6ed29a2de2424ca69c7085b1d9069a33ea3cd78e46a6b79333eeba3e957632a61af97b7d87b79729701d3e6bfab80e0f111b253b4b463a3ae9d4c6d2b92cbd81421591653d0c929fd415404a16a2d70dd6556ec18b3216cf7885c7e1c228d650c81c14cdbe548a57308fc7c9c1be87d91ccf73a29e51b32a1f865b6fdbbe85318902c91219cf945cc61be",[]],["4f5054494f4e53","2f3e4b6321666c5e542e63746173",1,[["66266e747a2526","443453662058344a5d416b70202b2f776a3e77377b"],["64633732732d","243d206f4a345539772046365a374b4a3f34"],["23646a71","686a6c58217a093e"],["687069","7a726d6142"],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"54b9c09132f8bebcac4dfd849de3ec764c7c1cc4bb9746c26c95156a16da36b7629aa54d99bee773853750681828aac474bd8d0ebf5b6641db8c2bb9bf69f672033dcf8f91165f6b390047fbc121f5083efb272b641cbbe367d9a329d6d23f41426153ecb60afe67cdf7d892c61f865313360b80ca37e2c77c4d1b247992a0b76e8b7c203ec9df2d2f61b691862c1ae8fa",[]],["474554","2f494f6a517d3327214937635e",1,[["686f7374","6578616d706c652e636f6d"],["6236266d692a387a2a7124",""],["2365217a217164766a","6f78454a5e2d2b2a2e2079216a20462f"],["6e737a69","785960697e7a3e250974"],["7271","617b614658574f37"],["766f","5a40454f3e5b4f6a20632f735c422063"]],"",[]]],"left":"484541"},{"requests":[["474554","2f3c303022704c4c752c",1,[["767464666370",""],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323232"]],"eb67e44a95c142c870888a77410a5fd151df952be5256e9c3c15e1957348020feb05435d61b434a42152e95d03cf6aea5f774cdeb65e4920b99b7862fbf8c23b0e39d0fd63b0fd3a27c2bec0bbd0568e4531138d401443421b39fc508e4295d458773007916bd14df9ae5c06e96b4ee1f237ab9eec48071ce2d55c84bac80eed5f0c657014747cc83ea78065e0f783fafaf4366da2f502fde716240bb759fcae6d006f3daa7cb26ef691e22227ca36d38a49e81db3e393ffedc5a765ac0a80ccb63c210200d381f7c48376cabec63a9b87a4beb7b48619797c683ed3370f",[]]],"left":""},{"requests":[["48454144","2f7a587966622b50462a263d772f796b416437567776643169566b46",1,[["643764762b6c","29405f55322430"],["686f7374","6578616d706c652e636f6d"],["6f2432","357b5043786253314d095256532d2e2e5074"],["787261317868","773c4c2d273d6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"98a3e0c22e6270816e32058f38893d51ef2b7f3118ca1f96a7c73341d59fa2833f3c5988c9ce9a14a53611f5d5b977f27abe3dda48a2fc933fc69f270de62a411d12eed7f7700cfd1bed0c8f3ca6f575c093e53977880f11997e8f5cd7dfd3c3088af61051ce47280012b4a436aaeedd2df3b114b77270141954f95e334a0c4c39a131a67c5aaf6487d178111301855673dbac199c359b51f0141ba17e8614475458a8865a27859ad8d798d19d05d1a47e57491de7bf3f673cb98e498bed317cdf78f1ac417ea47b7d9ac688771536a6896d7b5940a91abf9eb26d86bcd3a6e124d09b0c0e9b1f5a55b473969d55aaab925d1aef97a1c479ac79",[]]],"left":""},{"requests":[["2b","2f29294b4824",1,[["78392a",""],["686f7374","6578616d706c652e636f6d"],["3874786c7277793778306f","334333752027437c476f7b"],["636f6e74656e742d6c656e677468","313537"]],"06eeec78784c7edb17117f3998f08066fd83661472939cebfee0bfa0c8758cfea6b4550c755572648728e4964ad223bdec6316df405a1cbce74056eaffcaf8364c1e70e97b705af228f537c74960fc0f4087d1c6ea24ecaac424fbcc3cebebd6d12f3c3c2d791af31ac904cdadacdac28ffe9f6a8ae42eb31968a30385e03fd6182d6052906ba8b2350bf4334931049cc655377e5b9706ca754260585c",[]],["474554","2f65677e72716f3f322c47304068326f7d2c686557793a353d",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["5041544348","2f2678416d2b786a434a7c312b2e7b2242322c3a423b6774237b58",1,[["7463",""],["7a69316f78","45"],["686f7374","6578616d706c652e636f6d"],["266a6b6d6b626e697573",""],["6238313033736866","40626d264e3f22"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"3f23a4b384c9b241042256eb869f91f692b42af6b2606b5ea5aad6b3649d11fc8658b62372c56a8d43b10d602480728c5bf2636630af6d12de3d1b17cd3c94bc9e2cdc57c7fd41f93323236cb4c81c9c1179b6f2586c1659dd56ad3c9cb8e49bca05c4d056b7e0c10fcb94f93365d9dbdf99688b9e9021db595b19b775b18a5e743c915ab1e499bf7aec72093d2e18ba815a6e8d0ee3f7dc4ea58c2634a4bb3e09af395a972b349bf608ad",[]],["236c","2f3f5829532c75275c297d59722d3c42364d44314b",1,[["686f7374","6578616d706c652e636f6d"],["6c796d","5331202c493d5b793f38"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"de88e421ed7ff1046d80c253fc31f61d3cad39072149f5ccd3380f6aad4461aef5f14c31af726e1363c51ef3fca920dc8c5aa8421f7c19f3cc9077feb947d487c3c4a53f6091074b06a5228faf88ce3b",[]]],"left":"5041544348202f29226a6862422e6d4b7b624b372d72495d2f3b6958316b44493820485454502f312e310d0a686f73743a206578616d706c652e636f6d0d0a"},{"requests":[["505554","2f3f7176617077",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3237"]],"93b564d87b3125b4c0d94dec008534976cf7bceadc442cbfdecb43",[]],["4f5054494f4e53","2f",1,[["6e2662726b7873",""],["686f7374","6578616d706c652e636f6d"],["2178","7669616959433152"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"b4b8faeca65de14881b4317252e0b0b5d21edd0db691bb869c6464a1bdc270bcbc074edbd557a3840fcae6918d18a76388f665b5ac1929f900a747612d3cfafef6aea5bd4852a7452458bc6338",[]],["474554","2f5a2979252d6e",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"b51436a5762f8f58bbfbee064e5a4484fda0113a86416f4fc69ca557b834e3dc7137e873e695b72f61a2d418280163ceed5fc74646ef5d6d0832823d7954f971ac262e34ba3336503890708bd4ac4fde6230e1f24975914106d04c7fdb60232570b4a9cad0b76e73d7f951b65f49d9d36552b64c2098e0fd0f3e2e1b6088940a9f91b0a139e879e386e8cf5c52c7517c9a846867612fe618f3998fc36b08ff3013f59f97497e4e86fc33974b02cdc41aa4b6a71c8f0a47e39d3018a14064a39cb49b57f77c81e3445370f97a53384097c35c7c808738b0dfae8c94610f6e8374f65b728fc190683c576a07e4e37f4f55fb8de6c386749e5814c145463148456530f7c35c64cd8b",[["63696c6860236f","7a79797878"]]],["505554","2f5d454f77",1,[["686f7374","6578616d706c652e636f6d"],["36706c326f2767756372",""],["7537","7433245a096326093a"],["617a353164757c73",""],["636f6e74656e742d6c656e677468","313339"]],"767e05881241ab4dfbabb674194921e28a136c2cf215eb1f77008df6f844cf355a0eddce2f78eff35e33e85c792aaf04df0043cf13f025482fe8803dc647625d704329241d803e7c2bb73f962bf738e2eba0b095e59379e44fd5f7f9b95d7ab7a8ab76a917a3da2d921e7c9e9f205452e38c6a9474d20c9b484d6ef850f9640b9d8bb47e56711e6788bf52",[]]],"left":""},{"requests":[["4f5054494f4e53","2f607a3e2d512226582825293555",1,[["74",""],["6066792e6175","2131202974"],["7c796a6b387a3875243036","702153415b2f2271"],["736a6f76376b2e3339345e","38093f09622b"],["686f7374","6578616d706c652e636f6d"],["7337382376","26552e5d4b3320526f6663"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"41bcab64bce63b7803247ddb6c7621395f2edc9d403384313e5b906d0690e48d3f2639710436da29a6edf9b7a8bcdd304268e4166dd7eac5477bb72812b29de6111014b7902e893d843bc18db3879e74e3a8c523cac21048e439b6a6a5b11832f1fc99b50e45364fda55608ca38a98391b0e05cd2dafb7a453ce4dbf6a00a1c926",[["60603565",""],["31","7a79"]]],["5041544348","2f6f5922562b2569342c3c45",1,[["686f7374","6578616d706c652e636f6d"],["7476","742f2a"],["7874786d3773797c37","2b315b"],["636f6e74656e742d6c656e677468","323330"]],"8ba3270106ee9b7178de1c6c914bd36f28efac24b2663d27a27ccd37922d34410df037f9fd995d0c76e005b5dbd4cc26c994bb4f4b61a7a918ea85f18d3ab869d55f986ca277bbad5d1d6d1d788713c9940850ef33e7c9255aabffc963684c08ea46b8bb69d2296776347b114100932f33d65c2a8bd4b4f8866b1b0b68d29902c356a4f26f9a9be13db355c931cae829a63fe3aeb86708a75b62a922bb9a8c05b69bb79e9985f62f0bee007d83dec4ab2de944791c24257e8bc19a2d367c336a11126017842fc0070c3a8129f68f45360a5cd3ca10c8d527e8ccb882a41e9990005c7a24437e",[]],["4f5054494f4e53","2f27285058374d3274626e665d4c706160735d7633764e472a4a35656252",1,[["656d73",""],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323231"]],"37da36d6f51ce5262ab116c426d524a9cbbb11b7d3c0e804083291a042022026dc90449c4058f04f2bdddb03486a8a17cd313dfb303e37b4f11f3f9ab947f33a679aec138386ee8fb01b92a8cfdab617fdf53a3a80810f8966f774dc8f3440b17dd40c214bac7519765ebcd03f53d8adefdc3401fe90898e7b5d761bb5be191f2027ba971dd9f5dcb6e873f9c9b0f477dd610c01742c2cce3e010449de5cf5a3fdd2ed6cc4ec6432e054e80ac7017659b90e9c12ace5e080a81b3881d926c69c7bc391f57eb66c08bfd4cf176ee13c51a5c1cb672f083a5cfed73710a5",[]]],"left":""},{"requests":[["504f5354","2f",1,[["686f7374","6578616d706c652e636f6d"],["6e7166",""],["6d2e636f73","6b305076"],["68626f316e7372797a","69546f42694153096e095c454d226b4571"],["636f6e74656e742d6c656e677468","313731"]],"d5af6ae328f4078e90d3dab739df264441a55fcad924e85b3d2736e4e9b58985ae8854a7e4eb22b511082e6b2c521dedc3037205f3fe5c4a94227b5a6a2aa16413d836e92ad7f1d1123caecf17f95105ce4573f0927aad1a430cff5d41ab696902be97601e3829f47da1344d471bd8ff4787c9ebc7b26e837886b58c4afacddad7d9d2ca72406e491d6b3cf781b32956fc85cc35844e12e0303c1eb94107bbb88fd3467e684baed9aba9c9",[]],["44454c455445","2f692b5d5a2a4823287c714656666f4d7c",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323539"]],"d80397238541e4586e4594a5bef690013dabe6a9af325461d5ee40a21eb9ac8d5a6038902bfe75266d6a26300661befdea895fa80e8a89b1a0bf55f3f6dc2ef0e92cbafa71a2da180741aab3a95d37b67b9e774d9edbdeaca8f82df91e192ba3b859735323f7dc9750049b895a6fb86045702dc5768280f85a72527e3bfbc0373f0af406eded9d6a2a70f53bc31dc34ca25b0d14f57b74c5d43ee500d77a4add6bc36bdc7f4edac944773db4cca85e4f365c24197e2ee068453cfcb9eb2237cc5a1765e49ab3c2ba0edf44e76f9162a2217a608c343ff0c34b6f531caf885d99a0400f3c6243aa84ed21bc31ec42198ead9edccd439e3eb95cd92e82c2e0faa3bc5686",[]],["44454c455445","2f4b6f78793754265a",1,[["62726865",""],["252b7765672624236a","362b29265549097c095337313c5c6d586465"],["686f7374","6578616d706c652e636f6d"]],"",[]],["44454c455445","2f26",1,[["7a7462","294741406f73573b2b2059565b6d443920717d213a"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323935"]],"5159120bae5d5fa15e34822c10bb324708317928cb1acbfded7c8d39e4f8d3eac9bc3690ffac394b072cfc4f28b3102346b9268d505b049215c7b0f2b3c9acd63952e997e8be40d0f726bf9815f11d493f70bd68af7aabf1444e6076ac56f9e5b89e5792e1523dc0ae78666e7b94962efa11847c7dc7eb29cfc6f811e9227816d9219cafb223ec854d007afcbf7d0224956b4ac4a337f691d67a168ae97886762ad1e136a2baa6d019f408948f6ab857f3e268e956a16b9f3e48ece88c5d6bad80cf765a9f2a961059ff871595214183471c43c468a06e168de2ba325209e878a862902a1a4c92ee0afdc9763a3bc7286f43fdbd538af348983bcf7ef99dad4d2c636aaf5ef6483e26407513af2e541dc9dab566437d535d371f96c993db81c46596bafa222a21",[]]],"left":""},{"requests":[["44454c455445","2f42604852436465",1,[["6276","22634442505f206c546a"],["235f2e783567386f","7209217b672331095f365431"],["71672e64676a7a","3c7e4f36"],["2462","373c2a5762507d09512347634e356b7409392464"],["70253467",""],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3338"]],"c0c936e48dce3839ea8ac0cfbfca681e8b43157440ea9a1213fba32e12e32f869d82ced43a57",[]],["5041544348","2f5577706f65324e2b296a7042643a4b63535c58",1,[["65","4060"],["686f7374","6578616d706c652e636f6d"],["727960316a7a6079",""],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"ed31061b8fbacc4bb22f020d0912d4734a00fdd589e4616723bf02c302537a61399706cb2221c5e9d8d4b1aa0a79dc32d395393a5db655540e19b0c09892cb28b78bd210c2052e48c26fd2a72e1e12a8e06bafc59587404f4843d9a067ab06244af281201eef5401815c613b8289a7442093e78ee258e5d5064c519801f4e7d297b989b604f23ef633bf34af6c42bba185f8304d0f85da7116ee9f5a83c6136c33d245b09a96a1c3deb8609a4d0e06ca8f55dbf78ed7",[["30",""]]],["48454144","2f5f4c52265f",1,[["686f7374","6578616d706c652e636f6d"],["326676766369722a6c3077",""],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"a19ebb80912d7ab241ddc18b5d8210b4f1d848b2b5f71a87d2e838d88a28e57bbeda235c122b096472355a2704c8af4a78abcbee81224f4c939850c3ea64d1e7585ca1aa6a8711ec9461f9167ade0bbdee0f0cd00e5160570890711751ce4da9ebac755246c563f1a70f01adc945d794f005123c85fcdd68ed0a2aaaf7490415aaea75fe47cb8fc62ae8f29bfd6e503e47d1e92ed15631f9e0476dcbf3c9a1ec3aecee",[["7a7877",""],["7266","787a"]]]],"left":""},{"requests":[["4f5054494f4e53","2f2a585a39792e79565667615e66",1,[["686f7374","6578616d706c652e636f6d"],["63236460237e67","5b4648234f79207c2a514b203c60"]],"",[]],["44454c455445","2f73634c",1,[["686f7374","6578616d706c652e636f6d"],["635e33647a7862673272","774a3c2064226b316f35464d202540716e4a285b"],["7a2b7339","452d204e3e5658762a22205f4345793a3c"],["616f6d247870625e2e","7545"]],"",[]],["44454c455445","2f4f6961297c5b3832445463416b7276545731286c6c6d77287e444448",0,[["686f7374","6578616d706c652e636f6d"],["7970","5c6809396d59582349257b"],["612d716265667e2d",""],["392e616221357774","7c75203d2d2c34396c443444203e63743f5830315f30"],["256a607a64796b26602e","3809647b4b5f4a"]],"",[]]],"left":""},{"requests":[["48454144","2f79464f",1,[["686f7374","6578616d706c652e636f6d"],["63637764356f66686e","527a6a382e46475e"],["2669","2c7d555a452c"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"c0882d9cbf403317919ecea0803b26eb2628785608909d325f4cab39723a236ea622663142c4ea3594510cfd72b4660d1f216ec909a0bb9613736c7d191eccf57ff620358591e3120d005137ae1050e92846201e4aa4c308be811fe772df91062da747735e69e5837a796db8d1f60cb913803b66b1ca551bf242bb2685ec53db0901e0fbdb1d1defe0c1e25adde1636f962db0dce8e115334e19e8732db1f75a719bea0b8d265e49c944e56867d63469f53e08d0d77bd411a93d580ac6e7d3f4d60ae7b2e394ff44538a42d4ece35d568cb7e753c6417472a77d7753adb9f784cff546d4786ef50091fd02af558ff276f1cd2bbf3d0c38a0c020068fc7937914d1f4dc7c84bff9a23b55f5d0bbae2a98eb9e812d",[["642d276e6d5f","787978"],["63","797a787a7a"]]],["48454144","2f693a",1,[["7a645e67216e","25354d2720264e5a59"],["73795f",""],["686f7374","6578616d706c652e636f6d"],["6d2b7a636c716862712b","626f676340514a3e"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"",[]],["5041544348","2f6c6f2c4b37514a334641455d6e7a42436c7e2b77496e4d75",1,[["776a6f68",""],["6d736b6666",""],["686f7374","6578616d706c652e636f6d"],["327734665f30372d","5e704a234c5436272041424e302874"],["74656471","6b7a275156273637"],["636f6e74656e742d6c656e677468","323630"]],"76043ea007e46255c3c2341de49619701467790dc73c5ea4d5de5b0de6d8e907defd68c6e0b5a1598dc5c458c24f8d18ccc543231dccb43103d74bac8e8ce9ed97f134b91c3746b28b4a0c2e2c476fa4e2d3e53b93be4c59d6d2e8db37bfddc91369d3bb5825b3c052d8d2bbc96d7e6be71bff25922fcc7c109cf2489787622a7f3dff45ebfad64146bbf24a9e7ca0af212e63a045485d6b3a2a02cab15d8f83c17841417533dbfafddd371ae288f60c19c9edc38ad0eddc8d1dc6d2692aff0deee7f8d74a12d7d7955a542dcb1cc96a9eb254c0602975560daf6dba0e49f70d87f9b31e78f0e7b9f9e8adfbf7871385898b215815302e51798e836373d6b2080e827cbb",[]]],"left":""},{"requests":[["44454c455445","2f624a244c3256606f",1,[["6f34356c","593159307e"],["61736b6275622b322472","7557607324724247"],["616631246a",""],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"cf0b6ad4c50cb2e892c8bb74f69770b42d6b658bd0b6c204313e4e3b1c51a94572bfa2bb4645d6c56d8ce7149d8a497f3cab640e257040e715e62c28e908626059ab10e5954511e074a540cd6a6d0933f13acf9116b2bc8122a298a5434b63930b49b49899dc5082d4900f79b23cec7eb35871f8a493d91c59ccf3f5eb86db43bfda5432c9bbc9ef2b1559f2d2bd715a1bf34642dfee25e4e7ca9192861d985cf11c08db03bcded747d334a16bbae0e0473fdef6810bcf5b742d935a578bffe48872e94d6ad6f95caa04fc0f8b149b9902a109c4de99adefd3f1da198173c35dc79f8937f12145c1fdc0fb6fc59716f4906c31f70ba4863b",[["73","787979"],["676f7726666f","7978787a"]]],["474554","2f3c7165795e6b67335c7257286a6b5e4641",1,[["363678","514b092624092c2e665879"],["78",""],["276a27606b6e62252d3625",""],["776573306139776c6431","607e5436"],["686f7374","6578616d706c652e636f6d"]],"",[]],["505554","2f7a323f24623b733b69",1,[["686f7374","6578616d706c652e636f6d"],["2668636f6a","557d522942447327"]],"",[]],["4f5054494f4e53","2f533c4b2a6c39763d485c48607a4a7d334b405e575d257b7661354c296a",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"b3c0d2d18b9f7b423faf552eaf283a25325ff661db5e371846bcae21effdbbbd961cade7ff3c52adb39a6ef1aef1f6adccb2f7def664fd19f807262d6bd9058a9a7eb5a370a7c912730c52aefdeac10e99bd661d75d21cae15ce36d5ea4be213b41a6601",[]],["48454144","2f3e69287670334e2744673b774b555e6276773760",0,[["686f7374","6578616d706c652e636f6d"],["6177372a67776825","5938612056503b"],["3063797376233438",""]],"",[]]],"left":""},{"requests":[["505554","2f28394b58232d724b246d3a223c344e",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[]],["48454144","2f44306f324d34607a4052",1,[["686f7374","6578616d706c652e636f6d"],["66732e7570692368","33595d796b7b51"],["636f6e74656e742d6c656e677468","323932"]],"f48ab4c80744a2db77b180081296a8fccb92f0b4763a8db185321f1eae580b7429b2256686fe00590bcbef9b34df4352020f034d0b47ff8d71c7f54b8e3fb11f5ce331e01c1e312bd2d23d77b92633be1b30c571c7e0f1566e023fb90ceab0cc546f44c71314ebd70f0ae636b7b3f2ccdc1e544483bd5ffda77dc00f1860c15224fbb83d08519e088a95e4f8c429c315634fc07dc41bdd3000d800514f172ab9214c7cca4e2f4bf9ff8e472592a354c465fade4576f4e26b1b20a565e39df0c21d0078c08ece926c6b59127ab08b5f5e927963bbcddcfffde56401c0ffa10f0b534dc6937255f52d86f1052260075f76ec8723f3abef1afcc7b300ec4ee5e8d3e58bc6b2e8cd12c0dfb12d5be3b17b0ec3570ec6fcf9a4e490feda9e605f3f0eeef78a23",[]],["505554","2f5f233d39665f334c422926",1,[["79672a6c65616b6272772d","733d20722a44"],["3566622478377765","636a5a72784b78"],["686f7374","6578616d706c652e636f6d"],["32",""],["79782e3564327770",""]],"",[]],["504f5354","2f7c362a2560424943475d6a2c4e6a6b5252583f4b72236260556c6f",1,[["686f7374","6578616d706c652e636f6d"],["743970",""],["63277a6878","3f6a5e646b4d7c517d095d09276d77614c706161"],["366a","522374610962356b5e"]],"",[]]],"left":""},{"requests":[["505554","2f7e284274406d4c56672c786f6240596b4b7e",1,[["3972692a7e70615e7567","76613e5d3b4472445e207b2f2f3f"],["686f7374","6578616d706c652e636f6d"],["3834787775","2f5a3d47792d2b6866092a794909385d5b"],["66","3e6c20307b5e7e5a477a48"],["77696821","7c41492c3709447a4e665a246c092f5058704e6f257d"],["636f6e74656e742d6c656e677468","323230"]],"d7b334b2916d7ea36db750de7874f2c5d0adc11dbce4fa92b4b5c7a1b341d8148dcbd40602a5c1270cd38cec2f02b11611c961c04f969e7c733963f4848b1e042488401743ad1a60dd16c28c672ef940959120cbb22f9648f5e32d4d3f54bfb3112d48afbe48bbaebf529c35d3beabb13e985d9d7ddaad5b2fddc9f761d0333de214f78cf96e59a70272fa1fb9a835ff34990490ab0194c8cce498fdf2dfcc810e4e8b40c1a20e71a87a19a878795fcc7e16ddb9fe4419a722e0a45a537631b1ca401154a7870b1b87fa3e65e92c702aaaaad1303ef34ee3458c6474",[]],["48454144","2f254a3556313c454334225a222b493a7d",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313534"]],"91f2caac27040f2a69692f88eb4cdcdc0c6c5df797f45938d26967202d6e8c03f9fe38e78bf2ade834e2227185e257dd0cf7de1c3e049188c737211e994d958be2c5d6331e58328126da3ab03a5c6c0cb26c2f7a3da6e6fc25ab059e9e53e9c2a6b2e7888bc53d462d945c42cd95710312e93a42f03a80f51b434f1985e7139ede7a08c7b4048291cab36e04874ab72de03766dccab6bff78989",[]],["4f5054494f4e53","2f55744b2d5f64572846633d58214c6239526f315e446349",0,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3638"]],"90a80ad3f831edd4ccff1e6186361a54a45bfd373bc2fc6314875d2ccd01cce2e8fbb561ff26ddeed264f0d56c02a5f4d8bb6d067980ccc932950e1039367d5b44c2e39a",[]]],"left":""},{"requests":[["5041544348","2f5133",1,[["686f7374","6578616d706c652e636f6d"],["75653475","56275f736d7958420977"],["66766761646f387569","6b342e"],["7e7262","3f3e"],["636f6e74656e742d6c656e677468","323530"]],"0ed8abccd71c4b6b291abb4e063a96667d771bbf1006e4e3cd3828d16142cca2d0fb7fbab061fb965a4a6796e3ad80be9c95a414cd677cc3e36f929b7e6f078ac679f91246d5113f0bdb4a624ac2049c0f08c7aff3e9eeae5cb18cd949f8d650122136b828d9118f99d0a08f135ff9caa1b23ac6abed7f1e531874d0320da01b91858a02ae16985d1d3ea6b09f1f80461cb5f34ee45b9534a3677fec49b07a6e69f4177ec4d26a7ec1f9855e89cdbcc3a22f8c512d2db7a7ae63db34ec941bf7438705c4bd3ecd06ce78094d7e966e0c1f032f2911dd3df0e97d2dd077b706ee50be1de229dbcee4c2d388762c0783f8679bc7db35b2cc24055e",[]],["504f5354","2f4e3161536f4657717b443e496231535e722b4a30343d74",1,[["7869637966","436f09486b2224792f553509672c625e7d5f"],["6f7a79757972773779","6d6c7933296a20414d63492c3c6a546d"],["68786b6d6a636e77","2f600921776b724248"],["3877642b","5e4e5d54666c62096909432e"],["686f7374","6578616d706c652e636f6d"]],"",[]],["505554","2f25326a646668753b3b7262",1,[["376e35",""],["5e683538","2a30682043"],["686f7374","6578616d706c652e636f6d"],["7c","76414b516509324c50"],["396f657833","633967644f77204a24597a7838424b43"],["636f6e74656e742d6c656e677468","323233"]],"fa9e1b8fd3a7260145bcaf6ff5caa5f904d624150a0bc984b435882107877102d6325fa6698308594a44ccd56e8449614f96b1bc01fe5eb33a54523b7ee2201acbceee5f83c00deaa93380f605b098824c7c26cca9364ab4bac7b7a05672345f682eb53216cb8a2755524a5db1e2a5706859edf94c2947510f602f4f0d2f999f0ff04e94b1973f7da55c8c2306b1aa6a10b288c544008efbf777209d2f61e59f7486e662a5c8f0ca2dbd124eb65607e2a58c7d68addb58a556d26ca2106392cd781e480c63af8017dd773f5b6724ed685dc6af183e3dbf032a139372291f17",[]]],"left":""},{"requests":[["32","2f574879214e76233f313929503278284075354c3c",1,[["7a6b696363696f2771",""],["6768775e5f79656a75",""],["63606b77716b775e","5f6a5d303c2032634c284560657c2f"],["6e305e777e5f72625f","3b5f5d43"],["686f7374","6578616d706c652e636f6d"],["6362266a73",""],["636f6e74656e742d6c656e677468","323435"]],"124593173966208a3582ab62257c36cd7fa8a62a9cbed77d508575581e29ec7f72c4d07fb6229a3abb114320d0e11b7f93b5ab30a43eb533e515c1563b75d09b36e47493711ea6c80391d2d2fbcd319257325ac5d0f4b66345313730e0cc9a34224f13db33520d64aebe424f4b079f20f63e03e9f0b4ffd0b2244ac1aed9127ac57cd3c2698bde5cf4204cc886daaccf84d81860d0d86d1221a092fc283ef8757f310c3781c4839863bb3c9abbc9b8731e576f6921fbb0b8732110d88409850b863bf74688444bb752728c0c2d745a15059d2ec2b9229be8aa92433aea4131c2a0f51d95f020828342c3f054c66118167d0a870155",[]],["48454144","2f347d295769433d2d5f735b7953446f",1,[["256869",""],["6530","5a3e33"],["7261713066327e","432c48592d647409423a53485a717d29"],["6a5f7e2e72",""],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"39e85fada08109a6b8b5dfdd3ac6315a804f08bb3ce82ac14f3c809907c712e3c7971858a471c58eedb530877a63bd596971cd8882c071b59c80be7c9f7ad0e6f717daa5774fdd613ae3f531223b2b7367d2fb98c5a27b5340f9846906654ecbc813be9c0e8af83278e2025ed83014aa28b861ace5edb0447a6c0a5b0d2079dafdc20805633e16da707774e45739c52dca2b6f6ef6b7fd12f52065",[]],["62","2f22313d33705b31745b674a5f6f2561385036212370495c43504a30306e",1,[["7a72696f3432","3b775849783f3173"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["426c","2f26",1,[["6a3465306c6871673963","463a6b6409557e"],["713023375e75622a256d37",""],["776d333927",""],["686f7374","6578616d706c652e636f6d"],["74342b","4e377b797363692041345f5e5871474233"],["79323035656c6166","746430205f41207228727362604a7750"]],"",[]],["504f5354","2f707d584825405d267b3134584b4e4e3a356d427c7034307b7c4036",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["474554","2f3e48435d53",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["44454c455445","2f234b62617237555163775b577923407d58342f29687c6c",1,[["686f60","57222820415e375a5f254527"],["686f7374","6578616d706c652e636f6d"],["6a716e","64"]],"",[]]],"left":"474554202f51232639336020485454502f312e310d0a714c6e274f5e3a09635e425b35730d0a2d"},{"requests":[["44454c455445","2f513656",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"",[["74676f6b786d72","79"]]],["48454144","2f7a505e7d415e5f2b7a436e3c73275657325e6374",1,[["2e","2625437849304060"],["21743131617a","5f79395c22324d09583e2277535d"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["44454c455445","2f544e4022462f3c63",1,[["5f62646c6d32",""],["7769676a706d30317139","42"],["686f7374","6578616d706c652e636f6d"],["71687c795f","515a"],["5f","33"],["6d3073716a26693525",""]],"",[]],["5041544348","2f434f5c5f4e31604f602348447a3024387d51782a705c336e4475",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323830"]],"20b55a6e640d576cfe907a8607cdd165c04fa328c4ee14bd54eb69562699dbb75e2dabd8484566501a783d13a33ac8ac58f896c57597b1f40e89e3036fdab57a29dee62a6e4e78d44e44269617ad40bf7491aab8df7283042727e945e3e85caaa0174b49eb68c408a13a25844f11a0d18722fea1e5f04ef5934e68a372f004693c4a89328415834d7a98f4aea5a8ad86e1b1ac08f7727c9c7f16cac052908aad693c09e172e381344f10ea58f833160c93e2be9a6eebcea0fb1c67dfa955a23f0aee0a7a803206cef52cd46a2394f8924786346a8678622f4b22cdbf51bc26b3da52bb504dfe4b9765e1fd60bbc76f7b860a5f9b33e81798e34edb582638261cb238a00f4eadded50f302d18715ba495872ea6d9526941cc",[]],["474554","2f5e5f517c7b637a632a39664a257d4b67682f3568477050405f73",1,[["6860","52634261315c4c41"],["686f7374","6578616d706c652e636f6d"],["666223312a6371",""],["6b","7c30577e204a477750532568207d4b5554392f"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"b3b4496abf1fa7ea02a614752c058509b6e779ff288dc83211bf7fd9b1e314b99a71b75812271b27508b29a4c74b510899c01948bf83b243a3a355db99bffe8d880322cdb87252c696838b332e131e3a5c8a4c6f283b16b8627b5d89d5eff4905e9a439d1619507b7f39b09be64d12f1a934d300834628c15186c2e98d5b9513a07834057b6f07809df209e2ddf6d8",[["742a72",""],["67377779672b","7978787979"]]]],"left":"5041544348202f3d472a62433379532f7e313e3d6c2732503d5a2865522820485454502f312e310d0a686f73743a6578616d706c652e636f6d090d0a334e235067503a204760692b5620784636565820553a0d0a6c7435684c76313a200d0a2a52242d6f244e3a51712e655709443e4c72516348667b0d0a436f6e74656e742d4c656e6774683a3632090d0a0d0afb599abf88be4ac724784753e11cff17ae73443ba28cd575c12fa7495cbf8020853ca03aafb2b0ad"},{"requests":[["474554","2f6344",1,[["686f7374","6578616d706c652e636f6d"],["302a60707a30","24444b526a67"],["636f6e74656e742d6c656e677468","323838"]],"3613a3638353d742034bd081b3428c6fcc71ad55942dc192ba0fa4c0341ebeea99c3a64d1d33ad03572a6e6b23e5ef31d785f6b55135cd5bf0c79739f24feea3aa4ce87932106a6e84d48de6215bfbf5140cb64adfeb2822292b58184a05f14e00f3d323e0d5ea6c3dfe4f2d2c45f145e07866fd73263d80a74612736dfc65892a9249f7d2c2dba21e5788f75315e02bcd214959b8977cbb6a01821207d2f1f9fb86f1e3cae4d5bad51a111bebbd94a1e28d20e21acee3e923c8f8c646524d23eb60401624b520730d90e7206f95be6ecf87de5e88105178b348310e1cd60511c1b9e17a76dc2a08fa08bff274b015c6408c63ca4b0f11b7952c058f747705e1dc5e91899ef0b18d2310eb7e57aac8d5f1170399892c2abfe4083fe668256b11",[]],["57236879574d","2f2b6f25403e39493044632678315b763d5874375e5145",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"f7bde8dbdd2c47f30c0e3a3a576f2b02d8a5da0f5f43cb",[]]],"left":"48454144202f59426d3720485454502f312e310d0a686f73743a6578616d706c652e636f6d090d0a5472616e736665722d456e636f64696e673a6368756e6b65642020090d0a0d0a34303b63636363620d0a8fbfda3cdd7016b11f35695ad4b62c2136362907e0c9479a6d35934a7b3ff32b6c9333594eea0980583661d95807c740b6c664d0fa84ace12ed0296a43f1a16d0d0a32370d0acdac9e76b67e8ba54b89c5da80ed0df280dc0acedae7a0e89b40e2a66ac258cd186acec17578100d0a3564090d0a88546b5ea093170a7caf4d7502c8f4b975951d9151470ec04d3925f90c0e92c8b76cfe72909fbeeedf78de2fd27abdfc43dcf090e0060d4603321daa9266077367103d8fab06aa19"},{"requests":[["4f5054494f4e53","2f736569584e5057283a3a3e592e584e5a742459564b5e4f5977432e2674",1,[["703063",""],["686f7374","6578616d706c652e636f6d"],["792e72696d5e766b687975","284336"],["787e6b786b6c","68623b493f71732c23"]],"",[]],["4f5054494f4e53","2f6141523d5d7a29736f6128302c32677c786a772f656859556642",1,[["2173676a723978","3521213b45623b4d202220343b43672b515670"],["686f7374","6578616d706c652e636f6d"],["6b786163","766a75525e"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"5074",[]],["505554","2f52772a743f3f78423e225122482d7b6e25267749705d59",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"db77db0e158eb7f1",[["6e70313962",""],["76766676","7a"]]],["505554","2f5f787843652d3d716851795954274c7937442b635d41",1,[["757c2679726d6a217a7460","6d6141692b7b207d2d4c6d2b334e533c"],["2d","66796a2d0976416b6645"],["726c6e796876","6a5f262d5b096f7b405668535d094d26264e3963493b"],["276030","6b207a7967653e7e"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":""},{"requests":[["48454144","2f466458496b5e313f713e6d2f7248322a5d6e",1,[["686f7374","6578616d706c652e636f6d"],["3726345f2767","79455f2921202a"],["6f7773666a79787867776d","47663e446f23433f60202b49"]],"",[]],["44454c455445","2f4a487b573d2a4f7c53673337",1,[["216b79","36313e20613555582e296557222034475c6b293f7b46"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313633"]],"d9ac0ae39291d59d0b74d978c1420167663e6a86b53f84c590dcad0adc25fc1e2c9d871f764b811644b65724daea417aa340bad8e10e69499b6a2fe9972fd3cc4cdcba2a7b42bbc4139efaf24f4b328d1c952117c72adfc74c749322c09403bb58eaead54f6238dc194ebca866dad2c3e53d7c1052b759213e0e1d880472ae1ef100a3452de128a39c7fbd27033b2ee2fa38940eb101ee7b6211dd765f39aada6b7e22",[]],["5041544348","2f304e3b75433478",1,[["2721726e7068382d",""],["6376","284509782268"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":"5041544348202f727b7c2b714d78367a5120485454502f312e310d0a65706c6f3a3f6a424b2f597a564e20616f285e24434426205333765055383829200d0a686f73743a6578"},{"requests":[["505554","2f523824596065602a6e4f762c2c",1,[["6163765f68","3531253f7d64"],["686f7374","6578616d706c652e636f6d"],["24627a775f5e","5669347942675c203f2852203b295146"],["6b2525746c7132686a75","4c2858"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"285a950c2f720c0b95f69ff3ec907eb945fa8c673c0f4428bc9a74c12c8a494392632b41ca69b97abd21c99ed37298dc5121e773271d365e68e0e54bed96385184780619db84bebc780ba93bc2c807629a2eabbb6819ac16f2d47d519a49c7999206e082571a70dc37ac4bba8e4580f46d449a7a4e93cc089c55287052f1394249c2ca442012cfb8ca39928cec9ed98d502376871bc0efbaf01b08277d7b6f3a375b46f3810f7087d632b0dfd8ab7c58dcdc08f2e95fae99e0797dda42a7bfa556a1eaaebfab39d85d1ecaf44918b538321bd1931dc26f4631dc92b48bb4c5802be787b02f8429e2f45979e71bc10a810ad7c0dad8ec478721cf2f600ba5eb77279c1f8f3b14a43d403688eb70d2da3bdef59b3c627b648bc5f47cb038605cee4d93954fd506021096b6eeef60e24bc23898ff63020a20ae2b770aed8f60c37f5e53ff1e4ca5f8f9889ae4a9c36c1c83965efa9e88312ef514f8047ed37f13aaa0bb5290143b9a0f77ecda17b72e4e66b1239ce7",[]],["504f5354","2f7a227a5f7457575a407d576a59392f322f7a625c3530492c",1,[["6b216d696f267a6b","455d2045432944257420264b707c"],["6676696668743426","344b28205c70657349"],["7a39","42377e"],["686f7374","6578616d706c652e636f6d"],["7666706831697a787633","564a7e446709562b2f4972095e3c50"],["35656d626b6431755f6b5f",""]],"",[]]],"left":""},{"requests":[["44454c455445","2f442f4e7b226d4a",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"6616aad68e57b43ec826876cb3bde107fb3a07b36100cde4018b9b5bd6755eabdf68f0fc5c4ba96aef8c60322e2f90c5bba72ec15f0f384ff4fd67b152d2bb3f889bbe99eb9f710ca451d5290bd94994288bdb12b8478b4faae58b4531d21c2e3e3141120720d2b7af7d1ef32d11aa1e6c91dffdfa010a864f276531ab66dbdbaf655fb50d4f29bfc76c6f80e661e14b87621a517d",[["76","78797a7a"]]],["26","2f247874472a272446",1,[["686f7374","6578616d706c652e636f6d"],["766e3576","62365450320940094a592423"],["68756d74627c6e6a","335444693c7664204a2c203422577762443461"]],"",[]],["765430","2f5035366d3e5b2c76556132",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["504f5354","2f2e2f24323b3360513d26404e5070363d686b3a502b3a25",0,[["686f7374","6578616d706c652e636f6d"],["7a717a39",""]],"",[]]],"left":""},{"requests":[["5041544348","2f4a3e512a62236641344d214f5b",1,[["6f266f34792e766e","3421095b6b6d432a3947216f09564732"],["686f7374","6578616d706c652e636f6d"]],"",[]],["48454144","2f6831752676404240795b47715b3922697c3649733056763a7a",1,[["3777","632c3a787d57335f42205622256e"],["64387638","2b493e6b20755826204f6f5466"],["2b32","765179"],["686f7374","6578616d706c652e636f6d"],["675e6376766c626a6f6969","396c237c52773b"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"b66017cc3880f48b82899f194c9a7eb38bb365baffa747517e62f363d3865501d6c2e4eae7e15cccf62b6fa6ac3654a87e39251064537f3b162c17d55555390ed39b99284600abc43111add7b80ca1798693e9b3db99dcb9678e2234f142c838b37da5a7972228c8730c33a1351dfb7708136079e10e6964f96b81173360131eabd03536897e602bc5c9060a47c943d8405c051efd71b7c9799068a710fcefd288e20736bc655b1447826231cc0190c72a14d4efe3b8e7becd59b6f8fa0226c65d5fa58cab69f0143ca0290b9d78232bfc3500b05148fe9a527e39b223ef2c81b456c276b72d244cc4611ddabe73bee9c74ceb7eb40437ede22f26415b0a397e9d6fd0fc740c229490a4307ad5e0d277e1a5f3fe2e29a249ecd5d13a2193995a523e1d190096c201ce22d3891b95",[]],["505554","2f",1,[["2e3324","7b715e2b7d38492736"],["726f765f79312166","4d312c5b460947604a09696662"],["682e236479303876","4c73756f"],["74607162267e","3b71765d2d6a752027"],["686f7374","6578616d706c652e636f6d"],["6b3662693227","5b4a7d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"af19c00603bec5e9bf96b652d91fc300f57617086d9881ae253ad9c4d7673b8b72cc97930feebdd0fe52a1018da1495be333bd1d102e2d34af3f6cb27e22dabec682e215c2a7fa24e39d921f90c5d639fe8bfcc6b4f4f29e8c9e28e2bcd8a392af0e614d1c1b1a800a52a3c2cdbcbf74e316a8a4c14d7e9b507e4ce49ad32767ca0d9a5b915e3b55ec2ec2c5ddf7feabaaa647545a05a14d3f820d34d7b7235363cd0a9cbe10062bc7bba76b1e779e0d3a129adbe546f160d3fea10f4771d6280b49bc",[["68316e736223","797a78"],["6331617335",""]]]],"left":""},{"requests":[["474554","2f63447a726a41355c756b6e5d362d6d5f4c6326637a2946",1,[["775f",""],["7677716479702671387563","3a4c563a3e4b577820362c5c7b20625c7c2d2b77246e"],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"74c9e058ea381fb99f87cf8f9d282fc9c9d365f0167faf503cbcea6adad4d17ed2f28a8ecf22a686b00d7a7d8b05abd22f9f041e57945b04a5c4ac5c54286be0406496a6aa06b10f139a44fbed52d7016447c2c9eab4b67b9bd935e9a999dfdcc28593d8c27f5f83bbc9936bf00f4e99ddfc09131a97f9bf3d58ee73c56ac67938a5b0c65907170eb630522d9ee912fd990990f574761c0a314bdc8f986620c27d27bf51b917245f6c9b59dcf6c373fc13e47e9b7da3008cd040d00b677f",[["266573707a6b","7a78"],["726e3573386a","7a"]]],["4f5054494f4e53","2f6b234e4f43",1,[["7671302b6a3071322d6d","3c27796043376a093737"],["686f7374","6578616d706c652e636f6d"],["6063677c25",""],["5f60616b","49336d79205a2026"],["706e",""],["276562376d61","4d5754595b546c542d20715d"]],"",[]]],"left":""},{"requests":[["504f5354","2f26292a4c3d7e",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["374530262a3653","2f4e713a447162446a7278507a4d672c5562374743",1,[["3832726f62707e76762525","2a205e625136397e563a26"],["78396c6b6a6073256b7a6a","777b402e3c6d6a3e202456545656707a"],["2b646267327776","43206d4c7e"],["6b6966642e736c","3d5633212a7b622a"],["686f7374","6578616d706c652e636f6d"],["786335","6c3a7529362f6c0932344352597d6c39"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"9ce6eaaddbaec81c6e726dd4f9f21218fc989edb36df8d17995b5665ea66c15784430be8583488d54a68d6df0b86",[["2e2d332166675e","79787a78"]]],["474554","2f5a7c2c2e34",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3138"]],"e6e1dbdecf825dadbe98cc2f2d2dc2e82aa0",[]]],"left":""},{"requests":[["44454c455445","2f772a4a482272705b",1,[["637e307978686f6f","753f385c62264e4923"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323638"]],"afb20e971bd6e414ddc3369b65cc94fb27ee18ee64d02a4c550d3198fe8e555a1da044c4da75445684a628a87ba709fc4f2a61d09485973473070f2657cbb7b03a84c802b4c03fc720aedd0ca1fd7c2a66c63ac01a7b1122f339388345acc401aeca4afa57279b16d464d0ec01cb36bca961f88de29f54b39876b173b4410dc260a6253f3f2d1135a7e06419050cee2b33aa63a611014a02a8df110fb90d74f7f0cbb497ac493e405f5bb6c9e9fbb310832db06cdd63b697a81647e5c435e41caa8f62f0cafadfd7e56a259056a480e9992620ee2563d44df7449ae0d15c226baff1cf017471f9716fb200e055c2300630279062fac7c3df8270592718fd0ca1698bc28936d7786b3a8fe105",[]]],"left":""},{"requests":[["212376484a2e","2f265a2b51706e7c4f703164693478",1,[["7162766a7c31686b","39347d47096d610968372d"],["686f7374","6578616d706c652e636f6d"]],"",[]]],"left":"4f5054494f4e53202f39796d3b33286078723372747b7c76287b792669462b46336220"},{"requests":[["48454144","2f35",1,[["6d756e69653475657a","3158093c68095f285d"],["686f7374","6578616d706c652e636f6d"],["6668776570","265c560942674b655c3209307c4e2625464a"]],"",[]],["44454c455445","2f394768453f7b693b227a2e3f7e3e237a693628",1,[["60707e78","7750203a5e40795b28352068354f7240444450"],["686f7374","6578616d706c652e636f6d"],["7163732a6c","7645096c"],["6b6b736c323224","6b09277759095c3d2a797b"],["70706f7c7064736862606b",""],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"26f511227f5b05f78d18842dac9cce1132762509781aae23ce124bd4ff8a43c7f2b7c0919e60e6a22c4953077b246c4d0aec65c526800787f32ffc7c41326641c227bd11df263cf0473285213e1543cc4dad19d5d2d1a09fa556015581bee9d5999055f3b8d4c106bc58daf291c2",[]],["504f5354","2f7e686572277355367537",1,[["686f7374","6578616d706c652e636f6d"],["706f6c6e23746c6b78","493c747377757709693e2947092b"],["66647e6f78757263216c","4b25402b795a2054485f665c2e4669"],["6a7761616c7e","50777268315e2420267e69324d51"]],"",[]],["7c59436e7833","2f23415a253a794e5f2a644c466b7d544d28",1,[["686f7374","6578616d706c652e636f6d"],["665f773231387e607233",""],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"eada094e0be092541b82aa352065eb93998588798064aace73a2d2334f42670b9ef729d4b5f1c97a",[["67707c6377","7a797879"],["6d6b",""]]]],"left":""},{"requests":[["505554","2f5944434548",1,[["357776",""],["686f7374","6578616d706c652e636f6d"]],"",[]],["4f5054494f4e53","2f635f70",1,[["667839","732c4d5f7542757a092b4d40"],["6a325e73","40443a3e7b3456267e203a6058"],["686f7374","6578616d706c652e636f6d"],["60723537","6370436b406909344b2c"],["2767662e732e3868367833",""],["6771726f786865336f7168",""],["636f6e74656e742d6c656e677468","3835"]],"9d14dc847b5a140a79ad30e6ec89f44624989f5ee066dce775d868130be5c42ca928410a7b70e823222292245aa729b114bf65f4c281a2b4c7a319564e70ff8e2612523c9b033462fef8008d4ca271ed542732a2d2",[]],["48454144","2f65433a3b2d707758482474",1,[["6a","6f20544a4d35695d5b7720762934"],["7539653539713274",""],["6476697e76",""],["666175302e69796667",""],["686f7374","6578616d706c652e636f6d"],["6a","706c09757a667e57467d543f"],["636f6e74656e742d6c656e677468","3835"]],"c02fdafeb2b01ebeea308cf118a8633e0fad80f9f07f1ae9c2c809b2ffaeaf3908f8ae819e557701aeeec5e54e3508063cbe6e86e29c5caaff9fd06e84b71cf5c7c715f41fc7207ffbd897f208859eae9419359ef2",[]],["504f5354","2f4161405959412179507a643555763a632445594f66",1,[["26766a392561","6867577b3d6943792077"],["75715e7c2723235e","5d2c792959202e4f"],["346c76627e",""],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"73ba4ccc5ae700e934abf568b958f155f9a920330e98c184c9bf6d955ec6bfcffdff5bd8a7bf2f967c90b0cc0ec97624684053fc3508e7916ac43612fe10a525c4376fe4fd351c2aa4da41f762fa12ada99f2a039a0d66148014992d2a87c5570a0ff501873fc88a67cc1645ba2afd8997df8a1fd40b270a1081cda6c27e6b7f9d66b3f948d664aa57b64ba974ef62d3318e29517b716750c0d43bd6e9f4de03789621a0e34be6dc6ad493662e9e4fbbc1dd82f35cbffcb8c62dd544c078368b38b0440f86da9f0cf405aa33ea4c2a04186384bb8fb2d41c69c565b5576c",[["32727375642635","787878"]]]],"left":"474554202f513a294e6c6d39774e5b643b3c2e6f325a58407020485454502f312e310d0a484f53543a096578616d706c652e636f6d0d0a717e3a09712162514e207871272c29730d0a436f6e74656e742d4c656e6774683a203230330d0a0d0a561ee8e593784db8295fd799ca55c39144ba1c3ca0dd0c0a10389b26eb2396b0d24076c315a10e640f3446a7d8f85094c763522493c0b678c38885ca17a4a622d69af4dccc738c0bde5346317e42245309403554da117f1834ae6d3e3b9fe35c2694d5f093306db2d95bcfaada934cc16793ae"},{"requests":[["5041544348","2f2b4024707d7a754153467c54223b2b7d26726825302e3a296d5c39",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323538"]],"77002bcc69d1a0284693a180020bb51567f2ae602b92f92f5c936f95d382df31276ac5840bafb9075693dee55a509c925d3d706b78947027de7ff4e0eb8e7b5d918c792b02b4e4d99b36df7a8c02ac83e8f8b5a5ce98b0ca04f22ba4043097a4c8758fff51b1dd109db6375c4c50da3d5a63091338f8e8e403efdea2bfe03ffef9f63a188b767a3f0ef6f6ca8a1973439915f6ea4598833784934854a48b64cbd484d2e42443d4462f5b29420909eb6b48960791297f2a982a609f1844bed754096dd6e704b4efd211b8d79bb501c7683df0db8b49a4295328813240b9a2fb09d7db68d20820bc141474a064ec798c50feece9624b2a570e95c0819f3892c336e763",[]]],"left":""},{"requests":[["6c","2f41474b6f42376f2535",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["4f5054494f4e53","2f453141223d5a7d",1,[["797074616f6e747a6e7e","726757263c6e6d34"],["686f7374","6578616d706c652e636f6d"],["72365f5e256a6e636f6a","2e5d382e695b4c5e206b2028525a"],["6a6a306b24726d6a6d6c",""],["7466246d5e7932","652a6556302768"],["66746e30277432",""]],"",[]],["504f5354","2f26506d34572864637e21715f3a3a722c6a6d7b54",1,[["34265e7539605e6b606e37",""],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"54eaf6701c1157703ffa392c0ac0225d4a244d1451d78b0eaced75902258ac67ea909bca661227556338e38f873bf7a77f537248fc1255467bc9ea199c48df190ce4adc8499d938306d145e636075d1b051eacdb2bacf285855dba4f5131ebe8809d5339a531f3722f6b7da7fccfa3c806222c30acd9dab62237a7770624af65f190eecf98467d1b5babba75e5178ea7ecac83f6839d335b457b9f51a4b86b9dbded34ebbb6b499789",[["6d76","7a79797a79"]]]],"left":""},{"requests":[["48454144","2f60333c344c4c2e567d47565d357d4c6b474739446e61274444",1,[["716f24","5c28506d580946"],["686f7374","6578616d706c652e636f6d"],["376b266c3765626a62","34734d47777e7d52096c2d7c22523d542e092e387a4b4e4a623b62"],["2b707e74626f69626d61","5f56552260206a537931"]],"",[]],["474554","2f40724e45385a48",1,[["63683121","5f717e332053497a25582752"],["686f7374","6578616d706c652e636f6d"],["782e717764717e2b","466026204549475076316f522035632d4f60"],["666767","51"],["71686f21232e6c","237a78273e6b4509325b342e67"],["2624","625309713467614e2549467d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"6c51b1ef87b01b97851946a0981d5d7c4fa96619ea52acef71be843248ebb24b4a3531f83e6a9857de5a310eb91d9c71a6abffa669cb82c3f63b7b6e9f252e03486b440319442ea460fd6f355e858d9a6872907e31b8ad56c119077c33d399b19c1a1ce43e6405484f7063e6e69294b170da41fe1e988b9c4a2356dc3e0fafc87d862c02ded3bd2f28712bb501caedd96ee5ef6ef9271a2522ddbe7ed449f497e61da0c41edcafa8bff02909cef88c58",[["713367","7a7878"]]]],"left":""},{"requests":[["7973322e","2f4041657e3b632c2d4a3a487e3e2f67",1,[["686f7374","6578616d706c652e636f6d"],["69316a313876736c","71207d457b2079233b7b5f3a"]],"",[]],["44454c455445","2f533c79232a5469737d334139397379513e6f326a32",0,[["686f7374","6578616d706c652e636f6d"],["366a7a26346f7a627c72","71726d6548624d21490970"],["7673706d","3d563220307c6b79755322"],["636f6e74656e742d6c656e677468","323935"]],"a31a0d433f9ecb6ceff4daff892f39045e489a91e1e203a7df2ca830834196812e1e2237ac4a7c03a5a03f558bbba66d6363937d1ee2c1c8c189bf7e465646c75d55c4b7b1f11b62998c2b13af57c2cd9b05f811300f8531bcccc24323ac5ca8575fb52d00a7a7bf3c1a011ed4f3918830c0ac36302087d59d948f9f863343b198ea3107445406453a0041c692c39d44c68898d58c277b868e52e263b388627a02bbbbcbcd06907654390f34392454efc940de9fec34c26922a54fb271a2be6b072e493a790ea692f52698153b65e031a16e032c04338c9b047b5cd2c401ba373dab86525d1917a1330f1bf015ff8aa073a016c1b9a8b8aee58ea93cb86d69d1f408dd9e08e0e5d6104022f0ca7c170998f0ff9565eecc789519608b48504b7c4fe7e0eb5bcb83",[]]],"left":""},{"requests":[["44454c455445","2f4a527630763b632a262a643a4f7463",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"16cd898d48bd61f36ca46a808997ac59993c95d0b2e255e94655adc21d31679ac0e3a753373073eb7f2264bc5abf865ecc3f17d0666fa6a9c0b1baa8cf256f06cb812a3c492bd5d6b9fcd944be4b1f114383b34db5c5522b792669beea98664ffd47d3d5",[["7769","797a78"]]],["4f5054494f4e53","2f3766514b453538697b3c384d2568463f594b",1,[["672d","5b5c"],["616a365f6974755f6e","3225314a3061"],["5e65796d62","4c24247c0924522122095b547d7b3f2578"],["23627562","4049504c606d262a21097247383d24096d2829527136392432"],["396f632a32","54"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323833"]],"3a5bad632527ed6754d654fb65d4f58cb28029bcf83be45cb291e9fb6880b3c4ee95d69000508e141f370fa094f59cd1eb2e50dc5dd4abe9e3f413d605914f7b68dcfd72025fed2927bd91bb6e808368d520cfe64a4c3d8bec743181a4fd49f4fc5c6ee3321781ae304e56d62e37c2466c755fbfabbd13ad1328d3cc29280098aae7c13d32f46b71922914eec85845aa5d25bc8cdb23ab4fefc6a29a63450d868e82e9c5dfcf5aaa1803a32fb47be776ca0f83d81194ad8d5c148a693df77b8c5c9c78981b6390c34a15a2224c50bdbdfe6083da8063db69f36d18758b7f2396c798a5faa493afaeb65dd96b366f3f9a9d8e909183b8c374ee0fe03a00c9094639831bbf7f2072bc0b2433976f753c1ad0e0f4db7e52e18ea2daa1",[]],["505554","2f715e517e5b477e2a584441773c4964553a2f3b6e6e3c30",1,[["7a2d5e","68202a557121452b3f5636203562427a747247602f"],["686f7374","6578616d706c652e636f6d"],["67725f",""],["316c69643861742737","37246b"],["636f6e74656e742d6c656e677468","323430"]],"9473d95b81797f059988e7f606ff673a14e11c8c8276f88de720e440e02051a87b323fac805813925221904fda80003cf1702cf161eed0fe4fe6f338f639ac7e85b7f0a737ac15b118ae35bdc65caf32c52eeae0bed5188ebc223d174b2b07f7cc5978ad013d89afbbd70fa1c910177d6e8808f2f4baeb6d8c46d9107251ff78a14307969b969bd3816454c232b800171fd9f87404f82b2ab9610ca9e395dc9e9e2f3b12616aeb6552cfddf5e80fe6123740129775fa103176ebacaa85b2e9bcbecc978cd948261677fee1d45412b42b83b114fbb915df183db0a2b24098635c0a5e55e10c4ec377a746544669f31f1e",[]],["505554","2f2a317935752c3131215e7e293d435244",1,[["77","643926"],["272a696562","7309272a"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313434"]],"4e2c78ad3a6d238eaccbe0dbb765bc61d48f5aa076ac4b33a861e1aa7a7fbecc9c86ba78a0fdf41748f0331f3373089277ef4add9b199d595ec5e8ee1895cced2a38e6b446257eca7d95fbad18ac1eaae50e66e65c6fad6b2c7ca6c1b7b73a12c7d72f606132059b5f59f6e067a2bed6de817a2a0e740c810990d86785ddc9baba56480be88250604ef6e0c92d26e7b1",[]]],"left":"474554202f632e5920485454502f312e310d0a484f53543a6578616d706c652e636f6d0d0a253a2e2a2527305b26096e602f422f4d350d0a605930367771692b3075453a090d0a2458726a4f793a77312268746b2e2b2020090d0a674663427658303a2020097725200d0a5936565423313a203067096c536d663509575123363d3a22650d0a436f6e74656e742d4c656e6774683a0935342020090d0a0d"},{"requests":[["48454144","2f597b2c6a592b33324d5044442743",1,[["686f7374","6578616d706c652e636f6d"],["6c77786a","6a682048662f2b474d322047225b"],["6976","6059096f25556148254a34094a4a526a5e4d4758"],["2e3571","276e34783445094f6c2248324e"],["715f5e66267c736d366d","685a337725"]],"",[]],["4f5054494f4e53","2f6d414162442c6f5b493b572c",1,[["76716d7e3432","256e7109582f3f"],["63797976","776709695e096f7e4e"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3631"]],"72419c2358aa7fb54b22f243e60de510cf05d7bf89d9667c4341a3193c9d34345c3b3caa83a76c280eb8e5eb11ea314fb8aeeafc1084dc34251d9e6f4b",[]],["44454c455445","2f58674b2b4b50554171537e55",1,[["332d","727c7a3d29"],["686f7374","6578616d706c652e636f6d"],["68",""],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[["7a656873","79"],["316568746c5e62","7a78"]]]],"left":""},{"requests":[["504f5354","2f464d64414a524a2f5b6f44573163517927747c477659",1,[["686f7374","6578616d706c652e636f6d"],["6e","405238646631397b0946222d3c5e"],["61676430232a7879712b30","585745424e6909447051305d5c4865"],["6030",""],["7166626c70787032726a60","4346256c56316a577e094f4b58343732325e"],["3868326b67707c6a7966","3b51512a2e"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"718d3dd320a94704722abe86e29d67aa9ccc286df16168c11b9f05a74cbe303a01ef55338a6a740a600f77302194a2d7fe9e082a4234ddae7e4fe9d1bd14ad47b061c6c05e20058b080c488450f5c80cdf9a24682cceba791d955921ed10d6ab57e08f21d18a4f34031196f265b2ed783d5198759b16a427fe664c995158c4ad5fa21f00eb077f5e55afb3c13cac03d84f7f3dbcd42a67ba3e01d03da7952d252445c1c506196e9103b4583802b7b94b8ead024278149687683d7e3a1829110232f460097940469ef39997c1b3e5f5fed14ca7316d40075b8c8594f25f51094d3379afcabb5852a46438eb1a3fadc6f957cc3a3ce6fb22de93a8c926a3a7eeb6d09f2cc32adcd24eb45dff1f163ba42c8f5a84d34505a60d3b8f7fff5cf764cf6d962acbec9fb2ef73965eb900eb373538ddec22719d77e27d14d6a7f480632142a6b1c715a7cbccc58802deff72b94f43f34eea776d638cb3021d46e1145647dc5ff43a057d78c7c611a23d9c2f94bc9cbd9b11935ba5546b930af261b3b326c933",[["33306d332a","7a7978"],["24367527",""]]],["505554","2f2c75772d234c7b",1,[["66727563646f6c","736a4131212c5c092f342c6e7630380961685838"],["686f7374","6578616d706c652e636f6d"],["62746a63",""],["6e6631626163","5336527e2555"],["367a61243225",""]],"",[]],["504f5354","2f392f7663774b656734726a2e6432445846257176725c",1,[["6c","5e682041305d5e257d5b2b7a"],["6a63727974706c","2f2234665d664e324f206452604568"],["6c6162636b6b",""],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[["646a3862276d","78787a797a"],["656c36342770","78787978"]]],["48454144","2f4c5d5a713a576f222148256b2d7470",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","323330"]],"aa97e4f57c9e9054424632e062c4700f48942225f0dbc3211081fb23ade491e0ed5a7b7575efe431c0949bfcfb650318fc84215bec94c128e37ee4d57fa0dd884a1d775162a15598200a444ef5f00e8a5f9355d5d4a68b8962ad7c93dd830039fa348ce7050e6c56c43e5987447c8470cd50bc4c332436cd5f4f91692111c38a4d4a4615053a5d6b7015c5957746bd33b7c78d2023db4ebb565f4d6f6f44956b4ae847317be5125f95bc4311251f6055c72fc61a939883686b80bd9d248d3eb855e749900c64d6a0815fbf7beea4a1ca555f3ef52755e2ba87b153dbf419db65a58811b37048",[]]],"left":"5041544348202f2b563d6049656c2d5e4b743a20485454502f312e310d0a793a"},{"requests":[["48454144","2f602f4a2f7c734b3f2e",1,[["686f7374","6578616d706c652e636f6d"],["767760",""],["65307562632d69246b",""],["636f6e74656e742d6c656e677468","3132"]],"0a1f259d3578c1a8c5e63b65",[]],["5464347150","2f7d227c705b61",1,[["706a6178672d","6437684709272a454f3409516160725825"],["6b606b2d","463a6a6f4753702b092c"],["23346a","2154445e47784f202261416f547a2361"],["686f7374","6578616d706c652e636f6d"],["7969",""],["5f7839257969346f","3f6f4a2e4b63206b"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"f558c950a4bb886eec66da3c51881fd49d929130368d45614dac79fdc4996db94dde07d4803523f510e98753cf2bc455ee195be8bfcb8215313cf7c8c35494ab963344192ce5814bb7b22fbeb5a7df3be5ded1",[]],["504f5354","2f6e5b",0,[["72626272272576686d","564f5a585925637a6a09436635375f555e093e484e"],["686f7374","6578616d706c652e636f6d"],["395f6a","663b424238092c684b4d5b092f5345"],["636f6e74656e742d6c656e677468","323830"]],"37dd777a436642017d4d2f00cdac9a7fde9d84bebded483fbf865122e28849ce6a194be2124e76daef8c2a1d89308f05d0a1597eef0bdeb9198f3a7556b08a89f4917c470927bc4e89d94171cafe3f062b616c596e5ca9014f023deebfdc50413905c946f2e1499762dcabf8c7e4c062ff42f09b7a8abcd8a4cba8a55ed63d43e7fbf81e35ee187eb66a1646734b1c45e4eea15de3b834b4fde126910c09068a7ac6acc3f9f30fc30d897e94e596c42db8ae1bb502b16ca7dd0c7733964e4be90c79039bf7d492b21cc2115f9c7acbbb0beca2b46f0b7915845823828f755c3274869e34d71096b0daa21f9b3d59f8417c494f3c012b4b8a20f7e6aeee22e9c807b5be7f2324ab7a32351249ce5e8f1c9524a14fbb176920",[]]],"left":""},{"requests":[["505554","2f663628487c4f74366a7e4a78705a227d24547c6044",1,[["686f7374","6578616d706c652e636f6d"],["392d215f797a","482035282d71663d436955"],["6533735e62","2c32533b6721612e"],["636f6e74656e742d6c656e677468","313431"]],"4404cd11caeaceda5ec42415908e0ff00bff2e849ccc1b9aa6fa4c19b04a4969447578745bf4d72565396a076905bb1970c6c648f0129641e23f9fe9e36751871a4cb340973fdb0af86d273e41a51657165a3bfd30c20c0ba646e921c3d793cfc306e16bbc5de49bb13e0187c69d3712f02d66300335cb5f2b6bc84cd020d2b0d50f60de5e86a9e4f4948f46e6",[]],["4f5054494f4e53","2f2d66572e4a364b723b3f3b45515a3e737d32",1,[["686f7374","6578616d706c652e636f6d"]],"",[]],["474554","2f6b37612d3b466e4959647548",1,[["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"fda1fc9902fccae190fb86d63f668936d6130075d678437cd4d7928a250b60e5ad5e331bf9be92f0bd855f65994a2ea761945af69dd1e4daee01ecea560d46e11b651cb0e4bcd307db0860126172bc1d08d186ce4b3066aa6a9878ed8dd2ef3bc117c6eb9912a4af19df1018b368deaafb7a1c57a141bd0392a0199e0c8efc622fa49fd809e96029d5274fc53b035f4184e1fce3bc36d93ee27843",[["656875","79"]]]],"left":""},{"requests":[["5041544348","2f3f5c3d35635d6d2a345d2a293a496d2f72453d4136263a6c4b76",1,[["686f7374","6578616d706c652e636f6d"],["35792d6330753735","7a55696a43514f327b2045736f60"],["2673715f63785f3565","6863"]],"",[]]],"left":""},{"requests":[["44454c455445","2f50612d3f54397669296621483463367c6a6b2c5337367542",1,[["6f635f",""],["2664",""],["686f7374","6578616d706c652e636f6d"],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"ec77e2961a565a83cf112f0a9651e5ec6ff05379c83faa2bfe2f53a234d4d598888074f1765e84afa6c2fbf44d52af4d7b691ffa7e8a21c9c9eae6e7",[["7571","787a79"]]],["44454c455445","2f2a7929456770572d62397122",1,[["2d642e70373165","3c0953520939217939"],["686f7374","6578616d706c652e636f6d"],["5e6873","346145225c6160552057204e"],["3175796433766770366672","7b5d6344762776"],["7472616e736665722d656e636f64696e67","4368756e6b6564"]],"",[]],["5041544348","2f7d703c632c3a49582d2d4e3c2c3e7875493774456e4f5155",1,[["352b",""],["216d62682179","23500931384230313e6a"],["31663538316a2e7c637667",""],["5e722e6f376167636c75","76775b58242e777045"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313630"]],"ba451c795fc7bbb51ad737d5ad170283ff6d2d8fe9fdb4945da0d5dd0ad611ac0884664a0d41ed60744ee6af07681a2ab832a43261ede78e4a4901033e7bf7d0a91744f26fbb4cf50b7c2166f50790e18ccd0b4501d49195137dd6c663e421afb227adef595dc39302a5fca6b51f4fe888c99877828e4837046ca676866dc7d2bdf3763944b6f293ff34d65b40d2ad32a99501e76b1c1905c1318fcf00b4da67",[]],["505554","2f725932553c3c5576395c5c7c6a6d773a6e594b3362",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313132"]],"2e981b732aeeb403fa4f046a3be3e0cdfc96b388bf45bf5786321a7e635471280f0882924c82d09cba90b61869b183383ce01ca22169f8545cacbcc4ec1c049502ba2b1856280ea409a3178bcb47da1f33cb6c94a58114c975b01a133bb9a1e106055a7556d81c42316e7443ad85ca3f",[]]],"left":"5041544348202f706279724e544e2920485454502f312e310d0a4d495e593a094b2762793b7d5129090d0a4c6c41304a3574344f21703a664e63330d0a634450453a094872302734600d0a2d43426e626c78265342783a2020097772454a2020090d0a486f73743a096578616d706c652e636f6d2020090d0a2d633a2020097e310d0a5472616e736665722d456e636f64696e673a096368756e6b65642020090d0a0d0a3336200d0aec27ee593ef6b5efa6eda1d0cdd3c2d3c64d22fe6f11b4b9f0974e7548"},{"requests":[["474554","2f505871535e5f78232c68285d366a4958526b637d5b5840406548505e52",1,[["6f23216e74","6646273d253a"],["657e786f74","5d6a33425d267034492033535a3b22"],["686f7374","6578616d706c652e636f6d"]],"",[]],["505554","2f443522525049706227564d497a6f",1,[["7175755e735e2b79686969","546f656f686f3e36"],["686f7374","6578616d706c652e636f6d"],["7171","596d62"],["7a3564","63276e406c3737203f4643482d3850"],["666968","57723948553d565209613c4d4c267930"],["622e7e716e","4167585c2e4820227262787c2d"],["636f6e74656e742d6c656e677468","323537"]],"f036e148152e842e7c3979663bd2d8040749e1411fff78f56809012165ff18ad394a5f5e4e0b912321022dccc7e84f8211a756d1ab3f24d99779bdba309108925483611809fb5e1cedfbaa405a0bfcb6436c718036f274d43379ad1379204643764e97d9ce0e2e539871b0f521a9a84136bd54f5d99cbf16fb2b6cc80e9f9039f8b3f11d9b21da4864cfe5b41bf4917af9e3928c640ddbb5872e2d859c85579850d94d5742b044458c09d068f461a80d114135d24a4c183608896ded0158f8f5f40078751fd34af533264b82efe261e5711eb7860ca295042af298ce83717624516df4a81cb495989e84d4be8c7f75da43549158bc05cf6fea314d336bacfab175",[]],["474554","2f26296a2c393a495c34503e5a",1,[["7a7a7662746f","3e656d23760939095879377d37"],["266d342367","66342f5f4a365e094857"],["7227",""],["686f7374","6578616d706c652e636f6d"],["263266767e386334","2144202e2850"],["6370662a655e327e",""]],"",[]],["505554","2f4c3e273a5e644a232d372328765a442b2b68484c5b2872",1,[["346339617a62","36"],["6e6166","5333664c2f2e4f3527"],["7178632464276024256963","295b4c094e793f3e2f6b364e"],["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","3135"]],"6f4b0b91b3d3630fd86c29c0b29012",[]],["504f5354","2f7e61356c4f4425285d47725358684351244035617d4d",0,[["652a246f6625","2f096f39416e38093a7e506935283d68"],["686f7374","6578616d706c652e636f6d"],["7577776b",""],["62617325","3d4a7252"],["636f6e74656e742d6c656e677468","313538"]],"9dbf4dc89e4b39b67e3b7f7aa3a94a2abaca8d8a4d896c96c0db63c93bf975f3392bd5f438dfcfd19bbd5390dda5a75e15f7df06d4a861b265addf8b9cb58f599a5c43fd141b58601b4cdbabd1f93d17484410db309b616a0fefccd1fe23646f4936dea89bc9ecfe239b602c2b18cb35ef24b3664a849172e7a218265993273b513618ecad431bc086369e9a1ff502b2f380854bbe441b4a3d2856745e21",[]]],"left":""},{"requests":[["48454144","2f3c3a",1,[["686f7374","6578616d706c652e636f6d"],["68","242e202f604640"],["746630363276",""],["7a",""],["636f6e74656e742d6c656e677468","3839"]],"64cbfa52f272f754b30a786b7eabb308b648718c9da75afa320e5db74bf99bba85b5390753f189881ee52adecb871f8cd330105c394cdccfac5bed3433ac0a42c0e9251d151ef609e2782db2344aef3f5ed7b9e83bb4753ee5",[]],["504f5354","2f47406550212f6237602e62465e574c223d4d",1,[["213871646e337166","457c5275095731"],["686f7374","6578616d706c652e636f6d"],["38",""],["7472616e736665722d656e636f64696e67","6368756e6b6564"]],"c0c10e6f4e5cfbebf1c5e61b2f460e621688c1b2c0f62bbca2ecd7216282bb196eae3bfe545baf161d44fca92c5a97b2285780368891bcfc80a7b4162ba141f2c828fdd38a8f2aabecf125006fe1a9eeda4186ed73a615e76ea8751d586786843ca000ae2f",[["2572773579796e","7a787a"]]]],"left":""},{"requests":[["4f5054494f4e53","2f485658585e3d404c242b504f3e4443783b6e5b7d7a",1,[["686f7374","6578616d706c652e636f6d"],["636f6e74656e742d6c656e677468","313537"]],"f46d1d4c3615c327f49125e1e83fb0b063bc79deec06318c2a1909fa07baa27d1f017a32f07daecb2d3bfba6398edef2f547bd97cdb21c395bde6ced313cf4b20b1cd415f7ece2ccd58f3699c247a9e978837ef4cff936a93b9cd3112a514d5dc8800fb7ec036431a0e61a1ae381fb87f042d2ba132e00b11a8c36c00b22a4494afb9ad2e94ae30721b85d4446afe0e159f8de308ca38ff96c27ec42a3",[]],["505554","2f6a7974225d415e3f2f2f4a5c6b734a23",1,[["686f7374","6578616d706c652e636f6d"],["5e756d376f63387264266d","5454522b6a67672f61"],["26256567796b755f665e","6d77457a72257c207c2c"],["743167717964","7b3754094c44317e5c5352"],["636f6e74656e742d6c656e677468","323939"]],"2f5adab147faf0d728d27a48dcf6c61758551ad2bb6b5847006f9c19904745da430fa44194ee416bec88bbf6fb9476dfee02133fd44be903c229cec24436aa74bff3707107a5d2ed5a383f88134429ab6c1e52662eca067510efa57c2482f6f9a0efb10aed45c8a1e16d65d9b4644131a6802935ae489121d872e9cc583da2fe06b57c9a46d35e401193dd887cab70da5840b309a69da5bac3007ecf15281ec4c6867eeceac4c732fc82c78bfef00e55938f41e0cf49cbc7244f78ee8829f090e228321da355ca63d8a157525ec6513a41959c014c5950aec87d12886da0906a546d3ae596bfd0630a4be290aaae2f185a52b358d2193b8d9d6e3866470aad79c4494d55fe991b50f5e572d4172e7c39a27c1d76f2d077640d5d142861877b62bea5d3814d2901b9ad1257",[]]],"left":""}] diff --git a/tests/specs/http/streams.bin b/tests/specs/http/streams.bin new file mode 100644 index 0000000..2f3fa5e Binary files /dev/null and b/tests/specs/http/streams.bin differ -- cgit v1.2.3