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 1vp7Hy-001XCG-1Q for pgsql-hackers@arkaria.postgresql.org; Sun, 08 Feb 2026 16:05:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vp7Hv-0088PT-0u for pgsql-hackers@arkaria.postgresql.org; Sun, 08 Feb 2026 16:05:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vp7Hu-0088PL-0M for pgsql-hackers@lists.postgresql.org; Sun, 08 Feb 2026 16:05:30 +0000 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vp7Ho-000000019IP-0oKQ for pgsql-hackers@postgresql.org; Sun, 08 Feb 2026 16:05:28 +0000 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-34c718c5481so1314140a91.3 for ; Sun, 08 Feb 2026 08:05:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770566723; cv=none; d=google.com; s=arc-20240605; b=l1K9e40/FrfiRsiGE3PIJcXygYzdACi4sT/1ZgOOj3Ft0Kx7WoJqu3j7gVJ2OLDebf oN3awZDdSCFXduuTGAieDralpQbqn3e8OeQaMKpKEC1CPqXpI215NOuT1ze8m56UBBj+ fVbNsWG7djmtATwdcURMMkx0m0DPpanIYz9DFi+6L2vcw7HTPRveglnNinJ9p6HZl08u vGomQanCHqO5mX5EfsqCuzgFa0xxnFSvBb6+2KDs3WGryc2fc0YpxKBNdkJmqvx+WeDA hUpRWF5nwsBDBUZ8b/V4oDY9ZucZoSPGIg2E7psjtQ48PoT9w8BR44BixV6yv8jTU7yK 9oJg== 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=wBTgvw+3VOak65RBwk0aAbaZT/B1MoGEiRXEuU7lR5k=; fh=5h0vJ98dhDjr04vzMEoFaMETSCBhEYMlzxH0aKpp3cU=; b=FJog7hCHoWIVyjmXB4AH5/mEIsdcFBkEUCNy9eDxRa/ldZv8A+8MuJ6V9m3kKFbant m+k6CyK05uYZ+/Tvh+W6JQGjk34yyHrUxbMimqdqhvS9GZyPFG3VK1NrVQZgsT/kPZOj 5oAirbf7ujg8y+LEhxynvtmRmhe7P210YEvUmIJr0cd9/UCPpq63MUgBi5Zlw5ZhIUUz mEaypdeWDrDwByCnPFJDv4c3ABhJuJuM5WlI4BHgwdPAKt8EvPvEeGU+Nv6rZvVOtgGA UqvK6926d1A7NmWyholOnxfH8MQpVxQeaxrxGIG1qY+e0zhJ41CQLI+7nHIQisqa0cJr 8bfQ==; 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=20230601; t=1770566723; x=1771171523; 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=wBTgvw+3VOak65RBwk0aAbaZT/B1MoGEiRXEuU7lR5k=; b=HKvmjUBnmQj+7mYTXXU7Qm7yr4ru7+yZVstIR7B+CAF6Kv4syI/EvuQp7jdZp+keV8 SqPTli/N1dy9fB0bsp3bwlNpHuJeKTBDckAdbY/QDB4pY/30jo74ZW5Mx8JiFQ8mJyWn qxT0GNTTUIf5FgkgRZoHse4116/FFj6bXPLlXBMuuZORwbjdv7wRlQ0ltE9ZbidPMZsm qqDnj3oRNKrskLw07+tnywbv7ntIWGGXnfo7z3LCEhR9LNHihQ1AQyMAQU+3jHrqgV5D fAExxOdqvB8Rs4kMiDfRilye0HMB1yZV6p9UfbN9JJuJgxVBEFHK53BTMBtVyG50bTkv H1Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770566723; x=1771171523; 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=wBTgvw+3VOak65RBwk0aAbaZT/B1MoGEiRXEuU7lR5k=; b=JYykuo6nvAron9x8qHSBmk2oCloGR7mrHRV2qeFdtnxbPSvMZ4xf4x+POSdMKxTakC nWsGupC0R9uWlYuSyMXJP0NwCf63kJAL1D8bZp2QaoyNRG5ImDkMeKp5TI595TLEI00o fqewZ9T0Rr7F5abSvqYS0ezvCKAahD2n0RLdDbVnjv7nQ9G78G3nLX/qZdEznfFIfKk1 NkYOo3c33yiwpP/fZmvqXsXSLole2U44DdaUAj1sxZ9nIdY3dD66vRrdasaFMDvMTgqX txYtE5ecmkJUie579QffxJJrJTb9VafyKzMF7AcZe+Lsfb+yEvx95pQHdapwn71P7llt TxLw== X-Forwarded-Encrypted: i=1; AJvYcCUnUww1e4YVMnXuUm7QIfMxBiuGc4aTbpeCQld6OdBePEK4ixLkCvFB8f2L/y8eFmx8lGoxyIqrlDArYge/@postgresql.org X-Gm-Message-State: AOJu0YyQt5lMV2HVt/6V9eRGyHke8RXF5r7xHurKEJv/CZVNdJ6ltToa U7MhRjA23WMsS8X6WUJlas2iuy7k3Q0n85cX3k15OBvx8QusbSBDKFewkTHtb1iSLaFOWAxoDlo b333j6KkCnfHLO2NzfhIIvBAup52+GY0= X-Gm-Gg: AZuq6aJNEpn+lMXqz9ZGTYrqkoUBUoq/iAXfE+uSpXlw80LWYZUEqEeXH7wjJTVdWjc BzZcAov7Q3vel3hmQiUR4F2HEt8UPW1K0G8pRQHQphLivktx22JlOqiEbnZlOjYj1IHitXHaniU VhNvMT78Sd2bKQlJH6h0XtSgrtRD+F2ft2f1gIPW5zuYqNffrH+mmvEaWiPK5CAR0kc4XGIUGZ1 fRKbo2t8LAsBj+yC0t5px5IyqObR8cveBoLanuy7BpGWGdaWHVyZyAYi7eruijnJJM6qqaHsbO7 qvotPXYyhsx9bE/xojlhGwYCX7Rp X-Received: by 2002:a17:90b:53c6:b0:33f:eca0:47c6 with SMTP id 98e67ed59e1d1-354b3e4c6acmr6631220a91.30.1770566722594; Sun, 08 Feb 2026 08:05:22 -0800 (PST) MIME-Version: 1.0 References: <20260205.102519.1298921431937419793.ishii@postgresql.org> <20260207.133143.1951390390459539453.ishii@postgresql.org> In-Reply-To: Reply-To: assam258@gmail.com From: Henson Choi Date: Mon, 9 Feb 2026 01:05:10 +0900 X-Gm-Features: AZwV_QiIAUNUROMj8fFPYlUFoMk676_-WtxKg54Zs0EtsnKB_N8MY9ON_eW_5kg Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, vik@postgresfriends.org, er@xs4all.nl, peter@eisentraut.org, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="0000000000008d4e05064a523091" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008d4e05064a523091 Content-Type: multipart/alternative; boundary="0000000000008d4e02064a52308f" --0000000000008d4e02064a52308f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Sorry, I forgot to attach the patch file in my previous email. 2026=EB=85=84 2=EC=9B=94 7=EC=9D=BC (=ED=86=A0) PM 2:41, Henson Choi =EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1: > Hi Tatsuo, > > +-- Filter function to normalize Storage memory values only (not NFA >> statistics) >> +-- Works for text, JSON, and XML formats >> >> What about add reasoning why only storage memory values are normalized >> something like: >> >> -- NFA statistics should not change between platforms. > > > Done. I've updated the comment to: > > -- Filter function to normalize Storage memory values only (not NFA > statistics). > -- NFA statistics should not change between platforms; if they do, it cou= ld > -- indicate issues such as uninitialized memory access. > -- Works for text, JSON, and XML formats. > > This round focused primarily on reviewing explain.c. I believe we're > getting close to the final version now. Only the nodeWindowAgg.c > code review remains on my side. > > For the next submission, would it be helpful if I resend all the > incremental patches I've already sent since v42 together as separate > per-patch files? > > I've also made some updates to the documentation (advanced.sgml and > ref/select.sgml). Could you take a look and let me know if there are > any mistakes or if the changes look good to you? > > I've sent several incremental patches on top of v42, and the attached > patch is the next one in that series. Here are the changes: > > Bugs fixed: > > - Fix server crash in fillRPRPatternAlt() when an inner ALT is the > last element of an outer ALT's branch. Both alternations tried to > set the 'next' pointer on the same endpoint element, triggering > Assert(pat->elements[endPos].next =3D=3D RPR_ELEMIDX_INVALID). Fix by > redirecting all elements in the branch that share the old target to > point to the outer ALT's afterAlt instead. > (Test: PATTERN (C (A | B) | D) -- inner ALT at end of outer branch) > > - Add BEGIN element to fillRPRPatternGroup(). Previously only END was > emitted for quantified groups, so groups with min=3D0 had no skip path > to bypass the group content. Change to BEGIN/END pairs where > BEGIN.jump points past END (skip) and END.jump points to the first > child (loop-back). Add nfa_advance_begin() to the NFA executor for > group entry and skip handling. > (Test: PATTERN (A ((B | C) (D | E))* F?) -- * group matching 0 times) > > - Fix deparse output producing wrong parenthesization for nested ALT > patterns. The flat-loop approach could not correctly suppress double > parentheses for single-ALT groups or handle depth transitions around > alternation separators. Refactor into mutual recursion: > deparse_rpr_elements, deparse_rpr_group, deparse_rpr_alt, and > deparse_rpr_var. > > - Fix deparse separator ordering for nested ALT: the ' | ' separator > was emitted before closing inner parentheses, producing output like > '(c (a | b | )d)' instead of '(c (a | b) | d)'. Close parens to > match separator depth before emitting ' | '. > > - Fix missing ALT separator registration in deparse_rpr_alt() when an > ALT is the first element of an outer ALT's branch. The code only > checked elem->next (always -1 for ALT markers) but not elem->jump, > which carries the outer branch's separator position. > > - Fix altEndPositions/altBranchStarts length mismatch caused by the > 'if (*idx > branchStart)' guard that skipped empty branches. Remove > the guard so both lists always have matching entries. > > - Fix RPRPatternNode.reluctant initialization in gram.y. ALT, SEQ, > VAR, and GROUP primary productions used false (0) or left it > uninitialized (defaulting to 0 from palloc0), but 0 is a valid > ParseLoc meaning "location at offset 0". Change all four creation > sites to use -1 (no location), matching the convention used by > ParseLoc throughout the parser. > > - Fix reluctant quantifier display in both explain.c and ruleutils.c. > A bare variable with reluctant ? (e.g. A?) was displayed as just 'a' > since there was no quantifier to attach ? to. Now emit '{1}?' to > make the reluctant marker unambiguous. > > New optimization: > > - Add mergeConsecutiveAlts() to the SEQ optimization pipeline. After > GROUP{1,1} unwrap, bare alternations like (A | B) become ALT nodes > in the SEQ. This step detects consecutive identical ALT nodes and > wraps them in a GROUP with the appropriate quantifier, e.g. > (A | B) (A | B) (A | B) -> (A | B){3}. Combined with the existing > mergeGroupPrefixSuffix, patterns like (A | B) (A | B)+ (A | B) > further reduce to (A | B){3,}. > > - Extend tryMultiplyQuantifiers() to fold nested GROUP quantifiers > (e.g. ((A B)+)* -> (A B)*) in addition to VAR quantifiers. > > Other changes: > > - Add RPR_VARID_BEGIN (252) to rpr.h for the new control element type. > Reduce RPR_VARID_MAX from 252 to 251 accordingly and update the > maximum-variables boundary tests. > > - Add RPR_DEPTH_NONE (255) as sentinel for top-level elements that > have no enclosing group. Reduce RPR_DEPTH_MAX to 254 accordingly. > > - Add BEGIN handling to computeAbsorbabilityRecursive() so that > absorbability flags propagate correctly through group boundaries. > > - Extract show_rpr_nfa_stats() from show_windowagg_info() for NFA > statistics display. > > - Replace defensive NULL check in collectPatternVariables() with > Assert, since the caller guarantees a non-NULL pattern. > > - Pair each EXPLAIN test query in rpr_explain.sql with a > pg_get_viewdef() check via CREATE TEMP VIEW, verifying that both > the ruleutils (parse tree) and explain (bytecode) deparse paths > produce consistent PATTERN output. > > - Add comment to rpr_explain_filter() explaining why only Storage > memory values are normalized: NFA statistics should not change > between platforms, and variation would indicate issues such as > uninitialized memory access. > > Also add EXPLAIN test cases for nested ALT patterns, consecutive ALT > merging, and ALT prefix/suffix merging. > > On a side note, I feel that the automata characteristics of RPR -- > state transitions, context management, absorbability, etc. -- tend to > require a much larger volume of test cases than typical RDBMS/SQL > features. This seems unavoidable given the combinatorial nature of > NFA execution. > > Best regards, > Henson > --0000000000008d4e02064a52308f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Sorry, I forgot to attach the patch file in my = previous email.

2026=EB=85=84 2=EC=9B=94 7=EC=9D= =BC (=ED=86=A0) PM 2:41, Henson Choi <assam258@gmail.com>=EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1:
Hi Tatsuo,

+-- Filter function to normalize Storage memory values only (not NFA statis= tics)
+-- Works for text, JSON, and XML formats

What about add reasoning why only storage memory values are normalized
something like:

-- NFA statistics should not change between platforms.
Done. I've updated the comment to:

-- Filter function to = normalize Storage memory values only (not NFA statistics).
-- NFA statis= tics should not change between platforms; if they do, it could
-- indica= te issues such as uninitialized memory access.
-- Works for text, JSON, = and XML formats.

This round focused primarily on reviewing explain.c= .=C2=A0 I believe we're
getting close to the final version now.=C2= =A0 Only the nodeWindowAgg.c
code review remains on my side.

For = the next submission, would it be helpful if I resend all the
incremental= patches I've already sent since v42 together as separate
per-patch = files?

I've also made some updates to the documentation (advance= d.sgml and
ref/select.sgml).=C2=A0 Could you take a look and let me know= if there are
any mistakes or if the changes look good to you?

I&= #39;ve sent several incremental patches on top of v42, and the attached
= patch is the next one in that series.=C2=A0 Here are the changes:

Bu= gs fixed:

- Fix server crash in fillRPRPatternAlt() when an inner AL= T is the
=C2=A0 last element of an outer ALT's branch.=C2=A0 Both al= ternations tried to
=C2=A0 set the 'next' pointer on the same en= dpoint element, triggering
=C2=A0 Assert(pat->elements[endPos].next = =3D=3D RPR_ELEMIDX_INVALID).=C2=A0 Fix by
=C2=A0 redirecting all element= s in the branch that share the old target to
=C2=A0 point to the outer A= LT's afterAlt instead.
=C2=A0 (Test: PATTERN (C (A | B) | D) -- inne= r ALT at end of outer branch)

- Add BEGIN element to fillRPRPatternG= roup().=C2=A0 Previously only END was
=C2=A0 emitted for quantified grou= ps, so groups with min=3D0 had no skip path
=C2=A0 to bypass the group c= ontent.=C2=A0 Change to BEGIN/END pairs where
=C2=A0 BEGIN.jump points p= ast END (skip) and END.jump points to the first
=C2=A0 child (loop-back)= .=C2=A0 Add nfa_advance_begin() to the NFA executor for
=C2=A0 group ent= ry and skip handling.
=C2=A0 (Test: PATTERN (A ((B | C) (D | E))* F?) --= * group matching 0 times)

- Fix deparse output producing wrong pare= nthesization for nested ALT
=C2=A0 patterns.=C2=A0 The flat-loop approac= h could not correctly suppress double
=C2=A0 parentheses for single-ALT = groups or handle depth transitions around
=C2=A0 alternation separators.= =C2=A0 Refactor into mutual recursion:
=C2=A0 deparse_rpr_elements, depa= rse_rpr_group, deparse_rpr_alt, and
=C2=A0 deparse_rpr_var.

- Fix= deparse separator ordering for nested ALT: the ' | ' separator
= =C2=A0 was emitted before closing inner parentheses, producing output like<= br>=C2=A0 '(c (a | b | )d)' instead of '(c (a | b) | d)'.= =C2=A0 Close parens to
=C2=A0 match separator depth before emitting '= ; | '.

- Fix missing ALT separator registration in deparse_rpr_a= lt() when an
=C2=A0 ALT is the first element of an outer ALT's branc= h.=C2=A0 The code only
=C2=A0 checked elem->next (always -1 for ALT m= arkers) but not elem->jump,
=C2=A0 which carries the outer branch'= ;s separator position.

- Fix altEndPositions/altBranchStarts length = mismatch caused by the
=C2=A0 'if (*idx > branchStart)' guard= that skipped empty branches.=C2=A0 Remove
=C2=A0 the guard so both list= s always have matching entries.

- Fix RPRPatternNode.reluctant initi= alization in gram.y.=C2=A0 ALT, SEQ,
=C2=A0 VAR, and GROUP primary produ= ctions used false (0) or left it
=C2=A0 uninitialized (defaulting to 0 f= rom palloc0), but 0 is a valid
=C2=A0 ParseLoc meaning "location at= offset 0".=C2=A0 Change all four creation
=C2=A0 sites to use -1 (= no location), matching the convention used by
=C2=A0 ParseLoc throughout= the parser.

- Fix reluctant quantifier display in both explain.c an= d ruleutils.c.
=C2=A0 A bare variable with reluctant ? (e.g. A?) was dis= played as just 'a'
=C2=A0 since there was no quantifier to attac= h ? to.=C2=A0 Now emit '{1}?' to
=C2=A0 make the reluctant marke= r unambiguous.

New optimization:

- Add mergeConsecutiveAlts()= to the SEQ optimization pipeline.=C2=A0 After
=C2=A0 GROUP{1,1} unwrap,= bare alternations like (A | B) become ALT nodes
=C2=A0 in the SEQ.=C2= =A0 This step detects consecutive identical ALT nodes and
=C2=A0 wraps t= hem in a GROUP with the appropriate quantifier, e.g.
=C2=A0 (A | B) (A |= B) (A | B) -> (A | B){3}.=C2=A0 Combined with the existing
=C2=A0 me= rgeGroupPrefixSuffix, patterns like (A | B) (A | B)+ (A | B)
=C2=A0 furt= her reduce to (A | B){3,}.

- Extend tryMultiplyQuantifiers() to fold= nested GROUP quantifiers
=C2=A0 (e.g. ((A B)+)* -> (A B)*) in additi= on to VAR quantifiers.

Other changes:

- Add RPR_VARID_BEGIN (= 252) to rpr.h for the new control element type.
=C2=A0 Reduce RPR_VARID_= MAX from 252 to 251 accordingly and update the
=C2=A0 maximum-variables = boundary tests.

- Add RPR_DEPTH_NONE (255) as sentinel for top-level= elements that
=C2=A0 have no enclosing group.=C2=A0 Reduce RPR_DEPTH_MA= X to 254 accordingly.

- Add BEGIN handling to computeAbsorbabilityRe= cursive() so that
=C2=A0 absorbability flags propagate correctly through= group boundaries.

- Extract show_rpr_nfa_stats() from show_windowag= g_info() for NFA
=C2=A0 statistics display.

- Replace defensive N= ULL check in collectPatternVariables() with
=C2=A0 Assert, since the cal= ler guarantees a non-NULL pattern.

- Pair each EXPLAIN test query in= rpr_explain.sql with a
=C2=A0 pg_get_viewdef() check via CREATE TEMP VI= EW, verifying that both
=C2=A0 the ruleutils (parse tree) and explain (b= ytecode) deparse paths
=C2=A0 produce consistent PATTERN output.

=
- Add comment to rpr_explain_filter() expl= aining why only Storage
=C2=A0 memory values are normalized: NFA statist= ics should not change
=C2=A0 between platforms, and variation would indi= cate issues such as
=C2=A0 uninitialized memory access.

Also add = EXPLAIN test cases for nested ALT patterns, consecutive ALT
merging, and= ALT prefix/suffix merging.

On a side note, I feel that the aut= omata characteristics of RPR --
state transitions, context management, a= bsorbability, etc. -- tend to
require a much larger volume of test cases= than typical RDBMS/SQL
features.=C2=A0 This seems unavoidable given the= combinatorial nature of
NFA execution.

Best reg= ards,
Henson=C2=A0
--0000000000008d4e02064a52308f-- --0000000000008d4e05064a523091 Content-Type: text/plain; charset="US-ASCII"; name="Fix-RPR-crash-and-refactor.txt" Content-Disposition: attachment; filename="Fix-RPR-crash-and-refactor.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mldxosk90 RnJvbSA2YmUxNjY2NzBmYmRhYTIzM2QzNDMxMjVjYmY4MWIzYWY4MmQ4M2JjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDYgRmViIDIwMjYgMTQ6MTU6NDUgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggUlBS IHBhdHRlcm4gY29tcGlsYXRpb24gY3Jhc2ggYW5kIHJlZmFjdG9yIEVYUExBSU4KIGRlcGFyc2UK CkZpeCBzZXZlcmFsIGJ1Z3MgaW4gUlBSIChSb3cgUGF0dGVybiBSZWNvZ25pdGlvbikgTkZBIGJ5 dGVjb2RlCmNvbXBpbGF0aW9uLCBwYXR0ZXJuIG9wdGltaXphdGlvbiwgYW5kIEVYUExBSU4gb3V0 cHV0LgoKQnVncyBmaXhlZDoKCi0gRml4IHNlcnZlciBjcmFzaCBpbiBmaWxsUlBSUGF0dGVybkFs dCgpIHdoZW4gYW4gaW5uZXIgQUxUIGlzIHRoZQogIGxhc3QgZWxlbWVudCBvZiBhbiBvdXRlciBB TFQncyBicmFuY2guICBCb3RoIGFsdGVybmF0aW9ucyB0cmllZCB0bwogIHNldCB0aGUgJ25leHQn IHBvaW50ZXIgb24gdGhlIHNhbWUgZW5kcG9pbnQgZWxlbWVudCwgdHJpZ2dlcmluZwogIEFzc2Vy dChwYXQtPmVsZW1lbnRzW2VuZFBvc10ubmV4dCA9PSBSUFJfRUxFTUlEWF9JTlZBTElEKS4gIEZp eCBieQogIHJlZGlyZWN0aW5nIGFsbCBlbGVtZW50cyBpbiB0aGUgYnJhbmNoIHRoYXQgc2hhcmUg dGhlIG9sZCB0YXJnZXQgdG8KICBwb2ludCB0byB0aGUgb3V0ZXIgQUxUJ3MgYWZ0ZXJBbHQgaW5z dGVhZC4KICAoVGVzdDogUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkgLS0gaW5uZXIgQUxUIGF0IGVu ZCBvZiBvdXRlciBicmFuY2gpCgotIEFkZCBCRUdJTiBlbGVtZW50IHRvIGZpbGxSUFJQYXR0ZXJu R3JvdXAoKS4gIFByZXZpb3VzbHkgb25seSBFTkQgd2FzCiAgZW1pdHRlZCBmb3IgcXVhbnRpZmll ZCBncm91cHMsIHNvIGdyb3VwcyB3aXRoIG1pbj0wIGhhZCBubyBza2lwIHBhdGgKICB0byBieXBh c3MgdGhlIGdyb3VwIGNvbnRlbnQuICBDaGFuZ2UgdG8gQkVHSU4vRU5EIHBhaXJzIHdoZXJlCiAg QkVHSU4uanVtcCBwb2ludHMgcGFzdCBFTkQgKHNraXApIGFuZCBFTkQuanVtcCBwb2ludHMgdG8g dGhlIGZpcnN0CiAgY2hpbGQgKGxvb3AtYmFjaykuICBBZGQgbmZhX2FkdmFuY2VfYmVnaW4oKSB0 byB0aGUgTkZBIGV4ZWN1dG9yIGZvcgogIGdyb3VwIGVudHJ5IGFuZCBza2lwIGhhbmRsaW5nLgog IChUZXN0OiBQQVRURVJOIChBICgoQiB8IEMpIChEIHwgRSkpKiBGPykgLS0gKiBncm91cCBtYXRj aGluZyAwIHRpbWVzKQoKLSBGaXggZGVwYXJzZSBvdXRwdXQgcHJvZHVjaW5nIHdyb25nIHBhcmVu dGhlc2l6YXRpb24gZm9yIG5lc3RlZCBBTFQKICBwYXR0ZXJucy4gIFRoZSBmbGF0LWxvb3AgYXBw cm9hY2ggY291bGQgbm90IGNvcnJlY3RseSBzdXBwcmVzcyBkb3VibGUKICBwYXJlbnRoZXNlcyBm b3Igc2luZ2xlLUFMVCBncm91cHMgb3IgaGFuZGxlIGRlcHRoIHRyYW5zaXRpb25zIGFyb3VuZAog IGFsdGVybmF0aW9uIHNlcGFyYXRvcnMuICBSZWZhY3RvciBpbnRvIG11dHVhbCByZWN1cnNpb246 CiAgZGVwYXJzZV9ycHJfZWxlbWVudHMsIGRlcGFyc2VfcnByX2dyb3VwLCBkZXBhcnNlX3Jwcl9h bHQsIGFuZAogIGRlcGFyc2VfcnByX3Zhci4KCi0gRml4IGRlcGFyc2Ugc2VwYXJhdG9yIG9yZGVy aW5nIGZvciBuZXN0ZWQgQUxUOiB0aGUgJyB8ICcgc2VwYXJhdG9yCiAgd2FzIGVtaXR0ZWQgYmVm b3JlIGNsb3NpbmcgaW5uZXIgcGFyZW50aGVzZXMsIHByb2R1Y2luZyBvdXRwdXQgbGlrZQogICco YyAoYSB8IGIgfCApZCknIGluc3RlYWQgb2YgJyhjIChhIHwgYikgfCBkKScuICBDbG9zZSBwYXJl bnMgdG8KICBtYXRjaCBzZXBhcmF0b3IgZGVwdGggYmVmb3JlIGVtaXR0aW5nICcgfCAnLgoKLSBG aXggbWlzc2luZyBBTFQgc2VwYXJhdG9yIHJlZ2lzdHJhdGlvbiBpbiBkZXBhcnNlX3Jwcl9hbHQo KSB3aGVuIGFuCiAgQUxUIGlzIHRoZSBmaXJzdCBlbGVtZW50IG9mIGFuIG91dGVyIEFMVCdzIGJy YW5jaC4gIFRoZSBjb2RlIG9ubHkKICBjaGVja2VkIGVsZW0tPm5leHQgKGFsd2F5cyAtMSBmb3Ig QUxUIG1hcmtlcnMpIGJ1dCBub3QgZWxlbS0+anVtcCwKICB3aGljaCBjYXJyaWVzIHRoZSBvdXRl ciBicmFuY2gncyBzZXBhcmF0b3IgcG9zaXRpb24uCgotIEZpeCBhbHRFbmRQb3NpdGlvbnMvYWx0 QnJhbmNoU3RhcnRzIGxlbmd0aCBtaXNtYXRjaCBjYXVzZWQgYnkgdGhlCiAgJ2lmICgqaWR4ID4g YnJhbmNoU3RhcnQpJyBndWFyZCB0aGF0IHNraXBwZWQgZW1wdHkgYnJhbmNoZXMuICBSZW1vdmUK ICB0aGUgZ3VhcmQgc28gYm90aCBsaXN0cyBhbHdheXMgaGF2ZSBtYXRjaGluZyBlbnRyaWVzLgoK LSBGaXggUlBSUGF0dGVybk5vZGUucmVsdWN0YW50IGluaXRpYWxpemF0aW9uIGluIGdyYW0ueS4g IEFMVCwgU0VRLAogIFZBUiwgYW5kIEdST1VQIHByaW1hcnkgcHJvZHVjdGlvbnMgdXNlZCBmYWxz ZSAoMCkgb3IgbGVmdCBpdAogIHVuaW5pdGlhbGl6ZWQgKGRlZmF1bHRpbmcgdG8gMCBmcm9tIHBh bGxvYzApLCBidXQgMCBpcyBhIHZhbGlkCiAgUGFyc2VMb2MgbWVhbmluZyAibG9jYXRpb24gYXQg b2Zmc2V0IDAiLiAgQ2hhbmdlIGFsbCBmb3VyIGNyZWF0aW9uCiAgc2l0ZXMgdG8gdXNlIC0xIChu byBsb2NhdGlvbiksIG1hdGNoaW5nIHRoZSBjb252ZW50aW9uIHVzZWQgYnkKICBQYXJzZUxvYyB0 aHJvdWdob3V0IHRoZSBwYXJzZXIuCgotIEZpeCByZWx1Y3RhbnQgcXVhbnRpZmllciBkaXNwbGF5 IGluIGJvdGggZXhwbGFpbi5jIGFuZCBydWxldXRpbHMuYy4KICBBIGJhcmUgdmFyaWFibGUgd2l0 aCByZWx1Y3RhbnQgPyAoZS5nLiBBPykgd2FzIGRpc3BsYXllZCBhcyBqdXN0ICdhJwogIHNpbmNl IHRoZXJlIHdhcyBubyBxdWFudGlmaWVyIHRvIGF0dGFjaCA/IHRvLiAgTm93IGVtaXQgJ3sxfT8n IHRvCiAgbWFrZSB0aGUgcmVsdWN0YW50IG1hcmtlciB1bmFtYmlndW91cy4KCk5ldyBvcHRpbWl6 YXRpb246CgotIEFkZCBtZXJnZUNvbnNlY3V0aXZlQWx0cygpIHRvIHRoZSBTRVEgb3B0aW1pemF0 aW9uIHBpcGVsaW5lLiAgQWZ0ZXIKICBHUk9VUHsxLDF9IHVud3JhcCwgYmFyZSBhbHRlcm5hdGlv bnMgbGlrZSAoQSB8IEIpIGJlY29tZSBBTFQgbm9kZXMKICBpbiB0aGUgU0VRLiAgVGhpcyBzdGVw IGRldGVjdHMgY29uc2VjdXRpdmUgaWRlbnRpY2FsIEFMVCBub2RlcyBhbmQKICB3cmFwcyB0aGVt IGluIGEgR1JPVVAgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcXVhbnRpZmllciwgZS5nLgogIChBIHwg QikgKEEgfCBCKSAoQSB8IEIpIC0+IChBIHwgQil7M30uICBDb21iaW5lZCB3aXRoIHRoZSBleGlz dGluZwogIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXgsIHBhdHRlcm5zIGxpa2UgKEEgfCBCKSAoQSB8 IEIpKyAoQSB8IEIpCiAgZnVydGhlciByZWR1Y2UgdG8gKEEgfCBCKXszLH0uCgotIEV4dGVuZCB0 cnlNdWx0aXBseVF1YW50aWZpZXJzKCkgdG8gZm9sZCBuZXN0ZWQgR1JPVVAgcXVhbnRpZmllcnMK ICAoZS5nLiAoKEEgQikrKSogLT4gKEEgQikqKSBpbiBhZGRpdGlvbiB0byBWQVIgcXVhbnRpZmll cnMuCgpPdGhlciBjaGFuZ2VzOgoKLSBBZGQgUlBSX1ZBUklEX0JFR0lOICgyNTIpIHRvIHJwci5o IGZvciB0aGUgbmV3IGNvbnRyb2wgZWxlbWVudCB0eXBlLgogIFJlZHVjZSBSUFJfVkFSSURfTUFY IGZyb20gMjUyIHRvIDI1MSBhY2NvcmRpbmdseSBhbmQgdXBkYXRlIHRoZQogIG1heGltdW0tdmFy aWFibGVzIGJvdW5kYXJ5IHRlc3RzLgoKLSBBZGQgUlBSX0RFUFRIX05PTkUgKDI1NSkgYXMgc2Vu dGluZWwgZm9yIHRvcC1sZXZlbCBlbGVtZW50cyB0aGF0CiAgaGF2ZSBubyBlbmNsb3NpbmcgZ3Jv dXAuICBSZWR1Y2UgUlBSX0RFUFRIX01BWCB0byAyNTQgYWNjb3JkaW5nbHkuCgotIEFkZCBCRUdJ TiBoYW5kbGluZyB0byBjb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZSgpIHNvIHRoYXQKICBh YnNvcmJhYmlsaXR5IGZsYWdzIHByb3BhZ2F0ZSBjb3JyZWN0bHkgdGhyb3VnaCBncm91cCBib3Vu ZGFyaWVzLgoKLSBFeHRyYWN0IHNob3dfcnByX25mYV9zdGF0cygpIGZyb20gc2hvd193aW5kb3dh Z2dfaW5mbygpIGZvciBORkEKICBzdGF0aXN0aWNzIGRpc3BsYXkuCgotIFJlcGxhY2UgZGVmZW5z aXZlIE5VTEwgY2hlY2sgaW4gY29sbGVjdFBhdHRlcm5WYXJpYWJsZXMoKSB3aXRoCiAgQXNzZXJ0 LCBzaW5jZSB0aGUgY2FsbGVyIGd1YXJhbnRlZXMgYSBub24tTlVMTCBwYXR0ZXJuLgoKLSBQYWly IGVhY2ggb2YgdGhlIDgyIEVYUExBSU4gdGVzdCBxdWVyaWVzIGluIHJwcl9leHBsYWluLnNxbCB3 aXRoIGEKICBwZ19nZXRfdmlld2RlZigpIGNoZWNrIHZpYSBDUkVBVEUgVEVNUCBWSUVXLCB2ZXJp ZnlpbmcgdGhhdCBib3RoCiAgdGhlIHJ1bGV1dGlscyAocGFyc2UgdHJlZSkgYW5kIGV4cGxhaW4g KGJ5dGVjb2RlKSBkZXBhcnNlIHBhdGhzCiAgcHJvZHVjZSBjb25zaXN0ZW50IFBBVFRFUk4gb3V0 cHV0LgoKQWxzbyBhZGQgRVhQTEFJTiB0ZXN0IGNhc2VzIGZvciBuZXN0ZWQgQUxUIHBhdHRlcm5z LCBjb25zZWN1dGl2ZSBBTFQKbWVyZ2luZywgYW5kIEFMVCBwcmVmaXgvc3VmZml4IG1lcmdpbmcu Ci0tLQogZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwgICAgICAgICAgICAgICAgfCAgIDU4ICst CiBkb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sICAgICAgICAgICAgICB8ICAgNTIgKy0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAgICAgIHwgIDUyOSArKystLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgICAgfCAgIDM5ICsKIHNyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgICAgIHwgIDIyNCArKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgfCAgICA2ICstCiBzcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvcnByLmggICAgICAgICAgICAgICB8ICAgMTUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByLm91dCAgICAgICAgIHwgICAxNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfYmFzZS5vdXQgICAgfCAgIDg3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9l eHBsYWluLm91dCB8IDIxNjYgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHIuc3FsICAgICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwcl9iYXNlLnNxbCAgICAgICAgIHwgICA2MCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2V4cGxhaW4uc3FsICAgICAgfCAxNTE3ICsrKysrKysrKysrKystLQogMTQgZmlsZXMgY2hhbmdl ZCwgNDIxMSBpbnNlcnRpb25zKCspLCA1NjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYWR2YW5jZWQuc2dtbAppbmRl eCBlZWMyYTBhOTM0Ni4uMjQxYzdlMDNhNWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9hZHZh bmNlZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sCkBAIC01NzQsOSArNTc0 LDE1IEBAIERFRklORQogICAgIGNvbmRpdGlvbnMgZGVmaW5lZCBpbiB0aGUgPGxpdGVyYWw+REVG SU5FPC9saXRlcmFsPiBjbGF1c2UuICBGb3IgZXhhbXBsZQogICAgIGZvbGxvd2luZyA8bGl0ZXJh bD5QQVRURVJOPC9saXRlcmFsPiBkZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyBzdGFydGluZwog ICAgIHdpdGggdGhlIGEgcm93IHNhdGlzZnlpbmcgIkxPV1BSSUNFIiwgdGhlbiBvbmUgb3IgbW9y ZSByb3dzIHNhdGlzZnlpbmcKLSAgICAiVVAiIGFuZCBmaW5hbGx5IG9uZSBvciBtb3JlIHJvd3Mg c2F0aXNmeWluZyAiRE9XTiIuIE5vdGUgdGhhdCAiKyIgbWVhbnMKLSAgICBvbmUgb3IgbW9yZSBt YXRjaGVzLiBBbHNvIHlvdSBjYW4gdXNlICIqIiwgd2hpY2ggbWVhbnMgemVybyBvciBtb3JlCi0g ICAgbWF0Y2hlcy4gSWYgYSBzZXF1ZW5jZSBvZiByb3dzIHdoaWNoIHNhdGlzZmllcyB0aGUgUEFU VEVSTiBpcyBmb3VuZCwgaW4KKyAgICAiVVAiIGFuZCBmaW5hbGx5IG9uZSBvciBtb3JlIHJvd3Mg c2F0aXNmeWluZyAiRE9XTiIuIFBhdHRlcm4gdmFyaWFibGVzCisgICAgY2FuIGJlIGZvbGxvd2Vk IGJ5IHF1YW50aWZpZXJzOiAiKyIgbWVhbnMgb25lIG9yIG1vcmUgbWF0Y2hlcywKKyAgICAiKiIg bWVhbnMgemVybyBvciBtb3JlIG1hdGNoZXMsICI/IiBtZWFucyB6ZXJvIG9yIG9uZSBtYXRjaCAo b3B0aW9uYWwpLAorICAgICJ7bn0iIG1lYW5zIGV4YWN0bHkgbiBtYXRjaGVzLCAie24sfSIgbWVh bnMgYXQgbGVhc3QgbiBtYXRjaGVzLAorICAgICJ7LG19IiBtZWFucyBhdCBtb3N0IG0gbWF0Y2hl cywgYW5kICJ7bixtfSIgbWVhbnMgYmV0d2VlbiBuIGFuZCBtIG1hdGNoZXMuCisgICAgUGF0dGVy bnMgY2FuIGJlIGdyb3VwZWQgdXNpbmcgcGFyZW50aGVzZXMgYW5kIGNvbWJpbmVkIHVzaW5nIGFs dGVybmF0aW9uCisgICAgKHRoZSB2ZXJ0aWNhbCBiYXIgInwiIGZvciBPUikuIEZvciBleGFtcGxl LCAiKFVQIERPV04pKyIgbWF0Y2hlcyBvbmUgb3IKKyAgICBtb3JlIHJlcGV0aXRpb25zIG9mIFVQ IGZvbGxvd2VkIGJ5IERPV04uCisgICAgSWYgYSBzZXF1ZW5jZSBvZiByb3dzIHdoaWNoIHNhdGlz ZmllcyB0aGUgUEFUVEVSTiBpcyBmb3VuZCwgaW4KICAgICB0aGUgc3RhcnRpbmcgcm93IGFsbCBj b2x1bW5zIG9yIGZ1bmN0aW9ucyBhcmUgc2hvd24gaW4gdGhlIHRhcmdldAogICAgIGxpc3QuIE5v dGUgdGhhdCBhZ2dyZWdhdGlvbnMgb25seSBsb29rIGludG8gdGhlIG1hdGNoZWQgcm93cywgcmF0 aGVyIHRoYW4KICAgICB0aGUgd2hvbGUgZnJhbWUuIE9uIHRoZSBzZWNvbmQgb3Igc3Vic2VxdWVu dCByb3dzIGFsbCB3aW5kb3cgZnVuY3Rpb25zIGFyZQpAQCAtNjIyLDYgKzYyOCw1MiBAQCBGUk9N IHN0b2NrCiA8L3NjcmVlbj4KICAgIDwvcGFyYT4KIAorICAgPHBhcmE+CisgICAgUm93IHBhdHRl cm4gcmVjb2duaXRpb24gaW50ZXJuYWxseSB1c2VzIGEgbm9uZGV0ZXJtaW5pc3RpYyBmaW5pdGUK KyAgICBhdXRvbWF0b24gKE5GQSkgdG8gbWF0Y2ggcGF0dGVybnMuIEZvciBwYXR0ZXJucyB3aXRo IHVuYm91bmRlZAorICAgIHF1YW50aWZpZXJzIChlLmcuLCA8bGl0ZXJhbD5BKzwvbGl0ZXJhbD4g b3IgPGxpdGVyYWw+KEEgQikrPC9saXRlcmFsPiksCisgICAgdGhlIE5GQSBtYXkgbmVlZCB0byB0 cmFjayBtYW55IGFjdGl2ZSBtYXRjaGluZyBjb250ZXh0cyBzaW11bHRhbmVvdXNseSwKKyAgICB3 aGljaCBjb3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIE8objxzdXBlcnNjcmlwdD4yPC9zdXBlcnNj cmlwdD4pCisgICAgY29tcGxleGl0eSBhcyB0aGUgbnVtYmVyIG9mIHJvd3MgaW5jcmVhc2VzLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBCZWZvcmUgZXhlY3V0aW9uLCA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGF1dG9tYXRpY2FsbHkKKyAgICBvcHRpbWl6ZXMg cGF0dGVybnMgdG8gc2ltcGxpZnkgdGhlaXIgc3RydWN0dXJlLiBUaGlzIGluY2x1ZGVzIGZsYXR0 ZW5pbmcKKyAgICBuZXN0ZWQgc2VxdWVuY2VzIGFuZCBhbHRlcm5hdGlvbnMsIG1lcmdpbmcgY29u c2VjdXRpdmUgaWRlbnRpY2FsIHZhcmlhYmxlcworICAgIChlLmcuLCA8bGl0ZXJhbD5BezIsM30g QXsxLDJ9PC9saXRlcmFsPiBiZWNvbWVzIDxsaXRlcmFsPkF7Myw1fTwvbGl0ZXJhbD4pLAorICAg IHJlbW92aW5nIGR1cGxpY2F0ZSBhbHRlcm5hdGl2ZXMKKyAgICAoZS5nLiwgPGxpdGVyYWw+KEEg fCBCIHwgQSk8L2xpdGVyYWw+IGJlY29tZXMgPGxpdGVyYWw+KEEgfCBCKTwvbGl0ZXJhbD4pLAor ICAgIGFuZCBzaW1wbGlmeWluZyBuZXN0ZWQgcXVhbnRpZmllcnMKKyAgICAoZS5nLiwgPGxpdGVy YWw+KEEqKSo8L2xpdGVyYWw+IGJlY29tZXMgPGxpdGVyYWw+QSo8L2xpdGVyYWw+KS4KKyAgICBU aGVzZSBvcHRpbWl6YXRpb25zIHJlZHVjZSBwYXR0ZXJuIGNvbXBsZXhpdHkgYW5kIGFsc28gZGVj cmVhc2UKKyAgICBuZXN0aW5nIGRlcHRoLCBtYWtpbmcgdGhlIDI1NS1sZXZlbCBkZXB0aCBsaW1p dCByYXJlbHkgZW5jb3VudGVyZWQuCisgICAgVGhleSBhcmUgYXBwbGllZCB0cmFuc3BhcmVudGx5 IGFuZCBjYW4gYmUgb2JzZXJ2ZWQKKyAgICBpbiA8Y29tbWFuZD5FWFBMQUlOPC9jb21tYW5kPiBv dXRwdXQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRvIG1pdGlnYXRlIHRoaXMsIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZW1wbG95cworICAgIGEgY29udGV4 dCBhYnNvcnB0aW9uIG9wdGltaXphdGlvbi4gV2hlbiBhIHBhdHRlcm4gc3RhcnRzIHdpdGggYSBn cmVlZHkKKyAgICB1bmJvdW5kZWQgZWxlbWVudCwgbmV3ZXIgbWF0Y2hpbmcgY29udGV4dHMgY2Fu bm90IHByb2R1Y2UgbG9uZ2VyIG1hdGNoZXMKKyAgICB0aGFuIG9sZGVyIGNvbnRleHRzLiBCeSBk ZXRlY3RpbmcgYW5kIGVsaW1pbmF0aW5nIHRoZXNlIHJlZHVuZGFudAorICAgIGNvbnRleHRzLCB0 aGUgbWF0Y2hpbmcgY29tcGxleGl0eSBpcyByZWR1Y2VkIGZyb20KKyAgICBPKG48c3VwZXJzY3Jp cHQ+Mjwvc3VwZXJzY3JpcHQ+KSB0byBPKG4pIGZvciBtYW55IGNvbW1vbiBwYXR0ZXJucy4KKyAg IDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBleGFtaW5pbmcgcXVlcnkgcGxhbnMgZm9y IHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHdpdGgKKyAgICA8Y29tbWFuZD5FWFBMQUlOPC9jb21t YW5kPiwgdGhlIHBhdHRlcm4gb3V0cHV0IG1heSBpbmNsdWRlIHNwZWNpYWwKKyAgICBtYXJrZXJz IHRoYXQgaW5kaWNhdGUgb3B0aW1pemF0aW9uIG9wcG9ydHVuaXRpZXMuIEEgZG91YmxlIHF1b3Rl CisgICAgPGxpdGVyYWw+IjwvbGl0ZXJhbD4gbWFya3Mgd2hlcmUgcGF0dGVybiBhYnNvcnB0aW9u IGNhbiBvY2N1ciwKKyAgICBhbmQgYSBzaW5nbGUgcXVvdGUgPGxpdGVyYWw+JzwvbGl0ZXJhbD4g bWFya3MgYWJzb3JiYWJsZSBlbGVtZW50cworICAgIHdpdGhpbiBhIGJyYW5jaC4gRm9yIGV4YW1w bGUsIDxsaXRlcmFsPkErIjwvbGl0ZXJhbD4gaW5kaWNhdGVzIHRoYXQKKyAgICByZXBlYXRlZCBt YXRjaGVzIG9mIEEgY2FuIGJlIGFic29yYmVkLCB3aGlsZSA8bGl0ZXJhbD4oQScgQicpKyI8L2xp dGVyYWw+CisgICAgc2hvd3MgdGhhdCBib3RoIEEgYW5kIEIgd2l0aGluIHRoZSBncm91cCBhcmUg YWJzb3JiYWJsZS4KKyAgICBUaGVzZSBtYXJrZXJzIGFyZSBwcmltYXJpbHkgdXNlZnVsIGZvciB1 bmRlcnN0YW5kaW5nIGludGVybmFsCisgICAgb3B0aW1pemF0aW9uIGJlaGF2aW9yLgorICAgPC9w YXJhPgorCiAgICA8cGFyYT4KICAgICBXaGVuIGEgcXVlcnkgaW52b2x2ZXMgbXVsdGlwbGUgd2lu ZG93IGZ1bmN0aW9ucywgaXQgaXMgcG9zc2libGUgdG8gd3JpdGUKICAgICBvdXQgZWFjaCBvbmUg d2l0aCBhIHNlcGFyYXRlIDxsaXRlcmFsPk9WRVI8L2xpdGVyYWw+IGNsYXVzZSwgYnV0IHRoaXMg aXMKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3NlbGVjdC5zZ21sCmluZGV4IDQ5YjNjMDBkOWYyLi43ZWM3NzYwZjQ3MiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L3NlbGVjdC5zZ21sCkBAIC05NzksOCArOTc5LDggQEAgV0lORE9XIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj53aW5kb3dfbmFtZTwvcmVwbGFjZWFibGU+IEFTICggPHJlcGxhY2VhYmwK ICAgICBUaGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyYW1lX2NsYXVzZTwvcmVw bGFjZWFibGU+IGNhbiBiZSBvbmUgb2YKIAogPHN5bm9wc2lzPgoteyBSQU5HRSB8IFJPV1MgfCBH Uk9VUFMgfSA8cmVwbGFjZWFibGU+ZnJhbWVfc3RhcnQ8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNl YWJsZT5mcmFtZV9leGNsdXNpb248L3JlcGxhY2VhYmxlPiBdIFtyb3dfcGF0dGVybl9jb21tb25f c3ludGF4XQoteyBSQU5HRSB8IFJPV1MgfCBHUk9VUFMgfSBCRVRXRUVOIDxyZXBsYWNlYWJsZT5m cmFtZV9zdGFydDwvcmVwbGFjZWFibGU+IEFORCA8cmVwbGFjZWFibGU+ZnJhbWVfZW5kPC9yZXBs YWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+ZnJhbWVfZXhjbHVzaW9uPC9yZXBsYWNlYWJsZT4gXSBb cm93X3BhdHRlcm5fY29tbW9uX3N5bnRheF0KK3sgUkFOR0UgfCBST1dTIHwgR1JPVVBTIH0gPHJl cGxhY2VhYmxlPmZyYW1lX3N0YXJ0PC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+ZnJhbWVf ZXhjbHVzaW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZT5yb3dfcGF0dGVybl9jb21t b25fc3ludGF4PC9yZXBsYWNlYWJsZT4gXQoreyBSQU5HRSB8IFJPV1MgfCBHUk9VUFMgfSBCRVRX RUVOIDxyZXBsYWNlYWJsZT5mcmFtZV9zdGFydDwvcmVwbGFjZWFibGU+IEFORCA8cmVwbGFjZWFi bGU+ZnJhbWVfZW5kPC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+ZnJhbWVfZXhjbHVzaW9u PC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZT5yb3dfcGF0dGVybl9jb21tb25fc3ludGF4 PC9yZXBsYWNlYWJsZT4gXQogPC9zeW5vcHNpcz4KIAogICAgIHdoZXJlIDxyZXBsYWNlYWJsZT5m cmFtZV9zdGFydDwvcmVwbGFjZWFibGU+CkBAIC0xMDk4LDE1ICsxMDk4LDE1IEBAIEVYQ0xVREUg Tk8gT1RIRVJTCiA8c3lub3BzaXM+CiBbIHsgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X IHwgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVyB9IF0KIFsgSU5JVElBTCB8IFNFRUsgXQot UEFUVEVSTiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuX3ZhcmlhYmxl X25hbWU8L3JlcGxhY2VhYmxlPlsqfCt8P10gWywgLi4uXSApCi1ERUZJTkUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmluaXRpb25fdmFyaWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g QVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxl PiBbLCAuLi5dCitQQVRURVJOICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRl cm5fdmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPnF1YW50aWZpZXI8 L3JlcGxhY2VhYmxlPiBdIFssIC4uLl0gKQorREVGSU5FIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5kZWZpbml0aW9uX3ZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0K IDwvc3lub3BzaXM+CiAgICAgPGxpdGVyYWw+QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X PC9saXRlcmFsPiBvciA8bGl0ZXJhbD5BRlRFUiBNQVRDSAogICAgIFNLSVAgVE8gTkVYVCBST1c8 L2xpdGVyYWw+IGNvbnRyb2xzIGhvdyB0byBwcm9jZWVkIHRvIG5leHQgcm93IHBvc2l0aW9uCiAg ICAgYWZ0ZXIgYSBtYXRjaCBmb3VuZC4gV2l0aCA8bGl0ZXJhbD5BRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVAogICAgIFJPVzwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0KSBuZXh0IHJvdyBwb3NpdGlv biBpcyBuZXh0IHRvIHRoZSBsYXN0IHJvdyBvZgogICAgIHByZXZpb3VzIG1hdGNoLiBPbiB0aGUg b3RoZXIgaGFuZCwgd2l0aCA8bGl0ZXJhbD5BRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQKLSAgICBS T1c8L2xpdGVyYWw+IG5leHQgcm93IHBvc2l0aW9uIGlzIGFsd2F5cyBuZXh0IHRvIHRoZSBsYXN0 IHJvdyBvZiBwcmV2aW91cworICAgIFJPVzwvbGl0ZXJhbD4gbmV4dCByb3cgcG9zaXRpb24gaXMg bmV4dCB0byB0aGUgZmlyc3Qgcm93IG9mIHByZXZpb3VzCiAgICAgbWF0Y2guIDxsaXRlcmFsPklO SVRJQUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNFRUs8L2xpdGVyYWw+IGRlZmluZXMgaG93IGEK ICAgICBzdWNjZXNzZnVsIHBhdHRlcm4gbWF0Y2hpbmcgc3RhcnRzIGZyb20gd2hpY2ggcm93IGlu IGEKICAgICBmcmFtZS4gSWYgPGxpdGVyYWw+SU5JVElBTDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVk LCB0aGUgbWF0Y2ggbXVzdCBzdGFydApAQCAtMTExNywxNiArMTExNyw0OCBAQCBERUZJTkUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmluaXRpb25fdmFyaWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gQVMgPAogICAgIGRlZmluZXMgZGVmaW5pdGlvbiB2YXJpYWJsZXMgYWxvbmcgd2l0 aCBhIGJvb2xlYW4KICAgICBleHByZXNzaW9uLiA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBk ZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyB0aGF0CiAgICAgc2F0aXNmaWVzIGNlcnRhaW4gY29u ZGl0aW9ucyB1c2luZyB2YXJpYWJsZXMgZGVmaW5lZAotICAgIGluIDxsaXRlcmFsPkRFRklORTwv bGl0ZXJhbD4gY2xhdXNlLiBJZiB0aGUgdmFyaWFibGUgaXMgbm90IGRlZmluZWQgaW4KLSAgICB0 aGUgPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UsIGl0IGlzIGltcGxpY2l0bHkgYXNz dW1lZCBmb2xsb3dpbmcKLSAgICBpcyBkZWZpbmVkIGluIHRoZSA8bGl0ZXJhbD5ERUZJTkU8L2xp dGVyYWw+IGNsYXVzZS4KKyAgICBpbiA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZS4g RWFjaCBwYXR0ZXJuIHZhcmlhYmxlIGNhbiBiZQorICAgIGZvbGxvd2VkIGJ5IGEgcXVhbnRpZmll ciB0byBzcGVjaWZ5IGhvdyBtYW55IHRpbWVzIGl0IHNob3VsZCBtYXRjaDoKKyAgICA8bGl0ZXJh bD4qPC9saXRlcmFsPiAoemVybyBvciBtb3JlKSwKKyAgICA8bGl0ZXJhbD4rPC9saXRlcmFsPiAo b25lIG9yIG1vcmUpLAorICAgIDxsaXRlcmFsPj88L2xpdGVyYWw+ICh6ZXJvIG9yIG9uZSksCisg ICAgPGxpdGVyYWw+ezwvbGl0ZXJhbD48cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+PGxpdGVy YWw+fTwvbGl0ZXJhbD4gKGV4YWN0bHkgPHJlcGxhY2VhYmxlPm48L3JlcGxhY2VhYmxlPiB0aW1l cyksCisgICAgPGxpdGVyYWw+ezwvbGl0ZXJhbD48cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+ PGxpdGVyYWw+LH08L2xpdGVyYWw+IChhdCBsZWFzdCA8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFi bGU+IHRpbWVzKSwKKyAgICA8bGl0ZXJhbD57LDwvbGl0ZXJhbD48cmVwbGFjZWFibGU+bTwvcmVw bGFjZWFibGU+PGxpdGVyYWw+fTwvbGl0ZXJhbD4gKGF0IG1vc3QgPHJlcGxhY2VhYmxlPm08L3Jl cGxhY2VhYmxlPiB0aW1lcyksIG9yCisgICAgPGxpdGVyYWw+ezwvbGl0ZXJhbD48cmVwbGFjZWFi bGU+bjwvcmVwbGFjZWFibGU+PGxpdGVyYWw+LDwvbGl0ZXJhbD48cmVwbGFjZWFibGU+bTwvcmVw bGFjZWFibGU+PGxpdGVyYWw+fTwvbGl0ZXJhbD4KKyAgICAoYmV0d2VlbiA8cmVwbGFjZWFibGU+ bjwvcmVwbGFjZWFibGU+IGFuZCA8cmVwbGFjZWFibGU+bTwvcmVwbGFjZWFibGU+IHRpbWVzKS4K KyAgICBSZWx1Y3RhbnQgcXVhbnRpZmllcnMgKGUuZy4sIDxsaXRlcmFsPio/PC9saXRlcmFsPiwg PGxpdGVyYWw+Kz88L2xpdGVyYWw+LAorICAgIDxsaXRlcmFsPj8/PC9saXRlcmFsPiwgPGxpdGVy YWw+ezwvbGl0ZXJhbD48cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+PGxpdGVyYWw+LDwvbGl0 ZXJhbD48cmVwbGFjZWFibGU+bTwvcmVwbGFjZWFibGU+PGxpdGVyYWw+fT88L2xpdGVyYWw+KQor ICAgIGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIFBhdHRlcm5zIGNhbiBiZSBncm91cGVkIHVzaW5n IHBhcmVudGhlc2VzLCBhbmQgYWx0ZXJuYXRpb24gKE9SKSBjYW4gYmUKKyAgICBleHByZXNzZWQg dXNpbmcgdGhlIHZlcnRpY2FsIGJhciA8bGl0ZXJhbD58PC9saXRlcmFsPi4KKyAgICBGb3IgZXhh bXBsZSwgPGxpdGVyYWw+KEEgQikrPC9saXRlcmFsPiBtYXRjaGVzIG9uZSBvciBtb3JlIHJlcGV0 aXRpb25zCisgICAgb2YgdGhlIHNlcXVlbmNlIEEgZm9sbG93ZWQgYnkgQiwgYW5kIDxsaXRlcmFs PkEgfCBCPC9saXRlcmFsPiBtYXRjaGVzCisgICAgZWl0aGVyIEEgb3IgQi4KKyAgICBJZiBhIHBh dHRlcm4gdmFyaWFibGUgaXMgbm90IGRlZmluZWQgaW4KKyAgICB0aGUgPGxpdGVyYWw+REVGSU5F PC9saXRlcmFsPiBjbGF1c2UsIGl0IGlzIG5vdCBhdXRvbWF0aWNhbGx5IGFkZGVkCisgICAgdG8g dGhlIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLiBJbnN0ZWFkLCB0aGUgZXhlY3V0 b3IgZXZhbHVhdGVzCisgICAgdGhlIHZhcmlhYmxlIGFzIDxsaXRlcmFsPlRSVUU8L2xpdGVyYWw+ IGF0IGV4ZWN1dGlvbiB0aW1lLCBiZWhhdmluZyBhcyBpZgorICAgIHRoZSBmb2xsb3dpbmcgZGVm aW5pdGlvbiBleGlzdGVkLgogCiA8c3lub3BzaXM+CiA8bGl0ZXJhbD52YXJpYWJsZV9uYW1lPC9s aXRlcmFsPiBBUyBUUlVFCiA8L3N5bm9wc2lzPgogCi0gICAgTm90ZSB0aGF0IHRoZSBtYXhpbXVt IG51bWJlciBvZiB2YXJpYWJsZXMgZGVmaW5lZAotICAgIGluIDxsaXRlcmFsPkRFRklORTwvbGl0 ZXJhbD4gY2xhdXNlIGlzIDI2LgorICAgIENvbnZlcnNlbHksIHZhcmlhYmxlcyBkZWZpbmVkIGlu IHRoZSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZQorICAgIGJ1dCBub3QgdXNlZCBp biB0aGUgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBmaWx0ZXJlZCBvdXQK KyAgICBkdXJpbmcgcXVlcnkgcGxhbm5pbmcuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IE5vdGUgdGhhdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIHBhdHRlcm4gdmFyaWFibGVz CisgICAgdXNlZCBpbiA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBjbGF1c2UgaXMgMjUxLgor ICAgIElmIHRoaXMgbGltaXQgaXMgZXhjZWVkZWQsIGFuIGVycm9yIHdpbGwgYmUgcmFpc2VkLgor ICAgIEFkZGl0aW9uYWxseSwgdGhlIG1heGltdW0gbmVzdGluZyBkZXB0aCBvZiBwYXR0ZXJuIGdy b3VwcworICAgIChwYXJlbnRoZXNlcykgaXMgMjU1IGxldmVscy4KKyAgICBIb3dldmVyLCBwYXR0 ZXJuIG9wdGltaXphdGlvbnMgc3VjaCBhcyBmbGF0dGVuaW5nIG5lc3RlZCBzZXF1ZW5jZXMKKyAg ICBhbmQgc2ltcGxpZnlpbmcgbmVzdGVkIHF1YW50aWZpZXJzIG1heSByZWR1Y2UgdGhlIGVmZmVj dGl2ZSBkZXB0aCwKKyAgICBzbyB0aGlzIGxpbWl0IGlzIHJhcmVseSByZWFjaGVkIGluIHByYWN0 aWNlLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCBj Yzc2MmQ3YjIxYi4uOTY1NDJlOTUzOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTEyMCw2 ICsxMjAsMTggQEAgc3RhdGljIHZvaWQgc2hvd193aW5kb3dfa2V5cyhTdHJpbmdJbmZvIGJ1Ziwg UGxhblN0YXRlICpwbGFuc3RhdGUsCiAJCQkJCQkJIExpc3QgKmFuY2VzdG9ycywgRXhwbGFpblN0 YXRlICplcyk7CiBzdGF0aWMgdm9pZCBhcHBlbmRfcnByX3F1YW50aWZpZXIoU3RyaW5nSW5mbyBi dWYsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtKTsKIHN0YXRpYyBjaGFyICpkZXBhcnNlX3Jwcl9w YXR0ZXJuKFJQUlBhdHRlcm4gKnBhdHRlcm4pOworc3RhdGljIHZvaWQgZGVwYXJzZV9ycHJfZWxl bWVudHMoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsCisJCQkJCQkJCSBTdHJpbmdJbmZv RGF0YSAqYnVmLCBSUFJEZXB0aCBncm91cERlcHRoLAorCQkJCQkJCQkgUlBSRGVwdGggKnByZXZE ZXB0aCwgYm9vbCAqbmVlZFNwYWNlKTsKK3N0YXRpYyB2b2lkIGRlcGFyc2VfcnByX2dyb3VwKFJQ UlBhdHRlcm4gKnBhdHRlcm4sIGludCAqaWR4LAorCQkJCQkJCSAgU3RyaW5nSW5mb0RhdGEgKmJ1 ZiwgUlBSRGVwdGggKnByZXZEZXB0aCwKKwkJCQkJCQkgIGJvb2wgKm5lZWRTcGFjZSk7CitzdGF0 aWMgdm9pZCBkZXBhcnNlX3Jwcl9hbHQoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsCisJ CQkJCQkJU3RyaW5nSW5mb0RhdGEgKmJ1ZiwgUlBSRGVwdGggKnByZXZEZXB0aCwKKwkJCQkJCQli b29sICpuZWVkU3BhY2UsIExpc3QgKiphbHRTZXBzKTsKK3N0YXRpYyB2b2lkIGRlcGFyc2VfcnBy X3ZhcihSUFJQYXR0ZXJuICpwYXR0ZXJuLCBpbnQgKmlkeCwKKwkJCQkJCQlTdHJpbmdJbmZvRGF0 YSAqYnVmLCBSUFJEZXB0aCAqcHJldkRlcHRoLAorCQkJCQkJCWJvb2wgKm5lZWRTcGFjZSwgTGlz dCAqKmFsdFNlcHMpOwogc3RhdGljIHZvaWQgc2hvd19zdG9yYWdlX2luZm8oY2hhciAqbWF4U3Rv cmFnZVR5cGUsIGludDY0IG1heFNwYWNlVXNlZCwKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMp Owogc3RhdGljIHZvaWQgc2hvd190YWJsZXNhbXBsZShUYWJsZVNhbXBsZUNsYXVzZSAqdHNjLCBQ bGFuU3RhdGUgKnBsYW5zdGF0ZSwKQEAgLTEzMCw2ICsxNDIsNyBAQCBzdGF0aWMgdm9pZCBzaG93 X2luY3JlbWVudGFsX3NvcnRfaW5mbyhJbmNyZW1lbnRhbFNvcnRTdGF0ZSAqaW5jcnNvcnRzdGF0 ZSwKIHN0YXRpYyB2b2lkIHNob3dfaGFzaF9pbmZvKEhhc2hTdGF0ZSAqaGFzaHN0YXRlLCBFeHBs YWluU3RhdGUgKmVzKTsKIHN0YXRpYyB2b2lkIHNob3dfbWF0ZXJpYWxfaW5mbyhNYXRlcmlhbFN0 YXRlICptc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpOwogc3RhdGljIHZvaWQgc2hvd193aW5kb3dh Z2dfaW5mbyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpOworc3Rh dGljIHZvaWQgc2hvd19ycHJfbmZhX3N0YXRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgRXhw bGFpblN0YXRlICplcyk7CiBzdGF0aWMgdm9pZCBzaG93X2N0ZXNjYW5faW5mbyhDdGVTY2FuU3Rh dGUgKmN0ZXNjYW5zdGF0ZSwgRXhwbGFpblN0YXRlICplcyk7CiBzdGF0aWMgdm9pZCBzaG93X3Rh YmxlX2Z1bmNfc2Nhbl9pbmZvKFRhYmxlRnVuY1NjYW5TdGF0ZSAqdHNjYW5zdGF0ZSwKIAkJCQkJ CQkJCSAgRXhwbGFpblN0YXRlICplcyk7CkBAIC0yOTEzLDEyNiArMjkyNiwyNjEgQEAgYXBwZW5k X3Jwcl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSkK IAkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ7JWQsJWR9IiwgZWxlbS0+bWluLCBlbGVtLT5tYXgp OwogCiAJaWYgKFJQUkVsZW1Jc1JlbHVjdGFudChlbGVtKSkKKwl7CisJCWlmIChlbGVtLT5taW4g PT0gMSAmJiBlbGVtLT5tYXggPT0gMSkKKwkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiezF9Iik7 CS8qIG1ha2UgcmVsdWN0YW50ID8gdW5hbWJpZ3VvdXMgKi8KIAkJYXBwZW5kU3RyaW5nSW5mb0No YXIoYnVmLCAnPycpOworCX0KIAogCS8qIEFwcGVuZCBhYnNvcnB0aW9uIG1hcmtlcnM6ICIgZm9y IGp1ZGdtZW50IHBvaW50LCAnIGZvciBicmFuY2ggb25seSAqLwogCWlmIChSUFJFbGVtSXNBYnNv cmJhYmxlKGVsZW0pKQorCXsKKwkJQXNzZXJ0KGVsZW0tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5G KTsKIAkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnIicpOworCX0KIAllbHNlIGlmIChSUFJF bGVtSXNBYnNvcmJhYmxlQnJhbmNoKGVsZW0pKQogCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYs ICdcJycpOwogfQogCiAvKgogICogRGVwYXJzZSBhIGNvbXBpbGVkIFJQUlBhdHRlcm4gKGJ5dGVj b2RlKSBiYWNrIHRvIHBhdHRlcm4gc3RyaW5nLgotICogU2ltcGxlIGFwcHJvYWNoOiBvdXRwdXQg cGFyZW5zIGZvciBlYWNoIGRlcHRoIGxldmVsIGFzLWlzLgorICoKKyAqIFdhbGtzIHRoZSBmbGF0 IGJ5dGVjb2RlIGFycmF5IHVzaW5nIG11dHVhbCByZWN1cnNpb246IGRlcGFyc2VfcnByX2VsZW1l bnRzCisgKiBwcm9jZXNzZXMgc2VxdWVudGlhbCBlbGVtZW50cywgYW5kIGRlcGFyc2VfcnByX2dy b3VwIGhhbmRsZXMgQkVHSU4uLi5FTkQKKyAqIGdyb3VwcyBieSByZWN1cnNpbmcgYmFjayBpbnRv IGRlcGFyc2VfcnByX2VsZW1lbnRzIGZvciB0aGUgZ3JvdXAgY29udGVudC4KICAqLwogc3RhdGlj IGNoYXIgKgogZGVwYXJzZV9ycHJfcGF0dGVybihSUFJQYXR0ZXJuICpwYXR0ZXJuKQogewogCVN0 cmluZ0luZm9EYXRhIGJ1ZjsKLQlpbnQJCQlpOworCWludAkJCWlkeCA9IDA7CiAJUlBSRGVwdGgJ cHJldkRlcHRoID0gMDsKIAlib29sCQluZWVkU3BhY2UgPSBmYWxzZTsKLQlMaXN0CSAgICphbHRT ZXBMaXN0ID0gTklMOwkvKiBsaXN0IG9mIHBlbmRpbmcgQUxUIHNlcGFyYXRvciBwb3NpdGlvbnMg Ki8KIAotCWlmIChwYXR0ZXJuID09IE5VTEwgfHwgcGF0dGVybi0+bnVtRWxlbWVudHMgPT0gMCkK LQkJcmV0dXJuIE5VTEw7CisJQXNzZXJ0KHBhdHRlcm4gIT0gTlVMTCAmJiBwYXR0ZXJuLT5udW1F bGVtZW50cyA+PSAyKTsKIAogCWluaXRTdHJpbmdJbmZvKCZidWYpOwogCi0JZm9yIChpID0gMDsg aSA8IHBhdHRlcm4tPm51bUVsZW1lbnRzOyBpKyspCisJZGVwYXJzZV9ycHJfZWxlbWVudHMocGF0 dGVybiwgJmlkeCwgJmJ1ZiwgUlBSX0RFUFRIX05PTkUsCisJCQkJCQkgJnByZXZEZXB0aCwgJm5l ZWRTcGFjZSk7CisKKwkvKiBDbG9zZSByZW1haW5pbmcgb3BlbiBwYXJlbnMgKi8KKwl3aGlsZSAo cHJldkRlcHRoID4gMCkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZidWYsICcpJyk7CisJ CXByZXZEZXB0aC0tOworCX0KKworCXJldHVybiBidWYuZGF0YTsKK30KKworLyoKKyAqIFByb2Nl c3MgcGF0dGVybiBlbGVtZW50cyBzZXF1ZW50aWFsbHkgdW50aWwgRklOIG9yIEVORCBhdCBncm91 cERlcHRoLgorICoKKyAqIFdoZW4gZ3JvdXBEZXB0aCA+PSAwLCBzdG9wcyBhdCB0aGUgbWF0Y2hp bmcgRU5EIGVsZW1lbnQgKGxlYXZpbmcgaWR4CisgKiBwb2ludGluZyB0byBpdCkgc28gdGhlIGNh bGxlciAoZGVwYXJzZV9ycHJfZ3JvdXApIGNhbiBjb25zdW1lIGl0LgorICogV2hlbiBncm91cERl cHRoIDwgMCwgcHJvY2Vzc2VzIHVudGlsIEZJTiAodG9wLWxldmVsIGNhbGwpLgorICovCitzdGF0 aWMgdm9pZAorZGVwYXJzZV9ycHJfZWxlbWVudHMoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICpp ZHgsIFN0cmluZ0luZm9EYXRhICpidWYsCisJCQkJCSBSUFJEZXB0aCBncm91cERlcHRoLCBSUFJE ZXB0aCAqcHJldkRlcHRoLAorCQkJCQkgYm9vbCAqbmVlZFNwYWNlKQoreworCUxpc3QJICAgKmFs dFNlcHMgPSBOSUw7CQkvKiBwZW5kaW5nIGFsdGVybmF0aW9uIHNlcGFyYXRvciBpbmRpY2VzICov CisKKwl3aGlsZSAoKmlkeCA8IHBhdHRlcm4tPm51bUVsZW1lbnRzKQogCXsKLQkJUlBSUGF0dGVy bkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbaV07CisJCVJQUlBhdHRlcm5FbGVt ZW50ICplbGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzWyppZHhdOwogCiAJCWlmIChSUFJFbGVtSXNG aW4oZWxlbSkpCiAJCQlicmVhazsKIAotCQkvKiBBbHRlcm5hdGlvbiBzZXBhcmF0b3IgLSBjaGVj ayBpZiBjdXJyZW50IHBvc2l0aW9uIGlzIGluIHRoZSBsaXN0ICovCi0JCWlmIChsaXN0X21lbWJl cl9pbnQoYWx0U2VwTGlzdCwgaSkpCi0JCXsKLQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1 ZiwgIiB8ICIpOwotCQkJbmVlZFNwYWNlID0gZmFsc2U7Ci0JCQlhbHRTZXBMaXN0ID0gbGlzdF9k ZWxldGVfaW50KGFsdFNlcExpc3QsIGkpOwotCQl9CisJCS8qIFN0b3AgYXQgRU5EIG1hdGNoaW5n IG91ciBncm91cCBkZXB0aDsgY2FsbGVyIGhhbmRsZXMgaXQgKi8KKwkJaWYgKFJQUkVsZW1Jc0Vu ZChlbGVtKSAmJiBlbGVtLT5kZXB0aCA9PSBncm91cERlcHRoKQorCQkJYnJlYWs7CiAKLQkJaWYg KFJQUkVsZW1Jc0FsdChlbGVtKSkKKwkJLyogQWx0ZXJuYXRpb24gc2VwYXJhdG9yICovCisJCWlm IChsaXN0X21lbWJlcl9pbnQoYWx0U2VwcywgKmlkeCkpCiAJCXsKLQkJCS8qIE9wZW4gcGFyZW5z IHVwIHRvIEFMVCdzIGRlcHRoIChjb250ZW50IGlzIGF0IGRlcHRoKzEpICovCi0JCQl3aGlsZSAo cHJldkRlcHRoIDwgZWxlbS0+ZGVwdGgpCisJCQkvKiBDbG9zZSBwYXJlbnMgdG8gbWF0Y2ggc2Vw YXJhdG9yIGRlcHRoIGZpcnN0ICovCisJCQl3aGlsZSAoKnByZXZEZXB0aCA+IGVsZW0tPmRlcHRo KQogCQkJewotCQkJCWlmIChuZWVkU3BhY2UpCi0JCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZi dWYsICcgJyk7Ci0JCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJygnKTsKLQkJCQlwcmV2 RGVwdGgrKzsKLQkJCQluZWVkU3BhY2UgPSBmYWxzZTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihidWYsICcpJyk7CisJCQkJKCpwcmV2RGVwdGgpLS07CiAJCQl9Ci0JCQkvKiBBTFQncyBmaXJz dCBlbGVtZW50IG1heSBoYXZlIGp1bXAgdG8gbmV4dCBhbHRlcm5hdGl2ZSAqLwotCQkJaWYgKGVs ZW0tPm5leHQgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCkKLQkJCXsKLQkJCQlSUFJQYXR0ZXJuRWxl bWVudCAqZmlyc3RFbGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW2VsZW0tPm5leHRdOwotCi0JCQkJ aWYgKGZpcnN0RWxlbS0+anVtcCAhPSBSUFJfRUxFTUlEWF9JTlZBTElEKQotCQkJCQlhbHRTZXBM aXN0ID0gbGlzdF9hcHBlbmRfdW5pcXVlX2ludChhbHRTZXBMaXN0LCBmaXJzdEVsZW0tPmp1bXAp OwotCQkJfQotCQkJY29udGludWU7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiB8 ICIpOworCQkJKm5lZWRTcGFjZSA9IGZhbHNlOworCQkJYWx0U2VwcyA9IGxpc3RfZGVsZXRlX2lu dChhbHRTZXBzLCAqaWR4KTsKIAkJfQogCi0JCWlmIChSUFJFbGVtSXNFbmQoZWxlbSkpCisJCS8q IERpc3BhdGNoIHRvIGVsZW1lbnQtdHlwZSBoYW5kbGVycyAqLworCQlpZiAoUlBSRWxlbUlzQWx0 KGVsZW0pKQorCQkJZGVwYXJzZV9ycHJfYWx0KHBhdHRlcm4sIGlkeCwgYnVmLCBwcmV2RGVwdGgs CisJCQkJCQkJbmVlZFNwYWNlLCAmYWx0U2Vwcyk7CisJCWVsc2UgaWYgKFJQUkVsZW1Jc0JlZ2lu KGVsZW0pKQorCQkJZGVwYXJzZV9ycHJfZ3JvdXAocGF0dGVybiwgaWR4LCBidWYsIHByZXZEZXB0 aCwKKwkJCQkJCQkgIG5lZWRTcGFjZSk7CisJCWVsc2UgaWYgKFJQUkVsZW1Jc1ZhcihlbGVtKSkK KwkJCWRlcGFyc2VfcnByX3ZhcihwYXR0ZXJuLCBpZHgsIGJ1ZiwgcHJldkRlcHRoLAorCQkJCQkJ CW5lZWRTcGFjZSwgJmFsdFNlcHMpOworCX0KKwlsaXN0X2ZyZWUoYWx0U2Vwcyk7Cit9CisKKy8q CisgKiBQcm9jZXNzIGEgQkVHSU4uLi5FTkQgZ3JvdXAuCisgKgorICogQ29uc3VtZXMgQkVHSU4s IHJlY3Vyc2VzIGludG8gZGVwYXJzZV9ycHJfZWxlbWVudHMgZm9yIGdyb3VwIGNvbnRlbnQsCisg KiB0aGVuIGNvbnN1bWVzIEVORCBhbmQgb3V0cHV0cyB0aGUgZ3JvdXAgcXVhbnRpZmllci4KKyAq CisgKiBXaGVuIHRoZSBncm91cCB3cmFwcyBhIHNpbmdsZSBBTFQgd2l0aCBubyBzaWJsaW5ncywg dGhlIGdyb3VwLWxldmVsCisgKiBwYXJlbnRoZXNpcyBpcyBzdXBwcmVzc2VkIHNpbmNlIHRoZSBB TFQtdG8tY2hpbGRyZW4gZGVwdGggdHJhbnNpdGlvbgorICogYWxyZWFkeSBwcm92aWRlcyBpdCAo YXZvaWRzIGRvdWJsZSBwYXJlbnMgbGlrZSAiKChhIHwgYikpKyIpLgorICovCitzdGF0aWMgdm9p ZAorZGVwYXJzZV9ycHJfZ3JvdXAoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsIFN0cmlu Z0luZm9EYXRhICpidWYsCisJCQkJICBSUFJEZXB0aCAqcHJldkRlcHRoLCBib29sICpuZWVkU3Bh Y2UpCit7CisJUlBSUGF0dGVybkVsZW1lbnQgKmJlZ2luID0gJnBhdHRlcm4tPmVsZW1lbnRzWypp ZHhdOworCVJQUkRlcHRoCWNoaWxkRGVwdGggPSBiZWdpbi0+ZGVwdGggKyAxOworCWJvb2wJCXNp bmdsZUFsdCA9IGZhbHNlOworCVJQUlBhdHRlcm5FbGVtZW50ICplbmQ7CisKKwkvKgorCSAqIENo ZWNrIGlmIHRoaXMgZ3JvdXAgd3JhcHMgYSBzaW5nbGUgQUxUIHdpdGggbm8gc2libGluZ3MuCisJ ICogU2NhbiBmcm9tIGFmdGVyIEFMVCB0byBFTkQ6IGlmIG5vIGVsZW1lbnQgYXQgY2hpbGREZXB0 aCBleGlzdHMsCisJICogdGhlIEFMVCBpcyB0aGUgc29sZSBjaGlsZC4KKwkgKi8KKwlpZiAoKmlk eCArIDEgPCBwYXR0ZXJuLT5udW1FbGVtZW50cyAmJgorCQlSUFJFbGVtSXNBbHQoJnBhdHRlcm4t PmVsZW1lbnRzWyppZHggKyAxXSkpCisJeworCQlpbnQJCQlqOworCisJCXNpbmdsZUFsdCA9IHRy dWU7CisJCWZvciAoaiA9ICppZHggKyAyOyBqIDwgcGF0dGVybi0+bnVtRWxlbWVudHM7IGorKykK IAkJewotCQkJLyogQ2xvc2UgZG93biB0byBFTkQncyBkZXB0aCwgb3V0cHV0IHF1YW50aWZpZXIg Ki8KLQkJCXdoaWxlIChwcmV2RGVwdGggPiBlbGVtLT5kZXB0aCArIDEpCisJCQlSUFJQYXR0ZXJu RWxlbWVudCAqZSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tqXTsKKworCQkJaWYgKFJQUkVsZW1Jc0Vu ZChlKSAmJiBlLT5kZXB0aCA9PSBiZWdpbi0+ZGVwdGgpCisJCQkJYnJlYWs7CisJCQlpZiAoZS0+ ZGVwdGggPD0gY2hpbGREZXB0aCkKIAkJCXsKLQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmYnVm LCAnKScpOwotCQkJCXByZXZEZXB0aC0tOworCQkJCXNpbmdsZUFsdCA9IGZhbHNlOworCQkJCWJy ZWFrOwogCQkJfQotCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKLQkJCWFwcGVu ZF9ycHJfcXVhbnRpZmllcigmYnVmLCBlbGVtKTsKLQkJCXByZXZEZXB0aCA9IGVsZW0tPmRlcHRo OwotCQkJbmVlZFNwYWNlID0gdHJ1ZTsKLQkJCWNvbnRpbnVlOwogCQl9CisJfQogCi0JCWlmIChS UFJFbGVtSXNWYXIoZWxlbSkpCi0JCXsKLQkJCS8qIE9wZW4gcGFyZW5zIGZvciBkZXB0aCBpbmNy ZWFzZSAqLwotCQkJd2hpbGUgKHByZXZEZXB0aCA8IGVsZW0tPmRlcHRoKQotCQkJewotCQkJCWlm IChuZWVkU3BhY2UpCi0JCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZidWYsICcgJyk7Ci0JCQkJ YXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJygnKTsKLQkJCQlwcmV2RGVwdGgrKzsKLQkJCQlu ZWVkU3BhY2UgPSBmYWxzZTsKLQkJCX0KKwkvKiBPcGVuIGdyb3VwIHBhcmVuICh1bmxlc3Mgc2lu Z2xlIEFMVCBwcm92aWRlcyBpdCkgKi8KKwlpZiAoIXNpbmdsZUFsdCkKKwl7CisJCWlmICgqbmVl ZFNwYWNlKQorCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOworCQlhcHBlbmRTdHJp bmdJbmZvQ2hhcihidWYsICcoJyk7CisJCSpuZWVkU3BhY2UgPSBmYWxzZTsKKwl9CisJKnByZXZE ZXB0aCA9IGNoaWxkRGVwdGg7CisJKCppZHgpKys7CQkJCQkJLyogY29uc3VtZSBCRUdJTiAqLwog Ci0JCQkvKiBDbG9zZSBwYXJlbnMgZm9yIGRlcHRoIGRlY3JlYXNlICovCi0JCQl3aGlsZSAocHJl dkRlcHRoID4gZWxlbS0+ZGVwdGgpCi0JCQl7Ci0JCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1 ZiwgJyknKTsKLQkJCQlwcmV2RGVwdGgtLTsKLQkJCX0KKwkvKiBQcm9jZXNzIGdyb3VwIGNoaWxk cmVuOyBzdG9wcyBhdCBtYXRjaGluZyBFTkQgKi8KKwlkZXBhcnNlX3Jwcl9lbGVtZW50cyhwYXR0 ZXJuLCBpZHgsIGJ1ZiwgYmVnaW4tPmRlcHRoLAorCQkJCQkJIHByZXZEZXB0aCwgbmVlZFNwYWNl KTsKIAotCQkJaWYgKG5lZWRTcGFjZSkKLQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmYnVmLCAn ICcpOworCS8qIENvbnN1bWUgRU5EIGFuZCBvdXRwdXQgcXVhbnRpZmllciAqLworCUFzc2VydCgq aWR4IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpOworCWVuZCA9ICZwYXR0ZXJuLT5lbGVtZW50c1sq aWR4XTsKKwlBc3NlcnQoUlBSRWxlbUlzRW5kKGVuZCkgJiYgZW5kLT5kZXB0aCA9PSBiZWdpbi0+ ZGVwdGgpOwogCi0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsIHBhdHRlcm4tPnZhck5h bWVzW2VsZW0tPnZhcklkXSk7Ci0JCQlhcHBlbmRfcnByX3F1YW50aWZpZXIoJmJ1ZiwgZWxlbSk7 Ci0JCQluZWVkU3BhY2UgPSB0cnVlOworCXdoaWxlICgqcHJldkRlcHRoID4gZW5kLT5kZXB0aCAr IDEpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCSgqcHJldkRlcHRo KS0tOworCX0KKwlpZiAoIXNpbmdsZUFsdCkKKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAn KScpOworCWFwcGVuZF9ycHJfcXVhbnRpZmllcihidWYsIGVuZCk7CisJKnByZXZEZXB0aCA9IGVu ZC0+ZGVwdGg7CisJKm5lZWRTcGFjZSA9IHRydWU7CisJKCppZHgpKys7CQkJCQkJLyogY29uc3Vt ZSBFTkQgKi8KK30KIAotCQkJaWYgKGVsZW0tPmp1bXAgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCkK LQkJCQlhbHRTZXBMaXN0ID0gbGlzdF9hcHBlbmRfdW5pcXVlX2ludChhbHRTZXBMaXN0LCBlbGVt LT5qdW1wKTsKLQkJfQorLyoKKyAqIFByb2Nlc3MgYW4gQUxUIGVsZW1lbnQ6IGFkanVzdCBkZXB0 aCBwYXJlbnMgYW5kIHJlZ2lzdGVyIHNlcGFyYXRvciBwb3NpdGlvbnMuCisgKi8KK3N0YXRpYyB2 b2lkCitkZXBhcnNlX3Jwcl9hbHQoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsIFN0cmlu Z0luZm9EYXRhICpidWYsCisJCQkJUlBSRGVwdGggKnByZXZEZXB0aCwgYm9vbCAqbmVlZFNwYWNl LCBMaXN0ICoqYWx0U2VwcykKK3sKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXR0ZXJu LT5lbGVtZW50c1sqaWR4XTsKKworCS8qIENsb3NlIHBhcmVucyBmb3IgZGVwdGggZGVjcmVhc2Ug Ki8KKwl3aGlsZSAoKnByZXZEZXB0aCA+IGVsZW0tPmRlcHRoKQorCXsKKwkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoYnVmLCAnKScpOworCQkoKnByZXZEZXB0aCktLTsKKwkJKm5lZWRTcGFjZSA9IHRy dWU7CiAJfQogCi0JbGlzdF9mcmVlKGFsdFNlcExpc3QpOworCS8qIE9wZW4gcGFyZW5zIHVwIHRv IEFMVCdzIGRlcHRoICovCisJd2hpbGUgKCpwcmV2RGVwdGggPCBlbGVtLT5kZXB0aCkKKwl7CisJ CWlmICgqbmVlZFNwYWNlKQorCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOworCQlh cHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CisJCSgqcHJldkRlcHRoKSsrOworCQkqbmVl ZFNwYWNlID0gZmFsc2U7CisJfQogCi0JLyogQ2xvc2UgcmVtYWluaW5nICovCi0Jd2hpbGUgKHBy ZXZEZXB0aCA+IDApCisJLyogUmVnaXN0ZXIgbmV4dCBhbHRlcm5hdGlvbiBzZXBhcmF0b3IgcG9z aXRpb24gKi8KKwlpZiAoZWxlbS0+bmV4dCAhPSBSUFJfRUxFTUlEWF9JTlZBTElEKQogCXsKLQkJ YXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKLQkJcHJldkRlcHRoLS07CisJCVJQUlBh dHRlcm5FbGVtZW50ICpmaXJzdEVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbZWxlbS0+bmV4dF07 CisKKwkJaWYgKGZpcnN0RWxlbS0+anVtcCAhPSBSUFJfRUxFTUlEWF9JTlZBTElEKQorCQkJKmFs dFNlcHMgPSBsYXBwZW5kX2ludCgqYWx0U2VwcywgZmlyc3RFbGVtLT5qdW1wKTsKKwl9CisJaWYg KGVsZW0tPmp1bXAgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCkKKwkJKmFsdFNlcHMgPSBsYXBwZW5k X2ludCgqYWx0U2VwcywgZWxlbS0+anVtcCk7CisJKCppZHgpKys7Cit9CisKKy8qCisgKiBQcm9j ZXNzIGEgVkFSIGVsZW1lbnQ6IGFkanVzdCBkZXB0aCBwYXJlbnMgYW5kIG91dHB1dCB2YXJpYWJs ZSBuYW1lLgorICovCitzdGF0aWMgdm9pZAorZGVwYXJzZV9ycHJfdmFyKFJQUlBhdHRlcm4gKnBh dHRlcm4sIGludCAqaWR4LCBTdHJpbmdJbmZvRGF0YSAqYnVmLAorCQkJCVJQUkRlcHRoICpwcmV2 RGVwdGgsIGJvb2wgKm5lZWRTcGFjZSwgTGlzdCAqKmFsdFNlcHMpCit7CisJUlBSUGF0dGVybkVs ZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbKmlkeF07CisKKwkvKiBPcGVuIHBhcmVu cyBmb3IgZGVwdGggaW5jcmVhc2UgKi8KKwl3aGlsZSAoKnByZXZEZXB0aCA8IGVsZW0tPmRlcHRo KQorCXsKKwkJaWYgKCpuZWVkU3BhY2UpCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcg Jyk7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKKwkJKCpwcmV2RGVwdGgpKys7 CisJCSpuZWVkU3BhY2UgPSBmYWxzZTsKIAl9CiAKLQlyZXR1cm4gYnVmLmRhdGE7CisJLyogQ2xv c2UgcGFyZW5zIGZvciBkZXB0aCBkZWNyZWFzZSAqLworCXdoaWxlICgqcHJldkRlcHRoID4gZWxl bS0+ZGVwdGgpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCSgqcHJl dkRlcHRoKS0tOworCX0KKworCWlmICgqbmVlZFNwYWNlKQorCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihidWYsICcgJyk7CisKKwlBc3NlcnQoZWxlbS0+dmFySWQgPCBwYXR0ZXJuLT5udW1WYXJzKTsK KwlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcGF0dGVybi0+dmFyTmFtZXNbZWxlbS0+dmFy SWRdKTsKKwlhcHBlbmRfcnByX3F1YW50aWZpZXIoYnVmLCBlbGVtKTsKKwkqbmVlZFNwYWNlID0g dHJ1ZTsKKworCWlmIChlbGVtLT5qdW1wICE9IFJQUl9FTEVNSURYX0lOVkFMSUQpCisJCSphbHRT ZXBzID0gbGFwcGVuZF9pbnQoKmFsdFNlcHMsIGVsZW0tPmp1bXApOworCSgqaWR4KSsrOwogfQog CiAvKgpAQCAtMzY3MywxNDAgKzM4MjEsMTU1IEBAIHNob3dfd2luZG93YWdnX2luZm8oV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlLCBFeHBsYWluU3RhdGUgKmVzKQogCiAJLyogU2hvdyBORkEgc3Rh dGlzdGljcyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gKi8KIAlpZiAod2FnZy0+cnBQYXR0 ZXJuICE9IE5VTEwpCisJCXNob3dfcnByX25mYV9zdGF0cyh3aW5zdGF0ZSwgZXMpOworfQorCisv KgorICogU2hvdyBORkEgc3RhdGlzdGljcyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gb24g V2luZG93QWdnIG5vZGUuCisgKi8KK3N0YXRpYyB2b2lkCitzaG93X3Jwcl9uZmFfc3RhdHMoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBFeHBsYWluU3RhdGUgKmVzKQoreworCWlmIChlcy0+Zm9y bWF0ICE9IEVYUExBSU5fRk9STUFUX1RFWFQpCiAJewotCQlpZiAoZXMtPmZvcm1hdCAhPSBFWFBM QUlOX0ZPUk1BVF9URVhUKQorCQkvKiBTdGF0ZSBhbmQgY29udGV4dCBjb3VudGVycyAqLworCQlF eHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgU3RhdGVzIFBlYWsiLCBOVUxMLCB3aW5zdGF0ZS0+ bmZhU3RhdGVzTWF4LCBlcyk7CisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBTdGF0ZXMg VG90YWwiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhU3RhdGVzVG90YWxDcmVhdGVkLCBlcyk7CisJCUV4 cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBTdGF0ZXMgTWVyZ2VkIiwgTlVMTCwgd2luc3RhdGUt Pm5mYVN0YXRlc01lcmdlZCwgZXMpOworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgQ29u dGV4dHMgUGVhayIsIE5VTEwsIHdpbnN0YXRlLT5uZmFDb250ZXh0c01heCwgZXMpOworCQlFeHBs YWluUHJvcGVydHlJbnRlZ2VyKCJORkEgQ29udGV4dHMgVG90YWwiLCBOVUxMLCB3aW5zdGF0ZS0+ bmZhQ29udGV4dHNUb3RhbENyZWF0ZWQsIGVzKTsKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigi TkZBIENvbnRleHRzIEFic29yYmVkIiwgTlVMTCwgd2luc3RhdGUtPm5mYUNvbnRleHRzQWJzb3Ji ZWQsIGVzKTsKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIENvbnRleHRzIFNraXBwZWQi LCBOVUxMLCB3aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkLCBlcyk7CisJCUV4cGxhaW5Qcm9w ZXJ0eUludGVnZXIoIk5GQSBDb250ZXh0cyBQcnVuZWQiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhQ29u dGV4dHNQcnVuZWQsIGVzKTsKKworCQkvKiBNYXRjaC9taXNtYXRjaCBjb3VudHMgYW5kIGxlbmd0 aCBzdGF0aXN0aWNzICovCisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBNYXRjaGVkIiwg TlVMTCwgd2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQsIGVzKTsKKwkJRXhwbGFpblByb3Bl cnR5SW50ZWdlcigiTkZBIE1pc21hdGNoZWQiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhTWF0Y2hlc0Zh aWxlZCwgZXMpOworCQlpZiAod2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQgPiAwKQogCQl7 Ci0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgU3RhdGVzIFBlYWsiLCBOVUxMLCB3aW5z dGF0ZS0+bmZhU3RhdGVzTWF4LCBlcyk7Ci0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEg U3RhdGVzIFRvdGFsIiwgTlVMTCwgd2luc3RhdGUtPm5mYVN0YXRlc1RvdGFsQ3JlYXRlZCwgZXMp OwotCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIFN0YXRlcyBNZXJnZWQiLCBOVUxMLCB3 aW5zdGF0ZS0+bmZhU3RhdGVzTWVyZ2VkLCBlcyk7Ci0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2Vy KCJORkEgQ29udGV4dHMgUGVhayIsIE5VTEwsIHdpbnN0YXRlLT5uZmFDb250ZXh0c01heCwgZXMp OwotCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIENvbnRleHRzIFRvdGFsIiwgTlVMTCwg d2luc3RhdGUtPm5mYUNvbnRleHRzVG90YWxDcmVhdGVkLCBlcyk7Ci0JCQlFeHBsYWluUHJvcGVy dHlJbnRlZ2VyKCJORkEgQ29udGV4dHMgQWJzb3JiZWQiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhQ29u dGV4dHNBYnNvcmJlZCwgZXMpOwotCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIENvbnRl eHRzIFNraXBwZWQiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkLCBlcyk7Ci0J CQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgQ29udGV4dHMgUHJ1bmVkIiwgTlVMTCwgd2lu c3RhdGUtPm5mYUNvbnRleHRzUHJ1bmVkLCBlcyk7Ci0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2Vy KCJORkEgTWF0Y2hlZCIsIE5VTEwsIHdpbnN0YXRlLT5uZmFNYXRjaGVzU3VjY2VlZGVkLCBlcyk7 Ci0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgTWlzbWF0Y2hlZCIsIE5VTEwsIHdpbnN0 YXRlLT5uZmFNYXRjaGVzRmFpbGVkLCBlcyk7Ci0JCQlpZiAod2luc3RhdGUtPm5mYU1hdGNoZXNT dWNjZWVkZWQgPiAwKQotCQkJewotCQkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBNYXRj aCBMZW5ndGggTWluIiwgTlVMTCwgd2luc3RhdGUtPm5mYU1hdGNoTGVuLm1pbiwgZXMpOwotCQkJ CUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBNYXRjaCBMZW5ndGggTWF4IiwgTlVMTCwgd2lu c3RhdGUtPm5mYU1hdGNoTGVuLm1heCwgZXMpOwotCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJO RkEgTWF0Y2ggTGVuZ3RoIEF2ZyIsIE5VTEwsCi0JCQkJCQkJCQkgKGRvdWJsZSkgd2luc3RhdGUt Pm5mYU1hdGNoTGVuLnRvdGFsIC8gd2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQsIDEsCi0J CQkJCQkJCQkgZXMpOwotCQkJfQotCQkJaWYgKHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkID4g MCkKLQkJCXsKLQkJCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgTWlzbWF0Y2ggTGVuZ3Ro IE1pbiIsIE5VTEwsIHdpbnN0YXRlLT5uZmFGYWlsTGVuLm1pbiwgZXMpOwotCQkJCUV4cGxhaW5Q cm9wZXJ0eUludGVnZXIoIk5GQSBNaXNtYXRjaCBMZW5ndGggTWF4IiwgTlVMTCwgd2luc3RhdGUt Pm5mYUZhaWxMZW4ubWF4LCBlcyk7Ci0JCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIk5GQSBNaXNt YXRjaCBMZW5ndGggQXZnIiwgTlVMTCwKLQkJCQkJCQkJCSAoZG91YmxlKSB3aW5zdGF0ZS0+bmZh RmFpbExlbi50b3RhbCAvIHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkLCAxLAotCQkJCQkJCQkJ IGVzKTsKLQkJCX0KLQkJCWlmICh3aW5zdGF0ZS0+bmZhQ29udGV4dHNBYnNvcmJlZCA+IDApCi0J CQl7Ci0JCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIEFic29yYmVkIExlbmd0aCBNaW4i LCBOVUxMLCB3aW5zdGF0ZS0+bmZhQWJzb3JiZWRMZW4ubWluLCBlcyk7Ci0JCQkJRXhwbGFpblBy b3BlcnR5SW50ZWdlcigiTkZBIEFic29yYmVkIExlbmd0aCBNYXgiLCBOVUxMLCB3aW5zdGF0ZS0+ bmZhQWJzb3JiZWRMZW4ubWF4LCBlcyk7Ci0JCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIk5GQSBB YnNvcmJlZCBMZW5ndGggQXZnIiwgTlVMTCwKLQkJCQkJCQkJCSAoZG91YmxlKSB3aW5zdGF0ZS0+ bmZhQWJzb3JiZWRMZW4udG90YWwgLyB3aW5zdGF0ZS0+bmZhQ29udGV4dHNBYnNvcmJlZCwgMSwK LQkJCQkJCQkJCSBlcyk7Ci0JCQl9Ci0JCQlpZiAod2luc3RhdGUtPm5mYUNvbnRleHRzU2tpcHBl ZCA+IDApCi0JCQl7Ci0JCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIFNraXBwZWQgTGVu Z3RoIE1pbiIsIE5VTEwsIHdpbnN0YXRlLT5uZmFTa2lwcGVkTGVuLm1pbiwgZXMpOwotCQkJCUV4 cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBTa2lwcGVkIExlbmd0aCBNYXgiLCBOVUxMLCB3aW5z dGF0ZS0+bmZhU2tpcHBlZExlbi5tYXgsIGVzKTsKLQkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgi TkZBIFNraXBwZWQgTGVuZ3RoIEF2ZyIsIE5VTEwsCi0JCQkJCQkJCQkgKGRvdWJsZSkgd2luc3Rh dGUtPm5mYVNraXBwZWRMZW4udG90YWwgLyB3aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkLCAx LAotCQkJCQkJCQkJIGVzKTsKLQkJCX0KKwkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBN YXRjaCBMZW5ndGggTWluIiwgTlVMTCwgd2luc3RhdGUtPm5mYU1hdGNoTGVuLm1pbiwgZXMpOwor CQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIE1hdGNoIExlbmd0aCBNYXgiLCBOVUxMLCB3 aW5zdGF0ZS0+bmZhTWF0Y2hMZW4ubWF4LCBlcyk7CisJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgi TkZBIE1hdGNoIExlbmd0aCBBdmciLCBOVUxMLAorCQkJCQkJCQkgKGRvdWJsZSkgd2luc3RhdGUt Pm5mYU1hdGNoTGVuLnRvdGFsIC8gd2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQsIDEsCisJ CQkJCQkJCSBlcyk7CiAJCX0KLQkJZWxzZQorCQlpZiAod2luc3RhdGUtPm5mYU1hdGNoZXNGYWls ZWQgPiAwKQogCQl7Ci0JCQlFeHBsYWluSW5kZW50VGV4dChlcyk7CisJCQlFeHBsYWluUHJvcGVy dHlJbnRlZ2VyKCJORkEgTWlzbWF0Y2ggTGVuZ3RoIE1pbiIsIE5VTEwsIHdpbnN0YXRlLT5uZmFG YWlsTGVuLm1pbiwgZXMpOworCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIE1pc21hdGNo IExlbmd0aCBNYXgiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhRmFpbExlbi5tYXgsIGVzKTsKKwkJCUV4 cGxhaW5Qcm9wZXJ0eUZsb2F0KCJORkEgTWlzbWF0Y2ggTGVuZ3RoIEF2ZyIsIE5VTEwsCisJCQkJ CQkJCSAoZG91YmxlKSB3aW5zdGF0ZS0+bmZhRmFpbExlbi50b3RhbCAvIHdpbnN0YXRlLT5uZmFN YXRjaGVzRmFpbGVkLCAxLAorCQkJCQkJCQkgZXMpOworCQl9CisKKwkJLyogQWJzb3JiZWQvc2tp cHBlZCBjb250ZXh0IGxlbmd0aCBzdGF0aXN0aWNzICovCisJCWlmICh3aW5zdGF0ZS0+bmZhQ29u dGV4dHNBYnNvcmJlZCA+IDApCisJCXsKKwkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBB YnNvcmJlZCBMZW5ndGggTWluIiwgTlVMTCwgd2luc3RhdGUtPm5mYUFic29yYmVkTGVuLm1pbiwg ZXMpOworCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIEFic29yYmVkIExlbmd0aCBNYXgi LCBOVUxMLCB3aW5zdGF0ZS0+bmZhQWJzb3JiZWRMZW4ubWF4LCBlcyk7CisJCQlFeHBsYWluUHJv cGVydHlGbG9hdCgiTkZBIEFic29yYmVkIExlbmd0aCBBdmciLCBOVUxMLAorCQkJCQkJCQkgKGRv dWJsZSkgd2luc3RhdGUtPm5mYUFic29yYmVkTGVuLnRvdGFsIC8gd2luc3RhdGUtPm5mYUNvbnRl eHRzQWJzb3JiZWQsIDEsCisJCQkJCQkJCSBlcyk7CisJCX0KKwkJaWYgKHdpbnN0YXRlLT5uZmFD b250ZXh0c1NraXBwZWQgPiAwKQorCQl7CisJCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEg U2tpcHBlZCBMZW5ndGggTWluIiwgTlVMTCwgd2luc3RhdGUtPm5mYVNraXBwZWRMZW4ubWluLCBl cyk7CisJCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgU2tpcHBlZCBMZW5ndGggTWF4Iiwg TlVMTCwgd2luc3RhdGUtPm5mYVNraXBwZWRMZW4ubWF4LCBlcyk7CisJCQlFeHBsYWluUHJvcGVy dHlGbG9hdCgiTkZBIFNraXBwZWQgTGVuZ3RoIEF2ZyIsIE5VTEwsCisJCQkJCQkJCSAoZG91Ymxl KSB3aW5zdGF0ZS0+bmZhU2tpcHBlZExlbi50b3RhbCAvIHdpbnN0YXRlLT5uZmFDb250ZXh0c1Nr aXBwZWQsIDEsCisJCQkJCQkJCSBlcyk7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyogU3RhdGUg YW5kIGNvbnRleHQgY291bnRlcnMgKi8KKwkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQlhcHBl bmRTdHJpbmdJbmZvKGVzLT5zdHIsCisJCQkJCQkgIk5GQSBTdGF0ZXM6ICIgSU5UNjRfRk9STUFU ICIgcGVhaywgIiBJTlQ2NF9GT1JNQVQgIiB0b3RhbCwgIiBJTlQ2NF9GT1JNQVQgIiBtZXJnZWRc biIsCisJCQkJCQkgd2luc3RhdGUtPm5mYVN0YXRlc01heCwKKwkJCQkJCSB3aW5zdGF0ZS0+bmZh U3RhdGVzVG90YWxDcmVhdGVkLAorCQkJCQkJIHdpbnN0YXRlLT5uZmFTdGF0ZXNNZXJnZWQpOwor CQlFeHBsYWluSW5kZW50VGV4dChlcyk7CisJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwKKwkJ CQkJCSAiTkZBIENvbnRleHRzOiAiIElOVDY0X0ZPUk1BVCAiIHBlYWssICIgSU5UNjRfRk9STUFU ICIgdG90YWwsICIgSU5UNjRfRk9STUFUICIgcHJ1bmVkXG4iLAorCQkJCQkJIHdpbnN0YXRlLT5u ZmFDb250ZXh0c01heCwKKwkJCQkJCSB3aW5zdGF0ZS0+bmZhQ29udGV4dHNUb3RhbENyZWF0ZWQs CisJCQkJCQkgd2luc3RhdGUtPm5mYUNvbnRleHRzUHJ1bmVkKTsKKworCQkvKiBNYXRjaC9taXNt YXRjaCBjb3VudHMgd2l0aCBsZW5ndGggbWluL21heC9hdmcgKi8KKwkJRXhwbGFpbkluZGVudFRl eHQoZXMpOworCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICJORkE6ICIpOworCQlpZiAod2lu c3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQgPiAwKQorCQl7CisJCQlkb3VibGUJCWF2Z0xlbiA9 IChkb3VibGUpIHdpbnN0YXRlLT5uZmFNYXRjaExlbi50b3RhbCAvIHdpbnN0YXRlLT5uZmFNYXRj aGVzU3VjY2VlZGVkOworCiAJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsCi0JCQkJCQkJICJO RkEgU3RhdGVzOiAiIElOVDY0X0ZPUk1BVCAiIHBlYWssICIgSU5UNjRfRk9STUFUICIgdG90YWws ICIgSU5UNjRfRk9STUFUICIgbWVyZ2VkXG4iLAotCQkJCQkJCSB3aW5zdGF0ZS0+bmZhU3RhdGVz TWF4LAotCQkJCQkJCSB3aW5zdGF0ZS0+bmZhU3RhdGVzVG90YWxDcmVhdGVkLAotCQkJCQkJCSB3 aW5zdGF0ZS0+bmZhU3RhdGVzTWVyZ2VkKTsKLQkJCUV4cGxhaW5JbmRlbnRUZXh0KGVzKTsKKwkJ CQkJCQkgSU5UNjRfRk9STUFUICIgbWF0Y2hlZCAobGVuICIgSU5UNjRfRk9STUFUICIvIiBJTlQ2 NF9GT1JNQVQgIi8lLjFmKSIsCisJCQkJCQkJIHdpbnN0YXRlLT5uZmFNYXRjaGVzU3VjY2VlZGVk LAorCQkJCQkJCSB3aW5zdGF0ZS0+bmZhTWF0Y2hMZW4ubWluLAorCQkJCQkJCSB3aW5zdGF0ZS0+ bmZhTWF0Y2hMZW4ubWF4LAorCQkJCQkJCSBhdmdMZW4pOworCQl9CisJCWVsc2UKKwkJeworCQkJ YXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiMCBtYXRjaGVkIik7CisJCX0KKwkJaWYgKHdpbnN0 YXRlLT5uZmFNYXRjaGVzRmFpbGVkID4gMCkKKwkJeworCQkJZG91YmxlCQlhdmdGYWlsID0gKGRv dWJsZSkgd2luc3RhdGUtPm5mYUZhaWxMZW4udG90YWwgLyB3aW5zdGF0ZS0+bmZhTWF0Y2hlc0Zh aWxlZDsKKwogCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLAotCQkJCQkJCSAiTkZBIENvbnRl eHRzOiAiIElOVDY0X0ZPUk1BVCAiIHBlYWssICIgSU5UNjRfRk9STUFUICIgdG90YWwsICIgSU5U NjRfRk9STUFUICIgcHJ1bmVkXG4iLAotCQkJCQkJCSB3aW5zdGF0ZS0+bmZhQ29udGV4dHNNYXgs Ci0JCQkJCQkJIHdpbnN0YXRlLT5uZmFDb250ZXh0c1RvdGFsQ3JlYXRlZCwKLQkJCQkJCQkgd2lu c3RhdGUtPm5mYUNvbnRleHRzUHJ1bmVkKTsKKwkJCQkJCQkgIiwgIiBJTlQ2NF9GT1JNQVQgIiBt aXNtYXRjaGVkIChsZW4gIiBJTlQ2NF9GT1JNQVQgIi8iIElOVDY0X0ZPUk1BVCAiLyUuMWYpIiwK KwkJCQkJCQkgd2luc3RhdGUtPm5mYU1hdGNoZXNGYWlsZWQsCisJCQkJCQkJIHdpbnN0YXRlLT5u ZmFGYWlsTGVuLm1pbiwKKwkJCQkJCQkgd2luc3RhdGUtPm5mYUZhaWxMZW4ubWF4LAorCQkJCQkJ CSBhdmdGYWlsKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0 ciwgIiwgMCBtaXNtYXRjaGVkIik7CisJCX0KKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoZXMtPnN0 ciwgJ1xuJyk7CisKKwkJLyogQWJzb3JiZWQvc2tpcHBlZCBjb250ZXh0IGxlbmd0aCBzdGF0aXN0 aWNzICovCisJCWlmICh3aW5zdGF0ZS0+bmZhQ29udGV4dHNBYnNvcmJlZCA+IDAgfHwgd2luc3Rh dGUtPm5mYUNvbnRleHRzU2tpcHBlZCA+IDApCisJCXsKIAkJCUV4cGxhaW5JbmRlbnRUZXh0KGVz KTsKIAkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIk5GQTogIik7Ci0JCQlpZiAod2luc3Rh dGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQgPiAwKQorCisJCQlpZiAod2luc3RhdGUtPm5mYUNvbnRl eHRzQWJzb3JiZWQgPiAwKQogCQkJewotCQkJCWRvdWJsZQkJYXZnTGVuID0gKGRvdWJsZSkgd2lu c3RhdGUtPm5mYU1hdGNoTGVuLnRvdGFsIC8gd2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQ7 CisJCQkJZG91YmxlCQlhdmdBYnNvcmJlZCA9IChkb3VibGUpIHdpbnN0YXRlLT5uZmFBYnNvcmJl ZExlbi50b3RhbCAvIHdpbnN0YXRlLT5uZmFDb250ZXh0c0Fic29yYmVkOwogCiAJCQkJYXBwZW5k U3RyaW5nSW5mbyhlcy0+c3RyLAotCQkJCQkJCQkgSU5UNjRfRk9STUFUICIgbWF0Y2hlZCAobGVu ICIgSU5UNjRfRk9STUFUICIvIiBJTlQ2NF9GT1JNQVQgIi8lLjFmKSIsCi0JCQkJCQkJCSB3aW5z dGF0ZS0+bmZhTWF0Y2hlc1N1Y2NlZWRlZCwKLQkJCQkJCQkJIHdpbnN0YXRlLT5uZmFNYXRjaExl bi5taW4sCi0JCQkJCQkJCSB3aW5zdGF0ZS0+bmZhTWF0Y2hMZW4ubWF4LAotCQkJCQkJCQkgYXZn TGVuKTsKKwkJCQkJCQkJIElOVDY0X0ZPUk1BVCAiIGFic29yYmVkIChsZW4gIiBJTlQ2NF9GT1JN QVQgIi8iIElOVDY0X0ZPUk1BVCAiLyUuMWYpIiwKKwkJCQkJCQkJIHdpbnN0YXRlLT5uZmFDb250 ZXh0c0Fic29yYmVkLAorCQkJCQkJCQkgd2luc3RhdGUtPm5mYUFic29yYmVkTGVuLm1pbiwKKwkJ CQkJCQkJIHdpbnN0YXRlLT5uZmFBYnNvcmJlZExlbi5tYXgsCisJCQkJCQkJCSBhdmdBYnNvcmJl ZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAi MCBtYXRjaGVkIik7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiMCBhYnNvcmJlZCIp OwogCQkJfQotCQkJaWYgKHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkID4gMCkKKworCQkJaWYg KHdpbnN0YXRlLT5uZmFDb250ZXh0c1NraXBwZWQgPiAwKQogCQkJewotCQkJCWRvdWJsZQkJYXZn RmFpbCA9IChkb3VibGUpIHdpbnN0YXRlLT5uZmFGYWlsTGVuLnRvdGFsIC8gd2luc3RhdGUtPm5m YU1hdGNoZXNGYWlsZWQ7CisJCQkJZG91YmxlCQlhdmdTa2lwcGVkID0gKGRvdWJsZSkgd2luc3Rh dGUtPm5mYVNraXBwZWRMZW4udG90YWwgLyB3aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkOwog CiAJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLAotCQkJCQkJCQkgIiwgIiBJTlQ2NF9GT1JN QVQgIiBtaXNtYXRjaGVkIChsZW4gIiBJTlQ2NF9GT1JNQVQgIi8iIElOVDY0X0ZPUk1BVCAiLyUu MWYpIiwKLQkJCQkJCQkJIHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkLAotCQkJCQkJCQkgd2lu c3RhdGUtPm5mYUZhaWxMZW4ubWluLAotCQkJCQkJCQkgd2luc3RhdGUtPm5mYUZhaWxMZW4ubWF4 LAotCQkJCQkJCQkgYXZnRmFpbCk7CisJCQkJCQkJCSAiLCAiIElOVDY0X0ZPUk1BVCAiIHNraXBw ZWQgKGxlbiAiIElOVDY0X0ZPUk1BVCAiLyIgSU5UNjRfRk9STUFUICIvJS4xZikiLAorCQkJCQkJ CQkgd2luc3RhdGUtPm5mYUNvbnRleHRzU2tpcHBlZCwKKwkJCQkJCQkJIHdpbnN0YXRlLT5uZmFT a2lwcGVkTGVuLm1pbiwKKwkJCQkJCQkJIHdpbnN0YXRlLT5uZmFTa2lwcGVkTGVuLm1heCwKKwkJ CQkJCQkJIGF2Z1NraXBwZWQpOwogCQkJfQogCQkJZWxzZQogCQkJewotCQkJCWFwcGVuZFN0cmlu Z0luZm8oZXMtPnN0ciwgIiwgMCBtaXNtYXRjaGVkIik7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhl cy0+c3RyLCAiLCAwIHNraXBwZWQiKTsKIAkJCX0KLQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGVz LT5zdHIsICdcbicpOwotCi0JCQkvKiBTaG93IGFic29yYmVkIGFuZCBza2lwcGVkIGNvbnRleHQg bGVuZ3RoIHN0YXRpc3RpY3MgKi8KLQkJCWlmICh3aW5zdGF0ZS0+bmZhQ29udGV4dHNBYnNvcmJl ZCA+IDAgfHwgd2luc3RhdGUtPm5mYUNvbnRleHRzU2tpcHBlZCA+IDApCi0JCQl7Ci0JCQkJRXhw bGFpbkluZGVudFRleHQoZXMpOwotCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIk5GQTog Iik7Ci0KLQkJCQlpZiAod2luc3RhdGUtPm5mYUNvbnRleHRzQWJzb3JiZWQgPiAwKQotCQkJCXsK LQkJCQkJZG91YmxlCQlhdmdBYnNvcmJlZCA9IChkb3VibGUpIHdpbnN0YXRlLT5uZmFBYnNvcmJl ZExlbi50b3RhbCAvIHdpbnN0YXRlLT5uZmFDb250ZXh0c0Fic29yYmVkOwotCi0JCQkJCWFwcGVu ZFN0cmluZ0luZm8oZXMtPnN0ciwKLQkJCQkJCQkJCSBJTlQ2NF9GT1JNQVQgIiBhYnNvcmJlZCAo bGVuICIgSU5UNjRfRk9STUFUICIvIiBJTlQ2NF9GT1JNQVQgIi8lLjFmKSIsCi0JCQkJCQkJCQkg d2luc3RhdGUtPm5mYUNvbnRleHRzQWJzb3JiZWQsCi0JCQkJCQkJCQkgd2luc3RhdGUtPm5mYUFi c29yYmVkTGVuLm1pbiwKLQkJCQkJCQkJCSB3aW5zdGF0ZS0+bmZhQWJzb3JiZWRMZW4ubWF4LAot CQkJCQkJCQkJIGF2Z0Fic29yYmVkKTsKLQkJCQl9Ci0JCQkJZWxzZQotCQkJCXsKLQkJCQkJYXBw ZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiMCBhYnNvcmJlZCIpOwotCQkJCX0KLQotCQkJCWlmICh3 aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkID4gMCkKLQkJCQl7Ci0JCQkJCWRvdWJsZQkJYXZn U2tpcHBlZCA9IChkb3VibGUpIHdpbnN0YXRlLT5uZmFTa2lwcGVkTGVuLnRvdGFsIC8gd2luc3Rh dGUtPm5mYUNvbnRleHRzU2tpcHBlZDsKLQotCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIs Ci0JCQkJCQkJCQkgIiwgIiBJTlQ2NF9GT1JNQVQgIiBza2lwcGVkIChsZW4gIiBJTlQ2NF9GT1JN QVQgIi8iIElOVDY0X0ZPUk1BVCAiLyUuMWYpIiwKLQkJCQkJCQkJCSB3aW5zdGF0ZS0+bmZhQ29u dGV4dHNTa2lwcGVkLAotCQkJCQkJCQkJIHdpbnN0YXRlLT5uZmFTa2lwcGVkTGVuLm1pbiwKLQkJ CQkJCQkJCSB3aW5zdGF0ZS0+bmZhU2tpcHBlZExlbi5tYXgsCi0JCQkJCQkJCQkgYXZnU2tpcHBl ZCk7Ci0JCQkJfQotCQkJCWVsc2UKLQkJCQl7Ci0JCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0 ciwgIiwgMCBza2lwcGVkIik7Ci0JCQkJfQogCi0JCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoZXMt PnN0ciwgJ1xuJyk7Ci0JCQl9CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihlcy0+c3RyLCAnXG4n KTsKIAkJfQogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5k b3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCAxZTA4 ODYxNWQxOS4uYjI4NzRiZjZlOWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMK QEAgLTYwNDgsNiArNjA0OCw0MSBAQCBuZmFfYWR2YW5jZV9hbHQoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBz dGF0ZSk7CiB9CiAKKy8qCisgKiBuZmFfYWR2YW5jZV9iZWdpbgorICoKKyAqIEhhbmRsZSBCRUdJ TiBlbGVtZW50OiBncm91cCBlbnRyeSBsb2dpYy4KKyAqIEJFR0lOIGlzIG9ubHkgdmlzaXRlZCBh dCBpbml0aWFsIGdyb3VwIGVudHJ5IChjb3VudCBpcyBhbHdheXMgMCkuCisgKiBJZiBtaW49MCwg Y3JlYXRlcyBhIHNraXAgcGF0aCBwYXN0IHRoZSBncm91cC4KKyAqIExvb3AtYmFjayBmcm9tIEVO RCBnb2VzIGRpcmVjdGx5IHRvIGZpcnN0IGNoaWxkLCBieXBhc3NpbmcgQkVHSU4uCisgKi8KK3N0 YXRpYyB2b2lkCituZmFfYWR2YW5jZV9iZWdpbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQUNvbnRleHQgKmN0eCwKKwkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVs ZW1lbnQgKmVsZW0sCisJCQkJICBpbnQ2NCBjdXJyZW50UG9zLCBib29sIGluaXRpYWxBZHZhbmNl KQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0ZS0+cnBQYXR0ZXJuOworCVJQUlBh dHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVsZW1lbnRzOworCisJc3RhdGUtPmNv dW50c1tlbGVtLT5kZXB0aF0gPSAwOworCisJLyogT3B0aW9uYWwgZ3JvdXA6IGNyZWF0ZSBza2lw IHBhdGggKi8KKwlpZiAoZWxlbS0+bWluID09IDApCisJeworCQlSUFJORkFTdGF0ZSAqc2tpcFN0 YXRlOworCisJCXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jbG9uZSh3aW5zdGF0ZSwgZWxlbS0+anVt cCwgc3RhdGUtPmFsdFByaW9yaXR5LAorCQkJCQkJCQkJIHN0YXRlLT5jb3VudHMsIHN0YXRlLT5p c0Fic29yYmFibGUpOworCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBza2lwU3Rh dGUsCisJCQkJCQkgICZlbGVtZW50c1tlbGVtLT5qdW1wXSwgY3VycmVudFBvcywgaW5pdGlhbEFk dmFuY2UpOworCX0KKworCS8qIEVudGVyIGdyb3VwOiByb3V0ZSB0byBmaXJzdCBjaGlsZCAqLwor CXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKKwluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0 ZSwgY3R4LCBzdGF0ZSwKKwkJCQkJICAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdLCBjdXJyZW50 UG9zLCBpbml0aWFsQWR2YW5jZSk7Cit9CisKIC8qCiAgKiBuZmFfYWR2YW5jZV9lbmQKICAqCkBA IC02MjMzLDYgKzYyNjgsMTAgQEAgbmZhX2FkdmFuY2Vfc3RhdGUoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQluZmFfYWR2YW5jZV9hbHQod2luc3RhdGUs IGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKIAkJCWJyZWFr OwogCisJCWNhc2UgUlBSX1ZBUklEX0JFR0lOOgorCQkJbmZhX2FkdmFuY2VfYmVnaW4od2luc3Rh dGUsIGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKwkJCWJy ZWFrOworCiAJCWNhc2UgUlBSX1ZBUklEX0VORDoKIAkJCW5mYV9hZHZhbmNlX2VuZCh3aW5zdGF0 ZSwgY3R4LCBzdGF0ZSwgZWxlbSwgY3VycmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOwogCQkJYnJl YWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCmluZGV4IDUwMDQzYzQxNmM2Li42NzcxMGE5NGEw ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKQEAgLTUxLDYgKzUxLDcgQEAgc3RhdGljIFJQ UlBhdHRlcm5Ob2RlICp0cnlVbndyYXBTaW5nbGVDaGlsZChSUFJQYXR0ZXJuTm9kZSAqcGF0dGVy bik7CiBzdGF0aWMgTGlzdCAqZmxhdHRlblNlcUNoaWxkcmVuKExpc3QgKmNoaWxkcmVuKTsKIHN0 YXRpYyBMaXN0ICptZXJnZUNvbnNlY3V0aXZlVmFycyhMaXN0ICpjaGlsZHJlbik7CiBzdGF0aWMg TGlzdCAqbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcyhMaXN0ICpjaGlsZHJlbik7CitzdGF0aWMgTGlz dCAqbWVyZ2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hpbGRyZW4pOwogc3RhdGljIExpc3QgKm1l cmdlR3JvdXBQcmVmaXhTdWZmaXgoTGlzdCAqY2hpbGRyZW4pOwogc3RhdGljIFJQUlBhdHRlcm5O b2RlICpvcHRpbWl6ZVNlcVBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pOwogCkBAIC0z NjMsNiArMzY0LDExMCBAQCBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzKExpc3QgKmNoaWxkcmVuKQog CXJldHVybiBtZXJnZWRDaGlsZHJlbjsKIH0KIAorLyoKKyAqIG1lcmdlQ29uc2VjdXRpdmVBbHRz CisgKgkJTWVyZ2UgY29uc2VjdXRpdmUgaWRlbnRpY2FsIEFMVCBub2RlcyBpbnRvIGEgR1JPVVAu CisgKgorICogRXhhbXBsZToKKyAqICAgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgLT4gKEEgfCBC KXszfQorICoKKyAqIEFmdGVyIEdST1VQezEsMX0gdW53cmFwLCBiYXJlIGFsdGVybmF0aW9ucyBs aWtlIChBIHwgQikgYmVjb21lIEFMVCBub2RlcworICogaW4gdGhlIFNFUS4gIFRoaXMgc3RlcCBk ZXRlY3RzIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBBTFQgbm9kZXMgYW5kIHdyYXBzCisgKiB0aGVt IGluIGEgR1JPVVAgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcXVhbnRpZmllci4KKyAqLworc3RhdGlj IExpc3QgKgorbWVyZ2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hpbGRyZW4pCit7CisJTGlzdENl bGwgICAqbGM7CisJTGlzdAkgICAqbWVyZ2VkQ2hpbGRyZW4gPSBOSUw7CisJUlBSUGF0dGVybk5v ZGUgKnByZXYgPSBOVUxMOworCWludAkJCWNvdW50ID0gMDsKKworCWZvcmVhY2gobGMsIGNoaWxk cmVuKQorCXsKKwkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxm aXJzdChsYyk7CisKKwkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9BTFQgJiYg Y2hpbGQtPnJlbHVjdGFudCA8IDApCisJCXsKKwkJCWlmIChwcmV2ICE9IE5VTEwgJiYKKwkJCQly cHJQYXR0ZXJuQ2hpbGRyZW5FcXVhbChwcmV2LT5jaGlsZHJlbiwgY2hpbGQtPmNoaWxkcmVuKSkK KwkJCXsKKwkJCQkvKiBTYW1lIEFMVCBhcyBwcmV2IC0gYWNjdW11bGF0ZSAqLworCQkJCWNvdW50 Kys7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJLyogRGlmZmVyZW50IEFMVCBvciBmaXJzdCBB TFQgLSBmbHVzaCBwcmV2aW91cyAqLworCQkJCWlmIChwcmV2ICE9IE5VTEwpCisJCQkJeworCQkJ CQlpZiAoY291bnQgPiAxKQorCQkJCQl7CisJCQkJCQkvKiBXcmFwIGluIEdST1VQe2NvdW50LGNv dW50fShBTFQpICovCisJCQkJCQlSUFJQYXR0ZXJuTm9kZSAqZ3JvdXAgPSBtYWtlTm9kZShSUFJQ YXR0ZXJuTm9kZSk7CisKKwkJCQkJCWdyb3VwLT5ub2RlVHlwZSA9IFJQUl9QQVRURVJOX0dST1VQ OworCQkJCQkJZ3JvdXAtPm1pbiA9IGNvdW50OworCQkJCQkJZ3JvdXAtPm1heCA9IGNvdW50Owor CQkJCQkJZ3JvdXAtPnJlbHVjdGFudCA9IC0xOworCQkJCQkJZ3JvdXAtPmxvY2F0aW9uID0gLTE7 CisJCQkJCQlncm91cC0+Y2hpbGRyZW4gPSBsaXN0X21ha2UxKHByZXYpOworCQkJCQkJbWVyZ2Vk Q2hpbGRyZW4gPSBsYXBwZW5kKG1lcmdlZENoaWxkcmVuLCBncm91cCk7CisJCQkJCX0KKwkJCQkJ ZWxzZQorCQkJCQkJbWVyZ2VkQ2hpbGRyZW4gPSBsYXBwZW5kKG1lcmdlZENoaWxkcmVuLCBwcmV2 KTsKKwkJCQl9CisJCQkJcHJldiA9IGNoaWxkOworCQkJCWNvdW50ID0gMTsKKwkJCX0KKwkJfQor CQllbHNlCisJCXsKKwkJCS8qIE5vbi1BTFQgLSBmbHVzaCBwcmV2aW91cyAqLworCQkJaWYgKHBy ZXYgIT0gTlVMTCkKKwkJCXsKKwkJCQlpZiAoY291bnQgPiAxKQorCQkJCXsKKwkJCQkJUlBSUGF0 dGVybk5vZGUgKmdyb3VwID0gbWFrZU5vZGUoUlBSUGF0dGVybk5vZGUpOworCisJCQkJCWdyb3Vw LT5ub2RlVHlwZSA9IFJQUl9QQVRURVJOX0dST1VQOworCQkJCQlncm91cC0+bWluID0gY291bnQ7 CisJCQkJCWdyb3VwLT5tYXggPSBjb3VudDsKKwkJCQkJZ3JvdXAtPnJlbHVjdGFudCA9IC0xOwor CQkJCQlncm91cC0+bG9jYXRpb24gPSAtMTsKKwkJCQkJZ3JvdXAtPmNoaWxkcmVuID0gbGlzdF9t YWtlMShwcmV2KTsKKwkJCQkJbWVyZ2VkQ2hpbGRyZW4gPSBsYXBwZW5kKG1lcmdlZENoaWxkcmVu LCBncm91cCk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJbWVyZ2VkQ2hpbGRyZW4gPSBsYXBwZW5k KG1lcmdlZENoaWxkcmVuLCBwcmV2KTsKKwkJCX0KKwkJCW1lcmdlZENoaWxkcmVuID0gbGFwcGVu ZChtZXJnZWRDaGlsZHJlbiwgY2hpbGQpOworCQkJcHJldiA9IE5VTEw7CisJCQljb3VudCA9IDA7 CisJCX0KKwl9CisKKwkvKiBGbHVzaCByZW1haW5pbmcgKi8KKwlpZiAocHJldiAhPSBOVUxMKQor CXsKKwkJaWYgKGNvdW50ID4gMSkKKwkJeworCQkJUlBSUGF0dGVybk5vZGUgKmdyb3VwID0gbWFr ZU5vZGUoUlBSUGF0dGVybk5vZGUpOworCisJCQlncm91cC0+bm9kZVR5cGUgPSBSUFJfUEFUVEVS Tl9HUk9VUDsKKwkJCWdyb3VwLT5taW4gPSBjb3VudDsKKwkJCWdyb3VwLT5tYXggPSBjb3VudDsK KwkJCWdyb3VwLT5yZWx1Y3RhbnQgPSAtMTsKKwkJCWdyb3VwLT5sb2NhdGlvbiA9IC0xOworCQkJ Z3JvdXAtPmNoaWxkcmVuID0gbGlzdF9tYWtlMShwcmV2KTsKKwkJCW1lcmdlZENoaWxkcmVuID0g bGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgZ3JvdXApOworCQl9CisJCWVsc2UKKwkJCW1lcmdlZENo aWxkcmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgcHJldik7CisJfQorCisJcmV0dXJuIG1l cmdlZENoaWxkcmVuOworfQorCiAvKgogICogbWVyZ2VHcm91cFByZWZpeFN1ZmZpeAogICoJCU1l cmdlIHNlcXVlbmNlIHByZWZpeC9zdWZmaXggaW50byBHUk9VUCB3aXRoIG1hdGNoaW5nIGNoaWxk cmVuLgpAQCAtNTI5LDggKzYzNCw5IEBAIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXgoTGlzdCAqY2hp bGRyZW4pCiAgKiAgIDEuIEZsYXR0ZW4gbmVzdGVkIFNFUSBhbmQgR1JPVVB7MSwxfQogICogICAy LiBNZXJnZSBjb25zZWN1dGl2ZSBpZGVudGljYWwgVkFSIG5vZGVzCiAgKiAgIDMuIE1lcmdlIGNv bnNlY3V0aXZlIGlkZW50aWNhbCBHUk9VUCBub2RlcwotICogICA0LiBNZXJnZSBwcmVmaXgvc3Vm Zml4IGludG8gR1JPVVAgd2l0aCBtYXRjaGluZyBjaGlsZHJlbgotICogICA1LiBVbndyYXAgc2lu Z2xlLWl0ZW0gU0VRCisgKiAgIDQuIE1lcmdlIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBBTFQgbm9k ZXMgaW50byBHUk9VUAorICogICA1LiBNZXJnZSBwcmVmaXgvc3VmZml4IGludG8gR1JPVVAgd2l0 aCBtYXRjaGluZyBjaGlsZHJlbgorICogICA2LiBVbndyYXAgc2luZ2xlLWl0ZW0gU0VRCiAgKi8K IHN0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqCiBvcHRpbWl6ZVNlcVBhdHRlcm4oUlBSUGF0dGVybk5v ZGUgKnBhdHRlcm4pCkBAIC01NDQsNiArNjUwLDkgQEAgb3B0aW1pemVTZXFQYXR0ZXJuKFJQUlBh dHRlcm5Ob2RlICpwYXR0ZXJuKQogCS8qIE1lcmdlIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBHUk9V UCBub2RlcyAqLwogCXBhdHRlcm4tPmNoaWxkcmVuID0gbWVyZ2VDb25zZWN1dGl2ZUdyb3Vwcyhw YXR0ZXJuLT5jaGlsZHJlbik7CiAKKwkvKiBNZXJnZSBjb25zZWN1dGl2ZSBpZGVudGljYWwgQUxU IG5vZGVzIGludG8gR1JPVVAgKi8KKwlwYXR0ZXJuLT5jaGlsZHJlbiA9IG1lcmdlQ29uc2VjdXRp dmVBbHRzKHBhdHRlcm4tPmNoaWxkcmVuKTsKKwogCS8qIE1lcmdlIHByZWZpeC9zdWZmaXggaW50 byBHUk9VUCB3aXRoIG1hdGNoaW5nIGNoaWxkcmVuICovCiAJcGF0dGVybi0+Y2hpbGRyZW4gPSBt ZXJnZUdyb3VwUHJlZml4U3VmZml4KHBhdHRlcm4tPmNoaWxkcmVuKTsKIApAQCAtNjY1LDEyICs3 NzQsMTcgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybikK IAlpbnQ2NAkJbmV3X21pbl82NDsKIAlpbnQ2NAkJbmV3X21heF82NDsKIAotCWlmIChsaXN0X2xl bmd0aChwYXR0ZXJuLT5jaGlsZHJlbikgIT0gMSB8fCBwYXR0ZXJuLT5yZWx1Y3RhbnQgPj0gMCkK KwkvKiBQYXJzZXIgYWx3YXlzIGNyZWF0ZXMgR1JPVVAgd2l0aCBleGFjdGx5IG9uZSBjaGlsZCAq LworCUFzc2VydChsaXN0X2xlbmd0aChwYXR0ZXJuLT5jaGlsZHJlbikgPT0gMSk7CisKKwlpZiAo cGF0dGVybi0+cmVsdWN0YW50ID49IDApCiAJCXJldHVybiBwYXR0ZXJuOwogCiAJY2hpbGQgPSAo UlBSUGF0dGVybk5vZGUgKikgbGluaXRpYWwocGF0dGVybi0+Y2hpbGRyZW4pOwogCi0JaWYgKGNo aWxkLT5ub2RlVHlwZSAhPSBSUFJfUEFUVEVSTl9WQVIgfHwgY2hpbGQtPnJlbHVjdGFudCA+PSAw KQorCWlmICgoY2hpbGQtPm5vZGVUeXBlICE9IFJQUl9QQVRURVJOX1ZBUiAmJgorCQkgY2hpbGQt Pm5vZGVUeXBlICE9IFJQUl9QQVRURVJOX0dST1VQKSB8fAorCQljaGlsZC0+cmVsdWN0YW50ID49 IDApCiAJCXJldHVybiBwYXR0ZXJuOwogCiAJLyogQ2FzZSAxOiBCb3RoIHVuYm91bmRlZCAtIChB KikqIC0+IEEqLCAoQSspKyAtPiBBKyAqLwpAQCAtODkwLDYgKzEwMDQsMTAgQEAgc2NhblJQUlBh dHRlcm5SZWN1cnNpdmUoUlBSUGF0dGVybk5vZGUgKm5vZGUsIGNoYXIgKip2YXJOYW1lcywgaW50 ICpudW1WYXJzLAogCQkJYnJlYWs7CiAKIAkJY2FzZSBSUFJfUEFUVEVSTl9HUk9VUDoKKwkJCS8q IEFkZCBCRUdJTiBlbGVtZW50IGlmIGdyb3VwIGhhcyBub24tdHJpdmlhbCBxdWFudGlmaWVyICov CisJCQlpZiAobm9kZS0+bWluICE9IDEgfHwgbm9kZS0+bWF4ICE9IDEpCisJCQkJKCpudW1FbGVt ZW50cykrKzsKKwogCQkJLyogUmVjdXJzZSBpbnRvIGNoaWxkcmVuIGF0IGluY3JlYXNlZCBkZXB0 aCAqLwogCQkJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCiAJCQl7CkBAIC0xMDI4LDM4ICsx MTQ2LDUxIEBAIGZpbGxSUFJQYXR0ZXJuR3JvdXAoUlBSUGF0dGVybk5vZGUgKm5vZGUsIFJQUlBh dHRlcm4gKnBhdCwgaW50ICppZHgsIFJQUkRlcHRoIGRlCiB7CiAJTGlzdENlbGwgICAqbGM7CiAJ aW50CQkJZ3JvdXBTdGFydElkeCA9ICppZHg7Ci0JYm9vbAkJYWx0T25seUNoaWxkOwotCVJQUkRl cHRoCWNoaWxkRGVwdGg7Ci0KLQkvKgotCSAqIEZpbGwgZ3JvdXAgY29udGVudCBhdCBpbmNyZWFz ZWQgZGVwdGguIEV4Y2VwdGlvbjogaWYgdGhlIG9ubHkgY2hpbGQgaXMKLQkgKiBBTFQsIGRvbid0 IGluY3JlYXNlIGRlcHRoIHNpbmNlIEdST1VQJ3MgcGFyZW5zIGFscmVhZHkgcHJvdmlkZSB2aXN1 YWwKLQkgKiBncm91cGluZy4gVGhpcyBhdm9pZHMgb3V0cHV0IGxpa2UgIigoYSB8IGIpKSsiIGlu c3RlYWQgb2YgIihhIHwgYikrIi4KLQkgKi8KLQlhbHRPbmx5Q2hpbGQgPSAobGlzdF9sZW5ndGgo bm9kZS0+Y2hpbGRyZW4pID09IDEgJiYKLQkJCQkJKChSUFJQYXR0ZXJuTm9kZSAqKSBsaW5pdGlh bChub2RlLT5jaGlsZHJlbikpLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9BTFQpOwotCWNoaWxk RGVwdGggPSBhbHRPbmx5Q2hpbGQgPyBkZXB0aCA6IGRlcHRoICsgMTsKKwlpbnQJCQliZWdpbklk eCA9IC0xOwogCi0JZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCi0JewotCQlmaWxsUlBSUGF0 dGVybigoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKSwgcGF0LCBpZHgsIGNoaWxkRGVwdGgp OwotCX0KLQotCS8qIEFkZCBncm91cCBlbmQgbWFya2VyIGlmIGdyb3VwIGhhcyBub24tdHJpdmlh bCBxdWFudGlmaWVyICovCisJLyogQWRkIEJFR0lOIG1hcmtlciBpZiBncm91cCBoYXMgbm9uLXRy aXZpYWwgcXVhbnRpZmllciAqLwogCWlmIChub2RlLT5taW4gIT0gMSB8fCBub2RlLT5tYXggIT0g MSkKIAl7CiAJCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtID0gJnBhdC0+ZWxlbWVudHNbKmlkeF07 CiAKKwkJYmVnaW5JZHggPSAqaWR4OwogCQltZW1zZXQoZWxlbSwgMCwgc2l6ZW9mKFJQUlBhdHRl cm5FbGVtZW50KSk7Ci0JCWVsZW0tPnZhcklkID0gUlBSX1ZBUklEX0VORDsKKwkJZWxlbS0+dmFy SWQgPSBSUFJfVkFSSURfQkVHSU47CiAJCWVsZW0tPmRlcHRoID0gZGVwdGg7CiAJCWVsZW0tPm1p biA9IG5vZGUtPm1pbjsKIAkJZWxlbS0+bWF4ID0gKG5vZGUtPm1heCA9PSBJTlRfTUFYKSA/IFJQ Ul9RVUFOVElUWV9JTkYgOiBub2RlLT5tYXg7Ci0JCWVsZW0tPm5leHQgPSBSUFJfRUxFTUlEWF9J TlZBTElEOwotCQllbGVtLT5qdW1wID0gZ3JvdXBTdGFydElkeDsKKwkJZWxlbS0+bmV4dCA9IFJQ Ul9FTEVNSURYX0lOVkFMSUQ7CS8qIHNldCBieSBmaW5hbGl6ZSAqLworCQllbGVtLT5qdW1wID0g UlBSX0VMRU1JRFhfSU5WQUxJRDsJLyogc2V0IGFmdGVyIEVORCAqLwogCQlpZiAobm9kZS0+cmVs dWN0YW50ID49IDApCiAJCQllbGVtLT5mbGFncyB8PSBSUFJfRUxFTV9SRUxVQ1RBTlQ7CiAJCSgq aWR4KSsrOworCQlncm91cFN0YXJ0SWR4ID0gKmlkeDsJLyogY2hpbGRyZW4gc3RhcnQgYWZ0ZXIg QkVHSU4gKi8KKwl9CisKKwlmb3JlYWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwl7CisJCWZpbGxS UFJQYXR0ZXJuKChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpLCBwYXQsIGlkeCwgZGVwdGgg KyAxKTsKKwl9CisKKwkvKiBBZGQgZ3JvdXAgZW5kIG1hcmtlciBpZiBncm91cCBoYXMgbm9uLXRy aXZpYWwgcXVhbnRpZmllciAqLworCWlmIChub2RlLT5taW4gIT0gMSB8fCBub2RlLT5tYXggIT0g MSkKKwl7CisJCVJQUlBhdHRlcm5FbGVtZW50ICpiZWdpbkVsZW0gPSAmcGF0LT5lbGVtZW50c1ti ZWdpbklkeF07CisJCVJQUlBhdHRlcm5FbGVtZW50ICplbmRFbGVtID0gJnBhdC0+ZWxlbWVudHNb KmlkeF07CisKKwkJbWVtc2V0KGVuZEVsZW0sIDAsIHNpemVvZihSUFJQYXR0ZXJuRWxlbWVudCkp OworCQllbmRFbGVtLT52YXJJZCA9IFJQUl9WQVJJRF9FTkQ7CisJCWVuZEVsZW0tPmRlcHRoID0g ZGVwdGg7CisJCWVuZEVsZW0tPm1pbiA9IG5vZGUtPm1pbjsKKwkJZW5kRWxlbS0+bWF4ID0gKG5v ZGUtPm1heCA9PSBJTlRfTUFYKSA/IFJQUl9RVUFOVElUWV9JTkYgOiBub2RlLT5tYXg7CisJCWVu ZEVsZW0tPm5leHQgPSBSUFJfRUxFTUlEWF9JTlZBTElEOworCQllbmRFbGVtLT5qdW1wID0gZ3Jv dXBTdGFydElkeDsJCS8qIGxvb3AgdG8gZmlyc3QgY2hpbGQgKi8KKwkJaWYgKG5vZGUtPnJlbHVj dGFudCA+PSAwKQorCQkJZW5kRWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fUkVMVUNUQU5UOworCQko KmlkeCkrKzsKKworCQkvKiBTZXQgQkVHSU4gc2tpcCBwb2ludGVyIChuZXh0IGlzIHNldCBieSBm aW5hbGl6ZSkgKi8KKwkJYmVnaW5FbGVtLT5qdW1wID0gKmlkeDsJCQkJLyogc2tpcDogZ28gdG8g YWZ0ZXIgRU5EICovCiAJfQogfQogCkBAIC0xMDk3LDkgKzEyMjgsNyBAQCBmaWxsUlBSUGF0dGVy bkFsdChSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQgKmlkeCwgUlBS RGVwdGggZGVwdAogCiAJCWFsdEJyYW5jaFN0YXJ0cyA9IGxhcHBlbmRfaW50KGFsdEJyYW5jaFN0 YXJ0cywgYnJhbmNoU3RhcnQpOwogCQlmaWxsUlBSUGF0dGVybihhbHQsIHBhdCwgaWR4LCBkZXB0 aCArIDEpOwotCi0JCWlmICgqaWR4ID4gYnJhbmNoU3RhcnQpCi0JCQlhbHRFbmRQb3NpdGlvbnMg PSBsYXBwZW5kX2ludChhbHRFbmRQb3NpdGlvbnMsICppZHggLSAxKTsKKwkJYWx0RW5kUG9zaXRp b25zID0gbGFwcGVuZF9pbnQoYWx0RW5kUG9zaXRpb25zLCAqaWR4IC0gMSk7CiAJfQogCiAJLyog U2V0IGp1bXAgb24gZmlyc3QgZWxlbWVudCBvZiBlYWNoIGFsdGVybmF0aXZlIHRvIG5leHQgYWx0 ZXJuYXRpdmUgKi8KQEAgLTExMTQsMTMgKzEyNDMsMzUgQEAgZmlsbFJQUlBhdHRlcm5BbHQoUlBS UGF0dGVybk5vZGUgKm5vZGUsIFJQUlBhdHRlcm4gKnBhdCwgaW50ICppZHgsIFJQUkRlcHRoIGRl cHQKIAkvKiBTZXQgbmV4dCBvbiBsYXN0IGVsZW1lbnQgb2YgZWFjaCBhbHRlcm5hdGl2ZSB0byBh ZnRlciB0aGUgYWx0ZXJuYXRpb24gKi8KIAl7CiAJCWludAkJCWFmdGVyQWx0SWR4ID0gKmlkeDsK KwkJTGlzdENlbGwgICAqbGMyID0gbGlzdF9oZWFkKGFsdEJyYW5jaFN0YXJ0cyk7CiAKIAkJZm9y ZWFjaChsYywgYWx0RW5kUG9zaXRpb25zKQogCQl7CiAJCQlpbnQJCQllbmRQb3MgPSBsZmlyc3Rf aW50KGxjKTsKKwkJCWludAkJCWJyYW5jaFN0YXJ0ID0gbGZpcnN0X2ludChsYzIpOworCisJCQlp ZiAocGF0LT5lbGVtZW50c1tlbmRQb3NdLm5leHQgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCkKKwkJ CXsKKwkJCQkvKgorCQkJCSAqIEFuIGlubmVyIEFMVCBhbHJlYWR5IHNldCBuZXh0IG9uIHRoaXMg ZWxlbWVudC4gIFJlZGlyZWN0CisJCQkJICogYWxsIGVsZW1lbnRzIGluIHRoaXMgYnJhbmNoIHRo YXQgc2hhcmUgdGhlIHNhbWUgdGFyZ2V0IHRvCisJCQkJICogcG9pbnQgdG8gYWZ0ZXIgdGhpcyBB TFQgaW5zdGVhZC4KKwkJCQkgKi8KKwkJCQlpbnQJCQlvbGRUYXJnZXQgPSBwYXQtPmVsZW1lbnRz W2VuZFBvc10ubmV4dDsKKwkJCQlpbnQJCQlqOworCisJCQkJZm9yIChqID0gYnJhbmNoU3RhcnQ7 IGogPD0gZW5kUG9zOyBqKyspCisJCQkJeworCQkJCQlpZiAocGF0LT5lbGVtZW50c1tqXS5uZXh0 ID09IG9sZFRhcmdldCkKKwkJCQkJCXBhdC0+ZWxlbWVudHNbal0ubmV4dCA9IGFmdGVyQWx0SWR4 OworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlwYXQtPmVsZW1lbnRzW2VuZFBvc10u bmV4dCA9IGFmdGVyQWx0SWR4OworCQkJfQogCi0JCQlBc3NlcnQocGF0LT5lbGVtZW50c1tlbmRQ b3NdLm5leHQgPT0gUlBSX0VMRU1JRFhfSU5WQUxJRCk7Ci0JCQlwYXQtPmVsZW1lbnRzW2VuZFBv c10ubmV4dCA9IGFmdGVyQWx0SWR4OworCQkJbGMyID0gbG5leHQoYWx0QnJhbmNoU3RhcnRzLCBs YzIpOwogCQl9CiAJfQogCkBAIC0xNDUxLDkgKzE2MDIsMTggQEAgY29tcHV0ZUFic29yYmFiaWxp dHlSZWN1cnNpdmUoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBzdGFydElkeCwKIAkJ aWYgKCpoYXNBYnNvcmJhYmxlKQogCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJM RV9CUkFOQ0g7CiAJfQorCWVsc2UgaWYgKFJQUkVsZW1Jc0JlZ2luKGVsZW0pKQorCXsKKwkJLyog QkVHSU46IHNraXAgdG8gZmlyc3QgY2hpbGQgYW5kIGNoZWNrIHRoYXQgKi8KKwkJY29tcHV0ZUFi c29yYmFiaWxpdHlSZWN1cnNpdmUocGF0dGVybiwgZWxlbS0+bmV4dCwgaGFzQWJzb3JiYWJsZSwg cGFyZW50RGVwdGgpOworCisJCS8qIE1hcmsgQkVHSU4gZWxlbWVudCBpZiBjb250ZW50cyBhcmUg YWJzb3JiYWJsZSAqLworCQlpZiAoKmhhc0Fic29yYmFibGUpCisJCQllbGVtLT5mbGFncyB8PSBS UFJfRUxFTV9BQlNPUkJBQkxFX0JSQU5DSDsKKwl9CiAJZWxzZQogCXsKLQkJLyogTm9uLUFMVDog Y2hlY2sgaWYgdW5ib3VuZGVkIHN0YXJ0ICovCisJCS8qIE5vbi1BTFQsIG5vbi1CRUdJTjogY2hl Y2sgaWYgdW5ib3VuZGVkIHN0YXJ0ICovCiAJCWlmIChpc1VuYm91bmRlZFN0YXJ0KHBhdHRlcm4s IHN0YXJ0SWR4LCBwYXJlbnREZXB0aCkpCiAJCXsKIAkJCSpoYXNBYnNvcmJhYmxlID0gdHJ1ZTsK QEAgLTE1MjEsOCArMTY4MSw4IEBAIGNvbGxlY3RQYXR0ZXJuVmFyaWFibGVzKFJQUlBhdHRlcm5O b2RlICpwYXR0ZXJuKQogewogCUxpc3QJICAgKnZhck5hbWVzID0gTklMOwogCi0JaWYgKHBhdHRl cm4gPT0gTlVMTCkKLQkJcmV0dXJuIE5JTDsKKwkvKiBDYWxsZXIgZW5zdXJlcyBwYXR0ZXJuIGlz IG5vdCBOVUxMICovCisJQXNzZXJ0KHBhdHRlcm4gIT0gTlVMTCk7CiAKIAljb2xsZWN0UGF0dGVy blZhcmlhYmxlc1JlY3Vyc2l2ZShwYXR0ZXJuLCAmdmFyTmFtZXMpOwogCXJldHVybiB2YXJOYW1l czsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IGRiZDY2N2ZjNTFhLi5jYTdkMGQyNWRiMyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CkBAIC0xNjkyMiw2ICsxNjkyMiw3IEBAIHJvd19wYXR0ZXJuX2FsdDoKIAkJCQkJCW4tPmNoaWxk cmVuID0gbGlzdF9tYWtlMigkMSwgJDMpOwogCQkJCQkJbi0+bWluID0gMTsKIAkJCQkJCW4tPm1h eCA9IDE7CisJCQkJCQluLT5yZWx1Y3RhbnQgPSAtMTsKIAkJCQkJCW4tPmxvY2F0aW9uID0gQDE7 CiAJCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJCX0KQEAgLTE2OTQ4LDYgKzE2OTQ5LDcgQEAg cm93X3BhdHRlcm5fc2VxOgogCQkJCQkJbi0+Y2hpbGRyZW4gPSBsaXN0X21ha2UyKCQxLCAkMik7 CiAJCQkJCQluLT5taW4gPSAxOwogCQkJCQkJbi0+bWF4ID0gMTsKKwkJCQkJCW4tPnJlbHVjdGFu dCA9IC0xOwogCQkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAkJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQkJfQpAQCAtMTY5NzUsNyArMTY5NzcsNyBAQCByb3dfcGF0dGVybl9wcmltYXJ5OgogCQkJ CQluLT52YXJOYW1lID0gJDE7CiAJCQkJCW4tPm1pbiA9IDE7CiAJCQkJCW4tPm1heCA9IDE7Ci0J CQkJCW4tPnJlbHVjdGFudCA9IGZhbHNlOworCQkJCQluLT5yZWx1Y3RhbnQgPSAtMTsKIAkJCQkJ bi0+Y2hpbGRyZW4gPSBOSUw7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKQEAgLTE2OTg4LDcgKzE2OTkwLDcgQEAgcm93X3BhdHRlcm5fcHJpbWFyeToKIAkJ CQkJbi0+Y2hpbGRyZW4gPSBsaXN0X21ha2UxKGlubmVyKTsKIAkJCQkJbi0+bWluID0gMTsKIAkJ CQkJbi0+bWF4ID0gMTsKLQkJCQkJbi0+cmVsdWN0YW50ID0gZmFsc2U7CisJCQkJCW4tPnJlbHVj dGFudCA9IC0xOwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGE3YWRiYTYxNmU2Li4wZDll MmUwMDRlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtNjc3Niw4ICs2Nzc2LDEy IEBAIGFwcGVuZF9wYXR0ZXJuX3F1YW50aWZpZXIoU3RyaW5nSW5mbyBidWYsIFJQUlBhdHRlcm5O b2RlICpub2RlKQogCWVsc2UKIAkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ7JWQsJWR9Iiwgbm9k ZS0+bWluLCBub2RlLT5tYXgpOwogCi0JaWYgKG5vZGUtPnJlbHVjdGFudCA+PSAwICYmIGhhc19x dWFudGlmaWVyKQorCWlmIChub2RlLT5yZWx1Y3RhbnQgPj0gMCkKKwl7CisJCWlmICghaGFzX3F1 YW50aWZpZXIpCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInsxfSIpOwkvKiBtYWtlIHJlbHVj dGFudCA/IHVuYW1iaWd1b3VzICovCiAJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJz8nKTsK Kwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmggYi9z cmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKaW5kZXggNjkxYzZjMjdlOTcuLjhlMWJjNDc2NDNj IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKKysrIGIvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3Jwci5oCkBAIC0xNywxNiArMTcsMTggQEAKICNpbmNsdWRlICJub2Rlcy9w bGFubm9kZXMuaCIKIAogLyogTGltaXRzIGFuZCBzcGVjaWFsIHZhbHVlcyAqLwotI2RlZmluZSBS UFJfVkFSSURfTUFYCQkyNTIgLyogbWF4IHBhdHRlcm4gdmFyaWFibGVzOiAyNTIgKi8KKyNkZWZp bmUgUlBSX1ZBUklEX01BWAkJMjUxIC8qIG1heCBwYXR0ZXJuIHZhcmlhYmxlczogMjUxICovCiAj ZGVmaW5lIFJQUl9RVUFOVElUWV9JTkYJSU5UMzJfTUFYCS8qIHVuYm91bmRlZCBxdWFudGlmaWVy ICovCiAjZGVmaW5lIFJQUl9DT1VOVF9NQVgJCUlOVDMyX01BWAkvKiBtYXggcnVudGltZSBjb3Vu dCAoTkZBIHN0YXRlKSAqLwogI2RlZmluZSBSUFJfRUxFTUlEWF9NQVgJCUlOVDE2X01BWAkvKiBt YXggcGF0dGVybiBlbGVtZW50cyAqLwogI2RlZmluZSBSUFJfRUxFTUlEWF9JTlZBTElECSgoUlBS RWxlbUlkeCkgLTEpCS8qIGludmFsaWQgaW5kZXggKi8KLSNkZWZpbmUgUlBSX0RFUFRIX01BWAkJ VUlOVDhfTUFYCS8qIG1heCBwYXR0ZXJuIG5lc3RpbmcgZGVwdGggKi8KKyNkZWZpbmUgUlBSX0RF UFRIX01BWAkJKFVJTlQ4X01BWCAtIDEpCS8qIG1heCBwYXR0ZXJuIG5lc3RpbmcgZGVwdGg6IDI1 NCAqLworI2RlZmluZSBSUFJfREVQVEhfTk9ORQkJVUlOVDhfTUFYCS8qIG5vIGVuY2xvc2luZyBn cm91cCAodG9wLWxldmVsKSAqLwogCi0vKiBTcGVjaWFsIHZhcklkIHZhbHVlcyBmb3IgY29udHJv bCBlbGVtZW50cyAoMjUzLTI1NSkgKi8KLSNkZWZpbmUgUlBSX1ZBUklEX0FMVAkJKChSUFJWYXJJ ZCkgMjUzKQkvKiBhbHRlcm5hdGlvbiBzdGFydCAqLwotI2RlZmluZSBSUFJfVkFSSURfRU5ECQko KFJQUlZhcklkKSAyNTQpCS8qIGdyb3VwIGVuZCAqLworLyogU3BlY2lhbCB2YXJJZCB2YWx1ZXMg Zm9yIGNvbnRyb2wgZWxlbWVudHMgKDI1Mi0yNTUpICovCisjZGVmaW5lIFJQUl9WQVJJRF9CRUdJ TgkJKChSUFJWYXJJZCkgMjUyKQkvKiBncm91cCBiZWdpbiAqLworI2RlZmluZSBSUFJfVkFSSURf RU5ECQkoKFJQUlZhcklkKSAyNTMpCS8qIGdyb3VwIGVuZCAqLworI2RlZmluZSBSUFJfVkFSSURf QUxUCQkoKFJQUlZhcklkKSAyNTQpCS8qIGFsdGVybmF0aW9uIHN0YXJ0ICovCiAjZGVmaW5lIFJQ Ul9WQVJJRF9GSU4JCSgoUlBSVmFySWQpIDI1NSkJLyogcGF0dGVybiBmaW5pc2ggKi8KIAogLyog RWxlbWVudCBmbGFncyAqLwpAQCAtNDAsOCArNDIsOSBAQAogI2RlZmluZSBSUFJFbGVtSXNBYnNv cmJhYmxlQnJhbmNoKGUpCSgoZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gp CiAjZGVmaW5lIFJQUkVsZW1Jc0Fic29yYmFibGUoZSkJCQkoKGUpLT5mbGFncyAmIFJQUl9FTEVN X0FCU09SQkFCTEUpCiAjZGVmaW5lIFJQUkVsZW1Jc1ZhcihlKQkJCSgoZSktPnZhcklkIDw9IFJQ Ul9WQVJJRF9NQVgpCi0jZGVmaW5lIFJQUkVsZW1Jc0FsdChlKQkJCSgoZSktPnZhcklkID09IFJQ Ul9WQVJJRF9BTFQpCisjZGVmaW5lIFJQUkVsZW1Jc0JlZ2luKGUpCQkoKGUpLT52YXJJZCA9PSBS UFJfVkFSSURfQkVHSU4pCiAjZGVmaW5lIFJQUkVsZW1Jc0VuZChlKQkJCSgoZSktPnZhcklkID09 IFJQUl9WQVJJRF9FTkQpCisjZGVmaW5lIFJQUkVsZW1Jc0FsdChlKQkJCSgoZSktPnZhcklkID09 IFJQUl9WQVJJRF9BTFQpCiAjZGVmaW5lIFJQUkVsZW1Jc0ZpbihlKQkJCSgoZSktPnZhcklkID09 IFJQUl9WQVJJRF9GSU4pCiAjZGVmaW5lIFJQUkVsZW1DYW5Ta2lwKGUpCQkoKGUpLT5taW4gPT0g MCkKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IGQ0Mjk4ODYwODY1Li44YzhmZjkw ZTFjZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMjcyNCw4ICsyNzI0LDggQEAg U0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywg bGFzdF92YWx1ZShwcmljZSkgT1ZFUgogRVJST1I6ICByZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJl IG5vdCB5ZXQgc3VwcG9ydGVkCiBMSU5FIDk6ICBQQVRURVJOIChTVEFSVCBVUCs/IERPV04rKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gTWF4aW11bSBwYXR0ZXJuIHZhcmlhYmxl cyBpcyAyNTIgKFJQUl9WQVJJRF9NQVgpCi0tLSBPazogMjUyIHZhcmlhYmxlcyAobWF4aW11bSBh bGxvd2VkKQorLS0gTWF4aW11bSBwYXR0ZXJuIHZhcmlhYmxlcyBpcyAyNTEgKFJQUl9WQVJJRF9N QVgpCistLSBFcnJvcjogMjUyIHZhcmlhYmxlcyBleGNlZWRzIGxpbWl0IG9mIDI1MQogRE8gJCQK IERFQ0xBUkUKICAgICBwYXR0ZXJuX3ZhcnMgdGV4dDsKQEAgLTI3NDUsNyArMjc0NSwxNCBAQCBC RUdJTgogICAgIEVYRUNVVEUgcXVlcnk7CiBFTkQ7CiAkJDsKLS0tIEVycm9yOiAyNTMgdmFyaWFi bGVzIGV4Y2VlZHMgbGltaXQgb2YgMjUyCitFUlJPUjogIHRvbyBtYW55IHBhdHRlcm4gdmFyaWFi bGVzCitERVRBSUw6ICBNYXhpbXVtIGlzIDI1MS4KK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJT RUxFQ1QgKiBGUk9NIChTRUxFQ1QgMSBBUyB4KSB0IFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBB VFRFUk4gKHYwMDEgdjAwMiB2MDAzIHYwMDQgdjAwNSB2MDA2IHYwMDcgdjAwOCB2MDA5IHYwMTAg djAxMSB2MDEyIHYwMTMgdjAxNCB2MDE1IHYwMTYgdjAxNyB2MDE4IHYwMTkgdjAyMCB2MDIxIHYw MjIgdjAyMyB2MDI0IHYwMjUgdjAyNiB2MDI3IHYwMjggdjAyOSB2MDMwIHYwMzEgdjAzMiB2MDMz IHYwMzQgdjAzNSB2MDM2IHYwMzcgdjAzOCB2MDM5IHYwNDAgdjA0MSB2MDQyIHYwNDMgdjA0NCB2 MDQ1IHYwNDYgdjA0NyB2MDQ4IHYwNDkgdjA1MCB2MDUxIHYwNTIgdjA1MyB2MDU0IHYwNTUgdjA1 NiB2MDU3IHYwNTggdjA1OSB2MDYwIHYwNjEgdjA2MiB2MDYzIHYwNjQgdjA2NSB2MDY2IHYwNjcg djA2OCB2MDY5IHYwNzAgdjA3MSB2MDcyIHYwNzMgdjA3NCB2MDc1IHYwNzYgdjA3NyB2MDc4IHYw NzkgdjA4MCB2MDgxIHYwODIgdjA4MyB2MDg0IHYwODUgdjA4NiB2MDg3IHYwODggdjA4OSB2MDkw IHYwOTEgdjA5MiB2MDkzIHYwOTQgdjA5NSB2MDk2IHYwOTcgdjA5OCB2MDk5IHYxMDAgdjEwMSB2 MTAyIHYxMDMgdjEwNCB2MTA1IHYxMDYgdjEwNyB2MTA4IHYxMDkgdjExMCB2MTExIHYxMTIgdjEx MyB2MTE0IHYxMTUgdjExNiB2MTE3IHYxMTggdjExOSB2MTIwIHYxMjEgdjEyMiB2MTIzIHYxMjQg djEyNSB2MTI2IHYxMjcgdjEyOCB2MTI5IHYxMzAgdjEzMSB2MTMyIHYxMzMgdjEzNCB2MTM1IHYx MzYgdjEzNyB2MTM4IHYxMzkgdjE0MCB2MTQxIHYxNDIgdjE0MyB2MTQ0IHYxNDUgdjE0NiB2MTQ3 IHYxNDggdjE0OSB2MTUwIHYxNTEgdjE1MiB2MTUzIHYxNTQgdjE1NSB2MTU2IHYxNTcgdjE1OCB2 MTU5IHYxNjAgdjE2MSB2MTYyIHYxNjMgdjE2NCB2MTY1IHYxNjYgdjE2NyB2MTY4IHYxNjkgdjE3 MCB2MTcxIHYxNzIgdjE3MyB2MTc0IHYxNzUgdjE3NiB2MTc3IHYxNzggdjE3OSB2MTgwIHYxODEg djE4MiB2MTgzIHYxODQgdjE4NSB2MTg2IHYxODcgdjE4OCB2MTg5IHYxOTAgdjE5MSB2MTkyIHYx OTMgdjE5NCB2MTk1IHYxOTYgdjE5NyB2MTk4IHYxOTkgdjIwMCB2MjAxIHYyMDIgdjIwMyB2MjA0 IHYyMDUgdjIwNiB2MjA3IHYyMDggdjIwOSB2MjEwIHYyMTEgdjIxMiB2MjEzIHYyMTQgdjIxNSB2 MjE2IHYyMTcgdjIxOCB2MjE5IHYyMjAgdjIyMSB2MjIyIHYyMjMgdjIyNCB2MjI1IHYyMjYgdjIy NyB2MjI4IHYyMjkgdjIzMCB2MjMxIHYyMzIgdjIzMyB2MjM0IHYyMzUgdjIzNiB2MjM3IHYyMzgg djIzOSB2MjQwIHYyNDEgdjI0MiB2MjQzIHYyNDQgdjI0NSB2MjQ2IHYyNDcgdjI0OCB2MjQ5IHYy NTAgdjI1MSB2MjUyKQorICAgICAgICBERUZJTkUgdjAwMSBBUyBUUlVFLCB2MDAyIEFTIFRSVUUs IHYwMDMgQVMgVFJVRSwgdjAwNCBBUyBUUlVFLCB2MDA1IEFTIFRSVUUsIHYwMDYgQVMgVFJVRSwg djAwNyBBUyBUUlVFLCB2MDA4IEFTIFRSVUUsIHYwMDkgQVMgVFJVRSwgdjAxMCBBUyBUUlVFLCB2 MDExIEFTIFRSVUUsIHYwMTIgQVMgVFJVRSwgdjAxMyBBUyBUUlVFLCB2MDE0IEFTIFRSVUUsIHYw MTUgQVMgVFJVRSwgdjAxNiBBUyBUUlVFLCB2MDE3IEFTIFRSVUUsIHYwMTggQVMgVFJVRSwgdjAx OSBBUyBUUlVFLCB2MDIwIEFTIFRSVUUsIHYwMjEgQVMgVFJVRSwgdjAyMiBBUyBUUlVFLCB2MDIz IEFTIFRSVUUsIHYwMjQgQVMgVFJVRSwgdjAyNSBBUyBUUlVFLCB2MDI2IEFTIFRSVUUsIHYwMjcg QVMgVFJVRSwgdjAyOCBBUyBUUlVFLCB2MDI5IEFTIFRSVUUsIHYwMzAgQVMgVFJVRSwgdjAzMSBB UyBUUlVFLCB2MDMyIEFTIFRSVUUsIHYwMzMgQVMgVFJVRSwgdjAzNCBBUyBUUlVFLCB2MDM1IEFT IFRSVUUsIHYwMzYgQVMgVFJVRSwgdjAzNyBBUyBUUlVFLCB2MDM4IEFTIFRSVUUsIHYwMzkgQVMg VFJVRSwgdjA0MCBBUyBUUlVFLCB2MDQxIEFTIFRSVUUsIHYwNDIgQVMgVFJVRSwgdjA0MyBBUyBU UlVFLCB2MDQ0IEFTIFRSVUUsIHYwNDUgQVMgVFJVRSwgdjA0NiBBUyBUUlVFLCB2MDQ3IEFTIFRS VUUsIHYwNDggQVMgVFJVRSwgdjA0OSBBUyBUUlVFLCB2MDUwIEFTIFRSVUUsIHYwNTEgQVMgVFJV RSwgdjA1MiBBUyBUUlVFLCB2MDUzIEFTIFRSVUUsIHYwNTQgQVMgVFJVRSwgdjA1NSBBUyBUUlVF LCB2MDU2IEFTIFRSVUUsIHYwNTcgQVMgVFJVRSwgdjA1OCBBUyBUUlVFLCB2MDU5IEFTIFRSVUUs IHYwNjAgQVMgVFJVRSwgdjA2MSBBUyBUUlVFLCB2MDYyIEFTIFRSVUUsIHYwNjMgQVMgVFJVRSwg djA2NCBBUyBUUlVFLCB2MDY1IEFTIFRSVUUsIHYwNjYgQVMgVFJVRSwgdjA2NyBBUyBUUlVFLCB2 MDY4IEFTIFRSVUUsIHYwNjkgQVMgVFJVRSwgdjA3MCBBUyBUUlVFLCB2MDcxIEFTIFRSVUUsIHYw NzIgQVMgVFJVRSwgdjA3MyBBUyBUUlVFLCB2MDc0IEFTIFRSVUUsIHYwNzUgQVMgVFJVRSwgdjA3 NiBBUyBUUlVFLCB2MDc3IEFTIFRSVUUsIHYwNzggQVMgVFJVRSwgdjA3OSBBUyBUUlVFLCB2MDgw IEFTIFRSVUUsIHYwODEgQVMgVFJVRSwgdjA4MiBBUyBUUlVFLCB2MDgzIEFTIFRSVUUsIHYwODQg QVMgVFJVRSwgdjA4NSBBUyBUUlVFLCB2MDg2IEFTIFRSVUUsIHYwODcgQVMgVFJVRSwgdjA4OCBB UyBUUlVFLCB2MDg5IEFTIFRSVUUsIHYwOTAgQVMgVFJVRSwgdjA5MSBBUyBUUlVFLCB2MDkyIEFT IFRSVUUsIHYwOTMgQVMgVFJVRSwgdjA5NCBBUyBUUlVFLCB2MDk1IEFTIFRSVUUsIHYwOTYgQVMg VFJVRSwgdjA5NyBBUyBUUlVFLCB2MDk4IEFTIFRSVUUsIHYwOTkgQVMgVFJVRSwgdjEwMCBBUyBU UlVFLCB2MTAxIEFTIFRSVUUsIHYxMDIgQVMgVFJVRSwgdjEwMyBBUyBUUlVFLCB2MTA0IEFTIFRS VUUsIHYxMDUgQVMgVFJVRSwgdjEwNiBBUyBUUlVFLCB2MTA3IEFTIFRSVUUsIHYxMDggQVMgVFJV RSwgdjEwOSBBUyBUUlVFLCB2MTEwIEFTIFRSVUUsIHYxMTEgQVMgVFJVRSwgdjExMiBBUyBUUlVF LCB2MTEzIEFTIFRSVUUsIHYxMTQgQVMgVFJVRSwgdjExNSBBUyBUUlVFLCB2MTE2IEFTIFRSVUUs IHYxMTcgQVMgVFJVRSwgdjExOCBBUyBUUlVFLCB2MTE5IEFTIFRSVUUsIHYxMjAgQVMgVFJVRSwg djEyMSBBUyBUUlVFLCB2MTIyIEFTIFRSVUUsIHYxMjMgQVMgVFJVRSwgdjEyNCBBUyBUUlVFLCB2 MTI1IEFTIFRSVUUsIHYxMjYgQVMgVFJVRSwgdjEyNyBBUyBUUlVFLCB2MTI4IEFTIFRSVUUsIHYx MjkgQVMgVFJVRSwgdjEzMCBBUyBUUlVFLCB2MTMxIEFTIFRSVUUsIHYxMzIgQVMgVFJVRSwgdjEz MyBBUyBUUlVFLCB2MTM0IEFTIFRSVUUsIHYxMzUgQVMgVFJVRSwgdjEzNiBBUyBUUlVFLCB2MTM3 IEFTIFRSVUUsIHYxMzggQVMgVFJVRSwgdjEzOSBBUyBUUlVFLCB2MTQwIEFTIFRSVUUsIHYxNDEg QVMgVFJVRSwgdjE0MiBBUyBUUlVFLCB2MTQzIEFTIFRSVUUsIHYxNDQgQVMgVFJVRSwgdjE0NSBB UyBUUlVFLCB2MTQ2IEFTIFRSVUUsIHYxNDcgQVMgVFJVRSwgdjE0OCBBUyBUUlVFLCB2MTQ5IEFT IFRSVUUsIHYxNTAgQVMgVFJVRSwgdjE1MSBBUyBUUlVFLCB2MTUyIEFTIFRSVUUsIHYxNTMgQVMg VFJVRSwgdjE1NCBBUyBUUlVFLCB2MTU1IEFTIFRSVUUsIHYxNTYgQVMgVFJVRSwgdjE1NyBBUyBU UlVFLCB2MTU4IEFTIFRSVUUsIHYxNTkgQVMgVFJVRSwgdjE2MCBBUyBUUlVFLCB2MTYxIEFTIFRS VUUsIHYxNjIgQVMgVFJVRSwgdjE2MyBBUyBUUlVFLCB2MTY0IEFTIFRSVUUsIHYxNjUgQVMgVFJV RSwgdjE2NiBBUyBUUlVFLCB2MTY3IEFTIFRSVUUsIHYxNjggQVMgVFJVRSwgdjE2OSBBUyBUUlVF LCB2MTcwIEFTIFRSVUUsIHYxNzEgQVMgVFJVRSwgdjE3MiBBUyBUUlVFLCB2MTczIEFTIFRSVUUs IHYxNzQgQVMgVFJVRSwgdjE3NSBBUyBUUlVFLCB2MTc2IEFTIFRSVUUsIHYxNzcgQVMgVFJVRSwg djE3OCBBUyBUUlVFLCB2MTc5IEFTIFRSVUUsIHYxODAgQVMgVFJVRSwgdjE4MSBBUyBUUlVFLCB2 MTgyIEFTIFRSVUUsIHYxODMgQVMgVFJVRSwgdjE4NCBBUyBUUlVFLCB2MTg1IEFTIFRSVUUsIHYx ODYgQVMgVFJVRSwgdjE4NyBBUyBUUlVFLCB2MTg4IEFTIFRSVUUsIHYxODkgQVMgVFJVRSwgdjE5 MCBBUyBUUlVFLCB2MTkxIEFTIFRSVUUsIHYxOTIgQVMgVFJVRSwgdjE5MyBBUyBUUlVFLCB2MTk0 IEFTIFRSVUUsIHYxOTUgQVMgVFJVRSwgdjE5NiBBUyBUUlVFLCB2MTk3IEFTIFRSVUUsIHYxOTgg QVMgVFJVRSwgdjE5OSBBUyBUUlVFLCB2MjAwIEFTIFRSVUUsIHYyMDEgQVMgVFJVRSwgdjIwMiBB UyBUUlVFLCB2MjAzIEFTIFRSVUUsIHYyMDQgQVMgVFJVRSwgdjIwNSBBUyBUUlVFLCB2MjA2IEFT IFRSVUUsIHYyMDcgQVMgVFJVRSwgdjIwOCBBUyBUUlVFLCB2MjA5IEFTIFRSVUUsIHYyMTAgQVMg VFJVRSwgdjIxMSBBUyBUUlVFLCB2MjEyIEFTIFRSVUUsIHYyMTMgQVMgVFJVRSwgdjIxNCBBUyBU UlVFLCB2MjE1IEFTIFRSVUUsIHYyMTYgQVMgVFJVRSwgdjIxNyBBUyBUUlVFLCB2MjE4IEFTIFRS VUUsIHYyMTkgQVMgVFJVRSwgdjIyMCBBUyBUUlVFLCB2MjIxIEFTIFRSVUUsIHYyMjIgQVMgVFJV RSwgdjIyMyBBUyBUUlVFLCB2MjI0IEFTIFRSVUUsIHYyMjUgQVMgVFJVRSwgdjIyNiBBUyBUUlVF LCB2MjI3IEFTIFRSVUUsIHYyMjggQVMgVFJVRSwgdjIyOSBBUyBUUlVFLCB2MjMwIEFTIFRSVUUs IHYyMzEgQVMgVFJVRSwgdjIzMiBBUyBUUlVFLCB2MjMzIEFTIFRSVUUsIHYyMzQgQVMgVFJVRSwg djIzNSBBUyBUUlVFLCB2MjM2IEFTIFRSVUUsIHYyMzcgQVMgVFJVRSwgdjIzOCBBUyBUUlVFLCB2 MjM5IEFTIFRSVUUsIHYyNDAgQVMgVFJVRSwgdjI0MSBBUyBUUlVFLCB2MjQyIEFTIFRSVUUsIHYy NDMgQVMgVFJVRSwgdjI0NCBBUyBUUlVFLCB2MjQ1IEFTIFRSVUUsIHYyNDYgQVMgVFJVRSwgdjI0 NyBBUyBUUlVFLCB2MjQ4IEFTIFRSVUUsIHYyNDkgQVMgVFJVRSwgdjI1MCBBUyBUUlVFLCB2MjUx IEFTIFRSVUUsIHYyNTIgQVMgVFJVRSkiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9i bG9jayBsaW5lIDE3IGF0IEVYRUNVVEUKKy0tIEVycm9yOiAyNTMgdmFyaWFibGVzIGV4Y2VlZHMg bGltaXQgb2YgMjUxCiBETyAkJAogREVDTEFSRQogICAgIHBhdHRlcm5fdmFycyB0ZXh0OwpAQCAt Mjc2Niw3ICsyNzczLDcgQEAgQkVHSU4KIEVORDsKICQkOwogRVJST1I6ICB0b28gbWFueSBwYXR0 ZXJuIHZhcmlhYmxlcwotREVUQUlMOiAgTWF4aW11bSBpcyAyNTIuCitERVRBSUw6ICBNYXhpbXVt IGlzIDI1MS4KIENPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJTRUxFQ1QgKiBGUk9NIChTRUxFQ1Qg MSBBUyB4KSB0IFdJTkRPVyB3IEFTICgKICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgIFBBVFRFUk4gKHYwMDEgdjAwMiB2MDAz IHYwMDQgdjAwNSB2MDA2IHYwMDcgdjAwOCB2MDA5IHYwMTAgdjAxMSB2MDEyIHYwMTMgdjAxNCB2 MDE1IHYwMTYgdjAxNyB2MDE4IHYwMTkgdjAyMCB2MDIxIHYwMjIgdjAyMyB2MDI0IHYwMjUgdjAy NiB2MDI3IHYwMjggdjAyOSB2MDMwIHYwMzEgdjAzMiB2MDMzIHYwMzQgdjAzNSB2MDM2IHYwMzcg djAzOCB2MDM5IHYwNDAgdjA0MSB2MDQyIHYwNDMgdjA0NCB2MDQ1IHYwNDYgdjA0NyB2MDQ4IHYw NDkgdjA1MCB2MDUxIHYwNTIgdjA1MyB2MDU0IHYwNTUgdjA1NiB2MDU3IHYwNTggdjA1OSB2MDYw IHYwNjEgdjA2MiB2MDYzIHYwNjQgdjA2NSB2MDY2IHYwNjcgdjA2OCB2MDY5IHYwNzAgdjA3MSB2 MDcyIHYwNzMgdjA3NCB2MDc1IHYwNzYgdjA3NyB2MDc4IHYwNzkgdjA4MCB2MDgxIHYwODIgdjA4 MyB2MDg0IHYwODUgdjA4NiB2MDg3IHYwODggdjA4OSB2MDkwIHYwOTEgdjA5MiB2MDkzIHYwOTQg djA5NSB2MDk2IHYwOTcgdjA5OCB2MDk5IHYxMDAgdjEwMSB2MTAyIHYxMDMgdjEwNCB2MTA1IHYx MDYgdjEwNyB2MTA4IHYxMDkgdjExMCB2MTExIHYxMTIgdjExMyB2MTE0IHYxMTUgdjExNiB2MTE3 IHYxMTggdjExOSB2MTIwIHYxMjEgdjEyMiB2MTIzIHYxMjQgdjEyNSB2MTI2IHYxMjcgdjEyOCB2 MTI5IHYxMzAgdjEzMSB2MTMyIHYxMzMgdjEzNCB2MTM1IHYxMzYgdjEzNyB2MTM4IHYxMzkgdjE0 MCB2MTQxIHYxNDIgdjE0MyB2MTQ0IHYxNDUgdjE0NiB2MTQ3IHYxNDggdjE0OSB2MTUwIHYxNTEg djE1MiB2MTUzIHYxNTQgdjE1NSB2MTU2IHYxNTcgdjE1OCB2MTU5IHYxNjAgdjE2MSB2MTYyIHYx NjMgdjE2NCB2MTY1IHYxNjYgdjE2NyB2MTY4IHYxNjkgdjE3MCB2MTcxIHYxNzIgdjE3MyB2MTc0 IHYxNzUgdjE3NiB2MTc3IHYxNzggdjE3OSB2MTgwIHYxODEgdjE4MiB2MTgzIHYxODQgdjE4NSB2 MTg2IHYxODcgdjE4OCB2MTg5IHYxOTAgdjE5MSB2MTkyIHYxOTMgdjE5NCB2MTk1IHYxOTYgdjE5 NyB2MTk4IHYxOTkgdjIwMCB2MjAxIHYyMDIgdjIwMyB2MjA0IHYyMDUgdjIwNiB2MjA3IHYyMDgg djIwOSB2MjEwIHYyMTEgdjIxMiB2MjEzIHYyMTQgdjIxNSB2MjE2IHYyMTcgdjIxOCB2MjE5IHYy MjAgdjIyMSB2MjIyIHYyMjMgdjIyNCB2MjI1IHYyMjYgdjIyNyB2MjI4IHYyMjkgdjIzMCB2MjMx IHYyMzIgdjIzMyB2MjM0IHYyMzUgdjIzNiB2MjM3IHYyMzggdjIzOSB2MjQwIHYyNDEgdjI0MiB2 MjQzIHYyNDQgdjI0NSB2MjQ2IHYyNDcgdjI0OCB2MjQ5IHYyNTAgdjI1MSB2MjUyIHYyNTMpCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDIzODUxYzVhMTFjLi5jMjY5 YWI5OTY1MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTI4MzMs NiArMjgzMywyMyBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX3BsYW4KICg2IHJvd3MpCiAKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSBBKyAtPiBh ezIsfQorLS0gVGVzdHMgbGluZSAyNTE6IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiBi cmFuY2ggaW4gbWVyZ2VDb25zZWN1dGl2ZVZhcnMKKy0tIHByZXY6IEF7MSwxfSAoZmluaXRlKSwg Y2hpbGQ6IEErIChpbmZpbml0ZSkgdHJpZ2dlcnMgbGluZSAyNTEgZXZhbHVhdGlvbgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBBKykgREVGSU5FIEEgQVMgdmFs ID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGF7Mix9IgorICAg LT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCisoNiByb3dzKQorCiAtLSBDb25zZWN1dGl2ZSBHUk9VUCBtZXJnZSB3aXRoIGZp bml0ZSBxdWFudGlmaWVyczogKChBIEIpezV9KSAoKEEgQil7MTB9KSAtPiBtZXJnZWQKIEVYUExB SU4gKENPU1RTIE9GRikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgpAQCAt Mjg2Myw2ICsyODgwLDIzIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfcGxhbgogKDYgcm93cykKIAorLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2U6IChB IEIpezJ9IChBIEIpKyAtPiAoYSBiKXszLH0KKy0tIFRlc3RzIGxpbmUgMzI1OiBjaGlsZC0+bWF4 ID09IFJQUl9RVUFOVElUWV9JTkYgYnJhbmNoIGluIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMKKy0t IHByZXY6IChBIEIpezIsMn0gKGZpbml0ZSksIGNoaWxkOiAoQSBCKSsgKGluZmluaXRlKSB0cmln Z2VycyBsaW5lIDMyNSBldmFsdWF0aW9uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAg ICBQQVRURVJOICgoQSBCKXsyfSAoQSBCKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2 YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyBiJyl7 Myx9IgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCiAtLSBQUkVGSVggbWVyZ2U6IEEgQiAoQSBC KSsgLT4gKGEgYil7Mix9CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX3BsYW4KQEAgLTUwNTcsMTMgKzUwOTEsMTMgQEAgV0lORE9XIHcgQVMgKAog ICAgICAwCiAoMiByb3dzKQogCi0tLSBUZXN0OiAyNTIgdmFyaWFibGVzIGluIFBBVFRFUk4sIDI1 MyBpbiBERUZJTkUgKGJvdW5kYXJ5IC0gc2hvdWxkIHN1Y2NlZWQpCistLSBUZXN0OiAyNTEgdmFy aWFibGVzIGluIFBBVFRFUk4sIDI1MiBpbiBERUZJTkUgKGJvdW5kYXJ5IC0gc2hvdWxkIHN1Y2Nl ZWQpCiAtLSBFeHBlY3RlZDogU3VjY2VzcyAtIHVudXNlZCBERUZJTkUgdmFyaWFibGVzIGFyZSBm aWx0ZXJlZCBvdXQKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyb3JzCiBXSU5E T1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBQQVRURVJOIChWMSBWMiBWMyBWNCBWNSBWNiBW NyBWOCBWOSBWMTAgVjExIFYxMiBWMTMgVjE0IFYxNSBWMTYgVjE3IFYxOCBWMTkgVjIwIFYyMSBW MjIgVjIzIFYyNCBWMjUgVjI2IFYyNyBWMjggVjI5IFYzMCBWMzEgVjMyIFYzMyBWMzQgVjM1IFYz NiBWMzcgVjM4IFYzOSBWNDAgVjQxIFY0MiBWNDMgVjQ0IFY0NSBWNDYgVjQ3IFY0OCBWNDkgVjUw IFY1MSBWNTIgVjUzIFY1NCBWNTUgVjU2IFY1NyBWNTggVjU5IFY2MCBWNjEgVjYyIFY2MyBWNjQg VjY1IFY2NiBWNjcgVjY4IFY2OSBWNzAgVjcxIFY3MiBWNzMgVjc0IFY3NSBWNzYgVjc3IFY3OCBW NzkgVjgwIFY4MSBWODIgVjgzIFY4NCBWODUgVjg2IFY4NyBWODggVjg5IFY5MCBWOTEgVjkyIFY5 MyBWOTQgVjk1IFY5NiBWOTcgVjk4IFY5OSBWMTAwIFYxMDEgVjEwMiBWMTAzIFYxMDQgVjEwNSBW MTA2IFYxMDcgVjEwOCBWMTA5IFYxMTAgVjExMSBWMTEyIFYxMTMgVjExNCBWMTE1IFYxMTYgVjEx NyBWMTE4IFYxMTkgVjEyMCBWMTIxIFYxMjIgVjEyMyBWMTI0IFYxMjUgVjEyNiBWMTI3IFYxMjgg VjEyOSBWMTMwIFYxMzEgVjEzMiBWMTMzIFYxMzQgVjEzNSBWMTM2IFYxMzcgVjEzOCBWMTM5IFYx NDAgVjE0MSBWMTQyIFYxNDMgVjE0NCBWMTQ1IFYxNDYgVjE0NyBWMTQ4IFYxNDkgVjE1MCBWMTUx IFYxNTIgVjE1MyBWMTU0IFYxNTUgVjE1NiBWMTU3IFYxNTggVjE1OSBWMTYwIFYxNjEgVjE2MiBW MTYzIFYxNjQgVjE2NSBWMTY2IFYxNjcgVjE2OCBWMTY5IFYxNzAgVjE3MSBWMTcyIFYxNzMgVjE3 NCBWMTc1IFYxNzYgVjE3NyBWMTc4IFYxNzkgVjE4MCBWMTgxIFYxODIgVjE4MyBWMTg0IFYxODUg VjE4NiBWMTg3IFYxODggVjE4OSBWMTkwIFYxOTEgVjE5MiBWMTkzIFYxOTQgVjE5NSBWMTk2IFYx OTcgVjE5OCBWMTk5IFYyMDAgVjIwMSBWMjAyIFYyMDMgVjIwNCBWMjA1IFYyMDYgVjIwNyBWMjA4 IFYyMDkgVjIxMCBWMjExIFYyMTIgVjIxMyBWMjE0IFYyMTUgVjIxNiBWMjE3IFYyMTggVjIxOSBW MjIwIFYyMjEgVjIyMiBWMjIzIFYyMjQgVjIyNSBWMjI2IFYyMjcgVjIyOCBWMjI5IFYyMzAgVjIz MSBWMjMyIFYyMzMgVjIzNCBWMjM1IFYyMzYgVjIzNyBWMjM4IFYyMzkgVjI0MCBWMjQxIFYyNDIg VjI0MyBWMjQ0IFYyNDUgVjI0NiBWMjQ3IFYyNDggVjI0OSBWMjUwIFYyNTEgVjI1MikKKyAgICBQ QVRURVJOIChWMSBWMiBWMyBWNCBWNSBWNiBWNyBWOCBWOSBWMTAgVjExIFYxMiBWMTMgVjE0IFYx NSBWMTYgVjE3IFYxOCBWMTkgVjIwIFYyMSBWMjIgVjIzIFYyNCBWMjUgVjI2IFYyNyBWMjggVjI5 IFYzMCBWMzEgVjMyIFYzMyBWMzQgVjM1IFYzNiBWMzcgVjM4IFYzOSBWNDAgVjQxIFY0MiBWNDMg VjQ0IFY0NSBWNDYgVjQ3IFY0OCBWNDkgVjUwIFY1MSBWNTIgVjUzIFY1NCBWNTUgVjU2IFY1NyBW NTggVjU5IFY2MCBWNjEgVjYyIFY2MyBWNjQgVjY1IFY2NiBWNjcgVjY4IFY2OSBWNzAgVjcxIFY3 MiBWNzMgVjc0IFY3NSBWNzYgVjc3IFY3OCBWNzkgVjgwIFY4MSBWODIgVjgzIFY4NCBWODUgVjg2 IFY4NyBWODggVjg5IFY5MCBWOTEgVjkyIFY5MyBWOTQgVjk1IFY5NiBWOTcgVjk4IFY5OSBWMTAw IFYxMDEgVjEwMiBWMTAzIFYxMDQgVjEwNSBWMTA2IFYxMDcgVjEwOCBWMTA5IFYxMTAgVjExMSBW MTEyIFYxMTMgVjExNCBWMTE1IFYxMTYgVjExNyBWMTE4IFYxMTkgVjEyMCBWMTIxIFYxMjIgVjEy MyBWMTI0IFYxMjUgVjEyNiBWMTI3IFYxMjggVjEyOSBWMTMwIFYxMzEgVjEzMiBWMTMzIFYxMzQg VjEzNSBWMTM2IFYxMzcgVjEzOCBWMTM5IFYxNDAgVjE0MSBWMTQyIFYxNDMgVjE0NCBWMTQ1IFYx NDYgVjE0NyBWMTQ4IFYxNDkgVjE1MCBWMTUxIFYxNTIgVjE1MyBWMTU0IFYxNTUgVjE1NiBWMTU3 IFYxNTggVjE1OSBWMTYwIFYxNjEgVjE2MiBWMTYzIFYxNjQgVjE2NSBWMTY2IFYxNjcgVjE2OCBW MTY5IFYxNzAgVjE3MSBWMTcyIFYxNzMgVjE3NCBWMTc1IFYxNzYgVjE3NyBWMTc4IFYxNzkgVjE4 MCBWMTgxIFYxODIgVjE4MyBWMTg0IFYxODUgVjE4NiBWMTg3IFYxODggVjE4OSBWMTkwIFYxOTEg VjE5MiBWMTkzIFYxOTQgVjE5NSBWMTk2IFYxOTcgVjE5OCBWMTk5IFYyMDAgVjIwMSBWMjAyIFYy MDMgVjIwNCBWMjA1IFYyMDYgVjIwNyBWMjA4IFYyMDkgVjIxMCBWMjExIFYyMTIgVjIxMyBWMjE0 IFYyMTUgVjIxNiBWMjE3IFYyMTggVjIxOSBWMjIwIFYyMjEgVjIyMiBWMjIzIFYyMjQgVjIyNSBW MjI2IFYyMjcgVjIyOCBWMjI5IFYyMzAgVjIzMSBWMjMyIFYyMzMgVjIzNCBWMjM1IFYyMzYgVjIz NyBWMjM4IFYyMzkgVjI0MCBWMjQxIFYyNDIgVjI0MyBWMjQ0IFYyNDUgVjI0NiBWMjQ3IFYyNDgg VjI0OSBWMjUwIFYyNTEpCiAgICAgREVGSU5FCiAgICAgVjEgQVMgdmFsID4gMCwgVjIgQVMgdmFs ID4gMCwgVjMgQVMgdmFsID4gMCwgVjQgQVMgdmFsID4gMCwgVjUgQVMgdmFsID4gMCwgVjYgQVMg dmFsID4gMCwgVjcgQVMgdmFsID4gMCwgVjggQVMgdmFsID4gMCwgVjkgQVMgdmFsID4gMCwgVjEw IEFTIHZhbCA+IDAsCiAgICAgVjExIEFTIHZhbCA+IDAsIFYxMiBBUyB2YWwgPiAwLCBWMTMgQVMg dmFsID4gMCwgVjE0IEFTIHZhbCA+IDAsIFYxNSBBUyB2YWwgPiAwLCBWMTYgQVMgdmFsID4gMCwg VjE3IEFTIHZhbCA+IDAsIFYxOCBBUyB2YWwgPiAwLCBWMTkgQVMgdmFsID4gMCwgVjIwIEFTIHZh bCA+IDAsCkBAIC01MDkwLDcgKzUxMjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgVjIyMSBBUyB2 YWwgPiAwLCBWMjIyIEFTIHZhbCA+IDAsIFYyMjMgQVMgdmFsID4gMCwgVjIyNCBBUyB2YWwgPiAw LCBWMjI1IEFTIHZhbCA+IDAsIFYyMjYgQVMgdmFsID4gMCwgVjIyNyBBUyB2YWwgPiAwLCBWMjI4 IEFTIHZhbCA+IDAsIFYyMjkgQVMgdmFsID4gMCwgVjIzMCBBUyB2YWwgPiAwLAogICAgIFYyMzEg QVMgdmFsID4gMCwgVjIzMiBBUyB2YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQgQVMgdmFs ID4gMCwgVjIzNSBBUyB2YWwgPiAwLCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFsID4gMCwg VjIzOCBBUyB2YWwgPiAwLCBWMjM5IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMCwKICAgICBW MjQxIEFTIHZhbCA+IDAsIFYyNDIgQVMgdmFsID4gMCwgVjI0MyBBUyB2YWwgPiAwLCBWMjQ0IEFT IHZhbCA+IDAsIFYyNDUgQVMgdmFsID4gMCwgVjI0NiBBUyB2YWwgPiAwLCBWMjQ3IEFTIHZhbCA+ IDAsIFYyNDggQVMgdmFsID4gMCwgVjI0OSBBUyB2YWwgPiAwLCBWMjUwIEFTIHZhbCA+IDAsCi0g ICAgVjI1MSBBUyB2YWwgPiAwLCBWMjUyIEFTIHZhbCA+IDAsIFYyNTMgQVMgdmFsID4gMAorICAg IFYyNTEgQVMgdmFsID4gMCwgVjI1MiBBUyB2YWwgPiAwCiApOwogIGNvdW50IAogLS0tLS0tLQpA QCAtNTA5OCwxMyArNTEzMiwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgIDAKICgyIHJvd3MpCiAK LS0tIFRlc3Q6IDI1MyB2YXJpYWJsZXMgaW4gUEFUVEVSTiwgMjUyIGluIERFRklORSAoZXhjZWVk cyBsaW1pdCB3aXRoIGltcGxpY2l0IFRSVUUpCi0tLSBFeHBlY3RlZDogRVJST1IgLSB0b28gbWFu eSBwYXR0ZXJuIHZhcmlhYmxlcyAoTWF4aW11bSBpcyAyNTIpCistLSBUZXN0OiAyNTIgdmFyaWFi bGVzIGluIFBBVFRFUk4sIDI1MSBpbiBERUZJTkUgKGV4Y2VlZHMgbGltaXQgd2l0aCBpbXBsaWNp dCBUUlVFKQorLS0gRXhwZWN0ZWQ6IEVSUk9SIC0gdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMg KE1heGltdW0gaXMgMjUxKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMK IFdJTkRPVyB3IEFTICgKICAgICBPUkRFUiBCWSBpZAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIFBBVFRFUk4gKFYxIFYyIFYzIFY0IFY1 IFY2IFY3IFY4IFY5IFYxMCBWMTEgVjEyIFYxMyBWMTQgVjE1IFYxNiBWMTcgVjE4IFYxOSBWMjAg VjIxIFYyMiBWMjMgVjI0IFYyNSBWMjYgVjI3IFYyOCBWMjkgVjMwIFYzMSBWMzIgVjMzIFYzNCBW MzUgVjM2IFYzNyBWMzggVjM5IFY0MCBWNDEgVjQyIFY0MyBWNDQgVjQ1IFY0NiBWNDcgVjQ4IFY0 OSBWNTAgVjUxIFY1MiBWNTMgVjU0IFY1NSBWNTYgVjU3IFY1OCBWNTkgVjYwIFY2MSBWNjIgVjYz IFY2NCBWNjUgVjY2IFY2NyBWNjggVjY5IFY3MCBWNzEgVjcyIFY3MyBWNzQgVjc1IFY3NiBWNzcg Vjc4IFY3OSBWODAgVjgxIFY4MiBWODMgVjg0IFY4NSBWODYgVjg3IFY4OCBWODkgVjkwIFY5MSBW OTIgVjkzIFY5NCBWOTUgVjk2IFY5NyBWOTggVjk5IFYxMDAgVjEwMSBWMTAyIFYxMDMgVjEwNCBW MTA1IFYxMDYgVjEwNyBWMTA4IFYxMDkgVjExMCBWMTExIFYxMTIgVjExMyBWMTE0IFYxMTUgVjEx NiBWMTE3IFYxMTggVjExOSBWMTIwIFYxMjEgVjEyMiBWMTIzIFYxMjQgVjEyNSBWMTI2IFYxMjcg VjEyOCBWMTI5IFYxMzAgVjEzMSBWMTMyIFYxMzMgVjEzNCBWMTM1IFYxMzYgVjEzNyBWMTM4IFYx MzkgVjE0MCBWMTQxIFYxNDIgVjE0MyBWMTQ0IFYxNDUgVjE0NiBWMTQ3IFYxNDggVjE0OSBWMTUw IFYxNTEgVjE1MiBWMTUzIFYxNTQgVjE1NSBWMTU2IFYxNTcgVjE1OCBWMTU5IFYxNjAgVjE2MSBW MTYyIFYxNjMgVjE2NCBWMTY1IFYxNjYgVjE2NyBWMTY4IFYxNjkgVjE3MCBWMTcxIFYxNzIgVjE3 MyBWMTc0IFYxNzUgVjE3NiBWMTc3IFYxNzggVjE3OSBWMTgwIFYxODEgVjE4MiBWMTgzIFYxODQg VjE4NSBWMTg2IFYxODcgVjE4OCBWMTg5IFYxOTAgVjE5MSBWMTkyIFYxOTMgVjE5NCBWMTk1IFYx OTYgVjE5NyBWMTk4IFYxOTkgVjIwMCBWMjAxIFYyMDIgVjIwMyBWMjA0IFYyMDUgVjIwNiBWMjA3 IFYyMDggVjIwOSBWMjEwIFYyMTEgVjIxMiBWMjEzIFYyMTQgVjIxNSBWMjE2IFYyMTcgVjIxOCBW MjE5IFYyMjAgVjIyMSBWMjIyIFYyMjMgVjIyNCBWMjI1IFYyMjYgVjIyNyBWMjI4IFYyMjkgVjIz MCBWMjMxIFYyMzIgVjIzMyBWMjM0IFYyMzUgVjIzNiBWMjM3IFYyMzggVjIzOSBWMjQwIFYyNDEg VjI0MiBWMjQzIFYyNDQgVjI0NSBWMjQ2IFYyNDcgVjI0OCBWMjQ5IFYyNTAgVjI1MSBWMjUyIFYy NTMpCisgICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcgVjggVjkgVjEwIFYxMSBWMTIg VjEzIFYxNCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBW MjcgVjI4IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0 MSBWNDIgVjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1 IFY1NiBWNTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkg VjcwIFY3MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5IFY4MCBWODEgVjgyIFY4MyBW ODQgVjg1IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5 OCBWOTkgVjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEwNiBWMTA3IFYxMDggVjEwOSBW MTEwIFYxMTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEy MSBWMTIyIFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIg VjEzMyBWMTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYx NDQgVjE0NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1 IFYxNTYgVjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBW MTY3IFYxNjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3 OCBWMTc5IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYxODYgVjE4NyBWMTg4IFYxODkg VjE5MCBWMTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYy MDEgVjIwMiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEy IFYyMTMgVjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBW MjI0IFYyMjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIz NSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYg VjI0NyBWMjQ4IFYyNDkgVjI1MCBWMjUxIFYyNTIpCiAgICAgREVGSU5FCiAgICAgVjEgQVMgdmFs ID4gMCwgVjIgQVMgdmFsID4gMCwgVjMgQVMgdmFsID4gMCwgVjQgQVMgdmFsID4gMCwgVjUgQVMg dmFsID4gMCwgVjYgQVMgdmFsID4gMCwgVjcgQVMgdmFsID4gMCwgVjggQVMgdmFsID4gMCwgVjkg QVMgdmFsID4gMCwgVjEwIEFTIHZhbCA+IDAsCiAgICAgVjExIEFTIHZhbCA+IDAsIFYxMiBBUyB2 YWwgPiAwLCBWMTMgQVMgdmFsID4gMCwgVjE0IEFTIHZhbCA+IDAsIFYxNSBBUyB2YWwgPiAwLCBW MTYgQVMgdmFsID4gMCwgVjE3IEFTIHZhbCA+IDAsIFYxOCBBUyB2YWwgPiAwLCBWMTkgQVMgdmFs ID4gMCwgVjIwIEFTIHZhbCA+IDAsCkBAIC01MTMxLDE4ICs1MTY1LDE4IEBAIFdJTkRPVyB3IEFT ICgKICAgICBWMjIxIEFTIHZhbCA+IDAsIFYyMjIgQVMgdmFsID4gMCwgVjIyMyBBUyB2YWwgPiAw LCBWMjI0IEFTIHZhbCA+IDAsIFYyMjUgQVMgdmFsID4gMCwgVjIyNiBBUyB2YWwgPiAwLCBWMjI3 IEFTIHZhbCA+IDAsIFYyMjggQVMgdmFsID4gMCwgVjIyOSBBUyB2YWwgPiAwLCBWMjMwIEFTIHZh bCA+IDAsCiAgICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+IDAsIFYyMzMgQVMgdmFs ID4gMCwgVjIzNCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYyMzYgQVMgdmFsID4gMCwg VjIzNyBBUyB2YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMgdmFsID4gMCwgVjI0MCBB UyB2YWwgPiAwLAogICAgIFYyNDEgQVMgdmFsID4gMCwgVjI0MiBBUyB2YWwgPiAwLCBWMjQzIEFT IHZhbCA+IDAsIFYyNDQgQVMgdmFsID4gMCwgVjI0NSBBUyB2YWwgPiAwLCBWMjQ2IEFTIHZhbCA+ IDAsIFYyNDcgQVMgdmFsID4gMCwgVjI0OCBBUyB2YWwgPiAwLCBWMjQ5IEFTIHZhbCA+IDAsIFYy NTAgQVMgdmFsID4gMCwKLSAgICBWMjUxIEFTIHZhbCA+IDAsIFYyNTIgQVMgdmFsID4gMAorICAg IFYyNTEgQVMgdmFsID4gMAogKTsKIEVSUk9SOiAgdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMK LURFVEFJTDogIE1heGltdW0gaXMgMjUyLgotLS0gVGVzdDogUGF0dGVybiBuZXN0aW5nIGF0IG1h eGltdW0gZGVwdGggKGRlcHRoIDI1NCkKK0RFVEFJTDogIE1heGltdW0gaXMgMjUxLgorLS0gVGVz dDogUGF0dGVybiBuZXN0aW5nIGF0IG1heGltdW0gZGVwdGggKGRlcHRoIDI1MykKIC0tIEV4cGVj dGVkOiBTaG91bGQgc3VjY2VlZAotLS0gTm90ZTogMjU0IG5lc3RlZCBHUk9VUHszLDd9IHF1YW50 aWZpZXJzIHByb2R1Y2UgZGVwdGggMjU0IGFmdGVyIG9wdGltaXphdGlvbgorLS0gTm90ZTogMjUz IG5lc3RlZCBHUk9VUHszLDd9IHF1YW50aWZpZXJzIHByb2R1Y2UgZGVwdGggMjUzIGFmdGVyIG9w dGltaXphdGlvbgogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJv cnMKIFdJTkRPVyB3IEFTICgKICAgICBPUkRFUiBCWSBpZAogICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIFBBVFRFUk4gKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoQXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 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 LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KQorICAgIFBBVFRFUk4gKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChBezMsN30pezMs 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 N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pCiAgICAgREVGSU5FIEEgQVMgdmFsID4g MAogKTsKICBpZCB8IHZhbCB8IGNvdW50IApAQCAtNTE1MSwxOCArNTE4NSwxOCBAQCBXSU5ET1cg dyBBUyAoCiAgIDIgfCAgMjAgfCAgICAgMAogKDIgcm93cykKIAotLS0gVGVzdDogUGF0dGVybiBu ZXN0aW5nIGRlcHRoIGV4Y2VlZHMgbWF4aW11bSAoZGVwdGggMjU1KQorLS0gVGVzdDogUGF0dGVy biBuZXN0aW5nIGRlcHRoIGV4Y2VlZHMgbWF4aW11bSAoZGVwdGggMjU0KQogLS0gRXhwZWN0ZWQ6 IEVSUk9SIC0gcGF0dGVybiBuZXN0aW5nIHRvbyBkZWVwCi0tLSBOb3RlOiAyNTUgbmVzdGVkIEdS T1VQezMsN30gcXVhbnRpZmllcnMgcHJvZHVjZSBkZXB0aCAyNTUgYWZ0ZXIgb3B0aW1pemF0aW9u CistLSBOb3RlOiAyNTQgbmVzdGVkIEdST1VQezMsN30gcXVhbnRpZmllcnMgcHJvZHVjZSBkZXB0 aCAyNTQgYWZ0ZXIgb3B0aW1pemF0aW9uCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3 IEZST00gcnByX2Vycm9ycwogV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCiAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgUEFUVEVS TiAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoQXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz 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 KCgoKCgoKCgoKCgoQXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz 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 LDd9KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7CiBFUlJPUjogIHBhdHRlcm4gbmVzdGlu ZyB0b28gZGVlcAotREVUQUlMOiAgUGF0dGVybiBuZXN0aW5nIGRlcHRoIDI1NSBleGNlZWRzIG1h eGltdW0gMjU0LgorREVUQUlMOiAgUGF0dGVybiBuZXN0aW5nIGRlcHRoIDI1NCBleGNlZWRzIG1h eGltdW0gMjUzLgogRFJPUCBUQUJMRSBycHJfZXJyb3JzOwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBKYWNvYidzIFBh dHRlcm5zCkBAIC01NDgxLDYgKzU1MTUsMjkgQEAgV0lORE9XIHcgQVMgKAogIDMgfCAwCiAoMyBy b3dzKQogCistLSBPcHRpb25hbCBncm91cCB3aXRoIGFsdGVybmF0aW9uOiBBICgoQiB8IEMpIChE IHwgRSkpKiBGPworLS0gV2hlbiBvbmx5IEEgbWF0Y2hlcywgdGhlICogZ3JvdXAgbWF0Y2hlcyAw IHRpbWVzIGFuZCBGPyBtYXRjaGVzIDAgdGltZXMKK1NFTEVDVCBpZCwgdmFsLCBtYXRjaF9sZW4K K0ZST00gKFNFTEVDVCBpZCwgdmFsLAorICAgICAgICAgICAgIENPVU5UKCopIE9WRVIgdyBBUyBt YXRjaF9sZW4KKyAgICAgIEZST00gKFZBTFVFUyAoMSwgMSksICgyLCA5OSkpIEFTIHQoaWQsIHZh bCkKKyAgICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgICAgICAgIFBBVFRFUk4gKEEg KChCIHwgQykgKEQgfCBFKSkqIEY/KQorICAgICAgICAgIERFRklORSBBIEFTIHZhbCA9IDEsCisg ICAgICAgICAgICAgICAgIEIgQVMgdmFsID0gMiwgQyBBUyB2YWwgPSAzLAorICAgICAgICAgICAg ICAgICBEIEFTIHZhbCA9IDQsIEUgQVMgdmFsID0gNSwKKyAgICAgICAgICAgICAgICAgRiBBUyB2 YWwgPSA2CisgICAgICApCispIHM7CisgaWQgfCB2YWwgfCBtYXRjaF9sZW4gCistLS0tKy0tLS0t Ky0tLS0tLS0tLS0tCisgIDEgfCAgIDEgfCAgICAgICAgIDEKKyAgMiB8ICA5OSB8ICAgICAgICAg MAorKDIgcm93cykKKwogRFJPUCBUQUJMRSBycHJfcGxhbjsKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gRW5kIG9mIHJw cl9iYXNlLnNxbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhw bGFpbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dAppbmRl eCBiNWNlYWFlNTNiNS4uZWE3NWQ2MjcxOGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2V4cGxhaW4ub3V0CkBAIC0xLDEzICsxLDQyIEBACistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFJQUiBFWFBMQUlO IFRlc3RzCistLSBUZXN0cyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gRVhQTEFJTiBvdXRw dXQKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0KLS0tIFRlc3Q6IEVYUExBSU4gQU5BTFlaRSBvdXRwdXQgZm9yIFJvdyBQ YXR0ZXJuIFJlY29nbml0aW9uIE5GQSBzdGF0aXN0aWNzCistLSBUaGlzIHRlc3Qgc3VpdGUgdmFs aWRhdGVzIEVYUExBSU4gb3V0cHV0IGZvciBSUFIgcXVlcmllcywKKy0tIGluY2x1ZGluZyBORkEg c3RhdGlzdGljcyBzaG93biBpbiBFWFBMQUlOIEFOQUxZWkU6CistLSAgIC0gTkZBIFN0YXRlczog cGVhaywgdG90YWwsIG1lcmdlZAorLS0gICAtIE5GQSBDb250ZXh0czogcGVhaywgdG90YWwsIGFi c29yYmVkLCBza2lwcGVkCistLSAgIC0gTkZBOiBtYXRjaGVkIChsZW4gbWluL21heC9hdmcpLCBt aXNtYXRjaGVkIChsZW4gbWluL21heC9hdmcpCistLSAgIC0gUGF0dGVybiBkZXBhcnNlIGZvcm1h dHRpbmcKKy0tICAgLSBNdWx0aXBsZSBvdXRwdXQgZm9ybWF0cyAodGV4dCwgSlNPTiwgWE1MKQog LS0KLS0tIFRoaXMgZmlsZSB0ZXN0cyB0aGUgTkZBIHN0YXRpc3RpY3Mgc2hvd24gaW4gRVhQTEFJ TiBBTkFMWVpFIG91dHB1dDoKLS0tIC0gTkZBIFN0YXRlczogcGVhaywgdG90YWwsIG1lcmdlZAot LS0gLSBORkEgQ29udGV4dHM6IHBlYWssIHRvdGFsLCBhYnNvcmJlZCwgc2tpcHBlZAotLS0gLSBO RkE6IG1hdGNoZWQgKGxlbiBtaW4vbWF4L2F2ZyksIG1pc21hdGNoZWQgKGxlbiBtaW4vbWF4L2F2 ZykKLS0tCi0tLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIFN0b3JhZ2UgbWVtb3J5IHZh bHVlcyBvbmx5IChub3QgTkZBIHN0YXRpc3RpY3MpCi0tLSBXb3JrcyBmb3IgdGV4dCwgSlNPTiwg YW5kIFhNTCBmb3JtYXRzCistLSBUZXN0IENvdmVyYWdlOgorLS0gICBCYXNpYyBORkEgU3RhdGlz dGljcyBUZXN0cworLS0gICBTdGF0ZSBTdGF0aXN0aWNzIFRlc3RzCistLSAgIENvbnRleHQgU3Rh dGlzdGljcyBUZXN0cworLS0gICBNYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cworLS0gICBN aXNtYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cworLS0gICBKU09OIEZvcm1hdCBUZXN0cwor LS0gICBYTUwgRm9ybWF0IFRlc3RzCistLSAgIE11bHRpcGxlIFBhcnRpdGlvbnMgVGVzdHMKKy0t ICAgRWRnZSBDYXNlcworLS0gICBDb21wbGV4IFBhdHRlcm4gVGVzdHMKKy0tICAgUmVhbC13b3Js ZCBQYXR0ZXJuIEV4YW1wbGVzCistLSAgIFBlcmZvcm1hbmNlLW9yaWVudGVkIFRlc3RzCistLSAg IElOSVRJQUwgdnMgbm8gSU5JVElBTCBjb21wYXJpc29uCistLSAgIFF1YW50aWZpZXIgVmFyaWF0 aW9ucworLS0gICBSZWdyZXNzaW9uIFRlc3RzIGZvciBTdGF0aXN0aWNzIEFjY3VyYWN5CistLSAg IEFsdGVybmF0aW9uIFBhdHRlcm4gVGVzdHMKKy0tICAgR3JvdXAgUGF0dGVybiBUZXN0cworLS0g ICBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25zCistLSAgIERFRklORSBFeHByZXNzaW9uIFZh cmlhdGlvbnMKKy0tICAgTGFyZ2UgU2NhbGUgU3RhdGlzdGljcyBWZXJpZmljYXRpb24KKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gRmlsdGVyIGZ1bmN0aW9uIHRvIG5vcm1hbGl6ZSBTdG9yYWdlIG1lbW9yeSB2YWx1ZXMg b25seSAobm90IE5GQSBzdGF0aXN0aWNzKS4KKy0tIE5GQSBzdGF0aXN0aWNzIHNob3VsZCBub3Qg Y2hhbmdlIGJldHdlZW4gcGxhdGZvcm1zOyBpZiB0aGV5IGRvLCBpdCBjb3VsZAorLS0gaW5kaWNh dGUgaXNzdWVzIHN1Y2ggYXMgdW5pbml0aWFsaXplZCBtZW1vcnkgYWNjZXNzLgorLS0gV29ya3Mg Zm9yIHRleHQsIEpTT04sIGFuZCBYTUwgZm9ybWF0cy4KIGNyZWF0ZSBmdW5jdGlvbiBycHJfZXhw bGFpbl9maWx0ZXIodGV4dCkgcmV0dXJucyBzZXRvZiB0ZXh0CiBsYW5ndWFnZSBwbHBnc3FsIGFz CiAkJApAQCAtNjksMTAgKzk4LDI1IEBAIFZBTFVFUwogICAgICgxMjQsICdEJyksICgxMjIsICdE JyksICgxMjAsICdEJyksICgxMTgsICdEJyksICgxMTksICdVJyksCiAgICAgKDEyMSwgJ1UnKSwg KDEyMywgJ1UnKSwgKDEyNSwgJ1UnKSwgKDEyNywgJ1UnKSwgKDEyOSwgJ1UnKSwKICAgICAoMTMx LCAnVScpLCAoMTMzLCAnVScpLCAoMTMwLCAnRCcpLCAoMTI3LCAnRCcpLCAoMTI0LCAnRCcpOwot LS0KLS0tIFNlY3Rpb24gMTogQmFzaWMgTkZBIFN0YXRpc3RpY3MgVGVzdHMKLS0tCi0tLSBUZXN0 IDEuMTogU2ltcGxlIHBhdHRlcm4gLSBzaG91bGQgc2hvdyBiYXNpYyBzdGF0aXN0aWNzCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIEJhc2ljIE5GQSBTdGF0aXN0aWNzIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNpbXBsZSBwYXR0 ZXJuIC0gc2hvdWxkIHNob3cgYmFzaWMgc3RhdGlzdGljcworQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfdGVzdAorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAg ICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIpIAorKDEgcm93KQorCiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtOTUsNyArMTM5LDIzIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBTZXEgU2NhbiBvbiBuZmFf dGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAoOCByb3dzKQogCi0tLSBUZXN0IDEu MjogUGF0dGVybiB3aXRoIG5vIG1hdGNoZXMgLSAwIG1hdGNoZWQKK0RST1AgVklFVyBycHJfdjsK Ky0tIFBhdHRlcm4gd2l0aCBubyBtYXRjaGVzIC0gMCBtYXRjaGVkCitDUkVBVEUgVEVNUCBWSUVX IHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIG5mYV90ZXN0CitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoWCBZ IFopCisgICAgREVGSU5FIFggQVMgY2F0ID0gJ1gnLCBZIEFTIGNhdCA9ICdZJywgWiBBUyBjYXQg PSAnWicKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworICAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJO ICh4IHkgeikgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMTgsNyArMTc4LDIzIEBAIFdJTkRPVyB3 IEFTICgKICAgIC0+ICBTZXEgU2NhbiBvbiBuZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxv b3BzPTEpCiAoOCByb3dzKQogCi0tLSBUZXN0IDEuMzogUGF0dGVybiBtYXRjaGluZyBldmVyeSBy b3cgLSBoaWdoIG1hdGNoIGNvdW50CitEUk9QIFZJRVcgcnByX3Y7CistLSBQYXR0ZXJuIG1hdGNo aW5nIGV2ZXJ5IHJvdyAtIGhpZ2ggbWF0Y2ggY291bnQKK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChSKQorICAgIERF RklORSBSIEFTIFRSVUUKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworICAgICAgbGluZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVS TiAocikgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNDEsMTAgKzIxNyw5NSBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgU2VxIFNjYW4gb24gbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29w cz0xKQogKDggcm93cykKIAotLS0KLS0tIFNlY3Rpb24gMjogU3RhdGUgU3RhdGlzdGljcyBUZXN0 cyAocGVhaywgdG90YWwsIG1lcmdlZCkKLS0tCi0tLSBUZXN0IDIuMTogU2ltcGxlIHF1YW50aWZp ZXIgcGF0dGVybiAtIEErIHdpdGggc2hvcnQgbWF0Y2hlcyAobm8gbWVyZ2luZykKK0RST1AgVklF VyBycHJfdjsKKy0tIFJlZ3Jlc3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBhcmVudGhlc2lzIGlu IHBhdHRlcm4gZGVwYXJzZQorLS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMpIiBjb3JyZWN0bHkg b3V0cHV0cyBhcyAiYSAoYiB8IGMpIiB3aXRoIHNwYWNlCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKKyAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgbGlu ZSAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSAoYiB8 IGMpKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKKyAgICBE RUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsn KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAo Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogYSAoYiB8IGMpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cworKDQgcm93cykKKworRFJPUCBWSUVXIHJwcl92OworLS0gUmVncmVzc2lvbiB0ZXN0OiBTZXF1 ZW50aWFsIGFsdGVybmF0aW9ucyBhdCBzYW1lIGRlcHRoCistLSBWZXJpZmllcyB0aGF0ICIoKEIg fCBDKSAoRCB8IEUpKSIgY29ycmVjdGx5IG91dHB1dHMgYXMgIihiIHwgYykgKGQgfCBlKSIKKy0t IFByZXZpb3VzbHkgZmFpbGVkIGR1ZSB0byBtaXNzaW5nIHBhcmVudGhlc2VzIG9uIEFMVCBkZXB0 aCBkZWNyZWFzZQorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBICgoQiB8IEMpIChEIHwgRSkpKikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA9 IDEsIEIgQVMgdiAlIDUgPSAyLCBDIEFTIHYgJSA1ID0gMywgRCBBUyB2ICUgNSA9IDQsIEUgQVMg diAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKKyAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSAoKGIgfCBjKSAoZCB8IGUpKSop IAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSAoRCB8IEUpKSop CisgICAgREVGSU5FIEEgQVMgdiAlIDUgPSAxLCBCIEFTIHYgJSA1ID0gMiwgQyBBUyB2ICUgNSA9 IDMsIEQgQVMgdiAlIDUgPSA0LCBFIEFTIHYgJSA1ID0gMAorKTsnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSAoKGIgfCBjKSAo ZCB8IGUpKSoKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNCBy b3dzKQorCitEUk9QIFZJRVcgcnByX3Y7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFN0YXRlIFN0YXRpc3RpY3MgVGVz dHMgKHBlYWssIHRvdGFsLCBtZXJnZWQpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNpbXBsZSBxdWFudGlmaWVyIHBh dHRlcm4gLSBBKyB3aXRoIHNob3J0IG1hdGNoZXMgKG5vIG1lcmdpbmcpCitDUkVBVEUgVEVNUCBW SUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMQorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICBs aW5lICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErKSAKKygxIHJvdykK KwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTE2Nyw3ICszMjgsMjUgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEp CiAoOCByb3dzKQogCi0tLSBUZXN0IDIuMjogQWx0ZXJuYXRpb24gcGF0dGVybiAtIG11bHRpcGxl IHN0YXRlIGJyYW5jaGVzCitEUk9QIFZJRVcgcnByX3Y7CistLSBBbHRlcm5hdGlvbiBwYXR0ZXJu IC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNoZXMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBDKSAoRCB8 IEUpKQorICAgIERFRklORQorICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQics IEMgQVMgY2F0ID0gJ0MnLAorICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAg ICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBiIHwgYykgKGQgfCBlKSkgCisoMSByb3cpCisK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC0xODQsNyArMzYzLDcgQEAgV0lORE9XIHcgQVMgKAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKLSAgIFBhdHRl cm46IChhIHwgYiB8IGMgZCB8IGUpCisgICBQYXR0ZXJuOiAoYSB8IGIgfCBjKSAoZCB8IGUpCiAg ICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA1 IHBlYWssIDM2MyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEg dG90YWwsIDQwIHBydW5lZApAQCAtMTkyLDcgKzM3MSwyNiBAQCBXSU5ET1cgdyBBUyAoCiAgICAt PiAgU2VxIFNjYW4gb24gbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDgg cm93cykKIAotLS0gVGVzdCAyLjM6IENvbXBsZXggcGF0dGVybiB3aXRoIGhpZ2ggc3RhdGUgY291 bnQKK0RST1AgVklFVyBycHJfdjsKKy0tIENvbXBsZXggcGF0dGVybiB3aXRoIGhpZ2ggc3RhdGUg Y291bnQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIqIEMrKQorICAg IERFRklORQorICAgICAgICBBIEFTIHYgJSAzID0gMSwKKyAgICAgICAgQiBBUyB2ICUgMyA9IDIs CisgICAgICAgIEMgQVMgdiAlIDMgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgIGxpbmUgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYiogYyspIAorKDEgcm93KQorCiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMjE4LDcgKzQxNiwyMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAoOCByb3dz KQogCi0tLSBUZXN0IDIuNDogR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRl IG1lcmdpbmcKK0RST1AgVklFVyBycHJfdjsKKy0tIEdyb3VwZWQgcGF0dGVybiB3aXRoIHF1YW50 aWZpZXIgLSBzdGF0ZSBtZXJnaW5nCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBIEIpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAg bGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSBiKSsp IAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjQyLDggKzQ1NiwyNCBAQCBXSU5ET1cgdyBBUyAoCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAu MDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLS0tIFRlc3QgMi41OiBTdGF0ZSBleHBsb3Npb24gcGF0 dGVybiAtIG1hbnkgYWx0ZXJuYXRpb25zCitEUk9QIFZJRVcgcnByX3Y7CistLSBTdGF0ZSBleHBs b3Npb24gcGF0dGVybiAtIG1hbnkgYWx0ZXJuYXRpb25zCiAtLSBQYXR0ZXJuIChBfEIpKEF8Qiko QXxCKShBfEIpIGNhbiBjcmVhdGUgbWFueSBwYXJhbGxlbCBzdGF0ZXMKK0NSRUFURSBURU1QIFZJ RVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEg fCBiKSAoYSB8IGIpIChhIHwgYikpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjU4LDcgKzQ4OCw3 IEBAIFdJTkRPVyB3IEFTICgKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgV2luZG93QWdnIChhY3R1YWwgcm93 cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgUGF0dGVybjogKGEgfCBiIGEgfCBiIGEg fCBiIGEgfCBiIGEgfCBiIGEgfCBiIGEgfCBiIGEgfCBiKQorICAgUGF0dGVybjogKGEgfCBiKXs4 fQogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogMTcgcGVhaywgNjMyIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiA5IHBlYWss IDEwMSB0b3RhbCwgMSBwcnVuZWQKQEAgLTI2Nyw3ICs0OTcsMTMwIEBAIFdJTkRPVyB3IEFTICgK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0x MDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLS0tIFRlc3QgMi42OiBIaWdoIHN0YXRlIG1lcmdp bmcgLSBhbHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgorRFJPUCBWSUVXIHJwcl92Owor LS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5IGRpZmZlcmVudCBBTFQKKy0tIFRl c3RzIG1lcmdlQ29uc2VjdXRpdmVBbHRzIGZsdXNoIG9uIEFMVCBjaGFuZ2U6IChBfEIpezJ9IChD fEQpCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAo QyB8IEQpKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMg diAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KChhIHwgYikgKGEgfCBiKSAoYyB8IGQpKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAo QyB8IEQpKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMg diAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg IHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiKXsyfSAoYyB8IGQpCisg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDQgcm93cykKKworRFJP UCBWSUVXIHJwcl92OworLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5IG5vbi1B TFQgZWxlbWVudAorLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gbm9uLUFM VDogKEF8Qil7Mn0gYworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIp IChBIHwgQikgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBD IEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYikgKGEgfCBiKSBjKSAKKygx IHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwg QiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOycpOworICAgICAgICAgICAgICAgICAg ICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpezJ9IGMKKyAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNCByb3dzKQorCitEUk9Q IFZJRVcgcnByX3Y7CistLSBBTFQgcHJlZml4L3N1ZmZpeCBhYnNvcmJlZCBpbnRvIEdST1VQOiAo QXxCKSAoQXxCKSsgKEF8QikgLT4gKEF8Qil7Myx9CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSsgKEEgfCBCKSkKKyAgICBERUZJTkUgQSBBUyB2ICUg MiA9IDAsIEIgQVMgdiAlIDIgPSAxCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgo YSB8IGIpIChhIHwgYikrIChhIHwgYikpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAo QSB8IEIpKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKKyk7Jyk7 CisgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IChhIHwgYil7Myx9CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cworKDQgcm93cykKKworRFJPUCBWSUVXIHJwcl92OworLS0gSGlnaCBzdGF0ZSBtZXJnaW5nIC0g YWx0ZXJuYXRpb24gd2l0aCBwbHVzIHF1YW50aWZpZXIKK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKyBEKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwg QiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQgPSAzLCBEIEFTIHYgJSA0ID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICBs aW5lICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRF Uk4gKChhIHwgYiB8IGMpKyBkKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTI5MSw3ICs2NDQsMjMg QEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0gVGVzdCAyLjc6 IE5lc3RlZCBxdWFudGlmaWVycyBjYXVzaW5nIHN0YXRlIGdyb3d0aAorRFJPUCBWSUVXIHJwcl92 OworLS0gTmVzdGVkIHF1YW50aWZpZXJzIGNhdXNpbmcgc3RhdGUgZ3Jvd3RoCitDUkVBVEUgVEVN UCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIHwgQikrKSspCisgICAgREVGSU5FIEEgQVMg diAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKCgoYSB8IGIpKykrKSAKKygxIHJvdykK KwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTMwNiwxOSArNjc1LDM1IEBAIFdJTkRPVyB3IEFTICgKIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp Ci0gICBQYXR0ZXJuOiAoKGEgfCBiKSspKworICAgUGF0dGVybjogKGEgfCBiKSsKICAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKLSAgIE5GQSBTdGF0ZXM6IDE2IHBlYWss IDczMzQgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgU3RhdGVzOiA4IHBlYWssIDQwMDIgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDQgcGVhaywgMTAwMSB0b3RhbCwgMzMzIHBydW5l ZAogICAgTkZBOiAzMzQgbWF0Y2hlZCAobGVuIDEvMi8yLjApLCAwIG1pc21hdGNoZWQKICAgIE5G QTogMCBhYnNvcmJlZCwgMzMzIHNraXBwZWQgKGxlbiAyLzIvMi4wKQogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMDAuMDAgbG9vcHM9MSkK ICg5IHJvd3MpCiAKLS0tCi0tLSBTZWN0aW9uIDM6IENvbnRleHQgU3RhdGlzdGljcyBUZXN0cyAo cGVhaywgdG90YWwsIGFic29yYmVkLCBza2lwcGVkKQotLS0KLS0tIFRlc3QgMy4xOiBDb250ZXh0 IGFic29ycHRpb24gd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllciBhdCBzdGFydAorRFJPUCBWSUVX IHJwcl92OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBDb250ZXh0IFN0YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFs LCBhYnNvcmJlZCwgc2tpcHBlZCkKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQ29udGV4dCBhYnNvcnB0aW9uIHdpdGgg dW5ib3VuZGVkIHF1YW50aWZpZXIgYXQgc3RhcnQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7Cisg ICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBi KSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTM0Miw3ICs3MjcsMjMgQEAgV0lORE9XIHcgQVMgKAog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUw LjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0IDMuMjogTm8gYWJzb3JwdGlvbiAtIGJv dW5kZWQgcXVhbnRpZmllcgorRFJPUCBWSUVXIHJwcl92OworLS0gTm8gYWJzb3JwdGlvbiAtIGJv dW5kZWQgcXVhbnRpZmllcgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezIs NH0gQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICBs aW5lICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGF7Miw0 fSBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTM2Niw3ICs3NjcsMjMgQEAgV0lORE9XIHcgQVMg KAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTUwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0IDMuMzogQ29udGV4dHMgc2tpcHBl ZCBieSBTS0lQIFBBU1QgTEFTVCBST1cKK0RST1AgVklFVyBycHJfdjsKKy0tIENvbnRleHRzIHNr aXBwZWQgYnkgU0tJUCBQQVNUIExBU1QgUk9XCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBIEIgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCA9 IDIsIEMgQVMgdiAlIDEwID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgIFBBVFRFUk4gKGEgYiBjKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTM4OSw3ICs4MDYs MjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDggcm93cykKIAotLS0gVGVzdCAz LjQ6IEhpZ2ggY29udGV4dCBhYnNvcnB0aW9uIC0gdW5ib3VuZGVkIGdyb3VwCitEUk9QIFZJRVcg cnByX3Y7CistLSBIaWdoIGNvbnRleHQgYWJzb3JwdGlvbiAtIHVuYm91bmRlZCBncm91cAorQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQikrIEMpCisgICAgREVGSU5FIEEg QVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgbGluZSAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSBiKSsgYykg CisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CkBAIC00MTIsMTIgKzg0NSwxMiBAQCBXSU5ET1cgdyBBUyAoCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCiAoOCByb3dzKQogCi0tLQotLS0gU2VjdGlvbiA0OiBNYXRjaCBMZW5ndGgg U3RhdGlzdGljcyBUZXN0cwotLS0KLS0tIFRlc3QgNC4xOiBGaXhlZCBsZW5ndGggbWF0Y2hlcyAt IGFsbCBzYW1lIGxlbmd0aAotU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCi1FWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K0RST1AgVklFVyBycHJfdjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVz dHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gRml4ZWQgbGVuZ3RoIG1hdGNoZXMgLSBhbGwgc2FtZSBsZW5ndGgKK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gbmZh X3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTQyNSwxMiArODU4LDMwIEBAIFdJTkRPVyB3IEFTICgK ICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKICAgICBQQVRURVJOIChBIEIgQyBE IEUpCiAgICAgREVGSU5FCi0gICAgICAgIEEgQVMgY2F0ID0gJydBJycsIEIgQVMgY2F0ID0gJydC JycsIEMgQVMgY2F0ID0gJydDJycsCi0gICAgICAgIEQgQVMgY2F0ID0gJydEJycsIEUgQVMgY2F0 ID0gJydFJycKLSk7Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0 ZXIgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gV2luZG93QWdnIChhY3R1 YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0 ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKKyAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0 ID0gJ0UnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKKyAgICAgICAgICBsaW5lICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOIChhIGIgYyBkIGUpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfdGVzdAor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBB UyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJywKKyAgICAgICAgRCBBUyBjYXQgPSAnJ0Qn JywgRSBBUyBjYXQgPSAnJ0UnJworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9l eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhIGIgYyBkIGUKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKQEAg LTQ0MCw3ICs4OTEsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIFNlcSBTY2FuIG9uIG5mYV90 ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLS0tIFRlc3QgNC4y OiBWYXJpYWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRpZmZlcgorRFJPUCBWSUVX IHJwcl92OworLS0gVmFyaWFibGUgbGVuZ3RoIG1hdGNoZXMgLSBtaW4vbWF4L2F2ZyBkaWZmZXIK K0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTQ2 NCw3ICs5MzEsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAot LS0gVGVzdCA0LjM6IFZlcnkgbG9uZyBtYXRjaGVzCitEUk9QIFZJRVcgcnByX3Y7CistLSBWZXJ5 IGxvbmcgbWF0Y2hlcworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikK KyAgICBERUZJTkUgQSBBUyB2IDw9IDE5NSwgQiBBUyB2ID4gMTk1CispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCiBTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIg dwpAQCAtNDg4LDcgKzk3MSwyNSBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAwLjAwIGxvb3BzPTEpCiAoOSBy b3dzKQogCi0tLSBUZXN0IDQuNDogTWl4IG9mIHNob3J0IGFuZCBsb25nIG1hdGNoZXMKK0RST1Ag VklFVyBycHJfdjsKKy0tIE1peCBvZiBzaG9ydCBhbmQgbG9uZyBtYXRjaGVzCitDUkVBVEUgVEVN UCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFT ICh2ICUgMjAgPD4gMCkgQU5EICh2ICUgMjAgPD0gMTAgT1IgdiAlIDIwID4gMTUpLAorICAgICAg ICBCIEFTIHYgJSAyMCA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01MTQsMTEgKzEwMTUsMzQg QEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0KLS0tIFNlY3Rp b24gNTogTWlzbWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKLS0tCi0tLSBUZXN0IDUuMTog UGF0dGVybiB0aGF0IGNhdXNlcyBtaXNtYXRjaGVzIHdpdGggbGVuZ3RoID4gMQorRFJPUCBWSUVX IHJwcl92OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBNaXNtYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cworLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBQYXR0ZXJuIHRoYXQgY2F1c2VzIG1pc21hdGNoZXMgd2l0aCBsZW5ndGggPiAxCiAt LSBNaXNtYXRjaCBoYXBwZW5zIHdoZW4gcGFydGlhbCBtYXRjaCBmYWlscyBhZnRlciBwcm9jZXNz aW5nIG11bHRpcGxlIHJvd3MKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNFTEVDVCB2LAorICAgICAgICAgICBDQVNFIFdIRU4g diAlIDEwIElOICgxLDIsMykgVEhFTiAnQScKKyAgICAgICAgICAgICAgICBXSEVOIHYgJSAxMCBJ TiAoNCw1KSBUSEVOICdCJworICAgICAgICAgICAgICAgIFdIRU4gdiAlIDEwID0gNiBUSEVOICdD JworICAgICAgICAgICAgICAgIEVMU0UgJ1gnIEVORCBBUyBjYXQKKyAgICBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDApIEFTIHModikKKykgdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIrIEMpCisgICAgREVGSU5FIEEg QVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgbGluZSAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYisgYykgCiso MSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CkBAIC01NDksNyArMTA3MywzNSBAQCBXSU5ET1cgdyBBUyAoCiAgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAw IGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0IDUuMjogTG9uZyBwYXJ0aWFsIG1hdGNoZXMg dGhhdCBmYWlsCitEUk9QIFZJRVcgcnByX3Y7CistLSBMb25nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0 IGZhaWwKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gKAorICAgIFNFTEVDVCBpIEFTIHYsCisgICAgICAgICAgIENBU0UKKyAgICAgICAgICAg ICAgIFdIRU4gaSA8PSAyMCBUSEVOICdBJworICAgICAgICAgICAgICAgV0hFTiBpIDw9IDI1IFRI RU4gJ0InCisgICAgICAgICAgICAgICBXSEVOIGkgPSAyNiBUSEVOICdYJyAgLS0gYnJlYWtzIHRo ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICBXSEVOIGkgPD0gNTAgVEhFTiAnQScKKyAgICAgICAg ICAgICAgIFdIRU4gaSA8PSA1NSBUSEVOICdCJworICAgICAgICAgICAgICAgV0hFTiBpID0gNTYg VEhFTiAnQycgIC0tIGNvbXBsZXRlcyBwYXR0ZXJuCisgICAgICAgICAgICAgICBFTFNFICdZJwor ICAgICAgICAgICBFTkQgQVMgY2F0CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIGkK KykgdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEErIEIrIEMpCisgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9 ICdCJywgQyBBUyBjYXQgPSAnQycKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgbGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYisgYykgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01ODUs MTAgKzExMzcsMjYgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIGkgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0t LQotLS0gU2VjdGlvbiA2OiBKU09OIEZvcm1hdCBUZXN0cwotLS0KLS0tIFRlc3QgNi4xOiBKU09O IGZvcm1hdCBvdXRwdXQgd2l0aCBhbGwgc3RhdGlzdGljcworRFJPUCBWSUVXIHJwcl92OworLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBKU09OIEZvcm1hdCBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBKU09OIGZvcm1hdCBvdXRwdXQg d2l0aCBhbGwgc3RhdGlzdGljcworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB KyBCKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgbGlu ZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYispIAorKDEg cm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNP TikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTY0Nyw3ICsxMjE1LDIzIEBAIFdJTkRPVyB3 IEFTICgKICBdCiAoMSByb3cpCiAKLS0tIFRlc3QgNi4yOiBKU09OIGZvcm1hdCB3aXRoIG1hdGNo IGxlbmd0aCBzdGF0aXN0aWNzCitEUk9QIFZJRVcgcnByX3Y7CistLSBKU09OIGZvcm1hdCB3aXRo IG1hdGNoIGxlbmd0aCBzdGF0aXN0aWNzCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAg ICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYikg CisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1B VCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzA5LDEwICsxMjkzLDI2IEBAIFdJ TkRPVyB3IEFTICgKICBdCiAoMSByb3cpCiAKLS0tCi0tLSBTZWN0aW9uIDc6IFhNTCBGb3JtYXQg VGVzdHMKLS0tCi0tLSBUZXN0IDcuMTogWE1MIGZvcm1hdCBvdXRwdXQKK0RST1AgVklFVyBycHJf djsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gWE1MIEZvcm1hdCBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBYTUwgZm9ybWF0IG91 dHB1dAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5F IEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFUIFhNTCkKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTc3MSwxMCArMTM3MSwxOTEgQEAgV0lORE9XIHcgQVMgKAogIDwvZXhwbGFpbj4KICgx IHJvdykKIAotLS0KLS0tIFNlY3Rpb24gODogTXVsdGlwbGUgUGFydGl0aW9ucyBUZXN0cwotLS0K LS0tIFRlc3QgOC4xOiBTdGF0aXN0aWNzIGFjcm9zcyBtdWx0aXBsZSBwYXJ0aXRpb25zCitEUk9Q IFZJRVcgcnByX3Y7CistLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNoIHN0YXRpc3RpY3MKKy0t IFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIsNCB0d2ljZSBjYXVzaW5n IG1pc21hdGNoZXMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gKFZBTFVFUyAoMSksKDIpLCg0KSwgKDEpLCgyKSwoNCksICgxKSwoMiksKDMp KSBBUyB0KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIs IEMgQVMgdiA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworICAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQ QVRURVJOIChhIGIgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYsIEZPUk1BVCBKU09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoVkFM VUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB IEIgQykKKyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMworKScp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICJOb2RlIFR5cGUiOiAiV2luZG93QWdnIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBc3luYyBDYXBhYmxl IjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJBY3R1YWwgUm93cyI6IDkuMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJBY3R1YWwgTG9vcHMiOiAxLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJEaXNhYmxl ZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJXaW5kb3ciOiAidyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKSIsKworICAgICAgICJQYXR0ZXJuIjogImEgYiBjIiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJT dG9yYWdlIjogIk1lbW9yeSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICJNYXhpbXVtIFN0b3JhZ2UiOiAwLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU3RhdGVzIFBlYWsi OiAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJORkEgU3RhdGVzIFRvdGFsIjogMTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU3RhdGVzIE1lcmdlZCI6IDAsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4 dHMgUGVhayI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICJORkEgQ29udGV4dHMgVG90YWwiOiAxMCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgQWJzb3JiZWQiOiAw LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEg Q29udGV4dHMgU2tpcHBlZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgUHJ1bmVkIjogNiwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2hlZCI6IDEsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICJORkEgTWlzbWF0Y2hlZCI6IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIE1pbiI6IDMsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVu Z3RoIE1heCI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIEF2ZyI6IDMuMCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0Y2ggTGVuZ3RoIE1pbiI6IDMs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlz bWF0Y2ggTGVuZ3RoIE1heCI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJORkEgTWlzbWF0Y2ggTGVuZ3RoIEF2ZyI6IDMuMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJQbGFucyI6IFsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAiTm9kZSBUeXBlIjogIlZhbHVlcyBTY2FuIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiUGFyZW50IFJlbGF0 aW9uc2hpcCI6ICJPdXRlciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWxpYXMi OiAiKlZBTFVFUyoiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAiQWN0dWFsIFJvd3MiOiA5LjAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAi RGlzYWJsZWQiOiBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIF0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB9 LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAiVHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBdICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworIF0KKygxIHJvdykKKworRFJPUCBWSUVXIHJwcl92OworLS0g SlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRleHQgc3RhdGlzdGljcworLS0gQWx0ZXJuYXRp b24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyBjYXVzZXMgbWFueSBjb250ZXh0cyB0 byBiZSBza2lwcGVkCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIp IChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikp CisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBiKSAoYSB8IGIp IChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpKSAKKygxIHJv dykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFUIEpTT04p CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBC KSAoQSB8IEIpIChBIHwgQikpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAorKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0 ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICJOb2RlIFR5cGUiOiAiV2luZG93QWdnIiwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBc3lu YyBDYXBhYmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJBY3R1YWwgUm93cyI6IDEwMC4wMCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBY3R1YWwgTG9vcHMiOiAxLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICJXaW5kb3ciOiAidyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKSIsKworICAgICAgICJQYXR0ZXJuIjogIihh IHwgYil7OH0iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJTdG9yYWdlIjogIk1lbW9yeSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJNYXhpbXVtIFN0b3JhZ2UiOiAwLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU3Rh dGVzIFBlYWsiOiAxNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJORkEgU3RhdGVzIFRvdGFsIjogNjMyLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU3RhdGVzIE1lcmdlZCI6IDAs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJO RkEgQ29udGV4dHMgUGVhayI6IDksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgVG90YWwiOiAxMDEsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgQWJz b3JiZWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJORkEgQ29udGV4dHMgU2tpcHBlZCI6IDg0LCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgUHJ1bmVkIjogMSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2hl ZCI6IDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICJORkEgTWlzbWF0Y2hlZCI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIE1pbiI6IDgs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEg TWF0Y2ggTGVuZ3RoIE1heCI6IDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIEF2ZyI6IDguMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0Y2ggTGVuZ3Ro IE1pbiI6IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICJORkEgTWlzbWF0Y2ggTGVuZ3RoIE1heCI6IDQsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0Y2ggTGVuZ3RoIEF2ZyI6IDMuMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU2tpcHBlZCBM ZW5ndGggTWluIjogMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJORkEgU2tpcHBlZCBMZW5ndGggTWF4IjogNywgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU2tpcHBlZCBMZW5ndGggQXZnIjogNC4w LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJQbGFucyI6 IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiTm9kZSBUeXBlIjogIkZ1bmN0 aW9uIFNjYW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJPdXRlciIsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQXN5bmMgQ2FwYWJs ZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAiRnVuY3Rpb24gTmFtZSI6ICJnZW5lcmF0ZV9zZXJpZXMiLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWxpYXMiOiAicyIsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWN0dWFs IFJvd3MiOiAxMDAuMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB9LCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAi VHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor IF0KKygxIHJvdykKKworRFJPUCBWSUVXIHJwcl92OworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBNdWx0aXBsZSBQYXJ0 aXRpb25zIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIFN0YXRpc3RpY3MgYWNyb3NzIG11bHRpcGxlIHBhcnRp dGlvbnMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gKAorICAgIFNFTEVDVCBwLCB2CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykg cCwKKyAgICAgICAgIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIHAKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUg PSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK KyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEr IGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODA4LDcgKzE1ODksMjkgQEAgV0lORE9XIHcgQVMg KAogICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHYg KGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTMpCiAoMTQgcm93cykKIAotLS0gVGVzdCA4LjI6IERp ZmZlcmVudCBwYXR0ZXJuIGJlaGF2aW9yIHBlciBwYXJ0aXRpb24KK0RST1AgVklFVyBycHJfdjsK Ky0tIERpZmZlcmVudCBwYXR0ZXJuIGJlaGF2aW9yIHBlciBwYXJ0aXRpb24KK0NSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNFTEVD VAorICAgICAgICBDQVNFIFdIRU4gdiA8PSAyNSBUSEVOIDEgRUxTRSAyIEVORCBBUyBwLAorICAg ICAgICB2ICUgMTAgQVMgdmFsCisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIHYKKykg dAorV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBwCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2YWwgPCA1 LCBCIEFTIHZhbCA+PSA1CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODQxLDEyICsxNjQ0LDEyIEBA IFdJTkRPVyB3IEFTICgKICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyB2IChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDEyIHJvd3MpCiAKLS0tCi0tLSBT ZWN0aW9uIDk6IEVkZ2UgQ2FzZXMKLS0tCi0tLSBUZXN0IDkuMTogRW1wdHkgcmVzdWx0IHNldAot U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCi1FWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK0RST1AgVklFVyBycHJfdjsK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gRWRnZSBDYXNlcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBFbXB0eSByZXN1bHQgc2V0CitDUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC04NTQsNyArMTY1Nywy MyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCiAg ICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgPSAxLCBCIEFTIHYgPSAyCi0pOycp OworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7Cisg ICAgICAgbGluZSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiKSAK KygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEIpCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIKKyk7Jyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MC4wMCBsb29wcz0x KQpAQCAtODYzLDcgKzE2ODIsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTAuMDAgbG9vcHM9MSkKICg0IHJv d3MpCiAKLS0tIFRlc3QgOS4yOiBTaW5nbGUgcm93CitEUk9QIFZJRVcgcnByX3Y7CistLSBTaW5n bGUgcm93CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUg QSBBUyBUUlVFCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKKyAgICAgIGxpbmUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEp IAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODg2LDcgKzE3MjEsMjUgQEAgV0lORE9XIHcgQVMgKAog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEu MDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLS0tIFRlc3QgOS4zOiBQYXR0ZXJuIGxvbmdlciB0aGFu IGRhdGEKK0RST1AgVklFVyBycHJfdjsKKy0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQorQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQgRSBGIEcgSCBJIEopCisgICAg REVGSU5FCisgICAgICAgIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMgdiA9IDMsIEQgQVMg diA9IDQsIEUgQVMgdiA9IDUsCisgICAgICAgIEYgQVMgdiA9IDYsIEcgQVMgdiA9IDcsIEggQVMg diA9IDgsIEkgQVMgdiA9IDksIEogQVMgdiA9IDEwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEg YiBjIGQgZSBmIGcgaCBpIGopIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTExLDcgKzE3NjQsMjMg QEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTUuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLS0tIFRlc3QgOS40OiBB bGwgcm93cyBtYXRjaCBhcyBzaW5nbGUgbWF0Y2gKK0RST1AgVklFVyBycHJfdjsKKy0tIEFsbCBy b3dzIG1hdGNoIGFzIHNpbmdsZSBtYXRjaAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBUUlVFCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgIGxpbmUgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLQorICAgUEFUVEVSTiAoYSspIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTM1LDEwICsx ODA0LDI2IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0KLS0t IFNlY3Rpb24gMTA6IENvbXBsZXggUGF0dGVybiBUZXN0cwotLS0KLS0tIFRlc3QgMTAuMTogTmVz dGVkIGdyb3VwcworRFJPUCBWSUVXIHJwcl92OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBDb21wbGV4IFBhdHRlcm4g VGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gTmVzdGVkIGdyb3VwcworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoKEEgQikgQykrKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2 ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKCgoYSBiKSBjKSspIAorKDEgcm93KQorCiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtOTYyLDcgKzE4NDcsMjUgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiAo OSByb3dzKQogCi0tLSBUZXN0IDEwLjI6IE11bHRpcGxlIGFsdGVybmF0aW9ucworRFJPUCBWSUVX IHJwcl92OworLS0gTXVsdGlwbGUgYWx0ZXJuYXRpb25zCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIG5mYV90ZXN0CitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAo QyB8IEQgfCBFKSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0 ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKKyAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0 ID0gJ0UnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKKyAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYikgKGMgfCBkIHwgZSkpIAorKDEg cm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNv dW50KCopIE9WRVIgdwpAQCAtOTc5LDcgKzE4ODIsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQot ICAgUGF0dGVybjogKGEgfCBiIGMgfCBkIHwgZSkKKyAgIFBhdHRlcm46IChhIHwgYikgKGMgfCBk IHwgZSkKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBT dGF0ZXM6IDUgcGVhaywgMjgyIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBl YWssIDEwMSB0b3RhbCwgNjAgcHJ1bmVkCkBAIC05ODcsNyArMTg5MCwyMyBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgU2VxIFNjYW4gb24gbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29w cz0xKQogKDggcm93cykKIAotLS0gVGVzdCAxMC4zOiBPcHRpb25hbCBlbGVtZW50cworRFJPUCBW SUVXIHJwcl92OworLS0gT3B0aW9uYWwgZWxlbWVudHMKK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCPyBDKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUg NCA9IDIsIEMgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgbGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICBQQVRURVJOIChhIGI/IGMpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTAxMCw3 ICsxOTI5LDIzIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDggcm93cykKIAotLS0g VGVzdCAxMC40OiBCb3VuZGVkIHF1YW50aWZpZXJzCitEUk9QIFZJRVcgcnByX3Y7CistLSBCb3Vu ZGVkIHF1YW50aWZpZXJzCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezIs NX0gQikKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAg IGxpbmUgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYXsy LDV9IGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTAzNCw3ICsxOTY5LDIzIEBAIFdJTkRPVyB3 IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLS0tIFRlc3QgMTAuNTogU3RhciBxdWFu dGlmaWVyCitEUk9QIFZJRVcgcnByX3Y7CistLSBTdGFyIHF1YW50aWZpZXIKK0NSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKiBDKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA9 IDEsIEIgQVMgdiAlIDEwIElOICgyLDMsNCw1LDYsNyw4KSwgQyBBUyB2ICUgMTAgPSA5CispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAg bGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIqIGMp IAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTA1NywxMCArMjAwOCwyNiBAQCBXSU5ET1cgdyBBUyAo CiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9 NTAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLS0tCi0tLSBTZWN0aW9uIDExOiBSZWFsLXdvcmxk IFBhdHRlcm4gRXhhbXBsZXMKLS0tCi0tLSBUZXN0IDExLjE6IFN0b2NrIHByaWNlIHBhdHRlcm4g LSBWLXNoYXBlIChkb3duIHRoZW4gdXApCitEUk9QIFZJRVcgcnByX3Y7CistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFJl YWwtd29ybGQgUGF0dGVybiBFeGFtcGxlcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBTdG9jayBwcmljZSBwYXR0ZXJu IC0gVi1zaGFwZSAoZG93biB0aGVuIHVwKQorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfY29tcGxleAorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEQrIFUrKQorICAgIERF RklORSBEIEFTIHRyZW5kID0gJ0QnLCBVIEFTIHRyZW5kID0gJ1UnCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgbGluZSAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoZCsgdSspIAorKDEgcm93KQorCiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtMTA4NCw3ICsyMDUxLDIzIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBTZXEgU2Nh biBvbiBuZmFfY29tcGxleCAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAK LS0tIFRlc3QgMTEuMjogU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUsIGRv d24pCitEUk9QIFZJRVcgcnByX3Y7CistLSBTdG9jayBwcmljZSBwYXR0ZXJuIC0gcGVhayAodXAs IHN0YWJsZSwgZG93bikKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gbmZhX2NvbXBsZXgKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChVKyBTKiBEKykKKyAgICBERUZJTkUgVSBB UyB0cmVuZCA9ICdVJywgUyBBUyB0cmVuZCA9ICdTJywgRCBBUyB0cmVuZCA9ICdEJworKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICBs aW5lICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKHUrIHMq IGQrKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTExMDgsNyArMjA5MSwyMyBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgU2VxIFNjYW4gb24gbmZhX2NvbXBsZXggKGFjdHVhbCByb3dzPTMwLjAwIGxv b3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0IDExLjM6IENvbnNlY3V0aXZlIGluY3JlYXNpbmcg dmFsdWVzICh1c2luZyBQUkVWKQorRFJPUCBWSUVXIHJwcl92OworLS0gQ29uc2VjdXRpdmUgaW5j cmVhc2luZyB2YWx1ZXMgKHVzaW5nIFBSRVYpCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKEF7Myx9KQorICAgIERFRklORSBBIEFTIHYgPiBQUkVWKHYpIE9SIFBSRVYodikgSVMg TlVMTAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CisgICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KGF7Myx9KSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTExMzIsMTAgKzIxMzEsMjYgQEAgV0lORE9X IHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLQotLS0gU2VjdGlvbiAxMjogUGVy Zm9ybWFuY2Utb3JpZW50ZWQgVGVzdHMKLS0tCi0tLSBUZXN0IDEyLjE6IExhcmdlIGRhdGFzZXQg d2l0aCBzaW1wbGUgcGF0dGVybgorRFJPUCBWSUVXIHJwcl92OworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQZXJmb3Jt YW5jZS1vcmllbnRlZCBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBMYXJnZSBkYXRhc2V0IHdpdGggc2ltcGxl IHBhdHRlcm4KK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAg REVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTExNTgsNyArMjE3MywyMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQogKDggcm93 cykKIAotLS0gVGVzdCAxMi4yOiBMYXJnZSBkYXRhc2V0IHdpdGggYWJzb3JwdGlvbgorRFJPUCBW SUVXIHJwcl92OworLS0gTGFyZ2UgZGF0YXNldCB3aXRoIGFic29ycHRpb24KK0NSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSAxMDAg PD4gMCwgQiBBUyB2ICUgMTAwID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tCisgICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTExODIsNyArMjIx MywyMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0gVGVz dCAxMi4zOiBIaWdoIHN0YXRlIG1lcmdlIHJhdGlvCitEUk9QIFZJRVcgcnByX3Y7CistLSBIaWdo IHN0YXRlIG1lcmdlIHJhdGlvCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgo QSB8IEIpKyBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMg QVMgdiAlIDMgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKKyAgICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYikrIGMpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTIw NiwxMCArMjI1MywyNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQog Ci0tLQotLS0gU2VjdGlvbiAxMzogSU5JVElBTCB2cyBubyBJTklUSUFMIGNvbXBhcmlzb24KLS0t Ci0tLSBUZXN0IDEzLjE6IFdpdGggSU5JVElBTCBrZXl3b3JkCitEUk9QIFZJRVcgcnByX3Y7Cist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIElOSVRJQUwgdnMgbm8gSU5JVElBTCBjb21wYXJpc29uCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFdp dGggSU5JVElBTCBrZXl3b3JkCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIElOSVRJQUwKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUg PSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK KyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEr IGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTIzNCw3ICsyMjk4LDIzIEBAIFdJTkRPVyB3IEFT ICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0gVGVzdCAxMy4yOiBXaXRob3V0IElOSVRJ QUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBjdXJyZW50bHkpCitEUk9QIFZJRVcgcnByX3Y7Cist LSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBjdXJyZW50bHkpCitDUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMjU4LDEwICsy MzM4LDI2IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0KLS0t IFNlY3Rpb24gMTQ6IFF1YW50aWZpZXIgVmFyaWF0aW9ucwotLS0KLS0tIFRlc3QgMTQuMTogUGx1 cyBxdWFudGlmaWVyCitEUk9QIFZJRVcgcnByX3Y7CistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFF1YW50aWZpZXIgVmFy aWF0aW9ucworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBQbHVzIHF1YW50aWZpZXIKK0NSRUFURSBURU1QIFZJRVcgcnBy X3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPD4gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICBsaW5lICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErKSAKKygxIHJvdykKKwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTEyODUsNyArMjM4MSwyMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICg5 IHJvd3MpCiAKLS0tIFRlc3QgMTQuMjogU3RhciBxdWFudGlmaWVyICh6ZXJvIG9yIG1vcmUpCitE Uk9QIFZJRVcgcnByX3Y7CistLSBTdGFyIHF1YW50aWZpZXIgKHplcm8gb3IgbW9yZSkKK0NSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSogQikKKyAgICBERUZJTkUgQSBBUyB2ICUg NCBJTiAoMSwgMiksIEIgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEqIGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTMwOSw3 ICsyNDIxLDIzIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0g VGVzdCAxNC4zOiBRdWVzdGlvbiBtYXJrICh6ZXJvIG9yIG9uZSkKK0RST1AgVklFVyBycHJfdjsK Ky0tIFF1ZXN0aW9uIG1hcmsgKHplcm8gb3Igb25lKQorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBPyBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0 ID0gMiwgQyBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgIFBBVFRFUk4gKGE/IGIgYykgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMzMzLDcg KzI0NjEsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBU ZXN0IDE0LjQ6IEV4YWN0IGNvdW50IHtufQorRFJPUCBWSUVXIHJwcl92OworLS0gRXhhY3QgY291 bnQge259CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7M30gQikKKyAgICBE RUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYXszfSBiKSAKKygxIHJvdykKKwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKQEAgLTEzNTYsNyArMjUwMCwyMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkK ICg4IHJvd3MpCiAKLS0tIFRlc3QgMTQuNTogUmFuZ2Uge24sbX0KK0RST1AgVklFVyBycHJfdjsK Ky0tIFJhbmdlIHtuLG19CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Miw0 fSBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgIGxp bmUgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYXsyLDR9 IGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTM4MCw3ICsyNTQwLDIzIEBAIFdJTkRPVyB3IEFT ICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0gVGVzdCAxNC42OiBBdCBsZWFzdCB7bix9 CitEUk9QIFZJRVcgcnByX3Y7CistLSBBdCBsZWFzdCB7bix9CitDUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEF7Myx9IEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIg QVMgdiAlIDEwID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CisgICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICBQQVRURVJOIChhezMsfSBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0MDQsMTEgKzI1 ODAsMjcgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLQotLS0g U2VjdGlvbiAxNTogUmVncmVzc2lvbiBUZXN0cyBmb3IgU3RhdGlzdGljcyBBY2N1cmFjeQotLS0K LS0tIFRlc3QgMTUuMTogVmVyaWZ5IHN0YXRlIGNvdW50IGFjY3VyYWN5CitEUk9QIFZJRVcgcnBy X3Y7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIFJlZ3Jlc3Npb24gVGVzdHMgZm9yIFN0YXRpc3RpY3MgQWNjdXJhY3kK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gVmVyaWZ5IHN0YXRlIGNvdW50IGFjY3VyYWN5CiAtLSBQYXR0ZXJuIEErIEIg d2l0aCAyMCByb3dzIHNob3VsZCBzaG93IHByZWRpY3RhYmxlIHN0YXRlIGJlaGF2aW9yCitDUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNDMyLDcgKzI2 MjQsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0 IDE1LjI6IFZlcmlmeSBjb250ZXh0IGNvdW50IHdpdGgga25vd24gYWJzb3JwdGlvbgorRFJPUCBW SUVXIHJwcl92OworLS0gVmVyaWZ5IGNvbnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9u CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIgQykKKyAgICBERUZJTkUg QSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFTIHYgJSAxMCA9IDgsIEMgQVMgdiAl IDEwID0gOQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CisgICAgICAgIGxpbmUgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFU VEVSTiAoYSsgYiBjKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0NTYsNyArMjY2NCwyMyBAQCBX SU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLS0tIFRlc3QgMTUuMzogVmVy aWZ5IG1hdGNoIGxlbmd0aCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCitEUk9QIFZJRVcgcnBy X3Y7CistLSBWZXJpZnkgbWF0Y2ggbGVuZ3RoIHdpdGggZml4ZWQtbGVuZ3RoIHBhdHRlcm4KK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMg diAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICBsaW5lICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIgYykgCisoMSByb3cpCisK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC0xNDc5LDEwICsyNzAzLDI2IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0x KQogKDggcm93cykKIAotLS0KLS0tIFNlY3Rpb24gMTY6IEFsdGVybmF0aW9uIFBhdHRlcm4gVGVz dHMKLS0tCi0tLSBUZXN0IDE2LjE6IFNpbXBsZSBhbHRlcm5hdGlvbgorRFJPUCBWSUVXIHJwcl92 OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBBbHRlcm5hdGlvbiBQYXR0ZXJuIFRlc3RzCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNpbXBs ZSBhbHRlcm5hdGlvbgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBuZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgQykKKyAgICBERUZJTkUgQSBBUyBj YXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJworKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgbGluZSAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBiKSBjKSAK KygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTE1MDUsNyArMjc0NSwyNSBAQCBXSU5ET1cgdyBBUyAoCiAg ICAtPiAgU2VxIFNjYW4gb24gbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQog KDggcm93cykKIAotLS0gVGVzdCAxNi4yOiBNdWx0aXBsZSBpdGVtcyBpbiBhbHRlcm5hdGlvbgor RFJPUCBWSUVXIHJwcl92OworLS0gTXVsdGlwbGUgaXRlbXMgaW4gYWx0ZXJuYXRpb24KK0NSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gbmZhX3Rl c3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOICgoQSB8IEIgfCBDIHwgRCkgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQg PSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKKyAgICAgICAgRCBBUyBjYXQg PSAnRCcsIEUgQVMgY2F0ID0gJ0UnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBiIHwgYyB8IGQp IGUpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUzMCw3ICsyNzg4LDIzIEBAIFdJTkRPVyB3IEFT ICgKICAgIC0+ICBTZXEgU2NhbiBvbiBuZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCiAoOCByb3dzKQogCi0tLSBUZXN0IDE2LjM6IEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmll cnMKK0RST1AgVklFVyBycHJfdjsKKy0tIEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmllcnMKK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSsgQykKKyAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgbGlu ZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8 IGIpKyBjKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE1NTQsMTAgKzI4MjgsMjU5IEBAIFdJTkRP VyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0KLS0tIFNlY3Rpb24gMTc6IEdy b3VwIFBhdHRlcm4gVGVzdHMKLS0tCi0tLSBUZXN0IDE3LjE6IFNpbXBsZSBncm91cAorRFJPUCBW SUVXIHJwcl92OworLS0gTXVsdGlwbGUgYWx0ZXJuYXRpdmVzICg0KykKK0NSRUFURSBURU1QIFZJ RVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgfCBCIHwgQyB8IEQg fCBFKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAl IDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgICBsaW5lICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJO IChhIHwgYiB8IGMgfCBkIHwgZSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSB8IEIgfCBDIHwgRCB8IEUpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1 ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAorKTsn KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAo Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogKGEgfCBiIHwgYyB8IGQgfCBlKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMKKyg0IHJvd3MpCisKK0RST1AgVklFVyBycHJfdjsKKy0tIEFsdGVybmF0aW9u IGF0IHN0YXJ0CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKChBIHwgQikgQyBEKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2 ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYikg YyBkKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIHwgQikgQyBEKQorICAg IERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBE IEFTIHYgJSA0ID0gMworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWlu X2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiKSBjIGQKKyAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNCByb3dzKQorCitEUk9QIFZJRVcgcnByX3Y7CistLSBN dWx0aXBsZSBzZXF1ZW50aWFsIGFsdGVybmF0aW9ucworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgfCBCKSBDIChEIHwgRSkgRikKKyAg ICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2ID0gMiwg RCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2ID0gNQorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAg ICBsaW5lICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICBQQVRURVJOICgoYSB8IGIpIGMgKGQgfCBlKSBmKSAKKygxIHJvdykKKworU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQgfCBFKSBGKQorICAgIERFRklORSBBIEFTIHYgJSA2 ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAlIDYgPSAyLCBEIEFTIHYgJSA2ID0gMywgRSBB UyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1CispOycpOworICAgICAgICAgICAgICAgICAgICAg ICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpIGMgKGQgfCBlKSBm CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDQgcm93cykKKwor RFJPUCBWSUVXIHJwcl92OworLS0gUXVhbnRpZmllZCBhbHRlcm5hdGl2ZXMKK0NSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEErIHwgQispIEMp CisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9 IDIKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor ICAgICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOICgoYSsgfCBiKykgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO ICgoQSsgfCBCKykgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAx LCBDIEFTIHYgJSAzID0gMgorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBs YWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGErIiB8IGIrIikgYworICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg0IHJvd3MpCisKK0RST1AgVklFVyBycHJfdjsK Ky0tIEFsdGVybmF0aW9uIGF0IGVuZAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIgKEMgfCBEKSkKKyAgICBERUZJTkUgQSBBUyB2ICUg NCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAg ICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRU RVJOIChhIGIgKGMgfCBkKSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIg KEMgfCBEKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFT IHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAg ICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEgYiAoYyB8IGQpCisgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDQgcm93cykKKworRFJPUCBWSUVX IHJwcl92OworLS0gTmVzdGVkIEFMVCBhdCBzdGFydCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFM VAorLS0gUGF0dGVybjogKEEgKChCIHwgQykgRCB8IEUpKSAtIHByZWNlZGluZyBWQVIgKyBpbm5l ciBBTFQgYXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSBEIHwgRSkpCisgICAgREVG SU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMg diAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgKChiIHwgYykg ZCB8IGUpKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykgRCB8 IEUpKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAl IDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKKyk7Jyk7CisgICAgICAgICAg ICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEgKChiIHwg YykgZCB8IGUpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDQg cm93cykKKworRFJPUCBWSUVXIHJwcl92OworLS0gTmVzdGVkIEFMVCBhdCBlbmQgb2YgYnJhbmNo IGluc2lkZSBvdXRlciBBTFQKKy0tIFBhdHRlcm46IChDIChBIHwgQikgfCBEKSAtIGlubmVyIEFM VCBpcyBsYXN0IGVsZW1lbnQgaW4gb3V0ZXIgYnJhbmNoCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEMgKEEgfCBCKSB8IEQpCisgICAgREVG SU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMg diAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKKyAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIFBBVFRFUk4gKGMgKGEgfCBiKSB8IGQpIAorKDEgcm93KQorCitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAs IEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IChjIChhIHwgYikgfCBkKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMKKyg0IHJvd3MpCisKK0RST1AgVklFVyBycHJfdjsKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gR3JvdXAgUGF0dGVy biBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBTaW1wbGUgZ3JvdXAKK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgQikrKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUg MiA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRF Uk4gKChhIGIpKykgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNTgxLDcgKzMxMDQsMjMgQEAgV0lO RE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFj dHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0IDE3LjI6IEdyb3Vw IHdpdGggYm91bmRlZCBxdWFudGlmaWVyCitEUk9QIFZJRVcgcnByX3Y7CistLSBHcm91cCB3aXRo IGJvdW5kZWQgcXVhbnRpZmllcgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgo QSBCKXsyLDR9KQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyk7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAg ICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVS TiAoKGEgYil7Miw0fSkgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNjA1LDcgKzMxNDQsMjMgQEAg V0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0IDE3LjM6IE5l c3RlZCBncm91cHMKK0RST1AgVklFVyBycHJfdjsKKy0tIE5lc3RlZCBncm91cHMKK0NSRUFURSBU RU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCisgICAgREVGSU5FIEEgQVMg diAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKCgoYSBiKXsyfSkrKSAKKygxIHJvdykK KwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTE2MjksMTAgKzMxODQsMTU4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29w cz0xKQogKDkgcm93cykKIAotLS0KLS0tIFNlY3Rpb24gMTg6IFdpbmRvdyBGdW5jdGlvbiBDb21i aW5hdGlvbnMKLS0tCi0tLSBUZXN0IDE4LjE6IGNvdW50KCopIHdpdGggcGF0dGVybgorRFJPUCBW SUVXIHJwcl92OworLS0gRGVlcCBuZXN0aW5nICgzKyBsZXZlbHMpCitDUkVBVEUgVEVNUCBWSUVX IHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoKEEgfCBCKSspKykrKQor ICAgIERFRklORSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgbGluZSAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgo KChhIHwgYikrKSspKykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKChBIHwg QikrKSspKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCispOycp OworICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0 ZXJuOiAoYSB8IGIpKworICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMK Kyg0IHJvd3MpCisKK0RST1AgVklFVyBycHJfdjsKKy0tIEJvdW5kZWQgcXVhbnRpZmllciBvbiBh bHRlcm5hdGlvbgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIg QVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICBsaW5lICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYil7MiwzfSBj KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2 MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIHwgQil7MiwzfSBDKQorICAg IERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCisp OycpOworICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoYSB8IGIpezIsM30gYworICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMKKyg0IHJvd3MpCisKK0RST1AgVklFVyBycHJfdjsKKy0tIE5lc3RlZCBncm91cHMg d2l0aCBxdWFudGlmaWVycworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOICgoKEEgQikrIEMpKikKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAs IEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKCgoYSBiKSsgYykqKSAKKygx IHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQorICAgIERFRklORSBB IEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOycpOworICAg ICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAo KGEnIGInKSsiIGMpKgorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMK Kyg0IHJvd3MpCisKK0RST1AgVklFVyBycHJfdjsKKy0tIFBhcnRpYWwgbmVzdGVkIHF1YW50aWZp Y2F0aW9uCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKChBIChCIEMpKykqKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUg MyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgbGluZSAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgKGIgYykrKSopIAorKDEgcm93KQorCitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoKEEgKEIgQykrKSopCisgICAgREVGSU5FIEEgQVMgdiAlIDMg PSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7Jyk7CisgICAgICAgICAgICAg ICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIChiIGMpKykq CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDQgcm93cykKKwor RFJPUCBWSUVXIHJwcl92OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25z CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIGNvdW50KCopIHdpdGggcGF0dGVybgorQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAl IDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KGErIGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTY1Niw3ICszMzU5LDIzIEBAIFdJTkRPVyB3 IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0zMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotLS0gVGVzdCAxOC4yOiBmaXJzdF92YWx1 ZSB3aXRoIHBhdHRlcm4KK0RST1AgVklFVyBycHJfdjsKKy0tIGZpcnN0X3ZhbHVlIHdpdGggcGF0 dGVybgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGZpcnN0X3ZhbHVlKHYpIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCiBTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGZpcnN0X3ZhbHVlKHYp IE9WRVIgdwpAQCAtMTY4MCw3ICszMzk5LDIzIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0x KQogKDkgcm93cykKIAotLS0gVGVzdCAxOC4zOiBsYXN0X3ZhbHVlIHdpdGggcGF0dGVybgorRFJP UCBWSUVXIHJwcl92OworLS0gbGFzdF92YWx1ZSB3aXRoIHBhdHRlcm4KK0NSRUFURSBURU1QIFZJ RVcgcnByX3YgQVMKK1NFTEVDVCBsYXN0X3ZhbHVlKHYpIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+ IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGxhc3RfdmFsdWUodikgT1ZFUiB3CkBAIC0xNzA0LDcgKzM0 MzksMjYgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLSBUZXN0 IDE4LjQ6IE11bHRpcGxlIHdpbmRvdyBmdW5jdGlvbnMKK0RST1AgVklFVyBycHJfdjsKKy0tIE11 bHRpcGxlIHdpbmRvdyBmdW5jdGlvbnMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVD VAorICAgIGNvdW50KCopIE9WRVIgdywKKyAgICBmaXJzdF92YWx1ZSh2KSBPVkVSIHcsCisgICAg bGFzdF92YWx1ZSh2KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAg ICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAK KygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VApAQCAtMTczMSwxMCArMzQ4NSwyOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5 IHJvd3MpCiAKLS0tCi0tLSBTZWN0aW9uIDE5OiBERUZJTkUgRXhwcmVzc2lvbiBWYXJpYXRpb25z Ci0tLQotLS0gVGVzdCAxOS4xOiBDb21wbGV4IGJvb2xlYW4gZXhwcmVzc2lvbnMKK0RST1AgVklF VyBycHJfdjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gREVGSU5FIEV4cHJlc3Npb24gVmFyaWF0aW9ucworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBDb21wbGV4IGJvb2xlYW4gZXhwcmVzc2lvbnMKK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAodiAlIDUgPD4gMCkg QU5EICh2ICUgMyA8PiAwKSwKKyAgICAgICAgQiBBUyAodiAlIDUgPSAwKSBPUiAodiAlIDMgPSAw KQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7Cisg ICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBi KSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3NjAsNyArMzUzMiwyNiBAQCBXSU5ET1cgdyBBUyAo CiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9 NTAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLS0tIFRlc3QgMTkuMjogVXNpbmcgUFJFViBmdW5j dGlvbgorRFJPUCBWSUVXIHJwcl92OworLS0gVXNpbmcgUFJFViBmdW5jdGlvbgorQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChTIFUrIEQrKQorICAgIERFRklORQorICAgICAgICBT IEFTIFRSVUUsCisgICAgICAgIFUgQVMgdiA+IFBSRVYodiksCisgICAgICAgIEQgQVMgdiA8IFBS RVYodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworICAgICAgICAgbGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFU VEVSTiAocyB1KyBkKykgCisoMSByb3cpCisKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNzg2LDcgKzM1NzcsMjYgQEAg V0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAoOCByb3dzKQogCi0tLSBUZXN0IDE5LjM6IFVz aW5nIE5VTEwgY29tcGFyaXNvbnMKK0RST1AgVklFVyBycHJfdjsKKy0tIFVzaW5nIE5VTEwgY29t cGFyaXNvbnMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gKAorICAgIFNFTEVDVCBDQVNFIFdIRU4gdiAlIDUgPSAwIFRIRU4gTlVMTCBFTFNF IHYgRU5EIEFTIHYKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgdgorKSB0CitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVMTAorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAg bGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAKKygx IHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTE4MTMsMTAgKzM2MjMsMjYgQEAgV0lORE9XIHcgQVMgKAogICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHYgKGFjdHVhbCByb3dzPTMwLjAw IGxvb3BzPTEpCiAoOSByb3dzKQogCi0tLQotLS0gU2VjdGlvbiAyMDogTGFyZ2UgU2NhbGUgU3Rh dGlzdGljcyBWZXJpZmljYXRpb24KLS0tCi0tLSBUZXN0IDIwLjE6IDUwMCByb3dzIC0gdmVyaWZ5 IHN0YXRpc3RpY3Mgc2NhbGUgY29ycmVjdGx5CitEUk9QIFZJRVcgcnByX3Y7CistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIDUwMCByb3dz IC0gdmVyaWZ5IHN0YXRpc3RpY3Mgc2NhbGUgY29ycmVjdGx5CitDUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDwgNywgQiBB UyB2ICUgMTAgPSA3LCBDIEFTIHYgJSAxMCA9IDgKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIgYykgCisoMSByb3cpCisKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0xODQwLDcgKzM2NjYsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4g b24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQogKDkgcm93 cykKIAotLS0gVGVzdCAyMC4yOiBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCitEUk9QIFZJRVcg cnByX3Y7CistLSBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCitDUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYg JSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CisgICAgICAgbGluZSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAo YSBiKSAKKygxIHJvdykKKwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE4NjMsNyArMzcwNSwyOCBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJv d3M9NTAwLjAwIGxvb3BzPTEpCiAoOCByb3dzKQogCi0tLSBUZXN0IDIwLjM6IEhpZ2ggc2tpcCBj b3VudCBzY2VuYXJpbworRFJPUCBWSUVXIHJwcl92OworLS0gSGlnaCBza2lwIGNvdW50IHNjZW5h cmlvCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIgQyBEIEUpCisgICAg REVGSU5FCisgICAgICAgIEEgQVMgdiAlIDEwMCA9IDEsCisgICAgICAgIEIgQVMgdiAlIDEwMCA9 IDIsCisgICAgICAgIEMgQVMgdiAlIDEwMCA9IDMsCisgICAgICAgIEQgQVMgdiAlIDEwMCA9IDQs CisgICAgICAgIEUgQVMgdiAlIDEwMCA9IDUKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYiBjIGQgZSkgCisoMSByb3cpCisKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC0xODkxLDYgKzM3NTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCiAo OCByb3dzKQogCitEUk9QIFZJRVcgcnByX3Y7CiAtLSBDbGVhbnVwCiBEUk9QIFRBQkxFIG5mYV90 ZXN0OwogRFJPUCBUQUJMRSBuZmFfY29tcGxleDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IDc4OGE3 N2U1Mjc5Li4xMDcxZGFjZDY4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC0xMjMzLDkgKzEyMzMs OSBAQCBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZF UiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSCiAgIERPV04gQVMgcHJpY2UgPCBQUkVWKDEpCiAp OwogCi0tLSBNYXhpbXVtIHBhdHRlcm4gdmFyaWFibGVzIGlzIDI1MiAoUlBSX1ZBUklEX01BWCkK Ky0tIE1heGltdW0gcGF0dGVybiB2YXJpYWJsZXMgaXMgMjUxIChSUFJfVkFSSURfTUFYKQogCi0t LSBPazogMjUyIHZhcmlhYmxlcyAobWF4aW11bSBhbGxvd2VkKQorLS0gRXJyb3I6IDI1MiB2YXJp YWJsZXMgZXhjZWVkcyBsaW1pdCBvZiAyNTEKIERPICQkCiBERUNMQVJFCiAgICAgcGF0dGVybl92 YXJzIHRleHQ7CkBAIC0xMjU2LDcgKzEyNTYsNyBAQCBCRUdJTgogRU5EOwogJCQ7CiAKLS0tIEVy cm9yOiAyNTMgdmFyaWFibGVzIGV4Y2VlZHMgbGltaXQgb2YgMjUyCistLSBFcnJvcjogMjUzIHZh cmlhYmxlcyBleGNlZWRzIGxpbWl0IG9mIDI1MQogRE8gJCQKIERFQ0xBUkUKICAgICBwYXR0ZXJu X3ZhcnMgdGV4dDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAppbmRleCBhNWE2NmQyY2E4MS4u NmYzOGNkMWFlOTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAgLTIwMTksNiArMjAx OSwxNCBAQCBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICAgICAgICAgICAgICBQQVRURVJOIChBKyBBKikgREVGSU5FIEEgQVMgdmFsID4gMCk7 CiAKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSBBKyAtPiBhezIsfQorLS0gVGVzdHMgbGlu ZSAyNTE6IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiBicmFuY2ggaW4gbWVyZ2VDb25z ZWN1dGl2ZVZhcnMKKy0tIHByZXY6IEF7MSwxfSAoZmluaXRlKSwgY2hpbGQ6IEErIChpbmZpbml0 ZSkgdHJpZ2dlcnMgbGluZSAyNTEgZXZhbHVhdGlvbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoQSBBKykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKIC0tIENvbnNl Y3V0aXZlIEdST1VQIG1lcmdlIHdpdGggZmluaXRlIHF1YW50aWZpZXJzOiAoKEEgQil7NX0pICgo QSBCKXsxMH0pIC0+IG1lcmdlZAogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCop IE9WRVIgdyBGUk9NIHJwcl9wbGFuCkBAIC0yMDMxLDYgKzIwMzksMTQgQEAgU0VMRUNUIENPVU5U KCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCiBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgICAgICAg UEFUVEVSTiAoKEEgQikrIChBIEIpKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+ IDUwKTsKIAorLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2U6IChBIEIpezJ9IChBIEIpKyAtPiAo YSBiKXszLH0KKy0tIFRlc3RzIGxpbmUgMzI1OiBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9J TkYgYnJhbmNoIGluIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMKKy0tIHByZXY6IChBIEIpezIsMn0g KGZpbml0ZSksIGNoaWxkOiAoQSBCKSsgKGluZmluaXRlKSB0cmlnZ2VycyBsaW5lIDMyNSBldmFs dWF0aW9uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSBCKXsy fSAoQSBCKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisKIC0tIFBS RUZJWCBtZXJnZTogQSBCIChBIEIpKyAtPiAoYSBiKXsyLH0KIEVYUExBSU4gKENPU1RTIE9GRikK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgpAQCAtMzM1MCwxMyArMzM2Niwx MyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgVjI1MSBBUyB2YWwgPiAwLCBWMjUyIEFTIHZhbCA+IDAs IFYyNTMgQVMgdmFsID4gMAogKTsKIAotLS0gVGVzdDogMjUyIHZhcmlhYmxlcyBpbiBQQVRURVJO LCAyNTMgaW4gREVGSU5FIChib3VuZGFyeSAtIHNob3VsZCBzdWNjZWVkKQorLS0gVGVzdDogMjUx IHZhcmlhYmxlcyBpbiBQQVRURVJOLCAyNTIgaW4gREVGSU5FIChib3VuZGFyeSAtIHNob3VsZCBz dWNjZWVkKQogLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3MgLSB1bnVzZWQgREVGSU5FIHZhcmlhYmxlcyBh cmUgZmlsdGVyZWQgb3V0CiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycwog V0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIGlkCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUg VjYgVjcgVjggVjkgVjEwIFYxMSBWMTIgVjEzIFYxNCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBW MjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYz NSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIgVjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5 IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBWNTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMg VjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBW NzggVjc5IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5 MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkgVjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYx MDUgVjEwNiBWMTA3IFYxMDggVjEwOSBWMTEwIFYxMTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2 IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEyMSBWMTIyIFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBW MTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBWMTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEz OSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAg VjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYgVjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYx NjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYxNjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTcz IFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBW MTg1IFYxODYgVjE4NyBWMTg4IFYxODkgVjE5MCBWMTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5 NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIwMiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcg VjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMgVjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYy MTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYyMjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMw IFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBW MjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBWMjQ4IFYyNDkgVjI1MCBWMjUxIFYyNTIpCisg ICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcgVjggVjkgVjEwIFYxMSBWMTIgVjEzIFYx NCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4 IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIg VjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBW NTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3 MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1 IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkg VjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEwNiBWMTA3IFYxMDggVjEwOSBWMTEwIFYx MTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEyMSBWMTIy IFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBW MTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0 NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYg VjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYx NjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5 IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYxODYgVjE4NyBWMTg4IFYxODkgVjE5MCBW MTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIw MiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMg VjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYy MjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2 IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBW MjQ4IFYyNDkgVjI1MCBWMjUxKQogICAgIERFRklORQogICAgIFYxIEFTIHZhbCA+IDAsIFYyIEFT IHZhbCA+IDAsIFYzIEFTIHZhbCA+IDAsIFY0IEFTIHZhbCA+IDAsIFY1IEFTIHZhbCA+IDAsIFY2 IEFTIHZhbCA+IDAsIFY3IEFTIHZhbCA+IDAsIFY4IEFTIHZhbCA+IDAsIFY5IEFTIHZhbCA+IDAs IFYxMCBBUyB2YWwgPiAwLAogICAgIFYxMSBBUyB2YWwgPiAwLCBWMTIgQVMgdmFsID4gMCwgVjEz IEFTIHZhbCA+IDAsIFYxNCBBUyB2YWwgPiAwLCBWMTUgQVMgdmFsID4gMCwgVjE2IEFTIHZhbCA+ IDAsIFYxNyBBUyB2YWwgPiAwLCBWMTggQVMgdmFsID4gMCwgVjE5IEFTIHZhbCA+IDAsIFYyMCBB UyB2YWwgPiAwLApAQCAtMzM4MywxNyArMzM5OSwxNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgVjIy MSBBUyB2YWwgPiAwLCBWMjIyIEFTIHZhbCA+IDAsIFYyMjMgQVMgdmFsID4gMCwgVjIyNCBBUyB2 YWwgPiAwLCBWMjI1IEFTIHZhbCA+IDAsIFYyMjYgQVMgdmFsID4gMCwgVjIyNyBBUyB2YWwgPiAw LCBWMjI4IEFTIHZhbCA+IDAsIFYyMjkgQVMgdmFsID4gMCwgVjIzMCBBUyB2YWwgPiAwLAogICAg IFYyMzEgQVMgdmFsID4gMCwgVjIzMiBBUyB2YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQg QVMgdmFsID4gMCwgVjIzNSBBUyB2YWwgPiAwLCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFs ID4gMCwgVjIzOCBBUyB2YWwgPiAwLCBWMjM5IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMCwK ICAgICBWMjQxIEFTIHZhbCA+IDAsIFYyNDIgQVMgdmFsID4gMCwgVjI0MyBBUyB2YWwgPiAwLCBW MjQ0IEFTIHZhbCA+IDAsIFYyNDUgQVMgdmFsID4gMCwgVjI0NiBBUyB2YWwgPiAwLCBWMjQ3IEFT IHZhbCA+IDAsIFYyNDggQVMgdmFsID4gMCwgVjI0OSBBUyB2YWwgPiAwLCBWMjUwIEFTIHZhbCA+ IDAsCi0gICAgVjI1MSBBUyB2YWwgPiAwLCBWMjUyIEFTIHZhbCA+IDAsIFYyNTMgQVMgdmFsID4g MAorICAgIFYyNTEgQVMgdmFsID4gMCwgVjI1MiBBUyB2YWwgPiAwCiApOwogCiAKLS0tIFRlc3Q6 IDI1MyB2YXJpYWJsZXMgaW4gUEFUVEVSTiwgMjUyIGluIERFRklORSAoZXhjZWVkcyBsaW1pdCB3 aXRoIGltcGxpY2l0IFRSVUUpCi0tLSBFeHBlY3RlZDogRVJST1IgLSB0b28gbWFueSBwYXR0ZXJu IHZhcmlhYmxlcyAoTWF4aW11bSBpcyAyNTIpCistLSBUZXN0OiAyNTIgdmFyaWFibGVzIGluIFBB VFRFUk4sIDI1MSBpbiBERUZJTkUgKGV4Y2VlZHMgbGltaXQgd2l0aCBpbXBsaWNpdCBUUlVFKQor LS0gRXhwZWN0ZWQ6IEVSUk9SIC0gdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMgKE1heGltdW0g aXMgMjUxKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMKIFdJTkRPVyB3 IEFTICgKICAgICBPUkRFUiBCWSBpZAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwotICAgIFBBVFRFUk4gKFYxIFYyIFYzIFY0IFY1IFY2IFY3IFY4 IFY5IFYxMCBWMTEgVjEyIFYxMyBWMTQgVjE1IFYxNiBWMTcgVjE4IFYxOSBWMjAgVjIxIFYyMiBW MjMgVjI0IFYyNSBWMjYgVjI3IFYyOCBWMjkgVjMwIFYzMSBWMzIgVjMzIFYzNCBWMzUgVjM2IFYz NyBWMzggVjM5IFY0MCBWNDEgVjQyIFY0MyBWNDQgVjQ1IFY0NiBWNDcgVjQ4IFY0OSBWNTAgVjUx IFY1MiBWNTMgVjU0IFY1NSBWNTYgVjU3IFY1OCBWNTkgVjYwIFY2MSBWNjIgVjYzIFY2NCBWNjUg VjY2IFY2NyBWNjggVjY5IFY3MCBWNzEgVjcyIFY3MyBWNzQgVjc1IFY3NiBWNzcgVjc4IFY3OSBW ODAgVjgxIFY4MiBWODMgVjg0IFY4NSBWODYgVjg3IFY4OCBWODkgVjkwIFY5MSBWOTIgVjkzIFY5 NCBWOTUgVjk2IFY5NyBWOTggVjk5IFYxMDAgVjEwMSBWMTAyIFYxMDMgVjEwNCBWMTA1IFYxMDYg VjEwNyBWMTA4IFYxMDkgVjExMCBWMTExIFYxMTIgVjExMyBWMTE0IFYxMTUgVjExNiBWMTE3IFYx MTggVjExOSBWMTIwIFYxMjEgVjEyMiBWMTIzIFYxMjQgVjEyNSBWMTI2IFYxMjcgVjEyOCBWMTI5 IFYxMzAgVjEzMSBWMTMyIFYxMzMgVjEzNCBWMTM1IFYxMzYgVjEzNyBWMTM4IFYxMzkgVjE0MCBW MTQxIFYxNDIgVjE0MyBWMTQ0IFYxNDUgVjE0NiBWMTQ3IFYxNDggVjE0OSBWMTUwIFYxNTEgVjE1 MiBWMTUzIFYxNTQgVjE1NSBWMTU2IFYxNTcgVjE1OCBWMTU5IFYxNjAgVjE2MSBWMTYyIFYxNjMg VjE2NCBWMTY1IFYxNjYgVjE2NyBWMTY4IFYxNjkgVjE3MCBWMTcxIFYxNzIgVjE3MyBWMTc0IFYx NzUgVjE3NiBWMTc3IFYxNzggVjE3OSBWMTgwIFYxODEgVjE4MiBWMTgzIFYxODQgVjE4NSBWMTg2 IFYxODcgVjE4OCBWMTg5IFYxOTAgVjE5MSBWMTkyIFYxOTMgVjE5NCBWMTk1IFYxOTYgVjE5NyBW MTk4IFYxOTkgVjIwMCBWMjAxIFYyMDIgVjIwMyBWMjA0IFYyMDUgVjIwNiBWMjA3IFYyMDggVjIw OSBWMjEwIFYyMTEgVjIxMiBWMjEzIFYyMTQgVjIxNSBWMjE2IFYyMTcgVjIxOCBWMjE5IFYyMjAg VjIyMSBWMjIyIFYyMjMgVjIyNCBWMjI1IFYyMjYgVjIyNyBWMjI4IFYyMjkgVjIzMCBWMjMxIFYy MzIgVjIzMyBWMjM0IFYyMzUgVjIzNiBWMjM3IFYyMzggVjIzOSBWMjQwIFYyNDEgVjI0MiBWMjQz IFYyNDQgVjI0NSBWMjQ2IFYyNDcgVjI0OCBWMjQ5IFYyNTAgVjI1MSBWMjUyIFYyNTMpCisgICAg UEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcgVjggVjkgVjEwIFYxMSBWMTIgVjEzIFYxNCBW MTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4IFYy OSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIgVjQz IFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBWNTcg VjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3MSBW NzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1IFY4 NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkgVjEw MCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEwNiBWMTA3IFYxMDggVjEwOSBWMTEwIFYxMTEg VjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEyMSBWMTIyIFYx MjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBWMTM0 IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0NSBW MTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYgVjE1 NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYxNjgg VjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5IFYx ODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYxODYgVjE4NyBWMTg4IFYxODkgVjE5MCBWMTkx IFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIwMiBW MjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMgVjIx NCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYyMjUg VjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYy MzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBWMjQ4 IFYyNDkgVjI1MCBWMjUxIFYyNTIpCiAgICAgREVGSU5FCiAgICAgVjEgQVMgdmFsID4gMCwgVjIg QVMgdmFsID4gMCwgVjMgQVMgdmFsID4gMCwgVjQgQVMgdmFsID4gMCwgVjUgQVMgdmFsID4gMCwg VjYgQVMgdmFsID4gMCwgVjcgQVMgdmFsID4gMCwgVjggQVMgdmFsID4gMCwgVjkgQVMgdmFsID4g MCwgVjEwIEFTIHZhbCA+IDAsCiAgICAgVjExIEFTIHZhbCA+IDAsIFYxMiBBUyB2YWwgPiAwLCBW MTMgQVMgdmFsID4gMCwgVjE0IEFTIHZhbCA+IDAsIFYxNSBBUyB2YWwgPiAwLCBWMTYgQVMgdmFs ID4gMCwgVjE3IEFTIHZhbCA+IDAsIFYxOCBBUyB2YWwgPiAwLCBWMTkgQVMgdmFsID4gMCwgVjIw IEFTIHZhbCA+IDAsCkBAIC0zNDIwLDI4ICszNDM2LDI4IEBAIFdJTkRPVyB3IEFTICgKICAgICBW MjIxIEFTIHZhbCA+IDAsIFYyMjIgQVMgdmFsID4gMCwgVjIyMyBBUyB2YWwgPiAwLCBWMjI0IEFT IHZhbCA+IDAsIFYyMjUgQVMgdmFsID4gMCwgVjIyNiBBUyB2YWwgPiAwLCBWMjI3IEFTIHZhbCA+ IDAsIFYyMjggQVMgdmFsID4gMCwgVjIyOSBBUyB2YWwgPiAwLCBWMjMwIEFTIHZhbCA+IDAsCiAg ICAgVjIzMSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+IDAsIFYyMzMgQVMgdmFsID4gMCwgVjIz NCBBUyB2YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYyMzYgQVMgdmFsID4gMCwgVjIzNyBBUyB2 YWwgPiAwLCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMgdmFsID4gMCwgVjI0MCBBUyB2YWwgPiAw LAogICAgIFYyNDEgQVMgdmFsID4gMCwgVjI0MiBBUyB2YWwgPiAwLCBWMjQzIEFTIHZhbCA+IDAs IFYyNDQgQVMgdmFsID4gMCwgVjI0NSBBUyB2YWwgPiAwLCBWMjQ2IEFTIHZhbCA+IDAsIFYyNDcg QVMgdmFsID4gMCwgVjI0OCBBUyB2YWwgPiAwLCBWMjQ5IEFTIHZhbCA+IDAsIFYyNTAgQVMgdmFs ID4gMCwKLSAgICBWMjUxIEFTIHZhbCA+IDAsIFYyNTIgQVMgdmFsID4gMAorICAgIFYyNTEgQVMg dmFsID4gMAogKTsKIAotLS0gVGVzdDogUGF0dGVybiBuZXN0aW5nIGF0IG1heGltdW0gZGVwdGgg KGRlcHRoIDI1NCkKKy0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBhdCBtYXhpbXVtIGRlcHRoIChk ZXB0aCAyNTMpCiAtLSBFeHBlY3RlZDogU2hvdWxkIHN1Y2NlZWQKLS0tIE5vdGU6IDI1NCBuZXN0 ZWQgR1JPVVB7Myw3fSBxdWFudGlmaWVycyBwcm9kdWNlIGRlcHRoIDI1NCBhZnRlciBvcHRpbWl6 YXRpb24KKy0tIE5vdGU6IDI1MyBuZXN0ZWQgR1JPVVB7Myw3fSBxdWFudGlmaWVycyBwcm9kdWNl IGRlcHRoIDI1MyBhZnRlciBvcHRpbWl6YXRpb24KIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgRlJPTSBycHJfZXJyb3JzCiBXSU5ET1cgdyBBUyAoCiAgICAgT1JERVIgQlkgaWQKICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBQ QVRURVJOICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKEF7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSkKKyAgICBQQVRURVJOICgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoQXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 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 LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KQogICAg IERFRklORSBBIEFTIHZhbCA+IDAKICk7CiAKLS0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBkZXB0 aCBleGNlZWRzIG1heGltdW0gKGRlcHRoIDI1NSkKKy0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBk ZXB0aCBleGNlZWRzIG1heGltdW0gKGRlcHRoIDI1NCkKIC0tIEV4cGVjdGVkOiBFUlJPUiAtIHBh dHRlcm4gbmVzdGluZyB0b28gZGVlcAotLS0gTm90ZTogMjU1IG5lc3RlZCBHUk9VUHszLDd9IHF1 YW50aWZpZXJzIHByb2R1Y2UgZGVwdGggMjU1IGFmdGVyIG9wdGltaXphdGlvbgorLS0gTm90ZTog MjU0IG5lc3RlZCBHUk9VUHszLDd9IHF1YW50aWZpZXJzIHByb2R1Y2UgZGVwdGggMjU0IGFmdGVy IG9wdGltaXphdGlvbgogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9l cnJvcnMKIFdJTkRPVyB3IEFTICgKICAgICBPUkRFUiBCWSBpZAogICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIFBBVFRFUk4gKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKEF7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSkKKyAgICBQQVRURVJOICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KEF7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSkKICAgICBE RUZJTkUgQSBBUyB2YWwgPiAwCiApOwogCkBAIC0zNjExLDYgKzM2MjcsMjQgQEAgV0lORE9XIHcg QVMgKAogICAgIERFRklORSBBIEFTIFRSVUUKICk7CiAKKy0tIE9wdGlvbmFsIGdyb3VwIHdpdGgg YWx0ZXJuYXRpb246IEEgKChCIHwgQykgKEQgfCBFKSkqIEY/CistLSBXaGVuIG9ubHkgQSBtYXRj aGVzLCB0aGUgKiBncm91cCBtYXRjaGVzIDAgdGltZXMgYW5kIEY/IG1hdGNoZXMgMCB0aW1lcwor U0VMRUNUIGlkLCB2YWwsIG1hdGNoX2xlbgorRlJPTSAoU0VMRUNUIGlkLCB2YWwsCisgICAgICAg ICAgICAgQ09VTlQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbgorICAgICAgRlJPTSAoVkFMVUVTICgx LCAxKSwgKDIsIDk5KSkgQVMgdChpZCwgdmFsKQorICAgICAgV0lORE9XIHcgQVMgKAorICAgICAg ICAgIE9SREVSIEJZIGlkCisgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgICAgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSAoRCB8IEUpKSogRj8pCisgICAgICAg ICAgREVGSU5FIEEgQVMgdmFsID0gMSwKKyAgICAgICAgICAgICAgICAgQiBBUyB2YWwgPSAyLCBD IEFTIHZhbCA9IDMsCisgICAgICAgICAgICAgICAgIEQgQVMgdmFsID0gNCwgRSBBUyB2YWwgPSA1 LAorICAgICAgICAgICAgICAgICBGIEFTIHZhbCA9IDYKKyAgICAgICkKKykgczsKKwogRFJPUCBU QUJMRSBycHJfcGxhbjsKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwK aW5kZXggODE1NjEyMWIzY2QuLjgwMDg4YWIxOGUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4 cGxhaW4uc3FsCkBAIC0xLDE0ICsxLDQzIEBACistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFJQUiBFWFBMQUlOIFRlc3Rz CistLSBUZXN0cyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gRVhQTEFJTiBvdXRwdXQKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0KLS0tIFRlc3Q6IEVYUExBSU4gQU5BTFlaRSBvdXRwdXQgZm9yIFJvdyBQYXR0ZXJu IFJlY29nbml0aW9uIE5GQSBzdGF0aXN0aWNzCistLSBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVz IEVYUExBSU4gb3V0cHV0IGZvciBSUFIgcXVlcmllcywKKy0tIGluY2x1ZGluZyBORkEgc3RhdGlz dGljcyBzaG93biBpbiBFWFBMQUlOIEFOQUxZWkU6CistLSAgIC0gTkZBIFN0YXRlczogcGVhaywg dG90YWwsIG1lcmdlZAorLS0gICAtIE5GQSBDb250ZXh0czogcGVhaywgdG90YWwsIGFic29yYmVk LCBza2lwcGVkCistLSAgIC0gTkZBOiBtYXRjaGVkIChsZW4gbWluL21heC9hdmcpLCBtaXNtYXRj aGVkIChsZW4gbWluL21heC9hdmcpCistLSAgIC0gUGF0dGVybiBkZXBhcnNlIGZvcm1hdHRpbmcK Ky0tICAgLSBNdWx0aXBsZSBvdXRwdXQgZm9ybWF0cyAodGV4dCwgSlNPTiwgWE1MKQogLS0KLS0t IFRoaXMgZmlsZSB0ZXN0cyB0aGUgTkZBIHN0YXRpc3RpY3Mgc2hvd24gaW4gRVhQTEFJTiBBTkFM WVpFIG91dHB1dDoKLS0tIC0gTkZBIFN0YXRlczogcGVhaywgdG90YWwsIG1lcmdlZAotLS0gLSBO RkEgQ29udGV4dHM6IHBlYWssIHRvdGFsLCBhYnNvcmJlZCwgc2tpcHBlZAotLS0gLSBORkE6IG1h dGNoZWQgKGxlbiBtaW4vbWF4L2F2ZyksIG1pc21hdGNoZWQgKGxlbiBtaW4vbWF4L2F2ZykKLS0t Ci0KLS0tIEZpbHRlciBmdW5jdGlvbiB0byBub3JtYWxpemUgU3RvcmFnZSBtZW1vcnkgdmFsdWVz IG9ubHkgKG5vdCBORkEgc3RhdGlzdGljcykKLS0tIFdvcmtzIGZvciB0ZXh0LCBKU09OLCBhbmQg WE1MIGZvcm1hdHMKKy0tIFRlc3QgQ292ZXJhZ2U6CistLSAgIEJhc2ljIE5GQSBTdGF0aXN0aWNz IFRlc3RzCistLSAgIFN0YXRlIFN0YXRpc3RpY3MgVGVzdHMKKy0tICAgQ29udGV4dCBTdGF0aXN0 aWNzIFRlc3RzCistLSAgIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCistLSAgIE1pc21h dGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCistLSAgIEpTT04gRm9ybWF0IFRlc3RzCistLSAg IFhNTCBGb3JtYXQgVGVzdHMKKy0tICAgTXVsdGlwbGUgUGFydGl0aW9ucyBUZXN0cworLS0gICBF ZGdlIENhc2VzCistLSAgIENvbXBsZXggUGF0dGVybiBUZXN0cworLS0gICBSZWFsLXdvcmxkIFBh dHRlcm4gRXhhbXBsZXMKKy0tICAgUGVyZm9ybWFuY2Utb3JpZW50ZWQgVGVzdHMKKy0tICAgSU5J VElBTCB2cyBubyBJTklUSUFMIGNvbXBhcmlzb24KKy0tICAgUXVhbnRpZmllciBWYXJpYXRpb25z CistLSAgIFJlZ3Jlc3Npb24gVGVzdHMgZm9yIFN0YXRpc3RpY3MgQWNjdXJhY3kKKy0tICAgQWx0 ZXJuYXRpb24gUGF0dGVybiBUZXN0cworLS0gICBHcm91cCBQYXR0ZXJuIFRlc3RzCistLSAgIFdp bmRvdyBGdW5jdGlvbiBDb21iaW5hdGlvbnMKKy0tICAgREVGSU5FIEV4cHJlc3Npb24gVmFyaWF0 aW9ucworLS0gICBMYXJnZSBTY2FsZSBTdGF0aXN0aWNzIFZlcmlmaWNhdGlvbgorLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK Ky0tIEZpbHRlciBmdW5jdGlvbiB0byBub3JtYWxpemUgU3RvcmFnZSBtZW1vcnkgdmFsdWVzIG9u bHkgKG5vdCBORkEgc3RhdGlzdGljcykuCistLSBORkEgc3RhdGlzdGljcyBzaG91bGQgbm90IGNo YW5nZSBiZXR3ZWVuIHBsYXRmb3JtczsgaWYgdGhleSBkbywgaXQgY291bGQKKy0tIGluZGljYXRl IGlzc3VlcyBzdWNoIGFzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFjY2Vzcy4KKy0tIFdvcmtzIGZv ciB0ZXh0LCBKU09OLCBhbmQgWE1MIGZvcm1hdHMuCiBjcmVhdGUgZnVuY3Rpb24gcnByX2V4cGxh aW5fZmlsdGVyKHRleHQpIHJldHVybnMgc2V0b2YgdGV4dAogbGFuZ3VhZ2UgcGxwZ3NxbCBhcwog JCQKQEAgLTc1LDExICsxMDQsMjEgQEAgVkFMVUVTCiAgICAgKDEyMSwgJ1UnKSwgKDEyMywgJ1Un KSwgKDEyNSwgJ1UnKSwgKDEyNywgJ1UnKSwgKDEyOSwgJ1UnKSwKICAgICAoMTMxLCAnVScpLCAo MTMzLCAnVScpLCAoMTMwLCAnRCcpLCAoMTI3LCAnRCcpLCAoMTI0LCAnRCcpOwogCi0tLQotLS0g U2VjdGlvbiAxOiBCYXNpYyBORkEgU3RhdGlzdGljcyBUZXN0cwotLS0KKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQmFz aWMgTkZBIFN0YXRpc3RpY3MgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0tLSBUZXN0IDEuMTogU2ltcGxlIHBh dHRlcm4gLSBzaG91bGQgc2hvdyBiYXNpYyBzdGF0aXN0aWNzCistLSBTaW1wbGUgcGF0dGVybiAt IHNob3VsZCBzaG93IGJhc2ljIHN0YXRpc3RpY3MKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVG SU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJworKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTAsOCArMTI5LDE5IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0g JydBJycsIEIgQVMgY2F0ID0gJydCJycKICknKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVz dCAxLjI6IFBhdHRlcm4gd2l0aCBubyBtYXRjaGVzIC0gMCBtYXRjaGVkCistLSBQYXR0ZXJuIHdp dGggbm8gbWF0Y2hlcyAtIDAgbWF0Y2hlZAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKFggWSBaKQorICAgIERFRklO RSBYIEFTIGNhdCA9ICdYJywgWSBBUyBjYXQgPSAnWScsIFogQVMgY2F0ID0gJ1onCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0x MDIsOCArMTUyLDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChYIFkgWikKICAgICBE RUZJTkUgWCBBUyBjYXQgPSAnJ1gnJywgWSBBUyBjYXQgPSAnJ1knJywgWiBBUyBjYXQgPSAnJ1on JwogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxLjM6IFBhdHRlcm4gbWF0Y2hp bmcgZXZlcnkgcm93IC0gaGlnaCBtYXRjaCBjb3VudAorLS0gUGF0dGVybiBtYXRjaGluZyBldmVy eSByb3cgLSBoaWdoIG1hdGNoIGNvdW50CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIG5mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoUikKKyAgICBERUZJTkUgUiBB UyBUUlVFCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CkBAIC0xMTQsMTIgKzE3NSw2OCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoUikKICAgICBERUZJTkUgUiBBUyBUUlVFCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0t LQotLS0gU2VjdGlvbiAyOiBTdGF0ZSBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgbWVy Z2VkKQotLS0KKy0tIFJlZ3Jlc3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBhcmVudGhlc2lzIGlu IHBhdHRlcm4gZGVwYXJzZQorLS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMpIiBjb3JyZWN0bHkg b3V0cHV0cyBhcyAiYSAoYiB8IGMpIiB3aXRoIHNwYWNlCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKKyAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSAoQiB8IEMpKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUg MyA9IDIsIEMgQVMgdiAlIDMgPSAwCispOycpOworRFJPUCBWSUVXIHJwcl92OworCistLSBSZWdy ZXNzaW9uIHRlc3Q6IFNlcXVlbnRpYWwgYWx0ZXJuYXRpb25zIGF0IHNhbWUgZGVwdGgKKy0tIFZl cmlmaWVzIHRoYXQgIigoQiB8IEMpIChEIHwgRSkpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiKGIg fCBjKSAoZCB8IGUpIgorLS0gUHJldmlvdXNseSBmYWlsZWQgZHVlIHRvIG1pc3NpbmcgcGFyZW50 aGVzZXMgb24gQUxUIGRlcHRoIGRlY3JlYXNlCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykgKEQgfCBFKSkqKQorICAgIERF RklORSBBIEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMgQVMgdiAlIDUgPSAzLCBEIEFT IHYgJSA1ID0gNCwgRSBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykg KEQgfCBFKSkqKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMg QVMgdiAlIDUgPSAzLCBEIEFTIHYgJSA1ID0gNCwgRSBBUyB2ICUgNSA9IDAKKyk7Jyk7CitEUk9Q IFZJRVcgcnByX3Y7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gU3RhdGUgU3RhdGlzdGljcyBUZXN0cyAocGVhaywg dG90YWwsIG1lcmdlZCkKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogCi0tLSBUZXN0IDIuMTogU2ltcGxlIHF1YW50aWZpZXIg cGF0dGVybiAtIEErIHdpdGggc2hvcnQgbWF0Y2hlcyAobm8gbWVyZ2luZykKKy0tIFNpbXBsZSBx dWFudGlmaWVyIHBhdHRlcm4gLSBBKyB3aXRoIHNob3J0IG1hdGNoZXMgKG5vIG1lcmdpbmcpCitD UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYg JSAyID0gMQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTMwLDggKzI0NywyMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoQSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxCiApOycpOworRFJPUCBWSUVXIHJwcl92 OwogCi0tLSBUZXN0IDIuMjogQWx0ZXJuYXRpb24gcGF0dGVybiAtIG11bHRpcGxlIHN0YXRlIGJy YW5jaGVzCistLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNoZXMK K0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g bmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSB8IEIgfCBDKSAoRCB8IEUpKQorICAgIERFRklORQorICAgICAgICBB IEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAorICAgICAgICBE IEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0NCw4ICsyNzQsMjIgQEAgV0lO RE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicnLCBD IEFTIGNhdCA9ICcnQycnLAogICAgICAgICBEIEFTIGNhdCA9ICcnRCcnLCBFIEFTIGNhdCA9ICcn RScnCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDIuMzogQ29tcGxleCBwYXR0 ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3VudAorLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBz dGF0ZSBjb3VudAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQiogQysp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdiAlIDMgPSAxLAorICAgICAgICBCIEFTIHYgJSAz ID0gMiwKKyAgICAgICAgQyBBUyB2ICUgMyA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE1OSw4ICszMDMsMTkgQEAgV0lO RE9XIHcgQVMgKAogICAgICAgICBCIEFTIHYgJSAzID0gMiwKICAgICAgICAgQyBBUyB2ICUgMyA9 IDAKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMi40OiBHcm91cGVkIHBhdHRl cm4gd2l0aCBxdWFudGlmaWVyIC0gc3RhdGUgbWVyZ2luZworLS0gR3JvdXBlZCBwYXR0ZXJuIHdp dGggcXVhbnRpZmllciAtIHN0YXRlIG1lcmdpbmcKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKEEgQikrKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9 IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKQEAgLTE3MSw5ICszMjYsMjAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChB IEIpKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOycpOwor RFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDIuNTogU3RhdGUgZXhwbG9zaW9uIHBhdHRlcm4g LSBtYW55IGFsdGVybmF0aW9ucworLS0gU3RhdGUgZXhwbG9zaW9uIHBhdHRlcm4gLSBtYW55IGFs dGVybmF0aW9ucwogLS0gUGF0dGVybiAoQXxCKShBfEIpKEF8QikoQXxCKSBjYW4gY3JlYXRlIG1h bnkgcGFyYWxsZWwgc3RhdGVzCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgo QSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChB IHwgQikpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAt MTg0LDggKzM1MCw5MCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8 IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpKQogICAg IERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Jyk7CitEUk9QIFZJRVcg cnByX3Y7CisKKy0tIENvbnNlY3V0aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBkaWZmZXJlbnQg QUxUCistLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlQWx0cyBmbHVzaCBvbiBBTFQgY2hhbmdlOiAo QXxCKXsyfSAoQ3xEKQorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIp IChBIHwgQikgKEMgfCBEKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQg PSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQyB8IEQp KQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQg PSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKK0RST1AgVklFVyBycHJfdjsKKworLS0gQ29uc2Vj dXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5IG5vbi1BTFQgZWxlbWVudAorLS0gVGVzdHMgbWVy Z2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gbm9uLUFMVDogKEF8Qil7Mn0gYworQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikgQykKKyAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8 IEIpIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2 ICUgMyA9IDIKKyk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CisKKy0tIEFMVCBwcmVmaXgvc3VmZml4 IGFic29yYmVkIGludG8gR1JPVVA6IChBfEIpIChBfEIpKyAoQXxCKSAtPiAoQXxCKXszLH0KK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAoQSB8IEIp KQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBC KSsgKEEgfCBCKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCisp OycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDIuNjogSGlnaCBzdGF0ZSBtZXJnaW5n IC0gYWx0ZXJuYXRpb24gd2l0aCBwbHVzIHF1YW50aWZpZXIKKy0tIEhpZ2ggc3RhdGUgbWVyZ2lu ZyAtIGFsdGVybmF0aW9uIHdpdGggcGx1cyBxdWFudGlmaWVyCitDUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBDKSsgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9 IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYgJSA0ID0gMywgRCBBUyB2ICUgNCA9IDAKKyk7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTE5Niw4ICs0NDQsMTkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQiB8IEMp KyBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAl IDQgPSAzLCBEIEFTIHYgJSA0ID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVz dCAyLjc6IE5lc3RlZCBxdWFudGlmaWVycyBjYXVzaW5nIHN0YXRlIGdyb3d0aAorLS0gTmVzdGVk IHF1YW50aWZpZXJzIGNhdXNpbmcgc3RhdGUgZ3Jvd3RoCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoKChBIHwgQikrKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBC IEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtMjA4LDEyICs0NjcsMjMgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKCgoQSB8IEIpKykrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2 ICUgMyA9IDIKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tCi0tLSBTZWN0aW9uIDM6IENv bnRleHQgU3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90YWwsIGFic29yYmVkLCBza2lwcGVkKQot LS0KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgYWJz b3JiZWQsIHNraXBwZWQpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIAotLS0gVGVzdCAzLjE6IENvbnRleHQgYWJzb3JwdGlv biB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVyIGF0IHN0YXJ0CistLSBDb250ZXh0IGFic29ycHRp b24gd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllciBhdCBzdGFydAorQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMg diAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0yMjQsOCArNDk0LDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiAp OycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDMuMjogTm8gYWJzb3JwdGlvbiAtIGJv dW5kZWQgcXVhbnRpZmllcgorLS0gTm8gYWJzb3JwdGlvbiAtIGJvdW5kZWQgcXVhbnRpZmllcgor Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0gQikKKyAgICBERUZJTkUg QSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjM2LDggKzUxNywxOSBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyLDR9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRl c3QgMy4zOiBDb250ZXh0cyBza2lwcGVkIGJ5IFNLSVAgUEFTVCBMQVNUIFJPVworLS0gQ29udGV4 dHMgc2tpcHBlZCBieSBTS0lQIFBBU1QgTEFTVCBST1cKK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEEgQiBDKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA9IDEsIEIgQVMgdiAl IDEwID0gMiwgQyBBUyB2ICUgMTAgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yNDgsOCArNTQwLDE5IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBIEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBC IEFTIHYgJSAxMCA9IDIsIEMgQVMgdiAlIDEwID0gMwogKTsnKTsKK0RST1AgVklFVyBycHJfdjsK IAotLS0gVGVzdCAzLjQ6IEhpZ2ggY29udGV4dCBhYnNvcnB0aW9uIC0gdW5ib3VuZGVkIGdyb3Vw CistLSBIaWdoIGNvbnRleHQgYWJzb3JwdGlvbiAtIHVuYm91bmRlZCBncm91cAorQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdiAl IDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTI2MCwxMiArNTYz LDI1IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSBCKSsgQykKICAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsnKTsKK0RS T1AgVklFVyBycHJfdjsKIAotLS0KLS0tIFNlY3Rpb24gNDogTWF0Y2ggTGVuZ3RoIFN0YXRpc3Rp Y3MgVGVzdHMKLS0tCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAotLS0gVGVzdCA0LjE6IEZpeGVkIGxlbmd0aCBtYXRjaGVzIC0gYWxsIHNhbWUgbGVu Z3RoCistLSBGaXhlZCBsZW5ndGggbWF0Y2hlcyAtIGFsbCBzYW1lIGxlbmd0aAorQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfdGVzdAor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMg Y2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKKyAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMg Y2F0ID0gJ0UnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0yNzgsOCArNTk0LDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAg QSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJywKICAg ICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBjYXQgPSAnJ0UnJwogKTsnKTsKK0RST1AgVklF VyBycHJfdjsKIAotLS0gVGVzdCA0LjI6IFZhcmlhYmxlIGxlbmd0aCBtYXRjaGVzIC0gbWluL21h eC9hdmcgZGlmZmVyCistLSBWYXJpYWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRp ZmZlcgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJ TkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yOTAsOCArNjE3LDE5 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYg JSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0t IFRlc3QgNC4zOiBWZXJ5IGxvbmcgbWF0Y2hlcworLS0gVmVyeSBsb25nIG1hdGNoZXMKK0NSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDIwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiA8 PSAxOTUsIEIgQVMgdiA+IDE5NQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzAyLDggKzY0MCwyMSBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2IDw9IDE5NSwgQiBBUyB2ID4g MTk1CiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDQuNDogTWl4IG9mIHNob3J0 IGFuZCBsb25nIG1hdGNoZXMKKy0tIE1peCBvZiBzaG9ydCBhbmQgbG9uZyBtYXRjaGVzCitDUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAg ICBBIEFTICh2ICUgMjAgPD4gMCkgQU5EICh2ICUgMjAgPD0gMTAgT1IgdiAlIDIwID4gMTUpLAor ICAgICAgICBCIEFTIHYgJSAyMCA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTMxNiwxMyArNjY3LDMxIEBAIFdJTkRPVyB3 IEFTICgKICAgICAgICAgQSBBUyAodiAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYg JSAyMCA+IDE1KSwKICAgICAgICAgQiBBUyB2ICUgMjAgPSAwCiApOycpOworRFJPUCBWSUVXIHJw cl92OwogCi0tLQotLS0gU2VjdGlvbiA1OiBNaXNtYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0 cwotLS0KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gTWlzbWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogCi0tLSBUZXN0IDUuMTogUGF0dGVybiB0aGF0IGNhdXNlcyBtaXNtYXRjaGVzIHdpdGggbGVu Z3RoID4gMQorLS0gUGF0dGVybiB0aGF0IGNhdXNlcyBtaXNtYXRjaGVzIHdpdGggbGVuZ3RoID4g MQogLS0gTWlzbWF0Y2ggaGFwcGVucyB3aGVuIHBhcnRpYWwgbWF0Y2ggZmFpbHMgYWZ0ZXIgcHJv Y2Vzc2luZyBtdWx0aXBsZSByb3dzCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NICgKKyAgICBTRUxFQ1QgdiwKKyAgICAgICAgICAgQ0FTRSBX SEVOIHYgJSAxMCBJTiAoMSwyLDMpIFRIRU4gJ0EnCisgICAgICAgICAgICAgICAgV0hFTiB2ICUg MTAgSU4gKDQsNSkgVEhFTiAnQicKKyAgICAgICAgICAgICAgICBXSEVOIHYgJSAxMCA9IDYgVEhF TiAnQycKKyAgICAgICAgICAgICAgICBFTFNFICdYJyBFTkQgQVMgY2F0CisgICAgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCispIHQKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKyBDKQorICAgIERFRklO RSBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0z NDAsOCArNzA5LDMxIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKyBDKQogICAg IERFRklORSBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicnLCBDIEFTIGNhdCA9ICcn QycnCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDUuMjogTG9uZyBwYXJ0aWFs IG1hdGNoZXMgdGhhdCBmYWlsCistLSBMb25nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0IGZhaWwKK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAor ICAgIFNFTEVDVCBpIEFTIHYsCisgICAgICAgICAgIENBU0UKKyAgICAgICAgICAgICAgIFdIRU4g aSA8PSAyMCBUSEVOICdBJworICAgICAgICAgICAgICAgV0hFTiBpIDw9IDI1IFRIRU4gJ0InCisg ICAgICAgICAgICAgICBXSEVOIGkgPSAyNiBUSEVOICdYJyAgLS0gYnJlYWtzIHRoZSBwYXR0ZXJu CisgICAgICAgICAgICAgICBXSEVOIGkgPD0gNTAgVEhFTiAnQScKKyAgICAgICAgICAgICAgIFdI RU4gaSA8PSA1NSBUSEVOICdCJworICAgICAgICAgICAgICAgV0hFTiBpID0gNTYgVEhFTiAnQycg IC0tIGNvbXBsZXRlcyBwYXR0ZXJuCisgICAgICAgICAgICAgICBFTFNFICdZJworICAgICAgICAg ICBFTkQgQVMgY2F0CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIGkKKykgdAorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEErIEIrIEMpCisgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBB UyBjYXQgPSAnQycKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTM2NCwxNCArNzU2LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBKyBCKyBDKQogICAgIERFRklORSBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9 ICcnQicnLCBDIEFTIGNhdCA9ICcnQycnCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLQot LS0gU2VjdGlvbiA2OiBKU09OIEZvcm1hdCBUZXN0cwotLS0KKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gSlNPTiBGb3Jt YXQgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogCi0tLSBUZXN0IDYuMTogSlNPTiBmb3JtYXQgb3V0cHV0IHdpdGgg YWxsIHN0YXRpc3RpY3MKLVNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwotRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZP Uk1BVCBKU09OKQorLS0gSlNPTiBmb3JtYXQgb3V0cHV0IHdpdGggYWxsIHN0YXRpc3RpY3MKK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNzksOSArNzcx LDMxIEBAIFdJTkRPVyB3IEFTICgKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK ICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAl IDMgPSAyCi0pJyk7Ci0KLS0tIFRlc3QgNi4yOiBKU09OIGZvcm1hdCB3aXRoIG1hdGNoIGxlbmd0 aCBzdGF0aXN0aWNzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBK U09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBKyBCKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAl IDMgPSAyCispJyk7CitEUk9QIFZJRVcgcnByX3Y7CisKKy0tIEpTT04gZm9ybWF0IHdpdGggbWF0 Y2ggbGVuZ3RoIHN0YXRpc3RpY3MKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNPTikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTM5MiwxMiArODA2LDIzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAK ICknKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0KLS0tIFNlY3Rpb24gNzogWE1MIEZvcm1hdCBU ZXN0cwotLS0KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gWE1MIEZvcm1hdCBUZXN0cworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLS0tIFRlc3Qg Ny4xOiBYTUwgZm9ybWF0IG91dHB1dAorLS0gWE1MIGZvcm1hdCBvdXRwdXQKK0NSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwg QiBBUyB2ICUgMiA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFU IFhNTCkKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTQwOCwxMiArODMzLDc2IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBC IEFTIHYgJSAyID0gMAogKScpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLQotLS0gU2VjdGlvbiA4 OiBNdWx0aXBsZSBQYXJ0aXRpb25zIFRlc3RzCi0tLQorLS0gSlNPTiBmb3JtYXQgd2l0aCBtaXNt YXRjaCBzdGF0aXN0aWNzCistLSBQYXR0ZXJuIEEgQiBDIGV4cGVjdHMgMSwyLDMgYnV0IGdldHMg MSwyLDQgdHdpY2UgY2F1c2luZyBtaXNtYXRjaGVzCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIChWQUxVRVMgKDEpLCgyKSwoNCksICgxKSwo MiksKDQpLCAoMSksKDIpLCgzKSkgQVMgdCh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDKQorICAgIERFRklORSBBIEFT IHYgPSAxLCBCIEFTIHYgPSAyLCBDIEFTIHYgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYsIEZPUk1BVCBKU09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoVkFM VUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB IEIgQykKKyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMworKScp OworRFJPUCBWSUVXIHJwcl92OworCistLSBKU09OIGZvcm1hdCB3aXRoIHNraXBwZWQgY29udGV4 dCBzdGF0aXN0aWNzCistLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIHdpdGggU0tJUCBQQVNUIExBU1Qg Uk9XIGNhdXNlcyBtYW55IGNvbnRleHRzIHRvIGJlIHNraXBwZWQKK0NSRUFURSBURU1QIFZJRVcg cnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBC KSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIg QVMgdiAlIDIgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBK U09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChB IHwgQikgKEEgfCBCKSAoQSB8IEIpKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2 ICUgMiA9IDAKKyknKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCA4LjE6IFN0YXRpc3Rp Y3MgYWNyb3NzIG11bHRpcGxlIHBhcnRpdGlvbnMKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTXVsdGlwbGUgUGFydGl0 aW9ucyBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisKKy0tIFN0YXRpc3RpY3MgYWNyb3NzIG11bHRpcGxlIHBhcnRp dGlvbnMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gKAorICAgIFNFTEVDVCBwLCB2CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykg cCwKKyAgICAgICAgIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIHAKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUg PSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC00MjksOCArOTE4LDI1IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOycpOwor RFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDguMjogRGlmZmVyZW50IHBhdHRlcm4gYmVoYXZp b3IgcGVyIHBhcnRpdGlvbgorLS0gRGlmZmVyZW50IHBhdHRlcm4gYmVoYXZpb3IgcGVyIHBhcnRp dGlvbgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSAoCisgICAgU0VMRUNUCisgICAgICAgIENBU0UgV0hFTiB2IDw9IDI1IFRIRU4gMSBFTFNF IDIgRU5EIEFTIHAsCisgICAgICAgIHYgJSAxMCBBUyB2YWwKKyAgICBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MCkgdgorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIHAKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERF RklORSBBIEFTIHZhbCA8IDUsIEIgQVMgdmFsID49IDUKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTQ0NywxMiArOTUzLDIzIEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHZhbCA8 IDUsIEIgQVMgdmFsID49IDUKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tCi0tLSBTZWN0 aW9uIDk6IEVkZ2UgQ2FzZXMKLS0tCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEVkZ2UgQ2FzZXMKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0t LSBUZXN0IDkuMTogRW1wdHkgcmVzdWx0IHNldAorLS0gRW1wdHkgcmVzdWx0IHNldAorQ1JFQVRF IFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyB2ID0gMSwg QiBBUyB2ID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNv dW50KCopIE9WRVIgdwpAQCAtNDYzLDggKzk4MCwxOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgPSAxLCBCIEFTIHYgPSAyCiApOycpOworRFJP UCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDkuMjogU2luZ2xlIHJvdworLS0gU2luZ2xlIHJvdwor Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgVFJV RQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtNDc1LDggKzEwMDMsMjEgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEp CiAgICAgREVGSU5FIEEgQVMgVFJVRQogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVz dCA5LjM6IFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQorLS0gUGF0dGVybiBsb25nZXIgdGhhbiBk YXRhCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFIEYgRyBIIEkg SikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0g MywgRCBBUyB2ID0gNCwgRSBBUyB2ID0gNSwKKyAgICAgICAgRiBBUyB2ID0gNiwgRyBBUyB2ID0g NywgSCBBUyB2ID0gOCwgSSBBUyB2ID0gOSwgSiBBUyB2ID0gMTAKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTQ4OSw4ICsxMDMw LDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBB UyB2ID0gMywgRCBBUyB2ID0gNCwgRSBBUyB2ID0gNSwKICAgICAgICAgRiBBUyB2ID0gNiwgRyBB UyB2ID0gNywgSCBBUyB2ID0gOCwgSSBBUyB2ID0gOSwgSiBBUyB2ID0gMTAKICk7Jyk7CitEUk9Q IFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgOS40OiBBbGwgcm93cyBtYXRjaCBhcyBzaW5nbGUgbWF0 Y2gKKy0tIEFsbCByb3dzIG1hdGNoIGFzIHNpbmdsZSBtYXRjaAorQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBUUlVFCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01MDEsMTIg KzEwNTMsMjMgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBB IEFTIFRSVUUKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tCi0tLSBTZWN0aW9uIDEwOiBD b21wbGV4IFBhdHRlcm4gVGVzdHMKLS0tCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIENvbXBsZXggUGF0dGVybiBUZXN0 cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAKLS0tIFRlc3QgMTAuMTogTmVzdGVkIGdyb3VwcworLS0gTmVzdGVkIGdyb3Vw cworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEgQikgQykrKQorICAgIERF RklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC01MTcsOCArMTA4MCwyMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpIEMp KykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAz ID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxMC4yOiBNdWx0aXBsZSBh bHRlcm5hdGlvbnMKKy0tIE11bHRpcGxlIGFsdGVybmF0aW9ucworQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfdGVzdAorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwg QikgKEMgfCBEIHwgRSkpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFT IGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCisgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFT IGNhdCA9ICdFJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNv dW50KCopIE9WRVIgdwpAQCAtNTMxLDggKzExMDcsMTkgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicnLCBDIEFTIGNhdCA9ICcnQycnLAog ICAgICAgICBEIEFTIGNhdCA9ICcnRCcnLCBFIEFTIGNhdCA9ICcnRScnCiApOycpOworRFJPUCBW SUVXIHJwcl92OwogCi0tLSBUZXN0IDEwLjM6IE9wdGlvbmFsIGVsZW1lbnRzCistLSBPcHRpb25h bCBlbGVtZW50cworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEI/IEMpCisg ICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTU0Myw4ICsxMTMwLDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEI/ IEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUg NCA9IDMKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTAuNDogQm91bmRlZCBx dWFudGlmaWVycworLS0gQm91bmRlZCBxdWFudGlmaWVycworQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQXsyLDV9IEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIg QVMgdiAlIDEwID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtNTU1LDggKzExNTMsMTkgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEF7Miw1fSBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYg JSAxMCA9IDAKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTAuNTogU3RhciBx dWFudGlmaWVyCistLSBTdGFyIHF1YW50aWZpZXIKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSBCKiBDKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA9IDEsIEIgQVMgdiAlIDEw IElOICgyLDMsNCw1LDYsNyw4KSwgQyBBUyB2ICUgMTAgPSA5CispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01NjcsMTIgKzExNzYs MjMgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiogQykKICAgICBERUZJTkUgQSBB UyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCBJTiAoMiwzLDQsNSw2LDcsOCksIEMgQVMgdiAlIDEw ID0gOQogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0KLS0tIFNlY3Rpb24gMTE6IFJlYWwt d29ybGQgUGF0dGVybiBFeGFtcGxlcwotLS0KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUmVhbC13b3JsZCBQYXR0ZXJu IEV4YW1wbGVzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIAotLS0gVGVzdCAxMS4xOiBTdG9jayBwcmljZSBwYXR0ZXJuIC0g Vi1zaGFwZSAoZG93biB0aGVuIHVwKQorLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIFYtc2hhcGUg KGRvd24gdGhlbiB1cCkKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gbmZhX2NvbXBsZXgKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChEKyBVKykKKyAgICBERUZJTkUgRCBBUyB0 cmVuZCA9ICdEJywgVSBBUyB0cmVuZCA9ICdVJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTgzLDggKzEyMDMsMTkgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEQrIFUrKQogICAgIERFRklORSBEIEFTIHRyZW5kID0g JydEJycsIFUgQVMgdHJlbmQgPSAnJ1UnJwogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0g VGVzdCAxMS4yOiBTdG9jayBwcmljZSBwYXR0ZXJuIC0gcGVhayAodXAsIHN0YWJsZSwgZG93bikK Ky0tIFN0b2NrIHByaWNlIHBhdHRlcm4gLSBwZWFrICh1cCwgc3RhYmxlLCBkb3duKQorQ1JFQVRF IFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfY29t cGxleAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKFUrIFMqIEQrKQorICAgIERFRklORSBVIEFTIHRyZW5kID0gJ1UnLCBTIEFTIHRy ZW5kID0gJ1MnLCBEIEFTIHRyZW5kID0gJ0QnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01OTUsOCArMTIyNiwxOSBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoVSsgUyogRCspCiAgICAgREVGSU5FIFUgQVMgdHJlbmQg PSAnJ1UnJywgUyBBUyB0cmVuZCA9ICcnUycnLCBEIEFTIHRyZW5kID0gJydEJycKICk7Jyk7CitE Uk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTEuMzogQ29uc2VjdXRpdmUgaW5jcmVhc2luZyB2 YWx1ZXMgKHVzaW5nIFBSRVYpCistLSBDb25zZWN1dGl2ZSBpbmNyZWFzaW5nIHZhbHVlcyAodXNp bmcgUFJFVikKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXszLH0pCisgICAg REVGSU5FIEEgQVMgdiA+IFBSRVYodikgT1IgUFJFVih2KSBJUyBOVUxMCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC02MDcsMTIg KzEyNDksMjMgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Myx9KQogICAgIERFRklO RSBBIEFTIHYgPiBQUkVWKHYpIE9SIFBSRVYodikgSVMgTlVMTAogKTsnKTsKK0RST1AgVklFVyBy cHJfdjsKIAotLS0KLS0tIFNlY3Rpb24gMTI6IFBlcmZvcm1hbmNlLW9yaWVudGVkIFRlc3RzCi0t LQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBQZXJmb3JtYW5jZS1vcmllbnRlZCBUZXN0cworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLS0tIFRl c3QgMTIuMTogTGFyZ2UgZGF0YXNldCB3aXRoIHNpbXBsZSBwYXR0ZXJuCistLSBMYXJnZSBkYXRh c2V0IHdpdGggc2ltcGxlIHBhdHRlcm4KK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtNjIzLDggKzEyNzYsMTkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAg ICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOycpOworRFJPUCBWSUVX IHJwcl92OwogCi0tLSBUZXN0IDEyLjI6IExhcmdlIGRhdGFzZXQgd2l0aCBhYnNvcnB0aW9uCist LSBMYXJnZSBkYXRhc2V0IHdpdGggYWJzb3JwdGlvbgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwMCA8PiAwLCBCIEFTIHYg JSAxMDAgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC02MzUsOCArMTI5OSwxOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAwIDw+IDAsIEIgQVMgdiAlIDEwMCA9 IDAKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTIuMzogSGlnaCBzdGF0ZSBt ZXJnZSByYXRpbworLS0gSGlnaCBzdGF0ZSBtZXJnZSByYXRpbworQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSsgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEs IEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNjQ3LDEyICsxMzIyLDI0IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFT IHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOycpOworRFJPUCBW SUVXIHJwcl92OwogCi0tLQotLS0gU2VjdGlvbiAxMzogSU5JVElBTCB2cyBubyBJTklUSUFMIGNv bXBhcmlzb24KLS0tCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIElOSVRJQUwgdnMgbm8gSU5JVElBTCBjb21wYXJpc29u CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIAotLS0gVGVzdCAxMy4xOiBXaXRoIElOSVRJQUwga2V5d29yZAorLS0gV2l0aCBJ TklUSUFMIGtleXdvcmQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgSU5JVElBTAorICAgIFBB VFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTY2NCw4ICsxMzUxLDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOycpOworRFJP UCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDEzLjI6IFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChz YW1lIGJlaGF2aW9yIGN1cnJlbnRseSkKKy0tIFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChzYW1l IGJlaGF2aW9yIGN1cnJlbnRseSkKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAt Njc2LDEyICsxMzc0LDIzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOycpOworRFJPUCBWSUVX IHJwcl92OwogCi0tLQotLS0gU2VjdGlvbiAxNDogUXVhbnRpZmllciBWYXJpYXRpb25zCi0tLQor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBRdWFudGlmaWVyIFZhcmlhdGlvbnMKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0tLSBUZXN0IDE0LjE6 IFBsdXMgcXVhbnRpZmllcgorLS0gUGx1cyBxdWFudGlmaWVyCitDUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0 MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYgJSA0IDw+IDAKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTY5 MiwxMCArMTQwMSwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVG SU5FIEEgQVMgdiAlIDQgPD4gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAx NC4yOiBTdGFyIHF1YW50aWZpZXIgKHplcm8gb3IgbW9yZSkKLVNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwotRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCistLSBTdGFyIHF1YW50aWZpZXIgKHplcm8gb3IgbW9yZSkKK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC03MDMsOSArMTQx Miw4IEBAIFdJTkRPVyB3IEFTICgKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK ICAgICBQQVRURVJOIChBKiBCKQogICAgIERFRklORSBBIEFTIHYgJSA0IElOICgxLCAyKSwgQiBB UyB2ICUgNCA9IDMKLSk7Jyk7Ci0KLS0tIFRlc3QgMTQuMzogUXVlc3Rpb24gbWFyayAoemVybyBv ciBvbmUpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CkBAIC03MTMsMTEgKzE0MjEsNDUgQEAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKLSAgICBQQVRURVJOIChBPyBCIEMpCi0gICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFT IHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKKyAgICBQQVRURVJOIChBKiBCKQorICAgIERFRklO RSBBIEFTIHYgJSA0IElOICgxLCAyKSwgQiBBUyB2ICUgNCA9IDMKICk7Jyk7CitEUk9QIFZJRVcg cnByX3Y7CiAKLS0tIFRlc3QgMTQuNDogRXhhY3QgY291bnQge259CistLSBRdWVzdGlvbiBtYXJr ICh6ZXJvIG9yIG9uZSkKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQT8gQiBD KQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQg PSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEE/IEIgQykK KyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYgJSA0ID0g MworKTsnKTsKK0RST1AgVklFVyBycHJfdjsKKworLS0gRXhhY3QgY291bnQge259CitDUkVBVEUg VEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7M30gQikKKyAgICBERUZJTkUgQSBBUyB2ICUg NSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzI4LDggKzE0NzAsMTkgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7M30gQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxNC41OiBS YW5nZSB7bixtfQorLS0gUmFuZ2Uge24sbX0KK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQXsyLDR9IEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9 IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKQEAgLTc0MCw4ICsxNDkzLDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB ezIsNH0gQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsn KTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxNC42OiBBdCBsZWFzdCB7bix9CistLSBB dCBsZWFzdCB7bix9CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Myx9IEIp CisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzUy LDEzICsxNTE2LDI0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezMsfSBCKQogICAg IERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Jyk7CitEUk9QIFZJ RVcgcnByX3Y7CiAKLS0tCi0tLSBTZWN0aW9uIDE1OiBSZWdyZXNzaW9uIFRlc3RzIGZvciBTdGF0 aXN0aWNzIEFjY3VyYWN5Ci0tLQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSZWdyZXNzaW9uIFRlc3RzIGZvciBTdGF0 aXN0aWNzIEFjY3VyYWN5CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIAotLS0gVGVzdCAxNS4xOiBWZXJpZnkgc3RhdGUgY291 bnQgYWNjdXJhY3kKKy0tIFZlcmlmeSBzdGF0ZSBjb3VudCBhY2N1cmFjeQogLS0gUGF0dGVybiBB KyBCIHdpdGggMjAgcm93cyBzaG91bGQgc2hvdyBwcmVkaWN0YWJsZSBzdGF0ZSBiZWhhdmlvcgor Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFT IHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC03NjksOCArMTU0NCwxOSBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAw LCBCIEFTIHYgJSA1ID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxNS4y OiBWZXJpZnkgY29udGV4dCBjb3VudCB3aXRoIGtub3duIGFic29ycHRpb24KKy0tIFZlcmlmeSBj b250ZXh0IGNvdW50IHdpdGgga25vd24gYWJzb3JwdGlvbgorQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBKyBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIElOICgxLDIsMyw0 LDUsNiw3KSwgQiBBUyB2ICUgMTAgPSA4LCBDIEFTIHYgJSAxMCA9IDkKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTc4MSw4ICsx NTY3LDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCIEMpCiAgICAgREVGSU5F IEEgQVMgdiAlIDEwIElOICgxLDIsMyw0LDUsNiw3KSwgQiBBUyB2ICUgMTAgPSA4LCBDIEFTIHYg JSAxMCA9IDkKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTUuMzogVmVyaWZ5 IG1hdGNoIGxlbmd0aCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCistLSBWZXJpZnkgbWF0Y2gg bGVuZ3RoIHdpdGggZml4ZWQtbGVuZ3RoIHBhdHRlcm4KK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAz ID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTc5MywxMiArMTU5MCwyMyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFT IHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0t Ci0tLSBTZWN0aW9uIDE2OiBBbHRlcm5hdGlvbiBQYXR0ZXJuIFRlc3RzCi0tLQorLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBBbHRlcm5hdGlvbiBQYXR0ZXJuIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotLS0gVGVzdCAxNi4xOiBTaW1w bGUgYWx0ZXJuYXRpb24KKy0tIFNpbXBsZSBhbHRlcm5hdGlvbgorQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBuZmFfdGVzdAorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwg QikgQykKKyAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNh dCA9ICdDJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtODA5LDggKzE2MTcsMjEgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKChBIHwgQikgQykKICAgICBERUZJTkUgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAn J0InJywgQyBBUyBjYXQgPSAnJ0MnJwogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVz dCAxNi4yOiBNdWx0aXBsZSBpdGVtcyBpbiBhbHRlcm5hdGlvbgorLS0gTXVsdGlwbGUgaXRlbXMg aW4gYWx0ZXJuYXRpb24KK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBDIHwgRCkgRSkKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdD JywKKyAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC04MjMsOCAr MTY0NCwxOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0gJydBJycsIEIgQVMg Y2F0ID0gJydCJycsIEMgQVMgY2F0ID0gJydDJycsCiAgICAgICAgIEQgQVMgY2F0ID0gJydEJycs IEUgQVMgY2F0ID0gJydFJycKICk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTYu MzogQWx0ZXJuYXRpb24gd2l0aCBxdWFudGlmaWVycworLS0gQWx0ZXJuYXRpb24gd2l0aCBxdWFu dGlmaWVycworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpKyBDKQor ICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAw CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC04MzUsMTIgKzE2NjcsMTcyIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgo QSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMg QVMgdiAlIDMgPSAwCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLQotLS0gU2VjdGlvbiAx NzogR3JvdXAgUGF0dGVybiBUZXN0cwotLS0KKy0tIE11bHRpcGxlIGFsdGVybmF0aXZlcyAoNCsp CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBIHwgQiB8IEMgfCBEIHwgRSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAl IDUgPSAxLCBDIEFTIHYgJSA1ID0gMiwgRCBBUyB2ICUgNSA9IDMsIEUgQVMgdiAlIDUgPSA0Cisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUgPSAzLCBF IEFTIHYgJSA1ID0gNAorKTsnKTsKK0RST1AgVklFVyBycHJfdjsKKworLS0gQWx0ZXJuYXRpb24g YXQgc3RhcnQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoKEEgfCBCKSBDIEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYg JSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO ICgoQSB8IEIpIEMgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAx LCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7 CisKKy0tIE11bHRpcGxlIHNlcXVlbnRpYWwgYWx0ZXJuYXRpb25zCitDUkVBVEUgVEVNUCBWSUVX IHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQgfCBF KSBGKQorICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAl IDYgPSAyLCBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1Cisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoKEEgfCBCKSBDIChEIHwgRSkgRikKKyAgICBERUZJTkUgQSBBUyB2 ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2ID0gMiwgRCBBUyB2ICUgNiA9IDMs IEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2ID0gNQorKTsnKTsKK0RST1AgVklFVyBycHJfdjsK KworLS0gUXVhbnRpZmllZCBhbHRlcm5hdGl2ZXMKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEErIHwgQispIEMpCisgICAgREVGSU5FIEEg QVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKChBKyB8IEIrKSBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUg MyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOycpOworRFJPUCBWSUVXIHJwcl92OworCistLSBBbHRl cm5hdGlvbiBhdCBlbmQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSBCIChDIHwgRCkpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBC IEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBIEIgKEMgfCBEKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAl IDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CitEUk9QIFZJRVcg cnByX3Y7CisKKy0tIE5lc3RlZCBBTFQgYXQgc3RhcnQgb2YgYnJhbmNoIGluc2lkZSBvdXRlciBB TFQKKy0tIFBhdHRlcm46IChBICgoQiB8IEMpIEQgfCBFKSkgLSBwcmVjZWRpbmcgVkFSICsgaW5u ZXIgQUxUIGFzIGZpcnN0IGJyYW5jaCBlbGVtZW50CitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykgRCB8IEUpKQorICAgIERF RklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFT IHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykg RCB8IEUpKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMg diAlIDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKKyk7Jyk7CitEUk9QIFZJ RVcgcnByX3Y7CisKKy0tIE5lc3RlZCBBTFQgYXQgZW5kIG9mIGJyYW5jaCBpbnNpZGUgb3V0ZXIg QUxUCistLSBQYXR0ZXJuOiAoQyAoQSB8IEIpIHwgRCkgLSBpbm5lciBBTFQgaXMgbGFzdCBlbGVt ZW50IGluIG91dGVyIGJyYW5jaAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChDIChBIHwgQikgfCBEKQorICAgIERFRklORSBBIEFTIHYgJSA0 ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAs IEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7CitE Uk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTcuMTogU2ltcGxlIGdyb3VwCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEdyb3VwIFBhdHRlcm4gVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBTaW1wbGUgZ3JvdXAKK0NSRUFURSBU RU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQikrKQorICAgIERFRklORSBBIEFTIHYgJSAy ID0gMSwgQiBBUyB2ICUgMiA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTg1MSw4ICsxODQzLDE5IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOICgoQSBCKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFT IHYgJSAyID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxNy4yOiBHcm91 cCB3aXRoIGJvdW5kZWQgcXVhbnRpZmllcgorLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50aWZp ZXIKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQil7Miw0fSkKKyAgICBE RUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC04NjMsOCArMTg2Niwx OSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQil7Miw0fSkKICAgICBERUZJTkUg QSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOycpOworRFJPUCBWSUVXIHJwcl92Owog Ci0tLSBUZXN0IDE3LjM6IE5lc3RlZCBncm91cHMKKy0tIE5lc3RlZCBncm91cHMKK0NSRUFURSBU RU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCisgICAgREVGSU5FIEEgQVMg diAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODc1LDEyICsxODg5LDEwNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCiAgICAgREVGSU5FIEEgQVMgdiAl IDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0KLS0t IFNlY3Rpb24gMTg6IFdpbmRvdyBGdW5jdGlvbiBDb21iaW5hdGlvbnMKLS0tCistLSBEZWVwIG5l c3RpbmcgKDMrIGxldmVscykKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoKCgoQSB8IEIpKykrKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDIg PSAwLCBCIEFTIHYgJSAyID0gMQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKCgoQSB8IEIpKykrKSspCisg ICAgREVGSU5FIEEgQVMgdiAlIDIgPSAwLCBCIEFTIHYgJSAyID0gMQorKTsnKTsKK0RST1AgVklF VyBycHJfdjsKIAotLS0gVGVzdCAxOC4xOiBjb3VudCgqKSB3aXRoIHBhdHRlcm4KKy0tIEJvdW5k ZWQgcXVhbnRpZmllciBvbiBhbHRlcm5hdGlvbgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKKyAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoKEEgfCBCKXsyLDN9IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFT IHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CisKKy0t IE5lc3RlZCBncm91cHMgd2l0aCBxdWFudGlmaWVycworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEEgQikrIEMpKikKKyAgICBERUZJTkUg QSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoKChBIEIpKyBDKSopCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYg JSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7Jyk7CitEUk9QIFZJRVcgcnByX3Y7CisKKy0tIFBh cnRpYWwgbmVzdGVkIHF1YW50aWZpY2F0aW9uCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQorICAgIERFRklORSBBIEFT IHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOICgoQSAoQiBDKSspKikKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMg PSAxLCBDIEFTIHYgJSAzID0gMgorKTsnKTsKK0RST1AgVklFVyBycHJfdjsKKworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25zCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gY291bnQoKikgd2l0 aCBwYXR0ZXJuCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAg REVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTg5MSw4ICsyMDAw LDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFT IHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0t LSBUZXN0IDE4LjI6IGZpcnN0X3ZhbHVlIHdpdGggcGF0dGVybgorLS0gZmlyc3RfdmFsdWUgd2l0 aCBwYXR0ZXJuCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgZmlyc3RfdmFsdWUo dikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIp CisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBmaXJzdF92YWx1ZSh2KSBPVkVSIHcKQEAg LTkwMyw4ICsyMDIzLDE5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOycpOworRFJPUCBWSUVX IHJwcl92OwogCi0tLSBUZXN0IDE4LjM6IGxhc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCistLSBsYXN0 X3ZhbHVlIHdpdGggcGF0dGVybgorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGxh c3RfdmFsdWUodikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBsYXN0X3ZhbHVlKHYpIE9W RVIgdwpAQCAtOTE1LDggKzIwNDYsMjIgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Jyk7CitE Uk9QIFZJRVcgcnByX3Y7CiAKLS0tIFRlc3QgMTguNDogTXVsdGlwbGUgd2luZG93IGZ1bmN0aW9u cworLS0gTXVsdGlwbGUgd2luZG93IGZ1bmN0aW9ucworQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiB3LAorICAgIGZpcnN0X3ZhbHVlKHYpIE9WRVIg dywKKyAgICBsYXN0X3ZhbHVlKHYpIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAl IDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QKQEAgLTkz MCwxMiArMjA3NSwyNSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBE RUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsnKTsKK0RST1AgVklFVyBy cHJfdjsKIAotLS0KLS0tIFNlY3Rpb24gMTk6IERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMK LS0tCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0t LSBUZXN0IDE5LjE6IENvbXBsZXggYm9vbGVhbiBleHByZXNzaW9ucworLS0gQ29tcGxleCBib29s ZWFuIGV4cHJlc3Npb25zCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgKHYgJSA1IDw+IDApIEFORCAodiAlIDMgPD4gMCks CisgICAgICAgIEIgQVMgKHYgJSA1ID0gMCkgT1IgKHYgJSAzID0gMCkKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTk0OCw4ICsy MTA2LDIyIEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyAodiAlIDUgPD4gMCkgQU5EICh2 ICUgMyA8PiAwKSwKICAgICAgICAgQiBBUyAodiAlIDUgPSAwKSBPUiAodiAlIDMgPSAwKQogKTsn KTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAxOS4yOiBVc2luZyBQUkVWIGZ1bmN0aW9u CistLSBVc2luZyBQUkVWIGZ1bmN0aW9uCitDUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKFMgVSsgRCspCisgICAgREVGSU5FCisgICAgICAgIFMgQVMgVFJVRSwKKyAgICAgICAgVSBB UyB2ID4gUFJFVih2KSwKKyAgICAgICAgRCBBUyB2IDwgUFJFVih2KQorKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTYzLDggKzIx MzUsMjIgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBVIEFTIHYgPiBQUkVWKHYpLAogICAgICAg ICBEIEFTIHYgPCBQUkVWKHYpCiApOycpOworRFJPUCBWSUVXIHJwcl92OwogCi0tLSBUZXN0IDE5 LjM6IFVzaW5nIE5VTEwgY29tcGFyaXNvbnMKKy0tIFVzaW5nIE5VTEwgY29tcGFyaXNvbnMKK0NS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAor ICAgIFNFTEVDVCBDQVNFIFdIRU4gdiAlIDUgPSAwIFRIRU4gTlVMTCBFTFNFIHYgRU5EIEFTIHYK KyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBE RUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVMTAorKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTc4LDEyICsy MTY0LDIzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBB IEFTIHYgSVMgTk9UIE5VTEwsIEIgQVMgdiBJUyBOVUxMCiApOycpOworRFJPUCBWSUVXIHJwcl92 OwogCi0tLQotLS0gU2VjdGlvbiAyMDogTGFyZ2UgU2NhbGUgU3RhdGlzdGljcyBWZXJpZmljYXRp b24KLS0tCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAotLS0gVGVzdCAyMC4xOiA1MDAgcm93cyAtIHZlcmlmeSBzdGF0aXN0aWNzIHNjYWxl IGNvcnJlY3RseQorLS0gNTAwIHJvd3MgLSB2ZXJpZnkgc3RhdGlzdGljcyBzY2FsZSBjb3JyZWN0 bHkKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIgQykKKyAgICBERUZJ TkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAlIDEwID0gOAorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtOTk0LDggKzIxOTEsMTkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIgQykK ICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAlIDEw ID0gOAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAyMC4yOiBIaWdoIG1hdGNo IGNvdW50IHNjZW5hcmlvCistLSBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCitDUkVBVEUgVEVN UCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAx LCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTAwNiw4ICsyMjE0LDI0IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAogKTsnKTsKK0RST1AgVklFVyBycHJfdjsKIAotLS0gVGVzdCAyMC4zOiBIaWdoIHNraXAg Y291bnQgc2NlbmFyaW8KKy0tIEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbworQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFKQorICAgIERFRklORQorICAgICAgICBB IEFTIHYgJSAxMDAgPSAxLAorICAgICAgICBCIEFTIHYgJSAxMDAgPSAyLAorICAgICAgICBDIEFT IHYgJSAxMDAgPSAzLAorICAgICAgICBEIEFTIHYgJSAxMDAgPSA0LAorICAgICAgICBFIEFTIHYg JSAxMDAgPSA1CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0xMDIzLDYgKzIyNDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg IEQgQVMgdiAlIDEwMCA9IDQsCiAgICAgICAgIEUgQVMgdiAlIDEwMCA9IDUKICk7Jyk7CitEUk9Q IFZJRVcgcnByX3Y7CiAKIC0tIENsZWFudXAKIERST1AgVEFCTEUgbmZhX3Rlc3Q7Ci0tIAoyLjUw LjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000008d4e05064a523091--