Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wWrQM-002u3V-2I for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Jun 2026 08:03:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wWrQL-0063Er-29 for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Jun 2026 08:03:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wWo8i-004u50-2N for pgsql-hackers@lists.postgresql.org; Tue, 09 Jun 2026 04:32:36 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wWo8Q-000000025ac-0CJW for pgsql-hackers@postgresql.org; Tue, 09 Jun 2026 04:32:36 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-beb2a97cc9aso811939466b.2 for ; Mon, 08 Jun 2026 21:32:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780979536; cv=none; d=google.com; s=arc-20240605; b=Pj7GyZgjZTiK5dk2dyeExfAu5xMDeJ/fcQobIPSbXt2tIfU1j5GnnPBAztY7yc9bmz 8Ev76MjoHm6JJU6TkZH9nNeFO2GiV+JGO/hQ1kka9fl32K6EwVzRNRGTu7X97Kp8yrwA SpdopkiR6booioOPXlg0icf28WDaYRDqhrrDgWh2GILUXuQ6LSzj6LDr9VEh07DxVrTo ELkbHISwg5o/LFsVXt1iJTu8HAxkiux76GrQkVpQTMEbmljVksklEo+ae8Z53O0RQwNy LRgzevpCCOULshcfTosLXJrMESrWMEmZJJSee0fLqhztncepqxNosIamvphf/iPSgXKo DwHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=L/BUf/ckLX+urR0bgb7fG/uAsGlJwgJgnQwrXUj73dc=; fh=/qG9CtKRRaSfs28oalKiOkvhR/N5x3v61c6wKL1PLaQ=; b=X4nKQMUtQOKhOQcYg8NZJ1pN7ecv5wz76HJgBKoXrQzkl0hsHXC1MkBwN6EZwKjTzs hMER6s2FZqEQ2rRMr8ZNF/5VvwM0M9ZqAsvMTcRlr0hXhJzA1hfy6QZDHWWx72N/WhGk kUrOdk6vDsFdNyDhF7pYevHNk0pJ5oTQgR1AL753LWDBcj0fwG7N6V/DBJtCp2pT8wJ4 I3KM4FWzzetyruBjIiVMD8/X2keQopBl13NbQqBSRcSF6NWrd0TFJ0DlvnHFKHEN9B4E 3aCNT57D0Oh9A1QAc9Tp0yECDWfUOB5nu3mlkVn2bnBd66IvgpG6fJx/mYK7oqH7sO22 viKQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780979536; x=1781584336; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=L/BUf/ckLX+urR0bgb7fG/uAsGlJwgJgnQwrXUj73dc=; b=HsnGvtjSb1lR3U6YRfhc8ylLsufvJhyTi6Dpq5VbZqu1ipgowWVJoYIpEbkV6X/Z9J CxF5US+X+wLaH1T5ytYC06f5opKazY7K9RJQ7TWiJ6fj1g/o/Nj/S/NVwhbFupLKw5Sq 8SrTZaidbnIdLE5gVTUoS/qU1mimqBMBT3Kjnmeq6QpAQed/pU4pgTcoqhWxfgMPwGrA 0pj82W+DScdDJT0+iYfQxxQMJDGxEYlfAUQE1ufaop8EqWniwuJsItxKaXP0dGnWNnSz 2ZjhoW4B0zAmj2H9il5AquiIXmUxbCYOm3/gMSaOBiDPKXR+0SgH2YoQyORJ30fmWd4R yZ+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780979536; x=1781584336; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=L/BUf/ckLX+urR0bgb7fG/uAsGlJwgJgnQwrXUj73dc=; b=M6ysEo2FovaEJAvssGEzhGKk8taFGuGrQoR1ScE7b/axFdan+NejLHos6FPWJa1dAH P64JM4avcpQhk0wcJvHRBjc4EzgrgB9wWDBHAN87hRJKExToOFiIsPUzfvymgq9YI7Ua 0iinuMs08w0/c/fIH/qlOc2Ob3McWSlNEoP7vP6ZofqSOvtDj0S7KbPTZNdwgCTQd3lT voiQTqeFtDo7FJVTeKFXfbNXcT6F/y2lH0Ff0GLvAtljXCGltI94KT7WC4q+f76BG1C2 uSA9+n7ixNuSKiyUMeRp5sEIUF0j1xJF1+BR0lfVa8riym6RCbLMp34kEWq2KkveL5rU jq6Q== X-Forwarded-Encrypted: i=1; AFNElJ9/nSmB+cwpCihCI2656a6ZOF7iT+/t9LLG6aOjH9W0nlaOpEdqwFfZJcC+Vkw0rHOtM82sH4J75BWk3kqV@postgresql.org X-Gm-Message-State: AOJu0Yz7HM6AleRxDBvdmb07rmw1PEL1OjNVyzn2NYiKISSoL4R2OMqA Ifj8ckzvMUZtAhNcsx/2/ZGTUBwqgJwSW3aLO8k7q7BMMufApB2qSSIvGHqyW+e40vN/hmxhqdP ZRjeqX3W59IhaDlnVV26Ws50LCtLoemg= X-Gm-Gg: Acq92OHo/3NuUYhxHlvgA2w6vq4o4pgchV0y7icBkM2PySjzqB6YGbT6wvut7PIScZS WV3jRvvl6oEF4zS6aEZ7Hlgvn1hMs+h+K8wWiOTV0c6Q1pTWi3iBBqdNvddLPb7UKTz3kQUkeh0 guwkuaGsX21251eVInsvGhXjgDGMaodZ+oW+w8IMQ9a/sjvc77DjAlkgcnvhqtYEn2IlzBiamlz ZYfkuSGUGS/lerWXDqlapmYUNCMDubEz75vdQFgjWHayl3nM2I16X7AqNKtyPg/nngP1XnDBDkb kXKz81SO3P2vEl7an+hErpHeyrFtk57pMN1XRATXxfge/Nh4+Wi7eZRJgrGfgJkl2eqwrjto/1R q7PuzxIxUHfEsR5x/B6asaFinintLVxI= X-Received: by 2002:a17:907:ab8:b0:bf1:a59e:653f with SMTP id a640c23a62f3a-bf938e22ab8mr23862366b.28.1780979535717; Mon, 08 Jun 2026 21:32:15 -0700 (PDT) MIME-Version: 1.0 References: <20260427.135243.1750053587183825244.ishii@postgresql.org> <20260427.174220.1939160662649810289.ishii@postgresql.org> In-Reply-To: Reply-To: assam258@gmail.com From: Henson Choi Date: Tue, 9 Jun 2026 13:31:57 +0900 X-Gm-Features: AVVi8CcgrpoQ-T1kW04GGJd3QtJzurSfcUwypEZhMU8p_gMhiDuAH1stvOdwPxw Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, li.evan.chao@gmail.com, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="00000000000094e1900653ca9cf2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000094e1900653ca9cf2 Content-Type: multipart/alternative; boundary="00000000000094e18e0653ca9cf0" --00000000000094e18e0653ca9cf0 Content-Type: text/plain; charset="UTF-8" Hi hackers, This is the v48 fold previewed in my 2026-05-30 post: the incremental series carried on top of v47 has been folded back, Jian He's round-3 review [1] is applied (my point-by-point reply [2]), and an in-house static-analysis pass plus the cosmetic clean-up are now included. Resolved since the last post: D3. AST "absorption" rename -- Tatsuo's call. Renamed to "merging" (nocfbot-0031). 0025 ereport style (Tatsuo, 2026-06-02) [3]: the single-row frame rejection used the old (errcode(...)) wrapping; updated in place to the new errcode/errmsg style. (The remaining RPR ereports are tidied up tree-wide in nocfbot-0045.) Deferred (unchanged): D2. RPRContext consolidation (Jian's round-2 #1) -- folded into the future R010 infrastructure, where a single context can back both the R020 window implementation and R010. We agreed to defer it at the v47 stage (Tatsuo, 2026-05-31); it is not part of v48. Attached: the v47 feature series (v47-0001..0009) rebased onto current master, plus the full incremental series (nocfbot-0001..0068) carried on top of it. Base: 89eafad297a 2026-06-06 Fix tuple deforming with virtual generated columns Already posted (nocfbot-0001..0026): 0001..0016 went out in earlier rounds -- 0001..0011 [4], 0012..0015 [5], and 0016 (sent at the time as 0015) [6]; the 2026-05-30 post [7] renumbered them to run contiguously and added 0017..0026. All are rebase only and unchanged, except nocfbot-0025, whose single-row-frame ereports were updated to the new errcode/errmsg style (per Tatsuo; see above). Titles for reference: nocfbot-0001 Add DEFINE non-volatile baseline to rpr_integration B9 nocfbot-0002 Unify RPR DEFINE walkers and reject volatile callees nocfbot-0003 Cover RPR empty-match path with EXPLAIN tests; fix stale XXX comments nocfbot-0004 Reclassify DEFINE qualifier check and reword diagnostic to "expression" nocfbot-0005 Sync stale comments on DEFINE/PATTERN handling nocfbot-0006 Add trailing commas to RPR enum definitions nocfbot-0007 Remove optional outer parentheses from ereport() calls in RPR files nocfbot-0008 Add high-water mark tracking to NFA visited bitmap reset nocfbot-0009 Document DEFINE subquery rejection as intentional over-rejection nocfbot-0010 Remove duplicate #include in nodeWindowAgg.c nocfbot-0011 Normalize SQL/RPR standard references nocfbot-0012 Add rpr_integration B7 cases for RPR in recursive query nocfbot-0013 Reject row pattern recognition in recursive queries nocfbot-0014 Enhance README.rpr per Tatsuo Ishii's review nocfbot-0015 Round out README.rpr WindowAggState field coverage nocfbot-0016 Add raw_expression_tree_walker coverage for RPR raw nodes nocfbot-0017 Enhance README.rpr per Jian He's review nocfbot-0018 Clarify execRPR.c comments and tighten an Assert nocfbot-0019 Change nfa_add_state_unique signature from bool to void nocfbot-0020 Add reluctant bounded mid-band test to rpr_nfa nocfbot-0021 Define RPR absorption terminology in README.rpr nocfbot-0022 Document the get_reduced_frame_status cascade invariant nocfbot-0023 Explain the completed-head-context branch in update_reduced_frame nocfbot-0024 Tighten the RPR frame-boundary check from >= to == nocfbot-0025 Reject single-row window frame in row pattern recognition nocfbot-0026 Remove the redundant zero check on the RPR frame ending offset New since the 2026-05-30 post [7] -- nocfbot-0027..0068, in series order. These apply Jian He's round-3 review [1], an in-house static-analysis pass, and the v48 cosmetic fold (smallest-first, A..F at the tail). Patches that change user-visible behavior are tagged [behavior change], except nocfbot-0042, whose narrow variable-limit change (251 -> 240) is noted inline. nocfbot-0027 Restore findTargetlistEntrySQL99 to static (per Tatsuo) nocfbot-0028 Clarify RPR comments nocfbot-0029 Rename RPR NFA constructors to make/clone nocfbot-0030 Demote RPR nfaVisitedNWords to a local nocfbot-0031 Rename the AST-level prefix/suffix rewrite from "absorption" to "merging" (D3) nocfbot-0032 Drop non-standard per-group banner labels from RPR forward declarations nocfbot-0033 Clarify that ExecRPRCleanupDeadContexts always frees the failed context nocfbot-0034 Correct stale RPR comments and document a defensive window check nocfbot-0035 Fix unsafe (A{n,})* quantifier flattening [behavior change] (A{2,})* reaches {0} UNION [2,INF); flattening to A* wrongly admits a single A. Skip multiplication when the outer is skippable and the child min >= 2. nocfbot-0036 Avoid INF-valued quantifier bound in consecutive-merge [behavior change] The merge overflow guard used <=, letting a merged min reach the RPR_QUANTITY_INF sentinel; tightened to <. nocfbot-0037 Fix count slot leak in row pattern recognition absorption [behavior change] An absorbable leaf VAR exiting inline at max count left its shared depth count slot dirty for the sibling group; cleared on exit, with the count-clear policy made explicit via Asserts. nocfbot-0038 Demote dead runtime checks in the RPR executor to assertions nocfbot-0039 Fix memory leak in row pattern recognition DEFINE evaluation [behavior change] Per-tuple DEFINE evaluation leaked into the wrong context. nocfbot-0040 Honor reluctant quantifier for non-leading optional RPR variables [behavior change] Reluctant handling existed for leading VARs and groups but not for a non-leading optional VAR routed through nfa_route_to_elem; e.g. (B A?? C) matched A greedily. Same skip-first pattern applied. nocfbot-0041 Reject column-less compound navigation [behavior change] A compound nav with no column reference is now rejected at parse time, instead of being silently accepted with a wrong result. nocfbot-0042 Reserve the high varId nibble for RPR control elements (the maximum pattern-variable count drops from 251 to 240) nocfbot-0043 Generalize quantifier multiplication [behavior change] Replaces the hand-rolled special cases for (child{p,q}){m,n} with a general interval-contiguity test, folding cases such as (A{2,3}){2,3} -> A{4,9} and (A+){3} -> A{3,} while leaving genuine gaps unflattened. nocfbot-0044 Tidy up row pattern recognition pattern compilation nocfbot-0045 Drop redundant parentheses from row pattern recognition ereports nocfbot-0046 Tidy up forward declarations and helper placement nocfbot-0047 Update the varId documentation nocfbot-0048 Reformat the design-decisions chapter in README.rpr nocfbot-0049 Point to the absorption-analysis docs from the RPR flag definitions nocfbot-0050 Fix signed-integer overflow in frame-end clamp [behavior change] The frame-end clamp computed frameOffset + 1 (int64) before the overflow check, so a FOLLOWING offset near PG_INT64_MAX overflowed; now added in two checked steps that clamp to PG_INT64_MAX. nocfbot-0051 Rework row pattern EXPLAIN deparser to fix grouped alternation branches [EXPLAIN output] The bytecode deparser collapsed alternations whose branches were quantified groups (e.g. (C | (A B)+ | D)). Rewritten as recursive descent over depth/jump-anchored windows; display-only, execution was already correct. nocfbot-0052 Handle row pattern navigation nodes in exprTypmod and isSimpleNode nocfbot-0053 Restore the error cursor for too many row pattern variables nocfbot-0054 Test deparse of an inline row pattern window nocfbot-0055 Fix a mislabeled INITIAL test nocfbot-0056 Reject invalid column references in row pattern DEFINE clauses [behavior change] Outer-query correlated references and 3-part qualified names in DEFINE were reaching an internal "Upper-level Var found where not expected" (XX000); both now raise a clean, classified error at transformColumnRef. nocfbot-0057 Fix shortest match for reluctant nullable quantifiers [behavior change] An outer reluctant quantifier over a nullable reluctant body, e.g. (A??)+?, consumed rows instead of taking the empty match. The count PG_INT32_MAX, the unbounded sentinel) nocfbot-0066 Tidy up row pattern recognition regression test comments (D) nocfbot-0067 Add row pattern recognition negative and coverage tests (E) nocfbot-0068 Use foreach_node and friends in RPR code (F) (foreach + lfirst() -> foreach_node; foreach_current_index, dropping redundant breaks) Issue-to-patch map (each raised issue -> decision -> landing), by source. (Earlier incremental cleanup 0001..0016: see [4][5][6].) Jian He, round 1 (2026-05-26): Short-circuit optimization invited to drive -> separate series Absorption README narrative accept -> nocfbot-0017 DFS expansion accept -> nocfbot-0017 initialAdvance README mismatch accept -> nocfbot-0017 "absorption" -> "merging" rename accept (Tatsuo) -> nocfbot-0031 Defensive Assert in advance_var accept -> nocfbot-0018 Finalize unnecessary? keep -> nocfbot-0018 Greedy comment label accept -> nocfbot-0018 state->next reset decline -> nocfbot-0018 visited marking purpose accept -> nocfbot-0018 compareDepth comment accept -> nocfbot-0018 ALT depth invariant Assert decline -> nocfbot-0018 Unused bool return accept -> nocfbot-0019 count >= 3 test coverage accept -> nocfbot-0020 Jian He, round 2 (2026-05-28): RPRContext consolidation defer (Tatsuo) -> D2 README terminology + typo accept -> nocfbot-0021 get_reduced_frame_status order keep -> nocfbot-0022 states == NULL branch coverage already reached -> nocfbot-0023 currentPos >= -> == accept -> nocfbot-0024 single-row frame (6.10.2, D1) reject (Tatsuo) -> nocfbot-0025 ExecRPRProcessRow refactor Datum fix only -> nocfbot-0026 Jian He, round 3 (2026-05-30) [1] (reply [2]): "Tests line N" comments rephrase -> nocfbot-0028 "at the END" wording accept -> nocfbot-0028 uppercase END cleanup accept -> nocfbot-0028 nfa_advance_var count comment reword -> nocfbot-0028 make / clone rename accept -> nocfbot-0029 nfaVisitedNWords field accept (-> local) -> nocfbot-0030 nfaStateSize field keep -> (no change) drop the elem parameter keep -> (no change) Jian He, off-list (2026-05-15..06-04): Per-group banner labels drop -> nocfbot-0032 Dead-context cleanup comment clarify -> nocfbot-0033 rpr.c pg_unreachable refactor accept -> nocfbot-0044 ABSORBABLE doc pointer accept -> nocfbot-0049 has_column_ref necessity defend -> (no change) CFI dedup decline -> (no change) fractional FOLLOWING tests decline -> (no change) initial/SEEK rename defer -> separate series Tatsuo Ishii + Jian round 4 (2026-05-31..06-02): Tatsuo README review accept -> nocfbot-0014 findTargetlistEntrySQL99 static accept -> nocfbot-0027 varId high nibble ("3") accept -> nocfbot-0042 ereport redundant parens accept -> nocfbot-0045 forward-decl / helper placement accept -> nocfbot-0046 varId documentation sync accept -> nocfbot-0047 XII chapter prose reformat reformat -> nocfbot-0048 README 0005 -> 0006 reorder at submit (Ishii) -> committer double-free question cannot occur -> (no change) redundant continue keep -> (no change) non-ASCII section sign already ASCII -> (no change) empty pattern PATTERN () R020 reject right -> (no change) in-house static analysis: stale comments + window check fix -> nocfbot-0034 unsafe (A{n,})* flattening fix -> nocfbot-0035 INF-valued merge bound fix -> nocfbot-0036 count slot leak fix -> nocfbot-0037 dead runtime checks -> asserts fix -> nocfbot-0038 DEFINE per-tuple memory leak fix -> nocfbot-0039 reluctant non-leading optional fix -> nocfbot-0040 column-less compound navigation fix -> nocfbot-0041 incomplete quantifier fold (EP-1) generalize -> nocfbot-0043 frame-end signed overflow fix -> nocfbot-0050 EXPLAIN deparser grouped-alt fix -> nocfbot-0051 exprTypmod / isSimpleNode nav fix -> nocfbot-0052 errpos for too-many-vars fix -> nocfbot-0053 inline-OVER deparse coverage fix -> nocfbot-0054 INITIAL test mislabel fix -> nocfbot-0055 DEFINE outer / 3-part column ref fix -> nocfbot-0056 reluctant-nullable shortest match fix -> nocfbot-0057 allpaths varno comparison fix -> nocfbot-0058 glued quantifier + alternation fix -> nocfbot-0059 nfa_advance / README references doc -> nocfbot-0060 invariant asserts / notes assert -> nocfbot-0061 nav_slot / LAST(x,0) edge cases defense -> nocfbot-0062 v48 final fold (off-list sweep + Jian round 5 v47 patch): pure formatting fold -> nocfbot-0063 idioms (palloc_array, Max, ...) fold -> nocfbot-0064 INT_MAX -> PG_INT32_MAX sentinel fold -> nocfbot-0065 regress comment + doc hygiene fold -> nocfbot-0066 new negative / coverage tests fold -> nocfbot-0067 foreach_node + lfirst sweep fold -> nocfbot-0068 Please let me know if any of the slicing or the grouping looks off, or if you would prefer the correctness fixes split out ahead of the cosmetic fold. Thanks again to Jian for the careful reading. Best regards, Henson [1] Jian's review, round 3 (2026-05-30): https://postgr.es/m/CACJufxEsaU8GQ4yeXTWhAO8VjbrZTh5CpvUqz=4a3T0Cwz44pA@mail.gmail.com [2] My point-by-point reply to the round-3 review (2026-05-30): https://postgr.es/m/CAAAe_zBi1dOtWb2vnwSvGwuU0-bqAOm_7dOM4u-CmukA8xaV5Q@mail.gmail.com [3] Tatsuo's note on the 0025 ereport wrapping (2026-06-02): https://postgr.es/m/20260602.120305.1365406908882385077.ishii@postgresql.org [4] Earlier incremental post -- nocfbot-0001..0011 (2026-05-09): https://postgr.es/m/CAAAe_zCL9UtiYthrSaXCmhFMK6Q3YQ6BQGgae7C9en2k=S9doA@mail.gmail.com [5] Earlier incremental post -- nocfbot-0012..0015 (2026-05-12): https://postgr.es/m/CAAAe_zBg7y5frYxReua1dczXkMK-7fk6bkVo5ZQXDYxpxe0cwA@mail.gmail.com [6] nocfbot-0016, sent at the time as 0015 (2026-05-26): https://postgr.es/m/CAAAe_zD7vCLCb+vxpO3P-NsDUZ=JcN8EGCV0dz0BNgBKsbOGcQ@mail.gmail.com [7] The 2026-05-30 post -- renumbered 0001..0016 and added 0017..0026: https://postgr.es/m/CAAAe_zAuHwqUfqJOD4PDUkWsxTfTytNaandq11Kddw2bfCcpvQ@mail.gmail.com --00000000000094e18e0653ca9cf0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hack= ers,

This is the v48 fold previewed in my 2026-05-30 post: the incre= mental
series carried on top of v47 has been folded back, Jian He's = round-3
review [1] is applied (my point-by-point reply [2]), and an in-h= ouse
static-analysis pass plus the cosmetic clean-up are now included.
Resolved since the last post:

=C2=A0 = D3. AST "absorption" rename -- Tatsuo's call.=C2=A0 Renamed t= o "merging"
=C2=A0 =C2=A0 =C2=A0 (nocfbot-0031).

=C2=A0= 0025 ereport style (Tatsuo, 2026-06-02) [3]: the single-row frame
=C2= =A0 rejection used the old (errcode(...)) wrapping; updated in place to the=
=C2=A0 new errcode/errmsg style. =C2=A0(The remaining RPR ereports are = tidied up
=C2=A0 tree-wide in nocfbot-0045.)


Deferred (unc= hanged):

=C2=A0 D2. RPRContext consolidatio= n (Jian's round-2 #1) -- folded into the
=C2=A0 =C2=A0 =C2=A0 future= R010 infrastructure, where a single context can back both the
=C2=A0 = =C2=A0 =C2=A0 R020 window implementation and R010.=C2=A0 We agreed to defer= it at the v47
=C2=A0 =C2=A0 =C2=A0 stage (Tatsuo, 2026-05-31); it is no= t part of v48.

Attached: the v47 feature series (v47-0001..00= 09) rebased onto current
master, plus the full incremental series (nocfb= ot-0001..0068) carried
on top of it.

Base:

=C2=A0 89eafad297a =C2=A02026-06-06 =C2=A0Fix tuple deforming wit= h virtual generated columns

Already posted (nocfbot-0001..002= 6): 0001..0016 went out in earlier
rounds -- 0001..0011 [4], 0012..0015 = [5], and 0016 (sent at the time as
0015) [6]; the 2026-05-30 post [7] re= numbered them to run contiguously and
added 0017..0026.=C2=A0 All are re= base only and unchanged, except nocfbot-0025,
whose single-row-frame ere= ports were updated to the new errcode/errmsg
style (per Tatsuo; see abov= e).=C2=A0 Titles for reference:

=C2=A0 nocf= bot-0001 =C2=A0Add DEFINE non-volatile baseline to rpr_integration B9
= =C2=A0 nocfbot-0002 =C2=A0Unify RPR DEFINE walkers and reject volatile call= ees
=C2=A0 nocfbot-0003 =C2=A0Cover RPR empty-match path with EXPLAIN te= sts; fix stale
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 X= XX comments
=C2=A0 nocfbot-0004 =C2=A0Reclassify DEFINE qualifier check = and reword diagnostic to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 "expression"
=C2=A0 nocfbot-0005 =C2=A0Sync stale c= omments on DEFINE/PATTERN handling
=C2=A0 nocfbot-0006 =C2=A0Add trailin= g commas to RPR enum definitions
=C2=A0 nocfbot-0007 =C2=A0Remove option= al outer parentheses from ereport() calls in
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 RPR files
=C2=A0 nocfbot-0008 =C2=A0Add hig= h-water mark tracking to NFA visited bitmap reset
=C2=A0 nocfbot-0009 = =C2=A0Document DEFINE subquery rejection as intentional
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 over-rejection
=C2=A0 nocfbot-= 0010 =C2=A0Remove duplicate #include in nodeWindowAgg.c
=C2=A0 nocfbot-0= 011 =C2=A0Normalize SQL/RPR standard references
=C2=A0 nocfbot-0012 =C2= =A0Add rpr_integration B7 cases for RPR in recursive query
=C2=A0 nocfbo= t-0013 =C2=A0Reject row pattern recognition in recursive queries
=C2=A0 = nocfbot-0014 =C2=A0Enhance README.rpr per Tatsuo Ishii's review
=C2= =A0 nocfbot-0015 =C2=A0Round out README.rpr WindowAggState field coverage=C2=A0 nocfbot-0016 =C2=A0Add raw_expression_tree_walker coverage for RPR= raw nodes
=C2=A0 nocfbot-0017 =C2=A0Enhance README.rpr per Jian He'= s review
=C2=A0 nocfbot-0018 =C2=A0Clarify execRPR.c comments and tighte= n an Assert
=C2=A0 nocfbot-0019 =C2=A0Change nfa_add_state_unique signat= ure from bool to void
=C2=A0 nocfbot-0020 =C2=A0Add reluctant bounded mi= d-band test to rpr_nfa
=C2=A0 nocfbot-0021 =C2=A0Define RPR absorption t= erminology in README.rpr
=C2=A0 nocfbot-0022 =C2=A0Document the get_redu= ced_frame_status cascade invariant
=C2=A0 nocfbot-0023 =C2=A0Explain the= completed-head-context branch in
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 update_reduced_frame
=C2=A0 nocfbot-0024 =C2=A0Tighten= the RPR frame-boundary check from >=3D to =3D=3D
=C2=A0 nocfbot-0025= =C2=A0Reject single-row window frame in row pattern recognition
=C2=A0 = nocfbot-0026 =C2=A0Remove the redundant zero check on the RPR frame ending<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 offset

New since the 2026-05-30 post [7] -- nocfbot-0027..0068, in series ord= er.
These apply Jian He's round-3 review [1], an in-house static-ana= lysis
pass, and the v48 cosmetic fold (smallest-first, A..F at the tail)= .
Patches that change user-visible behavior are tagged [behavior change]= ,
except nocfbot-0042, whose narrow variable-limit change (251 -> 240= ) is
noted inline.

=C2=A0 nocfbot-0027 = =C2=A0Restore findTargetlistEntrySQL99 to static (per Tatsuo)
=C2=A0 noc= fbot-0028 =C2=A0Clarify RPR comments
=C2=A0 nocfbot-0029 =C2=A0Rename RP= R NFA constructors to make/clone
=C2=A0 nocfbot-0030 =C2=A0Demote RPR nf= aVisitedNWords to a local
=C2=A0 nocfbot-0031 =C2=A0Rename the AST-level= prefix/suffix rewrite from
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 "absorption" to "merging" =C2=A0(D3)
= =C2=A0 nocfbot-0032 =C2=A0Drop non-standard per-group banner labels from RP= R
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 forward declar= ations
=C2=A0 nocfbot-0033 =C2=A0Clarify that ExecRPRCleanupDeadContexts= always frees the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 failed context
=C2=A0 nocfbot-0034 =C2=A0Correct stale RPR comments = and document a defensive
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 window check

=C2=A0 nocfbot-0035 =C2=A0Fix unsafe (A{n,})= * quantifier flattening
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 [behavior change]
=C2=A0 =C2=A0 =C2=A0 (A{2,})* reaches {0} UNIO= N [2,INF); flattening to A* wrongly admits
=C2=A0 =C2=A0 =C2=A0 a single= A.=C2=A0 Skip multiplication when the outer is skippable and the
=C2=A0= =C2=A0 =C2=A0 child min >=3D 2.

=C2=A0 nocfbot-0036 =C2=A0Avoid = INF-valued quantifier bound in consecutive-merge
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [behavior change]
=C2=A0 =C2=A0 =C2= =A0 The merge overflow guard used <=3D, letting a merged min reach the=C2=A0 =C2=A0 =C2=A0 RPR_QUANTITY_INF sentinel; tightened to <.
=C2=A0 nocfbot-0037 =C2=A0Fix count slot leak in row pattern recognition a= bsorption
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [behav= ior change]
=C2=A0 =C2=A0 =C2=A0 An absorbable leaf VAR exiting inline a= t max count left its shared
=C2=A0 =C2=A0 =C2=A0 depth count slot dirty = for the sibling group; cleared on exit, with
=C2=A0 =C2=A0 =C2=A0 the co= unt-clear policy made explicit via Asserts.

=C2=A0 nocfbot-0038 =C2= =A0Demote dead runtime checks in the RPR executor to
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 assertions

=C2=A0 nocfbot-003= 9 =C2=A0Fix memory leak in row pattern recognition DEFINE
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evaluation =C2=A0[behavior change= ]
=C2=A0 =C2=A0 =C2=A0 Per-tuple DEFINE evaluation leaked into the wrong= context.

=C2=A0 nocfbot-0040 =C2=A0Honor reluctant quantifier for n= on-leading optional RPR
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 variables =C2=A0[behavior change]
=C2=A0 =C2=A0 =C2=A0 Reluctant= handling existed for leading VARs and groups but not for
=C2=A0 =C2=A0 = =C2=A0 a non-leading optional VAR routed through nfa_route_to_elem; e.g.=C2=A0 =C2=A0 =C2=A0 (B A?? C) matched A greedily.=C2=A0 Same skip-first p= attern applied.

=C2=A0 nocfbot-0041 =C2=A0Reject column-less compoun= d navigation =C2=A0[behavior change]
=C2=A0 =C2=A0 =C2=A0 A compound nav= with no column reference is now rejected at parse
=C2=A0 =C2=A0 =C2=A0 = time, instead of being silently accepted with a wrong result.

=C2=A0= nocfbot-0042 =C2=A0Reserve the high varId nibble for RPR control elements<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (the maximum pat= tern-variable count drops from 251 to 240)

=C2=A0 nocfbot-0043 =C2= =A0Generalize quantifier multiplication =C2=A0[behavior change]
=C2=A0 = =C2=A0 =C2=A0 Replaces the hand-rolled special cases for (child{p,q}){m,n} = with a
=C2=A0 =C2=A0 =C2=A0 general interval-contiguity test, folding ca= ses such as
=C2=A0 =C2=A0 =C2=A0 (A{2,3}){2,3} -> A{4,9} and (A+){3} = -> A{3,} while leaving genuine
=C2=A0 =C2=A0 =C2=A0 gaps unflattened.=

=C2=A0 nocfbot-0044 =C2=A0Tidy up row pattern recognition pattern c= ompilation
=C2=A0 nocfbot-0045 =C2=A0Drop redundant parentheses from row= pattern recognition
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 ereports
=C2=A0 nocfbot-0046 =C2=A0Tidy up forward declarations a= nd helper placement
=C2=A0 nocfbot-0047 =C2=A0Update the varId documenta= tion
=C2=A0 nocfbot-0048 =C2=A0Reformat the design-decisions chapter in = README.rpr
=C2=A0 nocfbot-0049 =C2=A0Point to the absorption-analysis do= cs from the RPR flag
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 definitions

=C2=A0 nocfbot-0050 =C2=A0Fix signed-integer over= flow in frame-end clamp
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 [behavior change]
=C2=A0 =C2=A0 =C2=A0 The frame-end clamp compu= ted frameOffset + 1 (int64) before the
=C2=A0 =C2=A0 =C2=A0 overflow che= ck, so a FOLLOWING offset near PG_INT64_MAX overflowed;
=C2=A0 =C2=A0 = =C2=A0 now added in two checked steps that clamp to PG_INT64_MAX.

= =C2=A0 nocfbot-0051 =C2=A0Rework row pattern EXPLAIN deparser to fix groupe= d
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 alternation br= anches =C2=A0[EXPLAIN output]
=C2=A0 =C2=A0 =C2=A0 The bytecode deparser= collapsed alternations whose branches were
=C2=A0 =C2=A0 =C2=A0 quantif= ied groups (e.g. (C | (A B)+ | D)).=C2=A0 Rewritten as recursive
=C2=A0 = =C2=A0 =C2=A0 descent over depth/jump-anchored windows; display-only, execu= tion
=C2=A0 =C2=A0 =C2=A0 was already correct.

=C2=A0 nocfbot-005= 2 =C2=A0Handle row pattern navigation nodes in exprTypmod and
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 isSimpleNode
=C2=A0 nocfbo= t-0053 =C2=A0Restore the error cursor for too many row pattern
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 variables
=C2=A0 nocfbo= t-0054 =C2=A0Test deparse of an inline row pattern window
=C2=A0 nocfbot= -0055 =C2=A0Fix a mislabeled INITIAL test

=C2=A0 nocfbot-0056 =C2=A0= Reject invalid column references in row pattern DEFINE
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 clauses =C2=A0[behavior change]
= =C2=A0 =C2=A0 =C2=A0 Outer-query correlated references and 3-part qualified= names in
=C2=A0 =C2=A0 =C2=A0 DEFINE were reaching an internal "Up= per-level Var found where not
=C2=A0 =C2=A0 =C2=A0 expected" (XX000= ); both now raise a clean, classified error at
=C2=A0 =C2=A0 =C2=A0 tran= sformColumnRef.

=C2=A0 nocfbot-0057 =C2=A0Fix shortest match for rel= uctant nullable quantifiers
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 [behavior change]
=C2=A0 =C2=A0 =C2=A0 An outer reluctant = quantifier over a nullable reluctant body, e.g.
=C2=A0 =C2=A0 =C2=A0 (A?= ?)+?, consumed rows instead of taking the empty match.=C2=A0 The
=C2=A0 = =C2=A0 =C2=A0 count<min branch in nfa_advance_end now mirrors its siblin= g and
=C2=A0 =C2=A0 =C2=A0 routes the fast-forward exit first for reluct= ant elements.

=C2=A0 nocfbot-0058 =C2=A0Compare varno when preservin= g DEFINE-referenced columns
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 [behavior change]
=C2=A0 =C2=A0 =C2=A0 The allpaths DEFINE= -column retention loop compared varattno only;
=C2=A0 =C2=A0 =C2=A0 it n= ow matches varno/varlevelsup too, dropping over-retention.

=C2=A0 no= cfbot-0059 =C2=A0Allow a row pattern quantifier with no space before the=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 alternation operat= or =C2=A0[behavior change]
=C2=A0 =C2=A0 =C2=A0 The lexer glues "*|= " etc. into one token, so (A*|B) failed.=C2=A0 The
=C2=A0 =C2=A0 = =C2=A0 grammar now recognizes the glued forms via a transient trailing_alt<= br>=C2=A0 =C2=A0 =C2=A0 flag and splitRPRTrailingAlt() re-splits so "A= *|B" =3D=3D "A* | B".

=C2=A0 nocfbot-0060 =C2=A0Fix o= utdated function and file references in RPR docs
=C2=A0 nocfbot-0061 =C2= =A0Assert that row pattern nesting depth never aliases the
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 RPR_DEPTH_NONE sentinel

= =C2=A0 nocfbot-0062 =C2=A0Invalidate the row pattern nav slot cache when a = window
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 partition= changes =C2=A0[behavior change]
=C2=A0 =C2=A0 =C2=A0 release_partition(= ) now resets nav_slot_pos so a stale cached slot
=C2=A0 =C2=A0 =C2=A0 po= sition cannot survive a partition boundary.

=C2=A0 nocfbot-0063 =C2= =A0Tidy up formatting in row pattern recognition code =C2=A0 (A)
=C2=A0 = nocfbot-0064 =C2=A0Modernize idioms in row pattern recognition code =C2=A0 = =C2=A0 (B)
=C2=A0 nocfbot-0065 =C2=A0Use width-explicit integer limit ma= cros =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(C)
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (INT_MAX -> PG_INT32_MAX, the = unbounded sentinel)
=C2=A0 nocfbot-0066 =C2=A0Tidy up row pattern recogn= ition regression test comments (D)
=C2=A0 nocfbot-0067 =C2=A0Add row pat= tern recognition negative and coverage tests (E)
=C2=A0 nocfbot-0068 =C2= =A0Use foreach_node and friends in RPR code =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (F)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (= foreach + lfirst() -> foreach_node;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0foreach_current_index, dropping redundant br= eaks)


Issue-to-patch map (each raised issue -> decision -&= gt; landing), by source.
(Earlier incremental cleanup 0001..0016: see [4= ][5][6].)

Jian He, round 1 (2026-05-26):=C2=A0 Short-circuit optimization =C2=A0 =C2=A0 =C2=A0 =C2=A0invited to dr= ive =C2=A0 -> separate series
=C2=A0 Absorption README narrative =C2= =A0 =C2=A0 =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> no= cfbot-0017
=C2=A0 DFS expansion =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 -> nocfbot-0017
=C2=A0 initialAdvance README mismatch =C2=A0 = =C2=A0accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0017=C2=A0 "absorption" -> "merging" rename =C2=A0acce= pt (Tatsuo) =C2=A0 =C2=A0-> nocfbot-0031
=C2=A0 Defensive Assert in a= dvance_var =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> no= cfbot-0018
=C2=A0 Finalize unnecessary? =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 keep =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocf= bot-0018
=C2=A0 Greedy comment label =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot= -0018
=C2=A0 state->next reset =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 decline =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> no= cfbot-0018
=C2=A0 visited marking purpose =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0018<= br>=C2=A0 compareDepth comment =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0018=C2=A0 ALT depth invariant Assert =C2=A0 =C2=A0 =C2=A0 =C2=A0decline =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0018
=C2=A0 Unused b= ool return =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0accept = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0019
=C2=A0 coun= t >=3D 3 test coverage =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0accept =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0020

Jian He, round= 2 (2026-05-28):
=C2=A0 RPRContext consolidation =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0defer (Tatsuo) =C2=A0 =C2=A0 -> D2
=C2=A0 README termino= logy + typo =C2=A0 =C2=A0 =C2=A0 =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 -> nocfbot-0021
=C2=A0 get_reduced_frame_status order = =C2=A0 =C2=A0keep =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> no= cfbot-0022
=C2=A0 states =3D=3D NULL branch coverage =C2=A0 =C2=A0alread= y reached =C2=A0 =C2=A0-> nocfbot-0023
=C2=A0 currentPos >=3D ->= ; =3D=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 accept =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0024
=C2=A0 single-row fra= me (6.10.2, D1) =C2=A0 =C2=A0 reject (Tatsuo) =C2=A0 =C2=A0-> nocfbot-00= 25
=C2=A0 ExecRPRProcessRow refactor =C2=A0 =C2=A0 =C2=A0 =C2=A0Datum fi= x only =C2=A0 =C2=A0 -> nocfbot-0026

Jian He, round 3 (2026-05-30= ) [1] (reply [2]):
=C2=A0 "Tests line N" comments =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 rephrase =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> = nocfbot-0028
=C2=A0 "at the END" wording =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= -> nocfbot-0028
=C2=A0 uppercase END cleanup =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ->= nocfbot-0028
=C2=A0 nfa_advance_var count comment =C2=A0 =C2=A0 reword = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0028
=C2=A0 make= / clone rename =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 accept =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0029
=C2=A0 nfaVisi= tedNWords field =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0accept (-> loca= l) =C2=A0-> nocfbot-0030
=C2=A0 nfaStateSize field =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0keep =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 -> (no change)
=C2=A0 drop the elem parameter =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 keep =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 -> (no change)

Jian He, off-list (2026-05-15..06-04):<= br>=C2=A0 Per-group banner labels =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 drop = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0032
=C2= =A0 Dead-context cleanup comment =C2=A0 =C2=A0 =C2=A0clarify =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0033
=C2=A0 rpr.c pg_unreachabl= e refactor =C2=A0 =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -= > nocfbot-0044
=C2=A0 ABSORBABLE doc pointer =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> noc= fbot-0049
=C2=A0 has_column_ref necessity =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0defend =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> (no change)=C2=A0 CFI dedup =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 decline =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0-> (no change)
=C2=A0 fractional FOLLOWING tests =C2=A0 =C2=A0 =C2= =A0 =C2=A0decline =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> (no change= )
=C2=A0 initial/SEEK rename =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 defer =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> separate= series

Tatsuo Ishii + Jian round 4 (2026-05-31..06-02):
=C2=A0 T= atsuo README review =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0accept = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0014
=C2=A0 find= TargetlistEntrySQL99 static =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 -> nocfbot-0027
=C2=A0 varId high nibble ("3") = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 -> nocfbot-0042
=C2=A0 ereport redundant parens =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0accept =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -&= gt; nocfbot-0045
=C2=A0 forward-decl / helper placement =C2=A0 accept = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0046
=C2=A0 varI= d documentation sync =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0accept =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0047
=C2=A0 XII chapter prose= reformat =C2=A0 =C2=A0 =C2=A0 =C2=A0reformat =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 -> nocfbot-0048
=C2=A0 README 0005 -> 0006 reorder =C2=A0 = =C2=A0 =C2=A0 at submit (Ishii) =C2=A0-> committer
=C2=A0 double-free= question =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cannot occur =C2= =A0 =C2=A0 =C2=A0 -> (no change)
=C2=A0 redundant continue =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0keep =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 -> (no change)
=C2=A0 non-ASCII section sign= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0already ASCII =C2=A0 =C2=A0 =C2= =A0-> (no change)
=C2=A0 empty pattern PATTERN () =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0R020 reject right =C2=A0-> (no change)

in-house = static analysis:
=C2=A0 stale comments + window check =C2=A0 =C2=A0 fix = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0034=C2=A0 unsafe (A{n,})* flattening =C2=A0 =C2=A0 =C2=A0 =C2=A0fix =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0035
=C2= =A0 INF-valued merge bound =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fix =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0036
= =C2=A0 count slot leak =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0->= nocfbot-0037
=C2=A0 dead runtime checks -> asserts =C2=A0 =C2=A0fix = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0038=C2=A0 DEFINE per-tuple memory leak =C2=A0 =C2=A0 =C2=A0fix =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0039
=C2=A0 relu= ctant non-leading optional =C2=A0 =C2=A0fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0040
=C2=A0 column-less compound n= avigation =C2=A0 fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0-> nocfbot-0041
=C2=A0 incomplete quantifier fold (EP-1) generaliz= e =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0043
=C2=A0 frame-end signed= overflow =C2=A0 =C2=A0 =C2=A0 =C2=A0 fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0050
=C2=A0 EXPLAIN deparser group= ed-alt =C2=A0 =C2=A0 =C2=A0fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0-> nocfbot-0051
=C2=A0 exprTypmod / isSimpleNode nav =C2= =A0 =C2=A0 fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0->= nocfbot-0052
=C2=A0 errpos for too-many-vars =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> = nocfbot-0053
=C2=A0 inline-OVER deparse coverage =C2=A0 =C2=A0 =C2=A0fix= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0054<= br>=C2=A0 INITIAL test mislabel =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 f= ix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-005= 5
=C2=A0 DEFINE outer / 3-part column ref =C2=A0fix =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0056
=C2=A0 reluctant-n= ullable shortest match fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0-> nocfbot-0057
=C2=A0 allpaths varno comparison =C2=A0 =C2=A0= =C2=A0 =C2=A0 fix =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-= > nocfbot-0058
=C2=A0 glued quantifier + alternation =C2=A0 =C2=A0fix= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0059<= br>=C2=A0 nfa_advance / README references =C2=A0 doc =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0060
=C2=A0 invariant as= serts / notes =C2=A0 =C2=A0 =C2=A0 =C2=A0 assert =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 -> nocfbot-0061
=C2=A0 nav_slot / LAST(x,0) edge ca= ses =C2=A0 defense =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> nocfbot-0= 062

v48 final fold (off-list sweep + Jian round 5 v47 patch):
=C2= =A0 pure formatting =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 fold =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot= -0063
=C2=A0 idioms (palloc_array, Max, ...) =C2=A0 fold =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0064
=C2=A0 INT_MAX -&g= t; PG_INT32_MAX sentinel =C2=A0fold =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 -> nocfbot-0065
=C2=A0 regress comment + doc hygiene =C2= =A0 =C2=A0 fold =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocf= bot-0066
=C2=A0 new negative / coverage tests =C2=A0 =C2=A0 fold =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0067
=C2=A0 fore= ach_node + lfirst sweep =C2=A0 =C2=A0 =C2=A0 fold =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 -> nocfbot-0068

Please let me kno= w if any of the slicing or the grouping looks off, or
if you would prefe= r the correctness fixes split out ahead of the
cosmetic fold.

Tha= nks again to Jian for the careful reading.

Best regards,
Henson
[1] Jian's review, round 3 (2026-05-30):
=C2=A0 =C2=A0 https://postgr.es/m/CACJufxEsaU8GQ4yeX= TWhAO8VjbrZTh5CpvUqz=3D4a3T0Cwz44pA@mail.gmail.com

[2] My point-= by-point reply to the round-3 review (2026-05-30):
=C2=A0 =C2=A0 https://postgr.es/m/CAAAe_zBi1dOtWb2vnwS= vGwuU0-bqAOm_7dOM4u-CmukA8xaV5Q@mail.gmail.com

[3] Tatsuo's = note on the 0025 ereport wrapping (2026-06-02):
=C2=A0 =C2=A0 https://postgr.es/m/20260602.120305.13654069088823850= 77.ishii@postgresql.org

[4] Earlier incremental post -- nocfbot-= 0001..0011 (2026-05-09):
=C2=A0 =C2=A0 https://postgr.es/m/CAAAe_zCL9UtiYthrSaXCmhFMK6Q3YQ6BQGgae7C9en= 2k=3DS9doA@mail.gmail.com

[5] Earlier incremental post -- nocfbo= t-0012..0015 (2026-05-12):
=C2=A0 =C2=A0 https://postgr.es/m/CAAAe_zBg7y5frYxReua1dczXkMK-7fk6bkVo5ZQXDY= xpxe0cwA@mail.gmail.com

[6] nocfbot-0016, sent at the time as 00= 15 (2026-05-26):
=C2=A0 =C2=A0 https://postgr.es/m/CAAAe_zD7vCLCb+vxpO3P-NsDUZ=3DJcN8EGCV0dz0BNgBKsbOGc= Q@mail.gmail.com

[7] The 2026-05-30 post -- renumbered 0001..001= 6 and added 0017..0026:
=C2=A0 =C2=A0 https://postgr.es/m/CAAAe_zAuHwqUfqJOD4PDUkWsxTfTytNaandq11Kddw2bfC= cpvQ@mail.gmail.com
--00000000000094e18e0653ca9cf0-- --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0004-Reclassify-DEFINE-qualifier-check-and-reword-diag.txt" Content-Disposition: attachment; filename="nocfbot-0004-Reclassify-DEFINE-qualifier-check-and-reword-diag.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jq73 RnJvbSBjMjE1ZmVjMmI0YTk1NzU5NzMzMTRiOGIwNDY1NTJjYjU4NzA2NDVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDUgTWF5IDIwMjYgMTE6MzY6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIIDA0LzY4XSBS ZWNsYXNzaWZ5IERFRklORSBxdWFsaWZpZXIgY2hlY2sgYW5kIHJld29yZCBkaWFnbm9zdGljCiB0 byAiZXhwcmVzc2lvbiIKClNwbGl0IHRoZSBwcmUtY2hlY2sgaW50byB0aHJlZSBicmFuY2hlczog cGF0dGVybiB2YXJpYWJsZSAtPgpGRUFUVVJFX05PVF9TVVBQT1JURUQsIHJhbmdlIHZhcmlhYmxl ICh2aWEgcmVmbmFtZU5hbWVzcGFjZUl0ZW0pIC0+ClNZTlRBWF9FUlJPUiwgYW55dGhpbmcgZWxz ZSAtPiBmYWxsIHRocm91Z2ggdG8gbm9ybWFsIHJlc29sdXRpb24uClJld29yZCAicXVhbGlmaWVk IGNvbHVtbiByZWZlcmVuY2UiIHRvICJxdWFsaWZpZWQgZXhwcmVzc2lvbiIgc2luY2UKdGhlIHF1 b3RlZCB0b2tlbiBtYXkgaW5jbHVkZSBhbiBpbmRpcmVjdGlvbiB0YXJnZXQgb24gY29tcG9zaXRl CnR5cGVzIChlLmcuIChBLml0ZW1zKS5hbW91bnQpLgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMgICAgICAgIHwgMzEgKysrKysrKy0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfYmFzZS5vdXQgfCA4MCArKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsICAgICAgfCA2MSArKysrKysrKysrKysrKysrKyst LQogMyBmaWxlcyBjaGFuZ2VkLCAxNTMgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggMWU5Y2VlMzZlMzUuLjQyMjE2NDNkOWM4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTYyOCwxMSArNjI4LDI0IEBAIHRyYW5zZm9ybUNvbHVt blJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAlpZiAobm9kZSAhPSBO VUxMKQogCQlyZXR1cm4gbm9kZTsKIAotCS8qCi0JICogUXVhbGlmaWVkIGNvbHVtbiByZWZlcmVu Y2VzIGluIERFRklORSBhcmUgbm90IHN1cHBvcnRlZC4gIFRoaXMgY292ZXJzCi0JICogYm90aCBG Uk9NLWNsYXVzZSByYW5nZSB2YXJpYWJsZXMgKHByb2hpYml0ZWQgYnkgwqc2LjUpIGFuZCBwYXR0 ZXJuCi0JICogdmFyaWFibGUgcXVhbGlmaWVkIG5hbWVzIChlLmcuIFVQLnByaWNlKSwgd2hpY2gg YXJlIHZhbGlkIHBlciDCpzQuMTYKLQkgKiBidXQgbm90IHlldCBpbXBsZW1lbnRlZC4KKwkvKi0t LS0tLS0tLS0KKwkgKiBRdWFsaWZpZWQgcmVmZXJlbmNlcyBpbiBERUZJTkUgbmVlZCBhIHRyaS1j bGFzc2lmaWNhdGlvbjoKKwkgKgorCSAqCSAgcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZXIgKGUu Zy4gVVAucHJpY2UpOiB2YWxpZCBwZXIgMTkwNzUtNSA0LjE2CisJICoJICBidXQgbm90IHlldCBp bXBsZW1lbnRlZCAtLSByYWlzZSBGRUFUVVJFX05PVF9TVVBQT1JURUQuCisJICoKKwkgKgkgIEZS T00tY2xhdXNlIHJhbmdlIHZhcmlhYmxlIHF1YWxpZmllcjogcHJvaGliaXRlZCBieSAxOTA3NS01 IDYuNQorCSAqCSAgLS0gcmFpc2UgU1lOVEFYX0VSUk9SLgorCSAqCisJICoJICBhbnkgb3RoZXIg cXVhbGlmaWVyICh0eXBvLCB1bmRlZmluZWQgbmFtZSk6IGZhbGwgdGhyb3VnaCBhbmQgbGV0CisJ ICoJICBub3JtYWwgY29sdW1uIHJlc29sdXRpb24gcHJvZHVjZSBhIHNlbnNpYmxlIGVycm9yLgor CSAqCisJICogVGhlIHF1b3RlZCB0ZXh0IHJlZmxlY3RzIG9ubHkgdGhlIENvbHVtblJlZiBwb3J0 aW9uOyBhIHRyYWlsaW5nIGZpZWxkCisJICogc2VsZWN0aW9uIG9uIGEgY29tcG9zaXRlIHR5cGUg KGUuZy4gIi5hbW91bnQiIGluICIoQS5pdGVtcykuYW1vdW50IikKKwkgKiBsaXZlcyBpbiB0aGUg c3Vycm91bmRpbmcgQV9JbmRpcmVjdGlvbiBub2RlIGFuZCBpcyBub3QgaW5jbHVkZWQgaGVyZS4K KwkgKiBUaGF0IGNhbiBiZSByZXZpc2l0ZWQgd2hlbiBNRUFTVVJFUyBzdXBwb3J0IGFkZHMgaW5k aXJlY3Rpb24tYXdhcmUKKwkgKiB0cmF2ZXJzYWwuCisJICotLS0tLS0tLS0tCiAJICovCiAJaWYg KHBzdGF0ZS0+cF9leHByX2tpbmQgPT0gRVhQUl9LSU5EX1JQUl9ERUZJTkUgJiYKIAkJbGlzdF9s ZW5ndGgoY3JlZi0+ZmllbGRzKSAhPSAxKQpAQCAtNjUzLDE1ICs2NjYsMTcgQEAgdHJhbnNmb3Jt Q29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQlpZiAoaXNf cGF0dGVybl92YXIpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coInBhdHRlcm4gdmFyaWFibGUgcXVh bGlmaWVkIGNvbHVtbiByZWZlcmVuY2UgXCIlc1wiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5F IGNsYXVzZSIsCisJCQkJCSBlcnJtc2coInBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJl c3Npb24gXCIlc1wiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVzZSIsCiAJCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwotCQllbHNlCisJCWVsc2UgaWYgKHJlZm5hbWVO YW1lc3BhY2VJdGVtKHBzdGF0ZSwgTlVMTCwgcXVhbGlmaWVyLAorCQkJCQkJCQkJICBjcmVmLT5s b2NhdGlvbiwgTlVMTCkgIT0gTlVMTCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJIGVycm1zZygicmFuZ2UgdmFyaWFibGUgcXVh bGlmaWVkIGNvbHVtbiByZWZlcmVuY2UgXCIlc1wiIGlzIG5vdCBhbGxvd2VkIGluIERFRklORSBj bGF1c2UiLAorCQkJCQkgZXJybXNnKCJyYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lv biBcIiVzXCIgaXMgbm90IGFsbG93ZWQgaW4gREVGSU5FIGNsYXVzZSIsCiAJCQkJCQkJTmFtZUxp c3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkvKiBlbHNlOiB1bmtub3duIHF1YWxpZmllciAtLSBm YWxsIHRocm91Z2ggdG8gbm9ybWFsIHJlc29sdXRpb24gKi8KIAl9CiAKIAkvKi0tLS0tLS0tLS0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggYTYzMjExZmYzNjQuLjg2 YWJiOTZjMTc3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNl Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAtMzA3 NCwxMCArMzA3NCwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVG SU5FIEEgQVMgQS52YWwgPiAwCiApOwotRVJST1I6ICBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmll ZCBjb2x1bW4gcmVmZXJlbmNlICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZCBpbiBERUZJTkUgY2xh dXNlCitFUlJPUjogIHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImEudmFs IiBpcyBub3Qgc3VwcG9ydGVkIGluIERFRklORSBjbGF1c2UKIExJTkUgNzogICAgIERFRklORSBB IEFTIEEudmFsID4gMAogICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlICJhLnZhbCIg aXMgbm90IHN1cHBvcnRlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1 YWxpZmllZCBleHByZXNzaW9uICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZAogLS0gUEFUVEVSTi1v bmx5IHZhcmlhYmxlIHF1YWxpZmllZCBuYW1lOiBub3Qgc3VwcG9ydGVkIGV2ZW4gd2l0aG91dCBE RUZJTkUgZW50cnkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgpAQCAtMzA4 NywxMCArMzA4NywxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQispCiAgICAg REVGSU5FIEEgQVMgQi52YWwgPiAwCiApOwotRVJST1I6ICBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxp ZmllZCBjb2x1bW4gcmVmZXJlbmNlICJiLnZhbCIgaXMgbm90IHN1cHBvcnRlZCBpbiBERUZJTkUg Y2xhdXNlCitFUlJPUjogIHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImIu dmFsIiBpcyBub3Qgc3VwcG9ydGVkIGluIERFRklORSBjbGF1c2UKIExJTkUgNzogICAgIERFRklO RSBBIEFTIEIudmFsID4gMAogICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlICJiLnZh bCIgaXMgbm90IHN1cHBvcnRlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxl IHF1YWxpZmllZCBleHByZXNzaW9uICJiLnZhbCIgaXMgbm90IHN1cHBvcnRlZAogLS0gREVGSU5F LW9ubHkgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IHN0aWxsIGEgcGF0dGVybiB2YXJpYWJsZSwg bm90IGEgcmFuZ2UgdmFyaWFibGUKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2Vy cgpAQCAtMzEwMyw3ICszMTAzLDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBERUZJTkUgdmFy aWFibGUgImIiIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4KIExJTkUgNzogICAgIERFRklORSBBIEFT IHZhbCA+IDAsIEIgQVMgQi52YWwgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVt biByZWZlcmVuY2UgImIudmFsIiBpcyBub3Qgc3VwcG9ydGVkCistLSBFeHBlY3RlZDogRVJST1I6 IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImIudmFsIiBpcyBub3Qgc3Vw cG9ydGVkCiAtLSBGUk9NLWNsYXVzZSByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90 IGFsbG93ZWQgKHByb2hpYml0ZWQgYnkgU1FMIHN0YW5kYXJkIDYuNSkKIFNFTEVDVCBDT1VOVCgq KSBPVkVSIHcKIEZST00gcnByX2VycgpAQCAtMzExMywxMCArMzExMyw3NiBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgcnByX2Vyci52YWwgPiAwCiAp OwotRVJST1I6ICByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAicnBy X2Vyci52YWwiIGlzIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UKK0VSUk9SOiAgcmFuZ2Ug dmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gInJwcl9lcnIudmFsIiBpcyBub3QgYWxsb3dl ZCBpbiBERUZJTkUgY2xhdXNlCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBycHJfZXJyLnZhbCA+ IDAKICAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogcmFuZ2Ug dmFyaWFibGUgcXVhbGlmaWVkIGNvbHVtbiByZWZlcmVuY2UgInJwcl9lcnIudmFsIiBpcyBub3Qg YWxsb3dlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgZXhw cmVzc2lvbiAicnByX2Vyci52YWwiIGlzIG5vdCBhbGxvd2VkCistLSBVbmtub3duIHF1YWxpZmll ciAobmVpdGhlciBwYXR0ZXJuIHZhciBub3IgcmFuZ2UgdmFyKTogdGhlIERFRklORSBwcmUtY2hl Y2sKKy0tIG11c3QgZmFsbCB0aHJvdWdoIHNvIHRoYXQgbm9ybWFsIGNvbHVtbiByZXNvbHV0aW9u IHByb2R1Y2VzIGEgc2Vuc2libGUgZXJyb3IuCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9N IHJwcl9lcnIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQor ICAgIERFRklORSBBIEFTIG5vc3VjaC52YWwgPiAwCispOworRVJST1I6ICBtaXNzaW5nIEZST00t Y2xhdXNlIGVudHJ5IGZvciB0YWJsZSAibm9zdWNoIgorTElORSA3OiAgICAgREVGSU5FIEEgQVMg bm9zdWNoLnZhbCA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBF UlJPUjogbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgIm5vc3VjaCIKKy0tIFVu cXVhbGlmaWVkIGNvbXBvc2l0ZSBmaWVsZCBhY2Nlc3MgaW4gREVGSU5FIHdvcmtzOiBubyBxdWFs aWZpZXIgbWVhbnMgbm8KKy0tIHBhdHRlcm4vcmFuZ2UtdmFyIG5hdmlnYXRpb24sIHNvIHRoZSBw cmUtY2hlY2sgc2tpcHMgYW5kIG5vcm1hbCByZXNvbHV0aW9uCistLSBoYW5kbGVzICIoaXRlbXMp LmFtb3VudCIgdmlhIEFfSW5kaXJlY3Rpb24gb24gdGhlIGN1cnJlbnQgcm93LgorQ1JFQVRFIFRZ UEUgcnByX2l0ZW0gQVMgKG5hbWUgVEVYVCwgYW1vdW50IElOVCk7CitDUkVBVEUgVEVNUCBUQUJM RSBycHJfY29tcG9zaXRlIChpZCBpbnQsIGl0ZW1zIHJwcl9pdGVtKTsKK0lOU0VSVCBJTlRPIHJw cl9jb21wb3NpdGUgVkFMVUVTICgxLCBST1coJ2EnLDUpKSwgKDIsIFJPVygnYicsMTUpKSwgKDMs IFJPVygnYycsMjUpKTsKK1NFTEVDVCBpZCwgKGl0ZW1zKS5hbW91bnQsIENPVU5UKCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX2NvbXBvc2l0ZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIChpdGVtcykuYW1vdW50ID4gMTAKKyk7CisgaWQgfCBhbW91bnQgfCBjbnQg CistLS0tKy0tLS0tLS0tKy0tLS0tCisgIDEgfCAgICAgIDUgfCAgIDAKKyAgMiB8ICAgICAxNSB8 ICAgMgorICAzIHwgICAgIDI1IHwgICAxCisoMyByb3dzKQorCistLSBFeHBlY3RlZDogcm93cyB3 aGVyZSAoaXRlbXMpLmFtb3VudCA+IDEwIGZvcm0gbWF0Y2hlczsgY291bnRzIHJlZmxlY3QgZnJh bWUgc2l6ZQorLS0gQ29tcG9zaXRlIHR5cGUgZmllbGQgc2VsZWN0aW9uIChxdWFsaWZpZWQgZm9y bXMpOiB0aGUgQ29sdW1uUmVmIHBvcnRpb24gKCJBLml0ZW1zIiBvcgorLS0gInJwcl9jb21wb3Np dGUuaXRlbXMiKSBpcyB3aGF0IGdldHMgcXVvdGVkOyB0aGUgdHJhaWxpbmcgIi5hbW91bnQiIGxp dmVzIGluCistLSB0aGUgc3Vycm91bmRpbmcgQV9JbmRpcmVjdGlvbiBub2RlIGFuZCBpcyBub3Qg dmlzaWJsZSB0byB0aGUgcHJlLWNoZWNrLgorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBy cHJfY29tcG9zaXRlCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyAoQS5pdGVtcykuYW1vdW50ID4gMTAKKyk7CitFUlJPUjogIHBh dHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImEuaXRlbXMiIGlzIG5vdCBzdXBw b3J0ZWQgaW4gREVGSU5FIGNsYXVzZQorTElORSA3OiAgICAgREVGSU5FIEEgQVMgKEEuaXRlbXMp LmFtb3VudCA+IDEwCisgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBleHByZXNzaW9uICJhLml0ZW1zIiBpcyBu b3Qgc3VwcG9ydGVkCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9jb21wb3NpdGUK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklO RSBBIEFTIChycHJfY29tcG9zaXRlLml0ZW1zKS5hbW91bnQgPiAxMAorKTsKK0VSUk9SOiAgcmFu Z2UgdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gInJwcl9jb21wb3NpdGUuaXRlbXMiIGlz IG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UKK0xJTkUgNzogICAgIERFRklORSBBIEFTIChy cHJfY29tcG9zaXRlLml0ZW1zKS5hbW91bnQgPiAxMAorICAgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Np b24gInJwcl9jb21wb3NpdGUuaXRlbXMiIGlzIG5vdCBhbGxvd2VkCitEUk9QIFRBQkxFIHJwcl9j b21wb3NpdGU7CitEUk9QIFRZUEUgcnByX2l0ZW07CiAtLSBTZW1hbnRpYyBlcnJvcnMKIC0tIFVu ZGVmaW5lZCBjb2x1bW4gaW4gREVGSU5FCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggODZlZDA2ZmVjNjguLmU4YzcyNzA2NzIwIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0yMDkyLDcgKzIwOTIsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgQS52YWwgPiAwCiApOwotLS0gRXhw ZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNl ICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZh cmlhYmxlIHF1YWxpZmllZCBleHByZXNzaW9uICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZAogCiAt LSBQQVRURVJOLW9ubHkgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBzdXBwb3J0ZWQgZXZl biB3aXRob3V0IERFRklORSBlbnRyeQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMjEwMyw3 ICsyMTAzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIrKQogICAgIERFRklO RSBBIEFTIEIudmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJs ZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKKy0t IEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAi Yi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKIAogLS0gREVGSU5FLW9ubHkgdmFyaWFibGUgcXVhbGlm aWVkIG5hbWU6IHN0aWxsIGEgcGF0dGVybiB2YXJpYWJsZSwgbm90IGEgcmFuZ2UgdmFyaWFibGUK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTIxMTQsNyArMjExNCw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIEIudmFs ID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQg Y29sdW1uIHJlZmVyZW5jZSAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKKy0tIEV4cGVjdGVkOiBF UlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAiYi52YWwiIGlzIG5v dCBzdXBwb3J0ZWQKIAogLS0gRlJPTS1jbGF1c2UgcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIG5h bWU6IG5vdCBhbGxvd2VkIChwcm9oaWJpdGVkIGJ5IFNRTCBzdGFuZGFyZCA2LjUpCiBTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3CkBAIC0yMTI1LDcgKzIxMjUsNjAgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHJwcl9lcnIudmFsID4gMAogKTsKLS0tIEV4 cGVjdGVkOiBFUlJPUjogcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVtbiByZWZlcmVuY2Ug InJwcl9lcnIudmFsIiBpcyBub3QgYWxsb3dlZAorLS0gRXhwZWN0ZWQ6IEVSUk9SOiByYW5nZSB2 YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAicnByX2Vyci52YWwiIGlzIG5vdCBhbGxvd2Vk CisKKy0tIFVua25vd24gcXVhbGlmaWVyIChuZWl0aGVyIHBhdHRlcm4gdmFyIG5vciByYW5nZSB2 YXIpOiB0aGUgREVGSU5FIHByZS1jaGVjaworLS0gbXVzdCBmYWxsIHRocm91Z2ggc28gdGhhdCBu b3JtYWwgY29sdW1uIHJlc29sdXRpb24gcHJvZHVjZXMgYSBzZW5zaWJsZSBlcnJvci4KK1NFTEVD VCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2VycgorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgbm9zdWNoLnZhbCA+IDAKKyk7 CistLSBFeHBlY3RlZDogRVJST1I6IG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxl ICJub3N1Y2giCisKKy0tIFVucXVhbGlmaWVkIGNvbXBvc2l0ZSBmaWVsZCBhY2Nlc3MgaW4gREVG SU5FIHdvcmtzOiBubyBxdWFsaWZpZXIgbWVhbnMgbm8KKy0tIHBhdHRlcm4vcmFuZ2UtdmFyIG5h dmlnYXRpb24sIHNvIHRoZSBwcmUtY2hlY2sgc2tpcHMgYW5kIG5vcm1hbCByZXNvbHV0aW9uCist LSBoYW5kbGVzICIoaXRlbXMpLmFtb3VudCIgdmlhIEFfSW5kaXJlY3Rpb24gb24gdGhlIGN1cnJl bnQgcm93LgorQ1JFQVRFIFRZUEUgcnByX2l0ZW0gQVMgKG5hbWUgVEVYVCwgYW1vdW50IElOVCk7 CitDUkVBVEUgVEVNUCBUQUJMRSBycHJfY29tcG9zaXRlIChpZCBpbnQsIGl0ZW1zIHJwcl9pdGVt KTsKK0lOU0VSVCBJTlRPIHJwcl9jb21wb3NpdGUgVkFMVUVTICgxLCBST1coJ2EnLDUpKSwgKDIs IFJPVygnYicsMTUpKSwgKDMsIFJPVygnYycsMjUpKTsKK1NFTEVDVCBpZCwgKGl0ZW1zKS5hbW91 bnQsIENPVU5UKCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2NvbXBvc2l0ZQorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIChpdGVtcykuYW1vdW50ID4gMTAKKyk7Cist LSBFeHBlY3RlZDogcm93cyB3aGVyZSAoaXRlbXMpLmFtb3VudCA+IDEwIGZvcm0gbWF0Y2hlczsg Y291bnRzIHJlZmxlY3QgZnJhbWUgc2l6ZQorCistLSBDb21wb3NpdGUgdHlwZSBmaWVsZCBzZWxl Y3Rpb24gKHF1YWxpZmllZCBmb3Jtcyk6IHRoZSBDb2x1bW5SZWYgcG9ydGlvbiAoIkEuaXRlbXMi IG9yCistLSAicnByX2NvbXBvc2l0ZS5pdGVtcyIpIGlzIHdoYXQgZ2V0cyBxdW90ZWQ7IHRoZSB0 cmFpbGluZyAiLmFtb3VudCIgbGl2ZXMgaW4KKy0tIHRoZSBzdXJyb3VuZGluZyBBX0luZGlyZWN0 aW9uIG5vZGUgYW5kIGlzIG5vdCB2aXNpYmxlIHRvIHRoZSBwcmUtY2hlY2suCitTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3CitGUk9NIHJwcl9jb21wb3NpdGUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIChBLml0ZW1zKS5hbW91bnQg PiAxMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQg ZXhwcmVzc2lvbiAiYS5pdGVtcyIgaXMgbm90IHN1cHBvcnRlZAorU0VMRUNUIENPVU5UKCopIE9W RVIgdworRlJPTSBycHJfY29tcG9zaXRlCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyAocnByX2NvbXBvc2l0ZS5pdGVtcykuYW1v dW50ID4gMTAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHJhbmdlIHZhcmlhYmxlIHF1YWxpZmll ZCBleHByZXNzaW9uICJycHJfY29tcG9zaXRlLml0ZW1zIiBpcyBub3QgYWxsb3dlZAorRFJPUCBU QUJMRSBycHJfY29tcG9zaXRlOworRFJPUCBUWVBFIHJwcl9pdGVtOwogCiAtLSBTZW1hbnRpYyBl cnJvcnMKIAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0002-Unify-RPR-DEFINE-walkers-and-reject-volatile-call.txt" Content-Disposition: attachment; filename="nocfbot-0002-Unify-RPR-DEFINE-walkers-and-reject-volatile-call.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jq11 RnJvbSAyNTFmYmJkZWIxZmE0MzgzMzdjYjQzOTkyMDUyNDZjOTNkYzdhYTQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDQgTWF5IDIwMjYgMjE6Mzc6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDAyLzY4XSBV bmlmeSBSUFIgREVGSU5FIHdhbGtlcnMgYW5kIHJlamVjdCB2b2xhdGlsZSBjYWxsZWVzCgpQbGFu bmVyL2V4ZWN1dG9yOiBzaGFyZWQgbmF2X3RyYXZlcnNhbF93YWxrZXIgKyB2aXNpdF9uYXZfcGxh biAvCnZpc2l0X25hdl9leGVjIHJlcGxhY2UgZm91ciBwcmUtZXhpc3Rpbmcgd2Fsa2VyczsgZWFj aCBERUZJTkUKdmFyaWFibGUgaXMgd2Fsa2VkIG9uY2UgcGVyIHBoYXNlLgoKUGFyc2VyOiBzaW5n bGUgZGVmaW5lX3dhbGtlciB3aXRoIHBoYXNlIHRhZyAoQk9EWSAvIE5BVl9BUkcgLwpOQVZfT0ZG U0VUKSByZXBsYWNlcyB0d28gcHJlLWV4aXN0aW5nIHdhbGtlcnMgYW5kIGVuZm9yY2VzIGFsbCBy dWxlcwppbiBvbmUgdHJhdmVyc2FsLiAgVm9sYXRpbGUgYW5kIE5leHRWYWx1ZUV4cHIgYXJlIHJl amVjdGVkIChSUFIncyBORkEKbWF5IHJlLWV2YWx1YXRlIHByZWRpY2F0ZXMgZHVyaW5nIGJhY2t0 cmFja2luZywgbWFraW5nIHZvbGF0aWxlCnJlc3VsdHMgbm9uLWRldGVybWluaXN0aWM7IFNUQUJM RSBhbmQgSU1NVVRBQkxFIGFyZSBhY2NlcHRlZCkuCgpUaGUgY29uc3RhbnQtb2Zmc2V0IHJ1bGUg bm93IGFsc28gY2F0Y2hlcyBjb2x1bW4gcmVmZXJlbmNlcyBpbiB0aGUKaW5uZXIgb2Zmc2V0IG9m IGNvbXBvdW5kIGZvcm1zLgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAg ICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5j ICAgICAgICAgIHwgMjgyICsrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v Y3JlYXRlcGxhbi5jICAgICAgIHwgNDM0ICsrKysrKysrKy0tLS0tLS0tLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcnByLmMgICAgICAgICAgICAgIHwgIDM0ICsrCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcnByLmMgICAgICAgICAgICAgICAgfCAzOTMgKysrKysrKysrKy0tLS0tLQog c3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oICAgICAgICAgICAgICAgICAgIHwgIDIyICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAgICAgICAgICB8ICA3NCArLS0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0ICAgICB8ICAxMSArLQogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IHwgIDQwICstCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICAgICAgICAgICAgfCAgMzUgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAgICAgICB8ICAgNyArLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCAgICAgIHwgIDIzICstCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgMTAgKy0KIDEzIGZpbGVz IGNoYW5nZWQsIDc1OCBpbnNlcnRpb25zKCspLCA2MTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jCmluZGV4IDk5ZGUzNmI1N2YyLi4xYTc1NGJjZGFjNSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYwpAQCAtMzMxMiw4ICszMzEyLDEyIEBAIHNob3dfd2luZG93X2RlZihXaW5kb3dBZ2dT dGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQkJ CQkJCQkJCWVzKTsKIAkJCQkJCWJyZWFrOwogCQkJCQljYXNlIFJQUl9OQVZfT0ZGU0VUX0ZJWEVE OgotCQkJCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTmF2IE1hcmsgTG9va2FoZWFkIiwgTlVM TCwKLQkJCQkJCQkJCQkJICAgZmlyc3RPZmZzZXQsIGVzKTsKKwkJCQkJCWlmIChmaXJzdE9mZnNl dCA9PSBJTlQ2NF9NQVgpCisJCQkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9v a2FoZWFkIiwgImluZmluaXRlIiwKKwkJCQkJCQkJCQkJCWVzKTsKKwkJCQkJCWVsc2UKKwkJCQkJ CQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFyayBMb29rYWhlYWQiLCBOVUxMLAorCQkJ CQkJCQkJCQkJICAgZmlyc3RPZmZzZXQsIGVzKTsKIAkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0 OgogCQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBSUFIgbmF2IG9mZnNldCBraW5kOiAl ZCIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggZjFjZDliNjYwOTguLjIw MGQ4YTQ5MDAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0yNDcsOCAr MjQ3LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdp bm9iaiwgaW50NjQgcG9zKTsKIHN0YXRpYyBib29sIG5mYV9ldmFsdWF0ZV9yb3coV2luZG93T2Jq ZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBib29sICp2YXJNYXRjaGVkKTsKIAogLyogRm9yd2FyZCBk ZWNsYXJhdGlvbnMgLSBuYXZpZ2F0aW9uIG9mZnNldCBldmFsdWF0aW9uICovCi1zdGF0aWMgdm9p ZCBldmFsX25hdl9tYXhfb2Zmc2V0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVm aW5lQ2xhdXNlKTsKLXN0YXRpYyB2b2lkIGV2YWxfbmF2X2ZpcnN0X29mZnNldChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIExpc3QgKmRlZmluZUNsYXVzZSk7CitzdGF0aWMgdm9pZCBldmFsX2Rl ZmluZV9vZmZzZXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNl KTsKIAogLyoKICAqIE5vdCBudWxsIGluZm8gYml0IGFycmF5IGNvbnNpc3RzIG9mIDItYml0IGl0 ZW1zCkBAIC0yNTgwLDEyICsyNTc5LDEwIEBAIEV4ZWNXaW5kb3dBZ2coUGxhblN0YXRlICpwc3Rh dGUpCiAJCQl7CiAJCQkJaW50NjQJCWZpcnN0cmVhY2g7CiAKLQkJCQlpZiAod2luc3RhdGUtPm5h dkZpcnN0T2Zmc2V0ID4gLXdpbnN0YXRlLT5uZmFDb250ZXh0LT5tYXRjaFN0YXJ0Um93KQotCQkJ CQlmaXJzdHJlYWNoID0gd2luc3RhdGUtPm5mYUNvbnRleHQtPm1hdGNoU3RhcnRSb3cKLQkJCQkJ CSsgd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0OwotCQkJCWVsc2UKLQkJCQkJZmlyc3RyZWFjaCA9 IDA7Ci0JCQkJbmF2bWFya3BvcyA9IE1pbihuYXZtYXJrcG9zLCBmaXJzdHJlYWNoKTsKKwkJCQlp ZiAoIXBnX2FkZF9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPm5mYUNvbnRleHQtPm1hdGNoU3RhcnRS b3csCisJCQkJCQkJCQkJIHdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldCwKKwkJCQkJCQkJCQkgJmZp cnN0cmVhY2gpKQorCQkJCQluYXZtYXJrcG9zID0gTWluKG5hdm1hcmtwb3MsIE1heChmaXJzdHJl YWNoLCAwKSk7CiAJCQl9CiAKIAkJCWlmIChuYXZtYXJrcG9zID4gd2luc3RhdGUtPm5hdl93aW5v YmotPm1hcmtwb3MpCkBAIC0zMDM4LDE3ICszMDM1LDEzIEBAIEV4ZWNJbml0V2luZG93QWdnKFdp bmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJd2luc3RhdGUtPnJw U2tpcFRvID0gbm9kZS0+cnBTa2lwVG87CiAJLyogU2V0IHVwIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uIFBBVFRFUk4gY2xhdXNlIChjb21waWxlZCBORkEpICovCiAJd2luc3RhdGUtPnJwUGF0dGVy biA9IG5vZGUtPnJwUGF0dGVybjsKLQkvKiBTZXQgdXAgbmF2IG9mZnNldHMgZm9yIHR1cGxlc3Rv cmUgdHJpbSAqLworCS8qIFNldCB1cCBuYXYgb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltOyBy ZXNvbHZlIGFueSBORUVEU19FVkFMIGtpbmRzICovCiAJd2luc3RhdGUtPm5hdk1heE9mZnNldEtp bmQgPSBub2RlLT5uYXZNYXhPZmZzZXRLaW5kOwogCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBu b2RlLT5uYXZNYXhPZmZzZXQ7Ci0JaWYgKHdpbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5kID09IFJQ Ul9OQVZfT0ZGU0VUX05FRURTX0VWQUwpCi0JCWV2YWxfbmF2X21heF9vZmZzZXQod2luc3RhdGUs IG5vZGUtPmRlZmluZUNsYXVzZSk7CiAJd2luc3RhdGUtPmhhc0ZpcnN0TmF2ID0gbm9kZS0+aGFz Rmlyc3ROYXY7CiAJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0S2luZCA9IG5vZGUtPm5hdkZpcnN0 T2Zmc2V0S2luZDsKIAl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPSBub2RlLT5uYXZGaXJzdE9m ZnNldDsKLQlpZiAod2luc3RhdGUtPmhhc0ZpcnN0TmF2ICYmCi0JCXdpbnN0YXRlLT5uYXZGaXJz dE9mZnNldEtpbmQgPT0gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCkKLQkJZXZhbF9uYXZfZmly c3Rfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOworCWV2YWxfZGVmaW5lX29m ZnNldHMod2luc3RhdGUsIG5vZGUtPmRlZmluZUNsYXVzZSk7CiAKIAkvKiBDb3B5IG1hdGNoX3N0 YXJ0IGRlcGVuZGVuY3kgYml0bWFwc2V0IGZvciBwZXItY29udGV4dCBldmFsdWF0aW9uICovCiAJ d2luc3RhdGUtPmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQgPSBibXNfY29weShub2RlLT5kZWZp bmVNYXRjaFN0YXJ0RGVwZW5kZW50KTsKQEAgLTQwMjAsNDIgKzQwMTMsNjQgQEAgZXZhbF9uYXZf b2Zmc2V0X2hlbHBlcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIEV4cHIgKm9mZnNldF9leHBy LAogdHlwZWRlZiBzdHJ1Y3QKIHsKIAlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7Ci0JaW50NjQJ CW1heE9mZnNldDsKLQlib29sCQlvdmVyZmxvdzsJCS8qIHRydWUgaWYgb3ZlcmZsb3cgZGV0ZWN0 ZWQgKi8KLX0gRXZhbE5hdk1heENvbnRleHQ7CisJaW50NjQJCW1heE9mZnNldDsJCS8qIG1heCBi YWNrd2FyZC1yZWFjaCBvZmZzZXQgYWNyb3NzIGFsbCBuYXYKKwkJCQkJCQkJICogZXhwcnMgKi8K Kwlib29sCQltYXhPdmVyZmxvdzsJLyogdHJ1ZSBpZiBiYWNrd2FyZC1yZWFjaCBvdmVyZmxvdyBk ZXRlY3RlZCAqLworCWludDY0CQltaW5GaXJzdE9mZnNldDsgLyogbWluIGZvcndhcmQtZnJvbS1t YXRjaF9zdGFydCBvZmZzZXQ7IG1heSBiZQorCQkJCQkJCQkgKiBuZWdhdGl2ZSAoUFJFVl9GSVJT VDogaW5uZXIgLSBvdXRlciA8IDApICovCit9IEV2YWxEZWZpbmVPZmZzZXRzQ29udGV4dDsKIAog LyoKLSAqIGV2YWxfbmF2X21heF9vZmZzZXRfd2Fsa2VyCi0gKgkJV2FsayBleHByZXNzaW9uIHRy ZWUgZXZhbHVhdGluZyBiYWNrd2FyZC1yZWFjaCBvZmZzZXRzIGF0IHJ1bnRpbWUuCisgKiB2aXNp dF9uYXZfZXhlYworICoJCW5hdl90cmF2ZXJzYWxfd2Fsa2VyIGNhbGxiYWNrIChOYXZWaXNpdEZu KSBmb3IgdGhlIGV4ZWN1dG9yIHNpZGUuCisgKgkJQXQgZWFjaCBSUFJOYXZFeHByLCBldmFsdWF0 ZXMgdGhlIG5hdidzIG9mZnNldCBleHByZXNzaW9uKHMpIGF0CisgKgkJcnVudGltZSB2aWEgZXZh bF9uYXZfb2Zmc2V0X2hlbHBlciBhbmQgYWNjdW11bGF0ZXM6CisgKgorICoJCSAgLSBtYXhPZmZz ZXQgKGJhY2t3YXJkIHJlYWNoKTogUFJFViwgTEFTVC13aXRoLW9mZnNldCwgY29tcG91bmQKKyAq CQkJUFJFVl9MQVNUIChzZXRzIG1heE92ZXJmbG93IG9uIGludDY0IG92ZXJmbG93KSwgY29tcG91 bmQKKyAqCQkJTkVYVF9MQVNUICg9IG1heChpbm5lciAtIG91dGVyLCAwKSkKKyAqCQkgIC0gbWlu Rmlyc3RPZmZzZXQgKGZvcndhcmQgcmVhY2ggZnJvbSBtYXRjaF9zdGFydCk6IEZJUlNULAorICoJ CQljb21wb3VuZCBQUkVWX0ZJUlNUICg9IGlubmVyIC0gb3V0ZXIsIG1heSBiZSBuZWdhdGl2ZSks CisgKgkJCWNvbXBvdW5kIE5FWFRfRklSU1QgKD0gaW5uZXIgKyBvdXRlciwgY2xhbXBlZCB0byBJ TlQ2NF9NQVggb24KKyAqCQkJb3ZlcmZsb3c7IGFsd2F5cyA+PSAwIHNvIG5ldmVyIHVwZGF0ZXMg bWluRmlyc3RPZmZzZXQgaW4gcHJhY3RpY2UpCiAgKgotICogSGFuZGxlcyBzaW1wbGUgUFJFViwg TEFTVC13aXRoLW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QuCisgKiBD b3VudGVycGFydCBvZiB2aXNpdF9uYXZfcGxhbiBidXQgdXNpbmcgcnVudGltZSBldmFsdWF0aW9u IGluc3RlYWQgb2YKKyAqIENvbnN0IGZvbGRpbmc7IHJ1bnMgb25seSBmb3Igb2Zmc2V0cyB0aGUg cGxhbm5lciBtYXJrZWQgTkVFRFNfRVZBTC4KKyAqIE1hdGNoLXN0YXJ0IGRlcGVuZGVuY3kgaXMg bm90IHJlY29tcHV0ZWQgaGVyZSAtLSB0aGUgcGxhbm5lcidzIGJpdG1hcHNldAorICogaXMgcmV1 c2VkIHZpYSB3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudC4KICAqLwotc3RhdGlj IGJvb2wKLWV2YWxfbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmN0eCkK K3N0YXRpYyB2b2lkCit2aXNpdF9uYXZfZXhlYyhOYXZUcmF2ZXJzYWwgKnQsIFJQUk5hdkV4cHIg Km5hdikKIHsKLQlFdmFsTmF2TWF4Q29udGV4dCAqY29udGV4dCA9IChFdmFsTmF2TWF4Q29udGV4 dCAqKSBjdHg7Ci0KLQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7CisJRXZhbERl ZmluZU9mZnNldHNDb250ZXh0ICpjb250ZXh0ID0gKEV2YWxEZWZpbmVPZmZzZXRzQ29udGV4dCAq KSB0LT5kYXRhOwogCi0JLyogU2hvcnQtY2lyY3VpdCBpZiBvdmVyZmxvdyBhbHJlYWR5IGRldGVj dGVkICovCi0JaWYgKGNvbnRleHQtPm92ZXJmbG93KQotCQlyZXR1cm4gZmFsc2U7CisJLyoKKwkg KiBQYXJzZXIgZ3VhcmFudGVlIChtaXJyb3JzIHZpc2l0X25hdl9wbGFuKTogbmF2J3MgZGlyZWN0 IGNoaWxkcmVuIGFyZQorCSAqIG5ldmVyIFJQUk5hdkV4cHIgLS0gY29tcG91bmQgbmVzdGluZyBp cyBmbGF0dGVuZWQgaW4gcGxhY2UgYW5kIGFueQorCSAqIG90aGVyIG5lc3RpbmcgaXMgcmVqZWN0 ZWQuICBPdXRlci1raW5kIGRpc3BhdGNoIGlzIHN1ZmZpY2llbnQuCisJICovCisJQXNzZXJ0KG5h di0+YXJnID09IE5VTEwgfHwgIUlzQShuYXYtPmFyZywgUlBSTmF2RXhwcikpOworCUFzc2VydChu YXYtPm9mZnNldF9hcmcgPT0gTlVMTCB8fCAhSXNBKG5hdi0+b2Zmc2V0X2FyZywgUlBSTmF2RXhw cikpOworCUFzc2VydChuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcgPT0gTlVMTCB8fAorCQkgICAh SXNBKG5hdi0+Y29tcG91bmRfb2Zmc2V0X2FyZywgUlBSTmF2RXhwcikpOwogCi0JaWYgKElzQShu b2RlLCBSUFJOYXZFeHByKSkKKwkvKiBCYWNrd2FyZCByZWFjaDogUFJFViwgTEFTVC13aXRoLW9m ZnNldCAqLworCWlmICghY29udGV4dC0+bWF4T3ZlcmZsb3cpCiAJewotCQlSUFJOYXZFeHByICpu YXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwogCQlpbnQ2NAkJcmVhY2ggPSAwOworCQlib29sCQln b3RSZWFjaCA9IGZhbHNlOwogCiAJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWKQogCQl7 CiAJCQlyZWFjaCA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCiAJ CQkJCQkJCQkJICAgbmF2LT5vZmZzZXRfYXJnLCAxKTsKKwkJCWdvdFJlYWNoID0gdHJ1ZTsKIAkJ fQogCQllbHNlIGlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9MQVNUICYmIG5hdi0+b2Zmc2V0X2Fy ZyAhPSBOVUxMKQogCQl7CiAJCQlyZWFjaCA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4 dC0+d2luc3RhdGUsCiAJCQkJCQkJCQkJICAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJCWdvdFJl YWNoID0gdHJ1ZTsKIAkJfQogCQllbHNlIGlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xB U1QgfHwKIAkJCQkgbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9MQVNUKQpAQCAtNDA2OCwxNjgg KzQwODMsMTIzIEBAIGV2YWxfbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQg KmN0eCkKIAkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QpCiAJCQl7CiAJCQkJ aWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXIsIG91dGVyLCAmcmVhY2gpKQotCQkJCXsKLQkJ CQkJY29udGV4dC0+b3ZlcmZsb3cgPSB0cnVlOwotCQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQkJfQor CQkJCQljb250ZXh0LT5tYXhPdmVyZmxvdyA9IHRydWU7CisJCQkJZWxzZQorCQkJCQlnb3RSZWFj aCA9IHRydWU7CiAJCQl9CiAJCQllbHNlCi0JCQkJcmVhY2ggPSAoaW5uZXIgPiBvdXRlcikgPyBp bm5lciAtIG91dGVyIDogMDsKKwkJCXsKKwkJCQlyZWFjaCA9IE1heChpbm5lciAtIG91dGVyLCAw KTsKKwkJCQlnb3RSZWFjaCA9IHRydWU7CisJCQl9CiAJCX0KIAotCQljb250ZXh0LT5tYXhPZmZz ZXQgPSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCByZWFjaCk7Ci0KLQkJcmV0dXJuIGZhbHNlOwkJ CS8qIGRvbid0IHdhbGsgaW50byBjaGlsZHJlbiAqLworCQlpZiAoZ290UmVhY2gpCisJCQljb250 ZXh0LT5tYXhPZmZzZXQgPSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCByZWFjaCk7CiAJfQogCi0J cmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZXZhbF9uYXZfbWF4X29mZnNldF93 YWxrZXIsIGN0eCk7Ci19Ci0KLS8qCi0gKiBldmFsX25hdl9tYXhfb2Zmc2V0Ci0gKgkJRXZhbHVh dGUgbm9uLWNvbnN0YW50IGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgZXhlY3V0b3IgaW5pdCB0 aW1lLgotICoKLSAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXRLaW5k IHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwKLSAqIGJlY2F1c2Ugc29tZSBvZmZzZXQgaW4g UFJFViwgTEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9MQVNULwotICogTkVYVF9M QVNUIGNvbnRhaW5zIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgotICoK LSAqIE9uIG92ZXJmbG93LCBzZXRzIG5hdk1heE9mZnNldEtpbmQgdG8gUlBSX05BVl9PRkZTRVRf UkVUQUlOX0FMTCBzbyB0aGF0Ci0gKiB0dXBsZXN0b3JlIHRyaW0gaXMgZGlzYWJsZWQgZm9yIGJh Y2t3YXJkIG5hdmlnYXRpb24uCi0gKi8KLXN0YXRpYyB2b2lkCi1ldmFsX25hdl9tYXhfb2Zmc2V0 KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQotewotCUV2YWxO YXZNYXhDb250ZXh0IGN0eDsKLQlMaXN0Q2VsbCAgICpsYzsKLQotCWN0eC53aW5zdGF0ZSA9IHdp bnN0YXRlOwotCWN0eC5tYXhPZmZzZXQgPSAwOwotCWN0eC5vdmVyZmxvdyA9IGZhbHNlOwotCi0J Zm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQorCS8qIEZvcndhcmQgcmVhY2ggZnJvbSBtYXRjaF9z dGFydDogRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCAqLworCWlmIChuYXYt PmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKIAl7Ci0JCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRF bnRyeSAqKSBsZmlyc3QobGMpOworCQlpbnQ2NAkJcmVhY2g7CiAKLQkJZXZhbF9uYXZfbWF4X29m ZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZjdHgpOwotCX0KLQotCWlmIChjdHgub3Zl cmZsb3cpCi0JewotCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9IFJQUl9OQVZfT0ZGU0VU X1JFVEFJTl9BTEw7Ci0JCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSAwOworCQlyZWFjaCA9IGV2 YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkgICBuYXYt Pm9mZnNldF9hcmcsIDApOworCQljb250ZXh0LT5taW5GaXJzdE9mZnNldCA9IE1pbihjb250ZXh0 LT5taW5GaXJzdE9mZnNldCwgcmVhY2gpOwogCX0KLQllbHNlCisJZWxzZSBpZiAobmF2LT5raW5k ID09IFJQUl9OQVZfUFJFVl9GSVJTVCB8fAorCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRf RklSU1QpCiAJewotCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9IFJQUl9OQVZfT0ZGU0VU X0ZJWEVEOwotCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0ID0gY3R4Lm1heE9mZnNldDsKLQl9Ci19 CisJCWludDY0CQlpbm5lciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3Rh dGUsCisJCQkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDApOworCQlpbnQ2NAkJb3V0ZXIg PSBldmFsX25hdl9vZmZzZXRfaGVscGVyKGNvbnRleHQtPndpbnN0YXRlLAorCQkJCQkJCQkJCQkJ ICAgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxKTsKKwkJaW50NjQJCXJlYWNoOwogCi10eXBl ZGVmIHN0cnVjdAotewotCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKLQlpbnQ2NAkJbWluT2Zm c2V0OwotCWJvb2wJCWZvdW5kOwotfSBFdmFsTmF2Rmlyc3RDb250ZXh0OwotCi0vKgotICogZXZh bF9uYXZfZmlyc3Rfb2Zmc2V0X3dhbGtlcgotICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIGV2YWx1 YXRpbmcgZm9yd2FyZC1mcm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMuCi0gKgotICogSGFuZGxlcyBz aW1wbGUgRklSU1QgYW5kIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4KLSAqLwotc3Rh dGljIGJvb2wKLWV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAq Y3R4KQotewotCUV2YWxOYXZGaXJzdENvbnRleHQgKmNvbnRleHQgPSAoRXZhbE5hdkZpcnN0Q29u dGV4dCAqKSBjdHg7Ci0KLQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlp ZiAoSXNBKG5vZGUsIFJQUk5hdkV4cHIpKQotCXsKLQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5h dkV4cHIgKikgbm9kZTsKLQkJaW50NjQJCWNvbWJpbmVkID0gSU5UNjRfTUFYOwotCi0JCWlmIChu YXYtPmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BS RVZfRklSU1QpCiAJCXsKLQkJCWNvbnRleHQtPmZvdW5kID0gdHJ1ZTsKLQkJCWNvbWJpbmVkID0g ZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0LT53aW5zdGF0ZSwKLQkJCQkJCQkJCQkJICBu YXYtPm9mZnNldF9hcmcsIDApOworCQkJLyoKKwkJCSAqIHJlYWNoID0gaW5uZXIgLSBvdXRlci4g IEJvdGggYXJlIG5vbi1uZWdhdGl2ZSwgc28gdGhlIHJlc3VsdCA+PQorCQkJICogLUlOVDY0X01B WCwgd2hpY2ggY2Fubm90IHVuZGVyZmxvdyBpbnQ2NC4KKwkJCSAqLworCQkJcmVhY2ggPSBpbm5l ciAtIG91dGVyOwogCQl9Ci0JCWVsc2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklS U1QgfHwKLQkJCQkgbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9GSVJTVCkKKwkJZWxzZQogCQl7 Ci0JCQlpbnQ2NAkJaW5uZXIgPSBldmFsX25hdl9vZmZzZXRfaGVscGVyKGNvbnRleHQtPndpbnN0 YXRlLAotCQkJCQkJCQkJCQkJCSAgIG5hdi0+b2Zmc2V0X2FyZywgMCk7Ci0JCQlpbnQ2NAkJb3V0 ZXIgPSBldmFsX25hdl9vZmZzZXRfaGVscGVyKGNvbnRleHQtPndpbnN0YXRlLAotCQkJCQkJCQkJ CQkJCSAgIG5hdi0+Y29tcG91bmRfb2Zmc2V0X2FyZywgMSk7Ci0KLQkJCWNvbnRleHQtPmZvdW5k ID0gdHJ1ZTsKLQkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0ZJUlNUKQotCQkJewot CQkJCS8qCi0JCQkJICogY29tYmluZWQgPSBpbm5lciAtIG91dGVyLiAgQm90aCBhcmUgbm9uLW5l Z2F0aXZlLCBzbyB0aGUKLQkJCQkgKiByZXN1bHQgPj0gLUlOVDY0X01BWCwgd2hpY2ggY2Fubm90 IHVuZGVyZmxvdyBpbnQ2NC4KLQkJCQkgKi8KLQkJCQljb21iaW5lZCA9IGlubmVyIC0gb3V0ZXI7 Ci0JCQl9Ci0JCQllbHNlCi0JCQl7Ci0JCQkJLyoKLQkJCQkgKiBORVhUX0ZJUlNUOiBjb21iaW5l ZCA9IGlubmVyICsgb3V0ZXIuICBUaGlzIGNhbiBvdmVyZmxvdywKLQkJCQkgKiBidXQgdGhlIHJl c3VsdCBpcyBhbHdheXMgPj0gMCwgc28gaXQgbmV2ZXIgdXBkYXRlcwotCQkJCSAqIG1pbk9mZnNl dCAod2hpY2ggdHJhY2tzIHRoZSBtaW5pbXVtKS4gIENsYW1wIHRvIElOVDY0X01BWAotCQkJCSAq IG9uIG92ZXJmbG93LgotCQkJCSAqLwotCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KGlubmVy LCBvdXRlciwgJmNvbWJpbmVkKSkKLQkJCQkJY29tYmluZWQgPSBJTlQ2NF9NQVg7Ci0JCQl9CisJ CQkvKgorCQkJICogTkVYVF9GSVJTVDogcmVhY2ggPSBpbm5lciArIG91dGVyLiAgVGhpcyBjYW4g b3ZlcmZsb3csIGJ1dCB0aGUKKwkJCSAqIHJlc3VsdCBpcyBhbHdheXMgPj0gMCwgc28gaXQgbmV2 ZXIgdXBkYXRlcyBtaW5GaXJzdE9mZnNldAorCQkJICogKHdoaWNoIHRyYWNrcyB0aGUgbWluaW11 bSkuICBDbGFtcCB0byBJTlQ2NF9NQVggb24gb3ZlcmZsb3cuCisJCQkgKi8KKwkJCWlmIChwZ19h ZGRfczY0X292ZXJmbG93KGlubmVyLCBvdXRlciwgJnJlYWNoKSkKKwkJCQlyZWFjaCA9IElOVDY0 X01BWDsKIAkJfQotCi0JCWNvbnRleHQtPm1pbk9mZnNldCA9IE1pbihjb250ZXh0LT5taW5PZmZz ZXQsIGNvbWJpbmVkKTsKLQotCQlyZXR1cm4gZmFsc2U7CisJCWNvbnRleHQtPm1pbkZpcnN0T2Zm c2V0ID0gTWluKGNvbnRleHQtPm1pbkZpcnN0T2Zmc2V0LCByZWFjaCk7CiAJfQotCi0JcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZXZhbF9uYXZfZmlyc3Rfb2Zmc2V0X3dhbGtl ciwgY3R4KTsKIH0KIAogLyoKLSAqIGV2YWxfbmF2X2ZpcnN0X29mZnNldAotICoJCUV2YWx1YXRl IG5vbi1jb25zdGFudCBmb3J3YXJkLWZyb20tbWF0Y2hfc3RhcnQgb2Zmc2V0cyBhdCBleGVjdXRv cgotICoJCWluaXQgdGltZS4KKyAqIGV2YWxfZGVmaW5lX29mZnNldHMKKyAqCQlFdmFsdWF0ZSBu b24tY29uc3RhbnQgbmF2IG9mZnNldHMgYXQgZXhlY3V0b3IgaW5pdCB0aW1lLgorICoKKyAqIENh bGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXRLaW5kIGFuZC9vciBuYXZGaXJz dE9mZnNldEtpbmQKKyAqIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgYmVjYXVzZSBzb21l IG9mZnNldCBjb250YWlucyBhIHBhcmFtZXRlcgorICogb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Np b24uICBVcGRhdGVzIG9ubHkgdGhlIGZpZWxkcyB3aG9zZSBraW5kIHdhcworICogTkVFRFNfRVZB TDsgRklYRUQga2luZHMgYXJlIGxlZnQgdW5jaGFuZ2VkLgogICoKLSAqIENhbGxlZCB3aGVuIHRo ZSBwbGFubmVyIHNldCBuYXZGaXJzdE9mZnNldEtpbmQgdG8gUlBSX05BVl9PRkZTRVRfTkVFRFNf RVZBTAotICogYmVjYXVzZSBzb21lIG9mZnNldCBpbiBGSVJTVCBvciBjb21wb3VuZCBQUkVWX0ZJ UlNUL05FWFRfRklSU1QgY29udGFpbnMKLSAqIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBl eHByZXNzaW9uLgorICogT24gYmFja3dhcmQtcmVhY2ggb3ZlcmZsb3csIHNldHMgbmF2TWF4T2Zm c2V0S2luZCB0bworICogUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCBzbyB0aGF0IHR1cGxlc3Rv cmUgdHJpbSBpcyBkaXNhYmxlZCBmb3IKKyAqIGJhY2t3YXJkIG5hdmlnYXRpb24uCiAgKi8KIHN0 YXRpYyB2b2lkCi1ldmFsX25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBMaXN0ICpkZWZpbmVDbGF1c2UpCitldmFsX2RlZmluZV9vZmZzZXRzKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQogewotCUV2YWxOYXZGaXJzdENvbnRleHQg Y3R4OworCUV2YWxEZWZpbmVPZmZzZXRzQ29udGV4dCBjdHg7CisJTmF2VHJhdmVyc2FsIHRyYXY7 CiAJTGlzdENlbGwgICAqbGM7CisJYm9vbAkJbmVlZHNNYXggPSAod2luc3RhdGUtPm5hdk1heE9m ZnNldEtpbmQgPT0gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCk7CisJYm9vbAkJbmVlZHNGaXJz dCA9ICh3aW5zdGF0ZS0+aGFzRmlyc3ROYXYgJiYKKwkJCQkJCQkgIHdpbnN0YXRlLT5uYXZGaXJz dE9mZnNldEtpbmQgPT0gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCk7CisKKwlpZiAoIW5lZWRz TWF4ICYmICFuZWVkc0ZpcnN0KQorCQlyZXR1cm47CiAKIAljdHgud2luc3RhdGUgPSB3aW5zdGF0 ZTsKLQljdHgubWluT2Zmc2V0ID0gSU5UNjRfTUFYOwotCWN0eC5mb3VuZCA9IGZhbHNlOworCWN0 eC5tYXhPZmZzZXQgPSAwOworCWN0eC5tYXhPdmVyZmxvdyA9IGZhbHNlOworCWN0eC5taW5GaXJz dE9mZnNldCA9IElOVDY0X01BWDsKKworCXRyYXYudmlzaXQgPSB2aXNpdF9uYXZfZXhlYzsKKwl0 cmF2LmRhdGEgPSAmY3R4OwogCiAJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQogCXsKIAkJVGFy Z2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQkJZXZhbF9uYXZf Zmlyc3Rfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJmN0eCk7CisJCW5hdl90cmF2 ZXJzYWxfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmdHJhdik7CiAJfQogCi0JaWYgKGN0eC5m b3VuZCAmJiBjdHgubWluT2Zmc2V0IDwgSU5UNjRfTUFYKQorCWlmIChuZWVkc01heCkKIAl7Ci0J CXdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQgPSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKLQkJ d2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0ID0gY3R4Lm1pbk9mZnNldDsKKwkJaWYgKGN0eC5tYXhP dmVyZmxvdykKKwkJeworCQkJd2luc3RhdGUtPm5hdk1heE9mZnNldEtpbmQgPSBSUFJfTkFWX09G RlNFVF9SRVRBSU5fQUxMOworCQkJd2luc3RhdGUtPm5hdk1heE9mZnNldCA9IDA7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9IFJQUl9OQVZfT0ZGU0VU X0ZJWEVEOworCQkJd2luc3RhdGUtPm5hdk1heE9mZnNldCA9IGN0eC5tYXhPZmZzZXQ7CisJCX0K IAl9Ci0JZWxzZQorCisJaWYgKG5lZWRzRmlyc3QpCiAJewogCQl3aW5zdGF0ZS0+bmF2Rmlyc3RP ZmZzZXRLaW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7Ci0JCXdpbnN0YXRlLT5uYXZGaXJzdE9m ZnNldCA9IDA7CisJCWlmIChjdHgubWluRmlyc3RPZmZzZXQgPCBJTlQ2NF9NQVgpCisJCQl3aW5z dGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPSBjdHgubWluRmlyc3RPZmZzZXQ7CisJCWVsc2UKKwkJCXdp bnN0YXRlLT5uYXZGaXJzdE9mZnNldCA9IElOVDY0X01BWDsKIAl9CiB9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwppbmRleCA1MjIwNWNjNzE1OS4uYzhlY2FlZWE3Y2Yg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI5NCw2ICsyOTQs OSBAQCBzdGF0aWMgV2luZG93QWdnICptYWtlX3dpbmRvd2FnZyhMaXN0ICp0bGlzdCwgV2luZG93 Q2xhdXNlICp3YywKIAkJCQkJCQkJIFJQUlBhdHRlcm4gKmNvbXBpbGVkUGF0dGVybiwKIAkJCQkJ CQkJIExpc3QgKmRlZmluZUNsYXVzZSwKIAkJCQkJCQkJIEJpdG1hcHNldCAqZGVmaW5lTWF0Y2hT dGFydERlcGVuZGVudCwKKwkJCQkJCQkJIFJQUk5hdk9mZnNldEtpbmQgbmF2TWF4T2Zmc2V0S2lu ZCwgaW50NjQgbmF2TWF4T2Zmc2V0LAorCQkJCQkJCQkgYm9vbCBoYXNGaXJzdE5hdiwKKwkJCQkJ CQkJIFJQUk5hdk9mZnNldEtpbmQgbmF2Rmlyc3RPZmZzZXRLaW5kLCBpbnQ2NCBuYXZGaXJzdE9m ZnNldCwKIAkJCQkJCQkJIExpc3QgKnF1YWwsIGJvb2wgdG9wV2luZG93LAogCQkJCQkJCQkgUGxh biAqbGVmdHRyZWUpOwogc3RhdGljIEdyb3VwICptYWtlX2dyb3VwKExpc3QgKnRsaXN0LCBMaXN0 ICpxdWFsLCBpbnQgbnVtR3JvdXBDb2xzLApAQCAtMjQ2NCwxMyArMjQ2NywyMCBAQCBjcmVhdGVf bWlubWF4YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIE1pbk1heEFnZ1BhdGggKmJlc3RfcGF0 aCkKIH0KIAogLyoKLSAqIE5hdk9mZnNldENvbnRleHQgLSBjb250ZXh0IGZvciBjb21wdXRlX25h dl9vZmZzZXRzIHdhbGtlci4KKyAqIERlZmluZU1ldGFkYXRhQ29udGV4dCAtIGNvbnRleHQgZm9y IGNvbXB1dGVfZGVmaW5lX21ldGFkYXRhIHdhbGtlci4KICAqCi0gKiBDb2xsZWN0cyBib3RoIGJh Y2t3YXJkIHJlYWNoIChQUkVWLCBMQVNULXdpdGgtb2Zmc2V0LCBjb21wb3VuZAotICogUFJFVl9M QVNUL05FWFRfTEFTVCkgYW5kIGZvcndhcmQtZnJvbS1tYXRjaC1zdGFydCByZWFjaCAoRklSU1Qs Ci0gKiBjb21wb3VuZCBQUkVWX0ZJUlNUL05FWFRfRklSU1QpIGluIGEgc2luZ2xlIHRyZWUgd2Fs ay4KKyAqIENvbGxlY3RzIHRocmVlIHBpZWNlcyBvZiBtZXRhZGF0YSBmcm9tIHRoZSBERUZJTkUg Y2xhdXNlIGluIGEgc2luZ2xlCisgKiB0cmVlIHdhbGsgcGVyIHZhcmlhYmxlOgorICogICAtIGJh Y2t3YXJkIHJlYWNoIChQUkVWLCBMQVNULXdpdGgtb2Zmc2V0LCBjb21wb3VuZCBQUkVWX0xBU1Qv TkVYVF9MQVNUKQorICogICAtIGZvcndhcmQtZnJvbS1tYXRjaC1zdGFydCByZWFjaCAoRklSU1Qs IGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkKKyAqICAgLSBwZXItdmFyaWFibGUgbWF0 Y2hfc3RhcnQgZGVwZW5kZW5jeSAodmFyaWFibGVzIGNvbnRhaW5pbmcgRklSU1QsCisgKiAgICAg TEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9GSVJTVC9ORVhUX0ZJUlNUL1BSRVZf TEFTVC8KKyAqICAgICBORVhUX0xBU1Qtd2l0aC1vZmZzZXQgcmVxdWlyZSBwZXItY29udGV4dCBy ZS1ldmFsdWF0aW9uKQorICoKKyAqIFRoZSBkcml2ZXIgc2V0cyBjdXJWYXJJZHggdG8gdGhlIGlu ZGV4IG9mIHRoZSB2YXJpYWJsZSBiZWluZyB3YWxrZWQKKyAqIGJlZm9yZSBlYWNoIGludm9jYXRp b247IHRoZSB3YWxrZXIgdXNlcyBpdCB0byBwb3B1bGF0ZSBtYXRjaFN0YXJ0RGVwZW5kZW50Lgog ICovCi10eXBlZGVmIHN0cnVjdCBOYXZPZmZzZXRDb250ZXh0Cit0eXBlZGVmIHN0cnVjdCBEZWZp bmVNZXRhZGF0YUNvbnRleHQKIHsKIAlpbnQ2NAkJbWF4T2Zmc2V0OwkJLyogbWF4IFBSRVYvTEFT VCBiYWNrd2FyZCBvZmZzZXQgKD49IDApICovCiAJYm9vbAkJbWF4TmVlZHNFdmFsOwkvKiBub24t Y29uc3RhbnQgUFJFVi9MQVNUIG9mZnNldCBmb3VuZCAqLwpAQCAtMjQ3OSw3ICsyNDg5LDEwIEBA IHR5cGVkZWYgc3RydWN0IE5hdk9mZnNldENvbnRleHQKIAkJCQkJCQkJICogUFJFVl9GSVJTVCkg Ki8KIAlib29sCQloYXNGaXJzdDsJCS8qIGFueSBGSVJTVCBub2RlIGZvdW5kICovCiAJYm9vbAkJ Zmlyc3ROZWVkc0V2YWw7IC8qIG5vbi1jb25zdGFudCBGSVJTVCBvZmZzZXQgZm91bmQgKi8KLX0g TmF2T2Zmc2V0Q29udGV4dDsKKwlpbnQJCQljdXJWYXJJZHg7CQkvKiBERUZJTkUgdmFyaWFibGUg Y3VycmVudGx5IGJlaW5nIHdhbGtlZCAqLworCUJpdG1hcHNldCAgKm1hdGNoU3RhcnREZXBlbmRl bnQ7CS8qIHZhcmlhYmxlcyB0aGF0IGRlcGVuZCBvbgorCQkJCQkJCQkJCSAqIG1hdGNoX3N0YXJ0 ICovCit9IERlZmluZU1ldGFkYXRhQ29udGV4dDsKIAogLyoKICAqIEhlbHBlcjogZXh0cmFjdCBj b25zdGFudCBvZmZzZXQgZnJvbSBhbiBleHByZXNzaW9uLCBoYW5kbGluZyBOVUxML25lZ2F0aXZl LgpAQCAtMjUxNCwxNzUgKzI1MjcsMjA3IEBAIGV4dHJhY3RfY29uc3Rfb2Zmc2V0KEV4cHIgKmV4 cHIsIGludDY0IGRlZmF1bHRPZmZzZXQsIGludDY0ICpyZXN1bHQpCiB9CiAKIC8qCi0gKiBuYXZf b2Zmc2V0X3dhbGtlcgotICoJCUV4cHJlc3Npb24gdHJlZSB3YWxrZXIgZm9yIGNvbXB1dGVfbmF2 X29mZnNldHMuCisgKiB2aXNpdF9uYXZfcGxhbgorICoJCW5hdl90cmF2ZXJzYWxfd2Fsa2VyIGNh bGxiYWNrIChOYXZWaXNpdEZuKSBmb3IgdGhlIHBsYW5uZXIgc2lkZS4KKyAqCQlBdCBlYWNoIFJQ Uk5hdkV4cHIgaW4gYSBERUZJTkUgZXhwcmVzc2lvbiwgY29tcHV0ZXM6CisgKgorICoJCSAgMS4g YmFja3dhcmQgcmVhY2ggKG1heE9mZnNldCkgZm9yIHR1cGxlc3RvcmUgdHJpbToKKyAqCQkJIC0g UFJFVih2LCBOKSwgTEFTVCh2LCBOKSAgICAgICAgICAgICAgLT4gTiAoZGVmYXVsdCAxKQorICoJ CQkgLSBjb21wb3VuZCBQUkVWX0xBU1QodiwgTiwgTSkgICAgICAgICAtPiBOICsgTSAob3ZlcmZs b3cgLT4gbWF4T3ZlcmZsb3cpCisgKgkJCSAtIGNvbXBvdW5kIE5FWFRfTEFTVCh2LCBOLCBNKSAg ICAgICAgIC0+IG1heChOIC0gTSwgMCkKICAqCi0gKiBGb3IgZWFjaCBSUFJOYXZFeHByIGZvdW5k LCBleHRyYWN0IGl0cyBjb25zdGFudCBvZmZzZXQocykgYW5kIHVwZGF0ZSB0aGUKLSAqIE5hdk9m ZnNldENvbnRleHQgd2l0aCB0aGUgbWF4aW11bSBiYWNrd2FyZCByZWFjaCAobWF4T2Zmc2V0KSBh bmQgbWluaW11bQotICogZm9yd2FyZCByZWFjaCAoZmlyc3RPZmZzZXQpLiAgSGFuZGxlcyBzaW1w bGUgbmF2aWdhdGlvbiAoUFJFViwgTkVYVCwKLSAqIEZJUlNULCBMQVNUKSBhbmQgY29tcG91bmQg Zm9ybXMgKFBSRVZfRklSU1QsIE5FWFRfRklSU1QsIFBSRVZfTEFTVCwKLSAqIE5FWFRfTEFTVCkg YnkgY29tYmluaW5nIGlubmVyIGFuZCBvdXRlciBvZmZzZXRzLgorICoJCSAgMi4gZm9yd2FyZCBy ZWFjaCAoZmlyc3RPZmZzZXQpIGZvciB0dXBsZXN0b3JlIHRyaW06CisgKgkJCSAtIEZJUlNUKHYs IE4pICAgICAgICAgICAgICAgICAgICAgICAgIC0+IE4gKGRlZmF1bHQgMCkKKyAqCQkJIC0gY29t cG91bmQgUFJFVl9GSVJTVCh2LCBOLCBNKSAgICAgICAgLT4gTiAtIE0gKG1heSBiZSBuZWdhdGl2 ZSkKKyAqCQkJIC0gY29tcG91bmQgTkVYVF9GSVJTVCh2LCBOLCBNKSAgICAgICAgLT4gTiArIE0K ICAqCi0gKiBOb24tY29uc3RhbnQgb2Zmc2V0cyBzZXQgbWF4TmVlZHNFdmFsIG9yIGZpcnN0TmVl ZHNFdmFsLiAgT3ZlcmZsb3cgc2V0cwotICogbWF4T3ZlcmZsb3cgb3IgZmlyc3RPdmVyZmxvdyBm b3IgUkVUQUlOX0FMTCBmYWxsYmFjay4KKyAqCQkgIDMuIHBlci12YXJpYWJsZSBtYXRjaF9zdGFy dCBkZXBlbmRlbmN5IGZvciBhYnNvcnB0aW9uIHN1cHByZXNzaW9uOgorICoJCQkgb3V0ZXIgbmF2 IGtpbmRzIHRoYXQgcmVhY2ggbWF0Y2hfc3RhcnQgKEZJUlNULCBMQVNULXdpdGgtb2Zmc2V0LAor ICoJCQkgUFJFVl9GSVJTVCwgTkVYVF9GSVJTVCwgUFJFVl9MQVNUL05FWFRfTEFTVC13aXRoLW9m ZnNldCkgYWRkCisgKgkJCSBjdXJWYXJJZHggdG8gbWF0Y2hTdGFydERlcGVuZGVudC4KKyAqCisg KiBDb25zdGFudCBvZmZzZXRzIGFyZSBleHRyYWN0ZWQgdmlhIGV4dHJhY3RfY29uc3Rfb2Zmc2V0 OyBub24tY29uc3RhbnQKKyAqIG9mZnNldHMgc2V0IG1heE5lZWRzRXZhbCAvIGZpcnN0TmVlZHNF dmFsIHNvIHRoZSBleGVjdXRvciBjYW4gcmVzb2x2ZQorICogdGhlbSBhdCBpbml0IHRpbWUgKHNl ZSB2aXNpdF9uYXZfZXhlYykuICBDbGFzc2lmaWNhdGlvbiB1c2VzIG9ubHkgdGhlCisgKiBvdXRl ciBuYXYga2luZDogcGFyc2VyIG5lc3RpbmcgcmVzdHJpY3Rpb25zIHByZXZlbnQgRklSU1QvTEFT VCBpbnNpZGUKKyAqIGEgUFJFVi9ORVhUIHZhbHVlIHN1YmV4cHJlc3Npb24uCiAgKi8KLXN0YXRp YyBib29sCi1uYXZfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjdHgpCitzdGF0aWMg dm9pZAordmlzaXRfbmF2X3BsYW4oTmF2VHJhdmVyc2FsICp0LCBSUFJOYXZFeHByICpuYXYpCiB7 Ci0JTmF2T2Zmc2V0Q29udGV4dCAqY29udGV4dCA9IChOYXZPZmZzZXRDb250ZXh0ICopIGN0eDsK KwlEZWZpbmVNZXRhZGF0YUNvbnRleHQgKmNvbnRleHQgPSAoRGVmaW5lTWV0YWRhdGFDb250ZXh0 ICopIHQtPmRhdGE7CiAKLQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7CisJLyoK KwkgKiBQYXJzZXIgZ3VhcmFudGVlOiBieSB0aGUgdGltZSB0aGUgcGxhbm5lciBzZWVzIGEgREVG SU5FIGV4cHJlc3Npb24sCisJICogY29tcG91bmQgbmVzdGluZyBoYXMgYmVlbiBmbGF0dGVuZWQg aW50byBhIHNpbmdsZSBSUFJOYXZFeHByIGFuZCBhbnkKKwkgKiBvdGhlciBSUFJOYXZFeHByIG5l c3RpbmcgaGFzIGJlZW4gcmVqZWN0ZWQuICBTbyBuYXYncyBkaXJlY3QgY2hpbGQKKwkgKiBmaWVs ZHMgYXJlIG5vdCB0aGVtc2VsdmVzIFJQUk5hdkV4cHIgbm9kZXMsIGFuZCBvdXRlci1raW5kIGRp c3BhdGNoCisJICogYmVsb3cgaXMgc3VmZmljaWVudC4KKwkgKi8KKwlBc3NlcnQobmF2LT5hcmcg PT0gTlVMTCB8fCAhSXNBKG5hdi0+YXJnLCBSUFJOYXZFeHByKSk7CisJQXNzZXJ0KG5hdi0+b2Zm c2V0X2FyZyA9PSBOVUxMIHx8ICFJc0EobmF2LT5vZmZzZXRfYXJnLCBSUFJOYXZFeHByKSk7CisJ QXNzZXJ0KG5hdi0+Y29tcG91bmRfb2Zmc2V0X2FyZyA9PSBOVUxMIHx8CisJCSAgICFJc0EobmF2 LT5jb21wb3VuZF9vZmZzZXRfYXJnLCBSUFJOYXZFeHByKSk7CiAKLQlpZiAoSXNBKG5vZGUsIFJQ Uk5hdkV4cHIpKQorCS8qCisJICogU2ltcGxlIFBSRVYodiwgTikgYW5kIExBU1QodiwgTik6IGJh Y2t3YXJkIHJlYWNoIGZyb20gY3VycmVudHBvcy4gTEFTVAorCSAqIHdpdGhvdXQgb2Zmc2V0ID0g Y3VycmVudHBvcywgbm8gYmFja3dhcmQgcmVhY2guIE5FWFQ6IGZvcndhcmQgb25seSwKKwkgKiBp cnJlbGV2YW50IGZvciB0cmltLgorCSAqLworCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVW IHx8CisJCShuYXYtPmtpbmQgPT0gUlBSX05BVl9MQVNUICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBO VUxMKSkKIAl7Ci0JCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7Ci0KLQkJ LyoKLQkJICogU2ltcGxlIFBSRVYodiwgTikgYW5kIExBU1QodiwgTik6IGJhY2t3YXJkIHJlYWNo IGZyb20gY3VycmVudHBvcy4KLQkJICogTEFTVCB3aXRob3V0IG9mZnNldCA9IGN1cnJlbnRwb3Ms IG5vIGJhY2t3YXJkIHJlYWNoLiBORVhUOiBmb3J3YXJkCi0JCSAqIG9ubHksIGlycmVsZXZhbnQg Zm9yIHRyaW0uCi0JCSAqLwotCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViB8fAotCQkJ KG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpKQor CQlpZiAoIWNvbnRleHQtPm1heE5lZWRzRXZhbCkKIAkJewotCQkJaWYgKCFjb250ZXh0LT5tYXhO ZWVkc0V2YWwpCi0JCQl7Ci0JCQkJaW50NjQJCW9mZnNldDsKKwkJCWludDY0CQlvZmZzZXQ7CiAK LQkJCQlpZiAoZXh0cmFjdF9jb25zdF9vZmZzZXQobmF2LT5vZmZzZXRfYXJnLCAxLCAmb2Zmc2V0 KSkKLQkJCQkJY29udGV4dC0+bWF4T2Zmc2V0ID0gTWF4KGNvbnRleHQtPm1heE9mZnNldCwgb2Zm c2V0KTsKLQkJCQllbHNlCi0JCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7Ci0JCQl9 CisJCQlpZiAoZXh0cmFjdF9jb25zdF9vZmZzZXQobmF2LT5vZmZzZXRfYXJnLCAxLCAmb2Zmc2V0 KSkKKwkJCQljb250ZXh0LT5tYXhPZmZzZXQgPSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCBvZmZz ZXQpOworCQkJZWxzZQorCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7CiAJCX0KKwl9 CiAKLQkJLyoKLQkJICogU2ltcGxlIEZJUlNUKHYsIE4pOiBmb3J3YXJkIHJlYWNoIGZyb20gbWF0 Y2hfc3RhcnQuIFNtYWxsZXIgTiBtZWFucwotCQkgKiBvbGRlciByb3dzIG5lZWRlZC4KLQkJICov Ci0JCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKLQkJewotCQkJY29udGV4dC0+aGFz Rmlyc3QgPSB0cnVlOworCS8qCisJICogU2ltcGxlIEZJUlNUKHYsIE4pOiBmb3J3YXJkIHJlYWNo IGZyb20gbWF0Y2hfc3RhcnQuIFNtYWxsZXIgTiBtZWFucworCSAqIG9sZGVyIHJvd3MgbmVlZGVk LgorCSAqLworCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKKwl7CisJCWNvbnRleHQt Pmhhc0ZpcnN0ID0gdHJ1ZTsKIAotCQkJaWYgKCFjb250ZXh0LT5maXJzdE5lZWRzRXZhbCkKLQkJ CXsKLQkJCQlpbnQ2NAkJb2Zmc2V0OworCQlpZiAoIWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsKQor CQl7CisJCQlpbnQ2NAkJb2Zmc2V0OwogCi0JCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5h di0+b2Zmc2V0X2FyZywgMCwgJm9mZnNldCkpCi0JCQkJCWNvbnRleHQtPmZpcnN0T2Zmc2V0ID0g TWluKGNvbnRleHQtPmZpcnN0T2Zmc2V0LCBvZmZzZXQpOwotCQkJCWVsc2UKLQkJCQkJY29udGV4 dC0+Zmlyc3ROZWVkc0V2YWwgPSB0cnVlOwotCQkJfQorCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zm c2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJm9mZnNldCkpCisJCQkJY29udGV4dC0+Zmlyc3RPZmZz ZXQgPSBNaW4oY29udGV4dC0+Zmlyc3RPZmZzZXQsIG9mZnNldCk7CisJCQllbHNlCisJCQkJY29u dGV4dC0+Zmlyc3ROZWVkc0V2YWwgPSB0cnVlOwogCQl9CisJfQogCi0JCS8qCi0JCSAqIENvbXBv dW5kIFBSRVZfTEFTVCAvIE5FWFRfTEFTVDogYmFzZSA9IGN1cnJlbnRwb3MuIFBSRVZfTEFTVCh2 LCBOLAotCQkgKiBNKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gLSBNIC0+IGxvb2tiYWNrID0g TiArIE0gTkVYVF9MQVNUKHYsIE4sCi0JCSAqIE0pOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gTiAr IE0gLT4gbG9va2JhY2sgPSBtYXgoTiAtIE0sIDApCi0JCSAqLwotCQlpZiAobmF2LT5raW5kID09 IFJQUl9OQVZfUFJFVl9MQVNUIHx8Ci0JCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0xBU1Qp CisJLyoKKwkgKiBDb21wb3VuZCBQUkVWX0xBU1QgLyBORVhUX0xBU1Q6IGJhc2UgPSBjdXJyZW50 cG9zLiBQUkVWX0xBU1QodiwgTiwgTSk6CisJICogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gLSBN IC0+IGxvb2tiYWNrID0gTiArIE0gTkVYVF9MQVNUKHYsIE4sIE0pOgorCSAqIHRhcmdldCA9IGN1 cnJlbnRwb3MgLSBOICsgTSAtPiBsb29rYmFjayA9IG1heChOIC0gTSwgMCkKKwkgKi8KKwlpZiAo bmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUIHx8CisJCW5hdi0+a2luZCA9PSBSUFJfTkFW X05FWFRfTEFTVCkKKwl7CisJCWlmICghY29udGV4dC0+bWF4TmVlZHNFdmFsKQogCQl7Ci0JCQlp ZiAoIWNvbnRleHQtPm1heE5lZWRzRXZhbCkKLQkJCXsKLQkJCQlpbnQ2NAkJaW5uZXIsCi0JCQkJ CQkJb3V0ZXIsCi0JCQkJCQkJY29tYmluZWQ7CisJCQlpbnQ2NAkJaW5uZXI7CisJCQlpbnQ2NAkJ b3V0ZXI7CisJCQlpbnQ2NAkJcmVhY2g7CiAKLQkJCQlpZiAoZXh0cmFjdF9jb25zdF9vZmZzZXQo bmF2LT5vZmZzZXRfYXJnLCAwLCAmaW5uZXIpICYmCi0JCQkJCWV4dHJhY3RfY29uc3Rfb2Zmc2V0 KG5hdi0+Y29tcG91bmRfb2Zmc2V0X2FyZywgMSwgJm91dGVyKSkKKwkJCWlmIChleHRyYWN0X2Nv bnN0X29mZnNldChuYXYtPm9mZnNldF9hcmcsIDAsICZpbm5lcikgJiYKKwkJCQlleHRyYWN0X2Nv bnN0X29mZnNldChuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIDEsICZvdXRlcikpCisJCQl7CisJ CQkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCkKIAkJCQl7Ci0JCQkJCWlmIChu YXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QpCi0JCQkJCXsKLQkJCQkJCWlmIChwZ19hZGRf czY0X292ZXJmbG93KGlubmVyLCBvdXRlciwgJmNvbWJpbmVkKSkKLQkJCQkJCXsKLQkJCQkJCQlj b250ZXh0LT5tYXhPdmVyZmxvdyA9IHRydWU7Ci0JCQkJCQkJcmV0dXJuIGZhbHNlOwotCQkJCQkJ fQotCQkJCQl9CisJCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KGlubmVyLCBvdXRlciwgJnJl YWNoKSkKKwkJCQkJCWNvbnRleHQtPm1heE92ZXJmbG93ID0gdHJ1ZTsKIAkJCQkJZWxzZQotCQkJ CQkJY29tYmluZWQgPSAoaW5uZXIgPiBvdXRlcikgPyBpbm5lciAtIG91dGVyIDogMDsKLQotCQkJ CQljb250ZXh0LT5tYXhPZmZzZXQgPSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCBjb21iaW5lZCk7 CisJCQkJCQljb250ZXh0LT5tYXhPZmZzZXQgPSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCByZWFj aCk7CiAJCQkJfQogCQkJCWVsc2UKLQkJCQkJY29udGV4dC0+bWF4TmVlZHNFdmFsID0gdHJ1ZTsK KwkJCQl7CisJCQkJCXJlYWNoID0gTWF4KGlubmVyIC0gb3V0ZXIsIDApOworCQkJCQljb250ZXh0 LT5tYXhPZmZzZXQgPSBNYXgoY29udGV4dC0+bWF4T2Zmc2V0LCByZWFjaCk7CisJCQkJfQogCQkJ fQorCQkJZWxzZQorCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7CiAJCX0KKwl9CiAK LQkJLyoKLQkJICogQ29tcG91bmQgUFJFVl9GSVJTVCAvIE5FWFRfRklSU1Q6IGJhc2UgPSBtYXRj aF9zdGFydC4gUFJFVl9GSVJTVCh2LAotCQkgKiBOLCBNKTogdGFyZ2V0ID0gbWF0Y2hfc3RhcnQg KyBOIC0gTSBORVhUX0ZJUlNUKHYsIE4sIE0pOiB0YXJnZXQgPQotCQkgKiBtYXRjaF9zdGFydCAr IE4gKyBNIFRoZSBjb21iaW5lZCBvZmZzZXQgKE4rLy1NKSBmcm9tIG1hdGNoX3N0YXJ0Ci0JCSAq IGNhbiBiZSBuZWdhdGl2ZSwgbWVhbmluZyByb3dzIGJlZm9yZSBtYXRjaF9zdGFydCBhcmUgbmVl ZGVkLgotCQkgKi8KLQkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QgfHwKLQkJ CW5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfRklSU1QpCisJLyoKKwkgKiBDb21wb3VuZCBQUkVW X0ZJUlNUIC8gTkVYVF9GSVJTVDogYmFzZSA9IG1hdGNoX3N0YXJ0LiBQUkVWX0ZJUlNUKHYsIE4s CisJICogTSk6IHRhcmdldCA9IG1hdGNoX3N0YXJ0ICsgTiAtIE0gTkVYVF9GSVJTVCh2LCBOLCBN KTogdGFyZ2V0ID0KKwkgKiBtYXRjaF9zdGFydCArIE4gKyBNIFRoZSBjb21iaW5lZCBvZmZzZXQg KE4rLy1NKSBmcm9tIG1hdGNoX3N0YXJ0IGNhbiBiZQorCSAqIG5lZ2F0aXZlLCBtZWFuaW5nIHJv d3MgYmVmb3JlIG1hdGNoX3N0YXJ0IGFyZSBuZWVkZWQuCisJICovCisJaWYgKG5hdi0+a2luZCA9 PSBSUFJfTkFWX1BSRVZfRklSU1QgfHwKKwkJbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9GSVJT VCkKKwl7CisJCWNvbnRleHQtPmhhc0ZpcnN0ID0gdHJ1ZTsKKworCQlpZiAoIWNvbnRleHQtPmZp cnN0TmVlZHNFdmFsKQogCQl7Ci0JCQljb250ZXh0LT5oYXNGaXJzdCA9IHRydWU7CisJCQlpbnQ2 NAkJaW5uZXI7CisJCQlpbnQ2NAkJb3V0ZXI7CisJCQlpbnQ2NAkJcmVhY2g7CiAKLQkJCWlmICgh Y29udGV4dC0+Zmlyc3ROZWVkc0V2YWwpCisJCQlpZiAoZXh0cmFjdF9jb25zdF9vZmZzZXQobmF2 LT5vZmZzZXRfYXJnLCAwLCAmaW5uZXIpICYmCisJCQkJZXh0cmFjdF9jb25zdF9vZmZzZXQobmF2 LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxLCAmb3V0ZXIpKQogCQkJewotCQkJCWludDY0CQlpbm5l ciwKLQkJCQkJCQlvdXRlciwKLQkJCQkJCQljb21iaW5lZDsKLQotCQkJCWlmIChleHRyYWN0X2Nv bnN0X29mZnNldChuYXYtPm9mZnNldF9hcmcsIDAsICZpbm5lcikgJiYKLQkJCQkJZXh0cmFjdF9j b25zdF9vZmZzZXQobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxLCAmb3V0ZXIpKQorCQkJCWlm IChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0ZJUlNUKQogCQkJCXsKLQkJCQkJaWYgKG5hdi0+ a2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QpCi0JCQkJCXsKLQkJCQkJCS8qCi0JCQkJCQkgKiBj b21iaW5lZCA9IGlubmVyIC0gb3V0ZXIuICBCb3RoIGFyZSBub24tbmVnYXRpdmUsCi0JCQkJCQkg KiBzbyB0aGUgcmVzdWx0ID49IC1JTlQ2NF9NQVgsIHdoaWNoIGNhbm5vdCB1bmRlcmZsb3cKLQkJ CQkJCSAqIGludDY0LiAgTm8gb3ZlcmZsb3cgY2hlY2sgbmVlZGVkLgotCQkJCQkJICovCi0JCQkJ CQljb21iaW5lZCA9IGlubmVyIC0gb3V0ZXI7Ci0JCQkJCX0KLQkJCQkJZWxzZQotCQkJCQl7Ci0J CQkJCQkvKgotCQkJCQkJICogTkVYVF9GSVJTVDogY29tYmluZWQgPSBpbm5lciArIG91dGVyLiAg VGhpcyBjYW4KLQkJCQkJCSAqIG92ZXJmbG93LCBidXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgPj0g MCwgc28gaXQKLQkJCQkJCSAqIG5ldmVyIHVwZGF0ZXMgZmlyc3RPZmZzZXQgKHdoaWNoIHRyYWNr cyB0aGUKLQkJCQkJCSAqIG1pbmltdW0pLiAgQ2xhbXAgdG8gSU5UNjRfTUFYIG9uIG92ZXJmbG93 LgotCQkJCQkJICovCi0JCQkJCQlpZiAocGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIs ICZjb21iaW5lZCkpCi0JCQkJCQkJY29tYmluZWQgPSBJTlQ2NF9NQVg7Ci0JCQkJCX0KLQotCQkJ CQljb250ZXh0LT5maXJzdE9mZnNldCA9IE1pbihjb250ZXh0LT5maXJzdE9mZnNldCwgY29tYmlu ZWQpOworCQkJCQkvKgorCQkJCQkgKiByZWFjaCA9IGlubmVyIC0gb3V0ZXIuICBCb3RoIGFyZSBu b24tbmVnYXRpdmUsIHNvIHRoZQorCQkJCQkgKiByZXN1bHQgPj0gLUlOVDY0X01BWCwgd2hpY2gg Y2Fubm90IHVuZGVyZmxvdyBpbnQ2NC4gTm8KKwkJCQkJICogb3ZlcmZsb3cgY2hlY2sgbmVlZGVk LgorCQkJCQkgKi8KKwkJCQkJcmVhY2ggPSBpbm5lciAtIG91dGVyOwogCQkJCX0KIAkJCQllbHNl Ci0JCQkJCWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsID0gdHJ1ZTsKKwkJCQl7CisJCQkJCS8qCisJ CQkJCSAqIE5FWFRfRklSU1Q6IHJlYWNoID0gaW5uZXIgKyBvdXRlci4gIFRoaXMgY2FuIG92ZXJm bG93LAorCQkJCQkgKiBidXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgPj0gMCwgc28gaXQgbmV2ZXIg dXBkYXRlcworCQkJCQkgKiBmaXJzdE9mZnNldCAod2hpY2ggdHJhY2tzIHRoZSBtaW5pbXVtKS4g IENsYW1wIHRvCisJCQkJCSAqIElOVDY0X01BWCBvbiBvdmVyZmxvdy4KKwkJCQkJICovCisJCQkJ CWlmIChwZ19hZGRfczY0X292ZXJmbG93KGlubmVyLCBvdXRlciwgJnJlYWNoKSkKKwkJCQkJCXJl YWNoID0gSU5UNjRfTUFYOworCQkJCX0KKworCQkJCWNvbnRleHQtPmZpcnN0T2Zmc2V0ID0gTWlu KGNvbnRleHQtPmZpcnN0T2Zmc2V0LCByZWFjaCk7CiAJCQl9CisJCQllbHNlCisJCQkJY29udGV4 dC0+Zmlyc3ROZWVkc0V2YWwgPSB0cnVlOwogCQl9Ci0KLQkJLyogRG9uJ3Qgd2FsayBpbnRvIFJQ Uk5hdkV4cHIgY2hpbGRyZW4gKi8KLQkJcmV0dXJuIGZhbHNlOwogCX0KIAotCXJldHVybiBleHBy ZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9vZmZzZXRfd2Fsa2VyLCBjdHgpOworCS8qIE1h dGNoLXN0YXJ0IGRlcGVuZGVuY3k6IGNsYXNzaWZ5IHRoZSBvdXRlciBuYXYga2luZC4gKi8KKwlp ZiAobmF2LT5raW5kID09IFJQUl9OQVZfRklSU1QgfHwKKwkJKG5hdi0+a2luZCA9PSBSUFJfTkFW X0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpIHx8CisJCW5hdi0+a2luZCA9PSBSUFJf TkFWX1BSRVZfRklSU1QgfHwKKwkJbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9GSVJTVCB8fAor CQkoKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCB8fAorCQkgIG5hdi0+a2luZCA9PSBS UFJfTkFWX05FWFRfTEFTVCkgJiYKKwkJIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKSkKKwkJY29u dGV4dC0+bWF0Y2hTdGFydERlcGVuZGVudCA9CisJCQlibXNfYWRkX21lbWJlcihjb250ZXh0LT5t YXRjaFN0YXJ0RGVwZW5kZW50LAorCQkJCQkJICAgY29udGV4dC0+Y3VyVmFySWR4KTsKIH0KIAog LyoKLSAqIGNvbXB1dGVfbmF2X29mZnNldHMKLSAqCQlDb21wdXRlIG5hdmlnYXRpb24gb2Zmc2V0 cyBmb3IgdHVwbGVzdG9yZSB0cmltIGluIGEgc2luZ2xlIHBhc3MuCisgKiBjb21wdXRlX2RlZmlu ZV9tZXRhZGF0YQorICoJCUNvbXB1dGUgbmF2aWdhdGlvbiBvZmZzZXRzIGFuZCBtYXRjaF9zdGFy dCBkZXBlbmRlbmN5IGZvciB0aGUKKyAqCQlERUZJTkUgY2xhdXNlIGluIGEgc2luZ2xlIHBhc3Mg cGVyIHZhcmlhYmxlLgogICoKLSAqIFdhbGtzIGFsbCBERUZJTkUgY2xhdXNlIGV4cHJlc3Npb25z IG9uY2UsIGNvbXB1dGluZzoKKyAqIFdhbGtzIGVhY2ggREVGSU5FIHZhcmlhYmxlIGV4cHJlc3Np b24gb25jZSwgY29tcHV0aW5nOgogICogICAtIG1heE9mZnNldDogbWF4IGJhY2t3YXJkIHJlYWNo IGZyb20gUFJFViwgTEFTVC13aXRoLW9mZnNldCwKICAqICAgICBjb21wb3VuZCBQUkVWX0xBU1Qv TkVYVF9MQVNUCiAgKiAgIC0gaGFzRmlyc3QvZmlyc3RPZmZzZXQ6IG1pbiBmb3J3YXJkLWZyb20t bWF0Y2gtc3RhcnQgcmVhY2ggZnJvbQogICogICAgIEZJUlNULCBjb21wb3VuZCBQUkVWX0ZJUlNU L05FWFRfRklSU1QKKyAqICAgLSBtYXRjaFN0YXJ0RGVwZW5kZW50OiBiaXRtYXBzZXQgb2YgdmFy aWFibGUgaW5kaWNlcyB3aG9zZQorICogICAgIGV4cHJlc3Npb25zIGNvbnRhaW4gbmF2aWdhdGlv biB0aGF0IGRlcGVuZHMgb24gbWF0Y2hfc3RhcnQKKyAqICAgICAoRklSU1QsIExBU1Qtd2l0aC1v ZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC8KKyAqICAgICBQUkVWX0xB U1QvTkVYVF9MQVNULXdpdGgtb2Zmc2V0KS4gIFN1Y2ggdmFyaWFibGVzIHJlcXVpcmUKKyAqICAg ICBwZXItY29udGV4dCByZS1ldmFsdWF0aW9uIGR1cmluZyBORkEgcHJvY2Vzc2luZy4KICAqLwog c3RhdGljIHZvaWQKLWNvbXB1dGVfbmF2X29mZnNldHMoTGlzdCAqZGVmaW5lQ2xhdXNlLAotCQkJ CQlSUFJOYXZPZmZzZXRLaW5kICptYXhLaW5kLCBpbnQ2NCAqbWF4UmVzdWx0LAotCQkJCQlib29s ICpoYXNGaXJzdCwKLQkJCQkJUlBSTmF2T2Zmc2V0S2luZCAqZmlyc3RLaW5kLCBpbnQ2NCAqZmly c3RSZXN1bHQpCitjb21wdXRlX2RlZmluZV9tZXRhZGF0YShMaXN0ICpkZWZpbmVDbGF1c2UsCisJ CQkJCQlSUFJOYXZPZmZzZXRLaW5kICptYXhLaW5kLCBpbnQ2NCAqbWF4UmVzdWx0LAorCQkJCQkJ Ym9vbCAqaGFzRmlyc3QsCisJCQkJCQlSUFJOYXZPZmZzZXRLaW5kICpmaXJzdEtpbmQsIGludDY0 ICpmaXJzdFJlc3VsdCwKKwkJCQkJCUJpdG1hcHNldCAqKm1hdGNoU3RhcnREZXBlbmRlbnQpCiB7 Ci0JTmF2T2Zmc2V0Q29udGV4dCBjdHg7CisJRGVmaW5lTWV0YWRhdGFDb250ZXh0IGN0eDsKKwlO YXZUcmF2ZXJzYWwgdHJhdjsKIAlMaXN0Q2VsbCAgICpsYzsKIAogCWN0eC5tYXhPZmZzZXQgPSAw OwpAQCAtMjY5MSwxNCArMjczNiwyMiBAQCBjb21wdXRlX25hdl9vZmZzZXRzKExpc3QgKmRlZmlu ZUNsYXVzZSwKIAljdHguZmlyc3RPZmZzZXQgPSBJTlQ2NF9NQVg7CS8qIHNlbnRpbmVsOiBubyBG SVJTVCBmb3VuZCB5ZXQgKi8KIAljdHguaGFzRmlyc3QgPSBmYWxzZTsKIAljdHguZmlyc3ROZWVk c0V2YWwgPSBmYWxzZTsKKwljdHguY3VyVmFySWR4ID0gMDsKKwljdHgubWF0Y2hTdGFydERlcGVu ZGVudCA9IE5VTEw7CisKKwl0cmF2LnZpc2l0ID0gdmlzaXRfbmF2X3BsYW47CisJdHJhdi5kYXRh ID0gJmN0eDsKIAogCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkKIAl7CiAJCVRhcmdldEVudHJ5 ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOwogCi0JCW5hdl9vZmZzZXRfd2Fsa2Vy KChOb2RlICopIHRlLT5leHByLCAmY3R4KTsKKwkJbmF2X3RyYXZlcnNhbF93YWxrZXIoKE5vZGUg KikgdGUtPmV4cHIsICZ0cmF2KTsKKwkJY3R4LmN1clZhcklkeCsrOwogCX0KIAorCSptYXRjaFN0 YXJ0RGVwZW5kZW50ID0gY3R4Lm1hdGNoU3RhcnREZXBlbmRlbnQ7CisKIAkvKiBNYXggYmFja3dh cmQgb2Zmc2V0ICovCiAJaWYgKGN0eC5tYXhPdmVyZmxvdykKIAl7CkBAIC0yNzI1LDE1ICsyNzc4 LDExIEBAIGNvbXB1dGVfbmF2X29mZnNldHMoTGlzdCAqZGVmaW5lQ2xhdXNlLAogCQkJKmZpcnN0 S2luZCA9IFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUw7CiAJCQkqZmlyc3RSZXN1bHQgPSAwOwog CQl9Ci0JCWVsc2UgaWYgKGN0eC5maXJzdE9mZnNldCA9PSBJTlQ2NF9NQVgpCi0JCXsKLQkJCSpm aXJzdEtpbmQgPSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKLQkJCSpmaXJzdFJlc3VsdCA9IDA7CS8q IG9ubHkgaW1wbGljaXQgRklSU1QodikgKi8KLQkJfQogCQllbHNlCiAJCXsKIAkJCSpmaXJzdEtp bmQgPSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKLQkJCSpmaXJzdFJlc3VsdCA9IGN0eC5maXJzdE9m ZnNldDsgLyogbWF5IGJlIG5lZ2F0aXZlICovCisJCQkqZmlyc3RSZXN1bHQgPSBjdHguZmlyc3RP ZmZzZXQ7IC8qIG1heSBiZSBuZWdhdGl2ZTsgSU5UNjRfTUFYIGlmCisJCQkJCQkJCQkJCSAqIG92 ZXJmbG93ZWQgKi8KIAkJfQogCX0KIAllbHNlCkBAIC0yNzQzLDgzICsyNzkyLDYgQEAgY29tcHV0 ZV9uYXZfb2Zmc2V0cyhMaXN0ICpkZWZpbmVDbGF1c2UsCiAJfQogfQogCi0vKgotICogaGFzX21h dGNoX3N0YXJ0X2RlcGVuZGVuY3kKLSAqCQlDaGVjayBpZiBhbiBleHByZXNzaW9uIHRyZWUgY29u dGFpbnMgbmF2aWdhdGlvbiB0aGF0IGRlcGVuZHMgb24KLSAqCQltYXRjaF9zdGFydDogRklSU1Qs IExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvCi0gKgkJTkVYVF9GSVJT VC9QUkVWX0xBU1QvTkVYVF9MQVNUIHdpdGggb2Zmc2V0LiAgU3VjaCBleHByZXNzaW9ucwotICoJ CXJlcXVpcmUgcGVyLWNvbnRleHQgcmUtZXZhbHVhdGlvbiBkdXJpbmcgTkZBIHByb2Nlc3Npbmcu Ci0gKgotICogTEFTVCB3aXRob3V0IG9mZnNldCBhbHdheXMgcmVzb2x2ZXMgdG8gY3VycmVudHBv cyBhbmQgaXMKLSAqIG1hdGNoX3N0YXJ0LWluZGVwZW5kZW50LgotICovCi1zdGF0aWMgYm9vbAot aGFzX21hdGNoX3N0YXJ0X2RlcGVuZGVuY3koTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKLXsK LQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlpZiAoSXNBKG5vZGUsIFJQ Uk5hdkV4cHIpKQotCXsKLQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsK LQotCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfRklSU1QpCi0JCQlyZXR1cm4gdHJ1ZTsKLQkJ aWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJnICE9IE5VTEwp Ci0JCQlyZXR1cm4gdHJ1ZTsKLQotCQkvKiBDb21wb3VuZCBraW5kcyB3aXRoIEZJUlNUIGJhc2Ug ZGVwZW5kIG9uIG1hdGNoX3N0YXJ0ICovCi0JCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVW X0ZJUlNUIHx8Ci0JCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0ZJUlNUKQotCQkJcmV0dXJu IHRydWU7Ci0KLQkJLyoKLQkJICogUFJFVl9MQVNUL05FWFRfTEFTVDogaW5uZXIgaXMgTEFTVCwg d2hpY2ggdXNlcyBjdXJyZW50cG9zLgotCQkgKiBtYXRjaF9zdGFydC1kZXBlbmRlbnQgb25seSBp ZiBpbm5lciBoYXMgb2Zmc2V0IChjbGFtcGVkIHRvCi0JCSAqIG1hdGNoX3N0YXJ0KS4KLQkJICov Ci0JCWlmICgobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUIHx8Ci0JCQkgbmF2LT5raW5k ID09IFJQUl9OQVZfTkVYVF9MQVNUKSAmJgotCQkJbmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCi0J CQlyZXR1cm4gdHJ1ZTsKLQotCQkvKiBDaGVjayBjaGlsZHJlbiAoYXJnIG1heSBjb250YWluIGZ1 cnRoZXIgbmF2IGV4cHJlc3Npb25zKSAqLwotCQlyZXR1cm4gaGFzX21hdGNoX3N0YXJ0X2RlcGVu ZGVuY3koKE5vZGUgKikgbmF2LT5hcmcsIGNvbnRleHQpOwotCX0KLQotCXJldHVybiBleHByZXNz aW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5LCBOVUxMKTsK LX0KLQotLyoKLSAqIGNvbXB1dGVfbWF0Y2hfc3RhcnRfZGVwZW5kZW50Ci0gKgkJQnVpbGQgYSBC aXRtYXBzZXQgb2YgREVGSU5FIHZhcmlhYmxlIGluZGljZXMgd2hvc2UgZXhwcmVzc2lvbnMKLSAq CQlkZXBlbmQgb24gbWF0Y2hfc3RhcnQgKGNvbnRhaW4gRklSU1QsIExBU1Qtd2l0aC1vZmZzZXQs IG9yCi0gKgkJY29tcG91bmQgUFJFVl9GSVJTVC9ORVhUX0ZJUlNUL1BSRVZfTEFTVC9ORVhUX0xB U1Qgd2l0aCBvZmZzZXQpLgotICoKLSAqIFZhcmlhYmxlcyBpbiB0aGlzIHNldCByZXF1aXJlIHBl ci1jb250ZXh0IHJlLWV2YWx1YXRpb24gZHVyaW5nIE5GQQotICogcHJvY2Vzc2luZywgYmVjYXVz ZSBkaWZmZXJlbnQgY29udGV4dHMgbWF5IGhhdmUgZGlmZmVyZW50IG1hdGNoX3N0YXJ0Ci0gKiB2 YWx1ZXMuCi0gKi8KLXN0YXRpYyBCaXRtYXBzZXQgKgotY29tcHV0ZV9tYXRjaF9zdGFydF9kZXBl bmRlbnQoTGlzdCAqZGVmaW5lQ2xhdXNlKQotewotCUJpdG1hcHNldCAgKnJlc3VsdCA9IE5VTEw7 Ci0JTGlzdENlbGwgICAqbGM7Ci0JaW50CQkJdmFySWR4ID0gMDsKLQotCWZvcmVhY2gobGMsIGRl ZmluZUNsYXVzZSkKLQl7Ci0JCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmly c3QobGMpOwotCi0JCWlmIChoYXNfbWF0Y2hfc3RhcnRfZGVwZW5kZW5jeSgoTm9kZSAqKSB0ZS0+ ZXhwciwgTlVMTCkpCi0JCQlyZXN1bHQgPSBibXNfYWRkX21lbWJlcihyZXN1bHQsIHZhcklkeCk7 Ci0KLQkJdmFySWR4Kys7Ci0JfQotCi0JcmV0dXJuIHJlc3VsdDsKLX0KLQogLyoKICAqIGNyZWF0 ZV93aW5kb3dhZ2dfcGxhbgogICoKQEAgLTI4NDgsNiArMjgyMCwxMSBAQCBjcmVhdGVfd2luZG93 YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIFdpbmRvd0FnZ1BhdGggKmJlc3RfcGF0aCkKIAlM aXN0CSAgICpmaWx0ZXJlZERlZmluZUNsYXVzZSA9IE5JTDsKIAlSUFJQYXR0ZXJuICpjb21waWxl ZFBhdHRlcm4gPSBOVUxMOwogCUJpdG1hcHNldCAgKm1hdGNoU3RhcnREZXBlbmRlbnQgPSBOVUxM OworCVJQUk5hdk9mZnNldEtpbmQgbmF2TWF4T2Zmc2V0S2luZCA9IFJQUl9OQVZfT0ZGU0VUX0ZJ WEVEOworCWludDY0CQluYXZNYXhPZmZzZXQgPSAwOworCWJvb2wJCWhhc0ZpcnN0TmF2ID0gZmFs c2U7CisJUlBSTmF2T2Zmc2V0S2luZCBuYXZGaXJzdE9mZnNldEtpbmQgPSBSUFJfTkFWX09GRlNF VF9GSVhFRDsKKwlpbnQ2NAkJbmF2Rmlyc3RPZmZzZXQgPSAwOwogCiAKIAkvKgpAQCAtMjkxMCw4 ICsyODg3LDE2IEBAIGNyZWF0ZV93aW5kb3dhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgV2lu ZG93QWdnUGF0aCAqYmVzdF9wYXRoKQogCQlidWlsZERlZmluZVZhcmlhYmxlTGlzdCh3Yy0+ZGVm aW5lQ2xhdXNlLCAmZGVmaW5lVmFyaWFibGVMaXN0KTsKIAkJZmlsdGVyZWREZWZpbmVDbGF1c2Ug PSB3Yy0+ZGVmaW5lQ2xhdXNlOwogCi0JCS8qIElkZW50aWZ5IG1hdGNoX3N0YXJ0LWRlcGVuZGVu dCBERUZJTkUgdmFyaWFibGVzICovCi0JCW1hdGNoU3RhcnREZXBlbmRlbnQgPSBjb21wdXRlX21h dGNoX3N0YXJ0X2RlcGVuZGVudCh3Yy0+ZGVmaW5lQ2xhdXNlKTsKKwkJLyoKKwkJICogV2FsayBE RUZJTkUgb25jZTogY29sbGVjdCBuYXYgb2Zmc2V0cyAoZm9yIHR1cGxlc3RvcmUgdHJpbSkgYW5k IHRoZQorCQkgKiBiaXRtYXBzZXQgb2YgbWF0Y2hfc3RhcnQtZGVwZW5kZW50IHZhcmlhYmxlcyAo Zm9yIGFic29ycHRpb24KKwkJICogc3VwcHJlc3Npb24gaW4gYnVpbGRSUFJQYXR0ZXJuKS4KKwkJ ICovCisJCWNvbXB1dGVfZGVmaW5lX21ldGFkYXRhKHdjLT5kZWZpbmVDbGF1c2UsCisJCQkJCQkJ CSZuYXZNYXhPZmZzZXRLaW5kLCAmbmF2TWF4T2Zmc2V0LAorCQkJCQkJCQkmaGFzRmlyc3ROYXYs CisJCQkJCQkJCSZuYXZGaXJzdE9mZnNldEtpbmQsICZuYXZGaXJzdE9mZnNldCwKKwkJCQkJCQkJ Jm1hdGNoU3RhcnREZXBlbmRlbnQpOwogCiAJCS8qIENvbXBpbGUgYW5kIG9wdGltaXplIFJQUiBw YXR0ZXJucyAqLwogCQljb21waWxlZFBhdHRlcm4gPSBidWlsZFJQUlBhdHRlcm4od2MtPnJwUGF0 dGVybiwKQEAgLTI5MzcsNiArMjkyMiw5IEBAIGNyZWF0ZV93aW5kb3dhZ2dfcGxhbihQbGFubmVy SW5mbyAqcm9vdCwgV2luZG93QWdnUGF0aCAqYmVzdF9wYXRoKQogCQkJCQkJICBjb21waWxlZFBh dHRlcm4sCiAJCQkJCQkgIGZpbHRlcmVkRGVmaW5lQ2xhdXNlLAogCQkJCQkJICBtYXRjaFN0YXJ0 RGVwZW5kZW50LAorCQkJCQkJICBuYXZNYXhPZmZzZXRLaW5kLCBuYXZNYXhPZmZzZXQsCisJCQkJ CQkgIGhhc0ZpcnN0TmF2LAorCQkJCQkJICBuYXZGaXJzdE9mZnNldEtpbmQsIG5hdkZpcnN0T2Zm c2V0LAogCQkJCQkJICBiZXN0X3BhdGgtPnF1YWwsCiAJCQkJCQkgIGJlc3RfcGF0aC0+dG9wd2lu ZG93LAogCQkJCQkJICBzdWJwbGFuKTsKQEAgLTcwMTEsNiArNjk5OSw5IEBAIG1ha2Vfd2luZG93 YWdnKExpc3QgKnRsaXN0LCBXaW5kb3dDbGF1c2UgKndjLAogCQkJICAgUlBSUGF0dGVybiAqY29t cGlsZWRQYXR0ZXJuLAogCQkJICAgTGlzdCAqZGVmaW5lQ2xhdXNlLAogCQkJICAgQml0bWFwc2V0 ICpkZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50LAorCQkJICAgUlBSTmF2T2Zmc2V0S2luZCBuYXZN YXhPZmZzZXRLaW5kLCBpbnQ2NCBuYXZNYXhPZmZzZXQsCisJCQkgICBib29sIGhhc0ZpcnN0TmF2 LAorCQkJICAgUlBSTmF2T2Zmc2V0S2luZCBuYXZGaXJzdE9mZnNldEtpbmQsIGludDY0IG5hdkZp cnN0T2Zmc2V0LAogCQkJICAgTGlzdCAqcXVhbCwgYm9vbCB0b3BXaW5kb3csIFBsYW4gKmxlZnR0 cmVlKQogewogCVdpbmRvd0FnZyAgKm5vZGUgPSBtYWtlTm9kZShXaW5kb3dBZ2cpOwpAQCAtNzA0 OCwxMSArNzAzOSwxMiBAQCBtYWtlX3dpbmRvd2FnZyhMaXN0ICp0bGlzdCwgV2luZG93Q2xhdXNl ICp3YywKIAkvKiBTdG9yZSBwcmUtY29tcHV0ZWQgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBiaXRt YXBzZXQgKi8KIAlub2RlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50ID0gZGVmaW5lTWF0Y2hT dGFydERlcGVuZGVudDsKIAotCS8qIENvbXB1dGUgbmF2IG9mZnNldHMgZm9yIHR1cGxlc3RvcmUg dHJpbSBvcHRpbWl6YXRpb24gKi8KLQljb21wdXRlX25hdl9vZmZzZXRzKGRlZmluZUNsYXVzZSwK LQkJCQkJCSZub2RlLT5uYXZNYXhPZmZzZXRLaW5kLCAmbm9kZS0+bmF2TWF4T2Zmc2V0LAotCQkJ CQkJJm5vZGUtPmhhc0ZpcnN0TmF2LAotCQkJCQkJJm5vZGUtPm5hdkZpcnN0T2Zmc2V0S2luZCwg Jm5vZGUtPm5hdkZpcnN0T2Zmc2V0KTsKKwkvKiBTdG9yZSBwcmUtY29tcHV0ZWQgbmF2IG9mZnNl dHMgZm9yIHR1cGxlc3RvcmUgdHJpbSBvcHRpbWl6YXRpb24gKi8KKwlub2RlLT5uYXZNYXhPZmZz ZXRLaW5kID0gbmF2TWF4T2Zmc2V0S2luZDsKKwlub2RlLT5uYXZNYXhPZmZzZXQgPSBuYXZNYXhP ZmZzZXQ7CisJbm9kZS0+aGFzRmlyc3ROYXYgPSBoYXNGaXJzdE5hdjsKKwlub2RlLT5uYXZGaXJz dE9mZnNldEtpbmQgPSBuYXZGaXJzdE9mZnNldEtpbmQ7CisJbm9kZS0+bmF2Rmlyc3RPZmZzZXQg PSBuYXZGaXJzdE9mZnNldDsKIAogCXBsYW4tPnRhcmdldGxpc3QgPSB0bGlzdDsKIAlwbGFuLT5s ZWZ0dHJlZSA9IGxlZnR0cmVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCAyNTQzMTcw YzM3NC4uYTgxN2ViNGE2M2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC00MSw2ICs0 MSw3IEBACiAKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVu Y3MuaCIKKyNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIv cnByLmgiCiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gcGF0dGVybiBjb21wYXJpc29uICov CkBAIC0xOTkxLDMgKzE5OTIsMzYgQEAgYnVpbGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpw YXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJsZUxpc3QsCiAKIAlyZXR1cm4gcmVzdWx0OwogfQor CisvKgorICogbmF2X3RyYXZlcnNhbF93YWxrZXIKKyAqCQlTaGFyZWQgZXhwcmVzc2lvbi10cmVl IHdhbGtlciB0aGF0IGxvY2F0ZXMgUlBSTmF2RXhwciBub2RlcyBpbiBhCisgKgkJREVGSU5FIGV4 cHJlc3Npb24gYW5kIGRpc3BhdGNoZXMgZWFjaCBvbmUgdG8gYSBjYWxsZXItc3VwcGxpZWQKKyAq CQl2aXNpdG9yLiAgVXNlZCBieToKKyAqCQkgIC0gcGxhbm5lciAodmlzaXRfbmF2X3BsYW4gaW4g Y3JlYXRlcGxhbi5jKSB0byBjb2xsZWN0IHR1cGxlc3RvcmUKKyAqCQkgICAgdHJpbSBvZmZzZXRz IGFuZCBwZXItdmFyaWFibGUgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeQorICoJCSAgLSBleGVjdXRv ciAodmlzaXRfbmF2X2V4ZWMgaW4gbm9kZVdpbmRvd0FnZy5jKSB0byBldmFsdWF0ZQorICoJCSAg ICBub24tY29uc3RhbnQgbmF2IG9mZnNldHMgYXQgV2luZG93QWdnU3RhdGUgaW5pdCB0aW1lCisg KgorICogVGhlIGRyaXZlciB3cmFwcyBhIG1vZGUtc3BlY2lmaWMgY29udGV4dCBpbiBhIE5hdlRy YXZlcnNhbCBhbmQgcGFzc2VzCisgKiBpdCBhcyBjdHg7IHRoZSB2aXNpdG9yIGNhc3RzIHQtPmRh dGEgdG8gaXRzIG93biBjb250ZXh0IHR5cGUuICBDaGlsZHJlbgorICogb2YgYW4gUlBSTmF2RXhw ciBhcmUgbm90IHdhbGtlZDogdGhlIHBhcnNlcidzIG5lc3RpbmcgcmVzdHJpY3Rpb25zCisgKiBl bnN1cmUgb2Zmc2V0cyBhbmQgZGVwZW5kZW5jaWVzIGFyZSBmdWxseSBjYXB0dXJlZCBieSB0aGUg b3V0ZXIgbmF2CisgKiBraW5kLCBzbyB0aGUgdmlzaXRvciBvbmx5IG5lZWRzIHRvIGluc3BlY3Qg dGhlIFJQUk5hdkV4cHIgaXRzZWxmLgorICovCitib29sCituYXZfdHJhdmVyc2FsX3dhbGtlcihO b2RlICpub2RlLCB2b2lkICpjdHgpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZh bHNlOworCisJaWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKKwl7CisJCU5hdlRyYXZlcnNhbCAq dCA9IChOYXZUcmF2ZXJzYWwgKikgY3R4OworCisJCXQtPnZpc2l0KHQsIChSUFJOYXZFeHByICop IG5vZGUpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93 YWxrZXIobm9kZSwgbmF2X3RyYXZlcnNhbF93YWxrZXIsIGN0eCk7Cit9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf cnByLmMKaW5kZXggZjU2YjdkYjViYzguLjg3NDExYWJjYmUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jw ci5jCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAi bm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0zNSwx NCArMzYsMzMgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInBh cnNlci9wYXJzZV9ycHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFyZ2V0LmgiCisjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisKKy8qIERFRklORSBjbGF1c2Ugd2Fsa2VyIGNvbnRl eHQgLS0gc2VlIGRlZmluZV93YWxrZXIgZm9yIHVzYWdlLiAqLwordHlwZWRlZiBlbnVtCit7CisJ REVGSU5FX1BIQVNFX0JPRFksCQkJLyogdG9wLWxldmVsIERFRklORSBleHByZXNzaW9uICovCisJ REVGSU5FX1BIQVNFX05BVl9BUkcsCQkvKiBpbnNpZGUgYW4gb3V0ZXIgbmF2J3MgYXJnIHN1YnRy ZWUgKi8KKwlERUZJTkVfUEhBU0VfTkFWX09GRlNFVCwJLyogaW5zaWRlIGFuIG91dGVyIG5hdidz IG9mZnNldF9hcmcgLworCQkJCQkJCQkgKiBjb21wb3VuZF9vZmZzZXRfYXJnICovCit9IERlZmlu ZVBoYXNlOworCit0eXBlZGVmIHN0cnVjdAoreworCVBhcnNlU3RhdGUgKnBzdGF0ZTsKKwlEZWZp bmVQaGFzZSBwaGFzZTsKKwlpbnQJCQluYXZfY291bnQ7CQkvKiBSUFJOYXZFeHByIG5vZGVzIHNl ZW4gaW4gY3VycmVudCBuYXYuYXJnICovCisJYm9vbAkJaGFzX2NvbHVtbl9yZWY7IC8qIFZhciBz ZWVuIGluIGN1cnJlbnQgbmF2IHNjb3BlICovCisJUlBSTmF2S2luZAlpbm5lcl9raW5kOwkJLyog a2luZCBvZiBmaXJzdCBuZXN0ZWQgbmF2IGluIGN1cnJlbnQgYXJnICovCit9IERlZmluZVdhbGtD dHg7CiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zICovCiBzdGF0aWMgdm9pZCB2YWxpZGF0ZVJQ UlBhdHRlcm5WYXJDb3VudChQYXJzZVN0YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpub2Rl LAogCQkJCQkJCQkJICAgTGlzdCAqcnBEZWZzLCBMaXN0ICoqdmFyTmFtZXMpOwogc3RhdGljIExp c3QgKnRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVz ZSAqd2MsCiAJCQkJCQkJCSAgIFdpbmRvd0RlZiAqd2luZGVmLCBMaXN0ICoqdGFyZ2V0bGlzdCk7 Ci1zdGF0aWMgdm9pZCBjaGVja19ycHJfbmF2X2V4cHIoUlBSTmF2RXhwciAqbmF2LCBQYXJzZVN0 YXRlICpwc3RhdGUpOwotc3RhdGljIGJvb2wgY2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlcihO b2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRpYyBib29sIGRlZmluZV93YWxrZXIoTm9k ZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBuYXZfdm9sYXRpbGVfZnVuY19j aGVja2VyKE9pZCBmdW5jaWQsIHZvaWQgKmNvbnRleHQpOwogCiAvKgogICogdHJhbnNmb3JtUlBS CkBAIC00MTIsOSArNDMyLDIyIEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpw c3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCWZvcmVhY2hfcHRy KFRhcmdldEVudHJ5LCB0ZSwgZGVmaW5lQ2xhdXNlKQogCQl0ZS0+ZXhwciA9IChFeHByICopIGNv ZXJjZV90b19ib29sZWFuKHBzdGF0ZSwgKE5vZGUgKikgdGUtPmV4cHIsICJERUZJTkUiKTsKIAot CS8qIGNoZWNrIGZvciBuZXN0ZWQgUFJFVi9ORVhUIGFuZCBtaXNzaW5nIGNvbHVtbiByZWZlcmVu Y2VzICovCisJLyoKKwkgKiBWYWxpZGF0ZSBERUZJTkUgZXhwcmVzc2lvbnM6IG5lc3RlZCBQUkVW L05FWFQsIGNvbHVtbiByZWZlcmVuY2VzLAorCSAqIGNvbXBvdW5kIGZsYXR0ZW4sIHZvbGF0aWxl IGNhbGxlZXMgLS0gYWxsIGluIGEgc2luZ2xlIHdhbGsgcGVyCisJICogdmFyaWFibGUuCisJICov CiAJZm9yZWFjaF9wdHIoVGFyZ2V0RW50cnksIHRlLCBkZWZpbmVDbGF1c2UpCi0JCSh2b2lkKSBj aGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCBwc3RhdGUpOwor CXsKKwkJRGVmaW5lV2Fsa0N0eCBjdHg7CisKKwkJY3R4LnBzdGF0ZSA9IHBzdGF0ZTsKKwkJY3R4 LnBoYXNlID0gREVGSU5FX1BIQVNFX0JPRFk7CisJCWN0eC5uYXZfY291bnQgPSAwOworCQljdHgu aGFzX2NvbHVtbl9yZWYgPSBmYWxzZTsKKwkJY3R4LmlubmVyX2tpbmQgPSAwOworCQkodm9pZCkg ZGVmaW5lX3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJmN0eCk7CisJfQogCiAJLyogbWFyayBj b2x1bW4gb3JpZ2lucyAqLwogCW1hcmtUYXJnZXRMaXN0T3JpZ2lucyhwc3RhdGUsIGRlZmluZUNs YXVzZSk7CkBAIC00MjYsMTY5ICs0NTksMjM5IEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJz ZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogfQog CiAvKgotICogY2hlY2tfcnByX25hdl9leHByCi0gKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2 RXhwciBub2RlIGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZwotICoJCXN1YnRyZWVz IGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrIGZvciBpbGxlZ2FsIG5lc3RpbmcsIG1pc3Np bmcKLSAqCQljb2x1bW4gcmVmZXJlbmNlcywgYW5kIG5vbi1jb25zdGFudCBvZmZzZXQgZXhwcmVz c2lvbnMuCisgKiBTaW5nbGUtcGFzcyBERUZJTkUgY2xhdXNlIHZhbGlkYXRvci4KICAqCi0gKiBO ZXN0aW5nIHJ1bGVzIChTUUwgc3RhbmRhcmQgNS42LjQpOgotICogICAtIFBSRVYvTkVYVCB3cmFw cGluZyBGSVJTVC9MQVNUOiBhbGxvd2VkIChjb21wb3VuZCBuYXZpZ2F0aW9uKQotICogICAtIEZJ UlNUL0xBU1Qgd3JhcHBpbmcgUFJFVi9ORVhUOiBwcm9oaWJpdGVkCi0gKiAgIC0gU2FtZS1jYXRl Z29yeSBuZXN0aW5nIChQUkVWIGluc2lkZSBQUkVWLCBGSVJTVCBpbnNpZGUgRklSU1QsIGV0Yy4p OgotICogICAgIHByb2hpYml0ZWQKKyAqIE9uZSB3YWxrZXIgZnVuY3Rpb24gKGRlZmluZV93YWxr ZXIpIHZpc2l0cyBldmVyeSBub2RlIGluIGEgREVGSU5FCisgKiBleHByZXNzaW9uIGV4YWN0bHkg b25jZSBhbmQgZW5mb3JjZXMgZXZlcnkgcnVsZToKKyAqICAgLSBWb2xhdGlsZSBjYWxsZWVzIGFu ZCBOZXh0VmFsdWVFeHByIGFyZSByZWplY3RlZCBhdCBwYXJzZSB0aW1lCisgKiAgICAgKFJQUidz IE5GQSBtYXkgZXZhbHVhdGUgdGhlIHNhbWUgcm93J3MgcHJlZGljYXRlIG11bHRpcGxlIHRpbWVz CisgKiAgICAgZHVyaW5nIGJhY2t0cmFja2luZywgc28gYSB2b2xhdGlsZSByZXN1bHQgd291bGQg bWFrZSBtYXRjaGluZworICogICAgIG5vbi1kZXRlcm1pbmlzdGljKS4KKyAqICAgLSBGb3IgZWFj aCBvdXRlciBSUFJOYXZFeHByIChwZXIgU1FMIDUuNi40IG5lc3RpbmcgcnVsZXMpOgorICogICAg ICogYXJnIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZQorICogICAg ICogUFJFVi9ORVhUIHdyYXBwaW5nIEZJUlNUL0xBU1QgZmxhdHRlbnMgdG8gYSBjb21wb3VuZCBr aW5kCisgKiAgICAgKiBPdGhlciBuZXN0aW5ncyBhcmUgcmVqZWN0ZWQgKEZJUlNUKFBSRVYoKSks IFBSRVYoUFJFVigpKSwgLi4uKQorICogICAgICogb2Zmc2V0X2FyZyAvIGNvbXBvdW5kX29mZnNl dF9hcmcgbXVzdCBub3QgY29udGFpbiBjb2x1bW4gcmVmcworICoKKyAqIFRoZSB3YWxrZXIgdXNl cyBhIHBoYXNlIHRhZyB0byBrbm93IHdoaWNoIHN1YnRyZWUgaXQgaXMgaW46IERFRklORQorICog Ym9keSAodG9wLWxldmVsKSwgaW5zaWRlIGEgbmF2LmFyZywgb3IgaW5zaWRlIGEgbmF2Lm9mZnNl dF9hcmcgLworICogY29tcG91bmRfb2Zmc2V0X2FyZy4gIFdoZW4gZW50ZXJpbmcgYW4gb3V0ZXIg bmF2IChQSEFTRV9CT0RZKSwgaXQKKyAqIHdhbGtzIG5hdi5hcmcgaW4gUEhBU0VfTkFWX0FSRyB0 byBjb2xsZWN0IG5lc3RpbmcvY29sdW1uLXJlZiBzdGF0ZSwKKyAqIGFwcGxpZXMgY29tcG91bmQg ZmxhdHRlbiBvciByYWlzZXMgYSBuZXN0aW5nIGVycm9yLCB0aGVuIHdhbGtzIHRoZQorICogKHBv c3QtZmxhdHRlbikgb2Zmc2V0KHMpIGluIFBIQVNFX05BVl9PRkZTRVQgdG8gZW5mb3JjZSB0aGUK KyAqIGNvbnN0YW50LW9mZnNldCBydWxlLiAgTm8gc3VidHJlZSBpcyB3YWxrZWQgdHdpY2UuCiAg Ki8KLXR5cGVkZWYgc3RydWN0CisKKy8qCisgKiBuYXZfdm9sYXRpbGVfZnVuY19jaGVja2VyCisg KgkJY2hlY2tfZnVuY3Rpb25zX2luX25vZGUgY2FsbGJhY2s6IHRydWUgaWYgZnVuY2lkIGlzIFZP TEFUSUxFLgorICovCitzdGF0aWMgYm9vbAorbmF2X3ZvbGF0aWxlX2Z1bmNfY2hlY2tlcihPaWQg ZnVuY2lkLCB2b2lkICpjb250ZXh0KQogewotCWludAkJCW5hdl9jb3VudDsJCS8qIG51bWJlciBv ZiBSUFJOYXZFeHByIG5vZGVzIGZvdW5kICovCi0JYm9vbAkJaGFzX2NvbHVtbl9yZWY7IC8qIFZh ciBmb3VuZCAqLwotCVJQUk5hdktpbmQJaW5uZXJfa2luZDsJCS8qIGtpbmQgb2YgZmlyc3QgKG91 dGVybW9zdCkgbmVzdGVkIFJQUk5hdkV4cHIgKi8KLX0gTmF2Q2hlY2tSZXN1bHQ7CisJcmV0dXJu IChmdW5jX3ZvbGF0aWxlKGZ1bmNpZCkgPT0gUFJPVk9MQVRJTEVfVk9MQVRJTEUpOworfQogCisv KgorICogZGVmaW5lX3dhbGtlcgorICoJCVNpbmdsZS1wYXNzIERFRklORSBjbGF1c2UgdmFsaWRh dG9yLiAgQXQgZWFjaCBub2RlLCBlbmZvcmNlczoKKyAqCisgKgkJICBbMV0gbm8gdm9sYXRpbGUg Y2FsbGVlcyAoYW5kIG5vIE5leHRWYWx1ZUV4cHIpIC0tIGFueXdoZXJlIGluCisgKgkJCSAgdGhl IHRyZWUsIHJlZ2FyZGxlc3Mgb2YgcGhhc2UKKyAqCQkgIFsyXSBmb3IgZWFjaCBvdXRlciBSUFJO YXZFeHByIChQSEFTRV9CT0RZIC0+IFBIQVNFX05BVl9BUkcpOgorICoJCQkgIC0gbmF2LmFyZyBt dXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2UKKyAqCQkJICAtIFBSRVYv TkVYVCB3cmFwcGluZyBGSVJTVC9MQVNUIGlzIGZsYXR0ZW5lZCBpbiBwbGFjZQorICoJCQkJdG8g YSBjb21wb3VuZCBraW5kIChQUkVWX0ZJUlNULCBQUkVWX0xBU1QsIE5FWFRfRklSU1QsCisgKgkJ CQlORVhUX0xBU1QpCisgKgkJCSAgLSBhbnkgb3RoZXIgbmVzdGluZyBpcyByZWplY3RlZCAoRklS U1QoUFJFVigpKSwKKyAqCQkJCVBSRVYoUFJFVigpKSwgRklSU1QoRklSU1QoKSksIHRocmVlLW9y LW1vcmUgZGVlcCkKKyAqCQkgIFszXSBmb3IgZWFjaCBuYXYgb2Zmc2V0IChQSEFTRV9OQVZfT0ZG U0VUKToKKyAqCQkJICAtIG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCAobm8gY29sdW1uIHJl ZmVyZW5jZXMpCisgKgorICogVmFyIHNpZ2h0aW5ncyBmZWVkIHRoZSBjb2x1bW4tcmVmIHJ1bGUg Zm9yIHRoZSBlbmNsb3NpbmcgbmF2IHNjb3BlOworICogUlBSTmF2RXhwciBzaWdodGluZ3MgaW5z aWRlIFBIQVNFX05BVl9BUkcgZmVlZCB0aGUgbmVzdGluZyBkZWNpc2lvbi4KKyAqIFNlZSB0aGUg Y29tbWVudCBibG9jayBhYm92ZSBEZWZpbmVQaGFzZSBmb3IgdGhlIG92ZXJhbGwgZGVzaWduIGFu ZAorICogaG93IGVhY2ggc3VidHJlZSBpcyB3YWxrZWQgZXhhY3RseSBvbmNlLgorICovCiBzdGF0 aWMgYm9vbAotbmF2X2NoZWNrX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQorZGVm aW5lX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogewotCU5hdkNoZWNrUmVzdWx0 ICpyZXN1bHQgPSAoTmF2Q2hlY2tSZXN1bHQgKikgY29udGV4dDsKKwlEZWZpbmVXYWxrQ3R4ICpj dHggPSAoRGVmaW5lV2Fsa0N0eCAqKSBjb250ZXh0OwogCiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJ cmV0dXJuIGZhbHNlOwotCWlmIChJc0Eobm9kZSwgUlBSTmF2RXhwcikpCi0JewotCQlpZiAocmVz dWx0LT5uYXZfY291bnQgPT0gMCkKLQkJCXJlc3VsdC0+aW5uZXJfa2luZCA9ICgoUlBSTmF2RXhw ciAqKSBub2RlKS0+a2luZDsKLQkJcmVzdWx0LT5uYXZfY291bnQrKzsKLQl9Ci0JaWYgKElzQShu b2RlLCBWYXIpKQotCQlyZXN1bHQtPmhhc19jb2x1bW5fcmVmID0gdHJ1ZTsKLQotCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9jaGVja193YWxrZXIsIGNvbnRleHQpOwot fQogCi1zdGF0aWMgdm9pZAotY2hlY2tfcnByX25hdl9leHByKFJQUk5hdkV4cHIgKm5hdiwgUGFy c2VTdGF0ZSAqcHN0YXRlKQotewotCU5hdkNoZWNrUmVzdWx0IHJlc3VsdDsKLQlib29sCQlvdXRl cl9pc19waHlzaWNhbCA9IChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8Ci0JCQkJCQkJCQkg bmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCk7CisJLyoKKwkgKiBSZWplY3Qgdm9sYXRpbGUgY2Fs bGVlcyBhbmQgc2VxdWVuY2Ugb3BlcmF0aW9ucyBhbnl3aGVyZSBpbiB0aGUgREVGSU5FCisJICog Y2xhdXNlOiB0aGV5IGFyZSBub24tZGV0ZXJtaW5pc3RpYyBhY3Jvc3MgdGhlIG11bHRpcGxlIHBy ZWRpY2F0ZQorCSAqIGV2YWx1YXRpb25zIHRoYXQgTkZBIGJhY2t0cmFja2luZyBhbmQgUFJFVi9O RVhUIG5hdmlnYXRpb24gbWF5IHRyaWdnZXIKKwkgKiBmb3IgYSBzaW5nbGUgcm93LgorCSAqLwor CWlmIChjaGVja19mdW5jdGlvbnNfaW5fbm9kZShub2RlLCBuYXZfdm9sYXRpbGVfZnVuY19jaGVj a2VyLCBOVUxMKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygidm9sYXRpbGUgZnVuY3Rpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBERUZJTkUgY2xhdXNlIiksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihj dHgtPnBzdGF0ZSwgZXhwckxvY2F0aW9uKG5vZGUpKSkpOworCWlmIChJc0Eobm9kZSwgTmV4dFZh bHVlRXhwcikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNlcXVlbmNlIG9wZXJhdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UiKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN0 eC0+cHN0YXRlLCBleHByTG9jYXRpb24obm9kZSkpKSk7CiAKLQkvKiBDaGVjayBhcmcgc3VidHJl ZTogbmVzdGluZyArIGNvbHVtbiByZWZlcmVuY2UgaW4gb25lIHdhbGsgKi8KLQltZW1zZXQoJnJl c3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOwotCSh2b2lkKSBuYXZfY2hlY2tfd2Fsa2VyKChOb2Rl ICopIG5hdi0+YXJnLCAmcmVzdWx0KTsKKwkvKiBWYXIgc2lnaHRpbmcgZmVlZHMgdGhlIGNvbHVt bi1yZWYgcnVsZSBmb3IgdGhlIGVuY2xvc2luZyBuYXYgc2NvcGUuICovCisJaWYgKElzQShub2Rl LCBWYXIpICYmCisJCShjdHgtPnBoYXNlID09IERFRklORV9QSEFTRV9OQVZfQVJHIHx8CisJCSBj dHgtPnBoYXNlID09IERFRklORV9QSEFTRV9OQVZfT0ZGU0VUKSkKKwkJY3R4LT5oYXNfY29sdW1u X3JlZiA9IHRydWU7CiAKLQlpZiAocmVzdWx0Lm5hdl9jb3VudCA+IDApCisJaWYgKElzQShub2Rl LCBSUFJOYXZFeHByKSkKIAl7Ci0JCWJvb2wJCWlubmVyX2lzX3BoeXNpY2FsID0gKHJlc3VsdC5p bm5lcl9raW5kID09IFJQUl9OQVZfUFJFViB8fAotCQkJCQkJCQkJCSByZXN1bHQuaW5uZXJfa2lu ZCA9PSBSUFJfTkFWX05FWFQpOworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBu b2RlOwogCi0JCWlmIChvdXRlcl9pc19waHlzaWNhbCAmJiAhaW5uZXJfaXNfcGh5c2ljYWwpCisJ CWlmIChjdHgtPnBoYXNlID09IERFRklORV9QSEFTRV9OQVZfQVJHKQogCQl7CiAJCQkvKgotCQkJ ICogUFJFVi9ORVhUIHdyYXBwaW5nIEZJUlNUL0xBU1Q6IGNvbXBvdW5kIG5hdmlnYXRpb24gcGVy IFNRTAotCQkJICogc3RhbmRhcmQgNS42LjQuICBGbGF0dGVuIHRoZSBuZXN0ZWQgUlBSTmF2RXhw ciBpbnRvIGEgc2luZ2xlCi0JCQkgKiBjb21wb3VuZCBub2RlLiAgVGhlIGlubmVyIFJQUk5hdkV4 cHIgbXVzdCBiZSB0aGUgZGlyZWN0IGFyZyBvZgotCQkJICogdGhlIG91dGVyOyBleHByZXNzaW9u cyBsaWtlIFBSRVYodmFsICsgRklSU1QodikpIGFyZSBub3QgdmFsaWQKLQkJCSAqIGNvbXBvdW5k IG5hdmlnYXRpb24uCisJCQkgKiBOZXN0ZWQgbmF2IGluc2lkZSBhbiBvdXRlciBuYXYuYXJnOiBy ZWNvcmQgZm9yIHRoZSBvdXRlcidzCisJCQkgKiBjb21wb3VuZCAvIG5lc3RpbmcgZGVjaXNpb24s IHRoZW4ga2VlcCByZWN1cnNpbmcgc28gZGVlcGVyIFZhcnMKKwkJCSAqIGFuZCB2b2xhdGlsZSBj YWxsZWVzIGFyZSBzdGlsbCBvYnNlcnZlZC4KIAkJCSAqLwotCQkJUlBSTmF2RXhwciAqaW5uZXI7 Ci0KLQkJCS8qIFJlamVjdCB0cmlwbGUtb3ItZGVlcGVyIG5lc3RpbmcgKGUuZy4gUFJFVihGSVJT VChQUkVWKHgpKSkpICovCi0JCQlpZiAocmVzdWx0Lm5hdl9jb3VudCA+IDEpCi0JCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCSBl cnJtc2coImNhbm5vdCBuZXN0IHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gbW9yZSB0aGFuIHR3byBs ZXZlbHMgZGVlcCIpLAotCQkJCQkJIGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihM QVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFy ZSBhbGxvd2VkLiIpLAotCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9j YXRpb24pKSk7Ci0KLQkJCWlmICghSXNBKG5hdi0+YXJnLCBSUFJOYXZFeHByKSkKLQkJCQllcmVw b3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJ IGVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBiZSBhIGRpcmVj dCBhcmd1bWVudCBvZiB0aGUgb3V0ZXIgbmF2aWdhdGlvbiIpLAotCQkJCQkJIGVycmhpbnQoIk9u bHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChM QVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAotCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7Ci0JCQlpbm5lciA9IChSUFJOYXZFeHBy ICopIG5hdi0+YXJnOwotCi0JCQkvKiBEZXRlcm1pbmUgY29tcG91bmQga2luZCAqLwotCQkJaWYg KG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVYgJiYgaW5uZXItPmtpbmQgPT0gUlBSX05BVl9GSVJT VCkKLQkJCQluYXYtPmtpbmQgPSBSUFJfTkFWX1BSRVZfRklSU1Q7Ci0JCQllbHNlIGlmIChuYXYt PmtpbmQgPT0gUlBSX05BVl9QUkVWICYmIGlubmVyLT5raW5kID09IFJQUl9OQVZfTEFTVCkKLQkJ CQluYXYtPmtpbmQgPSBSUFJfTkFWX1BSRVZfTEFTVDsKLQkJCWVsc2UgaWYgKG5hdi0+a2luZCA9 PSBSUFJfTkFWX05FWFQgJiYgaW5uZXItPmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKLQkJCQluYXYt PmtpbmQgPSBSUFJfTkFWX05FWFRfRklSU1Q7Ci0JCQllbHNlIGlmIChuYXYtPmtpbmQgPT0gUlBS X05BVl9ORVhUICYmIGlubmVyLT5raW5kID09IFJQUl9OQVZfTEFTVCkKLQkJCQluYXYtPmtpbmQg PSBSUFJfTkFWX05FWFRfTEFTVDsKLQotCQkJLyogTW92ZSBvdXRlciBvZmZzZXQgdG8gY29tcG91 bmRfb2Zmc2V0X2FyZyAqLwotCQkJbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnID0gbmF2LT5vZmZz ZXRfYXJnOwotCi0JCQkvKiBNb3ZlIGlubmVyIG9mZnNldCBhbmQgYXJnIHVwICovCi0JCQluYXYt Pm9mZnNldF9hcmcgPSBpbm5lci0+b2Zmc2V0X2FyZzsKLQkJCW5hdi0+YXJnID0gaW5uZXItPmFy ZzsKLQotCQkJLyogTm8gZnVydGhlciBuZXN0aW5nIGNoZWNrIG5lZWRlZCAtIGFscmVhZHkgdmFs aWRhdGVkICovCi0JCQlyZXR1cm47Ci0JCX0KLQkJZWxzZSBpZiAoIW91dGVyX2lzX3BoeXNpY2Fs ICYmIGlubmVyX2lzX3BoeXNpY2FsKQotCQl7Ci0JCQkvKiBGSVJTVC9MQVNUIHdyYXBwaW5nIFBS RVYvTkVYVDogcHJvaGliaXRlZCBieSBzdGFuZGFyZCAqLwotCQkJZXJlcG9ydChFUlJPUiwKLQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkgZXJybXNnKCJGSVJTVCBh bmQgTEFTVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQiKSwKLQkJCQkJIGVycmhpbnQoIk9u bHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChM QVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAotCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKKwkJCWlmIChjdHgtPm5hdl9jb3VudCA9 PSAwKQorCQkJCWN0eC0+aW5uZXJfa2luZCA9IG5hdi0+a2luZDsKKwkJCWN0eC0+bmF2X2NvdW50 Kys7CisJCQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBkZWZpbmVfd2Fsa2Vy LCBjdHgpOwogCQl9Ci0JCWVsc2UgaWYgKG91dGVyX2lzX3BoeXNpY2FsICYmIGlubmVyX2lzX3Bo eXNpY2FsKQorCisJCWlmIChjdHgtPnBoYXNlID09IERFRklORV9QSEFTRV9OQVZfT0ZGU0VUKQog CQl7Ci0JCQkvKiBQUkVWL05FWFQgd3JhcHBpbmcgUFJFVi9ORVhUOiBwcm9oaWJpdGVkICovCi0J CQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0J CQkJCSBlcnJtc2coIlBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUIiks Ci0JCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChG SVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwK LQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCQkv KgorCQkJICogTmF2cyBpbnNpZGUgb2Zmc2V0X2FyZyBhcmUgdW51c3VhbCBidXQgbm90IGRpcmVj dGx5IGJhbm5lZDsgdGhlCisJCQkgKiBjb25zdGFudC1vZmZzZXQgcnVsZSB3aWxsIGNhdGNoIGFu eSBWYXIgb3Igdm9sYXRpbGUgdGhleQorCQkJICogY29udGFpbi4KKwkJCSAqLworCQkJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZGVmaW5lX3dhbGtlciwgY3R4KTsKIAkJfQot CQllbHNlCisKKwkJLyoKKwkJICogUEhBU0VfQk9EWTogdGhpcyBpcyBhbiBvdXRlciBuYXYgYXQg dG9wIGxldmVsLiAgV2FsayBhcmcgZmlyc3QgdG8KKwkJICogY29sbGVjdCBuZXN0aW5nIC8gY29s dW1uLXJlZiBzdGF0ZSwgdGhlbiB2YWxpZGF0ZSBhbmQgKGZvciBjb21wb3VuZAorCQkgKiBmb3Jt cykgZmxhdHRlbiwgdGhlbiB3YWxrIG9mZnNldChzKS4KKwkJICovCiAJCXsKLQkJCS8qIEZJUlNU L0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZCAqLwotCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkgZXJybXNnKCJG SVJTVCBhbmQgTEFTVCBjYW5ub3QgY29udGFpbiBGSVJTVCBvciBMQVNUIiksCi0JCQkJCSBlcnJo aW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5k IE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKLQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7Ci0JCX0KLQl9Ci0JaWYgKCFy ZXN1bHQuaGFzX2NvbHVtbl9yZWYpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAotCQkJCSBlcnJtc2coImFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJu IG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJl ZmVyZW5jZSIpLAotCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9u KSkpOworCQkJRGVmaW5lV2Fsa0N0eCBzYXZlZCA9ICpjdHg7CisJCQlib29sCQlvdXRlcl9waHlz ID0gKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVYgfHwKKwkJCQkJCQkJCSAgbmF2LT5raW5kID09 IFJQUl9OQVZfTkVYVCk7CisJCQlib29sCQlmbGF0dGVuZWQgPSBmYWxzZTsKKworCQkJY3R4LT5w aGFzZSA9IERFRklORV9QSEFTRV9OQVZfQVJHOworCQkJY3R4LT5uYXZfY291bnQgPSAwOworCQkJ Y3R4LT5oYXNfY29sdW1uX3JlZiA9IGZhbHNlOworCQkJY3R4LT5pbm5lcl9raW5kID0gMDsKKwkJ CSh2b2lkKSBkZWZpbmVfd2Fsa2VyKChOb2RlICopIG5hdi0+YXJnLCBjdHgpOworCisJCQlpZiAo Y3R4LT5uYXZfY291bnQgPiAwKQorCQkJeworCQkJCWJvb2wJCWlubmVyX3BoeXMgPSAoY3R4LT5p bm5lcl9raW5kID09IFJQUl9OQVZfUFJFViB8fAorCQkJCQkJCQkJCSAgY3R4LT5pbm5lcl9raW5k ID09IFJQUl9OQVZfTkVYVCk7CiAKLQkvKiBDaGVjayBvZmZzZXRfYXJnOiBjb2x1bW4gcmVmICsg dm9sYXRpbGUgaW4gb25lIHdhbGsgKi8KLQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCi0J ewotCQltZW1zZXQoJnJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOwotCQkodm9pZCkgbmF2X2No ZWNrX3dhbGtlcigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcsICZyZXN1bHQpOwotCi0JCWlmIChy ZXN1bHQuaGFzX2NvbHVtbl9yZWYgfHwKLQkJCWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChO b2RlICopIG5hdi0+b2Zmc2V0X2FyZykpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coInJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCIpLAotCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKLQl9Ci19CisJ CQkJaWYgKG91dGVyX3BoeXMgJiYgIWlubmVyX3BoeXMpCisJCQkJeworCQkJCQlSUFJOYXZFeHBy ICppbm5lcjsKIAotLyoKLSAqIGNoZWNrX3Jwcl9uYXZfbmVzdGluZ193YWxrZXIKLSAqCQlXYWxr IHRoZSBERUZJTkUgY2xhdXNlIGV4cHJlc3Npb24gdHJlZSBhbmQgdmFsaWRhdGUgZWFjaCBSUFJO YXZFeHByLgotICovCi1zdGF0aWMgYm9vbAotY2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlcihO b2RlICpub2RlLCB2b2lkICpjb250ZXh0KQotewotCWlmIChub2RlID09IE5VTEwpCi0JCXJldHVy biBmYWxzZTsKLQlpZiAoSXNBKG5vZGUsIFJQUk5hdkV4cHIpKQotCXsKLQkJY2hlY2tfcnByX25h dl9leHByKChSUFJOYXZFeHByICopIG5vZGUsIChQYXJzZVN0YXRlICopIGNvbnRleHQpOwotCQkv KiBkb24ndCByZWN1cnNlIGludG8gYXJnOyBuZXN0aW5nIGFscmVhZHkgY2hlY2tlZCBhYm92ZSAq LwotCQlyZXR1cm4gZmFsc2U7CisJCQkJCS8qIFJlamVjdCB0cmlwbGUtb3ItZGVlcGVyIG5lc3Rp bmcgKi8KKwkJCQkJaWYgKGN0eC0+bmF2X2NvdW50ID4gMSkKKwkJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJIGVycm1z ZygiY2Fubm90IG5lc3Qgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBtb3JlIHRoYW4gdHdvIGxldmVs cyBkZWVwIiksCisJCQkJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFT VCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUg YWxsb3dlZC4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwgbmF2 LT5sb2NhdGlvbikpKTsKKworCQkJCQlpZiAoIUlzQShuYXYtPmFyZywgUlBSTmF2RXhwcikpCisJ CQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11 c3QgYmUgYSBkaXJlY3QgYXJndW1lbnQgb2YgdGhlIG91dGVyIG5hdmlnYXRpb24iKSwKKwkJCQkJ CQkJIGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNU KCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAorCQkJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN0eC0+cHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOwor CisJCQkJCWlubmVyID0gKFJQUk5hdkV4cHIgKikgbmF2LT5hcmc7CisKKwkJCQkJaWYgKG5hdi0+ a2luZCA9PSBSUFJfTkFWX1BSRVYgJiYgaW5uZXItPmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKKwkJ CQkJCW5hdi0+a2luZCA9IFJQUl9OQVZfUFJFVl9GSVJTVDsKKwkJCQkJZWxzZSBpZiAobmF2LT5r aW5kID09IFJQUl9OQVZfUFJFViAmJiBpbm5lci0+a2luZCA9PSBSUFJfTkFWX0xBU1QpCisJCQkJ CQluYXYtPmtpbmQgPSBSUFJfTkFWX1BSRVZfTEFTVDsKKwkJCQkJZWxzZSBpZiAobmF2LT5raW5k ID09IFJQUl9OQVZfTkVYVCAmJiBpbm5lci0+a2luZCA9PSBSUFJfTkFWX0ZJUlNUKQorCQkJCQkJ bmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0ZJUlNUOworCQkJCQllbHNlIGlmIChuYXYtPmtpbmQg PT0gUlBSX05BVl9ORVhUICYmIGlubmVyLT5raW5kID09IFJQUl9OQVZfTEFTVCkKKwkJCQkJCW5h di0+a2luZCA9IFJQUl9OQVZfTkVYVF9MQVNUOworCisJCQkJCW5hdi0+Y29tcG91bmRfb2Zmc2V0 X2FyZyA9IG5hdi0+b2Zmc2V0X2FyZzsKKwkJCQkJbmF2LT5vZmZzZXRfYXJnID0gaW5uZXItPm9m ZnNldF9hcmc7CisJCQkJCW5hdi0+YXJnID0gaW5uZXItPmFyZzsKKwkJCQkJZmxhdHRlbmVkID0g dHJ1ZTsKKwkJCQl9CisJCQkJZWxzZSBpZiAoIW91dGVyX3BoeXMgJiYgaW5uZXJfcGh5cykKKwkJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCQkJIGVycm1zZygiRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gUFJFViBvciBO RVhUIiksCisJCQkJCQkJIGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkp LCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxv d2VkLiIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3R4LT5wc3RhdGUsIG5hdi0+bG9j YXRpb24pKSk7CisJCQkJZWxzZSBpZiAob3V0ZXJfcGh5cyAmJiBpbm5lcl9waHlzKQorCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJCQkgZXJybXNnKCJQUkVWIGFuZCBORVhUIGNhbm5vdCBjb250YWluIFBSRVYgb3IgTkVYVCIp LAorCQkJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVY VChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4i KSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN0eC0+cHN0YXRlLCBuYXYtPmxvY2F0aW9u KSkpOworCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJIGVycm1zZygiRklSU1QgYW5kIExBU1QgY2Fubm90 IGNvbnRhaW4gRklSU1Qgb3IgTEFTVCIpLAorCQkJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklS U1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21w b3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN0 eC0+cHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQkJfQorCQkJZWxzZSBpZiAoIWN0eC0+aGFz X2NvbHVtbl9yZWYpCisJCQl7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coImFyZ3VtZW50IG9mIHJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1u IHJlZmVyZW5jZSIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwgbmF2 LT5sb2NhdGlvbikpKTsKKwkJCX0KKworCQkJLyoKKwkJCSAqIFdhbGsgb2Zmc2V0IGFyZyhzKSBp biBQSEFTRV9OQVZfT0ZGU0VUIHRvIGVuZm9yY2UgdGhlCisJCQkgKiBjb25zdGFudC1vZmZzZXQg cnVsZS4gIEZvciBjb21wb3VuZCBmb3JtcywgYm90aCB0aGUgaW5uZXIKKwkJCSAqIChwb3N0LWZs YXR0ZW4gbmF2LT5vZmZzZXRfYXJnKSBhbmQgb3V0ZXIgKGNvbXBvdW5kX29mZnNldF9hcmcpCisJ CQkgKiBvZmZzZXRzIG11c3QgYmUgY29uc3RhbnRzOyB0aGUgaW5uZXIncyBjb2x1bW4tcmVmIHN0 YXR1cyB3YXMKKwkJCSAqIG5vdCBzZXBhcmF0ZWx5IHRyYWNrZWQgZHVyaW5nIHRoZSBQSEFTRV9O QVZfQVJHIHdhbGsgKHdoaWNoCisJCQkgKiBvbmx5IGNoZWNrcyB0aGF0IG5hdi5hcmcgYXMgYSB3 aG9sZSBoYXMgYXQgbGVhc3Qgb25lIFZhciksIHNvCisJCQkgKiBpdCBpcyByZS13YWxrZWQgaGVy ZSB0byBjYXRjaCBjb2x1bW4gcmVmZXJlbmNlcyB0aGUgaW5uZXIKKwkJCSAqIG9mZnNldCB3b3Vs ZCBoYXZlIGxlYWtlZC4KKwkJCSAqLworCQkJY3R4LT5waGFzZSA9IERFRklORV9QSEFTRV9OQVZf T0ZGU0VUOworCisJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQl7CisJCQkJY3R4 LT5oYXNfY29sdW1uX3JlZiA9IGZhbHNlOworCQkJCSh2b2lkKSBkZWZpbmVfd2Fsa2VyKChOb2Rl ICopIG5hdi0+b2Zmc2V0X2FyZywgY3R4KTsKKwkJCQlpZiAoY3R4LT5oYXNfY29sdW1uX3JlZikK KwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZz ZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50IiksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihjdHgtPnBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIG5hdi0+b2Zmc2V0X2FyZykp KSk7CisJCQl9CisJCQlpZiAoZmxhdHRlbmVkICYmIG5hdi0+Y29tcG91bmRfb2Zmc2V0X2FyZyAh PSBOVUxMKQorCQkJeworCQkJCWN0eC0+aGFzX2NvbHVtbl9yZWYgPSBmYWxzZTsKKwkJCQkodm9p ZCkgZGVmaW5lX3dhbGtlcigoTm9kZSAqKSBuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIGN0eCk7 CisJCQkJaWYgKGN0eC0+aGFzX2NvbHVtbl9yZWYpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCSBlcnJt c2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25z dGFudCIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3R4LT5wc3RhdGUsIGV4cHJMb2Nh dGlvbigoTm9kZSAqKSBuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcpKSkpOworCQkJfQorCisJCQkq Y3R4ID0gc2F2ZWQ7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KIAl9Ci0JcmV0dXJuIGV4cHJlc3Np b25fdHJlZV93YWxrZXIobm9kZSwgY2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlciwgY29udGV4 dCk7CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBkZWZpbmVfd2Fsa2Vy LCBjdHgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIGIvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCmluZGV4IDBhMTRjZmFkNzliLi42M2M0YjA5ZGFmZiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCisrKyBiL3NyYy9pbmNsdWRl L29wdGltaXplci9ycHIuaApAQCAtNjIsNCArNjIsMjYgQEAgZXh0ZXJuIFJQUlBhdHRlcm4gKmJ1 aWxkUlBSUGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybiwgTGlzdCAqZGVmaW5lVmFyaWFi bGUKIAkJCQkJCQkJICAgUlBTa2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMsCiAJCQkJ CQkJCSAgIGJvb2wgaGFzTWF0Y2hTdGFydERlcGVuZGVudCk7CiAKKy8qCisgKiBTaGFyZWQgdHJh dmVyc2FsIHdhbGtlciBmb3IgREVGSU5FIGNsYXVzZSBSUFJOYXZFeHByIGNvbGxlY3Rpb24uCisg KgorICogQm90aCBwbGFubmVyIChuYXYtb2Zmc2V0IC8gbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBh bmFseXNpcykgYW5kIGV4ZWN1dG9yCisgKiAocnVudGltZSBvZmZzZXQgZXZhbHVhdGlvbikgbmVl ZCB0byB3YWxrIERFRklORSBleHByZXNzaW9ucyBhbmQgZGlzcGF0Y2gKKyAqIHBlciBSUFJOYXZF eHByLiAgVGhleSBkaWZmZXIgb25seSBpbiB3aGF0IHRoZXkgZG8gYXQgZWFjaCBuYXYgbm9kZSwg c28KKyAqIHRoZSB0cmF2ZXJzYWwgZnJhbWUgaXMgc2hhcmVkIChuYXZfdHJhdmVyc2FsX3dhbGtl ciwgZGVmaW5lZCBpbiBycHIuYykKKyAqIGFuZCB0aGUgcGVyLW5hdiBhY3Rpb24gaXMgc3VwcGxp ZWQgYXMgYSBjYWxsYmFjay4gIFRoZSBkcml2ZXIgYWxsb2NhdGVzCisgKiBhIG1vZGUtc3BlY2lm aWMgY29udGV4dCwgcG9pbnRzIE5hdlRyYXZlcnNhbC5kYXRhIGF0IGl0LCBhbmQgY2FzdHMKKyAq IGluc2lkZSBpdHMgdmlzaXRvci4KKyAqLworc3RydWN0IE5hdlRyYXZlcnNhbDsKK3R5cGVkZWYg dm9pZCAoKk5hdlZpc2l0Rm4pIChzdHJ1Y3QgTmF2VHJhdmVyc2FsICp0LCBSUFJOYXZFeHByICpu YXYpOworCit0eXBlZGVmIHN0cnVjdCBOYXZUcmF2ZXJzYWwKK3sKKwlOYXZWaXNpdEZuCXZpc2l0 OworCXZvaWQJICAgKmRhdGE7CQkJLyogbW9kZS1zcGVjaWZpYyBjb250ZXh0ICovCit9IE5hdlRy YXZlcnNhbDsKKworZXh0ZXJuIGJvb2wgbmF2X3RyYXZlcnNhbF93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY3R4KTsKKwogI2VuZGlmCQkJCQkJCS8qIE9QVElNSVpFUl9SUFJfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDg1Mzg0ZjZiMDk2Li44NzkzZGRhM2NjMyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTE0NCw3ICsxMTQ0LDMxIEBAIFdJTkRPVyB3IEFT ICgKICk7CiBFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3QgYmUgYSBy dW4tdGltZSBjb25zdGFudAogTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcHJp Y2UpID4gMAotICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorLS0gTm9uLWNvbnN0YW50IG9mZnNldDogY29sdW1uIHJlZmVyZW5j ZSBpbiBjb21wb3VuZCBpbm5lciBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QocHJpY2UsIHByaWNlKSwgMikgPiAwCisp OworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IGJlIGEgcnVuLXRp bWUgY29uc3RhbnQKK0xJTkUgNzogICAgIERFRklORSBBIEFTIFBSRVYoTEFTVChwcmljZSwgcHJp Y2UpLCAyKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor LS0gTm9uLWNvbnN0YW50IG9mZnNldDogY29sdW1uIHJlZmVyZW5jZSBpbiBjb21wb3VuZCBvdXRl ciBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFS VElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUg QSBBUyBQUkVWKExBU1QocHJpY2UsIDEpLCBwcmljZSkgPiAwCispOworRVJST1I6ICByb3cgcGF0 dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0xJTkUg NzogICAgIERFRklORSBBIEFTIFBSRVYoTEFTVChwcmljZSwgMSksIHByaWNlKSA+IDAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIE5vbi1jb25zdGFu dCBvZmZzZXQ6IHZvbGF0aWxlIGZ1bmN0aW9uIGFzIG9mZnNldAogU0VMRUNUIHByaWNlIEZST00g c3RvY2sKIFdJTkRPVyB3IEFTICgKQEAgLTExNTQsOSArMTE3OCw5IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIHJhbmRvbSgpOjpp bnQpID4gMAogKTsKLUVSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBi ZSBhIHJ1bi10aW1lIGNvbnN0YW50CitFUlJPUjogIHZvbGF0aWxlIGZ1bmN0aW9ucyBhcmUgbm90 IGFsbG93ZWQgaW4gREVGSU5FIGNsYXVzZQogTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVihw cmljZSwgcmFuZG9tKCk6OmludCkgPiAwCi0gICAgICAgICAgICAgICAgICAgICAgICBeCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBOb24tY29uc3RhbnQgb2Zmc2V0 OiBzdWJxdWVyeSBhcyBvZmZzZXQKIFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBB UyAoCkBAIC0xMTgxLDcgKzEyMDUsNyBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIGNhbm5vdCB1 c2Ugc3VicXVlcnkgaW4gREVGSU5FIGV4cHJlc3Npb24KIExJTkUgNzogICAgIERFRklORSBBIEFT IFBSRVYocHJpY2UgKyAoU0VMRUNUIDEpKSA+IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi0tLSBGaXJzdCBhcmc6IHZvbGF0aWxlIGZ1bmN0aW9uIGlzIGFsbG93ZWQg KGV2YWx1YXRlZCBvbiB0YXJnZXQgcm93KQorLS0gVm9sYXRpbGUgZnVuY3Rpb24gaW5zaWRlIG5h di5hcmcgaXMgcmVqZWN0ZWQgYXQgcGFyc2UgdGltZQogU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwKICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdwogRlJPTSBzdG9jawpAQCAtMTE5MSwzMCArMTIxNSwy NCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgUFJF VihwcmljZSArIHJhbmRvbSgpICogMCkgPj0gMAogKTsKLSBjb21wYW55ICB8ICAgdGRhdGUgICAg fCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAotLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCi0g Y29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAotIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAyMDAgfCAg ICAgICAgMTMwIHwgICAgIDkKLSBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCi0gY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAx NDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAotIGNvbXBhbnkxIHwgMDctMDUt MjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKLSBjb21wYW55 MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw Ci0gY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAotIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKLSBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCi0gY29tcGFueTEgfCAwNy0xMC0yMDIzIHwg ICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAotIGNvbXBhbnkyIHwgMDct MDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKLSBjb21w YW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgICAgMTMwMCB8ICAg ICA5Ci0gY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAotIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKLSBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCi0gY29tcGFueTIgfCAwNy0wNi0yMDIz IHwgICAgNjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAotIGNvbXBhbnkyIHwg MDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKLSBj b21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCi0gY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAotIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKLSgyMCByb3dzKQotCitFUlJPUjogIHZvbGF0aWxl IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGSU5FIGNsYXVzZQorTElORSA4OiAgICAg REVGSU5FIEEgQVMgUFJFVihwcmljZSArIHJhbmRvbSgpICogMCkgPj0gMAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIG5leHR2YWwgaXMgdm9sYXRpbGUgKHBlciBw Z19wcm9jKSwgc28gaXQgaXMgcmVqZWN0ZWQgdmlhIHRoZSBGdW5jRXhwcgorLS0gcGF0aCB3aXRo IHRoZSAidm9sYXRpbGUgZnVuY3Rpb25zIiBtZXNzYWdlCitDUkVBVEUgU0VRVUVOQ0UgcnByX3Nl cTsKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBw cmljZSA+IG5leHR2YWwoJ3Jwcl9zZXEnKQorKTsKK0VSUk9SOiAgdm9sYXRpbGUgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUgY2xhdXNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBB UyBwcmljZSA+IG5leHR2YWwoJ3Jwcl9zZXEnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCitEUk9QIFNFUVVFTkNFIHJwcl9zZXE7CiAtLQogLS0gMi1hcmcgUFJFVi9ORVhUOiBm dW5jdGlvbmFsIHRlc3RzCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfZXhwbGFpbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWlu Lm91dAppbmRleCBkYzM1MjJmOTMwZi4uMGEwNDlkMWJlYmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CkBAIC00NzQ0LDkgKzQ3NDQsOCBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcwogKDUgcm93cykK IAotLS0gQ29tcG91bmQgTkVYVChGSVJTVCh2YWwsIE4pLCBNKTogY29uc3RhbnQgbG9va2FoZWFk IG92ZXJmbG93IC0+IG5vIHRyaW0gaW1wYWN0Ci0tLSBOICsgTSBvdmVyZmxvd3MgaW50NjQsIGJ1 dCB0YXJnZXQgaXMgZm9yd2FyZCBmcm9tIG1hdGNoX3N0YXJ0IHNvIGl0IG5ldmVyCi0tLSBjb25z dHJhaW5zIHRyaW0uICBMb29rYWhlYWQgcmVtYWlucyBhdCBkZWZhdWx0ICgwKS4KKy0tIENvbXBv dW5kIE5FWFQoRklSU1QodmFsLCBOKSwgTSk6IGNvbnN0YW50IGxvb2thaGVhZCBvdmVyZmxvdyAt PiBpbmZpbml0ZQorLS0gTiArIE0gb3ZlcmZsb3dzIGludDY0OyBmb3J3YXJkIHJlYWNoIGlzIHVu Ym91bmRlZCwgZGlzcGxheWVkIGFzIGluZmluaXRlLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC00NzYwLDcgKzQ3NTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICBXaW5kb3c6 IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IGErCiAgICBOYXYgTWFyayBMb29rYmFjazogMAotICAgTmF2IE1hcmsgTG9v a2FoZWFkOiAwCisgICBOYXYgTWFyayBMb29rYWhlYWQ6IGluZmluaXRlCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcwogKDYgcm93cykKIApAQCAtNDgwMyw3ICs0ODAy LDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIAogUkVTRVQgcGxhbl9jYWNoZV9tb2RlOwogREVBTExPQ0FURSB0ZXN0X292ZXJmbG93X2xv b2tiYWNrOwotLS0gQ29tcG91bmQgTkVYVChGSVJTVCh2YWwsICQxKSwgJDIpOiBwYXJhbWV0ZXIg bG9va2FoZWFkIG92ZXJmbG93IC0+IG5vIHRyaW0gaW1wYWN0CistLSBDb21wb3VuZCBORVhUKEZJ UlNUKHZhbCwgJDEpLCAkMik6IHBhcmFtZXRlciBsb29rYWhlYWQgb3ZlcmZsb3cgLT4gaW5maW5p dGUKIFBSRVBBUkUgdGVzdF9vdmVyZmxvd19sb29rYWhlYWQoaW50OCwgaW50OCkgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKQEAgLTQ4 MjEsNyArNDgyMCw3IEBAIEVYUExBSU4gKENPU1RTIE9GRiwgQU5BTFlaRSwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErCiAgICBOYXYgTWFyayBMb29r YmFjazogMAotICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICBOYXYgTWFyayBMb29rYWhlYWQ6 IGluZmluaXRlCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogMTdrQgogICAg TkZBIFN0YXRlczogMSBwZWFrLCAxMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MiBwZWFrLCAxMSB0b3RhbCwgMTAgcHJ1bmVkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9pbnRlZ3JhdGlvbi5vdXQKaW5kZXggZWY2YTE1N2Y0NWQuLjkwNWJkMzUzOGRlIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC0xNDA2 LDIzICsxNDA2LDEyIEBAIERST1AgSU5ERVggcnByX2ludGVnX2lkX2lkeDsKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0g QjkuIFJQUiArIFZvbGF0aWxlIGZ1bmN0aW9uIGluIERFRklORQogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBSZWNvcmRz IHRoZSBjdXJyZW50IGJlaGF2aW91cjogREVGSU5FIHRvZGF5IGFjY2VwdHMgdm9sYXRpbGUKLS0t IGZ1bmN0aW9ucyBzdWNoIGFzIHJhbmRvbSgpIGFuZCB0aGUgcXVlcnkgcnVucyB0byBjb21wbGV0 aW9uLgotLS0gVG8ga2VlcCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGRldGVybWluaXN0aWMgdGhlIHBy ZWRpY2F0ZSB1c2VzCi0tLSAicmFuZG9tKCkgPj0gMC4wIiwgd2hpY2ggaXMgc3RydWN0dXJhbGx5 IGVxdWl2YWxlbnQgdG8gVFJVRSBhbmQKLS0tIHRoZXJlZm9yZSBkb2VzIG5vdCBwZXJ0dXJiIHRo ZSBtYXRjaCByZXN1bHQuICBUaGUgaW50ZXJlc3RpbmcKLS0tIHByb3BlcnR5IGlzIHRoYXQgdm9s YXRpbGUgaW52b2NhdGlvbiBkb2VzIG5vdCBjcmFzaCBvciBzaG9ydC0KLS0tIGNpcmN1aXQgcGF0 dGVybiBtYXRjaGluZy4KLS0tCi0tLSBYWFg6IHZvbGF0aWxlIGZ1bmN0aW9ucyBpbiBERUZJTkUg YXJlIHNsYXRlZCB0byBiZSByZWplY3RlZCBhdAotLS0gcGFyc2UgdGltZS4gIFVuZGVyIFJQUidz IE5GQSBlbmdpbmUgdGhlIHNhbWUgcm93J3MgREVGSU5FCi0tLSBwcmVkaWNhdGUgbWF5IGJlIGV2 YWx1YXRlZCBtdWx0aXBsZSB0aW1lcyAoYmFja3RyYWNraW5nLAotLS0gUFJFVi9ORVhUIG5hdmln YXRpb24pLCBzbyBhIHRydWx5IHZvbGF0aWxlIHJlc3VsdCB3b3VsZCBtYWtlCi0tLSBwYXR0ZXJu IG1hdGNoaW5nIG5vbi1kZXRlcm1pbmlzdGljLiAgV2hlbiB0aGUgcHJvaGliaXRpb24gbGFuZHMs Ci0tLSB0aGlzIHRlc3QgbXVzdCBiZSByZXBsYWNlZCB3aXRoIGFuIGVycm9yLWNhc2UgdGVzdCB0 aGF0IGV4cGVjdHMKLS0tIHJhbmRvbSgpIGluIERFRklORSB0byBiZSByZWplY3RlZC4KKy0tIFZv bGF0aWxlIGZ1bmN0aW9ucyBpbiBERUZJTkUgYXJlIHJlamVjdGVkIGF0IHBhcnNlIHRpbWUuICBV bmRlcgorLS0gUlBSJ3MgTkZBIGVuZ2luZSB0aGUgc2FtZSByb3cncyBERUZJTkUgcHJlZGljYXRl IG1heSBiZSBldmFsdWF0ZWQKKy0tIG11bHRpcGxlIHRpbWVzIChiYWNrdHJhY2tpbmcsIFBSRVYv TkVYVCBuYXZpZ2F0aW9uKSwgc28gYSB2b2xhdGlsZQorLS0gcmVzdWx0IHdvdWxkIG1ha2UgcGF0 dGVybiBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFNUQUJMRSBhbmQKKy0tIElNTVVUQUJM RSBjYWxsZWVzIGFyZSBhY2NlcHRlZC4KIC0tIEJhc2VsaW5lOiBTVEFCTEUgKHRvX2NoYXIpIGFu ZCBJTU1VVEFCTEUgKGxlbmd0aCkgY2FsbGVlcyBhcmUgYWNjZXB0ZWQuCi0tLSBUaGlzIGxvY2tz IHRoZSBib3VuZGFyeSBvZiB0aGUgdm9sYXRpbGUtb25seSBwcm9oaWJpdGlvbi4KIFNFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9pbnRlZwogV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkCkBAIC0xNDQ2LDcgKzE0MzUsNyBAQCBPUkRFUiBCWSBpZDsKICAxMCB8 ICA0NSB8ICAgMAogKDEwIHJvd3MpCiAKLS0tIFZvbGF0aWxlIChyYW5kb20pIGlzIHRoZSBwcm9o aWJpdGlvbiB0YXJnZXQ7IHRvZGF5IHN0aWxsIGFjY2VwdGVkLgorLS0gVm9sYXRpbGUgKHJhbmRv bSkgaXMgcmVqZWN0ZWQuCiBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAog RlJPTSBycHJfaW50ZWcKIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZApAQCAtMTQ1NCwyMCArMTQ0 Myw5IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAogICAgIFBBVFRFUk4gKEEgQispCiAgICAg REVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpIEFORCByYW5kb20oKSA+PSAwLjApCiBPUkRFUiBC WSBpZDsKLSBpZCB8IHZhbCB8IGNudCAKLS0tLS0rLS0tLS0rLS0tLS0KLSAgMSB8ICAxMCB8ICAg MgotICAyIHwgIDIwIHwgICAwCi0gIDMgfCAgMTUgfCAgIDIKLSAgNCB8ICAyNSB8ICAgMAotICA1 IHwgICA1IHwgICAzCi0gIDYgfCAgMzAgfCAgIDAKLSAgNyB8ICAzNSB8ICAgMAotICA4IHwgIDIw IHwgICAzCi0gIDkgfCAgNDAgfCAgIDAKLSAxMCB8ICA0NSB8ICAgMAotKDEwIHJvd3MpCi0KK0VS Uk9SOiAgdm9sYXRpbGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUgY2xhdXNl CitMSU5FIDY6ICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkgQU5EIHJhbmRvbSgpID49 IDAuMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLSBCMTAuIFJQUiArIENvcnJlbGF0ZWQgc3VicXVlcnkgaW4gV0hFUkUKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwci5zcWwKaW5kZXggNTU2M2UwNjJjZGUuLmU0NzkwZjc1YjBhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwci5zcWwKQEAgLTU0MSw2ICs1NDEsMjYgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIHByaWNlKSA+IDAKICk7CiAKKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6 IGNvbHVtbiByZWZlcmVuY2UgaW4gY29tcG91bmQgaW5uZXIgb2Zmc2V0CitTRUxFQ1QgcHJpY2Ug RlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5J VElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHByaWNlLCBw cmljZSksIDIpID4gMAorKTsKKworLS0gTm9uLWNvbnN0YW50IG9mZnNldDogY29sdW1uIHJlZmVy ZW5jZSBpbiBjb21wb3VuZCBvdXRlciBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitX SU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFU VEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QocHJpY2UsIDEpLCBwcmljZSkgPiAw CispOworCiAtLSBOb24tY29uc3RhbnQgb2Zmc2V0OiB2b2xhdGlsZSBmdW5jdGlvbiBhcyBvZmZz ZXQKIFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBBUyAoCkBAIC01NzEsNyArNTkx LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UgKyAoU0VMRUNU IDEpKSA+IDAKICk7CiAKLS0tIEZpcnN0IGFyZzogdm9sYXRpbGUgZnVuY3Rpb24gaXMgYWxsb3dl ZCAoZXZhbHVhdGVkIG9uIHRhcmdldCByb3cpCistLSBWb2xhdGlsZSBmdW5jdGlvbiBpbnNpZGUg bmF2LmFyZyBpcyByZWplY3RlZCBhdCBwYXJzZSB0aW1lCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUs IHByaWNlLAogICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJp Y2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CiBGUk9NIHN0b2NrCkBAIC01ODIsNiArNjAyLDE5 IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlICsgcmFuZG9tKCkg KiAwKSA+PSAwCiApOwogCistLSBuZXh0dmFsIGlzIHZvbGF0aWxlIChwZXIgcGdfcHJvYyksIHNv IGl0IGlzIHJlamVjdGVkIHZpYSB0aGUgRnVuY0V4cHIKKy0tIHBhdGggd2l0aCB0aGUgInZvbGF0 aWxlIGZ1bmN0aW9ucyIgbWVzc2FnZQorQ1JFQVRFIFNFUVVFTkNFIHJwcl9zZXE7CitTRUxFQ1Qg cHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55 CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBuZXh0 dmFsKCdycHJfc2VxJykKKyk7CitEUk9QIFNFUVVFTkNFIHJwcl9zZXE7CisKIC0tCiAtLSAyLWFy ZyBQUkVWL05FWFQ6IGZ1bmN0aW9uYWwgdGVzdHMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhw bGFpbi5zcWwKaW5kZXggYTM3ODllOTI2MzEuLmUxMjNiZTYwYWVhIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2V4cGxhaW4uc3FsCkBAIC0yNjk5LDkgKzI2OTksOCBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDQpLCA0NjExNjg2 MDE4NDI3Mzg3OTA0KSBJUyBOT1QgTlVMTAogKTsKIAotLS0gQ29tcG91bmQgTkVYVChGSVJTVCh2 YWwsIE4pLCBNKTogY29uc3RhbnQgbG9va2FoZWFkIG92ZXJmbG93IC0+IG5vIHRyaW0gaW1wYWN0 Ci0tLSBOICsgTSBvdmVyZmxvd3MgaW50NjQsIGJ1dCB0YXJnZXQgaXMgZm9yd2FyZCBmcm9tIG1h dGNoX3N0YXJ0IHNvIGl0IG5ldmVyCi0tLSBjb25zdHJhaW5zIHRyaW0uICBMb29rYWhlYWQgcmVt YWlucyBhdCBkZWZhdWx0ICgwKS4KKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFsLCBOKSwgTSk6 IGNvbnN0YW50IGxvb2thaGVhZCBvdmVyZmxvdyAtPiBpbmZpbml0ZQorLS0gTiArIE0gb3ZlcmZs b3dzIGludDY0OyBmb3J3YXJkIHJlYWNoIGlzIHVuYm91bmRlZCwgZGlzcGxheWVkIGFzIGluZmlu aXRlLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNzI4LDcgKzI3Mjcs NyBAQCBFWFBMQUlOIChDT1NUUyBPRkYsIEFOQUxZWkUsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogUkVTRVQgcGxhbl9jYWNoZV9tb2RlOwogREVBTExPQ0FURSB0ZXN0X292ZXJmbG93X2xvb2ti YWNrOwogCi0tLSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCwgJDEpLCAkMik6IHBhcmFtZXRlciBs b29rYWhlYWQgb3ZlcmZsb3cgLT4gbm8gdHJpbSBpbXBhY3QKKy0tIENvbXBvdW5kIE5FWFQoRklS U1QodmFsLCAkMSksICQyKTogcGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBpbmZpbml0 ZQogUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKaW5kZXggZDk3NDg5NzlkNTQuLjI5YjJk YjJmN2JiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKQEAgLTg2 OCwyNCArODY4LDEzIEBAIERST1AgSU5ERVggcnByX2ludGVnX2lkX2lkeDsKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0g QjkuIFJQUiArIFZvbGF0aWxlIGZ1bmN0aW9uIGluIERFRklORQogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBSZWNvcmRz IHRoZSBjdXJyZW50IGJlaGF2aW91cjogREVGSU5FIHRvZGF5IGFjY2VwdHMgdm9sYXRpbGUKLS0t IGZ1bmN0aW9ucyBzdWNoIGFzIHJhbmRvbSgpIGFuZCB0aGUgcXVlcnkgcnVucyB0byBjb21wbGV0 aW9uLgotLS0gVG8ga2VlcCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGRldGVybWluaXN0aWMgdGhlIHBy ZWRpY2F0ZSB1c2VzCi0tLSAicmFuZG9tKCkgPj0gMC4wIiwgd2hpY2ggaXMgc3RydWN0dXJhbGx5 IGVxdWl2YWxlbnQgdG8gVFJVRSBhbmQKLS0tIHRoZXJlZm9yZSBkb2VzIG5vdCBwZXJ0dXJiIHRo ZSBtYXRjaCByZXN1bHQuICBUaGUgaW50ZXJlc3RpbmcKLS0tIHByb3BlcnR5IGlzIHRoYXQgdm9s YXRpbGUgaW52b2NhdGlvbiBkb2VzIG5vdCBjcmFzaCBvciBzaG9ydC0KLS0tIGNpcmN1aXQgcGF0 dGVybiBtYXRjaGluZy4KLS0tCi0tLSBYWFg6IHZvbGF0aWxlIGZ1bmN0aW9ucyBpbiBERUZJTkUg YXJlIHNsYXRlZCB0byBiZSByZWplY3RlZCBhdAotLS0gcGFyc2UgdGltZS4gIFVuZGVyIFJQUidz IE5GQSBlbmdpbmUgdGhlIHNhbWUgcm93J3MgREVGSU5FCi0tLSBwcmVkaWNhdGUgbWF5IGJlIGV2 YWx1YXRlZCBtdWx0aXBsZSB0aW1lcyAoYmFja3RyYWNraW5nLAotLS0gUFJFVi9ORVhUIG5hdmln YXRpb24pLCBzbyBhIHRydWx5IHZvbGF0aWxlIHJlc3VsdCB3b3VsZCBtYWtlCi0tLSBwYXR0ZXJu IG1hdGNoaW5nIG5vbi1kZXRlcm1pbmlzdGljLiAgV2hlbiB0aGUgcHJvaGliaXRpb24gbGFuZHMs Ci0tLSB0aGlzIHRlc3QgbXVzdCBiZSByZXBsYWNlZCB3aXRoIGFuIGVycm9yLWNhc2UgdGVzdCB0 aGF0IGV4cGVjdHMKLS0tIHJhbmRvbSgpIGluIERFRklORSB0byBiZSByZWplY3RlZC4KKy0tIFZv bGF0aWxlIGZ1bmN0aW9ucyBpbiBERUZJTkUgYXJlIHJlamVjdGVkIGF0IHBhcnNlIHRpbWUuICBV bmRlcgorLS0gUlBSJ3MgTkZBIGVuZ2luZSB0aGUgc2FtZSByb3cncyBERUZJTkUgcHJlZGljYXRl IG1heSBiZSBldmFsdWF0ZWQKKy0tIG11bHRpcGxlIHRpbWVzIChiYWNrdHJhY2tpbmcsIFBSRVYv TkVYVCBuYXZpZ2F0aW9uKSwgc28gYSB2b2xhdGlsZQorLS0gcmVzdWx0IHdvdWxkIG1ha2UgcGF0 dGVybiBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFNUQUJMRSBhbmQKKy0tIElNTVVUQUJM RSBjYWxsZWVzIGFyZSBhY2NlcHRlZC4KIAogLS0gQmFzZWxpbmU6IFNUQUJMRSAodG9fY2hhcikg YW5kIElNTVVUQUJMRSAobGVuZ3RoKSBjYWxsZWVzIGFyZSBhY2NlcHRlZC4KLS0tIFRoaXMgbG9j a3MgdGhlIGJvdW5kYXJ5IG9mIHRoZSB2b2xhdGlsZS1vbmx5IHByb2hpYml0aW9uLgogU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKIEZST00gcnByX2ludGVnCiBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKQEAgLTg5Niw3ICs4ODUsNyBAQCBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKICAgICAgICAgICAgICAgICBBTkQgdG9fY2hhcihkYXRlICcyMDI2LTAxLTAxJywgJ1lZ WVknKSA9ICcyMDI2JykKIE9SREVSIEJZIGlkOwogCi0tLSBWb2xhdGlsZSAocmFuZG9tKSBpcyB0 aGUgcHJvaGliaXRpb24gdGFyZ2V0OyB0b2RheSBzdGlsbCBhY2NlcHRlZC4KKy0tIFZvbGF0aWxl IChyYW5kb20pIGlzIHJlamVjdGVkLgogU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKIEZST00gcnByX2ludGVnCiBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKaW5kZXggY2U1ODcwNjhiY2EuLjE5NzBjYTVkYTE0IDEwMDY0NAotLS0g YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdApAQCAtNjYyLDcgKzY2MiwxMCBAQCBEZWNvZGluZ1dvcmtlclNoYXJl ZAogRGVmRWxlbQogRGVmRWxlbUFjdGlvbgogRGVmYXVsdEFDTEluZm8KK0RlZmluZU1ldGFkYXRh Q29udGV4dAorRGVmaW5lUGhhc2UKIERlZmluZVN0bXQKK0RlZmluZVdhbGtDdHgKIERlZm5EdW1w ZXJQdHIKIERlbGV0ZVN0bXQKIERlcGVuZGVuY2llc1BhcnNlU3RhdGUKQEAgLTc2MSw4ICs3NjQs NyBAQCBFcnJvckRhdGEKIEVycm9yU2F2ZUNvbnRleHQKIEVzdGltYXRlRFNNRm9yZWlnblNjYW5f ZnVuY3Rpb24KIEVzdGltYXRpb25JbmZvCi1FdmFsTmF2Rmlyc3RDb250ZXh0Ci1FdmFsTmF2TWF4 Q29udGV4dAorRXZhbERlZmluZU9mZnNldHNDb250ZXh0CiBFdmVudFRyaWdnZXJDYWNoZUVudHJ5 CiBFdmVudFRyaWdnZXJDYWNoZUl0ZW0KIEV2ZW50VHJpZ2dlckNhY2hlU3RhdGVUeXBlCkBAIC0x ODMzLDggKzE4MzUsOCBAQCBOYW1lZExXTG9ja1RyYW5jaGVSZXF1ZXN0CiBOYW1lZFR1cGxlc3Rv cmVTY2FuCiBOYW1lZFR1cGxlc3RvcmVTY2FuU3RhdGUKIE5hbWVzcGFjZUluZm8KLU5hdkNoZWNr UmVzdWx0Ci1OYXZPZmZzZXRDb250ZXh0CitOYXZUcmF2ZXJzYWwKK05hdlZpc2l0Rm4KIE5lc3RM b29wCiBOZXN0TG9vcFBhcmFtCiBOZXN0TG9vcFN0YXRlCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0x NTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0005-Sync-stale-comments-on-DEFINE-PATTERN-handling.txt" Content-Disposition: attachment; filename="nocfbot-0005-Sync-stale-comments-on-DEFINE-PATTERN-handling.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jq94 RnJvbSBkOWZjNGM1ODMwM2I2ZDQ3NDE2OGYzMTY4NDUxYzJjMmU5NzNhODQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDUgTWF5IDIwMjYgMTE6NDQ6NDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDA1LzY4XSBT eW5jIHN0YWxlIGNvbW1lbnRzIG9uIERFRklORS9QQVRURVJOIGhhbmRsaW5nCgp2YWxpZGF0ZVJQ UlBhdHRlcm5WYXJDb3VudCgpIHZhbGlkYXRlcyBERUZJTkUgbmFtZXMgYWdhaW5zdCB0aGUKUEFU VEVSTiBsaXN0IGFuZCByZWplY3RzIGFueSBub3QgdXNlZCBpbiBQQVRURVJOOyB0aGUgc3Vycm91 bmRpbmcKY29tbWVudHMgc2FpZCBpdCAiY29sbGVjdGVkIiB0aGVtLiAgQWxpZ24gdGhlIGZ1bmN0 aW9uIGhlYWRlciwKaW5saW5lIGJsb2NrIGNvbW1lbnQsIGFuZCB0aGUgY2FsbC1zaXRlIGNvbW1l bnQuICBBbHNvIGZpeCB0aGUKbWF0Y2hpbmcgU0VMRUNUIGRvYyAoImZpbHRlcmVkIGR1cmluZyBw bGFubmluZyIgLT4gInJlamVjdGVkIHdpdGgKYW4gZXJyb3IiKSBhbmQgdGhlIFhYWCBub3RlJ3Mg d29yZGluZy4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sICAgfCAgNCArKy0tCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgfCAyOCArKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3NlbGVjdC5zZ21sCmluZGV4IDUyNzJkNmMwYmZhLi5lNDcwODMzMTQzOSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L3NlbGVjdC5zZ21sCkBAIC0xMTkyLDggKzExOTIsOCBAQCBERUZJTkUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRlZmluaXRpb25fdmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IEFT CiA8L3N5bm9wc2lzPgogCiAgICAgQ29udmVyc2VseSwgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhl IDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlCi0gICAgYnV0IG5vdCB1c2VkIGluIHRo ZSA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBjbGF1c2UgYXJlIGZpbHRlcmVkIG91dAotICAg IGR1cmluZyBxdWVyeSBwbGFubmluZy4KKyAgICBidXQgbm90IHVzZWQgaW4gdGhlIDxsaXRlcmFs PlBBVFRFUk48L2xpdGVyYWw+IGNsYXVzZSBhcmUgcmVqZWN0ZWQKKyAgICB3aXRoIGFuIGVycm9y LgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCA4NzQx MWFiY2JlMi4uMmM2ZmNjZWJkNDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAgLTE4MywxMSAr MTgzLDExIEBAIHRyYW5zZm9ybVJQUihQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAq d2MsIFdpbmRvd0RlZiAqd2luZGVmLAogICogUmVjdXJzaXZlbHkgdHJhdmVyc2VzIHRoZSBwYXR0 ZXJuIHRyZWUsIGNvbGxlY3RpbmcgdW5pcXVlIHZhcmlhYmxlIG5hbWVzLgogICogVGhyb3dzIGFu IGVycm9yIGlmIHRoZSBudW1iZXIgb2YgdW5pcXVlIHZhcmlhYmxlcyBleGNlZWRzIFJQUl9WQVJJ RF9NQVguCiAgKgotICogSWYgcnBEZWZzIGlzIG5vbi1OVUxMLCBERUZJTkUgdmFyaWFibGUgbmFt ZXMgYXJlIGFsc28gY29sbGVjdGVkIGludG8KLSAqIHZhck5hbWVzIHNvIHRoYXQgdHJhbnNmb3Jt Q29sdW1uUmVmIGNhbiBkaXN0aW5ndWlzaCBwYXR0ZXJuIHZhcmlhYmxlCi0gKiBxdWFsaWZpZXJz IGZyb20gRlJPTS1jbGF1c2UgcmFuZ2UgdmFyaWFibGVzLgotICoKLSAqIHZhck5hbWVzIGlzIGJv dGggaW5wdXQgYW5kIG91dHB1dDogZXhpc3RpbmcgbmFtZXMgYXJlIHByZXNlcnZlZCwgbmV3IG9u ZXMgYWRkZWQuCisgKiBJZiBycERlZnMgaXMgbm9uLU5VTEwsIGVhY2ggREVGSU5FIHZhcmlhYmxl IG5hbWUgaXMgYWxzbyB2YWxpZGF0ZWQgYWdhaW5zdAorICogdmFyTmFtZXM7IGFueSBERUZJTkUg bmFtZSBub3QgcHJlc2VudCBpbiBQQVRURVJOIGlzIHJlamVjdGVkIHdpdGggYW4gZXJyb3IuCisg KiB2YXJOYW1lcyBpdHNlbGYgaXMgbm90IGV4dGVuZGVkIGJ5IHRoaXMgc3RlcCAtLSBpdCBjYXJy aWVzIG9ubHkgUEFUVEVSTgorICogdmFyaWFibGUgbmFtZXMsIHdoaWNoIGlzIHdoYXQgdHJhbnNm b3JtQ29sdW1uUmVmIGNoZWNrcyB2aWEKKyAqIHBfcnByX3BhdHRlcm5fdmFycyB0byBpZGVudGlm eSBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllcnMuCiAgKi8KIHN0YXRpYyB2b2lkCiB2YWxpZGF0 ZVJQUlBhdHRlcm5WYXJDb3VudChQYXJzZVN0YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpu b2RlLApAQCAtMjQ0LDEwICsyNDQsMTAgQEAgdmFsaWRhdGVSUFJQYXR0ZXJuVmFyQ291bnQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSwKIAl9CiAKIAkvKgotCSAqIEFm dGVyIHRoZSB0b3AtbGV2ZWwgY2FsbCwgYWxzbyBjb2xsZWN0IERFRklORSB2YXJpYWJsZSBuYW1l cyB0aGF0IGFyZQotCSAqIG5vdCBhbHJlYWR5IGluIHRoZSBsaXN0LiAgVGhpcyBpcyBvbmx5IGRv bmUgb25jZSBhdCB0aGUgb3V0ZXJtb3N0Ci0JICogcmVjdXJzaW9uIGxldmVsLCBkZXRlY3RlZCBi eSBycERlZnMgYmVpbmcgbm9uLU5VTEwgKHJlY3Vyc2l2ZSBjYWxscwotCSAqIHBhc3MgTlVMTCku CisJICogQWZ0ZXIgdGhlIHRvcC1sZXZlbCBjYWxsLCB2YWxpZGF0ZSB0aGF0IGV2ZXJ5IERFRklO RSB2YXJpYWJsZSBuYW1lIGlzCisJICogcHJlc2VudCBpbiB0aGUgUEFUVEVSTiB2YXJpYWJsZSBs aXN0OyByZWplY3QgbmFtZXMgbm90IHVzZWQgaW4gUEFUVEVSTi4KKwkgKiBUaGlzIGlzIG9ubHkg ZG9uZSBvbmNlIGF0IHRoZSBvdXRlcm1vc3QgcmVjdXJzaW9uIGxldmVsLCBkZXRlY3RlZCBieQor CSAqIHJwRGVmcyBiZWluZyBub24tTlVMTCAocmVjdXJzaXZlIGNhbGxzIHBhc3MgTlVMTCkuCiAJ ICovCiAJaWYgKHJwRGVmcykKIAl7CkBAIC0yOTMsOSArMjkzLDkgQEAgdmFsaWRhdGVSUFJQYXR0 ZXJuVmFyQ291bnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSwKICAq IE5vdGU6IFZhcmlhYmxlcyBub3QgaW4gREVGSU5FIGFyZSBldmFsdWF0ZWQgYXMgVFJVRSBieSB0 aGUgZXhlY3V0b3IuCiAgKiBWYXJpYWJsZXMgaW4gREVGSU5FIGJ1dCBub3QgaW4gUEFUVEVSTiBh cmUgcmVqZWN0ZWQgYXMgYW4gZXJyb3IuCiAgKgotICogWFhYIFBhdHRlcm4gdmFyaWFibGUgcXVh bGlmaWVkIGNvbHVtbiByZWZlcmVuY2VzIGluIERFRklORSAoZS5nLgotICogIkEucHJpY2UiKSBh cmUgbm90IHlldCBzdXBwb3J0ZWQuICBDdXJyZW50bHkgcmVqZWN0ZWQgYnkKLSAqIHRyYW5zZm9y bUNvbHVtblJlZiBpbiBwYXJzZV9leHByLmMgdmlhIHRoZSBwX3Jwcl9wYXR0ZXJuX3ZhcnMgY2hl Y2suCisgKiBYWFggUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbnMgaW4gREVG SU5FIChlLmcuICJBLnByaWNlIikKKyAqIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4gIEN1cnJlbnRs eSByZWplY3RlZCBieSB0cmFuc2Zvcm1Db2x1bW5SZWYgaW4KKyAqIHBhcnNlX2V4cHIuYyB2aWEg dGhlIHBfcnByX3BhdHRlcm5fdmFycyBjaGVjay4KICAqLwogc3RhdGljIExpc3QgKgogdHJhbnNm b3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2lu ZG93RGVmICp3aW5kZWYsCkBAIC0zMTcsOCArMzE3LDggQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYs CiAJQXNzZXJ0KHdpbmRlZi0+cnBDb21tb25TeW50YXgtPnJwRGVmcyAhPSBOVUxMKTsKIAogCS8q Ci0JICogVmFsaWRhdGUgUEFUVEVSTiB2YXJpYWJsZSBjb3VudCBhbmQgY29sbGVjdCBhbGwgUlBS IHZhcmlhYmxlIG5hbWVzCi0JICogKFBBVFRFUk4gKyBERUZJTkUpIGZvciB1c2UgaW4gdHJhbnNm b3JtQ29sdW1uUmVmLgorCSAqIFZhbGlkYXRlIFBBVFRFUk4gdmFyaWFibGUgY291bnQsIHJlamVj dCBERUZJTkUgdmFyaWFibGVzIG5vdCB1c2VkIGluCisJICogUEFUVEVSTiwgYW5kIGNvbGxlY3Qg UEFUVEVSTiB2YXJpYWJsZSBuYW1lcyBmb3IgdHJhbnNmb3JtQ29sdW1uUmVmLgogCSAqLwogCXZh bGlkYXRlUlBSUGF0dGVyblZhckNvdW50KHBzdGF0ZSwgd2luZGVmLT5ycENvbW1vblN5bnRheC0+ cnBQYXR0ZXJuLAogCQkJCQkJCSAgIHdpbmRlZi0+cnBDb21tb25TeW50YXgtPnJwRGVmcywKLS0g CjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0003-Cover-RPR-empty-match-path-with-EXPLAIN-tests-fix.txt" Content-Disposition: attachment; filename="nocfbot-0003-Cover-RPR-empty-match-path-with-EXPLAIN-tests-fix.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jq42 RnJvbSAzMWIyMWUwNjQyNzBmOTRhOGVjMjczMDVlYTQ3NzQwYWQ1YjYyMzgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDcgTWF5IDIwMjYgMTQ6Mjk6MTQgKzA5MDAKU3ViamVjdDogW1BBVENIIDAzLzY4XSBD b3ZlciBSUFIgZW1wdHktbWF0Y2ggcGF0aCB3aXRoIEVYUExBSU4gdGVzdHM7IGZpeAogc3RhbGUg WFhYIGNvbW1lbnRzCgpUaGUgdGVzdF83MjhfKiBjYXNlcyBpbiBycHJfbmZhLnNxbCBjbGFpbWVk ICh2aWEgWFhYKSB0aGF0IHRoZSB2aXNpdGVkCmJpdG1hcCBibG9ja3MgZW1wdHkgaXRlcmF0aW9u cy4gIEluIGZhY3QgdGhlIE5GQSBmaW5kcyB0aGUgZW1wdHkKbWF0Y2hlczsgd2luZG93IGFnZ3Jl Z2F0ZXMganVzdCByZXR1cm4gMCAvIE5VTEwgb3ZlciB0aGUgbGVuZ3RoLTAKZnJhbWUsIGluZGlz dGluZ3Vpc2hhYmxlIGZyb20gIm5vIG1hdGNoIiB3aXRob3V0IE1BVENIX05VTUJFUigpLgoKUmVw bGFjZSB0aGUgWFhYIGNvbW1lbnRzIHdpdGggdGhlIGFjdHVhbCBiZWhhdmlvciwgYW5kIGFkZCBw YWlyZWQKRVhQTEFJTiBBTkFMWVpFIHRlc3RzIGluIHJwcl9leHBsYWluLnNxbCB0aGF0IGxvY2sg aW4KIk5GQTogMyBtYXRjaGVkIChsZW4gMC8wLzAuMCkiIGFzIG9ic2VydmFibGUgcmVncmVzc2lv biBjb3ZlcmFnZS4KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91 dCB8IDIwMCArKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9uZmEub3V0ICAgICB8ICAyOSArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhw bGFpbi5zcWwgICAgICB8IDExNiArKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfbmZhLnNxbCAgICAgICAgICB8ICAyOSArKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDM0MCBpbnNl cnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2V4cGxhaW4ub3V0CmluZGV4IDBhMDQ5ZDFiZWJhLi5jNDUxNmQzYzc1NiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTIxMDIsNiArMjEwMiwyMDYgQEAg V0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTAuMDAgbG9vcHM9MSkKICg1IHJvd3MpCiAKKy0tIEVtcHR5IG1hdGNoZXMg KGxlbmd0aCAwKTogbWlycm9yIHRoZSB0ZXN0XzcyOF8qIGNhc2VzIGluIHJwcl9uZmEuc3FsLgor LS0gV2luZG93IGFnZ3JlZ2F0ZXMgb3ZlciBhIGxlbmd0aC0wIGZyYW1lIHJldHVybiAwIC8gTlVM TCwgc28gdGhlIFNFTEVDVAorLS0gcmVzdWx0IGFsb25lIGNhbm5vdCBkaXN0aW5ndWlzaCAibm8g bWF0Y2giIGZyb20gImVtcHR5IG1hdGNoIjsgdGhlCistLSAiTkZBOiBOIG1hdGNoZWQgKGxlbiAw LzAvMC4wKSIgbGluZSBpbiBFWFBMQUlOIGlzIHRoZSBvbmx5IG9ic2VydmFibGUKKy0tIHByb29m IHRoYXQgdGhlIGVtcHR5IG1hdGNoZXMgd2VyZSBmb3VuZC4KKy0tIChBPyl7MCwzfTogbWluPTAs IEEgbmV2ZXIgbWF0Y2hlcyAtPiAzIGxlbmd0aC0wIG1hdGNoZXMKK0NSRUFURSBWSUVXIHJwcl9l dl9lZGdlX2VtcHR5X21hdGNoX21pbjAgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDMpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXswLDN9KQorICAgIERFRklORSBB IEFTIEZBTFNFCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9lbXB0eV9tYXRjaF9taW4wJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhPyl7MCwzfSkgCisoMSByb3cp CisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyl7MCwz fSkKKyAgICBERUZJTkUgQSBBUyBGQUxTRQorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0zLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IFBhdHRlcm46IChhPyl7MCwzfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6 IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgMjAg dG90YWwsIDQgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNCB0b3RhbCwgMCBwcnVu ZWQKKyAgIE5GQTogMyBtYXRjaGVkIChsZW4gMC8wLzAuMCksIDAgbWlzbWF0Y2hlZAorICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMuMDAgbG9v cHM9MSkKKyg5IHJvd3MpCisKKy0tIChBPyl7MSwzfTogbWluPTEsIG9uZSBlbXB0eSBpdGVyYXRp b24gc2F0aXNmaWVzIG1pbiAtPiAzIGxlbmd0aC0wIG1hdGNoZXMKK0NSRUFURSBWSUVXIHJwcl9l dl9lZGdlX2VtcHR5X21hdGNoX21pbjEgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDMpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXsxLDN9KQorICAgIERFRklORSBB IEFTIEZBTFNFCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9lbXB0eV9tYXRjaF9taW4xJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhPyl7MSwzfSkgCisoMSByb3cp CisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyl7MSwz fSkKKyAgICBERUZJTkUgQSBBUyBGQUxTRQorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0zLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IFBhdHRlcm46IChhPyl7MSwzfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6 IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgMTYg dG90YWwsIDQgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNCB0b3RhbCwgMCBwcnVu ZWQKKyAgIE5GQTogMyBtYXRjaGVkIChsZW4gMC8wLzAuMCksIDAgbWlzbWF0Y2hlZAorICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMuMDAgbG9v cHM9MSkKKyg5IHJvd3MpCisKKy0tIChBPyl7MiwzfTogbWluPTIgKFNRTDoyMDE2IFNUUjA2ID0g U1RSRSBTVFJFKSAtPiAzIGxlbmd0aC0wIG1hdGNoZXMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdl X2VtcHR5X21hdGNoX21pbjIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDMpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXsyLDN9KQorICAgIERFRklORSBBIEFTIEZB TFNFCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfZWRnZV9lbXB0eV9tYXRjaF9taW4yJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhPyl7MiwzfSkgCisoMSByb3cpCisKK1NF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyl7MiwzfSkKKyAg ICBERUZJTkUgQSBBUyBGQUxTRQorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBycHJf ZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnIChhY3R1YWwgcm93cz0zLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IChhPyl7MiwzfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgMTYgdG90YWws IDQgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNCB0b3RhbCwgMCBwcnVuZWQKKyAg IE5GQTogMyBtYXRjaGVkIChsZW4gMC8wLzAuMCksIDAgbWlzbWF0Y2hlZAorICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMuMDAgbG9vcHM9MSkK Kyg5IHJvd3MpCisKKy0tIChBPyl7MiwzfSBtaXhlZDogcm93cyAxLTIgbWF0Y2ggQSAocmVhbCks IHJvd3MgMy00IGZhbGwgYmFjayB0byBlbXB0eQorQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1w dHlfbWF0Y2hfbWl4ZWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDQpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRP IE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXsyLDN9KQorICAgIERFRklORSBBIEFTIHYgPD0g MgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2VkZ2VfZW1wdHlfbWF0Y2hfbWl4ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgbGluZSAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGE/KXsyLDN9KSAKKygxIHJvdykKKworU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXsyLDN9KQorICAg IERFRklORSBBIEFTIHYgPD0gMgorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBycHJf ZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnIChhY3R1YWwgcm93cz00LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IChhPyl7MiwzfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDggcGVhaywgMjYgdG90YWws IDUgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNSB0b3RhbCwgMSBwcnVuZWQKKyAg IE5GQTogMyBtYXRjaGVkIChsZW4gMC8yLzEuMCksIDAgbWlzbWF0Y2hlZAorICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQuMDAgbG9vcHM9MSkK Kyg5IHJvd3MpCisKKy0tIChBPyBCPyl7MiwzfTogcHVyZSBlbXB0eSBtdWx0aS1lbGVtZW50IGJv ZHkgLT4gMyBsZW5ndGgtMCBtYXRjaGVzCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9lbXB0eV9t YXRjaF9tdWx0aSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMykgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVY VCBST1cKKyAgICBQQVRURVJOICgoQT8gQj8pezIsM30pCisgICAgREVGSU5FIEEgQVMgRkFMU0Us IEIgQVMgRkFMU0UKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX2VtcHR5X21hdGNoX211bHRpJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICBsaW5lICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhPyBiPyl7Miwz fSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRF Uk4gKChBPyBCPyl7MiwzfSkKKyAgICBERUZJTkUgQSBBUyBGQUxTRSwgQiBBUyBGQUxTRQorKTsn KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0z LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhPyBiPyl7MiwzfQorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBO a0IKKyAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgMjAgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29u dGV4dHM6IDIgcGVhaywgNCB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogMyBtYXRjaGVkIChsZW4g MC8wLzAuMCksIDAgbWlzbWF0Y2hlZAorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTMuMDAgbG9vcHM9MSkKKyg5IHJvd3MpCisKIC0tIFNpbmds ZSByb3cKIENSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25m YS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IGExOWIy NmMzYjk0Li40Y2ZmN2NmYmJkNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfbmZhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0 CkBAIC00Mzk1LDkgKzQzOTUsOSBAQCBXSU5ET1cgdyBBUyAoCiAoMyByb3dzKQogCiAtLSAoQT8p ezAsM306IG1pbj0wLCBudWxsYWJsZSBpbm5lci4KLS0tIEEgbmV2ZXIgbWF0Y2hlcy4gQT8gbWF0 Y2hlcyBlbXB0eSwgbWluPTAgc2F0aXNmaWVkIGltbWVkaWF0ZWx5LgotLS0gUGVyIHN0YW5kYXJk OiBlbXB0eSBtYXRjaCBleHBlY3RlZCBmb3IgZXZlcnkgcm93LgotLS0gWFhYOiB2aXNpdGVkIGJp dG1hcCBibG9ja3MgZW1wdHkgaXRlcmF0aW9uIC0+IG5vIG1hdGNoIChzYW1lIGFzIHsyLDN9KQor LS0gQSBuZXZlciBtYXRjaGVzIGJ1dCBBPyBtYXRjaGVzIGVtcHR5LCBzYXRpc2Z5aW5nIG1pbj0w IGltbWVkaWF0ZWx5LgorLS0gTkZBIHJlcG9ydHMgMyBsZW5ndGgtMCBtYXRjaGVzIChvbmUgcGVy IHJvdyk7IGZpcnN0X3ZhbHVlIC8gbGFzdF92YWx1ZQorLS0gYXJlIE5VTEwgYmVjYXVzZSB0aGUg d2luZG93IGZyYW1lIGZvciBhbiBlbXB0eSBtYXRjaCBoYXMgbm8gcm93cy4KIFdJVEggdGVzdF83 MjhfbWluMCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJB WVsnQiddKSwKQEAgLTQ0MjUsOSArNDQyNSw4IEBAIFdJTkRPVyB3IEFTICgKICgzIHJvd3MpCiAK IC0tIChBPyl7MSwzfTogbWluPTEsIG51bGxhYmxlIGlubmVyLgotLS0gQSBuZXZlciBtYXRjaGVz LiBOZWVkIDEgZW1wdHkgaXRlcmF0aW9uIHRvIHNhdGlzZnkgbWluPTEuCi0tLSBQZXIgc3RhbmRh cmQ6IGVtcHR5IG1hdGNoIGV4cGVjdGVkIGZvciBldmVyeSByb3cuCi0tLSBYWFg6IHZpc2l0ZWQg Yml0bWFwIGJsb2NrcyBlbXB0eSBpdGVyYXRpb24gLT4gbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30p CistLSBBIG5ldmVyIG1hdGNoZXM7IG9uZSBlbXB0eSBpdGVyYXRpb24gc2F0aXNmaWVzIG1pbj0x LgorLS0gTkZBIHJlcG9ydHMgMyBsZW5ndGgtMCBtYXRjaGVzOyBmaXJzdC9sYXN0X3ZhbHVlIE5V TEwgb3ZlciBlbXB0eSBmcmFtZS4KIFdJVEggdGVzdF83MjhfbWluMSBBUyAoCiAgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQiddKSwKQEAgLTQ0NTQsMTEgKzQ0 NTMsOSBAQCBXSU5ET1cgdyBBUyAoCiAgIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCiAoMyByb3dzKQogCi0tLSAoQT8pezIsM306IG1pbj0yLCBudWxsYWJsZSBpbm5lci4KLS0t IEEgbmV2ZXIgbWF0Y2hlcy4gTmVlZCAyIGVtcHR5IGl0ZXJhdGlvbnMgdG8gc2F0aXNmeSBtaW49 Mi4KLS0tIFBlciBzdGFuZGFyZDogU1RSMDY9KFNUUkUgU1RSRSkgaXMgdmFsaWQgZm9yIG1pbj0y LgotLS0gRXhwZWN0ZWQ6IGVtcHR5IG1hdGNoIGZvciBldmVyeSByb3cKLS0tIFhYWDogdmlzaXRl ZCBiaXRtYXAgYmxvY2tzIHNlY29uZCBlbXB0eSBpdGVyYXRpb24gLT4gbWF0Y2ggZmFpbHVyZQor LS0gKEE/KXsyLDN9OiBtaW49MiwgbnVsbGFibGUgaW5uZXIuICBQZXIgU1FMOjIwMTYgU1RSMDYg PSAoU1RSRSBTVFJFKQorLS0gaXMgdmFsaWQ6IHR3byBlbXB0eSBpdGVyYXRpb25zIHNhdGlzZnkg bWluPTIuCistLSBORkEgcmVwb3J0cyAzIGxlbmd0aC0wIG1hdGNoZXM7IGZpcnN0L2xhc3RfdmFs dWUgTlVMTCBvdmVyIGVtcHR5IGZyYW1lLgogV0lUSCB0ZXN0XzcyOF9taW4yIEFTICgKICAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydCJ10pLApAQCAtNDQ4Niw5 ICs0NDgzLDggQEAgV0lORE9XIHcgQVMgKAogKDMgcm93cykKIAogLS0gKEE/KXsyLDN9IG1peGVk OiBzb21lIHJvd3MgbWF0Y2ggQSwgc29tZSBkb24ndAotLS0gUm93cyAxLTI6IEEgbWF0Y2hlcywg Z3JlZWR5IHRha2VzIDIgLT4gbWluIHNhdGlzZmllZAotLS0gUm93IDM6IEEgZG9lc24ndCBtYXRj aCwgbmVlZHMgMiBlbXB0eSBpdGVyYXRpb25zIGZvciBtaW49MgotLS0gWFhYOiBSb3cgMyBmYWls cyBkdWUgdG8gdmlzaXRlZCBiaXRtYXAgKHNhbWUgYXMgcHVyZSBlbXB0eSB7MiwzfSkKKy0tIFJv d3MgMS0yOiBBIG1hdGNoZXMsIGdyZWVkeSB0YWtlcyAyIC0+IG1pbiBzYXRpc2ZpZWQgKHJlYWwg bWF0Y2gpCistLSBSb3cgMzogQSBkb2Vzbid0IG1hdGNoLCB0d28gZW1wdHkgaXRlcmF0aW9ucyBz YXRpc2Z5IG1pbj0yIChsZW5ndGgtMCBtYXRjaCkKIC0tIFJvdyA0OiBBIG1hdGNoZXMgMSByZWFs IGl0ZXIgKyAxIGZmIGVtcHR5IGV4aXQgLT4gbWF0Y2ggNC00CiBXSVRIIHRlc3RfNzI4X21pbjJf bWl4ZWQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwpAQCAtNDU1OSw5ICs0NTU1LDgg QEAgV0lORE9XIHcgQVMgKAogICA2IHwge0J9ICAgfCAgICAgICAgICAgNiB8ICAgICAgICAgNgog KDYgcm93cykKIAotLS0gKEE/IEI/KXsyLDN9OiBwdXJlIGVtcHR5IGJvZHkgKG5vdGhpbmcgbWF0 Y2hlcykKLS0tIFhYWDogQWxsIE5VTEw6IHNhbWUgaXNzdWUgYXMgdGVzdF83MjhfbWluMiAoZW1w dHkgbWF0Y2ggYXQgY29udGV4dAotLS0gc3RhcnQgeWllbGRzIFVOTUFUQ0hFRCB2aWEgc3RhcnRQ b3MtMSBpbml0aWFsIGFkdmFuY2UpCistLSAoQT8gQj8pezIsM306IHB1cmUgZW1wdHkgYm9keSAo bm90aGluZyBtYXRjaGVzIEEgb3IgQikuCistLSBORkEgcmVwb3J0cyAzIGxlbmd0aC0wIG1hdGNo ZXM7IGZpcnN0L2xhc3RfdmFsdWUgTlVMTCBvdmVyIGVtcHR5IGZyYW1lLgogV0lUSCB0ZXN0Xzcy OF9tdWx0aV9lbXB0eSBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgx LCBBUlJBWVsnQyddKSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBs YWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCBlMTIz YmU2MGFlYS4uZDMzOWE4MGE2NzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwK QEAgLTExNzgsNiArMTE3OCwxMjIgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHYg PSAxLCBCIEFTIHYgPSAyCiApOycpOwogCistLSBFbXB0eSBtYXRjaGVzIChsZW5ndGggMCk6IG1p cnJvciB0aGUgdGVzdF83MjhfKiBjYXNlcyBpbiBycHJfbmZhLnNxbC4KKy0tIFdpbmRvdyBhZ2dy ZWdhdGVzIG92ZXIgYSBsZW5ndGgtMCBmcmFtZSByZXR1cm4gMCAvIE5VTEwsIHNvIHRoZSBTRUxF Q1QKKy0tIHJlc3VsdCBhbG9uZSBjYW5ub3QgZGlzdGluZ3Vpc2ggIm5vIG1hdGNoIiBmcm9tICJl bXB0eSBtYXRjaCI7IHRoZQorLS0gIk5GQTogTiBtYXRjaGVkIChsZW4gMC8wLzAuMCkiIGxpbmUg aW4gRVhQTEFJTiBpcyB0aGUgb25seSBvYnNlcnZhYmxlCistLSBwcm9vZiB0aGF0IHRoZSBlbXB0 eSBtYXRjaGVzIHdlcmUgZm91bmQuCisKKy0tIChBPyl7MCwzfTogbWluPTAsIEEgbmV2ZXIgbWF0 Y2hlcyAtPiAzIGxlbmd0aC0wIG1hdGNoZXMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX2VtcHR5 X21hdGNoX21pbjAgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXswLDN9KQorICAgIERFRklORSBBIEFTIEZBTFNFCisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfZWRnZV9lbXB0eV9tYXRjaF9taW4wJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMpIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFU VEVSTiAoKEE/KXswLDN9KQorICAgIERFRklORSBBIEFTIEZBTFNFCispOycpOworCistLSAoQT8p ezEsM306IG1pbj0xLCBvbmUgZW1wdHkgaXRlcmF0aW9uIHNhdGlzZmllcyBtaW4gLT4gMyBsZW5n dGgtMCBtYXRjaGVzCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9lbXB0eV9tYXRjaF9taW4xIEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKChBPyl7MSwzfSkKKyAgICBERUZJTkUgQSBBUyBGQUxTRQorKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2VkZ2Vf ZW1wdHlfbWF0Y2hfbWluMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyl7MSwz fSkKKyAgICBERUZJTkUgQSBBUyBGQUxTRQorKTsnKTsKKworLS0gKEE/KXsyLDN9OiBtaW49MiAo U1FMOjIwMTYgU1RSMDYgPSBTVFJFIFNUUkUpIC0+IDMgbGVuZ3RoLTAgbWF0Y2hlcworQ1JFQVRF IFZJRVcgcnByX2V2X2VkZ2VfZW1wdHlfbWF0Y2hfbWluMiBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQT8pezIsM30pCisg ICAgREVGSU5FIEEgQVMgRkFMU0UKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX2VtcHR5X21hdGNoX21pbjInKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMykgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQT8pezIsM30pCisgICAgREVGSU5FIEEgQVMg RkFMU0UKKyk7Jyk7CisKKy0tIChBPyl7MiwzfSBtaXhlZDogcm93cyAxLTIgbWF0Y2ggQSAocmVh bCksIHJvd3MgMy00IGZhbGwgYmFjayB0byBlbXB0eQorQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2Vf ZW1wdHlfbWF0Y2hfbWl4ZWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDQpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXsyLDN9KQorICAgIERFRklORSBBIEFTIHYg PD0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2VkZ2VfZW1wdHlfbWF0Y2hfbWl4ZWQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOICgoQT8pezIsM30pCisgICAgREVGSU5FIEEgQVMgdiA8PSAyCispOycpOwor CistLSAoQT8gQj8pezIsM306IHB1cmUgZW1wdHkgbXVsdGktZWxlbWVudCBib2R5IC0+IDMgbGVu Z3RoLTAgbWF0Y2hlcworQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHlfbWF0Y2hfbXVsdGkg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMpIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAg UEFUVEVSTiAoKEE/IEI/KXsyLDN9KQorICAgIERFRklORSBBIEFTIEZBTFNFLCBCIEFTIEZBTFNF CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfZWRnZV9lbXB0eV9tYXRjaF9tdWx0aScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAg IFBBVFRFUk4gKChBPyBCPyl7MiwzfSkKKyAgICBERUZJTkUgQSBBUyBGQUxTRSwgQiBBUyBGQUxT RQorKTsnKTsKKwogLS0gU2luZ2xlIHJvdwogQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2Vfc2luZ2xl X3JvdyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByX25mYS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbApp bmRleCAxZDI3ZTBkYzA5ZS4uMjllYzRhOWRhY2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9uZmEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3Fs CkBAIC0zMjM0LDkgKzMyMzQsOSBAQCBXSU5ET1cgdyBBUyAoCiApOwogCiAtLSAoQT8pezAsM306 IG1pbj0wLCBudWxsYWJsZSBpbm5lci4KLS0tIEEgbmV2ZXIgbWF0Y2hlcy4gQT8gbWF0Y2hlcyBl bXB0eSwgbWluPTAgc2F0aXNmaWVkIGltbWVkaWF0ZWx5LgotLS0gUGVyIHN0YW5kYXJkOiBlbXB0 eSBtYXRjaCBleHBlY3RlZCBmb3IgZXZlcnkgcm93LgotLS0gWFhYOiB2aXNpdGVkIGJpdG1hcCBi bG9ja3MgZW1wdHkgaXRlcmF0aW9uIC0+IG5vIG1hdGNoIChzYW1lIGFzIHsyLDN9KQorLS0gQSBu ZXZlciBtYXRjaGVzIGJ1dCBBPyBtYXRjaGVzIGVtcHR5LCBzYXRpc2Z5aW5nIG1pbj0wIGltbWVk aWF0ZWx5LgorLS0gTkZBIHJlcG9ydHMgMyBsZW5ndGgtMCBtYXRjaGVzIChvbmUgcGVyIHJvdyk7 IGZpcnN0X3ZhbHVlIC8gbGFzdF92YWx1ZQorLS0gYXJlIE5VTEwgYmVjYXVzZSB0aGUgd2luZG93 IGZyYW1lIGZvciBhbiBlbXB0eSBtYXRjaCBoYXMgbm8gcm93cy4KIFdJVEggdGVzdF83MjhfbWlu MCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQidd KSwKQEAgLTMyNTgsOSArMzI1OCw4IEBAIFdJTkRPVyB3IEFTICgKICk7CiAKIC0tIChBPyl7MSwz fTogbWluPTEsIG51bGxhYmxlIGlubmVyLgotLS0gQSBuZXZlciBtYXRjaGVzLiBOZWVkIDEgZW1w dHkgaXRlcmF0aW9uIHRvIHNhdGlzZnkgbWluPTEuCi0tLSBQZXIgc3RhbmRhcmQ6IGVtcHR5IG1h dGNoIGV4cGVjdGVkIGZvciBldmVyeSByb3cuCi0tLSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJsb2Nr cyBlbXB0eSBpdGVyYXRpb24gLT4gbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30pCistLSBBIG5ldmVy IG1hdGNoZXM7IG9uZSBlbXB0eSBpdGVyYXRpb24gc2F0aXNmaWVzIG1pbj0xLgorLS0gTkZBIHJl cG9ydHMgMyBsZW5ndGgtMCBtYXRjaGVzOyBmaXJzdC9sYXN0X3ZhbHVlIE5VTEwgb3ZlciBlbXB0 eSBmcmFtZS4KIFdJVEggdGVzdF83MjhfbWluMSBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCiAgICAgICAgICgxLCBBUlJBWVsnQiddKSwKQEAgLTMyODEsMTEgKzMyODAsOSBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQogKTsKIAotLS0gKEE/KXsy LDN9OiBtaW49MiwgbnVsbGFibGUgaW5uZXIuCi0tLSBBIG5ldmVyIG1hdGNoZXMuIE5lZWQgMiBl bXB0eSBpdGVyYXRpb25zIHRvIHNhdGlzZnkgbWluPTIuCi0tLSBQZXIgc3RhbmRhcmQ6IFNUUjA2 PShTVFJFIFNUUkUpIGlzIHZhbGlkIGZvciBtaW49Mi4KLS0tIEV4cGVjdGVkOiBlbXB0eSBtYXRj aCBmb3IgZXZlcnkgcm93Ci0tLSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJsb2NrcyBzZWNvbmQgZW1w dHkgaXRlcmF0aW9uIC0+IG1hdGNoIGZhaWx1cmUKKy0tIChBPyl7MiwzfTogbWluPTIsIG51bGxh YmxlIGlubmVyLiAgUGVyIFNRTDoyMDE2IFNUUjA2ID0gKFNUUkUgU1RSRSkKKy0tIGlzIHZhbGlk OiB0d28gZW1wdHkgaXRlcmF0aW9ucyBzYXRpc2Z5IG1pbj0yLgorLS0gTkZBIHJlcG9ydHMgMyBs ZW5ndGgtMCBtYXRjaGVzOyBmaXJzdC9sYXN0X3ZhbHVlIE5VTEwgb3ZlciBlbXB0eSBmcmFtZS4K IFdJVEggdGVzdF83MjhfbWluMiBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAg ICAgICgxLCBBUlJBWVsnQiddKSwKQEAgLTMzMDcsOSArMzMwNCw4IEBAIFdJTkRPVyB3IEFTICgK ICk7CiAKIC0tIChBPyl7MiwzfSBtaXhlZDogc29tZSByb3dzIG1hdGNoIEEsIHNvbWUgZG9uJ3QK LS0tIFJvd3MgMS0yOiBBIG1hdGNoZXMsIGdyZWVkeSB0YWtlcyAyIC0+IG1pbiBzYXRpc2ZpZWQK LS0tIFJvdyAzOiBBIGRvZXNuJ3QgbWF0Y2gsIG5lZWRzIDIgZW1wdHkgaXRlcmF0aW9ucyBmb3Ig bWluPTIKLS0tIFhYWDogUm93IDMgZmFpbHMgZHVlIHRvIHZpc2l0ZWQgYml0bWFwIChzYW1lIGFz IHB1cmUgZW1wdHkgezIsM30pCistLSBSb3dzIDEtMjogQSBtYXRjaGVzLCBncmVlZHkgdGFrZXMg MiAtPiBtaW4gc2F0aXNmaWVkIChyZWFsIG1hdGNoKQorLS0gUm93IDM6IEEgZG9lc24ndCBtYXRj aCwgdHdvIGVtcHR5IGl0ZXJhdGlvbnMgc2F0aXNmeSBtaW49MiAobGVuZ3RoLTAgbWF0Y2gpCiAt LSBSb3cgNDogQSBtYXRjaGVzIDEgcmVhbCBpdGVyICsgMSBmZiBlbXB0eSBleGl0IC0+IG1hdGNo IDQtNAogV0lUSCB0ZXN0XzcyOF9taW4yX21peGVkIEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKQEAgLTMzNjQsOSArMzM2MCw4IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQiBBUyAn QicgPSBBTlkoZmxhZ3MpCiApOwogCi0tLSAoQT8gQj8pezIsM306IHB1cmUgZW1wdHkgYm9keSAo bm90aGluZyBtYXRjaGVzKQotLS0gWFhYOiBBbGwgTlVMTDogc2FtZSBpc3N1ZSBhcyB0ZXN0Xzcy OF9taW4yIChlbXB0eSBtYXRjaCBhdCBjb250ZXh0Ci0tLSBzdGFydCB5aWVsZHMgVU5NQVRDSEVE IHZpYSBzdGFydFBvcy0xIGluaXRpYWwgYWR2YW5jZSkKKy0tIChBPyBCPyl7MiwzfTogcHVyZSBl bXB0eSBib2R5IChub3RoaW5nIG1hdGNoZXMgQSBvciBCKS4KKy0tIE5GQSByZXBvcnRzIDMgbGVu Z3RoLTAgbWF0Y2hlczsgZmlyc3QvbGFzdF92YWx1ZSBOVUxMIG92ZXIgZW1wdHkgZnJhbWUuCiBX SVRIIHRlc3RfNzI4X211bHRpX2VtcHR5IEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMK ICAgICAgICAgKDEsIEFSUkFZWydDJ10pLAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0001-Add-DEFINE-non-volatile-baseline-to-rpr_integrati.txt" Content-Disposition: attachment; filename="nocfbot-0001-Add-DEFINE-non-volatile-baseline-to-rpr_integrati.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jpu0 RnJvbSA3NWNhODA4YTA2ZTIyYzA4NDQyYjJmZGUyYmY1YWUxODk4N2MxY2U5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDQgTWF5IDIwMjYgMTk6MDk6MzQgKzA5MDAKU3ViamVjdDogW1BBVENIIDAxLzY4XSBB ZGQgREVGSU5FIG5vbi12b2xhdGlsZSBiYXNlbGluZSB0byBycHJfaW50ZWdyYXRpb24gQjkKCkI5 IGluIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwgdG9kYXkgb25seSBl eGVyY2lzZXMgYQp2b2xhdGlsZSBjYWxsZWUgKHJhbmRvbSgpKSBpbnNpZGUgREVGSU5FLiAgQWRk IGEgYmFzZWxpbmUgcXVlcnkgaW4gdGhlCnNhbWUgc2VjdGlvbiB0aGF0IHVzZXMgU1RBQkxFICh0 b19jaGFyKSBhbmQgSU1NVVRBQkxFIChsZW5ndGgpIGNhbGxlZXMsCndoaWNoIG11c3QgcmVtYWlu IGFjY2VwdGVkIHdoZW4gdGhlIHVwY29taW5nIHZvbGF0aWxlLW9ubHkgcHJvaGliaXRpb24KbGFu ZHMuICBUaGlzIGd1YXJkcyBhZ2FpbnN0IHRoZSBwcm9oaWJpdGlvbiBiZWluZyBicm9hZGVuZWQg YnkgYWNjaWRlbnQKKGUuZy4gY29udGFpbl92b2xhdGlsZV9mdW5jdGlvbnMgLT4gY29udGFpbl9t dXRhYmxlX2Z1bmN0aW9ucyk7IHRoZQp2b2xhdGlsZSBjYXNlIGFsb25lIHdvdWxkIG5vdCBjYXRj aCBvdmVyLXJlamVjdGlvbi4KCk9yZGVyZWQgYmFzZWxpbmUtZmlyc3QgdGhlbiB2b2xhdGlsZSwg bWF0Y2hpbmcgb3RoZXIgQiBzZWN0aW9ucy4KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9pbnRlZ3JhdGlvbi5vdXQgfCAyNiArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsICAgICAgfCAxMyArKysrKysrKysrCiAyIGZp bGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKaW5kZXggMGNjNzliNzU2MDEuLmVmNmExNTdmNDVkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC0x NDIxLDYgKzE0MjEsMzIgQEAgRFJPUCBJTkRFWCBycHJfaW50ZWdfaWRfaWR4OwogLS0gcGF0dGVy biBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFdoZW4gdGhlIHByb2hpYml0aW9uIGxhbmRz LAogLS0gdGhpcyB0ZXN0IG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhbiBlcnJvci1jYXNlIHRlc3Qg dGhhdCBleHBlY3RzCiAtLSByYW5kb20oKSBpbiBERUZJTkUgdG8gYmUgcmVqZWN0ZWQuCistLSBC YXNlbGluZTogU1RBQkxFICh0b19jaGFyKSBhbmQgSU1NVVRBQkxFIChsZW5ndGgpIGNhbGxlZXMg YXJlIGFjY2VwdGVkLgorLS0gVGhpcyBsb2NrcyB0aGUgYm91bmRhcnkgb2YgdGhlIHZvbGF0aWxl LW9ubHkgcHJvaGliaXRpb24uCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpCisgICAgICAgICAgICAgICAgQU5E IGxlbmd0aCgneCcpID0gMQorICAgICAgICAgICAgICAgIEFORCB0b19jaGFyKGRhdGUgJzIwMjYt MDEtMDEnLCAnWVlZWScpID0gJzIwMjYnKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQg CistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAz IHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2IHwgIDMw IHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQwIHwgICAw CisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCistLSBWb2xhdGlsZSAocmFuZG9tKSBpcyB0 aGUgcHJvaGliaXRpb24gdGFyZ2V0OyB0b2RheSBzdGlsbCBhY2NlcHRlZC4KIFNFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9pbnRlZwogV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdy YXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbAppbmRl eCA2ZDQ3NzI4ZTkxMS4uZDk3NDg5NzlkNTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2lu dGVncmF0aW9uLnNxbApAQCAtODg0LDYgKzg4NCwxOSBAQCBEUk9QIElOREVYIHJwcl9pbnRlZ19p ZF9pZHg7CiAtLSB0aGlzIHRlc3QgbXVzdCBiZSByZXBsYWNlZCB3aXRoIGFuIGVycm9yLWNhc2Ug dGVzdCB0aGF0IGV4cGVjdHMKIC0tIHJhbmRvbSgpIGluIERFRklORSB0byBiZSByZWplY3RlZC4K IAorLS0gQmFzZWxpbmU6IFNUQUJMRSAodG9fY2hhcikgYW5kIElNTVVUQUJMRSAobGVuZ3RoKSBj YWxsZWVzIGFyZSBhY2NlcHRlZC4KKy0tIFRoaXMgbG9ja3MgdGhlIGJvdW5kYXJ5IG9mIHRoZSB2 b2xhdGlsZS1vbmx5IHByb2hpYml0aW9uLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKQorICAgICAgICAgICAg ICAgIEFORCBsZW5ndGgoJ3gnKSA9IDEKKyAgICAgICAgICAgICAgICBBTkQgdG9fY2hhcihkYXRl ICcyMDI2LTAxLTAxJywgJ1lZWVknKSA9ICcyMDI2JykKK09SREVSIEJZIGlkOworCistLSBWb2xh dGlsZSAocmFuZG9tKSBpcyB0aGUgcHJvaGliaXRpb24gdGFyZ2V0OyB0b2RheSBzdGlsbCBhY2Nl cHRlZC4KIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CiBGUk9NIHJwcl9p bnRlZwogV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUp Cgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0007-Remove-optional-outer-parentheses-from-ereport-ca.txt" Content-Disposition: attachment; filename="nocfbot-0007-Remove-optional-outer-parentheses-from-ereport-ca.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqd6 RnJvbSAwNTMyNTM5YTI1MDlhZGJhMzg5ODlmYzNiZjViMWExMjgxZjI1MWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDUgTWF5IDIwMjYgMTc6Mjc6NTEgKzA5MDAKU3ViamVjdDogW1BBVENIIDA3LzY4XSBS ZW1vdmUgb3B0aW9uYWwgb3V0ZXIgcGFyZW50aGVzZXMgZnJvbSBlcmVwb3J0KCkgY2FsbHMKIGlu IFJQUiBmaWxlcwoKUGVyIHByb2plY3QgY29kaW5nIHN0eWxlLCB0aGUgb3V0ZXIgcGFyZW50aGVz ZXMgd3JhcHBpbmcgZXJyY29kZS8KZXJybXNnL2V0Yy4gYXJndW1lbnRzIGluIGVyZXBvcnQoKSBh cmUgb3B0aW9uYWwgYW5kIHNob3VsZCBiZSBvbWl0dGVkLgpBcHBsaWVzIHRvIHBhcnNlX3Jwci5j LCBvcHRpbWl6ZXIvcGxhbi9ycHIuYywgYW5kIGdyYW0ueS4KLS0tCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9ycHIuYyB8ICAxNiArKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAg ICAgICB8ICA3MiArKysrKysrKy0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnBy LmMgICB8IDE0MCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDExNCBpbnNlcnRpb25zKCspLCAxMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9ycHIuYwppbmRleCBhODE3ZWI0YTYzZi4uZWQ4YjZjMzQxNGMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3Jwci5jCkBAIC0xMDI3LDEwICsxMDI3LDEwIEBAIHNjYW5SUFJQYXR0ZXJuUmVjdXJzaXZl KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFycywKIAkv KiBDaGVjayByZWN1cnNpb24gZGVwdGggbGltaXQgYmVmb3JlIG92ZXJmbG93IG9jY3VycyAqLwog CWlmIChkZXB0aCA+PSBSUFJfREVQVEhfTUFYKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJj b2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCi0JCQkJIGVycm1zZygicGF0dGVy biBuZXN0aW5nIHRvbyBkZWVwIiksCi0JCQkJIGVycmRldGFpbCgiUGF0dGVybiBuZXN0aW5nIGRl cHRoICVkIGV4Y2VlZHMgbWF4aW11bSAlZC4iLAotCQkJCQkJICAgZGVwdGgsIFJQUl9ERVBUSF9N QVggLSAxKSkpOworCQkJCWVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwK KwkJCQllcnJtc2coInBhdHRlcm4gbmVzdGluZyB0b28gZGVlcCIpLAorCQkJCWVycmRldGFpbCgi UGF0dGVybiBuZXN0aW5nIGRlcHRoICVkIGV4Y2VlZHMgbWF4aW11bSAlZC4iLAorCQkJCQkJICBk ZXB0aCwgUlBSX0RFUFRIX01BWCAtIDEpKTsKIAogCS8qIFRyYWNrIG1heGltdW0gZGVwdGggKi8K IAlpZiAoZGVwdGggPiAqbWF4RGVwdGgpCkBAIC0xMTIwLDEwICsxMTIwLDEwIEBAIHNjYW5SUFJQ YXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFy cywKIAogCWlmICgqbnVtRWxlbWVudHMgPiBSUFJfRUxFTUlEWF9NQVgpCiAJCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwKLQkJCQkg ZXJybXNnKCJwYXR0ZXJuIHRvbyBjb21wbGV4IiksCi0JCQkJIGVycmRldGFpbCgiUGF0dGVybiBo YXMgJWQgZWxlbWVudHMsIG1heGltdW0gaXMgJWQuIiwKLQkJCQkJCSAgICpudW1FbGVtZW50cywg UlBSX0VMRU1JRFhfTUFYKSkpOworCQkJCWVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VY Q0VFREVEKSwKKwkJCQllcnJtc2coInBhdHRlcm4gdG9vIGNvbXBsZXgiKSwKKwkJCQllcnJkZXRh aWwoIlBhdHRlcm4gaGFzICVkIGVsZW1lbnRzLCBtYXhpbXVtIGlzICVkLiIsCisJCQkJCQkgICpu dW1FbGVtZW50cywgUlBSX0VMRU1JRFhfTUFYKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBm M2NlZGZiYmIxOC4uYWE1ODdlNmFjZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTc2MTAsMTAgKzE3NjEw LDEwIEBAIG9wdF9yb3dfcGF0dGVybl9pbml0aWFsX29yX3NlZWs6CiAJCQl8IFNFRUsKIAkJCQl7 CiAJCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAotCQkJCQkJCSBlcnJtc2coIlNFRUsgaXMgbm90IHN1cHBvcnRlZCIpLAot CQkJCQkJCSBlcnJoaW50KCJVc2UgSU5JVElBTCBpbnN0ZWFkLiIpLAotCQkJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24oQDEpKSk7CisJCQkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkJCQkJZXJybXNnKCJTRUVLIGlzIG5vdCBzdXBwb3J0ZWQiKSwKKwkJCQkJ CQllcnJoaW50KCJVc2UgSU5JVElBTCBpbnN0ZWFkLiIpLAorCQkJCQkJCXBhcnNlcl9lcnJwb3Np dGlvbihAMSkpOwogCQkJCX0KIAkJCXwgLypFTVBUWSovCQl7ICQkID0gdHJ1ZTsgfQogCQk7CkBA IC0xNzc0MCw0MCArMTc3NDAsNDAgQEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkJ CQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIDEsIEAxICsgMSwgQDEsIHl5c2Nh bm5lcik7CiAJCQkJCWVsc2UKIAkJCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCQkJIGVycm1zZygidW5zdXBwb3J0ZWQgcXVh bnRpZmllciBcIiVzXCIiLCAkMSksCi0JCQkJCQkJCSBlcnJoaW50KCJWYWxpZCBxdWFudGlmaWVy cyBhcmU6ICosICssID8sICo/LCArPywgPz8sIHtufSwge24sfSwgeyxtfSwge24sbX0gYW5kIHRo ZWlyIHJlbHVjdGFudCB2ZXJzaW9ucy4iKSwKLQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihA MSkpKTsKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCWVy cm1zZygidW5zdXBwb3J0ZWQgcXVhbnRpZmllciBcIiVzXCIiLCAkMSksCisJCQkJCQkJCWVycmhp bnQoIlZhbGlkIHF1YW50aWZpZXJzIGFyZTogKiwgKywgPywgKj8sICs/LCA/Pywge259LCB7bix9 LCB7LG19LCB7bixtfSBhbmQgdGhlaXIgcmVsdWN0YW50IHZlcnNpb25zLiIpLAorCQkJCQkJCQlw YXJzZXJfZXJycG9zaXRpb24oQDEpKTsKIAkJCQl9CiAJCQkvKiBSRUxVQ1RBTlQgcXVhbnRpZmll cnMgKHdoZW4gbGV4ZXIgc2VwYXJhdGVzIHRva2VucykgKi8KIAkJCXwgJyonIE9wCiAJCQkJewog CQkJCQlpZiAoc3RyY21wKCQyLCAiPyIpICE9IDApCiAJCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJCSBlcnJtc2coImlu dmFsaWQgdG9rZW4gYWZ0ZXIgXCIqXCIgcXVhbnRpZmllciIpLAotCQkJCQkJCQkgZXJyaGludCgi RGlkIHlvdSBtZWFuIFwiKj9cIiBmb3IgcmVsdWN0YW50IHF1YW50aWZpZXI/IiksCi0JCQkJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24oQDIpKSk7CisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgXCIqXCIgcXVh bnRpZmllciIpLAorCQkJCQkJCQllcnJoaW50KCJEaWQgeW91IG1lYW4gXCIqP1wiIGZvciByZWx1 Y3RhbnQgcXVhbnRpZmllcj8iKSwKKwkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAyKSk7CiAJ CQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgSU5UX01BWCwgQDIsIEAxLCB5 eXNjYW5uZXIpOwogCQkJCX0KIAkJCXwgJysnIE9wCiAJCQkJewogCQkJCQlpZiAoc3RyY21wKCQy LCAiPyIpICE9IDApCiAJCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJCSBlcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIg XCIrXCIgcXVhbnRpZmllciIpLAotCQkJCQkJCQkgZXJyaGludCgiRGlkIHlvdSBtZWFuIFwiKz9c IiBmb3IgcmVsdWN0YW50IHF1YW50aWZpZXI/IiksCi0JCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRp b24oQDIpKSk7CisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJ CQllcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgXCIrXCIgcXVhbnRpZmllciIpLAorCQkJCQkJ CQllcnJoaW50KCJEaWQgeW91IG1lYW4gXCIrP1wiIGZvciByZWx1Y3RhbnQgcXVhbnRpZmllcj8i KSwKKwkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAyKSk7CiAJCQkJCSQkID0gKE5vZGUgKikg bWFrZVJQUlF1YW50aWZpZXIoMSwgSU5UX01BWCwgQDIsIEAxLCB5eXNjYW5uZXIpOwogCQkJCX0K IAkJCXwgT3AgT3AKIAkJCQl7CiAJCQkJCWlmIChzdHJjbXAoJDEsICI/IikgIT0gMCB8fCBzdHJj bXAoJDIsICI/IikgIT0gMCkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCQkJIGVycm1zZygiaW52YWxpZCBxdWFudGlm aWVyIGNvbWJpbmF0aW9uIiksCi0JCQkJCQkJCSBlcnJoaW50KCJEaWQgeW91IG1lYW4gXCI/P1wi IGZvciByZWx1Y3RhbnQgcXVhbnRpZmllcj8iKSwKLQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihAMSkpKTsKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJ CWVycm1zZygiaW52YWxpZCBxdWFudGlmaWVyIGNvbWJpbmF0aW9uIiksCisJCQkJCQkJCWVycmhp bnQoIkRpZCB5b3UgbWVhbiBcIj8/XCIgZm9yIHJlbHVjdGFudCBxdWFudGlmaWVyPyIpLAorCQkJ CQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDEpKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBS UXVhbnRpZmllcigwLCAxLCBAMiwgQDEsIHl5c2Nhbm5lcik7CiAJCQkJfQogCQkJLyoge259LCB7 bix9LCB7LG19LCB7bixtfSBxdWFudGlmaWVycyAqLwpAQCAtMTc4MjMsMTAgKzE3ODIzLDEwIEBA IHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJCXsKIAkJCQkJaWYgKHN0cmNtcCgkNCwg Ij8iKSAhPSAwKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAotCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJh bmdlIHF1YW50aWZpZXIiKSwKLQkJCQkJCQkJIGVycmhpbnQoIk9ubHkgXCI/XCIgaXMgYWxsb3dl ZCBhZnRlciB7bn0gdG8gbWFrZSBpdCByZWx1Y3RhbnQuIiksCi0JCQkJCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24oQDQpKSk7CisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAor CQkJCQkJCQllcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllciIpLAor CQkJCQkJCQllcnJoaW50KCJPbmx5IFwiP1wiIGlzIGFsbG93ZWQgYWZ0ZXIge259IHRvIG1ha2Ug aXQgcmVsdWN0YW50LiIpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDQpKTsKIAkJCQkJ aWYgKCQyIDw9IDAgfHwgJDIgPj0gSU5UX01BWCkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtMTc4MzgsMTAgKzE3ODM4LDEw IEBAIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJCXsKIAkJCQkJaWYgKHN0cmNtcCgk NSwgIj8iKSAhPSAwKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVy IHJhbmdlIHF1YW50aWZpZXIiKSwKLQkJCQkJCQkJIGVycmhpbnQoIk9ubHkgXCI/XCIgaXMgYWxs b3dlZCBhZnRlciB7bix9IG9yIHssbX0gdG8gbWFrZSBpdCByZWx1Y3RhbnQuIiksCi0JCQkJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24oQDUpKSk7CisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVh bnRpZmllciIpLAorCQkJCQkJCQllcnJoaW50KCJPbmx5IFwiP1wiIGlzIGFsbG93ZWQgYWZ0ZXIg e24sfSBvciB7LG19IHRvIG1ha2UgaXQgcmVsdWN0YW50LiIpLAorCQkJCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24oQDUpKTsKIAkJCQkJaWYgKCQyIDwgMCB8fCAkMiA+PSBJTlRfTUFYKQogCQkJCQkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBA IC0xNzg1MywxMCArMTc4NTMsMTAgQEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkJ ewogCQkJCQlpZiAoc3RyY21wKCQ1LCAiPyIpICE9IDApCiAJCQkJCQllcmVwb3J0KEVSUk9SLAot CQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJCSBlcnJtc2co ImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllciIpLAotCQkJCQkJCQkgZXJyaGlu dCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFmdGVyIHtuLH0gb3IgeyxtfSB0byBtYWtlIGl0IHJl bHVjdGFudC4iKSwKLQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihANSkpKTsKKwkJCQkJCQkJ ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCWVycm1zZygiaW52YWxpZCB0 b2tlbiBhZnRlciByYW5nZSBxdWFudGlmaWVyIiksCisJCQkJCQkJCWVycmhpbnQoIk9ubHkgXCI/ XCIgaXMgYWxsb3dlZCBhZnRlciB7bix9IG9yIHssbX0gdG8gbWFrZSBpdCByZWx1Y3RhbnQuIiks CisJCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihANSkpOwogCQkJCQlpZiAoJDMgPD0gMCB8fCAk MyA+PSBJTlRfTUFYKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCkBAIC0xNzg2OCwxMCArMTc4NjgsMTAgQEAgcm93X3BhdHRlcm5f cXVhbnRpZmllcl9vcHQ6CiAJCQkJewogCQkJCQlpZiAoc3RyY21wKCQ2LCAiPyIpICE9IDApCiAJ CQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCi0JCQkJCQkJCSBlcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmll ciIpLAotCQkJCQkJCQkgZXJyaGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFmdGVyIHtuLG19 IHRvIG1ha2UgaXQgcmVsdWN0YW50LiIpLAotCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKEA2 KSkpOworCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJZXJy bXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdlIHF1YW50aWZpZXIiKSwKKwkJCQkJCQkJZXJy aGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFmdGVyIHtuLG19IHRvIG1ha2UgaXQgcmVsdWN0 YW50LiIpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDYpKTsKIAkJCQkJaWYgKCQyIDwg MCB8fCAkNCA8PSAwIHx8ICQyID49IElOVF9NQVggfHwgJDQgPj0gSU5UX01BWCkKIAkJCQkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3Jwci5jCmluZGV4IDJjNmZjY2ViZDQ3Li5iYmE4ODdmMTdjZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ycHIuYwpAQCAtOTUsMjAgKzk1LDIwIEBAIHRyYW5zZm9ybVJQUihQYXJzZVN0YXRl ICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCS8qIEZyYW1l IHR5cGUgbXVzdCBiZSAiUk9XIiAqLwogCWlmICh3Yy0+ZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJ T05fR1JPVVBTKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9X SU5HX0VSUk9SKSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBHUk9VUFMg d2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiIpLAotCQkJCSBlcnJoaW50KCJVc2UgUk9XUyBp bnN0ZWFkLiIpLAotCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAotCQkJCQkJCQkJd2lu ZGVmLT5mcmFtZUxvY2F0aW9uID49IDAgPwotCQkJCQkJCQkJd2luZGVmLT5mcmFtZUxvY2F0aW9u IDogd2luZGVmLT5sb2NhdGlvbikpKTsKKwkJCQllcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VS Uk9SKSwKKwkJCQllcnJtc2coImNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIEdST1VQUyB3aXRoIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uIiksCisJCQkJZXJyaGludCgiVXNlIFJPV1MgaW5zdGVhZC4i KSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkgICB3aW5kZWYtPmZy YW1lTG9jYXRpb24gPj0gMCA/CisJCQkJCQkJCSAgIHdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA6IHdp bmRlZi0+bG9jYXRpb24pKTsKIAlpZiAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1JB TkdFKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VS Uk9SKSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3aXRoIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uIiksCi0JCQkJIGVycmhpbnQoIlVzZSBST1dTIGluc3RlYWQu IiksCi0JCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCi0JCQkJCQkJCQl3aW5kZWYtPmZy YW1lTG9jYXRpb24gPj0gMCA/Ci0JCQkJCQkJCQl3aW5kZWYtPmZyYW1lTG9jYXRpb24gOiB3aW5k ZWYtPmxvY2F0aW9uKSkpOworCQkJCWVycmNvZGUoRVJSQ09ERV9XSU5ET1dJTkdfRVJST1IpLAor CQkJCWVycm1zZygiY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVy biByZWNvZ25pdGlvbiIpLAorCQkJCWVycmhpbnQoIlVzZSBST1dTIGluc3RlYWQuIiksCisJCQkJ cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJICAgd2luZGVmLT5mcmFtZUxvY2F0 aW9uID49IDAgPworCQkJCQkJCQkgICB3aW5kZWYtPmZyYW1lTG9jYXRpb24gOiB3aW5kZWYtPmxv Y2F0aW9uKSk7CiAKIAkvKiBGcmFtZSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93ICovCiAJaWYg KCh3Yy0+ZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05fU1RBUlRfQ1VSUkVOVF9ST1cpID09IDAp CkBAIC0xMzAsMTEgKzEzMCwxMSBAQCB0cmFuc2Zvcm1SUFIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBX aW5kb3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAkJCSAgICh3Yy0+ZnJhbWVPcHRp b25zICYgRlJBTUVPUFRJT05fU1RBUlRfT0ZGU0VUX0ZPTExPV0lORykpOwogCiAJCWVyZXBvcnQo RVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9XSU5ET1dJTkdfRVJST1IpLAotCQkJCSBlcnJt c2coIkZSQU1FIG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1cgd2hlbiB1c2luZyByb3cgcGF0dGVy biByZWNvZ25pdGlvbiIpLAotCQkJCSBlcnJkZXRhaWwoIkN1cnJlbnQgZnJhbWUgc3RhcnRzIHdp dGggJXMuIiwgc3RhcnRCb3VuZCksCi0JCQkJIGVycmhpbnQoIlVzZTogJXMgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgLi4uIiwgZnJhbWVUeXBlKSwKLQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgd2luZGVmLT5mcmFtZUxvY2F0aW9uID49IDAgPyB3aW5kZWYtPmZyYW1lTG9jYXRpb24g OiB3aW5kZWYtPmxvY2F0aW9uKSkpOworCQkJCWVycmNvZGUoRVJSQ09ERV9XSU5ET1dJTkdfRVJS T1IpLAorCQkJCWVycm1zZygiRlJBTUUgbXVzdCBzdGFydCBhdCBDVVJSRU5UIFJPVyB3aGVuIHVz aW5nIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIiksCisJCQkJZXJyZGV0YWlsKCJDdXJyZW50IGZy YW1lIHN0YXJ0cyB3aXRoICVzLiIsIHN0YXJ0Qm91bmQpLAorCQkJCWVycmhpbnQoIlVzZTogJXMg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgLi4uIiwgZnJhbWVUeXBlKSwKKwkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCB3aW5kZWYtPmZyYW1lTG9jYXRpb24gPj0gMCA/IHdpbmRlZi0+ZnJh bWVMb2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24pKTsKIAl9CiAKIAkvKiBFWENMVURFIG9wdGlv bnMgYXJlIG5vdCBwZXJtaXR0ZWQgKi8KQEAgLTE1NiwxMSArMTU2LDExIEBAIHRyYW5zZm9ybVJQ UihQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVm LAogCQkJICAgKHdjLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVURFX1RJRVMpKTsK IAogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VSUk9S KSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0 ZXJuIHJlY29nbml0aW9uIiksCi0JCQkJIGVycmRldGFpbCgiRnJhbWUgZGVmaW5pdGlvbiBpbmNs dWRlcyAlcy4iLCBleGNsdWRlVHlwZSksCi0JCQkJIGVycmhpbnQoIlJlbW92ZSB0aGUgRVhDTFVE RSBjbGF1c2UgZnJvbSB0aGUgd2luZG93IGRlZmluaXRpb24uIiksCi0JCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIHdpbmRlZi0+ZXhjbHVkZUxvY2F0aW9uID49IDAgPyB3aW5kZWYtPmV4 Y2x1ZGVMb2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24pKSk7CisJCQkJZXJyY29kZShFUlJDT0RF X1dJTkRPV0lOR19FUlJPUiksCisJCQkJZXJybXNnKCJjYW5ub3QgdXNlIEVYQ0xVREUgb3B0aW9u cyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIiksCisJCQkJZXJyZGV0YWlsKCJGcmFtZSBk ZWZpbml0aW9uIGluY2x1ZGVzICVzLiIsIGV4Y2x1ZGVUeXBlKSwKKwkJCQllcnJoaW50KCJSZW1v dmUgdGhlIEVYQ0xVREUgY2xhdXNlIGZyb20gdGhlIHdpbmRvdyBkZWZpbml0aW9uLiIpLAorCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHdpbmRlZi0+ZXhjbHVkZUxvY2F0aW9uID49IDAg PyB3aW5kZWYtPmV4Y2x1ZGVMb2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24pKTsKIAl9CiAKIAkv KiBUcmFuc2Zvcm0gQUZURVIgTUFUQ0ggU0tJUCBUTyBjbGF1c2UgKi8KQEAgLTIyMCwxMSArMjIw LDExIEBAIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUlBS UGF0dGVybk5vZGUgKm5vZGUsCiAJCQkJCS8qIENoZWNrIGFnYWluc3QgUlBSX1ZBUklEX01BWCBi ZWZvcmUgYWRkaW5nICovCiAJCQkJCWlmIChsaXN0X2xlbmd0aCgqdmFyTmFtZXMpID49IFJQUl9W QVJJRF9NQVgpCiAJCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkoZXJyY29kZShFUlJDT0RF X1BST0dSQU1fTElNSVRfRVhDRUVERUQpLAotCQkJCQkJCQkgZXJybXNnKCJ0b28gbWFueSBwYXR0 ZXJuIHZhcmlhYmxlcyIpLAotCQkJCQkJCQkgZXJyZGV0YWlsKCJNYXhpbXVtIGlzICVkLiIsIFJQ Ul9WQVJJRF9NQVgpLAotCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKLQkJCQkJ CQkJCQkJCQlleHByTG9jYXRpb24oKE5vZGUgKikgbm9kZSkpKSk7CisJCQkJCQkJCWVycmNvZGUo RVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwKKwkJCQkJCQkJZXJybXNnKCJ0b28gbWFu eSBwYXR0ZXJuIHZhcmlhYmxlcyIpLAorCQkJCQkJCQllcnJkZXRhaWwoIk1heGltdW0gaXMgJWQu IiwgUlBSX1ZBUklEX01BWCksCisJCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCisJ CQkJCQkJCQkJCQkgICBleHByTG9jYXRpb24oKE5vZGUgKikgbm9kZSkpKTsKIAogCQkJCQkqdmFy TmFtZXMgPSBsYXBwZW5kKCp2YXJOYW1lcywgbWFrZVN0cmluZyhwc3RyZHVwKG5vZGUtPnZhck5h bWUpKSk7CiAJCQkJfQpAQCAtMjY3LDEwICsyNjcsMTAgQEAgdmFsaWRhdGVSUFJQYXR0ZXJuVmFy Q291bnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSwKIAkJCX0KIAkJ CWlmICghZm91bmQpCiAJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKLQkJCQkJCSBlcnJtc2coIkRFRklORSB2YXJpYWJsZSBcIiVzXCIgaXMg bm90IHVzZWQgaW4gUEFUVEVSTiIsCi0JCQkJCQkJCXJ0LT5uYW1lKSwKLQkJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBydC0+bG9jYXRpb24pKSk7CisJCQkJCQllcnJjb2RlKEVSUkNP REVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygiREVGSU5FIHZhcmlhYmxlIFwiJXNcIiBp cyBub3QgdXNlZCBpbiBQQVRURVJOIiwKKwkJCQkJCQkgICBydC0+bmFtZSksCisJCQkJCQlwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBydC0+bG9jYXRpb24pKTsKIAkJfQogCX0KIH0KQEAgLTM0 NywxMCArMzQ3LDEwIEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUs IFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCiAJCQlpZiAoIXN0cmNtcChu LCBuYW1lKSkKIAkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAotCQkJCQkJIGVycm1zZygiREVGSU5FIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJz IG1vcmUgdGhhbiBvbmNlIiwKLQkJCQkJCQkJbmFtZSksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIHIpKSkpOworCQkJCQkJZXJyY29kZShF UlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJtc2coIkRFRklORSB2YXJpYWJsZSBcIiVz XCIgYXBwZWFycyBtb3JlIHRoYW4gb25jZSIsCisJCQkJCQkJICAgbmFtZSksCisJCQkJCQlwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgcikpKTsKIAkJfQog CiAJCXJlc3RhcmdldHMgPSBsYXBwZW5kKHJlc3RhcmdldHMsIHJlc3RhcmdldCk7CkBAIC01Mjks MTQgKzUyOSwxNCBAQCBkZWZpbmVfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJ ICovCiAJaWYgKGNoZWNrX2Z1bmN0aW9uc19pbl9ub2RlKG5vZGUsIG5hdl92b2xhdGlsZV9mdW5j X2NoZWNrZXIsIE5VTEwpKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNnKCJ2b2xhdGlsZSBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UiKSwKLQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKGN0eC0+cHN0YXRlLCBleHByTG9jYXRpb24obm9kZSkpKSk7CisJCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJ2b2xhdGlsZSBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UiKSwKKwkJCQlwYXJzZXJfZXJycG9z aXRpb24oY3R4LT5wc3RhdGUsIGV4cHJMb2NhdGlvbihub2RlKSkpOwogCWlmIChJc0Eobm9kZSwg TmV4dFZhbHVlRXhwcikpCiAJCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2coInNlcXVlbmNlIG9wZXJhdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UiKSwKLQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKGN0eC0+cHN0YXRlLCBleHByTG9jYXRpb24obm9kZSkpKSk7CisJCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJzZXF1ZW5jZSBvcGVyYXRp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUgY2xhdXNlIiksCisJCQkJcGFyc2VyX2VycnBv c2l0aW9uKGN0eC0+cHN0YXRlLCBleHByTG9jYXRpb24obm9kZSkpKTsKIAogCS8qIFZhciBzaWdo dGluZyBmZWVkcyB0aGUgY29sdW1uLXJlZiBydWxlIGZvciB0aGUgZW5jbG9zaW5nIG5hdiBzY29w ZS4gKi8KIAlpZiAoSXNBKG5vZGUsIFZhcikgJiYKQEAgLTYwMCwxNyArNjAwLDE3IEBAIGRlZmlu ZV93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAkJCQkJLyogUmVqZWN0IHRyaXBs ZS1vci1kZWVwZXIgbmVzdGluZyAqLwogCQkJCQlpZiAoY3R4LT5uYXZfY291bnQgPiAxKQogCQkJ CQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAotCQkJCQkJCQkgZXJybXNnKCJjYW5ub3QgbmVzdCByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG1v cmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAiKSwKLQkJCQkJCQkJIGVycmhpbnQoIk9ubHkgUFJFVihG SVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNv bXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAotCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KGN0eC0+cHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQkJCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJZXJybXNnKCJjYW5ub3QgbmVzdCByb3cgcGF0dGVybiBu YXZpZ2F0aW9uIG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAiKSwKKwkJCQkJCQkJZXJyaGludCgi T25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBORVhU KExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuIiksCisJCQkJCQkJCXBhcnNlcl9l cnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpOwogCiAJCQkJCWlmICghSXNB KG5hdi0+YXJnLCBSUFJOYXZFeHByKSkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCQkJIGVycm1zZygicm93IHBhdHRl cm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBiZSBhIGRpcmVjdCBhcmd1bWVudCBvZiB0aGUg b3V0ZXIgbmF2aWdhdGlvbiIpLAotCQkJCQkJCQkgZXJyaGludCgiT25seSBQUkVWKEZJUlNUKCkp LCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQg Zm9ybXMgYXJlIGFsbG93ZWQuIiksCi0JCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3R4LT5w c3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJCQllcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9u IG11c3QgYmUgYSBkaXJlY3QgYXJndW1lbnQgb2YgdGhlIG91dGVyIG5hdmlnYXRpb24iKSwKKwkJ CQkJCQkJZXJyaGludCgiT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklS U1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuIiksCisJ CQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpOwog CiAJCQkJCWlubmVyID0gKFJQUk5hdkV4cHIgKikgbmF2LT5hcmc7CiAKQEAgLTYzMCwyOSArNjMw LDI5IEBAIGRlZmluZV93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAkJCQl9CiAJ CQkJZWxzZSBpZiAoIW91dGVyX3BoeXMgJiYgaW5uZXJfcGh5cykKIAkJCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJIGVycm1z ZygiRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUIiksCi0JCQkJCQkJ IGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkp LCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAotCQkJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24oY3R4LT5wc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCQkJ CQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJZXJybXNnKCJGSVJTVCBh bmQgTEFTVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQiKSwKKwkJCQkJCQllcnJoaW50KCJP bmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQo TEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24oY3R4LT5wc3RhdGUsIG5hdi0+bG9jYXRpb24pKTsKIAkJCQllbHNlIGlmIChvdXRl cl9waHlzICYmIGlubmVyX3BoeXMpCiAJCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJCSBlcnJtc2coIlBSRVYgYW5kIE5FWFQg Y2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUIiksCi0JCQkJCQkJIGVycmhpbnQoIk9ubHkgUFJF VihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkp IGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAotCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRp b24oY3R4LT5wc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCQkJCQkJZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkJZXJybXNnKCJQUkVWIGFuZCBORVhUIGNhbm5vdCBjb250 YWluIFBSRVYgb3IgTkVYVCIpLAorCQkJCQkJCWVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwg UFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZv cm1zIGFyZSBhbGxvd2VkLiIpLAorCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0 ZSwgbmF2LT5sb2NhdGlvbikpOwogCQkJCWVsc2UKIAkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJIGVycm1zZygiRklSU1Qg YW5kIExBU1QgY2Fubm90IGNvbnRhaW4gRklSU1Qgb3IgTEFTVCIpLAotCQkJCQkJCSBlcnJoaW50 KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5F WFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKLQkJCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKGN0eC0+cHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQkJCQkJCWVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCWVycm1zZygiRklSU1QgYW5kIExBU1Qg Y2Fubm90IGNvbnRhaW4gRklSU1Qgb3IgTEFTVCIpLAorCQkJCQkJCWVycmhpbnQoIk9ubHkgUFJF VihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkp IGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAorCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlv bihjdHgtPnBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpOwogCQkJfQogCQkJZWxzZSBpZiAoIWN0eC0+ aGFzX2NvbHVtbl9yZWYpCiAJCQl7CiAJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCSBlcnJtc2coImFyZ3VtZW50IG9mIHJvdyBw YXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29s dW1uIHJlZmVyZW5jZSIpLAotCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwg bmF2LT5sb2NhdGlvbikpKTsKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAor CQkJCQkJZXJybXNnKCJhcmd1bWVudCBvZiByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9wZXJhdGlv biBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2UiKSwKKwkJCQkJCXBh cnNlcl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpOwogCQkJfQogCiAJ CQkvKgpAQCAtNjczLDkgKzY3Myw5IEBAIGRlZmluZV93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAq Y29udGV4dCkKIAkJCQkodm9pZCkgZGVmaW5lX3dhbGtlcigoTm9kZSAqKSBuYXYtPm9mZnNldF9h cmcsIGN0eCk7CiAJCQkJaWYgKGN0eC0+aGFzX2NvbHVtbl9yZWYpCiAJCQkJCWVyZXBvcnQoRVJS T1IsCi0JCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJ CQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3QgYmUgYSBydW4t dGltZSBjb25zdGFudCIpLAotCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3R4LT5wc3RhdGUs IGV4cHJMb2NhdGlvbigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcpKSkpOworCQkJCQkJCWVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCWVycm1zZygicm93IHBh dHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50IiksCisJ CQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKGN0eC0+cHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUg KikgbmF2LT5vZmZzZXRfYXJnKSkpOwogCQkJfQogCQkJaWYgKGZsYXR0ZW5lZCAmJiBuYXYtPmNv bXBvdW5kX29mZnNldF9hcmcgIT0gTlVMTCkKIAkJCXsKQEAgLTY4Myw5ICs2ODMsOSBAQCBkZWZp bmVfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCQkJKHZvaWQpIGRlZmluZV93 YWxrZXIoKE5vZGUgKikgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCBjdHgpOwogCQkJCWlmIChj dHgtPmhhc19jb2x1bW5fcmVmKQogCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJCQkgZXJybXNnKCJyb3cgcGF0 dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQiKSwKLQkJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN0eC0+cHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUg KikgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnKSkpKTsKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQllcnJtc2coInJvdyBwYXR0ZXJuIG5hdmln YXRpb24gb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCIpLAorCQkJCQkJCXBhcnNl cl9lcnJwb3NpdGlvbihjdHgtPnBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIG5hdi0+Y29t cG91bmRfb2Zmc2V0X2FyZykpKTsKIAkJCX0KIAogCQkJKmN0eCA9IHNhdmVkOwotLSAKMi41MC4x IChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0006-Add-trailing-commas-to-RPR-enum-definitions.txt" Content-Disposition: attachment; filename="nocfbot-0006-Add-trailing-commas-to-RPR-enum-definitions.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqb5 RnJvbSA5MjEyMzJlOTBiNWI5Njg1Yjg3ZDJiNzA1MDQwNzc5Mjk0Mjg1NjNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDUgTWF5IDIwMjYgMTc6MjE6NTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDA2LzY4XSBB ZGQgdHJhaWxpbmcgY29tbWFzIHRvIFJQUiBlbnVtIGRlZmluaXRpb25zCgpSUFJOYXZLaW5kLCBS UFJOYXZPZmZzZXRLaW5kLCBSUFJQYXR0ZXJuTm9kZVR5cGUgbGFja2VkIGEgdHJhaWxpbmcKY29t bWEgb24gdGhlIGxhc3QgZW51bWVyYXRvciwgY29udHJhcnkgdG8gcHJvamVjdCBjb2Rpbmcgc3R5 bGUuCi0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIHwgNCArKy0tCiBzcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNDU1ZGIy Y2VjNjEuLmFkZWZiMWQ1YmFkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC02MDQsNyArNjA0 LDcgQEAgdHlwZWRlZiBlbnVtIFJQUk5hdk9mZnNldEtpbmQKIAlSUFJfTkFWX09GRlNFVF9GSVhF RCwJCS8qIHJlc29sdmVkIGNvbnN0YW50OyB1c2UgdGhlIG9mZnNldCB2YWx1ZSAqLwogCVJQUl9O QVZfT0ZGU0VUX05FRURTX0VWQUwsCS8qIG5vbi1jb25zdGFudCBvZmZzZXQ7IGV2YWx1YXRlIGF0 IGV4ZWN1dG9yCiAJCQkJCQkJCSAqIGluaXQgKi8KLQlSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxM CS8qIGNhbm5vdCBkZXRlcm1pbmU7IHJldGFpbiBhbGwgcm93cyAobm8gdHJpbSkgKi8KKwlSUFJf TkFWX09GRlNFVF9SRVRBSU5fQUxMLAkvKiBjYW5ub3QgZGV0ZXJtaW5lOyByZXRhaW4gYWxsIHJv d3MgKG5vIHRyaW0pICovCiB9IFJQUk5hdk9mZnNldEtpbmQ7CiAKIC8qCkBAIC02MTUsNyArNjE1 LDcgQEAgdHlwZWRlZiBlbnVtIFJQUlBhdHRlcm5Ob2RlVHlwZQogCVJQUl9QQVRURVJOX1ZBUiwJ CQkvKiB2YXJpYWJsZSByZWZlcmVuY2UgKi8KIAlSUFJfUEFUVEVSTl9TRVEsCQkJLyogc2VxdWVu Y2UgKGNvbmNhdGVuYXRpb24pICovCiAJUlBSX1BBVFRFUk5fQUxULAkJCS8qIGFsdGVybmF0aW9u ICh8KSAqLwotCVJQUl9QQVRURVJOX0dST1VQCQkJLyogZ3JvdXAgKHBhcmVudGhlc2VzKSAqLwor CVJQUl9QQVRURVJOX0dST1VQLAkJCS8qIGdyb3VwIChwYXJlbnRoZXNlcykgKi8KIH0gUlBSUGF0 dGVybk5vZGVUeXBlOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA2NTZjNTUyYjBhOC4u ZDcxMzhmNTE0MWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC02ODQsNyArNjg0LDcgQEAgdHlw ZWRlZiBlbnVtIFJQUk5hdktpbmQKIAlSUFJfTkFWX1BSRVZfRklSU1QsCiAJUlBSX05BVl9QUkVW X0xBU1QsCiAJUlBSX05BVl9ORVhUX0ZJUlNULAotCVJQUl9OQVZfTkVYVF9MQVNUCisJUlBSX05B Vl9ORVhUX0xBU1QsCiB9IFJQUk5hdktpbmQ7CiAKIHR5cGVkZWYgc3RydWN0IFJQUk5hdkV4cHIK LS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0008-Add-high-water-mark-tracking-to-NFA-visited-bitma.txt" Content-Disposition: attachment; filename="nocfbot-0008-Add-high-water-mark-tracking-to-NFA-visited-bitma.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqg7 RnJvbSAwMjljMmJmNzUzNTk5NzM2ZjA0NjlhMzA4ZDhmZTA1MGU0ZTJiOTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDQgTWF5IDIwMjYgMjI6MzE6MDYgKzA5MDAKU3ViamVjdDogW1BBVENIIDA4LzY4XSBB ZGQgaGlnaC13YXRlciBtYXJrIHRyYWNraW5nIHRvIE5GQSB2aXNpdGVkIGJpdG1hcAogcmVzZXQK ClRyYWNrIHRoZSBtaW4vbWF4IGJpdG1hcHdvcmQgaW5kZXggdG91Y2hlZCBpbiBuZmFfbWFya192 aXNpdGVkIHNvIHRoZQpwZXItYWR2YW5jZSByZXNldCBtZW1zZXRzIG9ubHkgdGhlIHRvdWNoZWQg cmFuZ2UsIG5vdCB0aGUgZnVsbApuZmFWaXNpdGVkTldvcmRzIGFycmF5LgoKRWFjaCB2aXNpdGVk IG1hcmsgcGVyZm9ybXMgdHdvIGludDE2IGNvbXBhcmlzb25zLiAgRm9yIHNpbmdsZS13b3JkCmJp dG1hcHMgdGhpcyBvdmVyaGVhZCBpcyBhZGRlZCB3aXRoIG5vIHJlc2V0IHNhdmluZzsgZm9yIGxh cmdlciBORkFzCnRoZSByZXNldCB3YWxrcyBvbmx5IHRoZSBzbGljZSB0aGUgREZTIGFjdHVhbGx5 IHRvdWNoZWQsIHdoaWNoIGlzCndoZXJlIHRoZSB3aW4gY29tZXMgZnJvbS4gIEFwcGxpZWQgdW5j b25kaXRpb25hbGx5IGZvciBzaW1wbGljaXR5LgpTZW1hbnRpY3MgdW5jaGFuZ2VkLgotLS0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICB8IDQxICsrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8ICAzICsr CiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgfCAgNCArKysKIDMgZmlsZXMg Y2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMKaW5kZXggMjQyYWU5YzZkY2YuLjFlNjE5NmQ2OTYwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQ Ui5jCkBAIC0zOCw2ICszOCwyMSBAQAogI2RlZmluZSBXT1JETlVNKHgpCSgoeCkgLyBCSVRTX1BF Ul9CSVRNQVBXT1JEKQogI2RlZmluZSBCSVROVU0oeCkJKCh4KSAlIEJJVFNfUEVSX0JJVE1BUFdP UkQpCiAKKy8qCisgKiBTZXQgdGhlIHZpc2l0ZWQgYml0IGZvciBlbGVtSWR4IGFuZCB1cGRhdGUg dGhlIGhpZ2gtd2F0ZXIgbWFya3MKKyAqIChuZmFWaXNpdGVkTWluL01heFdvcmQpIHNvIHRoYXQg dGhlIG5leHQgcmVzZXQgb25seSBoYXMgdG8gY2xlYXIKKyAqIHRoZSB0b3VjaGVkIHJhbmdlIGlu c3RlYWQgb2YgdGhlIGZ1bGwgbmZhVmlzaXRlZE5Xb3JkcyBhcnJheS4KKyAqLworc3RhdGljIGlu bGluZSB2b2lkCituZmFfbWFya192aXNpdGVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50 MTYgZWxlbUlkeCkKK3sKKwlpbnQxNgkJdyA9IFdPUkROVU0oZWxlbUlkeCk7CisKKwl3aW5zdGF0 ZS0+bmZhVmlzaXRlZEVsZW1zW3ddIHw9ICgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0oZWxlbUlk eCkpOworCXdpbnN0YXRlLT5uZmFWaXNpdGVkTWluV29yZCA9IE1pbih3aW5zdGF0ZS0+bmZhVmlz aXRlZE1pbldvcmQsIHcpOworCXdpbnN0YXRlLT5uZmFWaXNpdGVkTWF4V29yZCA9IE1heCh3aW5z dGF0ZS0+bmZhVmlzaXRlZE1heFdvcmQsIHcpOworfQorCiAvKiBGb3J3YXJkIGRlY2xhcmF0aW9u cyAtIE5GQSBzdGF0ZSBtYW5hZ2VtZW50ICovCiBzdGF0aWMgUlBSTkZBU3RhdGUgKm5mYV9zdGF0 ZV9hbGxvYyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogc3RhdGljIHZvaWQgbmZhX3N0YXRl X2ZyZWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqc3RhdGUpOwpAQCAt MzIwLDggKzMzNSw3IEBAIG5mYV9hZGRfc3RhdGVfdW5pcXVlKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBSUFJORkFTdGF0ZSAqCiAJUlBSTkZBU3RhdGUgKnRh aWwgPSBOVUxMOwogCiAJLyogTWFyayBWQVIgaW4gdmlzaXRlZCBiZWZvcmUgZHVwbGljYXRlIGNo ZWNrIHRvIHByZXZlbnQgREZTIGxvb3BzICovCi0Jd2luc3RhdGUtPm5mYVZpc2l0ZWRFbGVtc1tX T1JETlVNKHN0YXRlLT5lbGVtSWR4KV0gfD0KLQkJKChiaXRtYXB3b3JkKSAxIDw8IEJJVE5VTShz dGF0ZS0+ZWxlbUlkeCkpOworCW5mYV9tYXJrX3Zpc2l0ZWQod2luc3RhdGUsIHN0YXRlLT5lbGVt SWR4KTsKIAogCS8qIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAqLwogCWZvciAo cyA9IGN0eC0+c3RhdGVzOyBzICE9IE5VTEw7IHMgPSBzLT5uZXh0KQpAQCAtMTM0MSw4ICsxMzU1 LDcgQEAgbmZhX2FkdmFuY2Vfc3RhdGUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgsCiAJICogdGhlIHNhbWUgVkFSIGluIGEgbmV3IGl0ZXJhdGlvbi4KIAkgKi8K IAlpZiAoIVJQUkVsZW1Jc1ZhcihlbGVtKSkKLQkJd2luc3RhdGUtPm5mYVZpc2l0ZWRFbGVtc1tX T1JETlVNKHN0YXRlLT5lbGVtSWR4KV0gfD0KLQkJCSgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0o c3RhdGUtPmVsZW1JZHgpKTsKKwkJbmZhX21hcmtfdmlzaXRlZCh3aW5zdGF0ZSwgc3RhdGUtPmVs ZW1JZHgpOwogCiAJc3dpdGNoIChlbGVtLT52YXJJZCkKIAl7CkBAIC0xMzk0LDkgKzE0MDcsMjMg QEAgbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpj dHgsIGludDY0IGN1cnJlbnRQb3MpCiAJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAJCXNhdmVk TWF0Y2hlZFN0YXRlID0gY3R4LT5tYXRjaGVkU3RhdGU7CiAKLQkJLyogQ2xlYXIgdmlzaXRlZCBi aXRtYXAgYmVmb3JlIGVhY2ggc3RhdGUncyBERlMgZXhwYW5zaW9uICovCi0JCW1lbXNldCh3aW5z dGF0ZS0+bmZhVmlzaXRlZEVsZW1zLCAwLAotCQkJICAgc2l6ZW9mKGJpdG1hcHdvcmQpICogd2lu c3RhdGUtPm5mYVZpc2l0ZWROV29yZHMpOworCQkvKgorCQkgKiBDbGVhciB2aXNpdGVkIGJpdG1h cCBiZWZvcmUgZWFjaCBzdGF0ZSdzIERGUyBleHBhbnNpb24uICBPbmx5IHRoZQorCQkgKiByYW5n ZSB0b3VjaGVkIHNpbmNlIHRoZSBwcmV2aW91cyByZXNldCAodHJhY2tlZCB2aWEgdGhlIGhpZ2gt d2F0ZXIKKwkJICogbWFya3MgdXBkYXRlZCBpbiBuZmFfbWFya192aXNpdGVkKSBuZWVkcyB0byBi ZSBjbGVhcmVkOyBmb3Igc21hbGwKKwkJICogTkZBcyB0aGlzIGlzIHRoZSB3aG9sZSBhcnJheSwg YnV0IGZvciBsYXJnZSBORkFzIHdob3NlIERGUyBvbmx5CisJCSAqIHJlYWNoZXMgYSBmZXcgZWxl bWVudHMgcGVyIGFkdmFuY2UgaXQgYXZvaWRzIHdhbGtpbmcgdGhlIGZ1bGwKKwkJICogYml0bWFw LgorCQkgKi8KKwkJaWYgKHdpbnN0YXRlLT5uZmFWaXNpdGVkTWF4V29yZCA+PSB3aW5zdGF0ZS0+ bmZhVmlzaXRlZE1pbldvcmQpCisJCXsKKwkJCW1lbXNldCgmd2luc3RhdGUtPm5mYVZpc2l0ZWRF bGVtc1t3aW5zdGF0ZS0+bmZhVmlzaXRlZE1pbldvcmRdLCAwLAorCQkJCSAgIHNpemVvZihiaXRt YXB3b3JkKSAqCisJCQkJICAgKHdpbnN0YXRlLT5uZmFWaXNpdGVkTWF4V29yZCAtCisJCQkJCXdp bnN0YXRlLT5uZmFWaXNpdGVkTWluV29yZCArIDEpKTsKKwkJCXdpbnN0YXRlLT5uZmFWaXNpdGVk TWluV29yZCA9IElOVDE2X01BWDsKKwkJCXdpbnN0YXRlLT5uZmFWaXNpdGVkTWF4V29yZCA9IC0x OworCQl9CiAKIAkJc3RhdGUgPSBzdGF0ZXM7CiAJCXN0YXRlcyA9IHN0YXRlcy0+bmV4dDsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCAyMDBkOGE0OTAwMS4uMTg4NDQ1ZDc3 OWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTMwNTUsNiArMzA1NSw5 IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGlu dCBlZmxhZ3MpCiAJCQkobm9kZS0+cnBQYXR0ZXJuLT5udW1FbGVtZW50cyAtIDEpIC8gQklUU19Q RVJfQklUTUFQV09SRCArIDE7CiAJCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXMgPSBwYWxsb2Mw KHNpemVvZihiaXRtYXB3b3JkKSAqCiAJCQkJCQkJCQkJCXdpbnN0YXRlLT5uZmFWaXNpdGVkTldv cmRzKTsKKwkJLyogSGlnaC13YXRlciBtYXJrIHNlbnRpbmVsczogbm8gYml0cyBzZXQgeWV0LiAq LworCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZE1pbldvcmQgPSBJTlQxNl9NQVg7CisJCXdpbnN0YXRl LT5uZmFWaXNpdGVkTWF4V29yZCA9IC0xOwogCX0KIAogCS8qIFNldCB1cCByb3cgcGF0dGVybiBy ZWNvZ25pdGlvbiBERUZJTkUgY2xhdXNlICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDBjYjAx YmFhOTQ5Li4xZmJhMTRiODkyZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTI2NzMsNiArMjY3 MywxMCBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCQkJCQkJCQkJICogZGV0ZWN0 aW9uICovCiAJaW50CQkJbmZhVmlzaXRlZE5Xb3JkczsJLyogbnVtYmVyIG9mIGJpdG1hcHdvcmRz IGluCiAJCQkJCQkJCQkgKiBuZmFWaXNpdGVkRWxlbXMgKi8KKwlpbnQxNgkJbmZhVmlzaXRlZE1p bldvcmQ7CS8qIGxvd2VzdCBiaXRtYXB3b3JkIGluZGV4IHRvdWNoZWQgc2luY2UKKwkJCQkJCQkJ CSAqIGxhc3QgcmVzZXQgKElOVDE2X01BWCA9IG5vbmUpICovCisJaW50MTYJCW5mYVZpc2l0ZWRN YXhXb3JkOwkvKiBoaWdoZXN0IGJpdG1hcHdvcmQgaW5kZXggdG91Y2hlZCBzaW5jZQorCQkJCQkJ CQkJICogbGFzdCByZXNldCAoLTEgPSBub25lKSAqLwogCWludDY0CQluZmFMYXN0UHJvY2Vzc2Vk Um93OwkvKiBsYXN0IHJvdyBwcm9jZXNzZWQgYnkgTkZBICgtMSA9CiAJCQkJCQkJCQkJICogbm9u ZSkgKi8KIAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0009-Document-DEFINE-subquery-rejection-as-intentional.txt" Content-Disposition: attachment; filename="nocfbot-0009-Document-DEFINE-subquery-rejection-as-intentional.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqi8 RnJvbSAyYWFlZDVmNjEyNmFjMDhiMWMxMTU5MzU2OGJkY2JjNWY2ZjU4ZDkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDcgTWF5IDIwMjYgMjE6MDA6NDggKzA5MDAKU3ViamVjdDogW1BBVENIIDA5LzY4XSBE b2N1bWVudCBERUZJTkUgc3VicXVlcnkgcmVqZWN0aW9uIGFzIGludGVudGlvbmFsCiBvdmVyLXJl amVjdGlvbgoKVGhlIFN1Ykxpbmsgc3dpdGNoIGluIHRyYW5zZm9ybVN1YkxpbmsoKSByZWplY3Rz IGV2ZXJ5IHN1YnF1ZXJ5IGluCkVYUFJfS0lORF9SUFJfREVGSU5FIHdpdGggbm8gaW5saW5lIHJh dGlvbmFsZS4gIEFkZCBhbiBYWFggYmxvY2sKcmVjb3JkaW5nIHRoYXQgU1FML1JQUiAoMTkwNzUt NSA0LjE4LjQgLyA2LjE3LjQ7IFIwMTAgLwpSMDIwKSBhY3R1YWxseSBwZXJtaXRzIGEgbmVzdGVk IHN1YnF1ZXJ5IGluIERFRklORSBwcm92aWRlZCBpdApkb2VzIG5vdCBpdHNlbGYgcGVyZm9ybSBy b3cgcGF0dGVybiByZWNvZ25pdGlvbiBhbmQgZG9lcyBub3QKcmVmZXJlbmNlIGFuIG91dGVyIHBh dHRlcm4gdmFyaWFibGUsIGFuZCB0aGF0IHRoZSBibGFua2V0CnJlamVjdGlvbiBoZXJlIHN1YnN1 bWVzIGJvdGggcmVzdHJpY3Rpb25zIGJ5IG1ha2luZyB0aGUgc3VicXVlcnkKaXRzZWxmIHVucmVh Y2hhYmxlLgoKSW1wbGVtZW50aW5nIHRoZSBjYXNlIGRpc3RpbmN0aW9uIHdvdWxkIG1lYW4gd2Fs a2luZyB0aGUgYW5hbHl6ZWQKc3VicXVlcnkgUXVlcnkgdHJlZSBmb3IgbmVzdGVkIFJQUiBhbmQg d2Fsa2luZyBpdCBmb3IgQ29sdW1uUmVmCnF1YWxpZmllcnMgbWF0Y2hpbmcgYW55IGFuY2VzdG9y J3MgcF9ycHJfcGF0dGVybl92YXJzOyBib3RoIGFyZQpkb2FibGUgd2l0aCB0aGUgZXhpc3Rpbmcg aW5mcmFzdHJ1Y3R1cmUgYW5kIGFyZSBsZWZ0IGFzIGZ1dHVyZQp3b3JrLCBub3QgYmxvY2tlZCBv biBhbnkgb3RoZXIgZmVhdHVyZS4gIENvbW1lbnQtb25seSBjaGFuZ2UuCi0tLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyB8IDIyICsrKysrKysrKysrKysrKysrKysrKysKIDEgZmls ZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg NDIyMTY0M2Q5YzguLjEwZWRjY2I4YWZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE5 NDQsNiArMTk0NCwyOCBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3Vi TGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfRk9SX1BPUlRJT046CiAJCQllcnIgPSBf KCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24iKTsKIAkJ CWJyZWFrOworCisJCQkvKi0tLS0tLS0tLS0KKwkJCSAqIFhYWCBTUUwvUlBSICgxOTA3NS01IDQu MTguNCAvIDYuMTcuNDsgUjAxMCAvIFIwMjApCisJCQkgKiBwZXJtaXRzIGEgc3VicXVlcnkgbmVz dGVkIGluIGEgREVGSU5FIGV4cHJlc3Npb24gcHJvdmlkZWQKKwkJCSAqIHRoYXQ6CisJCQkgKiAg IChhKSB0aGUgc3VicXVlcnkgZG9lcyBub3QgaXRzZWxmIHBlcmZvcm0gcm93IHBhdHRlcm4KKwkJ CSAqICAgICAgIHJlY29nbml0aW9uLCBhbmQKKwkJCSAqICAgKGIpIHRoZSBzdWJxdWVyeSBkb2Vz IG5vdCByZWZlcmVuY2UgYSByb3cgcGF0dGVybiB2YXJpYWJsZQorCQkJICogICAgICAgb2YgdGhl IG91dGVyIHF1ZXJ5LgorCQkJICoKKwkJCSAqIFdlIHJlamVjdCBhbGwgc3VicXVlcmllcyBoZXJl IGZvciBub3cuICBJbXBsZW1lbnRpbmcgdGhlCisJCQkgKiBjYXNlIGRpc3RpbmN0aW9uIHdvdWxk IG1lYW4gd2Fsa2luZyB0aGUgYW5hbHl6ZWQgc3VicXVlcnkKKwkJCSAqIFF1ZXJ5IHRyZWUgZm9y IG5lc3RlZCBSUFIgd2luZG93IGNsYXVzZXMgdG8gZW5mb3JjZSAoYSksCisJCQkgKiBhbmQgd2Fs a2luZyBpdCBmb3IgQ29sdW1uUmVmIHF1YWxpZmllcnMgbWF0Y2hpbmcgYW55CisJCQkgKiBhbmNl c3RvcidzIHBfcnByX3BhdHRlcm5fdmFycyB0byBlbmZvcmNlIChiKS4gIEJvdGggY2hlY2tzCisJ CQkgKiBhcmUgZG9hYmxlIHdpdGggdGhlIGV4aXN0aW5nIGluZnJhc3RydWN0dXJlIC0tIHRoZXkg YXJlCisJCQkgKiBsZWZ0IGFzIGZ1dHVyZSB3b3JrLCBub3QgYmxvY2tlZCBvbiBhbnkgb3RoZXIg ZmVhdHVyZS4KKwkJCSAqIFVudGlsIHRoZW4gdGhpcyBibGFua2V0IHJlamVjdGlvbiBpcyBpbnRl bnRpb25hbAorCQkJICogb3Zlci1yZWplY3Rpb24sIG5vdCBhIHN0YW5kYXJkIGZpdDsgaXQgc3Vi c3VtZXMgYm90aCAoYSkKKwkJCSAqIGFuZCAoYikgYnkgbWFraW5nIHRoZSBzdWJxdWVyeSBpdHNl bGYgdW5yZWFjaGFibGUuCisJCQkgKi0tLS0tLS0tLS0KKwkJCSAqLwogCQljYXNlIEVYUFJfS0lO RF9SUFJfREVGSU5FOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBERUZJTkUg ZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0010-Remove-duplicate-include-in-nodeWindowAgg.c.txt" Content-Disposition: attachment; filename="nocfbot-0010-Remove-duplicate-include-in-nodeWindowAgg.c.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqk9 RnJvbSBhNmRmNmEwYWYyYjUyM2VlZmY0OTkwOWNiOWU0MjE1YjNhNDM1MTYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDcgTWF5IDIwMjYgMjE6Mzc6NTEgKzA5MDAKU3ViamVjdDogW1BBVENIIDEwLzY4XSBS ZW1vdmUgZHVwbGljYXRlICNpbmNsdWRlIGluIG5vZGVXaW5kb3dBZ2cuYwoKI2luY2x1ZGUgImNv bW1vbi9pbnQuaCIgd2FzIGluY2x1ZGVkIHR3aWNlOyB0aGUgZmlyc3Qgb2NjdXJyZW5jZQp3YXMg YWxzbyBtaXNwbGFjZWQgYmV0d2VlbiB0d28gY2F0YWxvZy8qIGhlYWRlcnMsIGJyZWFraW5nIHRo ZQphbHBoYWJldGljYWwgZ3JvdXBpbmcgb2Ygc3lzdGVtIGhlYWRlciBpbmNsdWRlcy4gIERyb3Ag dGhlCm1pc3BsYWNlZCBmaXJzdCBvY2N1cnJlbmNlOyB0aGUgc2Vjb25kIHNpdHMgaW4gdGhlIGNv cnJlY3QKYWxwaGFiZXRpY2FsIHBvc2l0aW9uIGJldHdlZW4gY2F0YWxvZy8gYW5kIGV4ZWN1dG9y LyBoZWFkZXJzLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDEg LQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2lu ZG93QWdnLmMKaW5kZXggMTg4NDQ1ZDc3OWMuLjk5ODU4ZDIyZGFkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiYWNjZXNzL2h0 dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKLSNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0011-Normalize-SQL-RPR-standard-references.txt" Content-Disposition: attachment; filename="nocfbot-0011-Normalize-SQL-RPR-standard-references.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqm10 RnJvbSA1YWM4YTMzOGU2MzIwMGU4YWI4NTMxN2NmOWNkMDk1YTAzNTk2ZmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDkgTWF5IDIwMjYgMTM6NDc6NDkgKzA5MDAKU3ViamVjdDogW1BBVENIIDExLzY4XSBO b3JtYWxpemUgU1FML1JQUiBzdGFuZGFyZCByZWZlcmVuY2VzCgpNYWtlIGV2ZXJ5IHJlZmVyZW5j ZSBjaXRlIElTTy9JRUMgMTkwNzUtNSBleHBsaWNpdGx5IGFjcm9zcyBSUFIgY29kZQphbmQgcmVn cmVzcyB0ZXN0cy4gIFByZWZpeCBiYXJlICIxOTA3NS01IiAvICJTUUwgc3RhbmRhcmQiIGZvcm1z LApwaW4gU1RSMDYgdG8gaXRzIHNvdXJjZSAoNy4yLjgpLCBhbmQgd2hlcmUgYSBjbGF1c2UgaXMg bWlycm9yZWQgaW4KYm90aCBDaGFwdGVyIDQgKEZST00pIGFuZCBDaGFwdGVyIDYgKFdJTkRPVyks IGNpdGUgdGhlIENoYXB0ZXIgNgpzdWJjbGF1c2UgZmlyc3QgYmVjYXVzZSB0aGlzIGltcGxlbWVu dGF0aW9uIHRhcmdldHMgRmVhdHVyZSBSMDIwLgpEb2N1bWVudCB0aGUgY2l0YXRpb24gcG9saWN5 IGluIFJFQURNRS5ycHIuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciAgICAg ICAgICAgICAgIHwgIDggKysrKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyAg ICAgICAgICAgICAgICB8ICA1ICsrKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIu YyAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYyAgICAgICAgICAgICAgIHwgMTEgKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYyAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9iYXNlLm91dCAgICAgICAgfCAgNiArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2V4cGxhaW4ub3V0ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgfCAgNCArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9uZmEub3V0ICAgICAgICAgfCAgNCArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfYmFzZS5zcWwgICAgICAgICAgICAgfCAgNiArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9leHBsYWluLnNxbCAgICAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfaW50ZWdyYXRpb24uc3FsICAgICAgfCAgNCArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfbmZhLnNxbCAgICAgICAgICAgICAgfCAgNCArKy0tCiAxMyBmaWxlcyBjaGFuZ2VkLCAzNyBp bnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9SRUFETUUucnByIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwcgppbmRl eCA1MmJjZDc3MzkwYy4uZTY0ZWZlMGM3ZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL1JFQURNRS5ycHIKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwcgpAQCAt MzgsNiArMzgsMTIgQEAgV2hhdCBpcyBhIEZsYXQtQXJyYXkgU3RyZWFtIE5GQT8KIENoYXB0ZXIg SSAgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gT3ZlcnZpZXcKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IAorTm9ybWF0aXZlIHJlZmVyZW5jZTogSVNPL0lFQyAxOTA3NS01IChTUUwgVGVjaG5pY2FsIFJl cG9ydCwgUGFydCA1OiBSb3cKK3BhdHRlcm4gcmVjb2duaXRpb24gaW4gU1FMKS4gIFN1YmNsYXVz ZSBudW1iZXJzIGNpdGVkIHRocm91Z2hvdXQgdGhpcyBjb2RlCitiYXNlIHJlZmVyIHRvIHRoYXQg ZG9jdW1lbnQuICBXaGVyZSBDaGFwdGVycyA0IChGUk9NIGNsYXVzZSkgYW5kIDYgKFdJTkRPVwor Y2xhdXNlKSBkZXNjcmliZSBwYXJhbGxlbCBtYXRlcmlhbCwgdGhpcyBpbXBsZW1lbnRhdGlvbiBj aXRlcyB0aGUgQ2hhcHRlciA2CitzdWJjbGF1c2UgZmlyc3QgYmVjYXVzZSBpdCB0YXJnZXRzIEZl YXR1cmUgUjAyMC4KKwogUm93IFBhdHRlcm4gUmVjb2duaXRpb24gKGhlcmVhZnRlciBSUFIpIGlz IGEgZmVhdHVyZSBpbnRyb2R1Y2VkIGluIFNRTDoyMDE2CiB0aGF0IG1hdGNoZXMgcmVnZXgtYmFz ZWQgcGF0dGVybnMgYWdhaW5zdCBvcmRlcmVkIHJvdyBzZXRzLgogCkBAIC0xMDMzLDcgKzEwMzks NyBAQCBtYXRjaDoKIAogWC0zLiBJTklUSUFMIHZzIFNFRUsKIAotICBTdGFuZGFyZCBkZWZpbml0 aW9uIChzZWN0aW9uIDYuMTIpOgorICBTdGFuZGFyZCBkZWZpbml0aW9uIChJU08vSUVDIDE5MDc1 LTUgNi4xMik6CiAgIElOSVRJQUw6ICJpcyB1c2VkIHRvIGxvb2sgZm9yIGEgbWF0Y2ggd2hvc2Ug Zmlyc3Qgcm93IGlzIFIuIgogICBTRUVLOiAgICAiaXMgdXNlZCB0byBwZXJtaXQgYSBzZWFyY2gg Zm9yIHRoZSBmaXJzdCBtYXRjaCBhbnl3aGVyZQogICAgICAgICAgICBmcm9tIFIgdGhyb3VnaCB0 aGUgZW5kIG9mIHRoZSBmdWxsIHdpbmRvdyBmcmFtZS4iCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5k ZXggMWU2MTk2ZDY5NjAuLmUxY2FhN2JiNTI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC03 MzYsOCArNzM2LDkgQEAgbmZhX2Fic29yYl9jb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUpCiAgKiBvbmNlIHBlciByb3cgYnkgZXZhbHVhdGluZyBhbGwgREVGSU5FIGV4cHJlc3Npb25z LiAgTlVMTCBtZWFucyBubyBERUZJTkUKICAqIGNsYXVzZXMgZXhpc3QgKG9ubHkgcG9zc2libGUg ZHVyaW5nIGVhcmx5IGRldmVsb3BtZW50L3Rlc3RpbmcpLgogICoKLSAqIFBlciBTUUw6MjAxNiBS MDIwLCBwYXR0ZXJuIHZhcmlhYmxlcyBub3QgbGlzdGVkIGluIERFRklORSBhcmUgaW1wbGljaXRs eQotICogVFJVRSAtLSB0aGV5IG1hdGNoIGV2ZXJ5IHJvdy4gIFRoaXMgaXMgY2hlY2tlZCB2aWEg dmFySWQgPj0gbGlzdF9sZW5ndGguCisgKiBQZXIgSVNPL0lFQyAxOTA3NS01IEZlYXR1cmUgUjAy MCwgcGF0dGVybiB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiBERUZJTkUKKyAqIGFyZSBpbXBsaWNp dGx5IFRSVUUgLS0gdGhleSBtYXRjaCBldmVyeSByb3cuICBUaGlzIGlzIGNoZWNrZWQgdmlhCisg KiB2YXJJZCA+PSBsaXN0X2xlbmd0aC4KICAqLwogc3RhdGljIGJvb2wKIG5mYV9ldmFsX3Zhcl9t YXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCBlZDhiNmMzNDE0Yy4uYzY1NjgxNDYzYjMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC0xMDUwLDEwICsxMDUwLDEwIEBAIHNjYW5SUFJQ YXR0ZXJuUmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMsIGlu dCAqbnVtVmFycywKIAkJCX0KIAogCQkJLyoKLQkJCSAqIFZhcmlhYmxlIG5vdCBpbiBERUZJTkUg Y2xhdXNlIC0gdGhpcyBpcyB2YWxpZCBwZXIgU1FMIHN0YW5kYXJkLgotCQkJICogU3VjaCB2YXJp YWJsZXMgYXJlIGltcGxpY2l0bHkgVFJVRS4gQWRkIHRvIHZhck5hbWVzIHNvIHRoZXkgZ2V0Ci0J CQkgKiBhIHZhcklkID49IGRlZmluZVZhcmlhYmxlTGlzdCBsZW5ndGgsIHdoaWNoIGV4ZWN1dG9y IHRyZWF0cyBhcwotCQkJICogVFJVRS4KKwkJCSAqIFZhcmlhYmxlIG5vdCBpbiBERUZJTkUgY2xh dXNlIC0gdGhpcyBpcyB2YWxpZCBwZXIgSVNPL0lFQworCQkJICogMTkwNzUtNSBGZWF0dXJlIFIw MjAuICBTdWNoIHZhcmlhYmxlcyBhcmUgaW1wbGljaXRseSBUUlVFLiBBZGQKKwkJCSAqIHRvIHZh ck5hbWVzIHNvIHRoZXkgZ2V0IGEgdmFySWQgPj0gZGVmaW5lVmFyaWFibGVMaXN0IGxlbmd0aCwK KwkJCSAqIHdoaWNoIGV4ZWN1dG9yIHRyZWF0cyBhcyBUUlVFLgogCQkJICovCiAJCQlBc3NlcnQo Km51bVZhcnMgPCBSUFJfVkFSSURfTUFYKTsKIAkJCXZhck5hbWVzWygqbnVtVmFycykrK10gPSBu b2RlLT52YXJOYW1lOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggMTBlZGNjYjhhZmIuLjc4 YWJkYzg4Zjg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTYzMSwxMSArNjMxLDEyIEBA IHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikK IAkvKi0tLS0tLS0tLS0KIAkgKiBRdWFsaWZpZWQgcmVmZXJlbmNlcyBpbiBERUZJTkUgbmVlZCBh IHRyaS1jbGFzc2lmaWNhdGlvbjoKIAkgKgotCSAqCSAgcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZp ZXIgKGUuZy4gVVAucHJpY2UpOiB2YWxpZCBwZXIgMTkwNzUtNSA0LjE2Ci0JICoJICBidXQgbm90 IHlldCBpbXBsZW1lbnRlZCAtLSByYWlzZSBGRUFUVVJFX05PVF9TVVBQT1JURUQuCisJICoJICBw YXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllciAoZS5nLiBVUC5wcmljZSk6IHZhbGlkIHBlcgorCSAq CSAgSVNPL0lFQyAxOTA3NS01IDYuMTUgLyA0LjE2IGJ1dCBub3QgeWV0IGltcGxlbWVudGVkIC0t CisJICoJICByYWlzZSBGRUFUVVJFX05PVF9TVVBQT1JURUQuCiAJICoKLQkgKgkgIEZST00tY2xh dXNlIHJhbmdlIHZhcmlhYmxlIHF1YWxpZmllcjogcHJvaGliaXRlZCBieSAxOTA3NS01IDYuNQot CSAqCSAgLS0gcmFpc2UgU1lOVEFYX0VSUk9SLgorCSAqCSAgRlJPTS1jbGF1c2UgcmFuZ2UgdmFy aWFibGUgcXVhbGlmaWVyOiBwcm9oaWJpdGVkIGJ5CisJICoJICBJU08vSUVDIDE5MDc1LTUgNi41 IC0tIHJhaXNlIFNZTlRBWF9FUlJPUi4KIAkgKgogCSAqCSAgYW55IG90aGVyIHF1YWxpZmllciAo dHlwbywgdW5kZWZpbmVkIG5hbWUpOiBmYWxsIHRocm91Z2ggYW5kIGxldAogCSAqCSAgbm9ybWFs IGNvbHVtbiByZXNvbHV0aW9uIHByb2R1Y2UgYSBzZW5zaWJsZSBlcnJvci4KQEAgLTE5NDYsNyAr MTk0Nyw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpz dWJsaW5rKQogCQkJYnJlYWs7CiAKIAkJCS8qLS0tLS0tLS0tLQotCQkJICogWFhYIFNRTC9SUFIg KDE5MDc1LTUgNC4xOC40IC8gNi4xNy40OyBSMDEwIC8gUjAyMCkKKwkJCSAqIFhYWCBTUUwvUlBS IChJU08vSUVDIDE5MDc1LTUgNi4xNy40IC8gNC4xOC40OyBSMDIwIC8gUjAxMCkKIAkJCSAqIHBl cm1pdHMgYSBzdWJxdWVyeSBuZXN0ZWQgaW4gYSBERUZJTkUgZXhwcmVzc2lvbiBwcm92aWRlZAog CQkJICogdGhhdDoKIAkJCSAqICAgKGEpIHRoZSBzdWJxdWVyeSBkb2VzIG5vdCBpdHNlbGYgcGVy Zm9ybSByb3cgcGF0dGVybgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IGJiYTg4N2YxN2NlLi5k MmVkNmMxNDgxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtNDY3LDcgKzQ2Nyw3IEBAIHRy YW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2Ms IFdpbmRvd0RlZiAqd2luZGVmLAogICogICAgIChSUFIncyBORkEgbWF5IGV2YWx1YXRlIHRoZSBz YW1lIHJvdydzIHByZWRpY2F0ZSBtdWx0aXBsZSB0aW1lcwogICogICAgIGR1cmluZyBiYWNrdHJh Y2tpbmcsIHNvIGEgdm9sYXRpbGUgcmVzdWx0IHdvdWxkIG1ha2UgbWF0Y2hpbmcKICAqICAgICBu b24tZGV0ZXJtaW5pc3RpYykuCi0gKiAgIC0gRm9yIGVhY2ggb3V0ZXIgUlBSTmF2RXhwciAocGVy IFNRTCA1LjYuNCBuZXN0aW5nIHJ1bGVzKToKKyAqICAgLSBGb3IgZWFjaCBvdXRlciBSUFJOYXZF eHByIChwZXIgSVNPL0lFQyAxOTA3NS01IDUuNi40IG5lc3RpbmcgcnVsZXMpOgogICogICAgICog YXJnIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZQogICogICAgICog UFJFVi9ORVhUIHdyYXBwaW5nIEZJUlNUL0xBU1QgZmxhdHRlbnMgdG8gYSBjb21wb3VuZCBraW5k CiAgKiAgICAgKiBPdGhlciBuZXN0aW5ncyBhcmUgcmVqZWN0ZWQgKEZJUlNUKFBSRVYoKSksIFBS RVYoUFJFVigpKSwgLi4uKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRl eCA4NmFiYjk2YzE3Ny4uY2ZkMjY0NWJiZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0CkBAIC0xLDYgKzEsNiBAQAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBSUFIgQmFzZSBUZXN0cwotLS0g VGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIChJU08vSUVDIDE5MDc1LTU6MjAxNikK Ky0tIFRlc3RzIGZvciBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiAoSVNPL0lFQyAxOTA3NS01KQog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLQogLS0gUGFyc2VyIExheWVyOgpAQCAtMzA2NSw3ICszMDY1LDcgQEAgTElORSA2 OiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogICAgICAgICAgICAgXgogLS0gRXhwZWN0ZWQ6IFN5 bnRheCBlcnJvcgogLS0gUXVhbGlmaWVkIGNvbHVtbiByZWZlcmVuY2VzIChOT1QgU1VQUE9SVEVE KQotLS0gUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCAodmFs aWQgcGVyIFNRTCBzdGFuZGFyZCA0LjE2LCBub3QgeWV0IGltcGxlbWVudGVkKQorLS0gUGF0dGVy biB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCAodmFsaWQgcGVyIElTTy9J RUMgMTkwNzUtNSA2LjE1IC8gNC4xNiwgbm90IHlldCBpbXBsZW1lbnRlZCkKIFNFTEVDVCBDT1VO VCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApAQCAtMzEwNCw3ICszMTA0 LDcgQEAgRVJST1I6ICBERUZJTkUgdmFyaWFibGUgImIiIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4K IExJTkUgNzogICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgQi52YWwgPiAwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4g dmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImIudmFsIiBpcyBub3Qgc3VwcG9ydGVkCi0t LSBGUk9NLWNsYXVzZSByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IGFsbG93ZWQg KHByb2hpYml0ZWQgYnkgU1FMIHN0YW5kYXJkIDYuNSkKKy0tIEZST00tY2xhdXNlIHJhbmdlIHZh cmlhYmxlIHF1YWxpZmllZCBuYW1lOiBub3QgYWxsb3dlZCAocHJvaGliaXRlZCBieSBJU08vSUVD IDE5MDc1LTUgNi41KQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCiBXSU5E T1cgdyBBUyAoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4 IGM0NTE2ZDNjNzU2Li43NzA3OWQ1ZThjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQKQEAgLTIxODUsNyArMjE4NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zLjAwIGxv b3BzPTEpCiAoOSByb3dzKQogCi0tLSAoQT8pezIsM306IG1pbj0yIChTUUw6MjAxNiBTVFIwNiA9 IFNUUkUgU1RSRSkgLT4gMyBsZW5ndGgtMCBtYXRjaGVzCistLSAoQT8pezIsM306IG1pbj0yIChJ U08vSUVDIDE5MDc1LTUgNy4yLjggU1RSMDYgPSBTVFJFIFNUUkUpIC0+IDMgbGVuZ3RoLTAgbWF0 Y2hlcwogQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHlfbWF0Y2hfbWluMiBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykgQVMgcyh2KQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CmluZGV4IDkwNWJk MzUzOGRlLi43Y2JlZWQzMzQ3ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfaW50ZWdyYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2ludGVncmF0aW9uLm91dApAQCAtMTI3OCw4ICsxMjc4LDggQEAgT1JERVIgQlkgby5pZCwgci5p ZDsKIC0tIFBvc3RncmVTUUwgcmVzdHJpY3Rpb24sIHNvIHRoaXMgaXMgdGhlIG5hdHVyYWwgcGxh Y2UgdG8gZXhlcmNpc2UKIC0tICJSUFIgdW5kZXIgUmVjdXJzaXZlIFVuaW9uIikuCiAtLQotLS0g WFhYOiBXaGV0aGVyIHRoaXMgY2FzZSBmYWxscyB1bmRlciB0aGUgSVNPL0lFQyA5MDc1LTIgNC4x OC41IC8KLS0tIDYuMTcuNSBwcm9oaWJpdGlvbiBpcyBub3Qgc29tZXRoaW5nIEkgY2FuIGp1ZGdl LiAgSWYgdGhpcyBjYXNlCistLSBYWFg6IFdoZXRoZXIgdGhpcyBjYXNlIGZhbGxzIHVuZGVyIHRo ZSBJU08vSUVDIDE5MDc1LTUgNi4xNy41IC8KKy0tIDQuMTguNSBwcm9oaWJpdGlvbiBpcyBub3Qg c29tZXRoaW5nIEkgY2FuIGp1ZGdlLiAgSWYgdGhpcyBjYXNlCiAtLSBpcyBub3QgcHJvaGliaXRl ZCwgdGhlIG9wZW4gcXVlc3Rpb24gaXMgd2hldGhlciBhIHF1ZXJ5IHRoYXQKIC0tIGRvZXMgdHJp Z2dlciB0aGUgcHJvaGliaXRpb24gY2FuIGJlIGNvbnN0cnVjdGVkIGF0IGFsbC4KIC0tIFdoZXRo ZXIgdG8gcHJvaGliaXQgdGhpcyBjYXNlIGlzIGxlZnQgdG8gdGhlIGNvbW11bml0eS4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IDRjZmY3Y2ZiYmQ3Li5mZTViYjMyNGRm MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CkBAIC00MDgzLDcgKzQwODMs NyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU3RhbmRhcmQgQ2xhdXNlIDc6IEZvcm1h bCBQYXR0ZXJuIE1hdGNoaW5nIFJ1bGVzCi0tLSBJU08vSUVDIDE5MDc1LTU6MjAyMSwgQ2xhdXNl IDcKKy0tIElTTy9JRUMgMTkwNzUtNSwgQ2xhdXNlIDcKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSA3LjIu MiBBbHRlcm5hdGlvbjogZmlyc3QgYWx0ZXJuYXRpdmUgaXMgcHJlZmVycmVkCkBAIC00NDUzLDcg KzQ0NTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCiAoMyByb3dzKQogCi0tLSAoQT8pezIsM306IG1pbj0yLCBudWxsYWJsZSBpbm5lci4g IFBlciBTUUw6MjAxNiBTVFIwNiA9IChTVFJFIFNUUkUpCistLSAoQT8pezIsM306IG1pbj0yLCBu dWxsYWJsZSBpbm5lci4gIFBlciBJU08vSUVDIDE5MDc1LTUgNy4yLjggU1RSMDYgPSAoU1RSRSBT VFJFKQogLS0gaXMgdmFsaWQ6IHR3byBlbXB0eSBpdGVyYXRpb25zIHNhdGlzZnkgbWluPTIuCiAt LSBORkEgcmVwb3J0cyAzIGxlbmd0aC0wIG1hdGNoZXM7IGZpcnN0L2xhc3RfdmFsdWUgTlVMTCBv dmVyIGVtcHR5IGZyYW1lLgogV0lUSCB0ZXN0XzcyOF9taW4yIEFTICgKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9iYXNlLnNxbAppbmRleCBlOGM3MjcwNjcyMC4uZmQyODlkN2NmNjcgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfYmFzZS5zcWwKQEAgLTEsNiArMSw2IEBACiAtLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFJQUiBCYXNlIFRlc3Rz Ci0tLSBUZXN0cyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gKElTTy9JRUMgMTkwNzUtNToy MDE2KQorLS0gVGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIChJU08vSUVDIDE5MDc1 LTUpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tCiAtLSBQYXJzZXIgTGF5ZXI6CkBAIC0yMDgzLDcgKzIwODMsNyBAQCBX SU5ET1cgdyBBUyAoCiAKIC0tIFF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlcyAoTk9UIFNVUFBP UlRFRCkKIAotLS0gUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRl ZCAodmFsaWQgcGVyIFNRTCBzdGFuZGFyZCA0LjE2LCBub3QgeWV0IGltcGxlbWVudGVkKQorLS0g UGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCAodmFsaWQgcGVy IElTTy9JRUMgMTkwNzUtNSA2LjE1IC8gNC4xNiwgbm90IHlldCBpbXBsZW1lbnRlZCkKIFNFTEVD VCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApAQCAtMjExNiw3 ICsyMTE2LDcgQEAgV0lORE9XIHcgQVMgKAogKTsKIC0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVy biB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQK IAotLS0gRlJPTS1jbGF1c2UgcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBhbGxv d2VkIChwcm9oaWJpdGVkIGJ5IFNRTCBzdGFuZGFyZCA2LjUpCistLSBGUk9NLWNsYXVzZSByYW5n ZSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IGFsbG93ZWQgKHByb2hpYml0ZWQgYnkgSVNP L0lFQyAxOTA3NS01IDYuNSkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2Vycgog V0lORE9XIHcgQVMgKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxh aW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IGQzMzlh ODBhNjczLi5hNTI3NjE1ODQ5YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbApA QCAtMTIyOCw3ICsxMjI4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIEZBTFNF CiApOycpOwogCi0tLSAoQT8pezIsM306IG1pbj0yIChTUUw6MjAxNiBTVFIwNiA9IFNUUkUgU1RS RSkgLT4gMyBsZW5ndGgtMCBtYXRjaGVzCistLSAoQT8pezIsM306IG1pbj0yIChJU08vSUVDIDE5 MDc1LTUgNy4yLjggU1RSMDYgPSBTVFJFIFNUUkUpIC0+IDMgbGVuZ3RoLTAgbWF0Y2hlcwogQ1JF QVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHlfbWF0Y2hfbWluMiBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykgQVMgcyh2KQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKaW5kZXggMjliMmRiMmY3YmIuLmY0MjY3Yzc0NjQ1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKQEAgLTc5Miw4ICs3 OTIsOCBAQCBPUkRFUiBCWSBvLmlkLCByLmlkOwogLS0gUG9zdGdyZVNRTCByZXN0cmljdGlvbiwg c28gdGhpcyBpcyB0aGUgbmF0dXJhbCBwbGFjZSB0byBleGVyY2lzZQogLS0gIlJQUiB1bmRlciBS ZWN1cnNpdmUgVW5pb24iKS4KIC0tCi0tLSBYWFg6IFdoZXRoZXIgdGhpcyBjYXNlIGZhbGxzIHVu ZGVyIHRoZSBJU08vSUVDIDkwNzUtMiA0LjE4LjUgLwotLS0gNi4xNy41IHByb2hpYml0aW9uIGlz IG5vdCBzb21ldGhpbmcgSSBjYW4ganVkZ2UuICBJZiB0aGlzIGNhc2UKKy0tIFhYWDogV2hldGhl ciB0aGlzIGNhc2UgZmFsbHMgdW5kZXIgdGhlIElTTy9JRUMgMTkwNzUtNSA2LjE3LjUgLworLS0g NC4xOC41IHByb2hpYml0aW9uIGlzIG5vdCBzb21ldGhpbmcgSSBjYW4ganVkZ2UuICBJZiB0aGlz IGNhc2UKIC0tIGlzIG5vdCBwcm9oaWJpdGVkLCB0aGUgb3BlbiBxdWVzdGlvbiBpcyB3aGV0aGVy IGEgcXVlcnkgdGhhdAogLS0gZG9lcyB0cmlnZ2VyIHRoZSBwcm9oaWJpdGlvbiBjYW4gYmUgY29u c3RydWN0ZWQgYXQgYWxsLgogLS0gV2hldGhlciB0byBwcm9oaWJpdCB0aGlzIGNhc2UgaXMgbGVm dCB0byB0aGUgY29tbXVuaXR5LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X25mYS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAppbmRleCAyOWVjNGE5 ZGFjYi4uN2E1YjVjNDFiMjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9u ZmEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCkBAIC0yOTc2LDcg KzI5NzYsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU3RhbmRhcmQgQ2xhdXNlIDc6 IEZvcm1hbCBQYXR0ZXJuIE1hdGNoaW5nIFJ1bGVzCi0tLSBJU08vSUVDIDE5MDc1LTU6MjAyMSwg Q2xhdXNlIDcKKy0tIElTTy9JRUMgMTkwNzUtNSwgQ2xhdXNlIDcKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K QEAgLTMyODAsNyArMzI4MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpCiApOwogCi0tLSAoQT8pezIsM306IG1pbj0yLCBudWxsYWJsZSBpbm5lci4gIFBl ciBTUUw6MjAxNiBTVFIwNiA9IChTVFJFIFNUUkUpCistLSAoQT8pezIsM306IG1pbj0yLCBudWxs YWJsZSBpbm5lci4gIFBlciBJU08vSUVDIDE5MDc1LTUgNy4yLjggU1RSMDYgPSAoU1RSRSBTVFJF KQogLS0gaXMgdmFsaWQ6IHR3byBlbXB0eSBpdGVyYXRpb25zIHNhdGlzZnkgbWluPTIuCiAtLSBO RkEgcmVwb3J0cyAzIGxlbmd0aC0wIG1hdGNoZXM7IGZpcnN0L2xhc3RfdmFsdWUgTlVMTCBvdmVy IGVtcHR5IGZyYW1lLgogV0lUSCB0ZXN0XzcyOF9taW4yIEFTICgKLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0012-Add-rpr_integration-B7-cases-for-RPR-in-recursive.txt" Content-Disposition: attachment; filename="nocfbot-0012-Add-rpr_integration-B7-cases-for-RPR-in-recursive.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqo11 RnJvbSBlNzlmODZiYjJkZGRjMjg0NTdhZTBhZWI2NTg1ODE0NTcxMjJjZjQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDEwIE1heSAyMDI2IDEzOjUxOjQ1ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxMi82OF0g QWRkIHJwcl9pbnRlZ3JhdGlvbiBCNyBjYXNlcyBmb3IgUlBSIGluIHJlY3Vyc2l2ZSBxdWVyeQoK UmVwbGFjZSB0aGUgcHJpb3IgQjcgdGVzdCAod2hpY2ggYXNzZXJ0ZWQgdGhhdCBhbiBSUFIgd2lu ZG93IHdvcmtzCmluIHRoZSBiYXNlIGxlZyBvZiBhIHJlY3Vyc2l2ZSBDVEUpIHdpdGggdHdvIGNh c2VzIHRoZSByZWN1cnNpdmUtUlBSCnByb2hpYml0aW9uIG5lZWRzIHRvIGNvdmVyOiBXSVRIIFJF Q1VSU0lWRSB3aXRoIFJQUiBpbiB0aGUgYmFzZSBsZWcsCmFuZCBDUkVBVEUgUkVDVVJTSVZFIFZJ RVcgd2l0aCBhbiBSUFIgd2luZG93LiAgQ2l0ZSBJU08vSUVDIDE5MDc1LTUKNi4xNy41IChSMDIw KSBhbmQgNC4xOC41IChSMDEwKSwgYW5kIHRoZSBmb3JtYWwgcnVsZSBpbiBJU08vSUVDCjkwNzUt MjoyMDE2IDcuMTcgU3ludGF4IFJ1bGUgMyllKWYpLCBhbmQgZHJvcCB0aGUgZGVmZXJyZWQgWFhY CmNvbW1lbnQgdGhhdCBsZWZ0IHRoaXMgY2FzZSBvcGVuIHRvIGNvbW11bml0eSBpbnB1dC4KCkV4 cGVjdGVkIG91dHB1dCBzdGlsbCBtYXRjaGVzIHRoZSBjdXJyZW50IChwcmUtcmVqZWN0aW9uKSBi ZWhhdmlvcjsKYSBmb2xsb3ctdXAgcGF0Y2ggYWRkcyB0aGUgcmVqZWN0aW9uIGluIHBhcnNlX2N0 ZS5jIGFuZCBmbGlwcyBib3RoCnF1ZXJpZXMgdG8gRVJST1IuCi0tLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IHwgNzEgKysrKysrLS0tLS0tLS0tLS0tLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCAgICAgIHwgNDcgKysrKysr LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9u Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dAppbmRl eCA3Y2JlZWQzMzQ3ZS4uMGIwNWE4MjZhMjcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKQEAgLTEyNjksNTQgKzEyNjksMTggQEAgT1JERVIgQlkg by5pZCwgci5pZDsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0gQjcuIFJQUiArIFJlY3Vyc2l2ZSBDVEUKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gVmVyaWZ5IHRoYXQgYW4gUlBSIHdpbmRvdyBjYW4gYXBwZWFyIGluc2lkZSB0aGUgbm9uLXJl Y3Vyc2l2ZQotLS0gKGJhc2UpIGxlZyBvZiBhIHJlY3Vyc2l2ZSBDVEUuICBUaGUgcGxhbiBtdXN0 IHNob3cgdGhlIFJQUgotLS0gV2luZG93QWdnIHNpdHRpbmcgdW5kZXIgdGhlIFJlY3Vyc2l2ZSBV bmlvbiBhcyB0aGUgYmFzZS1sZWcKLS0tIGNoaWxkLCB3aXRoIHRoZSBXb3JrVGFibGUgU2NhbiBm ZWVkaW5nIHRoZSByZWN1cnNpdmUgbGVnIGFib3ZlCi0tLSBpdC4gIFRoaXMgY29uZmlybXMgdGhh dCBSUFIgb3V0cHV0IGNhbiBzZWVkIGEgcmVjdXJzaXZlIENURQotLS0gKHdpbmRvdyBmdW5jdGlv bnMgY2Fubm90IGFwcGVhciBpbiB0aGUgcmVjdXJzaXZlIGxlZyBpdHNlbGYsIGEKLS0tIFBvc3Rn cmVTUUwgcmVzdHJpY3Rpb24sIHNvIHRoaXMgaXMgdGhlIG5hdHVyYWwgcGxhY2UgdG8gZXhlcmNp c2UKLS0tICJSUFIgdW5kZXIgUmVjdXJzaXZlIFVuaW9uIikuCi0tLQotLS0gWFhYOiBXaGV0aGVy IHRoaXMgY2FzZSBmYWxscyB1bmRlciB0aGUgSVNPL0lFQyAxOTA3NS01IDYuMTcuNSAvCi0tLSA0 LjE4LjUgcHJvaGliaXRpb24gaXMgbm90IHNvbWV0aGluZyBJIGNhbiBqdWRnZS4gIElmIHRoaXMg Y2FzZQotLS0gaXMgbm90IHByb2hpYml0ZWQsIHRoZSBvcGVuIHF1ZXN0aW9uIGlzIHdoZXRoZXIg YSBxdWVyeSB0aGF0Ci0tLSBkb2VzIHRyaWdnZXIgdGhlIHByb2hpYml0aW9uIGNhbiBiZSBjb25z dHJ1Y3RlZCBhdCBhbGwuCi0tLSBXaGV0aGVyIHRvIHByb2hpYml0IHRoaXMgY2FzZSBpcyBsZWZ0 IHRvIHRoZSBjb21tdW5pdHkuCi0tLSBQbGFuOiBSZWN1cnNpdmUgVW5pb24gd2l0aCB0aGUgUlBS IFdpbmRvd0FnZyBvbiB0aGUgYmFzZSBsZWcgYW5kCi0tLSB0aGUgV29ya1RhYmxlIFNjYW4gb24g dGhlIHJlY3Vyc2l2ZSBsZWcuCi1FWFBMQUlOIChDT1NUUyBPRkYpCi1XSVRIIFJFQ1VSU0lWRSBz ZXEgQVMgKAotICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250Ci0gICAg RlJPTSBycHJfaW50ZWcKLSAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKLSAgICAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgICAgIFBB VFRFUk4gKEEgQispCi0gICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKLSAgICBV TklPTiBBTEwKLSAgICBTRUxFQ1QgaWQgKyAxMDAsIHZhbCwgY250IEZST00gc2VxIFdIRVJFIGlk IDwgMwotKQotU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTb3J0Ci0gICBTb3J0IEtleTogc2Vx LmlkCi0gICBDVEUgc2VxCi0gICAgIC0+ICBSZWN1cnNpdmUgVW5pb24KLSAgICAgICAgICAgLT4g IFdpbmRvd0FnZwotICAgICAgICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9p bnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp Ci0gICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKLSAgICAgICAgICAgICAgICAgTmF2IE1h cmsgTG9va2JhY2s6IDEKLSAgICAgICAgICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAg ICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAotICAgICAgICAgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0gICAgICAgICAgIC0+ICBXb3JrVGFibGUgU2NhbiBv biBzZXEgc2VxXzEKLSAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPCAzKQotICAgLT4gIENU RSBTY2FuIG9uIHNlcQotKDE0IHJvd3MpCi0KLS0tIFJlc3VsdDogdGhlIGJhc2UgbGVnIGNvbnRy aWJ1dGVzIHRoZSBSUFIgbWF0Y2ggY291bnRzOyB0aGUKLS0tIHJlY3Vyc2l2ZSBsZWcgcHJvcGFn YXRlcyB0aG9zZSBjb3VudHMgd2l0aCBzaGlmdGVkIGlkcy4KKy0tIFZlcmlmeSB0aGF0IFJQUiBp cyByZWplY3RlZCBpbnNpZGUgYSByZWN1cnNpdmUgcXVlcnkuCistLSBJU08vSUVDIDE5MDc1LTUg Ni4xNy41IChSMDIwKSBhbmQgNC4xOC41IChSMDEwKSBjaXRlIENSRUFURQorLS0gUkVDVVJTSVZF IFZJRVcgZXhhbXBsZXMgYW5kIHN0YXRlIHRoYXQgInJvdyBwYXR0ZXJuIG1hdGNoaW5nCistLSBp cyBwcm9oaWJpdGVkIGluIHJlY3Vyc2l2ZSBxdWVyaWVzIi4gIFRoZSBmb3JtYWwgcnVsZSBsaXZl cyBpbgorLS0gSVNPL0lFQyA5MDc1LTI6MjAxNiA3LjE3IFN5bnRheCBSdWxlIDMpZik6IGEgcG90 ZW50aWFsbHkKKy0tIHJlY3Vyc2l2ZSA8d2l0aCBsaXN0IGVsZW1lbnQ+IHNoYWxsIG5vdCBjb250 YWluIGEgPHJvdyBwYXR0ZXJuCistLSBtZWFzdXJlcz4gb3IgPHJvdyBwYXR0ZXJuIGNvbW1vbiBz eW50YXg+LiAgUGVyIDMpZSksIGV2ZXJ5CistLSA8d2l0aCBsaXN0IGVsZW1lbnQ+IHVuZGVyIFdJ VEggUkVDVVJTSVZFIGlzICJwb3RlbnRpYWxseQorLS0gcmVjdXJzaXZlIiwgc28gdGhlIHJlamVj dGlvbiBjb3ZlcnMgdGhlIGJhc2UgKG5vbi1yZWN1cnNpdmUpCistLSBsZWcgdG9vLCBub3QganVz dCB0aGUgc2VsZi1yZWZlcmVuY2luZyBsZWcuCistLSBXSVRIIFJFQ1VSU0lWRTogUlBSIGluIHRo ZSBiYXNlIGxlZyBpcyByZWplY3RlZCBldmVuIHRob3VnaCB0aGUKKy0tIGJhc2UgbGVnIG5ldmVy IHJlZmVyZW5jZXMgdGhlIHJlY3Vyc2l2ZSBDVEUgbmFtZS4KIFdJVEggUkVDVVJTSVZFIHNlcSBB UyAoCiAgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKICAgICBGUk9N IHJwcl9pbnRlZwpAQCAtMTM0NCw2ICsxMzA4LDE3IEBAIFNFTEVDVCBpZCwgdmFsLCBjbnQgRlJP TSBzZXEgT1JERVIgQlkgaWQ7CiAgMTAyIHwgIDIwIHwgICAwCiAoMTIgcm93cykKIAorLS0gQ1JF QVRFIFJFQ1VSU0lWRSBWSUVXOiByZXdyaXR0ZW4gYnkgbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo KQorLS0gaW50byBXSVRIIFJFQ1VSU0lWRSwgc28gdGhlIHNhbWUgcmVqZWN0aW9uIGFwcGxpZXMu ICBUaGlzIGlzCistLSB0aGUgZm9ybSBJU08vSUVDIDE5MDc1LTUgNi4xNy41IGNpdGVzIHZlcmJh dGltLgorQ1JFQVRFIFJFQ1VSU0lWRSBWSUVXIHJwcl9yZWN2KGlkLCB2YWwsIGNudCkgQVMKKyAg ICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CisgICAgRlJPTSBycHJfaW50ZWcKKyAg ICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAg ICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CitEUk9QIFZJRVcgcnByX3JlY3Y7CiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0CiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCmluZGV4IGY0MjY3Yzc0NjQ1Li5iYzhmNDcxMmJj YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCkBAIC03ODMsMjQg Kzc4MywxOSBAQCBPUkRFUiBCWSBvLmlkLCByLmlkOwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBCNy4gUlBSICsgUmVj dXJzaXZlIENURQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBWZXJpZnkgdGhhdCBhbiBSUFIgd2luZG93IGNhbiBhcHBl YXIgaW5zaWRlIHRoZSBub24tcmVjdXJzaXZlCi0tLSAoYmFzZSkgbGVnIG9mIGEgcmVjdXJzaXZl IENURS4gIFRoZSBwbGFuIG11c3Qgc2hvdyB0aGUgUlBSCi0tLSBXaW5kb3dBZ2cgc2l0dGluZyB1 bmRlciB0aGUgUmVjdXJzaXZlIFVuaW9uIGFzIHRoZSBiYXNlLWxlZwotLS0gY2hpbGQsIHdpdGgg dGhlIFdvcmtUYWJsZSBTY2FuIGZlZWRpbmcgdGhlIHJlY3Vyc2l2ZSBsZWcgYWJvdmUKLS0tIGl0 LiAgVGhpcyBjb25maXJtcyB0aGF0IFJQUiBvdXRwdXQgY2FuIHNlZWQgYSByZWN1cnNpdmUgQ1RF Ci0tLSAod2luZG93IGZ1bmN0aW9ucyBjYW5ub3QgYXBwZWFyIGluIHRoZSByZWN1cnNpdmUgbGVn IGl0c2VsZiwgYQotLS0gUG9zdGdyZVNRTCByZXN0cmljdGlvbiwgc28gdGhpcyBpcyB0aGUgbmF0 dXJhbCBwbGFjZSB0byBleGVyY2lzZQotLS0gIlJQUiB1bmRlciBSZWN1cnNpdmUgVW5pb24iKS4K LS0tCi0tLSBYWFg6IFdoZXRoZXIgdGhpcyBjYXNlIGZhbGxzIHVuZGVyIHRoZSBJU08vSUVDIDE5 MDc1LTUgNi4xNy41IC8KLS0tIDQuMTguNSBwcm9oaWJpdGlvbiBpcyBub3Qgc29tZXRoaW5nIEkg Y2FuIGp1ZGdlLiAgSWYgdGhpcyBjYXNlCi0tLSBpcyBub3QgcHJvaGliaXRlZCwgdGhlIG9wZW4g cXVlc3Rpb24gaXMgd2hldGhlciBhIHF1ZXJ5IHRoYXQKLS0tIGRvZXMgdHJpZ2dlciB0aGUgcHJv aGliaXRpb24gY2FuIGJlIGNvbnN0cnVjdGVkIGF0IGFsbC4KLS0tIFdoZXRoZXIgdG8gcHJvaGli aXQgdGhpcyBjYXNlIGlzIGxlZnQgdG8gdGhlIGNvbW11bml0eS4KLQotLS0gUGxhbjogUmVjdXJz aXZlIFVuaW9uIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgb24gdGhlIGJhc2UgbGVnIGFuZAotLS0g dGhlIFdvcmtUYWJsZSBTY2FuIG9uIHRoZSByZWN1cnNpdmUgbGVnLgotRVhQTEFJTiAoQ09TVFMg T0ZGKQorLS0gVmVyaWZ5IHRoYXQgUlBSIGlzIHJlamVjdGVkIGluc2lkZSBhIHJlY3Vyc2l2ZSBx dWVyeS4KKy0tIElTTy9JRUMgMTkwNzUtNSA2LjE3LjUgKFIwMjApIGFuZCA0LjE4LjUgKFIwMTAp IGNpdGUgQ1JFQVRFCistLSBSRUNVUlNJVkUgVklFVyBleGFtcGxlcyBhbmQgc3RhdGUgdGhhdCAi cm93IHBhdHRlcm4gbWF0Y2hpbmcKKy0tIGlzIHByb2hpYml0ZWQgaW4gcmVjdXJzaXZlIHF1ZXJp ZXMiLiAgVGhlIGZvcm1hbCBydWxlIGxpdmVzIGluCistLSBJU08vSUVDIDkwNzUtMjoyMDE2IDcu MTcgU3ludGF4IFJ1bGUgMylmKTogYSBwb3RlbnRpYWxseQorLS0gcmVjdXJzaXZlIDx3aXRoIGxp c3QgZWxlbWVudD4gc2hhbGwgbm90IGNvbnRhaW4gYSA8cm93IHBhdHRlcm4KKy0tIG1lYXN1cmVz PiBvciA8cm93IHBhdHRlcm4gY29tbW9uIHN5bnRheD4uICBQZXIgMyllKSwgZXZlcnkKKy0tIDx3 aXRoIGxpc3QgZWxlbWVudD4gdW5kZXIgV0lUSCBSRUNVUlNJVkUgaXMgInBvdGVudGlhbGx5Cist LSByZWN1cnNpdmUiLCBzbyB0aGUgcmVqZWN0aW9uIGNvdmVycyB0aGUgYmFzZSAobm9uLXJlY3Vy c2l2ZSkKKy0tIGxlZyB0b28sIG5vdCBqdXN0IHRoZSBzZWxmLXJlZmVyZW5jaW5nIGxlZy4KKwor LS0gV0lUSCBSRUNVUlNJVkU6IFJQUiBpbiB0aGUgYmFzZSBsZWcgaXMgcmVqZWN0ZWQgZXZlbiB0 aG91Z2ggdGhlCistLSBiYXNlIGxlZyBuZXZlciByZWZlcmVuY2VzIHRoZSByZWN1cnNpdmUgQ1RF IG5hbWUuCiBXSVRIIFJFQ1VSU0lWRSBzZXEgQVMgKAogICAgIFNFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CiAgICAgRlJPTSBycHJfaW50ZWcKQEAgLTgxMywxOSArODA4LDE3 IEBAIFdJVEggUkVDVVJTSVZFIHNlcSBBUyAoCiApCiBTRUxFQ1QgaWQsIHZhbCwgY250IEZST00g c2VxIE9SREVSIEJZIGlkOwogCi0tLSBSZXN1bHQ6IHRoZSBiYXNlIGxlZyBjb250cmlidXRlcyB0 aGUgUlBSIG1hdGNoIGNvdW50czsgdGhlCi0tLSByZWN1cnNpdmUgbGVnIHByb3BhZ2F0ZXMgdGhv c2UgY291bnRzIHdpdGggc2hpZnRlZCBpZHMuCi1XSVRIIFJFQ1VSU0lWRSBzZXEgQVMgKAotICAg IFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CistLSBDUkVBVEUgUkVDVVJT SVZFIFZJRVc6IHJld3JpdHRlbiBieSBtYWtlUmVjdXJzaXZlVmlld1NlbGVjdCgpCistLSBpbnRv IFdJVEggUkVDVVJTSVZFLCBzbyB0aGUgc2FtZSByZWplY3Rpb24gYXBwbGllcy4gIFRoaXMgaXMK Ky0tIHRoZSBmb3JtIElTTy9JRUMgMTkwNzUtNSA2LjE3LjUgY2l0ZXMgdmVyYmF0aW0uCitDUkVB VEUgUkVDVVJTSVZFIFZJRVcgcnByX3JlY3YoaWQsIHZhbCwgY250KSBBUworICAgIFNFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKICAgICBGUk9NIHJwcl9pbnRlZwogICAgIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZAogICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgUEFUVEVSTiAoQSBCKykKLSAgICAgICAgREVGSU5F IEIgQVMgdmFsID4gUFJFVih2YWwpKQotICAgIFVOSU9OIEFMTAotICAgIFNFTEVDVCBpZCArIDEw MCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCi0pCi1TRUxFQ1QgaWQsIHZhbCwgY250 IEZST00gc2VxIE9SREVSIEJZIGlkOworICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZh bCkpOworRFJPUCBWSUVXIHJwcl9yZWN2OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEI4LiBSUFIgKyBJbmNyZW1l bnRhbCBzb3J0Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0014-Enhance-README.rpr-per-Tatsuo-Ishii-s-review.txt" Content-Disposition: attachment; filename="nocfbot-0014-Enhance-README.rpr-per-Tatsuo-Ishii-s-review.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqs13 RnJvbSAwZGUyZjNmYmUzNDU3MTdiOWY5MWFhZDc5ZTlhY2UyMzk4ZTc1YzNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDEyIE1heSAyMDI2IDE1OjM4OjAzICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNC82OF0g RW5oYW5jZSBSRUFETUUucnByIHBlciBUYXRzdW8gSXNoaWkncyByZXZpZXcKCkFwcGx5IFRhdHN1 byBJc2hpaSdzIGVuaGFuY2VtZW50IHBhdGNoIG9uIHRvcCBvZiB2NDc6CgotIE1ha2UgInRhcmdl dCBhdWRpZW5jZSIgYW5kICJzY29wZSIgbW9yZSBkZXNjcmlwdGl2ZSwKICBwb2ludGluZyByZWFk ZXJzIHRvIHRoZSBTUUwgc3RhbmRhcmQgKGFuZCBPcmFjbGUvVHJpbm8KICBtYW51YWxzIGFzIGFs dGVybmF0aXZlcykKLSBTcGVsbCBvdXQgTkZBIGFuZCBBU1Qgb24gZmlyc3QgdXNlCi0gQ3Jvc3Mt cmVmZXJlbmNlIHRoZSBhYnNvcmJhYmlsaXR5IHNlY3Rpb25zIGZyb20gdGhlCiAgUlBSX0VMRU1f QUJTT1JCQUJMRV9CUkFOQ0ggZmxhZyBkZXNjcmlwdGlvbgotIExpc3QgYWRkaXRpb25hbCBXaW5k b3dBZ2dTdGF0ZSBmaWVsZHMgaW4gVi0zCiAgKG5mYVZpc2l0ZWROV29yZHMsIGRlZmluZU1hdGNo U3RhcnREZXBlbmRlbnQsCiAgbmZhTGFzdFByb2Nlc3NlZFJvdykKLSBTdGF0ZSB0aGUgd2luZG93 IGZyYW1pbmcgcnVsZXMgdGhhdCBhcHBseSB3aXRoIFJQUgotIEFkZCBhIFJlZmVyZW5jZXMgc2Vj dGlvbiAoU1FMIHN0YW5kYXJkcykKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnBy IHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MzYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIK aW5kZXggZTY0ZWZlMGM3ZmMuLjZjMmJkZGFiNDU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9SRUFETUUucnByCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIK QEAgLTIsMTEgKzIsMTUgQEAKICAgUG9zdGdyZVNRTCBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbjog RmxhdC1BcnJheSBTdHJlYW0gTkZBIEd1aWRlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSAgVGFy Z2V0IGF1ZGllbmNlOiBEZXZlbG9wZXJzIHdpdGggYSBiYXNpYyB1bmRlcnN0YW5kaW5nIG9mIHRo ZSBQb3N0Z3JlU1FMCi0gICAgICAgICAgICAgICAgICAgZXhlY3V0b3IgYW5kIHBsYW5uZXIgYXJj aGl0ZWN0dXJlCisgIFRoaXMgUkVBRE1FJ3MgdGFyZ2V0IGF1ZGllbmNlIGlzIGRldmVsb3BlcnMg d2l0aCBhIGJhc2ljCisgIHVuZGVyc3RhbmRpbmcgb2YgdGhlIFBvc3RncmVTUUwgZXhlY3V0b3Ig YW5kIHBsYW5uZXIgYXJjaGl0ZWN0dXJlLgorICBBbHNvIGl0IHdvdWxkIGJlIGJldHRlciBmb3Ig dGhlbSB0byB1bmRlcnN0YW5kIHRoZSBzcGVjaWZpY2F0aW9uIG9mCisgIHRoZSByb3cgcGF0dGVy biByZWNvZ25pdGlvbiBpbiB0aGUgU1FMIHN0YW5kYXJkIFsxXVsyXS4gSWYgeW91IGRvCisgIG5v dCBoYXZlIGFjY2VzcyB0byB0aGUgU1FMIHN0YW5kYXJkLCBPcmFjbGUncyBtYW51YWwgb3IgVHJp bm8ncworICBtYW51YWwgY2FuIGJlIGFsdGVybmF0aXZlcyBmb3IgdGhlbS4KIAotICBTY29wZTog VGhlIGVudGlyZSBwcm9jZXNzIGZyb20gUEFUVEVSTi9ERUZJTkUgY2xhdXNlIHBhcnNpbmcgdG8g TkZBCi0gICAgICAgICBydW50aW1lIGV4ZWN1dGlvbgorICBUaGlzIFJFQURNRSdzIHNjb3BlIGlz IHRoZSBlbnRpcmUgcHJvY2VzcyBmcm9tIFBBVFRFUk4vREVGSU5FIGNsYXVzZQorICBwYXJzaW5n IHRvIE5GQSBydW50aW1lIGV4ZWN1dGlvbi4KIAogICBSZWxhdGVkIGNvZGU6CiAgICAgLSBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgICAgKHBhcnNlciBwaGFzZSkKQEAgLTIz LDEwICsyNywxMSBAQAogCiBXaGF0IGlzIGEgRmxhdC1BcnJheSBTdHJlYW0gTkZBPwogCi0gIFRo ZSBORkEgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYSB0cmFkaXRpb25hbCBzdGF0ZS10 cmFuc2l0aW9uIGdyYXBoCi0gIGJ1dCBhIGZsYXQgYXJyYXkgb2YgZml4ZWQtc2l6ZSAxNi1ieXRl IGVsZW1lbnRzLiBBdCBydW50aW1lLCBpdCBwcm9jZXNzZXMKLSAgdGhlIHJvdyBzdHJlYW0gaW4g YSBmb3J3YXJkLW9ubHkgbWFubmVyLCBleHBhbmRpbmcgZXBzaWxvbiB0cmFuc2l0aW9ucwotICBl YWdlcmx5IHdpdGhvdXQgYmFja3RyYWNraW5nLgorICBUaGUgTkZBIChOb25kZXRlcm1pbmlzdGlj IEZpbml0ZSBBdXRvbWF0b24pIGluIHRoaXMgaW1wbGVtZW50YXRpb24KKyAgaXMgbm90IGEgdHJh ZGl0aW9uYWwgc3RhdGUtdHJhbnNpdGlvbiBncmFwaCBidXQgYSBmbGF0IGFycmF5IG9mCisgIGZp eGVkLXNpemUgMTYtYnl0ZSBlbGVtZW50cy4gQXQgcnVudGltZSwgaXQgcHJvY2Vzc2VzIHRoZSBy b3cgc3RyZWFtCisgIGluIGEgZm9yd2FyZC1vbmx5IG1hbm5lciwgZXhwYW5kaW5nIGVwc2lsb24g dHJhbnNpdGlvbnMgZWFnZXJseQorICB3aXRob3V0IGJhY2t0cmFja2luZy4KIAogICAtIEZsYXQt QXJyYXk6IFBhdHRlcm4gY29tcGlsZWQgaW50byBhIGZsYXQgYXJyYXksCiAgICAgICAgICAgICAg ICAgbm90IGEgZ3JhcGggKENoYXB0ZXIgSVYpCkBAIC0xMzIsMTQgKzEzNywxNCBAQCBmb2xsb3dp bmc6CiAKICAgKDMpIERFRklORSBjbGF1c2UgdHJhbnNmb3JtYXRpb24gKHRyYW5zZm9ybURlZmlu ZUNsYXVzZSkKIAotSUlJLTIuIFBBVFRFUk4gQVNUCitJSUktMi4gUEFUVEVSTiBBU1QgKEFic3Ry YWN0IFN5bnRheCBUcmVlKQogCiBUaGUgcGFyc2VyIHRyYW5zZm9ybXMgdGhlIFBBVFRFUk4gY2xh dXNlIGludG8gYW4gUlBSUGF0dGVybk5vZGUgdHJlZS4KIEVhY2ggbm9kZSBoYXMgb25lIG9mIHRo ZSBmb2xsb3dpbmcgZm91ciB0eXBlczoKIAogICBSUFJfUEFUVEVSTl9WQVIgICAgVmFyaWFibGUg cmVmZXJlbmNlLiBOYW1lIHN0b3JlZCBpbiB2YXJOYW1lIGZpZWxkLgogICBSUFJfUEFUVEVSTl9T RVEgICAgQ29uY2F0ZW5hdGlvbi4gQ2hpbGRyZW4gbm9kZSBsaXN0IGluIGNoaWxkcmVuLgotICBS UFJfUEFUVEVSTl9BTFQgICAgQWx0ZXJuYXRpb24uIEJyYW5jaCBub2RlIGxpc3QgaW4gY2hpbGRy ZW4uCisgIFJQUl9QQVRURVJOX0FMVCAgICBBbHRlcm5hdGlvbiAob3IpLiBCcmFuY2ggbm9kZSBs aXN0IGluIGNoaWxkcmVuLgogICBSUFJfUEFUVEVSTl9HUk9VUCAgR3JvdXAgKHBhcmVudGhlc2Vz KS4gQm9keSBub2RlIGxpc3QgaW4gY2hpbGRyZW4uCiAKIEFsbCBub2RlcyBoYXZlIG1pbi9tYXgg ZmllbGRzIHRvIGV4cHJlc3MgcXVhbnRpZmllcnM6CkBAIC0yNzAsOSArMjc1LDExIEBAIEVsZW1l bnQgZmxhZ3MgKDEgYnl0ZSwgYml0bWFzayk6CiAgICAgICAgIG1hdGNoZXMuIChJVi00YikKIAog ICAweDA0ICBSUFJfRUxFTV9BQlNPUkJBQkxFX0JSQU5DSCAgKFZBUiwgQkVHSU4sIEVORCwgQUxU KQotICAgICAgICBFbGVtZW50IGxpZXMgd2l0aGluIGFuIGFic29yYmFibGUgcmVnaW9uLiAgVXNl ZCBhdCBydW50aW1lCi0gICAgICAgIHRvIHRyYWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgTkZBIHN0 YXRlIGlzIGluIGFuIGFic29yYmFibGUKLSAgICAgICAgY29udGV4dC4KKyAgICAgICAgRWxlbWVu dCBsaWVzIHdpdGhpbiBhbiBhYnNvcmJhYmxlIHJlZ2lvbi4gIFVzZWQgYXQgcnVudGltZSB0bwor ICAgICAgICB0cmFjayB3aGV0aGVyIHRoZSBjdXJyZW50IE5GQSBzdGF0ZSBpcyBpbiBhbiBhYnNv cmJhYmxlCisgICAgICAgIGNvbnRleHQuIFNlZSAiSVYtNS4gQWJzb3JiYWJpbGl0eSBBbmFseXNp cyIgYW5kCisgICAgICAgICJWSUlJLTIuIFNvbHV0aW9uOiBDb250ZXh0IEFic29ycHRpb24iIGZv ciBtb3JlIGRldGFpbHMgYWJvdXQKKyAgICAgICAgYWJzb3JwdGlvbi4KIAogICAweDA4ICBSUFJf RUxFTV9BQlNPUkJBQkxFICAgICAgICAgKFZBUiwgRU5EKQogICAgICAgICBBYnNvcnB0aW9uIGp1 ZGdtZW50IHBvaW50LiAgV2hlcmUgdG8gY29tcGFyZSBjb25zZWN1dGl2ZQpAQCAtNTE0LDcgKzUy MSwxMCBAQCBWLTMuIFJQUiBGaWVsZHMgb2YgV2luZG93QWdnU3RhdGUKICAgbmZhU3RhdGVGcmVl ICAgICAgICAgICAgICAgICAgUmV1c2UgcG9vbCBmb3Igc3RhdGVzCiAgIG5mYVZhck1hdGNoZWQg ICAgICAgICAgICAgICAgIFBlci1yb3cgY2FjaGU6IHZhck1hdGNoZWRbdmFySWRdCiAgIG5mYVZp c2l0ZWRFbGVtcyAgICAgICAgICAgICAgIEJpdG1hcCBmb3IgY3ljbGUgZGV0ZWN0aW9uCisgIG5m YVZpc2l0ZWROV29yZHMgICAgICAgICAgICAgIE51bWJlciBvZiBiaXRtYXB3b3JkcyBpbiBuZmFW aXNpdGVkRWxlbXMKICAgbmZhU3RhdGVTaXplICAgICAgICAgICAgICAgICAgUHJlY29tcHV0ZWQg c2l6ZSBvZiBSUFJORkFTdGF0ZQorICBkZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50ICAgICBERUZJ TkUgdmFycyBuZWVkaW5nIHBlci1jb250ZXh0IGV2YWx1YXRpb24gKG1hdGNoX3N0YXJ0LWRlcGVu ZGVudCkKKyAgbmZhTGFzdFByb2Nlc3NlZFJvdyAgICAgICAgICAgTGFzdCByb3cgcHJvY2Vzc2Vk IGJ5IE5GQSAoLTEgPSBub25lKQogCiBNZW1vcnkgbWFuYWdlbWVudDoKIApAQCAtMTA1Myw2ICsx MDYzLDEwIEBAIFgtMy4gSU5JVElBTCB2cyBTRUVLCiAKIFgtNC4gQm91bmRlZCBGcmFtZSBIYW5k bGluZwogCisgIFdpdGggUlBSLCB0aGUgZnJhbWUgbW9kZSBpcyBhbHdheXMgUk9XUyBhbmQgdGhl IGZyYW1lIHN0YXJ0IG11c3QgYmUKKyAgQ1VSUkVOVCBST1cuIFRoZSBmcmFtZSBlbmQgY2FuIGJl IGVpdGhlciBVTkJPVU5ERUQgRk9MTE9XSU5HIG9yIG4KKyAgRk9MTE9XSU5HLgorCiAgIFdoZW4g dGhlIGZyYW1lIGlzIGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg NQogICBGT0xMT1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1JvdyByZWNlaXZlcyBoYXNMaW1pdGVkRnJh bWU9dHJ1ZSBhbmQKICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBC ZWZvcmUgdGhlIG1hdGNoIHBoYXNlLApAQCAtMTU3OSw2ICsxNTkzLDE1IEBAIEMtNy4gUEFUVEVS TiAoKEErIEIgfCBDKikrIEQpICAtLSBQZXItYnJhbmNoIGFic29ycHRpb24gaW4gQUxUCiAgIG51 bGxhYmxlLgogICBCRUdJTiBhbmQgQUxUIGdldCBBQlNPUkJBQkxFX0JSQU5DSCAob24gdGhlIHBh dGggdG8gYWJzb3JiYWJsZSBlbGVtZW50cykuCiAKKworUmVmZXJlbmNlczoKKworWzFdIElTTy9J RUMgMTkwNzUtNSBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5IC0gR3VpZGFuY2UgZm9yIHRoZSB1c2Ug b2YKKyAgICBkYXRhYmFzZSBsYW5ndWFnZSBTUUwgLSBQYXJ0IDU6IFJvdyBwYXR0ZXJuIHJlY29n bml0aW9uCisKK1syXSBJU08vSUVDIDkwNzUtMiBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5IC0gRGF0 YWJhc2UgbGFuZ3VhZ2VzIC0gU1FMIC0KKyAgICBQYXJ0IDI6IEZvdW5kYXRpb24gKFNRTC9Gb3Vu ZGF0aW9uKQorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEVuZCBvZiBkb2N1bWVudAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0015-Round-out-README.rpr-WindowAggState-field-coverag.txt" Content-Disposition: attachment; filename="nocfbot-0015-Round-out-README.rpr-WindowAggState-field-coverag.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqu14 RnJvbSBlOTg5Zjk0MDc4YjQ5NDM5MDUyYmNhZWRhMzhhZmJkNzRhMmZjMDU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDEyIE1heSAyMDI2IDE1OjQzOjQ5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNS82OF0g Um91bmQgb3V0IFJFQURNRS5ycHIgV2luZG93QWdnU3RhdGUgZmllbGQgY292ZXJhZ2UKCkZvbGxv dy11cCB0byB0aGUgcHJldmlvdXMgY29tbWl0IGFwcGx5aW5nIFRhdHN1byBJc2hpaSdzCnJldmll dy4gIFRoYXQgY29tbWl0IGFkZGVkIHRocmVlIFdpbmRvd0FnZ1N0YXRlIGZpZWxkcyB0bwpWLTMg YnV0IGxlZnQgYSBmZXcgcmVsYXRlZCBlbnRyaWVzIG91dCwgYW5kIEFwcGVuZGl4IEIncwpkaWFn cmFtIHN0aWxsIHNob3dlZCB0aGUgcHJlLXJldmlldyBmaWVsZCBsaXN0LgoKLSBBZGQgbmZhVmlz aXRlZE1pbldvcmQgYW5kIG5mYVZpc2l0ZWRNYXhXb3JkIHRvIFYtMwotIE5vdGUgdGhhdCBFWFBM QUlOIEFOQUxZWkUgaW5zdHJ1bWVudGF0aW9uIGNvdW50ZXJzIGFyZQogIG9taXR0ZWQgZnJvbSBW LTMgKHNlZSBleGVjbm9kZXMuaCkKLSBNaXJyb3IgdGhlIFYtMyBhZGRpdGlvbnMgaW4gdGhlIEFw cGVuZGl4IEIgZGlhZ3JhbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgfCAx MSArKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwcgppbmRleCA2YzJiZGRhYjQ1NS4uNmZmN2YzM2U2MmUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwcgpAQCAtNTIyLDEwICs1MjIsMTUgQEAgVi0zLiBSUFIgRmllbGRzIG9mIFdp bmRvd0FnZ1N0YXRlCiAgIG5mYVZhck1hdGNoZWQgICAgICAgICAgICAgICAgIFBlci1yb3cgY2Fj aGU6IHZhck1hdGNoZWRbdmFySWRdCiAgIG5mYVZpc2l0ZWRFbGVtcyAgICAgICAgICAgICAgIEJp dG1hcCBmb3IgY3ljbGUgZGV0ZWN0aW9uCiAgIG5mYVZpc2l0ZWROV29yZHMgICAgICAgICAgICAg IE51bWJlciBvZiBiaXRtYXB3b3JkcyBpbiBuZmFWaXNpdGVkRWxlbXMKKyAgbmZhVmlzaXRlZE1p bldvcmQgICAgICAgICAgICAgTG93ZXN0IGJpdG1hcHdvcmQgaW5kZXggdG91Y2hlZCBzaW5jZSBs YXN0IHJlc2V0CisgIG5mYVZpc2l0ZWRNYXhXb3JkICAgICAgICAgICAgIEhpZ2hlc3QgYml0bWFw d29yZCBpbmRleCB0b3VjaGVkIHNpbmNlIGxhc3QgcmVzZXQKICAgbmZhU3RhdGVTaXplICAgICAg ICAgICAgICAgICAgUHJlY29tcHV0ZWQgc2l6ZSBvZiBSUFJORkFTdGF0ZQogICBkZWZpbmVNYXRj aFN0YXJ0RGVwZW5kZW50ICAgICBERUZJTkUgdmFycyBuZWVkaW5nIHBlci1jb250ZXh0IGV2YWx1 YXRpb24gKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKICAgbmZhTGFzdFByb2Nlc3NlZFJvdyAgICAg ICAgICAgTGFzdCByb3cgcHJvY2Vzc2VkIGJ5IE5GQSAoLTEgPSBub25lKQogCisgIEVYUExBSU4g QU5BTFlaRSBpbnN0cnVtZW50YXRpb24gY291bnRlcnMgYXJlIG9taXR0ZWQgaGVyZTsgc2VlCisg IGV4ZWNub2Rlcy5oIGZvciB0aGUgZnVsbCBsaXN0LgorCiBNZW1vcnkgbWFuYWdlbWVudDoKIAog ICBTdGF0ZXMgYW5kIGNvbnRleHRzIGFyZSBtYW5hZ2VkIHRocm91Z2ggdGhlaXIgb3duIGZyZWUg bGlzdHMuCkBAIC0xNDgwLDcgKzE0ODUsMTMgQEAgQXBwZW5kaXggQi4gRGF0YSBTdHJ1Y3R1cmUg UmVsYXRpb25zaGlwIERpYWdyYW0KICAgICB8LS0tIGRlZmluZVZhcmlhYmxlTGlzdDogTGlzdDxT dHJpbmc+ICh2YXJpYWJsZSBuYW1lcywgREVGSU5FIG9yZGVyKQogICAgIHwtLS0gZGVmaW5lQ2xh dXNlTGlzdDogTGlzdDxFeHByU3RhdGU+CiAgICAgfC0tLSBuZmFWYXJNYXRjaGVkOiBib29sW10g KHBlci1yb3cgY2FjaGUpCisgICAgfC0tLSBkZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50OiBCaXRt YXBzZXQqIChtYXRjaF9zdGFydC1kZXBlbmRlbnQKKyAgICB8ICAgICAgICBERUZJTkUgdmFyczsg c2VlIFZJLTQpCiAgICAgfC0tLSBuZmFWaXNpdGVkRWxlbXM6IGJpdG1hcHdvcmQqIChjeWNsZSBk ZXRlY3Rpb24pCisgICAgfC0tLSBuZmFWaXNpdGVkTldvcmRzOiBpbnQgKHNpemUgb2YgbmZhVmlz aXRlZEVsZW1zKQorICAgIHwtLS0gbmZhVmlzaXRlZE1pbldvcmQgLyBuZmFWaXNpdGVkTWF4V29y ZDogaW50MTYKKyAgICB8ICAgICAgICAodG91Y2hlZC13b3JkIHJhbmdlIGZvciBmYXN0IHJlc2V0 KQorICAgIHwtLS0gbmZhTGFzdFByb2Nlc3NlZFJvdzogaW50NjQgKC0xID0gbm9uZSkKICAgICB8 LS0tIG5mYVN0YXRlU2l6ZTogU2l6ZSAocHJlLWNhbGN1bGF0ZWQgUlBSTkZBU3RhdGUgYWxsb2Nh dGlvbiBzaXplKQogICAgIHwtLS0gbmZhQ29udGV4dCA8LT4gbmZhQ29udGV4dFRhaWwgKGRvdWJs eS1saW5rZWQgbGlzdCkKICAgICB8ICAgKy0tLSBSUFJORkFDb250ZXh0Ci0tIAoyLjUwLjEgKEFw cGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0013-Reject-row-pattern-recognition-in-recursive-queri.txt" Content-Disposition: attachment; filename="nocfbot-0013-Reject-row-pattern-recognition-in-recursive-queri.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqq12 RnJvbSA0NzZhOGYwYTlhYTJhNWZjYTU3M2ZmNjA4ZDE2ZDNhNGQzNWIzNjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDEwIE1heSAyMDI2IDE0OjQyOjA5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxMy82OF0g UmVqZWN0IHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGluIHJlY3Vyc2l2ZSBxdWVyaWVzCgpQZXIg SVNPL0lFQyA5MDc1LTI6MjAxNiA3LjE3IFN5bnRheCBSdWxlIDMpZSlmKSwgZXZlcnkgPHdpdGgg bGlzdAplbGVtZW50PiBpbiBhIFdJVEggUkVDVVJTSVZFIGNsYXVzZSBpcyAicG90ZW50aWFsbHkg cmVjdXJzaXZlIiBhbmQKc2hhbGwgbm90IGNvbnRhaW4gYSA8cm93IHBhdHRlcm4gY29tbW9uIHN5 bnRheD4uICBJU08vSUVDIDE5MDc1LTUKNi4xNy41IChSMDIwKSBhbmQgNC4xOC41IChSMDEwKSBy ZXN0YXRlIHRoZSBwcm9oaWJpdGlvbiBmb3IgQ1JFQVRFClJFQ1VSU0lWRSBWSUVXLCB3aGljaCBt YWtlUmVjdXJzaXZlVmlld1NlbGVjdCgpIHJld3JpdGVzIHRvIFdJVEgKUkVDVVJTSVZFIHNvIHRo ZSBzYW1lIHBhdGggY2F0Y2hlcyBib3RoIGZvcm1zLgoKVGhlIHJlamVjdGlvbiBydW5zIGluIHRy YW5zZm9ybVdpdGhDbGF1c2UoKSBhZ2FpbnN0IHRoZSByYXcgcGFyc2UKdHJlZSwgYmVmb3JlIHBl ci1DVEUgYW5hbHlzaXMsIGFuZCByZXBvcnRzIHRoZSBQQVRURVJOIGtleXdvcmQKcG9zaXRpb24g dmlhIGEgbmV3IFJQQ29tbW9uU3ludGF4LmxvY2F0aW9uIGZpZWxkIGNhcHR1cmVkIGluCmdyYW0u eS4gIEZsaXBzIGJvdGggcnByX2ludGVncmF0aW9uIEI3IGNhc2VzIChhZGRlZCBpbiB0aGUKcHJl Y2VkaW5nIGNvbW1pdCkgZnJvbSByZXN1bHQgcm93cyB0byB0aGUgbmV3IGVycm9yLgotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYyAgICAgICAgICAgICAgICB8IDU3ICsrKysrKysrKysr KysrKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCB8IDIz ICsrLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsICAgICAg fCAgMSAtCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAg MSArCiA2IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IGFhNTg3ZTZhY2VkLi5hMmZhZmI3MTdjZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC0xNzU4NSw2ICsxNzU4NSw3IEBAIG9wdF9yb3dfcGF0dGVybl9za2lwX3RvIG9wdF9yb3dfcGF0 dGVybl9pbml0aWFsX29yX3NlZWsKIAkJCQluLT5pbml0aWFsID0gJDI7CiAJCQkJbi0+cnBQYXR0 ZXJuID0gKFJQUlBhdHRlcm5Ob2RlICopICQ1OwogCQkJCW4tPnJwRGVmcyA9ICQ4OworCQkJCW4t PmxvY2F0aW9uID0gQDM7CiAJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJfQogCQkJfCAvKkVNUFRZ Ki8JCXsgJCQgPSBOVUxMOyB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y3RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggY2NkZTE5OTMxOWEu LjA5NzRiNDNkMDI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC05Niw2ICs5NiwxNCBAQCBz dGF0aWMgdm9pZCBjaGVja1dlbGxGb3JtZWRSZWN1cnNpb24oQ3RlU3RhdGUgKmNzdGF0ZSk7CiBz dGF0aWMgYm9vbCBjaGVja1dlbGxGb3JtZWRSZWN1cnNpb25XYWxrZXIoTm9kZSAqbm9kZSwgQ3Rl U3RhdGUgKmNzdGF0ZSk7CiBzdGF0aWMgdm9pZCBjaGVja1dlbGxGb3JtZWRTZWxlY3RTdG10KFNl bGVjdFN0bXQgKnN0bXQsIEN0ZVN0YXRlICpjc3RhdGUpOwogCisvKiBSZWN1cnNpdmUtV0lUSCBS UFIgcmVqZWN0aW9uICovCit0eXBlZGVmIHN0cnVjdAoreworCVBhcnNlTG9jCWxvY2F0aW9uOwkJ LyogbG9jYXRpb24gb2YgZmlyc3QgUlBSIHdpbmRvdywgb3IgLTEgKi8KK30gQ29udGFpblJQUkNv bnRleHQ7CisKK3N0YXRpYyBib29sIGNvbnRhaW5fcnByX3dhbGtlcihOb2RlICpub2RlLCB2b2lk ICpjb250ZXh0KTsKKwogCiAvKgogICogdHJhbnNmb3JtV2l0aENsYXVzZSAtCkBAIC0xNjQsNiAr MTcyLDI5IEBAIHRyYW5zZm9ybVdpdGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xh dXNlICp3aXRoQ2xhdXNlKQogCQlDdGVTdGF0ZQljc3RhdGU7CiAJCWludAkJCWk7CiAKKwkJLyoK KwkJICogUGVyIElTTy9JRUMgOTA3NS0yOjIwMTYgNy4xNyBTeW50YXggUnVsZSAzKWUpZiksIGV2 ZXJ5IDx3aXRoIGxpc3QKKwkJICogZWxlbWVudD4gaW4gYSBXSVRIIFJFQ1VSU0lWRSBjbGF1c2Ug aXMgInBvdGVudGlhbGx5IHJlY3Vyc2l2ZSIgYW5kCisJCSAqIHNoYWxsIG5vdCBjb250YWluIGEg PHJvdyBwYXR0ZXJuIGNvbW1vbiBzeW50YXg+LiAgKFBvc3RncmVTUUwgZG9lcworCQkgKiBub3Qg aW1wbGVtZW50IDxyb3cgcGF0dGVybiBtZWFzdXJlcz4sIHNvIG9ubHkgdGhlIGNvbW1vbiBzeW50 YXgKKwkJICogbmVlZHMgdG8gYmUgY2hlY2tlZC4pICBJU08vSUVDIDE5MDc1LTUgNi4xNy41IChS MDIwKSBhbmQgNC4xOC41CisJCSAqIChSMDEwKSByZXN0YXRlIHRoZSBwcm9oaWJpdGlvbiBmb3Ig Q1JFQVRFIFJFQ1VSU0lWRSBWSUVXLCB3aGljaCBpcworCQkgKiByZXdyaXR0ZW4gdG8gV0lUSCBS RUNVUlNJVkUgYnkgbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoKSBhbmQgc28KKwkJICogZmxvd3Mg dGhyb3VnaCBoZXJlIGFzIHdlbGwuCisJCSAqLworCQlmb3JlYWNoKGxjLCB3aXRoQ2xhdXNlLT5j dGVzKQorCQl7CisJCQlDb21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikg bGZpcnN0KGxjKTsKKwkJCUNvbnRhaW5SUFJDb250ZXh0IGN0eDsKKworCQkJY3R4LmxvY2F0aW9u ID0gLTE7CisJCQlpZiAoY29udGFpbl9ycHJfd2Fsa2VyKGN0ZS0+Y3RlcXVlcnksICZjdHgpKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJCWVycm1zZygiY2Fubm90IHVzZSByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpbiBhIHJl Y3Vyc2l2ZSBxdWVyeSIpLAorCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3R4Lmxv Y2F0aW9uKSk7CisJCX0KKwogCQljc3RhdGUucHN0YXRlID0gcHN0YXRlOwogCQljc3RhdGUubnVt aXRlbXMgPSBsaXN0X2xlbmd0aCh3aXRoQ2xhdXNlLT5jdGVzKTsKIAkJY3N0YXRlLml0ZW1zID0g KEN0ZUl0ZW0gKikgcGFsbG9jMChjc3RhdGUubnVtaXRlbXMgKiBzaXplb2YoQ3RlSXRlbSkpOwpA QCAtMTI2OCwzICsxMjk5LDI5IEBAIGNoZWNrV2VsbEZvcm1lZFNlbGVjdFN0bXQoU2VsZWN0U3Rt dCAqc3RtdCwgQ3RlU3RhdGUgKmNzdGF0ZSkKIAkJfQogCX0KIH0KKworCisvKgorICogY29udGFp bl9ycHJfd2Fsa2VyCisgKgkgIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmF3IHBhcnNlIHRyZWUgY29u dGFpbnMgYW55IDxyb3cgcGF0dGVybiBjb21tb24KKyAqCSAgc3ludGF4PiAtLSBpLmUuLCBhbnkg V2luZG93RGVmIHdpdGggUEFUVEVSTi9ERUZJTkUgYXR0YWNoZWQuICBVc2VkCisgKgkgIGJ5IHRy YW5zZm9ybVdpdGhDbGF1c2UoKSB0byBlbmZvcmNlIElTTy9JRUMgOTA3NS0yOjIwMTYgNy4xNyBT UiAzKWYpCisgKgkgIG9uIFdJVEggUkVDVVJTSVZFIGVsZW1lbnRzLgorICovCitzdGF0aWMgYm9v bAorY29udGFpbl9ycHJfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJaWYg KG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgV2luZG93RGVm KSkKKwl7CisJCVdpbmRvd0RlZiAgKndkID0gKFdpbmRvd0RlZiAqKSBub2RlOworCisJCWlmICh3 ZC0+cnBDb21tb25TeW50YXggIT0gTlVMTCkKKwkJeworCQkJKChDb250YWluUlBSQ29udGV4dCAq KSBjb250ZXh0KS0+bG9jYXRpb24gPSB3ZC0+cnBDb21tb25TeW50YXgtPmxvY2F0aW9uOworCQkJ cmV0dXJuIHRydWU7CisJCX0KKwl9CisJcmV0dXJuIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2Vy KG5vZGUsIGNvbnRhaW5fcnByX3dhbGtlciwgY29udGV4dCk7Cit9CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggYWRlZmIxZDViYWQuLjUyMDAxODJhYTQ2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC02NDYsNiArNjQ2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUlBDb21tb25TeW50YXgKIAlSUFJQ YXR0ZXJuTm9kZSAqcnBQYXR0ZXJuOwkvKiBQQVRURVJOIGNsYXVzZSBBU1QgKi8KIAlMaXN0CSAg ICpycERlZnM7CQkJLyogcm93IHBhdHRlcm4gZGVmaW5pdGlvbnMgY2xhdXNlIChsaXN0IG9mCiAJ CQkJCQkJCSAqIFJlc1RhcmdldCkgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIFBBVFRFUk4g a2V5d29yZCBsb2NhdGlvbiwgb3IgLTEgKi8KIH0gUlBDb21tb25TeW50YXg7CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKaW5kZXggMGIwNWE4 MjZhMjcuLmI1OThlZjk1Nzc2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9pbnRlZ3JhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf aW50ZWdyYXRpb24ub3V0CkBAIC0xMjkyLDIyICsxMjkyLDkgQEAgV0lUSCBSRUNVUlNJVkUgc2Vx IEFTICgKICAgICBTRUxFQ1QgaWQgKyAxMDAsIHZhbCwgY250IEZST00gc2VxIFdIRVJFIGlkIDwg MwogKQogU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKLSBpZCAgfCB2 YWwgfCBjbnQgCi0tLS0tLSstLS0tLSstLS0tLQotICAgMSB8ICAxMCB8ICAgMgotICAgMiB8ICAy MCB8ICAgMAotICAgMyB8ICAxNSB8ICAgMgotICAgNCB8ICAyNSB8ICAgMAotICAgNSB8ICAgNSB8 ICAgMwotICAgNiB8ICAzMCB8ICAgMAotICAgNyB8ICAzNSB8ICAgMAotICAgOCB8ICAyMCB8ICAg MwotICAgOSB8ICA0MCB8ICAgMAotICAxMCB8ICA0NSB8ICAgMAotIDEwMSB8ICAxMCB8ICAgMgot IDEwMiB8ICAyMCB8ICAgMAotKDEyIHJvd3MpCi0KK0VSUk9SOiAgY2Fubm90IHVzZSByb3cgcGF0 dGVybiByZWNvZ25pdGlvbiBpbiBhIHJlY3Vyc2l2ZSBxdWVyeQorTElORSA2OiAgICAgICAgIFBB VFRFUk4gKEEgQispCisgICAgICAgICAgICAgICAgXgogLS0gQ1JFQVRFIFJFQ1VSU0lWRSBWSUVX OiByZXdyaXR0ZW4gYnkgbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoKQogLS0gaW50byBXSVRIIFJF Q1VSU0lWRSwgc28gdGhlIHNhbWUgcmVqZWN0aW9uIGFwcGxpZXMuICBUaGlzIGlzCiAtLSB0aGUg Zm9ybSBJU08vSUVDIDE5MDc1LTUgNi4xNy41IGNpdGVzIHZlcmJhdGltLgpAQCAtMTMxOCw3ICsx MzA1LDkgQEAgQ1JFQVRFIFJFQ1VSU0lWRSBWSUVXIHJwcl9yZWN2KGlkLCB2YWwsIGNudCkgQVMK ICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CiAgICAgICAgIFBBVFRFUk4gKEEgQispCiAgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSk7Ci1EUk9QIFZJRVcgcnByX3JlY3Y7CitFUlJPUjogIGNhbm5vdCB1c2Ugcm93IHBhdHRl cm4gcmVjb2duaXRpb24gaW4gYSByZWN1cnNpdmUgcXVlcnkKK0xJTkUgNjogICAgICAgICBQQVRU RVJOIChBIEIrKQorICAgICAgICAgICAgICAgIF4KIC0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQjguIFJQUiArIEluY3Jl bWVudGFsIHNvcnQKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2ludGVncmF0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5z cWwKaW5kZXggYmM4ZjQ3MTJiY2IuLjVmMzg1M2JlY2JhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9pbnRlZ3JhdGlvbi5zcWwKQEAgLTgxOCw3ICs4MTgsNiBAQCBDUkVBVEUgUkVDVVJTSVZF IFZJRVcgcnByX3JlY3YoaWQsIHZhbCwgY250KSBBUwogICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgUEFUVEVSTiAoQSBCKykK ICAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKTsKLURST1AgVklFVyBycHJfcmVj djsKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLSBCOC4gUlBSICsgSW5jcmVtZW50YWwgc29ydApkaWZmIC0tZ2l0IGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdAppbmRleCAxOTcwY2E1ZGExNC4uMjRjZjJlYjc4NjAgMTAwNjQ0Ci0tLSBhL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CkBAIC01MzIsNiArNTMyLDcgQEAgQ29uc3RyYWludAogQ29uc3RyYWludENh dGVnb3J5CiBDb25zdHJhaW50SW5mbwogQ29uc3RyYWludHNTZXRTdG10CitDb250YWluUlBSQ29u dGV4dAogQ29udHJvbERhdGEKIENvbnRyb2xGaWxlRGF0YQogQ29udkluZm8KLS0gCjIuNTAuMSAo QXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0016-Add-raw_expression_tree_walker-coverage-for-RPR-r.txt" Content-Disposition: attachment; filename="nocfbot-0016-Add-raw_expression_tree_walker-coverage-for-RPR-r.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqw15 RnJvbSBkZGY5YmJmNGQ5YTAzYjAzNzdlZjA2NTU2Y2YwZGJiYThmMTQyN2JiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI3IE1heSAyMDI2IDA3OjAyOjM4ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNi82OF0g QWRkIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyIGNvdmVyYWdlIGZvciBSUFIgcmF3CiBub2Rl cwoKV2luZG93RGVmLnJwQ29tbW9uU3ludGF4IHdhcyBub3Qgd2Fsa2VkLCBhbmQgdGhlcmUgd2Vy ZSBubyBjYXNlCmFybXMgZm9yIFRfUlBDb21tb25TeW50YXggb3IgVF9SUFJQYXR0ZXJuTm9kZS4g IFJQUiBjb3JlIHdhcwp1bmFmZmVjdGVkIC0tIGNvbnRhaW5fcnByX3dhbGtlcigpIGluIHBhcnNl X2N0ZS5jIGludGVyY2VwdHMKV2luZG93RGVmIGJlZm9yZSBkZWxlZ2F0aW5nIC0tIGJ1dCBkZWJ1 Z19yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZV90ZXN0CnNpbGVudGx5IHNraXBwZWQgdGhlc2Ugc3Vi dHJlZXMsIGxlYXZpbmcgYW55IGZ1dHVyZSByYXctbm9kZQpvbWlzc2lvbiBvbiB0aGUgUlBSIHNp ZGUgdW5kZXRlY3RlZC4KLS0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyB8IDIwICsr KysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKaW5kZXggNzM0YmIwNTU0ZmUuLjEwMWMwM2I2YWU4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYwpAQCAtNDY0MSw2ICs0NjQxLDggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxr ZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyh3ZC0+ ZW5kT2Zmc2V0KSkKIAkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsod2QtPnJwQ29tbW9u U3ludGF4KSkKKwkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKIAkJY2FzZSBUX1Jh bmdlU3Vic2VsZWN0OgpAQCAtNDg5Niw2ICs0ODk4LDI0IEBAIHJhd19leHByZXNzaW9uX3RyZWVf d2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVh azsKKwkJY2FzZSBUX1JQQ29tbW9uU3ludGF4OgorCQkJeworCQkJCVJQQ29tbW9uU3ludGF4ICpy YyA9IChSUENvbW1vblN5bnRheCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsocmMtPnJwUGF0dGVy bikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHJjLT5ycERlZnMpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfUlBSUGF0dGVybk5vZGU6CisJ CQl7CisJCQkJUlBSUGF0dGVybk5vZGUgKnJwID0gKFJQUlBhdHRlcm5Ob2RlICopIG5vZGU7CisK KwkJCQlpZiAoV0FMSyhycC0+Y2hpbGRyZW4pKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5 cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhub2RlKSk7Ci0tIAoyLjUwLjEgKEFwcGxlIEdp dC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0017-Enhance-README.rpr-per-Jian-He-s-review.txt" Content-Disposition: attachment; filename="nocfbot-0017-Enhance-README.rpr-per-Jian-He-s-review.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jqy16 RnJvbSBlMGRlMzIzYTI2YTk1ZmIyMzVjMDUzYzFhMWJiYjRkOGI4MDllM2Y3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI3IE1heSAyMDI2IDEzOjM0OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCAxNy82OF0g RW5oYW5jZSBSRUFETUUucnByIHBlciBKaWFuIEhlJ3MgcmV2aWV3CgotIEFkZCBhbiBpbnR1aXRp b24gc3VtbWFyeSBhdCB0aGUgdG9wIG9mIENoYXB0ZXIgVklJSSBuYW1pbmcKICB3aGF0IGNvbnRl eHQgYWJzb3JwdGlvbiBpcyBhbmQgdGhlIG1vbm90b25pY2l0eSBwcmluY2lwbGUKICB0aGF0IG1h a2VzIGl0IHNhZmUsIHNvIHRoZSByZWFkZXIgbWVldHMgdGhlIGNvcmUgaWRlYSBiZWZvcmUKICB0 aGUgTyhOXjIpIHByb2JsZW0gZnJhbWluZy4KLSBBZGQgYSB3b3JrZWQgUEFUVEVSTiAoQSspIHRy YWNlIGF0IHRoZSBlbmQgb2YgVklJSS0yIHRvIG1ha2UKICB0aGUgc3RhdGUvY291bnQgZG9taW5h bmNlIGNvbXBhcmlzb24gY29uY3JldGUuCi0gRXhwYW5kICJERlMiIHRvICJEZXB0aC1GaXJzdCBT ZWFyY2ggKERGUykiIGF0IGZpcnN0IG9jY3VycmVuY2UuCi0gUmVwbGFjZSB0aGUgc3RhbGUgIm5m YV9hZHZhbmNlKGluaXRpYWxBZHZhbmNlPXRydWUpIiByZWZlcmVuY2UKICBpbiBWSS0yIHdpdGgg dGhlIGN1cnJlbnQgc2lnbmF0dXJlLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5y cHIgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAzMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgYi9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnBy CmluZGV4IDZmZjdmMzNlNjJlLi42ZDQwYmQ3MGZhYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvUkVBRE1FLnJwcgorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnBy CkBAIC0zNTQsNyArMzU0LDggQEAgVGhlIGZsYWcgaXMgc2V0IG9uIGFsbCBlbGVtZW50cyB0aGF0 IGNhcnJ5IHRoZSBxdWFudGlmaWVyOgogICBTaW1wbGUgVkFSIChBKz8pOiAgICAgUlBSX0VMRU1f UkVMVUNUQU5UIG9uIHRoZSBWQVIgZWxlbWVudAogICBHcm91cCAoKC4uLikrPyk6ICAgICAgUlBS X0VMRU1fUkVMVUNUQU5UIG9uIEJFR0lOIGFuZCBFTkQgZWxlbWVudHMKIAotQXQgcnVudGltZSAo bmZhX2FkdmFuY2UpLCB0aGUgZmxhZyBjb250cm9scyBERlMgZXhwbG9yYXRpb24gb3JkZXI6CitB dCBydW50aW1lIChuZmFfYWR2YW5jZSksIHRoZSBmbGFnIGNvbnRyb2xzIERlcHRoLUZpcnN0IFNl YXJjaAorKERGUykgZXhwbG9yYXRpb24gb3JkZXI6CiAKICAgVkFSIHdpdGggcXVhbnRpZmllcjoK ICAgICBHcmVlZHk6ICAgIHByaW1hcnkgcGF0aCA9IG5leHQgKGNvbnRpbnVlKSwgY2xvbmUgPSBq dW1wIChza2lwKQpAQCAtNTgyLDcgKzU4Myw4IEBAIENyZWF0ZXMgYSBuZXcgY29udGV4dCBhbmQg cGVyZm9ybXMgdGhlIGluaXRpYWwgYWR2YW5jZS4KICAgKDIpIFNldCBtYXRjaFN0YXJ0Um93ID0g cG9zCiAgICgzKSBDcmVhdGUgaW5pdGlhbCBzdGF0ZTogZWxlbUlkeD0wIChmaXJzdCBwYXR0ZXJu IGVsZW1lbnQpLAogICAgICAgY291bnRzPWFsbCB6ZXJvCi0gICg0KSBDYWxsIG5mYV9hZHZhbmNl KGluaXRpYWxBZHZhbmNlPXRydWUpCisgICg0KSBDYWxsIG5mYV9hZHZhbmNlKCkgd2l0aCBjdXJy ZW50UG9zID0gcG9zIC0gMSAobm8gcm93IGNvbnN1bWVkCisgICAgICB5ZXQpCiAKIFRoZSBpbml0 aWFsIGFkdmFuY2UgZXhwYW5kcyBlcHNpbG9uIHRyYW5zaXRpb25zIGF0IHRoZSBiZWdpbm5pbmcg b2YKIHRoZSBwYXR0ZXJuLiBGb3IgZXhhbXBsZSwgdGhlIGluaXRpYWwgYWR2YW5jZSBmb3IgUEFU VEVSTiAoKEEgfCBCKSBDKToKQEAgLTczNyw2ICs3MzksMTUgQEAgSW1tZWRpYXRlIGFkdmFuY2Ug Zm9yIHNpbXBsZSBWQVJzOgogQ2hhcHRlciBWSUlJICBQaGFzZSAyOiBBYnNvcmIgKENvbnRleHQg QWJzb3JwdGlvbikKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAorQWJzb3JwdGlvbiBpcyB0aGUgcnVu dGltZSBvcHRpbWl6YXRpb24gdGhhdCBjb2xsYXBzZXMgY29udGV4dHMgd2hpY2gKK2hhdmUgY29u dmVyZ2VkIG9uIGlkZW50aWNhbCBmdXR1cmUgYmVoYXZpb3IuICBUd28gY29udGV4dHMgYXJlCit0 cmVhdGVkIGFzIGVxdWl2YWxlbnQgd2hlbiBvbmUncyBib29ra2VlcGluZyAoZWxlbUlkeCBhbmQg cGVyLWRlcHRoCitpdGVyYXRpb24gY291bnRzKSBpcyBkb21pbmF0ZWQgYnkgYW5vdGhlcidzOyB0 aGUgeW91bmdlciBvbmUgaXMgdGhlbgorZGlzY2FyZGVkLiAgVGhlIG9wdGltaXphdGlvbiBpcyBz YWZlIGJlY2F1c2UgcGF0dGVybiBtYXRjaGluZyBpcworbW9ub3RvbmljIC0tIGFuIGVhcmxpZXIg Y29udGV4dCdzIHJlYWNoYWJsZSBtYXRjaGVzIGFsd2F5cyBjb250YWluIGEKK2xhdGVyIGNvbnRl eHQncy4gIFRoaXMgaXMgd2hhdCByZWR1Y2VzIHRoZSBuYWl2ZSBPKE5eMikgc3RhdGUgY291bnQK K3RvIE8oTikuCisKIFZJSUktMS4gUHJvYmxlbQogCiBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRh dGlvbiwgYSBuZXcgY29udGV4dCBpcyBzdGFydGVkIGZvciBlYWNoIHJvdwpAQCAtNzYyLDYgKzc3 MywyNSBAQCBpcyBhbHJlYWR5IGNvbnRhaW5lZCB3aXRoaW4gQ29udGV4dCAxLgogCiBUaGVyZWZv cmUgQ29udGV4dCAyIGNhbiBiZSAiYWJzb3JiZWQiIGludG8gQ29udGV4dCAxLgogCitXb3JrZWQg ZXhhbXBsZSBmb3IgUEFUVEVSTiAoQSspIG92ZXIgMyByb3dzIChlYWNoIG1hdGNoZXMgQSk6CisK KyAgQWZ0ZXIgcm93IDE6CisgICAgQ3R4XzEgKHN0YXJ0ZWQgcm93IDEpOiBzdGF0ZSBhdCBBIHdp dGggY291bnRzWzBdID0gMQorCisgIEFmdGVyIHJvdyAyOgorICAgIEN0eF8xOiBzdGF0ZSBhdCBB IHdpdGggY291bnRzWzBdID0gMgorICAgIEN0eF8yIChzdGFydGVkIHJvdyAyKTogc3RhdGUgYXQg QSB3aXRoIGNvdW50c1swXSA9IDEKKyAgICAtPiBTYW1lIGVsZW1JZHg7IEN0eF8xLmNvdW50ICgy KSBkb21pbmF0ZXMgQ3R4XzIuY291bnQgKDEpLgorICAgIC0+IEN0eF8yIGFic29yYmVkLgorCisg IEFmdGVyIHJvdyAzOgorICAgIEN0eF8xOiBzdGF0ZSBhdCBBIHdpdGggY291bnRzWzBdID0gMwor ICAgIEN0eF8zIChzdGFydGVkIHJvdyAzKTogc3RhdGUgYXQgQSB3aXRoIGNvdW50c1swXSA9IDEK KyAgICAtPiBDdHhfMS5jb3VudCAoMykgZG9taW5hdGVzIEN0eF8zLmNvdW50ICgxKS4KKyAgICAt PiBDdHhfMyBhYnNvcmJlZC4KKworVG90YWwgYWN0aXZlIGNvbnRleHRzIHN0YXlzIGF0IE8oMSkg aW5zdGVhZCBvZiBncm93aW5nIHdpdGggTi4KKwogVklJSS0zLiBBYnNvcnB0aW9uIENvbmRpdGlv bnMKIAogUGxhbm5lci10aW1lIHByZXJlcXVpc2l0ZXMgKGFsbCBtdXN0IGhvbGQgZm9yIGFic29y cHRpb24gdG8gYmUgZW5hYmxlZCk6Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0019-Change-nfa_add_state_unique-signature-from-bool-t.txt" Content-Disposition: attachment; filename="nocfbot-0019-Change-nfa_add_state_unique-signature-from-bool-t.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jr218 RnJvbSBmZTkwZTA5Mjk3ZGJiOWUxNjEyM2ZmYmRkMjAwY2E3YzRiNmI5NWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI3IE1heSAyMDI2IDE0OjAyOjE5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxOS82OF0g Q2hhbmdlIG5mYV9hZGRfc3RhdGVfdW5pcXVlIHNpZ25hdHVyZSBmcm9tIGJvb2wgdG8gdm9pZAoK VGhlIHJldHVybiB2YWx1ZSBpcyBsZWZ0b3ZlciBmcm9tIGFuIGVhcmxpZXIgZGVzaWduLiAgQWxs IGZvdXIKY2FsbGVycyBpZ25vcmUgaXQsIGFuZCB0aGUgZHVwbGljYXRlLWZvdW5kIGNhc2UgaXMg ZnVsbHkgaGFuZGxlZAppbnNpZGUgdGhlIGZ1bmN0aW9uICh0aGUgbmV3IHN0YXRlIGlzIGZyZWVk IGFuZCBuZmFTdGF0ZXNNZXJnZWQgaXMKaW5jcmVtZW50ZWQpLiAgRHJvcCB0aGUgcmV0dXJuIHZh bHVlIGFuZCB1cGRhdGUgdGhlIGRvYyBjb21tZW50LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNSUFIuYyB8IDEyICsrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggMjYxZTEyMDk3 NDQuLjg4YzU5Y2YzMjc2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBS LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC02MSw3ICs2MSw3IEBA IHN0YXRpYyBSUFJORkFTdGF0ZSAqbmZhX3N0YXRlX2NyZWF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIGludDE2IGVsZW1JZHgsCiAJCQkJCQkJCQkgaW50MzIgKmNvdW50cywgYm9vbCBzb3Vy Y2VBYnNvcmJhYmxlKTsKIHN0YXRpYyBib29sIG5mYV9zdGF0ZXNfZXF1YWwoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqczEsCiAJCQkJCQkJIFJQUk5GQVN0YXRlICpzMik7 Ci1zdGF0aWMgYm9vbCBuZmFfYWRkX3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKK3N0YXRpYyB2b2lkIG5mYV9hZGRfc3RhdGVfdW5pcXVl KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJCQkg UlBSTkZBU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIG5mYV9hZGRfbWF0Y2hlZF9zdGF0ZShX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJCQkJCQkJICBS UFJORkFTdGF0ZSAqc3RhdGUsIGludDY0IG1hdGNoRW5kUm93KTsKQEAgLTMzNSwxMCArMzM1LDEw IEBAIG5mYV9zdGF0ZXNfZXF1YWwoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFTdGF0 ZSAqczEsIFJQUk5GQVN0YXRlICpzMikKICAqIG5mYV9hZGRfc3RhdGVfdW5pcXVlCiAgKgogICog QWRkIGEgc3RhdGUgdG8gY3R4LT5zdGF0ZXMgYXQgdGhlIEVORCwgb25seSBpZiBubyBkdXBsaWNh dGUgZXhpc3RzLgotICogUmV0dXJucyB0cnVlIGlmIHN0YXRlIHdhcyBhZGRlZCwgZmFsc2UgaWYg ZHVwbGljYXRlIGZvdW5kIChzdGF0ZSBpcyBmcmVlZCkuCi0gKiBFYXJsaWVyIHN0YXRlcyBoYXZl IGJldHRlciBsZXhpY2FsIG9yZGVyIChERlMgdHJhdmVyc2FsIG9yZGVyKSwgc28gZXhpc3Rpbmcg d2lucy4KKyAqIEVhcmxpZXIgc3RhdGVzIGhhdmUgYmV0dGVyIGxleGljYWwgb3JkZXIgKERGUyB0 cmF2ZXJzYWwgb3JkZXIpLCBzbyBleGlzdGluZworICogd2luczsgdGhlIG5ldyBzdGF0ZSBpcyBm cmVlZCB3aGVuIGEgZHVwbGljYXRlIGlzIGZvdW5kLgogICovCi1zdGF0aWMgYm9vbAorc3RhdGlj IHZvaWQKIG5mYV9hZGRfc3RhdGVfdW5pcXVlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBS TkZBQ29udGV4dCAqY3R4LCBSUFJORkFTdGF0ZSAqc3RhdGUpCiB7CiAJUlBSTkZBU3RhdGUgKnM7 CkBAIC0zNjUsNyArMzY1LDcgQEAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQUk5GQVN0YXRlICoKIAkJCSAqLwogCQkJ bmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKIAkJCXdpbnN0YXRlLT5uZmFTdGF0ZXNN ZXJnZWQrKzsKLQkJCXJldHVybiBmYWxzZTsKKwkJCXJldHVybjsKIAkJfQogCQl0YWlsID0gczsK IAl9CkBAIC0zNzYsOCArMzc2LDYgQEAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQUk5GQVN0YXRlICoKIAkJY3R4LT5z dGF0ZXMgPSBzdGF0ZTsKIAllbHNlCiAJCXRhaWwtPm5leHQgPSBzdGF0ZTsKLQotCXJldHVybiB0 cnVlOwogfQogCiAvKgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0020-Add-reluctant-bounded-mid-band-test-to-rpr_nfa.txt" Content-Disposition: attachment; filename="nocfbot-0020-Add-reluctant-bounded-mid-band-test-to-rpr_nfa.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jr419 RnJvbSBhMGE5ZDE1ODFlNzI4YTU2NGJiZDQ4MWYyODU0YTRhMjgyMDlhODc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI3IE1heSAyMDI2IDE0OjE1OjA5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAyMC82OF0g QWRkIHJlbHVjdGFudCBib3VuZGVkIG1pZC1iYW5kIHRlc3QgdG8gcnByX25mYQoKUEFUVEVSTiAo QXszLDV9PyBCKSBkcml2ZXMgdGhlIFZBUi1sZXZlbCBjb3VudCBpbiBuZmFfYWR2YW5jZV92YXIK dGhyb3VnaCAzLCA0LCA1IHdpdGhpbiBhIHNpbmdsZSBtYXRjaCBhdHRlbXB0IC0tIGEgYmFuZCB0 aGUKZXhpc3RpbmcgQXsxLDN9PyBCIHRlc3QgZG9lcyBub3QgZXhlcmNpc2UsIGJlY2F1c2UgQSBh bmQgQiBtYXRjaAp0aGUgc2FtZSByb3cgdGhlcmUgYW5kIGFkdmFuY2UncyBlYXJseS10ZXJtaW5h dGlvbiBwYXRoIGZyZWVzIHRoZQpsb29wIHN0YXRlIGJlZm9yZSBuZmFfYWR2YW5jZV92YXIgc2Vl cyBjb3VudCA+IDIuCgpUaGlzIGV4cGxpY2l0bHkgZXhlcmNpc2VzIHRoZSBjb3VudCA+IDIgJiYg cmVsdWN0YW50ICYmCiFpc0Fic29yYmFibGUgcGF0aCB0aGF0IGFic29yYmFiaWxpdHkgYW5hbHlz aXMgc3RydWN0dXJhbGx5CmNvbnN0cmFpbnMgKHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgZXhj bHVkZWQsIHNvIGlzQWJzb3JiYWJsZQpzdGF5cyBmYWxzZSkuCi0tLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfbmZhLm91dCB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwgICAgICB8IDI5ICsrKysrKysrKysrKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfbmZhLm91dAppbmRleCBmZTViYjMyNGRmMC4uMWY0OTRkMmRiMzQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dApAQCAtMjIzNyw2ICsyMjM3LDQ0IEBAIFdJ TkRPVyB3IEFTICgKICAgNCB8IHtCLF99IHwgICAgICAgICAgICAgfCAgICAgICAgICAKICg0IHJv d3MpCiAKKy0tIEF7Myw1fT8gQiAocmVsdWN0YW50IGJvdW5kZWQgbWlkLWJhbmQpOiB0aGUgVkFS LWxldmVsIGNvdW50IGluCistLSBuZmFfYWR2YW5jZV92YXIgY3ljbGVzIHRocm91Z2ggMywgNCwg NSB3aXRoaW4gYSBzaW5nbGUgbWF0Y2gKKy0tIGF0dGVtcHQuICBFeGVyY2lzZXMgdGhlIGNvdW50 ID4gMiAmJiByZWx1Y3RhbnQgJiYgIWlzQWJzb3JiYWJsZQorLS0gYnJhbmNoIChhYnNvcmJhYmls aXR5IGFuYWx5c2lzIGV4Y2x1ZGVzIHJlbHVjdGFudCBxdWFudGlmaWVycywgc28KKy0tIGlzQWJz b3JiYWJsZSBzdGF5cyBmYWxzZSBmb3IgQSkuCitXSVRIIHRlc3RfcmVsdWN0YW50X21pZF9iYW5k IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICg2LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFu dF9taWRfYmFuZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXszLDV9PyBCKQorICAgIERFRklORQor ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAg MSB8ICAgICAgICAgNgorICAyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAz IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0F9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICA1IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA2IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDYgcm93cykKKwogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLSBQYXRob2xvZ2ljYWwgUGF0dGVybiBSdW50aW1lIFByb3RlY3Rpb24KIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfbmZhLnNxbAppbmRleCA3YTViNWM0MWIyNC4uNzZkZmM0ZDg4YmMgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCkBAIC0xNTU0LDYgKzE1NTQsMzUgQEAgV0lORE9XIHcgQVMg KAogICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKICk7CiAKKy0tIEF7Myw1fT8gQiAocmVs dWN0YW50IGJvdW5kZWQgbWlkLWJhbmQpOiB0aGUgVkFSLWxldmVsIGNvdW50IGluCistLSBuZmFf YWR2YW5jZV92YXIgY3ljbGVzIHRocm91Z2ggMywgNCwgNSB3aXRoaW4gYSBzaW5nbGUgbWF0Y2gK Ky0tIGF0dGVtcHQuICBFeGVyY2lzZXMgdGhlIGNvdW50ID4gMiAmJiByZWx1Y3RhbnQgJiYgIWlz QWJzb3JiYWJsZQorLS0gYnJhbmNoIChhYnNvcmJhYmlsaXR5IGFuYWx5c2lzIGV4Y2x1ZGVzIHJl bHVjdGFudCBxdWFudGlmaWVycywgc28KKy0tIGlzQWJzb3JiYWJsZSBzdGF5cyBmYWxzZSBmb3Ig QSkuCitXSVRIIHRlc3RfcmVsdWN0YW50X21pZF9iYW5kIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0En XSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLAor ICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9taWRfYmFuZAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQXszLDV9PyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShm bGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBQ YXRob2xvZ2ljYWwgUGF0dGVybiBSdW50aW1lIFByb3RlY3Rpb24KIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLSAKMi41MC4x IChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0018-Clarify-execRPR.c-comments-and-tighten-an-Assert-.txt" Content-Disposition: attachment; filename="nocfbot-0018-Clarify-execRPR.c-comments-and-tighten-an-Assert-.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jr017 RnJvbSAxYTU4OTNkNWQyM2QzNzg3MDY1MTkyZmI2M2JkZWVjMTcxOTE2OWJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI3IE1heSAyMDI2IDEzOjQ0OjU1ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxOC82OF0g Q2xhcmlmeSBleGVjUlBSLmMgY29tbWVudHMgYW5kIHRpZ2h0ZW4gYW4gQXNzZXJ0IHBlcgogSmlh biBIZSdzIHJldmlldwoKLSBuZmFfYWR2YW5jZV92YXI6IGFkZCBBc3NlcnQgdGhhdCBlbGVtLT5u ZXh0IGlzIHdpdGhpbiBib3VuZHMsIGFzCiAgYW55IHJlYWNoYWJsZSBWQVIncyBuZXh0IHBvaW50 ZXIgbXVzdCBiZSBhIHZhbGlkIGluZGV4LgotIG5mYV9hZHZhbmNlOiBkb2N1bWVudCB0aGUgc3Rh dGUtPm5leHQgcmVzZXQgcG9pbnQgYXMgdGhlIGJvdW5kYXJ5CiAgY29udHJhY3QgZm9yIHRoZSBl cHNpbG9uLWV4cGFuc2lvbiBERlMsIG5hbWluZyB0aGUgb3RoZXIgbGlua2luZwogIHNpdGUgKG5m YV9hZGRfc3RhdGVfdW5pcXVlKSBhcyB0aGUgcGFpci4KLSBuZmFfYWRkX3N0YXRlX3VuaXF1ZTog YmFjay1yZWZlcmVuY2UgdGhlIGFzeW1tZXRyaWMgdmlzaXRlZC1tYXJraW5nCiAgc2NoZW1lLCB3 aG9zZSBwcmltYXJ5IGV4cGxhbmF0aW9uIHNpdHMgaW4gbmZhX2FkdmFuY2Vfc3RhdGUuCi0gbmZh X3N0YXRlc19lcXVhbDogcmV3cml0ZSB0aGUgY29tcGFyZURlcHRoIGNvbW1lbnQgdG8gZXhwbGFp biBib3RoCiAgdGhlICsxIHNsb3QgYXJpdGhtZXRpYyBhbmQgd2h5IGRlZXBlciBzbG90cyBhcmUg ZXhjbHVkZWQuCi0gbmZhX2FkdmFuY2VfYmVnaW46IHJlcGxhY2UgdGhlIG1pc2xlYWRpbmcgIkdy ZWVkeTogZW50ZXIgZmlyc3QsCiAgc2tpcCBzZWNvbmQiIGxhYmVsIHdpdGggb25lIHRoYXQgY292 ZXJzIGJvdGggZ3JlZWR5LW9wdGlvbmFsIGFuZAogIG5vbi1udWxsYWJsZSBjYXNlcy4KLSBuZmFf YWR2YW5jZV9hbHQ6IGV4cGxhaW4gd2hlbiB0aGUgZGVwdGggYnJlYWsgYWN0dWFsbHkgZmlyZXMK ICAocXVhbnRpZmllZC1ncm91cCBsYXN0IGJyYW5jaCkgYW5kIHdoeSA8PSBpcyB0aGUgY29ycmVj dCByZWxhdGlvbi4KLSBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0czogcmVmcmFtZSBhcyB0aGUg cGFydGl0aW9uLWVuZAogIGNsYXNzaWZpY2F0aW9uIHBvbGljeSBob2xkZXIsIGVudW1lcmF0aW5n IHRoZSB0aHJlZSBjb250ZXh0IHNoYXBlcwogIHRoYXQgc3Vydml2ZSBpbnRvIEZpbmFsaXplIGFu ZCBob3cgZWFjaCBpcyBoYW5kbGVkLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIu YyB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA2OCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwpp bmRleCBlMWNhYTdiYjUyOC4uMjYxZTEyMDk3NDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAg LTMxMSw5ICszMTEsMTkgQEAgbmZhX3N0YXRlc19lcXVhbChXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIFJQUk5GQVN0YXRlICpzMSwgUlBSTkZBU3RhdGUgKnMyKQogCWlmIChzMS0+ZWxlbUlkeCAh PSBzMi0+ZWxlbUlkeCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JLyogQ29tcGFyZSBjb3VudHMgdXAg dG8gY3VycmVudCBlbGVtZW50J3MgZGVwdGggKi8KKwkvKgorCSAqIENvbXBhcmUgY291bnRzIHVw IHRvIGN1cnJlbnQgZWxlbWVudCdzIGRlcHRoLiAgVHdvIHN0YXRlcyBzaGFyaW5nCisJICogZWxl bUlkeCBhcmUgZXF1aXZhbGVudCBpZmYgZXZlcnkgZW5jbG9zaW5nLW9yLWN1cnJlbnQgZGVwdGgg Y291bnQKKwkgKiBtYXRjaGVzLgorCSAqCisJICogVGhlICsxIGlzIHRoZSBzbG90IGFyaXRobWV0 aWM6IGNvbXBhcmluZyB0aHJvdWdoIGRlcHRoIE4gcmVxdWlyZXMKKwkgKiBjb3VudHNbMC4uTl0s IGkuZS4sIE4rMSBlbnRyaWVzLiAgRGVlcGVyIHNsb3RzIChjb3VudHNbZF0gd2l0aCBkID4KKwkg KiBlbGVtLT5kZXB0aCkgYXJlIGV4Y2x1ZGVkIGJlY2F1c2UgdGhleSBob2xkIHNjcmF0Y2ggc3Rh dGUgZnJvbSBpbm5lcgorCSAqIGdyb3VwcyB0aGF0IGdldHMgemVyb2VkIG9uIHJlLWVudHJ5IChz ZWUgRU5EIGxvb3AtYmFjayBpbgorCSAqIG5mYV9hZHZhbmNlX2VuZCksIGFuZCBzbyBtdXN0IG5v dCBwYXJ0aWNpcGF0ZSBpbiBlcXVpdmFsZW5jZSBqdWRnbWVudC4KKwkgKi8KIAllbGVtID0gJnBh dHRlcm4tPmVsZW1lbnRzW3MxLT5lbGVtSWR4XTsKLQljb21wYXJlRGVwdGggPSBlbGVtLT5kZXB0 aCArIDE7IC8qIGRlcHRoIDAgbmVlZHMgMSBjb3VudCwgZXRjLiAqLworCWNvbXBhcmVEZXB0aCA9 IGVsZW0tPmRlcHRoICsgMTsKIAogCWlmIChtZW1jbXAoczEtPmNvdW50cywgczItPmNvdW50cywg c2l6ZW9mKGludDMyKSAqIGNvbXBhcmVEZXB0aCkgIT0gMCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAt MzM0LDcgKzM0NCwxMiBAQCBuZmFfYWRkX3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgUlBSTkZBU3RhdGUgKgogCVJQUk5GQVN0YXRlICpz OwogCVJQUk5GQVN0YXRlICp0YWlsID0gTlVMTDsKIAotCS8qIE1hcmsgVkFSIGluIHZpc2l0ZWQg YmVmb3JlIGR1cGxpY2F0ZSBjaGVjayB0byBwcmV2ZW50IERGUyBsb29wcyAqLworCS8qCisJICog TWFyayBWQVIgaW4gdmlzaXRlZCBiZWZvcmUgZHVwbGljYXRlIGNoZWNrIHRvIHByZXZlbnQgREZT IGxvb3BzLiBUaGlzCisJICogaXMgdGhlIGRlZmVycmVkIGhhbGYgb2YgdGhlIGFzeW1tZXRyaWMg dmlzaXRlZC1tYXJraW5nIHNjaGVtZTsgc2VlCisJICogbmZhX2FkdmFuY2Vfc3RhdGUgZm9yIHRo ZSBub24tVkFSIChFTkQvQUxUL0JFR0lOL0ZJTikgaGFsZiBhbmQgdGhlCisJICogcmF0aW9uYWxl IGZvciB0aGUgYXN5bW1ldHJ5LgorCSAqLwogCW5mYV9tYXJrX3Zpc2l0ZWQod2luc3RhdGUsIHN0 YXRlLT5lbGVtSWR4KTsKIAogCS8qIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAq LwpAQCAtOTUwLDcgKzk2NSwxNiBAQCBuZmFfYWR2YW5jZV9hbHQoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCVJQUlBhdHRlcm5FbGVtZW50ICphbHRFbGVt ID0gJmVsZW1lbnRzW2FsdElkeF07CiAJCVJQUk5GQVN0YXRlICpuZXdTdGF0ZTsKIAotCQkvKiBT dG9wIGlmIGVsZW1lbnQgaXMgb3V0c2lkZSBBTFQgc2NvcGUgKG5vdCBhIGJyYW5jaCkgKi8KKwkJ LyoKKwkJICogU3RvcCBpZiBlbGVtZW50IGlzIG91dHNpZGUgQUxUIHNjb3BlIChub3QgYSBicmFu Y2gpLiAgVGhlIGNoZWNrCisJCSAqIGZpcmVzIHdoZW4gdGhlIGxhc3QgYnJhbmNoIGlzIGEgcXVh bnRpZmllZCBncm91cCB3aG9zZSBCRUdJTi5qdW1wCisJCSAqIChzZXQgYnkgZmlsbFJQUlBhdHRl cm5Hcm91cCkgaXMgcHJlc2VydmVkIC0tIG5vdCBvdmVycmlkZGVuIGJ5CisJCSAqIGZpbGxSUFJQ YXR0ZXJuQWx0LCB3aGljaCBvbmx5IGxpbmtzIG5vbi1sYXN0IGJyYW5jaCBoZWFkcyAtLSBhbmQK KwkJICogbGVhZHMgdG8gYSBwb3N0LUFMVCBlbGVtZW50LiAgT3RoZXIgYnJhbmNoIHNoYXBlcyB0 ZXJtaW5hdGUgdGhlCisJCSAqIHdhbGsgZWFybGllciB2aWEgYWx0SWR4ID0gUlBSX0VMRU1JRFhf SU5WQUxJRC4gIFVzZSA8PSwgbm90IDw6IHRoZQorCQkgKiBwb3N0LUFMVCBlbGVtZW50IG1heSBz aXQgYXQgdGhlIHNhbWUgZGVwdGggYXMgdGhlIEFMVCB3aGVuIHRoZSBBTFQKKwkJICogaGFzIGEg c2libGluZyBhdCB0aGF0IGxldmVsLgorCQkgKi8KIAkJaWYgKGFsdEVsZW0tPmRlcHRoIDw9IGVs ZW0tPmRlcHRoKQogCQkJYnJlYWs7CiAKQEAgLTEwMTYsNyArMTA0MCwxMiBAQCBuZmFfYWR2YW5j ZV9iZWdpbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAl9 CiAJZWxzZQogCXsKLQkJLyogR3JlZWR5OiBlbnRlciBmaXJzdCwgc2tpcCBzZWNvbmQgKi8KKwkJ LyoKKwkJICogR3JlZWR5LW9yLW5vbi1udWxsYWJsZTogcm91dGUgdG8gdGhlIGZpcnN0IGNoaWxk LiAgRm9yIG9wdGlvbmFsCisJCSAqIGdyb3VwcyAoc2tpcFN0YXRlICE9IE5VTEwsIGdyZWVkeSBt aW49MCkgYWRkaXRpb25hbGx5IGNyZWF0ZSB0aGUKKwkJICogc2tpcCBwYXRoOyBmb3Igbm9uLW51 bGxhYmxlIGdyb3VwcyAoc2tpcFN0YXRlID09IE5VTEwsIG1pbj4wKSB0aGUKKwkJICogc2tpcC1w YXRoIGFjdGlvbiBpcyBzdXBwcmVzc2VkIGJ5IHRoZSBndWFyZCBiZWxvdy4KKwkJICovCiAJCXN0 YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKIAkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUs IGN0eCwgc3RhdGUsCiAJCQkJCQkgICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQ b3MpOwpAQCAtMTIwNSw2ICsxMjM0LDkgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCS8qIEFmdGVyIGEgc3VjY2Vzc2Z1bCBt YXRjaCwgY291bnQgPj0gMSwgc28gYXQgbGVhc3Qgb25lIG11c3QgYmUgdHJ1ZSAqLwogCUFzc2Vy dChjYW5Mb29wIHx8IGNhbkV4aXQpOwogCisJLyogZWxlbS0+bmV4dCBtdXN0IGJlIGEgdmFsaWQg aW5kZXggZm9yIGFueSByZWFjaGFibGUgVkFSICovCisJQXNzZXJ0KGVsZW0tPm5leHQgPj0gMCAm JiBlbGVtLT5uZXh0IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpOworCiAJaWYgKGNhbkxvb3AgJiYg Y2FuRXhpdCkKIAl7CiAJCS8qCkBAIC0xNDI4LDYgKzE0NjAsMTUgQEAgbmZhX2FkdmFuY2UoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIGludDY0IGN1cnJlbnRQ b3MpCiAKIAkJc3RhdGUgPSBzdGF0ZXM7CiAJCXN0YXRlcyA9IHN0YXRlcy0+bmV4dDsKKworCQkv KgorCQkgKiBCb3VuZGFyeSBjb250cmFjdDogc3RhdGUtPm5leHQgaXMgcmVzZXQgdG8gTlVMTCBo ZXJlLCBiZWZvcmUKKwkJICogY3Jvc3NpbmcgaW50byBuZmFfYWR2YW5jZV9zdGF0ZSdzIGVwc2ls b24tZXhwYW5zaW9uIERGUy4gIFRoZSBpbm5lcgorCQkgKiBicmFuY2hlcyAobmZhX2FkdmFuY2Vf dmFyLCBuZmFfYWR2YW5jZV9iZWdpbi9lbmQvYWx0KSB0cmVhdAorCQkgKiBzdGF0ZS0+bmV4dCBh cyBhbHJlYWR5LU5VTEwgYW5kIGRvbid0IHJlc2V0IGl0IHRoZW1zZWx2ZXM7IHRoZQorCQkgKiBv dGhlciBsaW5raW5nIHNpdGUgaXMgbmZhX2FkZF9zdGF0ZV91bmlxdWUsIHdoaWNoIHNldHMgaXQg d2hlbgorCQkgKiBhcHBlbmRpbmcgdG8gY3R4LT5zdGF0ZXMuCisJCSAqLwogCQlzdGF0ZS0+bmV4 dCA9IE5VTEw7CiAKIAkJbmZhX2FkdmFuY2Vfc3RhdGUod2luc3RhdGUsIGN0eCwgc3RhdGUsIGN1 cnJlbnRQb3MpOwpAQCAtMTc3OSw4ICsxODIwLDI4IEBAIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRl eHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCkK IC8qCiAgKiBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cwogICoKLSAqIEZpbmFsaXplIGFsbCBh Y3RpdmUgY29udGV4dHMgd2hlbiBwYXJ0aXRpb24gZW5kcy4KLSAqIE1hdGNoIHdpdGggTlVMTCB0 byBmb3JjZSBtaXNtYXRjaCwgdGhlbiBhZHZhbmNlIHRvIHByb2Nlc3MgZXBzaWxvbiB0cmFuc2l0 aW9ucy4KKyAqIFBhcnRpdGlvbi1lbmQgY2xhc3NpZmljYXRpb24gcG9saWN5OiBraWxsIGFueSBW QVIgc3RhdGVzIHN0aWxsIHB1cnN1aW5nCisgKiB3aGVuIHJvd3MgcnVuIG91dCwgc28gY2xlYW51 cCBzZWVzIGEgdW5pZm9ybSBjdHgtPnN0YXRlcyA9PSBOVUxMIGFjcm9zcworICogZXZlcnkgY29u dGV4dC4gIEJ5IHRoZSB0aW1lIHRoaXMgcnVucywgYWxsIGdlbnVpbmUgRklOIHJlYWNoZXMgaGF2 ZQorICogYWxyZWFkeSBiZWVuIHJlY29yZGVkIGluLWZsaWdodDsgdGhyZWUgc2hhcGVzIHN1cnZp dmUgaGVyZToKKyAqCisgKiAgIC0gUHVyZSBwdXJzdWl0IChtYXRjaGVkU3RhdGUgPT0gTlVMTCk6 IFZBUiBzdGF0ZXMgd2FpdGluZyBmb3IgaW5wdXQKKyAqICAgICB0aGF0IG5ldmVyIGFycml2ZXMg KGUuZy4sIEErIEIgbWlkLXBhdHRlcm4gYXQgcGFydGl0aW9uIGVuZCkuCisgKiAgIC0gRW1wdHkt bWF0Y2ggY2FuZGlkYXRlICsgcHVyc3VpdCAobWF0Y2hlZFN0YXRlICE9IE5VTEwsCisgKiAgICAg bWF0Y2hFbmRSb3cgPCBtYXRjaFN0YXJ0Um93KTogaW5pdGlhbC1hZHZhbmNlIEZJTi12aWEtc2tp cCByZWNvcmRlZAorICogICAgIGFuIGVtcHR5IG1hdGNoIHdoaWxlIFZBUiBzdGF0ZXMgYXJlIHN0 aWxsIGNoYXNpbmcgYSBsb25nZXIgb25lCisgKiAgICAgKGUuZy4sIGdyZWVkeSBBKikuCisgKiAg IC0gUmVhbCBtYXRjaCArIHB1cnN1aXQgKG1hdGNoZWRTdGF0ZSAhPSBOVUxMLAorICogICAgIG1h dGNoRW5kUm93ID49IG1hdGNoU3RhcnRSb3cpOiBhIG1hdGNoIGhhcyBiZWVuIHJlY29yZGVkIGFu ZCBWQVIKKyAqICAgICBzdGF0ZXMgYXJlIHN0aWxsIGxvb3BpbmcgZm9yIGEgbG9uZ2VyIG9uZS4K KyAqCisgKiBLaWxsaW5nIHRoZSBWQVIgcmVjbGFzc2lmaWVzIHRoZSBmaXJzdCB0d28gYXMgZmFp bHVyZXMgaW4gY2xlYW51cAorICogKG90aGVyd2lzZSB0aGV5IGxpbmdlciB3aXRob3V0IGNvbnRy aWJ1dGluZyB0byBzdGF0cykuICBUaGUgdGhpcmQgaXMKKyAqIHN0YXQtbmV1dHJhbCAtLSBjbGVh bnVwIHNraXBzIGl0IGVpdGhlciB3YXkgLS0gYnV0IGdvZXMgdGhyb3VnaCB0aGUKKyAqIHNhbWUg dW5pZm9ybSBwYXRoIHNvIHBhcnRpdGlvbi1lbmQgY2xhc3NpZmljYXRpb24gc3RheXMgY2VudHJh bGl6ZWQuCisgKgorICogSW1wbGVtZW50YXRpb246IG5mYV9tYXRjaCB3aXRoIE5VTEwgZm9yY2Vz IFZBUiBtaXNtYXRjaDsgbmZhX2FkdmFuY2UKKyAqIHRoZW4gZHJhaW5zIGFueSByZW1haW5pbmcg ZXBzaWxvbiB0cmFuc2l0aW9ucy4KICAqLwogdm9pZAogRXhlY1JQUkZpbmFsaXplQWxsQ29udGV4 dHMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBsYXN0UG9zKQotLSAKMi41MC4xIChB cHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0021-Define-RPR-absorption-terminology-in-README.rpr-p.txt" Content-Disposition: attachment; filename="nocfbot-0021-Define-RPR-absorption-terminology-in-README.rpr-p.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jr620 RnJvbSBkNzRlZTFkMmEyYWQ4NWRjYjMxOThmMTMzNTJkNGRjZjIzMWUzYzM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDI5IE1heSAyMDI2IDE3OjQ1OjEzICswOTAwClN1YmplY3Q6IFtQQVRDSCAyMS82OF0g RGVmaW5lIFJQUiBhYnNvcnB0aW9uIHRlcm1pbm9sb2d5IGluIFJFQURNRS5ycHIgcGVyCiBKaWFu IEhlJ3MgcmV2aWV3CgotIERlZmluZSB0aGUgIm1hdGNoX3N0YXJ0IGRlcC4iIGNvbHVtbiB2YWx1 ZXMgKG5vbmUsIGRpcmVjdCwKICBib3VuZGFyeSBjaGVjaykgaW4gVklJSS0zOyB0aGUgdGFibGUg bGlzdGVkIHRoZW0gd2l0aG91dCBzYXlpbmcKICB3aGF0ICJkaXJlY3QiIHZlcnN1cyAiYm91bmRh cnkgY2hlY2siIGFjdHVhbGx5IG1lYW4uCi0gRml4IHRoZSAiYm91bmRhcnkgY2hrIiB0eXBvIGlu IHRoYXQgdGFibGUgdG8gImJvdW5kYXJ5IGNoZWNrIi4KLSBOYW1lIHRoZSBjb3ZlciBjb25kaXRp b24gImNvdW50LWRvbWluYW5jZSIgYW5kIHNwZWxsIG91dCB0aGUKICBjb21wYXJpc29uLCBsaW5r aW5nIGJhY2sgdG8gdGhlIGNvdW50LWRvbWluYW5jZSByZWZlcmVuY2UgaW4KICBWSUlJLTMoYyku Ci0gUmVuYW1lIHRoZSBwcm9zZSB0ZXJtICJtYXRjaF9zdGFydC1kZXBlbmRlbnQiIHRvCiAgIm1h dGNoX3N0YXJ0X2RlcGVuZGVudCIgdG8gbWF0Y2ggdGhlIGRlZmluZU1hdGNoU3RhcnREZXBlbmRl bnQKICBpZGVudGlmaWVyLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgfCAz NyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL1JFQURNRS5ycHIgYi9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByCmluZGV4 IDZkNDBiZDcwZmFhLi4xZDIxMTI0NWE1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwcgorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByCkBAIC01 MjYsNyArNTI2LDcgQEAgVi0zLiBSUFIgRmllbGRzIG9mIFdpbmRvd0FnZ1N0YXRlCiAgIG5mYVZp c2l0ZWRNaW5Xb3JkICAgICAgICAgICAgIExvd2VzdCBiaXRtYXB3b3JkIGluZGV4IHRvdWNoZWQg c2luY2UgbGFzdCByZXNldAogICBuZmFWaXNpdGVkTWF4V29yZCAgICAgICAgICAgICBIaWdoZXN0 IGJpdG1hcHdvcmQgaW5kZXggdG91Y2hlZCBzaW5jZSBsYXN0IHJlc2V0CiAgIG5mYVN0YXRlU2l6 ZSAgICAgICAgICAgICAgICAgIFByZWNvbXB1dGVkIHNpemUgb2YgUlBSTkZBU3RhdGUKLSAgZGVm aW5lTWF0Y2hTdGFydERlcGVuZGVudCAgICAgREVGSU5FIHZhcnMgbmVlZGluZyBwZXItY29udGV4 dCBldmFsdWF0aW9uIChtYXRjaF9zdGFydC1kZXBlbmRlbnQpCisgIGRlZmluZU1hdGNoU3RhcnRE ZXBlbmRlbnQgICAgIERFRklORSB2YXJzIG5lZWRpbmcgcGVyLWNvbnRleHQgZXZhbHVhdGlvbiAo bWF0Y2hfc3RhcnRfZGVwZW5kZW50KQogICBuZmFMYXN0UHJvY2Vzc2VkUm93ICAgICAgICAgICBM YXN0IHJvdyBwcm9jZXNzZWQgYnkgTkZBICgtMSA9IG5vbmUpCiAKICAgRVhQTEFJTiBBTkFMWVpF IGluc3RydW1lbnRhdGlvbiBjb3VudGVycyBhcmUgb21pdHRlZCBoZXJlOyBzZWUKQEAgLTYzMSw3 ICs2MzEsNyBAQCB0aGUgc2FtZSByb3cuCiAKIFRoZSB2YXJNYXRjaGVkIGFycmF5IGlzIHJlZmVy ZW5jZWQgbGF0ZXIgaW4gUGhhc2UgMSAoTWF0Y2gpLgogCi1WSS00LiBQZXItQ29udGV4dCBSZS1l dmFsdWF0aW9uIChtYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzKQorVkktNC4gUGVyLUNv bnRleHQgUmUtZXZhbHVhdGlvbiAobWF0Y2hfc3RhcnRfZGVwZW5kZW50IHZhcmlhYmxlcykKIAog REVGSU5FIHZhcmlhYmxlcyB0aGF0IGRlcGVuZCBvbiBtYXRjaF9zdGFydCAodGhvc2UgY29udGFp bmluZyBGSVJTVCwKIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVY VF9GSVJTVC9QUkVWX0xBU1QvTkVYVF9MQVNUKQpAQCAtODAxLDcgKzgwMSw3IEBAIFBsYW5uZXIt dGltZSBwcmVyZXF1aXNpdGVzIChhbGwgbXVzdCBob2xkIGZvciBhYnNvcnB0aW9uIHRvIGJlIGVu YWJsZWQpOgogICAoYikgVW5ib3VuZGVkIGZyYW1lIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRAogICAgICAgRk9MTE9XSU5HKS4gIExpbWl0ZWQgZnJhbWVzIGFwcGx5IGRp ZmZlcmVudGx5IHRvIGVhY2ggY29udGV4dCwKICAgICAgIGJyZWFraW5nIHRoZSBtb25vdG9uaWNp dHkgcHJpbmNpcGxlLgotICAoYykgTm8gbWF0Y2hfc3RhcnQtZGVwZW5kZW50IG5hdmlnYXRpb24g aW4gREVGSU5FLgorICAoYykgTm8gbWF0Y2hfc3RhcnRfZGVwZW5kZW50IG5hdmlnYXRpb24gaW4g REVGSU5FLgogCiAgICAgICBNZWNoYW5pc206IGVhY2ggY29udGV4dCBoYXMgYSBkaWZmZXJlbnQg bWF0Y2hTdGFydFJvdywgc28gRklSU1QKICAgICAgIHJlc29sdmVzIHRvIGEgZGlmZmVyZW50IHJv dyBmb3IgZWFjaCBjb250ZXh0IGF0IHRoZSBzYW1lCkBAIC04MjAsNyArODIwLDI3IEBAIFBsYW5u ZXItdGltZSBwcmVyZXF1aXNpdGVzIChhbGwgbXVzdCBob2xkIGZvciBhYnNvcnB0aW9uIHRvIGJl IGVuYWJsZWQpOgogICAgICAgRklSU1QgKGFueSkgICAgICAgICAgICAgICAgICAgICBkaXJlY3Qg ICAgICAgICAgICB1bnNhZmUKICAgICAgIENvbXBvdW5kIChpbm5lciBGSVJTVCkgICAgICAgICAg ZGlyZWN0ICAgICAgICAgICAgdW5zYWZlCiAgICAgICBDb21wb3VuZCAoaW5uZXIgTEFTVCwgbm8g b2ZmLikgIG5vbmUgICAgICAgICAgICAgIHNhZmUKLSAgICAgIENvbXBvdW5kIChpbm5lciBMQVNU LCB3L29mZi4pICAgYm91bmRhcnkgY2hrICAgICAgdW5zYWZlCisgICAgICBDb21wb3VuZCAoaW5u ZXIgTEFTVCwgdy9vZmYuKSAgIGJvdW5kYXJ5IGNoZWNrICAgIHVuc2FmZQorCisgIFRoZSAibWF0 Y2hfc3RhcnQgZGVwLiIgY29sdW1uIGNsYXNzaWZpZXMgaG93IHRoZSBuYXZpZ2F0aW9uIHRpZXMg YQorICBERUZJTkUgcmVzdWx0IHRvIHRoZSBjb250ZXh0J3MgbWF0Y2hTdGFydFJvdzoKKworICAg IG5vbmUgICAgICAgICAgICBJbmRlcGVuZGVudCBvZiBtYXRjaFN0YXJ0Um93LiAgVGhlIHJlc3Vs dCBkZXBlbmRzCisgICAgICAgICAgICAgICAgICAgIG9ubHkgb24gY3VycmVudHBvcyAob3IgYSBm aXhlZCBvZmZzZXQgZnJvbSBpdCksIHNvCisgICAgICAgICAgICAgICAgICAgIGV2ZXJ5IGNvbnRl eHQgZXZhbHVhdGVzIGl0IGlkZW50aWNhbGx5LgorICAgIGRpcmVjdCAgICAgICAgICBDb21wdXRl ZCBmcm9tIG1hdGNoU3RhcnRSb3cgaXRzZWxmIC0tIEZJUlNUIGNvdW50cworICAgICAgICAgICAg ICAgICAgICBmb3J3YXJkIGZyb20gbWF0Y2ggc3RhcnQgLS0gc28gdGhlIHJlc29sdmVkIHJvdywK KyAgICAgICAgICAgICAgICAgICAgYW5kIHRodXMgdGhlIHJlc3VsdCwgZGlmZmVycyBwZXIgY29u dGV4dC4KKyAgICBib3VuZGFyeSBjaGVjayAgVGhlIHJlc29sdmVkIHJvdyBpcyBjdXJyZW50cG9z LXJlbGF0aXZlIChMQVNUIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgYSBiYWNrd2FyZCBvZmZz ZXQsIG9yIGEgY29tcG91bmQgd2hvc2UgaW5uZXIgTEFTVAorICAgICAgICAgICAgICAgICAgICBj YXJyaWVzIGFuIG9mZnNldCksIGJ1dCBpdHMgaW4tcmFuZ2UgdGVzdCBpcyB0YWtlbgorICAgICAg ICAgICAgICAgICAgICBhZ2FpbnN0IHRoZSBtYXRjaCByYW5nZSBbbWF0Y2hTdGFydFJvdywgY3Vy cmVudHBvc10uCisgICAgICAgICAgICAgICAgICAgIFRoZSByYW5nZSBib3VuZCBkaWZmZXJzIHBl ciBjb250ZXh0LCBzbyB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIGNhbiB0b28uCisK KyAgT25seSAibm9uZSIgaXMgc2FmZSBmb3IgYWJzb3JwdGlvbjsgImRpcmVjdCIgYW5kICJib3Vu ZGFyeSBjaGVjayIKKyAgYm90aCBtYWtlIGFuIGVhcmxpZXIgY29udGV4dCdzIHJlc3VsdCBzdG9w IHN1YnN1bWluZyBhIGxhdGVyIG9uZSdzCisgIChzZWUgKGMpIGFib3ZlKS4KIAogUnVudGltZSBj b25kaXRpb25zIChldmFsdWF0ZWQgcGVyIGNvbnRleHQgcGFpcik6CiAKQEAgLTgyOCwxMCArODQ4 LDEzIEBAIFJ1bnRpbWUgY29uZGl0aW9ucyAoZXZhbHVhdGVkIHBlciBjb250ZXh0IHBhaXIpOgog ICAoMikgYWxsU3RhdGVzQWJzb3JiYWJsZSBvZiB0aGUgdGFyZ2V0IGNvbnRleHQgaXMgdHJ1ZQog ICAoMykgQW4gZWFybGllciBjb250ZXh0ICJjb3ZlcnMiIGFsbCBzdGF0ZXMgb2YgdGhlIHRhcmdl dAogCi1Db3ZlciBjb25kaXRpb24gKG5mYV9zdGF0ZXNfY292ZXJlZCk6CitDb3ZlciBjb25kaXRp b24gKG5mYV9zdGF0ZXNfY292ZXJlZCkgLS0gImNvdW50LWRvbWluYW5jZSI6CiAKICAgQSBzdGF0 ZSB3aXRoIHRoZSBzYW1lIGVsZW1JZHggZXhpc3RzIGluIHRoZSBlYXJsaWVyIGNvbnRleHQsCi0g IGFuZCB0aGUgY291bnQgYXQgdGhhdCBkZXB0aCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgLS0g dGhlbiBpdCBpcyBjb3ZlcmVkLgorICBhbmQgdGhlIGNvdW50IGF0IHRoYXQgZGVwdGggaXMgZ3Jl YXRlciB0aGFuIG9yIGVxdWFsIC0tIHRoZW4gaXQgaXMKKyAgY292ZXJlZC4gIFRoZSBlYXJsaWVy IGNvbnRleHQncyBwZXItZGVwdGggaXRlcmF0aW9uIGNvdW50IHRodXMKKyAgZG9taW5hdGVzIHRo ZSBsYXRlciBvbmUnczsgdGhpcyBpcyB0aGUgY291bnQtZG9taW5hbmNlIGNvbXBhcmlzb24KKyAg cmVmZXJlbmNlZCBpbiBWSUlJLTMoYykuCiAKIFZJSUktNC4gRHVhbC1GbGFnIERlc2lnbgogCkBA IC0xNTE1LDcgKzE1MzgsNyBAQCBBcHBlbmRpeCBCLiBEYXRhIFN0cnVjdHVyZSBSZWxhdGlvbnNo aXAgRGlhZ3JhbQogICAgIHwtLS0gZGVmaW5lVmFyaWFibGVMaXN0OiBMaXN0PFN0cmluZz4gKHZh cmlhYmxlIG5hbWVzLCBERUZJTkUgb3JkZXIpCiAgICAgfC0tLSBkZWZpbmVDbGF1c2VMaXN0OiBM aXN0PEV4cHJTdGF0ZT4KICAgICB8LS0tIG5mYVZhck1hdGNoZWQ6IGJvb2xbXSAocGVyLXJvdyBj YWNoZSkKLSAgICB8LS0tIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQ6IEJpdG1hcHNldCogKG1h dGNoX3N0YXJ0LWRlcGVuZGVudAorICAgIHwtLS0gZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudDog Qml0bWFwc2V0KiAobWF0Y2hfc3RhcnRfZGVwZW5kZW50CiAgICAgfCAgICAgICAgREVGSU5FIHZh cnM7IHNlZSBWSS00KQogICAgIHwtLS0gbmZhVmlzaXRlZEVsZW1zOiBiaXRtYXB3b3JkKiAoY3lj bGUgZGV0ZWN0aW9uKQogICAgIHwtLS0gbmZhVmlzaXRlZE5Xb3JkczogaW50IChzaXplIG9mIG5m YVZpc2l0ZWRFbGVtcykKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0022-Document-the-get_reduced_frame_status-cascade-inv.txt" Content-Disposition: attachment; filename="nocfbot-0022-Document-the-get_reduced_frame_status-cascade-inv.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jr821 RnJvbSA3NTM1NWMwZTExNWExODc0Zjg4MzM1MjBhZTg5YmNjMTY1ODY3MjYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDI5IE1heSAyMDI2IDE3OjUxOjM3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAyMi82OF0g RG9jdW1lbnQgdGhlIGdldF9yZWR1Y2VkX2ZyYW1lX3N0YXR1cyBjYXNjYWRlIGludmFyaWFudAog cGVyIEppYW4gSGUncyByZXZpZXcKClRoZSBSRl8qIGNsYXNzaWZpZXIgaXMgYW4gZWFybHktcmV0 dXJuIGNhc2NhZGUgd2hvc2UgYnJhbmNoZXMgYXJlIG5vdAptdXR1YWxseSBleGNsdXNpdmUsIHNv IHJlb3JkZXJpbmcgdGhlbSBjaGFuZ2VzIHRoZSByZXN1bHQuICBUaGlzIGlzIHRoZQpzdGFuZGFy ZCBjYXNjYWRlIGlkaW9tIC0tIGVhY2ggYnJhbmNoIGlzIGEgbWluaW1hbCB0ZXN0IHByZW1pc2Vk IG9uIHRoZQpuZWdhdGlvbnMgdGhlIHByZWNlZGluZyByZXR1cm5zIGhhdmUgZXN0YWJsaXNoZWQg LS0gbm90IGEgbG9naWMgZmxhdywgYnV0CnRoZSBzdHJ1Y3R1cmUgbGVmdCB0aGUgY29udHJhY3Qg aW1wbGljaXQuCgp1cGRhdGVfcmVkdWNlZF9mcmFtZSgpIHJlY29yZHMgdGhlIG1hdGNoIGFzIGV4 YWN0bHkgb25lIG9mIHRocmVlCihycHJfbWF0Y2hfbWF0Y2hlZCwgcnByX21hdGNoX2xlbmd0aCkg c2hhcGVzOiAoZmFsc2UsIDEpLCAodHJ1ZSwgMCksIG9yCih0cnVlLCA+PSAxKS4gIFNwZWxsIHRo YXQgb3V0IGluIHRoZSBoZWFkZXIsIGFkZCB0aGUgbWlzc2luZyBSRl9FTVBUWV9NQVRDSApyZXR1 cm4gdmFsdWUsIGFuZCBhbm5vdGF0ZSBlYWNoIGJyYW5jaCB3aXRoIGEgImJ5IGhlcmUiIG5vdGUg c3RhdGluZyB0aGUKcnVubmluZyBpbnZhcmlhbnQgLS0gbm90YWJseSB3aHkgdGhlIGVtcHR5IG1h dGNoIG11c3QgYmUgY2xhc3NpZmllZCBiZWZvcmUKdGhlIHJhbmdlIHRlc3QuICBObyBiZWhhdmlv ciBjaGFuZ2UuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIHwgMjgg KysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmlu ZGV4IDk5ODU4ZDIyZGFkLi40Y2YxYTlhYzY3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5k b3dBZ2cuYwpAQCAtNDMwNiw2ICs0MzA2LDE2IEBAIGNsZWFyX3JlZHVjZWRfZnJhbWUoV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlKQogICogICBSRl9GUkFNRV9IRUFEICAgICAgcG9zIGlzIHRoZSBz dGFydCBvZiB0aGUgY3VycmVudCBtYXRjaAogICogICBSRl9TS0lQUEVEICAgICAgICAgcG9zIGlz IGluc2lkZSB0aGUgY3VycmVudCBtYXRjaCBidXQgbm90IHRoZSBzdGFydAogICogICBSRl9VTk1B VENIRUQgICAgICAgcG9zIGlzIHByb2Nlc3NlZCBidXQgbm90IHBhcnQgb2YgYW55IG1hdGNoCisg KiAgIFJGX0VNUFRZX01BVENIICAgICBwb3MgaXMgdGhlIHN0YXJ0IG9mIGFuIGVtcHR5ICh6ZXJv LWxlbmd0aCkgbWF0Y2gKKyAqCisgKiB1cGRhdGVfcmVkdWNlZF9mcmFtZSgpIHJlY29yZHMgdGhl IGN1cnJlbnQgbWF0Y2ggYXMgZXhhY3RseSBvbmUgb2YgdGhyZWUKKyAqIChycHJfbWF0Y2hfbWF0 Y2hlZCwgcnByX21hdGNoX2xlbmd0aCkgc2hhcGVzOiAoZmFsc2UsIDEpIGZvciB1bm1hdGNoZWQs CisgKiAodHJ1ZSwgMCkgZm9yIGFuIGVtcHR5IG1hdGNoLCBhbmQgKHRydWUsID49IDEpIGZvciBh IHJlYWwgbWF0Y2guICBUaGUKKyAqIHRlc3RzIGJlbG93IGZvcm0gYSBjYXNjYWRlIHdpdGggZWFy bHkgcmV0dXJuczogZWFjaCBpcyBhIG1pbmltYWwgY2hlY2sKKyAqIHRoYXQgcmVsaWVzIG9uIHRo ZSBuZWdhdGlvbnMgdGhlIHByZWNlZGluZyByZXR1cm5zIGhhdmUgYWxyZWFkeQorICogZXN0YWJs aXNoZWQsIHNvIHRoZWlyIG9yZGVyIGlzIHNpZ25pZmljYW50LiAgVGhlICJieSBoZXJlIiBub3Rl cyBzcGVsbAorICogb3V0IHRoZSBydW5uaW5nIGludmFyaWFudDsgcmVvcmRlcmluZyBhIHRlc3Qg d291bGQgbWlzY2xhc3NpZnkgb25lIG9mCisgKiB0aGUgdGhyZWUgc2hhcGVzLgogICovCiBzdGF0 aWMgaW50CiBnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBpbnQ2NCBwb3MpCkBAIC00MzE2LDE3ICs0MzI2LDMxIEBAIGdldF9yZWR1Y2VkX2ZyYW1lX3N0 YXR1cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykKIAlpZiAoIXdpbnN0YXRl LT5ycHJfbWF0Y2hfdmFsaWQpCiAJCXJldHVybiBSRl9OT1RfREVURVJNSU5FRDsKIAotCS8qIEVt cHR5IG1hdGNoOiBjb3ZlcnMgb25seSB0aGUgc3RhcnQgcG9zaXRpb24gKi8KKwkvKgorCSAqIEJ5 IGhlcmUgdGhlIHJlY29yZCBpcyB2YWxpZCBhbmQgaG9sZHMgb25lIG9mIHRoZSB0aHJlZSBzaGFw ZXMgYWJvdmUuCisJICoKKwkgKiBUaGUgZW1wdHkgbWF0Y2ggKHRydWUsIDApIG11c3QgYmUgY2xh c3NpZmllZCBmaXJzdDogaXQgaGFzIGxlbmd0aCAwLCBzbworCSAqIHRoZSByYW5nZSB0ZXN0IGJl bG93IHdvdWxkIGNvbXB1dGUgc3RhcnQgKyBsZW5ndGggPT0gc3RhcnQgYW5kIHJlamVjdAorCSAq IGl0cyBvd24gc3RhcnQgcG9zaXRpb24gYXMgb3V0IG9mIHJhbmdlLgorCSAqLwogCWlmIChwb3Mg PT0gc3RhcnQgJiYgd2luc3RhdGUtPnJwcl9tYXRjaF9tYXRjaGVkICYmIGxlbmd0aCA9PSAwKQog CQlyZXR1cm4gUkZfRU1QVFlfTUFUQ0g7CiAKLQkvKiBPdXRzaWRlIHRoZSByZXN1bHQgcmFuZ2Ug Ki8KKwkvKgorCSAqIEJ5IGhlcmUgbGVuZ3RoID49IDEgLS0gdGhlIG9ubHkgemVyby1sZW5ndGgg cmVjb3JkLCB0aGUgZW1wdHkgbWF0Y2gsCisJICogaGFzIGJlZW4gaGFuZGxlZCAtLSBzbyBbc3Rh cnQsIHN0YXJ0ICsgbGVuZ3RoKSBpcyBhIHdlbGwtZm9ybWVkIHJhbmdlLgorCSAqLwogCWlmIChw b3MgPCBzdGFydCB8fCBwb3MgPj0gc3RhcnQgKyBsZW5ndGgpCiAJCXJldHVybiBSRl9OT1RfREVU RVJNSU5FRDsKIAorCS8qCisJICogQnkgaGVyZSBwb3MgbGllcyB3aXRoaW4gW3N0YXJ0LCBzdGFy dCArIGxlbmd0aCkuICBBbiB1bm1hdGNoZWQgcmVjb3JkCisJICogaXMgKGZhbHNlLCAxKSwgc28g dGhpcyByZXR1cm5zIGZvciBpdHMgc2luZ2xlIGluLXJhbmdlIHBvc2l0aW9uLgorCSAqLwogCWlm ICghd2luc3RhdGUtPnJwcl9tYXRjaF9tYXRjaGVkKQogCQlyZXR1cm4gUkZfVU5NQVRDSEVEOwog CisJLyogQnkgaGVyZSB0aGUgbWF0Y2ggaXMgcmVhbCAodHJ1ZSwgPj0gMSkgYW5kIHBvcyBpcyBv bmUgb2YgaXRzIHJvd3MuICovCiAJaWYgKHBvcyA9PSBzdGFydCkKIAkJcmV0dXJuIFJGX0ZSQU1F X0hFQUQ7CiAKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0023-Explain-the-completed-head-context-branch-in-upda.txt" Content-Disposition: attachment; filename="nocfbot-0023-Explain-the-completed-head-context-branch-in-upda.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jra22 RnJvbSA2YmY1ZjkzYTVjNWNlNDFlMTVlOTIwYzA5ZDcwMjcxM2RkMTVmN2Y3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDI5IE1heSAyMDI2IDE3OjU2OjAyICswOTAwClN1YmplY3Q6IFtQQVRDSCAyMy82OF0g RXhwbGFpbiB0aGUgY29tcGxldGVkLWhlYWQtY29udGV4dCBicmFuY2ggaW4KIHVwZGF0ZV9yZWR1 Y2VkX2ZyYW1lIHBlciBKaWFuIEhlJ3MgcmV2aWV3CgpFeGVjUlBSR2V0SGVhZENvbnRleHQoKSBj YW4gcmV0dXJuIGEgY29udGV4dCB3aG9zZSBzdGF0ZSBsaXN0IGlzIGFscmVhZHkKZHJhaW5lZCwg YW5kIHRoZSBicmFuY2ggaGFuZGxpbmcgaXQgbG9va2VkIHVucmVhY2hhYmxlLiAgSXQgZmlyZXMg dW5kZXIKU0tJUCBUTyBORVhUIFJPVzogb3ZlcmxhcHBpbmcgY29udGV4dHMgbGV0IG9uZSByZWFj aCBGSU4sIGFuZCByZWNvcmQgaXRzCnJlc3VsdCwgZHVyaW5nIGFuIGVhcmxpZXIgY2FsbCAtLSBi ZWZvcmUgdGhlIGNhbGwgYXNraW5nIGFib3V0IGl0cyBvd24Kc3RhcnQgcm93IGFycml2ZXMuICBD b21tZW50IG9ubHk7IG5vIGJlaGF2aW9yIGNoYW5nZS4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlV2luZG93QWdnLmMgfCA3ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5k ZXggNGNmMWE5YWM2N2IuLmYxNmQwMWU5NzQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRv d0FnZy5jCkBAIC00NDM0LDcgKzQ0MzQsMTIgQEAgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93 T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogCX0KIAllbHNlIGlmICh0YXJnZXRDdHgtPnN0YXRl cyA9PSBOVUxMKQogCXsKLQkJLyogQ29udGV4dCBhbHJlYWR5IGNvbXBsZXRlZCAtIHNraXAgdG8g cmVzdWx0IHJlZ2lzdHJhdGlvbiAqLworCQkvKgorCQkgKiBUaGUgaGVhZCBjb250ZXh0IGFscmVh ZHkgY29tcGxldGVkIGluIGFuIGVhcmxpZXIgY2FsbC4gIFJlYWNoYWJsZQorCQkgKiB1bmRlciBT S0lQIFRPIE5FWFQgUk9XLCB3aGVyZSBvdmVybGFwcGluZyBjb250ZXh0cyBsZXQgb25lIHJlYWNo CisJCSAqIEZJTiAtLSByZWNvcmRpbmcgaXRzIHJlc3VsdCAtLSBiZWZvcmUgdGhlIGNhbGwgZm9y IGl0cyBvd24gc3RhcnQKKwkJICogcm93IGFycml2ZXMuICBSZWdpc3RlciB0aGF0IHJlc3VsdC4K KwkJICovCiAJCWdvdG8gcmVnaXN0ZXJfcmVzdWx0OwogCX0KIAotLSAKMi41MC4xIChBcHBsZSBH aXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0024-Tighten-the-RPR-frame-boundary-check-from-to-per-.txt" Content-Disposition: attachment; filename="nocfbot-0024-Tighten-the-RPR-frame-boundary-check-from-to-per-.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrc23 RnJvbSBhMGRjODQxMzk5ZjllYjc5YWU0ZDc3Mzc0MzgyZGMyMWY0MTgzZjMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDI5IE1heSAyMDI2IDE5OjA3OjQwICswOTAwClN1YmplY3Q6IFtQQVRDSCAyNC82OF0g VGlnaHRlbiB0aGUgUlBSIGZyYW1lLWJvdW5kYXJ5IGNoZWNrIGZyb20gPj0gdG8gPT0gcGVyCiBK aWFuIEhlJ3MgcmV2aWV3CgpjdXJyZW50UG9zIGFkdmFuY2VzIGJ5IGV4YWN0bHkgb25lIHJvdyBw ZXIgY2FsbCwgYW5kIGEgZmluYWxpemVkIGNvbnRleHQKaXMgc2tpcHBlZCBieSB0aGUgc3RhdGVz ID09IE5VTEwgZ3VhcmQsIHNvIGl0IGNhbiBvbmx5IGV2ZXIgcmVhY2gKY3R4RnJhbWVFbmQsIG5l dmVyIG92ZXJzaG9vdCBpdDsgPj0gYW5kID09IGJlaGF2ZSBpZGVudGljYWxseSBoZXJlLCBhbmQK PT0gc3RhdGVzIHRoZSBpbnRlbnQuICBUaGUgPj0gd2FzIGEgZGVmZW5zaXZlIGd1YXJkIGFnYWlu c3QgYW4gb3ZlcnNob290CnRoYXQgY2Fubm90IGhhcHBlbiAtLSBtb3ZlIHRoYXQgZGVmZW5zZSBp bnRvIEFzc2VydChjdXJyZW50UG9zIDw9CmN0eEZyYW1lRW5kKSBzbyBhIGZ1dHVyZSBjaGFuZ2Ug dGhhdCBicmVha3MgdGhlIGludmFyaWFudCBmYWlscwppbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHNp bGVudGx5IHNsaXBwaW5nIHBhc3QgdGhlIGJvdW5kYXJ5LCBhbmQgY2hhbmdlCnRoZSBjb21tZW50 IGZyb20gImV4Y2VlZGVkIiB0byAicmVhY2hlZCIuICBObyBiZWhhdmlvciBjaGFuZ2UuCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMTUgKysrKysrKysrKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUlBSLmMKaW5kZXggODhjNTljZjMyNzYuLjQ0NjNjZmUwYTVjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JQUi5jCkBAIC0xNzA2LDcgKzE3MDYsNyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQb3MsCiAJCWlmIChjdHgtPnN0YXRlcyA9PSBO VUxMKQogCQkJY29udGludWU7CiAKLQkJLyogQ2hlY2sgZnJhbWUgYm91bmRhcnkgLSBmaW5hbGl6 ZSBpZiBleGNlZWRlZCAqLworCQkvKiBDaGVjayBmcmFtZSBib3VuZGFyeSAtIGZpbmFsaXplIHRo ZSBjb250ZXh0IHdoZW4gaXQgaXMgcmVhY2hlZCAqLwogCQlpZiAoaGFzTGltaXRlZEZyYW1lKQog CQl7CiAJCQlpbnQ2NAkJY3R4RnJhbWVFbmQ7CkBAIC0xNzE2LDkgKzE3MTYsMTggQEAgRXhlY1JQ UlByb2Nlc3NSb3coV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zLAog CQkJCQkJCQkJJmN0eEZyYW1lRW5kKSkKIAkJCQljdHhGcmFtZUVuZCA9IFBHX0lOVDY0X01BWDsK IAotCQkJaWYgKGN1cnJlbnRQb3MgPj0gY3R4RnJhbWVFbmQpCisJCQkvKgorCQkJICogY3VycmVu dFBvcyBhZHZhbmNlcyBieSBleGFjdGx5IG9uZSBwZXIgY2FsbCwgYW5kIGEgZmluYWxpemVkCisJ CQkgKiBjb250ZXh0IGlzIHNraXBwZWQgYnkgdGhlIHN0YXRlcyA9PSBOVUxMIGd1YXJkIGFib3Zl LCBzbyBpdCBjYW4KKwkJCSAqIG9ubHkgZXZlciByZWFjaCBjdHhGcmFtZUVuZCwgbmV2ZXIgb3Zl cnNob290IGl0LiAgVGhlIEFzc2VydAorCQkJICogdHVybnMgYSBmdXR1cmUgY2hhbmdlIHRoYXQg YnJva2UgdGhhdCBpbnZhcmlhbnQgaW50byBhbgorCQkJICogaW1tZWRpYXRlIGZhaWx1cmUgcmF0 aGVyIHRoYW4gYSBzaWxlbnQgc2xpcCBwYXN0IHRoZSBib3VuZGFyeS4KKwkJCSAqLworCQkJQXNz ZXJ0KGN1cnJlbnRQb3MgPD0gY3R4RnJhbWVFbmQpOworCisJCQlpZiAoY3VycmVudFBvcyA9PSBj dHhGcmFtZUVuZCkKIAkJCXsKLQkJCQkvKiBGcmFtZSBib3VuZGFyeSBleGNlZWRlZDogZm9yY2Ug bWlzbWF0Y2ggKi8KKwkJCQkvKiBGcmFtZSBib3VuZGFyeSByZWFjaGVkOiBmb3JjZSBtaXNtYXRj aCAqLwogCQkJCW5mYV9tYXRjaCh3aW5zdGF0ZSwgY3R4LCBOVUxMKTsKIAkJCQljb250aW51ZTsK IAkJCX0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0025-Reject-single-row-window-frame-in-row-pattern-rec.txt" Content-Disposition: attachment; filename="nocfbot-0025-Reject-single-row-window-frame-in-row-pattern-rec.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jre24 RnJvbSAzNmRhNzc4MjJkYTdmNmVhZDMxZjBhNDM0YTI0NTA5NmNhYzJhYTk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDMwIE1heSAyMDI2IDE4OjU3OjU2ICswOTAwClN1YmplY3Q6IFtQQVRDSCAyNS82OF0g UmVqZWN0IHNpbmdsZS1yb3cgd2luZG93IGZyYW1lIGluIHJvdyBwYXR0ZXJuCiByZWNvZ25pdGlv bgoKVGhlIHN0YW5kYXJkIGFsbG93cyBvbmx5IFVOQk9VTkRFRCBGT0xMT1dJTkcgb3IgYSBwb3Np dGl2ZSBvZmZzZXQKRk9MTE9XSU5HIGFzIHRoZSBmcmFtZSBlbmQgZm9yIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uLiAgQSBDVVJSRU5UIFJPVwplbmQsIG9yIGEgemVybyBvZmZzZXQsIHJlZHVjZXMg dGhlIGZyYW1lIHRvIHRoZSBzaW5nbGUgY3VycmVudCByb3csIHdoaWNoCmlzIG5vdCBhIHZhbGlk IHNlYXJjaCBzcGFjZSBmb3IgcGF0dGVybiBtYXRjaGluZy4KClJlamVjdCB0aGUgQ1VSUkVOVCBS T1cgc3BlbGxpbmcgaW4gdHJhbnNmb3JtUlBSKCkgYXQgcGFyc2UgdGltZSwgYW5kIGEKemVybyBv ZmZzZXQgaW4gY2FsY3VsYXRlX2ZyYW1lX29mZnNldHMoKSBhdCBydW4gdGltZSwgc2luY2UgdGhl IG9mZnNldApuZWVkIG5vdCBiZSBhIGNvbnN0YW50IC0tIGl0IG1heSBiZSBhIHBhcmFtZXRlciwg ZXhwcmVzc2lvbiwgb3Igc3VicXVlcnkuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1F LnJwciAgICAgICAgfCAgNSArKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMgICB8IDEwICsrKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAg IHwgMTQgKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCB8 IDQxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf YmFzZS5zcWwgICAgICB8IDI2ICsrKysrKysrKysrKysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgODAg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKaW5k ZXggMWQyMTEyNDVhNWIuLjQ2N2NjMDNlY2ZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9SRUFETUUucnByCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKQEAg LTExMjIsOCArMTEyMiw5IEBAIFgtMy4gSU5JVElBTCB2cyBTRUVLCiBYLTQuIEJvdW5kZWQgRnJh bWUgSGFuZGxpbmcKIAogICBXaXRoIFJQUiwgdGhlIGZyYW1lIG1vZGUgaXMgYWx3YXlzIFJPV1Mg YW5kIHRoZSBmcmFtZSBzdGFydCBtdXN0IGJlCi0gIENVUlJFTlQgUk9XLiBUaGUgZnJhbWUgZW5k IGNhbiBiZSBlaXRoZXIgVU5CT1VOREVEIEZPTExPV0lORyBvciBuCi0gIEZPTExPV0lORy4KKyAg Q1VSUkVOVCBST1cuIFRoZSBmcmFtZSBlbmQgbXVzdCBiZSBVTkJPVU5ERUQgRk9MTE9XSU5HIG9y IGEgcG9zaXRpdmUKKyAgb2Zmc2V0IChuID49IDEpIEZPTExPV0lORzsgYSBDVVJSRU5UIFJPVyBl bmQgb3IgYSB6ZXJvIG9mZnNldCBpcworICByZWplY3RlZCwgc2luY2UgaXQgd291bGQgcmVkdWNl IHRoZSBmcmFtZSB0byB0aGUgc2luZ2xlIGN1cnJlbnQgcm93LgogCiAgIFdoZW4gdGhlIGZyYW1l IGlzIGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgNQogICBGT0xM T1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1JvdyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9dHJ1ZSBh bmQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCBmMTZkMDFlOTc0My4uMGRh YjE4MjU0ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTIzNjksNiAr MjM2OSwxNiBAQCBjYWxjdWxhdGVfZnJhbWVfb2Zmc2V0cyhQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BSRUNFRElO R19PUl9GT0xMT1dJTkdfU0laRSksCiAJCQkJCQkgZXJybXNnKCJmcmFtZSBlbmRpbmcgb2Zmc2V0 IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsKKworCQkJLyoKKwkJCSAqIFJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uIGZvcmJpZHMgYSB6ZXJvLWxlbmd0aCBmcmFtZSBlbmQ7CisJCQkgKiBjaGVja2Vk IGhlcmUgc28gYSBub24tY29uc3RhbnQgb2Zmc2V0IChlLmcuIGEgYmluZCBwYXJhbWV0ZXIpCisJ CQkgKiBpcyBjYXVnaHQsIG5vdCBqdXN0IGEgbGl0ZXJhbCAwLgorCQkJICovCisJCQlpZiAod2lu c3RhdGUtPnJwUGF0dGVybiAhPSBOVUxMICYmIG9mZnNldCA9PSAwKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VSUk9SKSwKKwkJCQkJCWVycm1z ZygiZnJhbWUgZW5kaW5nIG9mZnNldCBtdXN0IGJlIHBvc2l0aXZlIHdpdGggcm93IHBhdHRlcm4g cmVjb2duaXRpb24iKSk7CiAJCX0KIAl9CiAJd2luc3RhdGUtPmFsbF9maXJzdCA9IGZhbHNlOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IGQyZWQ2YzE0ODExLi5mYThjMzc1ZjQ4YiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYwpAQCAtMTYzLDYgKzE2MywyMCBAQCB0cmFuc2Zvcm1SUFIoUGFyc2VT dGF0ZSAqcHN0YXRlLCBXaW5kb3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAkJCQlw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB3aW5kZWYtPmV4Y2x1ZGVMb2NhdGlvbiA+PSAwID8g d2luZGVmLT5leGNsdWRlTG9jYXRpb24gOiB3aW5kZWYtPmxvY2F0aW9uKSk7CiAJfQogCisJLyoK KwkgKiBUaGUgc3RhbmRhcmQgYWxsb3dzIG9ubHkgVU5CT1VOREVEIEZPTExPV0lORyBvciBhIHBv c2l0aXZlIG9mZnNldAorCSAqIEZPTExPV0lORyBhcyB0aGUgZnJhbWUgZW5kLiAgVGhlIGVxdWl2 YWxlbnQgMCBGT0xMT1dJTkcgc3BlbGxpbmcgaXMKKwkgKiBjYXVnaHQgYXQgcnVudGltZSBpbiBj YWxjdWxhdGVfZnJhbWVfb2Zmc2V0cygpLgorCSAqLworCWlmICh3Yy0+ZnJhbWVPcHRpb25zICYg RlJBTUVPUFRJT05fRU5EX0NVUlJFTlRfUk9XKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNv ZGUoRVJSQ09ERV9XSU5ET1dJTkdfRVJST1IpLAorCQkJCWVycm1zZygiY2Fubm90IHVzZSBDVVJS RU5UIFJPVyBhcyBmcmFtZSBlbmQgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiIpLAorCQkJ CWVycmhpbnQoIlVzZSBVTkJPVU5ERUQgRk9MTE9XSU5HIG9yIGEgcG9zaXRpdmUgb2Zmc2V0IEZP TExPV0lORy4iKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkgICB3 aW5kZWYtPmZyYW1lTG9jYXRpb24gPj0gMCA/CisJCQkJCQkJCSAgIHdpbmRlZi0+ZnJhbWVMb2Nh dGlvbiA6IHdpbmRlZi0+bG9jYXRpb24pKTsKKwogCS8qIFRyYW5zZm9ybSBBRlRFUiBNQVRDSCBT S0lQIFRPIGNsYXVzZSAqLwogCXdjLT5ycFNraXBUbyA9IHdpbmRlZi0+cnBDb21tb25TeW50YXgt PnJwU2tpcFRvOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IGNm ZDI2NDViYmVkLi5kOGY4MDVjODlhYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfYmFzZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFz ZS5vdXQKQEAgLTU0Miw3ICs1NDIsOCBAQCBFUlJPUjogIGZyYW1lIGVuZCBjYW5ub3QgYmUgVU5C T1VOREVEIFBSRUNFRElORwogTElORSA1OiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgUFJFQ0VESU5HCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIC0tIEV4cGVjdGVkOiBFUlJPUjogZnJhbWUgZW5kIGNhbm5vdCBiZSBVTkJPVU5E RUQgUFJFQ0VESU5HCi0tLSBTaW5nbGUgcm93IGZyYW1lOiBDVVJSRU5UIFJPVyBBTkQgQ1VSUkVO VCBST1cKKy0tIFNpbmdsZSByb3cgZnJhbWU6IENVUlJFTlQgUk9XIEFORCBDVVJSRU5UIFJPVyBp cyByZWplY3RlZCAodGhlIHN0YW5kYXJkCistLSBhbGxvd3Mgb25seSBVTkJPVU5ERUQgRk9MTE9X SU5HIG9yIGEgcG9zaXRpdmUgb2Zmc2V0IEZPTExPV0lORykuCiBTRUxFQ1QgaWQsIHZhbCwgQ09V TlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfZnJhbWUKIFdJTkRPVyB3IEFTICgKQEAgLTU1 MywxNyArNTU0LDEzIEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiAp CiBPUkRFUiBCWSBpZDsKLSBpZCB8IHZhbCB8IGNudCAKLS0tLS0rLS0tLS0rLS0tLS0KLSAgMSB8 ICAxMCB8ICAgMQotICAyIHwgIDEwIHwgICAxCi0gIDMgfCAgMTAgfCAgIDEKLSAgNCB8ICAyMCB8 ICAgMQotICA1IHwgIDIwIHwgICAxCi0gIDYgfCAgMzAgfCAgIDEKLSg2IHJvd3MpCi0KLS0tIFpl cm8gb2Zmc2V0OiBDVVJSRU5UIFJPVyBBTkQgMCBGT0xMT1dJTkcgKGVxdWl2YWxlbnQgdG8gQ1VS UkVOVCBST1cpCitFUlJPUjogIGNhbm5vdCB1c2UgQ1VSUkVOVCBST1cgYXMgZnJhbWUgZW5kIHdp dGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KK0xJTkUgNTogICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgQ1VSUkVOVCBST1cKKyAgICAgICAgICAgIF4KK0hJTlQ6ICBVc2UgVU5CT1VO REVEIEZPTExPV0lORyBvciBhIHBvc2l0aXZlIG9mZnNldCBGT0xMT1dJTkcuCistLSBFeHBlY3Rl ZDogRVJST1I6IGNhbm5vdCB1c2UgQ1VSUkVOVCBST1cgYXMgZnJhbWUgZW5kIHdpdGggcm93IHBh dHRlcm4gcmVjb2duaXRpb24KKy0tIFplcm8gb2Zmc2V0OiBDVVJSRU5UIFJPVyBBTkQgMCBGT0xM T1dJTkcgZGVub3RlcyB0aGUgc2FtZSBvbmUtcm93IGZyYW1lCistLSBhbmQgaXMgbGlrZXdpc2Ug cmVqZWN0ZWQgKGNhdWdodCBhdCBleGVjdXRpb24gdGltZSkuCiBTRUxFQ1QgaWQsIHZhbCwgQ09V TlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfZnJhbWUKIFdJTkRPVyB3IEFTICgKQEAgLTU3 NCw2ICs1NzEsMjIgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICkK IE9SREVSIEJZIGlkOworRVJST1I6ICBmcmFtZSBlbmRpbmcgb2Zmc2V0IG11c3QgYmUgcG9zaXRp dmUgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBmcmFt ZSBlbmRpbmcgb2Zmc2V0IG11c3QgYmUgcG9zaXRpdmUgd2l0aCByb3cgcGF0dGVybiByZWNvZ25p dGlvbgorLS0gQSBub24tY29uc3RhbnQgZnJhbWUgZW5kIG9mZnNldCBpcyBhbGxvd2VkOyBhIHpl cm8gdmFsdWUgaXMgc3RpbGwgcmVqZWN0ZWQsCistLSB0aGlzIHRpbWUgYXQgZXhlY3V0aW9uIHRp bWUgKGEgbGl0ZXJhbCBjYW5ub3QgZXhlcmNpc2UgdGhhdCBwYXRoKS4KK1BSRVBBUkUgcnByX2Vu ZF9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAkMSBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAw CispCitPUkRFUiBCWSBpZDsKK0VYRUNVVEUgcnByX2VuZF9vZmZzZXQoMik7CiAgaWQgfCB2YWwg fCBjbnQgCiAtLS0tKy0tLS0tKy0tLS0tCiAgIDEgfCAgMTAgfCAgIDEKQEAgLTU4NCw2ICs1OTcs MTAgQEAgT1JERVIgQlkgaWQ7CiAgIDYgfCAgMzAgfCAgIDEKICg2IHJvd3MpCiAKK0VYRUNVVEUg cnByX2VuZF9vZmZzZXQoMCk7CitFUlJPUjogIGZyYW1lIGVuZGluZyBvZmZzZXQgbXVzdCBiZSBw b3NpdGl2ZSB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCistLSBFeHBlY3RlZDogRVJST1I6 IGZyYW1lIGVuZGluZyBvZmZzZXQgbXVzdCBiZSBwb3NpdGl2ZSB3aXRoIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uCitERUFMTE9DQVRFIHJwcl9lbmRfb2Zmc2V0OwogLS0gTGFyZ2Ugb2Zmc2V0OiBD VVJSRU5UIFJPVyBBTkQgMTAwMCBGT0xMT1dJTkcKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgYXMgY250CiBGUk9NIHJwcl9mcmFtZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCmlu ZGV4IGZkMjg5ZDdjZjY3Li42YzIzNjVhMmQyMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNx bApAQCAtNDQ1LDcgKzQ0NSw4IEBAIFdJTkRPVyB3IEFTICgKICk7CiAtLSBFeHBlY3RlZDogRVJS T1I6IGZyYW1lIGVuZCBjYW5ub3QgYmUgVU5CT1VOREVEIFBSRUNFRElORwogCi0tLSBTaW5nbGUg cm93IGZyYW1lOiBDVVJSRU5UIFJPVyBBTkQgQ1VSUkVOVCBST1cKKy0tIFNpbmdsZSByb3cgZnJh bWU6IENVUlJFTlQgUk9XIEFORCBDVVJSRU5UIFJPVyBpcyByZWplY3RlZCAodGhlIHN0YW5kYXJk CistLSBhbGxvd3Mgb25seSBVTkJPVU5ERUQgRk9MTE9XSU5HIG9yIGEgcG9zaXRpdmUgb2Zmc2V0 IEZPTExPV0lORykuCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAogRlJP TSBycHJfZnJhbWUKIFdJTkRPVyB3IEFTICgKQEAgLTQ1Niw4ICs0NTcsMTAgQEAgV0lORE9XIHcg QVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICkKIE9SREVSIEJZIGlkOworLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIENVUlJFTlQgUk9XIGFzIGZyYW1lIGVuZCB3aXRoIHJvdyBw YXR0ZXJuIHJlY29nbml0aW9uCiAKLS0tIFplcm8gb2Zmc2V0OiBDVVJSRU5UIFJPVyBBTkQgMCBG T0xMT1dJTkcgKGVxdWl2YWxlbnQgdG8gQ1VSUkVOVCBST1cpCistLSBaZXJvIG9mZnNldDogQ1VS UkVOVCBST1cgQU5EIDAgRk9MTE9XSU5HIGRlbm90ZXMgdGhlIHNhbWUgb25lLXJvdyBmcmFtZQor LS0gYW5kIGlzIGxpa2V3aXNlIHJlamVjdGVkIChjYXVnaHQgYXQgZXhlY3V0aW9uIHRpbWUpLgog U0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKIEZST00gcnByX2ZyYW1lCiBX SU5ET1cgdyBBUyAoCkBAIC00NjgsNiArNDcxLDI1IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJ TkUgQSBBUyB2YWwgPiAwCiApCiBPUkRFUiBCWSBpZDsKKy0tIEV4cGVjdGVkOiBFUlJPUjogZnJh bWUgZW5kaW5nIG9mZnNldCBtdXN0IGJlIHBvc2l0aXZlIHdpdGggcm93IHBhdHRlcm4gcmVjb2du aXRpb24KKworLS0gQSBub24tY29uc3RhbnQgZnJhbWUgZW5kIG9mZnNldCBpcyBhbGxvd2VkOyBh IHplcm8gdmFsdWUgaXMgc3RpbGwgcmVqZWN0ZWQsCistLSB0aGlzIHRpbWUgYXQgZXhlY3V0aW9u IHRpbWUgKGEgbGl0ZXJhbCBjYW5ub3QgZXhlcmNpc2UgdGhhdCBwYXRoKS4KK1BSRVBBUkUgcnBy X2VuZF9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMg Y250CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAkMSBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyB2YWwg PiAwCispCitPUkRFUiBCWSBpZDsKK0VYRUNVVEUgcnByX2VuZF9vZmZzZXQoMik7CitFWEVDVVRF IHJwcl9lbmRfb2Zmc2V0KDApOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBmcmFtZSBlbmRpbmcgb2Zm c2V0IG11c3QgYmUgcG9zaXRpdmUgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorREVBTExP Q0FURSBycHJfZW5kX29mZnNldDsKIAogLS0gTGFyZ2Ugb2Zmc2V0OiBDVVJSRU5UIFJPVyBBTkQg MTAwMCBGT0xMT1dJTkcKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250Ci0t IAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0026-Remove-the-redundant-zero-check-on-the-RPR-frame-.txt" Content-Disposition: attachment; filename="nocfbot-0026-Remove-the-redundant-zero-check-on-the-RPR-frame-.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrg25 RnJvbSA0ZGY1NzJhOTA1YmJiMWNlOTdlNDI1ZGI0NWU5ZDkxNTJkNTNkZWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDMwIE1heSAyMDI2IDE5OjM3OjExICswOTAwClN1YmplY3Q6IFtQQVRDSCAyNi82OF0g UmVtb3ZlIHRoZSByZWR1bmRhbnQgemVybyBjaGVjayBvbiB0aGUgUlBSIGZyYW1lIGVuZGluZwog b2Zmc2V0Cgp1cGRhdGVfcmVkdWNlZF9mcmFtZSgpIGd1YXJkZWQgdGhlIGZyYW1lIG9mZnNldCB3 aXRoICJlbmRPZmZzZXRWYWx1ZQohPSAwIiwgY29tcGFyaW5nIGEgRGF0dW0gZGlyZWN0bHkgdG8g emVyby4gIE5vdyB0aGF0IGEgc2luZ2xlLXJvdyBmcmFtZQppcyByZWplY3RlZCwgYSBsaW1pdGVk IGZyYW1lIGFsd2F5cyBjYXJyaWVzIGEgcmVhbCBvZmZzZXQsIHNvIHRoZSBndWFyZAppcyB1bm5l Y2Vzc2FyeTsgZHJvcHBpbmcgaXQgbGVhdmVzIGEgcGxhaW4gRGF0dW1HZXRJbnQ2NCgpIGFuZCBy ZW1vdmVzCnRoZSB0eXBlLWNvbmZ1c2VkIERhdHVtLXZzLXplcm8gY29tcGFyaXNvbi4KClBlciBK aWFuIEhlJ3MgcmV2aWV3LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCAwZGFiMTgyNTRlMC4uYmNiMzYx NGU5NmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTQzOTksNyArNDM5 OSw3IEBAIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBv cykKIAkgKi8KIAloYXNMaW1pdGVkRnJhbWUgPSAoZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05f Uk9XUykgJiYKIAkJIShmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FTkRfVU5CT1VOREVEX0ZP TExPV0lORyk7Ci0JaWYgKGhhc0xpbWl0ZWRGcmFtZSAmJiB3aW5zdGF0ZS0+ZW5kT2Zmc2V0VmFs dWUgIT0gMCkKKwlpZiAoaGFzTGltaXRlZEZyYW1lKQogCQlmcmFtZU9mZnNldCA9IERhdHVtR2V0 SW50NjQod2luc3RhdGUtPmVuZE9mZnNldFZhbHVlKTsKIAogCS8qCi0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0027-Restore-findTargetlistEntrySQL99-to-static-per-Ta.txt" Content-Disposition: attachment; filename="nocfbot-0027-Restore-findTargetlistEntrySQL99-to-static-per-Ta.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrh26 RnJvbSBkMDcwYjk3MTEzODgzYzFmNmVmYmUyYWFhZjA1ZGQ1NjQwY2YzYjFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTA6MTQ6MzMgKzA5MDAKU3ViamVjdDogW1BBVENIIDI3LzY4XSBS ZXN0b3JlIGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OSB0byBzdGF0aWMgcGVyIFRhdHN1bwogSXNo aWkncyByZXZpZXcKClRoZSBSUFIgREVGSU5FIGhhbmRsaW5nIG9uY2UgY2FsbGVkIGZpbmRUYXJn ZXRsaXN0RW50cnlTUUw5OSBmcm9tCnBhcnNlX3Jwci5jLCB3aGljaCByZXF1aXJlZCBleHBvc2lu ZyBpdCBhcyBleHRlcm4uICBUaGUgVmFyLW9ubHkgdGFyZ2V0bGlzdApmaXggcmVtb3ZlZCB0aGF0 IGNyb3NzLWZpbGUgY2FsbCwgc28gcmV2ZXJ0IHRoZSBmdW5jdGlvbiB0byBpdHMgb3JpZ2luYWwK c3RhdGljIGxpbmthZ2UgYW5kIGRyb3AgdGhlIHByb3RvdHlwZSBmcm9tIHBhcnNlX2NsYXVzZS5o LgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyB8IDQgKysrLQogc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5oIHwgMyAtLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwpp bmRleCAzMjAxYTIyZDI3OC4uNTUwZWE0ZWI5YzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNl LmMKQEAgLTg5LDYgKzg5LDggQEAgc3RhdGljIHZvaWQgY2hlY2tFeHBySXNWYXJGcmVlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqbiwKIAkJCQkJCQkgICBjb25zdCBjaGFyICpjb25zdHJ1Y3RO YW1lKTsKIHN0YXRpYyBUYXJnZXRFbnRyeSAqZmluZFRhcmdldGxpc3RFbnRyeVNRTDkyKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCQkJCQkJIExpc3QgKip0bGlzdCwgUGFy c2VFeHByS2luZCBleHByS2luZCk7CitzdGF0aWMgVGFyZ2V0RW50cnkgKmZpbmRUYXJnZXRsaXN0 RW50cnlTUUw5OShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCSBM aXN0ICoqdGxpc3QsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogc3RhdGljIGludAlnZXRfbWF0 Y2hpbmdfbG9jYXRpb24oaW50IHNvcnRncm91cHJlZiwKIAkJCQkJCQkJICBMaXN0ICpzb3J0Z3Jv dXByZWZzLCBMaXN0ICpleHBycyk7CiBzdGF0aWMgTGlzdCAqcmVzb2x2ZV91bmlxdWVfaW5kZXhf ZXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEluZmVyQ2xhdXNlICppbmZlciwKQEAgLTIzMTAsNyAr MjMxMiw3IEBAIGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5MihQYXJzZVN0YXRlICpwc3RhdGUsIE5v ZGUgKm5vZGUsIExpc3QgKip0bGlzdCwKICAqIHRsaXN0CXRoZSB0YXJnZXQgbGlzdCAocGFzc2Vk IGJ5IHJlZmVyZW5jZSBzbyB3ZSBjYW4gYXBwZW5kIHRvIGl0KQogICogZXhwcktpbmQgaWRlbnRp ZmllcyBjbGF1c2UgdHlwZSBiZWluZyBwcm9jZXNzZWQKICAqLwotVGFyZ2V0RW50cnkgKgorc3Rh dGljIFRhcmdldEVudHJ5ICoKIGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OShQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKm5vZGUsIExpc3QgKip0bGlzdCwKIAkJCQkJCSBQYXJzZUV4cHJLaW5kIGV4 cHJLaW5kKQogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5oCmluZGV4IDhhYWFjODgxZjJiLi5m ZTIzNDYxMTAwNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jbGF1c2UuaApAQCAtNTIsOSArNTIsNiBA QCBleHRlcm4gTGlzdCAqYWRkVGFyZ2V0VG9Tb3J0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIFRh cmdldEVudHJ5ICp0bGUsCiBleHRlcm4gSW5kZXggYXNzaWduU29ydEdyb3VwUmVmKFRhcmdldEVu dHJ5ICp0bGUsIExpc3QgKnRsaXN0KTsKIGV4dGVybiBib29sIHRhcmdldElzSW5Tb3J0TGlzdChU YXJnZXRFbnRyeSAqdGxlLCBPaWQgc29ydG9wLCBMaXN0ICpzb3J0TGlzdCk7CiAKLWV4dGVybiBU YXJnZXRFbnRyeSAqZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5KFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqbm9kZSwKLQkJCQkJCQkJCQkJIExpc3QgKip0bGlzdCwgUGFyc2VFeHByS2luZCBleHBy S2luZCk7Ci0KIC8qIGZ1bmN0aW9ucyBpbiBwYXJzZV9qc29udGFibGUuYyAqLwogZXh0ZXJuIFBh cnNlTmFtZXNwYWNlSXRlbSAqdHJhbnNmb3JtSnNvblRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg SnNvblRhYmxlICpqdCk7CiAKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0029-Rename-RPR-NFA-constructors-to-make-clone-per-Jia.txt" Content-Disposition: attachment; filename="nocfbot-0029-Rename-RPR-NFA-constructors-to-make-clone-per-Jia.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrm28 RnJvbSA4YTAwYzU1MmY1ZjNlY2Q2Yzg4OWI1M2I4MDYyMzA0ZDQzYjA2MjUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTE6MTY6NDkgKzA5MDAKU3ViamVjdDogW1BBVENIIDI5LzY4XSBS ZW5hbWUgUlBSIE5GQSBjb25zdHJ1Y3RvcnMgdG8gbWFrZS9jbG9uZSBwZXIgSmlhbiBIZSdzCiBy b3VuZC0zIHJldmlldwoKUmVuYW1lIG5mYV9jb250ZXh0X2FsbG9jIGFuZCBuZmFfc3RhdGVfYWxs b2MgdG8gX21ha2UgKGEgYmxhbmsKYWxsb2NhdGlvbiksIGFuZCBuZmFfc3RhdGVfY3JlYXRlIHRv IG5mYV9zdGF0ZV9jbG9uZSAoYnVpbGQgYSBzdGF0ZSBmcm9tCmFuIGV4aXN0aW5nIG9uZSdzIGNv dW50cykuICBUaGlzIGZvbGxvd3MgdGhlIG1ha2VOb2RlIHByZWNlZGVudCBhbmQgdGhlCnJlZ2V4 IGVuZ2luZSdzIGNsb25lc3VjY2Vzc29yc3RhdGVzL2Nsb25lb3V0cy4gIEFsc28gcmV3b3JkIHRo ZQpuZmFfc3RhdGVfY2xvbmUgaGVhZGVyIGNvbW1lbnQgZnJvbSAiQ3JlYXRlIiB0byAiQ2xvbmUi LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgICAgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICB8IDU4ICsrKysrKysrKysrKystLS0t LS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCB8ICAyICst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgIHwgIDIgKy0KIDQgZmlsZXMg Y2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JF QURNRS5ycHIKaW5kZXggNDY3Y2MwM2VjZmYuLjkzOTZhNTY5ZmJkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9SRUFETUUucnByCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JF QURNRS5ycHIKQEAgLTU3OSw3ICs1NzksNyBAQCBWSS0yLiBDb250ZXh0IENyZWF0aW9uOiBFeGVj UlBSU3RhcnRDb250ZXh0KCkKIAogQ3JlYXRlcyBhIG5ldyBjb250ZXh0IGFuZCBwZXJmb3JtcyB0 aGUgaW5pdGlhbCBhZHZhbmNlLgogCi0gICgxKSBBbGxvY2F0ZSBjb250ZXh0IHZpYSBuZmFfY29u dGV4dF9hbGxvYygpCisgICgxKSBBbGxvY2F0ZSBjb250ZXh0IHZpYSBuZmFfY29udGV4dF9tYWtl KCkKICAgKDIpIFNldCBtYXRjaFN0YXJ0Um93ID0gcG9zCiAgICgzKSBDcmVhdGUgaW5pdGlhbCBz dGF0ZTogZWxlbUlkeD0wIChmaXJzdCBwYXR0ZXJuIGVsZW1lbnQpLAogICAgICAgY291bnRzPWFs bCB6ZXJvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggOWJhZDM2MjM5ZjguLjQwMjJjYTY2ZTg0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC01NCwxMSArNTQsMTEgQEAgbmZhX21hcmtfdmlz aXRlZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgpCiB9CiAKIC8qIEZv cndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHN0YXRlIG1hbmFnZW1lbnQgKi8KLXN0YXRpYyBSUFJO RkFTdGF0ZSAqbmZhX3N0YXRlX2FsbG9jKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CitzdGF0 aWMgUlBSTkZBU3RhdGUgKm5mYV9zdGF0ZV9tYWtlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7 CiBzdGF0aWMgdm9pZCBuZmFfc3RhdGVfZnJlZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQVN0YXRlICpzdGF0ZSk7CiBzdGF0aWMgdm9pZCBuZmFfc3RhdGVfZnJlZV9saXN0KFdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKmxpc3QpOwotc3RhdGljIFJQUk5GQVN0 YXRlICpuZmFfc3RhdGVfY3JlYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50MTYgZWxl bUlkeCwKLQkJCQkJCQkJCSBpbnQzMiAqY291bnRzLCBib29sIHNvdXJjZUFic29yYmFibGUpOwor c3RhdGljIFJQUk5GQVN0YXRlICpuZmFfc3RhdGVfY2xvbmUoV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlLCBpbnQxNiBlbGVtSWR4LAorCQkJCQkJCQkJaW50MzIgKmNvdW50cywgYm9vbCBzb3VyY2VB YnNvcmJhYmxlKTsKIHN0YXRpYyBib29sIG5mYV9zdGF0ZXNfZXF1YWwoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqczEsCiAJCQkJCQkJIFJQUk5GQVN0YXRlICpzMik7CiBz dGF0aWMgdm9pZCBuZmFfYWRkX3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IFJQUk5GQUNvbnRleHQgKmN0eCwKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgbmZhX2Fk ZF9tYXRjaGVkX3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAq Y3R4LAogCQkJCQkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgaW50NjQgbWF0Y2hFbmRSb3cpOwog CiAvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAtIE5GQSBjb250ZXh0IG1hbmFnZW1lbnQgKGludGVy bmFsKSAqLwotc3RhdGljIFJQUk5GQUNvbnRleHQgKm5mYV9jb250ZXh0X2FsbG9jKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSk7CitzdGF0aWMgUlBSTkZBQ29udGV4dCAqbmZhX2NvbnRleHRfbWFr ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogc3RhdGljIHZvaWQgbmZhX3VubGlua19jb250 ZXh0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4KTsKIAogLyog Rm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgc3RhdGlzdGljcyAqLwpAQCAtMTk5LDE0ICsxOTks MTQgQEAgc3RhdGljIHZvaWQgbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJORkFDb250ZXh0ICpjdHgsCiAgKi8KIAogLyoKLSAqIG5mYV9zdGF0ZV9hbGxvYworICogbmZh X3N0YXRlX21ha2UKICAqCiAgKiBBbGxvY2F0ZSBhbiBORkEgc3RhdGUsIHJldXNpbmcgZnJvbSBm cmVlTGlzdCBpZiBhdmFpbGFibGUuCiAgKiBmcmVlTGlzdCBpcyBzdG9yZWQgaW4gV2luZG93QWdn U3RhdGUgZm9yIHJldXNlIGFjcm9zcyBtYXRjaCBhdHRlbXB0cy4KICAqIFVzZXMgZmxleGlibGUg YXJyYXkgbWVtYmVyIGZvciBjb3VudHNbXS4KICAqLwogc3RhdGljIFJQUk5GQVN0YXRlICoKLW5m YV9zdGF0ZV9hbGxvYyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCituZmFfc3RhdGVfbWFrZShX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiB7CiAJUlBSTkZBU3RhdGUgKnN0YXRlOwogCkBAIC0y NjUsMjEgKzI2NSwyMSBAQCBuZmFfc3RhdGVfZnJlZV9saXN0KFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBU3RhdGUgKmxpc3QpCiB9CiAKIC8qCi0gKiBuZmFfc3RhdGVfY3JlYXRlCisg KiBuZmFfc3RhdGVfY2xvbmUKICAqCi0gKiBDcmVhdGUgYSBuZXcgc3RhdGUgd2l0aCBnaXZlbiBl bGVtSWR4IGFuZCBjb3VudHMuCisgKiBDbG9uZSBhIHN0YXRlIGZyb20gdGhlIGdpdmVuIGVsZW1J ZHggYW5kIGNvdW50cy4KICAqIGlzQWJzb3JiYWJsZSBpcyBjb21wdXRlZCBpbW1lZGlhdGVseTog aW5oZXJpdGVkIEFORCBuZXcgZWxlbWVudCdzIGZsYWcuCiAgKiBNb25vdG9uaWMgcHJvcGVydHk6 IG9uY2UgZmFsc2UsIHN0YXlzIGZhbHNlIHRocm91Z2ggYWxsIHRyYW5zaXRpb25zLgogICoKICAq IENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgbGlua2luZyB0aGUgcmV0dXJuZWQgc3RhdGUuCiAg Ki8KIHN0YXRpYyBSUFJORkFTdGF0ZSAqCi1uZmFfc3RhdGVfY3JlYXRlKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgaW50MTYgZWxlbUlkeCwKLQkJCQkgaW50MzIgKmNvdW50cywgYm9vbCBzb3Vy Y2VBYnNvcmJhYmxlKQorbmZhX3N0YXRlX2Nsb25lKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg aW50MTYgZWxlbUlkeCwKKwkJCQlpbnQzMiAqY291bnRzLCBib29sIHNvdXJjZUFic29yYmFibGUp CiB7CiAJUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47CiAJaW50CQkJ bWF4RGVwdGggPSBwYXR0ZXJuLT5tYXhEZXB0aDsKLQlSUFJORkFTdGF0ZSAqc3RhdGUgPSBuZmFf c3RhdGVfYWxsb2Mod2luc3RhdGUpOworCVJQUk5GQVN0YXRlICpzdGF0ZSA9IG5mYV9zdGF0ZV9t YWtlKHdpbnN0YXRlKTsKIAlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXR0ZXJuLT5lbGVt ZW50c1tlbGVtSWR4XTsKIAogCXN0YXRlLT5lbGVtSWR4ID0gZWxlbUlkeDsKQEAgLTQxOCwxMiAr NDE4LDEyIEBAIG5mYV9hZGRfbWF0Y2hlZF9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IFJQUk5GQUNvbnRleHQgKmN0eCwKIH0KIAogLyoKLSAqIG5mYV9jb250ZXh0X2FsbG9jCisgKiBu ZmFfY29udGV4dF9tYWtlCiAgKgogICogQWxsb2NhdGUgYW4gTkZBIGNvbnRleHQsIHJldXNpbmcg ZnJvbSBmcmVlIGxpc3QgaWYgYXZhaWxhYmxlLgogICovCiBzdGF0aWMgUlBSTkZBQ29udGV4dCAq Ci1uZmFfY29udGV4dF9hbGxvYyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCituZmFfY29udGV4 dF9tYWtlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIHsKIAlSUFJORkFDb250ZXh0ICpjdHg7 CiAKQEAgLTkzMSw4ICs5MzEsOCBAQCBuZmFfcm91dGVfdG9fZWxlbShXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAogCQkvKiBDcmVhdGUgc2tpcCBzdGF0ZSBi ZWZvcmUgYWRkX3VuaXF1ZSwgd2hpY2ggbWF5IGZyZWUgc3RhdGUgKi8KIAkJaWYgKFJQUkVsZW1D YW5Ta2lwKG5leHRFbGVtKSkKLQkJCXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3Rh dGUsIG5leHRFbGVtLT5uZXh0LAotCQkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNB YnNvcmJhYmxlKTsKKwkJCXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jbG9uZSh3aW5zdGF0ZSwgbmV4 dEVsZW0tPm5leHQsCisJCQkJCQkJCQkJc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJs ZSk7CiAKIAkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgc3RhdGUpOwogCkBA IC05NzgsOCArOTc4LDggQEAgbmZhX2FkdmFuY2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJYnJlYWs7CiAKIAkJLyogQ3JlYXRlIGluZGVwZW5k ZW50IHN0YXRlIGZvciBlYWNoIGJyYW5jaCAqLwotCQluZXdTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVh dGUod2luc3RhdGUsIGFsdElkeCwKLQkJCQkJCQkJCXN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fi c29yYmFibGUpOworCQluZXdTdGF0ZSA9IG5mYV9zdGF0ZV9jbG9uZSh3aW5zdGF0ZSwgYWx0SWR4 LAorCQkJCQkJCQkgICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKIAogCQkv KiBSZWN1cnNpdmVseSBwcm9jZXNzIHRoaXMgYnJhbmNoIGJlZm9yZSBuZXh0ICovCiAJCW5mYV9h ZHZhbmNlX3N0YXRlKHdpbnN0YXRlLCBjdHgsIG5ld1N0YXRlLCBjdXJyZW50UG9zKTsKQEAgLTEw MTEsOCArMTAxMSw4IEBAIG5mYV9hZHZhbmNlX2JlZ2luKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCS8qIE9wdGlvbmFsIGdyb3VwOiBjcmVhdGUgc2tpcCBw YXRoIChidXQgZG9uJ3Qgcm91dGUgeWV0KSAqLwogCWlmIChlbGVtLT5taW4gPT0gMCkKIAl7Ci0J CXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIGVsZW0tPmp1bXAsCi0JCQkJ CQkJCQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJCXNraXBTdGF0ZSA9 IG5mYV9zdGF0ZV9jbG9uZSh3aW5zdGF0ZSwgZWxlbS0+anVtcCwKKwkJCQkJCQkJCXN0YXRlLT5j b3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOwogCX0KIAogCWlmIChza2lwU3RhdGUgIT0gTlVM TCAmJiBSUFJFbGVtSXNSZWx1Y3RhbnQoZWxlbSkpCkBAIC0xMDk0LDggKzEwOTQsOCBAQCBuZmFf YWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs CiAJCSAqLS0tLS0tLS0tLQogCQkgKi8KIAkJaWYgKFJQUkVsZW1DYW5FbXB0eUxvb3AoZWxlbSkp Ci0JCQlmZlN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgc3RhdGUtPmVsZW1JZHgs Ci0JCQkJCQkJCQkgICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKwkJCWZm U3RhdGUgPSBuZmFfc3RhdGVfY2xvbmUod2luc3RhdGUsIHN0YXRlLT5lbGVtSWR4LAorCQkJCQkJ CQkJICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKIAogCQkvKiBQcmltYXJ5 IHBhdGg6IGxvb3AgYmFjayBmb3IgcmVhbCBtYXRjaGVzICovCiAJCWZvciAoaW50IGQgPSBkZXB0 aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQpAQCAtMTE2Myw4ICsxMTYzLDggQEAg bmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAq Y3R4LAogCQkgKiBDcmVhdGUgZXhpdCBzdGF0ZSBmaXJzdCAobmVlZCBvcmlnaW5hbCBjb3VudHMg YmVmb3JlIG1vZGlmeWluZwogCQkgKiBzdGF0ZSkKIAkJICovCi0JCWV4aXRTdGF0ZSA9IG5mYV9z dGF0ZV9jcmVhdGUod2luc3RhdGUsIGVsZW0tPm5leHQsCi0JCQkJCQkJCQkgc3RhdGUtPmNvdW50 cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJCWV4aXRTdGF0ZSA9IG5mYV9zdGF0ZV9jbG9uZSh3 aW5zdGF0ZSwgZWxlbS0+bmV4dCwKKwkJCQkJCQkJCXN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fi c29yYmFibGUpOwogCQlleGl0U3RhdGUtPmNvdW50c1tkZXB0aF0gPSAwOwogCQluZXh0RWxlbSA9 ICZlbGVtZW50c1tleGl0U3RhdGUtPmVsZW1JZHhdOwogCkBAIC0xMjU1LDggKzEyNTUsOCBAQCBu ZmFfYWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpj dHgsCiAJCQlSUFJORkFTdGF0ZSAqc2F2ZWRNYXRjaCA9IGN0eC0+bWF0Y2hlZFN0YXRlOwogCiAJ CQkvKiBDbG9uZSBmb3IgZXhpdCwgb3JpZ2luYWwgc3RheXMgZm9yIGxvb3AgKi8KLQkJCWNsb25l U3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBlbGVtLT5uZXh0LAotCQkJCQkJCQkJ CSAgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJCQljbG9uZVN0YXRlID0g bmZhX3N0YXRlX2Nsb25lKHdpbnN0YXRlLCBlbGVtLT5uZXh0LAorCQkJCQkJCQkJCSBzdGF0ZS0+ Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKIAkJCWNsb25lU3RhdGUtPmNvdW50c1tkZXB0 aF0gPSAwOwogCQkJbmV4dEVsZW0gPSAmZWxlbWVudHNbY2xvbmVTdGF0ZS0+ZWxlbUlkeF07CiAK QEAgLTEyODcsOCArMTI4Nyw4IEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJZWxzZQogCQl7CiAJCQkvKiBDbG9uZSBmb3Ig bG9vcCwgb3JpZ2luYWwgdXNlZCBmb3IgZXhpdCAqLwotCQkJY2xvbmVTdGF0ZSA9IG5mYV9zdGF0 ZV9jcmVhdGUod2luc3RhdGUsIHN0YXRlLT5lbGVtSWR4LAotCQkJCQkJCQkJCSAgc3RhdGUtPmNv dW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJCQljbG9uZVN0YXRlID0gbmZhX3N0YXRlX2Ns b25lKHdpbnN0YXRlLCBzdGF0ZS0+ZWxlbUlkeCwKKwkJCQkJCQkJCQkgc3RhdGUtPmNvdW50cywg c3RhdGUtPmlzQWJzb3JiYWJsZSk7CiAKIAkJCS8qIExvb3AgZmlyc3QgKHByZWZlcnJlZCBmb3Ig Z3JlZWR5KSAqLwogCQkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgY2xvbmVT dGF0ZSk7CkBAIC0xNTA1LDkgKzE1MDUsOSBAQCBFeGVjUlBSU3RhcnRDb250ZXh0KFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgc3RhcnRQb3MpCiAJUlBSUGF0dGVybiAqcGF0dGVybiA9 IHdpbnN0YXRlLT5ycFBhdHRlcm47CiAJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW07CiAKLQljdHgg PSBuZmFfY29udGV4dF9hbGxvYyh3aW5zdGF0ZSk7CisJY3R4ID0gbmZhX2NvbnRleHRfbWFrZSh3 aW5zdGF0ZSk7CiAJY3R4LT5tYXRjaFN0YXJ0Um93ID0gc3RhcnRQb3M7Ci0JY3R4LT5zdGF0ZXMg PSBuZmFfc3RhdGVfYWxsb2Mod2luc3RhdGUpOwkvKiBpbml0aWFsIHN0YXRlIGF0IGVsZW0gMCAq LworCWN0eC0+c3RhdGVzID0gbmZhX3N0YXRlX21ha2Uod2luc3RhdGUpOyAvKiBpbml0aWFsIHN0 YXRlIGF0IGVsZW0gMCAqLwogCiAJZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1swXTsKIApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKaW5kZXggMWY0OTRkMmRiMzQuLjcyZGJmMDgw YTM3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKQEAgLTM4NDQsNyArMzg0 NCw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gTm9uLWFic29yYmFibGUgY29udGV4dCBkdXJpbmcg YWJzb3JwdGlvbgogLS0gUGF0dGVybiAoQSBCKSsgQzogQSxCIGluIGFic29yYmFibGUgZ3JvdXAs IEMgaXMgbm90LgotLS0gV2hlbiBFTkQgZXhpdHMgdG8gQyB2aWEgbmZhX3N0YXRlX2NyZWF0ZSwg aXNBYnNvcmJhYmxlIGJlY29tZXMgZmFsc2UuCistLSBXaGVuIEVORCBleGl0cyB0byBDIHZpYSBu ZmFfc3RhdGVfY2xvbmUsIGlzQWJzb3JiYWJsZSBiZWNvbWVzIGZhbHNlLgogV0lUSCB0ZXN0X25v bl9hYnNvcmJhYmxlIEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEs IEFSUkFZWydBJ10pLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAppbmRleCA3NmRmYzRkODhiYy4u MTI4NDc2YWExZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCkBAIC0yNzkwLDcgKzI3OTAs NyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIE5vbi1hYnNvcmJhYmxlIGNvbnRleHQgZHVyaW5nIGFi c29ycHRpb24KIC0tIFBhdHRlcm4gKEEgQikrIEM6IEEsQiBpbiBhYnNvcmJhYmxlIGdyb3VwLCBD IGlzIG5vdC4KLS0tIFdoZW4gRU5EIGV4aXRzIHRvIEMgdmlhIG5mYV9zdGF0ZV9jcmVhdGUsIGlz QWJzb3JiYWJsZSBiZWNvbWVzIGZhbHNlLgorLS0gV2hlbiBFTkQgZXhpdHMgdG8gQyB2aWEgbmZh X3N0YXRlX2Nsb25lLCBpc0Fic29yYmFibGUgYmVjb21lcyBmYWxzZS4KIFdJVEggdGVzdF9ub25f YWJzb3JiYWJsZSBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBB UlJBWVsnQSddKSwKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0028-Clarify-RPR-comments-per-Jian-He-s-round-3-review.txt" Content-Disposition: attachment; filename="nocfbot-0028-Clarify-RPR-comments-per-Jian-He-s-round-3-review.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrk27 RnJvbSA2ODZjNTkzYTIzZDU2MDRlNDhhNWYwOGE4NGNmNTI1Y2JkYThhMDcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTE6MDM6NTcgKzA5MDAKU3ViamVjdDogW1BBVENIIDI4LzY4XSBD bGFyaWZ5IFJQUiBjb21tZW50cyBwZXIgSmlhbiBIZSdzIHJvdW5kLTMgcmV2aWV3CgotIFJlcGxh Y2UgZnJhZ2lsZSAiVGVzdHMgbGluZSBOTk4iIGNvbW1lbnRzIHdpdGggdGhlIGJyYW5jaCBhbmQg Y29uZGl0aW9uCiAgdGhleSBleGVyY2lzZSwgc28gdGhleSBzdXJ2aXZlIGxhdGVyIGNvZGUgc2h1 ZmZsZXMKLSBSZXdvcmQgbmZhX2FkZF9zdGF0ZV91bmlxdWUgdG8gZGVzY3JpYmUgYXBwZW5kaW5n IHRvIHRoZSBsaXN0IHRhaWwKLSBEaXNhbWJpZ3VhdGUgIkVORCBjaGFpbiIgYXMgdGhlIGNoYWlu IG9mIEVORCBlbGVtZW50cwotIFJlc3RhdGUgdGhlIG5mYV9hZHZhbmNlX3ZhciBBc3NlcnQgY29t bWVudCBhcyBhIHN0cnVjdHVyYWwgaW52YXJpYW50CiAgKG1pbiA8PSBtYXgpLCBub3QgYSBwb3N0 LW1hdGNoIGNsYWltCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICAg fCAxMSArKysrKystLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQg fCAgOCArKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsICAgICAgfCAg OCArKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggNDQ2M2NmZTBhNWMuLjliYWQzNjIzOWY4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0zMzQsNyArMzM0LDggQEAgbmZhX3N0YXRlc19l cXVhbChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0YXRlICpzMSwgUlBSTkZBU3Rh dGUgKnMyKQogLyoKICAqIG5mYV9hZGRfc3RhdGVfdW5pcXVlCiAgKgotICogQWRkIGEgc3RhdGUg dG8gY3R4LT5zdGF0ZXMgYXQgdGhlIEVORCwgb25seSBpZiBubyBkdXBsaWNhdGUgZXhpc3RzLgor ICogQWRkIHRoZSBzdGF0ZSB0byB0aGUgZW5kIG9mIHRoZSBjdHgtPnN0YXRlcyBsaW5rZWQgbGlz dCwgYnV0IG9ubHkgaWYgYQorICogZHVwbGljYXRlIHN0YXRlIGlzIG5vdCBhbHJlYWR5IHByZXNl bnQuCiAgKiBFYXJsaWVyIHN0YXRlcyBoYXZlIGJldHRlciBsZXhpY2FsIG9yZGVyIChERlMgdHJh dmVyc2FsIG9yZGVyKSwgc28gZXhpc3RpbmcKICAqIHdpbnM7IHRoZSBuZXcgc3RhdGUgaXMgZnJl ZWQgd2hlbiBhIGR1cGxpY2F0ZSBpcyBmb3VuZC4KICAqLwpAQCAtNzc5LDcgKzc4MCw3IEBAIG5m YV9ldmFsX3Zhcl9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUlBhdHRlcm5FbGVt ZW50ICplbGVtLAogICogICAgIHByZXZpb3VzIGFkdmFuY2Ugd2hlbiBjb3VudCA+PSBtaW4gd2Fz IHNhdGlzZmllZCkKICAqCiAgKiBGb3IgVkFScyB0aGF0IHJlYWNoZWQgbWF4IGNvdW50IGZvbGxv d2VkIGJ5IEVORDoKLSAqICAgLSBBZHZhbmNlIHRocm91Z2ggRU5EIGNoYWluIHRvIHJlYWNoIGFi c29ycHRpb24ganVkZ21lbnQgcG9pbnQKKyAqICAgLSBBZHZhbmNlIHRocm91Z2ggdGhlIEVORC1l bGVtZW50IGNoYWluIHRvIHRoZSBhYnNvcnB0aW9uIGp1ZGdtZW50IHBvaW50CiAgKiAgIC0gT25s eSBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+PSBtYXgsIG1heCAhPSBJTkYpIGFyZSBoYW5k bGVkCiAgKiAgIC0gQ2hhaW5zIHRocm91Z2ggRU5EIGVsZW1lbnRzIHdoaWxlIGNvdW50ID49IG1h eCAobXVzdC1leGl0IHBhdGgpCiAgKgpAQCAtNzk2LDggKzc5Nyw4IEBAIG5mYV9tYXRjaChXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hl ZCkKIAogCS8qCiAJICogRXZhbHVhdGUgVkFSIGVsZW1lbnRzIGFnYWluc3QgY3VycmVudCByb3cu IEZvciBWQVJzIHRoYXQgcmVhY2ggbWF4Ci0JICogY291bnQgd2l0aCBFTkQgbmV4dCwgYWR2YW5j ZSB0aHJvdWdoIEVORCBjaGFpbiBpbmxpbmUgc28gYWJzb3JiIHBoYXNlCi0JICogY2FuIGNvbXBh cmUgc3RhdGVzIGF0IGp1ZGdtZW50IHBvaW50cy4KKwkgKiBjb3VudCB3aXRoIEVORCBuZXh0LCBh ZHZhbmNlIHRocm91Z2ggdGhlIGNoYWluIG9mIEVORCBlbGVtZW50cyBpbmxpbmUKKwkgKiBzbyBh YnNvcmIgcGhhc2UgY2FuIGNvbXBhcmUgc3RhdGVzIGF0IGp1ZGdtZW50IHBvaW50cy4KIAkgKi8K IAlmb3IgKHN0YXRlID0gY3R4LT5zdGF0ZXM7IHN0YXRlICE9IE5VTEw7IHN0YXRlID0gbmV4dFN0 YXRlKQogCXsKQEAgLTEyMjksNyArMTIzMCw3IEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAlib29sCQljYW5Mb29wID0gKGVs ZW0tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIHx8IGNvdW50IDwgZWxlbS0+bWF4KTsKIAlib29s CQljYW5FeGl0ID0gKGNvdW50ID49IGVsZW0tPm1pbik7CiAKLQkvKiBBZnRlciBhIHN1Y2Nlc3Nm dWwgbWF0Y2gsIGNvdW50ID49IDEsIHNvIGF0IGxlYXN0IG9uZSBtdXN0IGJlIHRydWUgKi8KKwkv KiBtaW4gPD0gbWF4LCBzbyAhY2FuRXhpdCAoY291bnQgPCBtaW4pIGltcGxpZXMgY2FuTG9vcCAo Y291bnQgPCBtYXgpICovCiAJQXNzZXJ0KGNhbkxvb3AgfHwgY2FuRXhpdCk7CiAKIAkvKiBlbGVt LT5uZXh0IG11c3QgYmUgYSB2YWxpZCBpbmRleCBmb3IgYW55IHJlYWNoYWJsZSBWQVIgKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggZDhmODA1Yzg5YWEuLmM5NmEx MjE2Y2MzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAtMzQ0Miw4 ICszNDQyLDggQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUg VkFSIG1lcmdlOiBBIEErIC0+IGF7Mix9Ci0tLSBUZXN0cyBsaW5lIDI1MTogY2hpbGQtPm1heCA9 PSBSUFJfUVVBTlRJVFlfSU5GIGJyYW5jaCBpbiBtZXJnZUNvbnNlY3V0aXZlVmFycwotLS0gcHJl djogQXsxLDF9IChmaW5pdGUpLCBjaGlsZDogQSsgKGluZmluaXRlKSB0cmlnZ2VycyBsaW5lIDI1 MSBldmFsdWF0aW9uCistLSBFeGVyY2lzZXMgdGhlIGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZ X0lORiBicmFuY2ggaW4gbWVyZ2VDb25zZWN1dGl2ZVZhcnMsCistLSB3aGVyZSBhIGZpbml0ZSBw cmV2IChBezEsMX0pIG1lZXRzIGFuIGluZmluaXRlIGNoaWxkIChBKykuCiBFWFBMQUlOIChDT1NU UyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKQEAgLTM0OTIsOCArMzQ5Miw4IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICg3IHJvd3MpCiAK IC0tIENvbnNlY3V0aXZlIEdST1VQIG1lcmdlOiAoQSBCKXsyfSAoQSBCKSsgLT4gKGEgYil7Myx9 Ci0tLSBUZXN0cyBsaW5lIDMyNTogY2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIGJyYW5j aCBpbiBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzCi0tLSBwcmV2OiAoQSBCKXsyLDJ9IChmaW5pdGUp LCBjaGlsZDogKEEgQikrIChpbmZpbml0ZSkgdHJpZ2dlcnMgbGluZSAzMjUgZXZhbHVhdGlvbgor LS0gRXhlcmNpc2VzIHRoZSBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgYnJhbmNoIGlu IG1lcmdlQ29uc2VjdXRpdmVHcm91cHMsCistLSB3aGVyZSBhIGZpbml0ZSBwcmV2ICgoQSBCKXsy LDJ9KSBtZWV0cyBhbiBpbmZpbml0ZSBjaGlsZCAoKEEgQikrKS4KIEVYUExBSU4gKENPU1RTIE9G RikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgogV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCmluZGV4IDZjMjM2NWEyZDIwLi5kN2I2M2NmYzY5 MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbApAQCAtMjM3OSw4ICsyMzc5LDggQEAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwogICAgICAgICAgICAgIFBBVFRFUk4gKEErIEEqKSBERUZJTkUgQSBBUyB2 YWwgPiAwKTsKIAogLS0gQ29uc2VjdXRpdmUgVkFSIG1lcmdlOiBBIEErIC0+IGF7Mix9Ci0tLSBU ZXN0cyBsaW5lIDI1MTogY2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIGJyYW5jaCBpbiBt ZXJnZUNvbnNlY3V0aXZlVmFycwotLS0gcHJldjogQXsxLDF9IChmaW5pdGUpLCBjaGlsZDogQSsg KGluZmluaXRlKSB0cmlnZ2VycyBsaW5lIDI1MSBldmFsdWF0aW9uCistLSBFeGVyY2lzZXMgdGhl IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiBicmFuY2ggaW4gbWVyZ2VDb25zZWN1dGl2 ZVZhcnMsCistLSB3aGVyZSBhIGZpbml0ZSBwcmV2IChBezEsMX0pIG1lZXRzIGFuIGluZmluaXRl IGNoaWxkIChBKykuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 IEZST00gcnByX3BsYW4KIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKQEAgLTIzOTksOCArMjM5OSw4IEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKICAgICAgICAgICAgICBQQVRURVJOICgoQSBCKSsgKEEgQikrKSBERUZJ TkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOwogCiAtLSBDb25zZWN1dGl2ZSBHUk9V UCBtZXJnZTogKEEgQil7Mn0gKEEgQikrIC0+IChhIGIpezMsfQotLS0gVGVzdHMgbGluZSAzMjU6 IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiBicmFuY2ggaW4gbWVyZ2VDb25zZWN1dGl2 ZUdyb3VwcwotLS0gcHJldjogKEEgQil7MiwyfSAoZmluaXRlKSwgY2hpbGQ6IChBIEIpKyAoaW5m aW5pdGUpIHRyaWdnZXJzIGxpbmUgMzI1IGV2YWx1YXRpb24KKy0tIEV4ZXJjaXNlcyB0aGUgY2hp bGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIGJyYW5jaCBpbiBtZXJnZUNvbnNlY3V0aXZlR3Jv dXBzLAorLS0gd2hlcmUgYSBmaW5pdGUgcHJldiAoKEEgQil7MiwyfSkgbWVldHMgYW4gaW5maW5p dGUgY2hpbGQgKChBIEIpKykuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX3BsYW4KIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0030-Demote-RPR-nfaVisitedNWords-to-a-local-per-Jian-H.txt" Content-Disposition: attachment; filename="nocfbot-0030-Demote-RPR-nfaVisitedNWords-to-a-local-per-Jian-H.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrn29 RnJvbSA2NmE3NTRiODQ1MjY3MzBiMzFlZGYwMzQ2MjE2M2FlNDJhZWM1ZjllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTE6Mzg6MDkgKzA5MDAKU3ViamVjdDogW1BBVENIIDMwLzY4XSBE ZW1vdGUgUlBSIG5mYVZpc2l0ZWROV29yZHMgdG8gYSBsb2NhbCBwZXIgSmlhbiBIZSdzCiByb3Vu ZC0zIHJldmlldwoKbmZhVmlzaXRlZE5Xb3JkcyBpcyByZWFkIG9ubHkgb25jZSwgYXQgaW5pdCwg dG8gc2l6ZSB0aGUgdmlzaXRlZCBiaXRtYXAKKHRoZSBwZXItcm93IHJlc2V0IGNsZWFycyBqdXN0 IHRoZSBoaWdoLXdhdGVyIHJhbmdlKSwgc28gaXQgbmVlZCBub3QgbGl2ZQppbiBXaW5kb3dBZ2dT dGF0ZS4gIG5mYVN0YXRlU2l6ZSBpcyBrZXB0OiBpdCBpcyByZWNvbXB1dGVkIHBlciBzdGF0ZQph bGxvY2F0aW9uLCB0aGUgZW5naW5lJ3MgaG90dGVzdCBwYXRoLgotLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL1JFQURNRS5ycHIgICAgICB8IDIgLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYyAgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8 IDYgKysrKy0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgfCAyIC0tCiA0 IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwcgppbmRleCA5Mzk2YTU2OWZiZC4uMjZjMWExZWEyMzYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwcgpAQCAtNTIyLDcgKzUyMiw2IEBAIFYtMy4gUlBSIEZpZWxkcyBvZiBXaW5k b3dBZ2dTdGF0ZQogICBuZmFTdGF0ZUZyZWUgICAgICAgICAgICAgICAgICBSZXVzZSBwb29sIGZv ciBzdGF0ZXMKICAgbmZhVmFyTWF0Y2hlZCAgICAgICAgICAgICAgICAgUGVyLXJvdyBjYWNoZTog dmFyTWF0Y2hlZFt2YXJJZF0KICAgbmZhVmlzaXRlZEVsZW1zICAgICAgICAgICAgICAgQml0bWFw IGZvciBjeWNsZSBkZXRlY3Rpb24KLSAgbmZhVmlzaXRlZE5Xb3JkcyAgICAgICAgICAgICAgTnVt YmVyIG9mIGJpdG1hcHdvcmRzIGluIG5mYVZpc2l0ZWRFbGVtcwogICBuZmFWaXNpdGVkTWluV29y ZCAgICAgICAgICAgICBMb3dlc3QgYml0bWFwd29yZCBpbmRleCB0b3VjaGVkIHNpbmNlIGxhc3Qg cmVzZXQKICAgbmZhVmlzaXRlZE1heFdvcmQgICAgICAgICAgICAgSGlnaGVzdCBiaXRtYXB3b3Jk IGluZGV4IHRvdWNoZWQgc2luY2UgbGFzdCByZXNldAogICBuZmFTdGF0ZVNpemUgICAgICAgICAg ICAgICAgICBQcmVjb21wdXRlZCBzaXplIG9mIFJQUk5GQVN0YXRlCkBAIC0xNTQyLDcgKzE1NDEs NiBAQCBBcHBlbmRpeCBCLiBEYXRhIFN0cnVjdHVyZSBSZWxhdGlvbnNoaXAgRGlhZ3JhbQogICAg IHwtLS0gZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudDogQml0bWFwc2V0KiAobWF0Y2hfc3RhcnRf ZGVwZW5kZW50CiAgICAgfCAgICAgICAgREVGSU5FIHZhcnM7IHNlZSBWSS00KQogICAgIHwtLS0g bmZhVmlzaXRlZEVsZW1zOiBiaXRtYXB3b3JkKiAoY3ljbGUgZGV0ZWN0aW9uKQotICAgIHwtLS0g bmZhVmlzaXRlZE5Xb3JkczogaW50IChzaXplIG9mIG5mYVZpc2l0ZWRFbGVtcykKICAgICB8LS0t IG5mYVZpc2l0ZWRNaW5Xb3JkIC8gbmZhVmlzaXRlZE1heFdvcmQ6IGludDE2CiAgICAgfCAgICAg ICAgKHRvdWNoZWQtd29yZCByYW5nZSBmb3IgZmFzdCByZXNldCkKICAgICB8LS0tIG5mYUxhc3RQ cm9jZXNzZWRSb3c6IGludDY0ICgtMSA9IG5vbmUpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXgg NDAyMmNhNjZlODQuLmRjYTFlNDViZTU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC00MSw3 ICs0MSw3IEBACiAvKgogICogU2V0IHRoZSB2aXNpdGVkIGJpdCBmb3IgZWxlbUlkeCBhbmQgdXBk YXRlIHRoZSBoaWdoLXdhdGVyIG1hcmtzCiAgKiAobmZhVmlzaXRlZE1pbi9NYXhXb3JkKSBzbyB0 aGF0IHRoZSBuZXh0IHJlc2V0IG9ubHkgaGFzIHRvIGNsZWFyCi0gKiB0aGUgdG91Y2hlZCByYW5n ZSBpbnN0ZWFkIG9mIHRoZSBmdWxsIG5mYVZpc2l0ZWROV29yZHMgYXJyYXkuCisgKiB0aGUgdG91 Y2hlZCByYW5nZSBpbnN0ZWFkIG9mIHRoZSBmdWxsIG5mYVZpc2l0ZWRFbGVtcyBiaXRtYXAuCiAg Ki8KIHN0YXRpYyBpbmxpbmUgdm9pZAogbmZhX21hcmtfdmlzaXRlZChXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIGludDE2IGVsZW1JZHgpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMK aW5kZXggYmNiMzYxNGU5NmUuLjBiMDE5NmU3ZTQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jCkBAIC0zMDU4LDEyICszMDU4LDE0IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRv d0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJLyogQ2FsY3VsYXRlIE5G QSBzdGF0ZSBzaXplIGFuZCBhbGxvY2F0ZSBjeWNsZSBkZXRlY3Rpb24gYml0bWFwICovCiAJaWYg KG5vZGUtPnJwUGF0dGVybiAhPSBOVUxMKQogCXsKKwkJaW50CQkJbmZhVmlzaXRlZE5Xb3JkczsK KwogCQl3aW5zdGF0ZS0+bmZhU3RhdGVTaXplID0gb2Zmc2V0b2YoUlBSTkZBU3RhdGUsIGNvdW50 cykgKwogCQkJc2l6ZW9mKGludDMyKSAqIG5vZGUtPnJwUGF0dGVybi0+bWF4RGVwdGg7Ci0JCXdp bnN0YXRlLT5uZmFWaXNpdGVkTldvcmRzID0KKwkJbmZhVmlzaXRlZE5Xb3JkcyA9CiAJCQkobm9k ZS0+cnBQYXR0ZXJuLT5udW1FbGVtZW50cyAtIDEpIC8gQklUU19QRVJfQklUTUFQV09SRCArIDE7 CiAJCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXMgPSBwYWxsb2MwKHNpemVvZihiaXRtYXB3b3Jk KSAqCi0JCQkJCQkJCQkJCXdpbnN0YXRlLT5uZmFWaXNpdGVkTldvcmRzKTsKKwkJCQkJCQkJCQkJ bmZhVmlzaXRlZE5Xb3Jkcyk7CiAJCS8qIEhpZ2gtd2F0ZXIgbWFyayBzZW50aW5lbHM6IG5vIGJp dHMgc2V0IHlldC4gKi8KIAkJd2luc3RhdGUtPm5mYVZpc2l0ZWRNaW5Xb3JkID0gSU5UMTZfTUFY OwogCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZE1heFdvcmQgPSAtMTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK aW5kZXggMWZiYTE0Yjg5MmUuLjQ2NDFlZDM2Y2VlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAt MjY3MSw4ICsyNjcxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAkJCQkJCQkJ CQkJICogKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkgKi8KIAliaXRtYXB3b3JkICpuZmFWaXNpdGVk RWxlbXM7CS8qIGVsZW1JZHggdmlzaXRlZCBiaXRtYXAgZm9yIGN5Y2xlCiAJCQkJCQkJCQkgKiBk ZXRlY3Rpb24gKi8KLQlpbnQJCQluZmFWaXNpdGVkTldvcmRzOwkvKiBudW1iZXIgb2YgYml0bWFw d29yZHMgaW4KLQkJCQkJCQkJCSAqIG5mYVZpc2l0ZWRFbGVtcyAqLwogCWludDE2CQluZmFWaXNp dGVkTWluV29yZDsJLyogbG93ZXN0IGJpdG1hcHdvcmQgaW5kZXggdG91Y2hlZCBzaW5jZQogCQkJ CQkJCQkJICogbGFzdCByZXNldCAoSU5UMTZfTUFYID0gbm9uZSkgKi8KIAlpbnQxNgkJbmZhVmlz aXRlZE1heFdvcmQ7CS8qIGhpZ2hlc3QgYml0bWFwd29yZCBpbmRleCB0b3VjaGVkIHNpbmNlCi0t IAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0031-Rename-the-AST-level-prefix-suffix-rewrite-from-a.txt" Content-Disposition: attachment; filename="nocfbot-0031-Rename-the-AST-level-prefix-suffix-rewrite-from-a.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrp30 RnJvbSA0ODE3YmU0MWE4MTJkZjkzM2YwYTQ2MTYwOWM2ZDM4ZjM1MTc5YWE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTI6MDg6NTAgKzA5MDAKU3ViamVjdDogW1BBVENIIDMxLzY4XSBS ZW5hbWUgdGhlIEFTVC1sZXZlbCBwcmVmaXgvc3VmZml4IHJld3JpdGUgZnJvbQogImFic29ycHRp b24iIHRvICJtZXJnaW5nIgoKImFic29ycHRpb24iIG5vdyByZWZlcnMgb25seSB0byB0aGUgcnVu dGltZSBjb250ZXh0LWVxdWl2YWxlbmNlIGNvbGxhcHNlLgpUaGUgUGhhc2UtMSBBU1QgcmV3cml0 ZSBpbiBtZXJnZUdyb3VwUHJlZml4U3VmZml4IGlzIHJlbmFtZWQgInByZWZpeC9zdWZmaXgKbWVy Z2luZyIgdG8gbWF0Y2ggdGhlIHNpYmxpbmcgImNvbnNlY3V0aXZlIHZhcmlhYmxlIC8gZ3JvdXAg LyBBTFQgbWVyZ2luZyIKcmV3cml0ZXMuICBQZXIgdGhlIG5hbWluZyBkaXNjdXNzaW9uIHdpdGgg VGF0c3VvIElzaGlpLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgIHwgIDIg Ky0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIHwgMTcgKysrKysrKystLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvUkVBRE1FLnJwcgppbmRleCAyNmMxYTFlYTIzNi4uNDQ5YmYwNTExNTMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvUkVBRE1FLnJwcgpAQCAtMjIxLDcgKzIyMSw3IEBAIGFwcGxpZWQ6CiAgIChkKSBD b25zZWN1dGl2ZSBBTFQgbWVyZ2luZzogTWVyZ2UgcmVwZWF0ZWQgaWRlbnRpY2FsIEFMVCBub2Rl cwogICAgICAgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgLT4gKEEgfCBCKXszfQogCi0gIChlKSBQ cmVmaXgvc3VmZml4IGFic29ycHRpb246IEFic29yYiBpZGVudGljYWwgc2VxdWVuY2VzIGJlZm9y ZS9hZnRlcgorICAoZSkgUHJlZml4L3N1ZmZpeCBtZXJnaW5nOiBNZXJnZSBpZGVudGljYWwgc2Vx dWVuY2VzIGJlZm9yZS9hZnRlcgogICAgICAgYSBncm91cAogICAgICAgQSBCIChBIEIpKyAtPiAo QSBCKXsyLElORn0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnBy LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCBjNjU2ODE0NjNiMy4u MmExZDY2NWM3ZWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC00ODAsNyArNDgwLDcg QEAgbWVyZ2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hpbGRyZW4pCiAgKgkJTWVyZ2Ugc2VxdWVu Y2UgcHJlZml4L3N1ZmZpeCBpbnRvIEdST1VQIHdpdGggbWF0Y2hpbmcgY2hpbGRyZW4uCiAgKgog ICogV2hlbiBhIEdST1VQJ3MgY2hpbGRyZW4gYXBwZWFyIGFzIGEgcHJlZml4IGJlZm9yZSBhbmQv b3Igc3VmZml4IGFmdGVyCi0gKiB0aGUgR1JPVVAgaW4gYSBTRVEsIGFic29yYiB0aGVtIGJ5IGlu Y3JlbWVudGluZyB0aGUgR1JPVVAncyBxdWFudGlmaWVyLgorICogdGhlIEdST1VQIGluIGEgU0VR LCBtZXJnZSB0aGVtIGJ5IGluY3JlbWVudGluZyB0aGUgR1JPVVAncyBxdWFudGlmaWVyLgogICog VGhpcyBydW5zIGl0ZXJhdGl2ZWx5OiBBIEIgQSBCIChBIEIpKyBBIEIgLT4gKEEgQil7NSx9Lgog ICoKICAqIEFsZ29yaXRobToKQEAgLTUwMywxNSArNTAzLDE1IEBAIG1lcmdlR3JvdXBQcmVmaXhT dWZmaXgoTGlzdCAqY2hpbGRyZW4pCiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCWludAkJCW51 bUNoaWxkcmVuID0gbGlzdF9sZW5ndGgoY2hpbGRyZW4pOwogCWludAkJCWk7Ci0JaW50CQkJc2tp cFVudGlsID0gLTE7IC8qIHNraXAgc3VmZml4IGVsZW1lbnRzIGFscmVhZHkgYWJzb3JiZWQgKi8K KwlpbnQJCQlza2lwVW50aWwgPSAtMTsgLyogc2tpcCBzdWZmaXggZWxlbWVudHMgYWxyZWFkeSBt ZXJnZWQgKi8KIAogCWZvciAoaSA9IDA7IGkgPCBudW1DaGlsZHJlbjsgaSsrKQogCXsKIAkJUlBS UGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxpc3RfbnRoKGNoaWxkcmVu LCBpKTsKIAogCQkvKgotCQkgKiBUaGUgc3VmZml4IGFic29ycHRpb24gbG9naWMgYmVsb3cgYWRq dXN0cyBpIHRvIHNraXAgYWJzb3JiZWQKLQkJICogZWxlbWVudHMsIGVuc3VyaW5nIHdlIG5ldmVy IHJldmlzaXQgdGhlbS4gVmVyaWZ5IHRoaXMgaW52YXJpYW50LgorCQkgKiBUaGUgc3VmZml4IG1l cmdlIGxvZ2ljIGJlbG93IGFkanVzdHMgaSB0byBza2lwIG1lcmdlZCBlbGVtZW50cywKKwkJICog ZW5zdXJpbmcgd2UgbmV2ZXIgcmV2aXNpdCB0aGVtLiBWZXJpZnkgdGhpcyBpbnZhcmlhbnQuCiAJ CSAqLwogCQlBc3NlcnQoaSA+PSBza2lwVW50aWwpOwogCkBAIC01NDMsNyArNTQzLDcgQEAgbWVy Z2VHcm91cFByZWZpeFN1ZmZpeChMaXN0ICpjaGlsZHJlbikKIAkJCWdyb3VwQ2hpbGRDb3VudCA9 IGxpc3RfbGVuZ3RoKGdyb3VwQ29udGVudCk7CiAKIAkJCS8qCi0JCQkgKiBQUkVGSVggTUVSR0U6 IENoZWNrIGlmIHByZWNlZGluZyBlbGVtZW50cyBtYXRjaC4gS2VlcCBhYnNvcmJpbmcKKwkJCSAq IFBSRUZJWCBNRVJHRTogQ2hlY2sgaWYgcHJlY2VkaW5nIGVsZW1lbnRzIG1hdGNoLiBLZWVwIG1l cmdpbmcKIAkJCSAqIGFzIGxvbmcgYXMgd2UgaGF2ZSBtYXRjaGluZyBwcmVmaXhlcy4KIAkJCSAq LwogCQkJd2hpbGUgKHByZWZpeExlbiA+PSBncm91cENoaWxkQ291bnQgJiYgZ3JvdXBDaGlsZENv dW50ID4gMCkKQEAgLTU5Miw3ICs1OTIsNyBAQCBtZXJnZUdyb3VwUHJlZml4U3VmZml4KExpc3Qg KmNoaWxkcmVuKQogCQkJfQogCiAJCQkvKgotCQkJICogU1VGRklYIE1FUkdFOiBDaGVjayBpZiBm b2xsb3dpbmcgZWxlbWVudHMgbWF0Y2guIEtlZXAgYWJzb3JiaW5nCisJCQkgKiBTVUZGSVggTUVS R0U6IENoZWNrIGlmIGZvbGxvd2luZyBlbGVtZW50cyBtYXRjaC4gS2VlcCBtZXJnaW5nCiAJCQkg KiBhcyBsb25nIGFzIHdlIGhhdmUgbWF0Y2hpbmcgc3VmZml4ZXMuCiAJCQkgKi8KIAkJCXdoaWxl IChpICsgZ3JvdXBDaGlsZENvdW50IDwgbnVtQ2hpbGRyZW4gJiYgZ3JvdXBDaGlsZENvdW50ID4g MCkKQEAgLTYyMyw3ICs2MjMsNyBAQCBtZXJnZUdyb3VwUHJlZml4U3VmZml4KExpc3QgKmNoaWxk cmVuKQogCQkJCQkgY2hpbGQtPm1heCA8IFJQUl9RVUFOVElUWV9JTkYgLSAxKSkKIAkJCQl7CiAJ CQkJCS8qCi0JCQkJCSAqIE1hdGNoISBBYnNvcmIgc3VmZml4IGJ5IGluY3JlbWVudGluZyBxdWFu dGlmaWVyIGFuZAorCQkJCQkgKiBNYXRjaCEgTWVyZ2Ugc3VmZml4IGJ5IGluY3JlbWVudGluZyBx dWFudGlmaWVyIGFuZAogCQkJCQkgKiBza2lwcGluZy4KIAkJCQkJICovCiAJCQkJCWNoaWxkLT5t aW4gKz0gMTsKQEAgLTYzMiw4ICs2MzIsNyBAQCBtZXJnZUdyb3VwUHJlZml4U3VmZml4KExpc3Qg KmNoaWxkcmVuKQogCQkJCQlza2lwVW50aWwgPSBzdWZmaXhTdGFydCArIGdyb3VwQ2hpbGRDb3Vu dDsKIAogCQkJCQkvKgotCQkJCQkgKiBVcGRhdGUgaSB0byBjb250aW51ZSBzdWZmaXggY2hlY2sg YWZ0ZXIgYWJzb3JiZWQKLQkJCQkJICogZWxlbWVudHMKKwkJCQkJICogVXBkYXRlIGkgdG8gY29u dGludWUgc3VmZml4IGNoZWNrIGFmdGVyIG1lcmdlZCBlbGVtZW50cwogCQkJCQkgKi8KIAkJCQkJ aSA9IHNraXBVbnRpbCAtIDE7CiAJCQkJfQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0032-Drop-non-standard-per-group-banner-labels-from-RP.txt" Content-Disposition: attachment; filename="nocfbot-0032-Drop-non-standard-per-group-banner-labels-from-RP.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrr31 RnJvbSBiNWE4MDY1YWExZDRlNWY0Njc5NTA4YzhkYmFmZDY0NjVlZjJkNmFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTI6NDk6MTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDMyLzY4XSBE cm9wIG5vbi1zdGFuZGFyZCBwZXItZ3JvdXAgYmFubmVyIGxhYmVscyBmcm9tIFJQUgogZm9yd2Fy ZCBkZWNsYXJhdGlvbnMKClRoZSBwZXItZ3JvdXAgIkZvcndhcmQgZGVjbGFyYXRpb25zIC0gLi4u IiBsYWJlbHMgaW4gZXhlY1JQUi5jIGFyZSBsb2NhbAp0byB0aGUgUlBSIGZpbGVzOyB0aGUgdHJl ZSBjb252ZW50aW9uIGlzIGEgc2luZ2xlIGJhbm5lciBvdmVyIHRoZSBibG9jaywKb3Igbm9uZS4g IENvbnNvbGlkYXRlIHRvIG9uZSAiLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8iIGJhbm5lci4g IFBlcgpKaWFuIEhlJ3Mgb2ZmLWxpc3QgcmV2aWV3LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNSUFIuYyB8IDYgKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IGRjYTFlNDViZTU3Li4zNDYz ODQwOWY2NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtNTMsNyArNTMsNyBAQCBuZmFfbWFy a192aXNpdGVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50MTYgZWxlbUlkeCkKIAl3aW5z dGF0ZS0+bmZhVmlzaXRlZE1heFdvcmQgPSBNYXgod2luc3RhdGUtPm5mYVZpc2l0ZWRNYXhXb3Jk LCB3KTsKIH0KIAotLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgc3RhdGUgbWFuYWdlbWVu dCAqLworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KIHN0YXRpYyBSUFJORkFTdGF0ZSAqbmZh X3N0YXRlX21ha2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyB2b2lkIG5mYV9z dGF0ZV9mcmVlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKnN0YXRlKTsK IHN0YXRpYyB2b2lkIG5mYV9zdGF0ZV9mcmVlX2xpc3QoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBSUFJORkFTdGF0ZSAqbGlzdCk7CkBAIC02NiwyMyArNjYsMTkgQEAgc3RhdGljIHZvaWQgbmZh X2FkZF9zdGF0ZV91bmlxdWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0 ICpjdHgsCiBzdGF0aWMgdm9pZCBuZmFfYWRkX21hdGNoZWRfc3RhdGUoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJCQkJCSAgUlBSTkZBU3RhdGUgKnN0 YXRlLCBpbnQ2NCBtYXRjaEVuZFJvdyk7CiAKLS8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZB IGNvbnRleHQgbWFuYWdlbWVudCAoaW50ZXJuYWwpICovCiBzdGF0aWMgUlBSTkZBQ29udGV4dCAq bmZhX2NvbnRleHRfbWFrZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogc3RhdGljIHZvaWQg bmZhX3VubGlua19jb250ZXh0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4 dCAqY3R4KTsKIAotLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgc3RhdGlzdGljcyAqLwog c3RhdGljIHZvaWQgbmZhX3VwZGF0ZV9sZW5ndGhfc3RhdHMoaW50NjQgY291bnQsIE5GQUxlbmd0 aFN0YXRzICpzdGF0cywgaW50NjQgbmV3TGVuKTsKIHN0YXRpYyB2b2lkIG5mYV9yZWNvcmRfY29u dGV4dF9za2lwcGVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgc2tpcHBlZExlbik7 CiBzdGF0aWMgdm9pZCBuZmFfcmVjb3JkX2NvbnRleHRfYWJzb3JiZWQoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBpbnQ2NCBhYnNvcmJlZExlbik7CiAKLS8qIEZvcndhcmQgZGVjbGFyYXRpb25z IC0gTkZBIGFic29ycHRpb24gKi8KIHN0YXRpYyB2b2lkIG5mYV91cGRhdGVfYWJzb3JwdGlvbl9m bGFncyhSUFJORkFDb250ZXh0ICpjdHgpOwogc3RhdGljIGJvb2wgbmZhX3N0YXRlc19jb3ZlcmVk KFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUk5GQUNvbnRleHQgKm9sZGVyLAogCQkJCQkJCSAgIFJQ Uk5GQUNvbnRleHQgKm5ld2VyKTsKIHN0YXRpYyB2b2lkIG5mYV90cnlfYWJzb3JiX2NvbnRleHQo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgpOwogc3RhdGljIHZv aWQgbmZhX2Fic29yYl9jb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogCi0vKiBG b3J3YXJkIGRlY2xhcmF0aW9ucyAtIE5GQSBtYXRjaCBhbmQgYWR2YW5jZSAqLwogc3RhdGljIGJv b2wgbmZhX2V2YWxfdmFyX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKIAkJCQkJCQkg ICBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwgYm9vbCAqdmFyTWF0Y2hlZCk7CiBzdGF0aWMgdm9p ZCBuZmFfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0033-Clarify-that-ExecRPRCleanupDeadContexts-always-fr.txt" Content-Disposition: attachment; filename="nocfbot-0033-Clarify-that-ExecRPRCleanupDeadContexts-always-fr.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrt32 RnJvbSA4Njk0OWNmYTA0NTU1OGZjOTc1NGY2MTIxMWY5MzQ4M2ExNDQ4NzJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTI6NTI6NDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDMzLzY4XSBD bGFyaWZ5IHRoYXQgRXhlY1JQUkNsZWFudXBEZWFkQ29udGV4dHMgYWx3YXlzIGZyZWVzCiB0aGUg ZmFpbGVkIGNvbnRleHQKClRoZSBmYWlsdXJlIHN0YXRpc3RpYyBpcyByZWNvcmRlZCBjb25kaXRp b25hbGx5LCBidXQgdGhlIGNvbnRleHQgaXMgZnJlZWQKdW5jb25kaXRpb25hbGx5LiAgQSBzdHJh eSAiZWxzZToiIGNvbW1lbnQgYmVmb3JlIHRoZSBmcmVlIG1hZGUgaXQgcmVhZCBhcwp0aGUgY29u ZGl0aW9uYWwgYnJhbmNoOyByZXdvcmQgdGhlIGNvbW1lbnQgYW5kIGRyb3AgdGhlICJlbHNlOiIu ICBObyBjb2RlCmNoYW5nZS4gIFBlciBKaWFuIEhlJ3Mgb2ZmLWxpc3QgcmV2aWV3LgotLS0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5k ZXggMzQ2Mzg0MDlmNjYuLjE2YTBmNGFlMzc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0x ODA1LDkgKzE4MDUsOSBAQCBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cyhXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmV4Y2x1ZGVDdHgpCiAJCQljb250aW51ZTsKIAog CQkvKgotCQkgKiBUaGlzIGlzIGEgZmFpbGVkIGNvbnRleHQgLSBjb3VudCBhbmQgcmVtb3ZlIGl0 LiBPbmx5IGNvdW50IGlmIGl0Ci0JCSAqIGFjdHVhbGx5IHByb2Nlc3NlZCBpdHMgc3RhcnQgcm93 LiBDb250ZXh0cyBjcmVhdGVkIGZvcgotCQkgKiBiZXlvbmQtcGFydGl0aW9uIHJvd3MgYXJlIHNp bGVudGx5IHJlbW92ZWQuCisJCSAqIEZhaWxlZCBjb250ZXh0OiBhbHdheXMgcmVtb3ZlZCBiZWxv dy4gIE9ubHkgcmVjb3JkIHRoZSBmYWlsdXJlCisJCSAqIHN0YXRpc3RpYyBpZiBpdCBhY3R1YWxs eSBwcm9jZXNzZWQgaXRzIHN0YXJ0IHJvdzsgY29udGV4dHMgY3JlYXRlZAorCQkgKiBmb3IgYmV5 b25kLXBhcnRpdGlvbiByb3dzIGFyZSByZW1vdmVkIHdpdGhvdXQgYmVpbmcgY291bnRlZC4KIAkJ ICovCiAJCWlmIChjdHgtPmxhc3RQcm9jZXNzZWRSb3cgPj0gY3R4LT5tYXRjaFN0YXJ0Um93KQog CQl7CkBAIC0xODE1LDcgKzE4MTUsNiBAQCBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cyhXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmV4Y2x1ZGVDdHgpCiAKIAkJCUV4 ZWNSUFJSZWNvcmRDb250ZXh0RmFpbHVyZSh3aW5zdGF0ZSwgZmFpbGVkTGVuKTsKIAkJfQotCQkv KiBlbHNlOiBjb250ZXh0IHdhcyBuZXZlciBwcm9jZXNzZWQgKGJleW9uZC1wYXJ0aXRpb24pLCBq dXN0IHJlbW92ZSAqLwogCiAJCUV4ZWNSUFJGcmVlQ29udGV4dCh3aW5zdGF0ZSwgY3R4KTsKIAl9 Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0034-Correct-stale-RPR-comments-and-document-a-defensi.txt" Content-Disposition: attachment; filename="nocfbot-0034-Correct-stale-RPR-comments-and-document-a-defensi.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrv33 RnJvbSA1Nzk4OWRjYjkxZDBjMGUzN2QwN2M0ZDRiNzkwMDRjNDViMjgxNWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTM6NDU6NDggKzA5MDAKU3ViamVjdDogW1BBVENIIDM0LzY4XSBD b3JyZWN0IHN0YWxlIFJQUiBjb21tZW50cyBhbmQgZG9jdW1lbnQgYSBkZWZlbnNpdmUKIHdpbmRv dyBjaGVjawoKU3RhdGljIGFuYWx5c2lzIHN1cmZhY2VkIHNldmVyYWwgY29tbWVudHMgdGhhdCBu byBsb25nZXIgbWF0Y2ggdGhlIGNvZGU6CgotIHBsYW5ub2Rlcy5oOiByZXdyaXRlIHRoZSBSUFJQ YXR0ZXJuLmlzQWJzb3JiYWJsZSBjb21tZW50IHRvIG1hdGNoIHRoZQogIGltcGxlbWVudGVkIGNh c2VzIChpc1VuYm91bmRlZFN0YXJ0IC8gY29tcHV0ZUFic29yYmFiaWxpdHkpIGFuZCB0aGUKICBu b3JtYWxpemF0aW9uIHRoYXQgZW5hYmxlcyBhYnNvcnB0aW9uOyB0aGUgb2xkIHRleHQgd3Jvbmds eSBjYWxsZWQgdGhlCiAgcHJlZml4L3N1ZmZpeCBtZXJnZSB1bmltcGxlbWVudGVkCi0gUkVBRE1F LnJwcjogYW4gdW5tYXRjaGVkIHJvdydzIHJlZHVjZWQgZnJhbWUgaXMgZW1wdHksIG5vdCAidGhl IHJvdwogIGl0c2VsZiI7IHRoZSB2YXJJZCByYW5nZSBpcyAwLTI1MCwgbm90IDAtMjUxCi0gYWR2 YW5jZWQuc2dtbDogdW5tYXRjaGVkIHJvd3Mgc2hvdyBOVUxMIHdpbmRvdyBmdW5jdGlvbnMgYW5k CiAgaW5pdGlhbC12YWx1ZSBhZ2dyZWdhdGVzIChjb3VudCgpID0gMCksIG5vdCBhbGwtTlVMTAot IHBsYW5uZXIuYzogbm90ZSB0aGF0IHRoZSBSUFIgZmllbGRzIGluIG9wdGltaXplX3dpbmRvd19j bGF1c2VzJyBkdXBsaWNhdGUKICBjaGVjayBhcmUgcmVhY2hlZCBidXQgZGVmZW5zaXZlIC0tIFJQ UiBjbGF1c2VzIGFyZSBzZXBhcmF0ZWQgYnkgdGhlaXIKICBmcmFtZSBvcHRpb25zIGZpcnN0IC0t IGtlcHQgZm9yIHBhcml0eSB3aXRoIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsCi0tLQogZG9jL3Ny Yy9zZ21sL2FkdmFuY2VkLnNnbWwgICAgICAgICAgIHwgIDUgKysrLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL1JFQURNRS5ycHIgICAgICB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIHwgIDUgKysrKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o ICAgICAgICB8IDIxICsrKysrKysrKysrKysrLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyNCBp bnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv YWR2YW5jZWQuc2dtbCBiL2RvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sCmluZGV4IDExYzI0MTZk ZjUxLi4xNDEwYTQ0MzYwOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwKQEAgLTYwMCw4ICs2MDAsOSBAQCBERUZJ TkUKICAgICBzdWJzZXF1ZW50IHJvd3MgYWxsIHdpbmRvdyBmdW5jdGlvbnMgYXJlIHNob3duIGFz IE5VTEwuIEFnZ3JlZ2F0ZXMgb24KICAgICBub24tc3RhcnRpbmcgcm93cyByZXR1cm4gdGhlaXIg aW5pdGlhbCB2YWx1ZTogZm9yIGV4YW1wbGUsCiAgICAgPGZ1bmN0aW9uPmNvdW50KCk8L2Z1bmN0 aW9uPiByZXR1cm5zIDAgYW5kIDxmdW5jdGlvbj5zdW0oKTwvZnVuY3Rpb24+Ci0gICAgcmV0dXJu cyBOVUxMLiBGb3Igcm93cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgUEFUVEVSTiwgY29sdW1ucyBh cmUgc2hvd24KLSAgICBhcyBOVUxMIHRvby4gRXhhbXBsZSBvZiBhIDxsaXRlcmFsPlNFTEVDVDwv bGl0ZXJhbD4gdXNpbmcKKyAgICByZXR1cm5zIE5VTEwuIEZvciByb3dzIHRoYXQgZG8gbm90IG1h dGNoIHRoZSBQQVRURVJOLCB3aW5kb3cgZnVuY3Rpb25zCisgICAgYXJlIGxpa2V3aXNlIHNob3du IGFzIE5VTEwgYW5kIGFnZ3JlZ2F0ZXMgcmV0dXJuIHRoZWlyIGluaXRpYWwgdmFsdWUuCisgICAg RXhhbXBsZSBvZiBhIDxsaXRlcmFsPlNFTEVDVDwvbGl0ZXJhbD4gdXNpbmcKICAgICB0aGUgPGxp dGVyYWw+REVGSU5FPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2xh dXNlIGlzIGFzCiAgICAgZm9sbG93cy4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKaW5kZXggNDQ5 YmYwNTExNTMuLjA4NDE4NTg4MTE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9S RUFETUUucnByCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKQEAgLTI0NSw3 ICsyNDUsNyBAQCBSUFJQYXR0ZXJuRWxlbWVudCBzdHJ1Y3QgKDE2IGJ5dGVzKToKIAogICBGaWVs ZCAgICAgIFNpemUgICAgIERlc2NyaXB0aW9uCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICB2YXJJZCAgICAgIDFCICAgICAgVmFy aWFibGUgSUQgKDAtMjUxKSBvciBjb250cm9sIGNvZGUgKDI1Mi0yNTUpCisgIHZhcklkICAgICAg MUIgICAgICBWYXJpYWJsZSBJRCAoMC0yNTApIG9yIGNvbnRyb2wgY29kZSAoMjUyLTI1NSkKICAg ZGVwdGggICAgICAxQiAgICAgIEdyb3VwIG5lc3RpbmcgZGVwdGgKICAgZmxhZ3MgICAgICAxQiAg ICAgIEJpdCBmbGFncyAoc2VlIGJlbG93KQogICByZXNlcnZlZCAgIDFCICAgICAgUGFkZGluZwpA QCAtMTMwMywxMSArMTMwMywxMSBAQCBYSS00LiBFeGVjdXRpb24gVHJhY2UKIAogWEktNS4gRmlu YWwgUmVzdWx0CiAKLSAgUm93IDA6IHVubWF0Y2hlZCAgICAgLT4gZnJhbWUgPSB0aGUgcm93IGl0 c2VsZgorICBSb3cgMDogdW5tYXRjaGVkICAgICAtPiByZWR1Y2VkIGZyYW1lIGVtcHR5ICh3aW5k b3cgZnVuY3MgTlVMTCwgY291bnQoKSAwKQogICBSb3cgMTogbWF0Y2ggaGVhZCAgICAtPiBmcmFt ZSA9IHJvd3MgMSB0aHJvdWdoIDMKICAgUm93IDI6IGluc2lkZSBtYXRjaCAgLT4gc2tpcHBlZAog ICBSb3cgMzogaW5zaWRlIG1hdGNoICAtPiBza2lwcGVkCi0gIFJvdyA0OiB1bm1hdGNoZWQgICAg IC0+IGZyYW1lID0gdGhlIHJvdyBpdHNlbGYKKyAgUm93IDQ6IHVubWF0Y2hlZCAgICAgLT4gcmVk dWNlZCBmcmFtZSBlbXB0eSAod2luZG93IGZ1bmNzIE5VTEwsIGNvdW50KCkgMCkKIAogQ2hhcHRl ciBYSUkgIFN1bW1hcnkgb2YgS2V5IERlc2lnbiBEZWNpc2lvbnMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBjNmZjODY4Y2RjYS4uZjQz Y2MwZWRiMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTYyNTQsNyAr NjI1NCwxMCBAQCBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcyhQbGFubmVySW5mbyAqcm9vdCwgV2lu ZG93RnVuY0xpc3RzICp3Zmxpc3RzKQogCiAJCQkJLyoKIAkJCQkgKiBQZXJmb3JtIHRoZSBzYW1l IGR1cGxpY2F0ZSBjaGVjayB0aGF0IGlzIGRvbmUgaW4KLQkJCQkgKiB0cmFuc2Zvcm1XaW5kb3dG dW5jQ2FsbC4KKwkJCQkgKiB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbC4gd2MgaXMgbmV2ZXIgYW4g UlBSIGNsYXVzZSBoZXJlCisJCQkJICogKHRob3NlIGFyZSBza2lwcGVkIGFib3ZlKSwgYW5kIGFu IFJQUiBleGlzdGluZ193YyBkaWZmZXJzCisJCQkJICogaW4gaXRzIGZyYW1lIG9wdGlvbnMgYW55 d2F5LCBzbyB0aGUgUlBSLXJlbGF0ZWQgY29tcGFyaXNvbnMKKwkJCQkgKiBhcmUgYSBkZWZlbnNp dmUgYmFja3N0b3AgZm9yIHBhcml0eS4KIAkJCQkgKi8KIAkJCQlpZiAoZXF1YWwod2MtPnBhcnRp dGlvbkNsYXVzZSwgZXhpc3Rpbmdfd2MtPnBhcnRpdGlvbkNsYXVzZSkgJiYKIAkJCQkJZXF1YWwo d2MtPm9yZGVyQ2xhdXNlLCBleGlzdGluZ193Yy0+b3JkZXJDbGF1c2UpICYmCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oCmluZGV4IGZkNGJkZjJjYjMxLi5kNDVkOTNkNzlhMiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVz LmgKQEAgLTEyOTYsMTUgKzEyOTYsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgUlBSUGF0dGVybgogCSAq IENvbnRleHQgYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24uCiAJICoKIAkgKiBBYnNvcnB0aW9uIGlz IG9ubHkgc2FmZSB3aGVuIGxhdGVyIG1hdGNoZXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUKLQkgKiBz dWZmaXhlcyBvZiBlYXJsaWVyIG1hdGNoZXMuIFRoaXMgcmVxdWlyZXMgc2ltcGxlIHBhdHRlcm4g c3RydWN0dXJlOgorCSAqIHN1ZmZpeGVzIG9mIGVhcmxpZXIgbWF0Y2hlcywgd2hpY2ggcmVxdWly ZXMgdGhlIHBhdHRlcm4gdG8gc3RhcnQgd2l0aAorCSAqIGFuIHVuYm91bmRlZCBncmVlZHkgZWxl bWVudC4gIFBoYXNlLTEgbm9ybWFsaXphdGlvbiAoY29uc2VjdXRpdmUKKwkgKiB2YXJpYWJsZSAv IGdyb3VwIC8gQUxUIG1lcmdpbmcgYW5kIHByZWZpeC9zdWZmaXggbWVyZ2luZykgcmV3cml0ZXMg dGhlCisJICogcGF0dGVybiB0b3dhcmQgdGhhdCBmb3JtIGZpcnN0IC0tIHNvIGUuZy4gQSBCIChB IEIpKyBpcyBtZXJnZWQgdG8KKwkgKiAoQSBCKXsyLH0gYW5kIHRoZW4ganVkZ2VkIGFic29yYmFi bGUuCiAJICoKLQkgKiBDYXNlIDE6IE5vIEFMVCwgc2luZ2xlIHVuYm91bmRlZCBlbGVtZW50IChB KywgKEEgQikrKQotCSAqIENhc2UgMjogVG9wLWxldmVsIEFMVCB3aXRoIGVhY2ggYnJhbmNoIGJl aW5nIHNpbmdsZSB1bmJvdW5kZWQgKEErIHwgQispCisJICogY29tcHV0ZUFic29yYmFiaWxpdHko KSBtYXJrcyB0aGUgYWJzb3JiYWJsZSBjYXNlcyAoc2VlIGlzVW5ib3VuZGVkU3RhcnQpOgorCSAq ICAgLSBzaW1wbGUgdW5ib3VuZGVkIFZBUiBhdCB0aGUgc3RhcnQ6ICAgICAgICAgICAgICAgICAg ICBBKyBCIEMKKwkgKiAgIC0gdW5ib3VuZGVkIEdST1VQIHdpdGggZml4ZWQtbGVuZ3RoIGNoaWxk cmVuOiAgICAgICAgICAgKEEgQikrLCAoQSBCezJ9KSsKKwkgKiAgIC0gdG9wLWxldmVsIEFMVCB3 aXRoIGluZGVwZW5kZW50bHkgYWJzb3JiYWJsZSBicmFuY2hlczogQSsgfCBCKworCSAqICAgICAo aGFuZGxlZCBpbiBjb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZSkKIAkgKgotCSAqIENvbXBs ZXggcGF0dGVybnMgbGlrZSBBIEIgKEEgQikrIGNvdWxkIHRoZW9yZXRpY2FsbHkgYmUgdHJhbnNm b3JtZWQgdG8KLQkgKiAoQSBCKXsyLH0gZm9yIGFic29ycHRpb24sIGJ1dCB0aGlzIGNoYW5nZXMg bGV4aWNhbCBvcmRlciBhbmQgaXMgbm90Ci0JICogaW1wbGVtZW50ZWQuIFNpbWlsYXJseSwgKEF8 QikrIGNhbm5vdCBiZSBhYnNvcmJlZCBiZWNhdXNlIGRpZmZlcmVudAotCSAqIHN0YXJ0IHBvc2l0 aW9ucyBwcm9kdWNlIGRpZmZlcmVudCBtYXRjaCBjb250ZW50cyAobm90IHN1ZmZpeCByZWxhdGlv bikuCisJICogTm90IGFic29yYmFibGU6IGFuIHVuYm91bmRlZCBlbGVtZW50IG5vdCBhdCB0aGUg c3RhcnQgKEEgQispLCBhCisJICogcmVsdWN0YW50IHF1YW50aWZpZXIgKEErPyksIG9yIGFuIEFM VCBpbnNpZGUgYSBncm91cCAoKEF8QikrKSAtLSB0aGVyZQorCSAqIGRpZmZlcmVudCBzdGFydCBw b3NpdGlvbnMgeWllbGQgZGlmZmVyZW50IG1hdGNoIGNvbnRlbnRzLCBzbyBsYXRlcgorCSAqIG1h dGNoZXMgYXJlIG5vdCBzdWZmaXhlcyBvZiBlYXJsaWVyIG9uZXMuCiAJICovCiAJYm9vbAkJaXNB YnNvcmJhYmxlOwkvKiB0cnVlIGlmIHBhdHRlcm4gc3VwcG9ydHMgY29udGV4dCBhYnNvcnB0aW9u ICovCiB9IFJQUlBhdHRlcm47Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0035-Fix-unsafe-A-n-quantifier-flattening-in-row-patte.txt" Content-Disposition: attachment; filename="nocfbot-0035-Fix-unsafe-A-n-quantifier-flattening-in-row-patte.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrx34 RnJvbSA2YmZkMzlmYzdjZjhiNzU4YTNkZDkxMGQ4OWMwODkzZDU3NDI1NDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTY6MzU6NDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDM1LzY4XSBG aXggdW5zYWZlIChBe24sfSkqIHF1YW50aWZpZXIgZmxhdHRlbmluZyBpbiByb3cKIHBhdHRlcm4g cmVjb2duaXRpb24KClRoZSBQaGFzZS0xIHBhdHRlcm4gb3B0aW1pemVyJ3MgdHJ5TXVsdGlwbHlR dWFudGlmaWVycygpIGNvbGxhcHNlZCBhCm5lc3RlZCBxdWFudGlmaWVyIChBe2ssfSkqIHRvIEEq IHdoZW5ldmVyIGJvdGggdGhlIGlubmVyIGFuZCBvdXRlcgpib3VuZHMgd2VyZSB1bmJvdW5kZWQu ICBUaGF0IGlzIG9ubHkgY29ycmVjdCB3aGVuIHRoZSBpbm5lciBtaW5pbXVtIGlzCjAgb3IgMS4g IEZvciBrID49IDIgdGhlIHJlYWNoYWJsZSByZXBldGl0aW9uIGNvdW50cyBhcmUgezB9IHRvZ2V0 aGVyCndpdGggW2ssIElORiksIHNvIHRoZSBjb3VudHMgMS4uay0xIGFyZSB1bnJlYWNoYWJsZTsg QSogYWRtaXRzIHRoZW0uCkFzIGEgcmVzdWx0IGFuIGlzb2xhdGVkIHNpbmdsZSBBIG1hdGNoZWQg YXMgbGVuZ3RoIDEgd2hlcmUgdGhlIHBhdHRlcm4KbXVzdCBpbnN0ZWFkIHByb2R1Y2UgYW4gZW1w dHkgbWF0Y2ggKGxlbmd0aCAwKSwgd2lkZW5pbmcgdGhlIG1hdGNoaW5nCmxhbmd1YWdlLgoKU2tp cCB0aGUgbXVsdGlwbGljYXRpb24gd2hlbiB0aGUgb3V0ZXIgcXVhbnRpZmllciBpcyBza2lwcGFi bGUKKG1pbmltdW0gMCkgYW5kIHRoZSBpbm5lciBtaW5pbXVtIGlzIGF0IGxlYXN0IDIuICBUaGUg ZXhpc3Rpbmcgc2FmZQpjYXNlcyBhcmUgdW5hZmZlY3RlZDogYW4gaW5uZXIgbWluaW11bSBvZiAw IG9yIDEgc3RheXMgY29udGlndW91cywgYW5kCmEgbm9uLXNraXBwYWJsZSBvdXRlciBzdWNoIGFz IChBezIsfSkrIHN0aWxsIGZvbGRzIHRvIEF7Mix9LgoKUGVyIGEgcmVwb3J0IGZyb20gYSBzdGF0 aWMgYW5hbHlzaXMgdG9vbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByICAg ICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgICAg IHwgMTggKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCB8 IDQxICsrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQg ICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9leHBsYWluLnNxbCAgICAgIHwgMjMgKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9uZmEuc3FsICAgICAgICAgIHwgNTMgKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdl ZCwgMjA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9SRUFETUUucnByIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJw cgppbmRleCAwODQxODU4ODExNC4uM2EyMTVmMjU2NmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL1JFQURNRS5ycHIKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJw cgpAQCAtMjMyLDYgKzIzMiw3IEBAIGFwcGxpZWQ6CiAgIChnKSBRdWFudGlmaWVyIG11bHRpcGxp Y2F0aW9uOiBDb2xsYXBzZSBuZXN0ZWQgcXVhbnRpZmllcnMgd2hlbiBzYWZlCiAgICAgICAoQSsp KyAtPiBBKwogICAgICAgKEF7MiwzfSl7NX0gLT4gQXsxMCwxNX0KKyAgICAgIChBezIsfSkqIHN0 YXlzIGFzLWlzIChjb3VudCAxIHVucmVhY2hhYmxlOyBBKiB3b3VsZCBiZSB3cm9uZykKIAogICAo aCkgU2luZ2xlLWNoaWxkIHVud3JhcAogICAgICAgU0VRKEEpIC0+IEEsICAoQSl7MSwxfSAtPiBB CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3Jwci5jCmluZGV4IDJhMWQ2NjVjN2VlLi4yYTk4OTc3YjI4OCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKQEAgLTc4MSw3ICs3ODEsOCBAQCBvcHRpbWl6ZUFs dFBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pCiAgKgkJVHJ5IHRvIG11bHRpcGx5IHF1 YW50aWZpZXJzLgogICoKICAqIE11bHRpcGxpY2F0aW9uIGlzIFNBRkUgd2hlbjoKLSAqICAgMS4g Qm90aCB1bmJvdW5kZWQ6IChBKikqIC0+IEEqLCAoQSspKyAtPiBBKworICogICAxLiBCb3RoIHVu Ym91bmRlZCwgd2l0aCBza2lwbGVzcyBvdXRlciBvciBjaGlsZC0+bWluIDw9IDE6CisgKiAgICAg IChBKikqIC0+IEEqLCAoQSspKyAtPiBBKywgKEErKSogLT4gQSosIChBezIsfSkrIC0+IEF7Mix9 CiAgKiAgIDIuIE91dGVyIGV4YWN0OiAoQXttLG59KXtrfSAtPiBBe20qaywgbiprfQogICogICAz LiBPdXRlciByYW5nZSArIGNoaWxkIHsxLDF9OiAoQSl7Mix9IC0+IEF7Mix9CiAgKgpAQCAtNzg5 LDYgKzc5MCw5IEBAIG9wdGltaXplQWx0UGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybikK ICAqICAgLSBPbmx5IGNoaWxkIHVuYm91bmRlZDogKEErKXszfSBoYXMgZGlmZmVyZW50IHNlbWFu dGljcwogICogICAtIE91dGVyIHJhbmdlICsgY2hpbGQgbm90IHsxLDF9OiBnYXBzIHBvc3NpYmxl CiAgKiAgICAgZS5nLiwgKEF7Mn0pezIsM30geWllbGRzIDQsNiBvbmx5IChub3QgNCw1LDYpCisg KiAgIC0gU2tpcHBhYmxlIG91dGVyIChtaW4gMCkgKyBjaGlsZC0+bWluID49IDI6IChBezIsfSkq IHJlYWNoZXMKKyAqICAgICB7MH0gVU5JT04gW2NoaWxkLT5taW4sIElORiksIHNvIDEuLmNoaWxk LT5taW4tMSBhcmUgdW5yZWFjaGFibGUKKyAqICAgICBhbmQgQSogd291bGQgd3JvbmdseSBhZG1p dCB0aGVtCiAgKgogICogUmV0dXJucyB0aGUgY2hpbGQgbm9kZSB3aXRoIG11bHRpcGxpZWQgcXVh bnRpZmllcnMgaWYgc3VjY2Vzc2Z1bCwKICAqIG90aGVyd2lzZSByZXR1cm5zIHRoZSBvcmlnaW5h bCBwYXR0ZXJuIHVuY2hhbmdlZC4KQEAgLTgxNiw2ICs4MjAsMTggQEAgdHJ5TXVsdGlwbHlRdWFu dGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybikKIAkvKiBDYXNlIDE6IEJvdGggdW5ib3Vu ZGVkIC0gKEEqKSogLT4gQSosIChBKykrIC0+IEErICovCiAJaWYgKGNoaWxkLT5tYXggPT0gUlBS X1FVQU5USVRZX0lORiAmJiBwYXR0ZXJuLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORikKIAl7CisJ CS8qCisJCSAqIEEgc2tpcHBhYmxlIG91dGVyIChtaW4gMCkgb3ZlciBhIGNoaWxkIHdpdGggbWlu ID49IDIgcmVhY2hlcworCQkgKiByZXBldGl0aW9uIGNvdW50cyB7MH0gVU5JT04gW2NoaWxkLT5t aW4sIElORik6IHRoZSBjb3VudHMKKwkJICogMS4uY2hpbGQtPm1pbi0xIGFyZSB1bnJlYWNoYWJs ZSwgYW5kIG5vIHNpbmdsZSBxdWFudGlmaWVyIGNhbgorCQkgKiBleHByZXNzIHRoYXQgZ2FwLiAg RmxhdHRlbmluZyB0byBBezAsSU5GfSA9IEEqIHdvdWxkIHdyb25nbHkgYWRtaXQKKwkJICogdGhl bSwgZS5nLiAoQXsyLH0pKiB3b3VsZCBtYXRjaCBhIHNpbmdsZSBBLiAgTXVsdGlwbGljYXRpb24g aXMgc2FmZQorCQkgKiBoZXJlIG9ubHkgd2hlbiBjaGlsZC0+bWluIDw9IDEgKHRoZSByZWFjaGFi bGUgc2V0IGlzIHRoZW4KKwkJICogY29udGlndW91cyBmcm9tIDApOyBvdGhlcndpc2UgbGVhdmUg dGhlIHBhdHRlcm4gdW5mbGF0dGVuZWQuCisJCSAqLworCQlpZiAocGF0dGVybi0+bWluID09IDAg JiYgY2hpbGQtPm1pbiA+PSAyKQorCQkJcmV0dXJuIHBhdHRlcm47CisKIAkJbmV3X21pbl82NCA9 IChpbnQ2NCkgY2hpbGQtPm1pbiAqIHBhdHRlcm4tPm1pbjsKIAkJaWYgKG5ld19taW5fNjQgPj0g UlBSX1FVQU5USVRZX0lORikKIAkJCXJldHVybiBwYXR0ZXJuOwkJLyogb3ZlcmZsb3csIHNraXAg b3B0aW1pemF0aW9uICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0 CmluZGV4IDc3MDc5ZDVlOGM5Li45YmEzMDJiMTFhZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTc4Miw2ICs3ODIsNDcgQEAgV0lORE9XIHcgQVMgKAog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEw MDAuMDAgbG9vcHM9MSkKICgxMCByb3dzKQogCistLSAoQXsyLH0pKiBtdXN0IE5PVCBmbGF0dGVu IHRvIGEqIChILTEpOiBjb3VudHMgezB9IFVOSU9OIFsyLCBJTkYpIGxlYXZlIDEKKy0tIHVucmVh Y2hhYmxlLiAgVGhlIHBsYW5uZXIga2VlcHMgaXQgYXMgKGF7Mix9KSosIG5vdCBhKi4KK0NSRUFU RSBWSUVXIHJwcl9ldl9uZXN0ZWRfcXVhbnRfbm9fZmxhdHRlbiBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNikgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBezIsfSkq KQorICAgIERFRklORSBBIEFTIHYgJSAzIDw+IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uZXN0ZWRfcXVhbnRfbm9f ZmxhdHRlbicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAg ICAgIGxpbmUgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAo KGF7Mix9KSopIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNikg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKChBezIsfSkqKQorICAgIERFRklORSBBIEFTIHYgJSAzIDw+IDAKKyk7Jyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9Ni4w MCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYXsyLH0iKSoKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisg ICBORkEgU3RhdGVzOiA1IHBlYWssIDE4IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRz OiAzIHBlYWssIDcgdG90YWwsIDIgcHJ1bmVkCisgICBORkE6IDIgbWF0Y2hlZCAobGVuIDIvMi8y LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMiBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNr aXBwZWQKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz02LjAwIGxvb3BzPTEpCisoMTAgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBDb250ZXh0IFN0YXRp c3RpY3MgVGVzdHMgKHBlYWssIHRvdGFsLCBwcnVuZWQgKyBhYnNvcmJlZC9za2lwcGVkKQogLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAppbmRleCA3MmRiZjA4MGEzNy4u NTliOTFmZjlhYTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25m YS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dApAQCAtMjI3 NSw2ICsyMjc1LDc4IEBAIFdJTkRPVyB3IEFTICgKICAgNiB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKICg2IHJvd3MpCiAKKy0tIE5lc3RlZCBxdWFudGlmaWVyIGZsYXR0ZW5pbmcg bXVzdCBub3Qgd2lkZW4gdGhlIG1hdGNoaW5nIGxhbmd1YWdlIChILTEpLgorLS0gKEF7ayx9KSog d2l0aCBrID49IDIgcmVhY2hlcyByZXBldGl0aW9uIGNvdW50cyB7MH0gVU5JT04gW2ssIElORik7 IHRoZSBnYXAKKy0tIDEuLmstMSBpcyB1bnJlYWNoYWJsZSwgc28gaXQgbXVzdCBOT1QgY29sbGFw c2UgdG8gQSouICBBbiBpc29sYXRlZCBzaW5nbGUgQQorLS0gbXVzdCB5aWVsZCBhbiBFTVBUWSBt YXRjaCAoY291bnQgMCksIG5vdCBhIGxlbmd0aC0xIG1hdGNoLgorV0lUSCB0ZXN0X25lc3RlZF9x dWFudF92YXIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJS QVlbJ0EnXSksICAtLSBpc29sYXRlZCBBOiAoQXsyLH0pKiBtYXRjaGVzIGVtcHR5IGhlcmUsIG5v dCAxCisgICAgICAgICgyLCBBUlJBWVsnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0EnXSksICAtLSBydW4gb2YgMjogbWF0Y2hlZAorICAgICAgICAo NSwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQsCisgICAgICAgY291bnQoKikgT1ZF UiB3IEFTIG1hdGNoX2NvdW50CitGUk9NIHRlc3RfbmVzdGVkX3F1YW50X3ZhcgorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEF7Mix9KSopCisgICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQor KTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgfCBtYXRjaF9jb3VudCAK Ky0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyAg MSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgMAorICAyIHwg e199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAwCisgIDMgfCB7QX0g ICB8ICAgICAgICAgICAzIHwgICAgICAgICA0IHwgICAgICAgICAgIDIKKyAgNCB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgMAorICA1IHwge199ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAwCisoNSByb3dzKQorCistLSBTYW1lIGZv ciBhIEdST1VQIGNoaWxkOiAoKEEgQil7Mix9KSogbXVzdCBub3QgY29sbGFwc2UgdG8gKEEgQikq LgorLS0gQW4gaXNvbGF0ZWQgc2luZ2xlIChBIEIpIHBhaXIgbXVzdCB5aWVsZCBhbiBFTVBUWSBt YXRjaCAoY291bnQgMCkuCitXSVRIIHRlc3RfbmVzdGVkX3F1YW50X2dyb3VwIEFTICgKKyAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLCAgLS0gaXNvbGF0 ZWQgKEEgQikgcGFpcjogbWF0Y2hlcyBlbXB0eSBoZXJlCisgICAgICAgICgyLCBBUlJBWVsnQidd KSwKKyAgICAgICAgKDMsIEFSUkFZWydfJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisg ICAgICAgICg1LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDYsIEFSUkFZWydBJ10pLAorICAgICAg ICAoNywgQVJSQVlbJ0InXSksICAtLSBydW4gb2YgMiBwYWlyczogbWF0Y2hlZAorICAgICAgICAo OCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQsCisgICAgICAgY291bnQoKikgT1ZF UiB3IEFTIG1hdGNoX2NvdW50CitGUk9NIHRlc3RfbmVzdGVkX3F1YW50X2dyb3VwCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoKEEgQil7Mix9KSopCisgICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFy dCB8IG1hdGNoX2VuZCB8IG1hdGNoX2NvdW50IAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgICAwCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgIDAKKyAgMyB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICAgMAorICA0IHwge0F9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNyB8ICAg ICAgICAgICA0CisgIDUgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgIDAKKyAgNiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAg MAorICA3IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAwCisg IDggfCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIDAKKyg4IHJv d3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0gUGF0aG9sb2dpY2FsIFBhdHRlcm4gUnVudGltZSBQcm90ZWN0aW9u CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCBhNTI3NjE1ODQ5 YS4uYzhiMTU5ZTMwZTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBs YWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTQ5 OSw2ICs0OTksMjkgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwg QiBBUyB2ICUgMyA9IDIKICk7Jyk7CiAKKy0tIChBezIsfSkqIG11c3QgTk9UIGZsYXR0ZW4gdG8g YSogKEgtMSk6IGNvdW50cyB7MH0gVU5JT04gWzIsIElORikgbGVhdmUgMQorLS0gdW5yZWFjaGFi bGUuICBUaGUgcGxhbm5lciBrZWVwcyBpdCBhcyAoYXsyLH0pKiwgbm90IGEqLgorQ1JFQVRFIFZJ RVcgcnByX2V2X25lc3RlZF9xdWFudF9ub19mbGF0dGVuIEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEF7Mix9KSopCisg ICAgREVGSU5FIEEgQVMgdiAlIDMgPD4gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25lc3RlZF9xdWFudF9ub19mbGF0 dGVuJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQXsyLH0pKikKKyAgICBERUZJ TkUgQSBBUyB2ICUgMyA8PiAwCispOycpOworCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIENvbnRleHQgU3RhdGlzdGlj cyBUZXN0cyAocGVhaywgdG90YWwsIHBydW5lZCArIGFic29yYmVkL3NraXBwZWQpCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX25mYS5zcWwKaW5kZXggMTI4NDc2YWExZDEuLmZlYmY4MzQ1NjVkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbApAQCAtMTU4Myw2ICsxNTgzLDU5IEBAIFdJTkRPVyB3 IEFTICgKICAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCiApOwogCistLSBOZXN0ZWQgcXVh bnRpZmllciBmbGF0dGVuaW5nIG11c3Qgbm90IHdpZGVuIHRoZSBtYXRjaGluZyBsYW5ndWFnZSAo SC0xKS4KKy0tIChBe2ssfSkqIHdpdGggayA+PSAyIHJlYWNoZXMgcmVwZXRpdGlvbiBjb3VudHMg ezB9IFVOSU9OIFtrLCBJTkYpOyB0aGUgZ2FwCistLSAxLi5rLTEgaXMgdW5yZWFjaGFibGUsIHNv IGl0IG11c3QgTk9UIGNvbGxhcHNlIHRvIEEqLiAgQW4gaXNvbGF0ZWQgc2luZ2xlIEEKKy0tIG11 c3QgeWllbGQgYW4gRU1QVFkgbWF0Y2ggKGNvdW50IDApLCBub3QgYSBsZW5ndGgtMSBtYXRjaC4K K1dJVEggdGVzdF9uZXN0ZWRfcXVhbnRfdmFyIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLCAgLS0gaXNvbGF0ZWQgQTogKEF7Mix9KSogbWF0 Y2hlcyBlbXB0eSBoZXJlLCBub3QgMQorICAgICAgICAoMiwgQVJSQVlbJ18nXSksCisgICAgICAg ICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLCAgLS0gcnVuIG9mIDI6 IG1hdGNoZWQKKyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykK KykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kLAor ICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBtYXRjaF9jb3VudAorRlJPTSB0ZXN0X25lc3RlZF9x dWFudF92YXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBezIsfSkqKQorICAgIERFRklORSBBIEFT ICdBJyA9IEFOWShmbGFncykKKyk7CisKKy0tIFNhbWUgZm9yIGEgR1JPVVAgY2hpbGQ6ICgoQSBC KXsyLH0pKiBtdXN0IG5vdCBjb2xsYXBzZSB0byAoQSBCKSouCistLSBBbiBpc29sYXRlZCBzaW5n bGUgKEEgQikgcGFpciBtdXN0IHlpZWxkIGFuIEVNUFRZIG1hdGNoIChjb3VudCAwKS4KK1dJVEgg dGVzdF9uZXN0ZWRfcXVhbnRfZ3JvdXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ0EnXSksICAtLSBpc29sYXRlZCAoQSBCKSBwYWlyOiBtYXRjaGVz IGVtcHR5IGhlcmUKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlb J18nXSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydCJ10p LAorICAgICAgICAoNiwgQVJSQVlbJ0EnXSksCisgICAgICAgICg3LCBBUlJBWVsnQiddKSwgIC0t IHJ1biBvZiAyIHBhaXJzOiBtYXRjaGVkCisgICAgICAgICg4LCBBUlJBWVsnXyddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZCwKKyAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfY291bnQKK0ZS T00gdGVzdF9uZXN0ZWRfcXVhbnRfZ3JvdXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSBCKXsy LH0pKikKKyAgICBERUZJTkUgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLCBCIEFTICdCJyA9IEFOWShm bGFncykKKyk7CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0gUGF0aG9sb2dpY2FsIFBhdHRlcm4gUnVudGltZSBQcm90 ZWN0aW9uCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0036-Avoid-INF-valued-quantifier-bound-in-RPR-consecut.txt" Content-Disposition: attachment; filename="nocfbot-0036-Avoid-INF-valued-quantifier-bound-in-RPR-consecut.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jrz35 RnJvbSBkY2ZlYjdiYTc0YTlhY2Y0OWQ0MWM0ZTM5NWZkNDQ5NTJlZWQ4ODM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMTc6MDM6MDQgKzA5MDAKU3ViamVjdDogW1BBVENIIDM2LzY4XSBB dm9pZCBJTkYtdmFsdWVkIHF1YW50aWZpZXIgYm91bmQgaW4gUlBSCiBjb25zZWN1dGl2ZS1tZXJn ZSBvcHRpbWl6YXRpb24KCm1lcmdlQ29uc2VjdXRpdmVWYXJzKCkgYW5kIG1lcmdlQ29uc2VjdXRp dmVHcm91cHMoKSBhY2N1bXVsYXRlIHRoZSBtaW4gYW5kCm1heCBib3VuZHMgb2YgdHdvIGFkamFj ZW50IHBhdHRlcm4gZWxlbWVudHMsIGd1YXJkaW5nIGFnYWluc3Qgb3ZlcmZsb3cgd2l0aApwcmV2 LT5taW4gPD0gUlBSX1FVQU5USVRZX0lORiAtIGNoaWxkLT5taW4gKGFuZCBsaWtld2lzZSBmb3Ig bWF4KS4gIFRoZSA8PQpsZXQgYSBzdW0gbGFuZCBleGFjdGx5IG9uIFJQUl9RVUFOVElUWV9JTkYg KElOVDMyX01BWCksIHRoZSB2YWx1ZSByZXNlcnZlZCBhcwp0aGUgc2VudGluZWwgZm9yIGFuIHVu Ym91bmRlZCBtYXguICBUaGUgbWVyZ2VkIGVsZW1lbnQgdGhlbiBjYXJyaWVkCm1pbiA9PSBJTkYs IHdoaWNoIGlzIG5vdCBhIHZhbGlkIGZpbml0ZSBsb3dlciBib3VuZDogaXQgdHJpcHBlZCB0aGUg QXNzZXJ0IGluCmZpbGxSUFJQYXR0ZXJuKiBhdCBwbGFuIHRpbWUsIGFuZCBpbiBhIG5vbi1hc3Nl cnQgYnVpbGQgc2lsZW50bHkgcHJvZHVjZWQgYQpwYXR0ZXJuIHRoYXQgY2FuIG5ldmVyIG1hdGNo LgoKVGlnaHRlbiBib3RoIGd1YXJkcyB0byBhIHN0cmljdCA8LCBzbyBhIHN1bSByZWFjaGluZyBJ TkYgZmFsbHMgYmFjayBhbmQKbGVhdmVzIHRoZSBlbGVtZW50cyB1bm1lcmdlZC4gIFRoaXMgbWF0 Y2hlcyB0aGUgPj0gSU5GIGNoZWNrIGFscmVhZHkgdXNlZCBieQp0aGUgcXVhbnRpZmllci1tdWx0 aXBseSBwYXRoIGFuZCB0aGUgc3RyaWN0IGJvdW5kIGluIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXgu CgpQZXIgYSByZXBvcnQgZnJvbSBhIHN0YXRpYyBhbmFseXNpcyB0b29sLgotLS0KIHNyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgIHwgMjIgKysrKy0tLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgfCA4MyArKysrKysrKysrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsICAgICAgfCA0MyArKysrKysrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcnByLmMKaW5kZXggMmE5ODk3N2IyODguLmI5ODlmY2M1MTYyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtMjQ1LDEzICsyNDUsMTYgQEAgbWVyZ2VDb25z ZWN1dGl2ZVZhcnMoTGlzdCAqY2hpbGRyZW4pCiAJCQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAJCQkgKiBDYW4gbWVyZ2UgY29uc2VjdXRpdmUgVkFSIG5vZGVzIGlmOgogCQkJICogMS4gU2Ft ZSB2YXJpYWJsZSBuYW1lCi0JCQkgKiAyLiBObyBtaW4gb3ZlcmZsb3c6IHByZXYtPm1pbiArIGNo aWxkLT5taW4gPD0gSU5GCi0JCQkgKiAzLiBObyBtYXggb3ZlcmZsb3c6IHByZXYtPm1heCArIGNo aWxkLT5tYXggPD0gSU5GIChvciBlaXRoZXIgaXMgSU5GKQorCQkJICogMi4gTm8gbWluIG92ZXJm bG93OiBwcmV2LT5taW4gKyBjaGlsZC0+bWluIDwgSU5GCisJCQkgKiAzLiBObyBtYXggb3ZlcmZs b3c6IHByZXYtPm1heCArIGNoaWxkLT5tYXggPCBJTkYgKG9yIGVpdGhlciBpcyBJTkYpCisJCQkg KgorCQkJICogU3RyaWN0IDw6IGEgc3VtIGVxdWFsIHRvIElORiB3b3VsZCBhbGlhcyB0aGUgdW5i b3VuZGVkIHNlbnRpbmVsCisJCQkgKiAobWluIG11c3Qgc3RheSBmaW5pdGU7IGEgZmluaXRlIG1h eCBtdXN0IG5vdCBiZWNvbWUgSU5GKS4KIAkJCSAqLwogCQkJaWYgKHByZXYgIT0gTlVMTCAmJgog CQkJCXN0cmNtcChwcmV2LT52YXJOYW1lLCBjaGlsZC0+dmFyTmFtZSkgPT0gMCAmJgotCQkJCXBy ZXYtPm1pbiA8PSBSUFJfUVVBTlRJVFlfSU5GIC0gY2hpbGQtPm1pbiAmJgotCQkJCShwcmV2LT5t YXggPD0gUlBSX1FVQU5USVRZX0lORiAtIGNoaWxkLT5tYXggfHwKKwkJCQlwcmV2LT5taW4gPCBS UFJfUVVBTlRJVFlfSU5GIC0gY2hpbGQtPm1pbiAmJgorCQkJCShwcmV2LT5tYXggPCBSUFJfUVVB TlRJVFlfSU5GIC0gY2hpbGQtPm1heCB8fAogCQkJCSBwcmV2LT5tYXggPT0gUlBSX1FVQU5USVRZ X0lORiB8fAogCQkJCSBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYpKQogCQkJewpAQCAt MzE5LDEzICszMjIsMTYgQEAgbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcyhMaXN0ICpjaGlsZHJlbikK IAkJCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkJCSAqIENhbiBtZXJnZSBjb25zZWN1dGl2 ZSBHUk9VUCBub2RlcyBpZjoKIAkJCSAqIDEuIElkZW50aWNhbCBjaGlsZHJlbgotCQkJICogMi4g Tm8gbWluIG92ZXJmbG93OiBwcmV2LT5taW4gKyBjaGlsZC0+bWluIDw9IElORgotCQkJICogMy4g Tm8gbWF4IG92ZXJmbG93OiBwcmV2LT5tYXggKyBjaGlsZC0+bWF4IDw9IElORiAob3IgZWl0aGVy IGlzIElORikKKwkJCSAqIDIuIE5vIG1pbiBvdmVyZmxvdzogcHJldi0+bWluICsgY2hpbGQtPm1p biA8IElORgorCQkJICogMy4gTm8gbWF4IG92ZXJmbG93OiBwcmV2LT5tYXggKyBjaGlsZC0+bWF4 IDwgSU5GIChvciBlaXRoZXIgaXMgSU5GKQorCQkJICoKKwkJCSAqIFN0cmljdCA8OiBhIHN1bSBl cXVhbCB0byBJTkYgd291bGQgYWxpYXMgdGhlIHVuYm91bmRlZCBzZW50aW5lbAorCQkJICogKG1p biBtdXN0IHN0YXkgZmluaXRlOyBhIGZpbml0ZSBtYXggbXVzdCBub3QgYmVjb21lIElORikuCiAJ CQkgKi8KIAkJCWlmIChwcmV2ICE9IE5VTEwgJiYKIAkJCQlycHJQYXR0ZXJuQ2hpbGRyZW5FcXVh bChwcmV2LT5jaGlsZHJlbiwgY2hpbGQtPmNoaWxkcmVuKSAmJgotCQkJCXByZXYtPm1pbiA8PSBS UFJfUVVBTlRJVFlfSU5GIC0gY2hpbGQtPm1pbiAmJgotCQkJCShwcmV2LT5tYXggPD0gUlBSX1FV QU5USVRZX0lORiAtIGNoaWxkLT5tYXggfHwKKwkJCQlwcmV2LT5taW4gPCBSUFJfUVVBTlRJVFlf SU5GIC0gY2hpbGQtPm1pbiAmJgorCQkJCShwcmV2LT5tYXggPCBSUFJfUVVBTlRJVFlfSU5GIC0g Y2hpbGQtPm1heCB8fAogCQkJCSBwcmV2LT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fAogCQkJ CSBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYpKQogCQkJewpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCBjOTZhMTIxNmNjMy4uZWJjMTA4ODAxOGEgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0zNDU5LDYgKzM0NTksMjUgQEAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCiAoNyBy b3dzKQogCistLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2UgYXQgdGhlIGJvdW5kYXJ5OiBBezEwNzM3 NDE4MjMsfSBBezEwNzM3NDE4MjMsfSAtPgorLS0gYXsyMTQ3NDgzNjQ2LH0uICBUaGUgbWluIHN1 bSAyMTQ3NDgzNjQ2ID0gSU5UMzJfTUFYIC0gMSBpcyB0aGUgbGFyZ2VzdAorLS0gc3RpbGwtZmlu aXRlIGJvdW5kLCBzbyB0aGUgbWVyZ2UgcHJvY2VlZHM7IGEgc3VtIG9mIGV4YWN0bHkgSU5GIGlu c3RlYWQKKy0tIGZhbGxzIGJhY2sgKHNlZSB0aGUgT3B0aW1pemF0aW9uIEZhbGxiYWNrIFRlc3Rz KS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEF7MTA3Mzc0MTgy Myx9IEF7MTA3Mzc0MTgyMyx9KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogYXsyMTQ3NDgzNjQ2LH0iCisgICBOYXYgTWFyayBMb29r YmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCiAtLSBDb25zZWN1dGl2ZSBHUk9VUCBt ZXJnZSB3aXRoIGZpbml0ZSBxdWFudGlmaWVyczogKChBIEIpezV9KSAoKEEgQil7MTB9KSAtPiBt ZXJnZWQKIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBy cHJfcGxhbgpAQCAtMzUwOSw2ICszNTI4LDI1IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgogKDcgcm93cykKIAorLS0gQ29uc2VjdXRpdmUgR1JP VVAgbWVyZ2UgYXQgdGhlIGJvdW5kYXJ5OiAoQSBCKXsxMDczNzQxODIzLH0gKEEgQil7MTA3Mzc0 MTgyMyx9CistLSAtPiAoYSBiKXsyMTQ3NDgzNjQ2LH0uICBUaGUgbWluIHN1bSBJTlQzMl9NQVgg LSAxIGlzIHN0aWxsIGZpbml0ZSwgc28gdGhlCistLSBtZXJnZSBwcm9jZWVkczsgYSBzdW0gb2Yg ZXhhY3RseSBJTkYgaW5zdGVhZCBmYWxscyBiYWNrIChzZWUgdGhlCistLSBPcHRpbWl6YXRpb24g RmFsbGJhY2sgVGVzdHMpLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9W RVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVS TiAoKEEgQil7MTA3Mzc0MTgyMyx9IChBIEIpezEwNzM3NDE4MjMsfSkgREVGSU5FIEEgQVMgdmFs IDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogKGEnIGInKXsyMTQ3NDgzNjQ2LH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg LT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCisoNyByb3dzKQorCiAtLSBQUkVGSVggbWVyZ2U6IEEgQiAoQSBCKSsgLT4gKGEg Yil7Mix9CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KQEAgLTUyNjksNiArNTMwNyw1MSBAQCBXSU5ET1cgdyBBUyAoCiAoNyByb3dzKQog CiAtLSBFeHBlY3RlZDogRmFsbGJhY2sgLSBwcmVmaXggZWxlbWVudHMgZG9uJ3QgbWF0Y2ggR1JP VVAgY29udGVudAorLS0gVGVzdDogY29uc2VjdXRpdmUgVkFSIG1lcmdlIHdob3NlIG1pbiBzdW0g aXMgZXhhY3RseSBJTkYgY2F1c2VzIGZhbGxiYWNrLgorLS0gMTA3Mzc0MTgyNCArIDEwNzM3NDE4 MjMgPSAyMTQ3NDgzNjQ3ID0gSU5UMzJfTUFYID0gUlBSX1FVQU5USVRZX0lORi4KKy0tIE1lcmdp bmcgd291bGQgeWllbGQgYSBWQVIgd2l0aCBtaW4gPT0gSU5GLCBzbyB0aGUgbWVyZ2UgbXVzdCBm YWxsIGJhY2sgYW5kCistLSBsZWF2ZSB0aGUgdHdvIFZBUnMgdW5tZXJnZWQgKG1pcnJvcnMgdGhl IG11bHRpcGx5IHBhdGgncyA+PSBJTkYgZ3VhcmQpLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9mYWxsYmFjaworV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsxMDczNzQxODI0LH0gQXsxMDczNzQxODIzLH0pCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYXsxMDczNzQxODI0LH0iIGF7MTA3Mzc0MTgyMyx9CisgICBOYXYgTWFyayBMb29r YmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9mYWxsYmFjaworKDcgcm93cykKKworLS0gRXhwZWN0ZWQ6IEZhbGxi YWNrIC0gVkFScyBub3QgbWVyZ2VkIChtaW4gc3VtIDIxNDc0ODM2NDcgPT0gSU5GKQorLS0gVGVz dDogY29uc2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2hvc2UgbWluIHN1bSBpcyBleGFjdGx5IElORiBj YXVzZXMgZmFsbGJhY2suCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX2ZhbGxiYWNrCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOICgoQSBCKXsxMDczNzQxODI0LH0gKEEgQil7MTA3Mzc0MTgyMyx9KQorICAgIERFRklO RSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gNQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogKGEnIGInKXsxMDczNzQxODI0LH0iIChhIGIpezEwNzM3NDE4MjMsfQor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKKyg3IHJvd3MpCisKKy0t IEV4cGVjdGVkOiBGYWxsYmFjayAtIEdST1VQcyBub3QgbWVyZ2VkIChtaW4gc3VtIDIxNDc0ODM2 NDcgPT0gSU5GKQogRFJPUCBUQUJMRSBycHJfZmFsbGJhY2s7CiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFBsYW5uZXIg SW50ZWdyYXRpb24gVGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9i YXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRleCBkN2I2M2Nm YzY5MC4uNjMxNzM2MTUyNzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9i YXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAgLTIzODYs NiArMjM4NiwxNSBAQCBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KIFdJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKICAgICAgICAgICAgICBQQVRURVJOIChBIEErKSBERUZJTkUgQSBBUyB2YWwg PiAwKTsKIAorLS0gQ29uc2VjdXRpdmUgVkFSIG1lcmdlIGF0IHRoZSBib3VuZGFyeTogQXsxMDcz NzQxODIzLH0gQXsxMDczNzQxODIzLH0gLT4KKy0tIGF7MjE0NzQ4MzY0Nix9LiAgVGhlIG1pbiBz dW0gMjE0NzQ4MzY0NiA9IElOVDMyX01BWCAtIDEgaXMgdGhlIGxhcmdlc3QKKy0tIHN0aWxsLWZp bml0ZSBib3VuZCwgc28gdGhlIG1lcmdlIHByb2NlZWRzOyBhIHN1bSBvZiBleGFjdGx5IElORiBp bnN0ZWFkCistLSBmYWxscyBiYWNrIChzZWUgdGhlIE9wdGltaXphdGlvbiBGYWxsYmFjayBUZXN0 cykuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBezEwNzM3NDE4 MjMsfSBBezEwNzM3NDE4MjMsfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKIC0tIENvbnNlY3V0 aXZlIEdST1VQIG1lcmdlIHdpdGggZmluaXRlIHF1YW50aWZpZXJzOiAoKEEgQil7NX0pICgoQSBC KXsxMH0pIC0+IG1lcmdlZAogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCopIE9W RVIgdyBGUk9NIHJwcl9wbGFuCkBAIC0yNDA2LDYgKzI0MTUsMTUgQEAgU0VMRUNUIENPVU5UKCop IE9WRVIgdyBGUk9NIHJwcl9wbGFuCiBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgICAgICAgUEFU VEVSTiAoKEEgQil7Mn0gKEEgQikrKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4g NTApOwogCistLSBDb25zZWN1dGl2ZSBHUk9VUCBtZXJnZSBhdCB0aGUgYm91bmRhcnk6IChBIEIp ezEwNzM3NDE4MjMsfSAoQSBCKXsxMDczNzQxODIzLH0KKy0tIC0+IChhIGIpezIxNDc0ODM2NDYs fS4gIFRoZSBtaW4gc3VtIElOVDMyX01BWCAtIDEgaXMgc3RpbGwgZmluaXRlLCBzbyB0aGUKKy0t IG1lcmdlIHByb2NlZWRzOyBhIHN1bSBvZiBleGFjdGx5IElORiBpbnN0ZWFkIGZhbGxzIGJhY2sg KHNlZSB0aGUKKy0tIE9wdGltaXphdGlvbiBGYWxsYmFjayBUZXN0cykuCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSBCKXsxMDczNzQxODIzLH0gKEEgQil7MTA3 Mzc0MTgyMyx9KSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCiAtLSBQ UkVGSVggbWVyZ2U6IEEgQiAoQSBCKSsgLT4gKGEgYil7Mix9CiBFWFBMQUlOIChDT1NUUyBPRkYp CiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KQEAgLTMyMTMsNiArMzIzMSwz MSBAQCBXSU5ET1cgdyBBUyAoCiApOwogLS0gRXhwZWN0ZWQ6IEZhbGxiYWNrIC0gcHJlZml4IGVs ZW1lbnRzIGRvbid0IG1hdGNoIEdST1VQIGNvbnRlbnQKIAorLS0gVGVzdDogY29uc2VjdXRpdmUg VkFSIG1lcmdlIHdob3NlIG1pbiBzdW0gaXMgZXhhY3RseSBJTkYgY2F1c2VzIGZhbGxiYWNrLgor LS0gMTA3Mzc0MTgyNCArIDEwNzM3NDE4MjMgPSAyMTQ3NDgzNjQ3ID0gSU5UMzJfTUFYID0gUlBS X1FVQU5USVRZX0lORi4KKy0tIE1lcmdpbmcgd291bGQgeWllbGQgYSBWQVIgd2l0aCBtaW4gPT0g SU5GLCBzbyB0aGUgbWVyZ2UgbXVzdCBmYWxsIGJhY2sgYW5kCistLSBsZWF2ZSB0aGUgdHdvIFZB UnMgdW5tZXJnZWQgKG1pcnJvcnMgdGhlIG11bHRpcGx5IHBhdGgncyA+PSBJTkYgZ3VhcmQpLgor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9mYWxs YmFjaworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsxMDczNzQx ODI0LH0gQXsxMDczNzQxODIzLH0pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4 cGVjdGVkOiBGYWxsYmFjayAtIFZBUnMgbm90IG1lcmdlZCAobWluIHN1bSAyMTQ3NDgzNjQ3ID09 IElORikKKworLS0gVGVzdDogY29uc2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2hvc2UgbWluIHN1bSBp cyBleGFjdGx5IElORiBjYXVzZXMgZmFsbGJhY2suCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2ZhbGxiYWNrCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSBCKXsxMDczNzQxODI0LH0gKEEgQil7MTA3Mzc0MTgy Myx9KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gNQorKTsKKy0tIEV4cGVj dGVkOiBGYWxsYmFjayAtIEdST1VQcyBub3QgbWVyZ2VkIChtaW4gc3VtIDIxNDc0ODM2NDcgPT0g SU5GKQorCiBEUk9QIFRBQkxFIHJwcl9mYWxsYmFjazsKIAogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tIAoyLjUwLjEgKEFw cGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0037-Fix-count-slot-leak-in-row-pattern-recognition-ab.txt" Content-Disposition: attachment; filename="nocfbot-0037-Fix-count-slot-leak-in-row-pattern-recognition-ab.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618js136 RnJvbSAxNzZmNDc3YTgyMGY0MGFiMzFjYjM0ZmNmNDQ5M2RlNjBiMDA0NTc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMjE6MzY6MzggKzA5MDAKU3ViamVjdDogW1BBVENIIDM3LzY4XSBG aXggY291bnQgc2xvdCBsZWFrIGluIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiBhYnNvcnB0aW9u CgpXaGVuIGEgbGVhZiB2YXJpYWJsZSBpbiBhbiBhYnNvcmJhYmxlIGdyb3VwIHJlYWNoZXMgaXRz IG1heGltdW0gY291bnQsCnRoZSBtYXRjaC1waGFzZSBpbmxpbmUgYWR2YW5jZSB3YWxrcyBpdCB0 aHJvdWdoIHRoZSBlbmNsb3NpbmcgRU5ECmVsZW1lbnRzIHdpdGhvdXQgY2xlYXJpbmcgdGhlIHZh cmlhYmxlJ3Mgb3duIGNvdW50c1tdIHNsb3QsIHVubGlrZSB0aGUKcmVndWxhciBleGl0IGluIG5m YV9hZHZhbmNlX3Zhci4gIFNpYmxpbmcgZWxlbWVudHMgYXQgdGhlIHNhbWUgZGVwdGgKc2hhcmUg YSBzbG90LCBzbyB0aGUgc3RhbGUgY291bnQgbGVha2VkIGludG8gYSBmb2xsb3dpbmcgc2libGlu ZyBncm91cAphbmQgdHJpcHBlZCB0aGUgbWF4LWNvdW50IEFzc2VydCAtLSBvciwgaW4gYSBub24t YXNzZXJ0IGJ1aWxkLCBwcm9kdWNlZAphIHdyb25nIG1hdGNoIGNvdW50LiAgUEFUVEVSTiAoKEEg QikrIChDIEQpKykgaXMgdGhlIHNtYWxsZXN0IHJlcHJvZHVjZXIuCgpDbGVhciB0aGUgbGVhZiB2 YXJpYWJsZSdzIGNvdW50IG9uIHRoZSBpbmxpbmUgZXhpdC4gIEFzc2VydCB0aGUKcmVzdWx0aW5n IGNvbnRyYWN0IC0tIGVhY2ggZWxlbWVudCB6ZXJvZXMgaXRzIG93biBzbG90IG9uIGV4aXQsIHNv IGEKdmFyaWFibGUgb3IgZ3JvdXAgaXMgZW50ZXJlZCB3aXRoIGEgemVybyBjb3VudCAtLSBhdCB0 aGUgZW50cnkgcG9pbnRzLAphbmQgZHJvcCB0aGUgbm93LXJlZHVuZGFudCBsb29wLWJhY2sgYm9k eSByZXNldC4KClBlciBhIHJlcG9ydCBmcm9tIGEgc3RhdGljIGFuYWx5c2lzIHRvb2wuCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICB8IDU1ICsrKysrKysrKysrKysr KysrKysrKy0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCB8IDQy ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAg ICAgIHwgMzEgKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25z KCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggMTZhMGY0YWUz NzUuLjllNDU5MjBkZTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBS LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0zMTUsOCArMzE1LDkg QEAgbmZhX3N0YXRlc19lcXVhbChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0YXRl ICpzMSwgUlBSTkZBU3RhdGUgKnMyKQogCSAqIFRoZSArMSBpcyB0aGUgc2xvdCBhcml0aG1ldGlj OiBjb21wYXJpbmcgdGhyb3VnaCBkZXB0aCBOIHJlcXVpcmVzCiAJICogY291bnRzWzAuLk5dLCBp LmUuLCBOKzEgZW50cmllcy4gIERlZXBlciBzbG90cyAoY291bnRzW2RdIHdpdGggZCA+CiAJICog ZWxlbS0+ZGVwdGgpIGFyZSBleGNsdWRlZCBiZWNhdXNlIHRoZXkgaG9sZCBzY3JhdGNoIHN0YXRl IGZyb20gaW5uZXIKLQkgKiBncm91cHMgdGhhdCBnZXRzIHplcm9lZCBvbiByZS1lbnRyeSAoc2Vl IEVORCBsb29wLWJhY2sgaW4KLQkgKiBuZmFfYWR2YW5jZV9lbmQpLCBhbmQgc28gbXVzdCBub3Qg cGFydGljaXBhdGUgaW4gZXF1aXZhbGVuY2UganVkZ21lbnQuCisJICogZ3JvdXBzLiAgUGVyIHRo ZSBjb3VudC1jbGVhciBwb2xpY3kgc3VjaCBhIHNsb3QgaXMgemVyb2VkIHdoZW4gaXRzCisJICog b3duaW5nIGVsZW1lbnQgZXhpdHMgKHNlZSBuZmFfYWR2YW5jZV92YXIgYW5kIHRoZSBpbmxpbmUg ZmFzdCBwYXRoIGluCisJICogbmZhX21hdGNoKSwgc28gaXQgbXVzdCBub3QgcGFydGljaXBhdGUg aW4gZXF1aXZhbGVuY2UganVkZ21lbnQuCiAJICovCiAJZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50 c1tzMS0+ZWxlbUlkeF07CiAJY29tcGFyZURlcHRoID0gZWxlbS0+ZGVwdGggKyAxOwpAQCAtODU4 LDYgKzg1OSwxNiBAQCBuZmFfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgsIGJvb2wgKnZhck1hdGNoZWQpCiAJCQkJCXN0YXRlLT5lbGVtSWR4ID0gZWxl bS0+bmV4dDsKIAkJCQkJc3RhdGUtPmNvdW50c1tlbmREZXB0aF0gPSBlbmRDb3VudDsKIAorCQkJ CQkvKgorCQkJCQkgKiBMZWFmIFZBUiBleGl0ZWQgKHJlYWNoZWQgbWF4KTogY2xlYXIgaXRzIG93 biBjb3VudCBzbworCQkJCQkgKiB0aGUgbmV4dCBvY2N1cGFudCBlbnRlcnMgd2l0aCB6ZXJvLCBh cyBuZmFfYWR2YW5jZV92YXIKKwkJCQkJICogZG9lcyBvbiBleGl0ICh0aGlzIGlubGluZSBwYXRo IHJlcGxhY2VzIHRoYXQgZXhpdCkuCisJCQkJCSAqIGRlcHRoID4gZW5kRGVwdGgsIHNvIHRoaXMg bGVhdmVzIHRoZSBncm91cCBjb3VudCBqdXN0CisJCQkJCSAqIHdyaXR0ZW4gaW50YWN0LgorCQkJ CQkgKi8KKwkJCQkJQXNzZXJ0KGVuZERlcHRoIDwgZGVwdGgpOworCQkJCQlzdGF0ZS0+Y291bnRz W2RlcHRoXSA9IDA7CisKIAkJCQkJLyoKIAkJCQkJICogQ2hhaW4gdGhyb3VnaCBFTkQgZWxlbWVu dHMgd2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbgogCQkJCQkgKiAoQUJTT1JCQUJMRV9CUkFO Q0gpIHVudGlsIHJlYWNoaW5nIHRoZSBqdWRnbWVudCBwb2ludApAQCAtODczLDcgKzg4NCwxMyBA QCBuZmFfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs IGJvb2wgKnZhck1hdGNoZWQpCiAJCQkJCQlpbnQJCQlvdXRlckRlcHRoID0gb3V0ZXJFbmQtPmRl cHRoOwogCQkJCQkJaW50MzIJCW91dGVyQ291bnQgPSBzdGF0ZS0+Y291bnRzW291dGVyRGVwdGhd OwogCi0JCQkJCQkvKiBSZXNldCBleGl0ZWQgZ3JvdXAncyBjb3VudCAqLworCQkJCQkJLyoKKwkJ CQkJCSAqIEV4aXQgdGhpcyBpbnRlcm1lZGlhdGUgZ3JvdXA6IGNsZWFyIGl0cyBvd24gY291bnQK KwkJCQkJCSAqIChjb3VudC1jbGVhciBwb2xpY3kpLiAgSXQgc2l0cyBiZWxvdyB0aGUgYWJzb3Ji YWJsZQorCQkJCQkJICoganVkZ21lbnQgcG9pbnQsIHNvIGl0IGlzIGV4Y2x1ZGVkIGZyb20gdGhl CisJCQkJCQkgKiBkb21pbmFuY2UgY29tcGFyaXNvbjsgdGhlIGp1ZGdtZW50IHBvaW50IHdoZXJl IHRoZQorCQkJCQkJICogY2hhaW4gc3RvcHMga2VlcHMgaXRzIGNvdW50LgorCQkJCQkJICovCiAJ CQkJCQlzdGF0ZS0+Y291bnRzW2VuZERlcHRoXSA9IDA7CiAKIAkJCQkJCS8qIEluY3JlbWVudCBv dXRlciBncm91cCBjb3VudCAqLwpAQCAtOTI1LDYgKzk0MiwxNSBAQCBuZmFfcm91dGVfdG9fZWxl bShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAl7CiAJCVJQ Uk5GQVN0YXRlICpza2lwU3RhdGUgPSBOVUxMOwogCisJCS8qCisJCSAqIEVudHJ5LXNpZGUgY2hl Y2sgb2YgdGhlIGNvdW50LWNsZWFyIHBvbGljeTogYSBWQVIgaXMgYWx3YXlzIHJvdXRlZAorCQkg KiB0byB3aXRoIGEgY2xlYW4gc2xvdC4gIEVhY2ggZWxlbWVudCB6ZXJvZXMgaXRzIG93biBjb3Vu dCBvbiBleGl0LAorCQkgKiBzbyBhIG5vbnplcm8gY291bnQgaGVyZSB3b3VsZCBiZSBhIGxlYWsg ZnJvbSBhbiBlYXJsaWVyIGVsZW1lbnQKKwkJICogKHNlZSBuZmFfYWR2YW5jZV92YXIgLyBuZmFf YWR2YW5jZV9lbmQgZXhpdCBoYW5kbGluZyBhbmQgdGhlIGlubGluZQorCQkgKiBmYXN0IHBhdGgg aW4gbmZhX21hdGNoKS4KKwkJICovCisJCUFzc2VydChzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5k ZXB0aF0gPT0gMCk7CisKIAkJLyogQ3JlYXRlIHNraXAgc3RhdGUgYmVmb3JlIGFkZF91bmlxdWUs IHdoaWNoIG1heSBmcmVlIHN0YXRlICovCiAJCWlmIChSUFJFbGVtQ2FuU2tpcChuZXh0RWxlbSkp CiAJCQlza2lwU3RhdGUgPSBuZmFfc3RhdGVfY2xvbmUod2luc3RhdGUsIG5leHRFbGVtLT5uZXh0 LApAQCAtOTg5LDkgKzEwMTUsMTAgQEAgbmZhX2FkdmFuY2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3 aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogICogbmZhX2FkdmFuY2VfYmVnaW4KICAqCiAg KiBIYW5kbGUgQkVHSU4gZWxlbWVudDogZ3JvdXAgZW50cnkgbG9naWMuCi0gKiBCRUdJTiBpcyBv bmx5IHZpc2l0ZWQgYXQgaW5pdGlhbCBncm91cCBlbnRyeSAoY291bnQgaXMgYWx3YXlzIDApLgor ICogQkVHSU4gaXMgb25seSB2aXNpdGVkIGF0IGluaXRpYWwgZ3JvdXAgZW50cnk7IGxvb3AtYmFj ayBmcm9tIEVORCBnb2VzCisgKiBkaXJlY3RseSB0byBmaXJzdCBjaGlsZCwgYnlwYXNzaW5nIEJF R0lOLiAgUGVyIHRoZSBjb3VudC1jbGVhciBwb2xpY3kgdGhlCisgKiBncm91cCdzIG93biBjb3Vu dCBzbG90IGlzIHRoZXJlZm9yZSBhbHJlYWR5IHplcm8gb24gZW50cnkgKGFzc2VydGVkIGJlbG93 KS4KICAqIElmIG1pbj0wLCBjcmVhdGVzIGEgc2tpcCBwYXRoIHBhc3QgdGhlIGdyb3VwLgotICog TG9vcC1iYWNrIGZyb20gRU5EIGdvZXMgZGlyZWN0bHkgdG8gZmlyc3QgY2hpbGQsIGJ5cGFzc2lu ZyBCRUdJTi4KICAqLwogc3RhdGljIHZvaWQKIG5mYV9hZHZhbmNlX2JlZ2luKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LApAQCAtMTAwMiw3ICsxMDI5LDEyIEBA IG5mYV9hZHZhbmNlX2JlZ2luKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4 dCAqY3R4LAogCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVsZW1lbnRz OwogCVJQUk5GQVN0YXRlICpza2lwU3RhdGUgPSBOVUxMOwogCi0Jc3RhdGUtPmNvdW50c1tlbGVt LT5kZXB0aF0gPSAwOworCS8qCisJICogRW50cnktc2lkZSBjaGVjayBvZiB0aGUgY291bnQtY2xl YXIgcG9saWN5OiB0aGUgZ3JvdXAncyBvd24gY291bnQgc2xvdAorCSAqIGlzIGFscmVhZHkgemVy byBoZXJlLiAgQkVHSU4gaXMgb25seSB2aXNpdGVkIGF0IGluaXRpYWwgZ3JvdXAgZW50cnksCisJ ICogYW5kIHRoZSBwcmV2aW91cyBvY2N1cGFudCBvZiB0aGlzIGRlcHRoIHNsb3QgY2xlYXJlZCBp dCBvbiBleGl0LgorCSAqLworCUFzc2VydChzdGF0ZS0+Y291bnRzW2VsZW0tPmRlcHRoXSA9PSAw KTsKIAogCS8qIE9wdGlvbmFsIGdyb3VwOiBjcmVhdGUgc2tpcCBwYXRoIChidXQgZG9uJ3Qgcm91 dGUgeWV0KSAqLwogCWlmIChlbGVtLT5taW4gPT0gMCkKQEAgLTEwOTQsOCArMTEyNiw2IEBAIG5m YV9hZHZhbmNlX2VuZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0 eCwKIAkJCQkJCQkJCSAgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CiAKIAkJ LyogUHJpbWFyeSBwYXRoOiBsb29wIGJhY2sgZm9yIHJlYWwgbWF0Y2hlcyAqLwotCQlmb3IgKGlu dCBkID0gZGVwdGggKyAxOyBkIDwgcGF0dGVybi0+bWF4RGVwdGg7IGQrKykKLQkJCXN0YXRlLT5j b3VudHNbZF0gPSAwOwogCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPmp1bXA7CiAJCWp1bXBFbGVt ID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3Rh dGUsIGN0eCwgc3RhdGUsIGp1bXBFbGVtLApAQCAtMTExMiw2ICsxMTQyLDcgQEAgbmZhX2FkdmFu Y2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQl7 CiAJCQlSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW07CiAKKwkJCS8qIEV4aXQgdGhlIGdyb3Vw OiBjbGVhciBpdHMgb3duIGNvdW50IChjb3VudC1jbGVhciBwb2xpY3kpICovCiAJCQlmZlN0YXRl LT5jb3VudHNbZGVwdGhdID0gMDsKIAkJCWZmU3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0Owog CQkJbmV4dEVsZW0gPSAmZWxlbWVudHNbZmZTdGF0ZS0+ZWxlbUlkeF07CkBAIC0xMTMwLDYgKzEx NjEsNyBAQCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgsCiAJCS8qIE11c3QgZXhpdDogcmVhY2hlZCBtYXggaXRlcmF0aW9ucy4gKi8K IAkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOwogCisJCS8qIEV4aXQ6IGNsZWFyIHRoZSBn cm91cCdzIG93biBjb3VudCAoY291bnQtY2xlYXIgcG9saWN5KSAqLwogCQlzdGF0ZS0+Y291bnRz W2RlcHRoXSA9IDA7CiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKIAkJbmV4dEVsZW0g PSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOwpAQCAtMTE2MSw2ICsxMTkzLDcgQEAgbmZhX2Fk dmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAog CQkgKi8KIAkJZXhpdFN0YXRlID0gbmZhX3N0YXRlX2Nsb25lKHdpbnN0YXRlLCBlbGVtLT5uZXh0 LAogCQkJCQkJCQkJc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJCS8qIEV4 aXQgYnJhbmNoOiBjbGVhciB0aGUgZ3JvdXAncyBvd24gY291bnQgKGNvdW50LWNsZWFyIHBvbGlj eSkgKi8KIAkJZXhpdFN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKIAkJbmV4dEVsZW0gPSAmZWxl bWVudHNbZXhpdFN0YXRlLT5lbGVtSWR4XTsKIApAQCAtMTE2OSw4ICsxMjAyLDYgQEAgbmZhX2Fk dmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAog CQkJZXhpdFN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOwogCiAJCS8qIFByZXBhcmUg bG9vcCBzdGF0ZSAqLwotCQlmb3IgKGludCBkID0gZGVwdGggKyAxOyBkIDwgcGF0dGVybi0+bWF4 RGVwdGg7IGQrKykKLQkJCXN0YXRlLT5jb3VudHNbZF0gPSAwOwogCQlzdGF0ZS0+ZWxlbUlkeCA9 IGVsZW0tPmp1bXA7CiAJCWp1bXBFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIApA QCAtMTI1Myw2ICsxMjg0LDcgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJLyogQ2xvbmUgZm9yIGV4aXQsIG9yaWdpbmFs IHN0YXlzIGZvciBsb29wICovCiAJCQljbG9uZVN0YXRlID0gbmZhX3N0YXRlX2Nsb25lKHdpbnN0 YXRlLCBlbGVtLT5uZXh0LAogCQkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNv cmJhYmxlKTsKKwkJCS8qIEV4aXQ6IGNsZWFyIHRoZSBWQVIncyBvd24gY291bnQgKGNvdW50LWNs ZWFyIHBvbGljeSkgKi8KIAkJCWNsb25lU3RhdGUtPmNvdW50c1tkZXB0aF0gPSAwOwogCQkJbmV4 dEVsZW0gPSAmZWxlbWVudHNbY2xvbmVTdGF0ZS0+ZWxlbUlkeF07CiAKQEAgLTEyODksNyArMTMy MSw3IEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNv bnRleHQgKmN0eCwKIAkJCS8qIExvb3AgZmlyc3QgKHByZWZlcnJlZCBmb3IgZ3JlZWR5KSAqLwog CQkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgY2xvbmVTdGF0ZSk7CiAKLQkJ CS8qIEV4aXQgc2Vjb25kICovCisJCQkvKiBFeGl0IHNlY29uZDogY2xlYXIgdGhlIFZBUidzIG93 biBjb3VudCAoY291bnQtY2xlYXIgcG9saWN5KSAqLwogCQkJc3RhdGUtPmNvdW50c1tkZXB0aF0g PSAwOwogCQkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OwogCQkJbmV4dEVsZW0gPSAmZWxl bWVudHNbc3RhdGUtPmVsZW1JZHhdOwpAQCAtMTMyNiw2ICsxMzU4LDcgQEAgbmZhX2FkdmFuY2Vf dmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkvKiBF eGl0IG9ubHk6IGFkdmFuY2UgdG8gbmV4dCBlbGVtZW50ICovCiAJCVJQUlBhdHRlcm5FbGVtZW50 ICpuZXh0RWxlbTsKIAorCQkvKiBFeGl0OiBjbGVhciB0aGUgVkFSJ3Mgb3duIGNvdW50IChjb3Vu dC1jbGVhciBwb2xpY3kpICovCiAJCXN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKIAkJc3RhdGUt PmVsZW1JZHggPSBlbGVtLT5uZXh0OwogCQluZXh0RWxlbSA9ICZlbGVtZW50c1tzdGF0ZS0+ZWxl bUlkeF07CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAppbmRleCA1OWI5MWZmOWFh NC4uMmEwZDRmMTFlNzQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X25mYS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dApAQCAt NDQ3LDYgKzQ0Nyw0OCBAQCBXSU5ET1cgdyBBUyAoCiAgIDcgfCB7WH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCiAoNyByb3dzKQogCistLSBUd28gY29uc2VjdXRpdmUgdW5ib3VuZGVkIGdy b3VwczogKEEgQikrIChDIEQpKworLS0gVGhlIGxlYWRpbmcgZ3JvdXAgKEEgQikrIGlzIGFic29y YmFibGUgKHVuYm91bmRlZCBtdWx0aS1lbGVtZW50KTsgKEMgRCkrIGlzCistLSBhIGRpc3RpbmN0 IHNpYmxpbmcgZ3JvdXAgdGhhdCBkb2VzIG5vdCBtZXJnZSB3aXRoIGl0LiAgV2hlbiB0aGUgbGVh ZGluZyBncm91cAorLS0gZXhpdHMgaW50byB0aGUgc2libGluZywgaXRzIGJvZHkgbGVhZi1WQVIg Y291bnQgbXVzdCBiZSBjbGVhcmVkIHNvIGl0IGRvZXMKKy0tIG5vdCBsZWFrIGludG8gdGhlIHNp YmxpbmcncyBzaGFyZWQgZGVwdGggc2xvdC4KK1dJVEggdGVzdF9hYnNvcmJfdHdvX2dyb3VwcyBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisgICAg ICAgICg0LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDUsIEFSUkFZWydBJ10pLAorICAgICAgICAo NiwgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDgsIEFS UkFZWydEJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfdHdvX2dyb3VwcworV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKEEgQikrIChDIEQpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMg J0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworIGlk IHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA0 CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgICA4CisgIDYgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDggfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoOCByb3dzKQor CiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgQnsyfSkrIEMKIC0tIEJ7Mn0g aGFzIG1pbiA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5nIHRvIChBIEIgQikrIEMKIFdJ VEggdGVzdF9hYnNvcmJfZml4ZWRsZW4gQVMgKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX25mYS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAppbmRl eCBmZWJmODM0NTY1ZC4uNjM2MmM2OWYzODUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9uZmEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCkBA IC0zNDYsNiArMzQ2LDM3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpCiApOwogCistLSBUd28gY29uc2VjdXRpdmUgdW5ib3VuZGVkIGdyb3VwczogKEEgQikr IChDIEQpKworLS0gVGhlIGxlYWRpbmcgZ3JvdXAgKEEgQikrIGlzIGFic29yYmFibGUgKHVuYm91 bmRlZCBtdWx0aS1lbGVtZW50KTsgKEMgRCkrIGlzCistLSBhIGRpc3RpbmN0IHNpYmxpbmcgZ3Jv dXAgdGhhdCBkb2VzIG5vdCBtZXJnZSB3aXRoIGl0LiAgV2hlbiB0aGUgbGVhZGluZyBncm91cAor LS0gZXhpdHMgaW50byB0aGUgc2libGluZywgaXRzIGJvZHkgbGVhZi1WQVIgY291bnQgbXVzdCBi ZSBjbGVhcmVkIHNvIGl0IGRvZXMKKy0tIG5vdCBsZWFrIGludG8gdGhlIHNpYmxpbmcncyBzaGFy ZWQgZGVwdGggc2xvdC4KK1dJVEggdGVzdF9hYnNvcmJfdHdvX2dyb3VwcyBBUyAoCisgICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIs IEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCBBUlJB WVsnRCddKSwKKyAgICAgICAgKDUsIEFSUkFZWydBJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0In XSksCisgICAgICAgICg3LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDgsIEFSUkFZWydEJ10pCisg ICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9hYnNvcmJfdHdvX2dyb3VwcworV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEg QikrIChDIEQpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworCiAtLSBGaXhlZC1sZW5n dGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgQnsyfSkrIEMKIC0tIEJ7Mn0gaGFzIG1pbiA9PSBtYXgs IGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5nIHRvIChBIEIgQikrIEMKIFdJVEggdGVzdF9hYnNvcmJf Zml4ZWRsZW4gQVMgKAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0038-Demote-dead-runtime-checks-in-the-RPR-executor-to.txt" Content-Disposition: attachment; filename="nocfbot-0038-Demote-dead-runtime-checks-in-the-RPR-executor-to.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618js337 RnJvbSBjZDA4ZTQyOTZmNDk5YjljM2RiM2I3OTI2YTYyNWY2MzQ1NWE4MTVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMjI6MTU6MDQgKzA5MDAKU3ViamVjdDogW1BBVENIIDM4LzY4XSBE ZW1vdGUgZGVhZCBydW50aW1lIGNoZWNrcyBpbiB0aGUgUlBSIGV4ZWN1dG9yIHRvCiBhc3NlcnRp b25zCgpUaHJlZSBjaGVja3MgaW4gdGhlIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIE5GQSBleGVj dXRvciBjYW4gbmV2ZXIgZmFpbCwKZ2l2ZW4gaG93IHRoZSBwbGFubmVyIGJ1aWxkcyB0aGUgcGF0 dGVybjoKCi0gVGhlIGZpbmFsIGFybSBvZiBuZmFfYWR2YW5jZV92YXIncyBsb29wL2V4aXQgY2Fz Y2FkZSB0ZXN0ZWQgY2FuRXhpdCwKICBidXQgcmVhY2hpbmcgaXQgaW1wbGllcyAhY2FuTG9vcCwg d2hpY2ggd2l0aCBtaW4gPD0gbWF4IGZvcmNlcyBjYW5FeGl0CiAgdHJ1ZS4KLSBuZmFfc3RhdGVf Y2xvbmUgZ3VhcmRlZCB0aGUgY291bnRzIG1lbWNweSB3aXRoIGNvdW50cyAhPSBOVUxMICYmCiAg bWF4RGVwdGggPiAwLCBidXQgZXZlcnkgY2FsbGVyIHBhc3NlcyBhIGxpdmUgc3RhdGUncyBjb3Vu dHMgYW5kIHRoZQogIHN0b3JlZCBtYXhEZXB0aCBpcyBhbHdheXMgPj0gMS4KLSBuZmFfYWR2YW5j ZV9hbHQgYm91bmRlZCB0aGUgYnJhbmNoIHdhbGsgd2l0aCBhbHRJZHggPCBudW1FbGVtZW50cywg YnV0CiAgZXZlcnkganVtcC9uZXh0IGxpbmsgaXMgLTEgb3IgYSB2YWxpZCBpbmRleCwgYW5kIHRo ZSBhbHRJZHggPj0gMCB0ZXN0CiAgYW5kIHRoZSBkZXB0aCBicmVhayBhbHJlYWR5IHRlcm1pbmF0 ZSB0aGUgd2Fsay4KClJlcGxhY2UgZWFjaCB3aXRoIGFuIGFzc2VydGlvbiB0aGF0IGRvY3VtZW50 cyB0aGUgaW52YXJpYW50IGFuZCBkcm9wIHRoZQpydW50aW1lIGJyYW5jaC4gIEFsc28gZG9jdW1l bnQgd2h5IHRoZSBudWxsYWJsZSBmYXN0LWZvcndhcmQgcGF0aCBpbgpuZmFfYWR2YW5jZV9lbmQg aW50ZW50aW9uYWxseSBvbWl0cyB0aGUgaXNBYnNvcmJhYmxlIHVwZGF0ZTogaXQgcnVucyBvbmx5 CmZvciBFTVBUWV9MT09QIGdyb3Vwcywgd2hpY2ggYXJlIG5ldmVyIGluc2lkZSBhbiBhYnNvcmJh YmxlIHJlZ2lvbi4KClBlciBhIHJlcG9ydCBmcm9tIGEgc3RhdGljIGFuYWx5c2lzIHRvb2wuCi0t LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMjUgKysrKysrKysrKysrKysrKysr Ky0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IDllNDU5MjBkZTljLi5lYWMwYzA0YzM4ZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMjc5LDggKzI3OSw5IEBAIG5mYV9zdGF0ZV9jbG9uZShX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgsCiAJUlBSUGF0dGVybkVsZW1l bnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbZWxlbUlkeF07CiAKIAlzdGF0ZS0+ZWxlbUlk eCA9IGVsZW1JZHg7Ci0JaWYgKGNvdW50cyAhPSBOVUxMICYmIG1heERlcHRoID4gMCkKLQkJbWVt Y3B5KHN0YXRlLT5jb3VudHMsIGNvdW50cywgc2l6ZW9mKGludDMyKSAqIG1heERlcHRoKTsKKwkv KiBFdmVyeSByZWFjaGFibGUgY2FsbGVyIHBhc3NlcyBhIGxpdmUgc3RhdGUncyBjb3VudHM7IG1h eERlcHRoID49IDEuICovCisJQXNzZXJ0KGNvdW50cyAhPSBOVUxMICYmIG1heERlcHRoID4gMCk7 CisJbWVtY3B5KHN0YXRlLT5jb3VudHMsIGNvdW50cywgc2l6ZW9mKGludDMyKSAqIG1heERlcHRo KTsKIAogCS8qCiAJICogQ29tcHV0ZSBpc0Fic29yYmFibGUgaW1tZWRpYXRlbHkgYXQgdHJhbnNp dGlvbiB0aW1lLiBpc0Fic29yYmFibGUgPQpAQCAtOTgxLDExICs5ODIsMTUgQEAgbmZhX2FkdmFu Y2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCVJQ UlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVsZW1lbnRzOwogCVJQUkVsZW1J ZHgJYWx0SWR4ID0gZWxlbS0+bmV4dDsKIAotCXdoaWxlIChhbHRJZHggPj0gMCAmJiBhbHRJZHgg PCBwYXR0ZXJuLT5udW1FbGVtZW50cykKKwl3aGlsZSAoYWx0SWR4ID49IDApCiAJewotCQlSUFJQ YXR0ZXJuRWxlbWVudCAqYWx0RWxlbSA9ICZlbGVtZW50c1thbHRJZHhdOworCQlSUFJQYXR0ZXJu RWxlbWVudCAqYWx0RWxlbTsKIAkJUlBSTkZBU3RhdGUgKm5ld1N0YXRlOwogCisJCS8qIEJyYW5j aCBqdW1wL25leHQgbGlua3MgYXJlIGFsd2F5cyAtMSBvciBhIHZhbGlkIGluZGV4ICovCisJCUFz c2VydChhbHRJZHggPCBwYXR0ZXJuLT5udW1FbGVtZW50cyk7CisJCWFsdEVsZW0gPSAmZWxlbWVu dHNbYWx0SWR4XTsKKwogCQkvKgogCQkgKiBTdG9wIGlmIGVsZW1lbnQgaXMgb3V0c2lkZSBBTFQg c2NvcGUgKG5vdCBhIGJyYW5jaCkuICBUaGUgY2hlY2sKIAkJICogZmlyZXMgd2hlbiB0aGUgbGFz dCBicmFuY2ggaXMgYSBxdWFudGlmaWVkIGdyb3VwIHdob3NlIEJFR0lOLmp1bXAKQEAgLTExNDcs NiArMTE1MiwxMyBAQCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJORkFDb250ZXh0ICpjdHgsCiAJCQlmZlN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKIAkJ CW5leHRFbGVtID0gJmVsZW1lbnRzW2ZmU3RhdGUtPmVsZW1JZHhdOwogCisJCQkvKgorCQkJICog VW5saWtlIHRoZSBtdXN0LWV4aXQgcGF0aCwgbm8gaXNBYnNvcmJhYmxlIHVwZGF0ZSBpcyBuZWVk ZWQ6CisJCQkgKiB0aGUgZmFzdC1mb3J3YXJkIHBhdGggcnVucyBvbmx5IGZvciBFTVBUWV9MT09Q IChudWxsYWJsZSkKKwkJCSAqIGdyb3Vwcywgd2hpY2ggYXJlIG5ldmVyIGluc2lkZSBhbiBhYnNv cmJhYmxlIHJlZ2lvbiwgc28KKwkJCSAqIGlzQWJzb3JiYWJsZSBpcyBhbHJlYWR5IGZhbHNlIGhl cmUuCisJCQkgKi8KKwogCQkJLyogRU5ELT5FTkQ6IGluY3JlbWVudCBvdXRlciBFTkQncyBjb3Vu dCAqLwogCQkJaWYgKFJQUkVsZW1Jc0VuZChuZXh0RWxlbSkgJiYKIAkJCQlmZlN0YXRlLT5jb3Vu dHNbbmV4dEVsZW0tPmRlcHRoXSA8IFJQUl9DT1VOVF9NQVgpCkBAIC0xMzUzLDExICsxMzY1LDEy IEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRl eHQgKmN0eCwKIAkJLyogTG9vcCBvbmx5OiBrZWVwIHN0YXRlIGFzLWlzICovCiAJCW5mYV9hZGRf c3RhdGVfdW5pcXVlKHdpbnN0YXRlLCBjdHgsIHN0YXRlKTsKIAl9Ci0JZWxzZSBpZiAoY2FuRXhp dCkKKwllbHNlCiAJewotCQkvKiBFeGl0IG9ubHk6IGFkdmFuY2UgdG8gbmV4dCBlbGVtZW50ICov CisJCS8qIEV4aXQgb25seTogYWR2YW5jZSB0byBuZXh0IGVsZW1lbnQgKGNhbkV4aXQgbmVjZXNz YXJpbHkgdHJ1ZSkgKi8KIAkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOwogCisJCUFzc2Vy dChjYW5FeGl0KTsKIAkJLyogRXhpdDogY2xlYXIgdGhlIFZBUidzIG93biBjb3VudCAoY291bnQt Y2xlYXIgcG9saWN5KSAqLwogCQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9IDA7CiAJCXN0YXRlLT5l bGVtSWR4ID0gZWxlbS0+bmV4dDsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0040-Honor-reluctant-quantifier-for-non-leading-option.txt" Content-Disposition: attachment; filename="nocfbot-0040-Honor-reluctant-quantifier-for-non-leading-option.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618js639 RnJvbSBmYjIwMGYwNmQxMjAyYzEzYjg1OTM1YzQwZDJhNWQ4MGMxZGE1ODRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMjM6NDk6NDYgKzA5MDAKU3ViamVjdDogW1BBVENIIDQwLzY4XSBI b25vciByZWx1Y3RhbnQgcXVhbnRpZmllciBmb3Igbm9uLWxlYWRpbmcgb3B0aW9uYWwgUlBSCiB2 YXJpYWJsZXMKCkEgcmVsdWN0YW50IG9wdGlvbmFsIHBhdHRlcm4gdmFyaWFibGUgdGhhdCBpcyBu b3QgdGhlIGxlYWRpbmcgZWxlbWVudCAtLQpmb3IgZXhhbXBsZSBBPz8gaW4gUEFUVEVSTiAoQiBB Pz8gQykgLS0gbWF0Y2hlZCBncmVlZGlseS4gIG5mYV9yb3V0ZV90b19lbGVtCmJ1aWxkcyB0aGUg c2tpcCBwYXRoIG9mIGEgbWluPTAgdmFyaWFibGUgaW4gYSBmaXhlZCBvcmRlciwgYWRkaW5nIHRo ZSBlbnRlcgoobWF0Y2gpIHN0YXRlIGJlZm9yZSB0aGUgc2tpcCBzdGF0ZS4gIFNpbmNlIHRoZSBz dGF0ZSBsaXN0IG9yZGVyIGVuY29kZXMKbWF0Y2ggcHJlZmVyZW5jZSwgdGhlIGVudGVyIHBhdGgg YWx3YXlzIHdvbiwgaWdub3JpbmcgUlBSRWxlbUlzUmVsdWN0YW50LgpMZWFkaW5nIHZhcmlhYmxl cyBhbmQgb3B0aW9uYWwgZ3JvdXBzIHdlcmUgdW5hZmZlY3RlZDogdGhleSBnbyB0aHJvdWdoCm5m YV9hZHZhbmNlX3ZhciAvIG5mYV9hZHZhbmNlX2JlZ2luLCB3aGljaCBhbHJlYWR5IG9yZGVyIHRo ZSBza2lwIHBhdGggZmlyc3QKd2hlbiByZWx1Y3RhbnQuCgpNaXJyb3IgdGhhdCBoYW5kbGluZyBp biBuZmFfcm91dGVfdG9fZWxlbTogd2hlbiB0aGUgb3B0aW9uYWwgdmFyaWFibGUgaXMKcmVsdWN0 YW50LCByb3V0ZSB0aGUgc2tpcCBwYXRoIGZpcnN0IGFuZCBkcm9wIHRoZSBlbnRlciBzdGF0ZSBp ZiB0aGUgc2tpcApwYXRoIGhhcyBhbHJlYWR5IHJlYWNoZWQgRklOLgoKQWRkIHJlZ3Jlc3Npb24g dGVzdHMgZm9yIG5vbi1sZWFkaW5nIHJlbHVjdGFudCBvcHRpb25hbCB2YXJpYWJsZXMgYW5kIGdy b3Vwcy4KClBlciBhIHJlcG9ydCBmcm9tIGEgc3RhdGljIGFuYWx5c2lzIHRvb2wuCi0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICB8IDI5ICsrKysrKysrKystCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IHwgNjkgKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgIHwgNTYgKysr KysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBS LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggYTJjMzA0ZGEwZDEuLjU4 MGIyNWYzOThkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC05NTcsMTAgKzk1NywzNSBAQCBu ZmFfcm91dGVfdG9fZWxlbShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQg KmN0eCwKIAkJCXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jbG9uZSh3aW5zdGF0ZSwgbmV4dEVsZW0t Pm5leHQsCiAJCQkJCQkJCQkJc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CiAK LQkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgc3RhdGUpOworCQlpZiAoc2tp cFN0YXRlICE9IE5VTEwgJiYgUlBSRWxlbUlzUmVsdWN0YW50KG5leHRFbGVtKSkKKwkJeworCQkJ UlBSTkZBU3RhdGUgKnNhdmVkTWF0Y2ggPSBjdHgtPm1hdGNoZWRTdGF0ZTsKIAotCQlpZiAoc2tp cFN0YXRlICE9IE5VTEwpCisJCQkvKgorCQkJICogUmVsdWN0YW50IG9wdGlvbmFsIFZBUjogcHJl ZmVyIHNraXBwaW5nLiAgRXhwbG9yZSB0aGUgc2tpcCBwYXRoCisJCQkgKiBmaXJzdCBzbyBpdCBv dXRyYW5rcyB0aGUgZW50ZXIgKG1hdGNoKSBwYXRoOyBpZiBpdCByZWFjaGVzIEZJTgorCQkJICog dGhlIHNob3J0ZXN0IG1hdGNoIGlzIGZvdW5kIGFuZCB0aGUgZW50ZXIgc3RhdGUgaXMgZHJvcHBl ZC4KKwkJCSAqIFRoaXMgbWlycm9ycyB0aGUgcmVsdWN0YW50IGJyYW5jaCBvZiBuZmFfYWR2YW5j ZV9iZWdpbiB1c2VkIGJ5CisJCQkgKiB0aGUgbGVhZGluZy1wb3NpdGlvbiBhbmQgb3B0aW9uYWwt Z3JvdXAgcGF0aHMuCisJCQkgKi8KIAkJCW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0YXRlLCBjdHgs IHNraXBTdGF0ZSwgY3VycmVudFBvcyk7CisKKwkJCWlmIChjdHgtPm1hdGNoZWRTdGF0ZSAhPSBz YXZlZE1hdGNoKQorCQkJeworCQkJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7CisJ CQkJcmV0dXJuOworCQkJfQorCisJCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3aW5zdGF0ZSwgY3R4 LCBzdGF0ZSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBHcmVlZHkgKG9yIG5vbi1za2lwcGFi bGUpOiBlbnRlciBmaXJzdCwgdGhlbiBza2lwICovCisJCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3 aW5zdGF0ZSwgY3R4LCBzdGF0ZSk7CisKKwkJCWlmIChza2lwU3RhdGUgIT0gTlVMTCkKKwkJCQlu ZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBza2lwU3RhdGUsIGN1cnJlbnRQb3MpOwor CQl9CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9uZmEub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAppbmRl eCAyYTBkNGYxMWU3NC4uODI5ZTgyNTFhZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX25mYS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf bmZhLm91dApAQCAtMTIyMiw2ICsxMjIyLDc1IEBAIFdJTkRPVyB3IEFTICgKICAgMyB8IHtDfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKICgzIHJvd3MpCiAKKy0tIE5vbi1sZWFkaW5nIHJl bHVjdGFudCBvcHRpb25hbCBWQVI6IChCIEE/PyBDKQorLS0gUmVsdWN0YW50IEE/PyBzaG91bGQg cHJlZmVyIHRvIHNraXAsIG1hdGNoaW5nIEIoMSkgQygyKSB3aXRoIEEgbGVmdAorLS0gdW5tYXRj aGVkIChtYXRjaF9lbmQgMikuICBUaGUgbGVhZGluZy9ncm91cCByZWx1Y3RhbnQgY2FzZXMgYWJv dmUgZ28gdGhyb3VnaAorLS0gdGhlIGJlZ2luIHBhdGg7IHRoaXMgZXhlcmNpc2VzIHRoZSBub24t bGVhZGluZyBza2lwIHBhdGggaW4KKy0tIG5mYV9yb3V0ZV90b19lbGVtLCB3aGljaCBtdXN0IGhv bm9yIHJlbHVjdGFudCBvcmRlcmluZyB0b28uCitXSVRIIHRlc3Rfbm9ubGVhZGluZ19yZWx1Y3Rh bnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0In XSksCisgICAgICAgICgyLCBBUlJBWVsnQScsICdDJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0Mn XSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9ub25sZWFkaW5nX3JlbHVjdGFudAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQiBBPz8gQykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAn QScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAg IEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBt YXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwg e0J9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMgorICAyIHwge0EsQ30gfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDMg cm93cykKKworLS0gTm9uLWxlYWRpbmcgcmVsdWN0YW50IG9wdGlvbmFsIEdST1VQIHdpdGggYSBm b2xsb3dlcjogKEIgKEEgWCk/PyBDKQorLS0gTGlrZSB0aGUgVkFSIGNhc2UgYWJvdmUgYnV0IGEg bXVsdGktZWxlbWVudCBncm91cDsgaXQgZ29lcyB0aHJvdWdoIHRoZQorLS0gYmVnaW4gcGF0aCAo bmZhX2FkdmFuY2VfYmVnaW4pLCB3aGljaCBhbHJlYWR5IGhvbm9ycyByZWx1Y3RhbnQgb3JkZXJp bmcuCistLSBSZWx1Y3RhbnQgKEEgWCk/PyBzaG91bGQgc2tpcCwgbWF0Y2hpbmcgQigxKSBDKDIp LCB3aXRoIHRoZSBncm91cCBza2lwcGVkCistLSB0byB0aGUgZm9sbG93aW5nIEMgKG5vdCB0byBG SU4pLgorV0lUSCB0ZXN0X25vbmxlYWRpbmdfcmVsdWN0YW50X2dyb3VwIEFTICgKKyAgICBTRUxF Q1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydCJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0EnLCAnQyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydYJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ0MnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywK KyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9ub25sZWFkaW5nX3Jl bHVjdGFudF9ncm91cAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQiAoQSBYKT8/IEMpCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgWCBBUyAnWCcgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMg J0MnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0J9ICAg fCAgICAgICAgICAgMSB8ICAgICAgICAgMgorICAyIHwge0EsQ30gfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICAzIHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0N9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKwogLS0gR3JlZWR5L3JlbHVj dGFudCBzZXF1ZW5jZTogQSsgQis/IChncmVlZHkgQSwgcmVsdWN0YW50IEIgYXQgZW5kKQogLS0g QSBjb25zdW1lcyBncmVlZGlseSwgQis/IGV4aXRzIHRvIEZJTiBhZnRlciBtaW5pbXVtIG1hdGNo CiBXSVRIIHRlc3RfZ3JlZWR5X3RoZW5fcmVsdWN0YW50IEFTICgKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25m YS5zcWwKaW5kZXggNjM2MmM2OWYzODUuLjNiYmVjNDk2Mjc5IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf bmZhLnNxbApAQCAtODYwLDYgKzg2MCw2MiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEMgQVMg J0MnID0gQU5ZKGZsYWdzKQogKTsKIAorLS0gTm9uLWxlYWRpbmcgcmVsdWN0YW50IG9wdGlvbmFs IFZBUjogKEIgQT8/IEMpCistLSBSZWx1Y3RhbnQgQT8/IHNob3VsZCBwcmVmZXIgdG8gc2tpcCwg bWF0Y2hpbmcgQigxKSBDKDIpIHdpdGggQSBsZWZ0CistLSB1bm1hdGNoZWQgKG1hdGNoX2VuZCAy KS4gIFRoZSBsZWFkaW5nL2dyb3VwIHJlbHVjdGFudCBjYXNlcyBhYm92ZSBnbyB0aHJvdWdoCist LSB0aGUgYmVnaW4gcGF0aDsgdGhpcyBleGVyY2lzZXMgdGhlIG5vbi1sZWFkaW5nIHNraXAgcGF0 aCBpbgorLS0gbmZhX3JvdXRlX3RvX2VsZW0sIHdoaWNoIG11c3QgaG9ub3IgcmVsdWN0YW50IG9y ZGVyaW5nIHRvby4KK1dJVEggdGVzdF9ub25sZWFkaW5nX3JlbHVjdGFudCBBUyAoCisgICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIs IEFSUkFZWydBJywgJ0MnXSksCisgICAgICAgICgzLCBBUlJBWVsnQyddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X25vbmxlYWRpbmdfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChCIEE/PyBDKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlko ZmxhZ3MpCispOworCistLSBOb24tbGVhZGluZyByZWx1Y3RhbnQgb3B0aW9uYWwgR1JPVVAgd2l0 aCBhIGZvbGxvd2VyOiAoQiAoQSBYKT8/IEMpCistLSBMaWtlIHRoZSBWQVIgY2FzZSBhYm92ZSBi dXQgYSBtdWx0aS1lbGVtZW50IGdyb3VwOyBpdCBnb2VzIHRocm91Z2ggdGhlCistLSBiZWdpbiBw YXRoIChuZmFfYWR2YW5jZV9iZWdpbiksIHdoaWNoIGFscmVhZHkgaG9ub3JzIHJlbHVjdGFudCBv cmRlcmluZy4KKy0tIFJlbHVjdGFudCAoQSBYKT8/IHNob3VsZCBza2lwLCBtYXRjaGluZyBCKDEp IEMoMiksIHdpdGggdGhlIGdyb3VwIHNraXBwZWQKKy0tIHRvIHRoZSBmb2xsb3dpbmcgQyAobm90 IHRvIEZJTikuCitXSVRIIHRlc3Rfbm9ubGVhZGluZ19yZWx1Y3RhbnRfZ3JvdXAgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0InXSksCisgICAgICAg ICgyLCBBUlJBWVsnQScsICdDJ10pLAorICAgICAgICAoMywgQVJSQVlbJ1gnXSksCisgICAgICAg ICg0LCBBUlJBWVsnQyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X25vbmxlYWRp bmdfcmVsdWN0YW50X2dyb3VwCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChCIChBIFgpPz8gQykKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBYIEFTICdY JyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworCiAtLSBHcmVlZHkvcmVsdWN0YW50IHNlcXVlbmNl OiBBKyBCKz8gKGdyZWVkeSBBLCByZWx1Y3RhbnQgQiBhdCBlbmQpCiAtLSBBIGNvbnN1bWVzIGdy ZWVkaWx5LCBCKz8gZXhpdHMgdG8gRklOIGFmdGVyIG1pbmltdW0gbWF0Y2gKIFdJVEggdGVzdF9n cmVlZHlfdGhlbl9yZWx1Y3RhbnQgQVMgKAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0039-Fix-memory-leak-in-row-pattern-recognition-DEFINE.txt" Content-Disposition: attachment; filename="nocfbot-0039-Fix-memory-leak-in-row-pattern-recognition-DEFINE.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618js538 RnJvbSAzMGUxYzNkY2VhNWFiZThiMDkwOWQwNDc1NTBlYjU4OWU4ZTBhMjQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDEgSnVuIDIwMjYgMjI6Mzg6NTUgKzA5MDAKU3ViamVjdDogW1BBVENIIDM5LzY4XSBG aXggbWVtb3J5IGxlYWsgaW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gREVGSU5FCiBldmFsdWF0 aW9uCgpUaGUgcm93IHBhdHRlcm4gcmVjb2duaXRpb24gc2NhbiBldmFsdWF0ZXMgZXZlcnkgREVG SU5FIGV4cHJlc3Npb24gb25jZQpwZXIgcGFydGl0aW9uIHJvdyBpbiB1cGRhdGVfcmVkdWNlZF9m cmFtZSwgYnV0IGRpZCBzbyB3aXRoIHRoZSBwbGFpbgpFeGVjRXZhbEV4cHIgaW4gdGhlIGxvbmct bGl2ZWQgcXVlcnkgY29udGV4dCBhbmQgbmV2ZXIgcmVzZXQgaXQuICBCeS1yZWYKc2NyYXRjaCAt LSBhIE5VTUVSSUMgREVGSU5FIHN1Y2ggYXMgcHJpY2UgKiAxLjEgPiAxNjUgaXMgdGhlIHR5cGlj YWwgY2FzZQotLSB0aGVyZWZvcmUgYWNjdW11bGF0ZWQgZm9yIHRoZSB3aG9sZSBmb3J3YXJkIHNj YW4sIGdyb3dpbmcgbWVtb3J5Ck8ocGFydGl0aW9uIHNpemUpIHdpdGhpbiBhIHNpbmdsZSB3aW5k b3cuCgpFdmFsdWF0ZSB0aGUgREVGSU5FIGV4cHJlc3Npb25zIGluIHRoZSBwZXItdHVwbGUgbWVt b3J5IGNvbnRleHQgd2l0aApFeGVjRXZhbEV4cHJTd2l0Y2hDb250ZXh0LCBpbiBib3RoIG5mYV9l dmFsdWF0ZV9yb3cgYW5kCm5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzLCBhbmQgcmVzZXQg dGhhdCBjb250ZXh0IG9uY2UgcGVyIHByb2Nlc3NlZApyb3cgaW4gdGhlIHNjYW4gbG9vcC4gIFRo ZSBib29sZWFuIHJlc3VsdHMgYXJlIGNvbnN1bWVkIGltbWVkaWF0ZWx5LCBhbmQKdGhlIGNyb3Nz LXJvdyBzdGF0ZSAtLSBuZmFWYXJNYXRjaGVkIGluIHRoZSBub2RlIGNvbnRleHQgYW5kIHRoZSBO RkEKc3RhdGVzIGluIHRoZSBwYXJ0aXRpb24gY29udGV4dCAtLSBsaXZlcyBlbHNld2hlcmUsIHNv IHRoZSByZXNldCBpcyBzYWZlLgoKUGVyIGEgcmVwb3J0IGZyb20gYSBzdGF0aWMgYW5hbHlzaXMg dG9vbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAgICAgfCAgMyArKy0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDEwICsrKysrKysrLS0KIDIg ZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMKaW5kZXggZWFjMGMwNGMzOGQuLmEyYzMwNGRhMGQxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1JQUi5jCkBAIC0xNzA2LDcgKzE3MDYsOCBAQCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRf dmFycyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJCURh dHVtCQlyZXN1bHQ7CiAJCQlib29sCQlpc251bGw7CiAKLQkJCXJlc3VsdCA9IEV4ZWNFdmFsRXhw cihleHByU3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKwkJCS8qIFBlci10dXBsZSBjb250ZXh0 OyBzY3JhdGNoIGZyZWVkIGJ5IHRoZSBwZXItcm93IHJlc2V0ICovCisJCQlyZXN1bHQgPSBFeGVj RXZhbEV4cHJTd2l0Y2hDb250ZXh0KGV4cHJTdGF0ZSwgZWNvbnRleHQsICZpc251bGwpOwogCQkJ d2luc3RhdGUtPm5mYVZhck1hdGNoZWRbdmFySWR4XSA9ICghaXNudWxsICYmIERhdHVtR2V0Qm9v bChyZXN1bHQpKTsKIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl V2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXgg MGIwMTk2ZTdlNDAuLjQwOGJiYzEyMGI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0Fn Zy5jCkBAIC00NTE1LDYgKzQ1MTUsMTIgQEAgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93T2Jq ZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogCQkgKiBhcHByb3ByaWF0ZWx5IGFzIHBydW5lZCBvciBt aXNtYXRjaGVkLgogCQkgKi8KIAkJRXhlY1JQUkNsZWFudXBEZWFkQ29udGV4dHMod2luc3RhdGUs IHRhcmdldEN0eCk7CisKKwkJLyoKKwkJICogRnJlZSB0aGlzIHJvdydzIHBlci10dXBsZSBERUZJ TkUtZXZhbHVhdGlvbiBzY3JhdGNoOyBjcm9zcy1yb3cKKwkJICogc3RhdGUgKG5mYVZhck1hdGNo ZWQsIE5GQSBzdGF0ZXMpIGxpdmVzIGluIG90aGVyIGNvbnRleHRzLgorCQkgKi8KKwkJUmVzZXRF eHByQ29udGV4dCh3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQpOwogCX0KIAogcmVnaXN0 ZXJfcmVzdWx0OgpAQCAtNDYwNiw4ICs0NjEyLDggQEAgbmZhX2V2YWx1YXRlX3JvdyhXaW5kb3dP YmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZhck1hdGNoZWQpCiAJCURhdHVtCQlyZXN1 bHQ7CiAJCWJvb2wJCWlzbnVsbDsKIAotCQkvKiBFdmFsdWF0ZSBERUZJTkUgZXhwcmVzc2lvbiAq LwotCQlyZXN1bHQgPSBFeGVjRXZhbEV4cHIoZXhwclN0YXRlLCBlY29udGV4dCwgJmlzbnVsbCk7 CisJCS8qIFBlci10dXBsZSBjb250ZXh0IHNvIGJ5LXJlZiBzY3JhdGNoIGlzIGZyZWVkIGJ5IHRo ZSBwZXItcm93IHJlc2V0ICovCisJCXJlc3VsdCA9IEV4ZWNFdmFsRXhwclN3aXRjaENvbnRleHQo ZXhwclN0YXRlLCBlY29udGV4dCwgJmlzbnVsbCk7CiAKIAkJdmFyTWF0Y2hlZFt2YXJJZHhdID0g KCFpc251bGwgJiYgRGF0dW1HZXRCb29sKHJlc3VsdCkpOwogCi0tIAoyLjUwLjEgKEFwcGxlIEdp dC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0041-Reject-column-less-compound-navigation-in-row-pat.txt" Content-Disposition: attachment; filename="nocfbot-0041-Reject-column-less-compound-navigation-in-row-pat.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618js840 RnJvbSA4MTEyZmUzZjJjMWJlZTRmYzMzMGRmMGIxMmQ3MzdhYmQ0ZDI3OTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDIgSnVuIDIwMjYgMDA6MDU6MDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDQxLzY4XSBS ZWplY3QgY29sdW1uLWxlc3MgY29tcG91bmQgbmF2aWdhdGlvbiBpbiByb3cgcGF0dGVybgogcmVj b2duaXRpb24KCkEgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBhcmd1bWVudCBtdXN0IGNvbnRhaW4g YXQgbGVhc3Qgb25lIGNvbHVtbgpyZWZlcmVuY2UuICBUaGUgY2hlY2sgd2FzIGFwcGxpZWQgb25s eSB0byBzaW1wbGUgbmF2aWdhdGlvbjsgYSBjb21wb3VuZApmb3JtIHN1Y2ggYXMgUFJFVihGSVJT VCgxKSkgdG9vayB0aGUgbmVzdGluZy12YWxpZGF0aW9uL2ZsYXR0ZW4gYnJhbmNoIGluCnBhcnNl X3Jwci5jJ3MgZGVmaW5lX3dhbGtlciwgd2hpY2ggbmV2ZXIgcmUtY2hlY2tlZCBoYXNfY29sdW1u X3JlZi4gIFNvCmNvbHVtbi1sZXNzIGNvbXBvdW5kIG5hdmlnYXRpb24gLS0gUFJFVihGSVJTVCgx KSksIE5FWFQoTEFTVCgxICsgMikpLApQUkVWKEZJUlNUKDEpLCAyKSwgYW5kIHNvIG9uIC0tIHdh cyBzaWxlbnRseSBhY2NlcHRlZCwgd2hpbGUgdGhlIHNpbXBsZQpQUkVWKDEpIHdhcyBjb3JyZWN0 bHkgcmVqZWN0ZWQuCgpBcHBseSB0aGUgc2FtZSBoYXNfY29sdW1uX3JlZiBjaGVjayBhZnRlciBm bGF0dGVuaW5nIGEgY29tcG91bmQKbmF2aWdhdGlvbiwgc28gYm90aCBmb3JtcyBhcmUgcmVqZWN0 ZWQgY29uc2lzdGVudGx5LiAgQSBjb21wb3VuZCBmb3JtCndob3NlIGFyZ3VtZW50IHJlZmVyZW5j ZXMgYSBjb2x1bW4sIHN1Y2ggYXMgUFJFVihGSVJTVChwcmljZSkpLCBpcwp1bmFmZmVjdGVkLgoK QWRkIHJlZ3Jlc3Npb24gdGVzdHMgY292ZXJpbmcgY29sdW1uLWxlc3MgY29tcG91bmQgbmF2aWdh dGlvbiB3aXRoIHRoZQpvZmZzZXQgb24gdGhlIGlubmVyIG5hdiwgdGhlIG91dGVyIG5hdiwgYm90 aCwgb3IgbmVpdGhlci4KClBlciBhIHJlcG9ydCBmcm9tIGEgc3RhdGljIGFuYWx5c2lzIHRvb2wu Ci0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jICAgIHwgMTAgKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCB8IDYyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgICAgICB8IDUyICsrKysrKysr KysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IGZhOGMzNzVmNDhiLi42ZjQ0ZWRmYzUwYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYwpAQCAtNjQxLDYgKzY0MSwxNiBAQCBkZWZpbmVfd2Fsa2VyKE5vZGUg Km5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCQkJCW5hdi0+b2Zmc2V0X2FyZyA9IGlubmVyLT5vZmZz ZXRfYXJnOwogCQkJCQluYXYtPmFyZyA9IGlubmVyLT5hcmc7CiAJCQkJCWZsYXR0ZW5lZCA9IHRy dWU7CisKKwkJCQkJLyoKKwkJCQkJICogVGhlIGZsYXR0ZW5lZCBhcmd1bWVudCBtdXN0IGluY2x1 ZGUgYSBjb2x1bW4gcmVmZXJlbmNlLAorCQkJCQkgKiBqdXN0IGxpa2UgdGhlIHNpbXBsZS1uYXYg Y2FzZSBiZWxvdy4KKwkJCQkJICovCisJCQkJCWlmICghY3R4LT5oYXNfY29sdW1uX3JlZikKKwkJ CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJCQllcnJtc2coImFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3Bl cmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZSIpLAorCQkJ CQkJCQlwYXJzZXJfZXJycG9zaXRpb24oY3R4LT5wc3RhdGUsIG5hdi0+bG9jYXRpb24pKTsKIAkJ CQl9CiAJCQkJZWxzZSBpZiAoIW91dGVyX3BoeXMgJiYgaW5uZXJfcGh5cykKIAkJCQkJZXJlcG9y dChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAppbmRleCA4NzkzZGRhM2NjMy4uNTUw MTEzNzAwYTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKQEAgLTExMzMsNiArMTEzMyw2 OCBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIGFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJuIG5hdmln YXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5j ZQogTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVigxLCAxKSA+IDAKICAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIENvbXBvdW5kIG5hdmlnYXRpb24gd2l0aG91dCBhIGNvbHVtbiByZWZl cmVuY2UgbXVzdCBiZSByZWplY3RlZCB0b28sCistLSBjb25zaXN0ZW50IHdpdGggdGhlIHNpbXBs ZSBmb3JtcyBhYm92ZS4KKy0tIFBSRVYoRklSU1QoMSkpOiBjb21wb3VuZCwgY29uc3RhbnQgb25s eSwgbm8gY29sdW1uIHJlZmVyZW5jZQorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3 IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChB KQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QoMSkpID4gMAorKTsKK0VSUk9SOiAgYXJndW1l bnQgb2Ygcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxl YXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKEZJ UlNUKDEpKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIE5FWFQoTEFTVCgxICsg MikpOiBjb21wb3VuZCwgY29uc3RhbnQgZXhwcmVzc2lvbiwgbm8gY29sdW1uIHJlZmVyZW5jZQor U0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIE5FWFQo TEFTVCgxICsgMikpID4gMAorKTsKK0VSUk9SOiAgYXJndW1lbnQgb2Ygcm93IHBhdHRlcm4gbmF2 aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJl bmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBORVhUKExBU1QoMSArIDIpKSA+IDAKKyAgICAg ICAgICAgICAgICAgICAgICAgIF4KKy0tIFBSRVYoRklSU1QoMSwgMikpOiBjb21wb3VuZCwgdHdv LWFyZyBpbm5lciwgbm8gY29sdW1uIHJlZmVyZW5jZQorU0VMRUNUIHByaWNlIEZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQ QVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QoMSwgMikpID4gMAorKTsKK0VS Uk9SOiAgYXJndW1lbnQgb2Ygcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBp bmNsdWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlCitMSU5FIDc6ICAgICBERUZJTkUg QSBBUyBQUkVWKEZJUlNUKDEsIDIpKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IFBSRVYoRklSU1QoMSksIDIpOiBjb21wb3VuZCwgb3V0ZXIgb2Zmc2V0IG9ubHksIG5vIGNvbHVt biByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJ TkUgQSBBUyBQUkVWKEZJUlNUKDEpLCAyKSA+IDAKKyk7CitFUlJPUjogIGFyZ3VtZW50IG9mIHJv dyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUg Y29sdW1uIHJlZmVyZW5jZQorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVihGSVJTVCgxKSwg MikgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBQUkVWKEZJUlNUKDEsIDIpLCAz KTogY29tcG91bmQsIGlubmVyIGFuZCBvdXRlciBvZmZzZXRzLCBubyBjb2x1bW4gcmVmZXJlbmNl CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJF VihGSVJTVCgxLCAyKSwgMykgPiAwCispOworRVJST1I6ICBhcmd1bWVudCBvZiByb3cgcGF0dGVy biBuYXZpZ2F0aW9uIG9wZXJhdGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiBy ZWZlcmVuY2UKK0xJTkUgNzogICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QoMSwgMiksIDMpID4g MAorICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gTm9uLWNvbnN0YW50IG9mZnNldDogY29s dW1uIHJlZmVyZW5jZSBhcyBvZmZzZXQKIFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cg dyBBUyAoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByLnNxbAppbmRleCBlNDc5MGY3NWIwYS4uMGFhMTdmMDFlODQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByLnNxbApAQCAtNTMxLDYgKzUzMSw1OCBAQCBXSU5ET1cgdyBBUyAoCiAgICAg REVGSU5FIEEgQVMgUFJFVigxLCAxKSA+IDAKICk7CiAKKy0tIENvbXBvdW5kIG5hdmlnYXRpb24g d2l0aG91dCBhIGNvbHVtbiByZWZlcmVuY2UgbXVzdCBiZSByZWplY3RlZCB0b28sCistLSBjb25z aXN0ZW50IHdpdGggdGhlIHNpbXBsZSBmb3JtcyBhYm92ZS4KKy0tIFBSRVYoRklSU1QoMSkpOiBj b21wb3VuZCwgY29uc3RhbnQgb25seSwgbm8gY29sdW1uIHJlZmVyZW5jZQorU0VMRUNUIHByaWNl IEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElO SVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QoMSkpID4g MAorKTsKKworLS0gTkVYVChMQVNUKDEgKyAyKSk6IGNvbXBvdW5kLCBjb25zdGFudCBleHByZXNz aW9uLCBubyBjb2x1bW4gcmVmZXJlbmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9X IHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4g KEEpCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKDEgKyAyKSkgPiAwCispOworCistLSBQUkVW KEZJUlNUKDEsIDIpKTogY29tcG91bmQsIHR3by1hcmcgaW5uZXIsIG5vIGNvbHVtbiByZWZlcmVu Y2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQ UkVWKEZJUlNUKDEsIDIpKSA+IDAKKyk7CisKKy0tIFBSRVYoRklSU1QoMSksIDIpOiBjb21wb3Vu ZCwgb3V0ZXIgb2Zmc2V0IG9ubHksIG5vIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBG Uk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklU SUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNUKDEpLCAyKSA+ IDAKKyk7CisKKy0tIFBSRVYoRklSU1QoMSwgMiksIDMpOiBjb21wb3VuZCwgaW5uZXIgYW5kIG91 dGVyIG9mZnNldHMsIG5vIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2Nr CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAg UEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNUKDEsIDIpLCAzKSA+IDAKKyk7 CisKIC0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IGNvbHVtbiByZWZlcmVuY2UgYXMgb2Zmc2V0CiBT RUxFQ1QgcHJpY2UgRlJPTSBzdG9jawogV0lORE9XIHcgQVMgKAotLSAKMi41MC4xIChBcHBsZSBH aXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0042-Reserve-the-high-varId-nibble-for-row-pattern-rec.txt" Content-Disposition: attachment; filename="nocfbot-0042-Reserve-the-high-varId-nibble-for-row-pattern-rec.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsa41 RnJvbSA3ZjEyNzE0N2FlN2ZkODYwZGM3MWQyMmFjNTM5ZWE3NjQ0YTc3YzZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDMgSnVuIDIwMjYgMjA6MTA6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDQyLzY4XSBS ZXNlcnZlIHRoZSBoaWdoIHZhcklkIG5pYmJsZSBmb3Igcm93IHBhdHRlcm4KIHJlY29nbml0aW9u IGNvbnRyb2wgZWxlbWVudHMKClJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhY2tzIGJvdGggcGF0 dGVybiB2YXJpYWJsZXMgYW5kIHBhdHRlcm4gY29udHJvbAplbGVtZW50cyAoZ3JvdXAgYmVnaW4v ZW5kLCBhbHRlcm5hdGlvbiwgZmluaXNoKSBpbnRvIGEgc2luZ2xlIHVpbnQ4IHZhcklkLgpSZXNl cnZlIHRoZSBlbnRpcmUgaGlnaCBuaWJibGUsIHRoZSAxNiB2YWx1ZXMgMHhGMC0weEZGLCBmb3Ig Y29udHJvbAplbGVtZW50cywgc28gcGF0dGVybiB2YXJpYWJsZXMgdXNlIHZhcklkIDAgdG8gMHhF RiBhbmQgYXQgbW9zdCAyNDAgZGlzdGluY3QKdmFyaWFibGVzIGFyZSBhbGxvd2VkLgoKUmVzZXJ2 aW5nIGFsbCAxNiBoaWdoLW5pYmJsZSB2YWx1ZXMsIHJhdGhlciB0aGFuIG9ubHkgdGhlIG9uZXMg Y3VycmVudGx5Cm5lZWRlZCwgbGVhdmVzIHNwYXJlIGVuY29kaW5ncyBmb3IgZnV0dXJlIGNvbnRy b2wgZWxlbWVudHMuICBSUFJfVkFSSURfTUFYCmRlbm90ZXMgdGhlIG1heGltdW0gdmFyaWFibGUg dmFySWQgKDB4RUYpLCBhbmQgdGhlIHBhcnNlciBsaW1pdCBjaGVjaywgdGhlCmJvdW5kcyBhc3Nl cnRpb25zLCBhbmQgdGhlIHZhcmlhYmxlLW5hbWUgc3RhY2sgYXJlIHNpemVkIGZyb20gaXQuICBU aGUKYm91bmRhcnkgcmVncmVzc2lvbiB0ZXN0IGV4ZXJjaXNlcyB0aGUgMjQwLzI0MSBsaW1pdHMu Ci0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgICAgICAgfCAgNiArKystLS0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgIHwgMTggKysrKysrKysrKysr LS0tLS0tCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmggICAgICAgICAgICB8IDIwICsrKysr KysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCB8 IDIwICsrKysrKysrLS0tLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5z cWwgICAgICB8IDE4ICsrKysrKystLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNl cnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9ycHIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCmluZGV4 IGI5ODlmY2M1MTYyLi40NjUyY2E2ZWJlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcnByLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKQEAg LTEwMTcsNyArMTAxNyw3IEBAIGNvbGxlY3REZWZpbmVWYXJpYWJsZXMoTGlzdCAqZGVmaW5lVmFy aWFibGVMaXN0LCBjaGFyICoqdmFyTmFtZXMpCiAJZm9yZWFjaChsYywgZGVmaW5lVmFyaWFibGVM aXN0KQogCXsKIAkJLyogUGFyc2VyIGFscmVhZHkgY2hlY2tlZCB0aGlzIGxpbWl0IGluIHRyYW5z Zm9ybURlZmluZUNsYXVzZSAqLwotCQlBc3NlcnQobnVtVmFycyA8IFJQUl9WQVJJRF9NQVgpOwor CQlBc3NlcnQobnVtVmFycyA8PSBSUFJfVkFSSURfTUFYKTsKIAogCQl2YXJOYW1lc1tudW1WYXJz KytdID0gc3RyVmFsKGxmaXJzdChsYykpOwogCX0KQEAgLTEwNzYsNyArMTA3Niw3IEBAIHNjYW5S UFJQYXR0ZXJuUmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMs IGludCAqbnVtVmFycywKIAkJCSAqIHRvIHZhck5hbWVzIHNvIHRoZXkgZ2V0IGEgdmFySWQgPj0g ZGVmaW5lVmFyaWFibGVMaXN0IGxlbmd0aCwKIAkJCSAqIHdoaWNoIGV4ZWN1dG9yIHRyZWF0cyBh cyBUUlVFLgogCQkJICovCi0JCQlBc3NlcnQoKm51bVZhcnMgPCBSUFJfVkFSSURfTUFYKTsKKwkJ CUFzc2VydCgqbnVtVmFycyA8PSBSUFJfVkFSSURfTUFYKTsKIAkJCXZhck5hbWVzWygqbnVtVmFy cykrK10gPSBub2RlLT52YXJOYW1lOwogCQkJYnJlYWs7CiAKQEAgLTE5NTQsNyArMTk1NCw3IEBA IGJ1aWxkUlBSUGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybiwgTGlzdCAqZGVmaW5lVmFy aWFibGVMaXN0LAogewogCVJQUlBhdHRlcm4gKnJlc3VsdDsKIAlSUFJQYXR0ZXJuTm9kZSAqb3B0 aW1pemVkOwotCWNoYXIJICAgKnZhck5hbWVzU3RhY2tbUlBSX1ZBUklEX01BWF07CisJY2hhcgkg ICAqdmFyTmFtZXNTdGFja1tSUFJfVkFSSURfTUFYICsgMV07CiAJaW50CQkJbnVtVmFyczsKIAlp bnQJCQludW1FbGVtZW50czsKIAlSUFJEZXB0aAltYXhEZXB0aDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIu YwppbmRleCA2ZjQ0ZWRmYzUwYi4uMzg3MjAzNTExMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMK QEAgLTYsNyArNiw3IEBACiAgKiBUaGlzIGZpbGUgdHJhbnNmb3JtcyBSUFItcmVsYXRlZCBjbGF1 c2VzIGZyb20gcmF3IHBhcnNlIHRyZWUgdG8gcGxhbm5lcgogICogc3RydWN0dXJlcyBkdXJpbmcg cXVlcnkgYW5hbHlzaXM6CiAgKiAgIC0gVmFsaWRhdGVzIGZyYW1lIG9wdGlvbnMgKG11c3Qgc3Rh cnQgYXQgQ1VSUkVOVCBST1csIG5vIEVYQ0xVREUpCi0gKiAgIC0gVmFsaWRhdGVzIFBBVFRFUk4g dmFyaWFibGUgY291bnQgKG1heCBSUFJfVkFSSURfTUFYKQorICogICAtIFZhbGlkYXRlcyBQQVRU RVJOIHZhcmlhYmxlIGNvdW50IChtYXggUlBSX1ZBUklEX01BWCArIDEpCiAgKiAgIC0gVHJhbnNm b3JtcyBERUZJTkUgY2xhdXNlIGludG8gVGFyZ2V0RW50cnkgbGlzdAogICogICAtIFN0b3JlcyBQ QVRURVJOL1NLSVAgVE8vSU5JVElBTCBjbGF1c2VzIGZvciBwbGFubmVyCiAgKgpAQCAtMTkyLDEw ICsxOTIsMTEgQEAgdHJhbnNmb3JtUlBSKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNl ICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAKIC8qCiAgKiB2YWxpZGF0ZVJQUlBhdHRlcm5WYXJD b3VudAotICoJCVZhbGlkYXRlIHRoYXQgUEFUVEVSTiB2YXJpYWJsZXMgZG9uJ3QgZXhjZWVkIFJQ Ul9WQVJJRF9NQVguCisgKgkJVmFsaWRhdGUgdGhhdCBQQVRURVJOIHZhcmlhYmxlIGNvdW50IGZp dHMgdGhlIHZhcklkIHJhbmdlLgogICoKICAqIFJlY3Vyc2l2ZWx5IHRyYXZlcnNlcyB0aGUgcGF0 dGVybiB0cmVlLCBjb2xsZWN0aW5nIHVuaXF1ZSB2YXJpYWJsZSBuYW1lcy4KLSAqIFRocm93cyBh biBlcnJvciBpZiB0aGUgbnVtYmVyIG9mIHVuaXF1ZSB2YXJpYWJsZXMgZXhjZWVkcyBSUFJfVkFS SURfTUFYLgorICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBudW1iZXIgb2YgdW5pcXVlIHZhcmlh YmxlcyB3b3VsZCByZXF1aXJlIGEgdmFySWQKKyAqIGdyZWF0ZXIgdGhhbiBSUFJfVkFSSURfTUFY LgogICoKICAqIElmIHJwRGVmcyBpcyBub24tTlVMTCwgZWFjaCBERUZJTkUgdmFyaWFibGUgbmFt ZSBpcyBhbHNvIHZhbGlkYXRlZCBhZ2FpbnN0CiAgKiB2YXJOYW1lczsgYW55IERFRklORSBuYW1l IG5vdCBwcmVzZW50IGluIFBBVFRFUk4gaXMgcmVqZWN0ZWQgd2l0aCBhbiBlcnJvci4KQEAgLTIz MSwxMiArMjMyLDE3IEBAIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBz dGF0ZSwgUlBSUGF0dGVybk5vZGUgKm5vZGUsCiAJCQkJfQogCQkJCWlmICghZm91bmQpCiAJCQkJ ewotCQkJCQkvKiBDaGVjayBhZ2FpbnN0IFJQUl9WQVJJRF9NQVggYmVmb3JlIGFkZGluZyAqLwot CQkJCQlpZiAobGlzdF9sZW5ndGgoKnZhck5hbWVzKSA+PSBSUFJfVkFSSURfTUFYKQorCQkJCQkv KgorCQkJCQkgKiBDaGVjayBhZ2FpbnN0IFJQUl9WQVJJRF9NQVggYmVmb3JlIGFkZGluZy4gIHZh cklkCisJCQkJCSAqIHZhbHVlcyBydW4gMCB0byBSUFJfVkFSSURfTUFYIGluY2x1c2l2ZSwgc28g dGhlIG5leHQKKwkJCQkJICogdmFySWQgdG8gYmUgYXNzaWduZWQgKHRoZSBjdXJyZW50IGxpc3Qg bGVuZ3RoKSBtdXN0IG5vdAorCQkJCQkgKiBleGNlZWQgaXQuCisJCQkJCSAqLworCQkJCQlpZiAo bGlzdF9sZW5ndGgoKnZhck5hbWVzKSA+IFJQUl9WQVJJRF9NQVgpCiAJCQkJCQllcmVwb3J0KEVS Uk9SLAogCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCiAJ CQkJCQkJCWVycm1zZygidG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMiKSwKLQkJCQkJCQkJZXJy ZGV0YWlsKCJNYXhpbXVtIGlzICVkLiIsIFJQUl9WQVJJRF9NQVgpLAorCQkJCQkJCQllcnJkZXRh aWwoIk1heGltdW0gaXMgJWQuIiwgUlBSX1ZBUklEX01BWCArIDEpLAogCQkJCQkJCQlwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLAogCQkJCQkJCQkJCQkJICAgZXhwckxvY2F0aW9uKChOb2RlICop IG5vZGUpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaCBiL3Ny Yy9pbmNsdWRlL29wdGltaXplci9ycHIuaAppbmRleCA2M2M0YjA5ZGFmZi4uMmZhNDgzMzIwY2Ug MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaAorKysgYi9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcnByLmgKQEAgLTE4LDEwICsxOCwxNCBAQAogCiAvKiBMaW1pdHMgYW5kIHNw ZWNpYWwgdmFsdWVzICovCiAvKgotICogTWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIHBhdHRlcm4g dmFyaWFibGVzICh2YXJJZCAwIHRvIFJQUl9WQVJJRF9NQVggLSAxKS4KLSAqIFZhbHVlcyBmcm9t IFJQUl9WQVJJRF9CRUdJTiAoMjUyKSBvbndhcmQgYXJlIHJlc2VydmVkIGZvciBjb250cm9sIGVs ZW1lbnRzLgorICogTWF4aW11bSBwYXR0ZXJuIHZhcmlhYmxlIElELiAgUGF0dGVybiB2YXJpYWJs ZXMgb2NjdXB5IHZhcklkIDAgdG8KKyAqIFJQUl9WQVJJRF9NQVggaW5jbHVzaXZlICgyNDAgZGlz dGluY3QgdmFyaWFibGVzKTsgYW55IHZhcklkIHdpdGggdGhlIGhpZ2gKKyAqIG5pYmJsZSBzZXQg KDB4RjAgdG8gMHhGRikgaXMgcmVzZXJ2ZWQgZm9yIGNvbnRyb2wgZWxlbWVudHMuICBSZXNlcnZp bmcgdGhlCisgKiB3aG9sZSBoaWdoIG5pYmJsZSwgcmF0aGVyIHRoYW4ganVzdCB0aGUgdmFsdWVz IGN1cnJlbnRseSBpbiB1c2UsIGxlYXZlcworICogcm9vbSBmb3IgZnV0dXJlIGNvbnRyb2wgZWxl bWVudHM7IHRoaXMgcmFuZ2UgY2FuIG9ubHkgYmUgbmFycm93ZWQgc2FmZWx5CisgKiBiZWZvcmUg cmVsZWFzZS4KICAqLwotI2RlZmluZSBSUFJfVkFSSURfTUFYCQkyNTEKKyNkZWZpbmUgUlBSX1ZB UklEX01BWAkJMHhFRgkvKiBwYXR0ZXJuIHZhcmlhYmxlcyBhcmUgMCB0byAweEVGICovCiAjZGVm aW5lIFJQUl9RVUFOVElUWV9JTkYJSU5UMzJfTUFYCS8qIHVuYm91bmRlZCBxdWFudGlmaWVyICov CiAjZGVmaW5lIFJQUl9DT1VOVF9NQVgJCUlOVDMyX01BWAkvKiBtYXggcnVudGltZSBjb3VudCAo TkZBIHN0YXRlKSAqLwogI2RlZmluZSBSUFJfRUxFTUlEWF9NQVgJCUlOVDE2X01BWAkvKiBtYXgg cGF0dGVybiBlbGVtZW50cyAqLwpAQCAtMjksMTEgKzMzLDExIEBACiAjZGVmaW5lIFJQUl9ERVBU SF9NQVgJCShVSU5UOF9NQVggLSAxKSAvKiBtYXggcGF0dGVybiBuZXN0aW5nIGRlcHRoOiAyNTQg Ki8KICNkZWZpbmUgUlBSX0RFUFRIX05PTkUJCVVJTlQ4X01BWAkvKiBubyBlbmNsb3NpbmcgZ3Jv dXAgKHRvcC1sZXZlbCkgKi8KIAotLyogU3BlY2lhbCB2YXJJZCB2YWx1ZXMgZm9yIGNvbnRyb2wg ZWxlbWVudHMgKDI1Mi0yNTUpICovCi0jZGVmaW5lIFJQUl9WQVJJRF9CRUdJTgkJKChSUFJWYXJJ ZCkgMjUyKQkvKiBncm91cCBiZWdpbiAqLwotI2RlZmluZSBSUFJfVkFSSURfRU5ECQkoKFJQUlZh cklkKSAyNTMpCS8qIGdyb3VwIGVuZCAqLwotI2RlZmluZSBSUFJfVkFSSURfQUxUCQkoKFJQUlZh cklkKSAyNTQpCS8qIGFsdGVybmF0aW9uIHN0YXJ0ICovCi0jZGVmaW5lIFJQUl9WQVJJRF9GSU4J CSgoUlBSVmFySWQpIDI1NSkJLyogcGF0dGVybiBmaW5pc2ggKi8KKy8qIFJlc2VydmVkIGNvbnRy b2wtZWxlbWVudCB2YXJJZHMgKGhpZ2ggbmliYmxlIDB4RjsgMHhGMC0weEZCIHNwYXJlKSAqLwor I2RlZmluZSBSUFJfVkFSSURfQkVHSU4JCSgoUlBSVmFySWQpIDB4RkMpCS8qIGdyb3VwIGJlZ2lu ICovCisjZGVmaW5lIFJQUl9WQVJJRF9FTkQJCSgoUlBSVmFySWQpIDB4RkQpCS8qIGdyb3VwIGVu ZCAqLworI2RlZmluZSBSUFJfVkFSSURfQUxUCQkoKFJQUlZhcklkKSAweEZFKQkvKiBhbHRlcm5h dGlvbiBzdGFydCAqLworI2RlZmluZSBSUFJfVkFSSURfRklOCQkoKFJQUlZhcklkKSAweEZGKQkv KiBwYXR0ZXJuIGZpbmlzaCAqLwogCiAvKiBFbGVtZW50IGZsYWdzICovCiAjZGVmaW5lIFJQUl9F TEVNX1JFTFVDVEFOVAkJCTB4MDEJLyogcmVsdWN0YW50IChub24tZ3JlZWR5KQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCBlYmMxMDg4MDE4YS4uZTkzMDNhZjYzODQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC02MjgwLDEyICs2Mjgw LDEyIEBAIEVSUk9SOiAgREVGSU5FIHZhcmlhYmxlICJiIiBpcyBub3QgdXNlZCBpbiBQQVRURVJO CiBMSU5FIDc6ICAgICAgIEIgQVMgVFJVRQogICAgICAgICAgICAgICBeCiAtLSBFeHBlY3RlZDog RXJyb3IgLSBCIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4KLS0tIFRlc3Q6IDI1MSB2YXJpYWJsZXMg aW4gUEFUVEVSTiBhbmQgREVGSU5FIChib3VuZGFyeSAtIHNob3VsZCBzdWNjZWVkKQorLS0gVGVz dDogMjQwIHZhcmlhYmxlcyBpbiBQQVRURVJOIGFuZCBERUZJTkUgKGJvdW5kYXJ5IC0gc2hvdWxk IHN1Y2NlZWQpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycwogV0lORE9X IHcgQVMgKAogICAgIE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcg VjggVjkgVjEwIFYxMSBWMTIgVjEzIFYxNCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIy IFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYg VjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIgVjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBW NTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBWNTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2 NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5 IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMg Vjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkgVjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEw NiBWMTA3IFYxMDggVjEwOSBWMTEwIFYxMTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcg VjExOCBWMTE5IFYxMjAgVjEyMSBWMTIyIFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYx MjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBWMTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQw IFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBW MTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYgVjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2 MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYxNjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQg VjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYx ODYgVjE4NyBWMTg4IFYxODkgVjE5MCBWMTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3 IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIwMiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBW MjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMgVjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIy MCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYyMjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEg VjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYy NDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBWMjQ4IFYyNDkgVjI1MCBWMjUxKQorICAgIFBBVFRFUk4g KFYxIFYyIFYzIFY0IFY1IFY2IFY3IFY4IFY5IFYxMCBWMTEgVjEyIFYxMyBWMTQgVjE1IFYxNiBW MTcgVjE4IFYxOSBWMjAgVjIxIFYyMiBWMjMgVjI0IFYyNSBWMjYgVjI3IFYyOCBWMjkgVjMwIFYz MSBWMzIgVjMzIFYzNCBWMzUgVjM2IFYzNyBWMzggVjM5IFY0MCBWNDEgVjQyIFY0MyBWNDQgVjQ1 IFY0NiBWNDcgVjQ4IFY0OSBWNTAgVjUxIFY1MiBWNTMgVjU0IFY1NSBWNTYgVjU3IFY1OCBWNTkg VjYwIFY2MSBWNjIgVjYzIFY2NCBWNjUgVjY2IFY2NyBWNjggVjY5IFY3MCBWNzEgVjcyIFY3MyBW NzQgVjc1IFY3NiBWNzcgVjc4IFY3OSBWODAgVjgxIFY4MiBWODMgVjg0IFY4NSBWODYgVjg3IFY4 OCBWODkgVjkwIFY5MSBWOTIgVjkzIFY5NCBWOTUgVjk2IFY5NyBWOTggVjk5IFYxMDAgVjEwMSBW MTAyIFYxMDMgVjEwNCBWMTA1IFYxMDYgVjEwNyBWMTA4IFYxMDkgVjExMCBWMTExIFYxMTIgVjEx MyBWMTE0IFYxMTUgVjExNiBWMTE3IFYxMTggVjExOSBWMTIwIFYxMjEgVjEyMiBWMTIzIFYxMjQg VjEyNSBWMTI2IFYxMjcgVjEyOCBWMTI5IFYxMzAgVjEzMSBWMTMyIFYxMzMgVjEzNCBWMTM1IFYx MzYgVjEzNyBWMTM4IFYxMzkgVjE0MCBWMTQxIFYxNDIgVjE0MyBWMTQ0IFYxNDUgVjE0NiBWMTQ3 IFYxNDggVjE0OSBWMTUwIFYxNTEgVjE1MiBWMTUzIFYxNTQgVjE1NSBWMTU2IFYxNTcgVjE1OCBW MTU5IFYxNjAgVjE2MSBWMTYyIFYxNjMgVjE2NCBWMTY1IFYxNjYgVjE2NyBWMTY4IFYxNjkgVjE3 MCBWMTcxIFYxNzIgVjE3MyBWMTc0IFYxNzUgVjE3NiBWMTc3IFYxNzggVjE3OSBWMTgwIFYxODEg VjE4MiBWMTgzIFYxODQgVjE4NSBWMTg2IFYxODcgVjE4OCBWMTg5IFYxOTAgVjE5MSBWMTkyIFYx OTMgVjE5NCBWMTk1IFYxOTYgVjE5NyBWMTk4IFYxOTkgVjIwMCBWMjAxIFYyMDIgVjIwMyBWMjA0 IFYyMDUgVjIwNiBWMjA3IFYyMDggVjIwOSBWMjEwIFYyMTEgVjIxMiBWMjEzIFYyMTQgVjIxNSBW MjE2IFYyMTcgVjIxOCBWMjE5IFYyMjAgVjIyMSBWMjIyIFYyMjMgVjIyNCBWMjI1IFYyMjYgVjIy NyBWMjI4IFYyMjkgVjIzMCBWMjMxIFYyMzIgVjIzMyBWMjM0IFYyMzUgVjIzNiBWMjM3IFYyMzgg VjIzOSBWMjQwKQogICAgIERFRklORQogICAgIFYxIEFTIHZhbCA+IDAsIFYyIEFTIHZhbCA+IDAs IFYzIEFTIHZhbCA+IDAsIFY0IEFTIHZhbCA+IDAsIFY1IEFTIHZhbCA+IDAsIFY2IEFTIHZhbCA+ IDAsIFY3IEFTIHZhbCA+IDAsIFY4IEFTIHZhbCA+IDAsIFY5IEFTIHZhbCA+IDAsIFYxMCBBUyB2 YWwgPiAwLAogICAgIFYxMSBBUyB2YWwgPiAwLCBWMTIgQVMgdmFsID4gMCwgVjEzIEFTIHZhbCA+ IDAsIFYxNCBBUyB2YWwgPiAwLCBWMTUgQVMgdmFsID4gMCwgVjE2IEFTIHZhbCA+IDAsIFYxNyBB UyB2YWwgPiAwLCBWMTggQVMgdmFsID4gMCwgVjE5IEFTIHZhbCA+IDAsIFYyMCBBUyB2YWwgPiAw LApAQCAtNjMxMCw5ICs2MzEwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFYyMDEgQVMgdmFsID4g MCwgVjIwMiBBUyB2YWwgPiAwLCBWMjAzIEFTIHZhbCA+IDAsIFYyMDQgQVMgdmFsID4gMCwgVjIw NSBBUyB2YWwgPiAwLCBWMjA2IEFTIHZhbCA+IDAsIFYyMDcgQVMgdmFsID4gMCwgVjIwOCBBUyB2 YWwgPiAwLCBWMjA5IEFTIHZhbCA+IDAsIFYyMTAgQVMgdmFsID4gMCwKICAgICBWMjExIEFTIHZh bCA+IDAsIFYyMTIgQVMgdmFsID4gMCwgVjIxMyBBUyB2YWwgPiAwLCBWMjE0IEFTIHZhbCA+IDAs IFYyMTUgQVMgdmFsID4gMCwgVjIxNiBBUyB2YWwgPiAwLCBWMjE3IEFTIHZhbCA+IDAsIFYyMTgg QVMgdmFsID4gMCwgVjIxOSBBUyB2YWwgPiAwLCBWMjIwIEFTIHZhbCA+IDAsCiAgICAgVjIyMSBB UyB2YWwgPiAwLCBWMjIyIEFTIHZhbCA+IDAsIFYyMjMgQVMgdmFsID4gMCwgVjIyNCBBUyB2YWwg PiAwLCBWMjI1IEFTIHZhbCA+IDAsIFYyMjYgQVMgdmFsID4gMCwgVjIyNyBBUyB2YWwgPiAwLCBW MjI4IEFTIHZhbCA+IDAsIFYyMjkgQVMgdmFsID4gMCwgVjIzMCBBUyB2YWwgPiAwLAotICAgIFYy MzEgQVMgdmFsID4gMCwgVjIzMiBBUyB2YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQgQVMg dmFsID4gMCwgVjIzNSBBUyB2YWwgPiAwLCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFsID4g MCwgVjIzOCBBUyB2YWwgPiAwLCBWMjM5IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMCwKLSAg ICBWMjQxIEFTIHZhbCA+IDAsIFYyNDIgQVMgdmFsID4gMCwgVjI0MyBBUyB2YWwgPiAwLCBWMjQ0 IEFTIHZhbCA+IDAsIFYyNDUgQVMgdmFsID4gMCwgVjI0NiBBUyB2YWwgPiAwLCBWMjQ3IEFTIHZh bCA+IDAsIFYyNDggQVMgdmFsID4gMCwgVjI0OSBBUyB2YWwgPiAwLCBWMjUwIEFTIHZhbCA+IDAs Ci0gICAgVjI1MSBBUyB2YWwgPiAwCisgICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+ IDAsIFYyMzMgQVMgdmFsID4gMCwgVjIzNCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYy MzYgQVMgdmFsID4gMCwgVjIzNyBBUyB2YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMg dmFsID4gMCwgVjI0MCBBUyB2YWwgPiAwCiApOwogIGNvdW50IAogLS0tLS0tLQpAQCAtNjMyMSwx MiArNjMxOSwxMiBAQCBXSU5ET1cgdyBBUyAoCiAoMiByb3dzKQogCiAtLSBFeHBlY3RlZDogU3Vj Y2VzcyAtIGV4YWN0bHkgYXQgUlBSX1ZBUklEX01BWCBib3VuZGFyeQotLS0gVGVzdDogMjUyIHZh cmlhYmxlcyBpbiBQQVRURVJOLCAyNTEgaW4gREVGSU5FIChleGNlZWRzIGxpbWl0IHdpdGggaW1w bGljaXQgVFJVRSkKKy0tIFRlc3Q6IDI0MSB2YXJpYWJsZXMgaW4gUEFUVEVSTiwgMjQwIGluIERF RklORSAoZXhjZWVkcyBsaW1pdCB3aXRoIGltcGxpY2l0IFRSVUUpCiBTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX2Vycm9ycwogV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCiAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAg UEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcgVjggVjkgVjEwIFYxMSBWMTIgVjEzIFYxNCBW MTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4IFYy OSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIgVjQz IFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBWNTcg VjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3MSBW NzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1IFY4 NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkgVjEw MCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEwNiBWMTA3IFYxMDggVjEwOSBWMTEwIFYxMTEg VjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEyMSBWMTIyIFYx MjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBWMTM0 IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0NSBW MTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYgVjE1 NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYxNjgg VjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5IFYx ODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYxODYgVjE4NyBWMTg4IFYxODkgVjE5MCBWMTkx IFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIwMiBW MjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMgVjIx NCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYyMjUg VjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYy MzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBWMjQ4 IFYyNDkgVjI1MCBWMjUxIFYyNTIpCisgICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcg VjggVjkgVjEwIFYxMSBWMTIgVjEzIFYxNCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIy IFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYg VjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIgVjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBW NTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBWNTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2 NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5 IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMg Vjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkgVjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEw NiBWMTA3IFYxMDggVjEwOSBWMTEwIFYxMTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcg VjExOCBWMTE5IFYxMjAgVjEyMSBWMTIyIFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYx MjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBWMTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQw IFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBW MTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYgVjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2 MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYxNjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQg VjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYx ODYgVjE4NyBWMTg4IFYxODkgVjE5MCBWMTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3 IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIwMiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBW MjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMgVjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIy MCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYyMjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEg VjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSkKICAgICBE RUZJTkUKICAgICBWMSBBUyB2YWwgPiAwLCBWMiBBUyB2YWwgPiAwLCBWMyBBUyB2YWwgPiAwLCBW NCBBUyB2YWwgPiAwLCBWNSBBUyB2YWwgPiAwLCBWNiBBUyB2YWwgPiAwLCBWNyBBUyB2YWwgPiAw LCBWOCBBUyB2YWwgPiAwLCBWOSBBUyB2YWwgPiAwLCBWMTAgQVMgdmFsID4gMCwKICAgICBWMTEg QVMgdmFsID4gMCwgVjEyIEFTIHZhbCA+IDAsIFYxMyBBUyB2YWwgPiAwLCBWMTQgQVMgdmFsID4g MCwgVjE1IEFTIHZhbCA+IDAsIFYxNiBBUyB2YWwgPiAwLCBWMTcgQVMgdmFsID4gMCwgVjE4IEFT IHZhbCA+IDAsIFYxOSBBUyB2YWwgPiAwLCBWMjAgQVMgdmFsID4gMCwKQEAgLTYzNTEsMTMgKzYz NDksMTEgQEAgV0lORE9XIHcgQVMgKAogICAgIFYyMDEgQVMgdmFsID4gMCwgVjIwMiBBUyB2YWwg PiAwLCBWMjAzIEFTIHZhbCA+IDAsIFYyMDQgQVMgdmFsID4gMCwgVjIwNSBBUyB2YWwgPiAwLCBW MjA2IEFTIHZhbCA+IDAsIFYyMDcgQVMgdmFsID4gMCwgVjIwOCBBUyB2YWwgPiAwLCBWMjA5IEFT IHZhbCA+IDAsIFYyMTAgQVMgdmFsID4gMCwKICAgICBWMjExIEFTIHZhbCA+IDAsIFYyMTIgQVMg dmFsID4gMCwgVjIxMyBBUyB2YWwgPiAwLCBWMjE0IEFTIHZhbCA+IDAsIFYyMTUgQVMgdmFsID4g MCwgVjIxNiBBUyB2YWwgPiAwLCBWMjE3IEFTIHZhbCA+IDAsIFYyMTggQVMgdmFsID4gMCwgVjIx OSBBUyB2YWwgPiAwLCBWMjIwIEFTIHZhbCA+IDAsCiAgICAgVjIyMSBBUyB2YWwgPiAwLCBWMjIy IEFTIHZhbCA+IDAsIFYyMjMgQVMgdmFsID4gMCwgVjIyNCBBUyB2YWwgPiAwLCBWMjI1IEFTIHZh bCA+IDAsIFYyMjYgQVMgdmFsID4gMCwgVjIyNyBBUyB2YWwgPiAwLCBWMjI4IEFTIHZhbCA+IDAs IFYyMjkgQVMgdmFsID4gMCwgVjIzMCBBUyB2YWwgPiAwLAotICAgIFYyMzEgQVMgdmFsID4gMCwg VjIzMiBBUyB2YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQgQVMgdmFsID4gMCwgVjIzNSBB UyB2YWwgPiAwLCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFsID4gMCwgVjIzOCBBUyB2YWwg PiAwLCBWMjM5IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMCwKLSAgICBWMjQxIEFTIHZhbCA+ IDAsIFYyNDIgQVMgdmFsID4gMCwgVjI0MyBBUyB2YWwgPiAwLCBWMjQ0IEFTIHZhbCA+IDAsIFYy NDUgQVMgdmFsID4gMCwgVjI0NiBBUyB2YWwgPiAwLCBWMjQ3IEFTIHZhbCA+IDAsIFYyNDggQVMg dmFsID4gMCwgVjI0OSBBUyB2YWwgPiAwLCBWMjUwIEFTIHZhbCA+IDAsCi0gICAgVjI1MSBBUyB2 YWwgPiAwCisgICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+IDAsIFYyMzMgQVMgdmFs ID4gMCwgVjIzNCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYyMzYgQVMgdmFsID4gMCwg VjIzNyBBUyB2YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMgdmFsID4gMCwgVjI0MCBB UyB2YWwgPiAwCiApOwogRVJST1I6ICB0b28gbWFueSBwYXR0ZXJuIHZhcmlhYmxlcwotREVUQUlM OiAgTWF4aW11bSBpcyAyNTEuCi0tLSBFeHBlY3RlZDogRVJST1IgLSB0b28gbWFueSBwYXR0ZXJu IHZhcmlhYmxlcyAoTWF4aW11bSBpcyAyNTEpCitERVRBSUw6ICBNYXhpbXVtIGlzIDI0MC4KKy0t IEV4cGVjdGVkOiBFUlJPUiAtIHRvbyBtYW55IHBhdHRlcm4gdmFyaWFibGVzIChNYXhpbXVtIGlz IDI0MCkKIC0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBhdCBtYXhpbXVtIGRlcHRoIChkZXB0aCAy NTMpCiAtLSBOb3RlOiAyNTMgbmVzdGVkIEdST1VQezMsN30gcXVhbnRpZmllcnMgcHJvZHVjZSBk ZXB0aCAyNTMgYWZ0ZXIgb3B0aW1pemF0aW9uCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX2Vycm9ycwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCmluZGV4IDYzMTcz NjE1MjczLi40NzU1NDFkNDU1MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbApAQCAtMzk0 OCwxMiArMzk0OCwxMiBAQCBXSU5ET1cgdyBBUyAoCiApOwogLS0gRXhwZWN0ZWQ6IEVycm9yIC0g QiBpcyBub3QgdXNlZCBpbiBQQVRURVJOCiAKLS0tIFRlc3Q6IDI1MSB2YXJpYWJsZXMgaW4gUEFU VEVSTiBhbmQgREVGSU5FIChib3VuZGFyeSAtIHNob3VsZCBzdWNjZWVkKQorLS0gVGVzdDogMjQw IHZhcmlhYmxlcyBpbiBQQVRURVJOIGFuZCBERUZJTkUgKGJvdW5kYXJ5IC0gc2hvdWxkIHN1Y2Nl ZWQpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycwogV0lORE9XIHcgQVMg KAogICAgIE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCi0gICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcgVjggVjkg VjEwIFYxMSBWMTIgVjEzIFYxNCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIyIFYyMyBW MjQgVjI1IFYyNiBWMjcgVjI4IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYgVjM3IFYz OCBWMzkgVjQwIFY0MSBWNDIgVjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBWNTEgVjUy IFY1MyBWNTQgVjU1IFY1NiBWNTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2NSBWNjYg VjY3IFY2OCBWNjkgVjcwIFY3MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5IFY4MCBW ODEgVjgyIFY4MyBWODQgVjg1IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMgVjk0IFY5 NSBWOTYgVjk3IFY5OCBWOTkgVjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEwNiBWMTA3 IFYxMDggVjEwOSBWMTEwIFYxMTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcgVjExOCBW MTE5IFYxMjAgVjEyMSBWMTIyIFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYxMjkgVjEz MCBWMTMxIFYxMzIgVjEzMyBWMTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQwIFYxNDEg VjE0MiBWMTQzIFYxNDQgVjE0NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBWMTUyIFYx NTMgVjE1NCBWMTU1IFYxNTYgVjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2MyBWMTY0 IFYxNjUgVjE2NiBWMTY3IFYxNjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQgVjE3NSBW MTc2IFYxNzcgVjE3OCBWMTc5IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYxODYgVjE4 NyBWMTg4IFYxODkgVjE5MCBWMTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3IFYxOTgg VjE5OSBWMjAwIFYyMDEgVjIwMiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBWMjA5IFYy MTAgVjIxMSBWMjEyIFYyMTMgVjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIyMCBWMjIx IFYyMjIgVjIyMyBWMjI0IFYyMjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEgVjIzMiBW MjMzIFYyMzQgVjIzNSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYyNDMgVjI0 NCBWMjQ1IFYyNDYgVjI0NyBWMjQ4IFYyNDkgVjI1MCBWMjUxKQorICAgIFBBVFRFUk4gKFYxIFYy IFYzIFY0IFY1IFY2IFY3IFY4IFY5IFYxMCBWMTEgVjEyIFYxMyBWMTQgVjE1IFYxNiBWMTcgVjE4 IFYxOSBWMjAgVjIxIFYyMiBWMjMgVjI0IFYyNSBWMjYgVjI3IFYyOCBWMjkgVjMwIFYzMSBWMzIg VjMzIFYzNCBWMzUgVjM2IFYzNyBWMzggVjM5IFY0MCBWNDEgVjQyIFY0MyBWNDQgVjQ1IFY0NiBW NDcgVjQ4IFY0OSBWNTAgVjUxIFY1MiBWNTMgVjU0IFY1NSBWNTYgVjU3IFY1OCBWNTkgVjYwIFY2 MSBWNjIgVjYzIFY2NCBWNjUgVjY2IFY2NyBWNjggVjY5IFY3MCBWNzEgVjcyIFY3MyBWNzQgVjc1 IFY3NiBWNzcgVjc4IFY3OSBWODAgVjgxIFY4MiBWODMgVjg0IFY4NSBWODYgVjg3IFY4OCBWODkg VjkwIFY5MSBWOTIgVjkzIFY5NCBWOTUgVjk2IFY5NyBWOTggVjk5IFYxMDAgVjEwMSBWMTAyIFYx MDMgVjEwNCBWMTA1IFYxMDYgVjEwNyBWMTA4IFYxMDkgVjExMCBWMTExIFYxMTIgVjExMyBWMTE0 IFYxMTUgVjExNiBWMTE3IFYxMTggVjExOSBWMTIwIFYxMjEgVjEyMiBWMTIzIFYxMjQgVjEyNSBW MTI2IFYxMjcgVjEyOCBWMTI5IFYxMzAgVjEzMSBWMTMyIFYxMzMgVjEzNCBWMTM1IFYxMzYgVjEz NyBWMTM4IFYxMzkgVjE0MCBWMTQxIFYxNDIgVjE0MyBWMTQ0IFYxNDUgVjE0NiBWMTQ3IFYxNDgg VjE0OSBWMTUwIFYxNTEgVjE1MiBWMTUzIFYxNTQgVjE1NSBWMTU2IFYxNTcgVjE1OCBWMTU5IFYx NjAgVjE2MSBWMTYyIFYxNjMgVjE2NCBWMTY1IFYxNjYgVjE2NyBWMTY4IFYxNjkgVjE3MCBWMTcx IFYxNzIgVjE3MyBWMTc0IFYxNzUgVjE3NiBWMTc3IFYxNzggVjE3OSBWMTgwIFYxODEgVjE4MiBW MTgzIFYxODQgVjE4NSBWMTg2IFYxODcgVjE4OCBWMTg5IFYxOTAgVjE5MSBWMTkyIFYxOTMgVjE5 NCBWMTk1IFYxOTYgVjE5NyBWMTk4IFYxOTkgVjIwMCBWMjAxIFYyMDIgVjIwMyBWMjA0IFYyMDUg VjIwNiBWMjA3IFYyMDggVjIwOSBWMjEwIFYyMTEgVjIxMiBWMjEzIFYyMTQgVjIxNSBWMjE2IFYy MTcgVjIxOCBWMjE5IFYyMjAgVjIyMSBWMjIyIFYyMjMgVjIyNCBWMjI1IFYyMjYgVjIyNyBWMjI4 IFYyMjkgVjIzMCBWMjMxIFYyMzIgVjIzMyBWMjM0IFYyMzUgVjIzNiBWMjM3IFYyMzggVjIzOSBW MjQwKQogICAgIERFRklORQogICAgIFYxIEFTIHZhbCA+IDAsIFYyIEFTIHZhbCA+IDAsIFYzIEFT IHZhbCA+IDAsIFY0IEFTIHZhbCA+IDAsIFY1IEFTIHZhbCA+IDAsIFY2IEFTIHZhbCA+IDAsIFY3 IEFTIHZhbCA+IDAsIFY4IEFTIHZhbCA+IDAsIFY5IEFTIHZhbCA+IDAsIFYxMCBBUyB2YWwgPiAw LAogICAgIFYxMSBBUyB2YWwgPiAwLCBWMTIgQVMgdmFsID4gMCwgVjEzIEFTIHZhbCA+IDAsIFYx NCBBUyB2YWwgPiAwLCBWMTUgQVMgdmFsID4gMCwgVjE2IEFTIHZhbCA+IDAsIFYxNyBBUyB2YWwg PiAwLCBWMTggQVMgdmFsID4gMCwgVjE5IEFTIHZhbCA+IDAsIFYyMCBBUyB2YWwgPiAwLApAQCAt Mzk3OCwxOCArMzk3OCwxNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgVjIwMSBBUyB2YWwgPiAwLCBW MjAyIEFTIHZhbCA+IDAsIFYyMDMgQVMgdmFsID4gMCwgVjIwNCBBUyB2YWwgPiAwLCBWMjA1IEFT IHZhbCA+IDAsIFYyMDYgQVMgdmFsID4gMCwgVjIwNyBBUyB2YWwgPiAwLCBWMjA4IEFTIHZhbCA+ IDAsIFYyMDkgQVMgdmFsID4gMCwgVjIxMCBBUyB2YWwgPiAwLAogICAgIFYyMTEgQVMgdmFsID4g MCwgVjIxMiBBUyB2YWwgPiAwLCBWMjEzIEFTIHZhbCA+IDAsIFYyMTQgQVMgdmFsID4gMCwgVjIx NSBBUyB2YWwgPiAwLCBWMjE2IEFTIHZhbCA+IDAsIFYyMTcgQVMgdmFsID4gMCwgVjIxOCBBUyB2 YWwgPiAwLCBWMjE5IEFTIHZhbCA+IDAsIFYyMjAgQVMgdmFsID4gMCwKICAgICBWMjIxIEFTIHZh bCA+IDAsIFYyMjIgQVMgdmFsID4gMCwgVjIyMyBBUyB2YWwgPiAwLCBWMjI0IEFTIHZhbCA+IDAs IFYyMjUgQVMgdmFsID4gMCwgVjIyNiBBUyB2YWwgPiAwLCBWMjI3IEFTIHZhbCA+IDAsIFYyMjgg QVMgdmFsID4gMCwgVjIyOSBBUyB2YWwgPiAwLCBWMjMwIEFTIHZhbCA+IDAsCi0gICAgVjIzMSBB UyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+IDAsIFYyMzMgQVMgdmFsID4gMCwgVjIzNCBBUyB2YWwg PiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYyMzYgQVMgdmFsID4gMCwgVjIzNyBBUyB2YWwgPiAwLCBW MjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMgdmFsID4gMCwgVjI0MCBBUyB2YWwgPiAwLAotICAgIFYy NDEgQVMgdmFsID4gMCwgVjI0MiBBUyB2YWwgPiAwLCBWMjQzIEFTIHZhbCA+IDAsIFYyNDQgQVMg dmFsID4gMCwgVjI0NSBBUyB2YWwgPiAwLCBWMjQ2IEFTIHZhbCA+IDAsIFYyNDcgQVMgdmFsID4g MCwgVjI0OCBBUyB2YWwgPiAwLCBWMjQ5IEFTIHZhbCA+IDAsIFYyNTAgQVMgdmFsID4gMCwKLSAg ICBWMjUxIEFTIHZhbCA+IDAKKyAgICBWMjMxIEFTIHZhbCA+IDAsIFYyMzIgQVMgdmFsID4gMCwg VjIzMyBBUyB2YWwgPiAwLCBWMjM0IEFTIHZhbCA+IDAsIFYyMzUgQVMgdmFsID4gMCwgVjIzNiBB UyB2YWwgPiAwLCBWMjM3IEFTIHZhbCA+IDAsIFYyMzggQVMgdmFsID4gMCwgVjIzOSBBUyB2YWwg PiAwLCBWMjQwIEFTIHZhbCA+IDAKICk7CiAtLSBFeHBlY3RlZDogU3VjY2VzcyAtIGV4YWN0bHkg YXQgUlBSX1ZBUklEX01BWCBib3VuZGFyeQogCi0tLSBUZXN0OiAyNTIgdmFyaWFibGVzIGluIFBB VFRFUk4sIDI1MSBpbiBERUZJTkUgKGV4Y2VlZHMgbGltaXQgd2l0aCBpbXBsaWNpdCBUUlVFKQor LS0gVGVzdDogMjQxIHZhcmlhYmxlcyBpbiBQQVRURVJOLCAyNDAgaW4gREVGSU5FIChleGNlZWRz IGxpbWl0IHdpdGggaW1wbGljaXQgVFJVRSkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBy cHJfZXJyb3JzCiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBQQVRURVJOIChWMSBW MiBWMyBWNCBWNSBWNiBWNyBWOCBWOSBWMTAgVjExIFYxMiBWMTMgVjE0IFYxNSBWMTYgVjE3IFYx OCBWMTkgVjIwIFYyMSBWMjIgVjIzIFYyNCBWMjUgVjI2IFYyNyBWMjggVjI5IFYzMCBWMzEgVjMy IFYzMyBWMzQgVjM1IFYzNiBWMzcgVjM4IFYzOSBWNDAgVjQxIFY0MiBWNDMgVjQ0IFY0NSBWNDYg VjQ3IFY0OCBWNDkgVjUwIFY1MSBWNTIgVjUzIFY1NCBWNTUgVjU2IFY1NyBWNTggVjU5IFY2MCBW NjEgVjYyIFY2MyBWNjQgVjY1IFY2NiBWNjcgVjY4IFY2OSBWNzAgVjcxIFY3MiBWNzMgVjc0IFY3 NSBWNzYgVjc3IFY3OCBWNzkgVjgwIFY4MSBWODIgVjgzIFY4NCBWODUgVjg2IFY4NyBWODggVjg5 IFY5MCBWOTEgVjkyIFY5MyBWOTQgVjk1IFY5NiBWOTcgVjk4IFY5OSBWMTAwIFYxMDEgVjEwMiBW MTAzIFYxMDQgVjEwNSBWMTA2IFYxMDcgVjEwOCBWMTA5IFYxMTAgVjExMSBWMTEyIFYxMTMgVjEx NCBWMTE1IFYxMTYgVjExNyBWMTE4IFYxMTkgVjEyMCBWMTIxIFYxMjIgVjEyMyBWMTI0IFYxMjUg VjEyNiBWMTI3IFYxMjggVjEyOSBWMTMwIFYxMzEgVjEzMiBWMTMzIFYxMzQgVjEzNSBWMTM2IFYx MzcgVjEzOCBWMTM5IFYxNDAgVjE0MSBWMTQyIFYxNDMgVjE0NCBWMTQ1IFYxNDYgVjE0NyBWMTQ4 IFYxNDkgVjE1MCBWMTUxIFYxNTIgVjE1MyBWMTU0IFYxNTUgVjE1NiBWMTU3IFYxNTggVjE1OSBW MTYwIFYxNjEgVjE2MiBWMTYzIFYxNjQgVjE2NSBWMTY2IFYxNjcgVjE2OCBWMTY5IFYxNzAgVjE3 MSBWMTcyIFYxNzMgVjE3NCBWMTc1IFYxNzYgVjE3NyBWMTc4IFYxNzkgVjE4MCBWMTgxIFYxODIg VjE4MyBWMTg0IFYxODUgVjE4NiBWMTg3IFYxODggVjE4OSBWMTkwIFYxOTEgVjE5MiBWMTkzIFYx OTQgVjE5NSBWMTk2IFYxOTcgVjE5OCBWMTk5IFYyMDAgVjIwMSBWMjAyIFYyMDMgVjIwNCBWMjA1 IFYyMDYgVjIwNyBWMjA4IFYyMDkgVjIxMCBWMjExIFYyMTIgVjIxMyBWMjE0IFYyMTUgVjIxNiBW MjE3IFYyMTggVjIxOSBWMjIwIFYyMjEgVjIyMiBWMjIzIFYyMjQgVjIyNSBWMjI2IFYyMjcgVjIy OCBWMjI5IFYyMzAgVjIzMSBWMjMyIFYyMzMgVjIzNCBWMjM1IFYyMzYgVjIzNyBWMjM4IFYyMzkg VjI0MCBWMjQxIFYyNDIgVjI0MyBWMjQ0IFYyNDUgVjI0NiBWMjQ3IFYyNDggVjI0OSBWMjUwIFYy NTEgVjI1MikKKyAgICBQQVRURVJOIChWMSBWMiBWMyBWNCBWNSBWNiBWNyBWOCBWOSBWMTAgVjEx IFYxMiBWMTMgVjE0IFYxNSBWMTYgVjE3IFYxOCBWMTkgVjIwIFYyMSBWMjIgVjIzIFYyNCBWMjUg VjI2IFYyNyBWMjggVjI5IFYzMCBWMzEgVjMyIFYzMyBWMzQgVjM1IFYzNiBWMzcgVjM4IFYzOSBW NDAgVjQxIFY0MiBWNDMgVjQ0IFY0NSBWNDYgVjQ3IFY0OCBWNDkgVjUwIFY1MSBWNTIgVjUzIFY1 NCBWNTUgVjU2IFY1NyBWNTggVjU5IFY2MCBWNjEgVjYyIFY2MyBWNjQgVjY1IFY2NiBWNjcgVjY4 IFY2OSBWNzAgVjcxIFY3MiBWNzMgVjc0IFY3NSBWNzYgVjc3IFY3OCBWNzkgVjgwIFY4MSBWODIg VjgzIFY4NCBWODUgVjg2IFY4NyBWODggVjg5IFY5MCBWOTEgVjkyIFY5MyBWOTQgVjk1IFY5NiBW OTcgVjk4IFY5OSBWMTAwIFYxMDEgVjEwMiBWMTAzIFYxMDQgVjEwNSBWMTA2IFYxMDcgVjEwOCBW MTA5IFYxMTAgVjExMSBWMTEyIFYxMTMgVjExNCBWMTE1IFYxMTYgVjExNyBWMTE4IFYxMTkgVjEy MCBWMTIxIFYxMjIgVjEyMyBWMTI0IFYxMjUgVjEyNiBWMTI3IFYxMjggVjEyOSBWMTMwIFYxMzEg VjEzMiBWMTMzIFYxMzQgVjEzNSBWMTM2IFYxMzcgVjEzOCBWMTM5IFYxNDAgVjE0MSBWMTQyIFYx NDMgVjE0NCBWMTQ1IFYxNDYgVjE0NyBWMTQ4IFYxNDkgVjE1MCBWMTUxIFYxNTIgVjE1MyBWMTU0 IFYxNTUgVjE1NiBWMTU3IFYxNTggVjE1OSBWMTYwIFYxNjEgVjE2MiBWMTYzIFYxNjQgVjE2NSBW MTY2IFYxNjcgVjE2OCBWMTY5IFYxNzAgVjE3MSBWMTcyIFYxNzMgVjE3NCBWMTc1IFYxNzYgVjE3 NyBWMTc4IFYxNzkgVjE4MCBWMTgxIFYxODIgVjE4MyBWMTg0IFYxODUgVjE4NiBWMTg3IFYxODgg VjE4OSBWMTkwIFYxOTEgVjE5MiBWMTkzIFYxOTQgVjE5NSBWMTk2IFYxOTcgVjE5OCBWMTk5IFYy MDAgVjIwMSBWMjAyIFYyMDMgVjIwNCBWMjA1IFYyMDYgVjIwNyBWMjA4IFYyMDkgVjIxMCBWMjEx IFYyMTIgVjIxMyBWMjE0IFYyMTUgVjIxNiBWMjE3IFYyMTggVjIxOSBWMjIwIFYyMjEgVjIyMiBW MjIzIFYyMjQgVjIyNSBWMjI2IFYyMjcgVjIyOCBWMjI5IFYyMzAgVjIzMSBWMjMyIFYyMzMgVjIz NCBWMjM1IFYyMzYgVjIzNyBWMjM4IFYyMzkgVjI0MCBWMjQxKQogICAgIERFRklORQogICAgIFYx IEFTIHZhbCA+IDAsIFYyIEFTIHZhbCA+IDAsIFYzIEFTIHZhbCA+IDAsIFY0IEFTIHZhbCA+IDAs IFY1IEFTIHZhbCA+IDAsIFY2IEFTIHZhbCA+IDAsIFY3IEFTIHZhbCA+IDAsIFY4IEFTIHZhbCA+ IDAsIFY5IEFTIHZhbCA+IDAsIFYxMCBBUyB2YWwgPiAwLAogICAgIFYxMSBBUyB2YWwgPiAwLCBW MTIgQVMgdmFsID4gMCwgVjEzIEFTIHZhbCA+IDAsIFYxNCBBUyB2YWwgPiAwLCBWMTUgQVMgdmFs ID4gMCwgVjE2IEFTIHZhbCA+IDAsIFYxNyBBUyB2YWwgPiAwLCBWMTggQVMgdmFsID4gMCwgVjE5 IEFTIHZhbCA+IDAsIFYyMCBBUyB2YWwgPiAwLApAQCAtNDAxNCwxMSArNDAxMiw5IEBAIFdJTkRP VyB3IEFTICgKICAgICBWMjAxIEFTIHZhbCA+IDAsIFYyMDIgQVMgdmFsID4gMCwgVjIwMyBBUyB2 YWwgPiAwLCBWMjA0IEFTIHZhbCA+IDAsIFYyMDUgQVMgdmFsID4gMCwgVjIwNiBBUyB2YWwgPiAw LCBWMjA3IEFTIHZhbCA+IDAsIFYyMDggQVMgdmFsID4gMCwgVjIwOSBBUyB2YWwgPiAwLCBWMjEw IEFTIHZhbCA+IDAsCiAgICAgVjIxMSBBUyB2YWwgPiAwLCBWMjEyIEFTIHZhbCA+IDAsIFYyMTMg QVMgdmFsID4gMCwgVjIxNCBBUyB2YWwgPiAwLCBWMjE1IEFTIHZhbCA+IDAsIFYyMTYgQVMgdmFs ID4gMCwgVjIxNyBBUyB2YWwgPiAwLCBWMjE4IEFTIHZhbCA+IDAsIFYyMTkgQVMgdmFsID4gMCwg VjIyMCBBUyB2YWwgPiAwLAogICAgIFYyMjEgQVMgdmFsID4gMCwgVjIyMiBBUyB2YWwgPiAwLCBW MjIzIEFTIHZhbCA+IDAsIFYyMjQgQVMgdmFsID4gMCwgVjIyNSBBUyB2YWwgPiAwLCBWMjI2IEFT IHZhbCA+IDAsIFYyMjcgQVMgdmFsID4gMCwgVjIyOCBBUyB2YWwgPiAwLCBWMjI5IEFTIHZhbCA+ IDAsIFYyMzAgQVMgdmFsID4gMCwKLSAgICBWMjMxIEFTIHZhbCA+IDAsIFYyMzIgQVMgdmFsID4g MCwgVjIzMyBBUyB2YWwgPiAwLCBWMjM0IEFTIHZhbCA+IDAsIFYyMzUgQVMgdmFsID4gMCwgVjIz NiBBUyB2YWwgPiAwLCBWMjM3IEFTIHZhbCA+IDAsIFYyMzggQVMgdmFsID4gMCwgVjIzOSBBUyB2 YWwgPiAwLCBWMjQwIEFTIHZhbCA+IDAsCi0gICAgVjI0MSBBUyB2YWwgPiAwLCBWMjQyIEFTIHZh bCA+IDAsIFYyNDMgQVMgdmFsID4gMCwgVjI0NCBBUyB2YWwgPiAwLCBWMjQ1IEFTIHZhbCA+IDAs IFYyNDYgQVMgdmFsID4gMCwgVjI0NyBBUyB2YWwgPiAwLCBWMjQ4IEFTIHZhbCA+IDAsIFYyNDkg QVMgdmFsID4gMCwgVjI1MCBBUyB2YWwgPiAwLAotICAgIFYyNTEgQVMgdmFsID4gMAorICAgIFYy MzEgQVMgdmFsID4gMCwgVjIzMiBBUyB2YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQgQVMg dmFsID4gMCwgVjIzNSBBUyB2YWwgPiAwLCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFsID4g MCwgVjIzOCBBUyB2YWwgPiAwLCBWMjM5IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMAogKTsK LS0tIEV4cGVjdGVkOiBFUlJPUiAtIHRvbyBtYW55IHBhdHRlcm4gdmFyaWFibGVzIChNYXhpbXVt IGlzIDI1MSkKKy0tIEV4cGVjdGVkOiBFUlJPUiAtIHRvbyBtYW55IHBhdHRlcm4gdmFyaWFibGVz IChNYXhpbXVtIGlzIDI0MCkKIAogLS0gVGVzdDogUGF0dGVybiBuZXN0aW5nIGF0IG1heGltdW0g ZGVwdGggKGRlcHRoIDI1MykKIC0tIE5vdGU6IDI1MyBuZXN0ZWQgR1JPVVB7Myw3fSBxdWFudGlm aWVycyBwcm9kdWNlIGRlcHRoIDI1MyBhZnRlciBvcHRpbWl6YXRpb24KLS0gCjIuNTAuMSAoQXBw bGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0043-Generalize-quantifier-multiplication-in-row-patte.txt" Content-Disposition: attachment; filename="nocfbot-0043-Generalize-quantifier-multiplication-in-row-patte.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsc42 RnJvbSBjMGFhMGExY2E0OGY2YzUyMDY1OGE1MDU2MGI4NmQ3MDgxMThiOWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDMgSnVuIDIwMjYgMjM6MTA6NDkgKzA5MDAKU3ViamVjdDogW1BBVENIIDQzLzY4XSBH ZW5lcmFsaXplIHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24gaW4gcm93IHBhdHRlcm4KIHJlY29n bml0aW9uCgpUaGUgcGxhbm5lciBmbGF0dGVucyBhIG5lc3RlZCBwYXR0ZXJuIHF1YW50aWZpZXIg KGNoaWxke3AscX0pe20sbn0gaW50bwpjaGlsZHtwKm0sIHEqbn0uICBUaGlzIGlzIHZhbGlkIG9u bHkgd2hlbiB0aGUgcmVwZXRpdGlvbiBjb3VudHMgdGhlIG5lc3RlZApxdWFudGlmaWVycyBjYW4g cHJvZHVjZSBmb3JtIGV4YWN0bHkgb25lIGNvbnRpZ3VvdXMgaW50ZXJ2YWwuICBSZXBsYWNlIHRo ZQpwcmV2aW91cyBoYW5kZnVsIG9mIHNwZWNpYWwgY2FzZXMgd2l0aCB0aGF0IGdlbmVyYWwgdGVz dDogZm9sZCB3aGVuIHRoZQpvdXRlciBjb3VudCBpcyBleGFjdCAobSA9PSBuKSwgb3IgdGhlIGNo aWxkIGlzIHNraXBwYWJsZSAocCA9PSAwKSwgb3IgdGhlCnBlci1pdGVyYXRpb24gaW50ZXJ2YWxz IHRvdWNoIChwIDw9IE1heChtLDEpKihxLXApICsgMSkgYW5kLCBmb3IgYSBza2lwcGFibGUKb3V0 ZXIsIHRoZSB6ZXJvIGNhc2UgY29ubmVjdHMgdG8gdGhlIGNoaWxkIHJhbmdlIChtID49IDEgb3Ig cCA8PSAxKS4KClRoaXMgYWRkaXRpb25hbGx5IGZvbGRzIGNvbnRpZ3VvdXMgY2FzZXMgdGhhdCB3 ZXJlIHByZXZpb3VzbHkgbGVmdAp1bmZsYXR0ZW5lZCwgc3VjaCBhcyAoQXsyLDN9KXsyLDN9IC0+ IGF7NCw5fSwgKEErKXszfSAtPiBhezMsfSwgYW5kCihBKyl7Miw0fSAtPiBhezIsfSwgd2hpbGUg c3RpbGwgbGVhdmluZyBnYXAtcHJvZHVjaW5nIHBhdHRlcm5zIGxpa2UKKEF7Mn0pezIsM30gYW5k IChBezIsfSkqIHVudG91Y2hlZC4gIFRoZSBpbnQ2NCBvdmVyZmxvdyBndWFyZHMgb24gdGhlCm11 bHRpcGxpZWQgYm91bmRzIGFyZSByZXRhaW5lZC4KCkV4cGFuZCB0aGUgcXVhdGlmaWVyLW11bHRp cGxpY2F0aW9uIHJlZ3Jlc3Npb24gY2FzZXMgdG8gZXhlcmNpc2UgZWFjaApicmFuY2ggd2l0aCBi b3RoIGZvbGRpbmcgYW5kIGdhcCAobm8tZm9sZCkgcGF0dGVybnMuICBUaGUgcGF0dGVybi1uZXN0 aW5nCmRlcHRoIHRlc3RzIG5vdyB1c2UgcmVsdWN0YW50IHF1YW50aWZpZXJzLCB3aGljaCBhcmUg bm90IHN1YmplY3QgdG8KbXVsdGlwbGljYXRpb24sIHNvIHRoZXkgc3RpbGwgYnVpbGQgdGhlIGlu dGVuZGVkIG5lc3RpbmcgZGVwdGguCi0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnBy LmMgICAgICAgICAgfCAxMzAgKysrKysrKysrLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8IDE1NCArKysrKysrKysrKysrKysrKysrKystCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCB8ICAxNiArLS0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgICAgIHwgIDcyICsrKysrKysrKy0KIDQgZmls ZXMgY2hhbmdlZCwgMjg0IGluc2VydGlvbnMoKyksIDg4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcnByLmMKaW5kZXggNDY1MmNhNmViZWIuLjYxN2EzODY5OTQ4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9ycHIuYwpAQCAtNzg0LDIxICs3ODQsMjUgQEAgb3B0aW1pemVBbHRQYXR0ZXJu KFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQogCiAvKgogICogdHJ5TXVsdGlwbHlRdWFudGlmaWVy cwotICoJCVRyeSB0byBtdWx0aXBseSBxdWFudGlmaWVycy4KLSAqCi0gKiBNdWx0aXBsaWNhdGlv biBpcyBTQUZFIHdoZW46Ci0gKiAgIDEuIEJvdGggdW5ib3VuZGVkLCB3aXRoIHNraXBsZXNzIG91 dGVyIG9yIGNoaWxkLT5taW4gPD0gMToKLSAqICAgICAgKEEqKSogLT4gQSosIChBKykrIC0+IEEr LCAoQSspKiAtPiBBKiwgKEF7Mix9KSsgLT4gQXsyLH0KLSAqICAgMi4gT3V0ZXIgZXhhY3Q6IChB e20sbn0pe2t9IC0+IEF7bSprLCBuKmt9Ci0gKiAgIDMuIE91dGVyIHJhbmdlICsgY2hpbGQgezEs MX06IChBKXsyLH0gLT4gQXsyLH0KLSAqCi0gKiBNdWx0aXBsaWNhdGlvbiBpcyBOT1Qgc2FmZSB3 aGVuOgotICogICAtIE9ubHkgY2hpbGQgdW5ib3VuZGVkOiAoQSspezN9IGhhcyBkaWZmZXJlbnQg c2VtYW50aWNzCi0gKiAgIC0gT3V0ZXIgcmFuZ2UgKyBjaGlsZCBub3QgezEsMX06IGdhcHMgcG9z c2libGUKLSAqICAgICBlLmcuLCAoQXsyfSl7MiwzfSB5aWVsZHMgNCw2IG9ubHkgKG5vdCA0LDUs NikKLSAqICAgLSBTa2lwcGFibGUgb3V0ZXIgKG1pbiAwKSArIGNoaWxkLT5taW4gPj0gMjogKEF7 Mix9KSogcmVhY2hlcwotICogICAgIHswfSBVTklPTiBbY2hpbGQtPm1pbiwgSU5GKSwgc28gMS4u Y2hpbGQtPm1pbi0xIGFyZSB1bnJlYWNoYWJsZQotICogICAgIGFuZCBBKiB3b3VsZCB3cm9uZ2x5 IGFkbWl0IHRoZW0KKyAqCQlUcnkgdG8gZmxhdHRlbiAoY2hpbGR7cCxxfSl7bSxufSBpbnRvIGNo aWxke3AqbSwgcSpufS4KKyAqCisgKiBCZWxvdywgcCxxIGFyZSB0aGUgY2hpbGQncyB7bWluLG1h eH0gYW5kIG0sbiB0aGUgb3V0ZXIge21pbixtYXh9LgorICoKKyAqIEZsYXR0ZW5pbmcgaXMgdmFs aWQgb25seSB3aGVuIHRoZSByZXBldGl0aW9uIGNvdW50cyB0aGUgbmVzdGVkIHF1YW50aWZpZXJz CisgKiBjYW4gcHJvZHVjZSBmb3JtIGV4YWN0bHkgdGhlIGNvbnRpZ3VvdXMgaW50ZXJ2YWwgW3Aq bSwgcSpuXS4gIEZvciBhbiBvdXRlcgorICogaXRlcmF0aW9uIGNvdW50IHQgKG0gPD0gdCA8PSBu KSB0aGUgY2hpbGQgY29udHJpYnV0ZXMgYW55IGNvdW50IGluCisgKiBbdCpwLCB0KnFdLCBhbmQg dCA9IDAgY29udHJpYnV0ZXMgezB9LiAgVGhlIHVuaW9uIG9mIHRob3NlIGludGVydmFscyBpcwor ICogY29udGlndW91cywgaGVuY2UgZmxhdHRlbmFibGUsIHdoZW46CisgKgorICogICAtIG0gPT0g bjogYSBzaW5nbGUgb3V0ZXIgY291bnQsIHNvIHRoZSByZXN1bHQgaXMganVzdCBbbSpwLCBtKnFd OyBvcgorICogICAtIHAgPT0gMDogZXZlcnkgaW50ZXJ2YWwgc3RhcnRzIGF0IDAsIHNvIHRoZXkg YWxsIG92ZXJsYXA7IG9yCisgKiAgIC0gY29uc2VjdXRpdmUgaW50ZXJ2YWxzIHRvdWNoIGFuZCB0 aGUgemVybyBjYXNlIChpZiBhbnkpIGNvbm5lY3RzOgorICogICAgICAgcCA8PSBNYXgobSwxKSoo cS1wKSArIDEgICAodG91Y2g7IHRyaXZpYWxseSB0cnVlIGlmIHEgaXMgdW5ib3VuZGVkKQorICog ICAgICAgYW5kIChtID49IDEgb3IgcCA8PSAxKSAgICAod2hlbiBtID09IDAsIHswfSBtdXN0IHJl YWNoIFtwLHFdKQorICoKKyAqIE90aGVyd2lzZSBnYXBzIGFwcGVhciBhbmQgdGhlIHBhdHRlcm4g aXMgbGVmdCB1bmZsYXR0ZW5lZDogKEF7Mn0pezIsM30KKyAqIHlpZWxkcyB7NCw2fSAobm90IDQu LjYpLCBhbmQgKEF7Mix9KSogeWllbGRzIHswfSBVTklPTiBbMixJTkYpIChub3QKKyAqIFswLElO RiksIHNvIEEqIHdvdWxkIHdyb25nbHkgYWRtaXQgYSBzaW5nbGUgQSkuCiAgKgogICogUmV0dXJu cyB0aGUgY2hpbGQgbm9kZSB3aXRoIG11bHRpcGxpZWQgcXVhbnRpZmllcnMgaWYgc3VjY2Vzc2Z1 bCwKICAqIG90aGVyd2lzZSByZXR1cm5zIHRoZSBvcmlnaW5hbCBwYXR0ZXJuIHVuY2hhbmdlZC4K QEAgLTgwNyw2ICs4MTEsNyBAQCBzdGF0aWMgUlBSUGF0dGVybk5vZGUgKgogdHJ5TXVsdGlwbHlR dWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybikKIHsKIAlSUFJQYXR0ZXJuTm9kZSAq Y2hpbGQ7CisJYm9vbAkJc2FmZTsKIAlpbnQ2NAkJbmV3X21pbl82NDsKIAlpbnQ2NAkJbmV3X21h eF82NDsKIApAQCAtODIzLDY5ICs4MjgsNjAgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQ YXR0ZXJuTm9kZSAqcGF0dGVybikKIAkJY2hpbGQtPnJlbHVjdGFudCkKIAkJcmV0dXJuIHBhdHRl cm47CiAKLQkvKiBDYXNlIDE6IEJvdGggdW5ib3VuZGVkIC0gKEEqKSogLT4gQSosIChBKykrIC0+ IEErICovCi0JaWYgKGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiAmJiBwYXR0ZXJuLT5t YXggPT0gUlBSX1FVQU5USVRZX0lORikKKwkvKgorCSAqIERlY2lkZSB3aGV0aGVyIHRoZSBhY2hp ZXZhYmxlIGNvdW50cyBmb3JtIG9uZSBjb250aWd1b3VzIGludGVydmFsLiAgVGhlCisJICogY2hp bGQgcXVhbnRpZmllciBpcyB7Y2hpbGQtPm1pbiwgY2hpbGQtPm1heH0gYW5kIHRoZSBvdXRlciBv bmUgaXMKKwkgKiB7cGF0dGVybi0+bWluLCBwYXR0ZXJuLT5tYXh9OyBlaXRoZXIgbWF4IG1heSBi ZSBSUFJfUVVBTlRJVFlfSU5GLgorCSAqLworCWlmIChwYXR0ZXJuLT5taW4gPT0gcGF0dGVybi0+ bWF4IHx8IGNoaWxkLT5taW4gPT0gMCkKKwkJc2FmZSA9IHRydWU7CisJZWxzZQogCXsKKwkJYm9v bAkJdG91Y2g7CisJCWJvb2wJCXplcm9fb2s7CisKIAkJLyoKLQkJICogQSBza2lwcGFibGUgb3V0 ZXIgKG1pbiAwKSBvdmVyIGEgY2hpbGQgd2l0aCBtaW4gPj0gMiByZWFjaGVzCi0JCSAqIHJlcGV0 aXRpb24gY291bnRzIHswfSBVTklPTiBbY2hpbGQtPm1pbiwgSU5GKTogdGhlIGNvdW50cwotCQkg KiAxLi5jaGlsZC0+bWluLTEgYXJlIHVucmVhY2hhYmxlLCBhbmQgbm8gc2luZ2xlIHF1YW50aWZp ZXIgY2FuCi0JCSAqIGV4cHJlc3MgdGhhdCBnYXAuICBGbGF0dGVuaW5nIHRvIEF7MCxJTkZ9ID0g QSogd291bGQgd3JvbmdseSBhZG1pdAotCQkgKiB0aGVtLCBlLmcuIChBezIsfSkqIHdvdWxkIG1h dGNoIGEgc2luZ2xlIEEuICBNdWx0aXBsaWNhdGlvbiBpcyBzYWZlCi0JCSAqIGhlcmUgb25seSB3 aGVuIGNoaWxkLT5taW4gPD0gMSAodGhlIHJlYWNoYWJsZSBzZXQgaXMgdGhlbgotCQkgKiBjb250 aWd1b3VzIGZyb20gMCk7IG90aGVyd2lzZSBsZWF2ZSB0aGUgcGF0dGVybiB1bmZsYXR0ZW5lZC4K KwkJICogQ29uc2VjdXRpdmUgaW50ZXJ2YWxzIFt0Km1pbiwgdCptYXhdIGFuZCBbKHQrMSkqbWlu LCAodCsxKSptYXhdCisJCSAqIHRvdWNoIHdoZW4gKHQrMSkqbWluIDw9IHQqbWF4ICsgMSwgaS5l LiBtaW4gPD0gdCoobWF4LW1pbikgKyAxLgorCQkgKiBUaGlzIGlzIHRpZ2h0ZXN0IGF0IHRoZSBz bWFsbGVzdCB0IGluIHBsYXksIE1heChwYXR0ZXJuLT5taW4sIDEpLgorCQkgKiBBbiB1bmJvdW5k ZWQgY2hpbGQtPm1heCBtYWtlcyBldmVyeSBpbnRlcnZhbCByZWFjaCBJTkYsIHNvIHRoZXkKKwkJ ICogYWx3YXlzIHRvdWNoLgogCQkgKi8KLQkJaWYgKHBhdHRlcm4tPm1pbiA9PSAwICYmIGNoaWxk LT5taW4gPj0gMikKLQkJCXJldHVybiBwYXR0ZXJuOworCQlpZiAoY2hpbGQtPm1heCA9PSBSUFJf UVVBTlRJVFlfSU5GKQorCQkJdG91Y2ggPSB0cnVlOworCQllbHNlCisJCQl0b3VjaCA9ICgoaW50 NjQpIGNoaWxkLT5taW4gPD0KKwkJCQkJIChpbnQ2NCkgTWF4KHBhdHRlcm4tPm1pbiwgMSkgKiAo Y2hpbGQtPm1heCAtIGNoaWxkLT5taW4pICsgMSk7CiAKLQkJbmV3X21pbl82NCA9IChpbnQ2NCkg Y2hpbGQtPm1pbiAqIHBhdHRlcm4tPm1pbjsKLQkJaWYgKG5ld19taW5fNjQgPj0gUlBSX1FVQU5U SVRZX0lORikKLQkJCXJldHVybiBwYXR0ZXJuOwkJLyogb3ZlcmZsb3csIHNraXAgb3B0aW1pemF0 aW9uICovCisJCS8qCisJCSAqIEEgc2tpcHBhYmxlIG91dGVyIChtaW4gMCkgYWxzbyBuZWVkcyB7 MH0gYWRqYWNlbnQgdG8gdGhlIGNoaWxkCisJCSAqIHJhbmdlLgorCQkgKi8KKwkJemVyb19vayA9 IChwYXR0ZXJuLT5taW4gPj0gMSB8fCBjaGlsZC0+bWluIDw9IDEpOwogCi0JCWNoaWxkLT5taW4g PSAoaW50KSBuZXdfbWluXzY0OwotCQljaGlsZC0+bWF4ID0gUlBSX1FVQU5USVRZX0lORjsKLQkJ cmV0dXJuIGNoaWxkOworCQlzYWZlID0gdG91Y2ggJiYgemVyb19vazsKIAl9CiAKLQkvKi0tLS0t LS0tLS0KLQkgKiBDYXNlIDI6IE91dGVyIGV4YWN0IChtaW4gPT0gbWF4KTogKEF7MiwzfSl7NH0g LT4gQXs4LDEyfS4KLQkgKiAgICAgICAgIFNhZmUgYmVjYXVzZSBldmVyeSBpdGVyYXRpb24gcHJv ZHVjZXMgdGhlIHNhbWUgcmFuZ2UuCi0JICoKLQkgKiBDYXNlIDM6IENoaWxkIHsxLDF9OiAoQSl7 Miw1fSAtPiBBezIsNX0uCi0JICogICAgICAgICBTYWZlIGJlY2F1c2UgdGhlIGNoaWxkIGNvbnRy aWJ1dGVzIGV4YWN0bHkgb25lIHBlcgotCSAqICAgICAgICAgaXRlcmF0aW9uLCBzbyB0aGUgb3V0 ZXIgcmFuZ2UgbWFwcyBkaXJlY3RseS4KLQkgKgotCSAqIFVuc2FmZSBleGFtcGxlOiAoQXsyfSl7 MiwzfSBwcm9kdWNlcyBjb3VudHMgNCBvciA2IG9ubHksIG5vdCB0aGUgZnVsbAotCSAqIHJhbmdl IDQuLjYsIHNvIHdlIGNhbm5vdCBmbGF0dGVuIHdoZW4gY2hpbGQgaGFzIGEgbm9uLXRyaXZpYWwg cmFuZ2UgQU5ECi0JICogb3V0ZXIgaXMgYWxzbyBhIHJhbmdlLgotCSAqLS0tLS0tLS0tLQotCSAq LwotCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9RVUFOVElUWV9JTkYgJiYKLQkJKHBhdHRlcm4tPm1p biA9PSBwYXR0ZXJuLT5tYXggfHwKLQkJIChjaGlsZC0+bWluID09IDEgJiYgY2hpbGQtPm1heCA9 PSAxKSkpCi0JewotCQluZXdfbWluXzY0ID0gKGludDY0KSBwYXR0ZXJuLT5taW4gKiBjaGlsZC0+ bWluOwotCQlpZiAobmV3X21pbl82NCA+PSBSUFJfUVVBTlRJVFlfSU5GKQotCQkJcmV0dXJuIHBh dHRlcm47Ci0KLQkJLyogT3V0ZXIgdW5ib3VuZGVkOiByZXN1bHQgaXMgdW5ib3VuZGVkIHJlZ2Fy ZGxlc3Mgb2YgY2hpbGQgKi8KLQkJaWYgKHBhdHRlcm4tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5G KQotCQkJbmV3X21heF82NCA9IFJQUl9RVUFOVElUWV9JTkY7Ci0JCWVsc2UKLQkJewotCQkJbmV3 X21heF82NCA9IChpbnQ2NCkgcGF0dGVybi0+bWF4ICogY2hpbGQtPm1heDsKKwlpZiAoIXNhZmUp CisJCXJldHVybiBwYXR0ZXJuOwogCi0JCQlpZiAobmV3X21heF82NCA+PSBSUFJfUVVBTlRJVFlf SU5GKQotCQkJCXJldHVybiBwYXR0ZXJuOwotCQl9CisJLyogRmxhdHRlbiB0aGUgY2hpbGQgcXVh bnRpZmllciwgZ3VhcmRpbmcgYWdhaW5zdCBvdmVyZmxvdy4gKi8KKwluZXdfbWluXzY0ID0gKGlu dDY0KSBwYXR0ZXJuLT5taW4gKiBjaGlsZC0+bWluOworCWlmIChuZXdfbWluXzY0ID49IFJQUl9R VUFOVElUWV9JTkYpCisJCXJldHVybiBwYXR0ZXJuOwkJCS8qIG92ZXJmbG93LCBza2lwIG9wdGlt aXphdGlvbiAqLwogCi0JCWNoaWxkLT5taW4gPSAoaW50KSBuZXdfbWluXzY0OwotCQljaGlsZC0+ bWF4ID0gKGludCkgbmV3X21heF82NDsKLQkJcmV0dXJuIGNoaWxkOworCWlmIChwYXR0ZXJuLT5t YXggPT0gUlBSX1FVQU5USVRZX0lORiB8fCBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYp CisJCW5ld19tYXhfNjQgPSBSUFJfUVVBTlRJVFlfSU5GOworCWVsc2UKKwl7CisJCW5ld19tYXhf NjQgPSAoaW50NjQpIHBhdHRlcm4tPm1heCAqIGNoaWxkLT5tYXg7CisJCWlmIChuZXdfbWF4XzY0 ID49IFJQUl9RVUFOVElUWV9JTkYpCisJCQlyZXR1cm4gcGF0dGVybjsKIAl9CiAKLQkvKiBOb3Qg c2FmZSB0byBtdWx0aXBseSAqLwotCXJldHVybiBwYXR0ZXJuOworCWNoaWxkLT5taW4gPSAoaW50 KSBuZXdfbWluXzY0OworCWNoaWxkLT5tYXggPSAoaW50KSBuZXdfbWF4XzY0OworCXJldHVybiBj aGlsZDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXgg ZTkzMDNhZjYzODQuLjE0MTBiYTc1Mzk1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dApAQCAtMzc4NSw4ICszNzg1LDggQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCiAoNyByb3dzKQogCi0tLSBRdWFudGlmaWVyIE5PIG11 bHRpcGx5OiAoQXsyLDN9KXsyLDN9IHN0YXlzIGFzIChhezIsM30pezIsM30KLS0tIG91dGVyIHJh bmdlLCBjaGlsZCByYW5nZSAtIGdhcHMgcG9zc2libGUgKGUuZy4sIChBezQsNX0pezIsM30gbWlz c2VzIDExKQorLS0gUXVhbnRpZmllciBtdWx0aXBseTogKEF7MiwzfSl7MiwzfSAtPiBhezQsOX0K Ky0tIG91dGVyIHJhbmdlLCBjaGlsZCByYW5nZTogY291bnRzIFs0LDZdIFUgWzYsOV0gPSBbNCw5 XSBhcmUgY29udGlndW91cywgc28gaXQgZm9sZHMKIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVD VCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgogV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwpAQCAtMzc5 NSw3ICszNzk1LDI0IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgUGF0dGVybjogKGF7MiwzfSl7 MiwzfQorICAgUGF0dGVybjogYXs0LDl9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4g IFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCisoNyByb3dzKQorCistLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXs0LDV9KXsy LDN9IHN0YXlzIGFzIChhezQsNX0pezIsM30KKy0tIG91dGVyIHJhbmdlLCBjaGlsZCByYW5nZSB3 aXRoIGEgZ2FwOiBbOCwxMF0gVSBbMTIsMTVdIG1pc3NlcyAxMQorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7NCw1fSl7MiwzfSkgREVGSU5FIEEgQVMgdmFsID4g MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2lu ZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhezQsNX0pezIsM30K ICAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6 IGlkCkBAIC0zODUwLDYgKzM4NjcsMTI1IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgogKDcgcm93cykKIAorLS0gUXVhbnRpZmllciBtdWx0aXBs eSB3aXRoIGFuIHVuYm91bmRlZCBjaGlsZDogYW4gZXhhY3Qgb3V0ZXIgY291bnQgKG0gPT0gbikK Ky0tIGFsd2F5cyBmb2xkcyByZWdhcmRsZXNzIG9mIHRoZSBjaGlsZCdzIG1heCAtIChBKyl7M30g LT4gYXszLH0KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJP TSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBKyl7 M30pIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiBhezMsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAg ICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3 IHJvd3MpCisKKy0tIChBezIsfSl7M30gLT4gYXs2LH0gIChtID09IG4sIHVuYm91bmRlZCBjaGls ZCB3aXRoIG1pbiAyKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIg dyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAo KEF7Mix9KXszfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIFBhdHRlcm46IGF7Nix9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBT b3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgorKDcgcm93cykKKworLS0gKEErKXsyLDR9IC0+IGF7Mix9ICAob3V0ZXIgcmFuZ2UsIHVu Ym91bmRlZCBjaGlsZDogZXZlcnkgaW50ZXJ2YWwgcmVhY2hlcyBJTkYsCistLSBzbyB0aGV5IGFs d2F5cyB0b3VjaCkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChB Kyl7Miw0fSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46IGF7Mix9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0 CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgorKDcgcm93cykKKworLS0gKEF7MiwzfSl7Miw0fSAtPiBhezQsMTJ9ICAob3V0ZXIgcmFuZ2Ug eCBjaGlsZCByYW5nZSwgY29udGlndW91czoKKy0tIFs0LDZdIFUgWzYsOV0gVSBbOCwxMl0gPSBb NCwxMl0pCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQXsyLDN9 KXsyLDR9KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogYXs0LDEyfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0 CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgorKDcgcm93cykKKworLS0gU2tpcHBhYmxlIG91dGVyIChtaW4gMCkgZm9sZHMgb25seSB3aGVu IHRoZSB6ZXJvIGNhc2UgY29ubmVjdHMgdG8gdGhlIGNoaWxkCistLSByYW5nZTogKEF7MSwzfSk/ IC0+IGF7MCwzfSAgKGNoaWxkIG1pbiA8PSAxLCBzbyB7MH0gVSBbMSwzXSA9IFswLDNdIGlzIGNv bnRpZ3VvdXMpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZS T00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQXsx LDN9KT8pIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiBhezAsM30KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAor ICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K Kyg3IHJvd3MpCisKKy0tIFF1YW50aWZpZXIgTk8gbXVsdGlwbHk6IChBezIsM30pPyBzdGF5cyBh cyAoYXsyLDN9KT8KKy0tIG1pbiAwIHdpdGggY2hpbGQgbWluID49IDI6IHswfSBVIFsyLDNdIGxl YXZlcyAxIHVucmVhY2hhYmxlIChpbnRlcnZhbHMgdG91Y2ggYnV0CistLSB0aGUgemVybyBjYXNl IGRvZXMgbm90IGNvbm5lY3QpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRU RVJOICgoQXsyLDN9KT8pIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCisgICBQYXR0ZXJuOiAoYXsyLDN9KT8KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisg ICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFF1YW50aWZpZXIgTk8gbXVsdGlwbHk6IChBezMs NH0pPyBzdGF5cyBhcyAoYXszLDR9KT8KKy0tIG1pbiAwIHdpdGggY2hpbGQgbWluID49IDI6IHsw fSBVIFszLDRdIGxlYXZlcyAxLDIgdW5yZWFjaGFibGUKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICAgICAgIFBBVFRFUk4gKChBezMsNH0pPykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhezMsNH0pPworICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKwogLS0gVW53cmFwIEdST1VQezEs MX06IChBKSAtPiBhCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 IEZST00gcnByX3BsYW4KQEAgLTYzNTUsMTIgKzY0OTEsMTQgQEAgRVJST1I6ICB0b28gbWFueSBw YXR0ZXJuIHZhcmlhYmxlcwogREVUQUlMOiAgTWF4aW11bSBpcyAyNDAuCiAtLSBFeHBlY3RlZDog RVJST1IgLSB0b28gbWFueSBwYXR0ZXJuIHZhcmlhYmxlcyAoTWF4aW11bSBpcyAyNDApCiAtLSBU ZXN0OiBQYXR0ZXJuIG5lc3RpbmcgYXQgbWF4aW11bSBkZXB0aCAoZGVwdGggMjUzKQotLS0gTm90 ZTogMjUzIG5lc3RlZCBHUk9VUHszLDd9IHF1YW50aWZpZXJzIHByb2R1Y2UgZGVwdGggMjUzIGFm dGVyIG9wdGltaXphdGlvbgorLS0gTm90ZTogMjUzIG5lc3RlZCBHUk9VUHszLDd9PyBxdWFudGlm aWVyczsgcmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3QKKy0tIHN1YmplY3QgdG8gcXVhbnRp ZmllciBtdWx0aXBsaWNhdGlvbiwgc28gdGhlIG5lc3RpbmcgKGFuZCBkZXB0aCAyNTMpIGlzCist LSBwcmVzZXJ2ZWQgYWZ0ZXIgb3B0aW1pemF0aW9uLgogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCop IE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMKIFdJTkRPVyB3IEFTICgKICAgICBPUkRFUiBCWSBpZAog ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAg IFBBVFRFUk4gKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChBezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pCisgICAgUEFUVEVSTiAoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKEF7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7CiAgaWQgfCB2YWwg fCBjb3VudCAKQEAgLTYzNzEsMTIgKzY1MDksMTQgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBFeHBl Y3RlZDogU2hvdWxkIHN1Y2NlZWQKIC0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBkZXB0aCBleGNl ZWRzIG1heGltdW0gKGRlcHRoIDI1NCkKLS0tIE5vdGU6IDI1NCBuZXN0ZWQgR1JPVVB7Myw3fSBx dWFudGlmaWVycyBwcm9kdWNlIGRlcHRoIDI1NCBhZnRlciBvcHRpbWl6YXRpb24KKy0tIE5vdGU6 IDI1NCBuZXN0ZWQgR1JPVVB7Myw3fT8gcXVhbnRpZmllcnM7IHJlbHVjdGFudCBxdWFudGlmaWVy cyBhcmUgbm90CistLSBzdWJqZWN0IHRvIHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24sIHNvIHRo ZSBuZXN0aW5nIHJlYWNoZXMgZGVwdGggMjU0IGFuZAorLS0gZXhjZWVkcyB0aGUgbGltaXQuCiBT RUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycwogV0lORE9XIHcg QVMgKAogICAgIE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgUEFUVEVSTiAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KChBezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pCisgICAg UEFUVEVSTiAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChBezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pCiAg ICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKIEVSUk9SOiAgcGF0dGVybiBuZXN0aW5nIHRvbyBk ZWVwCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDliYTMw MmIxMWFlLi41Y2RkZDFhNTZkZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhw bGFpbi5vdXQKQEAgLTIxNzgsMTAgKzIxNzgsMTAgQEAgV0lORE9XIHcgQVMgKAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKLSAg IFBhdHRlcm46IChhPyl7MCwzfQorICAgUGF0dGVybjogYXswLDN9CiAgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgotICAgTkZB IFN0YXRlczogNiBwZWFrLCAyMCB0b3RhbCwgNCBtZXJnZWQKKyAgIE5GQSBTdGF0ZXM6IDMgcGVh aywgOCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA0IHRvdGFsLCAw IHBydW5lZAogICAgTkZBOiAzIG1hdGNoZWQgKGxlbiAwLzAvMC4wKSwgMCBtaXNtYXRjaGVkCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9My4w MCBsb29wcz0xKQpAQCAtMjIxNywxMCArMjIxNywxMCBAQCBXSU5ET1cgdyBBUyAoCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQot ICAgUGF0dGVybjogKGE/KXsxLDN9CisgICBQYXR0ZXJuOiBhezAsM30KICAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCi0gICBO RkEgU3RhdGVzOiA1IHBlYWssIDE2IHRvdGFsLCA0IG1lcmdlZAorICAgTkZBIFN0YXRlczogMyBw ZWFrLCA4IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDQgdG90YWws IDAgcHJ1bmVkCiAgICBORkE6IDMgbWF0Y2hlZCAobGVuIDAvMC8wLjApLCAwIG1pc21hdGNoZWQK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0z LjAwIGxvb3BzPTEpCkBAIC0yMjU2LDEwICsyMjU2LDEwIEBAIFdJTkRPVyB3IEFTICgKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9My4wMCBsb29wcz0xKQogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp Ci0gICBQYXR0ZXJuOiAoYT8pezIsM30KKyAgIFBhdHRlcm46IGF7MCwzfQogICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKLSAg IE5GQSBTdGF0ZXM6IDUgcGVhaywgMTYgdG90YWwsIDQgbWVyZ2VkCisgICBORkEgU3RhdGVzOiAz IHBlYWssIDggdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNCB0b3Rh bCwgMCBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4gMC8wLzAuMCksIDAgbWlzbWF0Y2hl ZAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTMuMDAgbG9vcHM9MSkKQEAgLTIyOTUsMTAgKzIyOTUsMTAgQEAgV0lORE9XIHcgQVMgKAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz00LjAwIGxvb3BzPTEpCiAgICBXaW5k b3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKLSAgIFBhdHRlcm46IChhPyl7MiwzfQorICAgUGF0dGVybjogYXswLDN9CiAgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgot ICAgTkZBIFN0YXRlczogOCBwZWFrLCAyNiB0b3RhbCwgNSBtZXJnZWQKKyAgIE5GQSBTdGF0ZXM6 IDYgcGVhaywgMTMgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNSB0 b3RhbCwgMSBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4gMC8yLzEuMCksIDAgbWlzbWF0 Y2hlZAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTQuMDAgbG9vcHM9MSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9i YXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRleCA0NzU1NDFk NDU1MC4uNTNiZjA5MGI5MDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9i YXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAgLTI1MTYs MTMgKzI1MTYsMjAgQEAgU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCiBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCiAgICAgICAgICAgICAgUEFUVEVSTiAoKEF7Mn0pezMsNX0pIERFRklORSBB IEFTIHZhbCA+IDApOwogCi0tLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyLDN9KXsyLDN9 IHN0YXlzIGFzIChhezIsM30pezIsM30KLS0tIG91dGVyIHJhbmdlLCBjaGlsZCByYW5nZSAtIGdh cHMgcG9zc2libGUgKGUuZy4sIChBezQsNX0pezIsM30gbWlzc2VzIDExKQorLS0gUXVhbnRpZmll ciBtdWx0aXBseTogKEF7MiwzfSl7MiwzfSAtPiBhezQsOX0KKy0tIG91dGVyIHJhbmdlLCBjaGls ZCByYW5nZTogY291bnRzIFs0LDZdIFUgWzYsOV0gPSBbNCw5XSBhcmUgY29udGlndW91cywgc28g aXQgZm9sZHMKIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJP TSBycHJfcGxhbgogV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAgICAgIFBBVFRFUk4gKChBezIs M30pezIsM30pIERFRklORSBBIEFTIHZhbCA+IDApOwogCistLSBRdWFudGlmaWVyIE5PIG11bHRp cGx5OiAoQXs0LDV9KXsyLDN9IHN0YXlzIGFzIChhezQsNX0pezIsM30KKy0tIG91dGVyIHJhbmdl LCBjaGlsZCByYW5nZSB3aXRoIGEgZ2FwOiBbOCwxMF0gVSBbMTIsMTVdIG1pc3NlcyAxMQorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7NCw1fSl7MiwzfSkgREVG SU5FIEEgQVMgdmFsID4gMCk7CisKIC0tIE5lc3RlZCB1bmJvdW5kZWQ6IChBKikqIC0+IGEqCiBF WFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4K QEAgLTI1NDEsNiArMjU0OCw1NSBAQCBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3Bs YW4KIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgICAgICBQQVRURVJOICgoQSspKykgREVGSU5F IEEgQVMgdmFsID4gMCk7CiAKKy0tIFF1YW50aWZpZXIgbXVsdGlwbHkgd2l0aCBhbiB1bmJvdW5k ZWQgY2hpbGQ6IGFuIGV4YWN0IG91dGVyIGNvdW50IChtID09IG4pCistLSBhbHdheXMgZm9sZHMg cmVnYXJkbGVzcyBvZiB0aGUgY2hpbGQncyBtYXggLSAoQSspezN9IC0+IGF7Myx9CitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSspezN9KSBERUZJTkUgQSBBUyB2 YWwgPiAwKTsKKworLS0gKEF7Mix9KXszfSAtPiBhezYsfSAgKG0gPT0gbiwgdW5ib3VuZGVkIGNo aWxkIHdpdGggbWluIDIpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJO ICgoQXsyLH0pezN9KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKworLS0gKEErKXsyLDR9IC0+IGF7 Mix9ICAob3V0ZXIgcmFuZ2UsIHVuYm91bmRlZCBjaGlsZDogZXZlcnkgaW50ZXJ2YWwgcmVhY2hl cyBJTkYsCistLSBzbyB0aGV5IGFsd2F5cyB0b3VjaCkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICAgICAgIFBBVFRFUk4gKChBKyl7Miw0fSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0t IChBezIsM30pezIsNH0gLT4gYXs0LDEyfSAgKG91dGVyIHJhbmdlIHggY2hpbGQgcmFuZ2UsIGNv bnRpZ3VvdXM6CistLSBbNCw2XSBVIFs2LDldIFUgWzgsMTJdID0gWzQsMTJdKQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7MiwzfSl7Miw0fSkgREVGSU5FIEEg QVMgdmFsID4gMCk7CisKKy0tIFNraXBwYWJsZSBvdXRlciAobWluIDApIGZvbGRzIG9ubHkgd2hl biB0aGUgemVybyBjYXNlIGNvbm5lY3RzIHRvIHRoZSBjaGlsZAorLS0gcmFuZ2U6IChBezEsM30p PyAtPiBhezAsM30gIChjaGlsZCBtaW4gPD0gMSwgc28gezB9IFUgWzEsM10gPSBbMCwzXSBpcyBj b250aWd1b3VzKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7 MSwzfSk/KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKworLS0gUXVhbnRpZmllciBOTyBtdWx0aXBs eTogKEF7MiwzfSk/IHN0YXlzIGFzIChhezIsM30pPworLS0gbWluIDAgd2l0aCBjaGlsZCBtaW4g Pj0gMjogezB9IFUgWzIsM10gbGVhdmVzIDEgdW5yZWFjaGFibGUgKGludGVydmFscyB0b3VjaCBi dXQKKy0tIHRoZSB6ZXJvIGNhc2UgZG9lcyBub3QgY29ubmVjdCkKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICAgICAgIFBBVFRFUk4gKChBezIsM30pPykgREVGSU5FIEEgQVMgdmFsID4gMCk7 CisKKy0tIFF1YW50aWZpZXIgTk8gbXVsdGlwbHk6IChBezMsNH0pPyBzdGF5cyBhcyAoYXszLDR9 KT8KKy0tIG1pbiAwIHdpdGggY2hpbGQgbWluID49IDI6IHswfSBVIFszLDRdIGxlYXZlcyAxLDIg dW5yZWFjaGFibGUKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChB ezMsNH0pPykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKIC0tIFVud3JhcCBHUk9VUHsxLDF9OiAo QSkgLT4gYQogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9N IHJwcl9wbGFuCkBAIC00MDE3LDIzICs0MDczLDI3IEBAIFdJTkRPVyB3IEFTICgKIC0tIEV4cGVj dGVkOiBFUlJPUiAtIHRvbyBtYW55IHBhdHRlcm4gdmFyaWFibGVzIChNYXhpbXVtIGlzIDI0MCkK IAogLS0gVGVzdDogUGF0dGVybiBuZXN0aW5nIGF0IG1heGltdW0gZGVwdGggKGRlcHRoIDI1MykK LS0tIE5vdGU6IDI1MyBuZXN0ZWQgR1JPVVB7Myw3fSBxdWFudGlmaWVycyBwcm9kdWNlIGRlcHRo IDI1MyBhZnRlciBvcHRpbWl6YXRpb24KKy0tIE5vdGU6IDI1MyBuZXN0ZWQgR1JPVVB7Myw3fT8g cXVhbnRpZmllcnM7IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90CistLSBzdWJqZWN0IHRv IHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24sIHNvIHRoZSBuZXN0aW5nIChhbmQgZGVwdGggMjUz KSBpcworLS0gcHJlc2VydmVkIGFmdGVyIG9wdGltaXphdGlvbi4KIFNFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyb3JzCiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIg QlkgaWQKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKLSAgICBQQVRURVJOICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoQXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KQorICAgIFBBVFRFUk4gKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKChBezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9PykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwogLS0g RXhwZWN0ZWQ6IFNob3VsZCBzdWNjZWVkCiAKIC0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBkZXB0 aCBleGNlZWRzIG1heGltdW0gKGRlcHRoIDI1NCkKLS0tIE5vdGU6IDI1NCBuZXN0ZWQgR1JPVVB7 Myw3fSBxdWFudGlmaWVycyBwcm9kdWNlIGRlcHRoIDI1NCBhZnRlciBvcHRpbWl6YXRpb24KKy0t IE5vdGU6IDI1NCBuZXN0ZWQgR1JPVVB7Myw3fT8gcXVhbnRpZmllcnM7IHJlbHVjdGFudCBxdWFu dGlmaWVycyBhcmUgbm90CistLSBzdWJqZWN0IHRvIHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24s IHNvIHRoZSBuZXN0aW5nIHJlYWNoZXMgZGVwdGggMjU0IGFuZAorLS0gZXhjZWVkcyB0aGUgbGlt aXQuCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycwogV0lO RE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgUEFUVEVSTiAoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKChBezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p CisgICAgUEFUVEVSTiAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChBezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKIC0tIEV4cGVjdGVkOiBFUlJPUiAtIHBh dHRlcm4gbmVzdGluZyB0b28gZGVlcAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0044-Tidy-up-row-pattern-recognition-pattern-compilati.txt" Content-Disposition: attachment; filename="nocfbot-0044-Tidy-up-row-pattern-recognition-pattern-compilati.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jse43 RnJvbSAxZTlkNjZlOTYxYmFlMWUzODg0YmU3Yzg0NGM3ZmFiYTI1MmM0YmVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDQgSnVuIDIwMjYgMjA6Mjg6NTEgKzA5MDAKU3ViamVjdDogW1BBVENIIDQ0LzY4XSBU aWR5IHVwIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdHRlcm4gY29tcGlsYXRpb24KCk1hcmsg dGhlIHVucmVhY2hhYmxlIHRhaWxzIG9mIHRoZSB0aHJlZSBub2RlLXR5cGUgc3dpdGNoZXMKKHJw clBhdHRlcm5FcXVhbCwgb3B0aW1pemVSUFJQYXR0ZXJuLCBmaWxsUlBSUGF0dGVybikgd2l0aApw Z191bnJlYWNoYWJsZSgpIGluc3RlYWQgb2YgYSAia2VlcCBjb21waWxlciBxdWlldCIgcmV0dXJu LgpSUFJQYXR0ZXJuTm9kZVR5cGUgaGFzIG9ubHkgZm91ciBtZW1iZXJzIGFuZCBlYWNoIHN3aXRj aCBoYW5kbGVzCmFsbCBvZiB0aGVtLCBzbyB0aGUgdHJhaWxpbmcgcmV0dXJuIGNhbiBuZXZlciBi ZSByZWFjaGVkLgoKSW4gYnVpbGRSUFJQYXR0ZXJuKCksIHRoZSBhYnNvcnB0aW9uLWVsaWdpYmls aXR5IHRlc3QgZ3VhcmRlZAphZ2FpbnN0IGEgUk9XUyBmcmFtZSByZWR1bmRhbnRseTogUlBSIGlz IFJPV1Mtb25seSBiZWNhdXNlCnRyYW5zZm9ybVJQUigpIHJlamVjdHMgUkFOR0UgYW5kIEdST1VQ UyB1cCBmcm9udCwgc28gdGhlCkZSQU1FT1BUSU9OX1JPV1MgdGVybSB3YXMgYWx3YXlzIHRydWUu ICBEcm9wIHRoZSBoYXNMaW1pdGVkRnJhbWUKdmFyaWFibGUsIGFzc2VydCB0aGUgUk9XUy1vbmx5 IGludmFyaWFudCBpbnN0ZWFkLCBhbmQgdGVzdApGUkFNRU9QVElPTl9FTkRfVU5CT1VOREVEX0ZP TExPV0lORyBkaXJlY3RseS4KCk5vIGJlaGF2aW9yIGNoYW5nZS4KClBhdGNoIGJ5IEppYW4gSGUs IHdpdGggbWlub3IgYWRqdXN0bWVudHMuCi0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cnByLmMgfCAxOCArKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKaW5kZXggNjE3 YTM4Njk5NDguLjMyMDU1NTljMDNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtMTMy LDcgKzEzMiw4IEBAIHJwclBhdHRlcm5FcXVhbChSUFJQYXR0ZXJuTm9kZSAqYSwgUlBSUGF0dGVy bk5vZGUgKmIpCiAJCQlyZXR1cm4gcnByUGF0dGVybkNoaWxkcmVuRXF1YWwoYS0+Y2hpbGRyZW4s IGItPmNoaWxkcmVuKTsKIAl9CiAKLQlyZXR1cm4gZmFsc2U7CQkJCS8qIGtlZXAgY29tcGlsZXIg cXVpZXQgKi8KKwlwZ191bnJlYWNoYWJsZSgpOworCXJldHVybiBmYWxzZTsKIH0KIAogLyoKQEAg LTk5Myw3ICs5OTQsOCBAQCBvcHRpbWl6ZVJQUlBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRl cm4pCiAJCQlyZXR1cm4gb3B0aW1pemVHcm91cFBhdHRlcm4ocGF0dGVybik7CiAJfQogCi0JcmV0 dXJuIHBhdHRlcm47CQkJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwlwZ191bnJlYWNoYWJs ZSgpOworCXJldHVybiBwYXR0ZXJuOwogfQogCiAvKgpAQCAtMTQ1MCw3ICsxNDUyLDggQEAgZmls bFJQUlBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKm5vZGUsIFJQUlBhdHRlcm4gKnBhdCwgaW50ICpp ZHgsIFJQUkRlcHRoIGRlcHRoKQogCQkJcmV0dXJuIGZpbGxSUFJQYXR0ZXJuQWx0KG5vZGUsIHBh dCwgaWR4LCBkZXB0aCk7CiAJfQogCi0JcmV0dXJuIGZhbHNlOwkJCQkvKiB1bnJlYWNoYWJsZSAq LworCXBnX3VucmVhY2hhYmxlKCk7CisJcmV0dXJuIGZhbHNlOwogfQogCiAvKgpAQCAtMTk1NSwx MCArMTk1OCwxMSBAQCBidWlsZFJQUlBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4sIExp c3QgKmRlZmluZVZhcmlhYmxlTGlzdCwKIAlpbnQJCQludW1FbGVtZW50czsKIAlSUFJEZXB0aAlt YXhEZXB0aDsKIAlpbnQJCQlpZHg7Ci0JYm9vbAkJaGFzTGltaXRlZEZyYW1lOwogCiAJLyogQ2Fs bGVyIG11c3QgY2hlY2sgZm9yIE5VTEwgcGF0dGVybiBiZWZvcmUgY2FsbGluZyAqLwogCUFzc2Vy dChwYXR0ZXJuICE9IE5VTEwpOworCS8qIFJQUiBpcyBST1dTLW9ubHk6IHRyYW5zZm9ybVJQUigp IHJlamVjdHMgUkFOR0UvR1JPVVBTIHVwIGZyb250ICovCisJQXNzZXJ0KGZyYW1lT3B0aW9ucyAm IEZSQU1FT1BUSU9OX1JPV1MpOwogCiAJLyogT3B0aW1pemUgdGhlIHBhdHRlcm4gdHJlZSAqLwog CW9wdGltaXplZCA9IG9wdGltaXplUlBSUGF0dGVybihjb3B5T2JqZWN0KHBhdHRlcm4pKTsKQEAg LTE5OTcsMTAgKzIwMDEsOCBAQCBidWlsZFJQUlBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRl cm4sIExpc3QgKmRlZmluZVZhcmlhYmxlTGlzdCwKIAkgKiBhYnNvcnB0aW9uIHNlbWFudGljcyAt IG9sZGVyIGNvbnRleHRzIGRvbid0IG5lY2Vzc2FyaWx5IHByb2R1Y2UgbG9uZ2VyCiAJICogbWF0 Y2hlcyB3aGVuIGZyYW1lIGxpbWl0cyBhcHBseSBkaWZmZXJlbnRseSB0byBlYWNoIGNvbnRleHQu CiAJICovCi0JaGFzTGltaXRlZEZyYW1lID0gKGZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1JP V1MpICYmCi0JCSEoZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05fRU5EX1VOQk9VTkRFRF9GT0xM T1dJTkcpOwotCi0JaWYgKHJwU2tpcFRvID09IFNUX1BBU1RfTEFTVF9ST1cgJiYgIWhhc0xpbWl0 ZWRGcmFtZSAmJgorCWlmIChycFNraXBUbyA9PSBTVF9QQVNUX0xBU1RfUk9XICYmCisJCShmcmFt ZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FTkRfVU5CT1VOREVEX0ZPTExPV0lORykgJiYKIAkJIWhh c01hdGNoU3RhcnREZXBlbmRlbnQpCiAJewogCQkvKiBSdW50aW1lIGNvbmRpdGlvbnMgbWV0IC0g Y2hlY2sgc3RydWN0dXJhbCBhYnNvcmJhYmlsaXR5ICovCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0x NTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0045-Drop-redundant-parentheses-from-row-pattern-recog.txt" Content-Disposition: attachment; filename="nocfbot-0045-Drop-redundant-parentheses-from-row-pattern-recog.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsg44 RnJvbSA0Mjc5MTZlMzMxY2Q5N2M2ZWU2OGUzZTA5YjNlZTFjY2ZjYjE0Y2IzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTE6Mjk6MzMgKzA5MDAKU3ViamVjdDogW1BBVENIIDQ1LzY4XSBE cm9wIHJlZHVuZGFudCBwYXJlbnRoZXNlcyBmcm9tIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiBl cmVwb3J0cwoKVGhlIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIGFkZGVkIGEgbnVtYmVy IG9mIGVyZXBvcnQoKSBjYWxscwp0aGF0IHN0aWxsIHdyYXAgdGhlaXIgYXV4aWxpYXJ5IGZ1bmN0 aW9ucyBpbiB0aGUgb3B0aW9uYWwgb3V0ZXIKcGFyZW50aGVzZXMuICBUaGUgbmV3ZXIgc3R5bGUg b21pdHMgdGhlbSwgYW5kIG1vc3Qgb2YgdGhlIHBhdGNoIC0tCmFsbCBvZiBwYXJzZV9ycHIuYywg Zm9yIG9uZSAtLSBhbHJlYWR5IGRvZXMuCgpDb252ZXJ0IHRoZSByZW1haW5pbmcgY2FsbHMgdG8g dGhlIHBhcmVudGhlc2lzLWZyZWUgc3R5bGUgc28gdGhlCmZlYXR1cmUgaXMgaW50ZXJuYWxseSBj b25zaXN0ZW50OiB0aGUgREVGSU5FLWNsYXVzZSBjaGVja3MgaW4KUGFyc2VGdW5jT3JDb2x1bW4o KSBhbmQgdHJhbnNmb3JtQ29sdW1uUmVmKCksIHRoZSBuYXZpZ2F0aW9uIG9mZnNldApjaGVja3Mg aW4gZXhlY0V4cHJJbnRlcnAuYywgYW5kIHRoZSBuYXZpZ2F0aW9uIHBsYWNlaG9sZGVyIHdpbmRv dwpmdW5jdGlvbnMgaW4gd2luZG93ZnVuY3MuYy4gIFByZS1leGlzdGluZyBjb3JlIGVyZXBvcnQo KSBjYWxscyBhcmUKbGVmdCB1bnRvdWNoZWQuCgpObyBiZWhhdmlvciBjaGFuZ2UuCi0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDE2ICsrKysrKystLS0tLS0tCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgIHwgMTYgKysrKysrKy0tLS0tLS0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgfCAgOCArKystLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyAgIHwgMzIgKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDMyNGI5YTk2MmE4 Li44MDVjODU4M2ZiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC02 MDI2LDE1ICs2MDI2LDE1IEBAIHJwcl9uYXZfZ2V0X2NvbXBvdW5kX29mZnNldChFeHByRXZhbFN0 ZXAgKm9wKQogCiAJaWYgKG9wLT5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbFsxXSkKIAkJZXJlcG9y dChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAot CQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51 bGwiKSkpOworCQkJCWVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJ CQllcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwi KSk7CiAKIAl2YWwgPSBEYXR1bUdldEludDY0KG9wLT5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVlWzFd KTsKIAogCWlmICh2YWwgPCAwKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5h dmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsKKwkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCWVycm1zZygicm93IHBhdHRlcm4g bmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSk7CiAKIAlyZXR1cm4gdmFs OwogfQpAQCAtNjA3MSwxNSArNjA3MSwxNSBAQCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUg KnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiAJewogCQlp ZiAoKm9wLT5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCkKIAkJCWVyZXBvcnQoRVJST1IsCi0JCQkJ CShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCi0JCQkJCSBlcnJtc2co InJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwiKSkpOworCQkJ CQllcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJCWVycm1zZygi cm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbCIpKTsKIAogCQlv ZmZzZXQgPSBEYXR1bUdldEludDY0KCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSk7CiAKIAkJ aWYgKG9mZnNldCA8IDApCiAJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gbmF2 aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSkpOworCQkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJtc2coInJvdyBwYXR0ZXJu IG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpOwogCX0KIAllbHNlCiAJ ewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNzhhYmRjODhmODYuLjIzNDRhYWVmOWFlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTY2NiwxNyArNjY2LDE3IEBAIHRyYW5zZm9ybUNv bHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAogCQlpZiAoaXNf cGF0dGVybl92YXIpCiAJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coInBhdHRlcm4gdmFyaWFibGUgcXVh bGlmaWVkIGV4cHJlc3Npb24gXCIlc1wiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVz ZSIsCi0JCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKLQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkJCQllcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJwYXR0ZXJuIHZhcmlh YmxlIHF1YWxpZmllZCBleHByZXNzaW9uIFwiJXNcIiBpcyBub3Qgc3VwcG9ydGVkIGluIERFRklO RSBjbGF1c2UiLAorCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKTsKIAkJZWxzZSBp ZiAocmVmbmFtZU5hbWVzcGFjZUl0ZW0ocHN0YXRlLCBOVUxMLCBxdWFsaWZpZXIsCiAJCQkJCQkJ CQkgIGNyZWYtPmxvY2F0aW9uLCBOVUxMKSAhPSBOVUxMKQogCQkJZXJlcG9ydChFUlJPUiwKLQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkgZXJybXNnKCJyYW5nZSB2 YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiBcIiVzXCIgaXMgbm90IGFsbG93ZWQgaW4gREVG SU5FIGNsYXVzZSIsCi0JCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKLQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkJCQll cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJybXNnKCJyYW5nZSB2YXJpYWJs ZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiBcIiVzXCIgaXMgbm90IGFsbG93ZWQgaW4gREVGSU5FIGNs YXVzZSIsCisJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQlw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpOwogCQkvKiBlbHNlOiB1 bmtub3duIHF1YWxpZmllciAtLSBmYWxsIHRocm91Z2ggdG8gbm9ybWFsIHJlc29sdXRpb24gKi8K IAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDQ5NjQ2YjcyOGM2Li44Y2FlOWJhNTJi NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC03ODksMTAgKzc4OSwxMCBAQCBQYXJzZUZ1 bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJn cywKIAogCQkvKiBOb3QgYSBjb2x1bW4gcHJvamVjdGlvbiAtLSByZXBvcnQgZXJyb3IgKi8KIAkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJ IGVycm1zZygiY2Fubm90IHVzZSAlcyBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIsCi0JCQkJCQlO YW1lTGlzdFRvU3RyaW5nKGZ1bmNuYW1lKSksCi0JCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSkpOworCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJ CWVycm1zZygiY2Fubm90IHVzZSAlcyBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIsCisJCQkJCSAg IE5hbWVMaXN0VG9TdHJpbmcoZnVuY25hbWUpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBsb2NhdGlvbikpOwogCX0KIAogCS8qIGJ1aWxkIHRoZSBhcHByb3ByaWF0ZSBvdXRwdXQg c3RydWN0dXJlICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jCmluZGV4IDQ2ZTdhMDNh NjY2Li4zODY5ZjZjODk5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRv d2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKQEAgLTcz OSw4ICs3MzksOCBAQCBEYXR1bQogd2luZG93X3ByZXYoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAll cmVwb3J0KEVSUk9SLAotCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAotCQkJIGVycm1zZygiY2Fubm90IHVzZSBQUkVWKCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2Ui KSkpOworCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQllcnJt c2coImNhbm5vdCB1c2UgUFJFVigpIG91dHNpZGUgYSBERUZJTkUgY2xhdXNlIikpOwogCVBHX1JF VFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtNzUzLDggKzc1Myw4IEBA IERhdHVtCiB3aW5kb3dfbmV4dChQR19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1Is Ci0JCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNn KCJjYW5ub3QgdXNlIE5FWFQoKSBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQllcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygiY2Fubm90IHVz ZSBORVhUKCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2UiKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCkBAIC03NjcsOCArNzY3LDggQEAgRGF0dW0KIHdpbmRv d19wcmV2X29mZnNldChQR19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCi0JCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJjYW5u b3QgdXNlIFBSRVYoKSBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQllcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygiY2Fubm90IHVzZSBQUkVW KCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2UiKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBu b3QgcmVhY2hlZCAqLwogfQogCkBAIC03ODEsOCArNzgxLDggQEAgRGF0dW0KIHdpbmRvd19uZXh0 X29mZnNldChQR19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCi0JCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJjYW5ub3QgdXNl IE5FWFQoKSBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQllcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygiY2Fubm90IHVzZSBORVhUKCkgb3V0 c2lkZSBhIERFRklORSBjbGF1c2UiKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVh Y2hlZCAqLwogfQogCkBAIC03OTUsOCArNzk1LDggQEAgRGF0dW0KIHdpbmRvd19maXJzdChQR19G VU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCi0JCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJjYW5ub3QgdXNlIEZJUlNUKCkgb3V0 c2lkZSBhIERFRklORSBjbGF1c2UiKSkpOworCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQllcnJtc2coImNhbm5vdCB1c2UgRklSU1QoKSBvdXRzaWRlIGEgREVG SU5FIGNsYXVzZSIpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9 CiAKQEAgLTgwOSw4ICs4MDksOCBAQCBEYXR1bQogd2luZG93X2xhc3QoUEdfRlVOQ1RJT05fQVJH UykKIHsKIAllcmVwb3J0KEVSUk9SLAotCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAotCQkJIGVycm1zZygiY2Fubm90IHVzZSBMQVNUKCkgb3V0c2lkZSBhIERFRklO RSBjbGF1c2UiKSkpOworCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQllcnJtc2coImNhbm5vdCB1c2UgTEFTVCgpIG91dHNpZGUgYSBERUZJTkUgY2xhdXNlIikp OwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODIzLDgg KzgyMyw4IEBAIERhdHVtCiB3aW5kb3dfZmlyc3Rfb2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCiB7 CiAJZXJlcG9ydChFUlJPUiwKLQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKLQkJCSBlcnJtc2coImNhbm5vdCB1c2UgRklSU1QoKSBvdXRzaWRlIGEgREVGSU5FIGNs YXVzZSIpKSk7CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CWVycm1zZygiY2Fubm90IHVzZSBGSVJTVCgpIG91dHNpZGUgYSBERUZJTkUgY2xhdXNlIikpOwog CVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODM3LDcgKzgz Nyw3IEBAIERhdHVtCiB3aW5kb3dfbGFzdF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAll cmVwb3J0KEVSUk9SLAotCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAotCQkJIGVycm1zZygiY2Fubm90IHVzZSBMQVNUKCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2Ui KSkpOworCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQllcnJt c2coImNhbm5vdCB1c2UgTEFTVCgpIG91dHNpZGUgYSBERUZJTkUgY2xhdXNlIikpOwogCVBHX1JF VFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0 LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0046-Tidy-up-forward-declarations-and-helper-placement.txt" Content-Disposition: attachment; filename="nocfbot-0046-Tidy-up-forward-declarations-and-helper-placement.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsi45 RnJvbSAxNzhmZTk5NzliMWE1YzE4ZTA2YWY2N2E2OTZlMTJmMGVlOWRhMTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTI6MzI6MzggKzA5MDAKU3ViamVjdDogW1BBVENIIDQ2LzY4XSBU aWR5IHVwIGZvcndhcmQgZGVjbGFyYXRpb25zIGFuZCBoZWxwZXIgcGxhY2VtZW50IGZvcgogcm93 IHBhdHRlcm4gcmVjb2duaXRpb24KCkJyaW5nIHRoZSByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBj b2RlIGluIGxpbmUgd2l0aCB0aGUgc3Vycm91bmRpbmcKY29udmVudGlvbnMgZm9yIHN0YXRpYyBo ZWxwZXJzOgoKLSBlYWNoIHN0YXRpYyBoZWxwZXIgaGFzIGEgZm9yd2FyZCBkZWNsYXJhdGlvbjsK LSBzdGF0aWMgaGVscGVycyBhcmUgZGVmaW5lZCBhYm92ZSB0aGUgIkFQSSBleHBvc2VkIiBiYW5u ZXIsIHB1YmxpYwogIGVudHJ5IHBvaW50cyBiZWxvdzsKLSB0aGUgZm9yd2FyZC1kZWNsYXJhdGlv biBibG9jayB1c2VzIGEgc2luZ2xlIGJhbm5lciwgbm90IHBlci1ncm91cAogIGxhYmVsczsKLSBm b3J3YXJkIGRlY2xhcmF0aW9ucyBmb2xsb3cgZGVmaW5pdGlvbiBvcmRlci4KClB1cmUgY29kZSBt b3ZlbWVudCBhbmQgY29tbWVudHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KClBlciByZXZpZXcgY29t bWVudHMgZnJvbSBUYXRzdW8gSXNoaWkgYW5kIEppYW4gSGUuCi0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jICAgICAgIHwgMTEwICsrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuYyB8IDQ1NCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3Jwci5jICAgICAgIHwgICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDI4OSBpbnNl cnRpb25zKCspLCAyODkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IDU4 MGIyNWYzOThkLi41NjM5OWMwYzdmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtODMsOCAr ODMsNiBAQCBzdGF0aWMgYm9vbCBuZmFfZXZhbF92YXJfbWF0Y2goV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLAogCQkJCQkJCSAgIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLCBib29sICp2YXJNYXRj aGVkKTsKIHN0YXRpYyB2b2lkIG5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQUNvbnRleHQgKmN0eCwKIAkJCQkJICBib29sICp2YXJNYXRjaGVkKTsKLXN0YXRpYyB2b2lk IG5mYV9hZHZhbmNlX3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4 dCAqY3R4LAotCQkJCQkJCSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zKTsK IHN0YXRpYyB2b2lkIG5mYV9yb3V0ZV90b19lbGVtKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJCSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0 ZXJuRWxlbWVudCAqbmV4dEVsZW0sCiAJCQkJCQkJICBpbnQ2NCBjdXJyZW50UG9zKTsKQEAgLTEw MCw5ICs5OCwxNSBAQCBzdGF0aWMgdm9pZCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiBzdGF0aWMgdm9pZCBuZmFfYWR2YW5jZV92 YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJCQkJ UlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKIAkJCQkJCQlpbnQ2 NCBjdXJyZW50UG9zKTsKK3N0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX3N0YXRlKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCQkJCSAgUlBSTkZBU3RhdGUg KnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zKTsKIHN0YXRpYyB2b2lkIG5mYV9hZHZhbmNlKFdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJaW50NjQgY3Vy cmVudFBvcyk7CiAKK3N0YXRpYyB2b2lkIG5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKKwkJCQkJCQkJCQkgIFJQUk5GQUNvbnRleHQgKmN0eCwK KwkJCQkJCQkJCQkgIGludDY0IGN1cnJlbnRQb3MpOworCiAvKgogICogTkZBLWJhc2VkIHBhdHRl cm4gbWF0Y2hpbmcgaW1wbGVtZW50YXRpb24KICAqCkBAIC0xNTUyLDYgKzE1NTYsNTcgQEAgbmZh X2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIGlu dDY0IGN1cnJlbnRQb3MpCiAJfQogfQogCisvKgorICogbmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50 X3ZhcnMKKyAqCQlSZS1ldmFsdWF0ZSBtYXRjaF9zdGFydC1kZXBlbmRlbnQgREVGSU5FIHZhcmlh YmxlcyBmb3IgYSBzcGVjaWZpYworICoJCWNvbnRleHQgd2hvc2UgbWF0Y2hTdGFydFJvdyBkaWZm ZXJzIGZyb20gdGhlIHNoYXJlZCBldmFsdWF0aW9uJ3MKKyAqCQluYXZfbWF0Y2hfc3RhcnQuCisg KgorICogT25seSB2YXJpYWJsZXMgaW4gZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCBhcmUgcmUt ZXZhbHVhdGVkLiAgVGhlCisgKiBjdXJyZW50IHJvdydzIHNsb3QgKGVjeHRfb3V0ZXJ0dXBsZSkg bXVzdCBhbHJlYWR5IGJlIHNldCB1cCBieQorICogbmZhX2V2YWx1YXRlX3JvdygpLgorICovCitz dGF0aWMgdm9pZAorbmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJCQkJICBpbnQ2NCBjdXJyZW50UG9z KQoreworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29u dGV4dDsKKwlpbnQ2NAkJc2F2ZWRfbWF0Y2hfc3RhcnQgPSB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0 YXJ0OworCWludDY0CQlzYXZlZF9wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsKKwlpbnQJCQl2 YXJJZHggPSAwOworCUxpc3RDZWxsICAgKmxjOworCisJLyogVGVtcG9yYXJpbHkgc2V0IG5hdl9t YXRjaF9zdGFydCBhbmQgY3VycmVudHBvcyBmb3IgRklSU1QvTEFTVCAqLworCXdpbnN0YXRlLT5u YXZfbWF0Y2hfc3RhcnQgPSBjdHgtPm1hdGNoU3RhcnRSb3c7CisJd2luc3RhdGUtPmN1cnJlbnRw b3MgPSBjdXJyZW50UG9zOworCisJLyogSW52YWxpZGF0ZSBuYXZfc2xvdCBjYWNoZSBzaW5jZSBt YXRjaF9zdGFydCBjaGFuZ2VkICovCisJd2luc3RhdGUtPm5hdl9zbG90X3BvcyA9IC0xOworCisJ Zm9yZWFjaChsYywgd2luc3RhdGUtPmRlZmluZUNsYXVzZUxpc3QpCisJeworCQlpZiAoYm1zX2lz X21lbWJlcih2YXJJZHgsIHdpbnN0YXRlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50KSkKKwkJ eworCQkJRXhwclN0YXRlICAqZXhwclN0YXRlID0gKEV4cHJTdGF0ZSAqKSBsZmlyc3QobGMpOwor CQkJRGF0dW0JCXJlc3VsdDsKKwkJCWJvb2wJCWlzbnVsbDsKKworCQkJLyogUGVyLXR1cGxlIGNv bnRleHQ7IHNjcmF0Y2ggZnJlZWQgYnkgdGhlIHBlci1yb3cgcmVzZXQgKi8KKwkJCXJlc3VsdCA9 IEV4ZWNFdmFsRXhwclN3aXRjaENvbnRleHQoZXhwclN0YXRlLCBlY29udGV4dCwgJmlzbnVsbCk7 CisJCQl3aW5zdGF0ZS0+bmZhVmFyTWF0Y2hlZFt2YXJJZHhdID0gKCFpc251bGwgJiYgRGF0dW1H ZXRCb29sKHJlc3VsdCkpOworCQl9CisKKwkJdmFySWR4Kys7CisJCWlmICh2YXJJZHggPj0gbGlz dF9sZW5ndGgod2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCkpCisJCQlicmVhazsKKwl9CisK KwkvKiBSZXN0b3JlIG9yaWdpbmFsIG1hdGNoX3N0YXJ0LCBjdXJyZW50cG9zLCBhbmQgaW52YWxp ZGF0ZSBjYWNoZSAqLworCXdpbnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQgPSBzYXZlZF9tYXRjaF9z dGFydDsKKwl3aW5zdGF0ZS0+Y3VycmVudHBvcyA9IHNhdmVkX3BvczsKKwl3aW5zdGF0ZS0+bmF2 X3Nsb3RfcG9zID0gLTE7Cit9CisKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBBUEkgZXhwb3NlZCB0 byBub2RlV2luZG93QWdnLmMKQEAgLTE2OTYsNTcgKzE3NTEsNiBAQCBFeGVjUlBSUmVjb3JkQ29u dGV4dEZhaWx1cmUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBmYWlsZWRMZW4pCiAJ fQogfQogCi0vKgotICogbmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMKLSAqCQlSZS1ldmFs dWF0ZSBtYXRjaF9zdGFydC1kZXBlbmRlbnQgREVGSU5FIHZhcmlhYmxlcyBmb3IgYSBzcGVjaWZp YwotICoJCWNvbnRleHQgd2hvc2UgbWF0Y2hTdGFydFJvdyBkaWZmZXJzIGZyb20gdGhlIHNoYXJl ZCBldmFsdWF0aW9uJ3MKLSAqCQluYXZfbWF0Y2hfc3RhcnQuCi0gKgotICogT25seSB2YXJpYWJs ZXMgaW4gZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCBhcmUgcmUtZXZhbHVhdGVkLiAgVGhlCi0g KiBjdXJyZW50IHJvdydzIHNsb3QgKGVjeHRfb3V0ZXJ0dXBsZSkgbXVzdCBhbHJlYWR5IGJlIHNl dCB1cCBieQotICogbmZhX2V2YWx1YXRlX3JvdygpLgotICovCi1zdGF0aWMgdm9pZAotbmZhX3Jl ZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgsCi0JCQkJCQkJICBpbnQ2NCBjdXJyZW50UG9zKQotewotCUV4cHJDb250ZXh0 ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29udGV4dDsKLQlpbnQ2NAkJc2F2 ZWRfbWF0Y2hfc3RhcnQgPSB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0OwotCWludDY0CQlzYXZl ZF9wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsKLQlpbnQJCQl2YXJJZHggPSAwOwotCUxpc3RD ZWxsICAgKmxjOwotCi0JLyogVGVtcG9yYXJpbHkgc2V0IG5hdl9tYXRjaF9zdGFydCBhbmQgY3Vy cmVudHBvcyBmb3IgRklSU1QvTEFTVCAqLwotCXdpbnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQgPSBj dHgtPm1hdGNoU3RhcnRSb3c7Ci0Jd2luc3RhdGUtPmN1cnJlbnRwb3MgPSBjdXJyZW50UG9zOwot Ci0JLyogSW52YWxpZGF0ZSBuYXZfc2xvdCBjYWNoZSBzaW5jZSBtYXRjaF9zdGFydCBjaGFuZ2Vk ICovCi0Jd2luc3RhdGUtPm5hdl9zbG90X3BvcyA9IC0xOwotCi0JZm9yZWFjaChsYywgd2luc3Rh dGUtPmRlZmluZUNsYXVzZUxpc3QpCi0JewotCQlpZiAoYm1zX2lzX21lbWJlcih2YXJJZHgsIHdp bnN0YXRlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50KSkKLQkJewotCQkJRXhwclN0YXRlICAq ZXhwclN0YXRlID0gKEV4cHJTdGF0ZSAqKSBsZmlyc3QobGMpOwotCQkJRGF0dW0JCXJlc3VsdDsK LQkJCWJvb2wJCWlzbnVsbDsKLQotCQkJLyogUGVyLXR1cGxlIGNvbnRleHQ7IHNjcmF0Y2ggZnJl ZWQgYnkgdGhlIHBlci1yb3cgcmVzZXQgKi8KLQkJCXJlc3VsdCA9IEV4ZWNFdmFsRXhwclN3aXRj aENvbnRleHQoZXhwclN0YXRlLCBlY29udGV4dCwgJmlzbnVsbCk7Ci0JCQl3aW5zdGF0ZS0+bmZh VmFyTWF0Y2hlZFt2YXJJZHhdID0gKCFpc251bGwgJiYgRGF0dW1HZXRCb29sKHJlc3VsdCkpOwot CQl9Ci0KLQkJdmFySWR4Kys7Ci0JCWlmICh2YXJJZHggPj0gbGlzdF9sZW5ndGgod2luc3RhdGUt PmRlZmluZVZhcmlhYmxlTGlzdCkpCi0JCQlicmVhazsKLQl9Ci0KLQkvKiBSZXN0b3JlIG9yaWdp bmFsIG1hdGNoX3N0YXJ0LCBjdXJyZW50cG9zLCBhbmQgaW52YWxpZGF0ZSBjYWNoZSAqLwotCXdp bnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQgPSBzYXZlZF9tYXRjaF9zdGFydDsKLQl3aW5zdGF0ZS0+ Y3VycmVudHBvcyA9IHNhdmVkX3BvczsKLQl3aW5zdGF0ZS0+bmF2X3Nsb3RfcG9zID0gLTE7Ci19 Ci0KIC8qCiAgKiBFeGVjUlBSUHJvY2Vzc1JvdwogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5k b3dBZ2cuYwppbmRleCA0MDhiYmMxMjBiNy4uODZiMzliZjdmNjEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlV2luZG93QWdnLmMKQEAgLTQ2MjcsNiArNDYyNywyMzMgQEAgbmZhX2V2YWx1YXRlX3Jv dyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZhck1hdGNoZWQpCiAJcmV0 dXJuIHRydWU7CQkJCS8qIFJvdyBleGlzdHMgKi8KIH0KIAorLyoKKyAqIFdpbkdldFNsb3RJbkZy YW1lCisgKiBzbG90OiBUdXBsZVRhYmxlU2xvdCB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiByZWxw b3M6IHNpZ25lZCByb3djb3VudCBvZmZzZXQgZnJvbSB0aGUgc2VlayBwb3NpdGlvbgorICogc2Vl a3R5cGU6IFdJTkRPV19TRUVLX0hFQUQgb3IgV0lORE9XX1NFRUtfVEFJTAorICogc2V0X21hcms6 IElmIHRoZSByb3cgaXMgZm91bmQvaW4gZnJhbWUgYW5kIHNldF9tYXJrIGlzIHRydWUsIHRoZSBt YXJrIGlzCisgKgkJbW92ZWQgdG8gdGhlIHJvdyBhcyBhIHNpZGUtZWZmZWN0LgorICogaXNudWxs OiBvdXRwdXQgYXJndW1lbnQsIHJlY2VpdmVzIGlzbnVsbCBzdGF0dXMgb2YgcmVzdWx0CisgKiBp c291dDogb3V0cHV0IGFyZ3VtZW50LCBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciB0YXJnZXQgcm93 IHBvc2l0aW9uCisgKgkJaXMgb3V0IG9mIGZyYW1lIChjYW4gcGFzcyBOVUxMIGlmIGNhbGxlciBk b2Vzbid0IGNhcmUgYWJvdXQgdGhpcykKKyAqCisgKiBSZXR1cm5zIDAgaWYgd2Ugc3VjY2Vzc2Z1 bGx5IGdvdCB0aGUgc2xvdCwgb3Igbm9uemVybyBpZiBvdXQgb2YgZnJhbWUuCisgKiAoaXNvdXQg aXMgYWxzbyBzZXQgaW4gdGhlIGxhdHRlciBjYXNlLikKKyAqLworc3RhdGljIGludAorV2luR2V0 U2xvdEluRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJ CQkJICBpbnQgcmVscG9zLCBpbnQgc2Vla3R5cGUsIGJvb2wgc2V0X21hcmssCisJCQkJICBib29s ICppc251bGwsIGJvb2wgKmlzb3V0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwlp bnQ2NAkJYWJzX3BvczsKKwlpbnQ2NAkJbWFya19wb3M7CisJaW50NjQJCW51bV9yZWR1Y2VkX2Zy YW1lOworCisJQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CisJd2luc3RhdGUg PSB3aW5vYmotPndpbnN0YXRlOworCisJc3dpdGNoIChzZWVrdHlwZSkKKwl7CisJCWNhc2UgV0lO RE9XX1NFRUtfQ1VSUkVOVDoKKwkJCWVsb2coRVJST1IsICJXSU5ET1dfU0VFS19DVVJSRU5UIGlz IG5vdCBzdXBwb3J0ZWQgZm9yIFdpbkdldEZ1bmNBcmdJbkZyYW1lIik7CisJCQlhYnNfcG9zID0g bWFya19wb3MgPSAwOyAvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJCQlicmVhazsKKwkJY2Fz ZSBXSU5ET1dfU0VFS19IRUFEOgorCQkJLyogcmVqZWN0aW5nIHJlbHBvcyA8IDAgaXMgZWFzeSBh bmQgc2ltcGxpZmllcyBjb2RlIGJlbG93ICovCisJCQlpZiAocmVscG9zIDwgMCkKKwkJCQlnb3Rv IG91dF9vZl9mcmFtZTsKKwkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOworCQkJYWJz X3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MgKyByZWxwb3M7CisJCQltYXJrX3BvcyA9IGFi c19wb3M7CisKKwkJCS8qCisJCQkgKiBBY2NvdW50IGZvciBleGNsdXNpb24gb3B0aW9uIGlmIG9u ZSBpcyBhY3RpdmUsIGJ1dCBhZHZhbmNlIG9ubHkKKwkJCSAqIGFic19wb3Mgbm90IG1hcmtfcG9z LiAgVGhpcyBwcmV2ZW50cyBjaGFuZ2VzIG9mIHRoZSBjdXJyZW50CisJCQkgKiByb3cncyBwZWVy IGdyb3VwIGZyb20gcmVzdWx0aW5nIGluIHRyeWluZyB0byBmZXRjaCBhIHJvdyBiZWZvcmUKKwkJ CSAqIHNvbWUgcHJldmlvdXMgbWFyayBwb3NpdGlvbi4KKwkJCSAqCisJCQkgKiBOb3RlIHRoYXQg aW4gc29tZSBjb3JuZXIgY2FzZXMgc3VjaCBhcyBjdXJyZW50IHJvdyBiZWluZworCQkJICogb3V0 c2lkZSBmcmFtZSwgdGhlc2UgY2FsY3VsYXRpb25zIGFyZSB0aGVvcmV0aWNhbGx5IHRvbyBzaW1w bGUsCisJCQkgKiBidXQgaXQgZG9lc24ndCBtYXR0ZXIgYmVjYXVzZSB3ZSdsbCBlbmQgdXAgZGVj aWRpbmcgdGhlIHJvdyBpcworCQkJICogb3V0IG9mIGZyYW1lLiAgV2UgZG8gbm90IGF0dGVtcHQg dG8gYXZvaWQgZmV0Y2hpbmcgcm93cyBwYXN0CisJCQkgKiBlbmQgb2YgZnJhbWU7IHRoYXQgd291 bGQgaGFwcGVuIGluIHNvbWUgY2FzZXMgYW55d2F5LgorCQkJICovCisJCQlzd2l0Y2ggKHdpbnN0 YXRlLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVVNJT04pCisJCQl7CisJCQkJY2Fz ZSAwOgorCQkJCQkvKiBubyBhZGp1c3RtZW50IG5lZWRlZCAqLworCQkJCQlicmVhazsKKwkJCQlj YXNlIEZSQU1FT1BUSU9OX0VYQ0xVREVfQ1VSUkVOVF9ST1c6CisJCQkJCWlmIChhYnNfcG9zID49 IHdpbnN0YXRlLT5jdXJyZW50cG9zICYmCisJCQkJCQl3aW5zdGF0ZS0+Y3VycmVudHBvcyA+PSB3 aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zKQorCQkJCQkJYWJzX3BvcysrOworCQkJCQlicmVhazsKKwkJ CQljYXNlIEZSQU1FT1BUSU9OX0VYQ0xVREVfR1JPVVA6CisJCQkJCXVwZGF0ZV9ncm91cHRhaWxw b3Mod2luc3RhdGUpOworCQkJCQlpZiAoYWJzX3BvcyA+PSB3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9z ICYmCisJCQkJCQl3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zID4gd2luc3RhdGUtPmZyYW1laGVhZHBv cykKKwkJCQkJeworCQkJCQkJaW50NjQJCW92ZXJsYXBzdGFydCA9IE1heCh3aW5zdGF0ZS0+Z3Jv dXBoZWFkcG9zLAorCQkJCQkJCQkJCQkJCSAgIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOworCisJ CQkJCQlhYnNfcG9zICs9IHdpbnN0YXRlLT5ncm91cHRhaWxwb3MgLSBvdmVybGFwc3RhcnQ7CisJ CQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBGUkFNRU9QVElPTl9FWENMVURFX1RJRVM6CisJ CQkJCXVwZGF0ZV9ncm91cHRhaWxwb3Mod2luc3RhdGUpOworCQkJCQlpZiAoYWJzX3BvcyA+PSB3 aW5zdGF0ZS0+Z3JvdXBoZWFkcG9zICYmCisJCQkJCQl3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zID4g d2luc3RhdGUtPmZyYW1laGVhZHBvcykKKwkJCQkJeworCQkJCQkJaW50NjQJCW92ZXJsYXBzdGFy dCA9IE1heCh3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9zLAorCQkJCQkJCQkJCQkJCSAgIHdpbnN0YXRl LT5mcmFtZWhlYWRwb3MpOworCisJCQkJCQlpZiAoYWJzX3BvcyA9PSBvdmVybGFwc3RhcnQpCisJ CQkJCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5jdXJyZW50cG9zOworCQkJCQkJZWxzZQorCQkJCQkJ CWFic19wb3MgKz0gd2luc3RhdGUtPmdyb3VwdGFpbHBvcyAtIG92ZXJsYXBzdGFydCAtIDE7CisJ CQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKKwkJCQkJZWxvZyhFUlJPUiwgInVucmVj b2duaXplZCBmcmFtZSBvcHRpb24gc3RhdGU6IDB4JXgiLAorCQkJCQkJIHdpbnN0YXRlLT5mcmFt ZU9wdGlvbnMpOworCQkJCQlicmVhazsKKwkJCX0KKwkJCW51bV9yZWR1Y2VkX2ZyYW1lID0gcm93 X2lzX2luX3JlZHVjZWRfZnJhbWUod2lub2JqLAorCQkJCQkJCQkJCQkJCQl3aW5zdGF0ZS0+ZnJh bWVoZWFkcG9zKTsKKwkJCWlmIChudW1fcmVkdWNlZF9mcmFtZSA8IDApCisJCQkJZ290byBvdXRf b2ZfZnJhbWU7CisJCQllbHNlIGlmIChudW1fcmVkdWNlZF9mcmFtZSA+IDApCisJCQkJaWYgKHJl bHBvcyA+PSBudW1fcmVkdWNlZF9mcmFtZSkKKwkJCQkJZ290byBvdXRfb2ZfZnJhbWU7CisJCQli cmVhazsKKwkJY2FzZSBXSU5ET1dfU0VFS19UQUlMOgorCQkJLyogcmVqZWN0aW5nIHJlbHBvcyA+ IDAgaXMgZWFzeSBhbmQgc2ltcGxpZmllcyBjb2RlIGJlbG93ICovCisJCQlpZiAocmVscG9zID4g MCkKKwkJCQlnb3RvIG91dF9vZl9mcmFtZTsKKworCQkJLyoKKwkJCSAqIFJQUiBjYXJlcyBhYm91 dCBmcmFtZSBoZWFkIHBvcy4gTmVlZCB0byBjYWxsCisJCQkgKiB1cGRhdGVfZnJhbWVoZWFkcG9z CisJCQkgKi8KKwkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOworCisJCQl1cGRhdGVf ZnJhbWV0YWlscG9zKHdpbnN0YXRlKTsKKwkJCWFic19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWV0YWls cG9zIC0gMSArIHJlbHBvczsKKworCQkJLyoKKwkJCSAqIEFjY291bnQgZm9yIGV4Y2x1c2lvbiBv cHRpb24gaWYgb25lIGlzIGFjdGl2ZS4gIElmIHRoZXJlIGlzIG5vCisJCQkgKiBleGNsdXNpb24s IHdlIGNhbiBzYWZlbHkgc2V0IHRoZSBtYXJrIGF0IHRoZSBhY2Nlc3NlZCByb3cuICBCdXQKKwkJ CSAqIGlmIHRoZXJlIGlzLCB3ZSBjYW4gb25seSBtYXJrIHRoZSBmcmFtZSBzdGFydCwgYmVjYXVz ZSB3ZSBjYW4ndAorCQkJICogYmUgc3VyZSBob3cgZmFyIGJhY2sgaW4gdGhlIGZyYW1lIHRoZSBl eGNsdXNpb24gbWlnaHQgY2F1c2UgdXMKKwkJCSAqIHRvIGZldGNoIGluIGZ1dHVyZS4gIEZ1cnRo ZXJtb3JlLCB3ZSBoYXZlIHRvIGFjdHVhbGx5IGNoZWNrCisJCQkgKiBhZ2FpbnN0IGZyYW1laGVh ZHBvcyBoZXJlLCBzaW5jZSBpdCdzIHVuc2FmZSB0byB0cnkgdG8gZmV0Y2ggYQorCQkJICogcm93 IGJlZm9yZSBmcmFtZSBzdGFydCBpZiB0aGUgbWFyayBtaWdodCBiZSB0aGVyZSBhbHJlYWR5Lgor CQkJICovCisJCQlzd2l0Y2ggKHdpbnN0YXRlLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9F WENMVVNJT04pCisJCQl7CisJCQkJY2FzZSAwOgorCQkJCQkvKiBubyBhZGp1c3RtZW50IG5lZWRl ZCAqLworCQkJCQltYXJrX3BvcyA9IGFic19wb3M7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgRlJB TUVPUFRJT05fRVhDTFVERV9DVVJSRU5UX1JPVzoKKwkJCQkJaWYgKGFic19wb3MgPD0gd2luc3Rh dGUtPmN1cnJlbnRwb3MgJiYKKwkJCQkJCXdpbnN0YXRlLT5jdXJyZW50cG9zIDwgd2luc3RhdGUt PmZyYW1ldGFpbHBvcykKKwkJCQkJCWFic19wb3MtLTsKKwkJCQkJdXBkYXRlX2ZyYW1laGVhZHBv cyh3aW5zdGF0ZSk7CisJCQkJCWlmIChhYnNfcG9zIDwgd2luc3RhdGUtPmZyYW1laGVhZHBvcykK KwkJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQkJCQltYXJrX3BvcyA9IHdpbnN0YXRlLT5mcmFt ZWhlYWRwb3M7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVERV9HUk9V UDoKKwkJCQkJdXBkYXRlX2dyb3VwdGFpbHBvcyh3aW5zdGF0ZSk7CisJCQkJCWlmIChhYnNfcG9z IDwgd2luc3RhdGUtPmdyb3VwdGFpbHBvcyAmJgorCQkJCQkJd2luc3RhdGUtPmdyb3VwaGVhZHBv cyA8IHdpbnN0YXRlLT5mcmFtZXRhaWxwb3MpCisJCQkJCXsKKwkJCQkJCWludDY0CQlvdmVybGFw ZW5kID0gTWluKHdpbnN0YXRlLT5ncm91cHRhaWxwb3MsCisJCQkJCQkJCQkJCQkJIHdpbnN0YXRl LT5mcmFtZXRhaWxwb3MpOworCisJCQkJCQlhYnNfcG9zIC09IG92ZXJsYXBlbmQgLSB3aW5zdGF0 ZS0+Z3JvdXBoZWFkcG9zOworCQkJCQl9CisJCQkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3Rh dGUpOworCQkJCQlpZiAoYWJzX3BvcyA8IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpCisJCQkJCQln b3RvIG91dF9vZl9mcmFtZTsKKwkJCQkJbWFya19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9z OworCQkJCQlicmVhazsKKwkJCQljYXNlIEZSQU1FT1BUSU9OX0VYQ0xVREVfVElFUzoKKwkJCQkJ dXBkYXRlX2dyb3VwdGFpbHBvcyh3aW5zdGF0ZSk7CisJCQkJCWlmIChhYnNfcG9zIDwgd2luc3Rh dGUtPmdyb3VwdGFpbHBvcyAmJgorCQkJCQkJd2luc3RhdGUtPmdyb3VwaGVhZHBvcyA8IHdpbnN0 YXRlLT5mcmFtZXRhaWxwb3MpCisJCQkJCXsKKwkJCQkJCWludDY0CQlvdmVybGFwZW5kID0gTWlu KHdpbnN0YXRlLT5ncm91cHRhaWxwb3MsCisJCQkJCQkJCQkJCQkJIHdpbnN0YXRlLT5mcmFtZXRh aWxwb3MpOworCisJCQkJCQlpZiAoYWJzX3BvcyA9PSBvdmVybGFwZW5kIC0gMSkKKwkJCQkJCQlh YnNfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJCQkJCQllbHNlCisJCQkJCQkJYWJzX3Bv cyAtPSBvdmVybGFwZW5kIC0gMSAtIHdpbnN0YXRlLT5ncm91cGhlYWRwb3M7CisJCQkJCX0KKwkJ CQkJdXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5zdGF0ZSk7CisJCQkJCWlmIChhYnNfcG9zIDwgd2lu c3RhdGUtPmZyYW1laGVhZHBvcykKKwkJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQkJCQltYXJr X3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3M7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6 CisJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgZnJhbWUgb3B0aW9uIHN0YXRlOiAweCV4 IiwKKwkJCQkJCSB3aW5zdGF0ZS0+ZnJhbWVPcHRpb25zKTsKKwkJCQkJbWFya19wb3MgPSAwOwkv KiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJCQkJCWJyZWFrOworCQkJfQorCisJCQludW1fcmVk dWNlZF9mcmFtZSA9IHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKHdpbm9iaiwKKwkJCQkJCQkJCQkJ CQkJd2luc3RhdGUtPmZyYW1laGVhZHBvcyk7CisJCQlpZiAobnVtX3JlZHVjZWRfZnJhbWUgPCAw KQorCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQkJZWxzZSBpZiAobnVtX3JlZHVjZWRfZnJhbWUg PiAwKQorCQkJeworCQkJCWlmICgtcmVscG9zID49IG51bV9yZWR1Y2VkX2ZyYW1lKQorCQkJCQln b3RvIG91dF9vZl9mcmFtZTsKKwkJCQlhYnNfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvcyAr IHJlbHBvcyArCisJCQkJCW51bV9yZWR1Y2VkX2ZyYW1lIC0gMTsKKwkJCX0KKwkJCWJyZWFrOwor CQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCB3aW5kb3cgc2VlayB0eXBl OiAlZCIsIHNlZWt0eXBlKTsKKwkJCWFic19wb3MgPSBtYXJrX3BvcyA9IDA7IC8qIGtlZXAgY29t cGlsZXIgcXVpZXQgKi8KKwkJCWJyZWFrOworCX0KKworCWlmICghd2luZG93X2dldHR1cGxlc2xv dCh3aW5vYmosIGFic19wb3MsIHNsb3QpKQorCQlnb3RvIG91dF9vZl9mcmFtZTsKKworCS8qIFRo ZSBjb2RlIGFib3ZlIGRvZXMgbm90IGRldGVjdCBhbGwgb3V0LW9mLWZyYW1lIGNhc2VzLCBzbyBj aGVjayAqLworCWlmIChyb3dfaXNfaW5fZnJhbWUod2lub2JqLCBhYnNfcG9zLCBzbG90LCBmYWxz ZSkgPD0gMCkKKwkJZ290byBvdXRfb2ZfZnJhbWU7CisKKwlpZiAoaXNvdXQpCisJCSppc291dCA9 IGZhbHNlOworCWlmIChzZXRfbWFyaykKKwl7CisJCS8qCisJCSAqIElmIFJQUiBpcyBlbmFibGVk IGFuZCBzZWVrIHR5cGUgaXMgV0lORE9XX1NFRUtfVEFJTCwgd2Ugc2V0IHRoZQorCQkgKiBtYXJr IHBvc2l0aW9uIHVuY29uZGl0aW9uYWxseSB0byBmcmFtZWhlYWRwb3MuIEluIHRoaXMgY2FzZSB0 aGUKKwkJICogZnJhbWUgYWx3YXlzIHN0YXJ0cyBhdCBDVVJSRU5UX1JPVyBhbmQgbmV2ZXIgZ29l cyBiYWNrLCB0aHVzCisJCSAqIHNldHRpbmcgdGhlIG1hcmsgYXQgdGhlIHBvc2l0aW9uIGlzIHNh ZmUuCisJCSAqLworCQlpZiAod2luc3RhdGUtPnJwUGF0dGVybiAhPSBOVUxMICYmIHNlZWt0eXBl ID09IFdJTkRPV19TRUVLX1RBSUwpCisJCQltYXJrX3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRw b3M7CisJCVdpblNldE1hcmtQb3NpdGlvbih3aW5vYmosIG1hcmtfcG9zKTsKKwl9CisJcmV0dXJu IDA7CisKK291dF9vZl9mcmFtZToKKwlpZiAoaXNvdXQpCisJCSppc291dCA9IHRydWU7CisJKmlz bnVsbCA9IHRydWU7CisJcmV0dXJuIC0xOworfQorCiAKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQVBJ IGV4cG9zZWQgdG8gd2luZG93IGZ1bmN0aW9ucwpAQCAtNTAxOSwyMzMgKzUyNDYsNiBAQCBXaW5H ZXRGdW5jQXJnSW5GcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJcmV0dXJu IChEYXR1bSkgMDsKIH0KIAotLyoKLSAqIFdpbkdldFNsb3RJbkZyYW1lCi0gKiBzbG90OiBUdXBs ZVRhYmxlU2xvdCB0byBzdG9yZSB0aGUgcmVzdWx0Ci0gKiByZWxwb3M6IHNpZ25lZCByb3djb3Vu dCBvZmZzZXQgZnJvbSB0aGUgc2VlayBwb3NpdGlvbgotICogc2Vla3R5cGU6IFdJTkRPV19TRUVL X0hFQUQgb3IgV0lORE9XX1NFRUtfVEFJTAotICogc2V0X21hcms6IElmIHRoZSByb3cgaXMgZm91 bmQvaW4gZnJhbWUgYW5kIHNldF9tYXJrIGlzIHRydWUsIHRoZSBtYXJrIGlzCi0gKgkJbW92ZWQg dG8gdGhlIHJvdyBhcyBhIHNpZGUtZWZmZWN0LgotICogaXNudWxsOiBvdXRwdXQgYXJndW1lbnQs IHJlY2VpdmVzIGlzbnVsbCBzdGF0dXMgb2YgcmVzdWx0Ci0gKiBpc291dDogb3V0cHV0IGFyZ3Vt ZW50LCBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciB0YXJnZXQgcm93IHBvc2l0aW9uCi0gKgkJaXMg b3V0IG9mIGZyYW1lIChjYW4gcGFzcyBOVUxMIGlmIGNhbGxlciBkb2Vzbid0IGNhcmUgYWJvdXQg dGhpcykKLSAqCi0gKiBSZXR1cm5zIDAgaWYgd2Ugc3VjY2Vzc2Z1bGx5IGdvdCB0aGUgc2xvdCwg b3Igbm9uemVybyBpZiBvdXQgb2YgZnJhbWUuCi0gKiAoaXNvdXQgaXMgYWxzbyBzZXQgaW4gdGhl IGxhdHRlciBjYXNlLikKLSAqLwotc3RhdGljIGludAotV2luR2V0U2xvdEluRnJhbWUoV2luZG93 T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCi0JCQkJICBpbnQgcmVscG9zLCBp bnQgc2Vla3R5cGUsIGJvb2wgc2V0X21hcmssCi0JCQkJICBib29sICppc251bGwsIGJvb2wgKmlz b3V0KQotewotCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKLQlpbnQ2NAkJYWJzX3BvczsKLQlp bnQ2NAkJbWFya19wb3M7Ci0JaW50NjQJCW51bV9yZWR1Y2VkX2ZyYW1lOwotCi0JQXNzZXJ0KFdp bmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7Ci0Jd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRl OwotCi0Jc3dpdGNoIChzZWVrdHlwZSkKLQl7Ci0JCWNhc2UgV0lORE9XX1NFRUtfQ1VSUkVOVDoK LQkJCWVsb2coRVJST1IsICJXSU5ET1dfU0VFS19DVVJSRU5UIGlzIG5vdCBzdXBwb3J0ZWQgZm9y IFdpbkdldEZ1bmNBcmdJbkZyYW1lIik7Ci0JCQlhYnNfcG9zID0gbWFya19wb3MgPSAwOyAvKiBr ZWVwIGNvbXBpbGVyIHF1aWV0ICovCi0JCQlicmVhazsKLQkJY2FzZSBXSU5ET1dfU0VFS19IRUFE OgotCQkJLyogcmVqZWN0aW5nIHJlbHBvcyA8IDAgaXMgZWFzeSBhbmQgc2ltcGxpZmllcyBjb2Rl IGJlbG93ICovCi0JCQlpZiAocmVscG9zIDwgMCkKLQkJCQlnb3RvIG91dF9vZl9mcmFtZTsKLQkJ CXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOwotCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5m cmFtZWhlYWRwb3MgKyByZWxwb3M7Ci0JCQltYXJrX3BvcyA9IGFic19wb3M7Ci0KLQkJCS8qCi0J CQkgKiBBY2NvdW50IGZvciBleGNsdXNpb24gb3B0aW9uIGlmIG9uZSBpcyBhY3RpdmUsIGJ1dCBh ZHZhbmNlIG9ubHkKLQkJCSAqIGFic19wb3Mgbm90IG1hcmtfcG9zLiAgVGhpcyBwcmV2ZW50cyBj aGFuZ2VzIG9mIHRoZSBjdXJyZW50Ci0JCQkgKiByb3cncyBwZWVyIGdyb3VwIGZyb20gcmVzdWx0 aW5nIGluIHRyeWluZyB0byBmZXRjaCBhIHJvdyBiZWZvcmUKLQkJCSAqIHNvbWUgcHJldmlvdXMg bWFyayBwb3NpdGlvbi4KLQkJCSAqCi0JCQkgKiBOb3RlIHRoYXQgaW4gc29tZSBjb3JuZXIgY2Fz ZXMgc3VjaCBhcyBjdXJyZW50IHJvdyBiZWluZwotCQkJICogb3V0c2lkZSBmcmFtZSwgdGhlc2Ug Y2FsY3VsYXRpb25zIGFyZSB0aGVvcmV0aWNhbGx5IHRvbyBzaW1wbGUsCi0JCQkgKiBidXQgaXQg ZG9lc24ndCBtYXR0ZXIgYmVjYXVzZSB3ZSdsbCBlbmQgdXAgZGVjaWRpbmcgdGhlIHJvdyBpcwot CQkJICogb3V0IG9mIGZyYW1lLiAgV2UgZG8gbm90IGF0dGVtcHQgdG8gYXZvaWQgZmV0Y2hpbmcg cm93cyBwYXN0Ci0JCQkgKiBlbmQgb2YgZnJhbWU7IHRoYXQgd291bGQgaGFwcGVuIGluIHNvbWUg Y2FzZXMgYW55d2F5LgotCQkJICovCi0JCQlzd2l0Y2ggKHdpbnN0YXRlLT5mcmFtZU9wdGlvbnMg JiBGUkFNRU9QVElPTl9FWENMVVNJT04pCi0JCQl7Ci0JCQkJY2FzZSAwOgotCQkJCQkvKiBubyBh ZGp1c3RtZW50IG5lZWRlZCAqLwotCQkJCQlicmVhazsKLQkJCQljYXNlIEZSQU1FT1BUSU9OX0VY Q0xVREVfQ1VSUkVOVF9ST1c6Ci0JCQkJCWlmIChhYnNfcG9zID49IHdpbnN0YXRlLT5jdXJyZW50 cG9zICYmCi0JCQkJCQl3aW5zdGF0ZS0+Y3VycmVudHBvcyA+PSB3aW5zdGF0ZS0+ZnJhbWVoZWFk cG9zKQotCQkJCQkJYWJzX3BvcysrOwotCQkJCQlicmVhazsKLQkJCQljYXNlIEZSQU1FT1BUSU9O X0VYQ0xVREVfR1JPVVA6Ci0JCQkJCXVwZGF0ZV9ncm91cHRhaWxwb3Mod2luc3RhdGUpOwotCQkJ CQlpZiAoYWJzX3BvcyA+PSB3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9zICYmCi0JCQkJCQl3aW5zdGF0 ZS0+Z3JvdXB0YWlscG9zID4gd2luc3RhdGUtPmZyYW1laGVhZHBvcykKLQkJCQkJewotCQkJCQkJ aW50NjQJCW92ZXJsYXBzdGFydCA9IE1heCh3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9zLAotCQkJCQkJ CQkJCQkJCSAgIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwotCi0JCQkJCQlhYnNfcG9zICs9IHdp bnN0YXRlLT5ncm91cHRhaWxwb3MgLSBvdmVybGFwc3RhcnQ7Ci0JCQkJCX0KLQkJCQkJYnJlYWs7 Ci0JCQkJY2FzZSBGUkFNRU9QVElPTl9FWENMVURFX1RJRVM6Ci0JCQkJCXVwZGF0ZV9ncm91cHRh aWxwb3Mod2luc3RhdGUpOwotCQkJCQlpZiAoYWJzX3BvcyA+PSB3aW5zdGF0ZS0+Z3JvdXBoZWFk cG9zICYmCi0JCQkJCQl3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zID4gd2luc3RhdGUtPmZyYW1laGVh ZHBvcykKLQkJCQkJewotCQkJCQkJaW50NjQJCW92ZXJsYXBzdGFydCA9IE1heCh3aW5zdGF0ZS0+ Z3JvdXBoZWFkcG9zLAotCQkJCQkJCQkJCQkJCSAgIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwot Ci0JCQkJCQlpZiAoYWJzX3BvcyA9PSBvdmVybGFwc3RhcnQpCi0JCQkJCQkJYWJzX3BvcyA9IHdp bnN0YXRlLT5jdXJyZW50cG9zOwotCQkJCQkJZWxzZQotCQkJCQkJCWFic19wb3MgKz0gd2luc3Rh dGUtPmdyb3VwdGFpbHBvcyAtIG92ZXJsYXBzdGFydCAtIDE7Ci0JCQkJCX0KLQkJCQkJYnJlYWs7 Ci0JCQkJZGVmYXVsdDoKLQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBmcmFtZSBvcHRp b24gc3RhdGU6IDB4JXgiLAotCQkJCQkJIHdpbnN0YXRlLT5mcmFtZU9wdGlvbnMpOwotCQkJCQli cmVhazsKLQkJCX0KLQkJCW51bV9yZWR1Y2VkX2ZyYW1lID0gcm93X2lzX2luX3JlZHVjZWRfZnJh bWUod2lub2JqLAotCQkJCQkJCQkJCQkJCQl3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zKTsKLQkJCWlm IChudW1fcmVkdWNlZF9mcmFtZSA8IDApCi0JCQkJZ290byBvdXRfb2ZfZnJhbWU7Ci0JCQllbHNl IGlmIChudW1fcmVkdWNlZF9mcmFtZSA+IDApCi0JCQkJaWYgKHJlbHBvcyA+PSBudW1fcmVkdWNl ZF9mcmFtZSkKLQkJCQkJZ290byBvdXRfb2ZfZnJhbWU7Ci0JCQlicmVhazsKLQkJY2FzZSBXSU5E T1dfU0VFS19UQUlMOgotCQkJLyogcmVqZWN0aW5nIHJlbHBvcyA+IDAgaXMgZWFzeSBhbmQgc2lt cGxpZmllcyBjb2RlIGJlbG93ICovCi0JCQlpZiAocmVscG9zID4gMCkKLQkJCQlnb3RvIG91dF9v Zl9mcmFtZTsKLQotCQkJLyoKLQkJCSAqIFJQUiBjYXJlcyBhYm91dCBmcmFtZSBoZWFkIHBvcy4g TmVlZCB0byBjYWxsCi0JCQkgKiB1cGRhdGVfZnJhbWVoZWFkcG9zCi0JCQkgKi8KLQkJCXVwZGF0 ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOwotCi0JCQl1cGRhdGVfZnJhbWV0YWlscG9zKHdpbnN0 YXRlKTsKLQkJCWFic19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWV0YWlscG9zIC0gMSArIHJlbHBvczsK LQotCQkJLyoKLQkJCSAqIEFjY291bnQgZm9yIGV4Y2x1c2lvbiBvcHRpb24gaWYgb25lIGlzIGFj dGl2ZS4gIElmIHRoZXJlIGlzIG5vCi0JCQkgKiBleGNsdXNpb24sIHdlIGNhbiBzYWZlbHkgc2V0 IHRoZSBtYXJrIGF0IHRoZSBhY2Nlc3NlZCByb3cuICBCdXQKLQkJCSAqIGlmIHRoZXJlIGlzLCB3 ZSBjYW4gb25seSBtYXJrIHRoZSBmcmFtZSBzdGFydCwgYmVjYXVzZSB3ZSBjYW4ndAotCQkJICog YmUgc3VyZSBob3cgZmFyIGJhY2sgaW4gdGhlIGZyYW1lIHRoZSBleGNsdXNpb24gbWlnaHQgY2F1 c2UgdXMKLQkJCSAqIHRvIGZldGNoIGluIGZ1dHVyZS4gIEZ1cnRoZXJtb3JlLCB3ZSBoYXZlIHRv IGFjdHVhbGx5IGNoZWNrCi0JCQkgKiBhZ2FpbnN0IGZyYW1laGVhZHBvcyBoZXJlLCBzaW5jZSBp dCdzIHVuc2FmZSB0byB0cnkgdG8gZmV0Y2ggYQotCQkJICogcm93IGJlZm9yZSBmcmFtZSBzdGFy dCBpZiB0aGUgbWFyayBtaWdodCBiZSB0aGVyZSBhbHJlYWR5LgotCQkJICovCi0JCQlzd2l0Y2gg KHdpbnN0YXRlLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVVNJT04pCi0JCQl7Ci0J CQkJY2FzZSAwOgotCQkJCQkvKiBubyBhZGp1c3RtZW50IG5lZWRlZCAqLwotCQkJCQltYXJrX3Bv cyA9IGFic19wb3M7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVERV9D VVJSRU5UX1JPVzoKLQkJCQkJaWYgKGFic19wb3MgPD0gd2luc3RhdGUtPmN1cnJlbnRwb3MgJiYK LQkJCQkJCXdpbnN0YXRlLT5jdXJyZW50cG9zIDwgd2luc3RhdGUtPmZyYW1ldGFpbHBvcykKLQkJ CQkJCWFic19wb3MtLTsKLQkJCQkJdXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5zdGF0ZSk7Ci0JCQkJ CWlmIChhYnNfcG9zIDwgd2luc3RhdGUtPmZyYW1laGVhZHBvcykKLQkJCQkJCWdvdG8gb3V0X29m X2ZyYW1lOwotCQkJCQltYXJrX3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3M7Ci0JCQkJCWJy ZWFrOwotCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVERV9HUk9VUDoKLQkJCQkJdXBkYXRlX2dy b3VwdGFpbHBvcyh3aW5zdGF0ZSk7Ci0JCQkJCWlmIChhYnNfcG9zIDwgd2luc3RhdGUtPmdyb3Vw dGFpbHBvcyAmJgotCQkJCQkJd2luc3RhdGUtPmdyb3VwaGVhZHBvcyA8IHdpbnN0YXRlLT5mcmFt ZXRhaWxwb3MpCi0JCQkJCXsKLQkJCQkJCWludDY0CQlvdmVybGFwZW5kID0gTWluKHdpbnN0YXRl LT5ncm91cHRhaWxwb3MsCi0JCQkJCQkJCQkJCQkJIHdpbnN0YXRlLT5mcmFtZXRhaWxwb3MpOwot Ci0JCQkJCQlhYnNfcG9zIC09IG92ZXJsYXBlbmQgLSB3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9zOwot CQkJCQl9Ci0JCQkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOwotCQkJCQlpZiAoYWJz X3BvcyA8IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpCi0JCQkJCQlnb3RvIG91dF9vZl9mcmFtZTsK LQkJCQkJbWFya19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zOwotCQkJCQlicmVhazsKLQkJ CQljYXNlIEZSQU1FT1BUSU9OX0VYQ0xVREVfVElFUzoKLQkJCQkJdXBkYXRlX2dyb3VwdGFpbHBv cyh3aW5zdGF0ZSk7Ci0JCQkJCWlmIChhYnNfcG9zIDwgd2luc3RhdGUtPmdyb3VwdGFpbHBvcyAm JgotCQkJCQkJd2luc3RhdGUtPmdyb3VwaGVhZHBvcyA8IHdpbnN0YXRlLT5mcmFtZXRhaWxwb3Mp Ci0JCQkJCXsKLQkJCQkJCWludDY0CQlvdmVybGFwZW5kID0gTWluKHdpbnN0YXRlLT5ncm91cHRh aWxwb3MsCi0JCQkJCQkJCQkJCQkJIHdpbnN0YXRlLT5mcmFtZXRhaWxwb3MpOwotCi0JCQkJCQlp ZiAoYWJzX3BvcyA9PSBvdmVybGFwZW5kIC0gMSkKLQkJCQkJCQlhYnNfcG9zID0gd2luc3RhdGUt PmN1cnJlbnRwb3M7Ci0JCQkJCQllbHNlCi0JCQkJCQkJYWJzX3BvcyAtPSBvdmVybGFwZW5kIC0g MSAtIHdpbnN0YXRlLT5ncm91cGhlYWRwb3M7Ci0JCQkJCX0KLQkJCQkJdXBkYXRlX2ZyYW1laGVh ZHBvcyh3aW5zdGF0ZSk7Ci0JCQkJCWlmIChhYnNfcG9zIDwgd2luc3RhdGUtPmZyYW1laGVhZHBv cykKLQkJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOwotCQkJCQltYXJrX3BvcyA9IHdpbnN0YXRlLT5m cmFtZWhlYWRwb3M7Ci0JCQkJCWJyZWFrOwotCQkJCWRlZmF1bHQ6Ci0JCQkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgZnJhbWUgb3B0aW9uIHN0YXRlOiAweCV4IiwKLQkJCQkJCSB3aW5zdGF0 ZS0+ZnJhbWVPcHRpb25zKTsKLQkJCQkJbWFya19wb3MgPSAwOwkvKiBrZWVwIGNvbXBpbGVyIHF1 aWV0ICovCi0JCQkJCWJyZWFrOwotCQkJfQotCi0JCQludW1fcmVkdWNlZF9mcmFtZSA9IHJvd19p c19pbl9yZWR1Y2VkX2ZyYW1lKHdpbm9iaiwKLQkJCQkJCQkJCQkJCQkJd2luc3RhdGUtPmZyYW1l aGVhZHBvcyk7Ci0JCQlpZiAobnVtX3JlZHVjZWRfZnJhbWUgPCAwKQotCQkJCWdvdG8gb3V0X29m X2ZyYW1lOwotCQkJZWxzZSBpZiAobnVtX3JlZHVjZWRfZnJhbWUgPiAwKQotCQkJewotCQkJCWlm ICgtcmVscG9zID49IG51bV9yZWR1Y2VkX2ZyYW1lKQotCQkJCQlnb3RvIG91dF9vZl9mcmFtZTsK LQkJCQlhYnNfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvcyArIHJlbHBvcyArCi0JCQkJCW51 bV9yZWR1Y2VkX2ZyYW1lIC0gMTsKLQkJCX0KLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCB3aW5kb3cgc2VlayB0eXBlOiAlZCIsIHNlZWt0eXBlKTsK LQkJCWFic19wb3MgPSBtYXJrX3BvcyA9IDA7IC8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KLQkJ CWJyZWFrOwotCX0KLQotCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3aW5vYmosIGFic19wb3Ms IHNsb3QpKQotCQlnb3RvIG91dF9vZl9mcmFtZTsKLQotCS8qIFRoZSBjb2RlIGFib3ZlIGRvZXMg bm90IGRldGVjdCBhbGwgb3V0LW9mLWZyYW1lIGNhc2VzLCBzbyBjaGVjayAqLwotCWlmIChyb3df aXNfaW5fZnJhbWUod2lub2JqLCBhYnNfcG9zLCBzbG90LCBmYWxzZSkgPD0gMCkKLQkJZ290byBv dXRfb2ZfZnJhbWU7Ci0KLQlpZiAoaXNvdXQpCi0JCSppc291dCA9IGZhbHNlOwotCWlmIChzZXRf bWFyaykKLQl7Ci0JCS8qCi0JCSAqIElmIFJQUiBpcyBlbmFibGVkIGFuZCBzZWVrIHR5cGUgaXMg V0lORE9XX1NFRUtfVEFJTCwgd2Ugc2V0IHRoZQotCQkgKiBtYXJrIHBvc2l0aW9uIHVuY29uZGl0 aW9uYWxseSB0byBmcmFtZWhlYWRwb3MuIEluIHRoaXMgY2FzZSB0aGUKLQkJICogZnJhbWUgYWx3 YXlzIHN0YXJ0cyBhdCBDVVJSRU5UX1JPVyBhbmQgbmV2ZXIgZ29lcyBiYWNrLCB0aHVzCi0JCSAq IHNldHRpbmcgdGhlIG1hcmsgYXQgdGhlIHBvc2l0aW9uIGlzIHNhZmUuCi0JCSAqLwotCQlpZiAo d2luc3RhdGUtPnJwUGF0dGVybiAhPSBOVUxMICYmIHNlZWt0eXBlID09IFdJTkRPV19TRUVLX1RB SUwpCi0JCQltYXJrX3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3M7Ci0JCVdpblNldE1hcmtQ b3NpdGlvbih3aW5vYmosIG1hcmtfcG9zKTsKLQl9Ci0JcmV0dXJuIDA7Ci0KLW91dF9vZl9mcmFt ZToKLQlpZiAoaXNvdXQpCi0JCSppc291dCA9IHRydWU7Ci0JKmlzbnVsbCA9IHRydWU7Ci0JcmV0 dXJuIC0xOwotfQotCiAvKgogICogV2luR2V0RnVuY0FyZ0N1cnJlbnQKICAqCQlFdmFsdWF0ZSBh IHdpbmRvdyBmdW5jdGlvbidzIGFyZ3VtZW50IGV4cHJlc3Npb24gb24gdGhlIGN1cnJlbnQgcm93 LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCAzMjA1NTU5YzAzYS4uNDMxMTQwODhjM2Yg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC00NCwxNCArNDQsMTIgQEAKICNpbmNsdWRl ICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAKLS8qIEZv cndhcmQgZGVjbGFyYXRpb25zIC0gcGF0dGVybiBjb21wYXJpc29uICovCisvKiBGb3J3YXJkIGRl Y2xhcmF0aW9ucyAqLwogc3RhdGljIGJvb2wgcnByUGF0dGVybkVxdWFsKFJQUlBhdHRlcm5Ob2Rl ICphLCBSUFJQYXR0ZXJuTm9kZSAqYik7CiBzdGF0aWMgYm9vbCBycHJQYXR0ZXJuQ2hpbGRyZW5F cXVhbChMaXN0ICphLCBMaXN0ICpiKTsKIAotLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBwYXR0 ZXJuIG9wdGltaXphdGlvbiAoc2hhcmVkKSAqLwogc3RhdGljIFJQUlBhdHRlcm5Ob2RlICp0cnlV bndyYXBTaW5nbGVDaGlsZChSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CiAKLS8qIEZvcndhcmQg ZGVjbGFyYXRpb25zIC0gU0VRIG9wdGltaXphdGlvbiAqLwogc3RhdGljIExpc3QgKmZsYXR0ZW5T ZXFDaGlsZHJlbihMaXN0ICpjaGlsZHJlbik7CiBzdGF0aWMgTGlzdCAqbWVyZ2VDb25zZWN1dGl2 ZVZhcnMoTGlzdCAqY2hpbGRyZW4pOwogc3RhdGljIExpc3QgKm1lcmdlQ29uc2VjdXRpdmVHcm91 cHMoTGlzdCAqY2hpbGRyZW4pOwpAQCAtNTksMjAgKzU3LDE2IEBAIHN0YXRpYyBMaXN0ICptZXJn ZUNvbnNlY3V0aXZlQWx0cyhMaXN0ICpjaGlsZHJlbik7CiBzdGF0aWMgTGlzdCAqbWVyZ2VHcm91 cFByZWZpeFN1ZmZpeChMaXN0ICpjaGlsZHJlbik7CiBzdGF0aWMgUlBSUGF0dGVybk5vZGUgKm9w dGltaXplU2VxUGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CiAKLS8qIEZvcndhcmQg ZGVjbGFyYXRpb25zIC0gQUxUIG9wdGltaXphdGlvbiAqLwogc3RhdGljIExpc3QgKmZsYXR0ZW5B bHRDaGlsZHJlbihMaXN0ICpjaGlsZHJlbik7CiBzdGF0aWMgTGlzdCAqcmVtb3ZlRHVwbGljYXRl QWx0ZXJuYXRpdmVzKExpc3QgKmNoaWxkcmVuKTsKIHN0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqb3B0 aW1pemVBbHRQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKIAotLyogRm9yd2FyZCBk ZWNsYXJhdGlvbnMgLSBHUk9VUCBvcHRpbWl6YXRpb24gKi8KIHN0YXRpYyBSUFJQYXR0ZXJuTm9k ZSAqdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CiBzdGF0 aWMgUlBSUGF0dGVybk5vZGUgKnRyeVVud3JhcEdyb3VwKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJu KTsKIHN0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqb3B0aW1pemVHcm91cFBhdHRlcm4oUlBSUGF0dGVy bk5vZGUgKnBhdHRlcm4pOwogCi0vKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAtIG9wdGltaXphdGlv biBkaXNwYXRjaGVyICovCiBzdGF0aWMgUlBSUGF0dGVybk5vZGUgKm9wdGltaXplUlBSUGF0dGVy bihSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CiAKLS8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0g cGF0dGVybiBjb21waWxhdGlvbiAqLwogc3RhdGljIGludAljb2xsZWN0RGVmaW5lVmFyaWFibGVz KExpc3QgKmRlZmluZVZhcmlhYmxlTGlzdCwgY2hhciAqKnZhck5hbWVzKTsKIHN0YXRpYyB2b2lk IHNjYW5SUFJQYXR0ZXJuUmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFy TmFtZXMsCiAJCQkJCQkJCQlpbnQgKm51bVZhcnMsIGludCAqbnVtRWxlbWVudHMsCkBAIC05Miw3 ICs4Niw2IEBAIHN0YXRpYyBib29sIGZpbGxSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpub2Rl LCBSUFJQYXR0ZXJuICpwYXQsCiAJCQkJCQkgICBpbnQgKmlkeCwgUlBSRGVwdGggZGVwdGgpOwog c3RhdGljIHZvaWQgZmluYWxpemVSUFJQYXR0ZXJuKFJQUlBhdHRlcm4gKnJlc3VsdCk7CiAKLS8q IEZvcndhcmQgZGVjbGFyYXRpb25zIC0gY29udGV4dCBhYnNvcnB0aW9uICovCiBzdGF0aWMgYm9v bCBpc0ZpeGVkTGVuZ3RoQ2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBp ZHgsCiAJCQkJCQkJCSAgUlBSRGVwdGggc2NvcGVEZXB0aCk7CiBzdGF0aWMgYm9vbCBpc1VuYm91 bmRlZFN0YXJ0KFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUkVsZW1JZHggaWR4KTsKQEAgLTEwMSw2 ICs5NCw5IEBAIHN0YXRpYyB2b2lkIGNvbXB1dGVBYnNvcmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBh dHRlcm4gKnBhdHRlcm4sCiAJCQkJCQkJCQkJICBib29sICpoYXNBYnNvcmJhYmxlKTsKIHN0YXRp YyB2b2lkIGNvbXB1dGVBYnNvcmJhYmlsaXR5KFJQUlBhdHRlcm4gKnBhdHRlcm4pOwogCitzdGF0 aWMgdm9pZCBjb2xsZWN0UGF0dGVyblZhcmlhYmxlc1JlY3Vyc2l2ZShSUFJQYXR0ZXJuTm9kZSAq bm9kZSwKKwkJCQkJCQkJCQkJIExpc3QgKip2YXJOYW1lcyk7CisKIC8qCiAgKiBycHJQYXR0ZXJu RXF1YWwKICAqCQlDb21wYXJlIHR3byBSUFJQYXR0ZXJuTm9kZSB0cmVlcyBmb3IgZXF1YWxpdHku CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggMzg3MjAzNTExMGEuLmM5NDY5YjU2YjdiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3Jwci5jCkBAIC02MSw4ICs2MSw4IEBAIHN0YXRpYyB2b2lkIHZhbGlkYXRl UlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUlBSUGF0dGVybk5vZGUgKm5v ZGUsCiAJCQkJCQkJCQkgICBMaXN0ICpycERlZnMsIExpc3QgKip2YXJOYW1lcyk7CiBzdGF0aWMg TGlzdCAqdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xh dXNlICp3YywKIAkJCQkJCQkJICAgV2luZG93RGVmICp3aW5kZWYsIExpc3QgKip0YXJnZXRsaXN0 KTsKLXN0YXRpYyBib29sIGRlZmluZV93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7 CiBzdGF0aWMgYm9vbCBuYXZfdm9sYXRpbGVfZnVuY19jaGVja2VyKE9pZCBmdW5jaWQsIHZvaWQg KmNvbnRleHQpOworc3RhdGljIGJvb2wgZGVmaW5lX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpj b250ZXh0KTsKIAogLyoKICAqIHRyYW5zZm9ybVJQUgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1 KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0047-Update-the-varId-documentation-for-row-pattern-re.txt" Content-Disposition: attachment; filename="nocfbot-0047-Update-the-varId-documentation-for-row-pattern-re.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsk46 RnJvbSAwNGYxOGM1ODY2NjlhZjIyZWVmMjZlYWI3ZjdjYjM4M2YwY2NmNmQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTI6NDU6MDkgKzA5MDAKU3ViamVjdDogW1BBVENIIDQ3LzY4XSBV cGRhdGUgdGhlIHZhcklkIGRvY3VtZW50YXRpb24gZm9yIHJvdyBwYXR0ZXJuCiByZWNvZ25pdGlv bgoKUmVzZXJ2aW5nIHRoZSB3aG9sZSBoaWdoIHZhcklkIG5pYmJsZSAoMHhGMC0weEZGKSBmb3Ig Y29udHJvbCBlbGVtZW50cwpsZWZ0IDI0MCBwYXR0ZXJuIHZhcmlhYmxlcyAoMHgwMC0weEVGKSwg YnV0IHRoZSBkb2N1bWVudGF0aW9uIHN0aWxsCmRlc2NyaWJlZCB0aGUgb2xkIDAtMjUwIC8gMjUy LTI1NSBsYXlvdXQuCgpVcGRhdGUgUkVBRE1FLnJwcidzIGVsZW1lbnQgdGFibGUgYW5kIGNvbnRy b2wtY29kZSBsaXN0IHRvIHRoZSBoZXgKbmliYmxlIGJvdW5kYXJpZXMsIG5vdGUgdGhlIDB4RjAt MHhGQiBzcGFyZSByYW5nZSwgYW5kIGNvcnJlY3QgdGhlCnVzZXItZmFjaW5nIGxpbWl0IGluIHNl bGVjdC5zZ21sIGZyb20gMjUxIHRvIDI0MCB1bmlxdWUgcGF0dGVybgp2YXJpYWJsZXMuCgpEb2N1 bWVudGF0aW9uIG9ubHkuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbCAgICB8ICAy ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByIHwgMTUgKysrKysrKysrKy0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv c2VsZWN0LnNnbWwKaW5kZXggZTQ3MDgzMzE0MzkuLmJlNWVkODE0ODUzIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0 LnNnbWwKQEAgLTExOTgsNyArMTE5OCw3IEBAIERFRklORSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGVmaW5pdGlvbl92YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gQVMKIAogICAg PHBhcmE+CiAgICAgTm90ZSB0aGF0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB1bmlxdWUgcGF0dGVy biB2YXJpYWJsZXMKLSAgICB1c2VkIGluIHRoZSA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBj bGF1c2UgaXMgMjUxLgorICAgIHVzZWQgaW4gdGhlIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+ IGNsYXVzZSBpcyAyNDAuCiAgICAgSWYgdGhpcyBsaW1pdCBpcyBleGNlZWRlZCwgYW4gZXJyb3Ig d2lsbCBiZSByYWlzZWQuCiAgICAgQWRkaXRpb25hbGx5LCB0aGUgbWF4aW11bSBuZXN0aW5nIGRl cHRoIG9mIHBhdHRlcm4gZ3JvdXBzCiAgICAgKHBhcmVudGhlc2VzKSBpcyAyNTMgbGV2ZWxzLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL1JFQURNRS5ycHIKaW5kZXggM2EyMTVmMjU2NmIuLjU1Zjg5OWY3ZmVmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL1JFQURNRS5ycHIKQEAgLTI0Niw3ICsyNDYsNyBAQCBSUFJQYXR0ZXJuRWxlbWVu dCBzdHJ1Y3QgKDE2IGJ5dGVzKToKIAogICBGaWVsZCAgICAgIFNpemUgICAgIERlc2NyaXB0aW9u CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotICB2YXJJZCAgICAgIDFCICAgICAgVmFyaWFibGUgSUQgKDAtMjUwKSBvciBjb250cm9s IGNvZGUgKDI1Mi0yNTUpCisgIHZhcklkICAgICAgMUIgICAgICBWYXJpYWJsZSBJRCAoMC0weEVG KSBvciBjb250cm9sIGNvZGUgKDB4RkMtMHhGRikKICAgZGVwdGggICAgICAxQiAgICAgIEdyb3Vw IG5lc3RpbmcgZGVwdGgKICAgZmxhZ3MgICAgICAxQiAgICAgIEJpdCBmbGFncyAoc2VlIGJlbG93 KQogICByZXNlcnZlZCAgIDFCICAgICAgUGFkZGluZwpAQCAtMjU1LDEyICsyNTUsMTcgQEAgUlBS UGF0dGVybkVsZW1lbnQgc3RydWN0ICgxNiBieXRlcyk6CiAgIG5leHQgICAgICAgMkIgICAgICBO ZXh0IGVsZW1lbnQgaW5kZXggKHNlcXVlbnRpYWwgZmxvdykKICAganVtcCAgICAgICAyQiAgICAg IEJyYW5jaCB0YXJnZXQgaW5kZXggKGZvciBBTFQvR1JPVVApCiAKK1BhdHRlcm4gdmFyaWFibGVz IG9jY3VweSB2YXJJZCAwIHRvIFJQUl9WQVJJRF9NQVggKDB4RUYpIGluY2x1c2l2ZSwKK2dpdmlu ZyAyNDAgZGlzdGluY3QgdmFyaWFibGVzLiAgQW55IHZhcklkIHdpdGggdGhlIGhpZ2ggbmliYmxl IHNldAorKDB4RjAtMHhGRikgaXMgcmVzZXJ2ZWQgZm9yIGNvbnRyb2wgZWxlbWVudHM7IDB4RjAt MHhGQiBhcmUgY3VycmVudGx5CitzcGFyZS4KKwogQ29udHJvbCBjb2RlczoKIAotICBSUFJfVkFS SURfQkVHSU4gKDI1MikgIEdyb3VwIHN0YXJ0IG1hcmtlcgotICBSUFJfVkFSSURfRU5EICAgKDI1 MykgIEdyb3VwIGVuZCBtYXJrZXIKLSAgUlBSX1ZBUklEX0FMVCAgICgyNTQpICBBbHRlcm5hdGlv biBzdGFydCBtYXJrZXIKLSAgUlBSX1ZBUklEX0ZJTiAgICgyNTUpICBQYXR0ZXJuIGNvbXBsZXRp b24gbWFya2VyCisgIFJQUl9WQVJJRF9CRUdJTiAoMHhGQykgIEdyb3VwIHN0YXJ0IG1hcmtlcgor ICBSUFJfVkFSSURfRU5EICAgKDB4RkQpICBHcm91cCBlbmQgbWFya2VyCisgIFJQUl9WQVJJRF9B TFQgICAoMHhGRSkgIEFsdGVybmF0aW9uIHN0YXJ0IG1hcmtlcgorICBSUFJfVkFSSURfRklOICAg KDB4RkYpICBQYXR0ZXJuIGNvbXBsZXRpb24gbWFya2VyCiAKIEVsZW1lbnQgZmxhZ3MgKDEgYnl0 ZSwgYml0bWFzayk6CiAKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0048-Reformat-the-design-decisions-chapter-in-the-row-.txt" Content-Disposition: attachment; filename="nocfbot-0048-Reformat-the-design-decisions-chapter-in-the-row-.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsm47 RnJvbSBjMjUzOTM4ODEwMWVhZjhjOWNjNWZhMTk4YTNiOTBkN2U5MzQ2ODg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTM6MDc6MjIgKzA5MDAKU3ViamVjdDogW1BBVENIIDQ4LzY4XSBS ZWZvcm1hdCB0aGUgZGVzaWduLWRlY2lzaW9ucyBjaGFwdGVyIGluIHRoZSByb3cKIHBhdHRlcm4g cmVjb2duaXRpb24gUkVBRE1FCgpDaGFwdGVyIFhJSSByZWNvcmRlZCBlYWNoIGtleSBkZXNpZ24g ZGVjaXNpb24gYXMgYSAiQ2hvaWNlOiIgbGluZSBwbHVzIGEKYnVsbGV0ZWQgIlJhdGlvbmFsZToi IGxpc3QuICBSZXdyaXRlIFhJSS0xIHRocm91Z2ggWElJLTQgYXMgcHJvc2UgaW5zdGVhZAotLSBh IHNob3J0IHBhcmFncmFwaCBzdGF0aW5nIHRoZSBkZWNpc2lvbiwgZm9sbG93ZWQgYnkgYSBwYXJh Z3JhcGggZm9yCml0cyByYXRpb25hbGUgLS0gdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIGZpbGUu ICBObyByYXRpb25hbGUgaXMgZHJvcHBlZC4KClhJSS00IGFsc28gcGlja3MgdXAgdGhlIGRldGFp bCwgbm90ZWQgYnkgSmlhbiBIZSwgdGhhdCB0aGUgc3RhdGUgYW5kCmNvbnRleHQgc3RydWN0dXJl cyBsaXZlIGluIGEgcGFydGl0aW9uLWxpZmVzcGFuIG1lbW9yeSBjb250ZXh0IHRoYXQgaXMKZnJl ZWQgaW4gcmVsZWFzZV9wYXJ0aXRpb24uCgpEb2N1bWVudGF0aW9uIG9ubHkuCi0tLQogc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9SRUFETUUucnByCmluZGV4IDU1Zjg5OWY3ZmVmLi5kZjU3NGEwYTZmNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwcgorKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9SRUFETUUucnByCkBAIC0xMzIwLDQ3ICsxMzIwLDQ1IEBAIENoYXB0ZXIg WElJICBTdW1tYXJ5IG9mIEtleSBEZXNpZ24gRGVjaXNpb25zCiAKIFhJSS0xLiBGbGF0IEFycmF5 IHZzIFRyZWUtQmFzZWQgTkZBCiAKLSAgQ2hvaWNlOiBGbGF0IGFycmF5IChSUFJQYXR0ZXJuRWxl bWVudFtdKQorICBUaGUgY29tcGlsZWQgcGF0dGVybiBpcyBzdG9yZWQgYXMgYSBmbGF0IGFycmF5 IG9mIGZpeGVkLXNpemUgMTYtYnl0ZQorICBSUFJQYXR0ZXJuRWxlbWVudCBzdHJ1Y3RzIHJhdGhl ciB0aGFuIGFzIGEgdHJlZS4KIAotICBSYXRpb25hbGU6Ci0gIC0gQ2FjaGUtZnJpZW5kbHk6IDE2 LWJ5dGUgZml4ZWQgc2l6ZSwgY29udGlndW91cyBtZW1vcnkKLSAgLSBJbmRleC1iYXNlZCByZWZl cmVuY2VzOiAyLWJ5dGUgaW5kaWNlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzCi0gIC0gRWFzeSB0byBz ZXJpYWxpemU6IGNhbiB1c2UgbWVtY3B5IHdoZW4gcGFzc2luZyB0byBwbGFuIG5vZGVzCisgIFRo ZSBhcnJheSBpcyBjb250aWd1b3VzIGFuZCBjYWNoZS1mcmllbmRseSwgZWxlbWVudHMgcmVmZXJl bmNlIGVhY2gKKyAgb3RoZXIgYnkgMi1ieXRlIGluZGV4IGluc3RlYWQgb2YgYnkgcG9pbnRlciwg YW5kIHRoZSB3aG9sZSBzdHJ1Y3R1cmUKKyAgY2FuIGJlIHNlcmlhbGl6ZWQgd2l0aCBtZW1jcHkg d2hlbiBwYXNzZWQgdG8gcGxhbiBub2Rlcy4KIAogWElJLTIuIEZvcndhcmQtb25seSBFeGVjdXRp b24gdnMgQmFja3RyYWNraW5nCiAKLSAgQ2hvaWNlOiBGb3J3YXJkLW9ubHkgKHN0YXRlIHNldCB0 cmFja2luZykKKyAgVGhlIE5GQSBpcyBzaW11bGF0ZWQgZm9yd2FyZC1vbmx5LCB0cmFja2luZyBh IHNldCBvZiBsaXZlIHN0YXRlcywKKyAgcmF0aGVyIHRoYW4gYnkgYmFja3RyYWNraW5nLgogCi0g IFJhdGlvbmFsZToKLSAgLSBCYWNrdHJhY2tpbmcgdGFrZXMgZXhwb25lbnRpYWwgdGltZSBpbiB0 aGUgd29yc3QgY2FzZQotICAtIE5GQSBzaW11bGF0aW9uIGd1YXJhbnRlZXMgcG9seW5vbWlhbCB0 aW1lCi0gIC0gREZTIG9yZGVyIG5hdHVyYWxseSBndWFyYW50ZWVzIHByZWZlcm1lbnQuCi0gICAg R3JlZWR5L3JlbHVjdGFudCBwZXIgcXVhbnRpZmllciByZXF1aXJlcyBvbmx5IHJldmVyc2luZyB0 aGUgREZTIG9yZGVyCi0gIC0gV2luZG93IGZ1bmN0aW9ucyByZWNlaXZlIHNvcnRlZCByb3dzIHNl cXVlbnRpYWxseS4KLSAgICBGb3J3YXJkLW9ubHkgZml0cyBkaXJlY3RseSBpbnRvIHRoaXMgcGlw ZWxpbmUsCi0gICAgd2hlcmVhcyBiYWNrdHJhY2tpbmcgcmVxdWlyZXMgcmUtZmV0Y2hpbmcgcHJl dmlvdXMgcm93cwotICAtIERFRklORSBjb25kaXRpb25zIGFyZSBTUUwgZXhwcmVzc2lvbnMgKFBS RVYsIFJVTk5JTkcgYWdncmVnYXRlcywgZXRjLikKLSAgICB3aXRoIGhpZ2ggcmUtZXZhbHVhdGlv biBjb3N0LiBGb3J3YXJkLW9ubHkgcmVxdWlyZXMgb25seSBvbmUgZXZhbHVhdGlvbgotICAgIHBl ciByb3cKKyAgQmFja3RyYWNraW5nIHdvdWxkIHRha2UgZXhwb25lbnRpYWwgdGltZSBpbiB0aGUg d29yc3QgY2FzZSwgd2hlcmVhcworICBmb3J3YXJkLW9ubHkgTkZBIHNpbXVsYXRpb24gaXMgcG9s eW5vbWlhbC4gIEZvcndhcmQtb25seSBhbHNvIGZpdHMgdGhlCisgIHdpbmRvdyBwaXBlbGluZSwg d2hpY2ggZGVsaXZlcnMgc29ydGVkIHJvd3Mgc2VxdWVudGlhbGx5OiBpdCBuZWVkcyBubworICBy ZS1mZXRjaGluZyBvZiBlYXJsaWVyIHJvd3MsIGFuZCBlYWNoIHJvdydzIERFRklORSBjb25kaXRp b25zIChTUUwKKyAgZXhwcmVzc2lvbnMgc3VjaCBhcyBQUkVWIG9yIHJ1bm5pbmcgYWdncmVnYXRl cywgd2l0aCBoaWdoIHJlLWV2YWx1YXRpb24KKyAgY29zdCkgYXJlIGV2YWx1YXRlZCBvbmx5IG9u Y2UuICBERlMgb3JkZXIgeWllbGRzIHByZWZlcm1lbnQgbmF0dXJhbGx5LAorICB3aXRoIGdyZWVk eSBvciByZWx1Y3RhbnQgYmVoYXZpb3IgcGVyIHF1YW50aWZpZXIgb2J0YWluZWQgYnkgcmV2ZXJz aW5nCisgIHRoYXQgb3JkZXIuCiAKIFhJSS0zLiBQZXItQ29udGV4dCBNYW5hZ2VtZW50CiAKLSAg Q2hvaWNlOiBJbmRlcGVuZGVudCBjb250ZXh0IHBlciBzdGFydCByb3cKKyAgQSBzZXBhcmF0ZSBt YXRjaCBjb250ZXh0IGlzIG1haW50YWluZWQgZm9yIGVhY2ggc3RhcnQgcm93LgogCi0gIFJhdGlv bmFsZToKLSAgLSBTdXBwb3J0cyBvdmVybGFwcGluZyBtYXRjaGVzIHVuZGVyIFNLSVAgVE8gTkVY VCBST1cKLSAgLSBEZXRlcm1pbmVzIHRoZSBmcmFtZSBmb3IgZWFjaCByb3cgaW5kZXBlbmRlbnRs eQotICAtIEFic29ycHRpb24gb3B0aW1pemF0aW9uIGNhbiBlbGltaW5hdGUgcmVkdW5kYW50IGNv bnRleHRzIGluIE8obikKKyAgVGhpcyBzdXBwb3J0cyBvdmVybGFwcGluZyBtYXRjaGVzIHVuZGVy IFNLSVAgVE8gTkVYVCBST1csIGRldGVybWluZXMKKyAgZWFjaCByb3cncyBmcmFtZSBpbmRlcGVu ZGVudGx5LCBhbmQgbGV0cyB0aGUgYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24KKyAgZWxpbWluYXRl IHJlZHVuZGFudCBjb250ZXh0cyBpbiBPKG4pLgogCiBYSUktNC4gTWVtb3J5IFBvb2wgTWFuYWdl bWVudAogCi0gIENob2ljZTogQ3VzdG9tIGZyZWUgbGlzdAorICBORkEgc3RhdGVzIGFyZSBtYW5h Z2VkIHRocm91Z2ggYSBjdXN0b20gZnJlZSBsaXN0LCBhbmQgYm90aCBSUFJORkFTdGF0ZQorICBh bmQgUlBSTkZBQ29udGV4dCBhcmUgYWxsb2NhdGVkIGluIGEgcGFydGl0aW9uLWxpZmVzcGFuIG1l bW9yeSBjb250ZXh0CisgIHRoYXQgaXMgZnJlZWQgaW4gcmVsZWFzZV9wYXJ0aXRpb24uCiAKLSAg UmF0aW9uYWxlOgotICAtIE5GQSBzdGF0ZXMgYXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCBpbiBs YXJnZSBudW1iZXJzIHBlciByb3cKLSAgLSBBdm9pZHMgcGFsbG9jL3BmcmVlIG92ZXJoZWFkCi0g IC0gU3RhdGUgc2l6ZSBpcyB2YXJpYWJsZSAoY291bnRzW10gYXJyYXkpLCBidXQgd2l0aGluIGEg c2luZ2xlIHF1ZXJ5Ci0gICAgbWF4RGVwdGggaXMgZml4ZWQsIHNvIGFsbCBzdGF0ZXMgaGF2ZSB0 aGUgc2FtZSBzaXplCisgIE5GQSBzdGF0ZXMgYXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCBpbiBs YXJnZSBudW1iZXJzIHBlciByb3csIHNvIHRoZQorICBmcmVlIGxpc3QgYXZvaWRzIHBhbGxvYy9w ZnJlZSBvdmVyaGVhZC4gIFRoZWlyIHNpemUgdmFyaWVzICh0aGUKKyAgY291bnRzW10gYXJyYXkp LCBidXQgbWF4RGVwdGggaXMgZml4ZWQgd2l0aGluIGEgc2luZ2xlIHF1ZXJ5LCBzbyBhbGwKKyAg c3RhdGVzIGhhdmUgdGhlIHNhbWUgc2l6ZS4KIAogWElJLTUuIEV4ZWN1dGlvbiBPcHRpbWl6YXRp b24gU3VtbWFyeQogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0049-Point-to-the-absorption-analysis-docs-from-the-RP.txt" Content-Disposition: attachment; filename="nocfbot-0049-Point-to-the-absorption-analysis-docs-from-the-RP.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jso48 RnJvbSBhY2MwZWJmZGEwNTNiODIwNmI2YzMzNmE2ODIyOWM3ZDcyNGFlYThkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTM6MTQ6MDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDQ5LzY4XSBQ b2ludCB0byB0aGUgYWJzb3JwdGlvbi1hbmFseXNpcyBkb2NzIGZyb20gdGhlIFJQUiBmbGFnCiBk ZWZpbml0aW9ucwoKVGhlIFJQUl9FTEVNX0FCU09SQkFCTEUgYW5kIFJQUl9FTEVNX0FCU09SQkFC TEVfQlJBTkNIIGVsZW1lbnQgZmxhZ3MgYXJlCmRlc2NyaWJlZCBpbiBSRUFETUUucnByIGFuZCBj b21wdXRlZCBpbiBycHIuYywgYnV0IHRoZSBycHIuaCBkZWZpbml0aW9ucwpnYXZlIG5vIGhpbnQg b2Ygd2hlcmUgdG8gbG9vay4gIEFkZCBhIHNob3J0IHBvaW50ZXIgY29tbWVudCB0bwpSRUFETUUu cnByIElWLTUgKCJBYnNvcmJhYmlsaXR5IEFuYWx5c2lzIiksIGl0cyBBcHBlbmRpeCBDIGV4YW1w bGVzLCBhbmQKY29tcHV0ZUFic29yYmFiaWxpdHkoKSwgd2l0aG91dCByZXN0YXRpbmcgdGhlIGV4 cGxhbmF0aW9uLgoKRG9jdW1lbnRhdGlvbiBvbmx5LgoKUGVyIGFuIG9mZi1saXN0IHJldmlldyBj b21tZW50IGZyb20gSmlhbiBIZS4KLS0tCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmggfCA2 ICsrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL29wdGltaXplci9ycHIuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApp bmRleCAyZmE0ODMzMjBjZS4uNzNjODI3ZGUyYjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29w dGltaXplci9ycHIuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKQEAgLTQ0LDYg KzQ0LDEyIEBACiAJCQkJCQkJCQkJCSAqIHF1YW50aWZpZXIgKi8KICNkZWZpbmUgUlBSX0VMRU1f RU1QVFlfTE9PUAkJCTB4MDIJLyogRU5EOiBncm91cCBib2R5IGNhbiBwcm9kdWNlCiAJCQkJCQkJ CQkJCSAqIGVtcHR5IG1hdGNoICovCisvKgorICogVGhlIHR3byBhYnNvcnB0aW9uIGZsYWdzIGJl bG93IGFyZSBleHBsYWluZWQgaW4gUkVBRE1FLnJwciBJVi01CisgKiAoIkFic29yYmFiaWxpdHkg QW5hbHlzaXMiKSwgd2l0aCB3b3JrZWQgZXhhbXBsZXMgaW4gQXBwZW5kaXggQzsgdGhlCisgKiBh bmFseXNpcyB0aGF0IHNldHMgdGhlbSBpcyBjb21wdXRlQWJzb3JiYWJpbGl0eSgpIGluCisgKiBv cHRpbWl6ZXIvcGxhbi9ycHIuYy4KKyAqLwogI2RlZmluZSBSUFJfRUxFTV9BQlNPUkJBQkxFX0JS QU5DSAkweDA0CS8qIGVsZW1lbnQgaW4gYWJzb3JiYWJsZSByZWdpb24gKi8KICNkZWZpbmUgUlBS X0VMRU1fQUJTT1JCQUJMRQkJCTB4MDgJLyogYWJzb3JwdGlvbiBqdWRnbWVudCBwb2ludCAqLwog Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0050-Fix-signed-integer-overflow-in-row-pattern-recogn.txt" Content-Disposition: attachment; filename="nocfbot-0050-Fix-signed-integer-overflow-in-row-pattern-recogn.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq618jsp49 RnJvbSA4ZTgwNmUzMGZkOGE3ZGNiZWIxOGUxM2ZhY2NkNTBjZGVmZjBmOTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTM6MzE6MjAgKzA5MDAKU3ViamVjdDogW1BBVENIIDUwLzY4XSBG aXggc2lnbmVkLWludGVnZXIgb3ZlcmZsb3cgaW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIGZy YW1lLWVuZCBjbGFtcAoKRXhlY1JQUlByb2Nlc3NSb3coKSBjb21wdXRlZCAiZnJhbWVPZmZzZXQg KyAxIiBiZWZvcmUgcGFzc2luZyBpdCB0bwpwZ19hZGRfczY0X292ZXJmbG93KCksIHNvIGEgRk9M TE9XSU5HIG9mZnNldCBuZWFyIFBHX0lOVDY0X01BWCBtYWRlCnRoYXQgYWRkIG92ZXJmbG93IG9u IGl0cyBvd24gLS0gdW5kZWZpbmVkIGJlaGF2aW9yIHRoYXQgY3Jhc2hlZApjYXNzZXJ0IGJ1aWxk cyBhbmQgZ2F2ZSB3cm9uZyByZXN1bHRzIG90aGVyd2lzZS4KCkFkZCB0aGUgb2Zmc2V0IGFuZCB0 aGUgKzEgaW4gdHdvIHNlcGFyYXRlbHkgY2hlY2tlZCBzdGVwcywgY2xhbXBpbmcgdG8KUEdfSU5U NjRfTUFYIG9uIG92ZXJmbG93LCBhcyBjb3JlIFdpbmRvd0FnZyBhbHJlYWR5IGRvZXMuICBUaGUg Y2xhbXAgaXMKc2FmZSBiZWNhdXNlIHRoZSBwYXJ0aXRpb24gcm93IGNvdW50IGlzIGFuIGludDY0 LCBzbyBubyByb3cgZXZlciBzaXRzCmF0IHRoYXQgcG9zaXRpb247IGEgaHVnZSBGT0xMT1dJTkcg b2Zmc2V0IHRodXMgYmVoYXZlcyBsaWtlIFVOQk9VTkRFRApGT0xMT1dJTkcuICBBbHNvIGFkZCBh IHJlZ3Jlc3Npb24gdGVzdC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAg ICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9iYXNlLm91dCB8IDI1ICsrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsICAgICAgfCAxNiArKysrKysrKysrKysrCiAzIGZpbGVz IGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JQUi5jCmluZGV4IDU2Mzk5YzBjN2ZkLi42OWUzNjAzYWRlZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYwpAQCAtMTc4NCw5ICsxNzg0LDE1IEBAIEV4ZWNSUFJQcm9jZXNzUm93KFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgaW50NjQgY3VycmVudFBvcywKIAkJewogCQkJaW50NjQJCWN0eEZyYW1l RW5kOwogCi0JCQkvKiBDbGFtcCB0byBJTlQ2NF9NQVggb24gb3ZlcmZsb3cgKi8KLQkJCWlmIChw Z19hZGRfczY0X292ZXJmbG93KGN0eC0+bWF0Y2hTdGFydFJvdywgZnJhbWVPZmZzZXQgKyAxLAot CQkJCQkJCQkJJmN0eEZyYW1lRW5kKSkKKwkJCS8qCisJCQkgKiBDbGFtcCB0byBJTlQ2NF9NQVgg b24gb3ZlcmZsb3cuICBmcmFtZU9mZnNldCBjYW4gYmUgYXMgbGFyZ2UgYXMKKwkJCSAqIFBHX0lO VDY0X01BWCAoZS5nLiAiUk9XUyA8aHVnZT4gRk9MTE9XSU5HIiksIHNvIGFkZCB0aGUgb2Zmc2V0 CisJCQkgKiBhbmQgdGhlIHRyYWlsaW5nICsxIGluIHR3byBzZXBhcmF0ZWx5IGNoZWNrZWQgc3Rl cHMgdG8gYXZvaWQKKwkJCSAqIHNpZ25lZC1pbnRlZ2VyIG92ZXJmbG93IGluIHRoZSAiZnJhbWVP ZmZzZXQgKyAxIiBzdWJleHByZXNzaW9uLgorCQkJICovCisJCQlpZiAocGdfYWRkX3M2NF9vdmVy ZmxvdyhjdHgtPm1hdGNoU3RhcnRSb3csIGZyYW1lT2Zmc2V0LAorCQkJCQkJCQkJJmN0eEZyYW1l RW5kKSB8fAorCQkJCXBnX2FkZF9zNjRfb3ZlcmZsb3coY3R4RnJhbWVFbmQsIDEsICZjdHhGcmFt ZUVuZCkpCiAJCQkJY3R4RnJhbWVFbmQgPSBQR19JTlQ2NF9NQVg7CiAKIAkJCS8qCkBAIC0xODQ0 LDEwICsxODUwLDIzIEBAIEV4ZWNSUFJQcm9jZXNzUm93KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgaW50NjQgY3VycmVudFBvcywKIAkJICogbWlzbWF0Y2ggKG5mYV9tYXRjaCB3aXRoIE5VTEwp LCB3aGljaCByZW1vdmVzIGFsbCBzdGF0ZXMgKGFsbAogCQkgKiBzdGF0ZXMgYXJlIGF0IFZBUiBw b3NpdGlvbnMgYWZ0ZXIgYWR2YW5jZSkuIFNvIGFueSBzdXJ2aXZpbmcKIAkJICogY29udGV4dCBo ZXJlIG11c3QgYmUgd2l0aGluIGl0cyBmcmFtZSBib3VuZGFyeS4KKwkJICoKKwkJICogQ29tcHV0 ZSB0aGUgKGNsYW1wZWQpIGZyYW1lIGVuZCB0aGUgc2FtZSB3YXkgYXMgUGhhc2UgMSwgdXNpbmcg dHdvCisJCSAqIHNlcGFyYXRlbHkgY2hlY2tlZCBhZGRzIHNvIHRoYXQgImZyYW1lT2Zmc2V0ICsg MSIgY2Fubm90IG92ZXJmbG93CisJCSAqIHdoZW4gZnJhbWVPZmZzZXQgaXMgbmVhciBQR19JTlQ2 NF9NQVguCiAJCSAqLwotCQlBc3NlcnQoIWhhc0xpbWl0ZWRGcmFtZSB8fAotCQkJICAgY3R4LT5t YXRjaFN0YXJ0Um93ID4gUEdfSU5UNjRfTUFYIC0gZnJhbWVPZmZzZXQgLSAxIHx8Ci0JCQkgICBj dXJyZW50UG9zIDwgY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxKTsKKyNpZmRl ZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJCWlmIChoYXNMaW1pdGVkRnJhbWUpCisJCXsKKwkJCWlu dDY0CQljdHhGcmFtZUVuZDsKKworCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coY3R4LT5tYXRj aFN0YXJ0Um93LCBmcmFtZU9mZnNldCwKKwkJCQkJCQkJCSZjdHhGcmFtZUVuZCkgfHwKKwkJCQlw Z19hZGRfczY0X292ZXJmbG93KGN0eEZyYW1lRW5kLCAxLCAmY3R4RnJhbWVFbmQpKQorCQkJCWN0 eEZyYW1lRW5kID0gUEdfSU5UNjRfTUFYOworCQkJQXNzZXJ0KGN1cnJlbnRQb3MgPCBjdHhGcmFt ZUVuZCk7CisJCX0KKyNlbmRpZgogCiAJCW5mYV9hZHZhbmNlKHdpbnN0YXRlLCBjdHgsIGN1cnJl bnRQb3MpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jh c2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMTQx MGJhNzUzOTUuLjRmZTczNjAxMTRmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNl Lm91dApAQCAtNjQzLDYgKzY0MywzMSBAQCBPUkRFUiBCWSBpZDsKICAgNiB8ICAzMCB8ICAgMQog KDYgcm93cykKIAorLS0gaW50NjQgZnJhbWUtZW5kIG92ZXJmbG93OiBhIGh1Z2UgRk9MTE9XSU5H IG9mZnNldCBtdXN0IGNsYW1wIHRvIHRoZQorLS0gcGFydGl0aW9uIGVuZCAobWF0Y2hTdGFydFJv dyArIG9mZnNldCArIDEgb3ZlcmZsb3dzIGludDY0OyB0aGUgY2xhbXAgbWFrZXMKKy0tIGl0IGJl aGF2ZSBsaWtlIFVOQk9VTkRFRCBGT0xMT1dJTkcpLiAgR3VhcmRzIGFnYWluc3Qgc2lnbmVkLWlu dGVnZXIgb3ZlcmZsb3cKKy0tIGluIHRoZSAiZnJhbWVPZmZzZXQgKyAxIiBzdWJleHByZXNzaW9u ICh1bmRlZmluZWQgYmVoYXZpb3IpLiAgVGhlIGNudCB2YWx1ZXMKKy0tIG11c3QgbWF0Y2ggdGhl IFVOQk9VTkRFRCBGT0xMT1dJTkcgcmVzdWx0IGZvciB0aGUgc2FtZSBkYXRhLgorU0VMRUNUIGlk LCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDky MjMzNzIwMzY4NTQ3NzU4MDYgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVS IEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwg ICA2CisgIDIgfCAgMTAgfCAgIDUKKyAgMyB8ICAxMCB8ICAgNAorICA0IHwgIDIwIHwgICAzCisg IDUgfCAgMjAgfCAgIDIKKyAgNiB8ICAzMCB8ICAgMQorKDYgcm93cykKKwogLS0gUkFOR0UgZnJh bWUgd2l0aCBSUFIgKG5vdCBwZXJtaXR0ZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZF UiB3IGFzIGNudAogRlJPTSBycHJfZnJhbWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRl eCA1M2JmMDkwYjkwMy4uYzZmY2ZhM2U5ZmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwK QEAgLTUxNSw2ICs1MTUsMjIgQEAgV0lORE9XIHcgQVMgKAogKQogT1JERVIgQlkgaWQ7CiAKKy0t IGludDY0IGZyYW1lLWVuZCBvdmVyZmxvdzogYSBodWdlIEZPTExPV0lORyBvZmZzZXQgbXVzdCBj bGFtcCB0byB0aGUKKy0tIHBhcnRpdGlvbiBlbmQgKG1hdGNoU3RhcnRSb3cgKyBvZmZzZXQgKyAx IG92ZXJmbG93cyBpbnQ2NDsgdGhlIGNsYW1wIG1ha2VzCistLSBpdCBiZWhhdmUgbGlrZSBVTkJP VU5ERUQgRk9MTE9XSU5HKS4gIEd1YXJkcyBhZ2FpbnN0IHNpZ25lZC1pbnRlZ2VyIG92ZXJmbG93 CistLSBpbiB0aGUgImZyYW1lT2Zmc2V0ICsgMSIgc3ViZXhwcmVzc2lvbiAodW5kZWZpbmVkIGJl aGF2aW9yKS4gIFRoZSBjbnQgdmFsdWVzCistLSBtdXN0IG1hdGNoIHRoZSBVTkJPVU5ERUQgRk9M TE9XSU5HIHJlc3VsdCBmb3IgdGhlIHNhbWUgZGF0YS4KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgq KSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCA5MjIzMzcyMDM2ODU0Nzc1 ODA2IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKwogLS0g UkFOR0UgZnJhbWUgd2l0aCBSUFIgKG5vdCBwZXJtaXR0ZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09V TlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfZnJhbWUKLS0gCjIuNTAuMSAoQXBwbGUgR2l0 LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0052-Handle-row-pattern-navigation-nodes-in-exprTypmod.txt" Content-Disposition: attachment; filename="nocfbot-0052-Handle-row-pattern-navigation-nodes-in-exprTypmod.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wofr51 RnJvbSA4YjMyNWM1NzJiNjM4NTk3ODE4NzljZjY0NWU3ZWI4NzUyMWUxMTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTY6NTI6MzggKzA5MDAKU3ViamVjdDogW1BBVENIIDUyLzY4XSBI YW5kbGUgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBub2RlcyBpbiBleHByVHlwbW9kIGFuZAogaXNT aW1wbGVOb2RlCgpSUFJOYXZFeHByLCB0aGUgUFJFVi9ORVhUL0ZJUlNUL0xBU1QgbmF2aWdhdGlv biBub2RlIHVzZWQgaW4gYSByb3cKcGF0dGVybiBERUZJTkUgY2xhdXNlLCB3YXMgbWlzc2luZyBm cm9tIHR3byB0eXBlLWhlbHBlciBzd2l0Y2hlcyBhbmQKZmVsbCB0aHJvdWdoIHRvIHRoZWlyIGRl ZmF1bHRzLgoKSW4gZXhwclR5cG1vZCgpIHRoZSBkZWZhdWx0IHJldHVybnMgLTEsIHNvIHRoZSBh cmd1bWVudCdzIHR5cG1vZCB3YXMKZHJvcHBlZC4gIEEgbmF2aWdhdGlvbiBleHByZXNzaW9uIGV2 YWx1YXRlcyBpdHMgYXJndW1lbnQgb24gYW5vdGhlciByb3cKd2l0aG91dCBjaGFuZ2luZyBpdHMg dHlwZSwgc28gaXRzIHJlc3VsdCBoYXMgdGhlIHNhbWUgdHlwZSBhbmQgdHlwbW9kCmFzIHRoZSBh cmd1bWVudDsgcmV0dXJuIHRoZSBhcmd1bWVudCdzIHR5cG1vZCwgbWF0Y2hpbmcgaG93IGV4cHJU eXBlKCkKYWxyZWFkeSByZXBvcnRzIGl0cyByZXN1bHQgdHlwZS4KCkluIGlzU2ltcGxlTm9kZSgp IHRoZSBkZWZhdWx0IHJldHVybnMgZmFsc2UsIHdoaWNoIG1hZGUgcHJldHR5LXByaW50aW5nCndy YXAgYSBuYXZpZ2F0aW9uIG9wZXJhbmQgaW4gcmVkdW5kYW50IHBhcmVudGhlc2VzLCBmb3IgZXhh bXBsZQp2YWwgPiAoUFJFVih2YWwpKS4gIEEgbmF2aWdhdGlvbiBleHByZXNzaW9uIGRlcGFyc2Vz IGFzIGEgZnVuY3Rpb24tbGlrZQpGVU5DKC4uKSBjYWxsIHRoYXQgYWxyZWFkeSBkZWxpbWl0cyBp dHNlbGYsIHNvIGl0IGlzIHNpbXBsZSBhbmQgbmVlZHMKbm8gZXh0cmEgcGFyZW50aGVzZXM7IGFk ZCBpdCB0byB0aGUgZnVuY3Rpb24tbGlrZSBncm91cC4KClRoaXMgYWZmZWN0cyBkaXNwbGF5IGFu ZCBub2RlIGNvbXBsZXRlbmVzcyBvbmx5OyBleGVjdXRpb24gYW5kCnJlLXBhcnNpbmcgd2VyZSBh bHJlYWR5IGNvcnJlY3QsIGFzIHRoZSBleHRyYSBwYXJlbnRoZXNlcyB3ZXJlIHN0aWxsCnZhbGlk IFNRTC4gIEFkZCBhIHByZXR0eS1tb2RlIHJlZ3Jlc3Npb24gdXNpbmcgdGhlIHR3by1hcmd1bWVu dApwZ19nZXRfdmlld2RlZiBpbiBycHJfYmFzZSwgYSBwYXRoIHRoZSBleGlzdGluZyBzaW5nbGUt YXJndW1lbnQKbmF2aWdhdGlvbiB0ZXN0cyBkaWQgbm90IGV4ZXJjaXNlLgotLS0KIHNyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgIHwgIDMgKysrCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0IHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgIHwgMTMgKysrKysrKysrKysrKwogNCBmaWxlcyBj aGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCAxMDFjMDNi NmFlOC4uYWVjZjRlNGRhMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0zOTIsNiArMzkyLDkg QEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHByKQogCQkJcmV0dXJuICgoY29uc3QgQXJyYXlD b2VyY2VFeHByICopIGV4cHIpLT5yZXN1bHR0eXBtb2Q7CiAJCWNhc2UgVF9Db2xsYXRlRXhwcjoK IAkJCXJldHVybiBleHByVHlwbW9kKChOb2RlICopICgoY29uc3QgQ29sbGF0ZUV4cHIgKikgZXhw ciktPmFyZyk7CisJCWNhc2UgVF9SUFJOYXZFeHByOgorCQkJLyogcmVzdWx0IGhhcyB0aGUgc2Ft ZSB0eXBlL3R5cG1vZCBhcyB0aGUgYXJndW1lbnQgZXhwcmVzc2lvbiAqLworCQkJcmV0dXJuIGV4 cHJUeXBtb2QoKE5vZGUgKikgKChjb25zdCBSUFJOYXZFeHByICopIGV4cHIpLT5hcmcpOwogCQlj YXNlIFRfQ2FzZUV4cHI6CiAJCQl7CiAJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpp bmRleCA2MjM3MDgwZmIzNi4uMmI4NDM5ZTQ1MmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKQEAgLTk2MTYsNiArOTYxNiw3IEBAIGlzU2ltcGxlTm9kZShOb2RlICpub2RlLCBOb2RlICpw YXJlbnROb2RlLCBpbnQgcHJldHR5RmxhZ3MpCiAJCWNhc2UgVF9GdW5jRXhwcjoKIAkJY2FzZSBU X0pzb25Db25zdHJ1Y3RvckV4cHI6CiAJCWNhc2UgVF9Kc29uRXhwcjoKKwkJY2FzZSBUX1JQUk5h dkV4cHI6CiAJCQkvKiBmdW5jdGlvbi1saWtlOiBuYW1lKC4uKSBvciBuYW1lWy4uXSAqLwogCQkJ cmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXgg NGZlNzM2MDExNGYuLmZhNmQxMDFmODc0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dApAQCAtMjQ4OCw2ICsyNDg4LDMzIEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnBy X3NlcmlhbF9uYXY2Jzo6cmVnY2xhc3MpOwogICAgYiBBUyAoTkVYVChGSVJTVCh2YWwpLCAoMyk6 OmJpZ2ludCkgPiAwKSApOwogKDEgcm93KQogCistLSBQcmV0dHkgZGVwYXJzZTogbmF2aWdhdGlv biBjYWxscyBhcmUgZnVuY3Rpb24tbGlrZSBhbmQgdGFrZSBubyBleHRyYSBwYXJlbnMKK0NSRUFU RSBWSUVXIHJwcl9uYXZfcHJldHR5X3YgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVS IHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLAor ICAgICAgICAgICAgICAgICAgICBCIEFTIHZhbCA+IFBSRVYodmFsKSBBTkQgUFJFVih2YWwpIElT IE5PVCBOVUxMCisgICAgICAgICAgICAgICAgICAgICAgICAgQU5EIE5FWFQodmFsKSA+IEZJUlNU KHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgUFJFVihGSVJTVCh2YWwpKSA+IDAp OworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfbmF2X3ByZXR0eV92Jzo6cmVnY2xhc3MsIHRy dWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0 X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNU IGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIgdyBB UyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgUEFUVEVSTiAoYSBiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJ TkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgdHJ1ZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYiBBUyB2YWwgPiBQUkVWKHZh bCkgQU5EIFBSRVYodmFsKSBJUyBOT1QgTlVMTCBBTkQgTkVYVCh2YWwpID4gRklSU1QodmFsKSBB TkQgUFJFVihGSVJTVCh2YWwpKSA+IDAgKTsKKygxIHJvdykKKwogLS0gUmVsdWN0YW50IHsxfT8g cXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxzCiBDUkVBVEUgVklFVyBycHJfcXVh bnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRleCBjNmZjZmEzZTlmZi4uZTBhZjcxOTk2MjkgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAgLTE2OTMsNiArMTY5MywxOSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQKICAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQo RklSU1QodmFsKSwgMykgPiAwKTsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9u YXY2Jzo6cmVnY2xhc3MpOwogCistLSBQcmV0dHkgZGVwYXJzZTogbmF2aWdhdGlvbiBjYWxscyBh cmUgZnVuY3Rpb24tbGlrZSBhbmQgdGFrZSBubyBleHRyYSBwYXJlbnMKK0NSRUFURSBWSUVXIHJw cl9uYXZfcHJldHR5X3YgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00g cnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAg UEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLAorICAgICAgICAg ICAgICAgICAgICBCIEFTIHZhbCA+IFBSRVYodmFsKSBBTkQgUFJFVih2YWwpIElTIE5PVCBOVUxM CisgICAgICAgICAgICAgICAgICAgICAgICAgQU5EIE5FWFQodmFsKSA+IEZJUlNUKHZhbCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICBBTkQgUFJFVihGSVJTVCh2YWwpKSA+IDApOworU0VMRUNU IHBnX2dldF92aWV3ZGVmKCdycHJfbmF2X3ByZXR0eV92Jzo6cmVnY2xhc3MsIHRydWUpOworCiAt LSBSZWx1Y3RhbnQgezF9PyBxdWFudGlmaWVyIGRlcGFyc2UgdGhyb3VnaCBydWxldXRpbHMKIENS RUFURSBWSUVXIHJwcl9xdWFudF9yZWx1Y3RhbnRfdiBBUwogU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0054-Test-deparse-of-an-inline-row-pattern-window.txt" Content-Disposition: attachment; filename="nocfbot-0054-Test-deparse-of-an-inline-row-pattern-window.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wog053 RnJvbSBjMzM5MzVhZWNjMzFiYzI1OTYxMTIyZTY5Y2Q5NmZkNjU3MTBlYTJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDYgSnVuIDIwMjYgMDY6NTg6MDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDU0LzY4XSBU ZXN0IGRlcGFyc2Ugb2YgYW4gaW5saW5lIHJvdyBwYXR0ZXJuIHdpbmRvdwoKQSB3aW5kb3cgc3Bl YyB3cml0dGVuIGlubGluZSAoT1ZFUiAoLi4uKSB3aXRoIG5vIFdJTkRPVyBhbGlhcykgZGVwYXJz ZXMKdGhyb3VnaCBhIGRpZmZlcmVudCBnZXRfd2luZG93X2Z1bmN0aW9uX25vZGUgYnJhbmNoIHRo YW4gYSBuYW1lZAp3aW5kb3csIGFuZCBubyB2aWV3IGV4ZXJjaXNlZCBpdC4gIEFkZCBhbiBpbmxp bmUtT1ZFUiB2aWV3IHRvIHJwcl9iYXNlCmFuZCBjYXB0dXJlIGl0cyB2aWV3ZGVmLCBjb3Zlcmlu ZyB0aGF0IHBhdGguICBObyBjb2RlIGNoYW5nZS4KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9iYXNlLm91dCB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICB8IDEwICsrKysrKysrKysKIDIgZmlsZXMgY2hh bmdlZCwgMzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQKaW5kZXggZjA4NmVjYzlhNWQuLmM1MGM3YTVmNmE4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9iYXNlLm91dApAQCAtMjU2NCw2ICsyNTY0LDI5IEBAIFNFTEVDVCBwZ19nZXRfdmll d2RlZigncnByX3NlcmlhbF9xdW90ZWQnOjpyZWdjbGFzcyk7CiAgICAiVXAiIEFTICh2YWwgPiBQ UkVWKHZhbCkpICk7CiAoMSByb3cpCiAKKy0tIElubGluZSBPVkVSIHJvdW5kLXRyaXA6IGlubGlu ZSB3aW5kb3cgc3BlYyAobm8gV0lORE9XIGFsaWFzKSBkZXBhcnNlcyBpbnNpZGUgT1ZFUiAoLi4u KQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9pbmxpbmVfb3ZlciBBUworU0VMRUNUIGlkLCB2YWws CisgICAgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICAgICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgICAgICAgICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICAgICAgICAgICAgICAgIERF RklORSBBIEFTIHZhbCA+IDEwLCBCIEFTIHZhbCA+IFBSRVYodmFsKSkgQVMgY250CitGUk9NIHJw cl9zZXJpYWw7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfaW5saW5lX292ZXIn OjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3Zp ZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOIChhIGIrKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTICh2YWwgPiAxMCksICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICBiIEFTICh2YWwgPiBQUkVWKHZhbCkpICkgQVMgY250ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsOworKDEgcm93KQor CiAtLSBNYXRlcmlhbGl6ZWQgdmlldyAoaWYgc3VwcG9ydGVkKQogQ1JFQVRFIFRBQkxFIHJwcl9t dmlldyAoaWQgSU5ULCB2YWwgSU5UKTsKIElOU0VSVCBJTlRPIHJwcl9tdmlldyBWQUxVRVMgKDEs IDEwKSwgKDIsIDIwKSwgKDMsIDMwKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRleCBl MGFmNzE5OTYyOS4uN2RmYjcyZjZiZmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAg LTE3MjcsNiArMTcyNywxNiBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKICAgICAgICAgICAg ICBERUZJTkUgIlN0YXJ0IiBBUyBUUlVFLCAiVXAiIEFTIHZhbCA+IFBSRVYodmFsKSk7CiBTRUxF Q1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfcXVvdGVkJzo6cmVnY2xhc3MpOwogCistLSBJ bmxpbmUgT1ZFUiByb3VuZC10cmlwOiBpbmxpbmUgd2luZG93IHNwZWMgKG5vIFdJTkRPVyBhbGlh cykgZGVwYXJzZXMgaW5zaWRlIE9WRVIgKC4uLikKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfaW5s aW5lX292ZXIgQVMKK1NFTEVDVCBpZCwgdmFsLAorICAgICAgIGNvdW50KCopIE9WRVIgKE9SREVS IEJZIGlkCisgICAgICAgICAgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTiAoQSBC KykKKyAgICAgICAgICAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAxMCwgQiBBUyB2YWwg PiBQUkVWKHZhbCkpIEFTIGNudAorRlJPTSBycHJfc2VyaWFsOworU0VMRUNUIHBnX2dldF92aWV3 ZGVmKCdycHJfc2VyaWFsX2lubGluZV9vdmVyJzo6cmVnY2xhc3MpOworCiAtLSBNYXRlcmlhbGl6 ZWQgdmlldyAoaWYgc3VwcG9ydGVkKQogCiBDUkVBVEUgVEFCTEUgcnByX212aWV3IChpZCBJTlQs IHZhbCBJTlQpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0055-Fix-a-mislabeled-INITIAL-test-in-row-pattern-reco.txt" Content-Disposition: attachment; filename="nocfbot-0055-Fix-a-mislabeled-INITIAL-test-in-row-pattern-reco.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wog454 RnJvbSBhMTc0MTVhODU1YmEzNDViYmQxODk4NjlmYjBiNTAzMzQ3NTJjNDA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDYgSnVuIDIwMjYgMDc6MTg6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIIDU1LzY4XSBG aXggYSBtaXNsYWJlbGVkIElOSVRJQUwgdGVzdCBpbiByb3cgcGF0dGVybgogcmVjb2duaXRpb24K ClRoZSAiSU5JVElBTCBNb2RlIiBibG9jayBpbiBycHJfbmZhIGNsYWltZWQgSU5JVElBTCB3YXMg dW5pbXBsZW1lbnRlZAphbmQgcHJvZHVjZWQgYSBzeW50YXggZXJyb3IuICBJTklUSUFMIGlzIHRo ZSBkZWZhdWx0IG1hdGNoIG1vZGUgYW5kIGlzCmZ1bGx5IHN1cHBvcnRlZDsgdGhlIGVycm9yIHdh cyBvbmx5IGEgY2xhdXNlLW9yZGVyIHZpb2xhdGlvbiAtLSBJTklUSUFMCndhcyB3cml0dGVuIGJl Zm9yZSBBRlRFUiBNQVRDSCBTS0lQLCB3aGljaCB0aGUgZ3JhbW1hciBmb3JiaWRzLgoKUmVvcmRl ciBJTklUSUFMIGFmdGVyIEFGVEVSIE1BVENIIFNLSVAgYW5kIGNvcnJlY3QgdGhlIGNvbW1lbnRz LiAgVGhlCnF1ZXJpZXMgbm93IHJ1biBhbmQgY29uZmlybSB0aGF0IGV4cGxpY2l0IElOSVRJQUwg bWF0Y2hlcyB0aGUgZGVmYXVsdAptb2RlLiAgVGVzdC1vbmx5IGNoYW5nZS4KLS0tCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IHwgMzEgKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgIHwgMTAgKysrKy0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IDgyOWU4MjUxYWVkLi4wMmE1 ZTUxN2IwZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CkBAIC0zNTI0LDEw ICszNTI0LDggQEAgT1JERVIgQlkgbW9kZSwgaWQ7CiAKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSU5JVElBTCBNb2Rl IChSdW50aW1lKQotLS0gUGxhY2Vob2xkZXI6IElOSVRJQUwgaXMgbm90IHlldCBpbXBsZW1lbnRl ZCAoc3ludGF4IGVycm9yKS4KLS0tIEtlcHQgaGVyZSBzbyB0ZXN0cyBjb252ZXJ0IHRvIHJ1bnRp bWUgdGVzdHMgd2hlbiBpbXBsZW1lbnRlZC4KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSU5JVElBTCBtb2RlIChub3Qg eWV0IHN1cHBvcnRlZCAtIHByb2R1Y2VzIHN5bnRheCBlcnJvcikKKy0tIEV4cGxpY2l0IElOSVRJ QUwgKGFmdGVyIEFGVEVSIE1BVENIIFNLSVAsIHBlciB0aGUgZ3JhbW1hcik7IHNhbWUgYXMgdGhl IGRlZmF1bHQKIFdJVEggdGVzdF9pbml0aWFsX21vZGUgQVMgKAogICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUwogICAgICAgICAoMSwgQVJSQVlbJ18nXSksICAtLSBVbm1hdGNoZWQKQEAgLTM1NDQs MTUgKzM1NDIsMjEgQEAgRlJPTSB0ZXN0X2luaXRpYWxfbW9kZQogV0lORE9XIHcgQVMgKAogICAg IE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCi0gICAgSU5JVElBTAogICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBJTklUSUFMCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FCiAgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKQogKTsKLUVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkFG VEVSIgotTElORSAxODogICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICAgICAg ICAgICBeCisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtffSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDMKKyAgMyB8 IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtffSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgNSB8IHtBfSAgIHwgICAgICAgICAgIDUgfCAgICAgICAgIDUKKyg1 IHJvd3MpCisKIC0tIERlZmF1bHQgbW9kZSAoaW5jbHVkZSBhbGwgcm93cykKIFdJVEggdGVzdF9k ZWZhdWx0X21vZGUgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwpAQCAtMzU4NCw3ICsz NTg4LDcgQEAgV0lORE9XIHcgQVMgKAogICA1IHwge0F9ICAgfCAgICAgICAgICAgNSB8ICAgICAg ICAgNQogKDUgcm93cykKIAotLS0gTW9kZSBkaWZmZXJlbmNlIHZlcmlmaWNhdGlvbiAoSU5JVElB TCBub3QgeWV0IHN1cHBvcnRlZCAtIHByb2R1Y2VzIHN5bnRheCBlcnJvcikKKy0tIE1vZGUgZXF1 aXZhbGVuY2UgdmVyaWZpY2F0aW9uOiBleHBsaWNpdCBJTklUSUFMIGVxdWFscyB0aGUgZGVmYXVs dCBtb2RlCiBXSVRIIHRlc3RfbW9kZV9kaWZmIEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKICAgICAgICAgKDEsIEFSUkFZWydfJ10pLApAQCAtMzU5OCw4ICszNjAyLDggQEAgRlJPTSAo CiAgICAgV0lORE9XIHcgQVMgKAogICAgICAgICBPUkRFUiBCWSBpZAogICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICAgICAgSU5JVElB TAogICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgIElOSVRJQUwK ICAgICAgICAgUEFUVEVSTiAoQSkKICAgICAgICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdz KQogICAgICkKQEAgLTM2MTcsOSArMzYyMSwxMiBAQCBGUk9NICgKICAgICApCiApIHN1YgogT1JE RVIgQlkgbW9kZTsKLUVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkFGVEVSIgotTElO RSAxNTogICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgICAgICAgICAg ICAgIF4KKyAgbW9kZSAgIHwgcm93X2NvdW50IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgREVG QVVMVCB8ICAgICAgICAgMworIElOSVRJQUwgfCAgICAgICAgIDMKKygyIHJvd3MpCisKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gRnJhbWUgQm91bmRhcnkgVmFyaWF0aW9ucwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9u ZmEuc3FsCmluZGV4IDNiYmVjNDk2Mjc5Li4yMTMzODVmMTQzYiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X25mYS5zcWwKQEAgLTI1MzAsMTEgKzI1MzAsOSBAQCBPUkRFUiBCWSBtb2RlLCBpZDsKIAogLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLSBJTklUSUFMIE1vZGUgKFJ1bnRpbWUpCi0tLSBQbGFjZWhvbGRlcjogSU5JVElBTCBp cyBub3QgeWV0IGltcGxlbWVudGVkIChzeW50YXggZXJyb3IpLgotLS0gS2VwdCBoZXJlIHNvIHRl c3RzIGNvbnZlcnQgdG8gcnVudGltZSB0ZXN0cyB3aGVuIGltcGxlbWVudGVkLgogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAK LS0tIElOSVRJQUwgbW9kZSAobm90IHlldCBzdXBwb3J0ZWQgLSBwcm9kdWNlcyBzeW50YXggZXJy b3IpCistLSBFeHBsaWNpdCBJTklUSUFMIChhZnRlciBBRlRFUiBNQVRDSCBTS0lQLCBwZXIgdGhl IGdyYW1tYXIpOyBzYW1lIGFzIHRoZSBkZWZhdWx0CiBXSVRIIHRlc3RfaW5pdGlhbF9tb2RlIEFT ICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydfJ10pLCAg LS0gVW5tYXRjaGVkCkBAIC0yNTUxLDggKzI1NDksOCBAQCBGUk9NIHRlc3RfaW5pdGlhbF9tb2Rl CiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBJTklUSUFMCiAgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIElOSVRJQUwKICAgICBQQVRURVJOIChBKykKICAgICBE RUZJTkUKICAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCkBAIC0yNTgxLDcgKzI1NzksNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQogKTsKIAotLS0g TW9kZSBkaWZmZXJlbmNlIHZlcmlmaWNhdGlvbiAoSU5JVElBTCBub3QgeWV0IHN1cHBvcnRlZCAt IHByb2R1Y2VzIHN5bnRheCBlcnJvcikKKy0tIE1vZGUgZXF1aXZhbGVuY2UgdmVyaWZpY2F0aW9u OiBleHBsaWNpdCBJTklUSUFMIGVxdWFscyB0aGUgZGVmYXVsdCBtb2RlCiBXSVRIIHRlc3RfbW9k ZV9kaWZmIEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZ WydfJ10pLApAQCAtMjU5NSw4ICsyNTkzLDggQEAgRlJPTSAoCiAgICAgV0lORE9XIHcgQVMgKAog ICAgICAgICBPUkRFUiBCWSBpZAogICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICAgICAgSU5JVElBTAogICAgICAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgIElOSVRJQUwKICAgICAgICAgUEFUVEVSTiAoQSkK ICAgICAgICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQogICAgICkKLS0gCjIuNTAuMSAo QXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0053-Restore-the-error-cursor-for-too-many-row-pattern.txt" Content-Disposition: attachment; filename="nocfbot-0053-Restore-the-error-cursor-for-too-many-row-pattern.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wofw52 RnJvbSA5YTE5MWU2ZjA5OWRmNDFiYzk3NjcyOGQ4M2JhNWY4YjMxOTBhNWE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMjI6MzA6MTQgKzA5MDAKU3ViamVjdDogW1BBVENIIDUzLzY4XSBS ZXN0b3JlIHRoZSBlcnJvciBjdXJzb3IgZm9yIHRvbyBtYW55IHJvdyBwYXR0ZXJuCiB2YXJpYWJs ZXMKClRoZSAidG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMiIGVycm9yIGNhbWUgb3V0IHdpdGhv dXQgYSBMSU5FL2NhcmV0CmN1cnNvcjogdGhlIGNoZWNrIGxvY2F0ZXMgdGhlIGN1cnNvciB2aWEg ZXhwckxvY2F0aW9uKCksIHdoaWNoIGhhZCBubwpUX1JQUlBhdHRlcm5Ob2RlIGNhc2UgYW5kIGZl bGwgdGhyb3VnaCB0byB0aGUgZGVmYXVsdCByZXR1cm5pbmcgLTEuCgpBZGQgdGhlIGNhc2UgYWxv bmdzaWRlIFRfUlBSTmF2RXhwciB0byByZXR1cm4gdGhlIG5vZGUncyB0b2tlbgpsb2NhdGlvbi4g IENhbGxlciBhbmQgbWVzc2FnZSB0ZXh0IGFyZSB1bmNoYW5nZWQ7IG9ubHkgdGhlIGN1cnNvciBp cwpyZXN0b3JlZC4gIFVwZGF0ZSB0aGUgZXhpc3RpbmcgMjQxLXZhcmlhYmxlIHJwcl9iYXNlIHJl Z3Jlc3Npb24uCi0tLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgfCAz ICsrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgfCAyICsrCiAyIGZp bGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggYWVj ZjRlNGRhMGEuLjZhYjIyN2IyYjYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMTQ1Miw2ICsx NDUyLDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9SUFJOYXZF eHByOgogCQkJbG9jID0gKChjb25zdCBSUFJOYXZFeHByICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJ CWJyZWFrOworCQljYXNlIFRfUlBSUGF0dGVybk5vZGU6CisJCQlsb2MgPSAoKGNvbnN0IFJQUlBh dHRlcm5Ob2RlICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2Ny aXB0aW5nUmVmOgogCQkJLyoganVzdCB1c2UgY29udGFpbmVyIGFyZ3VtZW50J3MgbG9jYXRpb24g Ki8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigoTm9kZSAqKSAoKGNvbnN0IFN1YnNjcmlwdGluZ1Jl ZiAqKSBleHByKS0+cmVmZXhwcik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9iYXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0 CmluZGV4IGZhNmQxMDFmODc0Li5mMDg2ZWNjOWE1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfYmFzZS5vdXQKQEAgLTY1NDAsNiArNjU0MCw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBW MjMxIEFTIHZhbCA+IDAsIFYyMzIgQVMgdmFsID4gMCwgVjIzMyBBUyB2YWwgPiAwLCBWMjM0IEFT IHZhbCA+IDAsIFYyMzUgQVMgdmFsID4gMCwgVjIzNiBBUyB2YWwgPiAwLCBWMjM3IEFTIHZhbCA+ IDAsIFYyMzggQVMgdmFsID4gMCwgVjIzOSBBUyB2YWwgPiAwLCBWMjQwIEFTIHZhbCA+IDAKICk7 CiBFUlJPUjogIHRvbyBtYW55IHBhdHRlcm4gdmFyaWFibGVzCitMSU5FIDU6IC4uLlYyMzAgVjIz MSBWMjMyIFYyMzMgVjIzNCBWMjM1IFYyMzYgVjIzNyBWMjM4IFYyMzkgVjI0MCBWMjQxKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogREVUQUlMOiAgTWF4aW11bSBpcyAyNDAuCiAtLSBFeHBlY3RlZDogRVJST1IgLSB0 b28gbWFueSBwYXR0ZXJuIHZhcmlhYmxlcyAoTWF4aW11bSBpcyAyNDApCiAtLSBUZXN0OiBQYXR0 ZXJuIG5lc3RpbmcgYXQgbWF4aW11bSBkZXB0aCAoZGVwdGggMjUzKQotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0051-Rework-row-pattern-EXPLAIN-deparser-to-fix-groupe.txt" Content-Disposition: attachment; filename="nocfbot-0051-Rework-row-pattern-EXPLAIN-deparser-to-fix-groupe.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wofl50 RnJvbSAyYTliNmIxNTZlYTkyOWIyNDE0OGZlNjE3ZTgwMmM2ODIxNzE2YjgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgSnVuIDIwMjYgMTY6Mzc6MzQgKzA5MDAKU3ViamVjdDogW1BBVENIIDUxLzY4XSBS ZXdvcmsgcm93IHBhdHRlcm4gRVhQTEFJTiBkZXBhcnNlciB0byBmaXggZ3JvdXBlZAogYWx0ZXJu YXRpb24gYnJhbmNoZXMKClRoZSBFWFBMQUlOICJQYXR0ZXJuOiIgbGluZSByZWNvbnN0cnVjdHMg YSBwYXR0ZXJuIHN0cmluZyBmcm9tIHRoZQpjb21waWxlZCBSUFJQYXR0ZXJuIGJ5dGVjb2RlLiAg V2hlbiBhbiBhbHRlcm5hdGlvbiBicmFuY2ggd2FzIGEKcXVhbnRpZmllZCBncm91cCwgdGhlIHBy ZXZpb3VzIGRlcGFyc2VyIGRyb3BwZWQgdGhlIGJyYW5jaCBzZXBhcmF0b3IKb3IgdGhlIGVuY2xv c2luZyBwYXJlbnRoZXNpcywgc28gdGhlIGRpc3BsYXllZCBwYXR0ZXJuIG5vIGxvbmdlcgptYXRj aGVkIHRoZSBvbmUgdGhhdCB3YXMgY29tcGlsZWQuICBGb3IgZXhhbXBsZSBQQVRURVJOIChDIHwg KEEgQikrIHwgRCkKd2FzIHNob3duIGFzIChjIHwgKGEgYikrIGQpLCBjb2xsYXBzaW5nIGEgdGhy ZWUtd2F5IGFsdGVybmF0aW9uIGludG8gYQpkaWZmZXJlbnQgdHdvLXdheSBwYXR0ZXJuLCBhbmQg YSBsZWFkaW5nIGdyb3VwIGJyYW5jaCBsb3N0IHRoZSBvcGVuaW5nCnBhcmVudGhlc2lzIG9mIHRo ZSBhbHRlcm5hdGlvbi4KClRoZSBjYXVzZSB3YXMgdGhhdCBicmFuY2ggc2VwYXJhdG9ycyBhbmQg c2NvcGUgZW5kcyB3ZXJlIHJlYnVpbHQgZnJvbQp0aGUganVtcCBmaWVsZCwgd2hpY2ggdGhlIGNv bXBpbGVyIG92ZXJsb2FkcyBhcyBhIGdyb3VwJ3Mgc2tpcCB0YXJnZXQsCmFuZCBmcm9tIGFic29s dXRlIG5leHQgdmFsdWVzLCB3aGljaCBpdCByZXdyaXRlcyBmb3IgYnJhbmNoIHRhaWxzIGFuZApu ZXN0ZWQgYWx0ZXJuYXRpb25zLgoKUmV3cml0ZSB0aGUgZGVwYXJzZXIgYXMgYSByZWN1cnNpdmUg ZGVzY2VudCBpbiB3aGljaCBlYWNoIGNvbnN0cnVjdCBpcwpkZXBhcnNlZCB3aXRoaW4gYW4gaW5o ZXJpdGVkIFtzdGFydCwgbGltaXQpIHdpbmRvdy4gIFNjb3BlIGVuZHMgY29tZQpmcm9tIGRlcHRo LCBicmFuY2ggYm91bmRhcmllcyBmcm9tIGEgYnJhbmNoLXN0YXJ0IGp1bXAgY29uZmlybWVkIGJ5 IHRoZQpyZWxhdGl2ZSB0ZXN0IGVsZW1bai0xXS5uZXh0ICE9IGosIGFuZCBwYXJlbnRoZXNlcyBm cm9tIHN0cnVjdHVyZSBwbHVzCmEgb25lLXN0ZXAgbG9va2FoZWFkIGZvciBhIGdyb3VwIHRoYXQg d3JhcHMgYSBsb25lIGFsdGVybmF0aW9uLiAgRWFjaApjb25zdHJ1Y3QncyBleHRlbnQgaXMgZm91 bmQgYnkgYSBzaG9ydCBmb3J3YXJkIHNjYW4sIHNvIHRoZSB3YWxrIGlzIG5vdAphIHNpbmdsZSBs aW5lYXIgcGFzczsgYXMgdGhpcyBydW5zIG9ubHkgd2hpbGUgRVhQTEFJTiBmb3JtYXRzIGl0cwpv dXRwdXQgYW5kIHBhdHRlcm5zIGFyZSBzbWFsbCwgaXQgZmF2b3JzIGNsYXJpdHkgb3ZlciBhIG1h eGltYWxseQplZmZpY2llbnQgZGVwYXJzZS4KClRoaXMgaXMgZGlzcGxheS1vbmx5OyBxdWVyeSBl eGVjdXRpb24gYW5kIHBnX2dldF92aWV3ZGVmIHdlcmUgYWxyZWFkeQpjb3JyZWN0IGFuZCBhcmUg dW5jaGFuZ2VkLiAgQWRkIHJlZ3Jlc3Npb24gY292ZXJhZ2UgaW4gcnByX2V4cGxhaW4gZm9yCmdy b3VwZWQgYWx0ZXJuYXRpb24gYnJhbmNoZXMgYW5kIGZvciBkZWVwbHkgbmVzdGVkIGFsdGVybmF0 aW9ucywgd2hpY2gKcHJldmlvdXNseSBoYWQgbm9uZS4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMgICAgICAgICAgICB8IDM0MyArKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQgfCA5NTAgKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAgfCA1MjMgKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDE2MjMgaW5zZXJ0aW9ucygrKSwgMTkzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCAxYTc1NGJjZGFjNS4uN2JhMGI2ZGY4NDkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9leHBsYWluLmMKQEAgLTEyMiwxOCArMTIyLDEzIEBAIHN0YXRpYyB2b2lkIHNob3df d2luZG93X2tleXMoU3RyaW5nSW5mbyBidWYsIFBsYW5TdGF0ZSAqcGxhbnN0YXRlLAogCQkJCQkJ CSBMaXN0ICphbmNlc3RvcnMsIEV4cGxhaW5TdGF0ZSAqZXMpOwogc3RhdGljIHZvaWQgYXBwZW5k X3Jwcl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSk7 CiBzdGF0aWMgY2hhciAqZGVwYXJzZV9ycHJfcGF0dGVybihSUFJQYXR0ZXJuICpwYXR0ZXJuKTsK LXN0YXRpYyB2b2lkIGRlcGFyc2VfcnByX2VsZW1lbnRzKFJQUlBhdHRlcm4gKnBhdHRlcm4sIGlu dCAqaWR4LAotCQkJCQkJCQkgU3RyaW5nSW5mb0RhdGEgKmJ1ZiwgUlBSRGVwdGggZ3JvdXBEZXB0 aCwKLQkJCQkJCQkJIFJQUkRlcHRoICpwcmV2RGVwdGgsIGJvb2wgKm5lZWRTcGFjZSk7Ci1zdGF0 aWMgdm9pZCBkZXBhcnNlX3Jwcl9ncm91cChSUFJQYXR0ZXJuICpwYXR0ZXJuLCBpbnQgKmlkeCwK LQkJCQkJCQkgIFN0cmluZ0luZm9EYXRhICpidWYsIFJQUkRlcHRoICpwcmV2RGVwdGgsCi0JCQkJ CQkJICBib29sICpuZWVkU3BhY2UpOwotc3RhdGljIHZvaWQgZGVwYXJzZV9ycHJfYWx0KFJQUlBh dHRlcm4gKnBhdHRlcm4sIGludCAqaWR4LAotCQkJCQkJCVN0cmluZ0luZm9EYXRhICpidWYsIFJQ UkRlcHRoICpwcmV2RGVwdGgsCi0JCQkJCQkJYm9vbCAqbmVlZFNwYWNlLCBMaXN0ICoqYWx0U2Vw cyk7Ci1zdGF0aWMgdm9pZCBkZXBhcnNlX3Jwcl92YXIoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50 ICppZHgsCi0JCQkJCQkJU3RyaW5nSW5mb0RhdGEgKmJ1ZiwgUlBSRGVwdGggKnByZXZEZXB0aCwK LQkJCQkJCQlib29sICpuZWVkU3BhY2UsIExpc3QgKiphbHRTZXBzKTsKK3N0YXRpYyBpbnQJZGVw YXJzZV9ycHJfc2VxKFJQUlBhdHRlcm4gKnBhdHRlcm4sIGludCBzdGFydCwgaW50IGxpbWl0LAor CQkJCQkJCVN0cmluZ0luZm8gYnVmKTsKK3N0YXRpYyBpbnQJZGVwYXJzZV9ycHJfbm9kZShSUFJQ YXR0ZXJuICpwYXR0ZXJuLCBpbnQgaSwgaW50IGxpbWl0LAorCQkJCQkJCSBTdHJpbmdJbmZvIGJ1 Zik7CitzdGF0aWMgaW50CXJwcl9tYXRjaF9lbmQoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50IGJl Z2luSWR4KTsKK3N0YXRpYyBpbnQJcnByX2FsdF9zY29wZV9lbmQoUlBSUGF0dGVybiAqcGF0dGVy biwgaW50IGkpOworc3RhdGljIGludAlycHJfbmV4dF9icmFuY2goUlBSUGF0dGVybiAqcGF0dGVy biwgaW50IGIsIGludCBhbHRFbmQpOwogc3RhdGljIHZvaWQgc2hvd19zdG9yYWdlX2luZm8oY2hh ciAqbWF4U3RvcmFnZVR5cGUsIGludDY0IG1heFNwYWNlVXNlZCwKIAkJCQkJCQkgIEV4cGxhaW5T dGF0ZSAqZXMpOwogc3RhdGljIHZvaWQgc2hvd190YWJsZXNhbXBsZShUYWJsZVNhbXBsZUNsYXVz ZSAqdHNjLCBQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKQEAgLTI5NTIsMjQ0ICsyOTQ3LDIwNiBAQCBh cHBlbmRfcnByX3F1YW50aWZpZXIoU3RyaW5nSW5mbyBidWYsIFJQUlBhdHRlcm5FbGVtZW50ICpl bGVtKQogfQogCiAvKgotICogRGVwYXJzZSBhIGNvbXBpbGVkIFJQUlBhdHRlcm4gKGJ5dGVjb2Rl KSBiYWNrIHRvIHBhdHRlcm4gc3RyaW5nLgorICogRGVwYXJzZSBhIGNvbXBpbGVkIFJQUlBhdHRl cm4gKGJ5dGVjb2RlKSBiYWNrIHRvIGEgcGF0dGVybiBzdHJpbmcuCiAgKgotICogV2Fsa3MgdGhl IGZsYXQgYnl0ZWNvZGUgYXJyYXkgdXNpbmcgbXV0dWFsIHJlY3Vyc2lvbjogZGVwYXJzZV9ycHJf ZWxlbWVudHMKLSAqIHByb2Nlc3NlcyBzZXF1ZW50aWFsIGVsZW1lbnRzLCBhbmQgZGVwYXJzZV9y cHJfZ3JvdXAgaGFuZGxlcyBCRUdJTi4uLkVORAotICogZ3JvdXBzIGJ5IHJlY3Vyc2luZyBiYWNr IGludG8gZGVwYXJzZV9ycHJfZWxlbWVudHMgZm9yIHRoZSBncm91cCBjb250ZW50LgorICogVGhl IGZsYXQgUlBSUGF0dGVybkVsZW1lbnRbXSBhcnJheSBpcyB3YWxrZWQgYnkgcmVjdXJzaXZlIGRl c2NlbnQuICBFYWNoCisgKiBjb25zdHJ1Y3QgaXMgZGVwYXJzZWQgd2l0aGluIGFuIGluaGVyaXRl ZCBbc3RhcnQsIGxpbWl0KSB3aW5kb3c6IHRoZSBwYXJlbnQKKyAqIHBhc3NlcyB0aGUgYm91bmRh cnkgZG93biwgc28gZWFjaCBjb25zdHJ1Y3QncyBleHRlbnQgaXMgZml4ZWQgYnkgaXRzIGNhbGxl ci4KKyAqIFRocmVlIHNpZ25hbHMgZHJpdmUgdGhlIHdhbGs6CisgKgorICogICAtIHNjb3BlIGVu ZHMgKHdoZXJlIGFuIEFMVCBvciBHUk9VUCBib2R5IGZpbmlzaGVzKSBjb21lIGZyb20gZGVwdGgs IHZpYQorICogICAgIHJwcl9hbHRfc2NvcGVfZW5kKCkgYW5kIHJwcl9tYXRjaF9lbmQoKS4KKyAq ICAgLSBicmFuY2ggYm91bmRhcmllcyAod2hlcmUgYSAifCIgZ29lcykgY29tZSBmcm9tIGEgYnJh bmNoLXN0YXJ0IGp1bXAsCisgKiAgICAgY29uZmlybWVkIGJ5IHRoZSByZWxhdGl2ZSB0ZXN0IGVs ZW1bai0xXS5uZXh0ICE9IGosIHZpYQorICogICAgIHJwcl9uZXh0X2JyYW5jaCgpLgorICogICAt IHBhcmVudGhlc2VzIGNvbWUgZnJvbSBzdHJ1Y3R1cmUgKGEgQkVHSU4gZ3JvdXAsIGFuIEFMVCkg cGx1cyBhIG9uZS1zdGVwCisgKiAgICAgbG9va2FoZWFkIGZvciBhIGdyb3VwIHRoYXQgd3JhcHMg YSBsb25lIEFMVC4KKyAqCisgKiBkZXB0aCBhbmQgdGhlIHJlbGF0aXZlIG5leHQgdGVzdCBhcmUg c3RhYmxlIGFjcm9zcyB0aGUgbmV4dC9qdW1wIHZhbHVlcyB0aGUKKyAqIGNvbXBpbGVyIGFzc2ln bnMgdG8gYnJhbmNoIHRhaWxzIGFuZCBuZXN0ZWQgYWx0ZXJuYXRpb25zLCB3aGljaCBpcyB3aGF0 IG1ha2VzCisgKiB0aGVtIHN1aXRhYmxlIHRvIGFuY2hvciBzY29wZSBhbmQgYnJhbmNoIGJvdW5k YXJpZXMuCisgKgorICogRVhQTEFJTiBwYXJlbnRoZXNpemVzIGV2ZXJ5IEFMVCBvbiBpdHMgb3du LCBzbyBhIHRvcC1sZXZlbCAiQSB8IEIiIGRlcGFyc2VzCisgKiBhcyAiKGEgfCBiKSIuICBUaGlz IHNlbGYtY29uc2lzdGVudCBFWFBMQUlOIGZvcm0gaXMgdGhlIGNvcnJlY3RuZXNzIG9yYWNsZQor ICogaGVyZTsgcGdfZ2V0X3ZpZXdkZWYgZGlmZmVycywgYXMgaXRzIHBhcmVucyBjb21lIG9ubHkg ZnJvbSBhbiBlbmNsb3NpbmcKKyAqIEdST1VQLiAgQWJzb3JwdGlvbiBtYXJrZXJzICgnICIpIGFy ZSBvcnRob2dvbmFsIGFuZCBoYW5kbGVkIGJ5CisgKiBhcHBlbmRfcnByX3F1YW50aWZpZXIoKS4K KyAqCisgKiBUd28gY29tcGlsZXIgaW52YXJpYW50cyBob2xkIHRocm91Z2hvdXQ6IHsxLDF9IGdy b3VwcyBhcmUgdW53cmFwcGVkIGJlZm9yZQorICogYnl0ZWNvZGUgZ2VuZXJhdGlvbiAoc28gZXZl cnkgQkVHSU4vRU5EIGdyb3VwIGNhcnJpZXMgYSBub24tdHJpdmlhbAorICogcXVhbnRpZmllciwg YW5kIGEgbG9uZSBBTFQgaW5zaWRlIGEgZ3JvdXAgYWx3YXlzIHNwYW5zIHRvIHRoZSBncm91cCdz IEVORCksCisgKiBhbmQgYSBncm91cCdzIHF1YW50aWZpZXIgaXMgcmVhZCBmcm9tIGl0cyBFTkQg ZWxlbWVudCAodGhlIEJFR0lOIGNvcHkgaXMKKyAqIGlnbm9yZWQpLgogICovCiBzdGF0aWMgY2hh ciAqCiBkZXBhcnNlX3Jwcl9wYXR0ZXJuKFJQUlBhdHRlcm4gKnBhdHRlcm4pCiB7CiAJU3RyaW5n SW5mb0RhdGEgYnVmOwotCWludAkJCWlkeCA9IDA7Ci0JUlBSRGVwdGgJcHJldkRlcHRoID0gMDsK LQlib29sCQluZWVkU3BhY2UgPSBmYWxzZTsKIAogCUFzc2VydChwYXR0ZXJuICE9IE5VTEwgJiYg cGF0dGVybi0+bnVtRWxlbWVudHMgPj0gMik7CiAKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKLQot CWRlcGFyc2VfcnByX2VsZW1lbnRzKHBhdHRlcm4sICZpZHgsICZidWYsIFJQUl9ERVBUSF9OT05F LAotCQkJCQkJICZwcmV2RGVwdGgsICZuZWVkU3BhY2UpOwotCi0JLyogQ2xvc2UgcmVtYWluaW5n IG9wZW4gcGFyZW5zICovCi0Jd2hpbGUgKHByZXZEZXB0aCA+IDApCi0JewotCQlhcHBlbmRTdHJp bmdJbmZvQ2hhcigmYnVmLCAnKScpOwotCQlwcmV2RGVwdGgtLTsKLQl9Ci0KKwlkZXBhcnNlX3Jw cl9zZXEocGF0dGVybiwgMCwgcGF0dGVybi0+bnVtRWxlbWVudHMsICZidWYpOwogCXJldHVybiBi dWYuZGF0YTsKIH0KIAogLyoKLSAqIFByb2Nlc3MgcGF0dGVybiBlbGVtZW50cyBzZXF1ZW50aWFs bHkgdW50aWwgRklOIG9yIEVORCBhdCBncm91cERlcHRoLgorICogRGVwYXJzZSBhIHJ1biBvZiBz aWJsaW5nIGVsZW1lbnRzIGluIFtzdGFydCwgbGltaXQpLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLgog ICoKLSAqIFdoZW4gZ3JvdXBEZXB0aCA+PSAwLCBzdG9wcyBhdCB0aGUgbWF0Y2hpbmcgRU5EIGVs ZW1lbnQgKGxlYXZpbmcgaWR4Ci0gKiBwb2ludGluZyB0byBpdCkgc28gdGhlIGNhbGxlciAoZGVw YXJzZV9ycHJfZ3JvdXApIGNhbiBjb25zdW1lIGl0LgotICogV2hlbiBncm91cERlcHRoIDwgMCwg cHJvY2Vzc2VzIHVudGlsIEZJTiAodG9wLWxldmVsIGNhbGwpLgorICogU3RvcHMgYXQgbGltaXQg b3IgYXQgdGhlIEZJTiB0ZXJtaW5hdG9yICh0b3AtbGV2ZWwgY2FsbCBwYXNzZXMgbGltaXQgPQor ICogbnVtRWxlbWVudHMsIHdoZXJlIHRoZSBsYXN0IGVsZW1lbnQgaXMgRklOKS4gIFJldHVybnMg dGhlIGluZGV4IHJlYWNoZWQuCiAgKi8KLXN0YXRpYyB2b2lkCi1kZXBhcnNlX3Jwcl9lbGVtZW50 cyhSUFJQYXR0ZXJuICpwYXR0ZXJuLCBpbnQgKmlkeCwgU3RyaW5nSW5mb0RhdGEgKmJ1ZiwKLQkJ CQkJIFJQUkRlcHRoIGdyb3VwRGVwdGgsIFJQUkRlcHRoICpwcmV2RGVwdGgsCi0JCQkJCSBib29s ICpuZWVkU3BhY2UpCitzdGF0aWMgaW50CitkZXBhcnNlX3Jwcl9zZXEoUlBSUGF0dGVybiAqcGF0 dGVybiwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZ0luZm8gYnVmKQogewotCUxpc3QJICAg KmFsdFNlcHMgPSBOSUw7CS8qIHBlbmRpbmcgYWx0ZXJuYXRpb24gc2VwYXJhdG9yIGluZGljZXMg Ki8KKwlpbnQJCQlpID0gc3RhcnQ7CisJYm9vbAkJZmlyc3QgPSB0cnVlOwogCi0Jd2hpbGUgKCpp ZHggPCBwYXR0ZXJuLT5udW1FbGVtZW50cykKKwl3aGlsZSAoaSA8IGxpbWl0ICYmICFSUFJFbGVt SXNGaW4oJnBhdHRlcm4tPmVsZW1lbnRzW2ldKSkKIAl7Ci0JCVJQUlBhdHRlcm5FbGVtZW50ICpl bGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzWyppZHhdOwotCi0JCWlmIChSUFJFbGVtSXNGaW4oZWxl bSkpCi0JCQlicmVhazsKLQotCQkvKiBTdG9wIGF0IEVORCBtYXRjaGluZyBvdXIgZ3JvdXAgZGVw dGg7IGNhbGxlciBoYW5kbGVzIGl0ICovCi0JCWlmIChSUFJFbGVtSXNFbmQoZWxlbSkgJiYgZWxl bS0+ZGVwdGggPT0gZ3JvdXBEZXB0aCkKLQkJCWJyZWFrOwotCi0JCS8qIEFsdGVybmF0aW9uIHNl cGFyYXRvciAqLwotCQlpZiAobGlzdF9tZW1iZXJfaW50KGFsdFNlcHMsICppZHgpKQotCQl7Ci0J CQkvKiBDbG9zZSBwYXJlbnMgdG8gbWF0Y2ggc2VwYXJhdG9yIGRlcHRoIGZpcnN0ICovCi0JCQl3 aGlsZSAoKnByZXZEZXB0aCA+IGVsZW0tPmRlcHRoKQotCQkJewotCQkJCWFwcGVuZFN0cmluZ0lu Zm9DaGFyKGJ1ZiwgJyknKTsKLQkJCQkoKnByZXZEZXB0aCktLTsKLQkJCX0KLQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCAiIHwgIik7Ci0JCQkqbmVlZFNwYWNlID0gZmFsc2U7Ci0JCQlh bHRTZXBzID0gbGlzdF9kZWxldGVfaW50KGFsdFNlcHMsICppZHgpOwotCQl9Ci0KLQkJLyogRGlz cGF0Y2ggdG8gZWxlbWVudC10eXBlIGhhbmRsZXJzICovCi0JCWlmIChSUFJFbGVtSXNBbHQoZWxl bSkpCi0JCQlkZXBhcnNlX3Jwcl9hbHQocGF0dGVybiwgaWR4LCBidWYsIHByZXZEZXB0aCwKLQkJ CQkJCQluZWVkU3BhY2UsICZhbHRTZXBzKTsKLQkJZWxzZSBpZiAoUlBSRWxlbUlzQmVnaW4oZWxl bSkpCi0JCQlkZXBhcnNlX3Jwcl9ncm91cChwYXR0ZXJuLCBpZHgsIGJ1ZiwgcHJldkRlcHRoLAot CQkJCQkJCSAgbmVlZFNwYWNlKTsKLQkJZWxzZSBpZiAoUlBSRWxlbUlzVmFyKGVsZW0pKQotCQkJ ZGVwYXJzZV9ycHJfdmFyKHBhdHRlcm4sIGlkeCwgYnVmLCBwcmV2RGVwdGgsCi0JCQkJCQkJbmVl ZFNwYWNlLCAmYWx0U2Vwcyk7Ci0JfQotCWxpc3RfZnJlZShhbHRTZXBzKTsKKwkJaWYgKCFmaXJz dCkKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAnKTsKKwkJZmlyc3QgPSBmYWxzZTsK KwkJaSA9IGRlcGFyc2VfcnByX25vZGUocGF0dGVybiwgaSwgbGltaXQsIGJ1Zik7CisJfQorCXJl dHVybiBpOwogfQogCiAvKgotICogUHJvY2VzcyBhIEJFR0lOLi4uRU5EIGdyb3VwLgorICogRGVw YXJzZSB0aGUgc2luZ2xlIGNvbnN0cnVjdCBzdGFydGluZyBhdCBpbmRleCBpLCBib3VuZGVkIGJ5 IHRoZSBpbmhlcml0ZWQKKyAqIGxpbWl0LiAgUmV0dXJucyB0aGUgaW5kZXgganVzdCBwYXN0IHRo ZSBjb25zdHJ1Y3QuCiAgKgotICogQ29uc3VtZXMgQkVHSU4sIHJlY3Vyc2VzIGludG8gZGVwYXJz ZV9ycHJfZWxlbWVudHMgZm9yIGdyb3VwIGNvbnRlbnQsCi0gKiB0aGVuIGNvbnN1bWVzIEVORCBh bmQgb3V0cHV0cyB0aGUgZ3JvdXAgcXVhbnRpZmllci4KLSAqCi0gKiBXaGVuIHRoZSBncm91cCB3 cmFwcyBhIHNpbmdsZSBBTFQgd2l0aCBubyBzaWJsaW5ncywgdGhlIGdyb3VwLWxldmVsCi0gKiBw YXJlbnRoZXNpcyBpcyBzdXBwcmVzc2VkIHNpbmNlIHRoZSBBTFQtdG8tY2hpbGRyZW4gZGVwdGgg dHJhbnNpdGlvbgotICogYWxyZWFkeSBwcm92aWRlcyBpdCAoYXZvaWRzIGRvdWJsZSBwYXJlbnMg bGlrZSAiKChhIHwgYikpKyIpLgorICogQSBWQVIgaXMgaXRzIG5hbWUgcGx1cyBxdWFudGlmaWVy LiAgQSBCRUdJTiBvcGVucyBhIGdyb3VwIHNwYW5uaW5nIHRvIGl0cworICogbWF0Y2hpbmcgRU5E IChycHJfbWF0Y2hfZW5kKTsgd2hlbiB0aGUgZ3JvdXAncyBzb2xlIGNoaWxkIGlzIGFuIEFMVCB0 aGF0CisgKiBydW5zIHRvIHRoZSBFTkQsIHRoZSBBTFQgc3VwcGxpZXMgdGhlIHBhcmVudGhlc2Vz IGFuZCB0aGUgZ3JvdXAgb25seSBhZGRzCisgKiB0aGUgcXVhbnRpZmllciwgb3RoZXJ3aXNlIHRo ZSBncm91cCBib2R5IGlzIHdyYXBwZWQgaW4gaXRzIG93biAiKCApIi4gIEFuCisgKiBBTFQgcnVu cyB0byBpdHMgZGVwdGgtZGV0ZXJtaW5lZCBzY29wZSBlbmQgKGNhcHBlZCBieSB0aGUgaW5oZXJp dGVkIGxpbWl0KQorICogYW5kIGVtaXRzICIoIGIxIHwgYjIgfCAuLi4gKSIsIGVhY2ggYnJhbmNo IGRlcGFyc2VkIHdpdGhpbiB0aGUgYm91bmRhcnkKKyAqIGhhbmRlZCBkb3duIGJ5IHJwcl9uZXh0 X2JyYW5jaC4KICAqLwotc3RhdGljIHZvaWQKLWRlcGFyc2VfcnByX2dyb3VwKFJQUlBhdHRlcm4g KnBhdHRlcm4sIGludCAqaWR4LCBTdHJpbmdJbmZvRGF0YSAqYnVmLAotCQkJCSAgUlBSRGVwdGgg KnByZXZEZXB0aCwgYm9vbCAqbmVlZFNwYWNlKQorc3RhdGljIGludAorZGVwYXJzZV9ycHJfbm9k ZShSUFJQYXR0ZXJuICpwYXR0ZXJuLCBpbnQgaSwgaW50IGxpbWl0LCBTdHJpbmdJbmZvIGJ1ZikK IHsKLQlSUFJQYXR0ZXJuRWxlbWVudCAqYmVnaW4gPSAmcGF0dGVybi0+ZWxlbWVudHNbKmlkeF07 Ci0JUlBSRGVwdGgJY2hpbGREZXB0aCA9IGJlZ2luLT5kZXB0aCArIDE7Ci0JYm9vbAkJc2luZ2xl QWx0ID0gZmFsc2U7Ci0JUlBSUGF0dGVybkVsZW1lbnQgKmVuZDsKKwlSUFJQYXR0ZXJuRWxlbWVu dCAqZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tpXTsKIAotCS8qCi0JICogQ2hlY2sgaWYgdGhp cyBncm91cCB3cmFwcyBhIHNpbmdsZSBBTFQgd2l0aCBubyBzaWJsaW5ncy4gU2NhbiBmcm9tCi0J ICogYWZ0ZXIgQUxUIHRvIEVORDogaWYgbm8gZWxlbWVudCBhdCBjaGlsZERlcHRoIGV4aXN0cywg dGhlIEFMVCBpcyB0aGUKLQkgKiBzb2xlIGNoaWxkLgotCSAqLwotCWlmICgqaWR4ICsgMSA8IHBh dHRlcm4tPm51bUVsZW1lbnRzICYmCi0JCVJQUkVsZW1Jc0FsdCgmcGF0dGVybi0+ZWxlbWVudHNb KmlkeCArIDFdKSkKKwlpZiAoUlBSRWxlbUlzVmFyKGVsZW0pKQogCXsKLQkJaW50CQkJajsKKwkJ QXNzZXJ0KGVsZW0tPnZhcklkIDwgcGF0dGVybi0+bnVtVmFycyk7CisJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLAorCQkJCQkJCSAgIHF1b3RlX2lkZW50aWZpZXIocGF0dGVybi0+dmFyTmFt ZXNbZWxlbS0+dmFySWRdKSk7CisJCWFwcGVuZF9ycHJfcXVhbnRpZmllcihidWYsIGVsZW0pOwor CQlyZXR1cm4gaSArIDE7CisJfQogCi0JCXNpbmdsZUFsdCA9IHRydWU7Ci0JCWZvciAoaiA9ICpp ZHggKyAyOyBqIDwgcGF0dGVybi0+bnVtRWxlbWVudHM7IGorKykKLQkJewotCQkJUlBSUGF0dGVy bkVsZW1lbnQgKmUgPSAmcGF0dGVybi0+ZWxlbWVudHNbal07CisJaWYgKFJQUkVsZW1Jc0JlZ2lu KGVsZW0pKQorCXsKKwkJaW50CQkJZW5kID0gcnByX21hdGNoX2VuZChwYXR0ZXJuLCBpKTsKKwkJ Ym9vbAkJbG9uZUFsdDsKIAotCQkJaWYgKFJQUkVsZW1Jc0VuZChlKSAmJiBlLT5kZXB0aCA9PSBi ZWdpbi0+ZGVwdGgpCi0JCQkJYnJlYWs7Ci0JCQlpZiAoZS0+ZGVwdGggPD0gY2hpbGREZXB0aCkK LQkJCXsKLQkJCQlzaW5nbGVBbHQgPSBmYWxzZTsKLQkJCQlicmVhazsKLQkJCX0KKwkJbG9uZUFs dCA9IChpICsgMSA8IGVuZCAmJgorCQkJCSAgIFJQUkVsZW1Jc0FsdCgmcGF0dGVybi0+ZWxlbWVu dHNbaSArIDFdKSAmJgorCQkJCSAgIHJwcl9hbHRfc2NvcGVfZW5kKHBhdHRlcm4sIGkgKyAxKSA9 PSBlbmQpOworCisJCWlmIChsb25lQWx0KQorCQl7CisJCQkvKiBUaGUgQUxUIGNoaWxkIGFscmVh ZHkgcGFyZW50aGVzaXplcyB0aGUgd2hvbGUgZ3JvdXAgYm9keS4gKi8KKwkJCSh2b2lkKSBkZXBh cnNlX3Jwcl9ub2RlKHBhdHRlcm4sIGkgKyAxLCBlbmQsIGJ1Zik7CiAJCX0KKwkJZWxzZQorCQl7 CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CisJCQkodm9pZCkgZGVwYXJzZV9y cHJfc2VxKHBhdHRlcm4sIGkgKyAxLCBlbmQsIGJ1Zik7CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihidWYsICcpJyk7CisJCX0KKwkJYXBwZW5kX3Jwcl9xdWFudGlmaWVyKGJ1ZiwgJnBhdHRlcm4t PmVsZW1lbnRzW2VuZF0pOworCQlyZXR1cm4gZW5kICsgMTsKIAl9CiAKLQkvKiBPcGVuIGdyb3Vw IHBhcmVuICh1bmxlc3Mgc2luZ2xlIEFMVCBwcm92aWRlcyBpdCkgKi8KLQlpZiAoIXNpbmdsZUFs dCkKKwlBc3NlcnQoUlBSRWxlbUlzQWx0KGVsZW0pKTsKIAl7Ci0JCWlmICgqbmVlZFNwYWNlKQot CQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihidWYsICcoJyk7Ci0JCSpuZWVkU3BhY2UgPSBmYWxzZTsKLQl9Ci0JKnByZXZEZXB0aCA9IGNo aWxkRGVwdGg7Ci0JKCppZHgpKys7CQkJCQkvKiBjb25zdW1lIEJFR0lOICovCisJCWludAkJCWFs dEVuZCA9IHJwcl9hbHRfc2NvcGVfZW5kKHBhdHRlcm4sIGkpOworCQlpbnQJCQliOworCQlib29s CQlmaXJzdCA9IHRydWU7CiAKLQkvKiBQcm9jZXNzIGdyb3VwIGNoaWxkcmVuOyBzdG9wcyBhdCBt YXRjaGluZyBFTkQgKi8KLQlkZXBhcnNlX3Jwcl9lbGVtZW50cyhwYXR0ZXJuLCBpZHgsIGJ1Ziwg YmVnaW4tPmRlcHRoLAotCQkJCQkJIHByZXZEZXB0aCwgbmVlZFNwYWNlKTsKKwkJaWYgKGFsdEVu ZCA+IGxpbWl0KQorCQkJYWx0RW5kID0gbGltaXQ7CiAKLQkvKiBDb25zdW1lIEVORCBhbmQgb3V0 cHV0IHF1YW50aWZpZXIgKi8KLQlBc3NlcnQoKmlkeCA8IHBhdHRlcm4tPm51bUVsZW1lbnRzKTsK LQllbmQgPSAmcGF0dGVybi0+ZWxlbWVudHNbKmlkeF07Ci0JQXNzZXJ0KFJQUkVsZW1Jc0VuZChl bmQpICYmIGVuZC0+ZGVwdGggPT0gYmVnaW4tPmRlcHRoKTsKKwkJYXBwZW5kU3RyaW5nSW5mb0No YXIoYnVmLCAnKCcpOworCQliID0gaSArIDE7CisJCXdoaWxlIChiIDwgYWx0RW5kKQorCQl7CisJ CQlpbnQJCQluYiA9IHJwcl9uZXh0X2JyYW5jaChwYXR0ZXJuLCBiLCBhbHRFbmQpOwogCi0Jd2hp bGUgKCpwcmV2RGVwdGggPiBlbmQtPmRlcHRoICsgMSkKLQl7CisJCQlpZiAoIWZpcnN0KQorCQkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIHwgIik7CisJCQlmaXJzdCA9IGZhbHNlOwor CQkJKHZvaWQpIGRlcGFyc2VfcnByX3NlcShwYXR0ZXJuLCBiLCBuYiwgYnVmKTsKKwkJCWIgPSBu YjsKKwkJfQogCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7Ci0JCSgqcHJldkRlcHRo KS0tOworCQlyZXR1cm4gYWx0RW5kOwogCX0KLQlpZiAoIXNpbmdsZUFsdCkKLQkJYXBwZW5kU3Ry aW5nSW5mb0NoYXIoYnVmLCAnKScpOwotCWFwcGVuZF9ycHJfcXVhbnRpZmllcihidWYsIGVuZCk7 Ci0JKnByZXZEZXB0aCA9IGVuZC0+ZGVwdGg7Ci0JKm5lZWRTcGFjZSA9IHRydWU7Ci0JKCppZHgp Kys7CQkJCQkvKiBjb25zdW1lIEVORCAqLwogfQogCiAvKgotICogUHJvY2VzcyBhbiBBTFQgZWxl bWVudDogYWRqdXN0IGRlcHRoIHBhcmVucyBhbmQgcmVnaXN0ZXIgc2VwYXJhdG9yIHBvc2l0aW9u cy4KKyAqIEZpbmQgdGhlIEVORCB0aGF0IGNsb3NlcyB0aGUgZ3JvdXAgb3BlbmVkIGJ5IHRoZSBC RUdJTiBhdCBiZWdpbklkeDogdGhlCisgKiBmaXJzdCBFTkQgYXQgdGhlIHNhbWUgZGVwdGggc2Nh bm5pbmcgZm9yd2FyZC4KICAqLwotc3RhdGljIHZvaWQKLWRlcGFyc2VfcnByX2FsdChSUFJQYXR0 ZXJuICpwYXR0ZXJuLCBpbnQgKmlkeCwgU3RyaW5nSW5mb0RhdGEgKmJ1ZiwKLQkJCQlSUFJEZXB0 aCAqcHJldkRlcHRoLCBib29sICpuZWVkU3BhY2UsIExpc3QgKiphbHRTZXBzKQorc3RhdGljIGlu dAorcnByX21hdGNoX2VuZChSUFJQYXR0ZXJuICpwYXR0ZXJuLCBpbnQgYmVnaW5JZHgpCiB7Ci0J UlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbKmlkeF07Ci0KLQkv KiBDbG9zZSBwYXJlbnMgZm9yIGRlcHRoIGRlY3JlYXNlICovCi0Jd2hpbGUgKCpwcmV2RGVwdGgg PiBlbGVtLT5kZXB0aCkKLQl7Ci0JCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKLQkJ KCpwcmV2RGVwdGgpLS07Ci0JCSpuZWVkU3BhY2UgPSB0cnVlOwotCX0KLQotCS8qIE9wZW4gcGFy ZW5zIHVwIHRvIEFMVCdzIGRlcHRoICovCi0Jd2hpbGUgKCpwcmV2RGVwdGggPCBlbGVtLT5kZXB0 aCkKLQl7Ci0JCWlmICgqbmVlZFNwYWNlKQotCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAn ICcpOwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7Ci0JCSgqcHJldkRlcHRoKSsr OwotCQkqbmVlZFNwYWNlID0gZmFsc2U7Ci0JfQorCVJQUkRlcHRoCWQgPSBwYXR0ZXJuLT5lbGVt ZW50c1tiZWdpbklkeF0uZGVwdGg7CisJaW50CQkJajsKIAotCS8qIFJlZ2lzdGVyIG5leHQgYWx0 ZXJuYXRpb24gc2VwYXJhdG9yIHBvc2l0aW9uICovCi0JaWYgKGVsZW0tPm5leHQgIT0gUlBSX0VM RU1JRFhfSU5WQUxJRCkKKwlmb3IgKGogPSBiZWdpbklkeCArIDE7IGogPCBwYXR0ZXJuLT5udW1F bGVtZW50czsgaisrKQogCXsKLQkJUlBSUGF0dGVybkVsZW1lbnQgKmZpcnN0RWxlbSA9ICZwYXR0 ZXJuLT5lbGVtZW50c1tlbGVtLT5uZXh0XTsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKmUgPSAmcGF0 dGVybi0+ZWxlbWVudHNbal07CiAKLQkJaWYgKGZpcnN0RWxlbS0+anVtcCAhPSBSUFJfRUxFTUlE WF9JTlZBTElEKQotCQkJKmFsdFNlcHMgPSBsYXBwZW5kX2ludCgqYWx0U2VwcywgZmlyc3RFbGVt LT5qdW1wKTsKKwkJaWYgKFJQUkVsZW1Jc0VuZChlKSAmJiBlLT5kZXB0aCA9PSBkKQorCQkJcmV0 dXJuIGo7CiAJfQotCWlmIChlbGVtLT5qdW1wICE9IFJQUl9FTEVNSURYX0lOVkFMSUQpCi0JCSph bHRTZXBzID0gbGFwcGVuZF9pbnQoKmFsdFNlcHMsIGVsZW0tPmp1bXApOwotCSgqaWR4KSsrOwor CXBnX3VucmVhY2hhYmxlKCk7CQkJLyogYSBCRUdJTiBhbHdheXMgaGFzIGEgbWF0Y2hpbmcgRU5E ICovCiB9CiAKIC8qCi0gKiBQcm9jZXNzIGEgVkFSIGVsZW1lbnQ6IGFkanVzdCBkZXB0aCBwYXJl bnMgYW5kIG91dHB1dCB2YXJpYWJsZSBuYW1lLgorICogU2NvcGUgZW5kIG9mIHRoZSBjb25zdHJ1 Y3QgYXQgaW5kZXggaTogdGhlIGZpcnN0IGZvbGxvd2luZyBlbGVtZW50IHdob3NlCisgKiBkZXB0 aCBpcyBubyBncmVhdGVyIHRoYW4gaSdzIG93bi4gIEZvciBhbiBBTFQgbWFya2VyIHRoaXMgaXMg dGhlIGluZGV4IGp1c3QKKyAqIHBhc3QgaXRzIGxhc3QgYnJhbmNoLCBzaW5jZSBkZXB0aCBzdGF5 cyBjb25zdGFudCBhY3Jvc3MgYnJhbmNoIGJvdW5kYXJpZXMuCisgKiBGSU4gc2l0cyBhdCBkZXB0 aCAwLCBzbyBhIHRvcC1sZXZlbCBBTFQgc3RvcHMgdGhlcmUuCiAgKi8KLXN0YXRpYyB2b2lkCi1k ZXBhcnNlX3Jwcl92YXIoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsIFN0cmluZ0luZm9E YXRhICpidWYsCi0JCQkJUlBSRGVwdGggKnByZXZEZXB0aCwgYm9vbCAqbmVlZFNwYWNlLCBMaXN0 ICoqYWx0U2VwcykKK3N0YXRpYyBpbnQKK3Jwcl9hbHRfc2NvcGVfZW5kKFJQUlBhdHRlcm4gKnBh dHRlcm4sIGludCBpKQogewotCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtID0gJnBhdHRlcm4tPmVs ZW1lbnRzWyppZHhdOwotCi0JLyogT3BlbiBwYXJlbnMgZm9yIGRlcHRoIGluY3JlYXNlICovCi0J d2hpbGUgKCpwcmV2RGVwdGggPCBlbGVtLT5kZXB0aCkKLQl7Ci0JCWlmICgqbmVlZFNwYWNlKQot CQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihidWYsICcoJyk7Ci0JCSgqcHJldkRlcHRoKSsrOwotCQkqbmVlZFNwYWNlID0gZmFsc2U7Ci0J fQorCVJQUkRlcHRoCWQgPSBwYXR0ZXJuLT5lbGVtZW50c1tpXS5kZXB0aDsKKwlpbnQJCQlrOwog Ci0JLyogQ2xvc2UgcGFyZW5zIGZvciBkZXB0aCBkZWNyZWFzZSAqLwotCXdoaWxlICgqcHJldkRl cHRoID4gZWxlbS0+ZGVwdGgpCisJZm9yIChrID0gaSArIDE7IGsgPCBwYXR0ZXJuLT5udW1FbGVt ZW50czsgaysrKQogCXsKLQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOwotCQkoKnBy ZXZEZXB0aCktLTsKKwkJaWYgKHBhdHRlcm4tPmVsZW1lbnRzW2tdLmRlcHRoIDw9IGQpCisJCQly ZXR1cm4gazsKIAl9CisJcmV0dXJuIHBhdHRlcm4tPm51bUVsZW1lbnRzOworfQogCi0JaWYgKCpu ZWVkU3BhY2UpCi0JCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAnKTsKLQotCUFzc2VydChl bGVtLT52YXJJZCA8IHBhdHRlcm4tPm51bVZhcnMpOwotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCBxdW90ZV9pZGVudGlmaWVyKHBhdHRlcm4tPnZhck5hbWVzW2VsZW0tPnZhcklkXSkpOwot CWFwcGVuZF9ycHJfcXVhbnRpZmllcihidWYsIGVsZW0pOwotCSpuZWVkU3BhY2UgPSB0cnVlOwor LyoKKyAqIEJvdW5kYXJ5IG9mIHRoZSBhbHRlcm5hdGlvbiBicmFuY2ggc3RhcnRpbmcgYXQgYiAo aS5lLiB0aGUgc3RhcnQgb2YgdGhlIG5leHQKKyAqIGJyYW5jaCwgb3IgYWx0RW5kIGlmIGIgaXMg dGhlIGxhc3QgYnJhbmNoKS4KKyAqCisgKiBUaGUgYnJhbmNoLXN0YXJ0IGVsZW1lbnQncyBqdW1w IHBvaW50cyBhdCB0aGUgbmV4dCBicmFuY2ggd2hlbiB0aGlzIGlzIG5vdAorICogdGhlIGxhc3Qg YnJhbmNoLiAganVtcCBpcyBvdmVybG9hZGVkIChhIGdyb3VwIEJFR0lOIGFsc28gdXNlcyBpdCBm b3IgaXRzCisgKiBza2lwIHBhdGgpLCBzbyBjb25maXJtIGEgcmVhbCBicmFuY2ggYm91bmRhcnkg d2l0aCB0aGUgcmVsYXRpdmUgdGVzdAorICogZWxlbVtqLTFdLm5leHQgIT0gajogYXQgYSB0cnVl IGJvdW5kYXJ5IHRoZSBwcmVjZWRpbmcgYnJhbmNoJ3MgdGFpbCBoYXMgaXRzCisgKiBuZXh0IHJl ZGlyZWN0ZWQgcGFzdCB0aGUgYWx0ZXJuYXRpb24sIHNvIGl0IGRvZXMgbm90IHBvaW50IGF0IGou CisgKi8KK3N0YXRpYyBpbnQKK3Jwcl9uZXh0X2JyYW5jaChSUFJQYXR0ZXJuICpwYXR0ZXJuLCBp bnQgYiwgaW50IGFsdEVuZCkKK3sKKwlpbnQJCQlqID0gcGF0dGVybi0+ZWxlbWVudHNbYl0uanVt cDsKIAotCWlmIChlbGVtLT5qdW1wICE9IFJQUl9FTEVNSURYX0lOVkFMSUQpCi0JCSphbHRTZXBz ID0gbGFwcGVuZF9pbnQoKmFsdFNlcHMsIGVsZW0tPmp1bXApOwotCSgqaWR4KSsrOworCWlmIChq ICE9IFJQUl9FTEVNSURYX0lOVkFMSUQgJiYgaiA8IGFsdEVuZCAmJgorCQlwYXR0ZXJuLT5lbGVt ZW50c1tqIC0gMV0ubmV4dCAhPSBqKQorCQlyZXR1cm4gajsKKwlyZXR1cm4gYWx0RW5kOwogfQog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dAppbmRleCA1Y2Rk ZDFhNTZkZi4uYmNiZjRmOTQxYmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByX2V4cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4 cGxhaW4ub3V0CkBAIC0zNzYxLDYgKzM3NjEsOTU2IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29w cz0xKQogKDkgcm93cykKIAorLS0gUXVhbnRpZmllZCBncm91cCBhcyB0aGUgZmlyc3QgYWx0ZXJu YXRpb24gYnJhbmNoCistLSBQYXR0ZXJuOiAoKEEgQikrIHwgQykgLSBsZWFkaW5nIGdyb3VwIGJy YW5jaCBtdXN0IG9wZW4gdGhlIGVuY2xvc2luZyBwYXJlbgorQ1JFQVRFIFZJRVcgcnByX2V2X2Fs dF9ncnBfZmlyc3QgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgQikrIHwgQykK KyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0g MgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2FsdF9ncnBfZmlyc3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CisgICAgICAgICAgbGluZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOICgoYSBiKSsgfCBjKSAKKygxIHJvdykKKworU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoKEEgQikrIHwgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAx LCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4 cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBX aW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46ICgoYScgYicpKyIgfCBjKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6 IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNjcg dG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWwsIDcgcHJ1 bmVkCisgICBORkE6IDkgbWF0Y2hlZCAobGVuIDEvMi8xLjQpLCAwIG1pc21hdGNoZWQKKyAgIE5G QTogMCBhYnNvcmJlZCwgNCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDEw IHJvd3MpCisKKy0tIFF1YW50aWZpZWQgZ3JvdXAgYXMgdGhlIGxhc3QgYWx0ZXJuYXRpb24gYnJh bmNoCistLSBQYXR0ZXJuOiAoQyB8IChBIEIpKykgLSB0cmFpbGluZyBncm91cCBicmFuY2gsIG5v IHNlcGFyYXRvciBmb2xsb3dzCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF9sYXN0IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEMgfCAoQSBCKSspCisgICAgREVGSU5FIEEgQVMg diAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRf Z3JwX2xhc3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAg ICAgICAgbGluZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRU RVJOIChjIHwgKGEgYikrKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQyB8IChBIEIpKykKKyAg ICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgor KTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTIwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChjIHwgKGEnIGInKSsi KQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBT dG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNjcgdG90YWwsIDAgbWVyZ2VkCisg ICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWwsIDcgcHJ1bmVkCisgICBORkE6IDkgbWF0 Y2hlZCAobGVuIDEvMi8xLjQpLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMCBhYnNvcmJlZCwgNCBz a2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFF1YW50 aWZpZWQgZ3JvdXAgYXMgdGhlIG1pZGRsZSBicmFuY2ggb2YgYSB0aHJlZS13YXkgYWx0ZXJuYXRp b24KKy0tIFBhdHRlcm46IChDIHwgKEEgQikrIHwgRCkgLSBzZXBhcmF0b3IgYmVmb3JlIEQgbXVz dCBzdXJ2aXZlIHRoZSBncm91cCBicmFuY2gKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfZ3JwX21p ZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDIHwgKEEgQikrIHwgRCkKKyAgICBE RUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBB UyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZ3JwX21pZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYyB8IChhIGIpKyB8IGQpIAor KDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChDIHwgKEEgQikrIHwgRCkKKyAgICBERUZJTkUgQSBBUyB2 ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMK Kyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwg cm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYyB8IChhJyBiJykr IiB8IGQpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNiBwZWFrLCA4OCB0b3RhbCwgMCBtZXJn ZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAyMSB0b3RhbCwgMiBwcnVuZWQKKyAgIE5GQTog MTQgbWF0Y2hlZCAobGVuIDEvMi8xLjMpLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMCBhYnNvcmJl ZCwgNCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0t IFF1YW50aWZpZWQgZ3JvdXAgYXMgdGhlIGZpcnN0IGJyYW5jaCBvZiBhIHRocmVlLXdheSBhbHRl cm5hdGlvbgorLS0gUGF0dGVybjogKChBIEIpKyB8IEMgfCBEKSAtIGxlYWRpbmcgZ3JvdXAgYnJh bmNoIHdpdGggdHdvIGZvbGxvd2luZyBicmFuY2hlcworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9n cnBfZmlyc3QzIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpKyB8IEMgfCBE KQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQg PSAyLCBEIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9ncnBfZmlyc3QzJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgbGluZSAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSBiKSsg fCBjIHwgZCkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpKyB8IEMgfCBEKQorICAgIERF RklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFT IHYgJSA0ID0gMworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5f ZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46ICgo YScgYicpKyIgfCBjIHwgZCkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA2IHBlYWssIDg4IHRv dGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCAyIHBydW5l ZAorICAgTkZBOiAxNCBtYXRjaGVkIChsZW4gMS8yLzEuMyksIDAgbWlzbWF0Y2hlZAorICAgTkZB OiAwIGFic29yYmVkLCA0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisoMTAg cm93cykKKworLS0gQm91bmRlZC1xdWFudGlmaWVyIGdyb3VwIGFzIHRoZSBmaXJzdCBhbHRlcm5h dGlvbiBicmFuY2gKKy0tIFBhdHRlcm46ICgoQSBCKXsyfSB8IEMpIC0gbGVhZGluZyBncm91cCBi cmFuY2ggd2l0aCBhIHJhbmdlIHF1YW50aWZpZXIKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfZ3Jw X2JvdW5kZWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgQil7Mn0gfCBDKQor ICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAy CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfYWx0X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworICAgICAgICAgICBsaW5lICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIGIpezJ9IHwgYykgCisoMSByb3cpCisKK1NF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKChBIEIpezJ9IHwgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMg diAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6 IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46ICgoYSBiKXsyfSB8IGMpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNCBw ZWFrLCA2MyB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAyMSB0b3Rh bCwgMTEgcHJ1bmVkCisgICBORkE6IDUgbWF0Y2hlZCAobGVuIDEvMS8xLjApLCA0IG1pc21hdGNo ZWQgKGxlbiAzLzMvMy4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisoOSByb3dzKQorCistLSBUd28gcXVhbnRp ZmllZCBncm91cHMgaW4gb25lIGFsdGVybmF0aW9uCistLSBQYXR0ZXJuOiAoKEEgQikrIHwgKEMg RCkrKSAtIGJvdGggYnJhbmNoZXMgYXJlIGdyb3VwcworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9n cnBfYm90aCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSBCKSsgfCAoQyBEKSsp CisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9 IDIsIEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2dycF9ib3RoJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgIGxpbmUgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIGIpKyB8 IChjIGQpKykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpKyB8IChDIEQpKykKKyAgICBE RUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBB UyB2ICUgNCA9IDMKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWlu X2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAo KGEnIGInKSsiIHwgKGMnIGQnKSsiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywg NzIgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWwsIDIg cHJ1bmVkCisgICBORkE6IDkgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAwIG1pc21hdGNoZWQKKyAg IE5GQTogMCBhYnNvcmJlZCwgOSBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQor KDEwIHJvd3MpCisKKy0tIExlYWRpbmcgZ3JvdXAgYnJhbmNoIGluIGFuIGFsdGVybmF0aW9uIG5l c3RlZCBpbiBhIHNlcXVlbmNlCistLSBQYXR0ZXJuOiAoKChBIEIpKyB8IEMpIEQpIC0gaW5uZXIg YWx0ZXJuYXRpb24gb3BlbnMgd2l0aCBhIGdyb3VwIGJyYW5jaAorQ1JFQVRFIFZJRVcgcnByX2V2 X2FsdF9ncnBfc2VxX2hlYWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKChBIEIp KyB8IEMpIEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBB UyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2dycF9zZXFfaGVhZCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgIGxp bmUgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVS TiAoKChhIGIpKyB8IGMpIGQpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgQikrIHwgQykg RCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0 ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJw cl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoKGEnIGInKSsiIHwgYykgZAorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVh aywgNjcgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWws IDYgcHJ1bmVkCisgICBORkE6IDUgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCA0IG1pc21hdGNoZWQg KGxlbiAzLzMvMy4wKQorICAgTkZBOiAwIGFic29yYmVkLCA1IHNraXBwZWQgKGxlbiAxLzEvMS4w KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTIwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gVHJhaWxpbmcgZ3JvdXAgYnJhbmNoIGlu IGFuIGFsdGVybmF0aW9uIG5lc3RlZCBpbiBhIHNlcXVlbmNlCistLSBQYXR0ZXJuOiAoKEMgfCAo QSBCKSspIEQpIC0gZ3JvdXAgYXMgbGFzdCBicmFuY2gsIHRoZW4gYSBzZXF1ZW5jZSBlbGVtZW50 CitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF9zZXFfdGFpbCBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOICgoQyB8IChBIEIpKykgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAs IEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9hbHRfZ3JwX3NlcV90YWlsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOICgoYyB8IChhIGIpKykgZCkgCisoMSByb3cpCisKK1NFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKChDIHwgKEEgQikrKSBEKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2 ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3Bz PTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChjIHwgKGEnIGInKSsiKSBkCisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgor ICAgTkZBIFN0YXRlczogNSBwZWFrLCA2NyB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0 czogMyBwZWFrLCAyMSB0b3RhbCwgNiBwcnVuZWQKKyAgIE5GQTogNSBtYXRjaGVkIChsZW4gMi8y LzIuMCksIDQgbWlzbWF0Y2hlZCAobGVuIDMvMy8zLjApCisgICBORkE6IDAgYWJzb3JiZWQsIDUg c2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBRdWFu dGlmaWVkIGFsdGVybmF0aW9uIHdob3NlIGZpcnN0IGJyYW5jaCBpcyBhIHF1YW50aWZpZWQgZ3Jv dXAKKy0tIFBhdHRlcm46ICgoKEEgQil7Mn0gfCBDKSspIC0gc2luZ2xlLUFMVCBncm91cCB3cmFw cyBhIGxlYWRpbmcgZ3JvdXAgYnJhbmNoCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF9xdWFu dCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgQil7Mn0gfCBDKSspCisgICAg REVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9hbHRfZ3JwX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKCgoYSBiKXsyfSB8IGMpKykgCisoMSByb3cpCisK K1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKCgoQSBCKXsyfSB8IEMpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAs IEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46ICgoYSBiKXsyfSB8IGMpKworICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0 ZXM6IDYgcGVhaywgNzggdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywg MjEgdG90YWwsIDExIHBydW5lZAorICAgTkZBOiA1IG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgNCBt aXNtYXRjaGVkIChsZW4gMy8zLzMuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDkgcm93cykKKworLS0gVW5p dCAoMSwxKSBncm91cCBhcyBhbiBhbHRlcm5hdGlvbiBicmFuY2ggKGVtaXRzIG5vIEJFR0lOL0VO RCkKKy0tIFBhdHRlcm46ICgoQSBCKSB8IEMpIC0gY29udHJvbDogdGFrZXMgdGhlIHZhcmlhYmxl IHBhdGgsIG5vdCBkZXBhcnNlX3Jwcl9ncm91cAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9ncnBf dW5pdCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSBCKSB8IEMpCisgICAgREVG SU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9hbHRfZ3JwX3VuaXQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CisgICAgICAgICAgbGluZSAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgUEFUVEVSTiAoKGEgYikgfCBjKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgQikgfCBD KQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQg PSAyCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0 dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgYiB8IGMp CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0 b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNCBwZWFrLCA2MyB0b3RhbCwgMCBtZXJnZWQKKyAg IE5GQSBDb250ZXh0czogMiBwZWFrLCAyMSB0b3RhbCwgNyBwcnVuZWQKKyAgIE5GQTogOSBtYXRj aGVkIChsZW4gMS8yLzEuNCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVkLCA0IHNr aXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gUXVhbnRp ZmllZCB2YXJpYWJsZSBhcyB0aGUgZmlyc3QgYWx0ZXJuYXRpb24gYnJhbmNoCistLSBQYXR0ZXJu OiAoQSsgfCBDKSAtIGNvbnRyb2w6IGRlcGFyc2VfcnByX3ZhciBhbHJlYWR5IG9wZW5zIHRoZSBs ZWFkaW5nIHBhcmVuCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3Zhcl9maXJzdCBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKyB8IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAw LCBDIEFTIHYgJSA0ID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF92YXJfZmlyc3QnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgfCBjKSAKKygxIHJvdykKKworU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSsgfCBDKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQyBBUyB2ICUgNCA9IDIK Kyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwg cm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSsiIHwgYykKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCisgICBORkEgU3RhdGVzOiA1IHBlYWssIDY4IHRvdGFsLCAwIG1lcmdlZAorICAgTkZB IENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCAxMCBwcnVuZWQKKyAgIE5GQTogMTAgbWF0Y2hl ZCAobGVuIDEvMS8xLjApLCAwIG1pc21hdGNoZWQKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDkgcm93cykKKwor LS0gUXVhbnRpZmllZCBncm91cCBhcyB0aGUgbGFzdCBicmFuY2ggb2YgYSB0aHJlZS13YXkgYWx0 ZXJuYXRpb24KKy0tIFBhdHRlcm46IChDIHwgRCB8IChBIEIpKykgLSBjb250cm9sOiB0cmFpbGlu ZyBncm91cCBuZWVkcyBubyBzZXBhcmF0b3IKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfZ3JwX2xh c3QzIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAy MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEMgfCBEIHwgKEEgQikrKQorICAg IERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBE IEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9ncnBfbGFzdDMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICBsaW5lICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGMgfCBkIHwgKGEgYikr KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQyB8IEQgfCAoQSBCKSspCisgICAgREVGSU5FIEEg QVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQg PSAzCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0 dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGMgfCBkIHwg KGEnIGInKSsiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgODggdG90YWwsIDAg bWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWwsIDIgcHJ1bmVkCisgICBO RkE6IDE0IG1hdGNoZWQgKGxlbiAxLzIvMS4zKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJz b3JiZWQsIDQgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQor CistLSBBbHRlcm5hdGlvbiBuZXN0ZWQgaW4gYSBsZWFkaW5nIGJyYW5jaCBtdXN0IG5vdCBzd2Fs bG93IHRoZSB0cmFpbGluZyBicmFuY2gKKy0tIFBhdHRlcm46IChEIChBIHwgQikgfCBFKSAtIGlu aGVyaXRlZCBsaW1pdCBib3VuZHMgdGhlIGlubmVyIGFsdGVybmF0aW9uCitDUkVBVEUgVklFVyBy cHJfZXZfYWx0X2lubmVyX2JvdW5kZWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo RCAoQSB8IEIpIHwgRSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAlIDUgPSAx LCBEIEFTIHYgJSA1ID0gMiwgRSBBUyB2ICUgNSA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfaW5uZXJfYm91 bmRlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBB VFRFUk4gKGQgKGEgfCBiKSB8IGUpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChEIChBIHwgQikg fCBFKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEQgQVMgdiAl IDUgPSAyLCBFIEFTIHYgJSA1ID0gMworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg cnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IFBhdHRlcm46IChkIChhIHwgYikgfCBlKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVh aywgNzEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWws IDEyIHBydW5lZAorICAgTkZBOiA0IG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgNCBtaXNtYXRjaGVk IChsZW4gMi8yLzIuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDkgcm93cykKKworLS0gR3JvdXAgbWlkLWJy YW5jaCBmb2xsb3dlZCBieSBhIHNlcXVlbmNlIGVsZW1lbnQgbmVlZHMgbm8gc2VwYXJhdG9yIGJl Zm9yZSBpdAorLS0gUGF0dGVybjogKEMgfCAoQSBCKSsgRCkgLSByZWxhdGl2ZS1uZXh0IGJsb2Nr cyBhIHNwdXJpb3VzIHNlcGFyYXRvciBhdCBECitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF90 aGVuX3NlcSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDIHwgKEEgQikrIEQpCisg ICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIs IEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2dycF90aGVuX3NlcScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgbGluZSAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChjIHwgKGEgYikrIGQp IAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDIHwgKEEgQikrIEQpCisgICAgREVGSU5FIEEgQVMg diAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAz CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGMgfCAoYScgYicp KyIgZCkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA2IHBlYWssIDg4IHRvdGFsLCAwIG1lcmdl ZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCA2IHBydW5lZAorICAgTkZBOiAx MCBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDQgbWlzbWF0Y2hlZCAobGVuIDMvMy8zLjApCisgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAg bG9vcHM9MSkKKyg5IHJvd3MpCisKKy0tIFF1YW50aWZpZWQgZ3JvdXAgd3JhcHBpbmcgYSBsb25l IGFsdGVybmF0aW9uOiB0aGUgQUxUIHN1cHBsaWVzIHRoZSBwYXJlbnMKKy0tIFBhdHRlcm46ICgo QSB8IEIpKykgLSBsb25lQWx0IHBhdGgsIHNpbmdsZSBwYWlyIG9mIHBhcmVucworQ1JFQVRFIFZJ RVcgcnByX2V2X2dycF9sb25lX2FsdCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgo QSB8IEIpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfZ3JwX2xvbmVfYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworICAgICAgICAgbGluZSAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOICgoYSB8IGIpKykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIHwgQikrKQor ICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEKKyk7Jyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29w cz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpKworICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBT dGF0ZXM6IDYgcGVhaywgOTMgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVh aywgMjEgdG90YWwsIDEwIHBydW5lZAorICAgTkZBOiA2IG1hdGNoZWQgKGxlbiAxLzIvMS43KSwg MCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDQgc2tpcHBlZCAobGVuIDEvMS8xLjAp CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9 MjAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBRdWFudGlmaWVkIGdyb3VwIHdyYXBwaW5n IGEgc2VxdWVuY2Ugd2hvc2UgbGFzdCBlbGVtZW50IGlzIGFuIGFsdGVybmF0aW9uCistLSBQYXR0 ZXJuOiAoKEEgKEIgfCBDKSkrKSAtIGdyb3VwIHBhcmVuIHBsdXMgYSBuZXN0ZWQgYWx0ZXJuYXRp b24gcGFyZW4KK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBfc2VxX2FsdCBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOICgoQSAoQiB8IEMpKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAw LCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfc2VxX2FsdCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgbGlu ZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgo YSAoYiB8IGMpKSspIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSAoQiB8IEMpKSspCisgICAg REVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93 cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSAoYiB8IGMpKSsKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDM1IHRvdGFsLCAwIG1lcmdlZAorICAgTkZB IENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCAxMiBwcnVuZWQKKyAgIE5GQTogNCBtYXRjaGVk IChsZW4gMi8yLzIuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVkLCA0IHNraXBw ZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gUXVhbnRpZmll ZCBncm91cCB3cmFwcGluZyBhIHNlcXVlbmNlIHdob3NlIGZpcnN0IGVsZW1lbnQgaXMgYW4gYWx0 ZXJuYXRpb24KKy0tIFBhdHRlcm46ICgoKEEgfCBCKSBDKSspIC0gbGVhZGluZyBuZXN0ZWQgYWx0 ZXJuYXRpb24gaW5zaWRlIGEgZ3JvdXAgc2VxdWVuY2UKK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBf YWx0X3NlcSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgfCBCKSBDKSspCisg ICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9ncnBfYWx0X3NlcScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKKyAgICAgICAgICAgbGluZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOICgoKGEgfCBiKSBjKSspIAorKDEgcm93KQorCitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOICgoKEEgfCBCKSBDKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0 ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJw cl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoKGEgfCBiKSBjKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdl OiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA2IHBlYWssIDc4 IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCA2IHBy dW5lZAorICAgTkZBOiA1IG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgNCBtaXNtYXRjaGVkIChsZW4g Mi8yLzIuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgNSBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4w MCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIEFsdGVybmF0aW9uIG5vbi1sYXN0IGluIGEgbm9u LWxhc3QgYnJhbmNoLCBzdGFja2VkIHRocmVlIGRlZXA6IGVhY2ggbGV2ZWwncworLS0gaW5oZXJp dGVkIGxpbWl0IG11c3QgYm91bmQgdGhlIGlubmVyIGFsdGVybmF0aW9uIGFnYWluc3QgdGhlIG5l eHQgYnJhbmNoCistLSBQYXR0ZXJuOiAoKChBIHwgQikgQyB8IEQpIEUgfCBGKSAtIHRocmVlIG5l c3RlZCBpbmhlcml0ZWQtbGltaXQgYm91bmRhcmllcworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9z dGFjazMgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKChBIHwgQikgQyB8IEQpIEUg fCBGKQorICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAl IDYgPSAyLAorICAgICAgICAgICBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMg diAlIDYgPSA1CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3N0YWNrMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoKGEgfCBi KSBjIHwgZCkgZSB8IGYpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK K0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgfCBCKSBDIHwgRCkg RSB8IEYpCisgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2 ICUgNiA9IDIsCisgICAgICAgICAgIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBB UyB2ICUgNiA9IDUKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWlu X2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAo KChhIHwgYikgYyB8IGQpIGUgfCBmKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDYgcGVhaywg MTQ3IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCA0 IHBydW5lZAorICAgTkZBOiA2IG1hdGNoZWQgKGxlbiAxLzIvMS41KSwgNyBtaXNtYXRjaGVkIChs ZW4gMi8zLzIuNCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgMyBza2lwcGVkIChsZW4gMS8xLzEuMCkK KyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0y MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFNhbWUgaW50ZXJhY3Rpb24gc3RhY2tlZCBm b3VyIGRlZXAsIHRvIGV4ZXJjaXNlIHRoZSBpbmR1Y3Rpb24gb25lIHN0ZXAgZnVydGhlcgorLS0g UGF0dGVybjogKCgoKEEgfCBCKSBDIHwgRCkgRSB8IEYpIEcgfCBIKSAtIGZvdXIgbmVzdGVkIGlu aGVyaXRlZC1saW1pdCBib3VuZGFyaWVzCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3N0YWNrNCBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKChBIHwgQikgQyB8IEQpIEUgfCBGKSBH IHwgSCkKKyAgICBERUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMgdiAlIDggPSAxLCBDIEFTIHYg JSA4ID0gMiwgRCBBUyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUgQVMgdiAlIDggPSA0LCBGIEFT IHYgJSA4ID0gNSwgRyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDggPSA3CispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0 X3N0YWNrNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAg ICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKCgoYSB8IGIpIGMgfCBk KSBlIHwgZikgZyB8IGgpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK K0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKChBIHwgQikgQyB8IEQp IEUgfCBGKSBHIHwgSCkKKyAgICBERUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMgdiAlIDggPSAx LCBDIEFTIHYgJSA4ID0gMiwgRCBBUyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUgQVMgdiAlIDgg PSA0LCBGIEFTIHYgJSA4ID0gNSwgRyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDggPSA3CispOycp OworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9 MjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKCgoKGEgfCBiKSBjIHwgZCkg ZSB8IGYpIGcgfCBoKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTg5IHRvdGFs LCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCA2IHBydW5lZAor ICAgTkZBOiA0IG1hdGNoZWQgKGxlbiAxLzIvMS41KSwgOCBtaXNtYXRjaGVkIChsZW4gMi8zLzIu NikKKyAgIE5GQTogMCBhYnNvcmJlZCwgMiBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29w cz0xKQorKDEwIHJvd3MpCisKKy0tIFRocmVlLWRlZXAgc3RhY2sgd2hvc2UgaW5uZXJtb3N0IGJy YW5jaCBpcyBhIHF1YW50aWZpZWQgZ3JvdXA6IHRoZSBncm91cCdzCistLSBza2lwLXRhcmdldCBq dW1wIG11c3Qgbm90IGJlIG1pc3Rha2VuIGZvciBhIGJyYW5jaCBzZXBhcmF0b3IgYXQgYW55IGRl cHRoCistLSBQYXR0ZXJuOiAoKChBIHwgQikrIEMgfCBEKSBFIHwgRikgLSBpbmhlcml0ZWQgbGlt aXQgcGx1cyBsb25lQWx0IGF0IHRoZSBiYXNlCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3N0YWNr M19ncnAgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKChBIHwgQikrIEMgfCBEKSBF IHwgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYg JSA2ID0gMiwKKyAgICAgICAgICAgRCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFT IHYgJSA2ID0gNQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2FsdF9zdGFjazNfZ3JwJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAo KChhIHwgYikrIGMgfCBkKSBlIHwgZikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoQSB8IEIp KyBDIHwgRCkgRSB8IEYpCisgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0g MSwgQyBBUyB2ICUgNiA9IDIsCisgICAgICAgICAgIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2 ID0gNCwgRiBBUyB2ICUgNiA9IDUKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJw cl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoKChhIHwgYikrIGMgfCBkKSBlIHwgZikKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVz OiAxMSBwZWFrLCAxNzcgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywg MjEgdG90YWwsIDQgcHJ1bmVkCisgICBORkE6IDYgbWF0Y2hlZCAobGVuIDEvMi8xLjUpLCA3IG1p c21hdGNoZWQgKGxlbiAyLzQvMy4xKQorICAgTkZBOiAwIGFic29yYmVkLCAzIHNraXBwZWQgKGxl biAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFj dHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gQWx0ZXJuYXRpb24gdHJh aWxpbmcgYSBwYXJlbi1sZXNzIHNlcXVlbmNlIChsYXN0IGVsZW1lbnQgb2YgYSBub24tbGFzdAor LS0gYnJhbmNoLCBubyBzYW1lLWRlcHRoIHNpYmxpbmcgdG8gYm91bmQgaXQpLCBuZXN0ZWQgdGhy ZWUgZGVlcAorLS0gUGF0dGVybjogKEEgKEIgKEMgfCBEKSB8IEUpIHwgRikgLSBlYWNoIGlubmVy IGFsdGVybmF0aW9uIGlzIGJyYW5jaC10YWlsCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3RhaWwz IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgKEMgfCBEKSB8IEUpIHwgRikK KyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2ID0g MiwKKyAgICAgICAgICAgRCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2 ID0gNQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2FsdF90YWlsMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIChiIChjIHwgZCkg fCBlKSB8IGYpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIChCIChDIHwgRCkgfCBFKSB8IEYp CisgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2ICUgNiA9 IDIsCisgICAgICAgICAgIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUg NiA9IDUKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChh Y3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSAoYiAo YyB8IGQpIHwgZSkgfCBmKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNzUgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWwsIDExIHBydW5l ZAorICAgTkZBOiA2IG1hdGNoZWQgKGxlbiAxLzMvMi4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6 IDAgYWJzb3JiZWQsIDMgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKKygxMCBy b3dzKQorCistLSBTYW1lIGJyYW5jaC10YWlsIGFsdGVybmF0aW9uIG5lc3RlZCBmb3VyIGRlZXAK Ky0tIFBhdHRlcm46IChBIChCIChDIChEIHwgRSkgfCBGKSB8IEcpIHwgSCkgLSBicmFuY2gtdGFp bCBhbHRlcm5hdGlvbiB4NAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF90YWlsNCBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIChCIChDIChEIHwgRSkgfCBGKSB8IEcpIHwgSCkKKyAg ICBERUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMgdiAlIDggPSAxLCBDIEFTIHYgJSA4ID0gMiwg RCBBUyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUgQVMgdiAlIDggPSA0LCBGIEFTIHYgJSA4ID0g NSwgRyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDggPSA3CispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3RhaWw0Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgICAg ICAgICBsaW5lICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIChiIChjIChkIHwgZSkgfCBmKSB8IGcp IHwgaCkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgKEMgKEQgfCBFKSB8IEYpIHwgRykg fCBIKQorICAgIERFRklORSBBIEFTIHYgJSA4ID0gMCwgQiBBUyB2ICUgOCA9IDEsIEMgQVMgdiAl IDggPSAyLCBEIEFTIHYgJSA4ID0gMywKKyAgICAgICAgICAgRSBBUyB2ICUgOCA9IDQsIEYgQVMg diAlIDggPSA1LCBHIEFTIHYgJSA4ID0gNiwgSCBBUyB2ICUgOCA9IDcKKyk7Jyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29w cz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSAoYiAoYyAoZCB8IGUpIHwgZikgfCBnKSB8 IGgpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVt IFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNSBwZWFrLCA3NSB0b3RhbCwgMCBtZXJnZWQK KyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAyMSB0b3RhbCwgMTQgcHJ1bmVkCisgICBORkE6IDQg bWF0Y2hlZCAobGVuIDEvNC8yLjUpLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMCBhYnNvcmJlZCwg MiBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIEEg bmVzdGVkIGFsdGVybmF0aW9uIHRhaWwgbmVpZ2hib3VyaW5nIGEgbXVsdGktZWxlbWVudCBzZXF1 ZW5jZSBicmFuY2g6IHRoZQorLS0gYnJhbmNoIGJvdW5kYXJ5IG11c3Qgc3BsaXQgIi4uLmJyYW5j aC10YWlsIEFMVCIgZnJvbSBhIHBsYWluICJHIEEiIHNlcXVlbmNlCistLSBQYXR0ZXJuOiAoQSAo QiAoQyAoRCB8IEUpIHwgRikgfCBHIEEpIHwgSCkgLSBzZXEgYnJhbmNoIGJlc2lkZSBhbiBBTFQg dGFpbAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF90YWlsX3NlcWJyYW5jaCBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBIChCIChDIChEIHwgRSkgfCBGKSB8IEcgQSkgfCBIKQorICAg IERFRklORSBBIEFTIHYgJSA4ID0gMCwgQiBBUyB2ICUgOCA9IDEsIEMgQVMgdiAlIDggPSAyLCBE IEFTIHYgJSA4ID0gMywKKyAgICAgICAgICAgRSBBUyB2ICUgOCA9IDQsIEYgQVMgdiAlIDggPSA1 LCBHIEFTIHYgJSA4ID0gNiwgSCBBUyB2ICUgOCA9IDcKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfdGFpbF9zZXFi cmFuY2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAg ICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIChiIChjIChkIHwg ZSkgfCBmKSB8IGcgYSkgfCBoKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAoQiAoQyAoRCB8 IEUpIHwgRikgfCBHIEEpIHwgSCkKKyAgICBERUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMgdiAl IDggPSAxLCBDIEFTIHYgJSA4ID0gMiwgRCBBUyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUgQVMg diAlIDggPSA0LCBGIEFTIHYgJSA4ID0gNSwgRyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDggPSA3 CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgKGIgKGMgKGQg fCBlKSB8IGYpIHwgZyBhKSB8IGgpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNSBwZWFrLCA3 NSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAyMSB0b3RhbCwgMTQg cHJ1bmVkCisgICBORkE6IDQgbWF0Y2hlZCAobGVuIDEvNC8yLjUpLCAwIG1pc21hdGNoZWQKKyAg IE5GQTogMCBhYnNvcmJlZCwgMiBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQor KDEwIHJvd3MpCisKKy0tIEEgbmVzdGVkIGFsdGVybmF0aW9uIHRoYXQgaXMgc2libGluZy1ib3Vu ZGVkIGJ5IGEgdHJhaWxpbmcgc2VxdWVuY2UgZWxlbWVudAorLS0gYXQgdGhlIG91dGVyIGxldmVs ICh0aGUgQUxUIGlzIG5vdCB0aGUgYnJhbmNoIHRhaWw7IEcgZm9sbG93cyBpdCBpbi1icmFuY2gp CistLSBQYXR0ZXJuOiAoKEEgKEIgKEMgfCBEKSB8IEUpIHwgRikgRyB8IEgpIC0gQUxUIGJvdW5k ZWQgYnkgYSBmb2xsb3dpbmcgZWxlbWVudAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9taWRfc2Vx dGFpbCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSAoQiAoQyB8IEQpIHwgRSkg fCBGKSBHIHwgSCkKKyAgICBERUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMgdiAlIDggPSAxLCBD IEFTIHYgJSA4ID0gMiwgRCBBUyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUgQVMgdiAlIDggPSA0 LCBGIEFTIHYgJSA4ID0gNSwgRyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDggPSA3CispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfYWx0X21pZF9zZXF0YWlsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworICAgICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSAo YiAoYyB8IGQpIHwgZSkgfCBmKSBnIHwgaCkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIChC IChDIHwgRCkgfCBFKSB8IEYpIEcgfCBIKQorICAgIERFRklORSBBIEFTIHYgJSA4ID0gMCwgQiBB UyB2ICUgOCA9IDEsIEMgQVMgdiAlIDggPSAyLCBEIEFTIHYgJSA4ID0gMywKKyAgICAgICAgICAg RSBBUyB2ICUgOCA9IDQsIEYgQVMgdiAlIDggPSA1LCBHIEFTIHYgJSA4ID0gNiwgSCBBUyB2ICUg OCA9IDcKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChh Y3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoKGEgKGIg KGMgfCBkKSB8IGUpIHwgZikgZyB8IGgpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNiBwZWFr LCAxMTMgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWws IDEyIHBydW5lZAorICAgTkZBOiA0IG1hdGNoZWQgKGxlbiAxLzIvMS41KSwgMiBtaXNtYXRjaGVk IChsZW4gNC80LzQuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgMiBza2lwcGVkIChsZW4gMS8xLzEu MCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz0yMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gR3JvdXAgUGF0dGVybiBU ZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFp bi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKaW5kZXggYzhiMTU5 ZTMwZTYuLmFhNzhmZmVkMjYwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf ZXhwbGFpbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCkBA IC0yMTE4LDYgKzIxMTgsNTI5IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2ICUg NCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7 Jyk7CiAKKy0tIFF1YW50aWZpZWQgZ3JvdXAgYXMgdGhlIGZpcnN0IGFsdGVybmF0aW9uIGJyYW5j aAorLS0gUGF0dGVybjogKChBIEIpKyB8IEMpIC0gbGVhZGluZyBncm91cCBicmFuY2ggbXVzdCBv cGVuIHRoZSBlbmNsb3NpbmcgcGFyZW4KK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfZ3JwX2ZpcnN0 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpKyB8IEMpCisgICAgREVGSU5F IEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9hbHRfZ3JwX2ZpcnN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoKEEgQikrIHwgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIg QVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKworLS0gUXVhbnRpZmllZCBncm91 cCBhcyB0aGUgbGFzdCBhbHRlcm5hdGlvbiBicmFuY2gKKy0tIFBhdHRlcm46IChDIHwgKEEgQikr KSAtIHRyYWlsaW5nIGdyb3VwIGJyYW5jaCwgbm8gc2VwYXJhdG9yIGZvbGxvd3MKK0NSRUFURSBW SUVXIHJwcl9ldl9hbHRfZ3JwX2xhc3QgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QyB8IChBIEIpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBD IEFTIHYgJSA0ID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9ncnBfbGFzdCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAy MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEMgfCAoQSBCKSspCisgICAgREVG SU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7Jyk7 CisKKy0tIFF1YW50aWZpZWQgZ3JvdXAgYXMgdGhlIG1pZGRsZSBicmFuY2ggb2YgYSB0aHJlZS13 YXkgYWx0ZXJuYXRpb24KKy0tIFBhdHRlcm46IChDIHwgKEEgQikrIHwgRCkgLSBzZXBhcmF0b3Ig YmVmb3JlIEQgbXVzdCBzdXJ2aXZlIHRoZSBncm91cCBicmFuY2gKK0NSRUFURSBWSUVXIHJwcl9l dl9hbHRfZ3JwX21pZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDIHwgKEEgQikr IHwgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYg JSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZ3JwX21pZCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEMgfCAoQSBCKSsg fCBEKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAl IDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKKworLS0gUXVhbnRpZmllZCBncm91cCBhcyB0 aGUgZmlyc3QgYnJhbmNoIG9mIGEgdGhyZWUtd2F5IGFsdGVybmF0aW9uCistLSBQYXR0ZXJuOiAo KEEgQikrIHwgQyB8IEQpIC0gbGVhZGluZyBncm91cCBicmFuY2ggd2l0aCB0d28gZm9sbG93aW5n IGJyYW5jaGVzCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF9maXJzdDMgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoKEEgQikrIHwgQyB8IEQpCisgICAgREVGSU5FIEEgQVMgdiAl IDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfYWx0X2dycF9maXJzdDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSBCKSsgfCBDIHwgRCkKKyAgICBERUZJTkUgQSBBUyB2 ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMK Kyk7Jyk7CisKKy0tIEJvdW5kZWQtcXVhbnRpZmllciBncm91cCBhcyB0aGUgZmlyc3QgYWx0ZXJu YXRpb24gYnJhbmNoCistLSBQYXR0ZXJuOiAoKEEgQil7Mn0gfCBDKSAtIGxlYWRpbmcgZ3JvdXAg YnJhbmNoIHdpdGggYSByYW5nZSBxdWFudGlmaWVyCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dy cF9ib3VuZGVkIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpezJ9IHwgQykK KyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0g MgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2FsdF9ncnBfYm91bmRlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpezJ9IHwgQykKKyAgICBERUZJTkUgQSBB UyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKworLS0g VHdvIHF1YW50aWZpZWQgZ3JvdXBzIGluIG9uZSBhbHRlcm5hdGlvbgorLS0gUGF0dGVybjogKChB IEIpKyB8IChDIEQpKykgLSBib3RoIGJyYW5jaGVzIGFyZSBncm91cHMKK0NSRUFURSBWSUVXIHJw cl9ldl9hbHRfZ3JwX2JvdGggQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgQikr IHwgKEMgRCkrKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMg QVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9ncnBfYm90aCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIp KyB8IChDIEQpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBD IEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CisKKy0tIExlYWRpbmcgZ3JvdXAg YnJhbmNoIGluIGFuIGFsdGVybmF0aW9uIG5lc3RlZCBpbiBhIHNlcXVlbmNlCistLSBQYXR0ZXJu OiAoKChBIEIpKyB8IEMpIEQpIC0gaW5uZXIgYWx0ZXJuYXRpb24gb3BlbnMgd2l0aCBhIGdyb3Vw IGJyYW5jaAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9ncnBfc2VxX2hlYWQgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoKChBIEIpKyB8IEMpIEQpCisgICAgREVGSU5FIEEgQVMgdiAl IDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfYWx0X2dycF9zZXFfaGVhZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoQSBCKSsgfCBDKSBEKQorICAgIERFRklORSBBIEFT IHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0g MworKTsnKTsKKworLS0gVHJhaWxpbmcgZ3JvdXAgYnJhbmNoIGluIGFuIGFsdGVybmF0aW9uIG5l c3RlZCBpbiBhIHNlcXVlbmNlCistLSBQYXR0ZXJuOiAoKEMgfCAoQSBCKSspIEQpIC0gZ3JvdXAg YXMgbGFzdCBicmFuY2gsIHRoZW4gYSBzZXF1ZW5jZSBlbGVtZW50CitDUkVBVEUgVklFVyBycHJf ZXZfYWx0X2dycF9zZXFfdGFpbCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQyB8 IChBIEIpKykgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBD IEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZ3JwX3NlcV90YWls JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo KEMgfCAoQSBCKSspIEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0g MSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOycpOworCistLSBRdWFudGlmaWVk IGFsdGVybmF0aW9uIHdob3NlIGZpcnN0IGJyYW5jaCBpcyBhIHF1YW50aWZpZWQgZ3JvdXAKKy0t IFBhdHRlcm46ICgoKEEgQil7Mn0gfCBDKSspIC0gc2luZ2xlLUFMVCBncm91cCB3cmFwcyBhIGxl YWRpbmcgZ3JvdXAgYnJhbmNoCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF9xdWFudCBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgQil7Mn0gfCBDKSspCisgICAgREVGSU5F IEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9hbHRfZ3JwX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoKChBIEIpezJ9IHwgQykrKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0g MCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyCispOycpOworCistLSBVbml0ICgxLDEp IGdyb3VwIGFzIGFuIGFsdGVybmF0aW9uIGJyYW5jaCAoZW1pdHMgbm8gQkVHSU4vRU5EKQorLS0g UGF0dGVybjogKChBIEIpIHwgQykgLSBjb250cm9sOiB0YWtlcyB0aGUgdmFyaWFibGUgcGF0aCwg bm90IGRlcGFyc2VfcnByX2dyb3VwCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2dycF91bml0IEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIpIHwgQykKKyAgICBERUZJTkUgQSBB UyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Fs dF9ncnBfdW5pdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKChBIEIpIHwgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAl IDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKworLS0gUXVhbnRpZmllZCB2YXJpYWJsZSBh cyB0aGUgZmlyc3QgYWx0ZXJuYXRpb24gYnJhbmNoCistLSBQYXR0ZXJuOiAoQSsgfCBDKSAtIGNv bnRyb2w6IGRlcGFyc2VfcnByX3ZhciBhbHJlYWR5IG9wZW5zIHRoZSBsZWFkaW5nIHBhcmVuCitD UkVBVEUgVklFVyBycHJfZXZfYWx0X3Zhcl9maXJzdCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKyB8IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBDIEFTIHYgJSA0ID0g MgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2FsdF92YXJfZmlyc3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKyB8IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQg PSAwLCBDIEFTIHYgJSA0ID0gMgorKTsnKTsKKworLS0gUXVhbnRpZmllZCBncm91cCBhcyB0aGUg bGFzdCBicmFuY2ggb2YgYSB0aHJlZS13YXkgYWx0ZXJuYXRpb24KKy0tIFBhdHRlcm46IChDIHwg RCB8IChBIEIpKykgLSBjb250cm9sOiB0cmFpbGluZyBncm91cCBuZWVkcyBubyBzZXBhcmF0b3IK K0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfZ3JwX2xhc3QzIEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEMgfCBEIHwgKEEgQikrKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBB UyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Fs dF9ncnBfbGFzdDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChDIHwgRCB8IChBIEIpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIg QVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CisKKy0t IEFsdGVybmF0aW9uIG5lc3RlZCBpbiBhIGxlYWRpbmcgYnJhbmNoIG11c3Qgbm90IHN3YWxsb3cg dGhlIHRyYWlsaW5nIGJyYW5jaAorLS0gUGF0dGVybjogKEQgKEEgfCBCKSB8IEUpIC0gaW5oZXJp dGVkIGxpbWl0IGJvdW5kcyB0aGUgaW5uZXIgYWx0ZXJuYXRpb24KK0NSRUFURSBWSUVXIHJwcl9l dl9hbHRfaW5uZXJfYm91bmRlZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChEIChB IHwgQikgfCBFKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEQg QVMgdiAlIDUgPSAyLCBFIEFTIHYgJSA1ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9pbm5lcl9ib3VuZGVk JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo RCAoQSB8IEIpIHwgRSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAlIDUgPSAx LCBEIEFTIHYgJSA1ID0gMiwgRSBBUyB2ICUgNSA9IDMKKyk7Jyk7CisKKy0tIEdyb3VwIG1pZC1i cmFuY2ggZm9sbG93ZWQgYnkgYSBzZXF1ZW5jZSBlbGVtZW50IG5lZWRzIG5vIHNlcGFyYXRvciBi ZWZvcmUgaXQKKy0tIFBhdHRlcm46IChDIHwgKEEgQikrIEQpIC0gcmVsYXRpdmUtbmV4dCBibG9j a3MgYSBzcHVyaW91cyBzZXBhcmF0b3IgYXQgRAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9ncnBf dGhlbl9zZXEgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQyB8IChBIEIpKyBEKQor ICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAy LCBEIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9ncnBfdGhlbl9zZXEnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDIHwgKEEgQikrIEQp CisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9 IDIsIEQgQVMgdiAlIDQgPSAzCispOycpOworCistLSBRdWFudGlmaWVkIGdyb3VwIHdyYXBwaW5n IGEgbG9uZSBhbHRlcm5hdGlvbjogdGhlIEFMVCBzdXBwbGllcyB0aGUgcGFyZW5zCistLSBQYXR0 ZXJuOiAoKEEgfCBCKSspIC0gbG9uZUFsdCBwYXRoLCBzaW5nbGUgcGFpciBvZiBwYXJlbnMKK0NS RUFURSBWSUVXIHJwcl9ldl9ncnBfbG9uZV9hbHQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoKEEgfCBCKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0g MQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2dycF9sb25lX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIHwgQikrKQorICAgIERFRklORSBBIEFTIHYgJSA0 ID0gMCwgQiBBUyB2ICUgNCA9IDEKKyk7Jyk7CisKKy0tIFF1YW50aWZpZWQgZ3JvdXAgd3JhcHBp bmcgYSBzZXF1ZW5jZSB3aG9zZSBsYXN0IGVsZW1lbnQgaXMgYW4gYWx0ZXJuYXRpb24KKy0tIFBh dHRlcm46ICgoQSAoQiB8IEMpKSspIC0gZ3JvdXAgcGFyZW4gcGx1cyBhIG5lc3RlZCBhbHRlcm5h dGlvbiBwYXJlbgorQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9zZXFfYWx0IEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKChBIChCIHwgQykpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9 IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9zZXFfYWx0 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo KEEgKEIgfCBDKSkrKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEs IEMgQVMgdiAlIDQgPSAyCispOycpOworCistLSBRdWFudGlmaWVkIGdyb3VwIHdyYXBwaW5nIGEg c2VxdWVuY2Ugd2hvc2UgZmlyc3QgZWxlbWVudCBpcyBhbiBhbHRlcm5hdGlvbgorLS0gUGF0dGVy bjogKCgoQSB8IEIpIEMpKykgLSBsZWFkaW5nIG5lc3RlZCBhbHRlcm5hdGlvbiBpbnNpZGUgYSBn cm91cCBzZXF1ZW5jZQorQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9hbHRfc2VxIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKCgoQSB8IEIpIEMpKykKKyAgICBERUZJTkUgQSBBUyB2ICUg NCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMgorKTsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9hbHRf c2VxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoKChBIHwgQikgQykrKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9 IDEsIEMgQVMgdiAlIDQgPSAyCispOycpOworCistLSBBbHRlcm5hdGlvbiBub24tbGFzdCBpbiBh IG5vbi1sYXN0IGJyYW5jaCwgc3RhY2tlZCB0aHJlZSBkZWVwOiBlYWNoIGxldmVsJ3MKKy0tIGlu aGVyaXRlZCBsaW1pdCBtdXN0IGJvdW5kIHRoZSBpbm5lciBhbHRlcm5hdGlvbiBhZ2FpbnN0IHRo ZSBuZXh0IGJyYW5jaAorLS0gUGF0dGVybjogKCgoQSB8IEIpIEMgfCBEKSBFIHwgRikgLSB0aHJl ZSBuZXN0ZWQgaW5oZXJpdGVkLWxpbWl0IGJvdW5kYXJpZXMKK0NSRUFURSBWSUVXIHJwcl9ldl9h bHRfc3RhY2szIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoQSB8IEIpIEMgfCBE KSBFIHwgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFT IHYgJSA2ID0gMiwKKyAgICAgICAgICAgRCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBG IEFTIHYgJSA2ID0gNQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9zdGFjazMnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgfCBCKSBDIHwgRCkgRSB8IEYp CisgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2ICUgNiA9 IDIsCisgICAgICAgICAgIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUg NiA9IDUKKyk7Jyk7CisKKy0tIFNhbWUgaW50ZXJhY3Rpb24gc3RhY2tlZCBmb3VyIGRlZXAsIHRv IGV4ZXJjaXNlIHRoZSBpbmR1Y3Rpb24gb25lIHN0ZXAgZnVydGhlcgorLS0gUGF0dGVybjogKCgo KEEgfCBCKSBDIHwgRCkgRSB8IEYpIEcgfCBIKSAtIGZvdXIgbmVzdGVkIGluaGVyaXRlZC1saW1p dCBib3VuZGFyaWVzCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3N0YWNrNCBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOICgoKChBIHwgQikgQyB8IEQpIEUgfCBGKSBHIHwgSCkKKyAgICBE RUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMgdiAlIDggPSAxLCBDIEFTIHYgJSA4ID0gMiwgRCBB UyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUgQVMgdiAlIDggPSA0LCBGIEFTIHYgJSA4ID0gNSwg RyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDggPSA3CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3N0YWNrNCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoKEEg fCBCKSBDIHwgRCkgRSB8IEYpIEcgfCBIKQorICAgIERFRklORSBBIEFTIHYgJSA4ID0gMCwgQiBB UyB2ICUgOCA9IDEsIEMgQVMgdiAlIDggPSAyLCBEIEFTIHYgJSA4ID0gMywKKyAgICAgICAgICAg RSBBUyB2ICUgOCA9IDQsIEYgQVMgdiAlIDggPSA1LCBHIEFTIHYgJSA4ID0gNiwgSCBBUyB2ICUg OCA9IDcKKyk7Jyk7CisKKy0tIFRocmVlLWRlZXAgc3RhY2sgd2hvc2UgaW5uZXJtb3N0IGJyYW5j aCBpcyBhIHF1YW50aWZpZWQgZ3JvdXA6IHRoZSBncm91cCdzCistLSBza2lwLXRhcmdldCBqdW1w IG11c3Qgbm90IGJlIG1pc3Rha2VuIGZvciBhIGJyYW5jaCBzZXBhcmF0b3IgYXQgYW55IGRlcHRo CistLSBQYXR0ZXJuOiAoKChBIHwgQikrIEMgfCBEKSBFIHwgRikgLSBpbmhlcml0ZWQgbGltaXQg cGx1cyBsb25lQWx0IGF0IHRoZSBiYXNlCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3N0YWNrM19n cnAgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKChBIHwgQikrIEMgfCBEKSBFIHwg RikKKyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2 ID0gMiwKKyAgICAgICAgICAgRCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYg JSA2ID0gNQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2FsdF9zdGFjazNfZ3JwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKChBIHwgQikrIEMgfCBEKSBFIHwgRikK KyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2ID0g MiwKKyAgICAgICAgICAgRCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2 ID0gNQorKTsnKTsKKworLS0gQWx0ZXJuYXRpb24gdHJhaWxpbmcgYSBwYXJlbi1sZXNzIHNlcXVl bmNlIChsYXN0IGVsZW1lbnQgb2YgYSBub24tbGFzdAorLS0gYnJhbmNoLCBubyBzYW1lLWRlcHRo IHNpYmxpbmcgdG8gYm91bmQgaXQpLCBuZXN0ZWQgdGhyZWUgZGVlcAorLS0gUGF0dGVybjogKEEg KEIgKEMgfCBEKSB8IEUpIHwgRikgLSBlYWNoIGlubmVyIGFsdGVybmF0aW9uIGlzIGJyYW5jaC10 YWlsCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3RhaWwzIEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEEgKEIgKEMgfCBEKSB8IEUpIHwgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNiA9 IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2ID0gMiwKKyAgICAgICAgICAgRCBBUyB2ICUg NiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2ID0gNQorKTsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF90YWls MycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgKEIgKEMgfCBEKSB8IEUpIHwgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMg diAlIDYgPSAxLCBDIEFTIHYgJSA2ID0gMiwKKyAgICAgICAgICAgRCBBUyB2ICUgNiA9IDMsIEUg QVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2ID0gNQorKTsnKTsKKworLS0gU2FtZSBicmFuY2gtdGFp bCBhbHRlcm5hdGlvbiBuZXN0ZWQgZm91ciBkZWVwCistLSBQYXR0ZXJuOiAoQSAoQiAoQyAoRCB8 IEUpIHwgRikgfCBHKSB8IEgpIC0gYnJhbmNoLXRhaWwgYWx0ZXJuYXRpb24geDQKK0NSRUFURSBW SUVXIHJwcl9ldl9hbHRfdGFpbDQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAo QiAoQyAoRCB8IEUpIHwgRikgfCBHKSB8IEgpCisgICAgREVGSU5FIEEgQVMgdiAlIDggPSAwLCBC IEFTIHYgJSA4ID0gMSwgQyBBUyB2ICUgOCA9IDIsIEQgQVMgdiAlIDggPSAzLAorICAgICAgICAg ICBFIEFTIHYgJSA4ID0gNCwgRiBBUyB2ICUgOCA9IDUsIEcgQVMgdiAlIDggPSA2LCBIIEFTIHYg JSA4ID0gNworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2FsdF90YWlsNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgKEMgKEQgfCBFKSB8IEYpIHwgRykgfCBI KQorICAgIERFRklORSBBIEFTIHYgJSA4ID0gMCwgQiBBUyB2ICUgOCA9IDEsIEMgQVMgdiAlIDgg PSAyLCBEIEFTIHYgJSA4ID0gMywKKyAgICAgICAgICAgRSBBUyB2ICUgOCA9IDQsIEYgQVMgdiAl IDggPSA1LCBHIEFTIHYgJSA4ID0gNiwgSCBBUyB2ICUgOCA9IDcKKyk7Jyk7CisKKy0tIEEgbmVz dGVkIGFsdGVybmF0aW9uIHRhaWwgbmVpZ2hib3VyaW5nIGEgbXVsdGktZWxlbWVudCBzZXF1ZW5j ZSBicmFuY2g6IHRoZQorLS0gYnJhbmNoIGJvdW5kYXJ5IG11c3Qgc3BsaXQgIi4uLmJyYW5jaC10 YWlsIEFMVCIgZnJvbSBhIHBsYWluICJHIEEiIHNlcXVlbmNlCistLSBQYXR0ZXJuOiAoQSAoQiAo QyAoRCB8IEUpIHwgRikgfCBHIEEpIHwgSCkgLSBzZXEgYnJhbmNoIGJlc2lkZSBhbiBBTFQgdGFp bAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF90YWlsX3NlcWJyYW5jaCBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBIChCIChDIChEIHwgRSkgfCBGKSB8IEcgQSkgfCBIKQorICAgIERF RklORSBBIEFTIHYgJSA4ID0gMCwgQiBBUyB2ICUgOCA9IDEsIEMgQVMgdiAlIDggPSAyLCBEIEFT IHYgJSA4ID0gMywKKyAgICAgICAgICAgRSBBUyB2ICUgOCA9IDQsIEYgQVMgdiAlIDggPSA1LCBH IEFTIHYgJSA4ID0gNiwgSCBBUyB2ICUgOCA9IDcKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfdGFpbF9zZXFicmFu Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBIChCIChDIChEIHwgRSkgfCBGKSB8IEcgQSkgfCBIKQorICAgIERFRklORSBBIEFTIHYgJSA4 ID0gMCwgQiBBUyB2ICUgOCA9IDEsIEMgQVMgdiAlIDggPSAyLCBEIEFTIHYgJSA4ID0gMywKKyAg ICAgICAgICAgRSBBUyB2ICUgOCA9IDQsIEYgQVMgdiAlIDggPSA1LCBHIEFTIHYgJSA4ID0gNiwg SCBBUyB2ICUgOCA9IDcKKyk7Jyk7CisKKy0tIEEgbmVzdGVkIGFsdGVybmF0aW9uIHRoYXQgaXMg c2libGluZy1ib3VuZGVkIGJ5IGEgdHJhaWxpbmcgc2VxdWVuY2UgZWxlbWVudAorLS0gYXQgdGhl IG91dGVyIGxldmVsICh0aGUgQUxUIGlzIG5vdCB0aGUgYnJhbmNoIHRhaWw7IEcgZm9sbG93cyBp dCBpbi1icmFuY2gpCistLSBQYXR0ZXJuOiAoKEEgKEIgKEMgfCBEKSB8IEUpIHwgRikgRyB8IEgp IC0gQUxUIGJvdW5kZWQgYnkgYSBmb2xsb3dpbmcgZWxlbWVudAorQ1JFQVRFIFZJRVcgcnByX2V2 X2FsdF9taWRfc2VxdGFpbCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSAoQiAo QyB8IEQpIHwgRSkgfCBGKSBHIHwgSCkKKyAgICBERUZJTkUgQSBBUyB2ICUgOCA9IDAsIEIgQVMg diAlIDggPSAxLCBDIEFTIHYgJSA4ID0gMiwgRCBBUyB2ICUgOCA9IDMsCisgICAgICAgICAgIEUg QVMgdiAlIDggPSA0LCBGIEFTIHYgJSA4ID0gNSwgRyBBUyB2ICUgOCA9IDYsIEggQVMgdiAlIDgg PSA3CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfYWx0X21pZF9zZXF0YWlsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgKEIgKEMgfCBEKSB8IEUpIHwgRikgRyB8 IEgpCisgICAgREVGSU5FIEEgQVMgdiAlIDggPSAwLCBCIEFTIHYgJSA4ID0gMSwgQyBBUyB2ICUg OCA9IDIsIEQgQVMgdiAlIDggPSAzLAorICAgICAgICAgICBFIEFTIHYgJSA4ID0gNCwgRiBBUyB2 ICUgOCA9IDUsIEcgQVMgdiAlIDggPSA2LCBIIEFTIHYgJSA4ID0gNworKTsnKTsKKwogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLSBHcm91cCBQYXR0ZXJuIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0056-Reject-invalid-column-references-in-row-pattern-D.txt" Content-Disposition: attachment; filename="nocfbot-0056-Reject-invalid-column-references-in-row-pattern-D.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wog855 RnJvbSAzN2FlOTU1MmFkYjAzODQyOTg0ZjQzMDViOWI3MmJiMjZhZjM1OTFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDcgSnVuIDIwMjYgMTg6Mjc6MTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDU2LzY4XSBS ZWplY3QgaW52YWxpZCBjb2x1bW4gcmVmZXJlbmNlcyBpbiByb3cgcGF0dGVybiBERUZJTkUKIGNs YXVzZXMKCkEgREVGSU5FIGV4cHJlc3Npb24gY291bGQgcmVmZXJlbmNlIGFuIG91dGVyIHF1ZXJ5 J3MgY29sdW1uIChhIGNvcnJlbGF0ZWQKcmVmZXJlbmNlKSwgd2hpY2ggc3VyZmFjZWQgYXMgdGhl IGludGVybmFsICJVcHBlci1sZXZlbCBWYXIgZm91bmQgd2hlcmUgbm90CmV4cGVjdGVkIiBlcnJv ciAoWFgwMDApIHJhaXNlZCBieSBwdWxsX3Zhcl9jbGF1c2UuICBTZXBhcmF0ZWx5LCBhIHNjaGVt YS0gb3IKY2F0YWxvZy1xdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAodGhyZWUgb3IgbW9yZSBu YW1lIHBhcnRzKSBzbGlwcGVkIHBhc3QKdGhlIGV4aXN0aW5nIHR3by1wYXJ0IGNsYXNzaWZpZXIg YW5kIHdhcyB3cm9uZ2x5IGFjY2VwdGVkLgoKUmVqZWN0IGJvdGggaW4gdHJhbnNmb3JtQ29sdW1u UmVmLCByaWdodCBhZnRlciB0aGUgcmVmZXJlbmNlIGlzIHJlc29sdmVkOiBhbgpvdXRlci1sZXZl bCBWYXIgKHZhcmxldmVsc3VwID4gMCkgd2l0aCBFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCwgYW5kIGEKcmVmZXJlbmNlIHdpdGggdGhyZWUgb3IgbW9yZSBuYW1lIHBhcnRzIHdpdGggRVJS Q09ERV9TWU5UQVhfRVJST1IuICBUaGUgbGF0dGVyCnVzZXMgInF1YWxpZmllZCBleHByZXNzaW9u IiB3b3JkaW5nIGJlY2F1c2UgYSBjb21wb3NpdGUtdHlwZWQgcXVhbGlmaWVyCihlLmcuICJhLml0 ZW1zIiBpbiAoYS5pdGVtcykuYW1vdW50KSBpcyBub3QgYSBjb2x1bW4gbmFtZS4KLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgfCAyNCArKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgfCA2MSArKysrKysrKysrKysr KysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE1OSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKaW5kZXggMjM0NGFhZWY5YWUuLmY2NWEyNzBkMjBlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKQEAgLTk0Nyw2ICs5NDcsMzAgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQl9CiAJfQogCisJLyoKKwkgKiBS ZXN0cmljdCBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHJvdyBwYXR0ZXJuIERFRklORSBjbGF1c2Uu ICBub2RlIGlzIG5vdworCSAqIGEgc3VjY2Vzc2Z1bGx5IHJlc29sdmVkIHJlZmVyZW5jZSwgc28g cmVqZWN0IHRoZSB0d28gZm9ybXMgUlBSIGRvZXMgbm90CisJICogYWxsb3c6IGEgY29ycmVsYXRl ZCByZWZlcmVuY2UgdG8gYW4gb3V0ZXIgcXVlcnkncyBjb2x1bW4sIGFuZCBhCisJICogc2NoZW1h L2NhdGFsb2ctcXVhbGlmaWVkIHJlZmVyZW5jZSAodGhyZWUgb3IgbW9yZSBuYW1lIHBhcnRzKS4g IFNpbXBsZQorCSAqIHR3by1wYXJ0IHF1YWxpZmllcnMgKHBhdHRlcm4gb3IgcmFuZ2UgdmFyaWFi bGUpIGFyZSBoYW5kbGVkIGVhcmxpZXIsCisJICogYmVmb3JlIHJlc29sdXRpb24uCisJICovCisJ aWYgKHBzdGF0ZS0+cF9leHByX2tpbmQgPT0gRVhQUl9LSU5EX1JQUl9ERUZJTkUpCisJeworCQlp ZiAoSXNBKG5vZGUsIFZhcikgJiYgKChWYXIgKikgbm9kZSktPnZhcmxldmVsc3VwID4gMCkKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCQllcnJtc2coImNhbm5vdCB1c2Ugb3V0ZXIgcXVlcnkgY29sdW1uIGluIERFRklO RSBjbGF1c2UiKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRp b24pKTsKKworCQlpZiAobGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA+PSAzKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCWVycm1z ZygicXVhbGlmaWVkIGV4cHJlc3Npb24gXCIlc1wiIGlzIG5vdCBhbGxvd2VkIGluIERFRklORSBj bGF1c2UiLAorCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJ cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKTsKKwl9CisKIAlyZXR1 cm4gbm9kZTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDU1MDExMzcwMGE5 Li4xYjQwOWI5MjNkZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTI5NSw2ICsx Mjk1LDgwIEBAIEVSUk9SOiAgdm9sYXRpbGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBE RUZJTkUgY2xhdXNlCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IG5leHR2YWwoJ3Jw cl9zZXEnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBEUk9QIFNFUVVFTkNF IHJwcl9zZXE7CistLSBERUZJTkUgY2Fubm90IHJlZmVyZW5jZSBhbiBvdXRlciBxdWVyeSdzIGNv bHVtbi4gIEEgY29ycmVsYXRlZCBvdXRlcgorLS0gcmVmZXJlbmNlIG11c3QgcHJvZHVjZSBhIGNs ZWFuIGVycm9yLCBub3QgdGhlIGludGVybmFsICJVcHBlci1sZXZlbCBWYXIiCistLSBlbG9nIHRo YXQgcHVsbF92YXJfY2xhdXNlIHdvdWxkIG90aGVyd2lzZSByYWlzZS4KKy0tIFF1YWxpZmllZCBv dXRlciByZWZlcmVuY2UgKG8udGhyZXNob2xkKToKK1NFTEVDVCAqIEZST00gKFZBTFVFUyAoOTUp KSBBUyBvKHRocmVzaG9sZCksCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9j aworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgIElOSVRJQUwKKyAgICAgICAgUEFUVEVSTiAoQSkKKyAgICAgICAgREVGSU5FIEEgQVMgcHJp Y2UgPiBvLnRocmVzaG9sZAorICAgICkKKykgczsKK0VSUk9SOiAgY2Fubm90IHVzZSBvdXRlciBx dWVyeSBjb2x1bW4gaW4gREVGSU5FIGNsYXVzZQorTElORSA5OiAgICAgICAgIERFRklORSBBIEFT IHByaWNlID4gby50aHJlc2hvbGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIFVucXVhbGlmaWVkIG5hbWUgcmVzb2x2aW5nIHRvIHRoZSBvdXRlciBjb2x1bW4gKHRo cmVzaG9sZCk6CitTRUxFQ1QgKiBGUk9NIChWQUxVRVMgKDk1KSkgQVMgbyh0aHJlc2hvbGQpLAor TEFURVJBTCAoCisgICAgU0VMRUNUIHByaWNlIEZST00gc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAo CisgICAgICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBJTklUSUFMCisgICAgICAg IFBBVFRFUk4gKEEpCisgICAgICAgIERFRklORSBBIEFTIHByaWNlID4gdGhyZXNob2xkCisgICAg KQorKSBzOworRVJST1I6ICBjYW5ub3QgdXNlIG91dGVyIHF1ZXJ5IGNvbHVtbiBpbiBERUZJTkUg Y2xhdXNlCitMSU5FIDk6ICAgICAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiB0aHJlc2hvbGQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIE91dGVyIHJlZmVyZW5jZSBp bnNpZGUgYSBuYXZpZ2F0aW9uIGFyZ3VtZW50IGlzIHJlamVjdGVkIHRvbzoKK1NFTEVDVCAqIEZS T00gKFZBTFVFUyAoOTUpKSBBUyBvKHRocmVzaG9sZCksCitMQVRFUkFMICgKKyAgICBTRUxFQ1Qg cHJpY2UgRlJPTSBzdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBE RUZJTkUgQSBBUyBQUkVWKG8udGhyZXNob2xkLCAxKSA+IDAKKyAgICApCispIHM7CitFUlJPUjog IGNhbm5vdCB1c2Ugb3V0ZXIgcXVlcnkgY29sdW1uIGluIERFRklORSBjbGF1c2UKK0xJTkUgODog ICAgICAgICBERUZJTkUgQSBBUyBQUkVWKG8udGhyZXNob2xkLCAxKSA+IDAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERFRklORSByZWplY3RzIGEgc2NoZW1hLXF1YWxp ZmllZCBjb2x1bW4gcmVmZXJlbmNlICh0aHJlZSBvciBtb3JlIG5hbWUKKy0tIHBhcnRzKSBvbmNl IGl0IHJlc29sdmVzOyB0aGUgcXVhbGlmaWVkIGZvcm0gaXRzZWxmIGlzIG5vdCBhbGxvd2VkLiAg KHN0b2NrCistLSBpcyBhIHRlbXAgdGFibGUsIHNvIGl0IGlzIHF1YWxpZmllZCB3aXRoIHBnX3Rl bXAgaGVyZS4pCistLSAzLXBhcnQgKHNjaGVtYS50YWJsZS5jb2x1bW4pOgorU0VMRUNUIHByaWNl IEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElO SVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHBnX3RlbXAuc3RvY2sucHJp Y2UgPiAwCispOworRVJST1I6ICBxdWFsaWZpZWQgZXhwcmVzc2lvbiAicGdfdGVtcC5zdG9jay5w cmljZSIgaXMgbm90IGFsbG93ZWQgaW4gREVGSU5FIGNsYXVzZQorTElORSA3OiAgICAgREVGSU5F IEEgQVMgcGdfdGVtcC5zdG9jay5wcmljZSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIF4K Ky0tIHdob2xlLXJvdyB2YXJpYW50IChzY2hlbWEudGFibGUuKik6CitTRUxFQ1QgcHJpY2UgRlJP TSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElB TAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgKHBnX3RlbXAuc3RvY2suKikgSVMg Tk9UIE5VTEwKKyk7CitFUlJPUjogIHF1YWxpZmllZCBleHByZXNzaW9uICJwZ190ZW1wLnN0b2Nr LioiIGlzIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UKK0xJTkUgNzogICAgIERFRklORSBB IEFTIChwZ190ZW1wLnN0b2NrLiopIElTIE5PVCBOVUxMCisgICAgICAgICAgICAgICAgICAgICAg ICAgXgogLS0KIC0tIDItYXJnIFBSRVYvTkVYVDogZnVuY3Rpb25hbCB0ZXN0cwogLS0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHIuc3FsCmluZGV4IDBhYTE3ZjAxZTg0Li41NmRmZjliNjcyNSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIu c3FsCkBAIC02NjcsNiArNjY3LDY3IEBAIFdJTkRPVyB3IEFTICgKICk7CiBEUk9QIFNFUVVFTkNF IHJwcl9zZXE7CiAKKy0tIERFRklORSBjYW5ub3QgcmVmZXJlbmNlIGFuIG91dGVyIHF1ZXJ5J3Mg Y29sdW1uLiAgQSBjb3JyZWxhdGVkIG91dGVyCistLSByZWZlcmVuY2UgbXVzdCBwcm9kdWNlIGEg Y2xlYW4gZXJyb3IsIG5vdCB0aGUgaW50ZXJuYWwgIlVwcGVyLWxldmVsIFZhciIKKy0tIGVsb2cg dGhhdCBwdWxsX3Zhcl9jbGF1c2Ugd291bGQgb3RoZXJ3aXNlIHJhaXNlLgorLS0gUXVhbGlmaWVk IG91dGVyIHJlZmVyZW5jZSAoby50aHJlc2hvbGQpOgorU0VMRUNUICogRlJPTSAoVkFMVUVTICg5 NSkpIEFTIG8odGhyZXNob2xkKSwKK0xBVEVSQUwgKAorICAgIFNFTEVDVCBwcmljZSBGUk9NIHN0 b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgSU5JVElBTAorICAgICAgICBQQVRURVJOIChBKQorICAgICAgICBERUZJTkUgQSBBUyBw cmljZSA+IG8udGhyZXNob2xkCisgICAgKQorKSBzOworLS0gVW5xdWFsaWZpZWQgbmFtZSByZXNv bHZpbmcgdG8gdGhlIG91dGVyIGNvbHVtbiAodGhyZXNob2xkKToKK1NFTEVDVCAqIEZST00gKFZB TFVFUyAoOTUpKSBBUyBvKHRocmVzaG9sZCksCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgcHJpY2Ug RlJPTSBzdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZIGNvbXBh bnkKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgIElOSVRJQUwKKyAgICAgICAgUEFUVEVSTiAoQSkKKyAgICAgICAgREVGSU5F IEEgQVMgcHJpY2UgPiB0aHJlc2hvbGQKKyAgICApCispIHM7CistLSBPdXRlciByZWZlcmVuY2Ug aW5zaWRlIGEgbmF2aWdhdGlvbiBhcmd1bWVudCBpcyByZWplY3RlZCB0b286CitTRUxFQ1QgKiBG Uk9NIChWQUxVRVMgKDk1KSkgQVMgbyh0aHJlc2hvbGQpLAorTEFURVJBTCAoCisgICAgU0VMRUNU IHByaWNlIEZST00gc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBC WSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAg REVGSU5FIEEgQVMgUFJFVihvLnRocmVzaG9sZCwgMSkgPiAwCisgICAgKQorKSBzOworCistLSBE RUZJTkUgcmVqZWN0cyBhIHNjaGVtYS1xdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAodGhyZWUg b3IgbW9yZSBuYW1lCistLSBwYXJ0cykgb25jZSBpdCByZXNvbHZlczsgdGhlIHF1YWxpZmllZCBm b3JtIGl0c2VsZiBpcyBub3QgYWxsb3dlZC4gIChzdG9jaworLS0gaXMgYSB0ZW1wIHRhYmxlLCBz byBpdCBpcyBxdWFsaWZpZWQgd2l0aCBwZ190ZW1wIGhlcmUuKQorLS0gMy1wYXJ0IChzY2hlbWEu dGFibGUuY29sdW1uKToKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisg ICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBE RUZJTkUgQSBBUyBwZ190ZW1wLnN0b2NrLnByaWNlID4gMAorKTsKKy0tIHdob2xlLXJvdyB2YXJp YW50IChzY2hlbWEudGFibGUuKik6CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcg QVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEp CisgICAgREVGSU5FIEEgQVMgKHBnX3RlbXAuc3RvY2suKikgSVMgTk9UIE5VTEwKKyk7CisKIC0t CiAtLSAyLWFyZyBQUkVWL05FWFQ6IGZ1bmN0aW9uYWwgdGVzdHMKIC0tCi0tIAoyLjUwLjEgKEFw cGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0058-Compare-varno-when-preserving-DEFINE-referenced-c.txt" Content-Disposition: attachment; filename="nocfbot-0058-Compare-varno-when-preserving-DEFINE-referenced-c.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogf57 RnJvbSBmY2I4YmNjYWZlNjZjZjdmMWRlZDMwZTUyMzdiYjE1N2E5NGM4MmU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDcgSnVuIDIwMjYgMjA6Mzg6MDAgKzA5MDAKU3ViamVjdDogW1BBVENIIDU4LzY4XSBD b21wYXJlIHZhcm5vIHdoZW4gcHJlc2VydmluZyBERUZJTkUtcmVmZXJlbmNlZCBjb2x1bW5zCiBp biByb3cgcGF0dGVybiByZWNvZ25pdGlvbgoKcmVtb3ZlX3VudXNlZF9zdWJxdWVyeV9vdXRwdXRz IGtlZXBzIHN1YnF1ZXJ5IG91dHB1dCBjb2x1bW5zIHRoYXQgYW4gUlBSCkRFRklORSBjbGF1c2Ug cmVmZXJlbmNlcy4gIFRoZSBjaGVjayBjb21wYXJlZCBvbmx5IHZhcmF0dG5vLCBzbyBhbiB1bnJl bGF0ZWQKb3V0cHV0IGNvbHVtbiBvZiBhIGRpZmZlcmVudCByZWxhdGlvbiB0aGF0IGhhcHBlbmVk IHRvIHNoYXJlIGFuIGF0dHJpYnV0ZQpudW1iZXIgd2FzIG92ZXItcmV0YWluZWQgYW5kIHByb3Bh Z2F0ZWQgdGhyb3VnaCB0aGUgcGxhbi4KCkFsc28gY29tcGFyZSB2YXJubyAoYW5kLCBhcyBwYXJh bm9pYSwgdmFybGV2ZWxzdXApLCBtYXRjaGluZyB0aGUgcGF0dGVybgphbHJlYWR5IHVzZWQgaW4g c2V0X2Z1bmN0aW9uX3BhdGhsaXN0LiAgVGhlIHJlc3VsdCB3YXMgYWxyZWFkeSBjb3JyZWN0OyB0 aGlzCmp1c3Qgc3RvcHMgcmV0YWluaW5nIHRoZSBuZWVkbGVzcyBjb2x1bW4uCi0tLQogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyAgICAgICAgIHwgMTMgKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IHwgMzUgKysrKysrKysr KysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCAgICAg IHwgMTYgKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRo cy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCBmYjA1MDY5 MzNjZC4uMjIzMzlmNzQ5MWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpA QCAtNDc3Niw3ICs0Nzc2LDE4IEBAIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cyhRdWVy eSAqc3VicXVlcnksIFJlbE9wdEluZm8gKnJlbCwKIAkJCQkJewogCQkJCQkJVmFyCQkgICAqZHZh ciA9IChWYXIgKikgbGZpcnN0KHZsYyk7CiAKLQkJCQkJCWlmIChkdmFyLT52YXJhdHRubyA9PSB2 YXItPnZhcmF0dG5vKQorCQkJCQkJLyoKKwkJCQkJCSAqIE1hdGNoIHZhcm5vIGFzIHdlbGwgYXMg dmFyYXR0bm86IGEgVmFyIHB1bGxlZCBmcm9tCisJCQkJCQkgKiBhIERFRklORSBjbGF1c2UgY2Fu IHNoYXJlIGFuIGF0dHJpYnV0ZSBudW1iZXIgd2l0aAorCQkJCQkJICogYW4gdW5yZWxhdGVkIG91 dHB1dCBjb2x1bW4gb2YgYSBkaWZmZXJlbnQgcmVsYXRpb24sCisJCQkJCQkgKiB3aGljaCB3b3Vs ZCBvdGhlcndpc2UgYmUgb3Zlci1yZXRhaW5lZC4gIENoZWNraW5nCisJCQkJCQkgKiB2YXJsZXZl bHN1cCBpcyBqdXN0IHBhcmFub2lhLCBzaW5jZSBvdXRlcgorCQkJCQkJICogcmVmZXJlbmNlcyBp biBERUZJTkUgYXJlIHJlamVjdGVkIGR1cmluZyBwYXJzZQorCQkJCQkJICogYW5hbHlzaXMuCisJ CQkJCQkgKi8KKwkJCQkJCWlmIChkdmFyLT52YXJubyA9PSB2YXItPnZhcm5vICYmCisJCQkJCQkJ ZHZhci0+dmFyYXR0bm8gPT0gdmFyLT52YXJhdHRubyAmJgorCQkJCQkJCWR2YXItPnZhcmxldmVs c3VwID09IHZhci0+dmFybGV2ZWxzdXApCiAJCQkJCQl7CiAJCQkJCQkJbmVlZGVkX2J5X2RlZmlu ZSA9IHRydWU7CiAJCQkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9pbnRlZ3JhdGlvbi5vdXQKaW5kZXggYjU5OGVmOTU3NzYuLjIxMzNlMmRmZTEzIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC0xNDgxLDYg KzE0ODEsNDEgQEAgT1JERVIgQlkgby5pZDsKICAxMCB8ICA0NSB8ICAgICAgICAgMgogKDEwIHJv d3MpCiAKKy0tIEEgY29sdW1uIHJlZmVyZW5jZWQgb25seSBieSBERUZJTkUgbXVzdCBub3Qga2Vl cCBhbiB1bnJlbGF0ZWQgY29sdW1uIHRoYXQKKy0tIG1lcmVseSBzaGFyZXMgaXRzIGF0dHJpYnV0 ZSBudW1iZXIuICBERUZJTkUgcmVmZXJlbmNlcyBhIChycHJfb3ZlcjEpOyBjCistLSAocnByX292 ZXIyKSBoYXMgdGhlIHNhbWUgYXR0bm8gYnV0IGlzIHVudXNlZCwgc28gaXQgbXVzdCBiZSBkcm9w cGVkLgorQ1JFQVRFIFRBQkxFIHJwcl9vdmVyMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxFIHJwcl9v dmVyMiAoYyBpbnQpOworSU5TRVJUIElOVE8gcnByX292ZXIxIFZBTFVFUyAoMSksKDIpLCgzKTsK K0lOU0VSVCBJTlRPIHJwcl9vdmVyMiBWQUxVRVMgKDEpLCgyKSwoMyk7CitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgY250IEZST00gKAorICBTRUxFQ1QgYSBBUyBvYSwgYyBB UyBvYywgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICBGUk9NIHJwcl9vdmVyMSBDUk9TUyBKT0lO IHJwcl9vdmVyMgorICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgYSBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgIFBBVFRFUk4gKFgr KSBERUZJTkUgWCBBUyBhID4gMCkKKykgczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVy eSBTY2FuIG9uIHMKKyAgIE91dHB1dDogcy5jbnQKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAg IE91dHB1dDogcnByX292ZXIxLmEsIE5VTEw6OmludGVnZXIsIGNvdW50KCopIE9WRVIgdworICAg ICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfb3ZlcjEuYSBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiB4KyIK KyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAgICAgICAtPiAgU29ydAorICAgICAg ICAgICAgICAgT3V0cHV0OiBycHJfb3ZlcjEuYQorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJw cl9vdmVyMS5hCisgICAgICAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKKyAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogcnByX292ZXIxLmEKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBwdWJsaWMucnByX292ZXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRw dXQ6IHJwcl9vdmVyMS5hCisgICAgICAgICAgICAgICAgICAgICAtPiAgTWF0ZXJpYWxpemUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMucnByX292ZXIy CisoMTYgcm93cykKKworRFJPUCBUQUJMRSBycHJfb3ZlcjEsIHJwcl9vdmVyMjsKIC0tIENsZWFu dXAKIERST1AgVEFCTEUgcnByX2ludGVnOwogRFJPUCBUQUJMRSBycHJfaW50ZWcyOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKaW5kZXggNWYzODUzYmVjYmEuLjI0YjBi MTgxMWI5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKQEAgLTky OSw2ICs5MjksMjIgQEAgU0VMRUNUIG8uaWQsIG8udmFsLAogRlJPTSBycHJfaW50ZWcgbwogT1JE RVIgQlkgby5pZDsKIAorLS0gQSBjb2x1bW4gcmVmZXJlbmNlZCBvbmx5IGJ5IERFRklORSBtdXN0 IG5vdCBrZWVwIGFuIHVucmVsYXRlZCBjb2x1bW4gdGhhdAorLS0gbWVyZWx5IHNoYXJlcyBpdHMg YXR0cmlidXRlIG51bWJlci4gIERFRklORSByZWZlcmVuY2VzIGEgKHJwcl9vdmVyMSk7IGMKKy0t IChycHJfb3ZlcjIpIGhhcyB0aGUgc2FtZSBhdHRubyBidXQgaXMgdW51c2VkLCBzbyBpdCBtdXN0 IGJlIGRyb3BwZWQuCitDUkVBVEUgVEFCTEUgcnByX292ZXIxIChhIGludCk7CitDUkVBVEUgVEFC TEUgcnByX292ZXIyIChjIGludCk7CitJTlNFUlQgSU5UTyBycHJfb3ZlcjEgVkFMVUVTICgxKSwo MiksKDMpOworSU5TRVJUIElOVE8gcnByX292ZXIyIFZBTFVFUyAoMSksKDIpLCgzKTsKK0VYUExB SU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBjbnQgRlJPTSAoCisgIFNFTEVDVCBhIEFT IG9hLCBjIEFTIG9jLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgIEZST00gcnByX292ZXIxIENS T1NTIEpPSU4gcnByX292ZXIyCisgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBhIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgICAgUEFU VEVSTiAoWCspIERFRklORSBYIEFTIGEgPiAwKQorKSBzOworRFJPUCBUQUJMRSBycHJfb3ZlcjEs IHJwcl9vdmVyMjsKKwogLS0gQ2xlYW51cAogRFJPUCBUQUJMRSBycHJfaW50ZWc7CiBEUk9QIFRB QkxFIHJwcl9pbnRlZzI7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0057-Fix-shortest-match-for-reluctant-nullable-quantif.txt" Content-Disposition: attachment; filename="nocfbot-0057-Fix-shortest-match-for-reluctant-nullable-quantif.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogb56 RnJvbSA0MjY0NTE5OTJhNGE4NjUyMDNmNGZlZDY1YTVkMzg4MzliYzE0MDJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDcgSnVuIDIwMjYgMTk6Mzg6MTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDU3LzY4XSBG aXggc2hvcnRlc3QgbWF0Y2ggZm9yIHJlbHVjdGFudCBudWxsYWJsZSBxdWFudGlmaWVycwogaW4g cm93IHBhdHRlcm4gcmVjb2duaXRpb24KCldoZW4gYSByZWx1Y3RhbnQgb3V0ZXIgcXVhbnRpZmll ciB3cmFwcGVkIGEgbnVsbGFibGUgcmVsdWN0YW50IGJvZHksIHN1Y2ggYXMKKEE/PykrPywgdGhl IG1hdGNoIGNvbnN1bWVkIHJvd3MgaW5zdGVhZCBvZiBwcm9kdWNpbmcgdGhlIHJlcXVpcmVkIHNo b3J0ZXN0CihlbXB0eSkgbWF0Y2guCgpuZmFfYWR2YW5jZV9lbmQgZGVjaWRlcyBhIGdyb3VwJ3Mg cmVwZWF0LW9yLWV4aXQgYnkgY29tcGFyaW5nIGNvdW50IHdpdGggdGhlCnF1YW50aWZpZXIncyBt aW4gYW5kIG1heC4gIFRoZSBjb3VudCA8IG1pbiBicmFuY2ggYWx3YXlzIHJvdXRlZCB0aGUgbG9v cC1iYWNrCihyZWFsIG1hdGNoKSBiZWZvcmUgdGhlIGZhc3QtZm9yd2FyZCBleGl0IGFuZCBuZXZl ciBzdXBwcmVzc2VkIGl0LCBzbyBhIGxvbmdlcgptYXRjaCBjb3VsZCByZXBsYWNlIHRoZSBzaG9y dGVzdCBvbmUuICBUaGUgc2libGluZyBtaW4gPD0gY291bnQgPCBtYXggYnJhbmNoCmFscmVhZHkg aGFuZGxlcyB0aGlzIGNvcnJlY3RseSBmb3IgcmVsdWN0YW50IGdyb3VwcywgbGVhdmluZyB0aGUg dHdvIGJyYW5jaGVzCmFzeW1tZXRyaWMuCgpTcGxpdCB0aGUgY291bnQgPCBtaW4gYnJhbmNoIGlu dG8gcmVsdWN0YW50IGFuZCBncmVlZHkgY2FzZXMsIG1pcnJvcmluZyB0aGUKc2libGluZzogYSBy ZWx1Y3RhbnQgZ3JvdXAgdGFrZXMgdGhlIGZhc3QtZm9yd2FyZCBleGl0IGZpcnN0IGFuZCwgaWYg aXQgcmVhY2hlcwpGSU4sIGZyZWVzIHRoZSBsb29wLWJhY2sgc3RhdGUgc28gYSBsb25nZXIgbWF0 Y2ggY2Fubm90IHJlcGxhY2UgdGhlIHNob3J0ZXN0Cm9uZS4gIEdyZWVkeSBhbmQgbm9uLW51bGxh YmxlIGdyb3VwcyBrZWVwIHRoZSBleGlzdGluZyBsb29wLWZpcnN0IGJlaGF2aW91ci4KLS0tCiBz cmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAgICAgIHwgNzIgKysrKysrKysrKysrKysr KystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IHwgMzMg KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgIHwgMjYg KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IDY5ZTM2MDNhZGVmLi5iN2UzYzRhODI3 NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMTEzOSw0MyArMTEzOSwzMiBAQCBuZmFfYWR2 YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJ ewogCQlSUFJQYXR0ZXJuRWxlbWVudCAqanVtcEVsZW07CiAJCVJQUk5GQVN0YXRlICpmZlN0YXRl ID0gTlVMTDsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtID0gTlVMTDsKIAogCQkvKi0t LS0tLS0tLS0KLQkJICogVHdvIHBhdGhzIGFyZSBleHBsb3JlZCBpbiBwYXJhbGxlbCB3aGVuIHRo ZSBncm91cCBib2R5IGlzIG51bGxhYmxlCisJCSAqIFR3byBwYXRocyBhcmUgZXhwbG9yZWQgd2hl biB0aGUgZ3JvdXAgYm9keSBpcyBudWxsYWJsZQogCQkgKiAoUlBSX0VMRU1fRU1QVFlfTE9PUCk6 CiAJCSAqCi0JCSAqIDEuIFByaW1hcnkgcGF0aDogbG9vcCBiYWNrIGFuZCBhdHRlbXB0IHJlYWwg bWF0Y2hlcyBpbiB0aGUKLQkJICogICAgbmV4dCBpdGVyYXRpb24gKHN0YXRlLCBtb2RpZmllZCBi ZWxvdykuCisJCSAqIDEuIExvb3AtYmFjayBwYXRoOiBhdHRlbXB0IHJlYWwgbWF0Y2hlcyBpbiB0 aGUgbmV4dCBpdGVyYXRpb24KKwkJICogICAgKHN0YXRlLCBtb2RpZmllZCBiZWxvdykuCiAJCSAq Ci0JCSAqIDIuIEZhc3QtZm9yd2FyZCBwYXRoOiBza2lwIGRpcmVjdGx5IHRvIGFmdGVyIHRoZSBn cm91cCwKLQkJICogICAgdHJlYXRpbmcgYWxsIHJlbWFpbmluZyByZXF1aXJlZCBpdGVyYXRpb25z IGFzIGVtcHR5Ci0JCSAqICAgIG1hdGNoZXMgKGZmU3RhdGUsIGhhbmRsZWQgYWZ0ZXIgdGhlIHBy aW1hcnkgcGF0aCkuCisJCSAqIDIuIEZhc3QtZm9yd2FyZCBwYXRoOiBza2lwIGRpcmVjdGx5IHRv IGFmdGVyIHRoZSBncm91cCwgdHJlYXRpbmcKKwkJICogICAgYWxsIHJlbWFpbmluZyByZXF1aXJl ZCBpdGVyYXRpb25zIGFzIGVtcHR5IG1hdGNoZXMgKGZmU3RhdGUpLgorCQkgKiAgICBSb3V0ZSB0 byBlbGVtLT5uZXh0IChub3QgbmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZCBjcmVhdGluZworCQkg KiAgICBjb21wZXRpbmcgZ3JlZWR5L3JlbHVjdGFudCBsb29wIHN0YXRlcy4KIAkJICoKLQkJICog VGhlIHNuYXBzaG90IG11c3QgYmUgdGFrZW4gQkVGT1JFIG1vZGlmeWluZyBzdGF0ZSBmb3IgdGhl IGxvb3AtYmFjaywKLQkJICogc2luY2UgYm90aCBwYXRocyBkaXZlcmdlIGZyb20gdGhlIHNhbWUg cG9pbnQuCisJCSAqIEdyZWVkeSBwcmVmZXJzIHRoZSBsb29wLWJhY2sgZmlyc3QgKG1vcmUgaXRl cmF0aW9ucyk7IHJlbHVjdGFudAorCQkgKiBwcmVmZXJzIHRoZSBmYXN0LWZvcndhcmQgKGV4aXQp IGZpcnN0IGFuZCwgaWYgaXQgcmVhY2hlcyBGSU4sIGRyb3BzCisJCSAqIHRoZSBsb29wLWJhY2sg c28gYSBsb25nZXIgbWF0Y2ggY2Fubm90IHJlcGxhY2UgdGhlIHNob3J0ZXN0IG9uZSAtLQorCQkg KiBtaXJyb3JpbmcgdGhlIG1pbjw9Y291bnQ8bWF4IGJyYW5jaCBiZWxvdy4gIFRoZSBmZlN0YXRl IHNuYXBzaG90IGlzCisJCSAqIHRha2VuIEJFRk9SRSBtb2RpZnlpbmcgc3RhdGUsIHNpbmNlIGJv dGggcGF0aHMgZGl2ZXJnZSBmcm9tIGhlcmUuCiAJCSAqLS0tLS0tLS0tLQogCQkgKi8KIAkJaWYg KFJQUkVsZW1DYW5FbXB0eUxvb3AoZWxlbSkpCisJCXsKIAkJCWZmU3RhdGUgPSBuZmFfc3RhdGVf Y2xvbmUod2luc3RhdGUsIHN0YXRlLT5lbGVtSWR4LAogCQkJCQkJCQkJICBzdGF0ZS0+Y291bnRz LCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKIAotCQkvKiBQcmltYXJ5IHBhdGg6IGxvb3AgYmFjayBm b3IgcmVhbCBtYXRjaGVzICovCi0JCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKLQkJanVt cEVsZW0gPSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOwotCQluZmFfcm91dGVfdG9fZWxlbSh3 aW5zdGF0ZSwgY3R4LCBzdGF0ZSwganVtcEVsZW0sCi0JCQkJCQkgIGN1cnJlbnRQb3MpOwotCi0J CS8qCi0JCSAqIEZhc3QtZm9yd2FyZCBwYXRoIGZvciBudWxsYWJsZSBib2RpZXMuICBFLmcuIChB Pyl7MiwzfSB3aGVuIEEKLQkJICogZG9lc24ndCBtYXRjaDogdGhlIHByaW1hcnkgbG9vcC1iYWNr IHByb2R1Y2VzIGVtcHR5IGl0ZXJhdGlvbnMgdGhhdAotCQkgKiBjeWNsZSBkZXRlY3Rpb24gd291 bGQga2lsbC4gIEluc3RlYWQsIGV4aXQgZGlyZWN0bHkgd2l0aCBjb3VudAotCQkgKiBzYXRpc2Zp ZWQuICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QgbmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZAot CQkgKiBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5L3JlbHVjdGFudCBsb29wIHN0YXRlcy4KLQkJ ICovCi0JCWlmIChmZlN0YXRlICE9IE5VTEwpCi0JCXsKLQkJCVJQUlBhdHRlcm5FbGVtZW50ICpu ZXh0RWxlbTsKLQogCQkJLyogRXhpdCB0aGUgZ3JvdXA6IGNsZWFyIGl0cyBvd24gY291bnQgKGNv dW50LWNsZWFyIHBvbGljeSkgKi8KIAkJCWZmU3RhdGUtPmNvdW50c1tkZXB0aF0gPSAwOwogCQkJ ZmZTdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CkBAIC0xMTkyLDkgKzExODEsNDIgQEAgbmZh X2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4 LAogCQkJaWYgKFJQUkVsZW1Jc0VuZChuZXh0RWxlbSkgJiYKIAkJCQlmZlN0YXRlLT5jb3VudHNb bmV4dEVsZW0tPmRlcHRoXSA8IFJQUl9DT1VOVF9NQVgpCiAJCQkJZmZTdGF0ZS0+Y291bnRzW25l eHRFbGVtLT5kZXB0aF0rKzsKKwkJfQorCisJCS8qIFByZXBhcmUgdGhlIGxvb3AtYmFjayBzdGF0 ZSAqLworCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPmp1bXA7CisJCWp1bXBFbGVtID0gJmVsZW1l bnRzW3N0YXRlLT5lbGVtSWR4XTsKIAorCQlpZiAoZmZTdGF0ZSAhPSBOVUxMICYmIFJQUkVsZW1J c1JlbHVjdGFudChlbGVtKSkKKwkJeworCQkJUlBSTkZBU3RhdGUgKnNhdmVkTWF0Y2ggPSBjdHgt Pm1hdGNoZWRTdGF0ZTsKKworCQkJLyogUmVsdWN0YW50OiB0YWtlIHRoZSBmYXN0LWZvcndhcmQg KGV4aXQpIGZpcnN0ICovCiAJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBmZlN0 YXRlLCBuZXh0RWxlbSwKIAkJCQkJCQkgIGN1cnJlbnRQb3MpOworCisJCQkvKgorCQkJICogSWYg dGhlIGV4aXQgcmVhY2hlZCBGSU4sIHRoZSBzaG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4gIFNraXAg dGhlCisJCQkgKiBsb29wLWJhY2sgdG8gcHJldmVudCBsb25nZXIgbWF0Y2hlcyBmcm9tIHJlcGxh Y2luZyBpdC4KKwkJCSAqLworCQkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRlICE9IHNhdmVkTWF0Y2gp CisJCQl7CisJCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKKwkJCQlyZXR1cm47 CisJCQl9CisKKwkJCS8qIExvb3AtYmFjayBzZWNvbmQgKi8KKwkJCW5mYV9yb3V0ZV90b19lbGVt KHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBqdW1wRWxlbSwKKwkJCQkJCQkgIGN1cnJlbnRQb3MpOwor CQl9CisJCWVsc2UKKwkJeworCQkJLyogR3JlZWR5IChvciBub24tbnVsbGFibGUpOiBsb29wLWJh Y2sgZmlyc3QsIGZhc3QtZm9yd2FyZCBzZWNvbmQgKi8KKwkJCW5mYV9yb3V0ZV90b19lbGVtKHdp bnN0YXRlLCBjdHgsIHN0YXRlLCBqdW1wRWxlbSwKKwkJCQkJCQkgIGN1cnJlbnRQb3MpOworCQkJ aWYgKGZmU3RhdGUgIT0gTlVMTCkKKwkJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4 LCBmZlN0YXRlLCBuZXh0RWxlbSwKKwkJCQkJCQkJICBjdXJyZW50UG9zKTsKIAkJfQogCX0KIAll bHNlIGlmIChlbGVtLT5tYXggIT0gUlBSX1FVQU5USVRZX0lORiAmJiBjb3VudCA+PSBlbGVtLT5t YXgpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAppbmRleCAwMmE1ZTUxN2IwZS4u M2I5OTc1YTgzZGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25m YS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dApAQCAtMTI1 NSw2ICsxMjU1LDM5IEBAIFdJTkRPVyB3IEFTICgKICAgMyB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKICgzIHJvd3MpCiAKKy0tIFJlbHVjdGFudCBvdXRlciBxdWFudGlmaWVyIG92 ZXIgYSBudWxsYWJsZSByZWx1Y3RhbnQgYm9keTogU1FML1JQUgorLS0gc2VtYW50aWNzIGNhbGwg Zm9yIHRoZSBzaG9ydGVzdCAoZW1wdHkpIG1hdGNoLiAgVGhlIGNvdW50PG1pbiBicmFuY2ggb2YK Ky0tIG5mYV9hZHZhbmNlX2VuZCBtdXN0IHByZWZlciB0aGUgZmFzdC1mb3J3YXJkIChleGl0KSBw YXRoIGZvciByZWx1Y3RhbnQKKy0tIGdyb3VwcyBhbmQgc3VwcHJlc3MgbG9uZ2VyIG1hdGNoZXMg b25jZSBleGl0IHJlYWNoZXMgRklOLCBtaXJyb3JpbmcgdGhlCistLSBzaWJsaW5nIG1pbjw9Y291 bnQ8bWF4IGJyYW5jaC4gIFRoZSAyLWxldmVsIGdyZWVkeS9yZWx1Y3RhbnQgbWF0cml4IHBsdXMg YQorLS0gbWluPj0yIGJvdW5kYXJ5IGFuZCBzaW5nbGUtcXVhbnRpZmllciBjb250cm9scyBsb2Nh bGl6ZSB0aGUgYmVoYXZpb3VyOiBvbmx5CistLSB0aGUgYWxsLXJlbHVjdGFudCBjYXNlIChycikg c2hvdWxkIGRpZmZlci4KK1dJVEggdChpZCwgaXNhKSBBUyAoVkFMVUVTICgxLCB0cnVlKSwgKDIs IHRydWUpLCAoMywgdHJ1ZSksICg0LCBmYWxzZSkpCitTRUxFQ1QgaWQsCisgICAgICAgY291bnQo KikgT1ZFUiBnZyAgQVMgZ2csICAgICAtLSAoQT8pKyAgICAgIGdyZWVkeSAvIGdyZWVkeQorICAg ICAgIGNvdW50KCopIE9WRVIgZ3IgIEFTIGdyLCAgICAgLS0gKEE/PykrICAgICBncmVlZHkgLyBy ZWx1Y3RhbnQKKyAgICAgICBjb3VudCgqKSBPVkVSIHJnICBBUyByZywgICAgIC0tIChBPykrPyAg ICAgcmVsdWN0YW50IC8gZ3JlZWR5CisgICAgICAgY291bnQoKikgT1ZFUiByciAgQVMgcnIsICAg ICAtLSAoQT8/KSs/ICAgIHJlbHVjdGFudCAvIHJlbHVjdGFudAorICAgICAgIGNvdW50KCopIE9W RVIgcnIyIEFTIHJyMiwgICAgLS0gKEE/Pyl7Mix9PyByZWx1Y3RhbnQsIG1pbj49MiBib3VuZGFy eQorICAgICAgIGNvdW50KCopIE9WRVIgY2EgIEFTIGNhLCAgICAgLS0gQT8/ICAgICAgICBzaW5n bGUgcmVsdWN0YW50IGNvbnRyb2wKKyAgICAgICBjb3VudCgqKSBPVkVSIGNzICBBUyBjcyAgICAg IC0tIEEqPyAgICAgICAgc2luZ2xlIHJlbHVjdGFudCBjb250cm9sCitGUk9NIHQKK1dJTkRPVyBn ZyAgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORyBQQVRURVJOICgoQT8pKykgICAgICBERUZJTkUgQSBBUyBpc2EpLAorICAgICAg IGdyICBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HIFBBVFRFUk4gKChBPz8pKykgICAgIERFRklORSBBIEFTIGlzYSksCisgICAg ICAgcmcgIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoKEE/KSs/KSAgICAgREVGSU5FIEEgQVMgaXNhKSwKKyAg ICAgICByciAgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORyBQQVRURVJOICgoQT8/KSs/KSAgICBERUZJTkUgQSBBUyBpc2EpLAor ICAgICAgIHJyMiBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKChBPz8pezIsfT8pIERFRklORSBBIEFTIGlzYSks CisgICAgICAgY2EgIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQT8/KSAgICAgICAgREVGSU5FIEEgQVMgaXNh KSwKKyAgICAgICBjcyAgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKj8pICAgICAgICBERUZJTkUgQSBBUyBp c2EpCitPUkRFUiBCWSBpZDsKKyBpZCB8IGdnIHwgZ3IgfCByZyB8IHJyIHwgcnIyIHwgY2EgfCBj cyAKKy0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAzIHwg IDMgfCAgMSB8ICAwIHwgICAwIHwgIDAgfCAgMAorICAyIHwgIDAgfCAgMCB8ICAxIHwgIDAgfCAg IDAgfCAgMCB8ICAwCisgIDMgfCAgMCB8ICAwIHwgIDEgfCAgMCB8ICAgMCB8ICAwIHwgIDAKKyAg NCB8ICAwIHwgIDAgfCAgMCB8ICAwIHwgICAwIHwgIDAgfCAgMAorKDQgcm93cykKKwogLS0gTm9u LWxlYWRpbmcgcmVsdWN0YW50IG9wdGlvbmFsIEdST1VQIHdpdGggYSBmb2xsb3dlcjogKEIgKEEg WCk/PyBDKQogLS0gTGlrZSB0aGUgVkFSIGNhc2UgYWJvdmUgYnV0IGEgbXVsdGktZWxlbWVudCBn cm91cDsgaXQgZ29lcyB0aHJvdWdoIHRoZQogLS0gYmVnaW4gcGF0aCAobmZhX2FkdmFuY2VfYmVn aW4pLCB3aGljaCBhbHJlYWR5IGhvbm9ycyByZWx1Y3RhbnQgb3JkZXJpbmcuCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9uZmEuc3FsCmluZGV4IDIxMzM4NWYxNDNiLi42MTA3MmQxZDZmMSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX25mYS5zcWwKQEAgLTg4Nyw2ICs4ODcsMzIgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBDIEFTICdDJyA9IEFOWShmbGFncykKICk7CiAKKy0tIFJlbHVjdGFudCBvdXRlciBxdWFudGlm aWVyIG92ZXIgYSBudWxsYWJsZSByZWx1Y3RhbnQgYm9keTogU1FML1JQUgorLS0gc2VtYW50aWNz IGNhbGwgZm9yIHRoZSBzaG9ydGVzdCAoZW1wdHkpIG1hdGNoLiAgVGhlIGNvdW50PG1pbiBicmFu Y2ggb2YKKy0tIG5mYV9hZHZhbmNlX2VuZCBtdXN0IHByZWZlciB0aGUgZmFzdC1mb3J3YXJkIChl eGl0KSBwYXRoIGZvciByZWx1Y3RhbnQKKy0tIGdyb3VwcyBhbmQgc3VwcHJlc3MgbG9uZ2VyIG1h dGNoZXMgb25jZSBleGl0IHJlYWNoZXMgRklOLCBtaXJyb3JpbmcgdGhlCistLSBzaWJsaW5nIG1p bjw9Y291bnQ8bWF4IGJyYW5jaC4gIFRoZSAyLWxldmVsIGdyZWVkeS9yZWx1Y3RhbnQgbWF0cml4 IHBsdXMgYQorLS0gbWluPj0yIGJvdW5kYXJ5IGFuZCBzaW5nbGUtcXVhbnRpZmllciBjb250cm9s cyBsb2NhbGl6ZSB0aGUgYmVoYXZpb3VyOiBvbmx5CistLSB0aGUgYWxsLXJlbHVjdGFudCBjYXNl IChycikgc2hvdWxkIGRpZmZlci4KK1dJVEggdChpZCwgaXNhKSBBUyAoVkFMVUVTICgxLCB0cnVl KSwgKDIsIHRydWUpLCAoMywgdHJ1ZSksICg0LCBmYWxzZSkpCitTRUxFQ1QgaWQsCisgICAgICAg Y291bnQoKikgT1ZFUiBnZyAgQVMgZ2csICAgICAtLSAoQT8pKyAgICAgIGdyZWVkeSAvIGdyZWVk eQorICAgICAgIGNvdW50KCopIE9WRVIgZ3IgIEFTIGdyLCAgICAgLS0gKEE/PykrICAgICBncmVl ZHkgLyByZWx1Y3RhbnQKKyAgICAgICBjb3VudCgqKSBPVkVSIHJnICBBUyByZywgICAgIC0tIChB PykrPyAgICAgcmVsdWN0YW50IC8gZ3JlZWR5CisgICAgICAgY291bnQoKikgT1ZFUiByciAgQVMg cnIsICAgICAtLSAoQT8/KSs/ICAgIHJlbHVjdGFudCAvIHJlbHVjdGFudAorICAgICAgIGNvdW50 KCopIE9WRVIgcnIyIEFTIHJyMiwgICAgLS0gKEE/Pyl7Mix9PyByZWx1Y3RhbnQsIG1pbj49MiBi b3VuZGFyeQorICAgICAgIGNvdW50KCopIE9WRVIgY2EgIEFTIGNhLCAgICAgLS0gQT8/ICAgICAg ICBzaW5nbGUgcmVsdWN0YW50IGNvbnRyb2wKKyAgICAgICBjb3VudCgqKSBPVkVSIGNzICBBUyBj cyAgICAgIC0tIEEqPyAgICAgICAgc2luZ2xlIHJlbHVjdGFudCBjb250cm9sCitGUk9NIHQKK1dJ TkRPVyBnZyAgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORyBQQVRURVJOICgoQT8pKykgICAgICBERUZJTkUgQSBBUyBpc2EpLAor ICAgICAgIGdyICBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKChBPz8pKykgICAgIERFRklORSBBIEFTIGlzYSks CisgICAgICAgcmcgIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoKEE/KSs/KSAgICAgREVGSU5FIEEgQVMgaXNh KSwKKyAgICAgICByciAgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOICgoQT8/KSs/KSAgICBERUZJTkUgQSBBUyBp c2EpLAorICAgICAgIHJyMiBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKChBPz8pezIsfT8pIERFRklORSBBIEFT IGlzYSksCisgICAgICAgY2EgIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQT8/KSAgICAgICAgREVGSU5FIEEg QVMgaXNhKSwKKyAgICAgICBjcyAgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKj8pICAgICAgICBERUZJTkUg QSBBUyBpc2EpCitPUkRFUiBCWSBpZDsKKwogLS0gTm9uLWxlYWRpbmcgcmVsdWN0YW50IG9wdGlv bmFsIEdST1VQIHdpdGggYSBmb2xsb3dlcjogKEIgKEEgWCk/PyBDKQogLS0gTGlrZSB0aGUgVkFS IGNhc2UgYWJvdmUgYnV0IGEgbXVsdGktZWxlbWVudCBncm91cDsgaXQgZ29lcyB0aHJvdWdoIHRo ZQogLS0gYmVnaW4gcGF0aCAobmZhX2FkdmFuY2VfYmVnaW4pLCB3aGljaCBhbHJlYWR5IGhvbm9y cyByZWx1Y3RhbnQgb3JkZXJpbmcuCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0059-Allow-a-row-pattern-quantifier-with-no-space-befo.txt" Content-Disposition: attachment; filename="nocfbot-0059-Allow-a-row-pattern-quantifier-with-no-space-befo.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogi58 RnJvbSBmY2Q4ODI1MjYwNDJmYTdiZWM3MmMwNjU4ZjAyYjhkZGRkMjEwOWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTE6MjM6MDMgKzA5MDAKU3ViamVjdDogW1BBVENIIDU5LzY4XSBB bGxvdyBhIHJvdyBwYXR0ZXJuIHF1YW50aWZpZXIgd2l0aCBubyBzcGFjZSBiZWZvcmUgdGhlCiBh bHRlcm5hdGlvbiBvcGVyYXRvcgoKVGhlIHNjYW5uZXIgbGV4ZXMgYW4gb3BlcmF0b3Igc3VjaCBh cyAiKnwiIGFzIGEgc2luZ2xlIHRva2VuLCBzbyBhIFBBVFRFUk4KbGlrZSAoQSp8QikgcHJldmlv dXNseSBmYWlsZWQgd2l0aCAidW5zdXBwb3J0ZWQgcXVhbnRpZmllciIuICBSZWNvZ25pemUgdGhl c2UKZ2x1ZWQgZm9ybXMgaW4gdGhlIHF1YW50aWZpZXIgcnVsZXMgYW5kLCBvbmNlIHRoZSBzdXJy b3VuZGluZyBzZXF1ZW5jZSBpcwpidWlsdCwgcmUtc3BsaXQgaXQgYXQgdGhlIGFmZmVjdGVkIHRl cm0gc28gInwiIGtlZXBzIGl0cyBsb3dlc3QgcHJlY2VkZW5jZTsKKEEqfEIpIG5vdyBwYXJzZXMg aWRlbnRpY2FsbHkgdG8gdGhlIHNwYWNlZCAoQSogfCBCKS4gIFRoaXMgY292ZXJzIHRoZSBvcC1j aGFyCnF1YW50aWZpZXJzICgqfCArfCA/fCAqP3wgKz98ID8/fCksIHRoZSByZWx1Y3RhbnQgcmFu Z2UgZm9ybXMgKHtufT98IGFuZCB0aGUKbGlrZSksIGFuZCBtaXhlZCBzcGFjaW5nIHN1Y2ggYXMg IkEqID98QiIuICBBIGRhbmdsaW5nICJ8IiB3aXRoIG5vIHJpZ2h0LWhhbmQKcGF0dGVybiBpcyBz dGlsbCByZWplY3RlZC4KLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAg ICB8IDE5NSArKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y cHIuYyAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAg ICAgIHwgICA4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IHwgMjI4 ICsrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNl LnNxbCAgICAgIHwgMTEyICsrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA1MzUgaW5zZXJ0 aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTJmYWZiNzE3Y2QuLjE0 N2I1ZjM3MjkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIxMCw2ICsyMTAsOCBAQCBzdGF0aWMgdm9pZCBw cmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3QsCiBz dGF0aWMgdm9pZCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwK IAkJCQkJCQkJICAgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqbWFrZVJQUlNlcU9yU2luZ2xlKExpc3QgKmNo aWxkcmVuLCBpbnQgbG9jYXRpb24pOworc3RhdGljIFJQUlBhdHRlcm5Ob2RlICpzcGxpdFJQUlRy YWlsaW5nQWx0KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcik7 CiBzdGF0aWMgUlBSUGF0dGVybk5vZGUgKm1ha2VSUFJRdWFudGlmaWVyKGludCBtaW4sIGludCBt YXgsIFBhcnNlTG9jIHJlbHVjdGFudCwgaW50IGxvY2F0aW9uLAogCQkJCQkJCQkJICAgY29yZV95 eXNjYW5fdCB5eXNjYW5uZXIpOwogCkBAIC0xNzYyNCwyMyArMTc2MjYsMzAgQEAgcm93X3BhdHRl cm46CiAJCTsKIAogcm93X3BhdHRlcm5fYWx0OgotCQkJcm93X3BhdHRlcm5fc2VxCQkJCQkJeyAk JCA9ICQxOyB9CisJCQlyb3dfcGF0dGVybl9zZXEKKwkJCQl7CisJCQkJCSQkID0gKE5vZGUgKikg c3BsaXRSUFJUcmFpbGluZ0FsdCgoUlBSUGF0dGVybk5vZGUgKikgJDEsCisJCQkJCQkJCQkJCQkJ IHl5c2Nhbm5lcik7CisJCQkJfQogCQkJfCByb3dfcGF0dGVybl9hbHQgJ3wnIHJvd19wYXR0ZXJu X3NlcQogCQkJCXsKIAkJCQkJUlBSUGF0dGVybk5vZGUgKm47CisJCQkJCVJQUlBhdHRlcm5Ob2Rl ICpyaHMgPSBzcGxpdFJQUlRyYWlsaW5nQWx0KChSUFJQYXR0ZXJuTm9kZSAqKSAkMywKKwkJCQkJ CQkJCQkJCQkJCSB5eXNjYW5uZXIpOworCiAJCQkJCS8qIElmIGxlZnQgc2lkZSBpcyBhbHJlYWR5 IEFMVCwgYXBwZW5kIHRvIGl0ICovCiAJCQkJCWlmIChJc0EoJDEsIFJQUlBhdHRlcm5Ob2RlKSAm JgogCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSAkMSktPm5vZGVUeXBlID09IFJQUl9QQVRURVJO X0FMVCkKIAkJCQkJewogCQkJCQkJbiA9IChSUFJQYXR0ZXJuTm9kZSAqKSAkMTsKLQkJCQkJCW4t PmNoaWxkcmVuID0gbGFwcGVuZChuLT5jaGlsZHJlbiwgJDMpOworCQkJCQkJbi0+Y2hpbGRyZW4g PSBsYXBwZW5kKG4tPmNoaWxkcmVuLCByaHMpOwogCQkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CQl9CiAJCQkJCWVsc2UKIAkJCQkJewogCQkJCQkJbiA9IG1ha2VOb2RlKFJQUlBhdHRlcm5Ob2Rl KTsKIAkJCQkJCW4tPm5vZGVUeXBlID0gUlBSX1BBVFRFUk5fQUxUOwotCQkJCQkJbi0+Y2hpbGRy ZW4gPSBsaXN0X21ha2UyKCQxLCAkMyk7CisJCQkJCQluLT5jaGlsZHJlbiA9IGxpc3RfbWFrZTIo JDEsIHJocyk7CiAJCQkJCQluLT5taW4gPSAxOwogCQkJCQkJbi0+bWF4ID0gMTsKIAkJCQkJCW4t PnJlbHVjdGFudCA9IGZhbHNlOwpAQCAtMTc2NTYsNyArMTc2NjUsMTIgQEAgcm93X3BhdHRlcm5f c2VxOgogCQkJfCByb3dfcGF0dGVybl9zZXEgcm93X3BhdHRlcm5fdGVybQogCQkJCXsKIAkJCQkJ UlBSUGF0dGVybk5vZGUgKm47Ci0JCQkJCS8qIElmIGxlZnQgc2lkZSBpcyBhbHJlYWR5IFNFUSwg YXBwZW5kIHRvIGl0ICovCisKKwkJCQkJLyoKKwkJCQkJICogSWYgbGVmdCBzaWRlIGlzIGFscmVh ZHkgU0VRLCBhcHBlbmQgdG8gaXQuICBBIGdsdWVkCisJCQkJCSAqIHF1YW50aWZpZXIncyB0cmFp bGluZ19hbHQgc3RheXMgb24gdGhlIGNoaWxkIHRlcm07CisJCQkJCSAqIHJvd19wYXR0ZXJuX2Fs dCBzcGxpdHMgb24gaXQgb25jZSB0aGUgc2VxIGlzIGNvbXBsZXRlLgorCQkJCQkgKi8KIAkJCQkJ aWYgKElzQSgkMSwgUlBSUGF0dGVybk5vZGUpICYmCiAJCQkJCQkoKFJQUlBhdHRlcm5Ob2RlICop ICQxKS0+bm9kZVR5cGUgPT0gUlBSX1BBVFRFUk5fU0VRKQogCQkJCQl7CkBAIC0xNzY4OSw2ICsx NzcwMyw3IEBAIHJvd19wYXR0ZXJuX3Rlcm06CiAJCQkJCW4tPm1heCA9IHEtPm1heDsKIAkJCQkJ bi0+cmVsdWN0YW50ID0gcS0+cmVsdWN0YW50OwogCQkJCQluLT5yZWx1Y3RhbnRfbG9jYXRpb24g PSBxLT5yZWx1Y3RhbnRfbG9jYXRpb247CisJCQkJCW4tPnRyYWlsaW5nX2FsdCA9IHEtPnRyYWls aW5nX2FsdDsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwpAQCAtMTc3MzksNiAr MTc3NTQsMzYgQEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkJCQkkJCA9IChOb2Rl ICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIElOVF9NQVgsIEAxICsgMSwgQDEsIHl5c2Nhbm5lcik7 CiAJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgIj8/IikgPT0gMCkKIAkJCQkJCSQkID0gKE5vZGUg KikgbWFrZVJQUlF1YW50aWZpZXIoMCwgMSwgQDEgKyAxLCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJ ZWxzZSBpZiAoc3RyY21wKCQxLCAiKnwiKSA9PSAwKQorCQkJCQl7CisJCQkJCQkkJCA9IChOb2Rl ICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIElOVF9NQVgsIC0xLCBAMSwgeXlzY2FubmVyKTsKKwkJ CQkJCSgoUlBSUGF0dGVybk5vZGUgKikgJCQpLT50cmFpbGluZ19hbHQgPSB0cnVlOworCQkJCQl9 CisJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgIit8IikgPT0gMCkKKwkJCQkJeworCQkJCQkJJCQg PSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCBJTlRfTUFYLCAtMSwgQDEsIHl5c2Nhbm5l cik7CisJCQkJCQkoKFJQUlBhdHRlcm5Ob2RlICopICQkKS0+dHJhaWxpbmdfYWx0ID0gdHJ1ZTsK KwkJCQkJfQorCQkJCQllbHNlIGlmIChzdHJjbXAoJDEsICI/fCIpID09IDApCisJCQkJCXsKKwkJ CQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgMSwgLTEsIEAxLCB5eXNjYW5u ZXIpOworCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSAkJCktPnRyYWlsaW5nX2FsdCA9IHRydWU7 CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAiKj98IikgPT0gMCkKKwkJCQkJewor CQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCBJTlRfTUFYLCBAMSArIDEs IEAxLCB5eXNjYW5uZXIpOworCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSAkJCktPnRyYWlsaW5n X2FsdCA9IHRydWU7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAiKz98IikgPT0g MCkKKwkJCQkJeworCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCBJTlRf TUFYLCBAMSArIDEsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSAk JCktPnRyYWlsaW5nX2FsdCA9IHRydWU7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoc3RyY21wKCQx LCAiPz98IikgPT0gMCkKKwkJCQkJeworCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRp ZmllcigwLCAxLCBAMSArIDEsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkJKChSUFJQYXR0ZXJuTm9k ZSAqKSAkJCktPnRyYWlsaW5nX2FsdCA9IHRydWU7CisJCQkJCX0KIAkJCQkJZWxzZQogCQkJCQkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBA IC0xNzc0OSwzMyArMTc3OTQsNjAgQEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkv KiBSRUxVQ1RBTlQgcXVhbnRpZmllcnMgKHdoZW4gbGV4ZXIgc2VwYXJhdGVzIHRva2VucykgKi8K IAkJCXwgJyonIE9wCiAJCQkJewotCQkJCQlpZiAoc3RyY21wKCQyLCAiPyIpICE9IDApCisJCQkJ CWlmIChzdHJjbXAoJDIsICI/IikgPT0gMCkKKwkJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1 YW50aWZpZXIoMCwgSU5UX01BWCwgQDIsIEAxLCB5eXNjYW5uZXIpOworCQkJCQllbHNlIGlmIChz dHJjbXAoJDIsICI/fCIpID09IDApCisJCQkJCXsKKwkJCQkJCS8qICJBKiA/fEIiID0gcmVsdWN0 YW50ICJBKj8iIHBsdXMgYWx0ZXJuYXRpb24gKi8KKwkJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQ UlF1YW50aWZpZXIoMCwgSU5UX01BWCwgQDIsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkJKChSUFJQ YXR0ZXJuTm9kZSAqKSAkJCktPnRyYWlsaW5nX2FsdCA9IHRydWU7CisJCQkJCX0KKwkJCQkJZWxz ZQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCiAJCQkJCQkJCWVycm1zZygiaW52YWxpZCB0b2tlbiBhZnRlciBcIipcIiBxdWFudGlm aWVyIiksCiAJCQkJCQkJCWVycmhpbnQoIkRpZCB5b3UgbWVhbiBcIio/XCIgZm9yIHJlbHVjdGFu dCBxdWFudGlmaWVyPyIpLAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKLQkJCQkJ JCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCBJTlRfTUFYLCBAMiwgQDEsIHl5c2Nh bm5lcik7CiAJCQkJfQogCQkJfCAnKycgT3AKIAkJCQl7Ci0JCQkJCWlmIChzdHJjbXAoJDIsICI/ IikgIT0gMCkKKwkJCQkJaWYgKHN0cmNtcCgkMiwgIj8iKSA9PSAwKQorCQkJCQkJJCQgPSAoTm9k ZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCBJTlRfTUFYLCBAMiwgQDEsIHl5c2Nhbm5lcik7CisJ CQkJCWVsc2UgaWYgKHN0cmNtcCgkMiwgIj98IikgPT0gMCkKKwkJCQkJeworCQkJCQkJLyogIkEr ID98QiIgPSByZWx1Y3RhbnQgIkErPyIgcGx1cyBhbHRlcm5hdGlvbiAqLworCQkJCQkJJCQgPSAo Tm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCBJTlRfTUFYLCBAMiwgQDEsIHl5c2Nhbm5lcik7 CisJCQkJCQkoKFJQUlBhdHRlcm5Ob2RlICopICQkKS0+dHJhaWxpbmdfYWx0ID0gdHJ1ZTsKKwkJ CQkJfQorCQkJCQllbHNlCiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQllcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJCQkJZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVy IFwiK1wiIHF1YW50aWZpZXIiKSwKIAkJCQkJCQkJZXJyaGludCgiRGlkIHlvdSBtZWFuIFwiKz9c IiBmb3IgcmVsdWN0YW50IHF1YW50aWZpZXI/IiksCiAJCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlv bihAMikpOwotCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIElOVF9NQVgs IEAyLCBAMSwgeXlzY2FubmVyKTsKIAkJCQl9CiAJCQl8IE9wIE9wCiAJCQkJewotCQkJCQlpZiAo c3RyY21wKCQxLCAiPyIpICE9IDAgfHwgc3RyY21wKCQyLCAiPyIpICE9IDApCisJCQkJCWlmIChz dHJjbXAoJDEsICI/IikgIT0gMCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coImludmFsaWQgcXVhbnRp ZmllciBjb21iaW5hdGlvbiIpLAorCQkJCQkJCQllcnJoaW50KCJEaWQgeW91IG1lYW4gXCI/P1wi IGZvciByZWx1Y3RhbnQgcXVhbnRpZmllcj8iKSwKKwkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9u KEAxKSk7CisJCQkJCWlmIChzdHJjbXAoJDIsICI/IikgPT0gMCkKKwkJCQkJCSQkID0gKE5vZGUg KikgbWFrZVJQUlF1YW50aWZpZXIoMCwgMSwgQDIsIEAxLCB5eXNjYW5uZXIpOworCQkJCQllbHNl IGlmIChzdHJjbXAoJDIsICI/fCIpID09IDApCisJCQkJCXsKKwkJCQkJCS8qICJBPyA/fEIiID0g cmVsdWN0YW50ICJBPz8iIHBsdXMgYWx0ZXJuYXRpb24gKi8KKwkJCQkJCSQkID0gKE5vZGUgKikg bWFrZVJQUlF1YW50aWZpZXIoMCwgMSwgQDIsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkJKChSUFJQ YXR0ZXJuTm9kZSAqKSAkJCktPnRyYWlsaW5nX2FsdCA9IHRydWU7CisJCQkJCX0KKwkJCQkJZWxz ZQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCiAJCQkJCQkJCWVycm1zZygiaW52YWxpZCBxdWFudGlmaWVyIGNvbWJpbmF0aW9uIiks CiAJCQkJCQkJCWVycmhpbnQoIkRpZCB5b3UgbWVhbiBcIj8/XCIgZm9yIHJlbHVjdGFudCBxdWFu dGlmaWVyPyIpLAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDEpKTsKLQkJCQkJJCQgPSAo Tm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCAxLCBAMiwgQDEsIHl5c2Nhbm5lcik7CiAJCQkJ fQogCQkJLyoge259LCB7bix9LCB7LG19LCB7bixtfSBxdWFudGlmaWVycyAqLwogCQkJfCAneycg SWNvbnN0ICd9JwpAQCAtMTc4MjIsNyArMTc4OTQsNyBAQCByb3dfcGF0dGVybl9xdWFudGlmaWVy X29wdDoKIAkJCS8qIFJlbHVjdGFudCB2ZXJzaW9uczoge259Pywge24sfT8sIHssbX0/LCB7bixt fT8gKi8KIAkJCXwgJ3snIEljb25zdCAnfScgT3AKIAkJCQl7Ci0JCQkJCWlmIChzdHJjbXAoJDQs ICI/IikgIT0gMCkKKwkJCQkJaWYgKHN0cmNtcCgkNCwgIj8iKSAhPSAwICYmIHN0cmNtcCgkNCwg Ij98IikgIT0gMCkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCWVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAogCQkJCQkJCQllcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFu Z2UgcXVhbnRpZmllciIpLApAQCAtMTc4MzQsMTAgKzE3OTA2LDEyIEBAIHJvd19wYXR0ZXJuX3F1 YW50aWZpZXJfb3B0OgogCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBi ZXR3ZWVuIDEgYW5kICVkIiwgSU5UX01BWCAtIDEpLAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRp b24oQDIpKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigkMiwgJDIsIEA0 LCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJaWYgKHN0cmNtcCgkNCwgIj98IikgPT0gMCkKKwkJCQkJ CSgoUlBSUGF0dGVybk5vZGUgKikgJCQpLT50cmFpbGluZ19hbHQgPSB0cnVlOwogCQkJCX0KIAkJ CXwgJ3snIEljb25zdCAnLCcgJ30nIE9wCiAJCQkJewotCQkJCQlpZiAoc3RyY21wKCQ1LCAiPyIp ICE9IDApCisJCQkJCWlmIChzdHJjbXAoJDUsICI/IikgIT0gMCAmJiBzdHJjbXAoJDUsICI/fCIp ICE9IDApCiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKIAkJCQkJCQkJZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdlIHF1 YW50aWZpZXIiKSwKQEAgLTE3ODQ5LDEwICsxNzkyMywxMiBAQCByb3dfcGF0dGVybl9xdWFudGlm aWVyX29wdDoKIAkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2Vl biAwIGFuZCAlZCIsIElOVF9NQVggLSAxKSwKIAkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAy KSk7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoJDIsIElOVF9NQVgsIEA1 LCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJaWYgKHN0cmNtcCgkNSwgIj98IikgPT0gMCkKKwkJCQkJ CSgoUlBSUGF0dGVybk5vZGUgKikgJCQpLT50cmFpbGluZ19hbHQgPSB0cnVlOwogCQkJCX0KIAkJ CXwgJ3snICcsJyBJY29uc3QgJ30nIE9wCiAJCQkJewotCQkJCQlpZiAoc3RyY21wKCQ1LCAiPyIp ICE9IDApCisJCQkJCWlmIChzdHJjbXAoJDUsICI/IikgIT0gMCAmJiBzdHJjbXAoJDUsICI/fCIp ICE9IDApCiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKIAkJCQkJCQkJZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdlIHF1 YW50aWZpZXIiKSwKQEAgLTE3ODY0LDEwICsxNzk0MCwxMiBAQCByb3dfcGF0dGVybl9xdWFudGlm aWVyX29wdDoKIAkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2Vl biAxIGFuZCAlZCIsIElOVF9NQVggLSAxKSwKIAkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAz KSk7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgJDMsIEA1LCBAMSwg eXlzY2FubmVyKTsKKwkJCQkJaWYgKHN0cmNtcCgkNSwgIj98IikgPT0gMCkKKwkJCQkJCSgoUlBS UGF0dGVybk5vZGUgKikgJCQpLT50cmFpbGluZ19hbHQgPSB0cnVlOwogCQkJCX0KIAkJCXwgJ3sn IEljb25zdCAnLCcgSWNvbnN0ICd9JyBPcAogCQkJCXsKLQkJCQkJaWYgKHN0cmNtcCgkNiwgIj8i KSAhPSAwKQorCQkJCQlpZiAoc3RyY21wKCQ2LCAiPyIpICE9IDAgJiYgc3RyY21wKCQ2LCAiP3wi KSAhPSAwKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCiAJCQkJCQkJCWVycm1zZygiaW52YWxpZCB0b2tlbiBhZnRlciByYW5nZSBx dWFudGlmaWVyIiksCkBAIC0xNzg4NCw2ICsxNzk2Miw4IEBAIHJvd19wYXR0ZXJuX3F1YW50aWZp ZXJfb3B0OgogCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgbWluaW11bSBib3VuZCBtdXN0IG5v dCBleGNlZWQgbWF4aW11bSIpLAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigkMiwgJDQsIEA2LCBAMSwgeXlzY2Fu bmVyKTsKKwkJCQkJaWYgKHN0cmNtcCgkNiwgIj98IikgPT0gMCkKKwkJCQkJCSgoUlBSUGF0dGVy bk5vZGUgKikgJCQpLT50cmFpbGluZ19hbHQgPSB0cnVlOwogCQkJCX0KIAkJOwogCkBAIC0yMTMy NSw2ICsyMTQwNSw5MyBAQCBtYWtlUlBSUXVhbnRpZmllcihpbnQgbWluLCBpbnQgbWF4LCBQYXJz ZUxvYyByZWx1Y3RhbnRfbG9jYXRpb24sIGludCBsb2NhdGlvbiwKIAlyZXR1cm4gbjsKIH0KIAor LyoKKyAqIEJ1aWxkIGEgU0VRIG5vZGUgZnJvbSBjaGlsZHJlbiwgb3IgcmV0dXJuIHRoZSBsb25l IGNoaWxkIHVuY2hhbmdlZC4KKyAqLworc3RhdGljIFJQUlBhdHRlcm5Ob2RlICoKK21ha2VSUFJT ZXFPclNpbmdsZShMaXN0ICpjaGlsZHJlbiwgaW50IGxvY2F0aW9uKQoreworCVJQUlBhdHRlcm5O b2RlICpuOworCisJaWYgKGxpc3RfbGVuZ3RoKGNoaWxkcmVuKSA9PSAxKQorCQlyZXR1cm4gKFJQ UlBhdHRlcm5Ob2RlICopIGxpbml0aWFsKGNoaWxkcmVuKTsKKworCW4gPSBtYWtlTm9kZShSUFJQ YXR0ZXJuTm9kZSk7CisJbi0+bm9kZVR5cGUgPSBSUFJfUEFUVEVSTl9TRVE7CisJbi0+Y2hpbGRy ZW4gPSBjaGlsZHJlbjsKKwluLT5taW4gPSAxOworCW4tPm1heCA9IDE7CisJbi0+cmVsdWN0YW50 ID0gZmFsc2U7CisJbi0+cmVsdWN0YW50X2xvY2F0aW9uID0gLTE7CisJbi0+bG9jYXRpb24gPSBs b2NhdGlvbjsKKwlyZXR1cm4gbjsKK30KKworLyoKKyAqIEEgZ2x1ZWQgcXVhbnRpZmllciBzdWNo IGFzICJBKnwiIGxlYXZlcyB0cmFpbGluZ19hbHQgc2V0IG9uIGl0cyB0ZXJtIHdoaWxlCisgKiB0 aGUgZW5jbG9zaW5nIHNlcXVlbmNlIGlzIGJ1aWx0LiAgT25jZSB0aGUgc2VxdWVuY2UgaXMgY29t cGxldGUsIHNwbGl0IGl0IGF0CisgKiB0aGUgZmxhZ2dlZCB0ZXJtIGludG8gYWx0KGxlZnQsIHJp Z2h0KSwgd2hlcmUgdGhlIHJpZ2h0IG9wZXJhbmQgaXMgdGhlIHdob2xlCisgKiByZW1haW5pbmcg c2VxdWVuY2UgLS0gdGhpcyBrZWVwcyAifCIgYXMgdGhlIGxvd2VzdC1wcmVjZWRlbmNlIG9wZXJh dG9yLCBzbworICogIkEqfEIgQyIgcGFyc2VzIGFzICJBKiB8IChCIEMpIiwgaWRlbnRpY2FsIHRv IHRoZSBzcGFjZWQgZm9ybS4gIEEgZmxhZyB3aXRoCisgKiBub3RoaW5nIHRvIGl0cyByaWdodCBp cyBhIGRhbmdsaW5nICJ8IiBhbmQgaXMgcmVqZWN0ZWQuCisgKi8KK3N0YXRpYyBSUFJQYXR0ZXJu Tm9kZSAqCitzcGxpdFJQUlRyYWlsaW5nQWx0KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjb3JlX3l5 c2Nhbl90IHl5c2Nhbm5lcikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlpbnQJCQlpID0gMDsKKwor CWlmIChub2RlLT5ub2RlVHlwZSAhPSBSUFJfUEFUVEVSTl9TRVEpCisJeworCQlpZiAobm9kZS0+ dHJhaWxpbmdfYWx0KQorCQl7CisJCQlub2RlLT50cmFpbGluZ19hbHQgPSBmYWxzZTsKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQll cnJtc2coImFsdGVybmF0aW9uIG9wZXJhdG9yIFwifFwiIHJlcXVpcmVzIGEgcGF0dGVybiBvbiBi b3RoIHNpZGVzIiksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihub2RlLT5sb2NhdGlvbikpOwor CQl9CisJCXJldHVybiBub2RlOworCX0KKworCWZvcmVhY2gobGMsIG5vZGUtPmNoaWxkcmVuKQor CXsKKwkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChs Yyk7CisKKwkJaWYgKGNoaWxkLT50cmFpbGluZ19hbHQpCisJCXsKKwkJCUxpc3QJICAgKmxlZnRo YWxmID0gbGlzdF9jb3B5X2hlYWQobm9kZS0+Y2hpbGRyZW4sIGkgKyAxKTsKKwkJCUxpc3QJICAg KnJpZ2h0aGFsZiA9IGxpc3RfY29weV90YWlsKG5vZGUtPmNoaWxkcmVuLCBpICsgMSk7CisJCQlS UFJQYXR0ZXJuTm9kZSAqYWx0bjsKKwkJCVJQUlBhdHRlcm5Ob2RlICpyaWdodG5vZGU7CisKKwkJ CWNoaWxkLT50cmFpbGluZ19hbHQgPSBmYWxzZTsKKwkJCWlmIChyaWdodGhhbGYgPT0gTklMKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJCWVycm1zZygiYWx0ZXJuYXRpb24gb3BlcmF0b3IgXCJ8XCIgcmVxdWlyZXMgYSBwYXR0 ZXJuIG9uIGJvdGggc2lkZXMiKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihub2RlLT5sb2Nh dGlvbikpOworCisJCQkvKiB0aGUgcmlnaHQgYnJhbmNoIHN0YXJ0cyBhdCBpdHMgb3duIGZpcnN0 IGVsZW1lbnQsIG5vdCB0aGUgc2VxIHN0YXJ0ICovCisJCQlyaWdodG5vZGUgPSBzcGxpdFJQUlRy YWlsaW5nQWx0KG1ha2VSUFJTZXFPclNpbmdsZShyaWdodGhhbGYsCisJCQkJCQkJCQkJCQkJCQkg ICAoKFJQUlBhdHRlcm5Ob2RlICopIGxpbml0aWFsKHJpZ2h0aGFsZikpLT5sb2NhdGlvbiksCisJ CQkJCQkJCQkJCXl5c2Nhbm5lcik7CisJCQlhbHRuID0gbWFrZU5vZGUoUlBSUGF0dGVybk5vZGUp OworCQkJYWx0bi0+bm9kZVR5cGUgPSBSUFJfUEFUVEVSTl9BTFQ7CisJCQlhbHRuLT5jaGlsZHJl biA9IGxpc3RfbWFrZTIobWFrZVJQUlNlcU9yU2luZ2xlKGxlZnRoYWxmLCBub2RlLT5sb2NhdGlv biksCisJCQkJCQkJCQkJcmlnaHRub2RlKTsKKwkJCWFsdG4tPm1pbiA9IDE7CisJCQlhbHRuLT5t YXggPSAxOworCQkJYWx0bi0+cmVsdWN0YW50ID0gZmFsc2U7CisJCQlhbHRuLT5yZWx1Y3RhbnRf bG9jYXRpb24gPSAtMTsKKwkJCWFsdG4tPmxvY2F0aW9uID0gbm9kZS0+bG9jYXRpb247CisJCQly ZXR1cm4gYWx0bjsKKwkJfQorCQlpKys7CisJfQorCXJldHVybiBub2RlOworfQorCiAvKiBwYXJz ZXJfaW5pdCgpCiAgKiBJbml0aWFsaXplIHRvIHBhcnNlIG9uZSBxdWVyeSBzdHJpbmcKICAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IGM5NDY5YjU2YjdiLi40ZTFkMjY1MGNmNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYwpAQCAtMjEzLDYgKzIxMywxMiBAQCB2YWxpZGF0ZVJQUlBhdHRlcm5W YXJDb3VudChQYXJzZVN0YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpub2RlLAogCS8qIFBh dHRlcm4gbm9kZSBtdXN0IGV4aXN0IC0gcGFyc2VyIGFsd2F5cyBwcm92aWRlcyBub24tTlVMTCBy b290ICovCiAJQXNzZXJ0KG5vZGUgIT0gTlVMTCk7CiAKKwkvKgorCSAqIHRyYWlsaW5nX2FsdCBp cyBhIHRyYW5zaWVudCBncmFtbWFyIGZsYWc7IHNwbGl0UlBSVHJhaWxpbmdBbHQgbXVzdCBoYXZl CisJICogY2xlYXJlZCBpdCBvbiBldmVyeSBub2RlIGJlZm9yZSB0aGUgcGF0dGVybiByZWFjaGVz IHBhcnNlIGFuYWx5c2lzLgorCSAqLworCUFzc2VydCghbm9kZS0+dHJhaWxpbmdfYWx0KTsKKwog CWNoZWNrX3N0YWNrX2RlcHRoKCk7CiAKIAlzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IDUyMDAxODJhYTQ2Li5lMzcxZjA0YTQwMyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNjMyLDYgKzYzMiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBSUFJQYXR0ZXJu Tm9kZQogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xICovCiAJ Y2hhcgkgICAqdmFyTmFtZTsJCS8qIFZBUjogdmFyaWFibGUgbmFtZSAqLwogCUxpc3QJICAgKmNo aWxkcmVuOwkJLyogU0VRLCBBTFQsIEdST1VQOiBjaGlsZCBub2RlcyAqLworCisJLyoKKwkgKiBU cmFuc2llbnQgcGFyc2UgZmxhZywgY2xlYXJlZCBieSBzcGxpdFJQUlRyYWlsaW5nQWx0IGJlZm9y ZSB0aGUgdHJlZSBpcworCSAqIGZpbmFsaXplZDogYSBnbHVlZCBxdWFudGlmaWVyIHN1Y2ggYXMg Iip8IiBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorCSAqIHRoZSBhbHRlcm5hdGlvbiBvcGVy YXRvciAnfCcuICBJdCBpcyBhbHdheXMgZmFsc2UgaW4gYSBmaW5hbGl6ZWQgdHJlZSwKKwkgKiBz byBxdWVyeV9qdW1ibGVfaWdub3JlIGtlZXBzIGl0IG9mZiB0aGUgcGdfc3RhdF9zdGF0ZW1lbnRz IHF1ZXJ5aWQuCisJICovCisJYm9vbAkJdHJhaWxpbmdfYWx0IHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKIH0gUlBSUGF0dGVybk5vZGU7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IGM1MGM3YTVmNmE4Li4xZmNiMmNlMjJmMCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTEzLDYgKzEzLDcgQEAKIC0tICAg TmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMKIC0tICAgU0tJUCBUTyAvIElOSVRJQUwgVGVzdHMK IC0tICAgU2VyaWFsaXphdGlvbi9EZXNlcmlhbGl6YXRpb24gVGVzdHMgKG9iamVjdHMga2VwdCBm b3IgcGdfdXBncmFkZS9wZ19kdW1wKQorLS0gICBHbHVlZCBRdWFudGlmaWVyIC8gQWx0ZXJuYXRp b24gVGVzdHMKIC0tICAgRXJyb3IgQ2FzZXMgVGVzdHMKIC0tICAgV2luZG93IERlZHVwbGljYXRp b24gVGVzdHMKIC0tCkBAIC0zMDgzLDYgKzMwODQsMjMzIEBAIFNFTEVDVCBwZ19nZXRfdmlld2Rl ZigncnByX3F1YW50X25fcGx1c192Jzo6cmVnY2xhc3MpOwogICAgYSBBUyAodmFsID4gMCkgKTsK ICgxIHJvdykKIAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBHbHVlZCBRdWFudGlmaWVyIC8gQWx0ZXJuYXRpb24gVGVz dHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorQ1JFQVRFIFRBQkxFIHJwcl9nbHVlIChpZCBJTlQsIHZhbCBJTlQpOworSU5T RVJUIElOVE8gcnByX2dsdWUgVkFMVUVTICgxLCA1KSwgKDIsIDgpLCAoMywgOSksICg0LCAtMSks ICg1LCA2KSwgKDYsIC0yKTsKKy0tIFF1YW50aWZpZXIgZ2x1ZWQgdG8gdGhlIGFsdGVybmF0aW9u IG9wZXJhdG9yICd8JyB3aXRob3V0IGEgc3BhY2UgKDAwNTkpLgorLS0gVGhlIGxleGVyIGdsdWVz IHRoZSB0cmFpbGluZyAnfCcgaW50byBvbmUgT3AgdG9rZW47IHRoZSBncmFtbWFyIHJlYXR0YWNo ZXMgaXQKKy0tIGFzIHRoZSBsb3dlc3QtcHJlY2VkZW5jZSBhbHRlcm5hdGlvbiBvbmNlIHRoZSBz dXJyb3VuZGluZyBzZXF1ZW5jZSBpcyBidWlsdC4KKy0tIERlcGFyc2UgaXMgY2Fub25pY2FsLCBz byB0aGUgZ2x1ZWQsIHNwYWNlZCwgYW5kIG1peGVkLXNwYWNpbmcgZm9ybXMgYWxsCistLSByZWR1 Y2UgdG8gdGhlIHNhbWUgUEFUVEVSTiAtLSBvbmUgZGVwYXJzZSBwZXIgc2hhcGUgcHJvdmVzIHRo ZSBwYXJzZSB0cmVlLgorLS0gT3AtY2hhciBxdWFudGlmaWVycyAoKiwgKywgPywgKj8sICs/LCA/ PykgZ2x1ZWQgdG8gJ3wnLgorQ1JFQVRFIFZJRVcgcnByX2RwX29wIEFTIFNFTEVDVAorICAgIGNv dW50KCopIE9WRVIgdzEgQVMgdzEsIGNvdW50KCopIE9WRVIgdzIgQVMgdzIsIGNvdW50KCopIE9W RVIgdzMgQVMgdzMsCisgICAgY291bnQoKikgT1ZFUiB3NCBBUyB3NCwgY291bnQoKikgT1ZFUiB3 NSBBUyB3NSwgY291bnQoKikgT1ZFUiB3NiBBUyB3NgorRlJPTSBycHJfZ2x1ZQorV0lORE9XIHcx IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcgUEFUVEVSTiAoQSp8QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0g MCksCisgICAgICAgdzIgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBK3xCKSBERUZJTkUgQSBBUyB2YWwgPiAw LCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3MyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEE/fEIpIERFRklO RSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAgICAgIHc0IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVS TiAoQSo/fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAgICAgIHc1 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcgUEFUVEVSTiAoQSs/fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9 IDApLAorICAgICAgIHc2IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQT8/fEIpIERFRklORSBBIEFTIHZhbCA+ IDAsIEIgQVMgdmFsIDw9IDApOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZHBfb3AnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CisgICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICBQQVRURVJOIChhKiB8IGIpIAorICAgUEFUVEVSTiAoYSsgfCBiKSAKKyAgIFBB VFRFUk4gKGE/IHwgYikgCisgICBQQVRURVJOIChhKj8gfCBiKSAKKyAgIFBBVFRFUk4gKGErPyB8 IGIpIAorICAgUEFUVEVSTiAoYT8/IHwgYikgCisoNiByb3dzKQorCitEUk9QIFZJRVcgcnByX2Rw X29wOworLS0gU3BhY2VkIHJlZmVyZW5jZTogdGhlIGZ1bGx5LXNwYWNlZCBjYW5vbmljYWwgZm9y bXMuICBJZGVudGljYWwgZGVwYXJzZSB0byB0aGUKKy0tIGdsdWVkIHJwcl9kcF9vcCB3MS93NCBh Ym92ZSBjb21wbGV0ZXMgdGhlIGdsdWVkID0gc3BhY2VkID0gbWl4ZWQgZXF1aXZhbGVuY2UuCitD UkVBVEUgVklFVyBycHJfZHBfc3BjIEFTIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcxIEFTIHcxLCBj b3VudCgqKSBPVkVSIHcyIEFTIHcyCitGUk9NIHJwcl9nbHVlCitXSU5ET1cgdzEgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQ QVRURVJOIChBKiB8IEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAg ICAgIHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSo/IHwgQikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBB UyB2YWwgPD0gMCk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9kcF9zcGMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CisgICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICBQQVRURVJOIChhKiB8IGIpIAorICAgUEFUVEVSTiAoYSo/IHwgYikgCisoMiByb3dzKQor CitEUk9QIFZJRVcgcnByX2RwX3NwYzsKKy0tIFJhbmdlIHF1YW50aWZpZXJzIGdsdWVkIHRvICd8 Jzogbm9uLXJlbHVjdGFudCB7bn18ICh9ICsgY2hhciAnfCcpIGFuZAorLS0gcmVsdWN0YW50IHtu fT98ICh9ICsgT3AgIj98IikuCitDUkVBVEUgVklFVyBycHJfZHBfcm5nIEFTIFNFTEVDVAorICAg IGNvdW50KCopIE9WRVIgdzEgQVMgdzEsIGNvdW50KCopIE9WRVIgdzIgQVMgdzIsIGNvdW50KCop IE9WRVIgdzMgQVMgdzMsIGNvdW50KCopIE9WRVIgdzQgQVMgdzQsCisgICAgY291bnQoKikgT1ZF UiB3NSBBUyB3NSwgY291bnQoKikgT1ZFUiB3NiBBUyB3NiwgY291bnQoKikgT1ZFUiB3NyBBUyB3 NywgY291bnQoKikgT1ZFUiB3OCBBUyB3OAorRlJPTSBycHJfZ2x1ZQorV0lORE9XIHcxIEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcgUEFUVEVSTiAoQXsyfXxCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwK KyAgICAgICB3MiBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mix9fEIpIERFRklORSBBIEFTIHZhbCA+IDAs IEIgQVMgdmFsIDw9IDApLAorICAgICAgIHczIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQXssM318QikgREVG SU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAgICAgdzQgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRU RVJOIChBezIsM318QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAg ICAgdzUgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORyBQQVRURVJOIChBezJ9P3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFT IHZhbCA8PSAwKSwKKyAgICAgICB3NiBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mix9P3xCKSBERUZJTkUg QSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3NyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4g KEF7LDN9P3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3 OCBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HIFBBVFRFUk4gKEF7MiwzfT98QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2 YWwgPD0gMCk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9kcF9ybmcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgIFBBVFRFUk4gKGF7Mn0gfCBiKSAKKyAgIFBBVFRFUk4gKGF7Mix9IHwgYikgCisg ICBQQVRURVJOIChhezAsM30gfCBiKSAKKyAgIFBBVFRFUk4gKGF7MiwzfSB8IGIpIAorICAgUEFU VEVSTiAoYXsyfT8gfCBiKSAKKyAgIFBBVFRFUk4gKGF7Mix9PyB8IGIpIAorICAgUEFUVEVSTiAo YXswLDN9PyB8IGIpIAorICAgUEFUVEVSTiAoYXsyLDN9PyB8IGIpIAorKDggcm93cykKKworRFJP UCBWSUVXIHJwcl9kcF9ybmc7CistLSBNaXhlZCBzcGFjaW5nOiBhIHNwYWNlIGluc2lkZSB0aGUg cXVhbnRpZmllciB3aXRoICd8JyBzdGlsbCBnbHVlZC4KKy0tICJBKiA/fEIiID0gJyonICsgT3Ai P3wiID0gcmVsdWN0YW50ICJBKj8iIHBsdXMgYWx0ZXJuYXRpb24uCitDUkVBVEUgVklFVyBycHJf ZHBfbWl4IEFTIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcxIEFTIHcxLCBjb3VudCgqKSBPVkVSIHcy IEFTIHcyLCBjb3VudCgqKSBPVkVSIHczIEFTIHczCitGUk9NIHJwcl9nbHVlCitXSU5ET1cgdzEg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORyBQQVRURVJOIChBKiA/fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9 IDApLAorICAgICAgIHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSsgP3xCKSBERUZJTkUgQSBBUyB2YWwg PiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3MyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEE/ID98Qikg REVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9kcF9taXgnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICBsaW5lICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKj8gfCBiKSAKKyAgIFBBVFRF Uk4gKGErPyB8IGIpIAorICAgUEFUVEVSTiAoYT8/IHwgYikgCisoMyByb3dzKQorCitEUk9QIFZJ RVcgcnByX2RwX21peDsKKy0tIFN0cnVjdHVyZTogcHJlY2VkZW5jZSAofCBpcyBsb3dlc3QsIHNv IGl0cyByaWdodCBvcGVyYW5kIGlzIHRoZSB3aG9sZQorLS0gZm9sbG93aW5nIHNlcXVlbmNlKSwg Y2hhaW5pbmcsIGNvbmNhdGVuYXRpb24sIGFuZCBncm91cGluZy4KK0NSRUFURSBWSUVXIHJwcl9k cF9zdHJ1Y3QgQVMgU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiB3MSBBUyB3MSwgY291bnQoKikg T1ZFUiB3MiBBUyB3MiwgY291bnQoKikgT1ZFUiB3MyBBUyB3MywKKyAgICBjb3VudCgqKSBPVkVS IHc0IEFTIHc0LCBjb3VudCgqKSBPVkVSIHc1IEFTIHc1LCBjb3VudCgqKSBPVkVSIHc2IEFTIHc2 CitGUk9NIHJwcl9nbHVlCitXSU5ET1cgdzEgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKnxCIEMpIERFRklO RSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDAsIEMgQVMgdmFsIDwgMTAwKSwKKyAgICAgICB3 MiBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HIFBBVFRFUk4gKEEqfEIqfEMpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFs IDw9IDAsIEMgQVMgdmFsIDwgMTAwKSwKKyAgICAgICB3MyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEgQip8 QyBEKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwLCBDIEFTIHZhbCA8IDEwMCwg RCBBUyB2YWwgPiA1KSwKKyAgICAgICB3NCBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKChBKnxCKSkgREVGSU5F IEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAgICAgdzUgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJO IChBKnwoQnxDKSkgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCwgQyBBUyB2YWwg PCAxMDApLAorICAgICAgIHc2IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoKEEqfEIpKykgREVGSU5FIEEgQVMg dmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9kcF9zdHJ1Y3QnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSogfCBiIGMpIAorICAgUEFU VEVSTiAoYSogfCBiKiB8IGMpIAorICAgUEFUVEVSTiAoYSBiKiB8IGMgZCkgCisgICBQQVRURVJO ICgoYSogfCBiKSkgCisgICBQQVRURVJOIChhKiB8IChiIHwgYykpIAorICAgUEFUVEVSTiAoKGEq IHwgYikrKSAKKyg2IHJvd3MpCisKK0RST1AgVklFVyBycHJfZHBfc3RydWN0OworLS0gRXhlY3V0 aW9uIHNlbWFudGljcyAoZGVwYXJzZSBjYW5ub3Qgc2hvdyByZWx1Y3RhbnQgc2hvcnRlc3QtbWF0 Y2gpLiAgVGhlCistLSBycHJfZ2x1ZSByb3dzIC0tIGFuIEEtcnVuIGZvbGxvd2VkIGJ5IEIgcm93 cyAtLSBtYWtlIHRoZSAnfEInIGFsdGVybmF0aXZlCistLSByZWFjaGFibGU6IHdpdGggIioiIHRo ZSBncmVlZHkgZm9ybSBtYXRjaGVzIHRoZSB3aG9sZSBydW4gd2hpbGUgdGhlCistLSByZWx1Y3Rh bnQgZm9ybSBtYXRjaGVzIGVtcHR5OyB3aXRoICIrIiB0aGUgZ3JlZWR5IGZvcm0gbWF0Y2hlcyB0 aGUgcnVuIGFuZAorLS0gdGhlIHJlbHVjdGFudCBmb3JtIG1hdGNoZXMgb25lIHJvdywgYW5kIG9u IGEgQiByb3cgKHdoZXJlICJBKyIgZmFpbHMpIHRoZSBCCistLSBhbHRlcm5hdGl2ZSBmaXJlcy4K K1NFTEVDVCBpZCwgdmFsLAorICAgICAgIGNvdW50KCopIE9WRVIgZ3MgQVMgZ3N0YXIsIGNvdW50 KCopIE9WRVIgcnMgQVMgcnN0YXIsCisgICAgICAgY291bnQoKikgT1ZFUiBncCBBUyBncGx1cywg Y291bnQoKikgT1ZFUiBycCBBUyBycGx1cworRlJPTSBycHJfZ2x1ZQorV0lORE9XIGdzIEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcgUEFUVEVSTiAoQSp8QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisg ICAgICAgcnMgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKj98QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBB UyB2YWwgPD0gMCksCisgICAgICAgZ3AgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBK3xCKSBERUZJTkUgQSBB UyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICBycCBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEr P3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKQorT1JERVIgQlkgaWQ7Cisg aWQgfCB2YWwgfCBnc3RhciB8IHJzdGFyIHwgZ3BsdXMgfCBycGx1cyAKKy0tLS0rLS0tLS0rLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorICAxIHwgICA1IHwgICAgIDMgfCAgICAgMCB8 ICAgICAzIHwgICAgIDEKKyAgMiB8ICAgOCB8ICAgICAwIHwgICAgIDAgfCAgICAgMCB8ICAgICAx CisgIDMgfCAgIDkgfCAgICAgMCB8ICAgICAwIHwgICAgIDAgfCAgICAgMQorICA0IHwgIC0xIHwg ICAgIDEgfCAgICAgMSB8ICAgICAxIHwgICAgIDEKKyAgNSB8ICAgNiB8ICAgICAxIHwgICAgIDAg fCAgICAgMSB8ICAgICAxCisgIDYgfCAgLTIgfCAgICAgMSB8ICAgICAxIHwgICAgIDEgfCAgICAg MQorKDYgcm93cykKKworLS0gUGF0dGVybnMgdGhhdCBtdXN0IHN0YXkgcmVqZWN0ZWQuICAiJiIg aXMgYW4gaW52YWxpZCBvcDsgYSAnfCcgd2l0aCBhbiBlbXB0eQorLS0gc2lkZSAobGVhZGluZywg dHJhaWxpbmcsIGRvdWJsZWQsIG9yIGFsb25lIGluIGEgZ3JvdXApIGhhcyBubyBvcGVyYW5kOyAi fHwiCistLSBhbmQgIip8fCIgYXJlIGRvdWJsZWQgcGlwZXM7ICJBKiAqfEIiLyJBKiAqP3xCIi8i QXsyfSo/fEIiIGFyZSBkb3VibGVkCistLSBxdWFudGlmaWVycy4KK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEmQikgREVGSU5F IEEgQVMgdmFsID4gMCk7CitFUlJPUjogIHVuc3VwcG9ydGVkIHF1YW50aWZpZXIgIiYiCitMSU5F IDE6IC4uLkVFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChB JkIpIERFRklORS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBWYWxpZCBxdWFudGlmaWVycyBhcmU6ICosICss ID8sICo/LCArPywgPz8sIHtufSwge24sfSwgeyxtfSwge24sbX0gYW5kIHRoZWlyIHJlbHVjdGFu dCB2ZXJzaW9ucy4KK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HIFBBVFRFUk4gKEEqfCkgREVGSU5FIEEgQVMgdmFsID4gMCk7CitFUlJPUjogIGFs dGVybmF0aW9uIG9wZXJhdG9yICJ8IiByZXF1aXJlcyBhIHBhdHRlcm4gb24gYm90aCBzaWRlcwor TElORSAxOiAuLi5XRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRF Uk4gKEEqfCkgREVGSU4uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnBy X2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKnwgfEIpIERFRklORSBBIEFTIHZhbCA+ IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6ICBhbHRlcm5hdGlvbiBvcGVyYXRvciAifCIgcmVx dWlyZXMgYSBwYXR0ZXJuIG9uIGJvdGggc2lkZXMKK0xJTkUgMTogLi4uV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKnwgfEIpIERFLi4uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor U0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFU VEVSTiAoQSp8fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6 ICB1bnN1cHBvcnRlZCBxdWFudGlmaWVyICIqfHwiCitMSU5FIDE6IC4uLkVFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKnx8QikgREVGSS4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K0hJTlQ6ICBWYWxpZCBxdWFudGlmaWVycyBhcmU6ICosICssID8sICo/LCArPywgPz8sIHtufSwg e24sfSwgeyxtfSwge24sbX0gYW5kIHRoZWlyIHJlbHVjdGFudCB2ZXJzaW9ucy4KK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF8 fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6ICB1bnN1cHBv cnRlZCBxdWFudGlmaWVyICJ8fCIKK0xJTkUgMTogLi4uRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF8fEIpIERFRklOLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFZh bGlkIHF1YW50aWZpZXJzIGFyZTogKiwgKywgPywgKj8sICs/LCA/Pywge259LCB7bix9LCB7LG19 LCB7bixtfSBhbmQgdGhlaXIgcmVsdWN0YW50IHZlcnNpb25zLgorU0VMRUNUIGNvdW50KCopIE9W RVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSp8QnwpIERFRklO RSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQg b3IgbmVhciAiKSIKK0xJTkUgMTogLi4uQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcgUEFUVEVSTiAoQSp8QnwpIERFRklORSBBLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGNvdW50KCopIE9W RVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAofEEpIERFRklORSBB IEFTIHZhbCA+IDApOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAifCIKK0xJTkUg MTogLi4uV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOICh8 QSkgREVGSU5FLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9nbHVl IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoKEEqfCkpIERFRklORSBBIEFTIHZhbCA+IDApOwor RVJST1I6ICBhbHRlcm5hdGlvbiBvcGVyYXRvciAifCIgcmVxdWlyZXMgYSBwYXR0ZXJuIG9uIGJv dGggc2lkZXMKK0xJTkUgMTogLi4uRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HIFBBVFRFUk4gKChBKnwpKSBERUZJLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGNvdW50KCopIE9WRVIg dyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSogKnxCKSBERUZJTkUg QSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK0VSUk9SOiAgaW52YWxpZCB0b2tlbiBhZnRl ciAiKiIgcXVhbnRpZmllcgorTElORSAxOiAuLi5OIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HIFBBVFRFUk4gKEEqICp8QikgREVGSU4uLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRGlkIHlv dSBtZWFuICIqPyIgZm9yIHJlbHVjdGFudCBxdWFudGlmaWVyPworU0VMRUNUIGNvdW50KCopIE9W RVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSogKj98QikgREVG SU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitFUlJPUjogIGludmFsaWQgdG9rZW4g YWZ0ZXIgIioiIHF1YW50aWZpZXIKK0xJTkUgMTogLi4uTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORyBQQVRURVJOIChBKiAqP3xCKSBERUZJLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIERp ZCB5b3UgbWVhbiAiKj8iIGZvciByZWx1Y3RhbnQgcXVhbnRpZmllcj8KK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEE/ICo/fEIp IERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6ICBpbnZhbGlkIHF1 YW50aWZpZXIgY29tYmluYXRpb24KK0xJTkUgMTogLi4uRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEE/ICo/fEIpIERFLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIERp ZCB5b3UgbWVhbiAiPz8iIGZvciByZWx1Y3RhbnQgcXVhbnRpZmllcj8KK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mn0qP3xC KSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK0VSUk9SOiAgaW52YWxpZCB0 b2tlbiBhZnRlciByYW5nZSBxdWFudGlmaWVyCitMSU5FIDE6IC4uLiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBezJ9Kj98QikgREVGSS4uLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJ TlQ6ICBPbmx5ICI/IiBpcyBhbGxvd2VkIGFmdGVyIHtufSB0byBtYWtlIGl0IHJlbHVjdGFudC4K K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBB VFRFUk4gKEF7Mn0gKj98QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitF UlJPUjogIGludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllcgorTElORSAxOiAuLi5D VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBezJ9ICo/fEIpIERF RkkuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgT25seSAiPyIgaXMgYWxsb3dlZCBhZnRlciB7bn0gdG8gbWFr ZSBpdCByZWx1Y3RhbnQuCistLSBEb3VibGVkIG9wLWNoYXIgcXVhbnRpZmllcnMgbGV4IGFzIG9u ZSBPcCB0b2tlbiBhbmQgYXJlIHVuc3VwcG9ydGVkLCB3aGV0aGVyCistLSBnbHVlZCB0byAnfCcg KCIqKnwiLCAiKit8IiwgIj8/P3wiKSBvciBvbiB0aGVpciBvd24gKCIqKiIpLgorU0VMRUNUIGNv dW50KCopIE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSoq fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6ICB1bnN1cHBv cnRlZCBxdWFudGlmaWVyICIqKnwiCitMSU5FIDE6IC4uLkVFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKip8QikgREVGSS4uLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBW YWxpZCBxdWFudGlmaWVycyBhcmU6ICosICssID8sICo/LCArPywgPz8sIHtufSwge24sfSwgeyxt fSwge24sbX0gYW5kIHRoZWlyIHJlbHVjdGFudCB2ZXJzaW9ucy4KK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEqK3xCKSBERUZJ TkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK0VSUk9SOiAgdW5zdXBwb3J0ZWQgcXVh bnRpZmllciAiKit8IgorTElORSAxOiAuLi5FRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcgUEFUVEVSTiAoQSorfEIpIERFRkkuLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgVmFsaWQgcXVh bnRpZmllcnMgYXJlOiAqLCArLCA/LCAqPywgKz8sID8/LCB7bn0sIHtuLH0sIHssbX0sIHtuLG19 IGFuZCB0aGVpciByZWx1Y3RhbnQgdmVyc2lvbnMuCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZS T00gcnByX2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBPz8/fEIpIERFRklORSBBIEFT IHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworRVJST1I6ICB1bnN1cHBvcnRlZCBxdWFudGlmaWVy ICI/Pz98IgorTElORSAxOiAuLi5FRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcgUEFUVEVSTiAoQT8/P3xCKSBERUYuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgVmFsaWQgcXVhbnRpZmll cnMgYXJlOiAqLCArLCA/LCAqPywgKz8sID8/LCB7bn0sIHtuLH0sIHssbX0sIHtuLG19IGFuZCB0 aGVpciByZWx1Y3RhbnQgdmVyc2lvbnMuCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnBy X2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKipCKSBERUZJTkUgQSBBUyB2YWwgPiAw KTsKK0VSUk9SOiAgdW5zdXBwb3J0ZWQgcXVhbnRpZmllciAiKioiCitMSU5FIDE6IC4uLkVFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKipCKSBERUZJTi4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK0hJTlQ6ICBWYWxpZCBxdWFudGlmaWVycyBhcmU6ICosICssID8sICo/LCArPywg Pz8sIHtufSwge24sfSwgeyxtfSwge24sbX0gYW5kIHRoZWlyIHJlbHVjdGFudCB2ZXJzaW9ucy4K K0RST1AgVEFCTEUgcnByX2dsdWU7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEVycm9yIENhc2VzIFRlc3RzCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRleCA3ZGZiNzJmNmJmZC4uY2M3OTg0M2Fl YjcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAgLTEzLDYgKzEzLDcgQEAKIC0tICAg TmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMKIC0tICAgU0tJUCBUTyAvIElOSVRJQUwgVGVzdHMK IC0tICAgU2VyaWFsaXphdGlvbi9EZXNlcmlhbGl6YXRpb24gVGVzdHMgKG9iamVjdHMga2VwdCBm b3IgcGdfdXBncmFkZS9wZ19kdW1wKQorLS0gICBHbHVlZCBRdWFudGlmaWVyIC8gQWx0ZXJuYXRp b24gVGVzdHMKIC0tICAgRXJyb3IgQ2FzZXMgVGVzdHMKIC0tICAgV2luZG93IERlZHVwbGljYXRp b24gVGVzdHMKIC0tCkBAIC0yMDc0LDYgKzIwNzUsMTE3IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAogICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDApOwogU0VMRUNUIHBnX2dldF92 aWV3ZGVmKCdycHJfcXVhbnRfbl9wbHVzX3YnOjpyZWdjbGFzcyk7CiAKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gR2x1 ZWQgUXVhbnRpZmllciAvIEFsdGVybmF0aW9uIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFURSBUQUJMRSBy cHJfZ2x1ZSAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9nbHVlIFZBTFVFUyAo MSwgNSksICgyLCA4KSwgKDMsIDkpLCAoNCwgLTEpLCAoNSwgNiksICg2LCAtMik7CistLSBRdWFu dGlmaWVyIGdsdWVkIHRvIHRoZSBhbHRlcm5hdGlvbiBvcGVyYXRvciAnfCcgd2l0aG91dCBhIHNw YWNlICgwMDU5KS4KKy0tIFRoZSBsZXhlciBnbHVlcyB0aGUgdHJhaWxpbmcgJ3wnIGludG8gb25l IE9wIHRva2VuOyB0aGUgZ3JhbW1hciByZWF0dGFjaGVzIGl0CistLSBhcyB0aGUgbG93ZXN0LXBy ZWNlZGVuY2UgYWx0ZXJuYXRpb24gb25jZSB0aGUgc3Vycm91bmRpbmcgc2VxdWVuY2UgaXMgYnVp bHQuCistLSBEZXBhcnNlIGlzIGNhbm9uaWNhbCwgc28gdGhlIGdsdWVkLCBzcGFjZWQsIGFuZCBt aXhlZC1zcGFjaW5nIGZvcm1zIGFsbAorLS0gcmVkdWNlIHRvIHRoZSBzYW1lIFBBVFRFUk4gLS0g b25lIGRlcGFyc2UgcGVyIHNoYXBlIHByb3ZlcyB0aGUgcGFyc2UgdHJlZS4KKworLS0gT3AtY2hh ciBxdWFudGlmaWVycyAoKiwgKywgPywgKj8sICs/LCA/PykgZ2x1ZWQgdG8gJ3wnLgorQ1JFQVRF IFZJRVcgcnByX2RwX29wIEFTIFNFTEVDVAorICAgIGNvdW50KCopIE9WRVIgdzEgQVMgdzEsIGNv dW50KCopIE9WRVIgdzIgQVMgdzIsIGNvdW50KCopIE9WRVIgdzMgQVMgdzMsCisgICAgY291bnQo KikgT1ZFUiB3NCBBUyB3NCwgY291bnQoKikgT1ZFUiB3NSBBUyB3NSwgY291bnQoKikgT1ZFUiB3 NiBBUyB3NgorRlJPTSBycHJfZ2x1ZQorV0lORE9XIHcxIEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSp8Qikg REVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAgICAgdzIgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQ QVRURVJOIChBK3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAg ICB3MyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HIFBBVFRFUk4gKEE/fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFs IDw9IDApLAorICAgICAgIHc0IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSo/fEIpIERFRklORSBBIEFTIHZh bCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAgICAgIHc1IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSs/fEIp IERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAgICAgIHc2IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcg UEFUVEVSTiAoQT8/fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZHBfb3AnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitEUk9QIFZJ RVcgcnByX2RwX29wOworLS0gU3BhY2VkIHJlZmVyZW5jZTogdGhlIGZ1bGx5LXNwYWNlZCBjYW5v bmljYWwgZm9ybXMuICBJZGVudGljYWwgZGVwYXJzZSB0byB0aGUKKy0tIGdsdWVkIHJwcl9kcF9v cCB3MS93NCBhYm92ZSBjb21wbGV0ZXMgdGhlIGdsdWVkID0gc3BhY2VkID0gbWl4ZWQgZXF1aXZh bGVuY2UuCitDUkVBVEUgVklFVyBycHJfZHBfc3BjIEFTIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcx IEFTIHcxLCBjb3VudCgqKSBPVkVSIHcyIEFTIHcyCitGUk9NIHJwcl9nbHVlCitXSU5ET1cgdzEg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORyBQQVRURVJOIChBKiB8IEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9 IDApLAorICAgICAgIHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSo/IHwgQikgREVGSU5FIEEgQVMgdmFs ID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9kcF9zcGMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitEUk9QIFZJRVcgcnByX2RwX3NwYzsKKy0tIFJhbmdlIHF1YW50 aWZpZXJzIGdsdWVkIHRvICd8Jzogbm9uLXJlbHVjdGFudCB7bn18ICh9ICsgY2hhciAnfCcpIGFu ZAorLS0gcmVsdWN0YW50IHtufT98ICh9ICsgT3AgIj98IikuCitDUkVBVEUgVklFVyBycHJfZHBf cm5nIEFTIFNFTEVDVAorICAgIGNvdW50KCopIE9WRVIgdzEgQVMgdzEsIGNvdW50KCopIE9WRVIg dzIgQVMgdzIsIGNvdW50KCopIE9WRVIgdzMgQVMgdzMsIGNvdW50KCopIE9WRVIgdzQgQVMgdzQs CisgICAgY291bnQoKikgT1ZFUiB3NSBBUyB3NSwgY291bnQoKikgT1ZFUiB3NiBBUyB3NiwgY291 bnQoKikgT1ZFUiB3NyBBUyB3NywgY291bnQoKikgT1ZFUiB3OCBBUyB3OAorRlJPTSBycHJfZ2x1 ZQorV0lORE9XIHcxIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQXsyfXxCKSBERUZJTkUgQSBBUyB2YWwgPiAw LCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3MiBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mix9fEIpIERF RklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAgICAgIHczIEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFU VEVSTiAoQXssM318QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAg ICAgdzQgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORyBQQVRURVJOIChBezIsM318QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBB UyB2YWwgPD0gMCksCisgICAgICAgdzUgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBezJ9P3xCKSBERUZJTkUg QSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3NiBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4g KEF7Mix9P3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3 NyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HIFBBVFRFUk4gKEF7LDN9P3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZh bCA8PSAwKSwKKyAgICAgICB3OCBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7MiwzfT98QikgREVGSU5FIEEg QVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9kcF9ybmcnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitEUk9QIFZJRVcgcnByX2RwX3JuZzsKKy0tIE1peGVk IHNwYWNpbmc6IGEgc3BhY2UgaW5zaWRlIHRoZSBxdWFudGlmaWVyIHdpdGggJ3wnIHN0aWxsIGds dWVkLgorLS0gIkEqID98QiIgPSAnKicgKyBPcCI/fCIgPSByZWx1Y3RhbnQgIkEqPyIgcGx1cyBh bHRlcm5hdGlvbi4KK0NSRUFURSBWSUVXIHJwcl9kcF9taXggQVMgU0VMRUNUIGNvdW50KCopIE9W RVIgdzEgQVMgdzEsIGNvdW50KCopIE9WRVIgdzIgQVMgdzIsIGNvdW50KCopIE9WRVIgdzMgQVMg dzMKK0ZST00gcnByX2dsdWUKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEqID98QikgREVG SU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAgICAgdzIgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRU RVJOIChBKyA/fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApLAorICAgICAg IHczIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcgUEFUVEVSTiAoQT8gP3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZh bCA8PSAwKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2RwX21peCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK0RST1AgVklFVyBycHJfZHBfbWl4OworLS0gU3RydWN0dXJlOiBwcmVjZWRlbmNlICh8 IGlzIGxvd2VzdCwgc28gaXRzIHJpZ2h0IG9wZXJhbmQgaXMgdGhlIHdob2xlCistLSBmb2xsb3dp bmcgc2VxdWVuY2UpLCBjaGFpbmluZywgY29uY2F0ZW5hdGlvbiwgYW5kIGdyb3VwaW5nLgorQ1JF QVRFIFZJRVcgcnByX2RwX3N0cnVjdCBBUyBTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIHcxIEFT IHcxLCBjb3VudCgqKSBPVkVSIHcyIEFTIHcyLCBjb3VudCgqKSBPVkVSIHczIEFTIHczLAorICAg IGNvdW50KCopIE9WRVIgdzQgQVMgdzQsIGNvdW50KCopIE9WRVIgdzUgQVMgdzUsIGNvdW50KCop IE9WRVIgdzYgQVMgdzYKK0ZST00gcnByX2dsdWUKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4g KEEqfEIgQykgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCwgQyBBUyB2YWwgPCAx MDApLAorICAgICAgIHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSp8Qip8QykgREVGSU5FIEEgQVMgdmFs ID4gMCwgQiBBUyB2YWwgPD0gMCwgQyBBUyB2YWwgPCAxMDApLAorICAgICAgIHczIEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcg UEFUVEVSTiAoQSBCKnxDIEQpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDAsIEMg QVMgdmFsIDwgMTAwLCBEIEFTIHZhbCA+IDUpLAorICAgICAgIHc0IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAo KEEqfEIpKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICB3NSBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HIFBBVFRFUk4gKEEqfChCfEMpKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8 PSAwLCBDIEFTIHZhbCA8IDEwMCksCisgICAgICAgdzYgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOICgoQSp8Qikr KSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2RwX3N0cnVjdCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK0RST1AgVklFVyBycHJfZHBf c3RydWN0OworLS0gRXhlY3V0aW9uIHNlbWFudGljcyAoZGVwYXJzZSBjYW5ub3Qgc2hvdyByZWx1 Y3RhbnQgc2hvcnRlc3QtbWF0Y2gpLiAgVGhlCistLSBycHJfZ2x1ZSByb3dzIC0tIGFuIEEtcnVu IGZvbGxvd2VkIGJ5IEIgcm93cyAtLSBtYWtlIHRoZSAnfEInIGFsdGVybmF0aXZlCistLSByZWFj aGFibGU6IHdpdGggIioiIHRoZSBncmVlZHkgZm9ybSBtYXRjaGVzIHRoZSB3aG9sZSBydW4gd2hp bGUgdGhlCistLSByZWx1Y3RhbnQgZm9ybSBtYXRjaGVzIGVtcHR5OyB3aXRoICIrIiB0aGUgZ3Jl ZWR5IGZvcm0gbWF0Y2hlcyB0aGUgcnVuIGFuZAorLS0gdGhlIHJlbHVjdGFudCBmb3JtIG1hdGNo ZXMgb25lIHJvdywgYW5kIG9uIGEgQiByb3cgKHdoZXJlICJBKyIgZmFpbHMpIHRoZSBCCistLSBh bHRlcm5hdGl2ZSBmaXJlcy4KK1NFTEVDVCBpZCwgdmFsLAorICAgICAgIGNvdW50KCopIE9WRVIg Z3MgQVMgZ3N0YXIsIGNvdW50KCopIE9WRVIgcnMgQVMgcnN0YXIsCisgICAgICAgY291bnQoKikg T1ZFUiBncCBBUyBncGx1cywgY291bnQoKikgT1ZFUiBycCBBUyBycGx1cworRlJPTSBycHJfZ2x1 ZQorV0lORE9XIGdzIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSp8QikgREVGSU5FIEEgQVMgdmFsID4gMCwg QiBBUyB2YWwgPD0gMCksCisgICAgICAgcnMgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKj98QikgREVGSU5F IEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCksCisgICAgICAgZ3AgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJO IChBK3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKSwKKyAgICAgICBycCBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HIFBBVFRFUk4gKEErP3xCKSBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAw KQorT1JERVIgQlkgaWQ7CistLSBQYXR0ZXJucyB0aGF0IG11c3Qgc3RheSByZWplY3RlZC4gICIm IiBpcyBhbiBpbnZhbGlkIG9wOyBhICd8JyB3aXRoIGFuIGVtcHR5CistLSBzaWRlIChsZWFkaW5n LCB0cmFpbGluZywgZG91YmxlZCwgb3IgYWxvbmUgaW4gYSBncm91cCkgaGFzIG5vIG9wZXJhbmQ7 ICJ8fCIKKy0tIGFuZCAiKnx8IiBhcmUgZG91YmxlZCBwaXBlczsgIkEqICp8QiIvIkEqICo/fEIi LyJBezJ9Kj98QiIgYXJlIGRvdWJsZWQKKy0tIHF1YW50aWZpZXJzLgorU0VMRUNUIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSZCKSBERUZJ TkUgQSBBUyB2YWwgPiAwKTsKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfZ2x1ZSBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEqfCkgREVGSU5FIEEgQVMgdmFsID4gMCk7CitTRUxF Q1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJO IChBKnwgfEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworU0VMRUNUIGNv dW50KCopIE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSp8 fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworU0VMRUNUIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQXx8QikgREVG SU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 IEZST00gcnByX2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKnxCfCkgREVGSU5FIEEg QVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00g cnByX2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOICh8QSkgREVGSU5FIEEgQVMgdmFsID4g MCk7CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2dsdWUgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RyBQQVRURVJOICgoQSp8KSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CitTRUxFQ1QgY291bnQoKikg T1ZFUiB3IEZST00gcnByX2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBKiAqfEIpIERF RklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworU0VMRUNUIGNvdW50KCopIE9WRVIg dyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSogKj98QikgREVGSU5F IEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPD0gMCk7CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZS T00gcnByX2dsdWUgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyBQQVRURVJOIChBPyAqP3xCKSBERUZJTkUgQSBB UyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBy cHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mn0qP3xCKSBERUZJTkUgQSBBUyB2 YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJf Z2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mn0gKj98QikgREVGSU5FIEEgQVMgdmFs ID4gMCwgQiBBUyB2YWwgPD0gMCk7CistLSBEb3VibGVkIG9wLWNoYXIgcXVhbnRpZmllcnMgbGV4 IGFzIG9uZSBPcCB0b2tlbiBhbmQgYXJlIHVuc3VwcG9ydGVkLCB3aGV0aGVyCistLSBnbHVlZCB0 byAnfCcgKCIqKnwiLCAiKit8IiwgIj8/P3wiKSBvciBvbiB0aGVpciBvd24gKCIqKiIpLgorU0VM RUNUIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVS TiAoQSoqfEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworU0VMRUNUIGNv dW50KCopIE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQSor fEIpIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsIDw9IDApOworU0VMRUNUIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9nbHVlIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoQT8/P3xCKSBE RUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA8PSAwKTsKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcgRlJPTSBycHJfZ2x1ZSBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HIFBBVFRFUk4gKEEqKkIpIERFRklORSBB IEFTIHZhbCA+IDApOworRFJPUCBUQUJMRSBycHJfZ2x1ZTsKKwogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBFcnJvciBD YXNlcyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0060-Fix-outdated-function-and-file-references-in-row-.txt" Content-Disposition: attachment; filename="nocfbot-0060-Fix-outdated-function-and-file-references-in-row-.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogl59 RnJvbSAwNzExMjZhODU1OWFjZWVhOTI5OWEyODAxYTc4ZjI0MTc3NzA3MWRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTE6NDY6NTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDYwLzY4XSBG aXggb3V0ZGF0ZWQgZnVuY3Rpb24gYW5kIGZpbGUgcmVmZXJlbmNlcyBpbiByb3cKIHBhdHRlcm4g cmVjb2duaXRpb24gZG9jcwoKVHdvIGNvbW1lbnRzIGluIHJwcl9uZmEuc3FsIGF0dHJpYnV0ZWQg bmZhX2FkdmFuY2VfYmVnaW4vZW5kIHRvCm5vZGVXaW5kb3dBZ2cuYywgYnV0IGJvdGggYXJlIGRl ZmluZWQgaW4gZXhlY1JQUi5jLiAgUkVBRE1FLnJwciByZWZlcnJlZCB0byBhCm5vbmV4aXN0ZW50 IGNvbXB1dGVfbmF2X29mZnNldHM7IHRoZSBwbGFubmVyIHJvdXRpbmUgdGhhdCBjb21wdXRlcyB0 aGUgdHJpbQpvZmZzZXRzIGlzIGNvbXB1dGVfZGVmaW5lX21ldGFkYXRhIGluIGNyZWF0ZXBsYW4u Yy4gIFRoZXNlIGFyZSBjb21tZW50IGFuZApkb2N1bWVudGF0aW9uIGZpeGVzIG9ubHksIHdpdGgg bm8gYmVoYXZpb3IgY2hhbmdlOyB0aGUgcnByX25mYSBleHBlY3RlZCBvdXRwdXQKaXMgdXBkYXRl ZCB0byBtYXRjaCB0aGUgY29ycmVjdGVkIGNvbW1lbnQuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvUkVBRE1FLnJwciAgICAgICB8IDQgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfbmZhLm91dCB8IDQgKystLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwgICAg ICB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKaW5kZXggZGY1NzRhMGE2ZjQuLmMxODIyZDgyNDBi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUucnByCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIKQEAgLTY2Nyw3ICs2NjcsNyBAQCBWSS01LiBUdXBs ZXN0b3JlIE1hcmsgYW5kIFRyaW0gKG5vZGVXaW5kb3dBZ2cuYykKIAogTmF2aWdhdGlvbiBmdW5j dGlvbnMgcmVxdWlyZSBhY2Nlc3MgdG8gcGFzdCByb3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KIFRv IGFsbG93IHR1cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0aGF0IGFyZSBubyBsb25nZXIg cmVhY2hhYmxlLAotdGhlIHBsYW5uZXIgY29tcHV0ZXMgdHdvIG9mZnNldHMgKHNlZSBjb21wdXRl X25hdl9vZmZzZXRzKToKK3RoZSBwbGFubmVyIGNvbXB1dGVzIHR3byBvZmZzZXRzIChzZWUgY29t cHV0ZV9kZWZpbmVfbWV0YWRhdGEpOgogCiAgIG5hdk1heE9mZnNldCAoTmF2IE1hcmsgTG9va2Jh Y2spOgogICAgIE1heGltdW0gYmFja3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zLiAgQ29udHJp YnV0ZWQgYnkgUFJFViwKQEAgLTE0OTksNyArMTQ5OSw3IEBAIEFwcGVuZGl4IEEuIEtleSBGdW5j dGlvbiBJbmRleAogICBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyAgICBleGVjUlBSLmMgICAg ICAgICAgICAgUGFydGl0aW9uLWVuZCBmaW5hbGl6ZQogICBFeGVjUlBSUmVjb3JkQ29udGV4dFN1 Y2Nlc3MgICBleGVjUlBSLmMgICAgICAgICAgICAgU3RhdHM6IG1hdGNoIHN1Y2Nlc3MKICAgRXhl Y1JQUlJlY29yZENvbnRleHRGYWlsdXJlICAgZXhlY1JQUi5jICAgICAgICAgICAgIFN0YXRzOiBt YXRjaCBmYWlsdXJlCi0gIGNvbXB1dGVfbmF2X29mZnNldHMgICAgICAgICAgIGNyZWF0ZXBsYW4u YyAgICAgICAgICBUcmltIG9mZnNldCBjb21wdXRhdGlvbgorICBjb21wdXRlX2RlZmluZV9tZXRh ZGF0YSAgICAgICBjcmVhdGVwbGFuLmMgICAgICAgICAgVHJpbSBvZmZzZXQgY29tcHV0YXRpb24K IAogQXBwZW5kaXggQi4gRGF0YSBTdHJ1Y3R1cmUgUmVsYXRpb25zaGlwIERpYWdyYW0KID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X25mYS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IDNi OTk3NWE4M2RmLi5kNzE0NjE2OGYyYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfbmZhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEu b3V0CkBAIC0xMzU3LDcgKzEzNTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFJlbHVjdGFudCBv cHRpb25hbCBncm91cCBza2lwLXRvLUZJTgogLS0gV2hlbiBhIHJlbHVjdGFudCBvcHRpb25hbCBn cm91cCdzIHNraXAgcGF0aCByZWFjaGVzIEZJTiwgdGhlIGdyb3VwCi0tLSBlbnRyeSBwYXRoIGlz IGFiYW5kb25lZCAobm9kZVdpbmRvd0FnZy5jIG5mYV9hZHZhbmNlX2JlZ2luKS4KKy0tIGVudHJ5 IHBhdGggaXMgYWJhbmRvbmVkIChleGVjUlBSLmMgbmZhX2FkdmFuY2VfYmVnaW4pLgogLS0gUGF0 dGVybjogQyAoQSBCKT8/IC0tIGFmdGVyIEMgbWF0Y2hlcywgdGhlIHJlbHVjdGFudCBncm91cCAo QSBCKT8/CiAtLSBwcmVmZXJzIHRvIHNraXAuICBTa2lwIGdvZXMgdG8gRklOIChncm91cCBpcyBs YXN0IGVsZW1lbnQpLCBzbwogLS0gdGhlIG1hdGNoIGNvbXBsZXRlcyB3aXRoIGp1c3QgQy4KQEAg LTMzNjQsNyArMzM2NCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIE5lc3RlZCBFTkQtPkVORCBmYXN0 LWZvcndhcmQKIC0tIFdoZW4gYW4gaW5uZXIgZ3JvdXAgaGFzIGEgbnVsbGFibGUgYm9keSBhbmQg Y291bnQgPCBtaW4sIHRoZQogLS0gZmFzdC1mb3J3YXJkIHBhdGggZXhpdHMgdGhyb3VnaCB0aGUg b3V0ZXIgRU5ELCBpbmNyZW1lbnRpbmcKLS0tIHRoZSBvdXRlciBncm91cCdzIGNvdW50IChub2Rl V2luZG93QWdnLmMgbmZhX2FkdmFuY2VfZW5kKS4KKy0tIHRoZSBvdXRlciBncm91cCdzIGNvdW50 IChleGVjUlBSLmMgbmZhX2FkdmFuY2VfZW5kKS4KIC0tIFBhdHRlcm46ICgoQT8pezIsM30pezIs M30gLS0gbmVzdGVkIGdyb3VwcywgbmVpdGhlciBjb2xsYXBzZXMKIC0tIGJlY2F1c2UgdGhlIG9w dGltaXplciBjYW5ub3Qgc2FmZWx5IG11bHRpcGx5IG5vbi1leGFjdCBxdWFudGlmaWVycy4KIC0t IERhdGEgaGFzIG5vIEEgcm93cywgZm9yY2luZyBhbGwtZW1wdHkgaXRlcmF0aW9ucyB2aWEgZmFz dC1mb3J3YXJkLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAppbmRleCA2MTA3MmQxZDZmMS4uOGRh YTBhNzM3MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCkBAIC05NjgsNyArOTY4LDcgQEAg V0lORE9XIHcgQVMgKAogCiAtLSBSZWx1Y3RhbnQgb3B0aW9uYWwgZ3JvdXAgc2tpcC10by1GSU4K IC0tIFdoZW4gYSByZWx1Y3RhbnQgb3B0aW9uYWwgZ3JvdXAncyBza2lwIHBhdGggcmVhY2hlcyBG SU4sIHRoZSBncm91cAotLS0gZW50cnkgcGF0aCBpcyBhYmFuZG9uZWQgKG5vZGVXaW5kb3dBZ2cu YyBuZmFfYWR2YW5jZV9iZWdpbikuCistLSBlbnRyeSBwYXRoIGlzIGFiYW5kb25lZCAoZXhlY1JQ Ui5jIG5mYV9hZHZhbmNlX2JlZ2luKS4KIC0tIFBhdHRlcm46IEMgKEEgQik/PyAtLSBhZnRlciBD IG1hdGNoZXMsIHRoZSByZWx1Y3RhbnQgZ3JvdXAgKEEgQik/PwogLS0gcHJlZmVycyB0byBza2lw LiAgU2tpcCBnb2VzIHRvIEZJTiAoZ3JvdXAgaXMgbGFzdCBlbGVtZW50KSwgc28KIC0tIHRoZSBt YXRjaCBjb21wbGV0ZXMgd2l0aCBqdXN0IEMuCkBAIC0yNDA2LDcgKzI0MDYsNyBAQCBXSU5ET1cg dyBBUyAoCiAtLSBOZXN0ZWQgRU5ELT5FTkQgZmFzdC1mb3J3YXJkCiAtLSBXaGVuIGFuIGlubmVy IGdyb3VwIGhhcyBhIG51bGxhYmxlIGJvZHkgYW5kIGNvdW50IDwgbWluLCB0aGUKIC0tIGZhc3Qt Zm9yd2FyZCBwYXRoIGV4aXRzIHRocm91Z2ggdGhlIG91dGVyIEVORCwgaW5jcmVtZW50aW5nCi0t LSB0aGUgb3V0ZXIgZ3JvdXAncyBjb3VudCAobm9kZVdpbmRvd0FnZy5jIG5mYV9hZHZhbmNlX2Vu ZCkuCistLSB0aGUgb3V0ZXIgZ3JvdXAncyBjb3VudCAoZXhlY1JQUi5jIG5mYV9hZHZhbmNlX2Vu ZCkuCiAtLSBQYXR0ZXJuOiAoKEE/KXsyLDN9KXsyLDN9IC0tIG5lc3RlZCBncm91cHMsIG5laXRo ZXIgY29sbGFwc2VzCiAtLSBiZWNhdXNlIHRoZSBvcHRpbWl6ZXIgY2Fubm90IHNhZmVseSBtdWx0 aXBseSBub24tZXhhY3QgcXVhbnRpZmllcnMuCiAtLSBEYXRhIGhhcyBubyBBIHJvd3MsIGZvcmNp bmcgYWxsLWVtcHR5IGl0ZXJhdGlvbnMgdmlhIGZhc3QtZm9yd2FyZC4KLS0gCjIuNTAuMSAoQXBw bGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0061-Assert-that-row-pattern-nesting-depth-never-alias.txt" Content-Disposition: attachment; filename="nocfbot-0061-Assert-that-row-pattern-nesting-depth-never-alias.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogo60 RnJvbSA4ZDQzZDEwMDMwYTZmYWQ5ODllMmVkOGJiZGUxZDZiMDM2ZDM0OGNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTI6MjI6MjEgKzA5MDAKU3ViamVjdDogW1BBVENIIDYxLzY4XSBB c3NlcnQgdGhhdCByb3cgcGF0dGVybiBuZXN0aW5nIGRlcHRoIG5ldmVyIGFsaWFzZXMgdGhlCiBS UFJfREVQVEhfTk9ORSBzZW50aW5lbAoKYWxsb2NhdGVSUFJQYXR0ZXJuIHN0b3JlcyBtYXhEZXB0 aCArIDEsIGFuZCBzY2FuUlBSUGF0dGVyblJlY3Vyc2l2ZSByZWplY3RzCm5lc3RpbmcgYXQgb3Ig YWJvdmUgUlBSX0RFUFRIX01BWCwgc28gdGhlIHN0b3JlZCB2YWx1ZSBzdGF5cyA8PSBSUFJfREVQ VEhfTUFYCmFuZCBuZXZlciByZWFjaGVzIHRoZSBSUFJfREVQVEhfTk9ORSBzZW50aW5lbCAoVUlO VDhfTUFYKS4gIEFzc2VydCB0aGF0IGJvdW5kCnNvIHJhaXNpbmcgUlBSX0RFUFRIX01BWCBvciB0 aGUgZGVwdGggbGltaXQgdHJpcHMgaW1tZWRpYXRlbHkuICBBbHNvIG5vdGUgaW4KY29tcHV0ZV9k ZWZpbmVfbWV0YWRhdGEgdGhhdCBpdHMgZGVmYXVsdCBvZmZzZXQgKDEpIHNlcnZlcyBvbmx5IFBS RVY7IHRoZQpndWFyZGVkIExBU1Qgc3ViLWNhc2UgbmV2ZXIgdXNlcyBpdC4KLS0tCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgfCAzICsrKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcnByLmMgICAgICAgIHwgMyArKysKIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRl cGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IGM4 ZWNhZWVhN2NmLi5jNWIwODU3ZmYyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0 ZXBsYW4uYwpAQCAtMjU4MSw2ICsyNTgxLDkgQEAgdmlzaXRfbmF2X3BsYW4oTmF2VHJhdmVyc2Fs ICp0LCBSUFJOYXZFeHByICpuYXYpCiAJCXsKIAkJCWludDY0CQlvZmZzZXQ7CiAKKwkJCS8qCisJ CQkgKiBkZWZhdWx0IDEgaXMgZm9yIFBSRVY7IHRoZSBndWFyZGVkIExBU1Qgc3ViLWNhc2UgbmV2 ZXIgdXNlcyBpdC4KKwkJCSAqLwogCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zm c2V0X2FyZywgMSwgJm9mZnNldCkpCiAJCQkJY29udGV4dC0+bWF4T2Zmc2V0ID0gTWF4KGNvbnRl eHQtPm1heE9mZnNldCwgb2Zmc2V0KTsKIAkJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMK aW5kZXggNDMxMTQwODhjM2YuLmU3Mjc2YzQyY2E2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIu YwpAQCAtMTE1Nyw2ICsxMTU3LDkgQEAgYWxsb2NhdGVSUFJQYXR0ZXJuKGludCBudW1WYXJzLCBp bnQgbnVtRWxlbWVudHMsIFJQUkRlcHRoIG1heERlcHRoLAogCiAJcmVzdWx0ID0gbWFrZU5vZGUo UlBSUGF0dGVybik7CiAJcmVzdWx0LT5udW1WYXJzID0gbnVtVmFyczsKKworCS8qIGRlcHRoIDwg UlBSX0RFUFRIX01BWCwgc28gbWF4RGVwdGgrMSBuZXZlciBhbGlhc2VzIFJQUl9ERVBUSF9OT05F LiAqLworCUFzc2VydChtYXhEZXB0aCA8IFJQUl9ERVBUSF9NQVgpOwogCXJlc3VsdC0+bWF4RGVw dGggPSBtYXhEZXB0aCArIDE7CS8qICsxOiBkZXB0aCBpcyAwLWJhc2VkICovCiAJcmVzdWx0LT5u dW1FbGVtZW50cyA9IG51bUVsZW1lbnRzOwogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0062-Invalidate-the-row-pattern-nav-slot-cache-when-a-.txt" Content-Disposition: attachment; filename="nocfbot-0062-Invalidate-the-row-pattern-nav-slot-cache-when-a-.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogr61 RnJvbSBmNTViZjE5OTg0NmJiOTRlNDJjYjMyMzhhMmRjOTJjY2ZmMWM1MGZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTI6NDQ6NDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDYyLzY4XSBJ bnZhbGlkYXRlIHRoZSByb3cgcGF0dGVybiBuYXYgc2xvdCBjYWNoZSB3aGVuIGEgd2luZG93CiBw YXJ0aXRpb24gY2hhbmdlcwoKcmVsZWFzZV9wYXJ0aXRpb24gY2xlYXJzIHRoZSBwZXItcGFydGl0 aW9uIHR1cGxlc3RvcmUsIGxlYXZpbmcgdGhlIGNhY2hlZApuYXYgc2xvdCBwb3NpdGlvbiAod2hp Y2ggaXMgcGFydGl0aW9uLXJlbGF0aXZlKSBzdGFsZS4gIFRoaXMgaXMgbm90IGEgbGl2ZQpidWc6 IG5mYV9ldmFsdWF0ZV9yb3cgcmVzZXRzIG5hdl9zbG90X3BvcyB0byAtMSBiZWZvcmUgZWFjaCBy b3cncyBERUZJTkUKZXZhbHVhdGlvbiwgdGhlIG9ubHkgcGF0aCB0aGF0IGZldGNoZXMgbmF2IHNs b3RzLCBzbyBhIHN0YWxlIHBvc2l0aW9uIG5ldmVyCnByb2R1Y2VzIGEgY2FjaGUgaGl0LiAgUmVz ZXQgaXQgaGVyZSB0b28gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIHJlc3Qgb2YgdGhlCnBlci1w YXJ0aXRpb24gY2xlYW51cC4gIEFsc28gbm90ZSBpbiB2aXNpdF9uYXZfcGxhbiB0aGF0IGEgY29u c3RhbnQKTEFTVCh4LCAwKSBpcyBjb25zZXJ2YXRpdmVseSBmbGFnZ2VkIG1hdGNoLXN0YXJ0LWRl cGVuZGVudCwgY2F1c2luZyBhCmhhcm1sZXNzIHJlZHVuZGFudCByZS1ldmFsdWF0aW9uLgotLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICB8IDMgKysrCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgfCA3ICsrKysrKy0KIDIgZmlsZXMgY2hh bmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVdpbmRvd0FnZy5jCmluZGV4IDg2YjM5YmY3ZjYxLi45NWY0ZjA2NTAxZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMTU3NCw2ICsxNTc0LDkgQEAgcmVsZWFzZV9wYXJ0 aXRpb24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCXdpbnN0YXRlLT5uZmFMYXN0UHJvY2Vz c2VkUm93ID0gLTE7CiAJd2luc3RhdGUtPm5mYVN0YXRlc0FjdGl2ZSA9IDA7CiAJd2luc3RhdGUt Pm5mYUNvbnRleHRzQWN0aXZlID0gMDsKKworCS8qIEludmFsaWRhdGUgdGhlIG5hdiBzbG90IHBv c2l0aW9uIGNhY2hlIGZvciB0aGUgbmV3IHBhcnRpdGlvbi4gKi8KKwl3aW5zdGF0ZS0+bmF2X3Ns b3RfcG9zID0gLTE7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9jcmVhdGVwbGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFu LmMKaW5kZXggYzViMDg1N2ZmMjAuLjU2MDhkNzFjYmUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vY3JlYXRlcGxhbi5jCkBAIC0yNjkzLDcgKzI2OTMsMTIgQEAgdmlzaXRfbmF2X3BsYW4o TmF2VHJhdmVyc2FsICp0LCBSUFJOYXZFeHByICpuYXYpCiAJCX0KIAl9CiAKLQkvKiBNYXRjaC1z dGFydCBkZXBlbmRlbmN5OiBjbGFzc2lmeSB0aGUgb3V0ZXIgbmF2IGtpbmQuICovCisJLyoKKwkg KiBNYXRjaC1zdGFydCBkZXBlbmRlbmN5OiBjbGFzc2lmeSB0aGUgb3V0ZXIgbmF2IGtpbmQuICBB IGNvbnN0YW50CisJICogTEFTVCh4LCAwKSBpcyBjb25zZXJ2YXRpdmVseSBpbmNsdWRlZCAob2Zm c2V0X2FyZyBpcyBhIG5vbi1OVUxMIENvbnN0KSwKKwkgKiBjYXVzaW5nIGEgaGFybWxlc3MgZXh0 cmEgcmUtZXZhbHVhdGlvbjsgc2luY2UgTEFTVCh4LCAwKSBpcyB0aGUgY3VycmVudAorCSAqIHJv dywgaXRzIHJlc3VsdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbWF0Y2ggc3RhcnQuCisJICovCiAJ aWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0ZJUlNUIHx8CiAJCShuYXYtPmtpbmQgPT0gUlBSX05B Vl9MQVNUICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKSB8fAogCQluYXYtPmtpbmQgPT0gUlBS X05BVl9QUkVWX0ZJUlNUIHx8Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0063-Tidy-up-formatting-in-row-pattern-recognition-cod.txt" Content-Disposition: attachment; filename="nocfbot-0063-Tidy-up-formatting-in-row-pattern-recognition-cod.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogu62 RnJvbSBhM2VmNDBhZTAyNGNkMWRiNzg3YTFjMTlkYzk2N2RiZTAzYmIyOGYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTM6NDg6MTAgKzA5MDAKU3ViamVjdDogW1BBVENIIDYzLzY4XSBU aWR5IHVwIGZvcm1hdHRpbmcgaW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gY29kZQoKUmVmb3Jt YXQgdGhlIGZpcnN0IHRocmVlIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0IGFsdGVybmF0aXZl cyBhcwptdWx0aWxpbmUgYmxvY2tzIHRvIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBydWxlLCBjaGFu Z2UgdGhlIFJGXyogcmVkdWNlZApmcmFtZSBtYWNyb3MgZnJvbSBhIHRhYiB0byBhIHNwYWNlIGFm dGVyICNkZWZpbmUsIGFkZCBhIHRyYWlsaW5nIGNvbW1hIHRvCnRoZSBsYXN0IFJQU2tpcFRvIGVu dW1lcmF0b3IsIGFuZCBtb3ZlIHRoZSBSUFJOYXYqIGVudHJpZXMgdG8gdGhlaXIgY29ycmVjdApD LWNvbGxhdGlvbiBwb3NpdGlvbiBpbiB0eXBlZGVmcy5saXN0LiAgVGhlc2UgYXJlIGZvcm1hdHRp bmcgYW5kIGFsaWdubWVudApjaGFuZ2VzIG9ubHksIHdpdGggbm8gZWZmZWN0IG9uIGJlaGF2aW9y LgotLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIHwgIDIgKy0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgIHwgMTQgKysrKysrKysrKystLS0KIHNyYy9pbmNsdWRl L25vZGVzL2V4ZWNub2Rlcy5oICAgIHwgMTAgKysrKystLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgfCAgMiArLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg fCAgNiArKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRleCBlNzI3NmM0MmNhNi4uMTQzZWEw MzRmYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBAIC00ODQsNyArNDg0LDcgQEAgbWVy Z2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hpbGRyZW4pCiAgKgogICogV2hlbiBhIEdST1VQJ3Mg Y2hpbGRyZW4gYXBwZWFyIGFzIGEgcHJlZml4IGJlZm9yZSBhbmQvb3Igc3VmZml4IGFmdGVyCiAg KiB0aGUgR1JPVVAgaW4gYSBTRVEsIG1lcmdlIHRoZW0gYnkgaW5jcmVtZW50aW5nIHRoZSBHUk9V UCdzIHF1YW50aWZpZXIuCi0gKiBUaGlzIHJ1bnMgaXRlcmF0aXZlbHk6IEEgQiBBIEIgKEEgQikr IEEgQiAtPiAoQSBCKXs1LH0uCisgKiBUaGlzIHJ1bnMgaXRlcmF0aXZlbHk6IEEgQiBBIEIgKEEg QikrIEEgQiAtPiAoQSBCKXs0LH0uCiAgKgogICogQWxnb3JpdGhtOgogICogICBGb3IgZWFjaCBH Uk9VUCBlbmNvdW50ZXJlZCBpbiB0aGUgc2VxdWVuY2U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAxNDdiNWYz NzI5My4uZTA3OTlmMzU2MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTc3NDAsOSArMTc3NDAsMTcgQEAg cm93X3BhdHRlcm5fcHJpbWFyeToKIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJLyog RU1QVFkgLSBubyBxdWFudGlmaWVyIG1lYW5zIGV4YWN0bHkgb25jZTsgQCQgaXMgdW51c2VkIHNp bmNlCiAJCQkgKiBtaW49bWF4PTEgbmV2ZXIgcHJvZHVjZXMgYW4gZXJyb3IgKi8KLQkJCXsgJCQg PSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCAxLCAtMSwgQCQsIHl5c2Nhbm5lcik7IH0K LQkJCXwgJyonCQkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgSU5UX01B WCwgLTEsIEAxLCB5eXNjYW5uZXIpOyB9Ci0JCQl8ICcrJwkJCQkJeyAkJCA9IChOb2RlICopIG1h a2VSUFJRdWFudGlmaWVyKDEsIElOVF9NQVgsIC0xLCBAMSwgeXlzY2FubmVyKTsgfQorCQkJCXsK KwkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCAxLCAtMSwgQCQsIHl5c2Nh bm5lcik7CisJCQkJfQorCQkJfCAnKicKKwkJCQl7CisJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQ UlF1YW50aWZpZXIoMCwgSU5UX01BWCwgLTEsIEAxLCB5eXNjYW5uZXIpOworCQkJCX0KKwkJCXwg JysnCisJCQkJeworCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIElOVF9N QVgsIC0xLCBAMSwgeXlzY2FubmVyKTsKKwkJCQl9CiAJCQl8IE9wCiAJCQkJewogCQkJCQkvKiBI YW5kbGUgc2luZ2xlIE9wOiA/IG9yIHJlbHVjdGFudCBxdWFudGlmaWVycyAqPywgKz8sID8/ICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDQ2NDFlZDM2Y2VlLi43N2Q3NWFjYTkxZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvZXhlY25vZGVzLmgKQEAgLTI1MjgsMTEgKzI1MjgsMTEgQEAgdHlwZWRlZiBlbnVtIFdpbmRv d0FnZ1N0YXR1cwogfSBXaW5kb3dBZ2dTdGF0dXM7CiAKIC8qIFJQUiByZWR1Y2VkIGZyYW1lIHN0 YXRlcyByZXR1cm5lZCBieSBnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMoKSAqLwotI2RlZmluZQlS Rl9OT1RfREVURVJNSU5FRAkwCS8qIG5vdCB5ZXQgcHJvY2Vzc2VkICovCi0jZGVmaW5lCVJGX0ZS QU1FX0hFQUQJCTEJLyogc3RhcnQgcm93IG9mIGEgbWF0Y2ggKi8KLSNkZWZpbmUJUkZfU0tJUFBF RAkJCTIJLyogaW50ZXJpb3Igcm93IG9mIGEgbWF0Y2ggKi8KLSNkZWZpbmUJUkZfVU5NQVRDSEVE CQkzCS8qIG5vIG1hdGNoIGF0IHRoaXMgcm93ICovCi0jZGVmaW5lCVJGX0VNUFRZX01BVENICQk0 CS8qIGVtcHR5IG1hdGNoICgwIHJvd3MpOyB0cmVhdGVkIGFzIHVubWF0Y2hlZCAqLworI2RlZmlu ZSBSRl9OT1RfREVURVJNSU5FRAkwCS8qIG5vdCB5ZXQgcHJvY2Vzc2VkICovCisjZGVmaW5lIFJG X0ZSQU1FX0hFQUQJCTEJLyogc3RhcnQgcm93IG9mIGEgbWF0Y2ggKi8KKyNkZWZpbmUgUkZfU0tJ UFBFRAkJCTIJLyogaW50ZXJpb3Igcm93IG9mIGEgbWF0Y2ggKi8KKyNkZWZpbmUgUkZfVU5NQVRD SEVECQkzCS8qIG5vIG1hdGNoIGF0IHRoaXMgcm93ICovCisjZGVmaW5lIFJGX0VNUFRZX01BVENI CQk0CS8qIGVtcHR5IG1hdGNoICgwIHJvd3MpOyB0cmVhdGVkIGFzIHVubWF0Y2hlZCAqLwogCiAv KgogICogUlBSTkZBU3RhdGUgLSBzaW5nbGUgTkZBIHN0YXRlIGZvciBwYXR0ZXJuIG1hdGNoaW5n CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZTM3MWYwNGE0MDMuLjk2MzZhOGVmY2ExIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC01ODksNyArNTg5LDcgQEAgdHlwZWRlZiBlbnVtIFJQU2tp cFRvCiAJU1RfTk9ORSwJCQkJCS8qIG5vIEFGVEVSIE1BVENIIGNsYXVzZTsgZGVmYXVsdCBmb3Ig bm9uLVJQUgogCQkJCQkJCQkgKiB3aW5kb3dzICovCiAJU1RfTkVYVF9ST1csCQkJCS8qIFNLSVAg VE8gTkVYVCBST1cgKi8KLQlTVF9QQVNUX0xBU1RfUk9XCQkJLyogU0tJUCBUTyBQQVNUIExBU1Qg Uk9XICovCisJU1RfUEFTVF9MQVNUX1JPVywJCQkvKiBTS0lQIFRPIFBBU1QgTEFTVCBST1cgKi8K IH0gUlBTa2lwVG87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDI0Y2YyZWI3 ODYwLi4wNmNkNTQxYmU1YiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI1MTksOSAr MjUxOSw2IEBAIFF1ZXJ5U291cmNlCiBRdWV1ZUJhY2tlbmRTdGF0dXMKIFF1ZXVlUG9zaXRpb24K IFF1aXRTaWduYWxSZWFzb24KLVJQUk5hdkV4cHIKLVJQUk5hdktpbmQKLVJQUk5hdk9mZnNldEtp bmQKIFJCVE5vZGUKIFJCVE9yZGVyQ29udHJvbAogUkJUcmVlCkBAIC0yNTQwLDYgKzI1MzcsOSBA QCBSUFJFbGVtRmxhZ3MKIFJQUkVsZW1JZHgKIFJQUk5GQUNvbnRleHQKIFJQUk5GQVN0YXRlCitS UFJOYXZFeHByCitSUFJOYXZLaW5kCitSUFJOYXZPZmZzZXRLaW5kCiBSUFJQYXR0ZXJuCiBSUFJQ YXR0ZXJuRWxlbWVudAogUlBSUGF0dGVybk5vZGUKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkK Cg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0065-Use-width-explicit-integer-limit-macros-in-row-pa.txt" Content-Disposition: attachment; filename="nocfbot-0065-Use-width-explicit-integer-limit-macros-in-row-pa.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogz64 RnJvbSA0ZjA0YTFhZWZjNGE1YTA0MWUxMDcwZjBjYmFlMmY4ZmE5ZmY1ZTQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTQ6NTk6MDAgKzA5MDAKU3ViamVjdDogW1BBVENIIDY1LzY4XSBV c2Ugd2lkdGgtZXhwbGljaXQgaW50ZWdlciBsaW1pdCBtYWNyb3MgaW4gcm93IHBhdHRlcm4KIHJl Y29nbml0aW9uCgpSZXBsYWNlIElOVF9NQVgvSU5UMTZfTUFYL0lOVDMyX01BWC9JTlQ2NF9NQVgv VUlOVDhfTUFYIHdpdGggdGhlClBHX0lOVCpfTUFYL1BHX1VJTlQ4X01BWCBlcXVpdmFsZW50cywg YW5kIHR5cGUgUlBSUGF0dGVybk5vZGUubWluL21heAphcyBpbnQzMiB0byBtYXRjaCB0aGUgcGxh biByZXByZXNlbnRhdGlvbi4gIFZhbHVlLSBhbmQgb3V0cHV0LXByZXNlcnZpbmcuCi0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICAgICB8IDExICsrKy0tCiBzcmMvYmFja2VuZC9leGVj dXRvci9ub2RlV2luZG93QWdnLmMgICAgfCAxNiArKystLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9jcmVhdGVwbGFuLmMgfCAxNCArKystLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3Jwci5jICAgICAgICB8ICA2ICstLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAg ICAgICAgICAgIHwgNjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jICAgICAgIHwgIDYgKy0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgIHwgIDQgKy0KIHNyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaCAgICAgICAgICAg ICB8IDExICsrKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA2NyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggNzk5MjgyOWQ1YzQuLjcwZmQ3ZjM4 NmEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjcwLDcgKzMyNzAsNyBAQCBzaG93X3dp bmRvd19kZWYoV2luZG93QWdnU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0b3JzLCBFeHBs YWluU3RhdGUgKmVzKQogCQkJCQkJCQkJCQllcyk7CiAJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBS UFJfTkFWX09GRlNFVF9GSVhFRDoKLQkJCQkJCWlmIChmaXJzdE9mZnNldCA9PSBJTlQ2NF9NQVgp CisJCQkJCQlpZiAoZmlyc3RPZmZzZXQgPT0gUEdfSU5UNjRfTUFYKQogCQkJCQkJCUV4cGxhaW5Q cm9wZXJ0eVRleHQoIk5hdiBNYXJrIExvb2thaGVhZCIsICJpbmZpbml0ZSIsCiAJCQkJCQkJCQkJ CQllcyk7CiAJCQkJCQllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggYjdlM2M0YTgyNzQu LjFjODk4NzVhMzA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC0xNTQ2LDcgKzE1NDYsNyBA QCBuZmFfYWR2YW5jZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0 eCwgaW50NjQgY3VycmVudFBvcykKIAkJCQkgICBzaXplb2YoYml0bWFwd29yZCkgKgogCQkJCSAg ICh3aW5zdGF0ZS0+bmZhVmlzaXRlZE1heFdvcmQgLQogCQkJCQl3aW5zdGF0ZS0+bmZhVmlzaXRl ZE1pbldvcmQgKyAxKSk7Ci0JCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZE1pbldvcmQgPSBJTlQxNl9N QVg7CisJCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZE1pbldvcmQgPSBQR19JTlQxNl9NQVg7CiAJCQl3 aW5zdGF0ZS0+bmZhVmlzaXRlZE1heFdvcmQgPSAtMTsKIAkJfQogCkBAIC0xODA3LDEwICsxODA3 LDExIEBAIEV4ZWNSUFJQcm9jZXNzUm93KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQg Y3VycmVudFBvcywKIAkJCWludDY0CQljdHhGcmFtZUVuZDsKIAogCQkJLyoKLQkJCSAqIENsYW1w IHRvIElOVDY0X01BWCBvbiBvdmVyZmxvdy4gIGZyYW1lT2Zmc2V0IGNhbiBiZSBhcyBsYXJnZSBh cwotCQkJICogUEdfSU5UNjRfTUFYIChlLmcuICJST1dTIDxodWdlPiBGT0xMT1dJTkciKSwgc28g YWRkIHRoZSBvZmZzZXQKLQkJCSAqIGFuZCB0aGUgdHJhaWxpbmcgKzEgaW4gdHdvIHNlcGFyYXRl bHkgY2hlY2tlZCBzdGVwcyB0byBhdm9pZAotCQkJICogc2lnbmVkLWludGVnZXIgb3ZlcmZsb3cg aW4gdGhlICJmcmFtZU9mZnNldCArIDEiIHN1YmV4cHJlc3Npb24uCisJCQkgKiBDbGFtcCB0byBQ R19JTlQ2NF9NQVggb24gb3ZlcmZsb3cuICBmcmFtZU9mZnNldCBjYW4gYmUgYXMgbGFyZ2UKKwkJ CSAqIGFzIFBHX0lOVDY0X01BWCAoZS5nLiAiUk9XUyA8aHVnZT4gRk9MTE9XSU5HIiksIHNvIGFk ZCB0aGUKKwkJCSAqIG9mZnNldCBhbmQgdGhlIHRyYWlsaW5nICsxIGluIHR3byBzZXBhcmF0ZWx5 IGNoZWNrZWQgc3RlcHMgdG8KKwkJCSAqIGF2b2lkIHNpZ25lZC1pbnRlZ2VyIG92ZXJmbG93IGlu IHRoZSAiZnJhbWVPZmZzZXQgKyAxIgorCQkJICogc3ViZXhwcmVzc2lvbi4KIAkJCSAqLwogCQkJ aWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coY3R4LT5tYXRjaFN0YXJ0Um93LCBmcmFtZU9mZnNldCwK IAkJCQkJCQkJCSZjdHhGcmFtZUVuZCkgfHwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu YwppbmRleCA5NWY0ZjA2NTAxZS4uMTM2NjExODE5ODYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl V2luZG93QWdnLmMKQEAgLTMwNzAsNyArMzA3MCw3IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRv d0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCXdpbnN0YXRlLT5uZmFW aXNpdGVkRWxlbXMgPSBwYWxsb2MwKHNpemVvZihiaXRtYXB3b3JkKSAqCiAJCQkJCQkJCQkJCW5m YVZpc2l0ZWROV29yZHMpOwogCQkvKiBIaWdoLXdhdGVyIG1hcmsgc2VudGluZWxzOiBubyBiaXRz IHNldCB5ZXQuICovCi0JCXdpbnN0YXRlLT5uZmFWaXNpdGVkTWluV29yZCA9IElOVDE2X01BWDsK KwkJd2luc3RhdGUtPm5mYVZpc2l0ZWRNaW5Xb3JkID0gUEdfSU5UMTZfTUFYOwogCQl3aW5zdGF0 ZS0+bmZhVmlzaXRlZE1heFdvcmQgPSAtMTsKIAl9CiAKQEAgLTQwNDgsNyArNDA0OCw3IEBAIHR5 cGVkZWYgc3RydWN0CiAgKgkJCU5FWFRfTEFTVCAoPSBtYXgoaW5uZXIgLSBvdXRlciwgMCkpCiAg KgkJICAtIG1pbkZpcnN0T2Zmc2V0IChmb3J3YXJkIHJlYWNoIGZyb20gbWF0Y2hfc3RhcnQpOiBG SVJTVCwKICAqCQkJY29tcG91bmQgUFJFVl9GSVJTVCAoPSBpbm5lciAtIG91dGVyLCBtYXkgYmUg bmVnYXRpdmUpLAotICoJCQljb21wb3VuZCBORVhUX0ZJUlNUICg9IGlubmVyICsgb3V0ZXIsIGNs YW1wZWQgdG8gSU5UNjRfTUFYIG9uCisgKgkJCWNvbXBvdW5kIE5FWFRfRklSU1QgKD0gaW5uZXIg KyBvdXRlciwgY2xhbXBlZCB0byBQR19JTlQ2NF9NQVggb24KICAqCQkJb3ZlcmZsb3c7IGFsd2F5 cyA+PSAwIHNvIG5ldmVyIHVwZGF0ZXMgbWluRmlyc3RPZmZzZXQgaW4gcHJhY3RpY2UpCiAgKgog ICogQ291bnRlcnBhcnQgb2YgdmlzaXRfbmF2X3BsYW4gYnV0IHVzaW5nIHJ1bnRpbWUgZXZhbHVh dGlvbiBpbnN0ZWFkIG9mCkBAIC00MTM3LDcgKzQxMzcsNyBAQCB2aXNpdF9uYXZfZXhlYyhOYXZU cmF2ZXJzYWwgKnQsIFJQUk5hdkV4cHIgKm5hdikKIAkJewogCQkJLyoKIAkJCSAqIHJlYWNoID0g aW5uZXIgLSBvdXRlci4gIEJvdGggYXJlIG5vbi1uZWdhdGl2ZSwgc28gdGhlIHJlc3VsdCA+PQot CQkJICogLUlOVDY0X01BWCwgd2hpY2ggY2Fubm90IHVuZGVyZmxvdyBpbnQ2NC4KKwkJCSAqIC1Q R19JTlQ2NF9NQVgsIHdoaWNoIGNhbm5vdCB1bmRlcmZsb3cgaW50NjQuCiAJCQkgKi8KIAkJCXJl YWNoID0gaW5uZXIgLSBvdXRlcjsKIAkJfQpAQCAtNDE0NiwxMCArNDE0NiwxMCBAQCB2aXNpdF9u YXZfZXhlYyhOYXZUcmF2ZXJzYWwgKnQsIFJQUk5hdkV4cHIgKm5hdikKIAkJCS8qCiAJCQkgKiBO RVhUX0ZJUlNUOiByZWFjaCA9IGlubmVyICsgb3V0ZXIuICBUaGlzIGNhbiBvdmVyZmxvdywgYnV0 IHRoZQogCQkJICogcmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdCBuZXZlciB1cGRhdGVzIG1p bkZpcnN0T2Zmc2V0Ci0JCQkgKiAod2hpY2ggdHJhY2tzIHRoZSBtaW5pbXVtKS4gIENsYW1wIHRv IElOVDY0X01BWCBvbiBvdmVyZmxvdy4KKwkJCSAqICh3aGljaCB0cmFja3MgdGhlIG1pbmltdW0p LiAgQ2xhbXAgdG8gUEdfSU5UNjRfTUFYIG9uIG92ZXJmbG93LgogCQkJICovCiAJCQlpZiAocGdf YWRkX3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIsICZyZWFjaCkpCi0JCQkJcmVhY2ggPSBJTlQ2 NF9NQVg7CisJCQkJcmVhY2ggPSBQR19JTlQ2NF9NQVg7CiAJCX0KIAkJY29udGV4dC0+bWluRmly c3RPZmZzZXQgPSBNaW4oY29udGV4dC0+bWluRmlyc3RPZmZzZXQsIHJlYWNoKTsKIAl9CkBAIC00 MTg0LDcgKzQxODQsNyBAQCBldmFsX2RlZmluZV9vZmZzZXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQogCWN0eC53aW5zdGF0ZSA9IHdpbnN0YXRlOwogCWN0 eC5tYXhPZmZzZXQgPSAwOwogCWN0eC5tYXhPdmVyZmxvdyA9IGZhbHNlOwotCWN0eC5taW5GaXJz dE9mZnNldCA9IElOVDY0X01BWDsKKwljdHgubWluRmlyc3RPZmZzZXQgPSBQR19JTlQ2NF9NQVg7 CiAKIAl0cmF2LnZpc2l0ID0gdmlzaXRfbmF2X2V4ZWM7CiAJdHJhdi5kYXRhID0gJmN0eDsKQEAg LTQyMTMsMTAgKzQyMTMsMTAgQEAgZXZhbF9kZWZpbmVfb2Zmc2V0cyhXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIExpc3QgKmRlZmluZUNsYXVzZSkKIAlpZiAobmVlZHNGaXJzdCkKIAl7CiAJCXdp bnN0YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQgPSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKLQkJaWYg KGN0eC5taW5GaXJzdE9mZnNldCA8IElOVDY0X01BWCkKKwkJaWYgKGN0eC5taW5GaXJzdE9mZnNl dCA8IFBHX0lOVDY0X01BWCkKIAkJCXdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldCA9IGN0eC5taW5G aXJzdE9mZnNldDsKIAkJZWxzZQotCQkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0ID0gSU5UNjRf TUFYOworCQkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0ID0gUEdfSU5UNjRfTUFYOwogCX0KIH0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IDU2MDhkNzFjYmUy Li5kMmUxOWQ2MWQ1OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3Jl YXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpA QCAtMjY2OSw4ICsyNjY5LDggQEAgdmlzaXRfbmF2X3BsYW4oTmF2VHJhdmVyc2FsICp0LCBSUFJO YXZFeHByICpuYXYpCiAJCQkJewogCQkJCQkvKgogCQkJCQkgKiByZWFjaCA9IGlubmVyIC0gb3V0 ZXIuICBCb3RoIGFyZSBub24tbmVnYXRpdmUsIHNvIHRoZQotCQkJCQkgKiByZXN1bHQgPj0gLUlO VDY0X01BWCwgd2hpY2ggY2Fubm90IHVuZGVyZmxvdyBpbnQ2NC4gTm8KLQkJCQkJICogb3ZlcmZs b3cgY2hlY2sgbmVlZGVkLgorCQkJCQkgKiByZXN1bHQgPj0gLVBHX0lOVDY0X01BWCwgd2hpY2gg Y2Fubm90IHVuZGVyZmxvdyBpbnQ2NC4KKwkJCQkJICogTm8gb3ZlcmZsb3cgY2hlY2sgbmVlZGVk LgogCQkJCQkgKi8KIAkJCQkJcmVhY2ggPSBpbm5lciAtIG91dGVyOwogCQkJCX0KQEAgLTI2ODAs MTAgKzI2ODAsMTAgQEAgdmlzaXRfbmF2X3BsYW4oTmF2VHJhdmVyc2FsICp0LCBSUFJOYXZFeHBy ICpuYXYpCiAJCQkJCSAqIE5FWFRfRklSU1Q6IHJlYWNoID0gaW5uZXIgKyBvdXRlci4gIFRoaXMg Y2FuIG92ZXJmbG93LAogCQkJCQkgKiBidXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgPj0gMCwgc28g aXQgbmV2ZXIgdXBkYXRlcwogCQkJCQkgKiBmaXJzdE9mZnNldCAod2hpY2ggdHJhY2tzIHRoZSBt aW5pbXVtKS4gIENsYW1wIHRvCi0JCQkJCSAqIElOVDY0X01BWCBvbiBvdmVyZmxvdy4KKwkJCQkJ ICogUEdfSU5UNjRfTUFYIG9uIG92ZXJmbG93LgogCQkJCQkgKi8KIAkJCQkJaWYgKHBnX2FkZF9z NjRfb3ZlcmZsb3coaW5uZXIsIG91dGVyLCAmcmVhY2gpKQotCQkJCQkJcmVhY2ggPSBJTlQ2NF9N QVg7CisJCQkJCQlyZWFjaCA9IFBHX0lOVDY0X01BWDsKIAkJCQl9CiAKIAkJCQljb250ZXh0LT5m aXJzdE9mZnNldCA9IE1pbihjb250ZXh0LT5maXJzdE9mZnNldCwgcmVhY2gpOwpAQCAtMjc0MSw3 ICsyNzQxLDcgQEAgY29tcHV0ZV9kZWZpbmVfbWV0YWRhdGEoTGlzdCAqZGVmaW5lQ2xhdXNlLAog CWN0eC5tYXhPZmZzZXQgPSAwOwogCWN0eC5tYXhOZWVkc0V2YWwgPSBmYWxzZTsKIAljdHgubWF4 T3ZlcmZsb3cgPSBmYWxzZTsKLQljdHguZmlyc3RPZmZzZXQgPSBJTlQ2NF9NQVg7CS8qIHNlbnRp bmVsOiBubyBGSVJTVCBmb3VuZCB5ZXQgKi8KKwljdHguZmlyc3RPZmZzZXQgPSBQR19JTlQ2NF9N QVg7IC8qIHNlbnRpbmVsOiBubyBGSVJTVCBmb3VuZCB5ZXQgKi8KIAljdHguaGFzRmlyc3QgPSBm YWxzZTsKIAljdHguZmlyc3ROZWVkc0V2YWwgPSBmYWxzZTsKIAljdHguY3VyVmFySWR4ID0gMDsK QEAgLTI3ODksOCArMjc4OSw4IEBAIGNvbXB1dGVfZGVmaW5lX21ldGFkYXRhKExpc3QgKmRlZmlu ZUNsYXVzZSwKIAkJZWxzZQogCQl7CiAJCQkqZmlyc3RLaW5kID0gUlBSX05BVl9PRkZTRVRfRklY RUQ7Ci0JCQkqZmlyc3RSZXN1bHQgPSBjdHguZmlyc3RPZmZzZXQ7IC8qIG1heSBiZSBuZWdhdGl2 ZTsgSU5UNjRfTUFYIGlmCi0JCQkJCQkJCQkJCSAqIG92ZXJmbG93ZWQgKi8KKwkJCSpmaXJzdFJl c3VsdCA9IGN0eC5maXJzdE9mZnNldDsgLyogbWF5IGJlIG5lZ2F0aXZlOyBQR19JTlQ2NF9NQVgK KwkJCQkJCQkJCQkJICogaWYgb3ZlcmZsb3dlZCAqLwogCQl9CiAJfQogCWVsc2UKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcnByLmMKaW5kZXggOTM2NDEzNmIwNzEuLmQ3Njg0MjJkZWViIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9ycHIuYwpAQCAtMTIxMCw3ICsxMjEwLDcgQEAgZmlsbFJQUlBhdHRlcm5WYXIo UlBSUGF0dGVybk5vZGUgKm5vZGUsIFJQUlBhdHRlcm4gKnBhdCwgaW50ICppZHgsIFJQUkRlcHRo IGRlcHQKIAllbGVtLT52YXJJZCA9IGdldFZhcklkRnJvbVBhdHRlcm4ocGF0LCBub2RlLT52YXJO YW1lKTsKIAllbGVtLT5kZXB0aCA9IGRlcHRoOwogCWVsZW0tPm1pbiA9IG5vZGUtPm1pbjsKLQll bGVtLT5tYXggPSAobm9kZS0+bWF4ID09IElOVF9NQVgpID8gUlBSX1FVQU5USVRZX0lORiA6IG5v ZGUtPm1heDsKKwllbGVtLT5tYXggPSAobm9kZS0+bWF4ID09IFBHX0lOVDMyX01BWCkgPyBSUFJf UVVBTlRJVFlfSU5GIDogbm9kZS0+bWF4OwogCUFzc2VydChlbGVtLT5taW4gPj0gMCAmJiBlbGVt LT5taW4gPCBSUFJfUVVBTlRJVFlfSU5GICYmCiAJCSAgIGVsZW0tPm1heCA+PSAxICYmCiAJCSAg IChlbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fCBlbGVtLT5taW4gPD0gZWxlbS0+bWF4 KSk7CkBAIC0xMjYzLDcgKzEyNjMsNyBAQCBmaWxsUlBSUGF0dGVybkdyb3VwKFJQUlBhdHRlcm5O b2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0aCBkZQogCQllbGVt LT52YXJJZCA9IFJQUl9WQVJJRF9CRUdJTjsKIAkJZWxlbS0+ZGVwdGggPSBkZXB0aDsKIAkJZWxl bS0+bWluID0gbm9kZS0+bWluOwotCQllbGVtLT5tYXggPSAobm9kZS0+bWF4ID09IElOVF9NQVgp ID8gUlBSX1FVQU5USVRZX0lORiA6IG5vZGUtPm1heDsKKwkJZWxlbS0+bWF4ID0gKG5vZGUtPm1h eCA9PSBQR19JTlQzMl9NQVgpID8gUlBSX1FVQU5USVRZX0lORiA6IG5vZGUtPm1heDsKIAkJQXNz ZXJ0KGVsZW0tPm1pbiA+PSAwICYmIGVsZW0tPm1pbiA8IFJQUl9RVUFOVElUWV9JTkYgJiYKIAkJ CSAgIGVsZW0tPm1heCA+PSAxICYmCiAJCQkgICAoZWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9J TkYgfHwgZWxlbS0+bWluIDw9IGVsZW0tPm1heCkpOwpAQCAtMTI5MSw3ICsxMjkxLDcgQEAgZmls bFJQUlBhdHRlcm5Hcm91cChSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBp bnQgKmlkeCwgUlBSRGVwdGggZGUKIAkJZW5kRWxlbS0+dmFySWQgPSBSUFJfVkFSSURfRU5EOwog CQllbmRFbGVtLT5kZXB0aCA9IGRlcHRoOwogCQllbmRFbGVtLT5taW4gPSBub2RlLT5taW47Ci0J CWVuZEVsZW0tPm1heCA9IChub2RlLT5tYXggPT0gSU5UX01BWCkgPyBSUFJfUVVBTlRJVFlfSU5G IDogbm9kZS0+bWF4OworCQllbmRFbGVtLT5tYXggPSAobm9kZS0+bWF4ID09IFBHX0lOVDMyX01B WCkgPyBSUFJfUVVBTlRJVFlfSU5GIDogbm9kZS0+bWF4OwogCQlBc3NlcnQoZW5kRWxlbS0+bWlu ID49IDAgJiYgZW5kRWxlbS0+bWluIDwgUlBSX1FVQU5USVRZX0lORiAmJgogCQkJICAgZW5kRWxl bS0+bWF4ID49IDEgJiYKIAkJCSAgIChlbmRFbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8 fCBlbmRFbGVtLT5taW4gPD0gZW5kRWxlbS0+bWF4KSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBlMDc5OWYz NTYzOC4uYWMyZTVkNzkxNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjEyLDcgKzIxMiw3IEBAIHN0YXRp YyB2b2lkIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LAogc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIHN0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqbWFrZVJQUlNlcU9y U2luZ2xlKExpc3QgKmNoaWxkcmVuLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIFJQUlBhdHRlcm5O b2RlICpzcGxpdFJQUlRyYWlsaW5nQWx0KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjb3JlX3l5c2Nh bl90IHl5c2Nhbm5lcik7Ci1zdGF0aWMgUlBSUGF0dGVybk5vZGUgKm1ha2VSUFJRdWFudGlmaWVy KGludCBtaW4sIGludCBtYXgsIFBhcnNlTG9jIHJlbHVjdGFudCwgaW50IGxvY2F0aW9uLAorc3Rh dGljIFJQUlBhdHRlcm5Ob2RlICptYWtlUlBSUXVhbnRpZmllcihpbnQzMiBtaW4sIGludDMyIG1h eCwgUGFyc2VMb2MgcmVsdWN0YW50LCBpbnQgbG9jYXRpb24sCiAJCQkJCQkJCQkgICBjb3JlX3l5 c2Nhbl90IHl5c2Nhbm5lcik7CiAKICV9CkBAIC0xNzc0NSwxMSArMTc3NDUsMTEgQEAgcm93X3Bh dHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkJfQogCQkJfCAnKicKIAkJCQl7Ci0JCQkJCSQkID0g KE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgSU5UX01BWCwgLTEsIEAxLCB5eXNjYW5uZXIp OworCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIFBHX0lOVDMyX01BWCwg LTEsIEAxLCB5eXNjYW5uZXIpOwogCQkJCX0KIAkJCXwgJysnCiAJCQkJewotCQkJCQkkJCA9IChO b2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIElOVF9NQVgsIC0xLCBAMSwgeXlzY2FubmVyKTsK KwkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCBQR19JTlQzMl9NQVgsIC0x LCBAMSwgeXlzY2FubmVyKTsKIAkJCQl9CiAJCQl8IE9wCiAJCQkJewpAQCAtMTc3NTcsMTkgKzE3 NzU3LDE5IEBAIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJCQlpZiAoc3RyY21wKCQx LCAiPyIpID09IDApCiAJCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIDEs IC0xLCBAMSwgeXlzY2FubmVyKTsKIAkJCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAiKj8iKSA9PSAw KQotCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCBJTlRfTUFYLCBAMSAr IDEsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmll cigwLCBQR19JTlQzMl9NQVgsIEAxICsgMSwgQDEsIHl5c2Nhbm5lcik7CiAJCQkJCWVsc2UgaWYg KHN0cmNtcCgkMSwgIis/IikgPT0gMCkKLQkJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50 aWZpZXIoMSwgSU5UX01BWCwgQDEgKyAxLCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5v ZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMSwgUEdfSU5UMzJfTUFYLCBAMSArIDEsIEAxLCB5eXNj YW5uZXIpOwogCQkJCQllbHNlIGlmIChzdHJjbXAoJDEsICI/PyIpID09IDApCiAJCQkJCQkkJCA9 IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIDEsIEAxICsgMSwgQDEsIHl5c2Nhbm5lcik7 CiAJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgIip8IikgPT0gMCkKIAkJCQkJewotCQkJCQkJJCQg PSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCBJTlRfTUFYLCAtMSwgQDEsIHl5c2Nhbm5l cik7CisJCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIFBHX0lOVDMyX01B WCwgLTEsIEAxLCB5eXNjYW5uZXIpOwogCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSAkJCktPnRy YWlsaW5nX2FsdCA9IHRydWU7CiAJCQkJCX0KIAkJCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAiK3wi KSA9PSAwKQogCQkJCQl7Ci0JCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEs IElOVF9NQVgsIC0xLCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQ UlF1YW50aWZpZXIoMSwgUEdfSU5UMzJfTUFYLCAtMSwgQDEsIHl5c2Nhbm5lcik7CiAJCQkJCQko KFJQUlBhdHRlcm5Ob2RlICopICQkKS0+dHJhaWxpbmdfYWx0ID0gdHJ1ZTsKIAkJCQkJfQogCQkJ CQllbHNlIGlmIChzdHJjbXAoJDEsICI/fCIpID09IDApCkBAIC0xNzc3OSwxMiArMTc3NzksMTIg QEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkJCX0KIAkJCQkJZWxzZSBpZiAoc3Ry Y21wKCQxLCAiKj98IikgPT0gMCkKIAkJCQkJewotCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBS UXVhbnRpZmllcigwLCBJTlRfTUFYLCBAMSArIDEsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkJJCQg PSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCBQR19JTlQzMl9NQVgsIEAxICsgMSwgQDEs IHl5c2Nhbm5lcik7CiAJCQkJCQkoKFJQUlBhdHRlcm5Ob2RlICopICQkKS0+dHJhaWxpbmdfYWx0 ID0gdHJ1ZTsKIAkJCQkJfQogCQkJCQllbHNlIGlmIChzdHJjbXAoJDEsICIrP3wiKSA9PSAwKQog CQkJCQl7Ci0JCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIElOVF9NQVgs IEAxICsgMSwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFu dGlmaWVyKDEsIFBHX0lOVDMyX01BWCwgQDEgKyAxLCBAMSwgeXlzY2FubmVyKTsKIAkJCQkJCSgo UlBSUGF0dGVybk5vZGUgKikgJCQpLT50cmFpbGluZ19hbHQgPSB0cnVlOwogCQkJCQl9CiAJCQkJ CWVsc2UgaWYgKHN0cmNtcCgkMSwgIj8/fCIpID09IDApCkBAIC0xNzgwMywxMSArMTc4MDMsMTEg QEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQl8ICcqJyBPcAogCQkJCXsKIAkJCQkJ aWYgKHN0cmNtcCgkMiwgIj8iKSA9PSAwKQotCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVh bnRpZmllcigwLCBJTlRfTUFYLCBAMiwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCQkkJCA9IChOb2Rl ICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIFBHX0lOVDMyX01BWCwgQDIsIEAxLCB5eXNjYW5uZXIp OwogCQkJCQllbHNlIGlmIChzdHJjbXAoJDIsICI/fCIpID09IDApCiAJCQkJCXsKIAkJCQkJCS8q ICJBKiA/fEIiID0gcmVsdWN0YW50ICJBKj8iIHBsdXMgYWx0ZXJuYXRpb24gKi8KLQkJCQkJCSQk ID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgSU5UX01BWCwgQDIsIEAxLCB5eXNjYW5u ZXIpOworCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCBQR19JTlQzMl9N QVgsIEAyLCBAMSwgeXlzY2FubmVyKTsKIAkJCQkJCSgoUlBSUGF0dGVybk5vZGUgKikgJCQpLT50 cmFpbGluZ19hbHQgPSB0cnVlOwogCQkJCQl9CiAJCQkJCWVsc2UKQEAgLTE3ODIwLDExICsxNzgy MCwxMSBAQCByb3dfcGF0dGVybl9xdWFudGlmaWVyX29wdDoKIAkJCXwgJysnIE9wCiAJCQkJewog CQkJCQlpZiAoc3RyY21wKCQyLCAiPyIpID09IDApCi0JCQkJCQkkJCA9IChOb2RlICopIG1ha2VS UFJRdWFudGlmaWVyKDEsIElOVF9NQVgsIEAyLCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0g KE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMSwgUEdfSU5UMzJfTUFYLCBAMiwgQDEsIHl5c2Nh bm5lcik7CiAJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMiwgIj98IikgPT0gMCkKIAkJCQkJewogCQkJ CQkJLyogIkErID98QiIgPSByZWx1Y3RhbnQgIkErPyIgcGx1cyBhbHRlcm5hdGlvbiAqLwotCQkJ CQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigxLCBJTlRfTUFYLCBAMiwgQDEsIHl5 c2Nhbm5lcik7CisJCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIFBHX0lO VDMyX01BWCwgQDIsIEAxLCB5eXNjYW5uZXIpOwogCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSAk JCktPnRyYWlsaW5nX2FsdCA9IHRydWU7CiAJCQkJCX0KIAkJCQkJZWxzZQpAQCAtMTc4NjAsMzcg KzE3ODYwLDM3IEBAIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJLyoge259LCB7bix9 LCB7LG19LCB7bixtfSBxdWFudGlmaWVycyAqLwogCQkJfCAneycgSWNvbnN0ICd9JwogCQkJCXsK LQkJCQkJaWYgKCQyIDw9IDAgfHwgJDIgPj0gSU5UX01BWCkKKwkJCQkJaWYgKCQyIDw9IDAgfHwg JDIgPj0gUEdfSU5UMzJfTUFYKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3Vu ZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgJWQiLCBJTlRfTUFYIC0gMSksCisJCQkJCQkJCWVycm1z ZygicXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgJWQiLCBQR19JTlQzMl9N QVggLSAxKSwKIAkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAyKSk7CiAJCQkJCSQkID0gKE5v ZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoJDIsICQyLCAtMSwgQDEsIHl5c2Nhbm5lcik7CiAJCQkJ fQogCQkJfCAneycgSWNvbnN0ICcsJyAnfScKIAkJCQl7Ci0JCQkJCWlmICgkMiA8IDAgfHwgJDIg Pj0gSU5UX01BWCkKKwkJCQkJaWYgKCQyIDwgMCB8fCAkMiA+PSBQR19JTlQzMl9NQVgpCiAJCQkJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK LQkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAl ZCIsIElOVF9NQVggLSAxKSwKKwkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJvdW5kIG11c3Qg YmUgYmV0d2VlbiAwIGFuZCAlZCIsIFBHX0lOVDMyX01BWCAtIDEpLAogCQkJCQkJCQlwYXJzZXJf ZXJycG9zaXRpb24oQDIpKTsKLQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigk MiwgSU5UX01BWCwgLTEsIEAxLCB5eXNjYW5uZXIpOworCQkJCQkkJCA9IChOb2RlICopIG1ha2VS UFJRdWFudGlmaWVyKCQyLCBQR19JTlQzMl9NQVgsIC0xLCBAMSwgeXlzY2FubmVyKTsKIAkJCQl9 CiAJCQl8ICd7JyAnLCcgSWNvbnN0ICd9JwogCQkJCXsKLQkJCQkJaWYgKCQzIDw9IDAgfHwgJDMg Pj0gSU5UX01BWCkKKwkJCQkJaWYgKCQzIDw9IDAgfHwgJDMgPj0gUEdfSU5UMzJfTUFYKQogCQkJ CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks Ci0JCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQg JWQiLCBJTlRfTUFYIC0gMSksCisJCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZCBtdXN0 IGJlIGJldHdlZW4gMSBhbmQgJWQiLCBQR19JTlQzMl9NQVggLSAxKSwKIAkJCQkJCQkJcGFyc2Vy X2VycnBvc2l0aW9uKEAzKSk7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIo MCwgJDMsIC0xLCBAMSwgeXlzY2FubmVyKTsKIAkJCQl9CiAJCQl8ICd7JyBJY29uc3QgJywnIElj b25zdCAnfScKIAkJCQl7Ci0JCQkJCWlmICgkMiA8IDAgfHwgJDQgPD0gMCB8fCAkMiA+PSBJTlRf TUFYIHx8ICQ0ID49IElOVF9NQVgpCisJCQkJCWlmICgkMiA8IDAgfHwgJDQgPD0gMCB8fCAkMiA+ PSBQR19JTlQzMl9NQVggfHwgJDQgPj0gUEdfSU5UMzJfTUFYKQogCQkJCQkJZXJlcG9ydChFUlJP UiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJCWVycm1z ZygicXVhbnRpZmllciBib3VuZHMgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kICVkIHdpdGggbWF4ID49 IDEiLCBJTlRfTUFYIC0gMSksCisJCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZHMgbXVz dCBiZSBiZXR3ZWVuIDAgYW5kICVkIHdpdGggbWF4ID49IDEiLCBQR19JTlQzMl9NQVggLSAxKSwK IAkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAyKSk7CiAJCQkJCWlmICgkMiA+ICQ0KQogCQkJ CQkJZXJlcG9ydChFUlJPUiwKQEAgLTE3OTA4LDEwICsxNzkwOCwxMCBAQCByb3dfcGF0dGVybl9x dWFudGlmaWVyX29wdDoKIAkJCQkJCQkJZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdl IHF1YW50aWZpZXIiKSwKIAkJCQkJCQkJZXJyaGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFm dGVyIHtufSB0byBtYWtlIGl0IHJlbHVjdGFudC4iKSwKIAkJCQkJCQkJcGFyc2VyX2VycnBvc2l0 aW9uKEA0KSk7Ci0JCQkJCWlmICgkMiA8PSAwIHx8ICQyID49IElOVF9NQVgpCisJCQkJCWlmICgk MiA8PSAwIHx8ICQyID49IFBHX0lOVDMyX01BWCkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJCQllcnJtc2coInF1YW50 aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kICVkIiwgSU5UX01BWCAtIDEpLAorCQkJ CQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kICVkIiwg UEdfSU5UMzJfTUFYIC0gMSksCiAJCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihAMikpOwogCQkJ CQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKCQyLCAkMiwgQDQsIEAxLCB5eXNjYW5u ZXIpOwogCQkJCQlpZiAoc3RyY21wKCQ0LCAiP3wiKSA9PSAwKQpAQCAtMTc5MjUsMTIgKzE3OTI1 LDEyIEBAIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJCQkJCQllcnJtc2coImludmFs aWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllciIpLAogCQkJCQkJCQllcnJoaW50KCJPbmx5 IFwiP1wiIGlzIGFsbG93ZWQgYWZ0ZXIge24sfSBvciB7LG19IHRvIG1ha2UgaXQgcmVsdWN0YW50 LiIpLAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDUpKTsKLQkJCQkJaWYgKCQyIDwgMCB8 fCAkMiA+PSBJTlRfTUFYKQorCQkJCQlpZiAoJDIgPCAwIHx8ICQyID49IFBHX0lOVDMyX01BWCkK IAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAotCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDAg YW5kICVkIiwgSU5UX01BWCAtIDEpLAorCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQg bXVzdCBiZSBiZXR3ZWVuIDAgYW5kICVkIiwgUEdfSU5UMzJfTUFYIC0gMSksCiAJCQkJCQkJCXBh cnNlcl9lcnJwb3NpdGlvbihAMikpOwotCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlm aWVyKCQyLCBJTlRfTUFYLCBANSwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCSQkID0gKE5vZGUgKikg bWFrZVJQUlF1YW50aWZpZXIoJDIsIFBHX0lOVDMyX01BWCwgQDUsIEAxLCB5eXNjYW5uZXIpOwog CQkJCQlpZiAoc3RyY21wKCQ1LCAiP3wiKSA9PSAwKQogCQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAq KSAkJCktPnRyYWlsaW5nX2FsdCA9IHRydWU7CiAJCQkJfQpAQCAtMTc5NDIsMTAgKzE3OTQyLDEw IEBAIHJvd19wYXR0ZXJuX3F1YW50aWZpZXJfb3B0OgogCQkJCQkJCQllcnJtc2coImludmFsaWQg dG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllciIpLAogCQkJCQkJCQllcnJoaW50KCJPbmx5IFwi P1wiIGlzIGFsbG93ZWQgYWZ0ZXIge24sfSBvciB7LG19IHRvIG1ha2UgaXQgcmVsdWN0YW50LiIp LAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDUpKTsKLQkJCQkJaWYgKCQzIDw9IDAgfHwg JDMgPj0gSU5UX01BWCkKKwkJCQkJaWYgKCQzIDw9IDAgfHwgJDMgPj0gUEdfSU5UMzJfTUFYKQog CQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCi0JCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBh bmQgJWQiLCBJTlRfTUFYIC0gMSksCisJCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZCBt dXN0IGJlIGJldHdlZW4gMSBhbmQgJWQiLCBQR19JTlQzMl9NQVggLSAxKSwKIAkJCQkJCQkJcGFy c2VyX2VycnBvc2l0aW9uKEAzKSk7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZp ZXIoMCwgJDMsIEA1LCBAMSwgeXlzY2FubmVyKTsKIAkJCQkJaWYgKHN0cmNtcCgkNSwgIj98Iikg PT0gMCkKQEAgLTE3OTU5LDEwICsxNzk1OSwxMCBAQCByb3dfcGF0dGVybl9xdWFudGlmaWVyX29w dDoKIAkJCQkJCQkJZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdlIHF1YW50aWZpZXIi KSwKIAkJCQkJCQkJZXJyaGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFmdGVyIHtuLG19IHRv IG1ha2UgaXQgcmVsdWN0YW50LiIpLAogCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDYpKTsK LQkJCQkJaWYgKCQyIDwgMCB8fCAkNCA8PSAwIHx8ICQyID49IElOVF9NQVggfHwgJDQgPj0gSU5U X01BWCkKKwkJCQkJaWYgKCQyIDwgMCB8fCAkNCA8PSAwIHx8ICQyID49IFBHX0lOVDMyX01BWCB8 fCAkNCA+PSBQR19JTlQzMl9NQVgpCiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQllcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJv dW5kcyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgJWQgd2l0aCBtYXggPj0gMSIsIElOVF9NQVggLSAx KSwKKwkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJvdW5kcyBtdXN0IGJlIGJldHdlZW4gMCBh bmQgJWQgd2l0aCBtYXggPj0gMSIsIFBHX0lOVDMyX01BWCAtIDEpLAogCQkJCQkJCQlwYXJzZXJf ZXJycG9zaXRpb24oQDIpKTsKIAkJCQkJaWYgKCQyID4gJDQpCiAJCQkJCQllcmVwb3J0KEVSUk9S LApAQCAtMjE0MDAsNyArMjE0MDAsNyBAQCBtYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSkKICAqCQlDcmVhdGUgYW4gUlBSUGF0 dGVybk5vZGUgd2l0aCBzcGVjaWZpZWQgcXVhbnRpZmllciBib3VuZHMuCiAgKi8KIHN0YXRpYyBS UFJQYXR0ZXJuTm9kZSAqCi1tYWtlUlBSUXVhbnRpZmllcihpbnQgbWluLCBpbnQgbWF4LCBQYXJz ZUxvYyByZWx1Y3RhbnRfbG9jYXRpb24sIGludCBsb2NhdGlvbiwKK21ha2VSUFJRdWFudGlmaWVy KGludDMyIG1pbiwgaW50MzIgbWF4LCBQYXJzZUxvYyByZWx1Y3RhbnRfbG9jYXRpb24sIGludCBs b2NhdGlvbiwKIAkJCQkgIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogewogCVJQUlBhdHRlcm5O b2RlICpuID0gbWFrZU5vZGUoUlBSUGF0dGVybk5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCmluZGV4IGU4MDg3ZDQzMTZhLi5kNTg4Y2Q4MjYzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYwpAQCAtNzEyNCwxMyArNzEyNCwxMyBAQCBhcHBlbmRfcGF0dGVybl9xdWFudGlmaWVy KFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSkKIAkJLyogezEsMX0gPSBubyBx dWFudGlmaWVyICovCiAJCWhhc19xdWFudGlmaWVyID0gZmFsc2U7CiAJfQotCWVsc2UgaWYgKG5v ZGUtPm1pbiA9PSAwICYmIG5vZGUtPm1heCA9PSBJTlRfTUFYKQorCWVsc2UgaWYgKG5vZGUtPm1p biA9PSAwICYmIG5vZGUtPm1heCA9PSBQR19JTlQzMl9NQVgpCiAJCWFwcGVuZFN0cmluZ0luZm9D aGFyKGJ1ZiwgJyonKTsKLQllbHNlIGlmIChub2RlLT5taW4gPT0gMSAmJiBub2RlLT5tYXggPT0g SU5UX01BWCkKKwllbHNlIGlmIChub2RlLT5taW4gPT0gMSAmJiBub2RlLT5tYXggPT0gUEdfSU5U MzJfTUFYKQogCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcrJyk7CiAJZWxzZSBpZiAobm9k ZS0+bWluID09IDAgJiYgbm9kZS0+bWF4ID09IDEpCiAJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1 ZiwgJz8nKTsKLQllbHNlIGlmIChub2RlLT5tYXggPT0gSU5UX01BWCkKKwllbHNlIGlmIChub2Rl LT5tYXggPT0gUEdfSU5UMzJfTUFYKQogCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInslZCx9Iiwg bm9kZS0+bWluKTsKIAllbHNlIGlmIChub2RlLT5taW4gPT0gbm9kZS0+bWF4KQogCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgInslZH0iLCBub2RlLT5taW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCA3N2Q3NWFjYTkxZi4uZGNhMGJiYzNlMzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0yNjcy LDcgKzI2NzIsNyBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCWJpdG1hcHdvcmQg Km5mYVZpc2l0ZWRFbGVtczsJLyogZWxlbUlkeCB2aXNpdGVkIGJpdG1hcCBmb3IgY3ljbGUKIAkJ CQkJCQkJCSAqIGRldGVjdGlvbiAqLwogCWludDE2CQluZmFWaXNpdGVkTWluV29yZDsJLyogbG93 ZXN0IGJpdG1hcHdvcmQgaW5kZXggdG91Y2hlZCBzaW5jZQotCQkJCQkJCQkJICogbGFzdCByZXNl dCAoSU5UMTZfTUFYID0gbm9uZSkgKi8KKwkJCQkJCQkJCSAqIGxhc3QgcmVzZXQgKFBHX0lOVDE2 X01BWCA9IG5vbmUpICovCiAJaW50MTYJCW5mYVZpc2l0ZWRNYXhXb3JkOwkvKiBoaWdoZXN0IGJp dG1hcHdvcmQgaW5kZXggdG91Y2hlZCBzaW5jZQogCQkJCQkJCQkJICogbGFzdCByZXNldCAoLTEg PSBub25lKSAqLwogCWludDY0CQluZmFMYXN0UHJvY2Vzc2VkUm93OwkvKiBsYXN0IHJvdyBwcm9j ZXNzZWQgYnkgTkZBICgtMSA9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTYzNmE4ZWZjYTEu LjE2ZjMxZGJlN2ZmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC02MjUsOCArNjI1LDggQEAg dHlwZWRlZiBzdHJ1Y3QgUlBSUGF0dGVybk5vZGUKIHsKIAlOb2RlVGFnCQl0eXBlOwkJCS8qIFRf UlBSUGF0dGVybk5vZGUgKi8KIAlSUFJQYXR0ZXJuTm9kZVR5cGUgbm9kZVR5cGU7CS8qIFZBUiwg U0VRLCBBTFQsIEdST1VQICovCi0JaW50CQkJbWluOwkJCS8qIG1pbmltdW0gcmVwZXRpdGlvbnMg KDAgZm9yICosID8pICovCi0JaW50CQkJbWF4OwkJCS8qIG1heGltdW0gcmVwZXRpdGlvbnMgKElO VF9NQVggZm9yICosICspICovCisJaW50MzIJCW1pbjsJCQkvKiBtaW5pbXVtIHJlcGV0aXRpb25z ICgwIGZvciAqLCA/KSAqLworCWludDMyCQltYXg7CQkJLyogbWF4aW11bSByZXBldGl0aW9ucyAo UEdfSU5UMzJfTUFYIGZvciAqLCArKSAqLwogCWJvb2wJCXJlbHVjdGFudDsJCS8qIHRydWUgZm9y IHJlbHVjdGFudCAobm9uLWdyZWVkeSkgKi8KIAlQYXJzZUxvYwlyZWx1Y3RhbnRfbG9jYXRpb247 IC8qIGxvY2F0aW9uIG9mICc/JyB0b2tlbiwgb3IgLTEgKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsJ CS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0 aW1pemVyL3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCmluZGV4IDczYzgyN2Rl MmIxLi44ZTBiYzdlZmM1MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5o CisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAg KiBiZWZvcmUgcmVsZWFzZS4KICAqLwogI2RlZmluZSBSUFJfVkFSSURfTUFYCQkweEVGCS8qIHBh dHRlcm4gdmFyaWFibGVzIGFyZSAwIHRvIDB4RUYgKi8KLSNkZWZpbmUgUlBSX1FVQU5USVRZX0lO RglJTlQzMl9NQVgJLyogdW5ib3VuZGVkIHF1YW50aWZpZXIgKi8KLSNkZWZpbmUgUlBSX0NPVU5U X01BWAkJSU5UMzJfTUFYCS8qIG1heCBydW50aW1lIGNvdW50IChORkEgc3RhdGUpICovCi0jZGVm aW5lIFJQUl9FTEVNSURYX01BWAkJSU5UMTZfTUFYCS8qIG1heCBwYXR0ZXJuIGVsZW1lbnRzICov CisjZGVmaW5lIFJQUl9RVUFOVElUWV9JTkYJUEdfSU5UMzJfTUFYCS8qIHVuYm91bmRlZCBxdWFu dGlmaWVyICovCisjZGVmaW5lIFJQUl9DT1VOVF9NQVgJCVBHX0lOVDMyX01BWAkvKiBtYXggcnVu dGltZSBjb3VudCAoTkZBIHN0YXRlKSAqLworI2RlZmluZSBSUFJfRUxFTUlEWF9NQVgJCVBHX0lO VDE2X01BWAkvKiBtYXggcGF0dGVybiBlbGVtZW50cyAqLwogI2RlZmluZSBSUFJfRUxFTUlEWF9J TlZBTElECSgoUlBSRWxlbUlkeCkgLTEpCS8qIGludmFsaWQgaW5kZXggKi8KLSNkZWZpbmUgUlBS X0RFUFRIX01BWAkJKFVJTlQ4X01BWCAtIDEpIC8qIG1heCBwYXR0ZXJuIG5lc3RpbmcgZGVwdGg6 IDI1NCAqLwotI2RlZmluZSBSUFJfREVQVEhfTk9ORQkJVUlOVDhfTUFYCS8qIG5vIGVuY2xvc2lu ZyBncm91cCAodG9wLWxldmVsKSAqLworI2RlZmluZSBSUFJfREVQVEhfTUFYCQkoUEdfVUlOVDhf TUFYIC0gMSkJLyogbWF4IHBhdHRlcm4gbmVzdGluZyBkZXB0aDoKKwkJCQkJCQkJCQkJCSAqIDI1 NCAqLworI2RlZmluZSBSUFJfREVQVEhfTk9ORQkJUEdfVUlOVDhfTUFYCS8qIG5vIGVuY2xvc2lu ZyBncm91cCAodG9wLWxldmVsKSAqLwogCiAvKiBSZXNlcnZlZCBjb250cm9sLWVsZW1lbnQgdmFy SWRzIChoaWdoIG5pYmJsZSAweEY7IDB4RjAtMHhGQiBzcGFyZSkgKi8KICNkZWZpbmUgUlBSX1ZB UklEX0JFR0lOCQkoKFJQUlZhcklkKSAweEZDKQkvKiBncm91cCBiZWdpbiAqLwotLSAKMi41MC4x IChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0064-Modernize-idioms-in-row-pattern-recognition-code.txt" Content-Disposition: attachment; filename="nocfbot-0064-Modernize-idioms-in-row-pattern-recognition-code.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64wogx63 RnJvbSBhZDNlNjNlZWEyNGM0ZjgwZjhkMThlZjdiNWNjNDBmZmYxNGU0ODI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTM6NTk6NDMgKzA5MDAKU3ViamVjdDogW1BBVENIIDY0LzY4XSBN b2Rlcm5pemUgaWRpb21zIGluIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGNvZGUKClJlcGxhY2Ug YXBwZW5kU3RyaW5nSW5mbygpIHdpdGggYXBwZW5kU3RyaW5nSW5mb1N0cmluZygpIGZvciB0aGUg ZWlnaHQKY29uc3RhbnQgc3RyaW5nIGxpdGVyYWxzIHRoYXQgY29udGFpbiBubyBmb3JtYXQgc3Bl Y2lmaWVycywgYXZvaWRpbmcgYW4KdW5uZWNlc3NhcnkgdHJpcCB0aHJvdWdoIHZzbnByaW50Zigp LgoKUmVwbGFjZSB0aGUgZm91ciBwYWxsb2MobiAqIHNpemVvZih0eXBlKSkgY2FsbHMgaW4gX2Nv cHlSUFJQYXR0ZXJuKCkgYW5kCl9yZWFkUlBSUGF0dGVybigpIHdpdGggcGFsbG9jX2FycmF5KCkv cGFsbG9jMF9hcnJheSgpLCB3aGljaCBtYWtlIHRoZQplbGVtZW50IHR5cGUgYW5kIGNvdW50IGV4 cGxpY2l0IGFuZCBndWFyZCBhZ2FpbnN0IHNpemUgbXVsdGlwbGljYXRpb24Kb3ZlcmZsb3cuCgpS ZXBsYWNlIGFuIG9wZW4tY29kZWQgbWF4aW11bSBpbiBzY2FuUlBSUGF0dGVyblJlY3Vyc2l2ZSgp IHdpdGggTWF4KCkuCgpUaGVzZSBhcmUgbWVjaGFuaWNhbCBpZGlvbSBjaGFuZ2VzIG9ubHk7IGJl aGF2aW9yLCBvdXRwdXQsIGFuZCBBQkkgYXJlCnVuY2hhbmdlZCwgYW5kIHRoZSByb3cgcGF0dGVy biByZWdyZXNzaW9uIHRlc3RzIHBhc3Mgd2l0aCBubyAub3V0IGRpZmZzLgotLS0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICB8IDE1ICsrKysrKysrLS0tLS0tLQogc3JjL2JhY2tl bmQvbm9kZXMvY29weWZ1bmNzLmMgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvbm9kZXMvcmVh ZGZ1bmNzLmMgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMg IHwgIDMgKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgfCAgMyArKy0KIDUg ZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXhwbGFpbi5jCmluZGV4IDdiYTBiNmRmODQ5Li43OTkyODI5ZDVjNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4cGxhaW4uYwpAQCAtMjkzMiw3ICsyOTMyLDggQEAgYXBwZW5kX3Jwcl9xdWFudGlmaWVyKFN0 cmluZ0luZm8gYnVmLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSkKIAlpZiAoUlBSRWxlbUlzUmVs dWN0YW50KGVsZW0pKQogCXsKIAkJaWYgKGVsZW0tPm1pbiA9PSAxICYmIGVsZW0tPm1heCA9PSAx KQotCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ7MX0iKTsJLyogbWFrZSByZWx1Y3RhbnQgPyB1 bmFtYmlndW91cyAqLworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJ7MX0iKTsgLyog bWFrZSByZWx1Y3RhbnQgPworCQkJCQkJCQkJCQkJICogdW5hbWJpZ3VvdXMgKi8KIAkJYXBwZW5k U3RyaW5nSW5mb0NoYXIoYnVmLCAnPycpOwogCX0KIApAQCAtMzkyOSw3ICszOTMwLDcgQEAgc2hv d19ycHJfbmZhX3N0YXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgRXhwbGFpblN0YXRlICpl cykKIAogCQkvKiBNYXRjaC9taXNtYXRjaCBjb3VudHMgd2l0aCBsZW5ndGggbWluL21heC9hdmcg Ki8KIAkJRXhwbGFpbkluZGVudFRleHQoZXMpOwotCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIs ICJORkE6ICIpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJORkE6ICIpOwog CQlpZiAod2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQgPiAwKQogCQl7CiAJCQlkb3VibGUJ CWF2Z0xlbiA9IChkb3VibGUpIHdpbnN0YXRlLT5uZmFNYXRjaExlbi50b3RhbCAvIHdpbnN0YXRl LT5uZmFNYXRjaGVzU3VjY2VlZGVkOwpAQCAtMzk0Myw3ICszOTQ0LDcgQEAgc2hvd19ycHJfbmZh X3N0YXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgRXhwbGFpblN0YXRlICplcykKIAkJfQog CQllbHNlCiAJCXsKLQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIjAgbWF0Y2hlZCIpOwor CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAiMCBtYXRjaGVkIik7CiAJCX0KIAkJ aWYgKHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkID4gMCkKIAkJewpAQCAtMzk1OCw3ICszOTU5 LDcgQEAgc2hvd19ycHJfbmZhX3N0YXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgRXhwbGFp blN0YXRlICplcykKIAkJfQogCQllbHNlCiAJCXsKLQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0 ciwgIiwgMCBtaXNtYXRjaGVkIik7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIs ICIsIDAgbWlzbWF0Y2hlZCIpOwogCQl9CiAJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGVzLT5zdHIs ICdcbicpOwogCkBAIC0zOTY2LDcgKzM5NjcsNyBAQCBzaG93X3Jwcl9uZmFfc3RhdHMoV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlLCBFeHBsYWluU3RhdGUgKmVzKQogCQlpZiAod2luc3RhdGUtPm5m YUNvbnRleHRzQWJzb3JiZWQgPiAwIHx8IHdpbnN0YXRlLT5uZmFDb250ZXh0c1NraXBwZWQgPiAw KQogCQl7CiAJCQlFeHBsYWluSW5kZW50VGV4dChlcyk7Ci0JCQlhcHBlbmRTdHJpbmdJbmZvKGVz LT5zdHIsICJORkE6ICIpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAiTkZB OiAiKTsKIAogCQkJaWYgKHdpbnN0YXRlLT5uZmFDb250ZXh0c0Fic29yYmVkID4gMCkKIAkJCXsK QEAgLTM5ODEsNyArMzk4Miw3IEBAIHNob3dfcnByX25mYV9zdGF0cyhXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJYXBw ZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiMCBhYnNvcmJlZCIpOworCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoZXMtPnN0ciwgIjAgYWJzb3JiZWQiKTsKIAkJCX0KIAogCQkJaWYgKHdpbnN0YXRl LT5uZmFDb250ZXh0c1NraXBwZWQgPiAwKQpAQCAtMzk5Nyw3ICszOTk4LDcgQEAgc2hvd19ycHJf bmZhX3N0YXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgRXhwbGFpblN0YXRlICplcykKIAkJ CX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIsIDAgc2tp cHBlZCIpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMtPnN0ciwgIiwgMCBza2lwcGVk Iik7CiAJCQl9CiAKIAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGVzLT5zdHIsICdcbicpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9jb3B5ZnVuY3MuYwppbmRleCBlNjdhZDM5YmRiOC4uMTdkNDU5MzBkN2IgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL2Nv cHlmdW5jcy5jCkBAIC0xNzgsMTMgKzE3OCwxMyBAQCBfY29weVJQUlBhdHRlcm4oY29uc3QgUlBS UGF0dGVybiAqZnJvbSkKIAogCS8qIERlZXAgY29weSB0aGUgdmFyTmFtZXMgYXJyYXkgKERFRklO RSBjbGF1c2UgaXMgcmVxdWlyZWQpICovCiAJQXNzZXJ0KGZyb20tPm51bVZhcnMgPiAwKTsKLQlu ZXdub2RlLT52YXJOYW1lcyA9IHBhbGxvYzAoZnJvbS0+bnVtVmFycyAqIHNpemVvZihjaGFyICop KTsKKwluZXdub2RlLT52YXJOYW1lcyA9IHBhbGxvYzBfYXJyYXkoY2hhciAqLCBmcm9tLT5udW1W YXJzKTsKIAlmb3IgKGludCBpID0gMDsgaSA8IGZyb20tPm51bVZhcnM7IGkrKykKIAkJbmV3bm9k ZS0+dmFyTmFtZXNbaV0gPSBwc3RyZHVwKGZyb20tPnZhck5hbWVzW2ldKTsKIAogCS8qIERlZXAg Y29weSB0aGUgZWxlbWVudHMgYXJyYXkgKGFsd2F5cyBoYXMgYXQgbGVhc3Qgb25lIGVsZW1lbnQg KyBGSU4pICovCiAJQXNzZXJ0KGZyb20tPm51bUVsZW1lbnRzID49IDIpOwotCW5ld25vZGUtPmVs ZW1lbnRzID0gcGFsbG9jKGZyb20tPm51bUVsZW1lbnRzICogc2l6ZW9mKFJQUlBhdHRlcm5FbGVt ZW50KSk7CisJbmV3bm9kZS0+ZWxlbWVudHMgPSBwYWxsb2NfYXJyYXkoUlBSUGF0dGVybkVsZW1l bnQsIGZyb20tPm51bUVsZW1lbnRzKTsKIAltZW1jcHkobmV3bm9kZS0+ZWxlbWVudHMsIGZyb20t PmVsZW1lbnRzLAogCQkgICBmcm9tLT5udW1FbGVtZW50cyAqIHNpemVvZihSUFJQYXR0ZXJuRWxl bWVudCkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYyBiL3Ny Yy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCmluZGV4IDViYmRlNWJjYWQyLi42YzM5YzZmZTA2 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKQEAgLTU4Miw3ICs1ODIsNyBAQCBfcmVhZFJQUlBhdHRl cm4odm9pZCkKIAl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3RoKTsgLyogZ2V0ICcoJyBvciAnPD4n ICovCiAJaWYgKGxvY2FsX25vZGUtPm51bVZhcnMgPiAwICYmIHRva2VuWzBdID09ICcoJykKIAl7 Ci0JCWxvY2FsX25vZGUtPnZhck5hbWVzID0gcGFsbG9jKGxvY2FsX25vZGUtPm51bVZhcnMgKiBz aXplb2YoY2hhciAqKSk7CisJCWxvY2FsX25vZGUtPnZhck5hbWVzID0gcGFsbG9jX2FycmF5KGNo YXIgKiwgbG9jYWxfbm9kZS0+bnVtVmFycyk7CiAJCWZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxf bm9kZS0+bnVtVmFyczsgaSsrKQogCQl7CiAJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3RoKTsK QEAgLTYwMCw3ICs2MDAsNyBAQCBfcmVhZFJQUlBhdHRlcm4odm9pZCkKIAl0b2tlbiA9IHBnX3N0 cnRvaygmbGVuZ3RoKTsgLyogZ2V0ICcoJyBvciAnPD4nICovCiAJaWYgKGxvY2FsX25vZGUtPm51 bUVsZW1lbnRzID4gMCAmJiB0b2tlblswXSA9PSAnKCcpCiAJewotCQlsb2NhbF9ub2RlLT5lbGVt ZW50cyA9IHBhbGxvYzAobG9jYWxfbm9kZS0+bnVtRWxlbWVudHMgKiBzaXplb2YoUlBSUGF0dGVy bkVsZW1lbnQpKTsKKwkJbG9jYWxfbm9kZS0+ZWxlbWVudHMgPSBwYWxsb2MwX2FycmF5KFJQUlBh dHRlcm5FbGVtZW50LCBsb2NhbF9ub2RlLT5udW1FbGVtZW50cyk7CiAJCWZvciAoaW50IGkgPSAw OyBpIDwgbG9jYWxfbm9kZS0+bnVtRWxlbWVudHM7IGkrKykKIAkJewogCQkJUlBSUGF0dGVybkVs ZW1lbnQgKmVsZW0gPSAmbG9jYWxfbm9kZS0+ZWxlbWVudHNbaV07CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3Jwci5jCmluZGV4IDE0M2VhMDM0ZmIzLi45MzY0MTM2YjA3MSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcnByLmMKQEAgLTEwNDgsOCArMTA0OCw3IEBAIHNjYW5SUFJQYXR0ZXJuUmVjdXJzaXZlKFJQ UlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFycywKIAkJCQkJ CSAgZGVwdGgsIFJQUl9ERVBUSF9NQVggLSAxKSk7CiAKIAkvKiBUcmFjayBtYXhpbXVtIGRlcHRo ICovCi0JaWYgKGRlcHRoID4gKm1heERlcHRoKQotCQkqbWF4RGVwdGggPSBkZXB0aDsKKwkqbWF4 RGVwdGggPSBNYXgoKm1heERlcHRoLCBkZXB0aCk7CiAKIAlzd2l0Y2ggKG5vZGUtPm5vZGVUeXBl KQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAyYjg0MzllNDUyZS4uZTgwODdk NDMxNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTcxNDAsNyArNzE0MCw4IEBA IGFwcGVuZF9wYXR0ZXJuX3F1YW50aWZpZXIoU3RyaW5nSW5mbyBidWYsIFJQUlBhdHRlcm5Ob2Rl ICpub2RlKQogCWlmIChub2RlLT5yZWx1Y3RhbnQpCiAJewogCQlpZiAoIWhhc19xdWFudGlmaWVy KQotCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ7MX0iKTsJLyogbWFrZSByZWx1Y3RhbnQgPyB1 bmFtYmlndW91cyAqLworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJ7MX0iKTsgLyog bWFrZSByZWx1Y3RhbnQgPworCQkJCQkJCQkJCQkJICogdW5hbWJpZ3VvdXMgKi8KIAkJYXBwZW5k U3RyaW5nSW5mb0NoYXIoYnVmLCAnPycpOwogCX0KIH0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0067-Add-row-pattern-recognition-negative-and-coverage.txt" Content-Disposition: attachment; filename="nocfbot-0067-Add-row-pattern-recognition-negative-and-coverage.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64woh566 RnJvbSAwMzNiNmQwYmQ0MmE0MWIyNTAxZDM0ZmI0MTNjYjg4OWNhZmZhMzY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTY6MzQ6MDkgKzA5MDAKU3ViamVjdDogW1BBVENIIDY3LzY4XSBB ZGQgcm93IHBhdHRlcm4gcmVjb2duaXRpb24gbmVnYXRpdmUgYW5kIGNvdmVyYWdlIHRlc3RzCgpD b3ZlciB0aGUgc3BsaXQtdG9rZW4gZXJyb3IgcGF0aHMgYWZ0ZXIgYSBxdWFudGlmaWVyICgqIC8g KyAvIE9wIGFuZAp0aGUge259L3tuLH0veyxtfS97bixtfSByYW5nZSBmb3JtcyksIHJlamVjdGlv biBvZiBzZXQtcmV0dXJuaW5nIGFuZAp3aW5kb3cgZnVuY3Rpb25zIGluIGEgREVGSU5FIGNsYXVz ZSwgYW5kIHRoZSByZWx1Y3RhbnQtR1JPVVAgY2FzZSB3aGVyZQpxdWFudGlmaWVyIG11bHRpcGxp Y2F0aW9uIGlzIGNvcnJlY3RseSBzdXBwcmVzc2VkLiAgVGVzdHMgb25seS4KLS0tCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCB8IDkxICsrKysrKysrKysrKysrKysrKysr KysrKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICB8IDM3ICsrKysr KysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggZjE3NjczMDVkMDYu LjI0MDdjNDU1MTY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAt MzI4Myw3ICszMjgzLDQ4IEBAIEVSUk9SOiAgdW5zdXBwb3J0ZWQgcXVhbnRpZmllciAiKyEiCiBM SU5FIDY6ICAgICBQQVRURVJOIChBKyEpCiAgICAgICAgICAgICAgICAgICAgICAgXgogSElOVDog IFZhbGlkIHF1YW50aWZpZXJzIGFyZTogKiwgKywgPywgKj8sICs/LCA/Pywge259LCB7bix9LCB7 LG19LCB7bixtfSBhbmQgdGhlaXIgcmVsdWN0YW50IHZlcnNpb25zLgotLS0gRXhwZWN0ZWQ6IFN5 bnRheCBlcnJvcgorLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nIDQgcXVlcmllcyBzaG91bGQgYmUg YWNjZXB0ZWQKK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEErICEpIERFRklORSBBIEFTIFRS VUUpOworRVJST1I6ICBpbnZhbGlkIHRva2VuIGFmdGVyICIrIiBxdWFudGlmaWVyCitMSU5FIDE6 IC4uLlMgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJTkcgUEFUVEVSTiAoQSsgISkg REVGSU5FIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBEaWQgeW91IG1lYW4gIis/IiBmb3IgcmVsdWN0YW50 IHF1YW50aWZpZXI/CitTRUxFQ1QgRlJPTSBycHJfZXJyIFdJTkRPVyB3IEFTICggUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCAxIEZPTExPV0lORyBQQVRURVJOIChBKyA/KykgREVGSU5FIEEg QVMgVFJVRSk7CitFUlJPUjogIGludmFsaWQgdG9rZW4gYWZ0ZXIgIisiIHF1YW50aWZpZXIKK0xJ TkUgMTogLi4uUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAxIEZPTExPV0lORyBQQVRURVJOIChB KyA/KykgREVGSU5FLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIERpZCB5b3UgbWVhbiAiKz8iIGZvciByZWx1 Y3RhbnQgcXVhbnRpZmllcj8KK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMgKCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEEqID8rKSBERUZJ TkUgQSBBUyBUUlVFKTsKK0VSUk9SOiAgaW52YWxpZCB0b2tlbiBhZnRlciAiKiIgcXVhbnRpZmll cgorTElORSAxOiAuLi5TIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRF Uk4gKEEqID8rKSBERUZJTkUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRGlkIHlvdSBtZWFuICIqPyIgZm9y IHJlbHVjdGFudCBxdWFudGlmaWVyPworU0VMRUNUIEZST00gcnByX2VyciBXSU5ET1cgdyBBUyAo IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJTkcgUEFUVEVSTiAoQT8gPz8p IERFRklORSBBIEFTIFRSVUUpOworRVJST1I6ICBpbnZhbGlkIHF1YW50aWZpZXIgY29tYmluYXRp b24KK0xJTkUgMTogLi4uT1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBB VFRFUk4gKEE/ID8/KSBERUZJLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIERpZCB5b3UgbWVhbiAiPz8iIGZv ciByZWx1Y3RhbnQgcXVhbnRpZmllcj8KKy0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZyA0IHJhbmdl LXF1YW50aWZpZXIgcXVlcmllcyBzaG91bGQgYmUgYWNjZXB0ZWQKK1NFTEVDVCBGUk9NIHJwcl9l cnIgV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5H IFBBVFRFUk4gKEF7Mn0gISkgREVGSU5FIEEgQVMgVFJVRSk7CitFUlJPUjogIGludmFsaWQgdG9r ZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllcgorTElORSAxOiAuLi5CRVRXRUVOIENVUlJFTlQgUk9X IEFORCAxIEZPTExPV0lORyBQQVRURVJOIChBezJ9ICEpIERFRklORSAuLi4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5U OiAgT25seSAiPyIgaXMgYWxsb3dlZCBhZnRlciB7bn0gdG8gbWFrZSBpdCByZWx1Y3RhbnQuCitT RUxFQ1QgRlJPTSBycHJfZXJyIFdJTkRPVyB3IEFTICggUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCAxIEZPTExPV0lORyBQQVRURVJOIChBezIsfSAhKSBERUZJTkUgQSBBUyBUUlVFKTsKK0VS Uk9SOiAgaW52YWxpZCB0b2tlbiBhZnRlciByYW5nZSBxdWFudGlmaWVyCitMSU5FIDE6IC4uLkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJTkcgUEFUVEVSTiAoQXsyLH0gISkgREVGSU5F IC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5ICI/IiBpcyBhbGxvd2VkIGFmdGVyIHtuLH0gb3Igeyxt fSB0byBtYWtlIGl0IHJlbHVjdGFudC4KK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMg KCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEF7LDN9 ICEpIERFRklORSBBIEFTIFRSVUUpOworRVJST1I6ICBpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdl IHF1YW50aWZpZXIKK0xJTkUgMTogLi4uRVRXRUVOIENVUlJFTlQgUk9XIEFORCAxIEZPTExPV0lO RyBQQVRURVJOIChBeywzfSAhKSBERUZJTkUgLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgIj8iIGlz IGFsbG93ZWQgYWZ0ZXIge24sfSBvciB7LG19IHRvIG1ha2UgaXQgcmVsdWN0YW50LgorU0VMRUNU IEZST00gcnByX2VyciBXSU5ET1cgdyBBUyAoIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg MSBGT0xMT1dJTkcgUEFUVEVSTiAoQXsyLDN9ICEpIERFRklORSBBIEFTIFRSVUUpOworRVJST1I6 ICBpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdlIHF1YW50aWZpZXIKK0xJTkUgMTogLi4uVFdFRU4g Q1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEF7MiwzfSAhKSBERUZJTkUgLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorSElOVDogIE9ubHkgIj8iIGlzIGFsbG93ZWQgYWZ0ZXIge24sbX0gdG8gbWFrZSBp dCByZWx1Y3RhbnQuCiAtLSBVbm1hdGNoZWQgcGFyZW50aGVzZXMKIFNFVCBjbGllbnRfbWluX21l c3NhZ2VzID0gTk9USUNFOwogRE8gJCQKQEAgLTMzMTAsNyArMzM1MSw2IEBAIFdJTkRPVyB3IEFT ICgKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIikiCiBMSU5FIDg6ICk7CiAgICAg ICAgIF4KLS0tIEV4cGVjdGVkOiBTeW50YXggZXJyb3IKIC0tIEVSUk9SOiBlbXB0eSBQQVRURVJO IG5vdCBhbGxvd2VkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKQEAgLTMz MjMsNyArMzM2Myw2IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9y IG5lYXIgIikiCiBMSU5FIDY6ICAgICBQQVRURVJOICgpCiAgICAgICAgICAgICAgICAgICAgICBe Ci0tLSBFeHBlY3RlZDogU3ludGF4IGVycm9yCiAtLSBFUlJPUjogREVGSU5FIHdpdGhvdXQgUEFU VEVSTiAoUEFUVEVSTiBhbmQgREVGSU5FIG11c3QgYmUgdXNlZCB0b2dldGhlcikKIFNFTEVDVCBD T1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgpAQCAtMzMzNSw3ICszMzc0LDYgQEAgV0lORE9X IHcgQVMgKAogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiREVGSU5FIgogTElORSA2 OiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IFN5 bnRheCBlcnJvcgogLS0gUXVhbGlmaWVkIGNvbHVtbiByZWZlcmVuY2VzIChOT1QgU1VQUE9SVEVE KQogLS0gUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCAodmFs aWQgcGVyIElTTy9JRUMgMTkwNzUtNSA2LjE1IC8gNC4xNiwgbm90IHlldCBpbXBsZW1lbnRlZCkK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTM0ODQsNiArMzUyMiwxOCBAQCBXSU5ET1cgdyBB UyAoCiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklO RQogTElORSA3OiAgICAgREVGSU5FIEEgQVMgQ09VTlQoKikgPiAwCiAgICAgICAgICAgICAgICAg ICAgICAgICBeCistLSBFUlJPUjogc2V0LXJldHVybmluZyBmdW5jdGlvbiBpbiBERUZJTkUgaXMg bm90IHN1cHBvcnRlZAorU0VMRUNUIEZST00gcnByX2VycgorV0lORE9XIHcgQVMgKCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEErKSBERUZJTkUgQSBB UyAxID4gZ2VuZXJhdGVfc2VyaWVzKDEgLDIpKTsKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklORQorTElORSAyOiAuLi4gUk9XIEFORCAxIEZP TExPV0lORyBQQVRURVJOIChBKykgREVGSU5FIEEgQVMgMSA+IGdlbmVyYXRlX3MuLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSBFUlJPUjogd2luZG93IGZ1bmN0aW9uIGluIERFRklORSBpcyBub3Qgc3VwcG9ydGVkCitT RUxFQ1QgRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgMSBGT0xMT1dJTkcgUEFUVEVSTiAoQSspIERFRklORSBBIEFTIDEgPiByb3dfbnVtYmVy KCkgT1ZFUiAoKSk7CitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IERFRklORQorTElORSAyOiAuLi4gUk9XIEFORCAxIEZPTExPV0lORyBQQVRURVJOIChBKykgREVG SU5FIEEgQVMgMSA+IHJvd19udW1iZXIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBTdWJxdWVyeSBpbiBERUZJTkUg aXMgbm90IHN1cHBvcnRlZAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCkBA IC0zOTI1LDYgKzM5NzUsMzkgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9wbGFuCiAoNyByb3dzKQogCistLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiBy ZWx1Y3RhbnQgR1JPVVAgY2hpbGQgKCgoQSBCKXsyfT8pezN9KSBzdGF5cyBuZXN0ZWQKKy0tIGEg cmVsdWN0YW50IHF1YW50aWZpZXIgb24gYSBHUk9VUCBpcyBub3Qgc3ViamVjdCB0byBtdWx0aXBs aWNhdGlvbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9N IHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKChBIEIp ezJ9Pyl7M30pIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46ICgoYSBiKXsyfT8pezN9CisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBRdWFudGlmaWVyIG11bHRp cGx5IGNvbnRyb2w6IGdyZWVkeSBHUk9VUCAoKChBIEIpezJ9KXszfSkgLT4gKGEgYil7Nn0KK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBCKXsyfSl7M30pIERF RklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIFBhdHRlcm46IChhIGIpezZ9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4g IFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCisoNyByb3dzKQorCiAtLSBRdWFudGlmaWVyIG11bHRpcGx5IHdpdGggY2hpbGQgcmFu Z2U6IChBezIsM30pezN9IC0+IGF7Niw5fQogLS0gb3V0ZXIgZXhhY3QsIGNoaWxkIHJhbmdlIC0g b3B0aW1pemF0aW9uIGFwcGxpZXMKIEVYUExBSU4gKENPU1RTIE9GRikKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9iYXNlLnNxbAppbmRleCA3ZGMxMzIzMmQ4OS4uY2VjN2VhMWU4ZGIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfYmFzZS5zcWwKQEAgLTIxNDUsNyArMjE0NSwxOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSshKQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDog U3ludGF4IGVycm9yCisKKy0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZyA0IHF1ZXJpZXMgc2hvdWxk IGJlIGFjY2VwdGVkCitTRUxFQ1QgRlJPTSBycHJfZXJyIFdJTkRPVyB3IEFTICggUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCAxIEZPTExPV0lORyBQQVRURVJOIChBKyAhKSBERUZJTkUgQSBB UyBUUlVFKTsKK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEErID8rKSBERUZJTkUgQSBBUyBU UlVFKTsKK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEEqID8rKSBERUZJTkUgQSBBUyBUUlVF KTsKK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEE/ID8/KSBERUZJTkUgQSBBUyBUUlVFKTsK KworLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nIDQgcmFuZ2UtcXVhbnRpZmllciBxdWVyaWVzIHNo b3VsZCBiZSBhY2NlcHRlZAorU0VMRUNUIEZST00gcnByX2VyciBXSU5ET1cgdyBBUyAoIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJTkcgUEFUVEVSTiAoQXsyfSAhKSBERUZJ TkUgQSBBUyBUUlVFKTsKK1NFTEVDVCBGUk9NIHJwcl9lcnIgV0lORE9XIHcgQVMgKCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEF7Mix9ICEpIERFRklO RSBBIEFTIFRSVUUpOworU0VMRUNUIEZST00gcnByX2VyciBXSU5ET1cgdyBBUyAoIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJTkcgUEFUVEVSTiAoQXssM30gISkgREVGSU5F IEEgQVMgVFJVRSk7CitTRUxFQ1QgRlJPTSBycHJfZXJyIFdJTkRPVyB3IEFTICggUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCAxIEZPTExPV0lORyBQQVRURVJOIChBezIsM30gISkgREVGSU5F IEEgQVMgVFJVRSk7CiAKIC0tIFVubWF0Y2hlZCBwYXJlbnRoZXNlcwogU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSBOT1RJQ0U7CkBAIC0yMTcwLDcgKzIxODEsNiBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FCiApOwotLS0gRXhwZWN0ZWQ6IFN5bnRheCBlcnJv cgogCiAtLSBFUlJPUjogZW1wdHkgUEFUVEVSTiBub3QgYWxsb3dlZAogU0VMRUNUIENPVU5UKCop IE9WRVIgdwpAQCAtMjE4MSw3ICsyMTkxLDYgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KCkKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IFN5bnRheCBlcnJv cgogCiAtLSBFUlJPUjogREVGSU5FIHdpdGhvdXQgUEFUVEVSTiAoUEFUVEVSTiBhbmQgREVGSU5F IG11c3QgYmUgdXNlZCB0b2dldGhlcikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTIxOTEs NyArMjIwMCw2IEBAIFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0g RXhwZWN0ZWQ6IFN5bnRheCBlcnJvcgogCiAtLSBRdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZXMg KE5PVCBTVVBQT1JURUQpCiAKQEAgLTIzMTUsNiArMjMyMywxNCBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgREVGSU5FIEEgQVMgQ09VTlQoKikgPiAwCiApOwogCistLSBFUlJPUjogc2V0LXJldHVybmlu ZyBmdW5jdGlvbiBpbiBERUZJTkUgaXMgbm90IHN1cHBvcnRlZAorU0VMRUNUIEZST00gcnByX2Vy cgorV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5H IFBBVFRFUk4gKEErKSBERUZJTkUgQSBBUyAxID4gZ2VuZXJhdGVfc2VyaWVzKDEgLDIpKTsKKwor LS0gRVJST1I6IHdpbmRvdyBmdW5jdGlvbiBpbiBERUZJTkUgaXMgbm90IHN1cHBvcnRlZAorU0VM RUNUIEZST00gcnByX2VycgorV0lORE9XIHcgQVMgKCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIDEgRk9MTE9XSU5HIFBBVFRFUk4gKEErKSBERUZJTkUgQSBBUyAxID4gcm93X251bWJlcigp IE9WRVIgKCkpOworCiAtLSBTdWJxdWVyeSBpbiBERUZJTkUgaXMgbm90IHN1cHBvcnRlZAogU0VM RUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCkBAIC0yNTQ5LDYgKzI1NjUsMTkgQEAg U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCiBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAg ICAgICAgICAgICAgUEFUVEVSTiAoKEF7Mn0pezN9KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKIAor LS0gUXVhbnRpZmllciBOTyBtdWx0aXBseTogcmVsdWN0YW50IEdST1VQIGNoaWxkICgoKEEgQil7 Mn0/KXszfSkgc3RheXMgbmVzdGVkCistLSBhIHJlbHVjdGFudCBxdWFudGlmaWVyIG9uIGEgR1JP VVAgaXMgbm90IHN1YmplY3QgdG8gbXVsdGlwbGljYXRpb24KK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBCKXsyfT8pezN9KSBERUZJTkUgQSBBUyB2YWwgPiAw LCBCIEFTIHZhbCA+IDApOworCistLSBRdWFudGlmaWVyIG11bHRpcGx5IGNvbnRyb2w6IGdyZWVk eSBHUk9VUCAoKChBIEIpezJ9KXszfSkgLT4gKGEgYil7Nn0KK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBCKXsyfSl7M30pIERFRklORSBBIEFTIHZhbCA+IDAs IEIgQVMgdmFsID4gMCk7CisKIC0tIFF1YW50aWZpZXIgbXVsdGlwbHkgd2l0aCBjaGlsZCByYW5n ZTogKEF7MiwzfSl7M30gLT4gYXs2LDl9CiAtLSBvdXRlciBleGFjdCwgY2hpbGQgcmFuZ2UgLSBv cHRpbWl6YXRpb24gYXBwbGllcwogRVhQTEFJTiAoQ09TVFMgT0ZGKQotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0066-Tidy-up-row-pattern-recognition-regression-test-c.txt" Content-Disposition: attachment; filename="nocfbot-0066-Tidy-up-row-pattern-recognition-regression-test-c.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64woh265 RnJvbSA1MjIxNzg0YWM0NjliYjIxM2ZhZTI4NTNiZWFiN2Y1YjJiNDU2MmNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMTY6MjI6MTYgKzA5MDAKU3ViamVjdDogW1BBVENIIDY2LzY4XSBU aWR5IHVwIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHJlZ3Jlc3Npb24gdGVzdAogY29tbWVudHMK CkRyb3AgdGhlICItLSBFeHBlY3RlZDogRVJST1I6IC4uLiIgY29tbWVudHMgdGhhdCByZXBlYXQg ZXhhY3QgZXJyb3IgdGV4dAoodGhleSBnbyBzdGFsZTsgdGhlIC5vdXQgYWxyZWFkeSBoYXMgdGhl IHJlYWwgZXJyb3IpIGFuZCByZXdvcmQgY29tbWVudHMKdGhhdCBlbWJlZGRlZCBsaXRlcmFsIGxp bWl0cy4gIFJlbmFtZSB0aGUgIkphY29iJ3MgUGF0dGVybnMiIHNlY3Rpb24gYW5kCmNsYXJpZnkg dGhlIHNlcmlhbGl6YXRpb24gc2VjdGlvbidzIGRlcGFyc2UvcmUtcGFyc2Ugcm91bmQtdHJpcCBp bnRlbnQuCgpUZXN0IGNvbW1lbnRzIG9ubHk7IHJwcl9iYXNlLm91dCByZWdlbmVyYXRlZCwgbm8g b3V0cHV0IGNoYW5nZXMuCi0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQgfCAxNjkgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9iYXNlLnNxbCAgICAgIHwgMTg0ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDI1MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDFmY2IyY2UyMmYwLi5mMTc2NzMwNWQwNiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTEyLDcgKzEyLDcgQEAK IC0tICAgUXVhbnRpZmllcnMgVGVzdHMKIC0tICAgTmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMK IC0tICAgU0tJUCBUTyAvIElOSVRJQUwgVGVzdHMKLS0tICAgU2VyaWFsaXphdGlvbi9EZXNlcmlh bGl6YXRpb24gVGVzdHMgKG9iamVjdHMga2VwdCBmb3IgcGdfdXBncmFkZS9wZ19kdW1wKQorLS0g ICBTZXJpYWxpemF0aW9uL0Rlc2VyaWFsaXphdGlvbiBUZXN0cwogLS0gICBHbHVlZCBRdWFudGlm aWVyIC8gQWx0ZXJuYXRpb24gVGVzdHMKIC0tICAgRXJyb3IgQ2FzZXMgVGVzdHMKIC0tICAgV2lu ZG93IERlZHVwbGljYXRpb24gVGVzdHMKQEAgLTM0LDcgKzM0LDcgQEAKIC0tICAgRXJyb3IgTGlt aXQgVGVzdHMKIC0tCiAtLSBDb250cmlidXRlZCBUZXN0czoKLS0tICAgSmFjb2IncyBQYXR0ZXJu cworLS0gICBCYXNpYyBQYXR0ZXJuIE1hdGNoaW5nCiAtLSAgIFBhdGhvbG9naWNhbCBQYXR0ZXJu cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CkBAIC01MCw2ICs1 MCw3IEBAIENSRUFURSBUQUJMRSBycHJfa2V5d29yZHMgKAogICAgIHBhc3QgSU5ULCAgICAgICAg LS0gUEFTVCBrZXl3b3JkCiAgICAgcGF0dGVybiBJTlQsICAgICAtLSBQQVRURVJOIGtleXdvcmQK ICAgICBzZWVrIElOVCwgICAgICAgIC0tIFNFRUsga2V5d29yZAorLS0gRVJST1I6IFNFRUsgaXMg bm90IHN1cHBvcnRlZAogICAgIHNraXAgSU5UICAgICAgICAgLS0gU0tJUCBrZXl3b3JkIChwcmUt ZXhpc3RpbmcpCiApOwogSU5TRVJUIElOVE8gcnByX2tleXdvcmRzIFZBTFVFUyAoMSwgMTAsIDIw LCAzMCwgNDAsIDUwLCA2MCk7CkBAIC0yMjQsNyArMjI1LDcgQEAgRFJPUCBUQUJMRSBycHJfYXV0 bzsKIC0tIER1cGxpY2F0ZSB2YXJpYWJsZSBuYW1lcwogQ1JFQVRFIFRBQkxFIHJwcl9kdXAgKGlk IElOVCk7CiBJTlNFUlQgSU5UTyBycHJfZHVwIFZBTFVFUyAoMSksICgyKTsKLS0tIER1cGxpY2F0 ZSBERUZJTkUgZW50cmllcworLS0gRHVwbGljYXRlIERFRklORSB2YXJpYWJsZSBuYW1lIGlzIG5v dCBhbGxvd2VkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9kdXAKIFdJTkRPVyB3 IEFTICgKQEAgLTIzNiwxMiArMjM3LDExIEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgREVGSU5F IHZhcmlhYmxlICJhIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlCiBMSU5FIDc6ICAgICBERUZJTkUg QSBBUyBpZCA+IDAsIEEgQVMgaWQgPCAxMAogICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVj dGVkOiBFUlJPUjogcm93IHBhdHRlcm4gZGVmaW5pdGlvbiB2YXJpYWJsZSBuYW1lICJhIiBhcHBl YXJzIG1vcmUgdGhhbiBvbmNlIGluIERFRklORSBjbGF1c2UKIERST1AgVEFCTEUgcnByX2R1cDsK IC0tIEJvb2xlYW4gY29lcmNpb24KIENSRUFURSBUQUJMRSBycHJfYm9vbCAoaWQgSU5ULCBmbGFn IEJPT0xFQU4pOwogSU5TRVJUIElOVE8gcnByX2Jvb2wgVkFMVUVTICgxLCB0cnVlKSwgKDIsIGZh bHNlKTsKLS0tIE5vbi1ib29sZWFuIGV4cHJlc3Npb24KKy0tIERFRklORSBjbGF1c2UgbXVzdCBi ZSBhIGJvb2xlYW4gZXhwcmVzc2lvbgogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJf Ym9vbAogV0lORE9XIHcgQVMgKApAQCAtMjUzLDcgKzI1Myw2IEBAIFdJTkRPVyB3IEFTICgKIEVS Uk9SOiAgYXJndW1lbnQgb2YgREVGSU5FIG11c3QgYmUgdHlwZSBib29sZWFuLCBub3QgdHlwZSBp bnRlZ2VyCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBpZAogICAgICAgICAgICAgICAgICAgICAg ICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBhcmd1bWVudCBvZiBERUZJTkUgbXVzdCBiZSB0eXBl IGJvb2xlYW4KIC0tIEJvb2xlYW4gY29sdW1uIHJlZmVyZW5jZQogU0VMRUNUIGlkLCBmbGFnLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CiBGUk9NIHJwcl9ib29sCkBAIC0zOTMsOCArMzkyLDcgQEAg T1JERVIgQlkgaWQ7CiAgIDYgfCAgMzAgfCAgIDEKICg2IHJvd3MpCiAKLS0tIEludmFsaWQgZnJh bWUgc3RhcnQgcG9zaXRpb25zCi0tLSBOb3Qgc3RhcnRpbmcgYXQgQ1VSUkVOVCBST1cKKy0tIEVS Uk9SOiBmcmFtZSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93IHdoZW4gcm93IHBhdHRlcm4gcmVj b2duaXRpb24gaXMgdXNlZAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUK IFdJTkRPVyB3IEFTICgKQEAgLTQwOCw3ICs0MDYsNiBAQCBMSU5FIDU6ICAgICBST1dTIEJFVFdF RU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAg ICAgXgogREVUQUlMOiAgQ3VycmVudCBmcmFtZSBzdGFydHMgd2l0aCBVTkJPVU5ERUQgUFJFQ0VE SU5HLgogSElOVDogIFVzZTogUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAuLi4KLS0tIEV4 cGVjdGVkOiBFUlJPUjogRlJBTUUgbXVzdCBzdGFydCBhdCBjdXJyZW50IHJvdyB3aGVuIHJvdyBw YXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKIC0tIEVYQ0xVREUgb3B0aW9ucwogLS0gRVhDTFVE RSBub3QgcGVybWl0dGVkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC00MjUsNyArNDIyLDYg QEAgTElORSA2OiAgICAgRVhDTFVERSBDVVJSRU5UIFJPVwogICAgICAgICAgICAgXgogREVUQUlM OiAgRnJhbWUgZGVmaW5pdGlvbiBpbmNsdWRlcyBFWENMVURFIENVUlJFTlQgUk9XLgogSElOVDog IFJlbW92ZSB0aGUgRVhDTFVERSBjbGF1c2UgZnJvbSB0aGUgd2luZG93IGRlZmluaXRpb24uCi0t LSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRVhDTFVERSBvcHRpb25zIHdpdGggcm93IHBh dHRlcm4gcmVjb2duaXRpb24KIC0tIEVYQ0xVREUgR1JPVVAgbm90IHBlcm1pdHRlZAogU0VMRUNU IENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUKQEAgLTQ0MSw3ICs0MzcsNiBAQCBMSU5F IDY6ICAgICBFWENMVURFIEdST1VQCiAgICAgICAgICAgICBeCiBERVRBSUw6ICBGcmFtZSBkZWZp bml0aW9uIGluY2x1ZGVzIEVYQ0xVREUgR1JPVVAuCiBISU5UOiAgUmVtb3ZlIHRoZSBFWENMVURF IGNsYXVzZSBmcm9tIHRoZSB3aW5kb3cgZGVmaW5pdGlvbi4KLS0tIEV4cGVjdGVkOiBFUlJPUjog Y2Fubm90IHVzZSBFWENMVURFIG9wdGlvbnMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgog LS0gRVhDTFVERSBUSUVTIG5vdCBwZXJtaXR0ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZS T00gcnByX2ZyYW1lCkBAIC00NTcsOCArNDUyLDcgQEAgTElORSA2OiAgICAgRVhDTFVERSBUSUVT CiAgICAgICAgICAgICBeCiBERVRBSUw6ICBGcmFtZSBkZWZpbml0aW9uIGluY2x1ZGVzIEVYQ0xV REUgVElFUy4KIEhJTlQ6ICBSZW1vdmUgdGhlIEVYQ0xVREUgY2xhdXNlIGZyb20gdGhlIHdpbmRv dyBkZWZpbml0aW9uLgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEVYQ0xVREUgb3B0 aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCi0tLSBSQU5HRSBmcmFtZSBub3Qgc3Rh cnRpbmcgYXQgQ1VSUkVOVCBST1cKKy0tIHJhbmdlIGZyYW1lIGlzIG5vdCBhbGxvd2VkIHdpdGgg UlBSCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9mcmFtZQogV0lORE9XIHcgQVMg KApAQCAtNDcxLDggKzQ2NSw3IEBAIEVSUk9SOiAgY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gUkFO R0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogTElORSA1OiAgICAgUkFOR0UgQkVUV0VF TiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSU4uLi4KICAgICAgICAg ICAgIF4KIEhJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5u b3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCi0t LSBHUk9VUFMgZnJhbWUgbm90IHN0YXJ0aW5nIGF0IENVUlJFTlQgUk9XCistLSBHUk9VUFMgZnJh bWUgaXMgbm90IGFsbG93ZWQgd2l0aCBSUFIKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00g cnByX2ZyYW1lCiBXSU5ET1cgdyBBUyAoCkBAIC00ODUsOCArNDc4LDcgQEAgRVJST1I6ICBjYW5u b3QgdXNlIEZSQU1FIG9wdGlvbiBHUk9VUFMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgog TElORSA1OiAgICAgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VO REVEIEZPTExPV0kuLi4KICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgot LS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBHUk9VUFMgd2l0aCBy b3cgcGF0dGVybiByZWNvZ25pdGlvbgotLS0gU3RhcnRpbmcgd2l0aCBOIFBSRUNFRElORworLS0g RVJST1I6IGZyYW1lIG11c3Qgc3RhcnQgYXQgY3VycmVudCByb3cgd2hlbiByb3cgcGF0dGVybiBy ZWNvZ25pdGlvbiBpcyB1c2VkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9mcmFt ZQogV0lORE9XIHcgQVMgKApAQCAtNTAwLDggKzQ5Miw3IEBAIExJTkUgNTogICAgIFJPV1MgQkVU V0VFTiAxIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAgICAgXgog REVUQUlMOiAgQ3VycmVudCBmcmFtZSBzdGFydHMgd2l0aCBvZmZzZXQgUFJFQ0VESU5HLgogSElO VDogIFVzZTogUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAuLi4KLS0tIEV4cGVjdGVkOiBF UlJPUjogRlJBTUUgbXVzdCBzdGFydCBhdCBjdXJyZW50IHJvdyB3aGVuIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uIGlzIHVzZWQKLS0tIFN0YXJ0aW5nIHdpdGggTiBGT0xMT1dJTkcKKy0tIEVSUk9S OiBmcmFtZSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93IHdpdGggUlBSCiBTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3CiBGUk9NIHJwcl9mcmFtZQogV0lORE9XIHcgQVMgKApAQCAtNTE1LDkgKzUwNiw3 IEBAIExJTkUgNTogICAgIFJPV1MgQkVUV0VFTiAxIEZPTExPV0lORyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogICAgICAgICAgICAgXgogREVUQUlMOiAgQ3VycmVudCBmcmFtZSBzdGFydHMgd2l0 aCBvZmZzZXQgRk9MTE9XSU5HLgogSElOVDogIFVzZTogUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCAuLi4KLS0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgbXVzdCBzdGFydCBhdCBjdXJyZW50 IHJvdyB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKLS0tIEZyYW1lIGVuZCBi b3VuZCBlZGdlIGNhc2VzCi0tLSBFbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5UIFJPVyBBTkQgMSBQ UkVDRURJTkcKKy0tIEVSUk9SOiBlbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5UIFJPVyBBTkQgMSBQ UkVDRURJTkcKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2ZyYW1lCiBXSU5ET1cg dyBBUyAoCkBAIC01MjksOCArNTE4LDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBmcmFtZSBz dGFydGluZyBmcm9tIGN1cnJlbnQgcm93IGNhbm5vdCBoYXZlIHByZWNlZGluZyByb3dzCiBMSU5F IDU6ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgUFJFQ0VESU5HCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjog ZnJhbWUgc3RhcnRpbmcgZnJvbSBjdXJyZW50IHJvdyBjYW5ub3QgaGF2ZSBwcmVjZWRpbmcgcm93 cwotLS0gRW5kIGJlZm9yZSBzdGFydDogQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBQUkVDRURJ TkcKKy0tIEVSUk9SOiBlbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IFBSRUNFRElORwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJhbWUKIFdJTkRP VyB3IEFTICgKQEAgLTU0Miw3ICs1MzAsNiBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIGZyYW1l IGVuZCBjYW5ub3QgYmUgVU5CT1VOREVEIFBSRUNFRElORwogTElORSA1OiAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgUFJFQ0VESU5HCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogZnJhbWUgZW5k IGNhbm5vdCBiZSBVTkJPVU5ERUQgUFJFQ0VESU5HCiAtLSBTaW5nbGUgcm93IGZyYW1lOiBDVVJS RU5UIFJPVyBBTkQgQ1VSUkVOVCBST1cgaXMgcmVqZWN0ZWQgKHRoZSBzdGFuZGFyZAogLS0gYWxs b3dzIG9ubHkgVU5CT1VOREVEIEZPTExPV0lORyBvciBhIHBvc2l0aXZlIG9mZnNldCBGT0xMT1dJ TkcpLgogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKQEAgLTU1OSw3ICs1 NDYsNiBAQCBFUlJPUjogIGNhbm5vdCB1c2UgQ1VSUkVOVCBST1cgYXMgZnJhbWUgZW5kIHdpdGgg cm93IHBhdHRlcm4gcmVjb2duaXRpb24KIExJTkUgNTogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgQ1VSUkVOVCBST1cKICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2UgVU5CT1VOREVE IEZPTExPV0lORyBvciBhIHBvc2l0aXZlIG9mZnNldCBGT0xMT1dJTkcuCi0tLSBFeHBlY3RlZDog RVJST1I6IGNhbm5vdCB1c2UgQ1VSUkVOVCBST1cgYXMgZnJhbWUgZW5kIHdpdGggcm93IHBhdHRl cm4gcmVjb2duaXRpb24KIC0tIFplcm8gb2Zmc2V0OiBDVVJSRU5UIFJPVyBBTkQgMCBGT0xMT1dJ TkcgZGVub3RlcyB0aGUgc2FtZSBvbmUtcm93IGZyYW1lCiAtLSBhbmQgaXMgbGlrZXdpc2UgcmVq ZWN0ZWQgKGNhdWdodCBhdCBleGVjdXRpb24gdGltZSkuCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudApAQCAtNTczLDcgKzU1OSw2IEBAIFdJTkRPVyB3IEFTICgKICkKIE9S REVSIEJZIGlkOwogRVJST1I6ICBmcmFtZSBlbmRpbmcgb2Zmc2V0IG11c3QgYmUgcG9zaXRpdmUg d2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBmcmFtZSBl bmRpbmcgb2Zmc2V0IG11c3QgYmUgcG9zaXRpdmUgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlv bgogLS0gQSBub24tY29uc3RhbnQgZnJhbWUgZW5kIG9mZnNldCBpcyBhbGxvd2VkOyBhIHplcm8g dmFsdWUgaXMgc3RpbGwgcmVqZWN0ZWQsCiAtLSB0aGlzIHRpbWUgYXQgZXhlY3V0aW9uIHRpbWUg KGEgbGl0ZXJhbCBjYW5ub3QgZXhlcmNpc2UgdGhhdCBwYXRoKS4KIFBSRVBBUkUgcnByX2VuZF9v ZmZzZXQoaW50OCkgQVMKQEAgLTYwMCw3ICs1ODUsNiBAQCBFWEVDVVRFIHJwcl9lbmRfb2Zmc2V0 KDIpOwogCiBFWEVDVVRFIHJwcl9lbmRfb2Zmc2V0KDApOwogRVJST1I6ICBmcmFtZSBlbmRpbmcg b2Zmc2V0IG11c3QgYmUgcG9zaXRpdmUgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgotLS0g RXhwZWN0ZWQ6IEVSUk9SOiBmcmFtZSBlbmRpbmcgb2Zmc2V0IG11c3QgYmUgcG9zaXRpdmUgd2l0 aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogREVBTExPQ0FURSBycHJfZW5kX29mZnNldDsKIC0t IExhcmdlIG9mZnNldDogQ1VSUkVOVCBST1cgQU5EIDEwMDAgRk9MTE9XSU5HCiBTRUxFQ1QgaWQs IHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApAQCAtNjY5LDcgKzY1Myw3IEBAIE9SREVSIEJZ IGlkOwogICA2IHwgIDMwIHwgICAxCiAoNiByb3dzKQogCi0tLSBSQU5HRSBmcmFtZSB3aXRoIFJQ UiAobm90IHBlcm1pdHRlZCkKKy0tIHJhbmdlIGZyYW1lIGlzIG5vdCBhbGxvd2VkIHdpdGggUlBS CiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfZnJhbWUK IFdJTkRPVyB3IEFTICgKQEAgLTY4NCw3ICs2NjgsNiBAQCBFUlJPUjogIGNhbm5vdCB1c2UgRlJB TUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIExJTkUgNTogICAg IFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORwogICAgICAgICAgICAg XgogSElOVDogIFVzZSBST1dTIGluc3RlYWQuCi0tLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1 c2UgRlJBTUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIC0tIEdS T1VQUyBmcmFtZSB3aXRoIFJQUiAobm90IHBlcm1pdHRlZCkKIFNFTEVDVCBpZCwgdmFsLCBDT1VO VCgqKSBPVkVSIHcgYXMgY250CiBGUk9NIHJwcl9mcmFtZQpAQCAtNzAwLDcgKzY4Myw2IEBAIEVS Uk9SOiAgY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gR1JPVVBTIHdpdGggcm93IHBhdHRlcm4gcmVj b2duaXRpb24KIExJTkUgNTogICAgIEdST1VQUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAxIEZP TExPV0lORwogICAgICAgICAgICAgXgogSElOVDogIFVzZSBST1dTIGluc3RlYWQuCi0tLSBFeHBl Y3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIEdST1VQUyB3aXRoIHJvdyBwYXR0 ZXJuIHJlY29nbml0aW9uCiBEUk9QIFRBQkxFIHJwcl9mcmFtZTsKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUEFSVElU SU9OIEJZICsgRlJBTUUgVGVzdHMKQEAgLTc0OSw3ICs3MzEsNiBAQCBFUlJPUjogIGNhbm5vdCB1 c2UgRlJBTUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIExJTkUg NjogICAgIFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORwogICAgICAg ICAgICAgXgogSElOVDogIFVzZSBST1dTIGluc3RlYWQuCi0tLSBFeHBlY3RlZDogRVJST1I6IGNh bm5vdCB1c2UgRlJBTUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24K IERST1AgVEFCTEUgcnByX3BhcnRpdGlvbjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUEFUVEVSTiBTeW50YXggVGVz dHMKQEAgLTEwMTEsNyArOTkyLDYgQEAgT1JERVIgQlkgaWQ7CiBFUlJPUjogIHF1YW50aWZpZXIg Ym91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKIExJTkUgNjogICAgIFBBVFRF Uk4gKEF7MH0gQikKICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9S OiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMTQ3NDgzNjQ2CiAtLSB7 MCwwfSBpcyBub3QgYWxsb3dlZCAobWF4IG11c3QgYmUgPj0gMSkKIFNFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CiBGUk9NIHJwcl9xdWFudApAQCAtMTAyNSw3ICsxMDA1LDYg QEAgT1JERVIgQlkgaWQ7CiBFUlJPUjogIHF1YW50aWZpZXIgYm91bmRzIG11c3QgYmUgYmV0d2Vl biAwIGFuZCAyMTQ3NDgzNjQ2IHdpdGggbWF4ID49IDEKIExJTkUgNjogICAgIFBBVFRFUk4gKEF7 MCwwfSBCKQogICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHF1 YW50aWZpZXIgYm91bmRzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2IHdpdGggbWF4 ID49IDEKIC0tIHswLDF9IChlcXVpdmFsZW50IHRvID8pCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfcXVhbnQKQEAgLTExNTUsNiArMTEzNCw3IEBAIERS T1AgVEFCTEUgcnByX3F1YW50OwogQ1JFQVRFIFRBQkxFIHJwcl9yZWx1Y3RhbnQgKGlkIElOVCwg dmFsIElOVCk7CiBJTlNFUlQgSU5UTyBycHJfcmVsdWN0YW50IFZBTFVFUyAoMSwgMTApLCAoMiwg MjApLCAoMywgMzApOwogLS0gKj8gKHplcm8gb3IgbW9yZSwgcmVsdWN0YW50KQorLS0gUmVsdWN0 YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCopIE9W RVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMTcwLDggKzExNTAs OCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDAKICgzIHJvd3MpCiAKLS0tIFJlbHVjdGFudCBxdWFu dGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tICs/IChvbmUgb3IgbW9yZSwgcmVsdWN0 YW50KQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VM RUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBA IC0xMTg3LDggKzExNjcsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDEKICgzIHJvd3MpCiAKLS0t IFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tID8/ICh6ZXJv IG9yIG9uZSwgcmVsdWN0YW50KQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9y dGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBX SU5ET1cgdyBBUyAoCkBAIC0xMjA0LDggKzExODQsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDAK ICgzIHJvd3MpCiAKLS0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0 Y2gKIC0tIHtuLH0/IChuIG9yIG1vcmUsIHJlbHVjdGFudCkKKy0tIFJlbHVjdGFudCBxdWFudGlm aWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00g cnByX3JlbHVjdGFudAogV0lORE9XIHcgQVMgKApAQCAtMTIyMSw4ICsxMjAxLDggQEAgV0lORE9X IHcgQVMgKAogICAgICAwCiAoMyByb3dzKQogCi0tLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJl ZmVyIHNob3J0ZXN0IG1hdGNoCiAtLSB7bixtfT8gKG4gdG8gbSwgcmVsdWN0YW50KQorLS0gUmVs dWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCop IE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjM4LDggKzEy MTgsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDEKICgzIHJvd3MpCiAKLS0tIFJlbHVjdGFudCBx dWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIHtufT8gKGV4YWN0bHkgbiwgcmVs dWN0YW50KQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAog U0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAo CkBAIC0xMjU1LDggKzEyMzUsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDAKICgzIHJvd3MpCiAK LS0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIHssbX0/ ICh1cCB0byBtLCByZWx1Y3RhbnQpIC0gQ09NUExFVEVMWSBVTlRFU1RFRCBSVUxFIQorLS0gUmVs dWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCop IE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjcyLDggKzEy NTIsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDAKICgzIHJvd3MpCiAKLS0tIFJlbHVjdGFudCBx dWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKLS0tIEludmFsaWQgcmVsdWN0YW50IHBh dHRlcm5zICh3cm9uZyB0b2tlbiBhZnRlciBxdWFudGlmaWVyKQogLS0gezJ9KyAoc2hvdWxkIGJl IHsyfT8gbm90IHsyfSspCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3Rh bnQKQEAgLTEyODYsNyArMTI2NCw2IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgc3ludGF4IGVy cm9yIGF0IG9yIG5lYXIgIisiCiBMSU5FIDY6ICAgICBQQVRURVJOIChBezJ9KykKICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICIrIgogLS0gezIsfSogKHNob3VsZCBiZSB7Mix9PyBub3QgezIsfSopCiBTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKQEAgLTEyOTksNyArMTI3Niw2IEBA IFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioiCiBMSU5F IDY6ICAgICBQQVRURVJOIChBezIsfSopCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0t IEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioiCiAtLSB7LDN9KiAo c2hvdWxkIGJlIHssM30/IG5vdCB7LDN9KikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00g cnByX3JlbHVjdGFudApAQCAtMTMxMiw3ICsxMjg4LDYgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6 ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKIExJTkUgNjogICAgIFBBVFRFUk4gKEF7LDN9 KikKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50 YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKIC0tIHsxLDN9KyAoc2hvdWxkIGJlIHsxLDN9PyBub3Qg ezEsM30rKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0x MzI1LDkgKzEzMDAsOCBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICIrIgogTElORSA2OiAgICAgUEFUVEVSTiAoQXsxLDN9KykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5l YXIgIisiCiAtLSBCb3VuZGFyeSBlcnJvcnMgaW4gcmVsdWN0YW50IHF1YW50aWZpZXJzCi0tLSB7 LTF9PyAobmVnYXRpdmUgYm91bmQpCistLSBuZWdhdGl2ZSBib3VuZCBpcyBub3QgYWxsb3dlZAog U0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAo CkBAIC0xMzM5LDggKzEzMTMsNyBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICItIgogTElORSA2OiAgICAgUEFUVEVSTiAoQXstMX0/KQogICAgICAgICAg ICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICItIgotLS0gezIxNDc0ODM2NDd9PyAoSU5UX01BWCkKKy0tIEVSUk9SOiBxdWFudGlmaWVy IGJvdW5kIGV4Y2VlZHMgbGltaXRzCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9y ZWx1Y3RhbnQKIFdJTkRPVyB3IEFTICgKQEAgLTEzNTIsOCArMTMyNSw3IEBAIFdJTkRPVyB3IEFT ICgKIEVSUk9SOiAgcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4 MzY0NgogTElORSA2OiAgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3fT8pCiAgICAgICAgICAgICAg ICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJl IGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgotLS0gey0xLH0/IChuZWdhdGl2ZSBsb3dlciBib3Vu ZCkKKy0tIG5lZ2F0aXZlIGxvd2VyIGJvdW5kIGlzIG5vdCBhbGxvd2VkCiBTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRPVyB3IEFTICgKQEAgLTEzNjUsOCAr MTMzNyw3IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIg Ii0iCiBMSU5FIDY6ICAgICBQQVRURVJOIChBey0xLH0/KQogICAgICAgICAgICAgICAgICAgICAg ICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICItIgotLS0g ezIxNDc0ODM2NDcsfT8gKElOVF9NQVggbG93ZXIgYm91bmQpCistLSBFUlJPUjogcXVhbnRpZmll ciBsb3dlciBib3VuZCBleGNlZWRzIGxpbWl0cwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJP TSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMzc4LDggKzEzNDksNyBAQCBXSU5E T1cgdyBBUyAoCiBFUlJPUjogIHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5k IDIxNDc0ODM2NDYKIExJTkUgNjogICAgIFBBVFRFUk4gKEF7MjE0NzQ4MzY0Nyx9PykKICAgICAg ICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5k IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2Ci0tLSB7LDB9PyAoemVybyB1cHBlciBi b3VuZCkKKy0tIHplcm8gdXBwZXIgYm91bmQgaXMgbm90IGFsbG93ZWQKIFNFTEVDVCBDT1VOVCgq KSBPVkVSIHcKIEZST00gcnByX3JlbHVjdGFudAogV0lORE9XIHcgQVMgKApAQCAtMTM5MSw4ICsx MzYxLDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUg YmV0d2VlbiAxIGFuZCAyMTQ3NDgzNjQ2CiBMSU5FIDY6ICAgICBQQVRURVJOIChBeywwfT8pCiAg ICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIg Ym91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKLS0tIHssMjE0NzQ4MzY0N30/ IChJTlRfTUFYIHVwcGVyIGJvdW5kKQorLS0gRVJST1I6IHssMjE0NzQ4MzY0N30/ICh1cHBlciBi b3VuZCBpbiByYW5nZSBleGNlZWRzIGxpbWl0cykKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZS T00gcnByX3JlbHVjdGFudAogV0lORE9XIHcgQVMgKApAQCAtMTQwNCw4ICsxMzczLDcgQEAgV0lO RE9XIHcgQVMgKAogRVJST1I6ICBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFu ZCAyMTQ3NDgzNjQ2CiBMSU5FIDY6ICAgICBQQVRURVJOIChBeywyMTQ3NDgzNjQ3fT8pCiAgICAg ICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91 bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKLS0tIHstMSwzfT8gKG5lZ2F0aXZl IGxvd2VyIGluIHJhbmdlKQorLS0gRVJST1I6IHstMSwzfT8gKG5lZ2F0aXZlIGxvd2VyIGJvdW5k IGluIHJhbmdlIGlzIG5vdCBhbGxvd2VkKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBy cHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xNDE3LDggKzEzODUsNyBAQCBXSU5ET1cg dyBBUyAoCiBFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICItIgogTElORSA2OiAgICAg UEFUVEVSTiAoQXstMSwzfT8pCiAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVk OiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIi0iCi0tLSB7MSwyMTQ3NDgzNjQ3fT8g KElOVF9NQVggdXBwZXIgaW4gcmFuZ2UpCistLSBFUlJPUjogezEsMjE0NzQ4MzY0N30/ICh1cHBl ciBib3VuZCBpbiByYW5nZSBleGNlZWRzIGxpbWl0cykKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcK IEZST00gcnByX3JlbHVjdGFudAogV0lORE9XIHcgQVMgKApAQCAtMTQzMCw4ICsxMzk3LDcgQEAg V0lORE9XIHcgQVMgKAogRVJST1I6ICBxdWFudGlmaWVyIGJvdW5kcyBtdXN0IGJlIGJldHdlZW4g MCBhbmQgMjE0NzQ4MzY0NiB3aXRoIG1heCA+PSAxCiBMSU5FIDY6ICAgICBQQVRURVJOIChBezEs MjE0NzQ4MzY0N30/KQogICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJS T1I6IHF1YW50aWZpZXIgYm91bmRzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2IHdp dGggbWF4ID49IDEKLS0tIHs1LDN9PyAobWluID4gbWF4KQorLS0gRVJST1I6IHs1LDN9PyAobWlu ID4gbWF4IGlzIG5vdCBhbGxvd2VkKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJf cmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xNDQzLDEwICsxNDA5LDEwIEBAIFdJTkRPVyB3 IEFTICgKIEVSUk9SOiAgcXVhbnRpZmllciBtaW5pbXVtIGJvdW5kIG11c3Qgbm90IGV4Y2VlZCBt YXhpbXVtCiBMSU5FIDY6ICAgICBQQVRURVJOIChBezUsM30/KQogICAgICAgICAgICAgICAgICAg ICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgbWluaW11bSBib3VuZCBtdXN0 IG5vdCBleGNlZWQgbWF4aW11bQogLS0gVG9rZW4tc2VwYXJhdGVkIHJlbHVjdGFudCBxdWFudGlm aWVycyAoc3BhY2UgYmV0d2VlbiBxdWFudGlmaWVyIGFuZCA/KQogLS0gVGhlc2UgbWF5IGJlIHRv a2VuaXplZCBkaWZmZXJlbnRseSBieSB0aGUgbGV4ZXIKIC0tICogPyAodG9rZW4gc2VwYXJhdGVk KQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNU IENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0x NDYyLDggKzE0MjgsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDAKICgzIHJvd3MpCiAKLS0tIFJl bHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tICsgPyAodG9rZW4g c2VwYXJhdGVkKQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRj aAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBB UyAoCkBAIC0xNDc5LDggKzE0NDUsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDEKICgzIHJvd3Mp CiAKLS0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIHsy LH0gPyAodG9rZW4gc2VwYXJhdGVkKQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBz aG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50 CiBXSU5ET1cgdyBBUyAoCkBAIC0xNDk2LDggKzE0NjIsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAg IDAKICgzIHJvd3MpCiAKLS0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3Qg bWF0Y2gKLS0tIEludmFsaWQgdG9rZW4gY29tYmluYXRpb25zCiAtLSAqICsgKGludmFsaWQgY29t YmluYXRpb24pCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKQEAg LTE1MTAsNyArMTQ3NCw2IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIisiCiBMSU5FIDY6ICAgICBQQVRURVJOIChBKiArKQogICAgICAgICAgICAgICAg ICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi KyIKIC0tICsgKiAoaW52YWxpZCBjb21iaW5hdGlvbikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcK IEZST00gcnByX3JlbHVjdGFudApAQCAtMTUyMyw4ICsxNDg2LDggQEAgV0lORE9XIHcgQVMgKAog RVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKIExJTkUgNjogICAgIFBBVFRFUk4g KEErICopCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICIqIgogLS0gPyA/IChwYXJzZWQgYXMgPz8gcmVsdWN0YW50 IHF1YW50aWZpZXIpCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1h dGNoCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRPVyB3 IEFTICgKQEAgLTE1NDAsMTIgKzE1MDMsMTEgQEAgV0lORE9XIHcgQVMgKAogICAgICAwCiAoMyBy b3dzKQogCi0tLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiBE Uk9QIFRBQkxFIHJwcl9yZWx1Y3RhbnQ7CiAtLSBRdWFudGlmaWVyIGJvdW5kYXJ5IGNvbmRpdGlv bnMKIENSRUFURSBUQUJMRSBycHJfYm91bmRzIChpZCBJTlQpOwogSU5TRVJUIElOVE8gcnByX2Jv dW5kcyBWQUxVRVMgKDEpLCAoMik7Ci0tLSBtaW4gPiBtYXgKKy0tIEVSUk9SOiBxdWFudGlmaWVy IGxvd2VyIGJvdW5kIG11c3Qgbm90IGV4Y2VlZCB1cHBlciBib3VuZAogU0VMRUNUIENPVU5UKCop IE9WRVIgdwogRlJPTSBycHJfYm91bmRzCiBXSU5ET1cgdyBBUyAoCkBAIC0xNTU3LDcgKzE1MTks NiBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIHF1YW50aWZpZXIgbWluaW11bSBib3VuZCBtdXN0 IG5vdCBleGNlZWQgbWF4aW11bQogTElORSA2OiAgICAgUEFUVEVSTiAoQXs1LDN9KQogICAgICAg ICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgbWluaW11 bSBib3VuZCBtdXN0IG5vdCBleGNlZWQgbWF4aW11bQogLS0gTGFyZ2UgYm91bmRzCiBTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9ib3VuZHMKQEAgLTE2MDMsNyArMTU2NCw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICAgMAogKDIgcm93cykKIAotLS0gSU5UX01BWCA9IDIxNDc0ODM2NDcg KG92ZXIgbGltaXQpCistLSBFUlJPUjogcXVhbnRpZmllciBib3VuZCBleGNlZWRzIGxpbWl0cwog U0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfYm91bmRzCiBXSU5ET1cgdyBBUyAoCkBA IC0xNjE1LDkgKzE1NzYsOCBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIHF1YW50aWZpZXIgYm91 bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKIExJTkUgNjogICAgIFBBVFRFUk4g KEF7MjE0NzQ4MzY0N30pCiAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBF UlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0Ngog LS0ge24sfSBib3VuZGFyeSBlcnJvcnMKLS0tIE5lZ2F0aXZlIGxvd2VyIGJvdW5kIGluIHtuLH0K Ky0tIEVSUk9SOiBuZWdhdGl2ZSBsb3dlciBib3VuZCBpbiB7bix9IGlzIG5vdCBhbGxvd2VkCiBT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9ib3VuZHMKIFdJTkRPVyB3IEFTICgKQEAg LTE2MjksOCArMTU4OSw3IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIi0iCiBMSU5FIDY6ICAgICBQQVRURVJOIChBey0xLH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIg Ii0iCi0tLSBJTlRfTUFYIGluIHtuLH0KKy0tIEVSUk9SOiBxdWFudGlmaWVyIGxvd2VyIGJvdW5k IGV4Y2VlZHMgbGltaXRzCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9ib3VuZHMK IFdJTkRPVyB3IEFTICgKQEAgLTE2NDIsNyArMTYwMSw2IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9S OiAgcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjE0NzQ4MzY0NgogTElO RSA2OiAgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3LH0pCiAgICAgICAgICAgICAgICAgICAgICAg IF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4g MCBhbmQgMjE0NzQ4MzY0NgogLS0geyxtfSBib3VuZGFyeSBlcnJvcnMKIC0tIFplcm8gdXBwZXIg Ym91bmQgaW4geyxtfQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMTY1Niw4ICsxNjE0LDcg QEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2Vl biAxIGFuZCAyMTQ3NDgzNjQ2CiBMSU5FIDY6ICAgICBQQVRURVJOIChBeywwfSkKICAgICAgICAg ICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBt dXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgotLS0gSU5UX01BWCBpbiB7LG19CistLSBF UlJPUjogcXVhbnRpZmllciB1cHBlciBib3VuZCBleGNlZWRzIGxpbWl0cwogU0VMRUNUIENPVU5U KCopIE9WRVIgdwogRlJPTSBycHJfYm91bmRzCiBXSU5ET1cgdyBBUyAoCkBAIC0xNjY5LDcgKzE2 MjYsNiBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBi ZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKIExJTkUgNjogICAgIFBBVFRFUk4gKEF7LDIxNDc0ODM2 NDd9KQogICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFu dGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMTQ3NDgzNjQ2CiBEUk9QIFRBQkxF IHJwcl9ib3VuZHM7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tIE5hdmlnYXRpb24gRnVuY3Rpb25zIFRlc3RzIChQUkVW IC8gTkVYVCAvIEZJUlNUIC8gTEFTVCkKQEAgLTE3NTYsNyArMTcxMiw2IEBAIE9SREVSIEJZIGlk OwogRVJST1I6ICBjYW5ub3QgdXNlIHByZXYgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKIExJTkUg MTogU0VMRUNUIFBSRVYoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiAgICAg ICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgcHJldiBvdXRzaWRl IGEgREVGSU5FIGNsYXVzZQogLS0gTkVYVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0 aGFuIGluIERFRklORQogU0VMRUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcg YXMgY250CiBGUk9NIHJwcl9uYXYKQEAgLTE3NzIsNyArMTcyNyw2IEBAIE9SREVSIEJZIGlkOwog RVJST1I6ICBjYW5ub3QgdXNlIG5leHQgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKIExJTkUgMTog U0VMRUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiAgICAgICAg ICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgbmV4dCBvdXRzaWRlIGEg REVGSU5FIGNsYXVzZQogLS0gRklSU1QgZnVuY3Rpb24gLSByZWZlcmVuY2UgbWF0Y2hfc3RhcnQg cm93CiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfbmF2 CkBAIC0xODQxLDEzICsxNzk1LDExIEBAIFNFTEVDVCBGSVJTVChpZCksIGlkLCB2YWwgRlJPTSBy cHJfbmF2OwogRVJST1I6ICBjYW5ub3QgdXNlIGZpcnN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNl CiBMSU5FIDE6IFNFTEVDVCBGSVJTVChpZCksIGlkLCB2YWwgRlJPTSBycHJfbmF2OwogICAgICAg ICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIGZpcnN0IG91dHNpZGUg YSBERUZJTkUgY2xhdXNlCiAtLSBMQVNUIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRo YW4gaW4gREVGSU5FCiBTRUxFQ1QgTEFTVChpZCksIGlkLCB2YWwgRlJPTSBycHJfbmF2OwogRVJS T1I6ICBjYW5ub3QgdXNlIGxhc3Qgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKIExJTkUgMTogU0VM RUNUIExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKICAgICAgICAgICAgICAgIF4KLS0t IEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBsYXN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNl CiBEUk9QIFRBQkxFIHJwcl9uYXY7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFNLSVAgVE8gLyBJTklUSUFMIFRlc3Rz CkBAIC0yMDMzLDEyICsxOTg1LDEzIEBAIEVSUk9SOiAgU0VFSyBpcyBub3Qgc3VwcG9ydGVkCiBM SU5FIDY6ICAgICBTRUVLCiAgICAgICAgICAgICBeCiBISU5UOiAgVXNlIElOSVRJQUwgaW5zdGVh ZC4KLS0tIEV4cGVjdGVkOiBFUlJPUjogU0VFSyBpcyBub3Qgc3VwcG9ydGVkCi0tLSBISU5UOiBV c2UgSU5JVElBTCBpbnN0ZWFkLgogRFJPUCBUQUJMRSBycHJfc2VlazsKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2Vy aWFsaXphdGlvbi9EZXNlcmlhbGl6YXRpb24gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBSLWRlZmluaW5n IHZpZXdzIGFuZCB0YWJsZXMgaGVyZSBhcmUgaW50ZW50aW9uYWxseSBsZWZ0IGluIHBsYWNlIChu b3QKKy0tIGRyb3BwZWQpIHNvIHRoYXQgcGdfZHVtcC9wZ191cGdyYWRlIGV4ZXJjaXNlIHRoZSBk ZXBhcnNlLXRoZW4tcmUtcGFyc2UKKy0tIHJvdW5kLXRyaXAgb2YgdGhlIFJQUiB3aW5kb3cgY2xh dXNlLgogLS0gVmlldyBjcmVhdGlvbiBhbmQgZGVwYXJzaW5nCiBDUkVBVEUgVEFCTEUgcnByX3Nl cmlhbCAoaWQgSU5ULCB2YWwgSU5UKTsKIElOU0VSVCBJTlRPIHJwcl9zZXJpYWwgVkFMVUVTCkBA IC0zMzE3LDcgKzMyNzAsNiBAQCBEUk9QIFRBQkxFIHJwcl9nbHVlOwogRFJPUCBUQUJMRSBJRiBF WElTVFMgcnByX2VycjsKIENSRUFURSBUQUJMRSBycHJfZXJyIChpZCBJTlQsIHZhbCBJTlQpOwog SU5TRVJUIElOVE8gcnByX2VyciBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKLS0tIFN5bnRheCBl cnJvcnMKIC0tIEludmFsaWQgcXVhbnRpZmllciBzeW50YXgKIFNFTEVDVCBDT1VOVCgqKSBPVkVS IHcKIEZST00gcnByX2VycgpAQCAtMzM0Niw3ICszMjk4LDcgQEAgRVhDRVBUSU9OCiBFTkQgJCQ7 CiBOT1RJQ0U6ICBVbm1hdGNoZWQgcGFyZW50aGVzZXM6IEVYUEVDVEVEIEVSUk9SIC0gc3ludGF4 IGVycm9yIGF0IG9yIG5lYXIgIkFTIgogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5H OwotLS0gRW1wdHkgREVGSU5FCistLSBFUlJPUjogZW1wdHkgREVGSU5FIG5vdCBhbGxvd2VkCiBT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKIFdJTkRPVyB3IEFTICgKQEAgLTMz NTksNyArMzMxMSw3IEBAIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIikiCiBMSU5F IDg6ICk7CiAgICAgICAgIF4KIC0tIEV4cGVjdGVkOiBTeW50YXggZXJyb3IKLS0tIEVtcHR5IFBB VFRFUk4KKy0tIEVSUk9SOiBlbXB0eSBQQVRURVJOIG5vdCBhbGxvd2VkCiBTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKIFdJTkRPVyB3IEFTICgKQEAgLTMzNzIsNyArMzMyNCw3 IEBAIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIikiCiBMSU5FIDY6ICAgICBQQVRU RVJOICgpCiAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBFeHBlY3RlZDogU3ludGF4IGVycm9y Ci0tLSBERUZJTkUgd2l0aG91dCBQQVRURVJOIChQQVRURVJOIGFuZCBERUZJTkUgbXVzdCBiZSB1 c2VkIHRvZ2V0aGVyKQorLS0gRVJST1I6IERFRklORSB3aXRob3V0IFBBVFRFUk4gKFBBVFRFUk4g YW5kIERFRklORSBtdXN0IGJlIHVzZWQgdG9nZXRoZXIpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 CiBGUk9NIHJwcl9lcnIKIFdJTkRPVyB3IEFTICgKQEAgLTMzOTcsNyArMzM0OSw2IEBAIFdJTkRP VyB3IEFTICgKIEVSUk9SOiAgcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAi YS52YWwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVzZQogTElORSA3OiAgICAgREVG SU5FIEEgQVMgQS52YWwgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3Rl ZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImEudmFsIiBp cyBub3Qgc3VwcG9ydGVkCiAtLSBQQVRURVJOLW9ubHkgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6 IG5vdCBzdXBwb3J0ZWQgZXZlbiB3aXRob3V0IERFRklORSBlbnRyeQogU0VMRUNUIENPVU5UKCop IE9WRVIgdwogRlJPTSBycHJfZXJyCkBAIC0zNDEwLDcgKzMzNjEsNiBAQCBXSU5ET1cgdyBBUyAo CiBFUlJPUjogIHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImIudmFsIiBp cyBub3Qgc3VwcG9ydGVkIGluIERFRklORSBjbGF1c2UKIExJTkUgNzogICAgIERFRklORSBBIEFT IEIudmFsID4gMAogICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9S OiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBleHByZXNzaW9uICJiLnZhbCIgaXMgbm90IHN1 cHBvcnRlZAogLS0gREVGSU5FLW9ubHkgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IHN0aWxsIGEg cGF0dGVybiB2YXJpYWJsZSwgbm90IGEgcmFuZ2UgdmFyaWFibGUKIFNFTEVDVCBDT1VOVCgqKSBP VkVSIHcKIEZST00gcnByX2VycgpAQCAtMzQyMyw3ICszMzczLDYgQEAgV0lORE9XIHcgQVMgKAog RVJST1I6ICBERUZJTkUgdmFyaWFibGUgImIiIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4KIExJTkUg NzogICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgQi52YWwgPiAwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFi bGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImIudmFsIiBpcyBub3Qgc3VwcG9ydGVkCiAtLSBGUk9N LWNsYXVzZSByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IGFsbG93ZWQgKHByb2hp Yml0ZWQgYnkgSVNPL0lFQyAxOTA3NS01IDYuNSkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZS T00gcnByX2VycgpAQCAtMzQzNiw3ICszMzg1LDYgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBy YW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAicnByX2Vyci52YWwiIGlzIG5vdCBh bGxvd2VkIGluIERFRklORSBjbGF1c2UKIExJTkUgNzogICAgIERFRklORSBBIEFTIHJwcl9lcnIu dmFsID4gMAogICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBy YW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAicnByX2Vyci52YWwiIGlzIG5vdCBh bGxvd2VkCiAtLSBVbmtub3duIHF1YWxpZmllciAobmVpdGhlciBwYXR0ZXJuIHZhciBub3IgcmFu Z2UgdmFyKTogdGhlIERFRklORSBwcmUtY2hlY2sKIC0tIG11c3QgZmFsbCB0aHJvdWdoIHNvIHRo YXQgbm9ybWFsIGNvbHVtbiByZXNvbHV0aW9uIHByb2R1Y2VzIGEgc2Vuc2libGUgZXJyb3IuCiBT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0zNDUwLDcgKzMzOTgsNiBAQCBXSU5ET1cgdyBBUyAo CiBFUlJPUjogIG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJub3N1Y2giCiBM SU5FIDc6ICAgICBERUZJTkUgQSBBUyBub3N1Y2gudmFsID4gMAogICAgICAgICAgICAgICAgICAg ICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZv ciB0YWJsZSAibm9zdWNoIgogLS0gVW5xdWFsaWZpZWQgY29tcG9zaXRlIGZpZWxkIGFjY2VzcyBp biBERUZJTkUgd29ya3M6IG5vIHF1YWxpZmllciBtZWFucyBubwogLS0gcGF0dGVybi9yYW5nZS12 YXIgbmF2aWdhdGlvbiwgc28gdGhlIHByZS1jaGVjayBza2lwcyBhbmQgbm9ybWFsIHJlc29sdXRp b24KIC0tIGhhbmRsZXMgIihpdGVtcykuYW1vdW50IiB2aWEgQV9JbmRpcmVjdGlvbiBvbiB0aGUg Y3VycmVudCByb3cuCkBAIC0zNDg4LDcgKzM0MzUsNiBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjog IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4cHJlc3Npb24gImEuaXRlbXMiIGlzIG5vdCBz dXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVzZQogTElORSA3OiAgICAgREVGSU5FIEEgQVMgKEEuaXRl bXMpLmFtb3VudCA+IDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBleHByZXNzaW9uICJhLml0ZW1zIiBp cyBub3Qgc3VwcG9ydGVkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9jb21wb3Np dGUKIFdJTkRPVyB3IEFTICgKQEAgLTM1MDAsMTEgKzM0NDYsOSBAQCBXSU5ET1cgdyBBUyAoCiBF UlJPUjogIHJhbmdlIHZhcmlhYmxlIHF1YWxpZmllZCBleHByZXNzaW9uICJycHJfY29tcG9zaXRl Lml0ZW1zIiBpcyBub3QgYWxsb3dlZCBpbiBERUZJTkUgY2xhdXNlCiBMSU5FIDc6ICAgICBERUZJ TkUgQSBBUyAocnByX2NvbXBvc2l0ZS5pdGVtcykuYW1vdW50ID4gMTAKICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJhbmdlIHZhcmlhYmxlIHF1YWxpZmll ZCBleHByZXNzaW9uICJycHJfY29tcG9zaXRlLml0ZW1zIiBpcyBub3QgYWxsb3dlZAogRFJPUCBU QUJMRSBycHJfY29tcG9zaXRlOwogRFJPUCBUWVBFIHJwcl9pdGVtOwotLS0gU2VtYW50aWMgZXJy b3JzCi0tLSBVbmRlZmluZWQgY29sdW1uIGluIERFRklORQorLS0gRVJST1I6IHVuZGVmaW5lZCBj b2x1bW4gaW4gREVGSU5FCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKIFdJ TkRPVyB3IEFTICgKQEAgLTM1MTYsOCArMzQ2MCw3IEBAIFdJTkRPVyB3IEFTICgKIEVSUk9SOiAg Y29sdW1uICJub25leGlzdGVudF9jb2x1bW4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDc6ICAgICBE RUZJTkUgQSBBUyBub25leGlzdGVudF9jb2x1bW4gPiAwCiAgICAgICAgICAgICAgICAgICAgICAg ICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IGNvbHVtbiAibm9uZXhpc3RlbnRfY29sdW1uIiBkb2Vz IG5vdCBleGlzdAotLS0gVHlwZSBtaXNtYXRjaAorLS0gRVJST1I6IHR5cGUgbWlzbWF0Y2gKIFNF TEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApAQCAtMzUy OSw4ICszNDcyLDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgdHlwZSBpbnRlZ2VyOiAic3RyaW5nIgogTElORSA3OiAgICAgREVGSU5FIEEgQVMgdmFs ID4gJ3N0cmluZycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLS0tIEV4cGVjdGVk OiBFUlJPUjogaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogInN0cmluZyIK LS0tIEFnZ3JlZ2F0ZSBmdW5jdGlvbiBpbiBERUZJTkUgKGlmIG5vdCBhbGxvd2VkKQorLS0gRVJS T1I6IGFnZ3JlZ2F0ZSBmdW5jdGlvbiBpbiBERUZJTkUgaXMgbm90IHN1cHBvcnRlZAogU0VMRUNU IENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCiBXSU5ET1cgdyBBUyAoCkBAIC0zNTQyLDgg KzM0ODQsNyBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJl IG5vdCBhbGxvd2VkIGluIERFRklORQogTElORSA3OiAgICAgREVGSU5FIEEgQVMgQ09VTlQoKikg PiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IGFnZ3Jl Z2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklORQotLS0gU3VicXVlcnkgaW4g REVGSU5FIChOT1QgU1VQUE9SVEVEKQorLS0gU3VicXVlcnkgaW4gREVGSU5FIGlzIG5vdCBzdXBw b3J0ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMg KApAQCAtMzU1NSw4ICszNDk2LDYgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBjYW5ub3QgdXNl IHN1YnF1ZXJ5IGluIERFRklORSBleHByZXNzaW9uCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyB2 YWwgPiAoU0VMRUNUIG1heCh2YWwpIEZST00gcnByX2VycikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KLS0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBE RUZJTkUgZXhwcmVzc2lvbgotLS0gRWRnZSBjYXNlcwogLS0gUGF0dGVybiB2YXJpYWJsZSBub3Qg dXNlZCAoc2hvdWxkIHdvcmssIGV4dHJhIHZhcnMgaWdub3JlZCkKIFNFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CiBGUk9NIHJwcl9lcnIKQEAgLTU3MDMsNyArNTY0Miw2IEBA IFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgcXVhbnRpZmllciBib3VuZHMgbXVzdCBiZSBiZXR3ZWVu IDAgYW5kIDIxNDc0ODM2NDYgd2l0aCBtYXggPj0gMQogTElORSA2OiAgICAgUEFUVEVSTiAoKEF7 MjAwMDAwMDAwMCwyMTQ3NDgzNjQ3fSl7Mn0pCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi0t LSBFeHBlY3RlZDogRVJST1IgYXQgcGFyc2UgdGltZSBiZWZvcmUgb3B0aW1pemF0aW9uCiAtLSBU ZXN0OiBuZXN0ZWQgdW5ib3VuZGVkIHdpdGggbGFyZ2UgbWluIGNhdXNlcyBvdmVyZmxvdyBmYWxs YmFjawogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJw cl9mYWxsYmFjawpAQCAtNTk0Nyw3ICs1ODg1LDYgQEAgT1JERVIgQlkgY2F0ZWdvcnk7CiBFUlJP UjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJHUk9VUCIKIExJTkUgMTI6IEdST1VQIEJZIGNh dGVnb3J5CiAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICJHUk9VUCIKIC0tIChHUk9VUCBCWSBhZnRlciBXSU5ET1cgY2xhdXNlIGlzIG5vdCB2 YWxpZCBTUUwgc3ludGF4KQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdWJxdWVyeSBhbmQgQ1RFIFRlc3RzCkBAIC02 NDI3LDcgKzYzNjQsNiBAQCBJTlNFUlQgSU5UTyBycHJfc29ydCBWQUxVRVMKICAgICAoMSwgJ0En LCAzMCksICgyLCAnQicsIDIwKSwgKDMsICdBJywgMTApLAogICAgICg0LCAnQicsIDQwKSwgKDUs ICdBJywgNTApLCAoNiwgJ0InLCA2MCk7CiAtLSBSUFIgd2l0aCBHUk9VUCBCWSAoYWdncmVnYXRl IGluIERFRklORSAtPiBFUlJPUiBiZWZvcmUgR1JPVVAgQlkgaW50ZXJhY3Rpb24pCi0tLSBFeHBl Y3RlZDogRVJST1I6IGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklO RQogU0VMRUNUIGNhdGVnb3J5LAogICAgICAgIENPVU5UKCopIGFzIGdyb3VwX2NudCwKICAgICAg ICBNQVgodmFsKSBhcyBtYXhfdmFsLApAQCAtNjQ0NSw3ICs2MzgxLDYgQEAgRVJST1I6ICBhZ2dy ZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKIExJTkUgMTE6ICAgICBE RUZJTkUgQSBBUyBDT1VOVCgqKSA+IDAKICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBS UFIgd2l0aCBIQVZJTkcgKHNhbWUgYWdncmVnYXRlLWluLURFRklORSBlcnJvcikKLS0tIEV4cGVj dGVkOiBFUlJPUjogYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGSU5F CiBTRUxFQ1QgY2F0ZWdvcnksCiAgICAgICAgQ09VTlQoKikgYXMgZ3JvdXBfY250LAogICAgICAg IENPVU5UKCopIE9WRVIgdyBhcyB3aW5kb3dfY250CkBAIC02NzU4LDcgKzY2OTMsNyBAQCBXSU5E T1cgdyBBUyAoCiAoMiByb3dzKQogCiAtLSBFeHBlY3RlZDogU3VjY2VzcyAtIGV4YWN0bHkgYXQg UlBSX1ZBUklEX01BWCBib3VuZGFyeQotLS0gVGVzdDogMjQxIHZhcmlhYmxlcyBpbiBQQVRURVJO LCAyNDAgaW4gREVGSU5FIChleGNlZWRzIGxpbWl0IHdpdGggaW1wbGljaXQgVFJVRSkKKy0tIEVS Uk9SOiAyNDEgdmFyaWFibGVzIGluIFBBVFRFUk4sIDI0MCBpbiBERUZJTkUgKGV4Y2VlZHMgbGlt aXQgd2l0aCBpbXBsaWNpdCBUUlVFKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9l cnJvcnMKIFdJTkRPVyB3IEFTICgKICAgICBPUkRFUiBCWSBpZApAQCAtNjc5NCw3ICs2NzI5LDYg QEAgRVJST1I6ICB0b28gbWFueSBwYXR0ZXJuIHZhcmlhYmxlcwogTElORSA1OiAuLi5WMjMwIFYy MzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIERFVEFJTDogIE1heGltdW0gaXMgMjQwLgotLS0gRXhwZWN0ZWQ6IEVSUk9SIC0g dG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMgKE1heGltdW0gaXMgMjQwKQogLS0gVGVzdDogUGF0 dGVybiBuZXN0aW5nIGF0IG1heGltdW0gZGVwdGggKGRlcHRoIDI1MykKIC0tIE5vdGU6IDI1MyBu ZXN0ZWQgR1JPVVB7Myw3fT8gcXVhbnRpZmllcnM7IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUg bm90CiAtLSBzdWJqZWN0IHRvIHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24sIHNvIHRoZSBuZXN0 aW5nIChhbmQgZGVwdGggMjUzKSBpcwpAQCAtNjgyNiwxMiArNjc2MCwxMCBAQCBXSU5ET1cgdyBB UyAoCiApOwogRVJST1I6ICBwYXR0ZXJuIG5lc3RpbmcgdG9vIGRlZXAKIERFVEFJTDogIFBhdHRl cm4gbmVzdGluZyBkZXB0aCAyNTQgZXhjZWVkcyBtYXhpbXVtIDI1My4KLS0tIEV4cGVjdGVkOiBF UlJPUiAtIHBhdHRlcm4gbmVzdGluZyB0b28gZGVlcAogRFJPUCBUQUJMRSBycHJfZXJyb3JzOwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBKYWNvYidzIFBhdHRlcm5zCistLSBCYXNpYyBQYXR0ZXJuIE1hdGNoaW5nCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIEJhc2ljIHBhdHRlcm4gbWF0Y2hpbmcgdGVzdHMgZnJvbSBqYWNvYiBicmFuY2gK IC0tIFRlc3Q6IEE/IChvcHRpb25hbCwgZ3JlZWR5KQogU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdyBBUyBjCiBGUk9NIHJwcl9wbGFuCkBAIC03MTk0LDMgKzcxMjYsNCBAQCBGUk9NIChT RUxFQ1QgaWQsIHZhbCwKICgyIHJvd3MpCiAKIERST1AgVEFCTEUgcnByX3BsYW47CitSRVNFVCBj bGllbnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCmluZGV4IGNjNzk4 NDNhZWI3Li43ZGMxMzIzMmQ4OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbApAQCAtMTIs NyArMTIsNyBAQAogLS0gICBRdWFudGlmaWVycyBUZXN0cwogLS0gICBOYXZpZ2F0aW9uIEZ1bmN0 aW9ucyBUZXN0cwogLS0gICBTS0lQIFRPIC8gSU5JVElBTCBUZXN0cwotLS0gICBTZXJpYWxpemF0 aW9uL0Rlc2VyaWFsaXphdGlvbiBUZXN0cyAob2JqZWN0cyBrZXB0IGZvciBwZ191cGdyYWRlL3Bn X2R1bXApCistLSAgIFNlcmlhbGl6YXRpb24vRGVzZXJpYWxpemF0aW9uIFRlc3RzCiAtLSAgIEds dWVkIFF1YW50aWZpZXIgLyBBbHRlcm5hdGlvbiBUZXN0cwogLS0gICBFcnJvciBDYXNlcyBUZXN0 cwogLS0gICBXaW5kb3cgRGVkdXBsaWNhdGlvbiBUZXN0cwpAQCAtMzQsNyArMzQsNyBAQAogLS0g ICBFcnJvciBMaW1pdCBUZXN0cwogLS0KIC0tIENvbnRyaWJ1dGVkIFRlc3RzOgotLS0gICBKYWNv YidzIFBhdHRlcm5zCistLSAgIEJhc2ljIFBhdHRlcm4gTWF0Y2hpbmcKIC0tICAgUGF0aG9sb2dp Y2FsIFBhdHRlcm5zCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIApAQCAtNTQsNiArNTQsNyBAQCBDUkVBVEUgVEFCTEUgcnBy X2tleXdvcmRzICgKICAgICBwYXN0IElOVCwgICAgICAgIC0tIFBBU1Qga2V5d29yZAogICAgIHBh dHRlcm4gSU5ULCAgICAgLS0gUEFUVEVSTiBrZXl3b3JkCiAgICAgc2VlayBJTlQsICAgICAgICAt LSBTRUVLIGtleXdvcmQKKy0tIEVSUk9SOiBTRUVLIGlzIG5vdCBzdXBwb3J0ZWQKICAgICBza2lw IElOVCAgICAgICAgIC0tIFNLSVAga2V5d29yZCAocHJlLWV4aXN0aW5nKQogKTsKIApAQCAtNjks NyArNzAsNiBAQCBEUk9QIFRBQkxFIHJwcl9rZXl3b3JkczsKIC0tIERFRklORSBDbGF1c2UgVGVz dHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogCi0KIC0tIFNpbXBsZSBjb2x1bW4gcmVmZXJlbmNlcwogQ1JFQVRFIFRBQkxF IHN0b2NrX3ByaWNlICgKICAgICBkdCBEQVRFLApAQCAtMTgyLDcgKzE4Miw3IEBAIERST1AgVEFC TEUgcnByX2F1dG87CiBDUkVBVEUgVEFCTEUgcnByX2R1cCAoaWQgSU5UKTsKIElOU0VSVCBJTlRP IHJwcl9kdXAgVkFMVUVTICgxKSwgKDIpOwogCi0tLSBEdXBsaWNhdGUgREVGSU5FIGVudHJpZXMK Ky0tIER1cGxpY2F0ZSBERUZJTkUgdmFyaWFibGUgbmFtZSBpcyBub3QgYWxsb3dlZAogU0VMRUNU IENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZHVwCiBXSU5ET1cgdyBBUyAoCkBAIC0xOTEsNyAr MTkxLDYgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFT IGlkID4gMCwgQSBBUyBpZCA8IDEwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiByb3cgcGF0dGVy biBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEiIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4g REVGSU5FIGNsYXVzZQogCiBEUk9QIFRBQkxFIHJwcl9kdXA7CiAKQEAgLTE5OSw3ICsxOTgsNyBA QCBEUk9QIFRBQkxFIHJwcl9kdXA7CiBDUkVBVEUgVEFCTEUgcnByX2Jvb2wgKGlkIElOVCwgZmxh ZyBCT09MRUFOKTsKIElOU0VSVCBJTlRPIHJwcl9ib29sIFZBTFVFUyAoMSwgdHJ1ZSksICgyLCBm YWxzZSk7CiAKLS0tIE5vbi1ib29sZWFuIGV4cHJlc3Npb24KKy0tIERFRklORSBjbGF1c2UgbXVz dCBiZSBhIGJvb2xlYW4gZXhwcmVzc2lvbgogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBy cHJfYm9vbAogV0lORE9XIHcgQVMgKApAQCAtMjA4LDcgKzIwNyw2IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyBpZAogKTsKLS0tIEV4cGVjdGVkOiBF UlJPUjogYXJndW1lbnQgb2YgREVGSU5FIG11c3QgYmUgdHlwZSBib29sZWFuCiAKIC0tIEJvb2xl YW4gY29sdW1uIHJlZmVyZW5jZQogU0VMRUNUIGlkLCBmbGFnLCBDT1VOVCgqKSBPVkVSIHcgYXMg Y250CkBAIC0zMDEsNyArMjk5LDYgQEAgRFJPUCBUQUJMRSBycHJfdW51c2VkOwogLS0gRlJBTUUg T3B0aW9ucyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAKLQogQ1JFQVRFIFRBQkxFIHJwcl9mcmFtZSAoaWQgSU5U LCB2YWwgSU5UKTsKIElOU0VSVCBJTlRPIHJwcl9mcmFtZSBWQUxVRVMKICAgICAoMSwgMTApLCAo MiwgMTApLCAoMywgMTApLCAgLS0gU2FtZSB2YWw6IDEwCkBAIC0zMjcsOSArMzI0LDcgQEAgV0lO RE9XIHcgQVMgKAogKQogT1JERVIgQlkgaWQ7CiAKLS0tIEludmFsaWQgZnJhbWUgc3RhcnQgcG9z aXRpb25zCi0KLS0tIE5vdCBzdGFydGluZyBhdCBDVVJSRU5UIFJPVworLS0gRVJST1I6IGZyYW1l IG11c3Qgc3RhcnQgYXQgY3VycmVudCByb3cgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBp cyB1c2VkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9mcmFtZQogV0lORE9XIHcg QVMgKApAQCAtMzM4LDcgKzMzMyw2IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykK ICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBt dXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93IHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMg dXNlZAogCiAtLSBFWENMVURFIG9wdGlvbnMKIApAQCAtMzUyLDcgKzM0Niw2IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0g RXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0 ZXJuIHJlY29nbml0aW9uCiAKIC0tIEVYQ0xVREUgR1JPVVAgbm90IHBlcm1pdHRlZAogU0VMRUNU IENPVU5UKCopIE9WRVIgdwpAQCAtMzY0LDcgKzM1Nyw2IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBjYW5ub3QgdXNlIEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uCiAKIC0tIEVYQ0xVREUgVElFUyBub3QgcGVybWl0dGVkCiBTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3CkBAIC0zNzYsOSArMzY4LDggQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQog ICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1 c2UgRVhDTFVERSBvcHRpb25zIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIAotLS0gUkFO R0UgZnJhbWUgbm90IHN0YXJ0aW5nIGF0IENVUlJFTlQgUk9XCistLSByYW5nZSBmcmFtZSBpcyBu b3QgYWxsb3dlZCB3aXRoIFJQUgogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJh bWUKIFdJTkRPVyB3IEFTICgKQEAgLTM4Nyw5ICszNzgsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBF UlJPUjogY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNv Z25pdGlvbgogCi0tLSBHUk9VUFMgZnJhbWUgbm90IHN0YXJ0aW5nIGF0IENVUlJFTlQgUk9XCist LSBHUk9VUFMgZnJhbWUgaXMgbm90IGFsbG93ZWQgd2l0aCBSUFIKIFNFTEVDVCBDT1VOVCgqKSBP VkVSIHcKIEZST00gcnByX2ZyYW1lCiBXSU5ET1cgdyBBUyAoCkBAIC0zOTgsOSArMzg4LDggQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHZhbCA+IDAK ICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIEdST1VQUyB3 aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiAKLS0tIFN0YXJ0aW5nIHdpdGggTiBQUkVDRURJ TkcKKy0tIEVSUk9SOiBmcmFtZSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93IHdoZW4gcm93IHBh dHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBy cHJfZnJhbWUKIFdJTkRPVyB3IEFTICgKQEAgLTQwOSw5ICszOTgsOCBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVj dGVkOiBFUlJPUjogRlJBTUUgbXVzdCBzdGFydCBhdCBjdXJyZW50IHJvdyB3aGVuIHJvdyBwYXR0 ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKIAotLS0gU3RhcnRpbmcgd2l0aCBOIEZPTExPV0lORwor LS0gRVJST1I6IGZyYW1lIG11c3Qgc3RhcnQgYXQgY3VycmVudCByb3cgd2l0aCBSUFIKIFNFTEVD VCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2ZyYW1lCiBXSU5ET1cgdyBBUyAoCkBAIC00MjAs MTEgKzQwOCw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUg QSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBtdXN0IHN0YXJ0IGF0 IGN1cnJlbnQgcm93IHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAogCi0tLSBG cmFtZSBlbmQgYm91bmQgZWRnZSBjYXNlcwotCi0tLSBFbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5U IFJPVyBBTkQgMSBQUkVDRURJTkcKKy0tIEVSUk9SOiBlbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5U IFJPVyBBTkQgMSBQUkVDRURJTkcKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2Zy YW1lCiBXSU5ET1cgdyBBUyAoCkBAIC00MzMsOSArNDE4LDggQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDog RVJST1I6IGZyYW1lIHN0YXJ0aW5nIGZyb20gY3VycmVudCByb3cgY2Fubm90IGhhdmUgcHJlY2Vk aW5nIHJvd3MKIAotLS0gRW5kIGJlZm9yZSBzdGFydDogQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBQUkVDRURJTkcKKy0tIEVSUk9SOiBlbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIFBSRUNFRElORwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZnJh bWUKIFdJTkRPVyB3IEFTICgKQEAgLTQ0NCw3ICs0MjgsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBF UlJPUjogZnJhbWUgZW5kIGNhbm5vdCBiZSBVTkJPVU5ERUQgUFJFQ0VESU5HCiAKIC0tIFNpbmds ZSByb3cgZnJhbWU6IENVUlJFTlQgUk9XIEFORCBDVVJSRU5UIFJPVyBpcyByZWplY3RlZCAodGhl IHN0YW5kYXJkCiAtLSBhbGxvd3Mgb25seSBVTkJPVU5ERUQgRk9MTE9XSU5HIG9yIGEgcG9zaXRp dmUgb2Zmc2V0IEZPTExPV0lORykuCkBAIC00NTgsNyArNDQxLDYgQEAgV0lORE9XIHcgQVMgKAog ICAgIERFRklORSBBIEFTIHZhbCA+IDAKICkKIE9SREVSIEJZIGlkOwotLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBjYW5ub3QgdXNlIENVUlJFTlQgUk9XIGFzIGZyYW1lIGVuZCB3aXRoIHJvdyBwYXR0ZXJu IHJlY29nbml0aW9uCiAKIC0tIFplcm8gb2Zmc2V0OiBDVVJSRU5UIFJPVyBBTkQgMCBGT0xMT1dJ TkcgZGVub3RlcyB0aGUgc2FtZSBvbmUtcm93IGZyYW1lCiAtLSBhbmQgaXMgbGlrZXdpc2UgcmVq ZWN0ZWQgKGNhdWdodCBhdCBleGVjdXRpb24gdGltZSkuCkBAIC00NzIsNyArNDU0LDYgQEAgV0lO RE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICkKIE9SREVSIEJZIGlkOwotLS0g RXhwZWN0ZWQ6IEVSUk9SOiBmcmFtZSBlbmRpbmcgb2Zmc2V0IG11c3QgYmUgcG9zaXRpdmUgd2l0 aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgogCiAtLSBBIG5vbi1jb25zdGFudCBmcmFtZSBlbmQg b2Zmc2V0IGlzIGFsbG93ZWQ7IGEgemVybyB2YWx1ZSBpcyBzdGlsbCByZWplY3RlZCwKIC0tIHRo aXMgdGltZSBhdCBleGVjdXRpb24gdGltZSAoYSBsaXRlcmFsIGNhbm5vdCBleGVyY2lzZSB0aGF0 IHBhdGgpLgpAQCAtNDg5LDcgKzQ3MCw2IEBAIFdJTkRPVyB3IEFTICgKIE9SREVSIEJZIGlkOwog RVhFQ1VURSBycHJfZW5kX29mZnNldCgyKTsKIEVYRUNVVEUgcnByX2VuZF9vZmZzZXQoMCk7Ci0t LSBFeHBlY3RlZDogRVJST1I6IGZyYW1lIGVuZGluZyBvZmZzZXQgbXVzdCBiZSBwb3NpdGl2ZSB3 aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiBERUFMTE9DQVRFIHJwcl9lbmRfb2Zmc2V0Owog CiAtLSBMYXJnZSBvZmZzZXQ6IENVUlJFTlQgUk9XIEFORCAxMDAwIEZPTExPV0lORwpAQCAtNTMy LDcgKzUxMiw3IEBAIFdJTkRPVyB3IEFTICgKICkKIE9SREVSIEJZIGlkOwogCi0tLSBSQU5HRSBm cmFtZSB3aXRoIFJQUiAobm90IHBlcm1pdHRlZCkKKy0tIHJhbmdlIGZyYW1lIGlzIG5vdCBhbGxv d2VkIHdpdGggUlBSCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAogRlJP TSBycHJfZnJhbWUKIFdJTkRPVyB3IEFTICgKQEAgLTU0Myw3ICs1MjMsNiBAQCBXSU5ET1cgdyBB UyAoCiAgICAgREVGSU5FIEEgQVMgdmFsID49IDAsIEIgQVMgdmFsID49IDAKICkKIE9SREVSIEJZ IGlkOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3 aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiAKIC0tIEdST1VQUyBmcmFtZSB3aXRoIFJQUiAo bm90IHBlcm1pdHRlZCkKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CkBA IC01NTYsNyArNTM1LDYgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+PSAw LCBCIEFTIHZhbCA+PSAwCiApCiBPUkRFUiBCWSBpZDsKLS0tIEV4cGVjdGVkOiBFUlJPUjogY2Fu bm90IHVzZSBGUkFNRSBvcHRpb24gR1JPVVBTIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24K IAogRFJPUCBUQUJMRSBycHJfZnJhbWU7CiAKQEAgLTU5Niw3ICs1NzQsNiBAQCBXSU5ET1cgdyBB UyAoCiAgICAgREVGSU5FIEEgQVMgdmFsID49IDEwLCBCIEFTIHZhbCA+PSAyMAogKQogT1JERVIg QlkgaWQ7Ci0tLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIFJBTkdF IHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KIAogRFJPUCBUQUJMRSBycHJfcGFydGl0aW9u OwogCkBAIC02MDQsNyArNTgxLDYgQEAgRFJPUCBUQUJMRSBycHJfcGFydGl0aW9uOwogLS0gUEFU VEVSTiBTeW50YXggVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0KIENSRUFURSBUQUJMRSBycHJfcGF0dGVybiAo aWQgSU5ULCB2YWwgSU5UKTsKIElOU0VSVCBJTlRPIHJwcl9wYXR0ZXJuIFZBTFVFUwogICAgICgx LCA1KSwgKDIsIDEwKSwgKDMsIDE1KSwgKDQsIDIwKSwgKDUsIDI1KSwKQEAgLTcwMCw3ICs2NzYs NiBAQCBEUk9QIFRBQkxFIHJwcl9wYXR0ZXJuOwogLS0gUXVhbnRpZmllcnMgVGVzdHMKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogCi0KIENSRUFURSBUQUJMRSBycHJfcXVhbnQgKGlkIElOVCwgdmFsIElOVCk7CiBJTlNFUlQg SU5UTyBycHJfcXVhbnQgVkFMVUVTCiAgICAgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKSwgKDQs IDQwKSwgKDUsIDUwKSwKQEAgLTc1Myw3ICs3MjgsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVG SU5FIEEgQVMgdmFsID4gMTAwMCwgQiBBUyB2YWwgPiAwCiApCiBPUkRFUiBCWSBpZDsKLS0tIEV4 cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0 NzQ4MzY0NgogCiAtLSB7MCwwfSBpcyBub3QgYWxsb3dlZCAobWF4IG11c3QgYmUgPj0gMSkKIFNF TEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CkBAIC03NjUsNyArNzM5LDYgQEAg V0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+IDEwMDAsIEIgQVMgdmFsID4gMAog KQogT1JERVIgQlkgaWQ7Ci0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmRzIG11 c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2IHdpdGggbWF4ID49IDEKIAogLS0gezAsMX0g KGVxdWl2YWxlbnQgdG8gPykKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CkBAIC04MzcsNiArODEwLDcgQEAgQ1JFQVRFIFRBQkxFIHJwcl9yZWx1Y3RhbnQgKGlkIElOVCwg dmFsIElOVCk7CiBJTlNFUlQgSU5UTyBycHJfcmVsdWN0YW50IFZBTFVFUyAoMSwgMTApLCAoMiwg MjApLCAoMywgMzApOwogCiAtLSAqPyAoemVybyBvciBtb3JlLCByZWx1Y3RhbnQpCistLSBSZWx1 Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiBTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRPVyB3IEFTICgKQEAgLTg0NSw5ICs4MTks OSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSo/KQogICAgIERFRklORSBBIEFTIHZh bCA+IDAKICk7Ci0tLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNo CiAKIC0tICs/IChvbmUgb3IgbW9yZSwgcmVsdWN0YW50KQorLS0gUmVsdWN0YW50IHF1YW50aWZp ZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBy cHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC04NTYsOSArODMwLDkgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErPykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0g UmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogCiAtLSA/PyAoemVy byBvciBvbmUsIHJlbHVjdGFudCkKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hv cnRlc3QgbWF0Y2gKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX3JlbHVjdGFudAog V0lORE9XIHcgQVMgKApAQCAtODY3LDkgKzg0MSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBPz8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIFJlbHVjdGFudCBxdWFu dGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIAogLS0ge24sfT8gKG4gb3IgbW9yZSwgcmVs dWN0YW50KQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAog U0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAo CkBAIC04NzgsOSArODUyLDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Mix9PykK ICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHBy ZWZlciBzaG9ydGVzdCBtYXRjaAogCiAtLSB7bixtfT8gKG4gdG8gbSwgcmVsdWN0YW50KQorLS0g UmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5U KCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC04ODksOSAr ODYzLDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7MSwzfT8pCiAgICAgREVGSU5F IEEgQVMgdmFsID4gMAogKTsKLS0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRl c3QgbWF0Y2gKIAogLS0ge259PyAoZXhhY3RseSBuLCByZWx1Y3RhbnQpCistLSBSZWx1Y3RhbnQg cXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRPVyB3IEFTICgKQEAgLTkwMCw5ICs4NzQsOSBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyfT8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4g MAogKTsKLS0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIAog LS0geyxtfT8gKHVwIHRvIG0sIHJlbHVjdGFudCkgLSBDT01QTEVURUxZIFVOVEVTVEVEIFJVTEUh CistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiBTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRPVyB3IEFTICgKQEAgLTkx MSw5ICs4ODUsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXssM30/KQogICAgIERF RklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNo b3J0ZXN0IG1hdGNoCi0KLS0tIEludmFsaWQgcmVsdWN0YW50IHBhdHRlcm5zICh3cm9uZyB0b2tl biBhZnRlciBxdWFudGlmaWVyKQogCiAtLSB7Mn0rIChzaG91bGQgYmUgezJ9PyBub3QgezJ9KykK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTkyNCw3ICs4OTUsNiBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQXsyfSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4 cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIisiCiAKIC0tIHsyLH0qIChz aG91bGQgYmUgezIsfT8gbm90IHsyLH0qKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtOTM1 LDcgKzkwNSw2IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezIsfSopCiAgICAgREVG SU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIioiCiAKIC0tIHssM30qIChzaG91bGQgYmUgeywzfT8gbm90IHssM30qKQogU0VM RUNUIENPVU5UKCopIE9WRVIgdwpAQCAtOTQ2LDcgKzkxNSw2IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBeywzfSopCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVj dGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioiCiAKIC0tIHsxLDN9KyAoc2hv dWxkIGJlIHsxLDN9PyBub3QgezEsM30rKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtOTU3 LDExICs5MjUsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7MSwzfSspCiAgICAg REVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9y IGF0IG9yIG5lYXIgIisiCiAKIC0tIEJvdW5kYXJ5IGVycm9ycyBpbiByZWx1Y3RhbnQgcXVhbnRp ZmllcnMKIAotLS0gey0xfT8gKG5lZ2F0aXZlIGJvdW5kKQorLS0gbmVnYXRpdmUgYm91bmQgaXMg bm90IGFsbG93ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX3JlbHVjdGFudAog V0lORE9XIHcgQVMgKApAQCAtOTcwLDkgKzkzNyw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBey0xfT8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBF UlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIi0iCiAKLS0tIHsyMTQ3NDgzNjQ3fT8gKElO VF9NQVgpCistLSBFUlJPUjogcXVhbnRpZmllciBib3VuZCBleGNlZWRzIGxpbWl0cwogU0VMRUNU IENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC05 ODEsOSArOTQ3LDggQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7MjE0NzQ4MzY0N30/ KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50 aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKIAotLS0gey0xLH0/ IChuZWdhdGl2ZSBsb3dlciBib3VuZCkKKy0tIG5lZ2F0aXZlIGxvd2VyIGJvdW5kIGlzIG5vdCBh bGxvd2VkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRP VyB3IEFTICgKQEAgLTk5Miw5ICs5NTcsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QXstMSx9PykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9S OiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLSIKIAotLS0gezIxNDc0ODM2NDcsfT8gKElOVF9N QVggbG93ZXIgYm91bmQpCistLSBFUlJPUjogcXVhbnRpZmllciBsb3dlciBib3VuZCBleGNlZWRz IGxpbWl0cwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5E T1cgdyBBUyAoCkBAIC0xMDAzLDkgKzk2Nyw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO IChBezIxNDc0ODM2NDcsfT8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVj dGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjE0NzQ4 MzY0NgogCi0tLSB7LDB9PyAoemVybyB1cHBlciBib3VuZCkKKy0tIHplcm8gdXBwZXIgYm91bmQg aXMgbm90IGFsbG93ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX3JlbHVjdGFu dAogV0lORE9XIHcgQVMgKApAQCAtMTAxNCw5ICs5NzcsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQXssMH0/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3Rl ZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2 NDYKIAotLS0geywyMTQ3NDgzNjQ3fT8gKElOVF9NQVggdXBwZXIgYm91bmQpCistLSBFUlJPUjog eywyMTQ3NDgzNjQ3fT8gKHVwcGVyIGJvdW5kIGluIHJhbmdlIGV4Y2VlZHMgbGltaXRzKQogU0VM RUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBA IC0xMDI1LDkgKzk4Nyw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBeywyMTQ3NDgz NjQ3fT8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjog cXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgogCi0tLSB7 LTEsM30/IChuZWdhdGl2ZSBsb3dlciBpbiByYW5nZSkKKy0tIEVSUk9SOiB7LTEsM30/IChuZWdh dGl2ZSBsb3dlciBib3VuZCBpbiByYW5nZSBpcyBub3QgYWxsb3dlZCkKIFNFTEVDVCBDT1VOVCgq KSBPVkVSIHcKIEZST00gcnByX3JlbHVjdGFudAogV0lORE9XIHcgQVMgKApAQCAtMTAzNiw5ICs5 OTcsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXstMSwzfT8pCiAgICAgREVGSU5F IEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9y IG5lYXIgIi0iCiAKLS0tIHsxLDIxNDc0ODM2NDd9PyAoSU5UX01BWCB1cHBlciBpbiByYW5nZSkK Ky0tIEVSUk9SOiB7MSwyMTQ3NDgzNjQ3fT8gKHVwcGVyIGJvdW5kIGluIHJhbmdlIGV4Y2VlZHMg bGltaXRzKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5E T1cgdyBBUyAoCkBAIC0xMDQ3LDkgKzEwMDcsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoQXsxLDIxNDc0ODM2NDd9PykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhw ZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kcyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjE0 NzQ4MzY0NiB3aXRoIG1heCA+PSAxCiAKLS0tIHs1LDN9PyAobWluID4gbWF4KQorLS0gRVJST1I6 IHs1LDN9PyAobWluID4gbWF4IGlzIG5vdCBhbGxvd2VkKQogU0VMRUNUIENPVU5UKCopIE9WRVIg dwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMDU4LDEyICsxMDE3LDEy IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezUsM30/KQogICAgIERFRklORSBBIEFT IHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgbWluaW11bSBib3Vu ZCBtdXN0IG5vdCBleGNlZWQgbWF4aW11bQogCiAtLSBUb2tlbi1zZXBhcmF0ZWQgcmVsdWN0YW50 IHF1YW50aWZpZXJzIChzcGFjZSBiZXR3ZWVuIHF1YW50aWZpZXIgYW5kID8pCiAtLSBUaGVzZSBt YXkgYmUgdG9rZW5pemVkIGRpZmZlcmVudGx5IGJ5IHRoZSBsZXhlcgogCiAtLSAqID8gKHRva2Vu IHNlcGFyYXRlZCkKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0 Y2gKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX3JlbHVjdGFudAogV0lORE9XIHcg QVMgKApAQCAtMTA3Miw5ICsxMDMxLDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEq ID8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIFJlbHVjdGFudCBxdWFudGlmaWVy OiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIAogLS0gKyA/ICh0b2tlbiBzZXBhcmF0ZWQpCistLSBS ZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiBTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3CiBGUk9NIHJwcl9yZWx1Y3RhbnQKIFdJTkRPVyB3IEFTICgKQEAgLTEwODMsOSAr MTA0Miw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyA/KQogICAgIERFRklORSBB IEFTIHZhbCA+IDAKICk7Ci0tLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0 IG1hdGNoCiAKIC0tIHsyLH0gPyAodG9rZW4gc2VwYXJhdGVkKQorLS0gUmVsdWN0YW50IHF1YW50 aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJP TSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMDk0LDkgKzEwNTMsNiBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyLH0gPykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAw CiApOwotLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAotCi0t LSBJbnZhbGlkIHRva2VuIGNvbWJpbmF0aW9ucwogCiAtLSAqICsgKGludmFsaWQgY29tYmluYXRp b24pCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0xMTA3LDcgKzEwNjMsNiBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQSogKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwot LS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKyIKIAogLS0gKyAq IChpbnZhbGlkIGNvbWJpbmF0aW9uKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMTExOCw5 ICsxMDczLDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErICopCiAgICAgREVGSU5F IEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9y IG5lYXIgIioiCiAKIC0tID8gPyAocGFyc2VkIGFzID8/IHJlbHVjdGFudCBxdWFudGlmaWVyKQor LS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogU0VMRUNUIENP VU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xMTI5 LDcgKzEwODQsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQT8gPykKICAgICBERUZJ TkUgQSBBUyB2YWwgPiAwCiApOwotLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9y dGVzdCBtYXRjaAogCiBEUk9QIFRBQkxFIHJwcl9yZWx1Y3RhbnQ7CiAKQEAgLTExMzgsNyArMTA5 Miw3IEBAIERST1AgVEFCTEUgcnByX3JlbHVjdGFudDsKIENSRUFURSBUQUJMRSBycHJfYm91bmRz IChpZCBJTlQpOwogSU5TRVJUIElOVE8gcnByX2JvdW5kcyBWQUxVRVMgKDEpLCAoMik7CiAKLS0t IG1pbiA+IG1heAorLS0gRVJST1I6IHF1YW50aWZpZXIgbG93ZXIgYm91bmQgbXVzdCBub3QgZXhj ZWVkIHVwcGVyIGJvdW5kCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9ib3VuZHMK IFdJTkRPVyB3IEFTICgKQEAgLTExNDcsNyArMTEwMSw2IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBezUsM30pCiAgICAgREVGSU5FIEEgQVMgaWQgPiAwCiApOwotLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBxdWFudGlmaWVyIG1pbmltdW0gYm91bmQgbXVzdCBub3QgZXhjZWVkIG1heGltdW0K IAogLS0gTGFyZ2UgYm91bmRzCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0xMTc5LDcgKzEx MzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5FIEEgQVMgaWQgPiAwCiApOwogCi0tLSBJ TlRfTUFYID0gMjE0NzQ4MzY0NyAob3ZlciBsaW1pdCkKKy0tIEVSUk9SOiBxdWFudGlmaWVyIGJv dW5kIGV4Y2VlZHMgbGltaXRzCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9ib3Vu ZHMKIFdJTkRPVyB3IEFTICgKQEAgLTExODgsMTEgKzExNDEsMTAgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEF7MjE0NzQ4MzY0N30pCiAgICAgREVGSU5FIEEgQVMgaWQgPiAwCiApOwot LS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFu ZCAyMTQ3NDgzNjQ2CiAKIC0tIHtuLH0gYm91bmRhcnkgZXJyb3JzCiAKLS0tIE5lZ2F0aXZlIGxv d2VyIGJvdW5kIGluIHtuLH0KKy0tIEVSUk9SOiBuZWdhdGl2ZSBsb3dlciBib3VuZCBpbiB7bix9 IGlzIG5vdCBhbGxvd2VkCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9ib3VuZHMK IFdJTkRPVyB3IEFTICgKQEAgLTEyMDEsOSArMTE1Myw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBey0xLH0pCiAgICAgREVGSU5FIEEgQVMgaWQgPiAwCiApOwotLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLSIKIAotLS0gSU5UX01BWCBpbiB7bix9 CistLSBFUlJPUjogcXVhbnRpZmllciBsb3dlciBib3VuZCBleGNlZWRzIGxpbWl0cwogU0VMRUNU IENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfYm91bmRzCiBXSU5ET1cgdyBBUyAoCkBAIC0xMjEy LDcgKzExNjMsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3LH0p CiAgICAgREVGSU5FIEEgQVMgaWQgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlm aWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CiAKIC0tIHssbX0gYm91 bmRhcnkgZXJyb3JzCiAKQEAgLTEyMjUsOSArMTE3NSw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBeywwfSkKICAgICBERUZJTkUgQSBBUyBpZCA+IDAKICk7Ci0tLSBFeHBlY3RlZDog RVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYK IAotLS0gSU5UX01BWCBpbiB7LG19CistLSBFUlJPUjogcXVhbnRpZmllciB1cHBlciBib3VuZCBl eGNlZWRzIGxpbWl0cwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfYm91bmRzCiBX SU5ET1cgdyBBUyAoCkBAIC0xMjM2LDcgKzExODUsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQXssMjE0NzQ4MzY0N30pCiAgICAgREVGSU5FIEEgQVMgaWQgPiAwCiApOwotLS0gRXhw ZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMTQ3 NDgzNjQ2CiAKIERST1AgVEFCTEUgcnByX2JvdW5kczsKIApAQCAtMTI0NCw3ICsxMTkyLDYgQEAg RFJPUCBUQUJMRSBycHJfYm91bmRzOwogLS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMgKFBS RVYgLyBORVhUIC8gRklSU1QgLyBMQVNUKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLQogQ1JFQVRFIFRBQkxFIHJwcl9u YXYgKGlkIElOVCwgdmFsIElOVCk7CiBJTlNFUlQgSU5UTyBycHJfbmF2IFZBTFVFUwogICAgICgx LCAxMCksICgyLCAyMCksICgzLCAxNSksICg0LCAyNSksICg1LCAzMCk7CkBAIC0xMzAxLDcgKzEy NDgsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCiApCiBP UkRFUiBCWSBpZDsKLS0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBwcmV2IG91dHNpZGUg YSBERUZJTkUgY2xhdXNlCiAKIC0tIE5FWFQgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgb3RoZXIg dGhhbiBpbiBERUZJTkUKIFNFTEVDVCBORVhUKGlkKSwgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3 IGFzIGNudApAQCAtMTMxNSw3ICsxMjYxLDYgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBCIEFT IHZhbCA+IFBSRVYodmFsKQogKQogT1JERVIgQlkgaWQ7Ci0tLSBFeHBlY3RlZDogRVJST1I6IGNh bm5vdCB1c2UgbmV4dCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQogCiAtLSBGSVJTVCBmdW5jdGlv biAtIHJlZmVyZW5jZSBtYXRjaF9zdGFydCByb3cKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgYXMgY250CkBAIC0xMzU4LDExICsxMzAzLDkgQEAgT1JERVIgQlkgaWQ7CiAKIC0tIEZJ UlNUIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCiBTRUxFQ1Qg RklSU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKLS0tIEV4cGVjdGVkOiBFUlJPUjogY2Fu bm90IHVzZSBmaXJzdCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQogCiAtLSBMQVNUIGZ1bmN0aW9u IGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCiBTRUxFQ1QgTEFTVChpZCksIGlk LCB2YWwgRlJPTSBycHJfbmF2OwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIGxhc3Qg b3V0c2lkZSBhIERFRklORSBjbGF1c2UKIAogRFJPUCBUQUJMRSBycHJfbmF2OwogCkBAIC0xMzcw LDcgKzEzMTMsNiBAQCBEUk9QIFRBQkxFIHJwcl9uYXY7CiAtLSBTS0lQIFRPIC8gSU5JVElBTCBU ZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAKLQogQ1JFQVRFIFRBQkxFIHJwcl9za2lwIChpZCBJTlQsIHZhbCBJTlQp OwogSU5TRVJUIElOVE8gcnByX3NraXAgVkFMVUVTCiAgICAgKDEsIDEpLCAoMiwgMiksICgzLCAz KSwgKDQsIDQpLCAoNSwgNSksCkBAIC0xNDkyLDE1ICsxNDM0LDE1IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBTRUVLIGlzIG5vdCBzdXBwb3J0ZWQKLS0tIEhJTlQ6IFVzZSBJTklUSUFMIGlu c3RlYWQuCiAKIERST1AgVEFCTEUgcnByX3NlZWs7CiAKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2VyaWFsaXphdGlv bi9EZXNlcmlhbGl6YXRpb24gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCistLSBSUFItZGVmaW5pbmcgdmlld3Mg YW5kIHRhYmxlcyBoZXJlIGFyZSBpbnRlbnRpb25hbGx5IGxlZnQgaW4gcGxhY2UgKG5vdAorLS0g ZHJvcHBlZCkgc28gdGhhdCBwZ19kdW1wL3BnX3VwZ3JhZGUgZXhlcmNpc2UgdGhlIGRlcGFyc2Ut dGhlbi1yZS1wYXJzZQorLS0gcm91bmQtdHJpcCBvZiB0aGUgUlBSIHdpbmRvdyBjbGF1c2UuCiAK IC0tIFZpZXcgY3JlYXRpb24gYW5kIGRlcGFyc2luZwogCkBAIC0yMTkwLDEzICsyMTMyLDEwIEBA IERST1AgVEFCTEUgcnByX2dsdWU7CiAtLSBFcnJvciBDYXNlcyBUZXN0cwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLQog RFJPUCBUQUJMRSBJRiBFWElTVFMgcnByX2VycjsKIENSRUFURSBUQUJMRSBycHJfZXJyIChpZCBJ TlQsIHZhbCBJTlQpOwogSU5TRVJUIElOVE8gcnByX2VyciBWQUxVRVMgKDEsIDEwKSwgKDIsIDIw KTsKIAotLS0gU3ludGF4IGVycm9ycwotCiAtLSBJbnZhbGlkIHF1YW50aWZpZXIgc3ludGF4CiBT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKQEAgLTIyMjIsNyArMjE2MSw3IEBA IEVYQ0VQVElPTgogRU5EICQkOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOwog Ci0tLSBFbXB0eSBERUZJTkUKKy0tIEVSUk9SOiBlbXB0eSBERUZJTkUgbm90IGFsbG93ZWQKIFNF TEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApAQCAtMjIz Myw3ICsyMTcyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsKIC0tIEV4cGVjdGVkOiBTeW50YXggZXJy b3IKIAotLS0gRW1wdHkgUEFUVEVSTgorLS0gRVJST1I6IGVtcHR5IFBBVFRFUk4gbm90IGFsbG93 ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApA QCAtMjI0NCw3ICsyMTgzLDcgQEAgV0lORE9XIHcgQVMgKAogKTsKIC0tIEV4cGVjdGVkOiBTeW50 YXggZXJyb3IKIAotLS0gREVGSU5FIHdpdGhvdXQgUEFUVEVSTiAoUEFUVEVSTiBhbmQgREVGSU5F IG11c3QgYmUgdXNlZCB0b2dldGhlcikKKy0tIEVSUk9SOiBERUZJTkUgd2l0aG91dCBQQVRURVJO IChQQVRURVJOIGFuZCBERUZJTkUgbXVzdCBiZSB1c2VkIHRvZ2V0aGVyKQogU0VMRUNUIENPVU5U KCopIE9WRVIgdwogRlJPTSBycHJfZXJyCiBXSU5ET1cgdyBBUyAoCkBAIC0yMjY1LDcgKzIyMDQs NiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgQS52 YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmll ZCBleHByZXNzaW9uICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZAogCiAtLSBQQVRURVJOLW9ubHkg dmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBzdXBwb3J0ZWQgZXZlbiB3aXRob3V0IERFRklO RSBlbnRyeQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMjI3Niw3ICsyMjE0LDYgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIrKQogICAgIERFRklORSBBIEFTIEIudmFsID4g MAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgZXhw cmVzc2lvbiAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKIAogLS0gREVGSU5FLW9ubHkgdmFyaWFi bGUgcXVhbGlmaWVkIG5hbWU6IHN0aWxsIGEgcGF0dGVybiB2YXJpYWJsZSwgbm90IGEgcmFuZ2Ug dmFyaWFibGUKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTIyODcsNyArMjIyNCw2IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBC IEFTIEIudmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBx dWFsaWZpZWQgZXhwcmVzc2lvbiAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKIAogLS0gRlJPTS1j bGF1c2UgcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIG5hbWU6IG5vdCBhbGxvd2VkIChwcm9oaWJp dGVkIGJ5IElTTy9JRUMgMTkwNzUtNSA2LjUpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0y Mjk4LDcgKzIyMzQsNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVG SU5FIEEgQVMgcnByX2Vyci52YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiByYW5nZSB2 YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAicnByX2Vyci52YWwiIGlzIG5vdCBhbGxvd2Vk CiAKIC0tIFVua25vd24gcXVhbGlmaWVyIChuZWl0aGVyIHBhdHRlcm4gdmFyIG5vciByYW5nZSB2 YXIpOiB0aGUgREVGSU5FIHByZS1jaGVjawogLS0gbXVzdCBmYWxsIHRocm91Z2ggc28gdGhhdCBu b3JtYWwgY29sdW1uIHJlc29sdXRpb24gcHJvZHVjZXMgYSBzZW5zaWJsZSBlcnJvci4KQEAgLTIz MTAsNyArMjI0NSw2IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJ TkUgQSBBUyBub3N1Y2gudmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogbWlzc2luZyBG Uk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgIm5vc3VjaCIKIAogLS0gVW5xdWFsaWZpZWQgY29t cG9zaXRlIGZpZWxkIGFjY2VzcyBpbiBERUZJTkUgd29ya3M6IG5vIHF1YWxpZmllciBtZWFucyBu bwogLS0gcGF0dGVybi9yYW5nZS12YXIgbmF2aWdhdGlvbiwgc28gdGhlIHByZS1jaGVjayBza2lw cyBhbmQgbm9ybWFsIHJlc29sdXRpb24KQEAgLTIzNDAsNyArMjI3NCw2IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyAoQS5pdGVtcykuYW1vdW50ID4g MTAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGV4 cHJlc3Npb24gImEuaXRlbXMiIGlzIG5vdCBzdXBwb3J0ZWQKIFNFTEVDVCBDT1VOVCgqKSBPVkVS IHcKIEZST00gcnByX2NvbXBvc2l0ZQogV0lORE9XIHcgQVMgKApAQCAtMjM0OSwxMyArMjI4Miwx MCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgKHJw cl9jb21wb3NpdGUuaXRlbXMpLmFtb3VudCA+IDEwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBy YW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgZXhwcmVzc2lvbiAicnByX2NvbXBvc2l0ZS5pdGVtcyIg aXMgbm90IGFsbG93ZWQKIERST1AgVEFCTEUgcnByX2NvbXBvc2l0ZTsKIERST1AgVFlQRSBycHJf aXRlbTsKIAotLS0gU2VtYW50aWMgZXJyb3JzCi0KLS0tIFVuZGVmaW5lZCBjb2x1bW4gaW4gREVG SU5FCistLSBFUlJPUjogdW5kZWZpbmVkIGNvbHVtbiBpbiBERUZJTkUKIFNFTEVDVCBDT1VOVCgq KSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApAQCAtMjM2NCw5ICsyMjk0LDgg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIG5vbmV4 aXN0ZW50X2NvbHVtbiA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IGNvbHVtbiAibm9uZXhp c3RlbnRfY29sdW1uIiBkb2VzIG5vdCBleGlzdAogCi0tLSBUeXBlIG1pc21hdGNoCistLSBFUlJP UjogdHlwZSBtaXNtYXRjaAogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCiBX SU5ET1cgdyBBUyAoCkBAIC0yMzc1LDkgKzIzMDQsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdmFsID4gJ3N0cmluZycKICk7Ci0tLSBFeHBlY3Rl ZDogRVJST1I6IGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJzdHJpbmci CiAKLS0tIEFnZ3JlZ2F0ZSBmdW5jdGlvbiBpbiBERUZJTkUgKGlmIG5vdCBhbGxvd2VkKQorLS0g RVJST1I6IGFnZ3JlZ2F0ZSBmdW5jdGlvbiBpbiBERUZJTkUgaXMgbm90IHN1cHBvcnRlZAogU0VM RUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzg2 LDkgKzIzMTQsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5F IEEgQVMgQ09VTlQoKikgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBhZ2dyZWdhdGUgZnVu Y3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKIAotLS0gU3VicXVlcnkgaW4gREVGSU5F IChOT1QgU1VQUE9SVEVEKQorLS0gU3VicXVlcnkgaW4gREVGSU5FIGlzIG5vdCBzdXBwb3J0ZWQK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX2VycgogV0lORE9XIHcgQVMgKApAQCAt MjM5Nyw5ICsyMzI0LDYgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERF RklORSBBIEFTIHZhbCA+IChTRUxFQ1QgbWF4KHZhbCkgRlJPTSBycHJfZXJyKQogKTsKLS0tIEV4 cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBERUZJTkUgZXhwcmVzc2lvbgot Ci0tLSBFZGdlIGNhc2VzCiAKIC0tIFBhdHRlcm4gdmFyaWFibGUgbm90IHVzZWQgKHNob3VsZCB3 b3JrLCBleHRyYSB2YXJzIGlnbm9yZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3 IGFzIGNudApAQCAtMzQxNCw3ICszMzM4LDYgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KChBezIwMDAwMDAwMDAsMjE0NzQ4MzY0N30pezJ9KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAK ICk7Ci0tLSBFeHBlY3RlZDogRVJST1IgYXQgcGFyc2UgdGltZSBiZWZvcmUgb3B0aW1pemF0aW9u CiAKIC0tIFRlc3Q6IG5lc3RlZCB1bmJvdW5kZWQgd2l0aCBsYXJnZSBtaW4gY2F1c2VzIG92ZXJm bG93IGZhbGxiYWNrCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zNTYzLDcgKzM0ODYsNiBAQCBX SU5ET1cgdyBBUyAoCiApCiBHUk9VUCBCWSBjYXRlZ29yeQogT1JERVIgQlkgY2F0ZWdvcnk7Ci0t LSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJHUk9VUCIKIC0tIChH Uk9VUCBCWSBhZnRlciBXSU5ET1cgY2xhdXNlIGlzIG5vdCB2YWxpZCBTUUwgc3ludGF4KQogCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KQEAgLTM5MzcsNyArMzg1OSw2IEBAIElOU0VSVCBJTlRPIHJwcl9zb3J0IFZBTFVFUwog ICAgICg0LCAnQicsIDQwKSwgKDUsICdBJywgNTApLCAoNiwgJ0InLCA2MCk7CiAKIC0tIFJQUiB3 aXRoIEdST1VQIEJZIChhZ2dyZWdhdGUgaW4gREVGSU5FIC0+IEVSUk9SIGJlZm9yZSBHUk9VUCBC WSBpbnRlcmFjdGlvbikKLS0tIEV4cGVjdGVkOiBFUlJPUjogYWdncmVnYXRlIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gREVGSU5FCiAKIFNFTEVDVCBjYXRlZ29yeSwKICAgICAgICBDT1VO VCgqKSBhcyBncm91cF9jbnQsCkBAIC0zOTU0LDcgKzM4NzUsNiBAQCBXSU5ET1cgdyBBUyAoCiBP UkRFUiBCWSBjYXRlZ29yeTsKIAogLS0gUlBSIHdpdGggSEFWSU5HIChzYW1lIGFnZ3JlZ2F0ZS1p bi1ERUZJTkUgZXJyb3IpCi0tLSBFeHBlY3RlZDogRVJST1I6IGFnZ3JlZ2F0ZSBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIERFRklORQogCiBTRUxFQ1QgY2F0ZWdvcnksCiAgICAgICAgQ09V TlQoKikgYXMgZ3JvdXBfY250LApAQCAtNDE4OSw3ICs0MTA5LDcgQEAgV0lORE9XIHcgQVMgKAog KTsKIC0tIEV4cGVjdGVkOiBTdWNjZXNzIC0gZXhhY3RseSBhdCBSUFJfVkFSSURfTUFYIGJvdW5k YXJ5CiAKLS0tIFRlc3Q6IDI0MSB2YXJpYWJsZXMgaW4gUEFUVEVSTiwgMjQwIGluIERFRklORSAo ZXhjZWVkcyBsaW1pdCB3aXRoIGltcGxpY2l0IFRSVUUpCistLSBFUlJPUjogMjQxIHZhcmlhYmxl cyBpbiBQQVRURVJOLCAyNDAgaW4gREVGSU5FIChleGNlZWRzIGxpbWl0IHdpdGggaW1wbGljaXQg VFJVRSkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyb3JzCiBXSU5ET1cgdyBB UyAoCiAgICAgT1JERVIgQlkgaWQKQEAgLTQyMjEsNyArNDE0MSw2IEBAIFdJTkRPVyB3IEFTICgK ICAgICBWMjIxIEFTIHZhbCA+IDAsIFYyMjIgQVMgdmFsID4gMCwgVjIyMyBBUyB2YWwgPiAwLCBW MjI0IEFTIHZhbCA+IDAsIFYyMjUgQVMgdmFsID4gMCwgVjIyNiBBUyB2YWwgPiAwLCBWMjI3IEFT IHZhbCA+IDAsIFYyMjggQVMgdmFsID4gMCwgVjIyOSBBUyB2YWwgPiAwLCBWMjMwIEFTIHZhbCA+ IDAsCiAgICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+IDAsIFYyMzMgQVMgdmFsID4g MCwgVjIzNCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYyMzYgQVMgdmFsID4gMCwgVjIz NyBBUyB2YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMgdmFsID4gMCwgVjI0MCBBUyB2 YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SIC0gdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJs ZXMgKE1heGltdW0gaXMgMjQwKQogCiAtLSBUZXN0OiBQYXR0ZXJuIG5lc3RpbmcgYXQgbWF4aW11 bSBkZXB0aCAoZGVwdGggMjUzKQogLS0gTm90ZTogMjUzIG5lc3RlZCBHUk9VUHszLDd9PyBxdWFu dGlmaWVyczsgcmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3QKQEAgLTQyNDcsMTQgKzQxNjYs MTIgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoQXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8p ezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7 Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXsz LDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMs N30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3 fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9 Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/KXszLDd9Pyl7Myw3fT8pezMsN30/ KXszLDd9Pyl7Myw3fT8pezMsN30/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBF eHBlY3RlZDogRVJST1IgLSBwYXR0ZXJuIG5lc3RpbmcgdG9vIGRlZXAKIAogRFJPUCBUQUJMRSBy cHJfZXJyb3JzOwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIEphY29iJ3MgUGF0dGVybnMKKy0tIEJhc2ljIFBhdHRl cm4gTWF0Y2hpbmcKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gQmFzaWMgcGF0dGVybiBtYXRjaGluZyB0ZXN0cyBmcm9t IGphY29iIGJyYW5jaAogCiAtLSBUZXN0OiBBPyAob3B0aW9uYWwsIGdyZWVkeSkKIFNFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgYwpAQCAtNDQ1MywzICs0MzcwLDQgQEAgRlJPTSAo U0VMRUNUIGlkLCB2YWwsCiApIHM7CiAKIERST1AgVEFCTEUgcnByX3BsYW47CitSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000094e1900653ca9cf2 Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0068-Use-foreach_node-and-friends-in-row-pattern-recog.txt" Content-Disposition: attachment; filename="nocfbot-0068-Use-foreach_node-and-friends-in-row-pattern-recog.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq64woh867 RnJvbSBiMDEwNTgwYzliNjIyNDRiYTMyMzUyMGJiNzIwMmFhMzQ4YzE4MTk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDggSnVuIDIwMjYgMjE6Mjc6NDQgKzA5MDAKU3ViamVjdDogW1BBVENIIDY4LzY4XSBV c2UgZm9yZWFjaF9ub2RlIGFuZCBmcmllbmRzIGluIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCiBj b2RlCgpSZXBsYWNlIHRoZSBoYW5kLXdyaXR0ZW4gZm9yZWFjaCgpL2xmaXJzdCgpIGxvb3BzIGlu IHRoZSByb3cgcGF0dGVybgpyZWNvZ25pdGlvbiBjb2RlIHdpdGggZm9yZWFjaF9ub2RlKCksIGZv cmVhY2hfcHRyKCksIGZvcmVhY2hfY3VycmVudF9pbmRleCgpCmFuZCBmb3Jib3RoKCksIGRyb3Bw aW5nIHRoZSBub3ctdW5uZWVkZWQgTGlzdENlbGwgZGVjbGFyYXRpb25zLCBjYXN0cyBhbmQKbWFu dWFsIGluZGV4IGNvdW50ZXJzLiAgTm8gYmVoYXZpb3IgY2hhbmdlLgotLS0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICAgICAgIHwgMTAgKy0tCiBzcmMvYmFja2VuZC9leGVj dXRvci9ub2RlV2luZG93QWdnLmMgICAgICB8IDEyICstLQogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvYWxscGF0aHMuYyAgICAgfCAgOSArLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2Nvc3RzaXplLmMgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0 ZXBsYW4uYyAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAg ICAgIHwgOTAgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9w cmVwL3ByZXBqb2ludHJlZS5jIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAg ICAgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgICAg IHwgMzggKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAg ICAgfCAxOCArKy0tLQogMTEgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMTM3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCAxYzg5ODc1YTMwNi4uNWFlNTQ0 OTU5NjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTE1OTUsOCArMTU5NSw2IEBAIG5mYV9y ZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZB Q29udGV4dCAqY3R4LAogCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5w c19FeHByQ29udGV4dDsKIAlpbnQ2NAkJc2F2ZWRfbWF0Y2hfc3RhcnQgPSB3aW5zdGF0ZS0+bmF2 X21hdGNoX3N0YXJ0OwogCWludDY0CQlzYXZlZF9wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsK LQlpbnQJCQl2YXJJZHggPSAwOwotCUxpc3RDZWxsICAgKmxjOwogCiAJLyogVGVtcG9yYXJpbHkg c2V0IG5hdl9tYXRjaF9zdGFydCBhbmQgY3VycmVudHBvcyBmb3IgRklSU1QvTEFTVCAqLwogCXdp bnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQgPSBjdHgtPm1hdGNoU3RhcnRSb3c7CkBAIC0xNjA1LDEx ICsxNjAzLDEyIEBAIG5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCS8qIEludmFsaWRhdGUgbmF2X3Nsb3Qg Y2FjaGUgc2luY2UgbWF0Y2hfc3RhcnQgY2hhbmdlZCAqLwogCXdpbnN0YXRlLT5uYXZfc2xvdF9w b3MgPSAtMTsKIAotCWZvcmVhY2gobGMsIHdpbnN0YXRlLT5kZWZpbmVDbGF1c2VMaXN0KQorCWZv cmVhY2hfcHRyKEV4cHJTdGF0ZSwgZXhwclN0YXRlLCB3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlz dCkKIAl7CisJCWludAkJCXZhcklkeCA9IGZvcmVhY2hfY3VycmVudF9pbmRleChleHByU3RhdGUp OworCiAJCWlmIChibXNfaXNfbWVtYmVyKHZhcklkeCwgd2luc3RhdGUtPmRlZmluZU1hdGNoU3Rh cnREZXBlbmRlbnQpKQogCQl7Ci0JCQlFeHByU3RhdGUgICpleHByU3RhdGUgPSAoRXhwclN0YXRl ICopIGxmaXJzdChsYyk7CiAJCQlEYXR1bQkJcmVzdWx0OwogCQkJYm9vbAkJaXNudWxsOwogCkBA IC0xNjE4LDggKzE2MTcsNyBAQCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycyhXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJCXdpbnN0YXRlLT5uZmFW YXJNYXRjaGVkW3ZhcklkeF0gPSAoIWlzbnVsbCAmJiBEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAJ CX0KIAotCQl2YXJJZHgrKzsKLQkJaWYgKHZhcklkeCA+PSBsaXN0X2xlbmd0aCh3aW5zdGF0ZS0+ ZGVmaW5lVmFyaWFibGVMaXN0KSkKKwkJaWYgKHZhcklkeCArIDEgPj0gbGlzdF9sZW5ndGgod2lu c3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCkpCiAJCQlicmVhazsKIAl9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCAxMzY2MTE4MTk4Ni4uMTU1NzlhZTVlYTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTMwODQsOSArMzA4NCw4IEBAIEV4ZWNJ bml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3Mp CiAJCSAqIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzIGVtaXR0ZWQgZHVyaW5n IEV4ZWNJbml0RXhwciwgc28KIAkJICogbm8gdmFybm8gcmV3cml0aW5nIGlzIG5lZWRlZCBoZXJl LgogCQkgKi8KLQkJZm9yZWFjaChsLCBub2RlLT5kZWZpbmVDbGF1c2UpCisJCWZvcmVhY2hfbm9k ZShUYXJnZXRFbnRyeSwgdGUsIG5vZGUtPmRlZmluZUNsYXVzZSkKIAkJewotCQkJVGFyZ2V0RW50 cnkgKnRlID0gbGZpcnN0KGwpOwogCQkJY2hhcgkgICAqbmFtZSA9IHRlLT5yZXNuYW1lOwogCQkJ RXhwcgkgICAqZXhwciA9IHRlLT5leHByOwogCQkJRXhwclN0YXRlICAqZXhwczsKQEAgLTQxNzMs NyArNDE3Miw2IEBAIGV2YWxfZGVmaW5lX29mZnNldHMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBMaXN0ICpkZWZpbmVDbGF1c2UpCiB7CiAJRXZhbERlZmluZU9mZnNldHNDb250ZXh0IGN0eDsK IAlOYXZUcmF2ZXJzYWwgdHJhdjsKLQlMaXN0Q2VsbCAgICpsYzsKIAlib29sCQluZWVkc01heCA9 ICh3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFM KTsKIAlib29sCQluZWVkc0ZpcnN0ID0gKHdpbnN0YXRlLT5oYXNGaXJzdE5hdiAmJgogCQkJCQkJ CSAgd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19F VkFMKTsKQEAgLTQxODksMTAgKzQxODcsOCBAQCBldmFsX2RlZmluZV9vZmZzZXRzKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQogCXRyYXYudmlzaXQgPSB2aXNp dF9uYXZfZXhlYzsKIAl0cmF2LmRhdGEgPSAmY3R4OwogCi0JZm9yZWFjaChsYywgZGVmaW5lQ2xh dXNlKQorCWZvcmVhY2hfbm9kZShUYXJnZXRFbnRyeSwgdGUsIGRlZmluZUNsYXVzZSkKIAl7Ci0J CVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOwotCiAJCW5hdl90 cmF2ZXJzYWxfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmdHJhdik7CiAJfQogCkBAIC00NTg2 LDcgKzQ1ODIsNiBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0 IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKIAlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSB3aW5v YmotPndpbnN0YXRlOwogCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5w c19FeHByQ29udGV4dDsKIAlpbnQJCQludW1EZWZpbmVWYXJzID0gbGlzdF9sZW5ndGgod2luc3Rh dGUtPmRlZmluZVZhcmlhYmxlTGlzdCk7Ci0JTGlzdENlbGwgICAqbGM7CiAJaW50CQkJdmFySWR4 ID0gMDsKIAlUdXBsZVRhYmxlU2xvdCAqc2xvdDsKIAlpbnQ2NAkJc2F2ZWRfcG9zOwpAQCAtNDYw OSw5ICs0NjA0LDggQEAgbmZhX2V2YWx1YXRlX3JvdyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2 NCBwb3MsIGJvb2wgKnZhck1hdGNoZWQpCiAJLyogSW52YWxpZGF0ZSBuYXZfc2xvdCBjYWNoZSBz byBQUkVWL05FWFQgcmUtZmV0Y2ggZm9yIG5ldyByb3cgKi8KIAl3aW5zdGF0ZS0+bmF2X3Nsb3Rf cG9zID0gLTE7CiAKLQlmb3JlYWNoKGxjLCB3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCkKKwlm b3JlYWNoX3B0cihFeHByU3RhdGUsIGV4cHJTdGF0ZSwgd2luc3RhdGUtPmRlZmluZUNsYXVzZUxp c3QpCiAJewotCQlFeHByU3RhdGUgICpleHByU3RhdGUgPSAoRXhwclN0YXRlICopIGxmaXJzdChs Yyk7CiAJCURhdHVtCQlyZXN1bHQ7CiAJCWJvb2wJCWlzbnVsbDsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wYXRoL2FsbHBhdGhzLmMKaW5kZXggMjIzMzlmNzQ5MWYuLmYzYzlmM2MwYmQ2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKQEAgLTQ3NjAsMjEgKzQ3NjAsMTYgQEAgcmVt b3ZlX3VudXNlZF9zdWJxdWVyeV9vdXRwdXRzKFF1ZXJ5ICpzdWJxdWVyeSwgUmVsT3B0SW5mbyAq cmVsLAogCQlpZiAoSXNBKHRleHByLCBWYXIpKQogCQl7CiAJCQlWYXIJCSAgICp2YXIgPSAoVmFy ICopIHRleHByOwotCQkJTGlzdENlbGwgICAqd2xjOwogCQkJYm9vbAkJbmVlZGVkX2J5X2RlZmlu ZSA9IGZhbHNlOwogCi0JCQlmb3JlYWNoKHdsYywgc3VicXVlcnktPndpbmRvd0NsYXVzZSkKKwkJ CWZvcmVhY2hfbm9kZShXaW5kb3dDbGF1c2UsIHdjLCBzdWJxdWVyeS0+d2luZG93Q2xhdXNlKQog CQkJewotCQkJCVdpbmRvd0NsYXVzZSAqd2MgPSBsZmlyc3Rfbm9kZShXaW5kb3dDbGF1c2UsIHds Yyk7Ci0KIAkJCQlpZiAod2MtPmRlZmluZUNsYXVzZSAhPSBOSUwpCiAJCQkJewogCQkJCQlMaXN0 CSAgICp2YXJzID0gcHVsbF92YXJfY2xhdXNlKChOb2RlICopIHdjLT5kZWZpbmVDbGF1c2UsIDAp OwotCQkJCQlMaXN0Q2VsbCAgICp2bGM7CiAKLQkJCQkJZm9yZWFjaCh2bGMsIHZhcnMpCisJCQkJ CWZvcmVhY2hfbm9kZShWYXIsIGR2YXIsIHZhcnMpCiAJCQkJCXsKLQkJCQkJCVZhcgkJICAgKmR2 YXIgPSAoVmFyICopIGxmaXJzdCh2bGMpOwogCiAJCQkJCQkvKgogCQkJCQkJICogTWF0Y2ggdmFy bm8gYXMgd2VsbCBhcyB2YXJhdHRubzogYSBWYXIgcHVsbGVkIGZyb20KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Nvc3RzaXplLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGF0aC9jb3N0c2l6ZS5jCmluZGV4IGIzOGNhZDlmMTIxLi44MjQ3MmMzZmU5NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUuYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCkBAIC0zMjM2LDE0ICszMjM2LDEzIEBAIGNv c3Rfd2luZG93YWdnKFBhdGggKnBhdGgsIFBsYW5uZXJJbmZvICpyb290LAogCWlmICh3aW5jbGF1 c2UtPnJwUGF0dGVybikKIAl7CiAJCUxpc3QJICAgKnBhdHRlcm5fdmFyczsKLQkJTGlzdENlbGwg ICAqbGMyOwogCQlRdWFsQ29zdAlkZWZjb3N0czsKIAogCQlwYXR0ZXJuX3ZhcnMgPSBjb2xsZWN0 UGF0dGVyblZhcmlhYmxlcyh3aW5jbGF1c2UtPnJwUGF0dGVybik7CiAKLQkJZm9yZWFjaChsYzIs IHBhdHRlcm5fdmFycykKKwkJZm9yZWFjaF9ub2RlKFN0cmluZywgcHYsIHBhdHRlcm5fdmFycykK IAkJewotCQkJY2hhcgkgICAqcHRuYW1lID0gc3RyVmFsKGxmaXJzdChsYzIpKTsKKwkJCWNoYXIJ ICAgKnB0bmFtZSA9IHN0clZhbChwdik7CiAKIAkJCWZvcmVhY2hfbm9kZShUYXJnZXRFbnRyeSwg ZGVmLCB3aW5jbGF1c2UtPmRlZmluZUNsYXVzZSkKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL2NyZWF0ZXBsYW4uYwppbmRleCBkMmUxOWQ2MWQ1OC4uY2NhNDEyNmU1MTEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI3MzYsNyArMjczNiw2IEBAIGNv bXB1dGVfZGVmaW5lX21ldGFkYXRhKExpc3QgKmRlZmluZUNsYXVzZSwKIHsKIAlEZWZpbmVNZXRh ZGF0YUNvbnRleHQgY3R4OwogCU5hdlRyYXZlcnNhbCB0cmF2OwotCUxpc3RDZWxsICAgKmxjOwog CiAJY3R4Lm1heE9mZnNldCA9IDA7CiAJY3R4Lm1heE5lZWRzRXZhbCA9IGZhbHNlOwpAQCAtMjc1 MCwxMCArMjc0OSw4IEBAIGNvbXB1dGVfZGVmaW5lX21ldGFkYXRhKExpc3QgKmRlZmluZUNsYXVz ZSwKIAl0cmF2LnZpc2l0ID0gdmlzaXRfbmF2X3BsYW47CiAJdHJhdi5kYXRhID0gJmN0eDsKIAot CWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkKKwlmb3JlYWNoX25vZGUoVGFyZ2V0RW50cnksIHRl LCBkZWZpbmVDbGF1c2UpCiAJewotCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikg bGZpcnN0KGxjKTsKLQogCQluYXZfdHJhdmVyc2FsX3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwg JnRyYXYpOwogCQljdHguY3VyVmFySWR4Kys7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpp bmRleCBkNzY4NDIyZGVlYi4uNjY0Yzk0MmU1NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5j CkBAIC0xOTEsMTIgKzE5MSwxMCBAQCB0cnlVbndyYXBTaW5nbGVDaGlsZChSUFJQYXR0ZXJuTm9k ZSAqcGF0dGVybikKIHN0YXRpYyBMaXN0ICoKIGZsYXR0ZW5TZXFDaGlsZHJlbihMaXN0ICpjaGls ZHJlbikKIHsKLQlMaXN0Q2VsbCAgICpsYzsKIAlMaXN0CSAgICpuZXdDaGlsZHJlbiA9IE5JTDsK IAotCWZvcmVhY2gobGMsIGNoaWxkcmVuKQorCWZvcmVhY2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwg Y2hpbGQsIGNoaWxkcmVuKQogCXsKLQkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRl cm5Ob2RlICopIGxmaXJzdChsYyk7CiAJCVJQUlBhdHRlcm5Ob2RlICpvcHQgPSBvcHRpbWl6ZVJQ UlBhdHRlcm4oY2hpbGQpOwogCiAJCS8qIEdST1VQezEsMX0gc2hvdWxkIGhhdmUgYmVlbiB1bndy YXBwZWQgYnkgb3B0aW1pemVHcm91cFBhdHRlcm4gKi8KQEAgLTIyOSwxNCArMjI3LDExIEBAIGZs YXR0ZW5TZXFDaGlsZHJlbihMaXN0ICpjaGlsZHJlbikKIHN0YXRpYyBMaXN0ICoKIG1lcmdlQ29u c2VjdXRpdmVWYXJzKExpc3QgKmNoaWxkcmVuKQogewotCUxpc3RDZWxsICAgKmxjOwogCUxpc3QJ ICAgKm1lcmdlZENoaWxkcmVuID0gTklMOwogCVJQUlBhdHRlcm5Ob2RlICpwcmV2ID0gTlVMTDsK IAotCWZvcmVhY2gobGMsIGNoaWxkcmVuKQorCWZvcmVhY2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwg Y2hpbGQsIGNoaWxkcmVuKQogCXsKLQkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRl cm5Ob2RlICopIGxmaXJzdChsYyk7Ci0KIAkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFU VEVSTl9WQVIgJiYgY2hpbGQtPnJlbHVjdGFudCA9PSBmYWxzZSkKIAkJewogCQkJLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA2LDE0ICszMDEsMTEgQEAgbWVyZ2VDb25zZWN1dGl2ZVZh cnMoTGlzdCAqY2hpbGRyZW4pCiBzdGF0aWMgTGlzdCAqCiBtZXJnZUNvbnNlY3V0aXZlR3JvdXBz KExpc3QgKmNoaWxkcmVuKQogewotCUxpc3RDZWxsICAgKmxjOwogCUxpc3QJICAgKm1lcmdlZENo aWxkcmVuID0gTklMOwogCVJQUlBhdHRlcm5Ob2RlICpwcmV2ID0gTlVMTDsKIAotCWZvcmVhY2go bGMsIGNoaWxkcmVuKQorCWZvcmVhY2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwgY2hpbGQsIGNoaWxk cmVuKQogCXsKLQkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxm aXJzdChsYyk7Ci0KIAkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9HUk9VUCAm JiBjaGlsZC0+cmVsdWN0YW50ID09IGZhbHNlKQogCQl7CiAJCQkvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC0zODUsMTUgKzM3NywxMiBAQCBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzKExpc3Qg KmNoaWxkcmVuKQogc3RhdGljIExpc3QgKgogbWVyZ2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hp bGRyZW4pCiB7Ci0JTGlzdENlbGwgICAqbGM7CiAJTGlzdAkgICAqbWVyZ2VkQ2hpbGRyZW4gPSBO SUw7CiAJUlBSUGF0dGVybk5vZGUgKnByZXYgPSBOVUxMOwogCWludAkJCWNvdW50ID0gMDsKIAot CWZvcmVhY2gobGMsIGNoaWxkcmVuKQorCWZvcmVhY2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwgY2hp bGQsIGNoaWxkcmVuKQogCXsKLQkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5O b2RlICopIGxmaXJzdChsYyk7Ci0KIAkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVS Tl9BTFQgJiYgY2hpbGQtPnJlbHVjdGFudCA9PSBmYWxzZSkKIAkJewogCQkJaWYgKHByZXYgIT0g TlVMTCAmJgpAQCAtNzAyLDEyICs2OTEsMTAgQEAgb3B0aW1pemVTZXFQYXR0ZXJuKFJQUlBhdHRl cm5Ob2RlICpwYXR0ZXJuKQogc3RhdGljIExpc3QgKgogZmxhdHRlbkFsdENoaWxkcmVuKExpc3Qg KmNoaWxkcmVuKQogewotCUxpc3RDZWxsICAgKmxjOwogCUxpc3QJICAgKm5ld0NoaWxkcmVuID0g TklMOwogCi0JZm9yZWFjaChsYywgY2hpbGRyZW4pCisJZm9yZWFjaF9ub2RlKFJQUlBhdHRlcm5O b2RlLCBjaGlsZCwgY2hpbGRyZW4pCiAJewotCQlSUFJQYXR0ZXJuTm9kZSAqY2hpbGQgPSAoUlBS UGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKTsKIAkJUlBSUGF0dGVybk5vZGUgKm9wdCA9IG9wdGlt aXplUlBSUGF0dGVybihjaGlsZCk7CiAKIAkJaWYgKG9wdC0+bm9kZVR5cGUgPT0gUlBSX1BBVFRF Uk5fQUxUKQpAQCAtNzMyLDE4ICs3MTksMTUgQEAgZmxhdHRlbkFsdENoaWxkcmVuKExpc3QgKmNo aWxkcmVuKQogc3RhdGljIExpc3QgKgogcmVtb3ZlRHVwbGljYXRlQWx0ZXJuYXRpdmVzKExpc3Qg KmNoaWxkcmVuKQogewotCUxpc3RDZWxsICAgKmxjOwotCUxpc3RDZWxsICAgKmxjMjsKIAlMaXN0 CSAgICp1bmlxdWVDaGlsZHJlbiA9IE5JTDsKIAotCWZvcmVhY2gobGMsIGNoaWxkcmVuKQorCWZv cmVhY2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwgY2hpbGQsIGNoaWxkcmVuKQogCXsKLQkJUlBSUGF0 dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyk7CiAJCWJvb2wJ CWlzRHVwbGljYXRlID0gZmFsc2U7CiAKLQkJZm9yZWFjaChsYzIsIHVuaXF1ZUNoaWxkcmVuKQor CQlmb3JlYWNoX25vZGUoUlBSUGF0dGVybk5vZGUsIHVjaGlsZCwgdW5pcXVlQ2hpbGRyZW4pCiAJ CXsKLQkJCWlmIChycHJQYXR0ZXJuRXF1YWwoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYzIp LCBjaGlsZCkpCisJCQlpZiAocnByUGF0dGVybkVxdWFsKHVjaGlsZCwgY2hpbGQpKQogCQkJewog CQkJCWlzRHVwbGljYXRlID0gdHJ1ZTsKIAkJCQlicmVhazsKQEAgLTk0MCwxNiArOTI0LDEzIEBA IHRyeVVud3JhcEdyb3VwKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQogc3RhdGljIFJQUlBhdHRl cm5Ob2RlICoKIG9wdGltaXplR3JvdXBQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQog ewotCUxpc3RDZWxsICAgKmxjOwogCUxpc3QJICAgKm5ld0NoaWxkcmVuOwogCVJQUlBhdHRlcm5O b2RlICpyZXN1bHQ7CiAKIAkvKiBSZWN1cnNpdmVseSBvcHRpbWl6ZSBjaGlsZHJlbiAqLwogCW5l d0NoaWxkcmVuID0gTklMOwotCWZvcmVhY2gobGMsIHBhdHRlcm4tPmNoaWxkcmVuKQorCWZvcmVh Y2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwgY2hpbGQsIHBhdHRlcm4tPmNoaWxkcmVuKQogCXsKLQkJ UlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyk7Ci0K IAkJbmV3Q2hpbGRyZW4gPSBsYXBwZW5kKG5ld0NoaWxkcmVuLCBvcHRpbWl6ZVJQUlBhdHRlcm4o Y2hpbGQpKTsKIAl9CiAJcGF0dGVybi0+Y2hpbGRyZW4gPSBuZXdDaGlsZHJlbjsKQEAgLTEwMDUs MTUgKzk4NiwxNCBAQCBvcHRpbWl6ZVJQUlBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4p CiBzdGF0aWMgaW50CiBjb2xsZWN0RGVmaW5lVmFyaWFibGVzKExpc3QgKmRlZmluZVZhcmlhYmxl TGlzdCwgY2hhciAqKnZhck5hbWVzKQogewotCUxpc3RDZWxsICAgKmxjOwogCWludAkJCW51bVZh cnMgPSAwOwogCi0JZm9yZWFjaChsYywgZGVmaW5lVmFyaWFibGVMaXN0KQorCWZvcmVhY2hfbm9k ZShTdHJpbmcsIHZhcm5hbWUsIGRlZmluZVZhcmlhYmxlTGlzdCkKIAl7CiAJCS8qIFBhcnNlciBh bHJlYWR5IGNoZWNrZWQgdGhpcyBsaW1pdCBpbiB0cmFuc2Zvcm1EZWZpbmVDbGF1c2UgKi8KIAkJ QXNzZXJ0KG51bVZhcnMgPD0gUlBSX1ZBUklEX01BWCk7CiAKLQkJdmFyTmFtZXNbbnVtVmFycysr XSA9IHN0clZhbChsZmlyc3QobGMpKTsKKwkJdmFyTmFtZXNbbnVtVmFycysrXSA9IHN0clZhbCh2 YXJuYW1lKTsKIAl9CiAKIAlyZXR1cm4gbnVtVmFyczsKQEAgLTEwMzEsNyArMTAxMSw2IEBAIHN0 YXRpYyB2b2lkCiBzY2FuUlBSUGF0dGVyblJlY3Vyc2l2ZShSUFJQYXR0ZXJuTm9kZSAqbm9kZSwg Y2hhciAqKnZhck5hbWVzLCBpbnQgKm51bVZhcnMsCiAJCQkJCQlpbnQgKm51bUVsZW1lbnRzLCBS UFJEZXB0aCBkZXB0aCwgUlBSRGVwdGggKm1heERlcHRoKQogewotCUxpc3RDZWxsICAgKmxjOwog CWludAkJCWk7CiAKIAkvKiBQYXR0ZXJuIG5vZGVzIGZyb20gcGFyc2VyIGFyZSBuZXZlciBOVUxM ICovCkBAIC0xMDc1LDkgKzEwNTQsOSBAQCBzY2FuUlBSUGF0dGVyblJlY3Vyc2l2ZShSUFJQYXR0 ZXJuTm9kZSAqbm9kZSwgY2hhciAqKnZhck5hbWVzLCBpbnQgKm51bVZhcnMsCiAKIAkJY2FzZSBS UFJfUEFUVEVSTl9TRVE6CiAJCQkvKiBTZXF1ZW5jZToganVzdCByZWN1cnNlIGludG8gY2hpbGRy ZW4gKi8KLQkJCWZvcmVhY2gobGMsIG5vZGUtPmNoaWxkcmVuKQorCQkJZm9yZWFjaF9ub2RlKFJQ UlBhdHRlcm5Ob2RlLCBjaGlsZCwgbm9kZS0+Y2hpbGRyZW4pCiAJCQl7Ci0JCQkJc2NhblJQUlBh dHRlcm5SZWN1cnNpdmUoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyksIHZhck5hbWVzLAor CQkJCXNjYW5SUFJQYXR0ZXJuUmVjdXJzaXZlKGNoaWxkLCB2YXJOYW1lcywKIAkJCQkJCQkJCQlu dW1WYXJzLCBudW1FbGVtZW50cywgZGVwdGgsIG1heERlcHRoKTsKIAkJCX0KIAkJCWJyZWFrOwpA QCAtMTA4OCw5ICsxMDY3LDkgQEAgc2NhblJQUlBhdHRlcm5SZWN1cnNpdmUoUlBSUGF0dGVybk5v ZGUgKm5vZGUsIGNoYXIgKip2YXJOYW1lcywgaW50ICpudW1WYXJzLAogCQkJCSgqbnVtRWxlbWVu dHMpKys7CiAKIAkJCS8qIFJlY3Vyc2UgaW50byBjaGlsZHJlbiBhdCBpbmNyZWFzZWQgZGVwdGgg Ki8KLQkJCWZvcmVhY2gobGMsIG5vZGUtPmNoaWxkcmVuKQorCQkJZm9yZWFjaF9ub2RlKFJQUlBh dHRlcm5Ob2RlLCBjaGlsZCwgbm9kZS0+Y2hpbGRyZW4pCiAJCQl7Ci0JCQkJc2NhblJQUlBhdHRl cm5SZWN1cnNpdmUoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyksIHZhck5hbWVzLAorCQkJ CXNjYW5SUFJQYXR0ZXJuUmVjdXJzaXZlKGNoaWxkLCB2YXJOYW1lcywKIAkJCQkJCQkJCQludW1W YXJzLCBudW1FbGVtZW50cywgZGVwdGggKyAxLCBtYXhEZXB0aCk7CiAJCQl9CiAKQEAgLTExMDQs OSArMTA4Myw5IEBAIHNjYW5SUFJQYXR0ZXJuUmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2Rl LCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFycywKIAkJCSgqbnVtRWxlbWVudHMpKys7CiAK IAkJCS8qIFJlY3Vyc2UgaW50byBjaGlsZHJlbiBhdCBpbmNyZWFzZWQgZGVwdGggKi8KLQkJCWZv cmVhY2gobGMsIG5vZGUtPmNoaWxkcmVuKQorCQkJZm9yZWFjaF9ub2RlKFJQUlBhdHRlcm5Ob2Rl LCBjaGlsZCwgbm9kZS0+Y2hpbGRyZW4pCiAJCQl7Ci0JCQkJc2NhblJQUlBhdHRlcm5SZWN1cnNp dmUoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyksIHZhck5hbWVzLAorCQkJCXNjYW5SUFJQ YXR0ZXJuUmVjdXJzaXZlKGNoaWxkLCB2YXJOYW1lcywKIAkJCQkJCQkJCQludW1WYXJzLCBudW1F bGVtZW50cywgZGVwdGggKyAxLCBtYXhEZXB0aCk7CiAJCQl9CiAJCQlicmVhazsKQEAgLTEyNDgs NyArMTIyNyw2IEBAIGZpbGxSUFJQYXR0ZXJuVmFyKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQ YXR0ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0aCBkZXB0CiBzdGF0aWMgYm9vbAogZmlsbFJQ UlBhdHRlcm5Hcm91cChSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQg KmlkeCwgUlBSRGVwdGggZGVwdGgpCiB7Ci0JTGlzdENlbGwgICAqbGM7CiAJaW50CQkJZ3JvdXBT dGFydElkeCA9ICppZHg7CiAJaW50CQkJYmVnaW5JZHggPSAtMTsKIAlib29sCQlib2R5TnVsbGFi bGUgPSB0cnVlOwpAQCAtMTI3NSw5ICsxMjUzLDkgQEAgZmlsbFJQUlBhdHRlcm5Hcm91cChSUFJQ YXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQgKmlkeCwgUlBSRGVwdGggZGUK IAkJZ3JvdXBTdGFydElkeCA9ICppZHg7CS8qIGNoaWxkcmVuIHN0YXJ0IGFmdGVyIEJFR0lOICov CiAJfQogCi0JZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCisJZm9yZWFjaF9ub2RlKFJQUlBh dHRlcm5Ob2RlLCBjaGlsZCwgbm9kZS0+Y2hpbGRyZW4pCiAJewotCQlpZiAoIWZpbGxSUFJQYXR0 ZXJuKChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpLCBwYXQsIGlkeCwgZGVwdGggKyAxKSkK KwkJaWYgKCFmaWxsUlBSUGF0dGVybihjaGlsZCwgcGF0LCBpZHgsIGRlcHRoICsgMSkpCiAJCQli b2R5TnVsbGFibGUgPSBmYWxzZTsKIAl9CiAKQEAgLTEzNTAsOSArMTMyOCw4IEBAIGZpbGxSUFJQ YXR0ZXJuQWx0KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4 LCBSUFJEZXB0aCBkZXB0CiAJKCppZHgpKys7CiAKIAkvKiBGaWxsIGVhY2ggYWx0ZXJuYXRpdmUg Ki8KLQlmb3JlYWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwlmb3JlYWNoX25vZGUoUlBSUGF0dGVy bk5vZGUsIGFsdCwgbm9kZS0+Y2hpbGRyZW4pCiAJewotCQlSUFJQYXR0ZXJuTm9kZSAqYWx0ID0g KFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyk7CiAJCWludAkJCWJyYW5jaFN0YXJ0ID0gKmlk eDsKIAogCQlhbHRCcmFuY2hTdGFydHMgPSBsYXBwZW5kX2ludChhbHRCcmFuY2hTdGFydHMsIGJy YW5jaFN0YXJ0KTsKQEAgLTEzNzIsOSArMTM0OSw4IEBAIGZpbGxSUFJQYXR0ZXJuQWx0KFJQUlBh dHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0aCBkZXB0 CiAKIAkvKiBTZXQgbmV4dCBvbiBsYXN0IGVsZW1lbnQgb2YgZWFjaCBhbHRlcm5hdGl2ZSB0byBh ZnRlciB0aGUgYWx0ZXJuYXRpb24gKi8KIAlhZnRlckFsdElkeCA9ICppZHg7Ci0JbGMyID0gbGlz dF9oZWFkKGFsdEJyYW5jaFN0YXJ0cyk7CiAKLQlmb3JlYWNoKGxjLCBhbHRFbmRQb3NpdGlvbnMp CisJZm9yYm90aChsYywgYWx0RW5kUG9zaXRpb25zLCBsYzIsIGFsdEJyYW5jaFN0YXJ0cykKIAl7 CiAJCWludAkJCWVuZFBvcyA9IGxmaXJzdF9pbnQobGMpOwogCQlpbnQJCQlicmFuY2hTdGFydCA9 IGxmaXJzdF9pbnQobGMyKTsKQEAgLTEzOTksOCArMTM3NSw2IEBAIGZpbGxSUFJQYXR0ZXJuQWx0 KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0 aCBkZXB0CiAJCXsKIAkJCXBhdC0+ZWxlbWVudHNbZW5kUG9zXS5uZXh0ID0gYWZ0ZXJBbHRJZHg7 CiAJCX0KLQotCQlsYzIgPSBsbmV4dChhbHRCcmFuY2hTdGFydHMsIGxjMik7CiAJfQogCiAJbGlz dF9mcmVlKGFsdEJyYW5jaFN0YXJ0cyk7CkBAIC0xNDIyLDcgKzEzOTYsNiBAQCBmaWxsUlBSUGF0 dGVybkFsdChSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQgKmlkeCwg UlBSRGVwdGggZGVwdAogc3RhdGljIGJvb2wKIGZpbGxSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2Rl ICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0aCBkZXB0aCkKIHsKLQlM aXN0Q2VsbCAgICpsYzsKIAlib29sCQlhbGxOdWxsYWJsZSA9IHRydWU7CiAKIAkvKiBQYXR0ZXJu IG5vZGVzIGZyb20gcGFyc2VyIGFyZSBuZXZlciBOVUxMICovCkBAIC0xNDMzLDkgKzE0MDYsOSBA QCBmaWxsUlBSUGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBp bnQgKmlkeCwgUlBSRGVwdGggZGVwdGgpCiAJc3dpdGNoIChub2RlLT5ub2RlVHlwZSkKIAl7CiAJ CWNhc2UgUlBSX1BBVFRFUk5fU0VROgotCQkJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCisJ CQlmb3JlYWNoX25vZGUoUlBSUGF0dGVybk5vZGUsIGNoaWxkLCBub2RlLT5jaGlsZHJlbikKIAkJ CXsKLQkJCQlpZiAoIWZpbGxSUFJQYXR0ZXJuKChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMp LCBwYXQsIGlkeCwgZGVwdGgpKQorCQkJCWlmICghZmlsbFJQUlBhdHRlcm4oY2hpbGQsIHBhdCwg aWR4LCBkZXB0aCkpCiAJCQkJCWFsbE51bGxhYmxlID0gZmFsc2U7CiAJCQl9CiAJCQlyZXR1cm4g YWxsTnVsbGFibGU7CkBAIC0xODU2LDggKzE4MjksNiBAQCBjb21wdXRlQWJzb3JiYWJpbGl0eShS UFJQYXR0ZXJuICpwYXR0ZXJuKQogc3RhdGljIHZvaWQKIGNvbGxlY3RQYXR0ZXJuVmFyaWFibGVz UmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBMaXN0ICoqdmFyTmFtZXMpCiB7Ci0JTGlz dENlbGwgICAqbGM7Ci0KIAlBc3NlcnQobm9kZSAhPSBOVUxMKTsKIAogCWNoZWNrX3N0YWNrX2Rl cHRoKCk7CkBAIC0xODY2LDkgKzE4MzcsOSBAQCBjb2xsZWN0UGF0dGVyblZhcmlhYmxlc1JlY3Vy c2l2ZShSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgTGlzdCAqKnZhck5hbWVzKQogCXsKIAkJY2FzZSBS UFJfUEFUVEVSTl9WQVI6CiAJCQkvKiBBZGQgdmFyaWFibGUgaWYgbm90IGFscmVhZHkgaW4gbGlz dCAqLwotCQkJZm9yZWFjaChsYywgKnZhck5hbWVzKQorCQkJZm9yZWFjaF9ub2RlKFN0cmluZywg dmFybmFtZSwgKnZhck5hbWVzKQogCQkJewotCQkJCWlmIChzdHJjbXAoc3RyVmFsKGxmaXJzdChs YykpLCBub2RlLT52YXJOYW1lKSA9PSAwKQorCQkJCWlmIChzdHJjbXAoc3RyVmFsKHZhcm5hbWUp LCBub2RlLT52YXJOYW1lKSA9PSAwKQogCQkJCQlyZXR1cm47CQkvKiBBbHJlYWR5IGNvbGxlY3Rl ZCAqLwogCQkJfQogCQkJKnZhck5hbWVzID0gbGFwcGVuZCgqdmFyTmFtZXMsIG1ha2VTdHJpbmco cHN0cmR1cChub2RlLT52YXJOYW1lKSkpOwpAQCAtMTg3NywxMCArMTg0OCw5IEBAIGNvbGxlY3RQ YXR0ZXJuVmFyaWFibGVzUmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBMaXN0ICoqdmFy TmFtZXMpCiAJCWNhc2UgUlBSX1BBVFRFUk5fU0VROgogCQljYXNlIFJQUl9QQVRURVJOX0FMVDoK IAkJY2FzZSBSUFJfUEFUVEVSTl9HUk9VUDoKLQkJCWZvcmVhY2gobGMsIG5vZGUtPmNoaWxkcmVu KQorCQkJZm9yZWFjaF9ub2RlKFJQUlBhdHRlcm5Ob2RlLCBjaGlsZCwgbm9kZS0+Y2hpbGRyZW4p CiAJCQl7Ci0JCQkJY29sbGVjdFBhdHRlcm5WYXJpYWJsZXNSZWN1cnNpdmUoKFJQUlBhdHRlcm5O b2RlICopIGxmaXJzdChsYyksCi0JCQkJCQkJCQkJCQkgdmFyTmFtZXMpOworCQkJCWNvbGxlY3RQ YXR0ZXJuVmFyaWFibGVzUmVjdXJzaXZlKGNoaWxkLCB2YXJOYW1lcyk7CiAJCQl9CiAJCQlicmVh azsKIAl9CkBAIC0xOTE3LDE0ICsxODg3LDEwIEBAIGNvbGxlY3RQYXR0ZXJuVmFyaWFibGVzKFJQ UlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQogdm9pZAogYnVpbGREZWZpbmVWYXJpYWJsZUxpc3QoTGlz dCAqZGVmaW5lQ2xhdXNlLCBMaXN0ICoqZGVmaW5lVmFyaWFibGVMaXN0KQogewotCUxpc3RDZWxs ICAgKmxjOwotCiAJKmRlZmluZVZhcmlhYmxlTGlzdCA9IE5JTDsKIAotCWZvcmVhY2gobGMsIGRl ZmluZUNsYXVzZSkKKwlmb3JlYWNoX25vZGUoVGFyZ2V0RW50cnksIHRlLCBkZWZpbmVDbGF1c2Up CiAJewotCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKLQog CQkqZGVmaW5lVmFyaWFibGVMaXN0ID0gbGFwcGVuZCgqZGVmaW5lVmFyaWFibGVMaXN0LAogCQkJ CQkJCQkJICBtYWtlU3RyaW5nKHBzdHJkdXAodGUtPnJlc25hbWUpKSk7CiAJfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwppbmRleCAwMjg5OGE5MTA2Yi4uNzRkYzQ4 NmIxZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJl ZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0y NTkzLDEwICsyNTkzLDggQEAgcGVyZm9ybV9wdWxsdXBfcmVwbGFjZV92YXJzKFBsYW5uZXJJbmZv ICpyb290LAogCXBhcnNlLT5yZXR1cm5pbmdMaXN0ID0gKExpc3QgKikKIAkJcHVsbHVwX3JlcGxh Y2VfdmFycygoTm9kZSAqKSBwYXJzZS0+cmV0dXJuaW5nTGlzdCwgcnZjb250ZXh0KTsKIAotCWZv cmVhY2gobGMsIHBhcnNlLT53aW5kb3dDbGF1c2UpCisJZm9yZWFjaF9ub2RlKFdpbmRvd0NsYXVz ZSwgd2MsIHBhcnNlLT53aW5kb3dDbGF1c2UpCiAJewotCQlXaW5kb3dDbGF1c2UgKndjID0gbGZp cnN0X25vZGUoV2luZG93Q2xhdXNlLCBsYyk7Ci0KIAkJaWYgKHdjLT5kZWZpbmVDbGF1c2UgIT0g TklMKQogCQkJd2MtPmRlZmluZUNsYXVzZSA9IChMaXN0ICopCiAJCQkJcHVsbHVwX3JlcGxhY2Vf dmFycygoTm9kZSAqKSB3Yy0+ZGVmaW5lQ2xhdXNlLCBydmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2N0ZS5jCmluZGV4IDA5NzRiNDNkMDI4Li4zZTQ5M2JlYmEwYiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9j dGUuYwpAQCAtMTgyLDkgKzE4Miw4IEBAIHRyYW5zZm9ybVdpdGhDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQkgKiByZXdyaXR0ZW4gdG8gV0lUSCBS RUNVUlNJVkUgYnkgbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoKSBhbmQgc28KIAkJICogZmxvd3Mg dGhyb3VnaCBoZXJlIGFzIHdlbGwuCiAJCSAqLwotCQlmb3JlYWNoKGxjLCB3aXRoQ2xhdXNlLT5j dGVzKQorCQlmb3JlYWNoX25vZGUoQ29tbW9uVGFibGVFeHByLCBjdGUsIHdpdGhDbGF1c2UtPmN0 ZXMpCiAJCXsKLQkJCUNvbW1vblRhYmxlRXhwciAqY3RlID0gKENvbW1vblRhYmxlRXhwciAqKSBs Zmlyc3QobGMpOwogCQkJQ29udGFpblJQUkNvbnRleHQgY3R4OwogCiAJCQljdHgubG9jYXRpb24g PSAtMTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGY2NWEyNzBkMjBlLi4wZjcyMDc1Nzdi MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC02NTIsMTIgKzY1MiwxMSBAQCB0cmFuc2Zv cm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWxpc3Rf bGVuZ3RoKGNyZWYtPmZpZWxkcykgIT0gMSkKIAl7CiAJCWNoYXIJICAgKnF1YWxpZmllciA9IHN0 clZhbChsaW5pdGlhbChjcmVmLT5maWVsZHMpKTsKLQkJTGlzdENlbGwgICAqbGM7CiAJCWJvb2wJ CWlzX3BhdHRlcm5fdmFyID0gZmFsc2U7CiAKLQkJZm9yZWFjaChsYywgcHN0YXRlLT5wX3Jwcl9w YXR0ZXJuX3ZhcnMpCisJCWZvcmVhY2hfbm9kZShTdHJpbmcsIHB2LCBwc3RhdGUtPnBfcnByX3Bh dHRlcm5fdmFycykKIAkJewotCQkJaWYgKHN0cmNtcChzdHJWYWwobGZpcnN0KGxjKSksIHF1YWxp ZmllcikgPT0gMCkKKwkJCWlmIChzdHJjbXAoc3RyVmFsKHB2KSwgcXVhbGlmaWVyKSA9PSAwKQog CQkJewogCQkJCWlzX3BhdHRlcm5fdmFyID0gdHJ1ZTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9ycHIuYwppbmRleCA0ZTFkMjY1MGNmNi4uZDEyYTBkNDVjOTQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf cnByLmMKQEAgLTIwOCw4ICsyMDgsNiBAQCBzdGF0aWMgdm9pZAogdmFsaWRhdGVSUFJQYXR0ZXJu VmFyQ291bnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSwKIAkJCQkJ CSAgIExpc3QgKnJwRGVmcywgTGlzdCAqKnZhck5hbWVzKQogewotCUxpc3RDZWxsICAgKmxjOwot CiAJLyogUGF0dGVybiBub2RlIG11c3QgZXhpc3QgLSBwYXJzZXIgYWx3YXlzIHByb3ZpZGVzIG5v bi1OVUxMIHJvb3QgKi8KIAlBc3NlcnQobm9kZSAhPSBOVUxMKTsKIApAQCAtMjI4LDkgKzIyNiw5 IEBAIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUlBSUGF0 dGVybk5vZGUgKm5vZGUsCiAJCQl7CiAJCQkJYm9vbAkJZm91bmQgPSBmYWxzZTsKIAotCQkJCWZv cmVhY2gobGMsICp2YXJOYW1lcykKKwkJCQlmb3JlYWNoX25vZGUoU3RyaW5nLCB2YXJuYW1lLCAq dmFyTmFtZXMpCiAJCQkJewotCQkJCQlpZiAoc3RyY21wKHN0clZhbChsZmlyc3QobGMpKSwgbm9k ZS0+dmFyTmFtZSkgPT0gMCkKKwkJCQkJaWYgKHN0cmNtcChzdHJWYWwodmFybmFtZSksIG5vZGUt PnZhck5hbWUpID09IDApCiAJCQkJCXsKIAkJCQkJCWZvdW5kID0gdHJ1ZTsKIAkJCQkJCWJyZWFr OwpAQCAtMjYxLDEwICsyNTksOSBAQCB2YWxpZGF0ZVJQUlBhdHRlcm5WYXJDb3VudChQYXJzZVN0 YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpub2RlLAogCQljYXNlIFJQUl9QQVRURVJOX0FM VDoKIAkJY2FzZSBSUFJfUEFUVEVSTl9HUk9VUDoKIAkJCS8qIFJlY3Vyc2UgaW50byBjaGlsZHJl biAqLwotCQkJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCisJCQlmb3JlYWNoX25vZGUoUlBS UGF0dGVybk5vZGUsIGNoaWxkLCBub2RlLT5jaGlsZHJlbikKIAkJCXsKLQkJCQl2YWxpZGF0ZVJQ UlBhdHRlcm5WYXJDb3VudChwc3RhdGUsIChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpLAot CQkJCQkJCQkJCSAgIE5VTEwsIHZhck5hbWVzKTsKKwkJCQl2YWxpZGF0ZVJQUlBhdHRlcm5WYXJD b3VudChwc3RhdGUsIGNoaWxkLCBOVUxMLCB2YXJOYW1lcyk7CiAJCQl9CiAJCQlicmVhazsKIAl9 CkBAIC0yNzcsMTUgKzI3NCwxMyBAQCB2YWxpZGF0ZVJQUlBhdHRlcm5WYXJDb3VudChQYXJzZVN0 YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpub2RlLAogCSAqLwogCWlmIChycERlZnMpCiAJ ewotCQlmb3JlYWNoKGxjLCBycERlZnMpCisJCWZvcmVhY2hfbm9kZShSZXNUYXJnZXQsIHJ0LCBy cERlZnMpCiAJCXsKLQkJCVJlc1RhcmdldCAgKnJ0ID0gKFJlc1RhcmdldCAqKSBsZmlyc3QobGMp OwotCQkJTGlzdENlbGwgICAqbGMyOwogCQkJYm9vbAkJZm91bmQgPSBmYWxzZTsKIAotCQkJZm9y ZWFjaChsYzIsICp2YXJOYW1lcykKKwkJCWZvcmVhY2hfbm9kZShTdHJpbmcsIHZhcm5hbWUsICp2 YXJOYW1lcykKIAkJCXsKLQkJCQlpZiAoc3RyY21wKHN0clZhbChsZmlyc3QobGMyKSksIHJ0LT5u YW1lKSA9PSAwKQorCQkJCWlmIChzdHJjbXAoc3RyVmFsKHZhcm5hbWUpLCBydC0+bmFtZSkgPT0g MCkKIAkJCQl7CiAJCQkJCWZvdW5kID0gdHJ1ZTsKIAkJCQkJYnJlYWs7CkBAIC0zMjcsMTAgKzMy Miw2IEBAIHN0YXRpYyBMaXN0ICoKIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpw c3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCQkJCQkgIExpc3Qg Kip0YXJnZXRsaXN0KQogewotCUxpc3RDZWxsICAgKmxjLAotCQkJICAgKmw7Ci0JUmVzVGFyZ2V0 ICAqcmVzdGFyZ2V0LAotCQkJICAgKnI7CiAJTGlzdAkgICAqcmVzdGFyZ2V0czsKIAlMaXN0CSAg ICpkZWZpbmVDbGF1c2UgPSBOSUw7CiAJY2hhcgkgICAqbmFtZTsKQEAgLTM1NywxOCArMzQ4LDE2 IEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVz ZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCSAqIGVxdWl2YWxlbnQuCiAJICovCiAJcmVzdGFy Z2V0cyA9IE5JTDsKLQlmb3JlYWNoKGxjLCB3aW5kZWYtPnJwQ29tbW9uU3ludGF4LT5ycERlZnMp CisJZm9yZWFjaF9ub2RlKFJlc1RhcmdldCwgcmVzdGFyZ2V0LCB3aW5kZWYtPnJwQ29tbW9uU3lu dGF4LT5ycERlZnMpCiAJewogCQlUYXJnZXRFbnRyeSAqdGVEZWZpbmU7CiAKLQkJcmVzdGFyZ2V0 ID0gKFJlc1RhcmdldCAqKSBsZmlyc3QobGMpOwogCQluYW1lID0gcmVzdGFyZ2V0LT5uYW1lOwog Ci0JCWZvcmVhY2gobCwgcmVzdGFyZ2V0cykKKwkJZm9yZWFjaF9ub2RlKFJlc1RhcmdldCwgciwg cmVzdGFyZ2V0cykKIAkJewogCQkJY2hhcgkgICAqbjsKIAotCQkJciA9IChSZXNUYXJnZXQgKikg bGZpcnN0KGwpOwogCQkJbiA9IHItPm5hbWU7CiAKIAkJCWlmICghc3RyY21wKG4sIG5hbWUpKQpA QCAtMzk0LDcgKzM4Myw2IEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAogCQl7CiAJCQlOb2RlCSAg ICpleHByOwogCQkJTGlzdAkgICAqdmFyczsKLQkJCUxpc3RDZWxsICAgKmxjMjsKIAogCQkJZXhw ciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCByZXN0YXJnZXQtPnZhbCwKIAkJCQkJCQkJIEVYUFJf S0lORF9SUFJfREVGSU5FKTsKQEAgLTQwNywxNiArMzk1LDEyIEBAIHRyYW5zZm9ybURlZmluZUNs YXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2lu ZGVmLAogCQkJICogZXZhbHVhdGlvbi4KIAkJCSAqLwogCQkJdmFycyA9IHB1bGxfdmFyX2NsYXVz ZShleHByLCAwKTsKLQkJCWZvcmVhY2gobGMyLCB2YXJzKQorCQkJZm9yZWFjaF9ub2RlKFZhciwg dmFyLCB2YXJzKQogCQkJewotCQkJCVZhcgkJICAgKnZhciA9IChWYXIgKikgbGZpcnN0KGxjMik7 CiAJCQkJYm9vbAkJZm91bmQgPSBmYWxzZTsKLQkJCQlMaXN0Q2VsbCAgICp0bDsKIAotCQkJCWZv cmVhY2godGwsICp0YXJnZXRsaXN0KQorCQkJCWZvcmVhY2hfbm9kZShUYXJnZXRFbnRyeSwgdGxl LCAqdGFyZ2V0bGlzdCkKIAkJCQl7Ci0JCQkJCVRhcmdldEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50 cnkgKikgbGZpcnN0KHRsKTsKLQogCQkJCQlpZiAoSXNBKHRsZS0+ZXhwciwgVmFyKSAmJgogCQkJ CQkJKChWYXIgKikgdGxlLT5leHByKS0+dmFybm8gPT0gdmFyLT52YXJubyAmJgogCQkJCQkJKChW YXIgKikgdGxlLT5leHByKS0+dmFyYXR0bm8gPT0gdmFyLT52YXJhdHRubykKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYwppbmRleCBkNTg4Y2Q4MjYzZC4uNDE1ZGE2NDE3ZDQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMKQEAgLTcxNTMsNyArNzE1Myw2IEBAIHN0YXRpYyB2b2lkCiBnZXRf cnVsZV9wYXR0ZXJuX25vZGUoUlBSUGF0dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAq Y29udGV4dCkKIHsKIAlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKLQlMaXN0Q2VsbCAg ICpsYzsKIAljb25zdCBjaGFyICpzZXA7CiAKIAlBc3NlcnQobm9kZSAhPSBOVUxMKTsKQEAgLTcx NjcsMjAgKzcxNjYsMjAgQEAgZ2V0X3J1bGVfcGF0dGVybl9ub2RlKFJQUlBhdHRlcm5Ob2RlICpu b2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAKIAkJY2FzZSBSUFJfUEFUVEVSTl9TRVE6 CiAJCQlzZXAgPSAiIjsKLQkJCWZvcmVhY2gobGMsIG5vZGUtPmNoaWxkcmVuKQorCQkJZm9yZWFj aF9ub2RlKFJQUlBhdHRlcm5Ob2RlLCBjaGlsZCwgbm9kZS0+Y2hpbGRyZW4pCiAJCQl7CiAJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHNlcCk7Ci0JCQkJZ2V0X3J1bGVfcGF0dGVybl9u b2RlKChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpLCBjb250ZXh0KTsKKwkJCQlnZXRfcnVs ZV9wYXR0ZXJuX25vZGUoY2hpbGQsIGNvbnRleHQpOwogCQkJCXNlcCA9ICIgIjsKIAkJCX0KIAkJ CWJyZWFrOwogCiAJCWNhc2UgUlBSX1BBVFRFUk5fQUxUOgogCQkJc2VwID0gIiI7Ci0JCQlmb3Jl YWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwkJCWZvcmVhY2hfbm9kZShSUFJQYXR0ZXJuTm9kZSwg Y2hpbGQsIG5vZGUtPmNoaWxkcmVuKQogCQkJewogCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCBzZXApOwotCQkJCWdldF9ydWxlX3BhdHRlcm5fbm9kZSgoUlBSUGF0dGVybk5vZGUgKikg bGZpcnN0KGxjKSwgY29udGV4dCk7CisJCQkJZ2V0X3J1bGVfcGF0dGVybl9ub2RlKGNoaWxkLCBj b250ZXh0KTsKIAkJCQlzZXAgPSAiIHwgIjsKIAkJCX0KIAkJCWJyZWFrOwpAQCAtNzE4OCwxMCAr NzE4NywxMCBAQCBnZXRfcnVsZV9wYXR0ZXJuX25vZGUoUlBSUGF0dGVybk5vZGUgKm5vZGUsIGRl cGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJY2FzZSBSUFJfUEFUVEVSTl9HUk9VUDoKIAkJCWFw cGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKIAkJCXNlcCA9ICIiOwotCQkJZm9yZWFjaChs Yywgbm9kZS0+Y2hpbGRyZW4pCisJCQlmb3JlYWNoX25vZGUoUlBSUGF0dGVybk5vZGUsIGNoaWxk LCBub2RlLT5jaGlsZHJlbikKIAkJCXsKIAkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg c2VwKTsKLQkJCQlnZXRfcnVsZV9wYXR0ZXJuX25vZGUoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJz dChsYyksIGNvbnRleHQpOworCQkJCWdldF9ydWxlX3BhdHRlcm5fbm9kZShjaGlsZCwgY29udGV4 dCk7CiAJCQkJc2VwID0gIiAiOwogCQkJfQogCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAn KScpOwpAQCAtNzIyMSwxNCArNzIyMCwxMSBAQCBnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5l Q2xhdXNlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiB7CiAJU3RyaW5nSW5mbwlidWYgPSBj b250ZXh0LT5idWY7CiAJY29uc3QgY2hhciAqc2VwOwotCUxpc3RDZWxsICAgKmxjX2RlZjsKIAog CXNlcCA9ICIgICI7CiAKLQlmb3JlYWNoKGxjX2RlZiwgZGVmaW5lQ2xhdXNlKQorCWZvcmVhY2hf bm9kZShUYXJnZXRFbnRyeSwgdGUsIGRlZmluZUNsYXVzZSkKIAl7Ci0JCVRhcmdldEVudHJ5ICp0 ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGNfZGVmKTsKLQogCQlhcHBlbmRTdHJpbmdJbmZv KGJ1ZiwgIiVzJXMgQVMgIiwgc2VwLCBxdW90ZV9pZGVudGlmaWVyKHRlLT5yZXNuYW1lKSk7CiAJ CWdldF9ydWxlX2V4cHIoKE5vZGUgKikgdGUtPmV4cHIsIGNvbnRleHQsIGZhbHNlKTsKIAkJc2Vw ID0gIixcbiAgIjsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000094e1900653ca9cf2--