<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>132319</bug_id>
          
          <creation_ts>2014-04-28 21:29:29 -0700</creation_ts>
          <short_desc>CSS JIT: optimize direct / indirect adjacent&apos;s traversal backtracking</short_desc>
          <delta_ts>2014-05-04 11:25:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1004850</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-28 21:29:29 -0700</bug_when>
    <thetext>Since adjacent backtracking stack reference is pre-allocated
in prologue in http://trac.webkit.org/changeset/166834,
clearing stack phase is not needed. So we can drop
JumpToClearAdjacentTail from backtracking action and simplify
backtracking handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004852</commentid>
    <comment_count>1</comment_count>
      <attachid>230353</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-28 22:02:48 -0700</bug_when>
    <thetext>Created attachment 230353
Patch

rev1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005350</commentid>
    <comment_count>2</comment_count>
      <attachid>230473</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-30 04:47:41 -0700</bug_when>
    <thetext>Created attachment 230473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005356</commentid>
    <comment_count>3</comment_count>
      <attachid>230473</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-30 05:11:52 -0700</bug_when>
    <thetext>Comment on attachment 230473
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230473&amp;action=review

Added comments to the patch.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:68
&gt; +    JumpToDirectAdjacentTail

Drop JumpToClearAdjacentTail since there&apos;s no need to decrease stack height.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:613
&gt; +        return BacktrackingAction::NoBacktracking;

When there&apos;s no descendant relation on the right, traversal failure becomes global failure.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:615
&gt; +    if (fragment.tagNameMatchedBacktrackingStartHeightFromDescendant == (fragment.heightFromDescendant + 1))

When `tagNameMatchedBacktrackingStartHeightFromDescendant` == `heightFromDescendant` + 1, the descendant backtracking starts with the parent of the current element. So we can use the current element and the backtracking action is JumpToDescendantTreeWalkerEntryPoint.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:618
&gt; +    return BacktrackingAction::JumpToDescendantTail;

Otherwise, currently we take the conservative approach, JumpToDescendantTail.
We can optimize it more aggressively, but it will be done in the next patches.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:651
&gt; +            fragment.matchingPostTagNameBacktrackingAction = fragment.traversalBacktrackingAction;

When `hasIndirectAdjacentRelationOnTheRightOfDirectAdjacentChain` is false and `hasDescendantRelationOnTheRight` is true, we should backtrack with the closest descendant fragment. So we can take the same action as the traversal action.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:657
&gt; +        fragment.traversalBacktrackingAction = solveTraversalBacktrackingAction(fragment, hasDescendantRelationOnTheRight);

In the indirect fragment, we can take the same traversal action in the direct fragment&apos;s traversal action.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005357</commentid>
    <comment_count>4</comment_count>
      <attachid>230473</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-30 05:24:27 -0700</bug_when>
    <thetext>Comment on attachment 230473
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230473&amp;action=review

Add aditional notes

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:615
&gt;&gt; +    if (fragment.tagNameMatchedBacktrackingStartHeightFromDescendant == (fragment.heightFromDescendant + 1))
&gt; 
&gt; When `tagNameMatchedBacktrackingStartHeightFromDescendant` == `heightFromDescendant` + 1, the descendant backtracking starts with the parent of the current element. So we can use the current element and the backtracking action is JumpToDescendantTreeWalkerEntryPoint.

NOTE:
If `hasDescendantRelationOnTheRight` is true and there&apos;s no child fragment on the right, the backtracking element register is not effective. So we should ensure that fragment doesn&apos;t use the backtracking element register.

Such a fragment fulfills the following conditions.
1. tagNameMatchedBacktrackingStartHeightFromDescendant is always 1 (tagNames.size(), that contains only descendant fragment)
2. heightFromDescendant is always 0
(-- See computeBacktrackingHeightFromDescendant implementation)

Therefore such a fragment&apos;s action always becomes JumpToDescendantTreeWalkerEntryPoint.
So we can ensure that the backtracking element register is not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005644</commentid>
    <comment_count>5</comment_count>
      <attachid>230473</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-30 20:30:35 -0700</bug_when>
    <thetext>Comment on attachment 230473
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230473&amp;action=review

The patch looks great.

The comments you have added on bugzilla are very useful. You should put those explanation in the changelog too.

r- because I think the test needs to be extended. The patch looks correct to me otherwise.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:610
&gt; +static inline BacktrackingAction solveTraversalBacktrackingAction(const SelectorFragment&amp; fragment, bool hasDescendantRelationOnTheRight)

This is only for adjacent backtracking action, let&apos;s name this solveAdjacentTraversalBacktrackingAction() for clarity.

&gt; LayoutTests/fast/selectors/backtracking-adjacent.html:6
&gt; +/* default */

You can remove this comment.

&gt; LayoutTests/fast/selectors/backtracking-adjacent.html:113
&gt; +description(&apos;The backtracking direct adjacent combinator with descendant tail cases&apos;);

Hum, I am confused here, none of the cases tested needs a descendant tail.

I think what would make a good test here is cases of adjacent chain inside a descendant chain where a descendant tail would have been needed before your backtracking optimizations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006100</commentid>
    <comment_count>6</comment_count>
      <attachid>230686</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-02 12:42:05 -0700</bug_when>
    <thetext>Created attachment 230686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006101</commentid>
    <comment_count>7</comment_count>
      <attachid>230473</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-02 12:43:48 -0700</bug_when>
    <thetext>Comment on attachment 230473
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230473&amp;action=review

I&apos;ve uploaded the revised patch. And add comments on bugzilla to ChangeLog.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:610
&gt;&gt; +static inline BacktrackingAction solveTraversalBacktrackingAction(const SelectorFragment&amp; fragment, bool hasDescendantRelationOnTheRight)
&gt; 
&gt; This is only for adjacent backtracking action, let&apos;s name this solveAdjacentTraversalBacktrackingAction() for clarity.

That&apos;s reasonable. I&apos;ve renamed it.

&gt;&gt; LayoutTests/fast/selectors/backtracking-adjacent.html:113
&gt;&gt; +description(&apos;The backtracking direct adjacent combinator with descendant tail cases&apos;);
&gt; 
&gt; Hum, I am confused here, none of the cases tested needs a descendant tail.
&gt; 
&gt; I think what would make a good test here is cases of adjacent chain inside a descendant chain where a descendant tail would have been needed before your backtracking optimizations.

Right. I&apos;ve changed this with &apos;The backtracking from adjacent combinators&apos;.

And added test cases using backtracking tails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006133</commentid>
    <comment_count>8</comment_count>
      <attachid>230693</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-02 13:47:21 -0700</bug_when>
    <thetext>Created attachment 230693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006452</commentid>
    <comment_count>9</comment_count>
      <attachid>230693</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-03 20:06:13 -0700</bug_when>
    <thetext>Comment on attachment 230693
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230693&amp;action=review

Great patch and great test!

I&apos;ll update the LayoutTest&apos;s ChangeLog and commit manually.

&gt; LayoutTests/ChangeLog:10
&gt; +        Since adjacent backtracking stack reference is pre-allocated
&gt; +        in prologue in http://trac.webkit.org/changeset/166834,
&gt; +        clearing stack phase is not needed. So we can drop

You don&apos;t need to repeat the text in this changelog. In the layout test changelog, you can add any comment you have on your tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006457</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-03 20:27:14 -0700</bug_when>
    <thetext>Committed r168236: &lt;http://trac.webkit.org/changeset/168236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006491</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-04 11:25:30 -0700</bug_when>
    <thetext>Thank you!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230353</attachid>
            <date>2014-04-28 22:02:48 -0700</date>
            <delta_ts>2014-04-30 04:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132319-20140429140226.patch</filename>
            <type>text/plain</type>
            <size>10537</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3OTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA1YjJlMDc4N2IwZWE0
Zjg4ODJhN2M2Nzk5M2RhNDJmZjBiOTMxMi4uNmY3NTFjODU4YWVmODIxYzUwNzQ2NGQ2ZTUyODA4
N2E2YzE1ZmE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA0LTI4ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IHJl
bW92ZSBKdW1wVG9DbGVhckFkamFjZW50VGFpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2luY2UgYWRqYWNlbnQgYmFja3RyYWNraW5nIHN0YWNrIHJl
ZmVyZW5jZSBpcyBwcmUtYWxsb2NhdGVkCisgICAgICAgIGluIHByb2xvZ3VlIGluIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2NjgzNCwKKyAgICAgICAgY2xlYXJpbmcgc3RhY2sg
cGhhc2UgaXMgbm90IG5lZWRlZC4gU28gd2UgY2FuIGRyb3AKKyAgICAgICAgSnVtcFRvQ2xlYXJB
ZGphY2VudFRhaWwgZnJvbSBiYWNrdHJhY2tpbmcgYWN0aW9uIGFuZCBzaW1wbGlmeS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctZGlyZWN0LWFkamFjZW50Lmh0
bWwKKworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnNvbHZlQmFja3RyYWNraW5nQWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6bGlu
a0ZhaWx1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9y
Q29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2VudEJhY2t0cmFja2luZ1RhaWwpOgorCiAyMDE0
LTA0LTI4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudElzTnRoQ2hpbGQoKSBsZWFr
cyB0aGUgcGFyZW50IHJlZ2lzdGVyIDpudGgtY2hpbGQoKSBpcyBub24tZmlsdGVyaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggNWI4ZjU0Njk0NjFi
MWNmOWQwYjM0NjUxMzIzMDYwMjliYTllODJmYS4uZmRmYmRkYmNiYmVmMTRjOWQxMGY4MGQzMThk
MTQ5NDhhMzk0YjU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVy
LmNwcApAQCAtNjUsOCArNjUsNyBAQCBlbnVtIGNsYXNzIEJhY2t0cmFja2luZ0FjdGlvbiB7CiAg
ICAgSnVtcFRvSW5kaXJlY3RBZGphY2VudEVudHJ5UG9pbnQsCiAgICAgSnVtcFRvRGVzY2VuZGFu
dFRyZWVXYWxrZXJFbnRyeVBvaW50LAogICAgIEp1bXBUb0Rlc2NlbmRhbnRUYWlsLAotICAgIEp1
bXBUb0RpcmVjdEFkamFjZW50VGFpbCwKLSAgICBKdW1wVG9DbGVhckFkamFjZW50VGFpbAorICAg
IEp1bXBUb0RpcmVjdEFkamFjZW50VGFpbAogfTsKIAogc3RydWN0IEJhY2t0cmFja2luZ0ZsYWcg
ewpAQCAtMjQxLDcgKzI0MCw2IEBAIHByaXZhdGU6CiAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBt
X2Rlc2NlbmRhbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXM7CiAgICAgU3RhY2tBbGxvY2F0b3I6
OlN0YWNrUmVmZXJlbmNlIG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydDsKICAgICBBc3NlbWJs
ZXI6Okp1bXBMaXN0IG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXM7Ci0gICAgQXNz
ZW1ibGVyOjpKdW1wTGlzdCBtX2NsZWFyQWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXM7
CiAKICNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVHR0lORwogICAgIGNvbnN0IENTU1NlbGVjdG9y
KiBtX29yaWdpbmFsU2VsZWN0b3I7CkBAIC02MzMsMTYgKzYzMSw4IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBzb2x2ZUJhY2t0cmFja2luZ0FjdGlvbihTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwg
Ym9vbCBoYXNECiAgICAgICAgIGlmIChoYXNEZXNjZW5kYW50UmVsYXRpb25PblRoZVJpZ2h0KSB7
CiAgICAgICAgICAgICBpZiAoIWlzQWZ0ZXJDaGlsZFJlbGF0aW9uKGFuY2VzdG9yUG9zaXRpb25T
aW5jZURlc2NlbmRhbnRSZWxhdGlvbikpCiAgICAgICAgICAgICAgICAgZnJhZ21lbnQudHJhdmVy
c2FsQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5k
YW50VHJlZVdhbGtlckVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIWhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRpcmVjdEFk
amFjZW50Q2hhaW4gfHwgaXNGaXJzdEFkamFjZW50KGFkamFjZW50UG9zaXRpb25TaW5jZUluZGly
ZWN0QWRqYWNlbnRUcmVlV2FsaykpCi0gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZl
cnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2Vu
ZGFudFRhaWw7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBmcmFn
bWVudC50cmF2ZXJzYWxCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1
bXBUb0NsZWFyQWRqYWNlbnRUYWlsOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGluIGEgZGlyZWN0IGFkamFjZW50IGNoYWluIHdpdGgg
YmFja3RyYWNraW5nLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBiYWNrdHJhY2tpbmcgcmVnaXN0ZXIg
b24gdGhlIHN0YWNrLgotICAgICAgICAgICAgaWYgKGhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlv
bk9uVGhlUmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4gJiYgIWlzRmlyc3RBZGphY2VudChhZGph
Y2VudFBvc2l0aW9uU2luY2VJbmRpcmVjdEFkamFjZW50VHJlZVdhbGspKQotICAgICAgICAgICAg
ICAgIGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9IEJhY2t0cmFja2luZ0Fj
dGlvbjo6SnVtcFRvQ2xlYXJBZGphY2VudFRhaWw7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNr
aW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VGFpbDsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IElmIHRoZSByaWdodG1vc3QgcmVsYXRpb24gaXMgYSBpbmRpcmVjdCBhZGphY2VudCwgbWF0Y2hp
bmcgc291bGQgcmVzdW1lIGZyb20gdGhlcmUuCkBAIC0xMzAzLDkgKzEyOTMsNiBAQCB2b2lkIFNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6bGlua0ZhaWx1cmVzKEFzc2VtYmxlcjo6SnVtcExpc3QmIGds
b2JhbEZhaWx1cmVDYXNlcwogICAgIGNhc2UgQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EaXJl
Y3RBZGphY2VudFRhaWw6CiAgICAgICAgIG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2Fz
ZXMuYXBwZW5kKGxvY2FsRmFpbHVyZUNhc2VzKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBC
YWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsOgotICAgICAgICBtX2Ns
ZWFyQWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXMuYXBwZW5kKGxvY2FsRmFpbHVyZUNh
c2VzKTsKLSAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC0xMzE3LDkgKzEzMDQsNiBAQCB2
b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2VudEJhY2t0cmFja2luZ1Rh
aWwoKQogICAgIHVuc2lnbmVkIG9mZnNldFRvQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCA9IG1f
c3RhY2tBbGxvY2F0b3Iub2Zmc2V0VG9TdGFja1JlZmVyZW5jZShtX2FkamFjZW50QmFja3RyYWNr
aW5nU3RhcnQpOwogICAgIG1fYXNzZW1ibGVyLmxvYWRQdHIoQXNzZW1ibGVyOjpBZGRyZXNzKEFz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldFRvQWRqYWNlbnRCYWNrdHJhY2tp
bmdTdGFydCksIGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIpOwogICAgIG1fYXNzZW1ibGVyLmp1bXAo
bV9pbmRpcmVjdEFkamFjZW50RW50cnlQb2ludCk7Ci0KLSAgICAvLyBUb3RhbCBmYWlsdXJlIHRh
aWwuCi0gICAgbV9jbGVhckFkamFjZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2VzLmxpbmsoJm1f
YXNzZW1ibGVyKTsKIH0KIAogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRGVz
Y2VuZGFudEJhY2t0cmFja2luZ1RhaWwoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRiMmNkNmY4MzhjYzgzMTc4YWI5OTFl
NGRlMTRjOTc2OTQ4MTQzOWEuLjlhNGI0MmUzMDU4MDk2ZDQ5YTM3ZDZlYWE2NjI3ZGMzYzA1NWRh
YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wNC0yOCAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBDU1MgSklUOiByZW1vdmUgSnVtcFRvQ2xl
YXJBZGphY2VudFRhaWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNpbmNlIGFkamFjZW50IGJhY2t0cmFja2luZyBzdGFjayByZWZlcmVuY2UgaXMgcHJl
LWFsbG9jYXRlZAorICAgICAgICBpbiBwcm9sb2d1ZSBpbiBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNjY4MzQsCisgICAgICAgIGNsZWFyaW5nIHN0YWNrIHBoYXNlIGlzIG5vdCBu
ZWVkZWQuIFNvIHdlIGNhbiBkcm9wCisgICAgICAgIEp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsIGZy
b20gYmFja3RyYWNraW5nIGFjdGlvbiBhbmQgc2ltcGxpZnkuCisKKyAgICAgICAgKiBmYXN0L3Nl
bGVjdG9ycy9iYWNrdHJhY2tpbmctZGlyZWN0LWFkamFjZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWRpcmVjdC1hZGphY2VudC5o
dG1sOiBBZGRlZC4KKwogMjAxNC0wNC0yOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1l
bnRJc050aENoaWxkKCkgbGVha3MgdGhlIHBhcmVudCByZWdpc3RlciA6bnRoLWNoaWxkKCkgaXMg
bm9uLWZpbHRlcmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFj
a3RyYWNraW5nLWRpcmVjdC1hZGphY2VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctZGlyZWN0LWFkamFjZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNWU0YmRiOTM3YjMxZDRkZDZmMDE2YWZmZmM4ZGE1M2Q0YTY4MzI3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWRpcmVj
dC1hZGphY2VudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGhlIGJhY2t0cmFja2lu
ZyBkaXJlY3QgYWRqYWNlbnQgY29tYmluYXRvciB3aXRoIGRlc2NlbmRhbnQgdGFpbCBjYXNlcwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQmFja3RyYWNraW5nIHdpdGggdGFpbCwg
c3VjY2VlZGVkIHdpdGhvdXQgYmFja3RyYWNraW5nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MSwgMiwgMykiCitCYWNrdHJhY2tpbmcgd2l0aCB0YWlsIHdpdGhvdXQgaW5kaXJlY3QgYWRqYWNl
bnQsIGZhaWxlZCBhbmQgcmVzdGFydC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0MiIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxLCAyLCAz
KSIKK0JhY2t0cmFja2luZyB3aXRoIHRhaWwsIDIgZGlyZWN0IGFkamFjZW50cyB3aXRob3V0IGlu
ZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3RhcnQgYmFja3RyYWNraW5nLgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorQmFja3RyYWNraW5nIHdpdGggdGFpbCwgaW5k
aXJlY3QgYWRqYWNlbnQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDQiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitCYWNr
dHJhY2tpbmcgd2l0aG91dCB0YWlsIEFuZCBmYWlscy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NSIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigwLCAwLCAwKSIKK0JhY2t0cmFja2luZyB3aXRob3V0IHRhaWwuIE1hdGNoZXMuCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMTAsIDExLCAxMikiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
ZWxlY3RvcnMvYmFja3RyYWNraW5nLWRpcmVjdC1hZGphY2VudC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWRpcmVjdC1hZGphY2VudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgwNmNiYjdkMDUxZDg2ODZmOWM1MjQ1ZDhmZTg5MDM3ZTlhODA0YzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctZGlyZWN0LWFk
amFjZW50Lmh0bWwKQEAgLTAsMCArMSwxMDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorLyogZGVmYXVsdCAqLworc3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91
bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KK2EgKyBiIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOnJnYigxLDIsMyk7Cit9CitjICsgYyArIGQgc3Bhbi50YXJnZXQgeworICAgIGJh
Y2tncm91bmQtY29sb3I6cmdiKDQsNSw2KTsKK30KK2UgKyBmIH4gZyBzcGFuLnRhcmdldCB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoNyw4LDkpOworfQoraCArIHNwYW4udGFyZ2V0IHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMCwxMSwxMik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorICAgIDx0YXJnZXQxPgorICAgICAg
ICA8YT48L2E+CisgICAgICAgIDxiPgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIg
aWQ9InRhcmdldDEiPjwvc3Bhbj4KKyAgICAgICAgPC9iPgorICAgIDwvdGFyZ2V0MT4KKworICAg
IDx0YXJnZXQyPgorICAgICAgICA8YT48L2E+CisgICAgICAgIDxiPgorICAgICAgICAgICAgPGI+
PC9iPiAgPCEtLSBGYWlsIGhlcmUgYW5kIHJlc3RhcnQgYmFja3RyYWNraW5nLiAtLT4KKyAgICAg
ICAgICAgIDxiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJn
ZXQyIj48L3NwYW4+CisgICAgICAgICAgICA8L2I+CisgICAgICAgIDwvYj4KKyAgICA8L3Rhcmdl
dDI+CisKKyAgICA8dGFyZ2V0Mz4KKyAgICAgICAgPGM+PC9jPgorICAgICAgICA8Yz48L2M+Cisg
ICAgICAgIDxkPgorICAgICAgICAgICAgPGM+PC9jPgorICAgICAgICAgICAgPGI+PC9iPiAgPCEt
LSBGYWlsIGhlcmUgYW5kIHJlc3RhcnQgYmFja3RyYWNraW5nIHdpdGggdGhlIHBhcmVudCBvZiB0
aGUgY3VycmVudCBlbGVtZW50LiAtLT4KKyAgICAgICAgICAgIDxkPgorICAgICAgICAgICAgICAg
IDxiPjwvYj4gIDwhLS0gRmFpbCBoZXJlIGFuZCByZXN0YXJ0IGJhY2t0cmFja2luZyB3aXRoIHRo
ZSBwYXJlbnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gLS0+CisgICAgICAgICAgICAgICAgPGM+
PC9jPgorICAgICAgICAgICAgICAgIDxkPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0idGFyZ2V0IiBpZD0idGFyZ2V0MyI+PC9zcGFuPgorICAgICAgICAgICAgICAgIDwvZD4KKyAg
ICAgICAgICAgIDwvZD4KKyAgICAgICAgPC9kPgorICAgIDwvdGFyZ2V0Mz4KKworICAgIDx0YXJn
ZXQ0PgorICAgICAgICA8ZD48L2Q+CisgICAgICAgIDxlPjwvZT4KKyAgICAgICAgPGY+PC9mPgor
ICAgICAgICA8ZD48L2Q+CisgICAgICAgIDxkPjwvZD4KKyAgICAgICAgPGc+CisgICAgICAgICAg
ICA8ZD48L2Q+ICA8IS0tIEZhaWwgaGVyZSBhbmQgcmVzdGFydCBiYWNrdHJhY2tpbmcgaW5kaXJl
Y3QgYWRqYWNlbnQgbWF0Y2hpbmcuIC0tPgorICAgICAgICAgICAgPGY+PC9mPgorICAgICAgICAg
ICAgPGc+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDQi
Pjwvc3Bhbj4KKyAgICAgICAgICAgIDwvZz4KKyAgICAgICAgPC9nPgorICAgIDwvdGFyZ2V0ND4K
KworICAgIDx0YXJnZXQ1PgorICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0
NSI+PC9zcGFuPgorICAgIDwvdGFyZ2V0NT4KKworICAgIDx0YXJnZXQ2PgorICAgICAgICA8aD48
L2g+CisgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQ2Ij48L3NwYW4+Cisg
ICAgPC90YXJnZXQ2PgorPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Ro
ZSBiYWNrdHJhY2tpbmcgZGlyZWN0IGFkamFjZW50IGNvbWJpbmF0b3Igd2l0aCBkZXNjZW5kYW50
IHRhaWwgY2FzZXMnKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRoIHRhaWwsIHN1Y2NlZWRl
ZCB3aXRob3V0IGJhY2t0cmFja2luZyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmJhY2tncm91bmRD
b2xvcicsICdyZ2IoMSwgMiwgMyknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRoIHRhaWwg
d2l0aG91dCBpbmRpcmVjdCBhZGphY2VudCwgZmFpbGVkIGFuZCByZXN0YXJ0LiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMSwgMiwgMyknKTsKKworZGVidWco
IkJhY2t0cmFja2luZyB3aXRoIHRhaWwsIDIgZGlyZWN0IGFkamFjZW50cyB3aXRob3V0IGluZGly
ZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3RhcnQgYmFja3RyYWNraW5nLiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNCwgNSwgNiknKTsKKworZGVidWco
IkJhY2t0cmFja2luZyB3aXRoIHRhaWwsIGluZGlyZWN0IGFkamFjZW50LiIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQ0IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNywgOCwgOSknKTsKKworZGVidWcoIkJh
Y2t0cmFja2luZyB3aXRob3V0IHRhaWwgQW5kIGZhaWxzLiIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ1Iikp
LmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIkJhY2t0cmFja2lu
ZyB3aXRob3V0IHRhaWwuIE1hdGNoZXMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSkuYmFja2dyb3Vu
ZENvbG9yJywgJ3JnYigxMCwgMTEsIDEyKScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230473</attachid>
            <date>2014-04-30 04:47:41 -0700</date>
            <delta_ts>2014-05-02 12:44:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132319-20140430204718.patch</filename>
            <type>text/plain</type>
            <size>17254</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3OTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYwNWU3YWM2ZGMwYzRl
NzY0ZWI4YTcyMGY0OTMzMDA1MjRmZDI5Ni4uMWU1OGQ4MDU4ZTNjM2E5Y2Q4YjdmZDRlZjA3NGVi
ZDA1ZGE4NGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA0LTMwICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IG9w
dGltaXplIGRpcmVjdCAvIGluZGlyZWN0IGFkamFjZW50J3MgdHJhdmVyc2FsIGJhY2t0cmFja2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ug
YWRqYWNlbnQgYmFja3RyYWNraW5nIHN0YWNrIHJlZmVyZW5jZSBpcyBwcmUtYWxsb2NhdGVkCisg
ICAgICAgIGluIHByb2xvZ3VlIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2
NjgzNCwKKyAgICAgICAgY2xlYXJpbmcgc3RhY2sgcGhhc2UgaXMgbm90IG5lZWRlZC4gU28gd2Ug
Y2FuIGRyb3AKKyAgICAgICAgSnVtcFRvQ2xlYXJBZGphY2VudFRhaWwgZnJvbSBiYWNrdHJhY2tp
bmcgYWN0aW9uIGFuZCBzaW1wbGlmeQorICAgICAgICBiYWNrdHJhY2tpbmcgaGFuZGxpbmcuCisg
ICAgICAgIEFuZCBvcHRpbWl6ZSBkaXJlY3QgLyBpbmRpcmVjdCBhZGphY2VudCdzIHRyYXZlcnNh
bCBiYWNrdHJhY2tpbmcgYnkKKyAgICAgICAgdXNpbmcgYXBwcm9wcmlhdGUgYmFja3RyYWNraW5n
IGhlaWdodC4KKworICAgICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctYWRq
YWNlbnQuaHRtbAorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6c29sdmVEZXNjZW5kYW50QmFja3RyYWNr
aW5nQWN0aW9uRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
c29sdmVUcmF2ZXJzYWxCYWNrdHJhY2tpbmdBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6c29sdmVCYWNrdHJhY2tpbmdBY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21wdXRlQmFja3Ry
YWNraW5nSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpsaW5rRmFpbHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUFkamFjZW50
QmFja3RyYWNraW5nVGFpbCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpp
c0FmdGVyQ2hpbGRSZWxhdGlvbik6IERlbGV0ZWQuCisKIDIwMTQtMDQtMjkgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxNjc5NjIgYW5kIHIxNjc5NzUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0
b3JDb21waWxlci5jcHAKaW5kZXggNWI4ZjU0Njk0NjFiMWNmOWQwYjM0NjUxMzIzMDYwMjliYTll
ODJmYS4uZTQ3ODNjNmEyMDYxNDA4ZTVmNDViZjQ2NWVmNjBlZThkYmUyZWM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtNjUsOCArNjUsNyBAQCBl
bnVtIGNsYXNzIEJhY2t0cmFja2luZ0FjdGlvbiB7CiAgICAgSnVtcFRvSW5kaXJlY3RBZGphY2Vu
dEVudHJ5UG9pbnQsCiAgICAgSnVtcFRvRGVzY2VuZGFudFRyZWVXYWxrZXJFbnRyeVBvaW50LAog
ICAgIEp1bXBUb0Rlc2NlbmRhbnRUYWlsLAotICAgIEp1bXBUb0RpcmVjdEFkamFjZW50VGFpbCwK
LSAgICBKdW1wVG9DbGVhckFkamFjZW50VGFpbAorICAgIEp1bXBUb0RpcmVjdEFkamFjZW50VGFp
bAogfTsKIAogc3RydWN0IEJhY2t0cmFja2luZ0ZsYWcgewpAQCAtMjQxLDcgKzI0MCw2IEBAIGNs
YXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7CiAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBtX2Rl
c2NlbmRhbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXM7CiAgICAgU3RhY2tBbGxvY2F0b3I6OlN0
YWNrUmVmZXJlbmNlIG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydDsKICAgICBBc3NlbWJsZXI6
Okp1bXBMaXN0IG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXM7Ci0gICAgQXNzZW1i
bGVyOjpKdW1wTGlzdCBtX2NsZWFyQWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXM7CiAK
ICNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVHR0lORwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBt
X29yaWdpbmFsU2VsZWN0b3I7CkBAIC01OTIsMTIgKzU5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0ZpcnN0QWRqYWNlbnQodW5zaWduZWQgYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RB
ZGphY2VuCiAgICAgcmV0dXJuIGFkamFjZW50UG9zaXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRU
cmVlV2FsayA9PSAxOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNBZnRlckNoaWxkUmVsYXRp
b24odW5zaWduZWQgYW5jZXN0b3JQb3NpdGlvblNpbmNlRGVzY2VuZGFudFJlbGF0aW9uKQotewot
ICAgIHJldHVybiBhbmNlc3RvclBvc2l0aW9uU2luY2VEZXNjZW5kYW50UmVsYXRpb24gPiAwOwot
fQotCi1zdGF0aWMgQmFja3RyYWNraW5nQWN0aW9uIHNvbHZlRGVzY2VuZGFudEJhY2t0cmFja2lu
Z0FjdGlvbkZvckNoaWxkKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50LCB1bnNpZ25l
ZCBiYWNrdHJhY2tpbmdTdGFydEhlaWdodEZyb21EZXNjZW5kYW50KQorc3RhdGljIGlubGluZSBC
YWNrdHJhY2tpbmdBY3Rpb24gc29sdmVEZXNjZW5kYW50QmFja3RyYWNraW5nQWN0aW9uRm9yQ2hp
bGQoY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQsIHVuc2lnbmVkIGJhY2t0cmFja2lu
Z1N0YXJ0SGVpZ2h0RnJvbURlc2NlbmRhbnQpCiB7CiAgICAgLy8gSWYgaGVpZ2h0IGlzIGludmFs
aWQgKGUuZy4gVGhlcmUncyBubyB0YWcgbmFtZSkuCiAgICAgaWYgKGJhY2t0cmFja2luZ1N0YXJ0
SGVpZ2h0RnJvbURlc2NlbmRhbnQgPT0gaW52YWxpZEhlaWdodCkKQEAgLTYxNCw3ICs2MDcsMTgg
QEAgc3RhdGljIEJhY2t0cmFja2luZ0FjdGlvbiBzb2x2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdB
Y3Rpb25Gb3JDaGlsZChjb25zdCBTZWxlY3QKICAgICByZXR1cm4gQmFja3RyYWNraW5nQWN0aW9u
OjpKdW1wVG9EZXNjZW5kYW50VGFpbDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNvbHZlQmFj
a3RyYWNraW5nQWN0aW9uKFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50LCBib29sIGhhc0Rlc2Nl
bmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQsIHVuc2lnbmVkIGFuY2VzdG9yUG9zaXRpb25TaW5jZURl
c2NlbmRhbnRSZWxhdGlvbiwgYm9vbCBoYXNJbmRpcmVjdEFkamFjZW50UmVsYXRpb25PblRoZVJp
Z2h0T2ZEaXJlY3RBZGphY2VudENoYWluLCB1bnNpZ25lZCBhZGphY2VudFBvc2l0aW9uU2luY2VJ
bmRpcmVjdEFkamFjZW50VHJlZVdhbGspCitzdGF0aWMgaW5saW5lIEJhY2t0cmFja2luZ0FjdGlv
biBzb2x2ZVRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbihjb25zdCBTZWxlY3RvckZyYWdtZW50
JiBmcmFnbWVudCwgYm9vbCBoYXNEZXNjZW5kYW50UmVsYXRpb25PblRoZVJpZ2h0KQoreworICAg
IGlmICghaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCkKKyAgICAgICAgcmV0dXJuIEJh
Y2t0cmFja2luZ0FjdGlvbjo6Tm9CYWNrdHJhY2tpbmc7CisKKyAgICBpZiAoZnJhZ21lbnQudGFn
TmFtZU1hdGNoZWRCYWNrdHJhY2tpbmdTdGFydEhlaWdodEZyb21EZXNjZW5kYW50ID09IChmcmFn
bWVudC5oZWlnaHRGcm9tRGVzY2VuZGFudCArIDEpKQorICAgICAgICByZXR1cm4gQmFja3RyYWNr
aW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQ7CisKKyAgICBy
ZXR1cm4gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VGFpbDsKK30KKworc3Rh
dGljIGlubGluZSB2b2lkIHNvbHZlQmFja3RyYWNraW5nQWN0aW9uKFNlbGVjdG9yRnJhZ21lbnQm
IGZyYWdtZW50LCBib29sIGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQsIGJvb2wgaGFz
SW5kaXJlY3RBZGphY2VudFJlbGF0aW9uT25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRDaGFpbiwg
dW5zaWduZWQgYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrKQog
ewogICAgIHN3aXRjaCAoZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJhZ21lbnQpIHsKICAgICBj
YXNlIEZyYWdtZW50UmVsYXRpb246OlJpZ2h0bW9zdDoKQEAgLTYzMCwyMCArNjM0LDcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIHNvbHZlQmFja3RyYWNraW5nQWN0aW9uKFNlbGVjdG9yRnJhZ21lbnQm
IGZyYWdtZW50LCBib29sIGhhc0QKICAgICBjYXNlIEZyYWdtZW50UmVsYXRpb246OkRpcmVjdEFk
amFjZW50OgogICAgICAgICAvLyBGYWlsdXJlIG9uIHRyYXZlcnNhbCBpbXBsaWVzIG5vIG90aGVy
IHNpYmxpbmcgdHJhdmVyc2FsIGNhbiBtYXRjaC4gTWF0Y2hpbmcgc2hvdWxkIHJlc3VtZSBhdCB0
aGUKICAgICAgICAgLy8gbmVhcmVzdCBhbmNlc3Rvci9kZXNjZW5kYW50IHRyYXZlcnNhbC4KLSAg
ICAgICAgaWYgKGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQpIHsKLSAgICAgICAgICAg
IGlmICghaXNBZnRlckNoaWxkUmVsYXRpb24oYW5jZXN0b3JQb3NpdGlvblNpbmNlRGVzY2VuZGFu
dFJlbGF0aW9uKSkKLSAgICAgICAgICAgICAgICBmcmFnbWVudC50cmF2ZXJzYWxCYWNrdHJhY2tp
bmdBY3Rpb24gPSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUcmVlV2Fsa2Vy
RW50cnlQb2ludDsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICghaGFz
SW5kaXJlY3RBZGphY2VudFJlbGF0aW9uT25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRDaGFpbiB8
fCBpc0ZpcnN0QWRqYWNlbnQoYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RBZGphY2VudFRy
ZWVXYWxrKSkKLSAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNr
aW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VGFpbDsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZlcnNh
bEJhY2t0cmFja2luZ0FjdGlvbiA9IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvQ2xlYXJBZGph
Y2VudFRhaWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAv
LyBJZiB3ZSBhcmUgaW4gYSBkaXJlY3QgYWRqYWNlbnQgY2hhaW4gd2l0aCBiYWNrdHJhY2tpbmcs
IHdlIG5lZWQgdG8gY2xlYXIgdGhlIGJhY2t0cmFja2luZyByZWdpc3RlciBvbiB0aGUgc3RhY2su
Ci0gICAgICAgICAgICBpZiAoaGFzSW5kaXJlY3RBZGphY2VudFJlbGF0aW9uT25UaGVSaWdodE9m
RGlyZWN0QWRqYWNlbnRDaGFpbiAmJiAhaXNGaXJzdEFkamFjZW50KGFkamFjZW50UG9zaXRpb25T
aW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykpCi0gICAgICAgICAgICAgICAgZnJhZ21lbnQu
dHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9D
bGVhckFkamFjZW50VGFpbDsKLSAgICAgICAgfQorICAgICAgICBmcmFnbWVudC50cmF2ZXJzYWxC
YWNrdHJhY2tpbmdBY3Rpb24gPSBzb2x2ZVRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbihmcmFn
bWVudCwgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCk7CiAKICAgICAgICAgLy8gSWYg
dGhlIHJpZ2h0bW9zdCByZWxhdGlvbiBpcyBhIGluZGlyZWN0IGFkamFjZW50LCBtYXRjaGluZyBz
b3VsZCByZXN1bWUgZnJvbSB0aGVyZS4KICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSByZXN1bWUg
ZnJvbSB0aGUgbGF0ZXN0IGFuY2VzdG9yL2Rlc2NlbmRhbnQgaWYgYW55LgpAQCAtNjU2LDI0ICs2
NDcsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHNvbHZlQmFja3RyYWNraW5nQWN0aW9uKFNlbGVj
dG9yRnJhZ21lbnQmIGZyYWdtZW50LCBib29sIGhhc0QKICAgICAgICAgICAgICAgICBmcmFnbWVu
dC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0
aW9uOjpKdW1wVG9EaXJlY3RBZGphY2VudFRhaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0g
ZWxzZSBpZiAoaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCkgewotICAgICAgICAgICAg
aWYgKGlzQWZ0ZXJDaGlsZFJlbGF0aW9uKGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRS
ZWxhdGlvbikpIHsKLSAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNr
dHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWls
OwotICAgICAgICAgICAgICAgIGZyYWdtZW50Lm1hdGNoaW5nUG9zdFRhZ05hbWVCYWNrdHJhY2tp
bmdBY3Rpb24gPSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05h
bWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRh
bnRUcmVlV2Fsa2VyRW50cnlQb2ludDsKLSAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGlu
Z1Bvc3RUYWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1w
VG9EZXNjZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBmcmFnbWVu
dC50cmF2ZXJzYWxCYWNrdHJhY2tpbmdBY3Rpb247CisgICAgICAgICAgICBmcmFnbWVudC5tYXRj
aGluZ1Bvc3RUYWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID0gZnJhZ21lbnQudHJhdmVyc2FsQmFj
a3RyYWNraW5nQWN0aW9uOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnJh
Z21lbnRSZWxhdGlvbjo6SW5kaXJlY3RBZGphY2VudDoKICAgICAgICAgLy8gRmFpbHVyZSBvbiB0
cmF2ZXJzYWwgaW1wbGllcyBubyBvdGhlciBzaWJsaW5nIG1hdGNoaW5nIHdpbGwgc3VjY2VlZC4g
TWF0Y2hpbmcgY2FuIHJlc3VtZQogICAgICAgICAvLyBmcm9tIHRoZSBsYXRlc3QgYW5jZXN0b3Iv
ZGVzY2VuZGFudC4KLSAgICAgICAgaWYgKGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQp
IHsKLSAgICAgICAgICAgIGlmIChpc0FmdGVyQ2hpbGRSZWxhdGlvbihhbmNlc3RvclBvc2l0aW9u
U2luY2VEZXNjZW5kYW50UmVsYXRpb24pKQotICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZl
cnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2Vu
ZGFudFRhaWw7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZnJhZ21lbnQudHJh
dmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNj
ZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQ7Ci0gICAgICAgIH0KKyAgICAgICAgZnJhZ21lbnQu
dHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gc29sdmVUcmF2ZXJzYWxCYWNrdHJhY2tpbmdB
Y3Rpb24oZnJhZ21lbnQsIGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CkBAIC04MzAsNyArODExLDcgQEAgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbigpCiAgICAgICAgIGRhdGFM
b2dGKCJDb21wdXRpbmcgZnJhZ21lbnRbJWRdIGJhY2t0cmFja2luZyBoZWlnaHQgJXUuIE5vdE1h
dGNoZWQgJXUgLyBNYXRjaGVkICV1XG4iLCBpLCBmcmFnbWVudC5oZWlnaHRGcm9tRGVzY2VuZGFu
dCwgZnJhZ21lbnQudGFnTmFtZU5vdE1hdGNoZWRCYWNrdHJhY2tpbmdTdGFydEhlaWdodEZyb21E
ZXNjZW5kYW50LCBmcmFnbWVudC50YWdOYW1lTWF0Y2hlZEJhY2t0cmFja2luZ1N0YXJ0SGVpZ2h0
RnJvbURlc2NlbmRhbnQpOwogI2VuZGlmCiAKLSAgICAgICAgc29sdmVCYWNrdHJhY2tpbmdBY3Rp
b24oZnJhZ21lbnQsIGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQsIGFuY2VzdG9yUG9z
aXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbiwgaGFzSW5kaXJlY3RBZGphY2VudFJlbGF0aW9u
T25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRDaGFpbiwgYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5k
aXJlY3RBZGphY2VudFRyZWVXYWxrKTsKKyAgICAgICAgc29sdmVCYWNrdHJhY2tpbmdBY3Rpb24o
ZnJhZ21lbnQsIGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQsIGhhc0luZGlyZWN0QWRq
YWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4sIGFkamFjZW50UG9z
aXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2Fsayk7CiAKICAgICAgICAgbmVlZHNBZGph
Y2VudFRhaWwgfD0gcmVxdWlyZXNBZGphY2VudFRhaWwoZnJhZ21lbnQpOwogICAgICAgICBuZWVk
c0Rlc2NlbmRhbnRUYWlsIHw9IHJlcXVpcmVzRGVzY2VuZGFudFRhaWwoZnJhZ21lbnQpOwpAQCAt
MTMwMyw5ICsxMjg0LDYgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmxpbmtGYWlsdXJl
cyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBnbG9iYWxGYWlsdXJlQ2FzZXMKICAgICBjYXNlIEJhY2t0
cmFja2luZ0FjdGlvbjo6SnVtcFRvRGlyZWN0QWRqYWNlbnRUYWlsOgogICAgICAgICBtX2FkamFj
ZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2VzLmFwcGVuZChsb2NhbEZhaWx1cmVDYXNlcyk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9DbGVhckFk
amFjZW50VGFpbDoKLSAgICAgICAgbV9jbGVhckFkamFjZW50QmFja3RyYWNraW5nRmFpbHVyZUNh
c2VzLmFwcGVuZChsb2NhbEZhaWx1cmVDYXNlcyk7Ci0gICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IApAQCAtMTMxNyw5ICsxMjk1LDYgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVy
YXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKCkKICAgICB1bnNpZ25lZCBvZmZzZXRUb0FkamFj
ZW50QmFja3RyYWNraW5nU3RhcnQgPSBtX3N0YWNrQWxsb2NhdG9yLm9mZnNldFRvU3RhY2tSZWZl
cmVuY2UobV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKICAgICBtX2Fzc2VtYmxlci5sb2Fk
UHRyKEFzc2VtYmxlcjo6QWRkcmVzcyhBc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBv
ZmZzZXRUb0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQpLCBlbGVtZW50QWRkcmVzc1JlZ2lzdGVy
KTsKICAgICBtX2Fzc2VtYmxlci5qdW1wKG1faW5kaXJlY3RBZGphY2VudEVudHJ5UG9pbnQpOwot
Ci0gICAgLy8gVG90YWwgZmFpbHVyZSB0YWlsLgotICAgIG1fY2xlYXJBZGphY2VudEJhY2t0cmFj
a2luZ0ZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2VtYmxlcik7CiB9CiAKIHZvaWQgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpnZW5lcmF0ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdUYWlsKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2NzJkNmNhYjhiMjMwNWVhYzM4NjYwZmZjOWY0Njc5MDE1NWE0ZmEwLi41N2U5MmU5NGM0MzQx
YTA4ZTgwZDJiZmI4MDJmYTUwMzE2Mzk5OWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQt
MDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
Q1NTIEpJVDogb3B0aW1pemUgZGlyZWN0IC8gaW5kaXJlY3QgYWRqYWNlbnQncyB0cmF2ZXJzYWwg
YmFja3RyYWNraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzIzMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTaW5jZSBhZGphY2VudCBiYWNrdHJhY2tpbmcgc3RhY2sgcmVmZXJlbmNlIGlzIHByZS1h
bGxvY2F0ZWQKKyAgICAgICAgaW4gcHJvbG9ndWUgaW4gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTY2ODM0LAorICAgICAgICBjbGVhcmluZyBzdGFjayBwaGFzZSBpcyBub3QgbmVl
ZGVkLiBTbyB3ZSBjYW4gZHJvcAorICAgICAgICBKdW1wVG9DbGVhckFkamFjZW50VGFpbCBmcm9t
IGJhY2t0cmFja2luZyBhY3Rpb24gYW5kIHNpbXBsaWZ5CisgICAgICAgIGJhY2t0cmFja2luZyBo
YW5kbGluZy4KKyAgICAgICAgQW5kIG9wdGltaXplIGRpcmVjdCAvIGluZGlyZWN0IGFkamFjZW50
J3MgdHJhdmVyc2FsIGJhY2t0cmFja2luZyBieQorICAgICAgICB1c2luZyBhcHByb3ByaWF0ZSBi
YWNrdHJhY2tpbmcgaGVpZ2h0LgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNr
aW5nLWFkamFjZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3Rv
cnMvYmFja3RyYWNraW5nLWFkamFjZW50Lmh0bWw6IEFkZGVkLgorCiAyMDE0LTA0LTI5ICBEYXZp
ZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGVzdCB1cCBzbyB0aGF0
IGl0IGxvb2tzIHRoZSBzYW1lIGFzIGl0IGRpZCBiZWZvcmUgbXkgbGFuZGluZyBpbiByMTY3OTY1
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWFk
amFjZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2JhY2t0cmFj
a2luZy1hZGphY2VudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4N2MwOGYzNDdjYTE2NmY0
NDY1NDQ4N2Q4OGI5MjIyMTMzNGI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNSBAQAorVGhlIGJhY2t0cmFja2luZyBkaXJlY3QgYWRqYWNlbnQgY29tYmluYXRvciB3aXRo
IGRlc2NlbmRhbnQgdGFpbCBjYXNlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
QmFja3RyYWNraW5nIHdpdGggdGFpbCwgc3VjY2VlZGVkIHdpdGhvdXQgYmFja3RyYWNraW5nCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitCYWNrdHJhY2tpbmcgd2l0aCB0YWls
IHdpdGhvdXQgaW5kaXJlY3QgYWRqYWNlbnQsIGZhaWxlZCBhbmQgcmVzdGFydC4KK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MiIpKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK0JhY2t0cmFja2luZyB3aXRoIHRhaWwsIDIgZGly
ZWN0IGFkamFjZW50cyB3aXRob3V0IGluZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3Rh
cnQgYmFja3RyYWNraW5nLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorQmFj
a3RyYWNraW5nIHdpdGggdGFpbCwgaW5kaXJlY3QgYWRqYWNlbnQuCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDQiKSkuYmFja2dyb3VuZENvbG9y
IGlzICJyZ2IoNywgOCwgOSkiCitCYWNrdHJhY2tpbmcgd2l0aG91dCB0YWlsIEFuZCBmYWlscy4K
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NSIp
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAwLCAwKSIKK0JhY2t0cmFja2luZyB3aXRob3V0
IHRhaWwuIE1hdGNoZXMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDYiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDExLCAxMikiCitC
YWNrdHJhY2tpbmcgd2l0aG91dCB0YWlsLiBBbmQgZmFpbHMuCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2IoMCwgMCwgMCkiCitCYWNrdHJhY2tpbmcgd2l0aG91dCB0YWlsLiBBbmQgTWF0Y2hlcy4K
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0OCIp
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMywgMTQsIDE1KSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctYWRqYWNlbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
ODA5MzgyODBkMzVhMzIyMTUwZWQzN2ZkM2JhOWFkMTkwMTUwYjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctYWRqYWNlbnQuaHRtbApA
QCAtMCwwICsxLDE0MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CisvKiBkZWZhdWx0ICovCitzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2Io
MCwwLDApOworfQorYSArIGIgc3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdi
KDEsMiwzKTsKK30KK2MgKyBjICsgZCBzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xv
cjpyZ2IoNCw1LDYpOworfQorZSArIGYgfiBnIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOnJnYig3LDgsOSk7Cit9CitoICsgc3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQt
Y29sb3I6cmdiKDEwLDExLDEyKTsKK30KK2oraitqfmo+ayBzcGFuLnRhcmdldCB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjpyZ2IoMTMsMTQsMTUpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIj4KKyAgICA8dGFyZ2V0MT4KKyAgICAgICAgPGE+
PC9hPgorICAgICAgICA8Yj4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0
YXJnZXQxIj48L3NwYW4+CisgICAgICAgIDwvYj4KKyAgICA8L3RhcmdldDE+CisKKyAgICA8dGFy
Z2V0Mj4KKyAgICAgICAgPGE+PC9hPgorICAgICAgICA8Yj4KKyAgICAgICAgICAgIDxiPjwvYj4g
IDwhLS0gRmFpbCBoZXJlIGFuZCByZXN0YXJ0IGJhY2t0cmFja2luZy4gLS0+CisgICAgICAgICAg
ICA8Yj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MiI+
PC9zcGFuPgorICAgICAgICAgICAgPC9iPgorICAgICAgICA8L2I+CisgICAgPC90YXJnZXQyPgor
CisgICAgPHRhcmdldDM+CisgICAgICAgIDxjPjwvYz4KKyAgICAgICAgPGM+PC9jPgorICAgICAg
ICA8ZD4KKyAgICAgICAgICAgIDxjPjwvYz4KKyAgICAgICAgICAgIDxiPjwvYj4gIDwhLS0gRmFp
bCBoZXJlIGFuZCByZXN0YXJ0IGJhY2t0cmFja2luZyB3aXRoIHRoZSBwYXJlbnQgb2YgdGhlIGN1
cnJlbnQgZWxlbWVudC4gLS0+CisgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICA8Yj48
L2I+ICA8IS0tIEZhaWwgaGVyZSBhbmQgcmVzdGFydCBiYWNrdHJhY2tpbmcgd2l0aCB0aGUgcGFy
ZW50IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIC0tPgorICAgICAgICAgICAgICAgIDxjPjwvYz4K
KyAgICAgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRh
cmdldCIgaWQ9InRhcmdldDMiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8L2Q+CisgICAgICAg
ICAgICA8L2Q+CisgICAgICAgIDwvZD4KKyAgICA8L3RhcmdldDM+CisKKyAgICA8dGFyZ2V0ND4K
KyAgICAgICAgPGQ+PC9kPgorICAgICAgICA8ZT48L2U+CisgICAgICAgIDxmPjwvZj4KKyAgICAg
ICAgPGQ+PC9kPgorICAgICAgICA8ZD48L2Q+CisgICAgICAgIDxnPgorICAgICAgICAgICAgPGQ+
PC9kPiAgPCEtLSBGYWlsIGhlcmUgYW5kIHJlc3RhcnQgYmFja3RyYWNraW5nIGluZGlyZWN0IGFk
amFjZW50IG1hdGNoaW5nLiAtLT4KKyAgICAgICAgICAgIDxmPjwvZj4KKyAgICAgICAgICAgIDxn
PgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQ0Ij48L3Nw
YW4+CisgICAgICAgICAgICA8L2c+CisgICAgICAgIDwvZz4KKyAgICA8L3RhcmdldDQ+CisKKyAg
ICA8dGFyZ2V0NT4KKyAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDUiPjwv
c3Bhbj4KKyAgICA8L3RhcmdldDU+CisKKyAgICA8dGFyZ2V0Nj4KKyAgICAgICAgPGg+PC9oPgor
ICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0NiI+PC9zcGFuPgorICAgIDwv
dGFyZ2V0Nj4KKworICAgIDx0YXJnZXQ3PgorICAgICAgICA8ZD48L2Q+ICA8IS0tIEZhaWwgaGVy
ZS4gLS0+CisgICAgICAgIDxqPjwvaj4KKyAgICAgICAgPGo+PC9qPgorICAgICAgICA8aj48L2o+
CisgICAgICAgIDxrPgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdl
dDciPjwvc3Bhbj4KKyAgICAgICAgPC9rPgorICAgIDwvdGFyZ2V0Nz4KKworICAgIDx0YXJnZXQ4
PgorICAgICAgICA8aj48L2o+ICA8IS0tIE1hdGNoIGhlcmUuIC0tPgorICAgICAgICA8aj48L2o+
CisgICAgICAgIDxqPjwvaj4KKyAgICAgICAgPGo+PC9qPgorICAgICAgICA8ZD48L2Q+ICA8IS0t
IEZhaWwgaGVyZS4gLS0+CisgICAgICAgIDxqPjwvaj4KKyAgICAgICAgPGo+PC9qPgorICAgICAg
ICA8aj4KKyAgICAgICAgICAgIDxrPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJn
ZXQiIGlkPSJ0YXJnZXQ4Ij48L3NwYW4+CisgICAgICAgICAgICA8L2s+CisgICAgICAgIDwvaj4K
KyAgICA8L3RhcmdldDg+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGhlIGJhY2t0cmFja2luZyBkaXJlY3QgYWRqYWNlbnQgY29tYmluYXRvciB3aXRoIGRlc2NlbmRh
bnQgdGFpbCBjYXNlcycpOworCitkZWJ1ZygiQmFja3RyYWNraW5nIHdpdGggdGFpbCwgc3VjY2Vl
ZGVkIHdpdGhvdXQgYmFja3RyYWNraW5nIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKSkuYmFja2dyb3Vu
ZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1ZygiQmFja3RyYWNraW5nIHdpdGggdGFp
bCB3aXRob3V0IGluZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3RhcnQuIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldDIiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1
ZygiQmFja3RyYWNraW5nIHdpdGggdGFpbCwgMiBkaXJlY3QgYWRqYWNlbnRzIHdpdGhvdXQgaW5k
aXJlY3QgYWRqYWNlbnQsIGZhaWxlZCBhbmQgcmVzdGFydCBiYWNrdHJhY2tpbmcuIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldDMiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYig0LCA1LCA2KScpOworCitkZWJ1
ZygiQmFja3RyYWNraW5nIHdpdGggdGFpbCwgaW5kaXJlY3QgYWRqYWNlbnQuIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldDQiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYig3LCA4LCA5KScpOworCitkZWJ1Zygi
QmFja3RyYWNraW5nIHdpdGhvdXQgdGFpbCBBbmQgZmFpbHMuIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDUi
KSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiQmFja3RyYWNr
aW5nIHdpdGhvdXQgdGFpbC4gTWF0Y2hlcy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NiIpKS5iYWNrZ3Jv
dW5kQ29sb3InLCAncmdiKDEwLCAxMSwgMTIpJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgd2l0
aG91dCB0YWlsLiBBbmQgZmFpbHMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENv
bG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiQmFja3RyYWNraW5nIHdpdGhvdXQgdGFp
bC4gQW5kIE1hdGNoZXMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDgiKSkuYmFja2dyb3VuZENvbG9yJywg
J3JnYigxMywgMTQsIDE1KScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230686</attachid>
            <date>2014-05-02 12:42:05 -0700</date>
            <delta_ts>2014-05-02 13:47:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132319-20140503044145.patch</filename>
            <type>text/plain</type>
            <size>28068</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFlYzM1YzlhNGE1ZmU0
MWY4YTIxNDYyYzk1NGMzYWYwYjk3NjY2Yi4uYzVhYjQ1ZmVjMDhmOTJjNzc3OWNlMjRkNzRkZDIw
Yjg0OGFjNjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTA1LTAyICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IG9w
dGltaXplIGRpcmVjdCAvIGluZGlyZWN0IGFkamFjZW50J3MgdHJhdmVyc2FsIGJhY2t0cmFja2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ug
YWRqYWNlbnQgYmFja3RyYWNraW5nIHN0YWNrIHJlZmVyZW5jZSBpcyBwcmUtYWxsb2NhdGVkCisg
ICAgICAgIGluIHByb2xvZ3VlIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2
NjgzNCwKKyAgICAgICAgY2xlYXJpbmcgc3RhY2sgcGhhc2UgaXMgbm90IG5lZWRlZC4gU28gd2Ug
Y2FuIGRyb3AKKyAgICAgICAgSnVtcFRvQ2xlYXJBZGphY2VudFRhaWwgZnJvbSBiYWNrdHJhY2tp
bmcgYWN0aW9uIGFuZCBzaW1wbGlmeQorICAgICAgICBiYWNrdHJhY2tpbmcgaGFuZGxpbmcuCisg
ICAgICAgIEFuZCBvcHRpbWl6ZSBkaXJlY3QgLyBpbmRpcmVjdCBhZGphY2VudCdzIHRyYXZlcnNh
bCBiYWNrdHJhY2tpbmcgYnkKKyAgICAgICAgdXNpbmcgYXBwcm9wcmlhdGUgYmFja3RyYWNraW5n
IGhlaWdodC4KKworICAgICAgICBXaGVuIHNvbHZpbmcgYWRqYWNlbnQgdHJhdmVyc2FsIGJhY2t0
cmFja2luZyBhY3Rpb24sCisgICAgICAgIDEpIFdoZW4gdGhlcmUncyBubyBkZXNjZW5kYW50IHJl
bGF0aW9uIG9uIHRoZSByaWdodCwgdHJhdmVyc2FsCisgICAgICAgIGZhaWx1cmUgYmVjb21lcyBn
bG9iYWwgZmFpbHVyZS4KKyAgICAgICAgMikgV2hlbiBgdGFnTmFtZU1hdGNoZWRCYWNrdHJhY2tp
bmdTdGFydEhlaWdodEZyb21EZXNjZW5kYW50YCA9PQorICAgICAgICBgaGVpZ2h0RnJvbURlc2Nl
bmRhbnRgICsgMSwgdGhlIGRlc2NlbmRhbnQgYmFja3RyYWNraW5nIHN0YXJ0cyB3aXRoCisgICAg
ICAgIHRoZSBwYXJlbnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gU28gd2UgY2FuIHVzZSB0aGUg
Y3VycmVudCBlbGVtZW50CisgICAgICAgIGFuZCB0aGUgYmFja3RyYWNraW5nIGFjdGlvbiBpcyBK
dW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQuCisgICAgICAgIDMpIE90aGVyd2lz
ZSwgY3VycmVudGx5IHdlIHRha2UgdGhlIGNvbnNlcnZhdGl2ZSBhcHByb2FjaCwKKyAgICAgICAg
SnVtcFRvRGVzY2VuZGFudFRhaWwuCisKKyAgICAgICAgTk9URToKKyAgICAgICAgQW5kIGlmIGBo
YXNEZXNjZW5kYW50UmVsYXRpb25PblRoZVJpZ2h0YCBpcyB0cnVlIGFuZCB0aGVyZSdzIG5vIGNo
aWxkCisgICAgICAgIGZyYWdtZW50IG9uIHRoZSByaWdodCwgdGhlIGJhY2t0cmFja2luZyBlbGVt
ZW50IHJlZ2lzdGVyIGlzIG5vdAorICAgICAgICBlZmZlY3RpdmUuIFNvIHdlIHNob3VsZCBlbnN1
cmUgdGhhdCBmcmFnbWVudCBkb2Vzbid0IHVzZSB0aGUKKyAgICAgICAgYmFja3RyYWNraW5nIGVs
ZW1lbnQgcmVnaXN0ZXIuIFN1Y2ggYSBmcmFnbWVudCBmdWxmaWxscyB0aGUgZm9sbG93aW5nCisg
ICAgICAgIGNvbmRpdGlvbnMuIDEuIHRhZ05hbWVNYXRjaGVkQmFja3RyYWNraW5nU3RhcnRIZWln
aHRGcm9tRGVzY2VuZGFudCBpcworICAgICAgICBhbHdheXMgMSAodGFnTmFtZXMuc2l6ZSgpLCB0
aGF0IGNvbnRhaW5zIG9ubHkgZGVzY2VuZGFudCBmcmFnbWVudCkgMi4KKyAgICAgICAgaGVpZ2h0
RnJvbURlc2NlbmRhbnQgaXMgYWx3YXlzIDAgKC0tIFNlZQorICAgICAgICBjb21wdXRlQmFja3Ry
YWNraW5nSGVpZ2h0RnJvbURlc2NlbmRhbnQgaW1wbGVtZW50YXRpb24pIFRoZXJlZm9yZSBzdWNo
CisgICAgICAgIGEgZnJhZ21lbnQncyBhY3Rpb24gYWx3YXlzIGJlY29tZXMKKyAgICAgICAgSnVt
cFRvRGVzY2VuZGFudFRyZWVXYWxrZXJFbnRyeVBvaW50LiBTbyB3ZSBjYW4gZW5zdXJlIHRoYXQg
dGhlCisgICAgICAgIGJhY2t0cmFja2luZyBlbGVtZW50IHJlZ2lzdGVyIGlzIG5vdCB1c2VkLgor
CisgICAgICAgIFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC5odG1s
CisKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpzb2x2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdBY3Rpb25G
b3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpzb2x2ZUFkamFj
ZW50VHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnNvbHZlQmFja3RyYWNraW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFj
a2luZ0luZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6bGlua0ZhaWx1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2VudEJh
Y2t0cmFja2luZ1RhaWwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6aXNB
ZnRlckNoaWxkUmVsYXRpb24pOiBEZWxldGVkLgorCiAyMDE0LTA1LTAxICBKYXZpZXIgRmVybmFu
ZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRd
IENsYW1waW5nIHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMgaW4gcmVwZWF0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCA1YjhmNTQ2OTQ2MWIxY2Y5
ZDBiMzQ2NTEzMjMwNjAyOWJhOWU4MmZhLi40YzE1ZDJkMmZiZmFhZTZjNWIzODBlYTc1MWIxMzIx
MGVhYjU2MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
CkBAIC02NSw4ICs2NSw3IEBAIGVudW0gY2xhc3MgQmFja3RyYWNraW5nQWN0aW9uIHsKICAgICBK
dW1wVG9JbmRpcmVjdEFkamFjZW50RW50cnlQb2ludCwKICAgICBKdW1wVG9EZXNjZW5kYW50VHJl
ZVdhbGtlckVudHJ5UG9pbnQsCiAgICAgSnVtcFRvRGVzY2VuZGFudFRhaWwsCi0gICAgSnVtcFRv
RGlyZWN0QWRqYWNlbnRUYWlsLAotICAgIEp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsCisgICAgSnVt
cFRvRGlyZWN0QWRqYWNlbnRUYWlsCiB9OwogCiBzdHJ1Y3QgQmFja3RyYWNraW5nRmxhZyB7CkBA
IC0yNDEsNyArMjQwLDYgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKICAgICBBc3Nl
bWJsZXI6Okp1bXBMaXN0IG1fZGVzY2VuZGFudEJhY2t0cmFja2luZ0ZhaWx1cmVDYXNlczsKICAg
ICBTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2UgbV9hZGphY2VudEJhY2t0cmFja2luZ1N0
YXJ0OwogICAgIEFzc2VtYmxlcjo6SnVtcExpc3QgbV9hZGphY2VudEJhY2t0cmFja2luZ0ZhaWx1
cmVDYXNlczsKLSAgICBBc3NlbWJsZXI6Okp1bXBMaXN0IG1fY2xlYXJBZGphY2VudEJhY2t0cmFj
a2luZ0ZhaWx1cmVDYXNlczsKIAogI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCiAgICAg
Y29uc3QgQ1NTU2VsZWN0b3IqIG1fb3JpZ2luYWxTZWxlY3RvcjsKQEAgLTU5MiwxMiArNTkwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzRmlyc3RBZGphY2VudCh1bnNpZ25lZCBhZGphY2VudFBv
c2l0aW9uU2luY2VJbmRpcmVjdEFkamFjZW4KICAgICByZXR1cm4gYWRqYWNlbnRQb3NpdGlvblNp
bmNlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrID09IDE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc0FmdGVyQ2hpbGRSZWxhdGlvbih1bnNpZ25lZCBhbmNlc3RvclBvc2l0aW9uU2luY2VEZXNj
ZW5kYW50UmVsYXRpb24pCi17Ci0gICAgcmV0dXJuIGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2Nl
bmRhbnRSZWxhdGlvbiA+IDA7Ci19Ci0KLXN0YXRpYyBCYWNrdHJhY2tpbmdBY3Rpb24gc29sdmVE
ZXNjZW5kYW50QmFja3RyYWNraW5nQWN0aW9uRm9yQ2hpbGQoY29uc3QgU2VsZWN0b3JGcmFnbWVu
dCYgZnJhZ21lbnQsIHVuc2lnbmVkIGJhY2t0cmFja2luZ1N0YXJ0SGVpZ2h0RnJvbURlc2NlbmRh
bnQpCitzdGF0aWMgaW5saW5lIEJhY2t0cmFja2luZ0FjdGlvbiBzb2x2ZURlc2NlbmRhbnRCYWNr
dHJhY2tpbmdBY3Rpb25Gb3JDaGlsZChjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwg
dW5zaWduZWQgYmFja3RyYWNraW5nU3RhcnRIZWlnaHRGcm9tRGVzY2VuZGFudCkKIHsKICAgICAv
LyBJZiBoZWlnaHQgaXMgaW52YWxpZCAoZS5nLiBUaGVyZSdzIG5vIHRhZyBuYW1lKS4KICAgICBp
ZiAoYmFja3RyYWNraW5nU3RhcnRIZWlnaHRGcm9tRGVzY2VuZGFudCA9PSBpbnZhbGlkSGVpZ2h0
KQpAQCAtNjE0LDcgKzYwNywxOCBAQCBzdGF0aWMgQmFja3RyYWNraW5nQWN0aW9uIHNvbHZlRGVz
Y2VuZGFudEJhY2t0cmFja2luZ0FjdGlvbkZvckNoaWxkKGNvbnN0IFNlbGVjdAogICAgIHJldHVy
biBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwogfQogCi1zdGF0aWMg
aW5saW5lIHZvaWQgc29sdmVCYWNrdHJhY2tpbmdBY3Rpb24oU2VsZWN0b3JGcmFnbWVudCYgZnJh
Z21lbnQsIGJvb2wgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCwgdW5zaWduZWQgYW5j
ZXN0b3JQb3NpdGlvblNpbmNlRGVzY2VuZGFudFJlbGF0aW9uLCBib29sIGhhc0luZGlyZWN0QWRq
YWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4sIHVuc2lnbmVkIGFk
amFjZW50UG9zaXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykKK3N0YXRpYyBpbmxp
bmUgQmFja3RyYWNraW5nQWN0aW9uIHNvbHZlQWRqYWNlbnRUcmF2ZXJzYWxCYWNrdHJhY2tpbmdB
Y3Rpb24oY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQsIGJvb2wgaGFzRGVzY2VuZGFu
dFJlbGF0aW9uT25UaGVSaWdodCkKK3sKKyAgICBpZiAoIWhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9u
VGhlUmlnaHQpCisgICAgICAgIHJldHVybiBCYWNrdHJhY2tpbmdBY3Rpb246Ok5vQmFja3RyYWNr
aW5nOworCisgICAgaWYgKGZyYWdtZW50LnRhZ05hbWVNYXRjaGVkQmFja3RyYWNraW5nU3RhcnRI
ZWlnaHRGcm9tRGVzY2VuZGFudCA9PSAoZnJhZ21lbnQuaGVpZ2h0RnJvbURlc2NlbmRhbnQgKyAx
KSkKKyAgICAgICAgcmV0dXJuIEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFudFRy
ZWVXYWxrZXJFbnRyeVBvaW50OworCisgICAgcmV0dXJuIEJhY2t0cmFja2luZ0FjdGlvbjo6SnVt
cFRvRGVzY2VuZGFudFRhaWw7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzb2x2ZUJhY2t0cmFj
a2luZ0FjdGlvbihTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwgYm9vbCBoYXNEZXNjZW5kYW50
UmVsYXRpb25PblRoZVJpZ2h0LCBib29sIGhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhl
UmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4sIHVuc2lnbmVkIGFkamFjZW50UG9zaXRpb25TaW5j
ZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykKIHsKICAgICBzd2l0Y2ggKGZyYWdtZW50LnJlbGF0
aW9uVG9SaWdodEZyYWdtZW50KSB7CiAgICAgY2FzZSBGcmFnbWVudFJlbGF0aW9uOjpSaWdodG1v
c3Q6CkBAIC02MzAsMjAgKzYzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzb2x2ZUJhY2t0cmFj
a2luZ0FjdGlvbihTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwgYm9vbCBoYXNECiAgICAgY2Fz
ZSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2VudDoKICAgICAgICAgLy8gRmFpbHVyZSBv
biB0cmF2ZXJzYWwgaW1wbGllcyBubyBvdGhlciBzaWJsaW5nIHRyYXZlcnNhbCBjYW4gbWF0Y2gu
IE1hdGNoaW5nIHNob3VsZCByZXN1bWUgYXQgdGhlCiAgICAgICAgIC8vIG5lYXJlc3QgYW5jZXN0
b3IvZGVzY2VuZGFudCB0cmF2ZXJzYWwuCi0gICAgICAgIGlmIChoYXNEZXNjZW5kYW50UmVsYXRp
b25PblRoZVJpZ2h0KSB7Ci0gICAgICAgICAgICBpZiAoIWlzQWZ0ZXJDaGlsZFJlbGF0aW9uKGFu
Y2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbikpCi0gICAgICAgICAgICAgICAg
ZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9u
OjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoIWhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhl
UmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4gfHwgaXNGaXJzdEFkamFjZW50KGFkamFjZW50UG9z
aXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykpCi0gICAgICAgICAgICAgICAgICAg
IGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9IEJhY2t0cmFja2luZ0FjdGlv
bjo6SnVtcFRvRGVzY2VuZGFudFRhaWw7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBmcmFnbWVudC50cmF2ZXJzYWxCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJh
Y2tpbmdBY3Rpb246Okp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsOwotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGluIGEgZGlyZWN0IGFkamFj
ZW50IGNoYWluIHdpdGggYmFja3RyYWNraW5nLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBiYWNrdHJh
Y2tpbmcgcmVnaXN0ZXIgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgaWYgKGhhc0luZGlyZWN0
QWRqYWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4gJiYgIWlzRmly
c3RBZGphY2VudChhZGphY2VudFBvc2l0aW9uU2luY2VJbmRpcmVjdEFkamFjZW50VHJlZVdhbGsp
KQotICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9
IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvQ2xlYXJBZGphY2VudFRhaWw7Ci0gICAgICAgIH0K
KyAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gc29sdmVBZGph
Y2VudFRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbihmcmFnbWVudCwgaGFzRGVzY2VuZGFudFJl
bGF0aW9uT25UaGVSaWdodCk7CiAKICAgICAgICAgLy8gSWYgdGhlIHJpZ2h0bW9zdCByZWxhdGlv
biBpcyBhIGluZGlyZWN0IGFkamFjZW50LCBtYXRjaGluZyBzb3VsZCByZXN1bWUgZnJvbSB0aGVy
ZS4KICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSByZXN1bWUgZnJvbSB0aGUgbGF0ZXN0IGFuY2Vz
dG9yL2Rlc2NlbmRhbnQgaWYgYW55LgpAQCAtNjU2LDI0ICs2NDcsMTUgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIHNvbHZlQmFja3RyYWNraW5nQWN0aW9uKFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50
LCBib29sIGhhc0QKICAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1l
QmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EaXJlY3RBZGph
Y2VudFRhaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoaGFzRGVzY2VuZGFu
dFJlbGF0aW9uT25UaGVSaWdodCkgewotICAgICAgICAgICAgaWYgKGlzQWZ0ZXJDaGlsZFJlbGF0
aW9uKGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbikpIHsKLSAgICAgICAg
ICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNr
dHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwotICAgICAgICAgICAgICAgIGZy
YWdtZW50Lm1hdGNoaW5nUG9zdFRhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJhY2tp
bmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24g
PSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUcmVlV2Fsa2VyRW50cnlQb2lu
dDsKLSAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFja3RyYWNr
aW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtl
ckVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBTaW5jZSB3ZSByZXN1
bWUgZnJvbSB0aGUgbGF0ZXN0IGFuY2VzdG9yL2Rlc2NlbmRhbnQsIHRoZSBhY3Rpb24gaXMgdGhl
IHNhbWUgYXMgdGhlIHRyYXZlcnNhbCBhY3Rpb24uCisgICAgICAgICAgICBmcmFnbWVudC5tYXRj
aGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBmcmFnbWVudC50cmF2ZXJzYWxCYWNrdHJh
Y2tpbmdBY3Rpb247CisgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFj
a3RyYWNraW5nQWN0aW9uID0gZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnJhZ21lbnRSZWxhdGlvbjo6SW5k
aXJlY3RBZGphY2VudDoKICAgICAgICAgLy8gRmFpbHVyZSBvbiB0cmF2ZXJzYWwgaW1wbGllcyBu
byBvdGhlciBzaWJsaW5nIG1hdGNoaW5nIHdpbGwgc3VjY2VlZC4gTWF0Y2hpbmcgY2FuIHJlc3Vt
ZQogICAgICAgICAvLyBmcm9tIHRoZSBsYXRlc3QgYW5jZXN0b3IvZGVzY2VuZGFudC4KLSAgICAg
ICAgaWYgKGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQpIHsKLSAgICAgICAgICAgIGlm
IChpc0FmdGVyQ2hpbGRSZWxhdGlvbihhbmNlc3RvclBvc2l0aW9uU2luY2VEZXNjZW5kYW50UmVs
YXRpb24pKQotICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0Fj
dGlvbiA9IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFudFRhaWw7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5n
QWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVu
dHJ5UG9pbnQ7Ci0gICAgICAgIH0KKyAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNr
aW5nQWN0aW9uID0gc29sdmVBZGphY2VudFRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbihmcmFn
bWVudCwgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KQEAgLTgzMCw3ICs4MTIsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6
Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICAgICAgZGF0YUxvZ0YoIkNvbXB1
dGluZyBmcmFnbWVudFslZF0gYmFja3RyYWNraW5nIGhlaWdodCAldS4gTm90TWF0Y2hlZCAldSAv
IE1hdGNoZWQgJXVcbiIsIGksIGZyYWdtZW50LmhlaWdodEZyb21EZXNjZW5kYW50LCBmcmFnbWVu
dC50YWdOYW1lTm90TWF0Y2hlZEJhY2t0cmFja2luZ1N0YXJ0SGVpZ2h0RnJvbURlc2NlbmRhbnQs
IGZyYWdtZW50LnRhZ05hbWVNYXRjaGVkQmFja3RyYWNraW5nU3RhcnRIZWlnaHRGcm9tRGVzY2Vu
ZGFudCk7CiAjZW5kaWYKIAotICAgICAgICBzb2x2ZUJhY2t0cmFja2luZ0FjdGlvbihmcmFnbWVu
dCwgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCwgYW5jZXN0b3JQb3NpdGlvblNpbmNl
RGVzY2VuZGFudFJlbGF0aW9uLCBoYXNJbmRpcmVjdEFkamFjZW50UmVsYXRpb25PblRoZVJpZ2h0
T2ZEaXJlY3RBZGphY2VudENoYWluLCBhZGphY2VudFBvc2l0aW9uU2luY2VJbmRpcmVjdEFkamFj
ZW50VHJlZVdhbGspOworICAgICAgICBzb2x2ZUJhY2t0cmFja2luZ0FjdGlvbihmcmFnbWVudCwg
aGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCwgaGFzSW5kaXJlY3RBZGphY2VudFJlbGF0
aW9uT25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRDaGFpbiwgYWRqYWNlbnRQb3NpdGlvblNpbmNl
SW5kaXJlY3RBZGphY2VudFRyZWVXYWxrKTsKIAogICAgICAgICBuZWVkc0FkamFjZW50VGFpbCB8
PSByZXF1aXJlc0FkamFjZW50VGFpbChmcmFnbWVudCk7CiAgICAgICAgIG5lZWRzRGVzY2VuZGFu
dFRhaWwgfD0gcmVxdWlyZXNEZXNjZW5kYW50VGFpbChmcmFnbWVudCk7CkBAIC0xMzAzLDkgKzEy
ODUsNiBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6bGlua0ZhaWx1cmVzKEFzc2VtYmxl
cjo6SnVtcExpc3QmIGdsb2JhbEZhaWx1cmVDYXNlcwogICAgIGNhc2UgQmFja3RyYWNraW5nQWN0
aW9uOjpKdW1wVG9EaXJlY3RBZGphY2VudFRhaWw6CiAgICAgICAgIG1fYWRqYWNlbnRCYWNrdHJh
Y2tpbmdGYWlsdXJlQ2FzZXMuYXBwZW5kKGxvY2FsRmFpbHVyZUNhc2VzKTsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0NsZWFyQWRqYWNlbnRUYWls
OgotICAgICAgICBtX2NsZWFyQWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXMuYXBwZW5k
KGxvY2FsRmFpbHVyZUNhc2VzKTsKLSAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC0xMzE3
LDkgKzEyOTYsNiBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2Vu
dEJhY2t0cmFja2luZ1RhaWwoKQogICAgIHVuc2lnbmVkIG9mZnNldFRvQWRqYWNlbnRCYWNrdHJh
Y2tpbmdTdGFydCA9IG1fc3RhY2tBbGxvY2F0b3Iub2Zmc2V0VG9TdGFja1JlZmVyZW5jZShtX2Fk
amFjZW50QmFja3RyYWNraW5nU3RhcnQpOwogICAgIG1fYXNzZW1ibGVyLmxvYWRQdHIoQXNzZW1i
bGVyOjpBZGRyZXNzKEFzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldFRvQWRq
YWNlbnRCYWNrdHJhY2tpbmdTdGFydCksIGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIpOwogICAgIG1f
YXNzZW1ibGVyLmp1bXAobV9pbmRpcmVjdEFkamFjZW50RW50cnlQb2ludCk7Ci0KLSAgICAvLyBU
b3RhbCBmYWlsdXJlIHRhaWwuCi0gICAgbV9jbGVhckFkamFjZW50QmFja3RyYWNraW5nRmFpbHVy
ZUNhc2VzLmxpbmsoJm1fYXNzZW1ibGVyKTsKIH0KIAogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0
b3I6OmdlbmVyYXRlRGVzY2VuZGFudEJhY2t0cmFja2luZ1RhaWwoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2ZDBlNjM2
MzQxZmE2MzdjNDU2MDc2ZWMzMDc3YTM2MmVjZTlhNWQuLjhiOWQ2YTI5N2IxNjRiYTI5NmE0ZGFj
ZTNjOWEzMzFmMmI0NGM0Y2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxNC0wNS0wMiAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBDU1MgSklUOiBv
cHRpbWl6ZSBkaXJlY3QgLyBpbmRpcmVjdCBhZGphY2VudCdzIHRyYXZlcnNhbCBiYWNrdHJhY2tp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjMx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNl
IGFkamFjZW50IGJhY2t0cmFja2luZyBzdGFjayByZWZlcmVuY2UgaXMgcHJlLWFsbG9jYXRlZAor
ICAgICAgICBpbiBwcm9sb2d1ZSBpbiBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8x
NjY4MzQsCisgICAgICAgIGNsZWFyaW5nIHN0YWNrIHBoYXNlIGlzIG5vdCBuZWVkZWQuIFNvIHdl
IGNhbiBkcm9wCisgICAgICAgIEp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsIGZyb20gYmFja3RyYWNr
aW5nIGFjdGlvbiBhbmQgc2ltcGxpZnkKKyAgICAgICAgYmFja3RyYWNraW5nIGhhbmRsaW5nLgor
ICAgICAgICBBbmQgb3B0aW1pemUgZGlyZWN0IC8gaW5kaXJlY3QgYWRqYWNlbnQncyB0cmF2ZXJz
YWwgYmFja3RyYWNraW5nIGJ5CisgICAgICAgIHVzaW5nIGFwcHJvcHJpYXRlIGJhY2t0cmFja2lu
ZyBoZWlnaHQuCisKKyAgICAgICAgV2hlbiBzb2x2aW5nIGFkamFjZW50IHRyYXZlcnNhbCBiYWNr
dHJhY2tpbmcgYWN0aW9uLAorICAgICAgICAxKSBXaGVuIHRoZXJlJ3Mgbm8gZGVzY2VuZGFudCBy
ZWxhdGlvbiBvbiB0aGUgcmlnaHQsIHRyYXZlcnNhbAorICAgICAgICBmYWlsdXJlIGJlY29tZXMg
Z2xvYmFsIGZhaWx1cmUuCisgICAgICAgIDIpIFdoZW4gYHRhZ05hbWVNYXRjaGVkQmFja3RyYWNr
aW5nU3RhcnRIZWlnaHRGcm9tRGVzY2VuZGFudGAgPT0KKyAgICAgICAgYGhlaWdodEZyb21EZXNj
ZW5kYW50YCArIDEsIHRoZSBkZXNjZW5kYW50IGJhY2t0cmFja2luZyBzdGFydHMgd2l0aAorICAg
ICAgICB0aGUgcGFyZW50IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIFNvIHdlIGNhbiB1c2UgdGhl
IGN1cnJlbnQgZWxlbWVudAorICAgICAgICBhbmQgdGhlIGJhY2t0cmFja2luZyBhY3Rpb24gaXMg
SnVtcFRvRGVzY2VuZGFudFRyZWVXYWxrZXJFbnRyeVBvaW50LgorICAgICAgICAzKSBPdGhlcndp
c2UsIGN1cnJlbnRseSB3ZSB0YWtlIHRoZSBjb25zZXJ2YXRpdmUgYXBwcm9hY2gsCisgICAgICAg
IEp1bXBUb0Rlc2NlbmRhbnRUYWlsLgorCisgICAgICAgIE5PVEU6CisgICAgICAgIEFuZCBpZiBg
aGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodGAgaXMgdHJ1ZSBhbmQgdGhlcmUncyBubyBj
aGlsZAorICAgICAgICBmcmFnbWVudCBvbiB0aGUgcmlnaHQsIHRoZSBiYWNrdHJhY2tpbmcgZWxl
bWVudCByZWdpc3RlciBpcyBub3QKKyAgICAgICAgZWZmZWN0aXZlLiBTbyB3ZSBzaG91bGQgZW5z
dXJlIHRoYXQgZnJhZ21lbnQgZG9lc24ndCB1c2UgdGhlCisgICAgICAgIGJhY2t0cmFja2luZyBl
bGVtZW50IHJlZ2lzdGVyLiBTdWNoIGEgZnJhZ21lbnQgZnVsZmlsbHMgdGhlIGZvbGxvd2luZwor
ICAgICAgICBjb25kaXRpb25zLiAxLiB0YWdOYW1lTWF0Y2hlZEJhY2t0cmFja2luZ1N0YXJ0SGVp
Z2h0RnJvbURlc2NlbmRhbnQgaXMKKyAgICAgICAgYWx3YXlzIDEgKHRhZ05hbWVzLnNpemUoKSwg
dGhhdCBjb250YWlucyBvbmx5IGRlc2NlbmRhbnQgZnJhZ21lbnQpIDIuCisgICAgICAgIGhlaWdo
dEZyb21EZXNjZW5kYW50IGlzIGFsd2F5cyAwICgtLSBTZWUKKyAgICAgICAgY29tcHV0ZUJhY2t0
cmFja2luZ0hlaWdodEZyb21EZXNjZW5kYW50IGltcGxlbWVudGF0aW9uKSBUaGVyZWZvcmUgc3Vj
aAorICAgICAgICBhIGZyYWdtZW50J3MgYWN0aW9uIGFsd2F5cyBiZWNvbWVzCisgICAgICAgIEp1
bXBUb0Rlc2NlbmRhbnRUcmVlV2Fsa2VyRW50cnlQb2ludC4gU28gd2UgY2FuIGVuc3VyZSB0aGF0
IHRoZQorICAgICAgICBiYWNrdHJhY2tpbmcgZWxlbWVudCByZWdpc3RlciBpcyBub3QgdXNlZC4K
KworICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGph
Y2VudC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0wMSAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJu
YW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBDbGFtcGluZyB0
aGUgbnVtYmVyIG9mIHJlcGV0aXRpb25zIGluIHJlcGVhdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctYWRqYWNlbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWFkamFjZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MzYzN2FlNzMzOTVhZGY2ODliYjAyZjczOTQ5OGE0ZjY5YWRlNWEx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNr
aW5nLWFkamFjZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitUaGUgYmFja3RyYWNr
aW5nIGZyb20gYWRqYWNlbnQgY29tYmluYXRvcnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0JhY2t0cmFja2luZyB3aXRoIHRhaWwsIHN1Y2NlZWRlZCB3aXRob3V0IGJhY2t0cmFj
a2luZworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQxIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorQmFja3RyYWNraW5nIHdp
dGggdGFpbCB3aXRob3V0IGluZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3RhcnQuCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDIiKSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitCYWNrdHJhY2tpbmcgd2l0aCB0YWls
LCAyIGRpcmVjdCBhZGphY2VudHMgd2l0aG91dCBpbmRpcmVjdCBhZGphY2VudCwgZmFpbGVkIGFu
ZCByZXN0YXJ0IGJhY2t0cmFja2luZy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0MyIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK0JhY2t0cmFja2luZyB3aXRoIHRhaWwsIGluZGlyZWN0IGFkamFjZW50LgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0IikpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorQmFja3RyYWNraW5nIHdpdGhvdXQgdGFpbCBBbmQg
ZmFpbHMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldDUiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCitCYWNrdHJhY2tpbmcg
ZnJvbSBkaXJlY3QgYWRqYWNlbnQgd2l0aG91dCB0YWlsLiBNYXRjaGVzLgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ2LjEiKSkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2IoMTAsIDExLCAxMikiCitCYWNrdHJhY2tpbmcgZnJvbSBkaXJlY3QgYWRq
YWNlbnQgdGFnIG1hdGNoaW5nIHdpdGhvdXQgdGFpbC4gRmFpbHMuCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYuMiIpKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigwLCAwLCAwKSIKK0JhY2t0cmFja2luZyBmcm9tIGRpcmVjdCBhZGphY2VudCB0
cmF2ZXJzYWwgd2l0aG91dCB0YWlsLiBGYWlscy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Ni4zIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDAsIDAsIDApIgorQmFja3RyYWNraW5nIHdpdGhvdXQgdGFpbC4gQW5kIGZhaWxzLgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ3IikpLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorQmFja3RyYWNraW5nIHdpdGhvdXQgdGFpbC4g
QW5kIE1hdGNoZXMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldDgiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTMsIDE0LCAxNSkiCitCYWNr
dHJhY2tpbmcgZnJvbSBkaXJlY3QgYWRqYWNlbnQgd2l0aCB0YWlsLiBBbmQgZmFpbHMuCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDkiKSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCitCYWNrdHJhY2tpbmcgZnJvbSBkaXJlY3Qg
YWRqYWNlbnQgd2l0aCB0YWlsLiBBbmQgTWF0Y2hlcy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTAiKSkuYmFja2dyb3VuZENvbG9yIGlzICJy
Z2IoMTYsIDE3LCAxOCkiCitCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB3aXRo
IHRhaWwuIEFuZCBmYWlscy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0MTEiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCitC
YWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB3aXRoIHRhaWwuIEFuZCBNYXRjaGVz
LgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQx
MiIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxOSwgMjAsIDIxKSIKK0JhY2t0cmFja2luZyBm
cm9tIGluZGlyZWN0IGFkamFjZW50IHdpdGhvdXQgdGFpbC4gTWF0Y2hlcy4KK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTMuMSIpKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigyMiwgMjMsIDI0KSIKK0JhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0
IGFkamFjZW50IHRhZyBtYXRjaGluZyB3aXRob3V0IHRhaWwuIEZhaWxzLgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMy4yIikpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorQmFja3RyYWNraW5nIGZyb20gaW5kaXJlY3QgYWRq
YWNlbnQgdHJhdmVyc2FsIHdpdGhvdXQgdGFpbC4gRmFpbHMuCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEzLjMiKSkuYmFja2dyb3VuZENvbG9y
IGlzICJyZ2IoMCwgMCwgMCkiCitCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB3
aXRob3V0IHRhaWwuIE1hdGNoZXMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldDE0LjEiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjUsIDI2
LCAyNykiCitCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB0YWcgbWF0Y2hpbmcg
d2l0aG91dCB0YWlsLiBGYWlscy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0MTQuMiIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAwLCAw
KSIKK0JhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFkamFjZW50IHRyYXZlcnNhbCB3aXRob3V0
IHRhaWwuIEZhaWxzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQxNC4zIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWFkamFjZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTA2NmNiODk5NjY2ZWViMGViMjcwNDhmZTMzMWI5MzVhMTQwMTY4NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1h
ZGphY2VudC5odG1sCkBAIC0wLDAgKzEsMzIyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KK3NwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigw
LDAsMCk7Cit9CithICsgYiBzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2Io
MSwyLDMpOworfQorYyArIGMgKyBkIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OnJnYig0LDUsNik7Cit9CitlICsgZiB+IGcgc3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQt
Y29sb3I6cmdiKDcsOCw5KTsKK30KK2ggKyBzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMTAsMTEsMTIpOworfQoraitqK2p+aj5rIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigxMywxNCwxNSk7Cit9CittIGwrbCtsK2x+bT5tPm0gc3Bhbi50YXJn
ZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDE2LDE3LDE4KTsKK30KK24gb35uPm4+biBz
cGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMTksMjAsMjEpOworfQorcCB+
IHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMiwyMywyNCk7Cit9Citx
IH4gciBzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjUsMjYsMjcpOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIj4K
KyAgICA8dGFyZ2V0MT4KKyAgICAgICAgPGE+PC9hPgorICAgICAgICA8Yj4KKyAgICAgICAgICAg
IDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxIj48L3NwYW4+CisgICAgICAgIDwvYj4K
KyAgICA8L3RhcmdldDE+CisKKyAgICA8dGFyZ2V0Mj4KKyAgICAgICAgPGE+PC9hPgorICAgICAg
ICA8Yj4KKyAgICAgICAgICAgIDxiPjwvYj4gIDwhLS0gRmFpbCBoZXJlIGFuZCByZXN0YXJ0IGJh
Y2t0cmFja2luZy4gLS0+CisgICAgICAgICAgICA8Yj4KKyAgICAgICAgICAgICAgICA8c3BhbiBj
bGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MiI+PC9zcGFuPgorICAgICAgICAgICAgPC9iPgorICAg
ICAgICA8L2I+CisgICAgPC90YXJnZXQyPgorCisgICAgPHRhcmdldDM+CisgICAgICAgIDxjPjwv
Yz4KKyAgICAgICAgPGM+PC9jPgorICAgICAgICA8ZD4KKyAgICAgICAgICAgIDxjPjwvYz4KKyAg
ICAgICAgICAgIDxiPjwvYj4gIDwhLS0gRmFpbCBoZXJlIGFuZCByZXN0YXJ0IGJhY2t0cmFja2lu
ZyB3aXRoIHRoZSBwYXJlbnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gLS0+CisgICAgICAgICAg
ICA8ZD4KKyAgICAgICAgICAgICAgICA8Yj48L2I+ICA8IS0tIEZhaWwgaGVyZSBhbmQgcmVzdGFy
dCBiYWNrdHJhY2tpbmcgd2l0aCB0aGUgcGFyZW50IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIC0t
PgorICAgICAgICAgICAgICAgIDxjPjwvYz4KKyAgICAgICAgICAgICAgICA8ZD4KKyAgICAgICAg
ICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDMiPjwvc3Bhbj4KKyAg
ICAgICAgICAgICAgICA8L2Q+CisgICAgICAgICAgICA8L2Q+CisgICAgICAgIDwvZD4KKyAgICA8
L3RhcmdldDM+CisKKyAgICA8dGFyZ2V0ND4KKyAgICAgICAgPGQ+PC9kPgorICAgICAgICA8ZT48
L2U+CisgICAgICAgIDxmPjwvZj4KKyAgICAgICAgPGQ+PC9kPgorICAgICAgICA8ZD48L2Q+Cisg
ICAgICAgIDxnPgorICAgICAgICAgICAgPGQ+PC9kPiAgPCEtLSBGYWlsIGhlcmUgYW5kIHJlc3Rh
cnQgYmFja3RyYWNraW5nIGluZGlyZWN0IGFkamFjZW50IG1hdGNoaW5nLiAtLT4KKyAgICAgICAg
ICAgIDxmPjwvZj4KKyAgICAgICAgICAgIDxnPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJ0YXJnZXQiIGlkPSJ0YXJnZXQ0Ij48L3NwYW4+CisgICAgICAgICAgICA8L2c+CisgICAgICAg
IDwvZz4KKyAgICA8L3RhcmdldDQ+CisKKyAgICA8dGFyZ2V0NT4KKyAgICAgICAgPHNwYW4gY2xh
c3M9InRhcmdldCIgaWQ9InRhcmdldDUiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDU+CisKKyAgICA8
dGFyZ2V0Nj4KKyAgICAgICAgPGg+PC9oPgorICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBp
ZD0idGFyZ2V0Ni4xIj48L3NwYW4+CisgICAgPC90YXJnZXQ2PgorCisgICAgPHRhcmdldDY+Cisg
ICAgICAgIDxhPjwvYT4KKyAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDYu
MiI+PC9zcGFuPgorICAgIDwvdGFyZ2V0Nj4KKworICAgIDx0YXJnZXQ2PgorICAgICAgICA8c3Bh
biBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ni4zIj48L3NwYW4+CisgICAgPC90YXJnZXQ2Pgor
CisgICAgPHRhcmdldDc+CisgICAgICAgIDxkPjwvZD4gIDwhLS0gRmFpbCBoZXJlLiAtLT4KKyAg
ICAgICAgPGo+PC9qPgorICAgICAgICA8aj48L2o+CisgICAgICAgIDxqPjwvaj4KKyAgICAgICAg
PGs+CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0NyI+PC9zcGFu
PgorICAgICAgICA8L2s+CisgICAgPC90YXJnZXQ3PgorCisgICAgPHRhcmdldDg+CisgICAgICAg
IDxqPjwvaj4gIDwhLS0gTWF0Y2ggaGVyZS4gLS0+CisgICAgICAgIDxqPjwvaj4KKyAgICAgICAg
PGo+PC9qPgorICAgICAgICA8aj48L2o+CisgICAgICAgIDxkPjwvZD4gIDwhLS0gRmFpbCBoZXJl
LiAtLT4KKyAgICAgICAgPGo+PC9qPgorICAgICAgICA8aj48L2o+CisgICAgICAgIDxqPgorICAg
ICAgICAgICAgPGs+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRh
cmdldDgiPjwvc3Bhbj4KKyAgICAgICAgICAgIDwvaz4KKyAgICAgICAgPC9qPgorICAgIDwvdGFy
Z2V0OD4KKworICAgIDx0YXJnZXQ5PgorICAgICAgICA8bT4KKyAgICAgICAgICAgIDxsPjwvbD4g
IDwhLS0gRmFpbCBoZXJlIC0tPgorICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgPGw+
PC9sPgorICAgICAgICAgICAgPG0+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWls
IGhlcmUgYW5kIGJhY2t0cmFjayB3aXRoIHRoZSB0YWlsIC0tPgorICAgICAgICAgICAgICAgIDxs
PjwvbD4KKyAgICAgICAgICAgICAgICA8bD48L2w+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAg
PCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAg
ICAgIDxtPgorICAgICAgICAgICAgICAgICAgICA8bT4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlk
PSJ0YXJnZXQ5Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L20+CisgICAgICAg
ICAgICAgICAgICAgIDwvbT4KKyAgICAgICAgICAgICAgICA8L20+CisgICAgICAgICAgICA8L20+
CisgICAgICAgIDwvbT4KKyAgICA8L3RhcmdldDk+CisKKyAgICA8dGFyZ2V0MTA+CisgICAgICAg
IDxtPgorICAgICAgICAgICAgPGw+PC9sPiAgPCEtLSBNYXRjaCBoZXJlIC0tPgorICAgICAgICAg
ICAgPGw+PC9sPgorICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgPGw+PC9sPgorICAg
ICAgICAgICAgPG0+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgYW5k
IGJhY2t0cmFjayB3aXRoIHRoZSB0YWlsIC0tPgorICAgICAgICAgICAgICAgIDxsPjwvbD4KKyAg
ICAgICAgICAgICAgICA8bD48L2w+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWls
IGhlcmUgLS0+CisgICAgICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgICAgIDxtPgor
ICAgICAgICAgICAgICAgICAgICA8bT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxtPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQx
MCI+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9tPgorICAgICAgICAgICAgICAg
ICAgICA8L20+CisgICAgICAgICAgICAgICAgPC9tPgorICAgICAgICAgICAgPC9tPgorICAgICAg
ICA8L20+CisgICAgPC90YXJnZXQxMD4KKworICAgIDx0YXJnZXQxMT4KKyAgICAgICAgPG4+Cisg
ICAgICAgICAgICA8YT48L2E+ICA8IS0tIEZhaWwgaGVyZSAtLT4KKyAgICAgICAgICAgIDxuPgor
ICAgICAgICAgICAgICAgIDxhPjwvYT4gIDwhLS0gRmFpbCBoZXJlIGFuZCBiYWNrdHJhY2sgd2l0
aCB0aGUgdGFpbCAtLT4KKyAgICAgICAgICAgICAgICA8YT48L2E+ICA8IS0tIEZhaWwgaGVyZSAt
LT4KKyAgICAgICAgICAgICAgICA8bj4KKyAgICAgICAgICAgICAgICAgICAgPG4+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8bj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBj
bGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTEiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbj4KKyAgICAgICAgICAgICAgICAgICAgPC9uPgorICAgICAgICAgICAgICAgIDwvbj4K
KyAgICAgICAgICAgIDwvbj4KKyAgICAgICAgPC9uPgorICAgIDwvdGFyZ2V0MTE+CisKKyAgICA8
dGFyZ2V0MTI+CisgICAgICAgIDxuPgorICAgICAgICAgICAgPG8+PC9vPiAgPCEtLSBNYXRjaCBo
ZXJlIC0tPgorICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAg
ICAgICA8bj4KKyAgICAgICAgICAgICAgICA8YT48L2E+ICA8IS0tIEZhaWwgaGVyZSBhbmQgYmFj
a3RyYWNrIHdpdGggdGhlIHRhaWwgLS0+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBG
YWlsIGhlcmUgLS0+CisgICAgICAgICAgICAgICAgPG4+CisgICAgICAgICAgICAgICAgICAgIDxu
PgorICAgICAgICAgICAgICAgICAgICAgICAgPG4+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDEyIj48L3NwYW4+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8L24+CisgICAgICAgICAgICAgICAgICAgIDwvbj4KKyAgICAgICAgICAg
ICAgICA8L24+CisgICAgICAgICAgICA8L24+CisgICAgICAgIDwvbj4KKyAgICA8L3RhcmdldDEy
PgorCisgICAgPHRhcmdldDEzPgorICAgICAgICA8cD48L3A+ICA8IS0tIE1hdGNoIGhlcmUgLS0+
CisgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxMy4xIj48L3NwYW4+Cisg
ICAgPC90YXJnZXQxMz4KKworICAgIDx0YXJnZXQxMz4KKyAgICAgICAgPGE+PC9hPiAgPCEtLSBG
YWlsIGhlcmUgLS0+CisgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxMy4y
Ij48L3NwYW4+CisgICAgPC90YXJnZXQxMz4KKworICAgIDx0YXJnZXQxMz4KKyAgICAgICAgPCEt
LSBGYWlsIGhlcmUgLS0+CisgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQx
My4zIj48L3NwYW4+CisgICAgPC90YXJnZXQxMz4KKworICAgIDx0YXJnZXQxND4KKyAgICAgICAg
PHE+PC9xPiAgPCEtLSBNYXRjaCBoZXJlIC0tPgorICAgICAgICA8YT48L2E+CisgICAgICAgIDxy
PgorICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgICAgICA8
cj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTQuMSI+
PC9zcGFuPgorICAgICAgICAgICAgPC9yPgorICAgICAgICA8L3I+CisgICAgPC90YXJnZXQxND4K
KworICAgIDx0YXJnZXQxND4KKyAgICAgICAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgIDxy
PgorICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgICAgICA8
cj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTQuMiI+
PC9zcGFuPgorICAgICAgICAgICAgPC9yPgorICAgICAgICA8L3I+CisgICAgPC90YXJnZXQxND4K
KworICAgIDx0YXJnZXQxND4KKyAgICAgICAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgIDxy
PgorICAgICAgICAgICAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgICAgICA8cj4KKyAgICAg
ICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTQuMyI+PC9zcGFuPgor
ICAgICAgICAgICAgPC9yPgorICAgICAgICA8L3I+CisgICAgPC90YXJnZXQxND4KKzwvZGl2Pgor
PC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGUgYmFja3RyYWNraW5nIGZyb20gYWRq
YWNlbnQgY29tYmluYXRvcnMnKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRoIHRhaWwsIHN1
Y2NlZWRlZCB3aXRob3V0IGJhY2t0cmFja2luZyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmJhY2tn
cm91bmRDb2xvcicsICdyZ2IoMSwgMiwgMyknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRo
IHRhaWwgd2l0aG91dCBpbmRpcmVjdCBhZGphY2VudCwgZmFpbGVkIGFuZCByZXN0YXJ0LiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMSwgMiwgMyknKTsKKwor
ZGVidWcoIkJhY2t0cmFja2luZyB3aXRoIHRhaWwsIDIgZGlyZWN0IGFkamFjZW50cyB3aXRob3V0
IGluZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3RhcnQgYmFja3RyYWNraW5nLiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNCwgNSwgNiknKTsKKwor
ZGVidWcoIkJhY2t0cmFja2luZyB3aXRoIHRhaWwsIGluZGlyZWN0IGFkamFjZW50LiIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQ0IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNywgOCwgOSknKTsKKworZGVi
dWcoIkJhY2t0cmFja2luZyB3aXRob3V0IHRhaWwgQW5kIGZhaWxzLiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQ1IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIkJhY2t0
cmFja2luZyBmcm9tIGRpcmVjdCBhZGphY2VudCB3aXRob3V0IHRhaWwuIE1hdGNoZXMuIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDYuMSIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDEwLCAxMSwgMTIpJyk7
CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBkaXJlY3QgYWRqYWNlbnQgdGFnIG1hdGNoaW5n
IHdpdGhvdXQgdGFpbC4gRmFpbHMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYuMiIpKS5iYWNrZ3JvdW5k
Q29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBkaXJl
Y3QgYWRqYWNlbnQgdHJhdmVyc2FsIHdpdGhvdXQgdGFpbC4gRmFpbHMuIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldDYuMyIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJC
YWNrdHJhY2tpbmcgd2l0aG91dCB0YWlsLiBBbmQgZmFpbHMuIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDci
KSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiQmFja3RyYWNr
aW5nIHdpdGhvdXQgdGFpbC4gQW5kIE1hdGNoZXMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDgiKSkuYmFj
a2dyb3VuZENvbG9yJywgJ3JnYigxMywgMTQsIDE1KScpOworCitkZWJ1ZygiQmFja3RyYWNraW5n
IGZyb20gZGlyZWN0IGFkamFjZW50IHdpdGggdGFpbC4gQW5kIGZhaWxzLiIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQ5IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIkJh
Y2t0cmFja2luZyBmcm9tIGRpcmVjdCBhZGphY2VudCB3aXRoIHRhaWwuIEFuZCBNYXRjaGVzLiIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQxMCIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDE2LCAxNywgMTgp
Jyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB3aXRoIHRh
aWwuIEFuZCBmYWlscy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTEiKSkuYmFja2dyb3VuZENvbG9yJywg
J3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiQmFja3RyYWNraW5nIGZyb20gaW5kaXJlY3QgYWRq
YWNlbnQgd2l0aCB0YWlsLiBBbmQgTWF0Y2hlcy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTIiKSkuYmFj
a2dyb3VuZENvbG9yJywgJ3JnYigxOSwgMjAsIDIxKScpOworCitkZWJ1ZygiQmFja3RyYWNraW5n
IGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgd2l0aG91dCB0YWlsLiBNYXRjaGVzLiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQxMy4xIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMjIsIDIzLCAyNCknKTsKKwor
ZGVidWcoIkJhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFkamFjZW50IHRhZyBtYXRjaGluZyB3
aXRob3V0IHRhaWwuIEZhaWxzLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMy4yIikpLmJhY2tncm91bmRD
b2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyBmcm9tIGluZGly
ZWN0IGFkamFjZW50IHRyYXZlcnNhbCB3aXRob3V0IHRhaWwuIEZhaWxzLiIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQxMy4zIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWco
IkJhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFkamFjZW50IHdpdGhvdXQgdGFpbC4gTWF0Y2hl
cy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0MTQuMSIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDI1LCAy
NiwgMjcpJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB0
YWcgbWF0Y2hpbmcgd2l0aG91dCB0YWlsLiBGYWlscy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTQuMiIp
KS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tp
bmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB0cmF2ZXJzYWwgd2l0aG91dCB0YWlsLiBGYWlscy4i
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0MTQuMyIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDAp
Jyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230693</attachid>
            <date>2014-05-02 13:47:21 -0700</date>
            <delta_ts>2014-05-03 20:06:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132319-20140503054701.patch</filename>
            <type>text/plain</type>
            <size>30453</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFlYzM1YzlhNGE1ZmU0
MWY4YTIxNDYyYzk1NGMzYWYwYjk3NjY2Yi4uYzVhYjQ1ZmVjMDhmOTJjNzc3OWNlMjRkNzRkZDIw
Yjg0OGFjNjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTA1LTAyICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IG9w
dGltaXplIGRpcmVjdCAvIGluZGlyZWN0IGFkamFjZW50J3MgdHJhdmVyc2FsIGJhY2t0cmFja2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ug
YWRqYWNlbnQgYmFja3RyYWNraW5nIHN0YWNrIHJlZmVyZW5jZSBpcyBwcmUtYWxsb2NhdGVkCisg
ICAgICAgIGluIHByb2xvZ3VlIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2
NjgzNCwKKyAgICAgICAgY2xlYXJpbmcgc3RhY2sgcGhhc2UgaXMgbm90IG5lZWRlZC4gU28gd2Ug
Y2FuIGRyb3AKKyAgICAgICAgSnVtcFRvQ2xlYXJBZGphY2VudFRhaWwgZnJvbSBiYWNrdHJhY2tp
bmcgYWN0aW9uIGFuZCBzaW1wbGlmeQorICAgICAgICBiYWNrdHJhY2tpbmcgaGFuZGxpbmcuCisg
ICAgICAgIEFuZCBvcHRpbWl6ZSBkaXJlY3QgLyBpbmRpcmVjdCBhZGphY2VudCdzIHRyYXZlcnNh
bCBiYWNrdHJhY2tpbmcgYnkKKyAgICAgICAgdXNpbmcgYXBwcm9wcmlhdGUgYmFja3RyYWNraW5n
IGhlaWdodC4KKworICAgICAgICBXaGVuIHNvbHZpbmcgYWRqYWNlbnQgdHJhdmVyc2FsIGJhY2t0
cmFja2luZyBhY3Rpb24sCisgICAgICAgIDEpIFdoZW4gdGhlcmUncyBubyBkZXNjZW5kYW50IHJl
bGF0aW9uIG9uIHRoZSByaWdodCwgdHJhdmVyc2FsCisgICAgICAgIGZhaWx1cmUgYmVjb21lcyBn
bG9iYWwgZmFpbHVyZS4KKyAgICAgICAgMikgV2hlbiBgdGFnTmFtZU1hdGNoZWRCYWNrdHJhY2tp
bmdTdGFydEhlaWdodEZyb21EZXNjZW5kYW50YCA9PQorICAgICAgICBgaGVpZ2h0RnJvbURlc2Nl
bmRhbnRgICsgMSwgdGhlIGRlc2NlbmRhbnQgYmFja3RyYWNraW5nIHN0YXJ0cyB3aXRoCisgICAg
ICAgIHRoZSBwYXJlbnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gU28gd2UgY2FuIHVzZSB0aGUg
Y3VycmVudCBlbGVtZW50CisgICAgICAgIGFuZCB0aGUgYmFja3RyYWNraW5nIGFjdGlvbiBpcyBK
dW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQuCisgICAgICAgIDMpIE90aGVyd2lz
ZSwgY3VycmVudGx5IHdlIHRha2UgdGhlIGNvbnNlcnZhdGl2ZSBhcHByb2FjaCwKKyAgICAgICAg
SnVtcFRvRGVzY2VuZGFudFRhaWwuCisKKyAgICAgICAgTk9URToKKyAgICAgICAgQW5kIGlmIGBo
YXNEZXNjZW5kYW50UmVsYXRpb25PblRoZVJpZ2h0YCBpcyB0cnVlIGFuZCB0aGVyZSdzIG5vIGNo
aWxkCisgICAgICAgIGZyYWdtZW50IG9uIHRoZSByaWdodCwgdGhlIGJhY2t0cmFja2luZyBlbGVt
ZW50IHJlZ2lzdGVyIGlzIG5vdAorICAgICAgICBlZmZlY3RpdmUuIFNvIHdlIHNob3VsZCBlbnN1
cmUgdGhhdCBmcmFnbWVudCBkb2Vzbid0IHVzZSB0aGUKKyAgICAgICAgYmFja3RyYWNraW5nIGVs
ZW1lbnQgcmVnaXN0ZXIuIFN1Y2ggYSBmcmFnbWVudCBmdWxmaWxscyB0aGUgZm9sbG93aW5nCisg
ICAgICAgIGNvbmRpdGlvbnMuIDEuIHRhZ05hbWVNYXRjaGVkQmFja3RyYWNraW5nU3RhcnRIZWln
aHRGcm9tRGVzY2VuZGFudCBpcworICAgICAgICBhbHdheXMgMSAodGFnTmFtZXMuc2l6ZSgpLCB0
aGF0IGNvbnRhaW5zIG9ubHkgZGVzY2VuZGFudCBmcmFnbWVudCkgMi4KKyAgICAgICAgaGVpZ2h0
RnJvbURlc2NlbmRhbnQgaXMgYWx3YXlzIDAgKC0tIFNlZQorICAgICAgICBjb21wdXRlQmFja3Ry
YWNraW5nSGVpZ2h0RnJvbURlc2NlbmRhbnQgaW1wbGVtZW50YXRpb24pIFRoZXJlZm9yZSBzdWNo
CisgICAgICAgIGEgZnJhZ21lbnQncyBhY3Rpb24gYWx3YXlzIGJlY29tZXMKKyAgICAgICAgSnVt
cFRvRGVzY2VuZGFudFRyZWVXYWxrZXJFbnRyeVBvaW50LiBTbyB3ZSBjYW4gZW5zdXJlIHRoYXQg
dGhlCisgICAgICAgIGJhY2t0cmFja2luZyBlbGVtZW50IHJlZ2lzdGVyIGlzIG5vdCB1c2VkLgor
CisgICAgICAgIFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC5odG1s
CisKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpzb2x2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdBY3Rpb25G
b3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpzb2x2ZUFkamFj
ZW50VHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnNvbHZlQmFja3RyYWNraW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFj
a2luZ0luZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6bGlua0ZhaWx1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2VudEJh
Y2t0cmFja2luZ1RhaWwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6aXNB
ZnRlckNoaWxkUmVsYXRpb24pOiBEZWxldGVkLgorCiAyMDE0LTA1LTAxICBKYXZpZXIgRmVybmFu
ZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRd
IENsYW1waW5nIHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMgaW4gcmVwZWF0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCA1YjhmNTQ2OTQ2MWIxY2Y5
ZDBiMzQ2NTEzMjMwNjAyOWJhOWU4MmZhLi40YzE1ZDJkMmZiZmFhZTZjNWIzODBlYTc1MWIxMzIx
MGVhYjU2MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
CkBAIC02NSw4ICs2NSw3IEBAIGVudW0gY2xhc3MgQmFja3RyYWNraW5nQWN0aW9uIHsKICAgICBK
dW1wVG9JbmRpcmVjdEFkamFjZW50RW50cnlQb2ludCwKICAgICBKdW1wVG9EZXNjZW5kYW50VHJl
ZVdhbGtlckVudHJ5UG9pbnQsCiAgICAgSnVtcFRvRGVzY2VuZGFudFRhaWwsCi0gICAgSnVtcFRv
RGlyZWN0QWRqYWNlbnRUYWlsLAotICAgIEp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsCisgICAgSnVt
cFRvRGlyZWN0QWRqYWNlbnRUYWlsCiB9OwogCiBzdHJ1Y3QgQmFja3RyYWNraW5nRmxhZyB7CkBA
IC0yNDEsNyArMjQwLDYgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKICAgICBBc3Nl
bWJsZXI6Okp1bXBMaXN0IG1fZGVzY2VuZGFudEJhY2t0cmFja2luZ0ZhaWx1cmVDYXNlczsKICAg
ICBTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2UgbV9hZGphY2VudEJhY2t0cmFja2luZ1N0
YXJ0OwogICAgIEFzc2VtYmxlcjo6SnVtcExpc3QgbV9hZGphY2VudEJhY2t0cmFja2luZ0ZhaWx1
cmVDYXNlczsKLSAgICBBc3NlbWJsZXI6Okp1bXBMaXN0IG1fY2xlYXJBZGphY2VudEJhY2t0cmFj
a2luZ0ZhaWx1cmVDYXNlczsKIAogI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCiAgICAg
Y29uc3QgQ1NTU2VsZWN0b3IqIG1fb3JpZ2luYWxTZWxlY3RvcjsKQEAgLTU5MiwxMiArNTkwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzRmlyc3RBZGphY2VudCh1bnNpZ25lZCBhZGphY2VudFBv
c2l0aW9uU2luY2VJbmRpcmVjdEFkamFjZW4KICAgICByZXR1cm4gYWRqYWNlbnRQb3NpdGlvblNp
bmNlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrID09IDE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc0FmdGVyQ2hpbGRSZWxhdGlvbih1bnNpZ25lZCBhbmNlc3RvclBvc2l0aW9uU2luY2VEZXNj
ZW5kYW50UmVsYXRpb24pCi17Ci0gICAgcmV0dXJuIGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2Nl
bmRhbnRSZWxhdGlvbiA+IDA7Ci19Ci0KLXN0YXRpYyBCYWNrdHJhY2tpbmdBY3Rpb24gc29sdmVE
ZXNjZW5kYW50QmFja3RyYWNraW5nQWN0aW9uRm9yQ2hpbGQoY29uc3QgU2VsZWN0b3JGcmFnbWVu
dCYgZnJhZ21lbnQsIHVuc2lnbmVkIGJhY2t0cmFja2luZ1N0YXJ0SGVpZ2h0RnJvbURlc2NlbmRh
bnQpCitzdGF0aWMgaW5saW5lIEJhY2t0cmFja2luZ0FjdGlvbiBzb2x2ZURlc2NlbmRhbnRCYWNr
dHJhY2tpbmdBY3Rpb25Gb3JDaGlsZChjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwg
dW5zaWduZWQgYmFja3RyYWNraW5nU3RhcnRIZWlnaHRGcm9tRGVzY2VuZGFudCkKIHsKICAgICAv
LyBJZiBoZWlnaHQgaXMgaW52YWxpZCAoZS5nLiBUaGVyZSdzIG5vIHRhZyBuYW1lKS4KICAgICBp
ZiAoYmFja3RyYWNraW5nU3RhcnRIZWlnaHRGcm9tRGVzY2VuZGFudCA9PSBpbnZhbGlkSGVpZ2h0
KQpAQCAtNjE0LDcgKzYwNywxOCBAQCBzdGF0aWMgQmFja3RyYWNraW5nQWN0aW9uIHNvbHZlRGVz
Y2VuZGFudEJhY2t0cmFja2luZ0FjdGlvbkZvckNoaWxkKGNvbnN0IFNlbGVjdAogICAgIHJldHVy
biBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwogfQogCi1zdGF0aWMg
aW5saW5lIHZvaWQgc29sdmVCYWNrdHJhY2tpbmdBY3Rpb24oU2VsZWN0b3JGcmFnbWVudCYgZnJh
Z21lbnQsIGJvb2wgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCwgdW5zaWduZWQgYW5j
ZXN0b3JQb3NpdGlvblNpbmNlRGVzY2VuZGFudFJlbGF0aW9uLCBib29sIGhhc0luZGlyZWN0QWRq
YWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4sIHVuc2lnbmVkIGFk
amFjZW50UG9zaXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykKK3N0YXRpYyBpbmxp
bmUgQmFja3RyYWNraW5nQWN0aW9uIHNvbHZlQWRqYWNlbnRUcmF2ZXJzYWxCYWNrdHJhY2tpbmdB
Y3Rpb24oY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQsIGJvb2wgaGFzRGVzY2VuZGFu
dFJlbGF0aW9uT25UaGVSaWdodCkKK3sKKyAgICBpZiAoIWhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9u
VGhlUmlnaHQpCisgICAgICAgIHJldHVybiBCYWNrdHJhY2tpbmdBY3Rpb246Ok5vQmFja3RyYWNr
aW5nOworCisgICAgaWYgKGZyYWdtZW50LnRhZ05hbWVNYXRjaGVkQmFja3RyYWNraW5nU3RhcnRI
ZWlnaHRGcm9tRGVzY2VuZGFudCA9PSAoZnJhZ21lbnQuaGVpZ2h0RnJvbURlc2NlbmRhbnQgKyAx
KSkKKyAgICAgICAgcmV0dXJuIEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFudFRy
ZWVXYWxrZXJFbnRyeVBvaW50OworCisgICAgcmV0dXJuIEJhY2t0cmFja2luZ0FjdGlvbjo6SnVt
cFRvRGVzY2VuZGFudFRhaWw7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzb2x2ZUJhY2t0cmFj
a2luZ0FjdGlvbihTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwgYm9vbCBoYXNEZXNjZW5kYW50
UmVsYXRpb25PblRoZVJpZ2h0LCBib29sIGhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhl
UmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4sIHVuc2lnbmVkIGFkamFjZW50UG9zaXRpb25TaW5j
ZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykKIHsKICAgICBzd2l0Y2ggKGZyYWdtZW50LnJlbGF0
aW9uVG9SaWdodEZyYWdtZW50KSB7CiAgICAgY2FzZSBGcmFnbWVudFJlbGF0aW9uOjpSaWdodG1v
c3Q6CkBAIC02MzAsMjAgKzYzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzb2x2ZUJhY2t0cmFj
a2luZ0FjdGlvbihTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCwgYm9vbCBoYXNECiAgICAgY2Fz
ZSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2VudDoKICAgICAgICAgLy8gRmFpbHVyZSBv
biB0cmF2ZXJzYWwgaW1wbGllcyBubyBvdGhlciBzaWJsaW5nIHRyYXZlcnNhbCBjYW4gbWF0Y2gu
IE1hdGNoaW5nIHNob3VsZCByZXN1bWUgYXQgdGhlCiAgICAgICAgIC8vIG5lYXJlc3QgYW5jZXN0
b3IvZGVzY2VuZGFudCB0cmF2ZXJzYWwuCi0gICAgICAgIGlmIChoYXNEZXNjZW5kYW50UmVsYXRp
b25PblRoZVJpZ2h0KSB7Ci0gICAgICAgICAgICBpZiAoIWlzQWZ0ZXJDaGlsZFJlbGF0aW9uKGFu
Y2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbikpCi0gICAgICAgICAgICAgICAg
ZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9u
OjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoIWhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhl
UmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4gfHwgaXNGaXJzdEFkamFjZW50KGFkamFjZW50UG9z
aXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2FsaykpCi0gICAgICAgICAgICAgICAgICAg
IGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9IEJhY2t0cmFja2luZ0FjdGlv
bjo6SnVtcFRvRGVzY2VuZGFudFRhaWw7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBmcmFnbWVudC50cmF2ZXJzYWxCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJh
Y2tpbmdBY3Rpb246Okp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsOwotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGluIGEgZGlyZWN0IGFkamFj
ZW50IGNoYWluIHdpdGggYmFja3RyYWNraW5nLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBiYWNrdHJh
Y2tpbmcgcmVnaXN0ZXIgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgaWYgKGhhc0luZGlyZWN0
QWRqYWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRpcmVjdEFkamFjZW50Q2hhaW4gJiYgIWlzRmly
c3RBZGphY2VudChhZGphY2VudFBvc2l0aW9uU2luY2VJbmRpcmVjdEFkamFjZW50VHJlZVdhbGsp
KQotICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9
IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvQ2xlYXJBZGphY2VudFRhaWw7Ci0gICAgICAgIH0K
KyAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uID0gc29sdmVBZGph
Y2VudFRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbihmcmFnbWVudCwgaGFzRGVzY2VuZGFudFJl
bGF0aW9uT25UaGVSaWdodCk7CiAKICAgICAgICAgLy8gSWYgdGhlIHJpZ2h0bW9zdCByZWxhdGlv
biBpcyBhIGluZGlyZWN0IGFkamFjZW50LCBtYXRjaGluZyBzb3VsZCByZXN1bWUgZnJvbSB0aGVy
ZS4KICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSByZXN1bWUgZnJvbSB0aGUgbGF0ZXN0IGFuY2Vz
dG9yL2Rlc2NlbmRhbnQgaWYgYW55LgpAQCAtNjU2LDI0ICs2NDcsMTUgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIHNvbHZlQmFja3RyYWNraW5nQWN0aW9uKFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50
LCBib29sIGhhc0QKICAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1l
QmFja3RyYWNraW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EaXJlY3RBZGph
Y2VudFRhaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoaGFzRGVzY2VuZGFu
dFJlbGF0aW9uT25UaGVSaWdodCkgewotICAgICAgICAgICAgaWYgKGlzQWZ0ZXJDaGlsZFJlbGF0
aW9uKGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbikpIHsKLSAgICAgICAg
ICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNr
dHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwotICAgICAgICAgICAgICAgIGZy
YWdtZW50Lm1hdGNoaW5nUG9zdFRhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBCYWNrdHJhY2tp
bmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24g
PSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUcmVlV2Fsa2VyRW50cnlQb2lu
dDsKLSAgICAgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFja3RyYWNr
aW5nQWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtl
ckVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBTaW5jZSB3ZSByZXN1
bWUgZnJvbSB0aGUgbGF0ZXN0IGFuY2VzdG9yL2Rlc2NlbmRhbnQsIHRoZSBhY3Rpb24gaXMgdGhl
IHNhbWUgYXMgdGhlIHRyYXZlcnNhbCBhY3Rpb24uCisgICAgICAgICAgICBmcmFnbWVudC5tYXRj
aGluZ1RhZ05hbWVCYWNrdHJhY2tpbmdBY3Rpb24gPSBmcmFnbWVudC50cmF2ZXJzYWxCYWNrdHJh
Y2tpbmdBY3Rpb247CisgICAgICAgICAgICBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFj
a3RyYWNraW5nQWN0aW9uID0gZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5nQWN0aW9uOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnJhZ21lbnRSZWxhdGlvbjo6SW5k
aXJlY3RBZGphY2VudDoKICAgICAgICAgLy8gRmFpbHVyZSBvbiB0cmF2ZXJzYWwgaW1wbGllcyBu
byBvdGhlciBzaWJsaW5nIG1hdGNoaW5nIHdpbGwgc3VjY2VlZC4gTWF0Y2hpbmcgY2FuIHJlc3Vt
ZQogICAgICAgICAvLyBmcm9tIHRoZSBsYXRlc3QgYW5jZXN0b3IvZGVzY2VuZGFudC4KLSAgICAg
ICAgaWYgKGhhc0Rlc2NlbmRhbnRSZWxhdGlvbk9uVGhlUmlnaHQpIHsKLSAgICAgICAgICAgIGlm
IChpc0FmdGVyQ2hpbGRSZWxhdGlvbihhbmNlc3RvclBvc2l0aW9uU2luY2VEZXNjZW5kYW50UmVs
YXRpb24pKQotICAgICAgICAgICAgICAgIGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0Fj
dGlvbiA9IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFudFRhaWw7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNraW5n
QWN0aW9uID0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VHJlZVdhbGtlckVu
dHJ5UG9pbnQ7Ci0gICAgICAgIH0KKyAgICAgICAgZnJhZ21lbnQudHJhdmVyc2FsQmFja3RyYWNr
aW5nQWN0aW9uID0gc29sdmVBZGphY2VudFRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbihmcmFn
bWVudCwgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KQEAgLTgzMCw3ICs4MTIsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6
Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICAgICAgZGF0YUxvZ0YoIkNvbXB1
dGluZyBmcmFnbWVudFslZF0gYmFja3RyYWNraW5nIGhlaWdodCAldS4gTm90TWF0Y2hlZCAldSAv
IE1hdGNoZWQgJXVcbiIsIGksIGZyYWdtZW50LmhlaWdodEZyb21EZXNjZW5kYW50LCBmcmFnbWVu
dC50YWdOYW1lTm90TWF0Y2hlZEJhY2t0cmFja2luZ1N0YXJ0SGVpZ2h0RnJvbURlc2NlbmRhbnQs
IGZyYWdtZW50LnRhZ05hbWVNYXRjaGVkQmFja3RyYWNraW5nU3RhcnRIZWlnaHRGcm9tRGVzY2Vu
ZGFudCk7CiAjZW5kaWYKIAotICAgICAgICBzb2x2ZUJhY2t0cmFja2luZ0FjdGlvbihmcmFnbWVu
dCwgaGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCwgYW5jZXN0b3JQb3NpdGlvblNpbmNl
RGVzY2VuZGFudFJlbGF0aW9uLCBoYXNJbmRpcmVjdEFkamFjZW50UmVsYXRpb25PblRoZVJpZ2h0
T2ZEaXJlY3RBZGphY2VudENoYWluLCBhZGphY2VudFBvc2l0aW9uU2luY2VJbmRpcmVjdEFkamFj
ZW50VHJlZVdhbGspOworICAgICAgICBzb2x2ZUJhY2t0cmFja2luZ0FjdGlvbihmcmFnbWVudCwg
aGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCwgaGFzSW5kaXJlY3RBZGphY2VudFJlbGF0
aW9uT25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRDaGFpbiwgYWRqYWNlbnRQb3NpdGlvblNpbmNl
SW5kaXJlY3RBZGphY2VudFRyZWVXYWxrKTsKIAogICAgICAgICBuZWVkc0FkamFjZW50VGFpbCB8
PSByZXF1aXJlc0FkamFjZW50VGFpbChmcmFnbWVudCk7CiAgICAgICAgIG5lZWRzRGVzY2VuZGFu
dFRhaWwgfD0gcmVxdWlyZXNEZXNjZW5kYW50VGFpbChmcmFnbWVudCk7CkBAIC0xMzAzLDkgKzEy
ODUsNiBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6bGlua0ZhaWx1cmVzKEFzc2VtYmxl
cjo6SnVtcExpc3QmIGdsb2JhbEZhaWx1cmVDYXNlcwogICAgIGNhc2UgQmFja3RyYWNraW5nQWN0
aW9uOjpKdW1wVG9EaXJlY3RBZGphY2VudFRhaWw6CiAgICAgICAgIG1fYWRqYWNlbnRCYWNrdHJh
Y2tpbmdGYWlsdXJlQ2FzZXMuYXBwZW5kKGxvY2FsRmFpbHVyZUNhc2VzKTsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0NsZWFyQWRqYWNlbnRUYWls
OgotICAgICAgICBtX2NsZWFyQWRqYWNlbnRCYWNrdHJhY2tpbmdGYWlsdXJlQ2FzZXMuYXBwZW5k
KGxvY2FsRmFpbHVyZUNhc2VzKTsKLSAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC0xMzE3
LDkgKzEyOTYsNiBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2Vu
dEJhY2t0cmFja2luZ1RhaWwoKQogICAgIHVuc2lnbmVkIG9mZnNldFRvQWRqYWNlbnRCYWNrdHJh
Y2tpbmdTdGFydCA9IG1fc3RhY2tBbGxvY2F0b3Iub2Zmc2V0VG9TdGFja1JlZmVyZW5jZShtX2Fk
amFjZW50QmFja3RyYWNraW5nU3RhcnQpOwogICAgIG1fYXNzZW1ibGVyLmxvYWRQdHIoQXNzZW1i
bGVyOjpBZGRyZXNzKEFzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldFRvQWRq
YWNlbnRCYWNrdHJhY2tpbmdTdGFydCksIGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIpOwogICAgIG1f
YXNzZW1ibGVyLmp1bXAobV9pbmRpcmVjdEFkamFjZW50RW50cnlQb2ludCk7Ci0KLSAgICAvLyBU
b3RhbCBmYWlsdXJlIHRhaWwuCi0gICAgbV9jbGVhckFkamFjZW50QmFja3RyYWNraW5nRmFpbHVy
ZUNhc2VzLmxpbmsoJm1fYXNzZW1ibGVyKTsKIH0KIAogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0
b3I6OmdlbmVyYXRlRGVzY2VuZGFudEJhY2t0cmFja2luZ1RhaWwoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2ZDBlNjM2
MzQxZmE2MzdjNDU2MDc2ZWMzMDc3YTM2MmVjZTlhNWQuLjhiOWQ2YTI5N2IxNjRiYTI5NmE0ZGFj
ZTNjOWEzMzFmMmI0NGM0Y2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxNC0wNS0wMiAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBDU1MgSklUOiBv
cHRpbWl6ZSBkaXJlY3QgLyBpbmRpcmVjdCBhZGphY2VudCdzIHRyYXZlcnNhbCBiYWNrdHJhY2tp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjMx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNl
IGFkamFjZW50IGJhY2t0cmFja2luZyBzdGFjayByZWZlcmVuY2UgaXMgcHJlLWFsbG9jYXRlZAor
ICAgICAgICBpbiBwcm9sb2d1ZSBpbiBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8x
NjY4MzQsCisgICAgICAgIGNsZWFyaW5nIHN0YWNrIHBoYXNlIGlzIG5vdCBuZWVkZWQuIFNvIHdl
IGNhbiBkcm9wCisgICAgICAgIEp1bXBUb0NsZWFyQWRqYWNlbnRUYWlsIGZyb20gYmFja3RyYWNr
aW5nIGFjdGlvbiBhbmQgc2ltcGxpZnkKKyAgICAgICAgYmFja3RyYWNraW5nIGhhbmRsaW5nLgor
ICAgICAgICBBbmQgb3B0aW1pemUgZGlyZWN0IC8gaW5kaXJlY3QgYWRqYWNlbnQncyB0cmF2ZXJz
YWwgYmFja3RyYWNraW5nIGJ5CisgICAgICAgIHVzaW5nIGFwcHJvcHJpYXRlIGJhY2t0cmFja2lu
ZyBoZWlnaHQuCisKKyAgICAgICAgV2hlbiBzb2x2aW5nIGFkamFjZW50IHRyYXZlcnNhbCBiYWNr
dHJhY2tpbmcgYWN0aW9uLAorICAgICAgICAxKSBXaGVuIHRoZXJlJ3Mgbm8gZGVzY2VuZGFudCBy
ZWxhdGlvbiBvbiB0aGUgcmlnaHQsIHRyYXZlcnNhbAorICAgICAgICBmYWlsdXJlIGJlY29tZXMg
Z2xvYmFsIGZhaWx1cmUuCisgICAgICAgIDIpIFdoZW4gYHRhZ05hbWVNYXRjaGVkQmFja3RyYWNr
aW5nU3RhcnRIZWlnaHRGcm9tRGVzY2VuZGFudGAgPT0KKyAgICAgICAgYGhlaWdodEZyb21EZXNj
ZW5kYW50YCArIDEsIHRoZSBkZXNjZW5kYW50IGJhY2t0cmFja2luZyBzdGFydHMgd2l0aAorICAg
ICAgICB0aGUgcGFyZW50IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIFNvIHdlIGNhbiB1c2UgdGhl
IGN1cnJlbnQgZWxlbWVudAorICAgICAgICBhbmQgdGhlIGJhY2t0cmFja2luZyBhY3Rpb24gaXMg
SnVtcFRvRGVzY2VuZGFudFRyZWVXYWxrZXJFbnRyeVBvaW50LgorICAgICAgICAzKSBPdGhlcndp
c2UsIGN1cnJlbnRseSB3ZSB0YWtlIHRoZSBjb25zZXJ2YXRpdmUgYXBwcm9hY2gsCisgICAgICAg
IEp1bXBUb0Rlc2NlbmRhbnRUYWlsLgorCisgICAgICAgIE5PVEU6CisgICAgICAgIEFuZCBpZiBg
aGFzRGVzY2VuZGFudFJlbGF0aW9uT25UaGVSaWdodGAgaXMgdHJ1ZSBhbmQgdGhlcmUncyBubyBj
aGlsZAorICAgICAgICBmcmFnbWVudCBvbiB0aGUgcmlnaHQsIHRoZSBiYWNrdHJhY2tpbmcgZWxl
bWVudCByZWdpc3RlciBpcyBub3QKKyAgICAgICAgZWZmZWN0aXZlLiBTbyB3ZSBzaG91bGQgZW5z
dXJlIHRoYXQgZnJhZ21lbnQgZG9lc24ndCB1c2UgdGhlCisgICAgICAgIGJhY2t0cmFja2luZyBl
bGVtZW50IHJlZ2lzdGVyLiBTdWNoIGEgZnJhZ21lbnQgZnVsZmlsbHMgdGhlIGZvbGxvd2luZwor
ICAgICAgICBjb25kaXRpb25zLiAxLiB0YWdOYW1lTWF0Y2hlZEJhY2t0cmFja2luZ1N0YXJ0SGVp
Z2h0RnJvbURlc2NlbmRhbnQgaXMKKyAgICAgICAgYWx3YXlzIDEgKHRhZ05hbWVzLnNpemUoKSwg
dGhhdCBjb250YWlucyBvbmx5IGRlc2NlbmRhbnQgZnJhZ21lbnQpIDIuCisgICAgICAgIGhlaWdo
dEZyb21EZXNjZW5kYW50IGlzIGFsd2F5cyAwICgtLSBTZWUKKyAgICAgICAgY29tcHV0ZUJhY2t0
cmFja2luZ0hlaWdodEZyb21EZXNjZW5kYW50IGltcGxlbWVudGF0aW9uKSBUaGVyZWZvcmUgc3Vj
aAorICAgICAgICBhIGZyYWdtZW50J3MgYWN0aW9uIGFsd2F5cyBiZWNvbWVzCisgICAgICAgIEp1
bXBUb0Rlc2NlbmRhbnRUcmVlV2Fsa2VyRW50cnlQb2ludC4gU28gd2UgY2FuIGVuc3VyZSB0aGF0
IHRoZQorICAgICAgICBiYWNrdHJhY2tpbmcgZWxlbWVudCByZWdpc3RlciBpcyBub3QgdXNlZC4K
KworICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGphY2VudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2JhY2t0cmFja2luZy1hZGph
Y2VudC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0wMSAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJu
YW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBDbGFtcGluZyB0
aGUgbnVtYmVyIG9mIHJlcGV0aXRpb25zIGluIHJlcGVhdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tpbmctYWRqYWNlbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNraW5nLWFkamFjZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmZlYWJjYzQ3ZjA4NzQ1YzAzMWExN2ZiMGExMWJjZWNiODg3NGQx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNr
aW5nLWFkamFjZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUxIEBACitUaGUgYmFja3RyYWNr
aW5nIGZyb20gYWRqYWNlbnQgY29tYmluYXRvcnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0JhY2t0cmFja2luZyB3aXRob3V0IHRhaWwsIHN1Y2NlZWRlZCB3aXRob3V0IGJhY2t0
cmFja2luZworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQxIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorQmFja3RyYWNraW5n
IHdpdGhvdXQgdGFpbCB3aXRob3V0IGluZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3Rh
cnQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dDIiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitCYWNrdHJhY2tpbmcgd2l0
aG91dCB0YWlsLCAyIGRpcmVjdCBhZGphY2VudHMgd2l0aG91dCBpbmRpcmVjdCBhZGphY2VudCwg
ZmFpbGVkIGFuZCByZXN0YXJ0IGJhY2t0cmFja2luZy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MyIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
Yig0LCA1LCA2KSIKK0JhY2t0cmFja2luZyB3aXRob3V0IHRhaWwsIGluZGlyZWN0IGFkamFjZW50
LgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0
IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorQmFja3RyYWNraW5nIGZyb20g
ZGlyZWN0IGFkamFjZW50IHdpdGhvdXQgdGFpbC4gTWF0Y2hlcy4KK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Ni4xIikpLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDEwLCAxMSwgMTIpIgorQmFja3RyYWNraW5nIGZyb20gZGlyZWN0IGFkamFjZW50
IHRhZyBtYXRjaGluZyB3aXRob3V0IHRhaWwuIEZhaWxzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ2LjIiKSkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2IoMCwgMCwgMCkiCitCYWNrdHJhY2tpbmcgZnJvbSBkaXJlY3QgYWRqYWNlbnQgdHJhdmVy
c2FsIHdpdGhvdXQgdGFpbC4gRmFpbHMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldDYuMyIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAw
LCAwKSIKK0JhY2t0cmFja2luZyB3aXRob3V0IHRhaWwuIEFuZCBmYWlscy4KK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NyIpKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigwLCAwLCAwKSIKK0JhY2t0cmFja2luZyB3aXRob3V0IHRhaWwuIEFuZCBN
YXRjaGVzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQ4IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEzLCAxNCwgMTUpIgorQmFja3RyYWNr
aW5nIGZyb20gZGlyZWN0IGFkamFjZW50IHdpdGggdGFpbC4gQW5kIGZhaWxzLgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ5IikpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorQmFja3RyYWNraW5nIGZyb20gZGlyZWN0IGFkamFj
ZW50IHdpdGggdGFpbC4gQW5kIE1hdGNoZXMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEwIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDE2
LCAxNywgMTgpIgorQmFja3RyYWNraW5nIGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgd2l0aCB0YWls
LiBBbmQgZmFpbHMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldDExIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorQmFja3Ry
YWNraW5nIGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgd2l0aCB0YWlsLiBBbmQgTWF0Y2hlcy4KK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTIiKSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTksIDIwLCAyMSkiCitCYWNrdHJhY2tpbmcgZnJvbSBp
bmRpcmVjdCBhZGphY2VudCB3aXRob3V0IHRhaWwuIE1hdGNoZXMuCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEzLjEiKSkuYmFja2dyb3VuZENv
bG9yIGlzICJyZ2IoMjIsIDIzLCAyNCkiCitCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGph
Y2VudCB0YWcgbWF0Y2hpbmcgd2l0aG91dCB0YWlsLiBGYWlscy4KK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTMuMiIpKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigwLCAwLCAwKSIKK0JhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFkamFjZW50
IHRyYXZlcnNhbCB3aXRob3V0IHRhaWwuIEZhaWxzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMy4zIikpLmJhY2tncm91bmRDb2xvciBpcyAi
cmdiKDAsIDAsIDApIgorQmFja3RyYWNraW5nIGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgd2l0aG91
dCB0YWlsLiBNYXRjaGVzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQxNC4xIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1LCAyNiwgMjcp
IgorQmFja3RyYWNraW5nIGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgdGFnIG1hdGNoaW5nIHdpdGhv
dXQgdGFpbC4gRmFpbHMuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDE0LjIiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCitC
YWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB0cmF2ZXJzYWwgd2l0aG91dCB0YWls
LiBGYWlscy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0MTQuMyIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAwLCAwKSIKK0JhY2t0cmFj
a2luZyBmcm9tIGRpcmVjdCBhZGphY2VudCB3aXRoIHRhaWwuIEFuZCBmYWlscy4KK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTUiKSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCitCYWNrdHJhY2tpbmcgZnJvbSBkaXJlY3QgYWRq
YWNlbnQgd2l0aCB0YWlsLiBBbmQgTWF0Y2hlcy4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTYiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MjgsIDI5LCAzMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYmFja3RyYWNr
aW5nLWFkamFjZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9iYWNrdHJhY2tp
bmctYWRqYWNlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2ZlNGMwOTAxYzQ0OTZkYzI1ZDMxZjdjYjE3
NmVlYzBkOWUzM2QzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3Rv
cnMvYmFja3RyYWNraW5nLWFkamFjZW50Lmh0bWwKQEAgLTAsMCArMSwzOTAgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorc3Bhbi50YXJnZXQgeworICAgIGJhY2tn
cm91bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KK2EgKyBiIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigxLDIsMyk7Cit9CitjICsgYyArIGQgc3Bhbi50YXJnZXQgeworICAg
IGJhY2tncm91bmQtY29sb3I6cmdiKDQsNSw2KTsKK30KK2UgKyBmIH4gZyBzcGFuLnRhcmdldCB7
CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoNyw4LDkpOworfQoraCArIHNwYW4udGFyZ2V0IHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMCwxMSwxMik7Cit9CitqK2oran5qPmsgc3Bhbi50
YXJnZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDEzLDE0LDE1KTsKK30KK20gbCtsK2wr
bH5tPm0+bSBzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMTYsMTcsMTgp
OworfQorbiBvfm4+bj5uIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigx
OSwyMCwyMSk7Cit9CitwIH4gc3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdi
KDIyLDIzLDI0KTsKK30KK3EgfiByIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OnJnYigyNSwyNiwyNyk7Cit9CitzIHQrdCt0K3M+cz5zIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigyOCwyOSwzMCk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorICAgIDwhLS0gYSArIGIgc3Bhbi50YXJnZXQg
LS0+CisgICAgPHRhcmdldDE+CisgICAgICAgIDxhPjwvYT4KKyAgICAgICAgPGI+CisgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MSI+PC9zcGFuPgorICAgICAgICA8
L2I+CisgICAgPC90YXJnZXQxPgorCisgICAgPCEtLSBhICsgYiBzcGFuLnRhcmdldCAtLT4KKyAg
ICA8dGFyZ2V0Mj4KKyAgICAgICAgPGE+PC9hPgorICAgICAgICA8Yj4KKyAgICAgICAgICAgIDxi
PjwvYj4gIDwhLS0gRmFpbCBoZXJlIGFuZCByZXN0YXJ0IGJhY2t0cmFja2luZy4gLS0+CisgICAg
ICAgICAgICA8Yj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFy
Z2V0MiI+PC9zcGFuPgorICAgICAgICAgICAgPC9iPgorICAgICAgICA8L2I+CisgICAgPC90YXJn
ZXQyPgorCisgICAgPCEtLSBjICsgYyArIGQgc3Bhbi50YXJnZXQgLS0+CisgICAgPHRhcmdldDM+
CisgICAgICAgIDxjPjwvYz4KKyAgICAgICAgPGM+PC9jPgorICAgICAgICA8ZD4KKyAgICAgICAg
ICAgIDxjPjwvYz4KKyAgICAgICAgICAgIDxiPjwvYj4gIDwhLS0gRmFpbCBoZXJlIGFuZCByZXN0
YXJ0IGJhY2t0cmFja2luZyB3aXRoIHRoZSBwYXJlbnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4g
LS0+CisgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICA8Yj48L2I+ICA8IS0tIEZhaWwg
aGVyZSBhbmQgcmVzdGFydCBiYWNrdHJhY2tpbmcgd2l0aCB0aGUgcGFyZW50IG9mIHRoZSBjdXJy
ZW50IGVsZW1lbnQuIC0tPgorICAgICAgICAgICAgICAgIDxjPjwvYz4KKyAgICAgICAgICAgICAg
ICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdl
dDMiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8L2Q+CisgICAgICAgICAgICA8L2Q+CisgICAg
ICAgIDwvZD4KKyAgICA8L3RhcmdldDM+CisKKyAgICA8IS0tIGUgKyBmIH4gZyBzcGFuLnRhcmdl
dCAtLT4KKyAgICA8dGFyZ2V0ND4KKyAgICAgICAgPGQ+PC9kPgorICAgICAgICA8ZT48L2U+Cisg
ICAgICAgIDxmPjwvZj4KKyAgICAgICAgPGQ+PC9kPgorICAgICAgICA8ZD48L2Q+CisgICAgICAg
IDxnPgorICAgICAgICAgICAgPGQ+PC9kPiAgPCEtLSBGYWlsIGhlcmUgYW5kIHJlc3RhcnQgYmFj
a3RyYWNraW5nIGluZGlyZWN0IGFkamFjZW50IG1hdGNoaW5nLiAtLT4KKyAgICAgICAgICAgIDxm
PjwvZj4KKyAgICAgICAgICAgIDxnPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJn
ZXQiIGlkPSJ0YXJnZXQ0Ij48L3NwYW4+CisgICAgICAgICAgICA8L2c+CisgICAgICAgIDwvZz4K
KyAgICA8L3RhcmdldDQ+CisKKyAgICA8IS0tIGggKyBzcGFuLnRhcmdldCAtLT4KKyAgICA8dGFy
Z2V0Nj4KKyAgICAgICAgPGg+PC9oPgorICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0i
dGFyZ2V0Ni4xIj48L3NwYW4+CisgICAgPC90YXJnZXQ2PgorCisgICAgPCEtLSBoICsgc3Bhbi50
YXJnZXQgLS0+CisgICAgPHRhcmdldDY+CisgICAgICAgIDxhPjwvYT4KKyAgICAgICAgPHNwYW4g
Y2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDYuMiI+PC9zcGFuPgorICAgIDwvdGFyZ2V0Nj4KKwor
ICAgIDwhLS0gaCArIHNwYW4udGFyZ2V0IC0tPgorICAgIDx0YXJnZXQ2PgorICAgICAgICA8c3Bh
biBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ni4zIj48L3NwYW4+CisgICAgPC90YXJnZXQ2Pgor
CisgICAgPCEtLSBqK2oran5qPmsgc3Bhbi50YXJnZXQgLS0+CisgICAgPHRhcmdldDc+CisgICAg
ICAgIDxkPjwvZD4gIDwhLS0gRmFpbCBoZXJlLiAtLT4KKyAgICAgICAgPGo+PC9qPgorICAgICAg
ICA8aj48L2o+CisgICAgICAgIDxqPjwvaj4KKyAgICAgICAgPGs+CisgICAgICAgICAgICA8c3Bh
biBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0NyI+PC9zcGFuPgorICAgICAgICA8L2s+CisgICAg
PC90YXJnZXQ3PgorCisgICAgPCEtLSBqK2oran5qPmsgc3Bhbi50YXJnZXQgLS0+CisgICAgPHRh
cmdldDg+CisgICAgICAgIDxqPjwvaj4gIDwhLS0gTWF0Y2ggaGVyZS4gLS0+CisgICAgICAgIDxq
Pjwvaj4KKyAgICAgICAgPGo+PC9qPgorICAgICAgICA8aj48L2o+CisgICAgICAgIDxkPjwvZD4g
IDwhLS0gRmFpbCBoZXJlLiAtLT4KKyAgICAgICAgPGo+PC9qPgorICAgICAgICA8aj48L2o+Cisg
ICAgICAgIDxqPgorICAgICAgICAgICAgPGs+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
InRhcmdldCIgaWQ9InRhcmdldDgiPjwvc3Bhbj4KKyAgICAgICAgICAgIDwvaz4KKyAgICAgICAg
PC9qPgorICAgIDwvdGFyZ2V0OD4KKworICAgIDwhLS0gbSBsK2wrbCtsfm0+bT5tIHNwYW4udGFy
Z2V0IC0tPgorICAgIDx0YXJnZXQ5PgorICAgICAgICA8bT4KKyAgICAgICAgICAgIDxsPjwvbD4g
IDwhLS0gRmFpbCBoZXJlIC0tPgorICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgPGw+
PC9sPgorICAgICAgICAgICAgPG0+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWls
IGhlcmUgYW5kIGJhY2t0cmFjayB3aXRoIHRoZSB0YWlsIC0tPgorICAgICAgICAgICAgICAgIDxs
PjwvbD4KKyAgICAgICAgICAgICAgICA8bD48L2w+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAg
PCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAg
ICAgIDxtPgorICAgICAgICAgICAgICAgICAgICA8bT4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlk
PSJ0YXJnZXQ5Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L20+CisgICAgICAg
ICAgICAgICAgICAgIDwvbT4KKyAgICAgICAgICAgICAgICA8L20+CisgICAgICAgICAgICA8L20+
CisgICAgICAgIDwvbT4KKyAgICA8L3RhcmdldDk+CisKKyAgICA8IS0tIG0gbCtsK2wrbH5tPm0+
bSBzcGFuLnRhcmdldCAtLT4KKyAgICA8dGFyZ2V0MTA+CisgICAgICAgIDxtPgorICAgICAgICAg
ICAgPGw+PC9sPiAgPCEtLSBNYXRjaCBoZXJlIC0tPgorICAgICAgICAgICAgPGw+PC9sPgorICAg
ICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgPG0+Cisg
ICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgYW5kIGJhY2t0cmFjayB3aXRo
IHRoZSB0YWlsIC0tPgorICAgICAgICAgICAgICAgIDxsPjwvbD4KKyAgICAgICAgICAgICAgICA8
bD48L2w+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAg
ICAgICAgICAgICAgPGw+PC9sPgorICAgICAgICAgICAgICAgIDxtPgorICAgICAgICAgICAgICAg
ICAgICA8bT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxtPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxMCI+PC9zcGFuPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPC9tPgorICAgICAgICAgICAgICAgICAgICA8L20+CisgICAg
ICAgICAgICAgICAgPC9tPgorICAgICAgICAgICAgPC9tPgorICAgICAgICA8L20+CisgICAgPC90
YXJnZXQxMD4KKworICAgIDwhLS0gbiBvfm4+bj5uIHNwYW4udGFyZ2V0IC0tPgorICAgIDx0YXJn
ZXQxMT4KKyAgICAgICAgPG4+CisgICAgICAgICAgICA8YT48L2E+ICA8IS0tIEZhaWwgaGVyZSAt
LT4KKyAgICAgICAgICAgIDxuPgorICAgICAgICAgICAgICAgIDxhPjwvYT4gIDwhLS0gRmFpbCBo
ZXJlIGFuZCBiYWNrdHJhY2sgd2l0aCB0aGUgdGFpbCAtLT4KKyAgICAgICAgICAgICAgICA8YT48
L2E+ICA8IS0tIEZhaWwgaGVyZSAtLT4KKyAgICAgICAgICAgICAgICA8bj4KKyAgICAgICAgICAg
ICAgICAgICAgPG4+CisgICAgICAgICAgICAgICAgICAgICAgICA8bj4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTEiPjwvc3Bhbj4K
KyAgICAgICAgICAgICAgICAgICAgICAgIDwvbj4KKyAgICAgICAgICAgICAgICAgICAgPC9uPgor
ICAgICAgICAgICAgICAgIDwvbj4KKyAgICAgICAgICAgIDwvbj4KKyAgICAgICAgPC9uPgorICAg
IDwvdGFyZ2V0MTE+CisKKyAgICA8IS0tIG4gb35uPm4+biBzcGFuLnRhcmdldCAtLT4KKyAgICA8
dGFyZ2V0MTI+CisgICAgICAgIDxuPgorICAgICAgICAgICAgPG8+PC9vPiAgPCEtLSBNYXRjaCBo
ZXJlIC0tPgorICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAg
ICAgICA8bj4KKyAgICAgICAgICAgICAgICA8YT48L2E+ICA8IS0tIEZhaWwgaGVyZSBhbmQgYmFj
a3RyYWNrIHdpdGggdGhlIHRhaWwgLS0+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBG
YWlsIGhlcmUgLS0+CisgICAgICAgICAgICAgICAgPG4+CisgICAgICAgICAgICAgICAgICAgIDxu
PgorICAgICAgICAgICAgICAgICAgICAgICAgPG4+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDEyIj48L3NwYW4+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8L24+CisgICAgICAgICAgICAgICAgICAgIDwvbj4KKyAgICAgICAgICAg
ICAgICA8L24+CisgICAgICAgICAgICA8L24+CisgICAgICAgIDwvbj4KKyAgICA8L3RhcmdldDEy
PgorCisgICAgPCEtLSBwIH4gc3Bhbi50YXJnZXQgLS0+CisgICAgPHRhcmdldDEzPgorICAgICAg
ICA8cD48L3A+ICA8IS0tIE1hdGNoIGhlcmUgLS0+CisgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJn
ZXQiIGlkPSJ0YXJnZXQxMy4xIj48L3NwYW4+CisgICAgPC90YXJnZXQxMz4KKworICAgIDwhLS0g
cCB+IHNwYW4udGFyZ2V0IC0tPgorICAgIDx0YXJnZXQxMz4KKyAgICAgICAgPGE+PC9hPiAgPCEt
LSBGYWlsIGhlcmUgLS0+CisgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQx
My4yIj48L3NwYW4+CisgICAgPC90YXJnZXQxMz4KKworICAgIDwhLS0gcCB+IHNwYW4udGFyZ2V0
IC0tPgorICAgIDx0YXJnZXQxMz4KKyAgICAgICAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAg
IDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxMy4zIj48L3NwYW4+CisgICAgPC90YXJn
ZXQxMz4KKworICAgIDwhLS0gcSB+IHIgc3Bhbi50YXJnZXQgLS0+CisgICAgPHRhcmdldDE0Pgor
ICAgICAgICA8cT48L3E+ICA8IS0tIE1hdGNoIGhlcmUgLS0+CisgICAgICAgIDxhPjwvYT4KKyAg
ICAgICAgPHI+CisgICAgICAgICAgICA8YT48L2E+ICA8IS0tIEZhaWwgaGVyZSAtLT4KKyAgICAg
ICAgICAgIDxyPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJn
ZXQxNC4xIj48L3NwYW4+CisgICAgICAgICAgICA8L3I+CisgICAgICAgIDwvcj4KKyAgICA8L3Rh
cmdldDE0PgorCisgICAgPCEtLSBxIH4gciBzcGFuLnRhcmdldCAtLT4KKyAgICA8dGFyZ2V0MTQ+
CisgICAgICAgIDwhLS0gRmFpbCBoZXJlIC0tPgorICAgICAgICA8cj4KKyAgICAgICAgICAgIDxh
PjwvYT4gIDwhLS0gRmFpbCBoZXJlIC0tPgorICAgICAgICAgICAgPHI+CisgICAgICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDE0LjIiPjwvc3Bhbj4KKyAgICAgICAg
ICAgIDwvcj4KKyAgICAgICAgPC9yPgorICAgIDwvdGFyZ2V0MTQ+CisKKyAgICA8IS0tIHEgfiBy
IHNwYW4udGFyZ2V0IC0tPgorICAgIDx0YXJnZXQxND4KKyAgICAgICAgPCEtLSBGYWlsIGhlcmUg
LS0+CisgICAgICAgIDxyPgorICAgICAgICAgICAgPCEtLSBGYWlsIGhlcmUgLS0+CisgICAgICAg
ICAgICA8cj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0
MTQuMyI+PC9zcGFuPgorICAgICAgICAgICAgPC9yPgorICAgICAgICA8L3I+CisgICAgPC90YXJn
ZXQxND4KKworICAgIDwhLS0gcyB0K3QrdCtzPnM+cyBzcGFuLnRhcmdldCAtLT4KKyAgICA8dGFy
Z2V0MTU+CisgICAgICAgIDxzPgorICAgICAgICAgICAgPCEtLSBGYWlsIGhlcmUgYW5kIGJhY2t0
cmFjayB3aXRoIHRoZSB0YWlsIC0tPgorICAgICAgICAgICAgPHQ+PC90PgorICAgICAgICAgICAg
PHQ+PC90PgorICAgICAgICAgICAgPHM+CisgICAgICAgICAgICAgICAgPGE+PC9hPiAgPCEtLSBG
YWlsIGhlcmUgYW5kIGJhY2t0cmFjayB3aXRoIHRoZSB0YWlsIC0tPgorICAgICAgICAgICAgICAg
IDx0PjwvdD4KKyAgICAgICAgICAgICAgICA8dD48L3Q+CisgICAgICAgICAgICAgICAgPHM+Cisg
ICAgICAgICAgICAgICAgICAgIDxzPgorICAgICAgICAgICAgICAgICAgICAgICAgPHM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDE1
Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3M+CisgICAgICAgICAgICAgICAg
ICAgIDwvcz4KKyAgICAgICAgICAgICAgICA8L3M+CisgICAgICAgICAgICA8L3M+CisgICAgICAg
IDwvcz4KKyAgICA8L3RhcmdldDE1PgorCisgICAgPCEtLSBzIHQrdCt0K3M+cz5zIHNwYW4udGFy
Z2V0IC0tPgorICAgIDx0YXJnZXQxNj4KKyAgICAgICAgPHM+CisgICAgICAgICAgICA8dD48L3Q+
ICA8IS0tIE1hdGNoIGhlcmUgLS0+CisgICAgICAgICAgICA8dD48L3Q+CisgICAgICAgICAgICA8
dD48L3Q+CisgICAgICAgICAgICA8cz4KKyAgICAgICAgICAgICAgICA8IS0tIEZhaWwgaGVyZSBh
bmQgYmFja3RyYWNrIHdpdGggdGhlIHRhaWwgLS0+CisgICAgICAgICAgICAgICAgPHQ+PC90Pgor
ICAgICAgICAgICAgICAgIDx0PjwvdD4KKyAgICAgICAgICAgICAgICA8cz4KKyAgICAgICAgICAg
ICAgICAgICAgPGE+PC9hPiAgPCEtLSBGYWlsIGhlcmUgYW5kIGJhY2t0cmFjayB3aXRoIHRoZSB0
YWlsIC0tPgorICAgICAgICAgICAgICAgICAgICA8dD48L3Q+CisgICAgICAgICAgICAgICAgICAg
IDx0PjwvdD4KKyAgICAgICAgICAgICAgICAgICAgPHM+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDE2Ij48L3NwYW4+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zPgorICAgICAgICAgICAgICAgICAgICAg
ICAgPC9zPgorICAgICAgICAgICAgICAgICAgICA8L3M+CisgICAgICAgICAgICAgICAgPC9zPgor
ICAgICAgICAgICAgPC9zPgorICAgICAgICA8L3M+CisgICAgPC90YXJnZXQxNj4KKzwvZGl2Pgor
PC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGUgYmFja3RyYWNraW5nIGZyb20gYWRq
YWNlbnQgY29tYmluYXRvcnMnKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRob3V0IHRhaWws
IHN1Y2NlZWRlZCB3aXRob3V0IGJhY2t0cmFja2luZyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmJh
Y2tncm91bmRDb2xvcicsICdyZ2IoMSwgMiwgMyknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3
aXRob3V0IHRhaWwgd2l0aG91dCBpbmRpcmVjdCBhZGphY2VudCwgZmFpbGVkIGFuZCByZXN0YXJ0
LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMSwgMiwgMykn
KTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRob3V0IHRhaWwsIDIgZGlyZWN0IGFkamFjZW50
cyB3aXRob3V0IGluZGlyZWN0IGFkamFjZW50LCBmYWlsZWQgYW5kIHJlc3RhcnQgYmFja3RyYWNr
aW5nLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNCwgNSwg
NiknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyB3aXRob3V0IHRhaWwsIGluZGlyZWN0IGFkamFj
ZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNywgOCwg
OSknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyBmcm9tIGRpcmVjdCBhZGphY2VudCB3aXRob3V0
IHRhaWwuIE1hdGNoZXMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYuMSIpKS5iYWNrZ3JvdW5kQ29sb3In
LCAncmdiKDEwLCAxMSwgMTIpJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBkaXJlY3Qg
YWRqYWNlbnQgdGFnIG1hdGNoaW5nIHdpdGhvdXQgdGFpbC4gRmFpbHMuIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldDYuMiIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJC
YWNrdHJhY2tpbmcgZnJvbSBkaXJlY3QgYWRqYWNlbnQgdHJhdmVyc2FsIHdpdGhvdXQgdGFpbC4g
RmFpbHMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYuMyIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAs
IDAsIDApJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgd2l0aG91dCB0YWlsLiBBbmQgZmFpbHMu
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScp
OworCitkZWJ1ZygiQmFja3RyYWNraW5nIHdpdGhvdXQgdGFpbC4gQW5kIE1hdGNoZXMuIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDgiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxMywgMTQsIDE1KScpOwor
CitkZWJ1ZygiQmFja3RyYWNraW5nIGZyb20gZGlyZWN0IGFkamFjZW50IHdpdGggdGFpbC4gQW5k
IGZhaWxzLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ5IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwg
MCwgMCknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyBmcm9tIGRpcmVjdCBhZGphY2VudCB3aXRo
IHRhaWwuIEFuZCBNYXRjaGVzLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMCIpKS5iYWNrZ3JvdW5kQ29s
b3InLCAncmdiKDE2LCAxNywgMTgpJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBpbmRp
cmVjdCBhZGphY2VudCB3aXRoIHRhaWwuIEFuZCBmYWlscy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTEi
KSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiQmFja3RyYWNr
aW5nIGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgd2l0aCB0YWlsLiBBbmQgTWF0Y2hlcy4iKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0MTIiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxOSwgMjAsIDIxKScpOwor
CitkZWJ1ZygiQmFja3RyYWNraW5nIGZyb20gaW5kaXJlY3QgYWRqYWNlbnQgd2l0aG91dCB0YWls
LiBNYXRjaGVzLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMy4xIikpLmJhY2tncm91bmRDb2xvcicsICdy
Z2IoMjIsIDIzLCAyNCknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFk
amFjZW50IHRhZyBtYXRjaGluZyB3aXRob3V0IHRhaWwuIEZhaWxzLiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQxMy4yIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIkJh
Y2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFkamFjZW50IHRyYXZlcnNhbCB3aXRob3V0IHRhaWwu
IEZhaWxzLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMy4zIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2Io
MCwgMCwgMCknKTsKKworZGVidWcoIkJhY2t0cmFja2luZyBmcm9tIGluZGlyZWN0IGFkamFjZW50
IHdpdGhvdXQgdGFpbC4gTWF0Y2hlcy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTQuMSIpKS5iYWNrZ3Jv
dW5kQ29sb3InLCAncmdiKDI1LCAyNiwgMjcpJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJv
bSBpbmRpcmVjdCBhZGphY2VudCB0YWcgbWF0Y2hpbmcgd2l0aG91dCB0YWlsLiBGYWlscy4iKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0MTQuMiIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7
CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBpbmRpcmVjdCBhZGphY2VudCB0cmF2ZXJzYWwg
d2l0aG91dCB0YWlsLiBGYWlscy4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTQuMyIpKS5iYWNrZ3JvdW5k
Q29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJCYWNrdHJhY2tpbmcgZnJvbSBkaXJl
Y3QgYWRqYWNlbnQgd2l0aCB0YWlsLiBBbmQgZmFpbHMuIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDE1Iikp
LmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIkJhY2t0cmFja2lu
ZyBmcm9tIGRpcmVjdCBhZGphY2VudCB3aXRoIHRhaWwuIEFuZCBNYXRjaGVzLiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQxNiIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDI4LCAyOSwgMzApJyk7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="255078"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>