<?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>144686</bug_id>
          
          <creation_ts>2015-05-06 08:00:27 -0700</creation_ts>
          <short_desc>Purge PassRefPtr in WebCore/html - 3</short_desc>
          <delta_ts>2015-05-07 19:20:00 -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>New Bugs</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>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1092151</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-06 08:00:27 -0700</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092152</commentid>
    <comment_count>1</comment_count>
      <attachid>252473</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-06 08:01:17 -0700</bug_when>
    <thetext>Created attachment 252473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092176</commentid>
    <comment_count>2</comment_count>
      <attachid>252473</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-06 09:28:46 -0700</bug_when>
    <thetext>Comment on attachment 252473
Patch

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

&gt; Source/WebCore/html/TimeRanges.cpp:35
&gt; +Ref&lt;TimeRanges&gt; TimeRanges::create()

Oops, looks like this patch is missing TimeRanges.h.

&gt; Source/WebCore/html/track/VTTRegionList.h:43
&gt; +        return adoptRef(*new VTTRegionList());

I suggest we get rid of the unneeded () here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092439</commentid>
    <comment_count>3</comment_count>
      <attachid>252550</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-06 18:29:33 -0700</bug_when>
    <thetext>Created attachment 252550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092440</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-06 18:29:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 252473 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=252473&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/TimeRanges.cpp:35
&gt; &gt; +Ref&lt;TimeRanges&gt; TimeRanges::create()
&gt; 
&gt; Oops, looks like this patch is missing TimeRanges.h.
&gt; 
&gt; &gt; Source/WebCore/html/track/VTTRegionList.h:43
&gt; &gt; +        return adoptRef(*new VTTRegionList());
&gt; 
&gt; I suggest we get rid of the unneeded () here.

All done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092514</commentid>
    <comment_count>5</comment_count>
      <attachid>252571</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-06 22:48:56 -0700</bug_when>
    <thetext>Created attachment 252571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092539</commentid>
    <comment_count>6</comment_count>
      <attachid>252579</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-07 01:25:55 -0700</bug_when>
    <thetext>Created attachment 252579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092571</commentid>
    <comment_count>7</comment_count>
      <attachid>252587</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-07 05:33:41 -0700</bug_when>
    <thetext>Created attachment 252587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092604</commentid>
    <comment_count>8</comment_count>
      <attachid>252587</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-07 09:11:16 -0700</bug_when>
    <thetext>Comment on attachment 252587
Patch

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

r=me

&gt; Tools/TestWebKitAPI/Tests/WebCore/TimeRanges.cpp:55
&gt; -    ASSERT_RANGE(&quot;{ }&quot;, TimeRanges::create());
&gt; +    ASSERT_RANGE(&quot;{ }&quot;, TimeRanges::create().ptr());

This test is now asserting that a Ref is non-null, which is a bit funny, but fine.

&gt; Tools/TestWebKitAPI/Tests/WebCore/TimeRanges.cpp:60
&gt; -    ASSERT_RANGE(&quot;{ [1,2) }&quot;, TimeRanges::create(1, 2));
&gt; +    ASSERT_RANGE(&quot;{ [1,2) }&quot;, TimeRanges::create(1, 2).ptr());

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092957</commentid>
    <comment_count>9</comment_count>
      <attachid>252587</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-07 18:30:31 -0700</bug_when>
    <thetext>Comment on attachment 252587
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebCore/TimeRanges.cpp:55
&gt;&gt; +    ASSERT_RANGE(&quot;{ }&quot;, TimeRanges::create().ptr());
&gt; 
&gt; This test is now asserting that a Ref is non-null, which is a bit funny, but fine.

This seems to check if time range is correct, not nullptr or not. So it would be keep this for now.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebCore/TimeRanges.cpp:60
&gt;&gt; +    ASSERT_RANGE(&quot;{ [1,2) }&quot;, TimeRanges::create(1, 2).ptr());
&gt; 
&gt; Same here.

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092996</commentid>
    <comment_count>10</comment_count>
      <attachid>252587</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-07 19:19:55 -0700</bug_when>
    <thetext>Comment on attachment 252587
Patch

Clearing flags on attachment: 252587

Committed r183975: &lt;http://trac.webkit.org/changeset/183975&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092997</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-07 19:20:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252473</attachid>
            <date>2015-05-06 08:01:17 -0700</date>
            <delta_ts>2015-05-06 18:29:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144686-20150506235959.patch</filename>
            <type>text/plain</type>
            <size>27531</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZmZDNjZTI1MmZkYWZj
YTg4MjFhYThhYzhhNzA1ZGVlMGJlN2NhZS4uMDBjMDczMmE4YWRhODVmNWMwMGQzYjdjZGU1Yzc5
Y2EyNzI3YmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTA1LTA2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwgLSAzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFBhc3NSZWZQdHIgd2l0aCBSZWYgaW4gY3JlYXRl
KCkgZmFjdG9yeSBmdW5jdGlvbnMsIGJlY2F1c2UKKyAgICAgICAgaXQgZG9lc24ndCBoYXZlIHRv
IGNoYW5nZSB0byBiZSBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Ig
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRh
aWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lUmFuZ2VzOjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZU
VFRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAg
ICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpjcmVhdGUp
OgorCiAyMDE1LTA1LTA2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogRE9NU3RvcmFnZSBleGNlcHRpb24gYW5kIGlzc3VlIHdp
dGggc2Vzc2lvblN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1l
bnQuaAppbmRleCBkMWQzZDg3ZGIwYWUwN2ZlZDMzNjYxMjQzYjdhMzE1M2Q1NmM2ZmJmLi5jMTU2
YWQ2ZDNhMDRjYmI4MGViOWVkOTgwMWM4NTA2Zjk5ZjIyM2IzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oCkBAIC0zMyw5ICszMyw5IEBAIGNsYXNzIERPTUlt
cGxlbWVudGF0aW9uOwogICAgIAogY2xhc3MgRlRQRGlyZWN0b3J5RG9jdW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTERvY3VtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEZUUERpcmVj
dG9yeURvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKKyAgICBz
dGF0aWMgUmVmPEZUUERpcmVjdG9yeURvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25z
dCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRlRQRGlyZWN0
b3J5RG9jdW1lbnQoZnJhbWUsIHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
VFBEaXJlY3RvcnlEb2N1bWVudChmcmFtZSwgdXJsKSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGVkM2ZjZGUxYTEy
NmZiNGNhY2U0NDU4ZjE2ZGM0YjNmZGFmMWY3NDYuLjkzNzcxNWUzZDNlZGZlZWE5YTZiYTdhM2Ew
ZWYzOTlmZjU2MDg1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VtbWFy
eVF1ZXJ5U2VsZWN0b3IoKQogCiBjbGFzcyBEZXRhaWxzQ29udGVudEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSW5zZXJ0aW9uUG9pbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RGV0YWls
c0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPERldGFp
bHNDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgRGV0
YWlsc0NvbnRlbnRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTU4LDkgKzU4LDkgQEAg
cHJpdmF0ZToKICAgICB9CiB9OwogCi1SZWZQdHI8RGV0YWlsc0NvbnRlbnRFbGVtZW50PiBEZXRh
aWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RGV0YWls
c0NvbnRlbnRFbGVtZW50PiBEZXRhaWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXRhaWxzQ29udGVudEVsZW1l
bnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXRhaWxzQ29udGVudEVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogY2xhc3MgRGV0YWlsc1N1bW1hcnlFbGVtZW50IGZpbmFs
IDogcHVibGljIEluc2VydGlvblBvaW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHAKaW5kZXggYzk5Y2MwNDYwNjFjMDg0YjIxNGJjZThmN2I2OGY0NjU5MTg4ZDE1
Mi4uZTdkOTE0ODI1YzVlYjgxMTRkOWIyZWVhMWZkY2YwMzAyNmFhMGJhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAogY2xhc3MgS2V5Z2VuU2VsZWN0RWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MU2VsZWN0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxL
ZXlnZW5TZWxlY3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRp
YyBSZWY8S2V5Z2VuU2VsZWN0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgS2V5Z2VuU2VsZWN0RWxlbWVudChkb2N1
bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBLZXlnZW5TZWxlY3RFbGVtZW50
KGRvY3VtZW50KSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggMWM0Y2MzYjk2OTc0ZWMzMjg3MGI4MTIxODFkOTZk
NDE1ZWU0ZTIzNy4uOGI1YzE4NzEwMzE3Yjg3MTQ0NTAzMWI3ODE5ZDAyMDk0NGM0M2M4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtMzgsNyArMzgs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBjbGFzcyBTdW1tYXJ5Q29udGVudEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSW5zZXJ0aW9uUG9pbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPFN1bW1hcnlDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHBy
aXZhdGU6CiAgICAgU3VtbWFyeUNvbnRlbnRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKQEAg
LTQ3LDkgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1SZWZQdHI8U3VtbWFyeUNvbnRl
bnRFbGVtZW50PiBTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdW1t
YXJ5Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
dW1tYXJ5Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogUmVmPEhUTUxTdW1tYXJ5RWxl
bWVudD4gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lUmFuZ2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5jcHAKaW5k
ZXggY2FhOTc5N2FiNzI2MWU5MTFlZmE3ZWI4NjNlMzJkMzJiNGNkMWNlZi4uZTc0ZjkyZDdlMmE1
NmE4MjZlZDRlNzYxNGRhNjZjNTI3MTNhZjRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lUmFuZ2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMu
Y3BwCkBAIC0zMiwxOSArMzIsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IFRpbWVSYW5nZXM6OmNyZWF0ZSgpCitSZWY8VGltZVJhbmdlcz4gVGlt
ZVJhbmdlczo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRpbWVSYW5nZXMp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRpbWVSYW5nZXMpOwogfQogCi1QYXNzUmVmUHRy
PFRpbWVSYW5nZXM+IFRpbWVSYW5nZXM6OmNyZWF0ZShkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQp
CitSZWY8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKGRvdWJsZSBzdGFydCwgZG91Ymxl
IGVuZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRpbWVSYW5nZXMoc3RhcnQsIGVuZCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRpbWVSYW5nZXMoc3RhcnQsIGVuZCkpOwogfQog
Ci1QYXNzUmVmUHRyPFRpbWVSYW5nZXM+IFRpbWVSYW5nZXM6OmNyZWF0ZShjb25zdCBQbGF0Zm9y
bVRpbWVSYW5nZXMmIG90aGVyKQorUmVmPFRpbWVSYW5nZXM+IFRpbWVSYW5nZXM6OmNyZWF0ZShj
b25zdCBQbGF0Zm9ybVRpbWVSYW5nZXMmIG90aGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGltZVJhbmdlcyhvdGhlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRpbWVSYW5n
ZXMob3RoZXIpKTsKIH0KIAogVGltZVJhbmdlczo6VGltZVJhbmdlcygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA2ODE0YTUy
YjNkYjFhYjg1OTU4ZTgxZTM5YzU5NjJhMDIzMDFhNjUyLi40MmRlYmE4MGI1ZmZhOTRkMmZhOTNj
YThlODI4YTFlYzg3ZWE3N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTYxMCw5ICs2MTAsOSBAQCBpbmxpbmUgU2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6U2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTbGlkZXJDb250
YWluZXJFbGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2xpZGVyQ29udGFpbmVyRWxlbWVu
dChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlckNv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCmluZGV4IGRlODYzOTI1Y2RjZmIzNTliNDg5
MjNmODVkNDlhYTBjY2FjZGY2MTMuLjQ4ZWNkNTUyNmQwYjBhNTc4MTYwZjcyZDgyNjJiMmYxN2Jm
ZTZhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFRvdWNoRXZlbnQ7CiAKIGNsYXNzIFNsaWRl
clRodW1iRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2xpZGVyVGh1bWJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKKyAgICBzdGF0aWMgUmVmPFNsaWRlclRodW1iRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CiAKICAgICB2b2lkIHNldFBvc2l0aW9uRnJvbVZhbHVlKCk7CiAgICAgdm9pZCBkcmFnRnJvbShj
b25zdCBMYXlvdXRQb2ludCYpOwpAQCAtMTA3LDkgKzEwNyw5IEBAIHByaXZhdGU6CiAjZW5kaWYK
IH07CiAKLWlubGluZSBQYXNzUmVmUHRyPFNsaWRlclRodW1iRWxlbWVudD4gU2xpZGVyVGh1bWJF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoraW5saW5lIFJlZjxTbGlkZXJUaHVt
YkVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNsaWRlclRodW1iRWxlbWVudChkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNsaWRlclRodW1iRWxlbWVudChkb2N1bWVudCkp
OwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI3LDcgKzEy
Nyw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFNsaWRlckNvbnRhaW5lckVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNs
aWRlckNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IGNmNTA2YTg5N2M1Nzg4
MTcwNTg4YzJkNjQ0NzcwYjczZjM1MDU1NTkuLmMwMGI2MTkzNzIzODg1NDNhNzMwZTJmOTdmMDY1
MDQwYzQ5NTAwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5C
dXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0
dG9uRWxlbWVudC5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgaW5saW5lIFNwaW5CdXR0b25FbGVtZW50
OjpTcGluQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYK
ICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNzUmVmUHRyPFNw
aW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgU3BpbkJ1dHRvbk93bmVyJiBzcGluQnV0dG9uT3duZXIpCitSZWY8U3BpbkJ1dHRvbkVs
ZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBTcGlu
QnV0dG9uT3duZXImIHNwaW5CdXR0b25Pd25lcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNwaW5CdXR0b25FbGVtZW50KGRvY3VtZW50LCBzcGluQnV0dG9uT3duZXIpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTcGluQnV0dG9uRWxlbWVudChkb2N1bWVudCwgc3BpbkJ1dHRvbk93
bmVyKSk7CiB9CiAKIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgKaW5k
ZXggYWUxZWYxZWMwOTAxMGIxMTc1NzNhMTcxZTEzMjI2MzE4NjE3OTYxNS4uNzI5OTVmNjA1ZDZm
NTlkMjg3YWYxMjU4MTYwZjNhNTM3M2MwOWZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICAvLyBUaGUgb3duZXIgb2YgU3BpbkJ1dHRvbkVsZW1lbnQgbXVzdCBjYWxsIHJlbW92ZVNwaW5C
dXR0b25Pd25lcgogICAgIC8vIGJlY2F1c2UgU3BpbkJ1dHRvbkVsZW1lbnQgY2FuIGJlIG91dGxp
dmUgU3BpbkJ1dHRvbk93bmVyCiAgICAgLy8gaW1wbGVtZW50YXRpb24sIGUuZy4gZHVyaW5nIGV2
ZW50IGhhbmRsaW5nLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwaW5CdXR0b25FbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmLCBTcGluQnV0dG9uT3duZXImKTsKKyAgICBzdGF0aWMgUmVmPFNwaW5C
dXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBTcGluQnV0dG9uT3duZXImKTsKICAgICBV
cERvd25TdGF0ZSB1cERvd25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXBEb3duU3RhdGU7IH0K
ICAgICB2b2lkIHJlbGVhc2VDYXB0dXJlKCk7CiAgICAgdm9pZCByZW1vdmVTcGluQnV0dG9uT3du
ZXIoKSB7IG1fc3BpbkJ1dHRvbk93bmVyID0gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNTliZGYw
MWI4YWJlZDQ1ZGU1OWE3NmVkYzQ2MGM0MWY2OTY3OTA2YS4uMTFkYzlhMGM4ZDI0ZjE3ZGFkODhj
YjAzNmQyZGRlOWZlMDVmYzI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC01MSw5ICs1MSw5IEBAIFRl
eHRDb250cm9sSW5uZXJDb250YWluZXI6OlRleHRDb250cm9sSW5uZXJDb250YWluZXIoRG9jdW1l
bnQmIGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWlu
ZXI+IFRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5l
cjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFRleHRDb250cm9sSW5uZXJDb250YWluZXIoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7CiB9CiAgICAgCiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikKQEAgLTY3LDkgKzY3LDkgQEAgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRl
eHRDb250cm9sSW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzZXRIYXNDdXN0
b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29udHJvbElu
bmVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0Q29udHJvbElubmVyRWxlbWVudChkb2N1bWVudCkpOwogfQogCiBSZWZQdHI8
UmVuZGVyU3R5bGU+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRl
cmVyKFJlbmRlclN0eWxlJikKQEAgLTg2LDkgKzg2LDkgQEAgaW5saW5lIFRleHRDb250cm9sSW5u
ZXJUZXh0RWxlbWVudDo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KERvY3VtZW50JiBkb2N1
bWUKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJUZXh0
RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRDb250cm9s
SW5uZXJUZXh0RWxlbWVudChkb2N1bWVudCkpOwogfQogCiB2b2lkIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCkBAIC0xMzMsOSAr
MTMzLDkgQEAgaW5saW5lIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OlNlYXJjaEZp
ZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQKIHsKIH0KIAotUGFzc1JlZlB0cjxTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hGaWVsZFJl
c3VsdHNCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogfQogCiB2b2lkIFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
IGV2ZW50KQpAQCAtMTc2LDkgKzE3Niw5IEBAIGlubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYKICAgICBz
ZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ+IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaEZpZWxkQ2FuY2Vs
QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogfQogCiB2b2lkIFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCmlu
ZGV4IDY2NzRhOWVkZDg1YTc0ZTFjYWM3NTg1ZDllYTQwYjM3NzIzOTJhYTQuLmUyYTc2ZTQ3Zjgy
NGNlN2E1YmUzMDhjZTNlODQ4Y2NkZjZjNGYzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazsKIAogY2xhc3MgVGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lciBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gY3JlYXRl
KERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBj
cmVhdGUoRG9jdW1lbnQmKTsKIHByb3RlY3RlZDoKICAgICBUZXh0Q29udHJvbElubmVyQ29udGFp
bmVyKERvY3VtZW50Jik7CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CkBAIC00NCw3ICs0NCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3Mg
VGV4dENvbnRyb2xJbm5lckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFRleHRDb250cm9sSW5uZXJFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJF
bGVtZW50KERvY3VtZW50Jik7CkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogCkBAIC03Miw3ICs3Miw3IEBAIHByaXZh
dGU6CiAKIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRl
OwogI2lmICFQTEFURk9STShJT1MpCkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAKIGNsYXNz
IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxC
dXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1NlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKaW5kZXggMWYwOWQ2NDNiYjM3M2VmMDg3OTYz
ZmI5ZjA5YTZmMTA0MTE1M2M2MC4uNjk1ZmFmZDQ2ZWQ0ZGI2MDQwMTFjNTU0YmExNjkyZGZhMGZm
MzE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVk
U2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHVi
ZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKQEAgLTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QYXNzUmVmUHRyPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVF
bWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jKQorUmVmPFlvdVR1YmVFbWJl
ZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudChkb2MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50KGRvYykpOwogfQogCiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1i
ZWRTaGFkb3dFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCmluZGV4IDU5NGMwZjJlOWZiMGZj
ZDFlZjQ5MDg1ODU1NjhiNTJkY2Y5NDQxZTEuLjk1YzAzMDI2ZTkwZDVlMWIyMThhYjE5MWYxNzhj
ZjA0MzU3MGYzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
RGF0YVRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmNwcApAQCAtMzgsOSArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NSZWZQdHI8SW5iYW5kRGF0YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCog
Y2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUp
CitSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQ
YXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
cGxheWVyUHJpdmF0ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0
VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKIEluYmFuZERhdGFU
ZXh0VHJhY2s6OkluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gdHJhY2tQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZERhdGFUZXh0VHJhY2suaAppbmRleCA0NWI5YzY0Njk3YTFhYjUxMzk0MTE1MjFjOWZlNjBi
ZGM2ZGRlYjViLi5lOTVlNzZjMGY1ZmI2YzI0YmJjODFkNDkyZDFmYjFhZjY0ODI2YTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAt
NDQsNyArNDQsNyBAQCBjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbjsKIAog
Y2xhc3MgSW5iYW5kRGF0YVRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2sg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZERhdGFUZXh0VHJhY2s+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmREYXRhVGV4
dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCos
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOwogICAgIHZpcnR1YWwgfkluYmFu
ZERhdGFUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCmluZGV4IDYyNDk5OWM3MWZmNzU1
YmU4NjJhMzIwNWIyNTdhMjI1NmFkMmQ4MjguLmI5ZmQ2ZTgyODQwMzJjZWQyYTYwZGI1ZjMwZGYx
YjFlNDdlMTQ3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
R2VuZXJpY1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRHZW5lcmljVGV4dFRyYWNrLmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lkIEdlbmVyaWNUZXh0
VHJhY2tDdWVNYXA6OnJlbW92ZShUZXh0VHJhY2tDdWUqIGN1ZSkKICAgICB9CiB9CiAKLVBhc3NS
ZWZQdHI8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xp
ZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitS
ZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50
LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNs
aWVudCwgcGxheWVyUHJpdmF0ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdl
bmVyaWNUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAppbmRleCBkNzlhODViMjlm
NmViMDJkYTczNjE2N2Q0NmU3Y2ZlYzI5OTdhZmJjLi4yNzRiNGJhY2JhNTk3MTRlNDIxZDJlZjI3
YjA0ZDQwOTEyZDFjYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZEdlbmVyaWNUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZEdlbmVyaWNUZXh0VHJhY2suaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogCiBjbGFz
cyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjaywg
cHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7
CisgICAgc3RhdGljIFJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4pOwogICAgIHZpcnR1YWwgfkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRU
VGV4dFRyYWNrLmNwcAppbmRleCBjYWY3Nzg3NzlhOGViZmI4MjBiMmY0MGU3ZjM0MGM2Y2E5NzZm
NTQxLi5kNjExNWQ5YzI1OGQ3MGRjNDdlNWE1ZjllZWYzODU0NDVmYjI2NGEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCkBA
IC00MCw5ICs0MCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJh
bmRUZXh0VHJhY2s+IEluYmFuZFdlYlZUVFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitSZWY8SW5iYW5kVGV4dFRyYWNr
PiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPiBwbGF5ZXJQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5i
YW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJpdmF0ZSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGll
bnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJbmJhbmRX
ZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNr
Q2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQ
cml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4
dFRyYWNrLmgKaW5kZXggMGJkOGJjZTg4M2E4Y2ViNjVjZTVmMTY5ZmNiZTVjYzZhMzExNzk5Yi4u
YWJmZDQyZTQzZDdlMmYxYjg3YTU0YTMwZDVjZTZjODUwNDc5OTJkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCkBAIC0zNyw3ICsz
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNr
IGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGll
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFj
az4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNz
UmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKICAgICB2aXJ0dWFsIH5JbmJhbmRXZWJW
VFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
TG9hZGFibGVUZXh0VHJhY2suaAppbmRleCAxN2M2N2RmYzNhZmI5MzU1MmRiM2FkMjY3NjU3ZDZl
NmVlNDc1YWM5Li44ZTM0N2MyM2JiZDdhY2M1Y2ZmOTZhMzdlOTFmMDY1OTNkNDZjMjU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC00MCw5
ICs0MCw5IEBAIGNsYXNzIExvYWRhYmxlVGV4dFRyYWNrOwogCiBjbGFzcyBMb2FkYWJsZVRleHRU
cmFjayBmaW5hbCA6IHB1YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgVGV4dFRyYWNrTG9hZGVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4g
Y3JlYXRlKEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCisgICAgc3RhdGljIFJlZjxM
b2FkYWJsZVRleHRUcmFjaz4gY3JlYXRlKEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrLCBjb25zdCBT
dHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2Up
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IExvYWRhYmxlVGV4dFRyYWNrKHRy
YWNrLCBraW5kLCBsYWJlbCwgbGFuZ3VhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTG9hZGFibGVUZXh0VHJhY2sodHJhY2ssIGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkpOwogICAg
IH0KICAgICB2aXJ0dWFsIH5Mb2FkYWJsZVRleHRUcmFjaygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaAppbmRleCA0MDM5NzI1Mjg0NTVkMGU1MWM3NjYwMmJiODQ3MzY2MmQ2
ODg4YTNkLi41MjJlNTc0MzYxZGJjY2JmZWEyZjc3MzQxYzRlMzM4ZjEyNWE0YjBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTY3LDkgKzY3LDkgQEAgY2xhc3MgVGV4
dFRyYWNrIDogcHVibGljIFRyYWNrQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEKICNlbmRpZgogICAgIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJh
Y2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGll
bnQqIGNsaWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcm
IGlkLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlKQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmlu
ZyYga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJl
bCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwga2luZCwgaWQsIGxhYmVsLCBs
YW5ndWFnZSwgQWRkVHJhY2spKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRy
YWNrKGNvbnRleHQsIGNsaWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJhY2sp
KTsKICAgICB9CiAgICAgdmlydHVhbCB+VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCmluZGV4IDllODlhZGI4MGY0
MWY1MjIwOGMyNTU0ZWFiMWNlNTViMmUwYWQxNGQuLjFjMmQ3NjY5OTliZGE4NWU2ZjMzODk4NTYz
ZGI5ODU2OGQ1MjU4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWVHZW5lcmljLmNwcApAQCAtNDksOSArNDksOSBAQCBjb25zdCBzdGF0aWMgaW50IERF
RkFVTFRDQVBUSU9ORk9OVFNJWkUgPSAxMDsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpY0Jv
eEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgVlRUQ3VlQm94IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgVGV4dFRyYWNrQ3VlR2VuZXJpYyYgY3VlKQorICAgIHN0YXRpYyBSZWY8VGV4
dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFRl
eHRUcmFja0N1ZUdlbmVyaWMmIGN1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQoZG9jdW1lbnQsIGN1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudChkb2N1
bWVudCwgY3VlKSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhcHBseUNTU1Byb3Bl
cnRpZXMoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaAppbmRleCAwZGI4YTQwZDFhNzJlNWZiM2EyMGQw
YTY0ZTFmOWRmZTFkN2FmZDJkLi4zMzRjNDdlNDczNmRlMjZlMDI2YjhkN2RkNjIzOWE5ODcxNzAz
YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdl
bmVyaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVy
aWMuaApAQCAtMzgsOSArMzgsOSBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIC8vIEEgImdlbmVy
aWMiIGN1ZSBpcyBhIG5vbi1XZWJWVFQgY3VlLCBzbyBpdCBpcyBub3QgcG9zaXRpb25lZC9zaXpl
ZCB3aXRoIHRoZSBXZWJWVFQgbG9naWMuCiBjbGFzcyBUZXh0VHJhY2tDdWVHZW5lcmljIGZpbmFs
IDogcHVibGljIFZUVEN1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFRy
YWNrQ3VlR2VuZXJpYz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnQpCisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRyYWNrQ3VlR2VuZXJpYyhjb250ZXh0LCBzdGFydCwg
ZW5kLCBjb250ZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1
ZUdlbmVyaWMoY29udGV4dCwgc3RhcnQsIGVuZCwgY29udGVudCkpOwogICAgIH0KICAgICAKICAg
ICB2aXJ0dWFsIH5UZXh0VHJhY2tDdWVHZW5lcmljKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrTGlzdC5oCmluZGV4IDU2MmFkMTI4Yzg4ZjdlOTZlYmQyNzU1N2E3M2Yy
N2RjOWRlMTRkMTAuLjZhYTAwZTAzNWQ5MDVjNDc4NDY1ODEyZjA5YjFmYjc5MzQwM2IzZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCkBAIC0zNiw5ICszNiw5
IEBAIGNsYXNzIFRleHRUcmFjazsKIAogY2xhc3MgVGV4dFRyYWNrTGlzdCBmaW5hbCA6IHB1Ymxp
YyBUcmFja0xpc3RCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJh
Y2tMaXN0PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMgUmVmPFRleHRUcmFja0xpc3Q+IGNyZWF0ZShI
VE1MTWVkaWFFbGVtZW50KiBlbGVtZW50LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2tMaXN0KGVsZW1l
bnQsIGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrTGlz
dChlbGVtZW50LCBjb250ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgflRleHRUcmFja0xpc3Qo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAppbmRleCA4ZDdk
ZmUzMDhhNTU3YjMzNWE3NjJjNmU5MzI3OTYxMWZkMzAzOGU2Li4yNGZhMTI3OThiMzRkNWIzN2Y0
NTkzNGNjMzIzN2U4NWMxNTdiMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbkxpc3QuaApAQCAtMzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFZUVFJlZ2lvbkxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxWVFRSZWdpb25MaXN0PiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKKyAgICBz
dGF0aWMgUmVmPFZUVFJlZ2lvbkxpc3Q+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFZUVFJlZ2lvbkxpc3QoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFZUVFJlZ2lvbkxpc3QoKSk7CiAgICAgfQogCiAgICAgflZUVFJlZ2lvbkxpc3QoKSB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252550</attachid>
            <date>2015-05-06 18:29:33 -0700</date>
            <delta_ts>2015-05-06 22:46:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144686-20150507102817.patch</filename>
            <type>text/plain</type>
            <size>29576</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUwMzQ3ZDNlMzY5YjU3
OWE4MDdjYTkyZmYyYTg1OTk5ODc2OTIyNC4uZjExYjAwYWIxMDEzNzgzZTVkZGY4NDhlZGQ4ZGRm
ODkyYjU1ZDVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTA1LTA2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwgLSAzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFBhc3NSZWZQdHIgd2l0aCBSZWYgaW4gY3JlYXRl
KCkgZmFjdG9yeSBmdW5jdGlvbnMsIGJlY2F1c2UKKyAgICAgICAgaXQgZG9lc24ndCBoYXZlIHRv
IGNoYW5nZSB0byBiZSBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Ig
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRh
aWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lUmFuZ2VzOjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZU
VFRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAg
ICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpjcmVhdGUp
OgorCiAyMDE1LTA1LTA2ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBD
b3JlVGV4dFNQSS5oIHVzZXMgd3JvbmcgdmVyc2lvbiBudW1iZXIgdG8gZGVub3RlIFlvc2VtaXRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmgKaW5kZXggZDFkM2Q4
N2RiMGFlMDdmZWQzMzY2MTI0M2I3YTMxNTNkNTZjNmZiZi4uYzE1NmFkNmQzYTA0Y2JiODBlYjll
ZDk4MDFjODUwNmY5OWYyMjNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBE
aXJlY3RvcnlEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuaApAQCAtMzMsOSArMzMsOSBAQCBjbGFzcyBET01JbXBsZW1lbnRhdGlvbjsKICAg
ICAKIGNsYXNzIEZUUERpcmVjdG9yeURvY3VtZW50IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxGVFBEaXJlY3RvcnlEb2N1bWVudD4gY3Jl
YXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxGVFBEaXJl
Y3RvcnlEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZUUERpcmVjdG9yeURvY3VtZW50KGZyYW1l
LCB1cmwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRlRQRGlyZWN0b3J5RG9jdW1l
bnQoZnJhbWUsIHVybCkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCBlZDNmY2RlMWExMjZmYjRjYWNlNDQ1OGYxNmRj
NGIzZmRhZjFmNzQ2Li45Mzc3MTVlM2QzZWRmZWVhOWE2YmE3YTNhMGVmMzk5ZmY1NjA4NWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC00Miw3ICs0
Miw3IEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnlRdWVyeVNlbGVjdG9yKCkK
IAogY2xhc3MgRGV0YWlsc0NvbnRlbnRFbGVtZW50IGZpbmFsIDogcHVibGljIEluc2VydGlvblBv
aW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIERldGFpbHNDb250ZW50RWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgfQog
fTsKIAotUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gRGV0YWlsc0NvbnRlbnRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPERldGFpbHNDb250ZW50RWxlbWVudD4g
RGV0YWlsc0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRGV0YWlsc0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGV0YWlsc0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KSk7
CiB9CiAKIGNsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRp
b25Qb2ludCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4
IGM5OWNjMDQ2MDYxYzA4NGIyMTRiY2U4ZjdiNjhmNDY1OTE4OGQxNTIuLmU3ZDkxNDgyNWM1ZWI4
MTE0ZDliMmVlYTFmZGNmMDMwMjZhYTBiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKIGNsYXNzIEtleWdlblNlbGVjdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTFNlbGVj
dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8S2V5Z2VuU2VsZWN0RWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPEtleWdlblNlbGVj
dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEtleWdlblNlbGVjdEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgS2V5Z2VuU2VsZWN0RWxlbWVudChkb2N1bWVudCkpOwogICAg
IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3Vt
bWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
Y3BwCmluZGV4IDFjNGNjM2I5Njk3NGVjMzI4NzBiODEyMTgxZDk2ZDQxNWVlNGUyMzcuLjhiNWMx
ODcxMDMxN2I4NzE0NDUwMzFiNzgxOWQwMjA5NDRjNDNjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogY2xhc3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50IGZpbmFsIDogcHVi
bGljIEluc2VydGlvblBvaW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPFN1bW1hcnlD
b250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTdW1tYXJ5
Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFN1bW1h
cnlDb250ZW50RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC00Nyw5ICs0Nyw5IEBAIHBy
aXZhdGU6CiAgICAgfQogfTsKIAotUmVmUHRyPFN1bW1hcnlDb250ZW50RWxlbWVudD4gU3VtbWFy
eUNvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFN1bW1hcnlD
b250ZW50RWxlbWVudD4gU3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3VtbWFyeUNvbnRlbnRFbGVtZW50
KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3VtbWFyeUNvbnRlbnRFbGVt
ZW50KGRvY3VtZW50KSk7CiB9CiAKIFJlZjxIVE1MU3VtbWFyeUVsZW1lbnQ+IEhUTUxTdW1tYXJ5
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwCmluZGV4IGNhYTk3OTdhYjcyNjFl
OTExZWZhN2ViODYzZTMyZDMyYjRjZDFjZWYuLmU3NGY5MmQ3ZTJhNTZhODI2ZWQ0ZTc2MTRkYTY2
YzUyNzEzYWY0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmNwcApAQCAtMzIsMTkgKzMy
LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBU
aW1lUmFuZ2VzOjpjcmVhdGUoKQorUmVmPFRpbWVSYW5nZXM+IFRpbWVSYW5nZXM6OmNyZWF0ZSgp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaW1lUmFuZ2VzKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUaW1lUmFuZ2VzKTsKIH0KIAotUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBUaW1l
UmFuZ2VzOjpjcmVhdGUoZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kKQorUmVmPFRpbWVSYW5nZXM+
IFRpbWVSYW5nZXM6OmNyZWF0ZShkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUaW1lUmFuZ2VzKHN0YXJ0LCBlbmQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUaW1lUmFuZ2VzKHN0YXJ0LCBlbmQpKTsKIH0KIAotUGFzc1JlZlB0cjxUaW1l
UmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoY29uc3QgUGxhdGZvcm1UaW1lUmFuZ2VzJiBvdGhl
cikKK1JlZjxUaW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoY29uc3QgUGxhdGZvcm1UaW1l
UmFuZ2VzJiBvdGhlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRpbWVSYW5nZXMob3Ro
ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaW1lUmFuZ2VzKG90aGVyKSk7CiB9CiAK
IFRpbWVSYW5nZXM6OlRpbWVSYW5nZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lUmFuZ2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuaAppbmRleCAz
ZGI2MTQ1OGYzMDg1YjQ4MTkxODk4OTdmZjY1NGU4YWMwZTMyMmEyLi4yMGIyZWRmNjRmYTU5NDcx
NDVlYjY5ZWVmMjZlNWRhOGM5M2M5NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVSYW5nZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuaApAQCAt
MzgsOSArMzgsOSBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBUaW1lUmFu
Z2VzIDogcHVibGljIFJlZkNvdW50ZWQ8VGltZVJhbmdlcz4gewogcHVibGljOgotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGNyZWF0ZSgpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGNyZWF0ZShkb3VibGUg
c3RhcnQsIGRvdWJsZSBlbmQpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGNy
ZWF0ZShjb25zdCBQbGF0Zm9ybVRpbWVSYW5nZXMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPFRpbWVSYW5nZXM+IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8VGltZVJhbmdlcz4gY3JlYXRlKGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCk7CisgICAgc3Rh
dGljIFJlZjxUaW1lUmFuZ2VzPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1UaW1lUmFuZ2VzJik7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgc3RhcnQodW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZW5kKHVuc2lnbmVkIGlu
ZGV4LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA2ODE0YTUyYjNkYjFhYjg1OTU4ZTgx
ZTM5YzU5NjJhMDIzMDFhNjUyLi40MmRlYmE4MGI1ZmZhOTRkMmZhOTNjYThlODI4YTFlYzg3ZWE3
N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAKQEAgLTYxMCw5ICs2MTAsOSBAQCBpbmxpbmUgU2xpZGVyQ29udGFpbmVyRWxlbWVu
dDo6U2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTbGlkZXJDb250YWluZXJFbGVtZW50PiBT
bGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2xpZGVyQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNsaWRlckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IGRlODYzOTI1Y2RjZmIzNTliNDg5MjNmODVkNDlhYTBjY2Fj
ZGY2MTMuLjQ4ZWNkNTUyNmQwYjBhNTc4MTYwZjcyZDgyNjJiMmYxN2JmZTZhYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIGNsYXNzIFRvdWNoRXZlbnQ7CiAKIGNsYXNzIFNsaWRlclRodW1iRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2xpZGVyVGh1bWJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMg
UmVmPFNsaWRlclRodW1iRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2b2lkIHNl
dFBvc2l0aW9uRnJvbVZhbHVlKCk7CiAgICAgdm9pZCBkcmFnRnJvbShjb25zdCBMYXlvdXRQb2lu
dCYpOwpAQCAtMTA3LDkgKzEwNyw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLWlubGluZSBQ
YXNzUmVmUHRyPFNsaWRlclRodW1iRWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQoraW5saW5lIFJlZjxTbGlkZXJUaHVtYkVsZW1lbnQ+IFNsaWRl
clRodW1iRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNsaWRlclRodW1iRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNsaWRlclRodW1iRWxlbWVudChkb2N1bWVudCkpOwogfQogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6
CiAKIGNsYXNzIFNsaWRlckNvbnRhaW5lckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U2xpZGVyQ29udGFpbmVy
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU2xpZGVyQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IGNmNTA2YTg5N2M1Nzg4MTcwNTg4YzJkNjQ0Nzcw
YjczZjM1MDU1NTkuLmMwMGI2MTkzNzIzODg1NDNhNzMwZTJmOTdmMDY1MDQwYzQ5NTAwODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAK
QEAgLTU1LDkgKzU1LDkgQEAgaW5saW5lIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYKICAgICBzZXRQc2V1ZG8o
QXRvbWljU3RyaW5nKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1QYXNzUmVmUHRyPFNwaW5CdXR0b25FbGVtZW50
PiBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgU3BpbkJ1dHRv
bk93bmVyJiBzcGluQnV0dG9uT3duZXIpCitSZWY8U3BpbkJ1dHRvbkVsZW1lbnQ+IFNwaW5CdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBTcGluQnV0dG9uT3duZXImIHNw
aW5CdXR0b25Pd25lcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwaW5CdXR0b25FbGVt
ZW50KGRvY3VtZW50LCBzcGluQnV0dG9uT3duZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTcGluQnV0dG9uRWxlbWVudChkb2N1bWVudCwgc3BpbkJ1dHRvbk93bmVyKSk7CiB9CiAKIHZv
aWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgKaW5kZXggYWUxZWYxZWMwOTAx
MGIxMTc1NzNhMTcxZTEzMjI2MzE4NjE3OTYxNS4uNzI5OTVmNjA1ZDZmNTlkMjg3YWYxMjU4MTYw
ZjNhNTM3M2MwOWZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3Bp
bkJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0
dG9uRWxlbWVudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgb3duZXIg
b2YgU3BpbkJ1dHRvbkVsZW1lbnQgbXVzdCBjYWxsIHJlbW92ZVNwaW5CdXR0b25Pd25lcgogICAg
IC8vIGJlY2F1c2UgU3BpbkJ1dHRvbkVsZW1lbnQgY2FuIGJlIG91dGxpdmUgU3BpbkJ1dHRvbk93
bmVyCiAgICAgLy8gaW1wbGVtZW50YXRpb24sIGUuZy4gZHVyaW5nIGV2ZW50IGhhbmRsaW5nLgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwaW5CdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
LCBTcGluQnV0dG9uT3duZXImKTsKKyAgICBzdGF0aWMgUmVmPFNwaW5CdXR0b25FbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmLCBTcGluQnV0dG9uT3duZXImKTsKICAgICBVcERvd25TdGF0ZSB1cERv
d25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXBEb3duU3RhdGU7IH0KICAgICB2b2lkIHJlbGVh
c2VDYXB0dXJlKCk7CiAgICAgdm9pZCByZW1vdmVTcGluQnV0dG9uT3duZXIoKSB7IG1fc3BpbkJ1
dHRvbk93bmVyID0gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNTliZGYwMWI4YWJlZDQ1ZGU1OWE3
NmVkYzQ2MGM0MWY2OTY3OTA2YS4uMTFkYzlhMGM4ZDI0ZjE3ZGFkODhjYjAzNmQyZGRlOWZlMDVm
YzI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC01MSw5ICs1MSw5IEBAIFRleHRDb250cm9sSW5uZXJD
b250YWluZXI6OlRleHRDb250cm9sSW5uZXJDb250YWluZXIoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogfQogCi1QYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IFRleHRDb250cm9s
SW5uZXJDb250YWluZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8VGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lcj4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5u
ZXJDb250YWluZXIoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q29u
dHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7CiB9CiAgICAgCiBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKQEAg
LTY3LDkgKzY3LDkgQEAgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJF
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVD
YWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyRWxlbWVudD4gVGV4
dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8VGV4
dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q29u
dHJvbElubmVyRWxlbWVudChkb2N1bWVudCkpOwogfQogCiBSZWZQdHI8UmVuZGVyU3R5bGU+IFRl
eHRDb250cm9sSW5uZXJFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKFJlbmRlclN0eWxl
JikKQEAgLTg2LDkgKzg2LDkgQEAgaW5saW5lIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6
VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KERvY3VtZW50JiBkb2N1bWUKICAgICBzZXRIYXND
dXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29udHJv
bElubmVyVGV4dEVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChkb2N1bWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dChkb2N1bWVudCkpOwogfQogCiB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCkBAIC0xMzMsOSArMTMzLDkgQEAgaW5saW5l
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkUmVzdWx0c0J1dHRv
bkVsZW1lbnQoRG9jdW1lbnQKIHsKIH0KIAotUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VhcmNoRmllbGRSZXN1
bHRzQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogfQogCiB2b2lkIFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQpAQCAtMTc2
LDkgKzE3Niw5IEBAIGlubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYKICAgICBzZXRIYXNDdXN0b21TdHls
ZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlYXJjaEZpZWxkQ2FuY2VsQnV0
dG9uRWxlbWVudChkb2N1bWVudCkpOwogfQogCiB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9u
RWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCmluZGV4IDY2NzRhOWVkZDg1
YTc0ZTFjYWM3NTg1ZDllYTQwYjM3NzIzOTJhYTQuLmUyYTc2ZTQ3ZjgyNGNlN2E1YmUzMDhjZTNl
ODQ4Y2NkZjZjNGYzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIFJlbmRl
clRleHRDb250cm9sSW5uZXJCbG9jazsKIAogY2xhc3MgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5l
ciBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7Cisg
ICAgc3RhdGljIFJlZjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBjcmVhdGUoRG9jdW1lbnQm
KTsKIHByb3RlY3RlZDoKICAgICBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKERvY3VtZW50Jik7
CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CkBAIC00NCw3ICs0NCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKKyAgICBzdGF0aWMgUmVmPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKIAogcHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3VtZW50
Jik7CkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopIG92ZXJyaWRlOwogCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogI2lmICFQTEFURk9S
TShJT1MpCkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9u
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRv
d0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hh
ZG93RWxlbWVudC5jcHAKaW5kZXggMWYwOWQ2NDNiYjM3M2VmMDg3OTYzZmI5ZjA5YTZmMTA0MTE1
M2M2MC4uNjk1ZmFmZDQ2ZWQ0ZGI2MDQwMTFjNTU0YmExNjkyZGZhMGZmMzE5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudC5jcHAKQEAgLTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jKQorUmVmPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+
IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudChkb2MpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KGRvYykpOwog
fQogCiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZERhdGFUZXh0VHJhY2suY3BwCmluZGV4IDU5NGMwZjJlOWZiMGZjZDFlZjQ5MDg1ODU1Njhi
NTJkY2Y5NDQxZTEuLjk1YzAzMDI2ZTkwZDVlMWIyMThhYjE5MWYxNzhjZjA0MzU3MGYzZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNw
cApAQCAtMzgsOSArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8
SW5iYW5kRGF0YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVm
UHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitSZWY8SW5iYW5kRGF0
YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFu
ZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJpdmF0ZSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJhY2soY29udGV4dCwg
Y2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKIEluYmFuZERhdGFUZXh0VHJhY2s6OkluYmFu
ZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNr
Q2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQ
cml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJh
Y2suaAppbmRleCA0NWI5YzY0Njk3YTFhYjUxMzk0MTE1MjFjOWZlNjBiZGM2ZGRlYjViLi5lOTVl
NzZjMGY1ZmI2YzI0YmJjODFkNDkyZDFmYjFhZjY0ODI2YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAtNDQsNyArNDQsNyBAQCBj
bGFzcyBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbjsKIAogY2xhc3MgSW5iYW5kRGF0
YVRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2sgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZT4pOwogICAgIHZpcnR1YWwgfkluYmFuZERhdGFUZXh0VHJhY2so
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kR2VuZXJpY1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZEdlbmVyaWNUZXh0VHJhY2suY3BwCmluZGV4IDYyNDk5OWM3MWZmNzU1YmU4NjJhMzIwNWIyNTdh
MjI1NmFkMmQ4MjguLmI5ZmQ2ZTgyODQwMzJjZWQyYTYwZGI1ZjMwZGYxYjFlNDdlMTQ3NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRy
YWNrLmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lkIEdlbmVyaWNUZXh0VHJhY2tDdWVNYXA6OnJl
bW92ZShUZXh0VHJhY2tDdWUqIGN1ZSkKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8SW5iYW5kR2Vu
ZXJpY1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitSZWY8SW5iYW5kR2VuZXJp
Y1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJp
dmF0ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKIEluYmFuZEdlbmVyaWNUZXh0
VHJhY2s6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gdHJhY2tQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAppbmRleCBkNzlhODViMjlmNmViMDJkYTczNjE2N2Q0
NmU3Y2ZlYzI5OTdhZmJjLi4yNzRiNGJhY2JhNTk3MTRlNDIxZDJlZjI3YjA0ZDQwOTEyZDFjYWM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0
VHJhY2suaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQ
YXJzZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZEdlbmVy
aWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xp
ZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgc3RhdGljIFJl
ZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOwog
ICAgIHZpcnR1YWwgfkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcApp
bmRleCBjYWY3Nzg3NzlhOGViZmI4MjBiMmY0MGU3ZjM0MGM2Y2E5NzZmNTQxLi5kNjExNWQ5YzI1
OGQ3MGRjNDdlNWE1ZjllZWYzODU0NDVmYjI2NGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCkBAIC00MCw5ICs0MCw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2s+IElu
YmFuZFdlYlZUVFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+IHBsYXllclByaXZhdGUpCitSZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRXZWJWVFRU
ZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBwbGF5
ZXJQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5iYW5kV2ViVlRUVGV4dFRy
YWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJpdmF0ZSkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZh
dGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2so
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgKaW5kZXgg
MGJkOGJjZTg4M2E4Y2ViNjVjZTVmMTY5ZmNiZTVjYzZhMzExNzk5Yi4uYWJmZDQyZTQzZDdlMmYx
Yjg3YTU0YTMwZDVjZTZjODUwNDc5OTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVibGlj
IEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFj
a1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+KTsKICAgICB2aXJ0dWFsIH5JbmJhbmRXZWJWVFRUZXh0VHJhY2soKTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFi
bGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJh
Y2suaAppbmRleCAxN2M2N2RmYzNhZmI5MzU1MmRiM2FkMjY3NjU3ZDZlNmVlNDc1YWM5Li44ZTM0
N2MyM2JiZDdhY2M1Y2ZmOTZhMzdlOTFmMDY1OTNkNDZjMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC00MCw5ICs0MCw5IEBAIGNsYXNz
IExvYWRhYmxlVGV4dFRyYWNrOwogCiBjbGFzcyBMb2FkYWJsZVRleHRUcmFjayBmaW5hbCA6IHB1
YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgVGV4dFRyYWNrTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4gY3JlYXRlKEhUTUxUcmFj
a0VsZW1lbnQqIHRyYWNrLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCisgICAgc3RhdGljIFJlZjxMb2FkYWJsZVRleHRUcmFj
az4gY3JlYXRlKEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IExvYWRhYmxlVGV4dFRyYWNrKHRyYWNrLCBraW5kLCBsYWJl
bCwgbGFuZ3VhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTG9hZGFibGVUZXh0
VHJhY2sodHJhY2ssIGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkpOwogICAgIH0KICAgICB2aXJ0dWFs
IH5Mb2FkYWJsZVRleHRUcmFjaygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
ay5jcHAKaW5kZXggYmNjY2RjYTA2ZDhlOWI5ZWE2ZTMyYzJlMDUyYTlkYWU4MmE3M2NiZS4uNzRl
Y2YxNmQ3MDk3NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtMTAzLDE0ICsxMDMsMTQgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3JkKCkKIAogVGV4dFRyYWNrKiBUZXh0VHJh
Y2s6OmNhcHRpb25NZW51T2ZmSXRlbSgpCiB7Ci0gICAgc3RhdGljIFRleHRUcmFjayogb2ZmID0g
VGV4dFRyYWNrOjpjcmVhdGUoMCwgMCwgIm9mZiBtZW51IGl0ZW0iLCAiIiwgIiIsICIiKS5sZWFr
UmVmKCk7Ci0gICAgcmV0dXJuIG9mZjsKKyAgICBzdGF0aWMgVGV4dFRyYWNrJiBvZmYgPSBUZXh0
VHJhY2s6OmNyZWF0ZSgwLCAwLCAib2ZmIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYo
KTsKKyAgICByZXR1cm4gJm9mZjsKIH0KIAogVGV4dFRyYWNrKiBUZXh0VHJhY2s6OmNhcHRpb25N
ZW51QXV0b21hdGljSXRlbSgpCiB7Ci0gICAgc3RhdGljIFRleHRUcmFjayogYXV0b21hdGljID0g
VGV4dFRyYWNrOjpjcmVhdGUoMCwgMCwgImF1dG9tYXRpYyBtZW51IGl0ZW0iLCAiIiwgIiIsICIi
KS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGF1dG9tYXRpYzsKKyAgICBzdGF0aWMgVGV4dFRyYWNr
JiBhdXRvbWF0aWMgPSBUZXh0VHJhY2s6OmNyZWF0ZSgwLCAwLCAiYXV0b21hdGljIG1lbnUgaXRl
bSIsICIiLCAiIiwgIiIpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gJmF1dG9tYXRpYzsKIH0KIAog
VGV4dFRyYWNrOjpUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4
dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3QgQXRv
bWljU3RyaW5nJiBpZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsYW5ndWFnZSwgVGV4dFRyYWNrVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmgKaW5kZXggNDAzOTcyNTI4NDU1ZDBlNTFjNzY2MDJiYjg0NzM2NjJkNjg4OGEz
ZC4uNTIyZTU3NDM2MWRiY2NiZmVhMmY3NzM0MWM0ZTMzOGYxMjVhNGIwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC02Nyw5ICs2Nyw5IEBAIGNsYXNzIFRleHRUcmFj
ayA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhCiAj
ZW5kaWYKICAgICB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFRyYWNrPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBj
bGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkK
KyAgICBzdGF0aWMgUmVmPFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGtp
bmQsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwsIGNv
bnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIGtpbmQsIGlkLCBsYWJlbCwgbGFuZ3Vh
Z2UsIEFkZFRyYWNrKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFjayhj
b250ZXh0LCBjbGllbnQsIGtpbmQsIGlkLCBsYWJlbCwgbGFuZ3VhZ2UsIEFkZFRyYWNrKSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgflRleHRUcmFjaygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcAppbmRleCA5ZTg5YWRiODBmNDFmNTIy
MDhjMjU1NGVhYjFjZTU1YjJlMGFkMTRkLi4xYzJkNzY2OTk5YmRhODVlNmYzMzg5ODU2M2RiOTg1
NjhkNTI1ODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlR2VuZXJpYy5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgY29uc3Qgc3RhdGljIGludCBERUZBVUxU
Q0FQVElPTkZPTlRTSVpFID0gMTA7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUdlbmVyaWNCb3hFbGVt
ZW50IGZpbmFsIDogcHVibGljIFZUVEN1ZUJveCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIFRleHRUcmFja0N1ZUdlbmVyaWMmIGN1ZSkKKyAgICBzdGF0aWMgUmVmPFRleHRUcmFj
a0N1ZUdlbmVyaWNCb3hFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBUZXh0VHJh
Y2tDdWVHZW5lcmljJiBjdWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRl
eHRUcmFja0N1ZUdlbmVyaWNCb3hFbGVtZW50KGRvY3VtZW50LCBjdWUpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQoZG9jdW1lbnQs
IGN1ZSkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDU1NQcm9wZXJ0aWVz
KGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWVHZW5lcmljLmgKaW5kZXggMGRiOGE0MGQxYTcyZTVmYjNhMjBkMGE2NGUx
ZjlkZmUxZDdhZmQyZC4uMzM0YzQ3ZTQ3MzZkZTI2ZTAyNmI4ZDdkZDYyMzlhOTg3MTcwM2MyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmlj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgK
QEAgLTM4LDkgKzM4LDkgQEAgY2xhc3MgR2VuZXJpY0N1ZURhdGE7CiAvLyBBICJnZW5lcmljIiBj
dWUgaXMgYSBub24tV2ViVlRUIGN1ZSwgc28gaXQgaXMgbm90IHBvc2l0aW9uZWQvc2l6ZWQgd2l0
aCB0aGUgV2ViVlRUIGxvZ2ljLgogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpYyBmaW5hbCA6IHB1
YmxpYyBWVFRDdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZUdlbmVyaWM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3QgU3RyaW5nJiBjb250
ZW50KQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlR2VuZXJpYz4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFRleHRUcmFja0N1ZUdlbmVyaWMoY29udGV4dCwgc3RhcnQsIGVuZCwg
Y29udGVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVHZW5l
cmljKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGNvbnRlbnQpKTsKICAgICB9CiAgICAgCiAgICAgdmly
dHVhbCB+VGV4dFRyYWNrQ3VlR2VuZXJpYygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0xpc3QuaAppbmRleCA1NjJhZDEyOGM4OGY3ZTk2ZWJkMjc1NTdhNzNmMjdkYzlk
ZTE0ZDEwLi42YWEwMGUwMzVkOTA1YzQ3ODQ2NTgxMmYwOWIxZmI3OTM0MDNiM2Q4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaApAQCAtMzYsOSArMzYsOSBAQCBj
bGFzcyBUZXh0VHJhY2s7CiAKIGNsYXNzIFRleHRUcmFja0xpc3QgZmluYWwgOiBwdWJsaWMgVHJh
Y2tMaXN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFRyYWNrTGlz
dD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tMaXN0PiBjcmVhdGUoSFRNTE1l
ZGlhRWxlbWVudCogZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRyYWNrTGlzdChlbGVtZW50LCBj
b250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0xpc3QoZWxl
bWVudCwgY29udGV4dCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tMaXN0KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggOGQ3ZGZlMzA4
YTU1N2IzMzVhNzYyYzZlOTMyNzk2MTFmZDMwMzhlNi4uYWRmNDk3N2MzYjhhZGRjN2YzNWJlMTAz
NTAzMjk0YTJiYWRkOGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25M
aXN0LmgKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBWVFRS
ZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VlRUUmVnaW9uTGlzdD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZUVFJlZ2lvbkxpc3Q+IGNyZWF0ZSgpCisgICAgc3RhdGlj
IFJlZjxWVFRSZWdpb25MaXN0PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBWVFRSZWdpb25MaXN0KCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBW
VFRSZWdpb25MaXN0KTsKICAgICB9CiAKICAgICB+VlRUUmVnaW9uTGlzdCgpIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252571</attachid>
            <date>2015-05-06 22:48:56 -0700</date>
            <delta_ts>2015-05-07 01:25:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144686-20150507144738.patch</filename>
            <type>text/plain</type>
            <size>30250</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNmYzkyMGU5NzlmNTc0
N2MxMTk4YTAyYzUwZjg0YWMxMmFiOWFmOS4uNzZiZTkxMGQwNmM5ZjI2ODUzMzAwNzgwZjYzMGY4
YzA1NGJkZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTA1LTA2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwgLSAzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFBhc3NSZWZQdHIgd2l0aCBSZWYgaW4gY3JlYXRl
KCkgZmFjdG9yeSBmdW5jdGlvbnMsIGJlY2F1c2UKKyAgICAgICAgaXQgZG9lc24ndCBoYXZlIHRv
IGNoYW5nZSB0byBiZSBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Ig
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRh
aWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lUmFuZ2VzOjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZU
VFRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAg
ICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpjcmVhdGUp
OgorCiAyMDE1LTA1LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXVtXSzJdIFBhdXNlL3Jlc3VtZSBkYXRhYmFzZSB0aHJlYWQgd2hlbiBVSVByb2Nl
c3MgZW50ZXJzL2xlYXZlcyB0aGUgYmFja2dyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBE
aXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IGQxZDNkODdkYjBhZTA3ZmVkMzM2NjEyNDNiN2EzMTUz
ZDU2YzZmYmYuLmMxNTZhZDZkM2EwNGNiYjgwZWI5ZWQ5ODAxYzg1MDZmOTlmMjIzYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmgKQEAgLTMzLDkgKzMzLDkg
QEAgY2xhc3MgRE9NSW1wbGVtZW50YXRpb247CiAgICAgCiBjbGFzcyBGVFBEaXJlY3RvcnlEb2N1
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgdXJsKQorICAgIHN0YXRpYyBSZWY8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBGVFBEaXJlY3RvcnlEb2N1bWVudChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEZUUERpcmVjdG9yeURvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5k
ZXggZWQzZmNkZTFhMTI2ZmI0Y2FjZTQ0NThmMTZkYzRiM2ZkYWYxZjc0Ni4uOTM3NzE1ZTNkM2Vk
ZmVlYTlhNmJhN2EzYTBlZjM5OWZmNTYwODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCiAKIGNsYXNzIERldGFpbHNDb250ZW50RWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8RGV0YWlsc0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJp
dmF0ZToKICAgICBEZXRhaWxzQ29udGVudEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAt
NTgsOSArNTgsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJlZlB0cjxEZXRhaWxzQ29udGVu
dEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldGFp
bHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
dGFpbHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiBjbGFzcyBEZXRhaWxzU3VtbWFy
eUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSW5zZXJ0aW9uUG9pbnQgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCBjOTljYzA0NjA2MWMwODRiMjE0YmNlOGY3
YjY4ZjQ2NTkxODhkMTUyLi5lN2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNDQsOSAr
NDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBjbGFzcyBLZXlnZW5TZWxlY3RF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxTZWxlY3RFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPEtleWdlblNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCisgICAgc3RhdGljIFJlZjxLZXlnZW5TZWxlY3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlnZW5TZWxl
Y3RFbGVtZW50KGRvY3VtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEtleWdl
blNlbGVjdEVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCAxYzRjYzNiOTY5NzRlYzMy
ODcwYjgxMjE4MWQ5NmQ0MTVlZTRlMjM3Li44YjVjMTg3MTAzMTdiODcxNDQ1MDMxYjc4MTlkMDIw
OTQ0YzQzYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNsYXNzIFN1
bW1hcnlDb250ZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTdW1tYXJ5Q29udGVudEVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQpAQCAtNDcsOSArNDcsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJlZlB0
cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IFN1bW1hcnlDb250
ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiBSZWY8
SFRNTFN1bW1hcnlFbGVtZW50PiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
UmFuZ2VzLmNwcAppbmRleCBjYWE5Nzk3YWI3MjYxZTkxMWVmYTdlYjg2M2UzMmQzMmI0Y2QxY2Vm
Li5lNzRmOTJkN2UyYTU2YTgyNmVkNGU3NjE0ZGE2NmM1MjcxM2FmNGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZVJhbmdlcy5jcHAKQEAgLTMyLDE5ICszMiwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKCkKK1JlZjxU
aW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGltZVJhbmdlcyk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGltZVJhbmdlcyk7CiB9
CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKGRvdWJsZSBzdGFy
dCwgZG91YmxlIGVuZCkKK1JlZjxUaW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoZG91Ymxl
IHN0YXJ0LCBkb3VibGUgZW5kKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGltZVJhbmdl
cyhzdGFydCwgZW5kKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGltZVJhbmdlcyhzdGFy
dCwgZW5kKSk7CiB9CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRl
KGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYgb3RoZXIpCitSZWY8VGltZVJhbmdlcz4gVGltZVJh
bmdlczo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYgb3RoZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUaW1lUmFuZ2VzKG90aGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGltZVJhbmdlcyhvdGhlcikpOwogfQogCiBUaW1lUmFuZ2VzOjpUaW1lUmFuZ2VzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKaW5kZXggM2RiNjE0NThmMzA4NWI0ODE5MTg5ODk3ZmY2
NTRlOGFjMGUzMjJhMi4uMjBiMmVkZjY0ZmE1OTQ3MTQ1ZWI2OWVlZjI2ZTVkYThjOTNjOTU5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKQEAgLTM4LDkgKzM4LDkgQEAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgVGltZVJhbmdlcyA6IHB1YmxpYyBSZWZDb3VudGVkPFRp
bWVSYW5nZXM+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBjcmVhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1Jl
ZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGUoZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1UaW1lUmFu
Z2VzJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxUaW1lUmFuZ2VzPiBjcmVhdGUo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFRpbWVSYW5nZXM+IGNyZWF0ZShkb3Vi
bGUgc3RhcnQsIGRvdWJsZSBlbmQpOworICAgIHN0YXRpYyBSZWY8VGltZVJhbmdlcz4gY3JlYXRl
KGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91Ymxl
IHN0YXJ0KHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgZG91YmxlIGVuZCh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAKaW5kZXggNjgxNGE1MmIzZGIxYWI4NTk1OGU4MWUzOWM1OTYyYTAyMzAxYTY1Mi4uNDJkZWJh
ODBiNWZmYTk0ZDJmYTkzY2E4ZTgyOGExZWM4N2VhNzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02MTAsOSArNjEwLDkg
QEAgaW5saW5lIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OlNsaWRlckNvbnRhaW5lckVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNsaWRl
ckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
bGlkZXJDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCBkZTg2
MzkyNWNkY2ZiMzU5YjQ4OTIzZjg1ZDQ5YWEwY2NhY2RmNjEzLi40OGVjZDU1MjZkMGIwYTU3ODE2
MGY3MmQ4MjYyYjJmMTdiZmU2YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBUb3VjaEV2ZW50
OwogCiBjbGFzcyBTbGlkZXJUaHVtYkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNsaWRlclRodW1iRWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTbGlkZXJUaHVtYkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21WYWx1ZSgpOwogICAg
IHZvaWQgZHJhZ0Zyb20oY29uc3QgTGF5b3V0UG9pbnQmKTsKQEAgLTEwNyw5ICsxMDcsOSBAQCBw
cml2YXRlOgogI2VuZGlmCiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxTbGlkZXJUaHVtYkVsZW1l
bnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK2lubGlu
ZSBSZWY8U2xpZGVyVGh1bWJFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTbGlkZXJUaHVtYkVs
ZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTbGlkZXJUaHVtYkVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTbGlkZXJDb250YWluZXJF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPFNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRl
eCBjZjUwNmE4OTdjNTc4ODE3MDU4OGMyZDY0NDc3MGI3M2YzNTA1NTU5Li5jMDBiNjE5MzcyMzg4
NTQzYTczMGUyZjk3ZjA2NTA0MGM0OTUwMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01NSw5ICs1NSw5IEBAIGlubGluZSBT
cGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBT
cGluQnV0dG9uT3duZXImCiAgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbm5l
ci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIH0K
IAotUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYgc3BpbkJ1dHRvbk93bmVyKQor
UmVmPFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgU3BpbkJ1dHRvbk93bmVyJiBzcGluQnV0dG9uT3duZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTcGluQnV0dG9uRWxlbWVudChkb2N1bWVudCwgc3BpbkJ1dHRvbk93
bmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BpbkJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQsIHNwaW5CdXR0b25Pd25lcikpOwogfQogCiB2b2lkIFNwaW5CdXR0b25FbGVtZW50Ojp3aWxs
RGV0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NwaW5CdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0
dG9uRWxlbWVudC5oCmluZGV4IGFlMWVmMWVjMDkwMTBiMTE3NTczYTE3MWUxMzIyNjMxODYxNzk2
MTUuLjcyOTk1ZjYwNWQ2ZjU5ZDI4N2FmMTI1ODE2MGYzYTUzNzNjMDlmYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIG93bmVyIG9mIFNwaW5CdXR0b25FbGVtZW50IG11c3Qg
Y2FsbCByZW1vdmVTcGluQnV0dG9uT3duZXIKICAgICAvLyBiZWNhdXNlIFNwaW5CdXR0b25FbGVt
ZW50IGNhbiBiZSBvdXRsaXZlIFNwaW5CdXR0b25Pd25lcgogICAgIC8vIGltcGxlbWVudGF0aW9u
LCBlLmcuIGR1cmluZyBldmVudCBoYW5kbGluZy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGlu
QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgU3BpbkJ1dHRvbk93bmVyJik7CisgICAg
c3RhdGljIFJlZjxTcGluQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgU3BpbkJ1dHRv
bk93bmVyJik7CiAgICAgVXBEb3duU3RhdGUgdXBEb3duU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3VwRG93blN0YXRlOyB9CiAgICAgdm9pZCByZWxlYXNlQ2FwdHVyZSgpOwogICAgIHZvaWQgcmVt
b3ZlU3BpbkJ1dHRvbk93bmVyKCkgeyBtX3NwaW5CdXR0b25Pd25lciA9IDA7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCmluZGV4IDU5YmRmMDFiOGFiZWQ0NWRlNTlhNzZlZGM0NjBjNDFmNjk2NzkwNmEuLjExZGM5
YTBjOGQyNGYxN2RhZDg4Y2IwMzZkMmRkZTlmZTA1ZmMyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAt
NTEsOSArNTEsOSBAQCBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpUZXh0Q29udHJvbElubmVy
Q29udGFpbmVyKERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29u
dHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IFRleHRDb250
cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihkb2N1bWVu
dCkpOwogfQogICAgIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJD
b250YWluZXI6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCkBAIC02Nyw5ICs2Nyw5IEBAIFRleHRDb250cm9s
SW5uZXJFbGVtZW50OjpUZXh0Q29udHJvbElubmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBUZXh0
Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3Vz
dG9tU3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYpCkBAIC04Niw5ICs4Niw5IEBAIGlubGlu
ZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tz
KCk7CiB9CiAKLVBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8VGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQpAQCAtMTMzLDkgKzEzMyw5IEBAIGlubGluZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50OjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50CiB7CiB9CiAK
LVBhc3NSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogdm9pZCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTE3Niw5ICsxNzYsOSBAQCBpbmxpbmUgU2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQmCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAK
LVBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
IAogdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJl
cnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuaAppbmRleCA2Njc0YTllZGQ4NWE3NGUxY2FjNzU4NWQ5ZWE0MGIzNzcyMzky
YWE0Li5lMmE3NmU0N2Y4MjRjZTdhNWJlMzA4Y2UzZTg0OGNjZGY2YzRmM2U4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s7CiAK
IGNsYXNzIFRleHRDb250cm9sSW5uZXJDb250YWluZXIgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJD
b250YWluZXI+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8VGV4dENvbnRyb2xJ
bm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBwcm90ZWN0ZWQ6CiAgICAgVGV4dENv
bnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDQsNyArNDQsNyBAQCBwcm90
ZWN0ZWQ6CiAKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJv
bElubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxUZXh0Q29u
dHJvbElubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoKICAgICBU
ZXh0Q29udHJvbElubmVyRWxlbWVudChEb2N1bWVudCYpOwpAQCAtNTYsNyArNTYsNyBAQCBwcml2
YXRlOgogCiBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250
cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApAQCAtNzIs
NyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKSBvdmVycmlkZTsKICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtODYsNyArODYsNyBAQCBw
cml2YXRlOgogCiBjbGFzcyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDFmMDlk
NjQzYmIzNzNlZjA4Nzk2M2ZiOWYwOWE2ZjEwNDExNTNjNjAuLjY5NWZhZmQ0NmVkNGRiNjA0MDEx
YzU1NGJhMTY5MmRmYTBmZjMxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBAIC0zMCw5ICszMCw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvYykK
K1JlZjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvYykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFlvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQoZG9jKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWW91
VHViZUVtYmVkU2hhZG93RWxlbWVudChkb2MpKTsKIH0KIAogWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6WW91VHViZUVtYmVkU2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmgKaW5kZXggNzUyMDRmMDBhZDE0MTg1N2ZlN2UzZDQ3ZjExNTI0OTMxNDlkYzY3Ni4uNTQx
NThiYzBhNTcyMWVjOTdiNjQyOTM5YmYxNGVhODNiN2IxMGFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFlvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8WW91VHViZUVtYmVkU2hhZG93RWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudChE
b2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKaW5kZXggNTk0YzBmMmU5ZmIwZmNkMWVmNDkwODU4NTU2OGI1MmRjZjk0NDFl
MS4uOTVjMDMwMjZlOTBkNWUxYjIxOGFiMTkxZjE3OGNmMDQzNTcwZjNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC0zOCw5
ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmREYXRh
VGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmREYXRhVGV4dFRyYWNr
PiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluYmFu
ZERhdGFUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBs
YXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kRGF0YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRU
cmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNs
aWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCmluZGV4
IDQ1YjljNjQ2OTdhMWFiNTEzOTQxMTUyMWM5ZmU2MGJkYzZkZGViNWIuLmU5NWU3NmMwZjVmYjZj
MjRiYmM4MWQ0OTJkMWZiMWFmNjQ4MjZhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJhbmREYXRhVGV4dFRyYWNr
IGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+
KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPik7CiAgICAgdmlydHVhbCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmlj
VGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAKaW5kZXggNjI0OTk5YzcxZmY3NTViZTg2MmEzMjA1YjI1N2EyMjU2YWQyZDgy
OC4uYjlmZDZlODI4NDAzMmNlZDJhNjBkYjVmMzBkZjFiMWU0N2UxNDc2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBA
IC05Miw5ICs5Miw5IEBAIHZvaWQgR2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRU
cmFja0N1ZSogY3VlKQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxJbmJhbmRHZW5lcmljVGV4dFRy
YWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNr
PiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElu
YmFuZEdlbmVyaWNUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6SW5i
YW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0
cmFja1ByaXZhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZEdlbmVyaWNUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oCmluZGV4IGQ3OWE4NWIyOWY2ZWIwMmRhNzM2MTY3ZDQ2ZTdjZmVjMjk5
N2FmYmMuLjI3NGI0YmFjYmE1OTcxNGU0MjFkMmVmMjdiMDRkNDA5MTJkMWNhYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCkBA
IC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEluYmFuZEdlbmVyaWNUZXh0VHJhY2sg
ZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5iYW5kR2VuZXJpY1RleHRUcmFj
az4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNz
UmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZEdl
bmVyaWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNr
Q2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CiAgICAgdmlydHVh
bCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCmluZGV4IGNhZjc3
ODc3OWE4ZWJmYjgyMGIyZjQwZTdmMzQwYzZjYTk3NmY1NDEuLmQ2MTE1ZDljMjU4ZDcwZGM0N2U1
YTVmOWVlZjM4NTQ0NWZiMjY0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTQwLDkgKzQwLDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRU
VGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxh
eWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFdlYlZUVFRleHRUcmFjazo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCog
Y2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5i
YW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJpdmF0ZSkpOwogfQog
CiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCAwYmQ4YmNlODgz
YThjZWI2NWNlNWYxNjlmY2JlNWNjNmEzMTE3OTliLi5hYmZkNDJlNDNkN2UyZjFiODdhNTRhMzBk
NWNlNmM4NTA0Nzk5MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBJbmJhbmRXZWJWVFRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4
dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4p
OworICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pOwogICAgIHZpcnR1YWwgfkluYmFuZFdlYlZUVFRleHRUcmFjaygpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4
IDE3YzY3ZGZjM2FmYjkzNTUyZGIzYWQyNjc2NTdkNmU2ZWU0NzVhYzkuLjhlMzQ3YzIzYmJkN2Fj
YzVjZmY5NmEzN2U5MWYwNjU5M2Q0NmMyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgTG9hZGFibGVU
ZXh0VHJhY2s7CiAKIGNsYXNzIExvYWRhYmxlVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIFRleHRU
cmFjaywgcHJpdmF0ZSBUZXh0VHJhY2tMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUoSFRNTFRyYWNrRWxlbWVudCog
dHJhY2ssIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSkKKyAgICBzdGF0aWMgUmVmPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUo
SFRNTFRyYWNrRWxlbWVudCogdHJhY2ssIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTG9hZGFibGVUZXh0VHJhY2sodHJhY2ssIGtpbmQsIGxhYmVsLCBsYW5ndWFn
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2FkYWJsZVRleHRUcmFjayh0cmFj
aywga2luZCwgbGFiZWwsIGxhbmd1YWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkxvYWRhYmxl
VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRl
eCBiY2NjZGNhMDZkOGU5YjllYTZlMzJjMmUwNTJhOWRhZTgyYTczY2JlLi43NGVjZjE2ZDcwOTc2
NmY0YWYxZjQ1ZGMyMDZjMmRlYzYzMzZhNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suY3BwCkBAIC0xMDMsMTQgKzEwMywxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRl
eHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKQogCiBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlv
bk1lbnVPZmZJdGVtKCkKIHsKLSAgICBzdGF0aWMgVGV4dFRyYWNrKiBvZmYgPSBUZXh0VHJhY2s6
OmNyZWF0ZSgwLCAwLCAib2ZmIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYoKTsKLSAg
ICByZXR1cm4gb2ZmOworICAgIHN0YXRpYyBUZXh0VHJhY2smIG9mZiA9IFRleHRUcmFjazo6Y3Jl
YXRlKDAsIDAsICJvZmYgbWVudSBpdGVtIiwgIiIsICIiLCAiIikubGVha1JlZigpOworICAgIHJl
dHVybiAmb2ZmOwogfQogCiBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlvbk1lbnVBdXRvbWF0
aWNJdGVtKCkKIHsKLSAgICBzdGF0aWMgVGV4dFRyYWNrKiBhdXRvbWF0aWMgPSBUZXh0VHJhY2s6
OmNyZWF0ZSgwLCAwLCAiYXV0b21hdGljIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYo
KTsKLSAgICByZXR1cm4gYXV0b21hdGljOworICAgIHN0YXRpYyBUZXh0VHJhY2smIGF1dG9tYXRp
YyA9IFRleHRUcmFjazo6Y3JlYXRlKDAsIDAsICJhdXRvbWF0aWMgbWVudSBpdGVtIiwgIiIsICIi
LCAiIikubGVha1JlZigpOworICAgIHJldHVybiAmYXV0b21hdGljOwogfQogCiBUZXh0VHJhY2s6
OlRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGll
bnQqIGNsaWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcm
IGlkLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlLCBUZXh0VHJhY2tUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
aAppbmRleCA0MDM5NzI1Mjg0NTVkMGU1MWM3NjYwMmJiODQ3MzY2MmQ2ODg4YTNkLi41MjJlNTc0
MzYxZGJjY2JmZWEyZjc3MzQxYzRlMzM4ZjEyNWE0YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTY3LDkgKzY3LDkgQEAgY2xhc3MgVGV4dFRyYWNrIDogcHVibGlj
IFRyYWNrQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKICNlbmRpZgogICAg
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29u
c3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQorICAgIHN0YXRp
YyBSZWY8VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4
dFRyYWNrKGNvbnRleHQsIGNsaWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJh
Y2spKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrKGNvbnRleHQsIGNs
aWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJhY2spKTsKICAgICB9CiAgICAg
dmlydHVhbCB+VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCmluZGV4IDllODlhZGI4MGY0MWY1MjIwOGMyNTU0ZWFi
MWNlNTViMmUwYWQxNGQuLjFjMmQ3NjY5OTliZGE4NWU2ZjMzODk4NTYzZGI5ODU2OGQ1MjU4MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmlj
LmNwcApAQCAtNDksOSArNDksOSBAQCBjb25zdCBzdGF0aWMgaW50IERFRkFVTFRDQVBUSU9ORk9O
VFNJWkUgPSAxMDsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgVlRUQ3VlQm94IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0
VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgVGV4
dFRyYWNrQ3VlR2VuZXJpYyYgY3VlKQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlR2VuZXJp
Y0JveEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFRleHRUcmFja0N1ZUdlbmVy
aWMmIGN1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRyYWNrQ3Vl
R2VuZXJpY0JveEVsZW1lbnQoZG9jdW1lbnQsIGN1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudChkb2N1bWVudCwgY3VlKSk7CiAg
ICAgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhcHBseUNTU1Byb3BlcnRpZXMoY29uc3QgSW50
U2l6ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVHZW5lcmljLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUdlbmVyaWMuaAppbmRleCAwZGI4YTQwZDFhNzJlNWZiM2EyMGQwYTY0ZTFmOWRmZTFkN2Fm
ZDJkLi4zMzRjNDdlNDczNmRlMjZlMDI2YjhkN2RkNjIzOWE5ODcxNzAzYzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaApAQCAtMzgsOSAr
MzgsOSBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIC8vIEEgImdlbmVyaWMiIGN1ZSBpcyBhIG5v
bi1XZWJWVFQgY3VlLCBzbyBpdCBpcyBub3QgcG9zaXRpb25lZC9zaXplZCB3aXRoIHRoZSBXZWJW
VFQgbG9naWMuCiBjbGFzcyBUZXh0VHJhY2tDdWVHZW5lcmljIGZpbmFsIDogcHVibGljIFZUVEN1
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlR2VuZXJpYz4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCisgICAg
c3RhdGljIFJlZjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dFRyYWNrQ3VlR2VuZXJpYyhjb250ZXh0LCBzdGFydCwgZW5kLCBjb250ZW50KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUdlbmVyaWMoY29udGV4
dCwgc3RhcnQsIGVuZCwgY29udGVudCkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5UZXh0
VHJhY2tDdWVHZW5lcmljKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
TGlzdC5oCmluZGV4IDU2MmFkMTI4Yzg4ZjdlOTZlYmQyNzU1N2E3M2YyN2RjOWRlMTRkMTAuLjZh
YTAwZTAzNWQ5MDVjNDc4NDY1ODEyZjA5YjFmYjc5MzQwM2IzZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIFRleHRU
cmFjazsKIAogY2xhc3MgVGV4dFRyYWNrTGlzdCBmaW5hbCA6IHB1YmxpYyBUcmFja0xpc3RCYXNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2tMaXN0PiBjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKKyAgICBzdGF0aWMgUmVmPFRleHRUcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50
KiBlbGVtZW50LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2tMaXN0KGVsZW1lbnQsIGNvbnRleHQpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrTGlzdChlbGVtZW50LCBjb250
ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgflRleHRUcmFja0xpc3QoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAppbmRleCA4ZDdkZmUzMDhhNTU3YjMzNWE3
NjJjNmU5MzI3OTYxMWZkMzAzOGU2Li5hZGY0OTc3YzNiOGFkZGM3ZjM1YmUxMDM1MDMyOTRhMmJh
ZGQ4YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaApAQCAt
MzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZUVFJlZ2lvbkxpc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxWVFRSZWdpb25MaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFZUVFJl
Z2lvbkxpc3Q+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZU
VFJlZ2lvbkxpc3QoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxp
c3QpOwogICAgIH0KIAogICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252579</attachid>
            <date>2015-05-07 01:25:55 -0700</date>
            <delta_ts>2015-05-07 05:33:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144686-20150507172437.patch</filename>
            <type>text/plain</type>
            <size>30969</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNmYzkyMGU5NzlmNTc0
N2MxMTk4YTAyYzUwZjg0YWMxMmFiOWFmOS4uNzZiZTkxMGQwNmM5ZjI2ODUzMzAwNzgwZjYzMGY4
YzA1NGJkZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTA1LTA2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwgLSAzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFBhc3NSZWZQdHIgd2l0aCBSZWYgaW4gY3JlYXRl
KCkgZmFjdG9yeSBmdW5jdGlvbnMsIGJlY2F1c2UKKyAgICAgICAgaXQgZG9lc24ndCBoYXZlIHRv
IGNoYW5nZSB0byBiZSBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Ig
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRh
aWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lUmFuZ2VzOjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZU
VFRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAg
ICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpjcmVhdGUp
OgorCiAyMDE1LTA1LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXVtXSzJdIFBhdXNlL3Jlc3VtZSBkYXRhYmFzZSB0aHJlYWQgd2hlbiBVSVByb2Nl
c3MgZW50ZXJzL2xlYXZlcyB0aGUgYmFja2dyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBE
aXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IGQxZDNkODdkYjBhZTA3ZmVkMzM2NjEyNDNiN2EzMTUz
ZDU2YzZmYmYuLmMxNTZhZDZkM2EwNGNiYjgwZWI5ZWQ5ODAxYzg1MDZmOTlmMjIzYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmgKQEAgLTMzLDkgKzMzLDkg
QEAgY2xhc3MgRE9NSW1wbGVtZW50YXRpb247CiAgICAgCiBjbGFzcyBGVFBEaXJlY3RvcnlEb2N1
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgdXJsKQorICAgIHN0YXRpYyBSZWY8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBGVFBEaXJlY3RvcnlEb2N1bWVudChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEZUUERpcmVjdG9yeURvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5k
ZXggZWQzZmNkZTFhMTI2ZmI0Y2FjZTQ0NThmMTZkYzRiM2ZkYWYxZjc0Ni4uOTM3NzE1ZTNkM2Vk
ZmVlYTlhNmJhN2EzYTBlZjM5OWZmNTYwODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCiAKIGNsYXNzIERldGFpbHNDb250ZW50RWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8RGV0YWlsc0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJp
dmF0ZToKICAgICBEZXRhaWxzQ29udGVudEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAt
NTgsOSArNTgsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJlZlB0cjxEZXRhaWxzQ29udGVu
dEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldGFp
bHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
dGFpbHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiBjbGFzcyBEZXRhaWxzU3VtbWFy
eUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSW5zZXJ0aW9uUG9pbnQgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCBjOTljYzA0NjA2MWMwODRiMjE0YmNlOGY3
YjY4ZjQ2NTkxODhkMTUyLi5lN2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNDQsOSAr
NDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBjbGFzcyBLZXlnZW5TZWxlY3RF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxTZWxlY3RFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPEtleWdlblNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCisgICAgc3RhdGljIFJlZjxLZXlnZW5TZWxlY3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlnZW5TZWxl
Y3RFbGVtZW50KGRvY3VtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEtleWdl
blNlbGVjdEVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCAxYzRjYzNiOTY5NzRlYzMy
ODcwYjgxMjE4MWQ5NmQ0MTVlZTRlMjM3Li44YjVjMTg3MTAzMTdiODcxNDQ1MDMxYjc4MTlkMDIw
OTQ0YzQzYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNsYXNzIFN1
bW1hcnlDb250ZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTdW1tYXJ5Q29udGVudEVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQpAQCAtNDcsOSArNDcsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJlZlB0
cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IFN1bW1hcnlDb250
ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiBSZWY8
SFRNTFN1bW1hcnlFbGVtZW50PiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
UmFuZ2VzLmNwcAppbmRleCBjYWE5Nzk3YWI3MjYxZTkxMWVmYTdlYjg2M2UzMmQzMmI0Y2QxY2Vm
Li5lNzRmOTJkN2UyYTU2YTgyNmVkNGU3NjE0ZGE2NmM1MjcxM2FmNGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZVJhbmdlcy5jcHAKQEAgLTMyLDE5ICszMiwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKCkKK1JlZjxU
aW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGltZVJhbmdlcyk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGltZVJhbmdlcyk7CiB9
CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKGRvdWJsZSBzdGFy
dCwgZG91YmxlIGVuZCkKK1JlZjxUaW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoZG91Ymxl
IHN0YXJ0LCBkb3VibGUgZW5kKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGltZVJhbmdl
cyhzdGFydCwgZW5kKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGltZVJhbmdlcyhzdGFy
dCwgZW5kKSk7CiB9CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRl
KGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYgb3RoZXIpCitSZWY8VGltZVJhbmdlcz4gVGltZVJh
bmdlczo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYgb3RoZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUaW1lUmFuZ2VzKG90aGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGltZVJhbmdlcyhvdGhlcikpOwogfQogCiBUaW1lUmFuZ2VzOjpUaW1lUmFuZ2VzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKaW5kZXggM2RiNjE0NThmMzA4NWI0ODE5MTg5ODk3ZmY2
NTRlOGFjMGUzMjJhMi4uMjBiMmVkZjY0ZmE1OTQ3MTQ1ZWI2OWVlZjI2ZTVkYThjOTNjOTU5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKQEAgLTM4LDkgKzM4LDkgQEAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgVGltZVJhbmdlcyA6IHB1YmxpYyBSZWZDb3VudGVkPFRp
bWVSYW5nZXM+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBjcmVhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1Jl
ZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGUoZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1UaW1lUmFu
Z2VzJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxUaW1lUmFuZ2VzPiBjcmVhdGUo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFRpbWVSYW5nZXM+IGNyZWF0ZShkb3Vi
bGUgc3RhcnQsIGRvdWJsZSBlbmQpOworICAgIHN0YXRpYyBSZWY8VGltZVJhbmdlcz4gY3JlYXRl
KGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91Ymxl
IHN0YXJ0KHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgZG91YmxlIGVuZCh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAKaW5kZXggNjgxNGE1MmIzZGIxYWI4NTk1OGU4MWUzOWM1OTYyYTAyMzAxYTY1Mi4uNDJkZWJh
ODBiNWZmYTk0ZDJmYTkzY2E4ZTgyOGExZWM4N2VhNzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02MTAsOSArNjEwLDkg
QEAgaW5saW5lIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OlNsaWRlckNvbnRhaW5lckVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNsaWRl
ckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
bGlkZXJDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCBkZTg2
MzkyNWNkY2ZiMzU5YjQ4OTIzZjg1ZDQ5YWEwY2NhY2RmNjEzLi40OGVjZDU1MjZkMGIwYTU3ODE2
MGY3MmQ4MjYyYjJmMTdiZmU2YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBUb3VjaEV2ZW50
OwogCiBjbGFzcyBTbGlkZXJUaHVtYkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNsaWRlclRodW1iRWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTbGlkZXJUaHVtYkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21WYWx1ZSgpOwogICAg
IHZvaWQgZHJhZ0Zyb20oY29uc3QgTGF5b3V0UG9pbnQmKTsKQEAgLTEwNyw5ICsxMDcsOSBAQCBw
cml2YXRlOgogI2VuZGlmCiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxTbGlkZXJUaHVtYkVsZW1l
bnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK2lubGlu
ZSBSZWY8U2xpZGVyVGh1bWJFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTbGlkZXJUaHVtYkVs
ZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTbGlkZXJUaHVtYkVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTbGlkZXJDb250YWluZXJF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPFNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRl
eCBjZjUwNmE4OTdjNTc4ODE3MDU4OGMyZDY0NDc3MGI3M2YzNTA1NTU5Li5jMDBiNjE5MzcyMzg4
NTQzYTczMGUyZjk3ZjA2NTA0MGM0OTUwMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01NSw5ICs1NSw5IEBAIGlubGluZSBT
cGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBT
cGluQnV0dG9uT3duZXImCiAgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbm5l
ci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIH0K
IAotUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYgc3BpbkJ1dHRvbk93bmVyKQor
UmVmPFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgU3BpbkJ1dHRvbk93bmVyJiBzcGluQnV0dG9uT3duZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTcGluQnV0dG9uRWxlbWVudChkb2N1bWVudCwgc3BpbkJ1dHRvbk93
bmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BpbkJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQsIHNwaW5CdXR0b25Pd25lcikpOwogfQogCiB2b2lkIFNwaW5CdXR0b25FbGVtZW50Ojp3aWxs
RGV0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NwaW5CdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0
dG9uRWxlbWVudC5oCmluZGV4IGFlMWVmMWVjMDkwMTBiMTE3NTczYTE3MWUxMzIyNjMxODYxNzk2
MTUuLjcyOTk1ZjYwNWQ2ZjU5ZDI4N2FmMTI1ODE2MGYzYTUzNzNjMDlmYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIG93bmVyIG9mIFNwaW5CdXR0b25FbGVtZW50IG11c3Qg
Y2FsbCByZW1vdmVTcGluQnV0dG9uT3duZXIKICAgICAvLyBiZWNhdXNlIFNwaW5CdXR0b25FbGVt
ZW50IGNhbiBiZSBvdXRsaXZlIFNwaW5CdXR0b25Pd25lcgogICAgIC8vIGltcGxlbWVudGF0aW9u
LCBlLmcuIGR1cmluZyBldmVudCBoYW5kbGluZy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGlu
QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgU3BpbkJ1dHRvbk93bmVyJik7CisgICAg
c3RhdGljIFJlZjxTcGluQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgU3BpbkJ1dHRv
bk93bmVyJik7CiAgICAgVXBEb3duU3RhdGUgdXBEb3duU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3VwRG93blN0YXRlOyB9CiAgICAgdm9pZCByZWxlYXNlQ2FwdHVyZSgpOwogICAgIHZvaWQgcmVt
b3ZlU3BpbkJ1dHRvbk93bmVyKCkgeyBtX3NwaW5CdXR0b25Pd25lciA9IDA7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCmluZGV4IDU5YmRmMDFiOGFiZWQ0NWRlNTlhNzZlZGM0NjBjNDFmNjk2NzkwNmEuLjExZGM5
YTBjOGQyNGYxN2RhZDg4Y2IwMzZkMmRkZTlmZTA1ZmMyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAt
NTEsOSArNTEsOSBAQCBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpUZXh0Q29udHJvbElubmVy
Q29udGFpbmVyKERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29u
dHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IFRleHRDb250
cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihkb2N1bWVu
dCkpOwogfQogICAgIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJD
b250YWluZXI6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCkBAIC02Nyw5ICs2Nyw5IEBAIFRleHRDb250cm9s
SW5uZXJFbGVtZW50OjpUZXh0Q29udHJvbElubmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBUZXh0
Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3Vz
dG9tU3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYpCkBAIC04Niw5ICs4Niw5IEBAIGlubGlu
ZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tz
KCk7CiB9CiAKLVBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8VGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQpAQCAtMTMzLDkgKzEzMyw5IEBAIGlubGluZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50OjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50CiB7CiB9CiAK
LVBhc3NSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogdm9pZCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTE3Niw5ICsxNzYsOSBAQCBpbmxpbmUgU2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQmCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAK
LVBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
IAogdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJl
cnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuaAppbmRleCA2Njc0YTllZGQ4NWE3NGUxY2FjNzU4NWQ5ZWE0MGIzNzcyMzky
YWE0Li5lMmE3NmU0N2Y4MjRjZTdhNWJlMzA4Y2UzZTg0OGNjZGY2YzRmM2U4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s7CiAK
IGNsYXNzIFRleHRDb250cm9sSW5uZXJDb250YWluZXIgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJD
b250YWluZXI+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8VGV4dENvbnRyb2xJ
bm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBwcm90ZWN0ZWQ6CiAgICAgVGV4dENv
bnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDQsNyArNDQsNyBAQCBwcm90
ZWN0ZWQ6CiAKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJv
bElubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxUZXh0Q29u
dHJvbElubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoKICAgICBU
ZXh0Q29udHJvbElubmVyRWxlbWVudChEb2N1bWVudCYpOwpAQCAtNTYsNyArNTYsNyBAQCBwcml2
YXRlOgogCiBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250
cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApAQCAtNzIs
NyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKSBvdmVycmlkZTsKICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtODYsNyArODYsNyBAQCBw
cml2YXRlOgogCiBjbGFzcyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDFmMDlk
NjQzYmIzNzNlZjA4Nzk2M2ZiOWYwOWE2ZjEwNDExNTNjNjAuLjY5NWZhZmQ0NmVkNGRiNjA0MDEx
YzU1NGJhMTY5MmRmYTBmZjMxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBAIC0zMCw5ICszMCw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvYykK
K1JlZjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvYykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFlvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQoZG9jKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWW91
VHViZUVtYmVkU2hhZG93RWxlbWVudChkb2MpKTsKIH0KIAogWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6WW91VHViZUVtYmVkU2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmgKaW5kZXggNzUyMDRmMDBhZDE0MTg1N2ZlN2UzZDQ3ZjExNTI0OTMxNDlkYzY3Ni4uNTQx
NThiYzBhNTcyMWVjOTdiNjQyOTM5YmYxNGVhODNiN2IxMGFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFlvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8WW91VHViZUVtYmVkU2hhZG93RWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudChE
b2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKaW5kZXggNTk0YzBmMmU5ZmIwZmNkMWVmNDkwODU4NTU2OGI1MmRjZjk0NDFl
MS4uOTVjMDMwMjZlOTBkNWUxYjIxOGFiMTkxZjE3OGNmMDQzNTcwZjNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC0zOCw5
ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmREYXRh
VGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmREYXRhVGV4dFRyYWNr
PiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluYmFu
ZERhdGFUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBs
YXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kRGF0YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRU
cmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNs
aWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCmluZGV4
IDQ1YjljNjQ2OTdhMWFiNTEzOTQxMTUyMWM5ZmU2MGJkYzZkZGViNWIuLmU5NWU3NmMwZjVmYjZj
MjRiYmM4MWQ0OTJkMWZiMWFmNjQ4MjZhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJhbmREYXRhVGV4dFRyYWNr
IGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+
KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPik7CiAgICAgdmlydHVhbCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmlj
VGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAKaW5kZXggNjI0OTk5YzcxZmY3NTViZTg2MmEzMjA1YjI1N2EyMjU2YWQyZDgy
OC4uYjlmZDZlODI4NDAzMmNlZDJhNjBkYjVmMzBkZjFiMWU0N2UxNDc2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBA
IC05Miw5ICs5Miw5IEBAIHZvaWQgR2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRU
cmFja0N1ZSogY3VlKQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxJbmJhbmRHZW5lcmljVGV4dFRy
YWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNr
PiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElu
YmFuZEdlbmVyaWNUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6SW5i
YW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0
cmFja1ByaXZhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZEdlbmVyaWNUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oCmluZGV4IGQ3OWE4NWIyOWY2ZWIwMmRhNzM2MTY3ZDQ2ZTdjZmVjMjk5
N2FmYmMuLjI3NGI0YmFjYmE1OTcxNGU0MjFkMmVmMjdiMDRkNDA5MTJkMWNhYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCkBA
IC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEluYmFuZEdlbmVyaWNUZXh0VHJhY2sg
ZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5iYW5kR2VuZXJpY1RleHRUcmFj
az4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNz
UmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZEdl
bmVyaWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNr
Q2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CiAgICAgdmlydHVh
bCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCmluZGV4IGNhZjc3
ODc3OWE4ZWJmYjgyMGIyZjQwZTdmMzQwYzZjYTk3NmY1NDEuLmQ2MTE1ZDljMjU4ZDcwZGM0N2U1
YTVmOWVlZjM4NTQ0NWZiMjY0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTQwLDkgKzQwLDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRU
VGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxh
eWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFdlYlZUVFRleHRUcmFjazo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCog
Y2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5i
YW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJpdmF0ZSkpOwogfQog
CiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCAwYmQ4YmNlODgz
YThjZWI2NWNlNWYxNjlmY2JlNWNjNmEzMTE3OTliLi5hYmZkNDJlNDNkN2UyZjFiODdhNTRhMzBk
NWNlNmM4NTA0Nzk5MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBJbmJhbmRXZWJWVFRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4
dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4p
OworICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pOwogICAgIHZpcnR1YWwgfkluYmFuZFdlYlZUVFRleHRUcmFjaygpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4
IDE3YzY3ZGZjM2FmYjkzNTUyZGIzYWQyNjc2NTdkNmU2ZWU0NzVhYzkuLjhlMzQ3YzIzYmJkN2Fj
YzVjZmY5NmEzN2U5MWYwNjU5M2Q0NmMyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgTG9hZGFibGVU
ZXh0VHJhY2s7CiAKIGNsYXNzIExvYWRhYmxlVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIFRleHRU
cmFjaywgcHJpdmF0ZSBUZXh0VHJhY2tMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUoSFRNTFRyYWNrRWxlbWVudCog
dHJhY2ssIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSkKKyAgICBzdGF0aWMgUmVmPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUo
SFRNTFRyYWNrRWxlbWVudCogdHJhY2ssIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTG9hZGFibGVUZXh0VHJhY2sodHJhY2ssIGtpbmQsIGxhYmVsLCBsYW5ndWFn
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2FkYWJsZVRleHRUcmFjayh0cmFj
aywga2luZCwgbGFiZWwsIGxhbmd1YWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkxvYWRhYmxl
VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRl
eCBiY2NjZGNhMDZkOGU5YjllYTZlMzJjMmUwNTJhOWRhZTgyYTczY2JlLi43NGVjZjE2ZDcwOTc2
NmY0YWYxZjQ1ZGMyMDZjMmRlYzYzMzZhNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suY3BwCkBAIC0xMDMsMTQgKzEwMywxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRl
eHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKQogCiBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlv
bk1lbnVPZmZJdGVtKCkKIHsKLSAgICBzdGF0aWMgVGV4dFRyYWNrKiBvZmYgPSBUZXh0VHJhY2s6
OmNyZWF0ZSgwLCAwLCAib2ZmIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYoKTsKLSAg
ICByZXR1cm4gb2ZmOworICAgIHN0YXRpYyBUZXh0VHJhY2smIG9mZiA9IFRleHRUcmFjazo6Y3Jl
YXRlKDAsIDAsICJvZmYgbWVudSBpdGVtIiwgIiIsICIiLCAiIikubGVha1JlZigpOworICAgIHJl
dHVybiAmb2ZmOwogfQogCiBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlvbk1lbnVBdXRvbWF0
aWNJdGVtKCkKIHsKLSAgICBzdGF0aWMgVGV4dFRyYWNrKiBhdXRvbWF0aWMgPSBUZXh0VHJhY2s6
OmNyZWF0ZSgwLCAwLCAiYXV0b21hdGljIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYo
KTsKLSAgICByZXR1cm4gYXV0b21hdGljOworICAgIHN0YXRpYyBUZXh0VHJhY2smIGF1dG9tYXRp
YyA9IFRleHRUcmFjazo6Y3JlYXRlKDAsIDAsICJhdXRvbWF0aWMgbWVudSBpdGVtIiwgIiIsICIi
LCAiIikubGVha1JlZigpOworICAgIHJldHVybiAmYXV0b21hdGljOwogfQogCiBUZXh0VHJhY2s6
OlRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGll
bnQqIGNsaWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcm
IGlkLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlLCBUZXh0VHJhY2tUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
aAppbmRleCA0MDM5NzI1Mjg0NTVkMGU1MWM3NjYwMmJiODQ3MzY2MmQ2ODg4YTNkLi41MjJlNTc0
MzYxZGJjY2JmZWEyZjc3MzQxYzRlMzM4ZjEyNWE0YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTY3LDkgKzY3LDkgQEAgY2xhc3MgVGV4dFRyYWNrIDogcHVibGlj
IFRyYWNrQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKICNlbmRpZgogICAg
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29u
c3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQorICAgIHN0YXRp
YyBSZWY8VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4
dFRyYWNrKGNvbnRleHQsIGNsaWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJh
Y2spKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrKGNvbnRleHQsIGNs
aWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJhY2spKTsKICAgICB9CiAgICAg
dmlydHVhbCB+VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCmluZGV4IDllODlhZGI4MGY0MWY1MjIwOGMyNTU0ZWFi
MWNlNTViMmUwYWQxNGQuLjFjMmQ3NjY5OTliZGE4NWU2ZjMzODk4NTYzZGI5ODU2OGQ1MjU4MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmlj
LmNwcApAQCAtNDksOSArNDksOSBAQCBjb25zdCBzdGF0aWMgaW50IERFRkFVTFRDQVBUSU9ORk9O
VFNJWkUgPSAxMDsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgVlRUQ3VlQm94IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0
VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgVGV4
dFRyYWNrQ3VlR2VuZXJpYyYgY3VlKQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlR2VuZXJp
Y0JveEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFRleHRUcmFja0N1ZUdlbmVy
aWMmIGN1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRyYWNrQ3Vl
R2VuZXJpY0JveEVsZW1lbnQoZG9jdW1lbnQsIGN1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudChkb2N1bWVudCwgY3VlKSk7CiAg
ICAgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhcHBseUNTU1Byb3BlcnRpZXMoY29uc3QgSW50
U2l6ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVHZW5lcmljLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUdlbmVyaWMuaAppbmRleCAwZGI4YTQwZDFhNzJlNWZiM2EyMGQwYTY0ZTFmOWRmZTFkN2Fm
ZDJkLi4zMzRjNDdlNDczNmRlMjZlMDI2YjhkN2RkNjIzOWE5ODcxNzAzYzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaApAQCAtMzgsOSAr
MzgsOSBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIC8vIEEgImdlbmVyaWMiIGN1ZSBpcyBhIG5v
bi1XZWJWVFQgY3VlLCBzbyBpdCBpcyBub3QgcG9zaXRpb25lZC9zaXplZCB3aXRoIHRoZSBXZWJW
VFQgbG9naWMuCiBjbGFzcyBUZXh0VHJhY2tDdWVHZW5lcmljIGZpbmFsIDogcHVibGljIFZUVEN1
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlR2VuZXJpYz4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCisgICAg
c3RhdGljIFJlZjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dFRyYWNrQ3VlR2VuZXJpYyhjb250ZXh0LCBzdGFydCwgZW5kLCBjb250ZW50KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUdlbmVyaWMoY29udGV4
dCwgc3RhcnQsIGVuZCwgY29udGVudCkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5UZXh0
VHJhY2tDdWVHZW5lcmljKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
TGlzdC5oCmluZGV4IDU2MmFkMTI4Yzg4ZjdlOTZlYmQyNzU1N2E3M2YyN2RjOWRlMTRkMTAuLjZh
YTAwZTAzNWQ5MDVjNDc4NDY1ODEyZjA5YjFmYjc5MzQwM2IzZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIFRleHRU
cmFjazsKIAogY2xhc3MgVGV4dFRyYWNrTGlzdCBmaW5hbCA6IHB1YmxpYyBUcmFja0xpc3RCYXNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2tMaXN0PiBjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKKyAgICBzdGF0aWMgUmVmPFRleHRUcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50
KiBlbGVtZW50LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2tMaXN0KGVsZW1lbnQsIGNvbnRleHQpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrTGlzdChlbGVtZW50LCBjb250
ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgflRleHRUcmFja0xpc3QoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAppbmRleCA4ZDdkZmUzMDhhNTU3YjMzNWE3
NjJjNmU5MzI3OTYxMWZkMzAzOGU2Li5hZGY0OTc3YzNiOGFkZGM3ZjM1YmUxMDM1MDMyOTRhMmJh
ZGQ4YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaApAQCAt
MzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZUVFJlZ2lvbkxpc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxWVFRSZWdpb25MaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFZUVFJl
Z2lvbkxpc3Q+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZU
VFJlZ2lvbkxpc3QoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxp
c3QpOwogICAgIH0KIAogICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGltZVJhbmdlcy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGltZVJhbmdlcy5jcHAKaW5kZXggOWZhNjU4N2IxZDk0
YmYzMjMwM2E5M2NiMmJmMTkwNTEzOGExMmY4Yi4uMTYxMmJmOGYwOWIxNTU3YjY2MzRiNmIwNTgx
MmM1YzM2NDcxMDc0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1RpbWVSYW5nZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9UaW1lUmFuZ2VzLmNwcApAQCAtNTIsMTIgKzUyLDEyIEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBU
b1N0cmluZyhjb25zdCBUaW1lUmFuZ2VzJiByYW5nZXMpCiAKIFRFU1QoVGltZVJhbmdlcywgRW1w
dHkpCiB7Ci0gICAgQVNTRVJUX1JBTkdFKCJ7IH0iLCBUaW1lUmFuZ2VzOjpjcmVhdGUoKSk7Cisg
ICAgQVNTRVJUX1JBTkdFKCJ7IH0iLCBUaW1lUmFuZ2VzOjpjcmVhdGUoKS5wdHIoKSk7CiB9CiAK
IFRFU1QoVGltZVJhbmdlcywgU2luZ2xlUmFuZ2UpCiB7Ci0gICAgQVNTRVJUX1JBTkdFKCJ7IFsx
LDIpIH0iLCBUaW1lUmFuZ2VzOjpjcmVhdGUoMSwgMikpOworICAgIEFTU0VSVF9SQU5HRSgieyBb
MSwyKSB9IiwgVGltZVJhbmdlczo6Y3JlYXRlKDEsIDIpLnB0cigpKTsKIH0KIAogVEVTVChUaW1l
UmFuZ2VzLCBBZGRPcmRlcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252587</attachid>
            <date>2015-05-07 05:33:41 -0700</date>
            <delta_ts>2015-05-07 19:19:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144686-20150507213223.patch</filename>
            <type>text/plain</type>
            <size>30969</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNmYzkyMGU5NzlmNTc0
N2MxMTk4YTAyYzUwZjg0YWMxMmFiOWFmOS4uNzZiZTkxMGQwNmM5ZjI2ODUzMzAwNzgwZjYzMGY4
YzA1NGJkZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTA1LTA2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwgLSAzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFBhc3NSZWZQdHIgd2l0aCBSZWYgaW4gY3JlYXRl
KCkgZmFjdG9yeSBmdW5jdGlvbnMsIGJlY2F1c2UKKyAgICAgICAgaXQgZG9lc24ndCBoYXZlIHRv
IGNoYW5nZSB0byBiZSBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Ig
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRh
aWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lUmFuZ2VzOjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZU
VFRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAg
ICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpjcmVhdGUp
OgorCiAyMDE1LTA1LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXVtXSzJdIFBhdXNlL3Jlc3VtZSBkYXRhYmFzZSB0aHJlYWQgd2hlbiBVSVByb2Nl
c3MgZW50ZXJzL2xlYXZlcyB0aGUgYmFja2dyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBE
aXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IGQxZDNkODdkYjBhZTA3ZmVkMzM2NjEyNDNiN2EzMTUz
ZDU2YzZmYmYuLmMxNTZhZDZkM2EwNGNiYjgwZWI5ZWQ5ODAxYzg1MDZmOTlmMjIzYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmgKQEAgLTMzLDkgKzMzLDkg
QEAgY2xhc3MgRE9NSW1wbGVtZW50YXRpb247CiAgICAgCiBjbGFzcyBGVFBEaXJlY3RvcnlEb2N1
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgdXJsKQorICAgIHN0YXRpYyBSZWY8RlRQRGlyZWN0b3J5RG9jdW1lbnQ+IGNyZWF0ZShGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBGVFBEaXJlY3RvcnlEb2N1bWVudChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEZUUERpcmVjdG9yeURvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5k
ZXggZWQzZmNkZTFhMTI2ZmI0Y2FjZTQ0NThmMTZkYzRiM2ZkYWYxZjc0Ni4uOTM3NzE1ZTNkM2Vk
ZmVlYTlhNmJhN2EzYTBlZjM5OWZmNTYwODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCiAKIGNsYXNzIERldGFpbHNDb250ZW50RWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8RGV0YWlsc0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJp
dmF0ZToKICAgICBEZXRhaWxzQ29udGVudEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAt
NTgsOSArNTgsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJlZlB0cjxEZXRhaWxzQ29udGVu
dEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldGFp
bHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
dGFpbHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiBjbGFzcyBEZXRhaWxzU3VtbWFy
eUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSW5zZXJ0aW9uUG9pbnQgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCBjOTljYzA0NjA2MWMwODRiMjE0YmNlOGY3
YjY4ZjQ2NTkxODhkMTUyLi5lN2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNDQsOSAr
NDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBjbGFzcyBLZXlnZW5TZWxlY3RF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxTZWxlY3RFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPEtleWdlblNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCisgICAgc3RhdGljIFJlZjxLZXlnZW5TZWxlY3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlnZW5TZWxl
Y3RFbGVtZW50KGRvY3VtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEtleWdl
blNlbGVjdEVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCAxYzRjYzNiOTY5NzRlYzMy
ODcwYjgxMjE4MWQ5NmQ0MTVlZTRlMjM3Li44YjVjMTg3MTAzMTdiODcxNDQ1MDMxYjc4MTlkMDIw
OTQ0YzQzYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNsYXNzIFN1
bW1hcnlDb250ZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTdW1tYXJ5Q29udGVudEVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQpAQCAtNDcsOSArNDcsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJlZlB0
cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IFN1bW1hcnlDb250
ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiBSZWY8
SFRNTFN1bW1hcnlFbGVtZW50PiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
UmFuZ2VzLmNwcAppbmRleCBjYWE5Nzk3YWI3MjYxZTkxMWVmYTdlYjg2M2UzMmQzMmI0Y2QxY2Vm
Li5lNzRmOTJkN2UyYTU2YTgyNmVkNGU3NjE0ZGE2NmM1MjcxM2FmNGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZVJhbmdlcy5jcHAKQEAgLTMyLDE5ICszMiwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKCkKK1JlZjxU
aW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGltZVJhbmdlcyk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGltZVJhbmdlcyk7CiB9
CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRlKGRvdWJsZSBzdGFy
dCwgZG91YmxlIGVuZCkKK1JlZjxUaW1lUmFuZ2VzPiBUaW1lUmFuZ2VzOjpjcmVhdGUoZG91Ymxl
IHN0YXJ0LCBkb3VibGUgZW5kKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGltZVJhbmdl
cyhzdGFydCwgZW5kKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGltZVJhbmdlcyhzdGFy
dCwgZW5kKSk7CiB9CiAKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gVGltZVJhbmdlczo6Y3JlYXRl
KGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYgb3RoZXIpCitSZWY8VGltZVJhbmdlcz4gVGltZVJh
bmdlczo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYgb3RoZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUaW1lUmFuZ2VzKG90aGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGltZVJhbmdlcyhvdGhlcikpOwogfQogCiBUaW1lUmFuZ2VzOjpUaW1lUmFuZ2VzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKaW5kZXggM2RiNjE0NThmMzA4NWI0ODE5MTg5ODk3ZmY2
NTRlOGFjMGUzMjJhMi4uMjBiMmVkZjY0ZmE1OTQ3MTQ1ZWI2OWVlZjI2ZTVkYThjOTNjOTU5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmgKQEAgLTM4LDkgKzM4LDkgQEAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgVGltZVJhbmdlcyA6IHB1YmxpYyBSZWZDb3VudGVkPFRp
bWVSYW5nZXM+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBjcmVhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1Jl
ZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGUoZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1UaW1lUmFu
Z2VzJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxUaW1lUmFuZ2VzPiBjcmVhdGUo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFRpbWVSYW5nZXM+IGNyZWF0ZShkb3Vi
bGUgc3RhcnQsIGRvdWJsZSBlbmQpOworICAgIHN0YXRpYyBSZWY8VGltZVJhbmdlcz4gY3JlYXRl
KGNvbnN0IFBsYXRmb3JtVGltZVJhbmdlcyYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91Ymxl
IHN0YXJ0KHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgZG91YmxlIGVuZCh1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAKaW5kZXggNjgxNGE1MmIzZGIxYWI4NTk1OGU4MWUzOWM1OTYyYTAyMzAxYTY1Mi4uNDJkZWJh
ODBiNWZmYTk0ZDJmYTkzY2E4ZTgyOGExZWM4N2VhNzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02MTAsOSArNjEwLDkg
QEAgaW5saW5lIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OlNsaWRlckNvbnRhaW5lckVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNsaWRl
ckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
bGlkZXJDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCBkZTg2
MzkyNWNkY2ZiMzU5YjQ4OTIzZjg1ZDQ5YWEwY2NhY2RmNjEzLi40OGVjZDU1MjZkMGIwYTU3ODE2
MGY3MmQ4MjYyYjJmMTdiZmU2YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBUb3VjaEV2ZW50
OwogCiBjbGFzcyBTbGlkZXJUaHVtYkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNsaWRlclRodW1iRWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTbGlkZXJUaHVtYkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21WYWx1ZSgpOwogICAg
IHZvaWQgZHJhZ0Zyb20oY29uc3QgTGF5b3V0UG9pbnQmKTsKQEAgLTEwNyw5ICsxMDcsOSBAQCBw
cml2YXRlOgogI2VuZGlmCiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxTbGlkZXJUaHVtYkVsZW1l
bnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK2lubGlu
ZSBSZWY8U2xpZGVyVGh1bWJFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTbGlkZXJUaHVtYkVs
ZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTbGlkZXJUaHVtYkVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTbGlkZXJDb250YWluZXJF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPFNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRl
eCBjZjUwNmE4OTdjNTc4ODE3MDU4OGMyZDY0NDc3MGI3M2YzNTA1NTU5Li5jMDBiNjE5MzcyMzg4
NTQzYTczMGUyZjk3ZjA2NTA0MGM0OTUwMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01NSw5ICs1NSw5IEBAIGlubGluZSBT
cGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBT
cGluQnV0dG9uT3duZXImCiAgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbm5l
ci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIH0K
IAotUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYgc3BpbkJ1dHRvbk93bmVyKQor
UmVmPFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgU3BpbkJ1dHRvbk93bmVyJiBzcGluQnV0dG9uT3duZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTcGluQnV0dG9uRWxlbWVudChkb2N1bWVudCwgc3BpbkJ1dHRvbk93
bmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BpbkJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQsIHNwaW5CdXR0b25Pd25lcikpOwogfQogCiB2b2lkIFNwaW5CdXR0b25FbGVtZW50Ojp3aWxs
RGV0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NwaW5CdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0
dG9uRWxlbWVudC5oCmluZGV4IGFlMWVmMWVjMDkwMTBiMTE3NTczYTE3MWUxMzIyNjMxODYxNzk2
MTUuLjcyOTk1ZjYwNWQ2ZjU5ZDI4N2FmMTI1ODE2MGYzYTUzNzNjMDlmYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIG93bmVyIG9mIFNwaW5CdXR0b25FbGVtZW50IG11c3Qg
Y2FsbCByZW1vdmVTcGluQnV0dG9uT3duZXIKICAgICAvLyBiZWNhdXNlIFNwaW5CdXR0b25FbGVt
ZW50IGNhbiBiZSBvdXRsaXZlIFNwaW5CdXR0b25Pd25lcgogICAgIC8vIGltcGxlbWVudGF0aW9u
LCBlLmcuIGR1cmluZyBldmVudCBoYW5kbGluZy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGlu
QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgU3BpbkJ1dHRvbk93bmVyJik7CisgICAg
c3RhdGljIFJlZjxTcGluQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgU3BpbkJ1dHRv
bk93bmVyJik7CiAgICAgVXBEb3duU3RhdGUgdXBEb3duU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3VwRG93blN0YXRlOyB9CiAgICAgdm9pZCByZWxlYXNlQ2FwdHVyZSgpOwogICAgIHZvaWQgcmVt
b3ZlU3BpbkJ1dHRvbk93bmVyKCkgeyBtX3NwaW5CdXR0b25Pd25lciA9IDA7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCmluZGV4IDU5YmRmMDFiOGFiZWQ0NWRlNTlhNzZlZGM0NjBjNDFmNjk2NzkwNmEuLjExZGM5
YTBjOGQyNGYxN2RhZDg4Y2IwMzZkMmRkZTlmZTA1ZmMyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAt
NTEsOSArNTEsOSBAQCBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpUZXh0Q29udHJvbElubmVy
Q29udGFpbmVyKERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29u
dHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IFRleHRDb250
cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihkb2N1bWVu
dCkpOwogfQogICAgIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJD
b250YWluZXI6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCkBAIC02Nyw5ICs2Nyw5IEBAIFRleHRDb250cm9s
SW5uZXJFbGVtZW50OjpUZXh0Q29udHJvbElubmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBUZXh0
Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3Vz
dG9tU3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYpCkBAIC04Niw5ICs4Niw5IEBAIGlubGlu
ZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tz
KCk7CiB9CiAKLVBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8VGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQpAQCAtMTMzLDkgKzEzMyw5IEBAIGlubGluZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50OjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50CiB7CiB9CiAK
LVBhc3NSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAogdm9pZCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTE3Niw5ICsxNzYsOSBAQCBpbmxpbmUgU2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQmCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAK
LVBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
IAogdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJl
cnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuaAppbmRleCA2Njc0YTllZGQ4NWE3NGUxY2FjNzU4NWQ5ZWE0MGIzNzcyMzky
YWE0Li5lMmE3NmU0N2Y4MjRjZTdhNWJlMzA4Y2UzZTg0OGNjZGY2YzRmM2U4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s7CiAK
IGNsYXNzIFRleHRDb250cm9sSW5uZXJDb250YWluZXIgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJD
b250YWluZXI+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8VGV4dENvbnRyb2xJ
bm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBwcm90ZWN0ZWQ6CiAgICAgVGV4dENv
bnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDQsNyArNDQsNyBAQCBwcm90
ZWN0ZWQ6CiAKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJv
bElubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxUZXh0Q29u
dHJvbElubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoKICAgICBU
ZXh0Q29udHJvbElubmVyRWxlbWVudChEb2N1bWVudCYpOwpAQCAtNTYsNyArNTYsNyBAQCBwcml2
YXRlOgogCiBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250
cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApAQCAtNzIs
NyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKSBvdmVycmlkZTsKICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtODYsNyArODYsNyBAQCBw
cml2YXRlOgogCiBjbGFzcyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDFmMDlk
NjQzYmIzNzNlZjA4Nzk2M2ZiOWYwOWE2ZjEwNDExNTNjNjAuLjY5NWZhZmQ0NmVkNGRiNjA0MDEx
YzU1NGJhMTY5MmRmYTBmZjMxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBAIC0zMCw5ICszMCw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvYykK
K1JlZjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvYykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFlvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQoZG9jKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWW91
VHViZUVtYmVkU2hhZG93RWxlbWVudChkb2MpKTsKIH0KIAogWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6WW91VHViZUVtYmVkU2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmgKaW5kZXggNzUyMDRmMDBhZDE0MTg1N2ZlN2UzZDQ3ZjExNTI0OTMxNDlkYzY3Ni4uNTQx
NThiYzBhNTcyMWVjOTdiNjQyOTM5YmYxNGVhODNiN2IxMGFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFlvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8WW91VHViZUVtYmVkU2hhZG93RWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudChE
b2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKaW5kZXggNTk0YzBmMmU5ZmIwZmNkMWVmNDkwODU4NTU2OGI1MmRjZjk0NDFl
MS4uOTVjMDMwMjZlOTBkNWUxYjIxOGFiMTkxZjE3OGNmMDQzNTcwZjNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC0zOCw5
ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmREYXRh
VGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmREYXRhVGV4dFRyYWNr
PiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluYmFu
ZERhdGFUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBs
YXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kRGF0YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRU
cmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNs
aWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCmluZGV4
IDQ1YjljNjQ2OTdhMWFiNTEzOTQxMTUyMWM5ZmU2MGJkYzZkZGViNWIuLmU5NWU3NmMwZjVmYjZj
MjRiYmM4MWQ0OTJkMWZiMWFmNjQ4MjZhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJhbmREYXRhVGV4dFRyYWNr
IGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+
KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPik7CiAgICAgdmlydHVhbCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmlj
VGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAKaW5kZXggNjI0OTk5YzcxZmY3NTViZTg2MmEzMjA1YjI1N2EyMjU2YWQyZDgy
OC4uYjlmZDZlODI4NDAzMmNlZDJhNjBkYjVmMzBkZjFiMWU0N2UxNDc2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBA
IC05Miw5ICs5Miw5IEBAIHZvaWQgR2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRU
cmFja0N1ZSogY3VlKQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxJbmJhbmRHZW5lcmljVGV4dFRy
YWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNr
PiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElu
YmFuZEdlbmVyaWNUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAogSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6SW5i
YW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0
cmFja1ByaXZhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZEdlbmVyaWNUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oCmluZGV4IGQ3OWE4NWIyOWY2ZWIwMmRhNzM2MTY3ZDQ2ZTdjZmVjMjk5
N2FmYmMuLjI3NGI0YmFjYmE1OTcxNGU0MjFkMmVmMjdiMDRkNDA5MTJkMWNhYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCkBA
IC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEluYmFuZEdlbmVyaWNUZXh0VHJhY2sg
ZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5iYW5kR2VuZXJpY1RleHRUcmFj
az4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNz
UmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZEdl
bmVyaWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNr
Q2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CiAgICAgdmlydHVh
bCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCmluZGV4IGNhZjc3
ODc3OWE4ZWJmYjgyMGIyZjQwZTdmMzQwYzZjYTk3NmY1NDEuLmQ2MTE1ZDljMjU4ZDcwZGM0N2U1
YTVmOWVlZjM4NTQ0NWZiMjY0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTQwLDkgKzQwLDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRU
VGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxh
eWVyUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFdlYlZUVFRleHRUcmFjazo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCog
Y2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5i
YW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJpdmF0ZSkpOwogfQog
CiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCAwYmQ4YmNlODgz
YThjZWI2NWNlNWYxNjlmY2JlNWNjNmEzMTE3OTliLi5hYmZkNDJlNDNkN2UyZjFiODdhNTRhMzBk
NWNlNmM4NTA0Nzk5MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBJbmJhbmRXZWJWVFRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4
dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4p
OworICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pOwogICAgIHZpcnR1YWwgfkluYmFuZFdlYlZUVFRleHRUcmFjaygpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4
IDE3YzY3ZGZjM2FmYjkzNTUyZGIzYWQyNjc2NTdkNmU2ZWU0NzVhYzkuLjhlMzQ3YzIzYmJkN2Fj
YzVjZmY5NmEzN2U5MWYwNjU5M2Q0NmMyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgTG9hZGFibGVU
ZXh0VHJhY2s7CiAKIGNsYXNzIExvYWRhYmxlVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIFRleHRU
cmFjaywgcHJpdmF0ZSBUZXh0VHJhY2tMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUoSFRNTFRyYWNrRWxlbWVudCog
dHJhY2ssIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSkKKyAgICBzdGF0aWMgUmVmPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUo
SFRNTFRyYWNrRWxlbWVudCogdHJhY2ssIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTG9hZGFibGVUZXh0VHJhY2sodHJhY2ssIGtpbmQsIGxhYmVsLCBsYW5ndWFn
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2FkYWJsZVRleHRUcmFjayh0cmFj
aywga2luZCwgbGFiZWwsIGxhbmd1YWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkxvYWRhYmxl
VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRl
eCBiY2NjZGNhMDZkOGU5YjllYTZlMzJjMmUwNTJhOWRhZTgyYTczY2JlLi43NGVjZjE2ZDcwOTc2
NmY0YWYxZjQ1ZGMyMDZjMmRlYzYzMzZhNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suY3BwCkBAIC0xMDMsMTQgKzEwMywxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRl
eHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKQogCiBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlv
bk1lbnVPZmZJdGVtKCkKIHsKLSAgICBzdGF0aWMgVGV4dFRyYWNrKiBvZmYgPSBUZXh0VHJhY2s6
OmNyZWF0ZSgwLCAwLCAib2ZmIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYoKTsKLSAg
ICByZXR1cm4gb2ZmOworICAgIHN0YXRpYyBUZXh0VHJhY2smIG9mZiA9IFRleHRUcmFjazo6Y3Jl
YXRlKDAsIDAsICJvZmYgbWVudSBpdGVtIiwgIiIsICIiLCAiIikubGVha1JlZigpOworICAgIHJl
dHVybiAmb2ZmOwogfQogCiBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlvbk1lbnVBdXRvbWF0
aWNJdGVtKCkKIHsKLSAgICBzdGF0aWMgVGV4dFRyYWNrKiBhdXRvbWF0aWMgPSBUZXh0VHJhY2s6
OmNyZWF0ZSgwLCAwLCAiYXV0b21hdGljIG1lbnUgaXRlbSIsICIiLCAiIiwgIiIpLmxlYWtSZWYo
KTsKLSAgICByZXR1cm4gYXV0b21hdGljOworICAgIHN0YXRpYyBUZXh0VHJhY2smIGF1dG9tYXRp
YyA9IFRleHRUcmFjazo6Y3JlYXRlKDAsIDAsICJhdXRvbWF0aWMgbWVudSBpdGVtIiwgIiIsICIi
LCAiIikubGVha1JlZigpOworICAgIHJldHVybiAmYXV0b21hdGljOwogfQogCiBUZXh0VHJhY2s6
OlRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGll
bnQqIGNsaWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcm
IGlkLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlLCBUZXh0VHJhY2tUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
aAppbmRleCA0MDM5NzI1Mjg0NTVkMGU1MWM3NjYwMmJiODQ3MzY2MmQ2ODg4YTNkLi41MjJlNTc0
MzYxZGJjY2JmZWEyZjc3MzQxYzRlMzM4ZjEyNWE0YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTY3LDkgKzY3LDkgQEAgY2xhc3MgVGV4dFRyYWNrIDogcHVibGlj
IFRyYWNrQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKICNlbmRpZgogICAg
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29u
c3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQorICAgIHN0YXRp
YyBSZWY8VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4
dFRyYWNrKGNvbnRleHQsIGNsaWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJh
Y2spKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrKGNvbnRleHQsIGNs
aWVudCwga2luZCwgaWQsIGxhYmVsLCBsYW5ndWFnZSwgQWRkVHJhY2spKTsKICAgICB9CiAgICAg
dmlydHVhbCB+VGV4dFRyYWNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCmluZGV4IDllODlhZGI4MGY0MWY1MjIwOGMyNTU0ZWFi
MWNlNTViMmUwYWQxNGQuLjFjMmQ3NjY5OTliZGE4NWU2ZjMzODk4NTYzZGI5ODU2OGQ1MjU4MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmlj
LmNwcApAQCAtNDksOSArNDksOSBAQCBjb25zdCBzdGF0aWMgaW50IERFRkFVTFRDQVBUSU9ORk9O
VFNJWkUgPSAxMDsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgVlRUQ3VlQm94IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0
VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgVGV4
dFRyYWNrQ3VlR2VuZXJpYyYgY3VlKQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlR2VuZXJp
Y0JveEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFRleHRUcmFja0N1ZUdlbmVy
aWMmIGN1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRyYWNrQ3Vl
R2VuZXJpY0JveEVsZW1lbnQoZG9jdW1lbnQsIGN1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudChkb2N1bWVudCwgY3VlKSk7CiAg
ICAgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhcHBseUNTU1Byb3BlcnRpZXMoY29uc3QgSW50
U2l6ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVHZW5lcmljLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUdlbmVyaWMuaAppbmRleCAwZGI4YTQwZDFhNzJlNWZiM2EyMGQwYTY0ZTFmOWRmZTFkN2Fm
ZDJkLi4zMzRjNDdlNDczNmRlMjZlMDI2YjhkN2RkNjIzOWE5ODcxNzAzYzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaApAQCAtMzgsOSAr
MzgsOSBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIC8vIEEgImdlbmVyaWMiIGN1ZSBpcyBhIG5v
bi1XZWJWVFQgY3VlLCBzbyBpdCBpcyBub3QgcG9zaXRpb25lZC9zaXplZCB3aXRoIHRoZSBXZWJW
VFQgbG9naWMuCiBjbGFzcyBUZXh0VHJhY2tDdWVHZW5lcmljIGZpbmFsIDogcHVibGljIFZUVEN1
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlR2VuZXJpYz4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCisgICAg
c3RhdGljIFJlZjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dFRyYWNrQ3VlR2VuZXJpYyhjb250ZXh0LCBzdGFydCwgZW5kLCBjb250ZW50KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUdlbmVyaWMoY29udGV4
dCwgc3RhcnQsIGVuZCwgY29udGVudCkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5UZXh0
VHJhY2tDdWVHZW5lcmljKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
TGlzdC5oCmluZGV4IDU2MmFkMTI4Yzg4ZjdlOTZlYmQyNzU1N2E3M2YyN2RjOWRlMTRkMTAuLjZh
YTAwZTAzNWQ5MDVjNDc4NDY1ODEyZjA5YjFmYjc5MzQwM2IzZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIFRleHRU
cmFjazsKIAogY2xhc3MgVGV4dFRyYWNrTGlzdCBmaW5hbCA6IHB1YmxpYyBUcmFja0xpc3RCYXNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2tMaXN0PiBjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKKyAgICBzdGF0aWMgUmVmPFRleHRUcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50
KiBlbGVtZW50LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2tMaXN0KGVsZW1lbnQsIGNvbnRleHQpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrTGlzdChlbGVtZW50LCBjb250
ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgflRleHRUcmFja0xpc3QoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAppbmRleCA4ZDdkZmUzMDhhNTU3YjMzNWE3
NjJjNmU5MzI3OTYxMWZkMzAzOGU2Li5hZGY0OTc3YzNiOGFkZGM3ZjM1YmUxMDM1MDMyOTRhMmJh
ZGQ4YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaApAQCAt
MzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZUVFJlZ2lvbkxpc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxWVFRSZWdpb25MaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFZUVFJl
Z2lvbkxpc3Q+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZU
VFJlZ2lvbkxpc3QoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxp
c3QpOwogICAgIH0KIAogICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGltZVJhbmdlcy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGltZVJhbmdlcy5jcHAKaW5kZXggOWZhNjU4N2IxZDk0
YmYzMjMwM2E5M2NiMmJmMTkwNTEzOGExMmY4Yi4uMTYxMmJmOGYwOWIxNTU3YjY2MzRiNmIwNTgx
MmM1YzM2NDcxMDc0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1RpbWVSYW5nZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9UaW1lUmFuZ2VzLmNwcApAQCAtNTIsMTIgKzUyLDEyIEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBU
b1N0cmluZyhjb25zdCBUaW1lUmFuZ2VzJiByYW5nZXMpCiAKIFRFU1QoVGltZVJhbmdlcywgRW1w
dHkpCiB7Ci0gICAgQVNTRVJUX1JBTkdFKCJ7IH0iLCBUaW1lUmFuZ2VzOjpjcmVhdGUoKSk7Cisg
ICAgQVNTRVJUX1JBTkdFKCJ7IH0iLCBUaW1lUmFuZ2VzOjpjcmVhdGUoKS5wdHIoKSk7CiB9CiAK
IFRFU1QoVGltZVJhbmdlcywgU2luZ2xlUmFuZ2UpCiB7Ci0gICAgQVNTRVJUX1JBTkdFKCJ7IFsx
LDIpIH0iLCBUaW1lUmFuZ2VzOjpjcmVhdGUoMSwgMikpOworICAgIEFTU0VSVF9SQU5HRSgieyBb
MSwyKSB9IiwgVGltZVJhbmdlczo6Y3JlYXRlKDEsIDIpLnB0cigpKTsKIH0KIAogVEVTVChUaW1l
UmFuZ2VzLCBBZGRPcmRlcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>