<?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>76856</bug_id>
          
          <creation_ts>2012-01-23 13:22:51 -0800</creation_ts>
          <short_desc>Convert DataTransferItem/DataTransferItemList back into an interface class</short_desc>
          <delta_ts>2012-01-23 15:35:56 -0800</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>76598</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Daniel Cheng">dcheng</assigned_to>
          <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540779</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-01-23 13:22:51 -0800</bug_when>
    <thetext>Convert DataTransferItem/DataTransferItemList back into an interface class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540781</commentid>
    <comment_count>1</comment_count>
      <attachid>123607</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-01-23 13:23:39 -0800</bug_when>
    <thetext>Created attachment 123607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540838</commentid>
    <comment_count>2</comment_count>
      <attachid>123621</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-01-23 14:29:05 -0800</bug_when>
    <thetext>Created attachment 123621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540884</commentid>
    <comment_count>3</comment_count>
      <attachid>123621</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-23 15:28:39 -0800</bug_when>
    <thetext>Comment on attachment 123621
Patch

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

&gt; Source/WebCore/platform/chromium/DataTransferItemListChromium.h:65
&gt; +    RefPtr&lt;Clipboard&gt; m_owner;

Why not make this a RefPtr&lt;ClipboardChromium&gt; and ditto for the create methods now that they are Chromium specific ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540887</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-01-23 15:32:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 123621 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123621&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemListChromium.h:65
&gt; &gt; +    RefPtr&lt;Clipboard&gt; m_owner;
&gt; 
&gt; Why not make this a RefPtr&lt;ClipboardChromium&gt; and ditto for the create methods now that they are Chromium specific ?

As discusses, this code will be disappearing shortly anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540893</commentid>
    <comment_count>5</comment_count>
      <attachid>123621</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-01-23 15:35:52 -0800</bug_when>
    <thetext>Comment on attachment 123621
Patch

Clearing flags on attachment: 123621

Committed r105648: &lt;http://trac.webkit.org/changeset/105648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540894</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-01-23 15:35:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123607</attachid>
            <date>2012-01-23 13:23:39 -0800</date>
            <delta_ts>2012-01-23 14:29:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76856-20120123132337.patch</filename>
            <type>text/plain</type>
            <size>36852</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIyOGQzODBjNWFlMDVk
ZDFhZmViOTg4ZDQ5YTRjZjI0YjYzZjI3ZS4uNWI5YjMwODdmMGU0ZDFlNzY2OTExYWMyNWMxZjYy
NWMwOGUxNGRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTAxLTIzICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnZlcnQgRGF0YVRy
YW5zZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBiYWNrIGludG8gYW4gaW50ZXJmYWNlIGNs
YXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHA6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0
ZW0uaDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZENocm9taXVtOjptYXlVcGRhdGVJdGVtcyk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc0ZpbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjbGlwYm9hcmRDaHJvbWl1bSk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmtpbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjp0eXBlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OkRhdGFUcmFuc2Zlckl0
ZW1MaXN0Q2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0Q2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJ
dGVtTGlzdFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6
OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbUxpc3RRdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1M
aXN0UXQ6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6
ZGVsZXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0Ojpj
bGVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjphZGQpOgor
ICAgICAgICAqIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVRyYW5zZmVySXRlbVF0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVySXRlbVF0OjpEYXRhVHJhbnNmZXJJdGVtUXQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbVF0OjpnZXRBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXJJdGVtUXQ6OmdldEFzRmlsZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVy
SXRlbVF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtUXQ6OmtpbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbVF0Ojp0eXBlKToKKwogMjAxMi0wMS0y
MyAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBBZGQgV2ViU29saWRDb2xvckxheWVyIGludGVyZmFjZSB0byBkcmF3IG5vbi10
ZXh0dXJlZCBjb2xvciBsYXllcnMgZnJvbSBBdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5
ZDJlNTZlYTk3ZTcxODM2OGViNDYxYWEzMjMxNTg3ZGJjYzY3YmJlLi4yYmZjNDk0M2M3YjJmZGZk
MTk5YjZiMzRmYWNlOWVlOWY1YmZhNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5OSw3
ICsxNDk5LDYgQEAgSUYgKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKQogICAgICkKICAgICBM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0u
Y3BwCi0gICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKICAgICAgICAgZG9tL1N0
cmluZ0NhbGxiYWNrLmNwcAogICAgICkKIEVORElGICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCA3MTUyMDc4MDg4NmQ5M2ViYTdiMzgwYTc4ZmU2NTgxYjVkZDdiMzY5Li4wMmJl
YThlZGY4MGEwYmU0NDY0YzhjOGRiOTFmYWQ0NGRkYWJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTQ2NjQsNyArNDY2NCw2IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAog
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRl
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmggXAotCVNvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5n
Q2FsbGJhY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKaW5kZXggYTBlM2U2MmZhOTc3NjY3MTE1NjZiNjg5YTYzOGY5YTc3ZGU4ZTI1MC4uYmUx
OWFjMDQwZmNiNzBkNDIxMjg3MDIzODMxMWJiNTY4OWJhNGI5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0z
MDE2LDcgKzMwMTYsNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUz0xKSB7CiAgICAgICAgIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaAog
ICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgXAotICAg
ICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIFwKICAgICAgICAgZG9tL1N0cmluZ0Nh
bGxiYWNrLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1RdC5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IGQwNGY5MDhlOTZiMWNmYTM4MjNhYjZjOGRiMGU1YTA5ZmE0M2RkMWQuLmYx
YjhjOWU4MDM3OTlhN2QyNjRhMDU5NWZhMTg3N2NhMzIyYTA2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTUzNTgsNyArNTM1OCw2IEBACiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywK
ICAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9EYXRhVHJhbnNmZXJJdGVtLmgnLAotICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVt
TGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oJywKICAg
ICAgICAgICAgICdkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCAzMDgwM2Y3N2RkNzk1MjcyMTE4Mjg4YTc3OTE4ZjVmZDcz
MDViNDUxLi45MWY0YzIzOTM5Mzc3ODEzMWY0Yjg0YWZkMTc5MWU2ZTVmNTU2OWY1IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDY4NTQsNTgg
KzQ2ODU0LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8
L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0
ZW1MaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUxZjE5ODczMmVhN2I0ZjhiNjViMDNl
MWM1Y2Y2NmI5NDdlZDgxODcuLjlmZjA5ZDViZThiZGVhN2ZkNTVmYzc2NjFlN2U5N2U2M2RlZGNh
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE4NDYsNyArMTg0Niw2IEBACiAJCTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAv
KiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNWZXJ0ZXhB
cnJheU9iamVjdC5oICovOyB9OwogCQk3N0VGNjJGMzEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYxMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMuY3BwICovOyB9OwogCQk3N0VGNjJGNDEyRjlEQjc0MDBDNzdCRDIgLyog
SlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3N0VGNjJGMjEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmggKi87IH07Ci0JCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVy
SXRlbUxpc3QuY3BwICovOyB9OwogCQk3OUFDOTIxODEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21w
b3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3Bw
ICovOyB9OwogCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUFDOTIx
NzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi87IH07CiAJCTc5RjJG
NUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RjJGNTlFMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTg3MDgsNyArODcwNyw2IEBACiAJ
CTc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdFRjYyRjExMkY5REI3NDAwQzc3QkQyIC8q
IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3N0VGNjJGMjEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUFDOTIxNjEwOTk0NUM4MDAyMTI2
NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc5QUM5MjE3MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21wb3NpdGlvbkV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RjJGNTlFMTA5MTkzOUEwMDBEODdDQiAvKiBD
b21wb3NpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENvbXBvc2l0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAz
NjUsNyArMjAzNjMsNiBAQAogCQkJCTgxNUU2MTY2MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJh
bnNmZXJJdGVtLmNwcCAqLywKIAkJCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRy
YW5zZmVySXRlbS5oICovLAogCQkJCTgxQUM1QUU4MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJh
bnNmZXJJdGVtLmlkbCAqLywKLQkJCQk3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRy
YW5zZmVySXRlbUxpc3QuY3BwICovLAogCQkJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBE
YXRhVHJhbnNmZXJJdGVtTGlzdC5oICovLAogCQkJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwgKi8sCiAJCQkJQThDMjI4QTAxMUQ1NzIyRTAwRDVB
N0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwICovLApAQCAtMjQ2NzgsNyArMjQ2
NzUsNiBAQAogCQkJCTFBRDUxQTE1MENCNTlDRDMwMDk1M0QxMSAvKiBEYXRhYmFzZVRyYWNrZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY0MUQxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFz
ZXRET01TdHJpbmdNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODE1RTYxNjcxMzI1ODdBQTAw
QjYyMkIwIC8qIERhdGFUcmFuc2Zlckl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzgxNzU1
ODYxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNTczMkIwQTEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjUxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVJ
bnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbS5jcHAKaW5kZXggNmM3M2ViMGRjYmU5OTIwN2FlN2U3NmZjM2M4MjMzMmM4Y2I4Mjk4Ny4u
OGVlYzg2OTJhZjFmYmRiZDUyYjk4ZTRhNmQ1Yjk3MjgzZDE2NTI0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKIAotI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgotCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQwLDM1ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGNo
YXIgRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZ1tdID0gInN0cmluZyI7CiBjb25zdCBjaGFy
IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRGaWxlW10gPSAiZmlsZSI7CiAKLURhdGFUcmFuc2Zlckl0
ZW06OkRhdGFUcmFuc2Zlckl0ZW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBjb25zdCBT
dHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKLSAgICA6IG1fb3duZXIob3duZXIpCi0g
ICAgLCBtX2tpbmQoa2luZCkKLSAgICAsIG1fdHlwZSh0eXBlKQotewotfQotCi1DbGlwYm9hcmQq
IERhdGFUcmFuc2Zlckl0ZW06Om93bmVyKCkKLXsKLSAgICByZXR1cm4gbV9vd25lci5nZXQoKTsK
LX0KLQotU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW06OmtpbmQoKSBjb25zdAotewotICAgIGlmICht
X293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQotICAgICAgICByZXR1cm4gU3RyaW5n
KCk7Ci0KLSAgICByZXR1cm4gbV9raW5kOwotfQotCi1TdHJpbmcgRGF0YVRyYW5zZmVySXRlbTo6
dHlwZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51
bWIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIHJldHVybiBtX3R5cGU7Ci19Ci0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNG
RVJfSVRFTVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRl
bS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaAppbmRleCAxODEyNmRi
NzQyNWZhNzdkNTA0NWU5MDRhMzNkOGI0MWRkZDY0ZTYwLi41MGU3NjA3MmMzMWNlYTUyMDkyN2E2
ZTE1NjllZDE2MTliNjI0OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRy
YW5zZmVySXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgK
QEAgLTQ5LDI4ICs0OSwxNCBAQCBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtIDogcHVibGljIFJlZkNv
dW50ZWQ8RGF0YVRyYW5zZmVySXRlbT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkRhdGFUcmFu
c2Zlckl0ZW0oKSB7IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+
IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJk
PiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RmlsZT4pOwotCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIga2luZFN0cmluZ1tdOwogICAgIHN0YXRpYyBjb25zdCBjaGFy
IGtpbmRGaWxlW107CiAKLSAgICBTdHJpbmcga2luZCgpIGNvbnN0OwotICAgIFN0cmluZyB0eXBl
KCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJp
bmdDYWxsYmFjaz4pID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNGaWxl
KCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgRGF0YVRyYW5zZmVySXRlbShQYXNzUmVmUHRyPENs
aXBib2FyZD4gb3duZXIsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlKTsK
LSAgICBDbGlwYm9hcmQqIG93bmVyKCk7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIERh
dGFUcmFuc2Zlckl0ZW1MaXN0OworICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0ID0gMDsKIAotICAgIGNvbnN0IFJlZlB0
cjxDbGlwYm9hcmQ+IG1fb3duZXI7Ci0gICAgY29uc3QgU3RyaW5nIG1fa2luZDsKLSAgICBjb25z
dCBTdHJpbmcgbV90eXBlOworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCbG9i
PiBnZXRBc0ZpbGUoKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNThmNWY0YTk0YWE2ZmE4MmYwODllODVlYTY4NzQxODc2ZDQ1Mjky
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGF0
YVRyYW5zZmVySXRlbUxpc3QuaCIKLQotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKLSNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EYXRhVHJhbnNmZXJJdGVtTGlzdDo6RGF0YVRy
YW5zZmVySXRlbUxpc3QoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fb3duZXIoY2xpcGJvYXJkKQotICAgICwg
bV9jb250ZXh0KGNvbnRleHQpCi17Ci19Ci0KLXNpemVfdCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6
bGVuZ3RoKCkKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Ci19Ci0KLVBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbUxpc3Q6Oml0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCkKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJv
YXJkTnVtYiB8fCBpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBy
ZXR1cm4gbV9pdGVtc1tpbmRleF07Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRl
bGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
aWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKSB7Ci0gICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
aW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXRlbXMucmVtb3Zl
KGluZGV4KTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6Y2xlYXIoKQotewotICAg
IGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbV9pdGVtcy5jbGVhcigpOwotCi19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRl
bUxpc3Q6OmFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdy
aXRhYmxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBPbmx5IG9uZSAnc3RyaW5nJyBpdGVt
IHdpdGggYSBnaXZlbiB0eXBlIGlzIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rpb24uCi0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX2l0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmICht
X2l0ZW1zW2ldLT50eXBlKCkgPT0gdHlwZSAmJiBtX2l0ZW1zW2ldLT5raW5kKCkgPT0gRGF0YVRy
YW5zZmVySXRlbTo6a2luZFN0cmluZykgewotICAgICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVE
X0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG1faXRl
bXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX293bmVyLCBtX2NvbnRleHQsIGRh
dGEsIHR5cGUpKTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6YWRkKFBhc3NSZWZQ
dHI8RmlsZT4gZmlsZSkKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJk
V3JpdGFibGUgfHwgIWZpbGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXRlbXMuYXBwZW5k
KERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX293bmVyLCBtX2NvbnRleHQsIGZpbGUpKTsKLX0K
LQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgK
aW5kZXggMjhiN2MyNDYzODE2ZDgzNGFkZmQyYmU0MjdmNjhmMmQ1MTEzNDE1ZC4uYjg3YTE4M2Fk
NTVjNGI2NTcyM2E5ZDVmZTRkM2MwYmIwNGMzNDUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmgKQEAgLTQ4LDIzICs0OCwxMiBAQCBjbGFzcyBEYXRhVHJhbnNm
ZXJJdGVtTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+RGF0YVRyYW5zZmVySXRlbUxpc3QoKSB7IH0KIAotICAgIHZp
cnR1YWwgc2l6ZV90IGxlbmd0aCgpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgVjhEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aW5kZXhlZFByb3BlcnR5RGVsZXRlciB0byBnZXQg
dGhpcyBjYWxsZWQuCi0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOwotICAgIHZp
cnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4
Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkKFBhc3NSZWZQdHI8RmlsZT4pOwot
Ci1wcm90ZWN0ZWQ6Ci0gICAgRGF0YVRyYW5zZmVySXRlbUxpc3QoUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0KLXByb3RlY3RlZDoKLSAgICBSZWZQdHI8
Q2xpcGJvYXJkPiBtX293bmVyOwotICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVu
dC4KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiA+IG1faXRlbXM7Ci0KKyAgICB2aXJ0dWFsIHNpemVfdCBs
ZW5ndGgoKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0
ZW0odW5zaWduZWQgbG9uZyBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVt
KHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNsZWFyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRh
LCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGFkZChQYXNzUmVmUHRyPEZpbGU+KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHAKaW5kZXggMzI3ODM5MGY1ZjU0YWRlY2MzOTU4NzNhYmE3NmNmMjQ4M2I0
NGQyZC4uOWEyNjg3NjA1N2E4MGRmYTQ4MTI5ZThkMDUxNDBiMzEwZGEzODE1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcApAQCAtMzc1LDE3ICszNzUsMTcgQEAgdm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6bWF5VXBk
YXRlSXRlbXMoVmVjdG9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiA+JiBpdGVtcykKICAgICBi
b29sIHN1Y2Nlc3MgPSBmYWxzZTsKICAgICBTdHJpbmcgcGxhaW5UZXh0ID0gbV9kYXRhT2JqZWN0
LT5nZXREYXRhKG1pbWVUeXBlVGV4dFBsYWluLCBzdWNjZXNzKTsKICAgICBpZiAoc3VjY2VzcykK
LSAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSh0aGlzLCBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBwbGFpblRleHQsIG1pbWVUeXBlVGV4dFBsYWluKSk7CisgICAg
ICAgIGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZSh0aGlzLCBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBwbGFpblRleHQsIG1pbWVUeXBlVGV4dFBsYWluKSk7CiAK
ICAgICBzdWNjZXNzID0gZmFsc2U7CiAgICAgU3RyaW5nIGh0bWxUZXh0ID0gbV9kYXRhT2JqZWN0
LT5nZXREYXRhKG1pbWVUeXBlVGV4dEhUTUwsIHN1Y2Nlc3MpOwogICAgIGlmIChzdWNjZXNzKQot
ICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKHRoaXMsIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIGh0bWxUZXh0LCBtaW1lVHlwZVRleHRIVE1MKSk7CisgICAgICAg
IGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZSh0aGlzLCBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBodG1sVGV4dCwgbWltZVR5cGVUZXh0SFRNTCkpOwogCiAgICAg
aWYgKG1fZGF0YU9iamVjdC0+Y29udGFpbnNGaWxlbmFtZXMoKSkgewogICAgICAgICBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzID0gbV9kYXRhT2JqZWN0LT5maWxlbmFtZXMoKTsKICAg
ICAgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmaWxlbmFtZXMu
YmVnaW4oKTsgaXQgIT0gZmlsZW5hbWVzLmVuZCgpOyArK2l0KQotICAgICAgICAgICAgaXRlbXMu
YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSh0aGlzLCBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBGaWxlOjpjcmVhdGUoKml0KSkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKHRoaXMsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IEZpbGU6OmNyZWF0ZSgqaXQpKSk7CiAgICAgfQogICAgIG1fZHJhZ1N0b3JhZ2VVcGRhdGVkID0g
ZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcAppbmRleCA1NTdmZTM2M2RlZTVmMWVl
NmNlYjNhZTU2ODBkNzdiYTgyNjE1Y2U2Li43YTExMzI0ODlkNmNmNTNjZjIyZjkyYzk0OGZkMDky
YzI0MjQyMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKQEAgLTUzLDQwICs1Myw0NCBA
QCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpjcmVhdGVGcm9tUGFzdGVibwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtKG93bmVyLCBjb250ZXh0LCBQYXN0ZWJvYXJkU291cmNlLCBEYXRh
VHJhbnNmZXJJdGVtOjpraW5kRmlsZSwgdHlwZSwgIiIpKTsKIH0KIAotUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+IG93bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGF0
YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFN0cmluZyYgdHlwZSkKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVt
PiBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4g
b3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBTdHJpbmcmIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiB0eXBlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtKG93bmVyLCBjb250ZXh0LCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkludGVybmFsU291
cmNlLCBraW5kU3RyaW5nLCB0eXBlLCBkYXRhKSk7CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBv
d25lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPEZpbGU+IGZpbGUp
CitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0
cjxGaWxlPiBmaWxlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRl
bUNocm9taXVtKG93bmVyLCBjb250ZXh0LCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkludGVy
bmFsU291cmNlLCBmaWxlKSk7CiB9CiAKIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6RGF0YVRy
YW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgRGF0YVNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYg
a2luZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCi0gICAgOiBEYXRh
VHJhbnNmZXJJdGVtKG93bmVyLCBraW5kLCB0eXBlKQotICAgICwgbV9jb250ZXh0KGNvbnRleHQp
CisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fb3duZXIob3duZXIpCisgICAgLCBt
X2tpbmQoa2luZCkKKyAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9zb3VyY2Uoc291cmNlKQog
ICAgICwgbV9kYXRhKGRhdGEpCiB7CiB9CiAKIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6RGF0
YVRyYW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRGF0YVNvdXJjZSBzb3VyY2UsIFBhc3NSZWZQdHI8
RmlsZT4gZmlsZSkKLSAgICA6IERhdGFUcmFuc2Zlckl0ZW0ob3duZXIsIERhdGFUcmFuc2Zlckl0
ZW06OmtpbmRGaWxlLCBmaWxlLmdldCgpID8gZmlsZS0+dHlwZSgpIDogU3RyaW5nKCkpCi0gICAg
LCBtX2NvbnRleHQoY29udGV4dCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9v
d25lcihvd25lcikKKyAgICAsIG1fa2luZChraW5kRmlsZSkKKyAgICAsIG1fdHlwZShmaWxlLmdl
dCgpID8gZmlsZS0+dHlwZSgpIDogU3RyaW5nKCkpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAg
ICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIAotdm9pZCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06
OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2Fs
bGJhY2s+IGNhbGxiYWNrKSBjb25zdAogewotICAgIGlmICgob3duZXIoKS0+cG9saWN5KCkgIT0g
Q2xpcGJvYXJkUmVhZGFibGUgJiYgb3duZXIoKS0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFi
bGUpCisgICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBt
X293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKICAgICAgICAgfHwga2luZCgp
ICE9IGtpbmRTdHJpbmcpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTE2LDcgKzEyMCw3IEBAIHZv
aWQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPiBjYWxsYmFjaykKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotUGFz
c1JlZlB0cjxCbG9iPiBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzRmlsZSgpCitQYXNz
UmVmUHRyPEJsb2I+IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNGaWxlKCkgY29uc3QK
IHsKICAgICBpZiAoa2luZCgpICE9IGtpbmRGaWxlIHx8IGNsaXBib2FyZENocm9taXVtKCktPnN0
b3JhZ2VIYXNVcGRhdGVkKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTQ2LDkgKzE1MCw5IEBA
IFBhc3NSZWZQdHI8QmxvYj4gRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc0ZpbGUoKQog
ICAgIHJldHVybiAwOwogfQogCi1DbGlwYm9hcmRDaHJvbWl1bSogRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpjbGlwYm9hcmRDaHJvbWl1bSgpCitDbGlwYm9hcmRDaHJvbWl1bSogRGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtOjpjbGlwYm9hcmRDaHJvbWl1bSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PENsaXBib2FyZENocm9taXVtKj4ob3duZXIoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENsaXBib2FyZENocm9taXVtKj4obV9vd25lci5nZXQoKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKaW5kZXggMWE4ZGRlN2NjYTEw
NzE4MGY0OTljODZhODRhN2ZjM2MxNThjNDA1Yi4uMmE5MTkwMDZiZjlhNDBjYzc5M2I5MmNmODY4
YWE4ZDNkNWE1OTdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKQEAgLTQ2LDI1ICs0NiwzMiBA
QCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBEYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0gOiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbSB7CiBwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RmlsZT4pOwogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRlRnJvbVBhc3RlYm9hcmQoUGFz
c1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiB0eXBlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFzRmls
ZSgpOworICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0K
KyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAg
dmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNGaWxlKCkgY29uc3Q7CiAKIHBy
aXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW07CisK
ICAgICBlbnVtIERhdGFTb3VyY2UgewogICAgICAgICBQYXN0ZWJvYXJkU291cmNlLAogICAgICAg
ICBJbnRlcm5hbFNvdXJjZSwKICAgICB9OwogCi0gICAgZnJpZW5kIGNsYXNzIERhdGFUcmFuc2Zl
ckl0ZW07Ci0KICAgICBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YVNvdXJjZSwgY29uc3QgU3Ry
aW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAgICAg
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIERhdGFTb3VyY2UsIFBhc3NSZWZQdHI8RmlsZT4pOwogCi0g
ICAgQ2xpcGJvYXJkQ2hyb21pdW0qIGNsaXBib2FyZENocm9taXVtKCk7CisgICAgQ2xpcGJvYXJk
Q2hyb21pdW0qIGNsaXBib2FyZENocm9taXVtKCkgY29uc3Q7CiAKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBtX2NvbnRleHQ7CisgICAgY29uc3QgUmVmUHRyPENsaXBib2FyZD4gbV9vd25l
cjsKKyAgICBjb25zdCBTdHJpbmcgbV9raW5kOworICAgIGNvbnN0IFN0cmluZyBtX3R5cGU7CiAg
ICAgY29uc3QgRGF0YVNvdXJjZSBtX3NvdXJjZTsKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhOwog
ICAgIFJlZlB0cjxGaWxlPiBtX2ZpbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3Bw
CmluZGV4IDAzOGRiOGIxM2M2YzRjZTE5MGY2ZDc2Zjc1OTQ4MjBhODdlNGU5Y2MuLjA5ZTZjM2E5
YzVhMjhiNDhjY2MwMWJhYTNmNTExM2Q0OGIwYTYzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0
Q2hyb21pdW0uY3BwCkBAIC01Myw3ICs1Myw4IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRl
bUxpc3RDaHJvbWl1bT4gRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6Y3JlYXRlKFBhCiB9
CiAKIERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hy
b21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQotICAgIDogRGF0YVRyYW5zZmVySXRlbUxpc3Qob3duZXIsIGNvbnRleHQpCisg
ICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaAppbmRleCBjMTM3Y2FkNGJmZTMzMmI5MTE5NGIwYjlh
OGFkNjVhYTVkNTMxMTg5Li45MmNkMGJkZGYwNTg1ODRlNGQ0MmQ0OTE2Y2U3ZTg2YmYxYzAzYjkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdENocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5oCkBAIC01MCw5ICs1MCw5IEBAIGNsYXNz
IERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0gOiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbUxp
c3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0
Q2hyb21pdW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKIAotICAgIC8vIERhdGFUcmFuc2Zlckl0ZW1MaXN0IG92ZXJyaWRlcy4KICAgICB2
aXJ0dWFsIHNpemVfdCBsZW5ndGgoKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IFY4RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmluZGV4ZWRQcm9wZXJ0eURlbGV0ZXIgdG8gZ2V0
IHRoaXMgY2FsbGVkLgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKICAgICB2
aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBF
eGNlcHRpb25Db2RlJik7CkBAIC02MSw2ICs2MSwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgQ2xpcGJvYXJkQ2hyb21pdW0qIGNsaXBib2FyZENo
cm9taXVtKCkgY29uc3Q7CisKKyAgICBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVyOworICAgIC8v
IEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVudC4KKyAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBtX2NvbnRleHQ7CisgICAgVmVjdG9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiA+IG1f
aXRlbXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwCmluZGV4IDQ1ZmI2
YmM3NjA3OTQwMWNiOWZmYjdmODI0NGRiMjhkYTEyYjMyYjcuLjA2ODE5ODI4MzQ5NDI3NWVjM2Ex
OWExYjNhNGVhZTM3NGY2ZjQ5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwCkBAIC00MCwxMCArNDAsNzMgQEAgUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdFF0PiBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0Ojpj
cmVhdGUoUGFzc1JlZlB0cjxDbGkKIH0KIAogRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6RGF0YVRy
YW5zZmVySXRlbUxpc3RRdChQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBEYXRhVHJhbnNmZXJJdGVtTGlzdChvd25lciwg
IGNvbnRleHQpCisgICAgOiBtX293bmVyKGNsaXBib2FyZCkKKyAgICAsIG1fY29udGV4dChjb250
ZXh0KQogewogfQogCitzaXplX3QgRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6bGVuZ3RoKCkKK3sK
KyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Cit9CisKK1Bhc3NSZWZQdHI8RGF0
YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6aXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iIHx8
IGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0
ZW1zW2luZGV4XTsKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpkZWxldGVJdGVt
KHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX293
bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkgeworICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGluZGV4ID49
IGxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLnJlbW92ZShpbmRleCk7
Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6Y2xlYXIoKQoreworICAgIGlmICht
X293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9pdGVtcy5jbGVhcigpOworCit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3RR
dDo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFi
bGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0ZW0gd2l0
aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1faXRl
bXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRhVHJhbnNm
ZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pdGVtcy5h
cHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZGF0YSwg
dHlwZSkpOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmFkZChQYXNzUmVmUHRy
PEZpbGU+IGZpbGUpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdy
aXRhYmxlIHx8ICFmaWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLmFwcGVuZChE
YXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV9vd25lciwgbV9jb250ZXh0LCBmaWxlKSk7Cit9CisK
IHZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6YWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3Ry
aW5nJiB0eXBlKQogewogICAgIG1faXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW1RdDo6Y3Jl
YXRlRnJvbVBhc3RlYm9hcmQobV9vd25lciwgbV9jb250ZXh0LCB0eXBlKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmgKaW5kZXgg
MTQ0MjU2M2VlOGY0ZTBmYTg2MGNiNjc1OTg5NWMxMWI5NjYwZjBlNC4uYzhhOGRiYzkyNWYzMzMz
MjRiYzU3NWFmNmFlODRkZmEyOWVmOTRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaApAQCAtNDIsMTEgKzQyLDI0IEBAIGNs
YXNzIERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQgOiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbUxpc3Qg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ+
IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IAorICAgIHZpcnR1YWwgc2l6ZV90IGxlbmd0aCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmlu
ZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVh
bCB2b2lkIGFkZChQYXNzUmVmUHRyPEZpbGU+KTsKKworCiAgICAgZnJpZW5kIGNsYXNzIENsaXBi
b2FyZFF0OwogcHJpdmF0ZToKICAgICBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0KFBhc3NSZWZQdHI8
Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiAgICAgdmlydHVhbCB2b2lk
IGFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSk7CisKKyAgICBSZWZQdHI8Q2xp
cGJvYXJkPiBtX293bmVyOworICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVudC4K
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CisgICAgVmVjdG9yPFJlZlB0
cjxEYXRhVHJhbnNmZXJJdGVtPiA+IG1faXRlbXM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtUXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbVF0LmNwcAppbmRleCAyYWI3N2FjYmQ4
YTdlNGFiNDRiMzY0ZGUyZWQ0MmI5M2JiNDcwZmM2Li45ZmY2MjFlZjQ5ODM0OTZhMDNiOGZhNzY4
ZjkzODc2Yzk4YjFlYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
YXRhVHJhbnNmZXJJdGVtUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rh
dGFUcmFuc2Zlckl0ZW1RdC5jcHAKQEAgLTQxLDE3ICs0MSwxNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbTo6
Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHR5cGUpCitQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW1RdD4gRGF0YVRyYW5zZmVySXRlbVF0OjpjcmVhdGUoUGFzc1JlZlB0
cjxDbGlwYm9hcmQ+IG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlckl0ZW1RdChvd25lciwgY29udGV4dCwgRGF0YVRyYW5z
ZmVySXRlbVF0OjpJbnRlcm5hbFNvdXJjZSwga2luZFN0cmluZywgdHlwZSwgZGF0YSkpOwogfQog
Ci1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShQ
YXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UGFzc1JlZlB0cjxGaWxlPiBmaWxlKQorUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtUXQ+IERh
dGFUcmFuc2Zlckl0ZW1RdDo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8RmlsZT4gZmlsZSkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlckl0ZW1RdChvd25lciwgY29u
dGV4dCwgRGF0YVRyYW5zZmVySXRlbVF0OjpJbnRlcm5hbFNvdXJjZSwgZmlsZSkpOwogfQpAQCAt
NzEsOCArNzEsMTAgQEAgRGF0YVRyYW5zZmVySXRlbVF0OjpEYXRhVHJhbnNmZXJJdGVtUXQoUGFz
c1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRGF0YVNvdXJjZSBzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgdHlwZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGF0YSkKLSAg
ICA6IERhdGFUcmFuc2Zlckl0ZW0ob3duZXIsIGtpbmQsIHR5cGUpCisgICAgOiBtX293bmVyKG93
bmVyKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2tpbmQoa2luZCkKKyAgICAs
IG1fdHlwZSh0eXBlKQogICAgICwgbV9kYXRhU291cmNlKHNvdXJjZSkKICAgICAsIG1fZGF0YShk
YXRhKQogewpAQCAtODIsMTQgKzg0LDE2IEBAIERhdGFUcmFuc2Zlckl0ZW1RdDo6RGF0YVRyYW5z
ZmVySXRlbVF0KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhU291cmNlIHNvdXJjZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8RmlsZT4g
ZmlsZSkKLSAgICA6IERhdGFUcmFuc2Zlckl0ZW0ob3duZXIsIERhdGFUcmFuc2Zlckl0ZW06Omtp
bmRGaWxlLCBmaWxlLmdldCgpID8gZmlsZS0+dHlwZSgpIDogIiIpCisgICAgOiBtX293bmVyKG93
bmVyKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2tpbmQoa2luZEZpbGUpCisg
ICAgLCBtX3R5cGUoZmlsZS5nZXQoKSA/IGZpbGUtPnR5cGUoKSA6ICIiKTsKICAgICAsIG1fc291
cmNlKHNvdXJjZSkKICAgICAsIG1fZmlsZShmaWxlKQogewogfQogCi12b2lkIERhdGFUcmFuc2Zl
ckl0ZW1RdDo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2sp
Cit2b2lkIERhdGFUcmFuc2Zlckl0ZW1RdDo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdD
YWxsYmFjaz4gY2FsbGJhY2spIGNvbnN0CiB7CiAgICAgaWYgKChvd25lcigpLT5wb2xpY3koKSAh
PSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBvd25lcigpLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0
YWJsZSkKICAgICAgICAgfHwga2luZCgpICE9IGtpbmRTdHJpbmcpCkBAIC0xMTcsNyArMTIxLDcg
QEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtUXQ6OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5n
Q2FsbGJhY2s+IGNhbGxiYWNrKQogICAgIGNhbGxiYWNrLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29u
dGV4dCwgZGF0YSk7CiB9CiAKLVBhc3NSZWZQdHI8QmxvYj4gRGF0YVRyYW5zZmVySXRlbVF0Ojpn
ZXRBc0ZpbGUoKQorUGFzc1JlZlB0cjxCbG9iPiBEYXRhVHJhbnNmZXJJdGVtUXQ6OmdldEFzRmls
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKGtpbmQoKSA9PSBraW5kRmlsZSAmJiBtX2RhdGFTb3VyY2Ug
PT0gSW50ZXJuYWxTb3VyY2UpCiAgICAgICAgIHJldHVybiBtX2ZpbGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtUXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1RdC5oCmluZGV4IGQxZjU4ZTVjYTc4
MGMyZGRkNzJkZjgyMGE3NTVmMzg2Y2VhNzhjOWYuLmRlODhiOGFkMmQ5NmU0NjQ5N2U4YjMzNmIy
OThkNTE1ZTY3NjFlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rh
dGFUcmFuc2Zlckl0ZW1RdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFU
cmFuc2Zlckl0ZW1RdC5oCkBAIC0zOSwyMCArMzksMjUgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKIAogY2xhc3MgRGF0YVRyYW5zZmVySXRlbVF0IDogcHVibGljIERhdGFUcmFuc2Zl
ckl0ZW0gewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1R
dD4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtUXQ+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBi
b2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPEZpbGU+KTsK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtUXQ+IGNyZWF0ZUZyb21QYXN0
ZWJvYXJkKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldEFz
U3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+KTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8QmxvYj4gZ2V0QXNGaWxlKCk7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CisgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0
cmluZ0NhbGxiYWNrPikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFz
RmlsZSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEYXRhVHJhbnNmZXJJ
dGVtTGlzdFF0OworCiAgICAgZW51bSBEYXRhU291cmNlIHsKICAgICAgICAgUGFzdGVib2FyZFNv
dXJjZSwKICAgICAgICAgSW50ZXJuYWxTb3VyY2UKICAgICB9OwogCi0gICAgZnJpZW5kIGNsYXNz
IERhdGFUcmFuc2Zlckl0ZW07Ci0KICAgICBEYXRhVHJhbnNmZXJJdGVtUXQoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IG93bmVyLAogICAgICAgICAgICAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZSwKQEAgLTYyLDcgKzY3
LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTb3VyY2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8RmlsZT4pOwogCisgICAgY29uc3QgUmVmUHRy
PENsaXBib2FyZD4gbV9vd25lcjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRl
eHQ7CisgICAgY29uc3QgU3RyaW5nIG1fa2luZDsKKyAgICBjb25zdCBTdHJpbmcgbV90eXBlOwog
ICAgIGNvbnN0IERhdGFTb3VyY2UgbV9kYXRhU291cmNlOwogICAgIGNvbnN0IFN0cmluZyBtX2Rh
dGE7CiAgICAgUmVmUHRyPEZpbGU+IG1fZmlsZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123621</attachid>
            <date>2012-01-23 14:29:05 -0800</date>
            <delta_ts>2012-01-23 15:35:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76856-20120123142904.patch</filename>
            <type>text/plain</type>
            <size>37250</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIyOGQzODBjNWFlMDVk
ZDFhZmViOTg4ZDQ5YTRjZjI0YjYzZjI3ZS4uMWRmMGViMmI2ZmYxYTBiYzQ4YzJhZTU2YzZlMDY1
N2E2NDIyNzFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTAxLTIzICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnZlcnQgRGF0YVRy
YW5zZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBiYWNrIGludG8gYW4gaW50ZXJmYWNlIGNs
YXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1
NgorCisgICAgICAgIFdoZW4gUXQgaW1wbGVtZW50ZWQgdGhlIERhdGFUcmFuc2Zlckl0ZW1MaXN0
LCBhIGxvdCBvZiBsb2dpYyB3YXMgbW92ZWQgaW50byB0aGUgc2hhcmVkCisgICAgICAgIGNsYXNz
ZXMgc2luY2UgQ2hyb21pdW0vUXQgaGFwcGVuZWQgdG8gaW1wbGVtZW50IGl0IHRoZSBzYW1lIHdh
eS4gTm93IHRoYXQgSSB3YW50IHRvIGRvIHNvbWUKKyAgICAgICAgcmVmYWN0b3JpbmcvY2xlYW51
cCB3b3JrIHRvIGJldHRlciBpbXBsZW1lbnQgRGF0YVRyYW5zZmVySXRlbUxpc3QgaW4gQ2hyb21p
dW0sIHdlIHdvbid0CisgICAgICAgIHNoYXJlIHRoZSBzYW1lIGRhdGEgYW55bW9yZSBzbyBpdCBk
b2Vzbid0IG1ha2Ugc2Vuc2UgdG8ga2VlcCB0aGF0IGNvZGUgaW4gYSBjb21tb24gbG9jYXRpb24u
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGRvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRl
bS5oOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJv
YXJkQ2hyb21pdW06Om1heVVwZGF0ZUl0ZW1zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzRmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNsaXBib2FyZENocm9taXVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6a2luZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OnR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRl
bUxpc3RDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVy
SXRlbUxpc3RDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0
ZW1MaXN0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6
RGF0YVRyYW5zZmVySXRlbUxpc3RRdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJ
dGVtTGlzdFF0OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxp
c3RRdDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0Ojpk
ZWxldGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmNs
ZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmFkZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oOgorICAgICAgICAq
IHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1RdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXJJdGVtUXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXJJdGVtUXQ6OkRhdGFUcmFuc2Zlckl0ZW1RdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJh
bnNmZXJJdGVtUXQ6OmdldEFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ckl0ZW1RdDo6Z2V0QXNGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJ
dGVtUXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1RdDo6a2luZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtUXQ6OnR5cGUpOgorCiAyMDEyLTAxLTIz
ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Y2hyb21pdW1dIEFkZCBXZWJTb2xpZENvbG9yTGF5ZXIgaW50ZXJmYWNlIHRvIGRyYXcgbm9uLXRl
eHR1cmVkIGNvbG9yIGxheWVycyBmcm9tIEF1cmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlk
MmU1NmVhOTdlNzE4MzY4ZWI0NjFhYTMyMzE1ODdkYmNjNjdiYmUuLjJiZmM0OTQzYzdiMmZkZmQx
OTliNmIzNGZhY2U5ZWU5ZjViZmE0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDk5LDcg
KzE0OTksNiBAQCBJRiAoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpCiAgICAgKQogICAgIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5j
cHAKLSAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcAogICAgICAgICBkb20vU3Ry
aW5nQ2FsbGJhY2suY3BwCiAgICAgKQogRU5ESUYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDcxNTIwNzgwODg2ZDkzZWJhN2IzODBhNzhmZTY1ODFiNWRkN2IzNjkuLjAyYmVh
OGVkZjgwYTBiZTQ0NjRjOGM4ZGI5MWZhZDQ0ZGRhYmY3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDY2NCw3ICs0NjY0LDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCi0JU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdD
YWxsYmFjay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCBhMGUzZTYyZmE5Nzc2NjcxMTU2NmI2ODlhNjM4ZjlhNzdkZThlMjUwLi5iZTE5
YWMwNDBmY2I3MGQ0MjEyODcwMjM4MzExYmI1Njg5YmE0YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMw
MTYsNyArMzAxNiw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lU
RU1TPTEpIHsKICAgICAgICAgcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oCiAg
ICAgU09VUkNFUyArPSBcCiAgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCBcCi0gICAg
ICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgXAogICAgICAgICBkb20vU3RyaW5nQ2Fs
bGJhY2suY3BwIFwKICAgICAgICAgcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbVF0LmNwcCBc
CiAgICAgICAgIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggZDA0ZjkwOGU5NmIxY2ZhMzgyM2FiNmM4ZGIwZTVhMDlmYTQzZGQxZC4uZjFi
OGM5ZTgwMzc5OWE3ZDI2NGEwNTk1ZmExODc3Y2EzMjJhMDY4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNTM1OCw3ICs1MzU4LDYgQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmgnLAog
ICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCcsCiAgICAgICAgICAgICAnZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaCcsCi0gICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1M
aXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAgICAgICAgICAgICAnZG9t
L0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDMwODAzZjc3ZGQ3OTUyNzIxMTgyODhhNzc5MThmNWZkNzMw
NWI0NTEuLjkxZjRjMjM5MzkzNzc4MTMxZjRiODRhZmQxNzkxZTZlNWY1NTY5ZjUgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00Njg1NCw1OCAr
NDY4NTQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRl
bUxpc3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTFmMTk4NzMyZWE3YjRmOGI2NWIwM2Ux
YzVjZjY2Yjk0N2VkODE4Ny4uOWZmMDlkNWJlOGJkZWE3ZmQ1NWZjNzY2MWU3ZTk3ZTYzZGVkY2E3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTg0Niw3ICsxODQ2LDYgQEAKIAkJNzdBMTdBQTcxMkYyOEIyQTAwNEUwMkY2IC8q
IEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFy
cmF5T2JqZWN0LmggKi87IH07CiAJCTc3RUY2MkYzMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzdFRjYyRjExMkY5REI3NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5jcHAgKi87IH07CiAJCTc3RUY2MkY0MTJGOURCNzQwMEM3N0JEMiAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaCAqLzsgfTsKLQkJNzgxNzU1ODYxMzY1QTFCMDAwOTNCRTJFIC8q
IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJ
dGVtTGlzdC5jcHAgKi87IH07CiAJCTc5QUM5MjE4MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBv
c2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5jcHAg
Ki87IH07CiAJCTc5QUM5MjE5MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE3
MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCAqLzsgfTsKIAkJNzlGMkY1
QTExMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlGMkY1OUUxMDkxOTM5QTAwMEQ4N0NC
IC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtODcwOCw3ICs4NzA3LDYgQEAKIAkJ
NzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0VGNjJGMTEyRjlEQjc0MDBDNzdCRDIgLyog
SlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc3RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2
RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNDb21wb3NpdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzlBQzkyMTcxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbXBvc2l0aW9uRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlGMkY1OUUxMDkxOTM5QTAwMEQ4N0NCIC8qIENv
bXBvc2l0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29tcG9zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDM2
NSw3ICsyMDM2Myw2IEBACiAJCQkJODE1RTYxNjYxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uY3BwICovLAogCQkJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJh
bnNmZXJJdGVtLmggKi8sCiAJCQkJODFBQzVBRTgxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uaWRsICovLAotCQkJCTc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJh
bnNmZXJJdGVtTGlzdC5jcHAgKi8sCiAJCQkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERh
dGFUcmFuc2Zlckl0ZW1MaXN0LmggKi8sCiAJCQkJODFBQzVBRTkxMzE2MzkyRTAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCAqLywKIAkJCQlBOEMyMjhBMDExRDU3MjJFMDBENUE3
RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgKi8sCkBAIC0yNDY3OCw3ICsyNDY3
NSw2IEBACiAJCQkJMUFENTFBMTUwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFiYXNlVHJhY2tlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQxRDExRDdGNDE2MDA2NDU1QjAgLyogRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTVFNjE2NzEzMjU4N0FBMDBC
NjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3ODE3NTU4
NjEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1NzMyQjBBMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCNTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtLmNwcAppbmRleCA2YzczZWIwZGNiZTk5MjA3YWU3ZTc2ZmMzYzgyMzMyYzhjYjgyOTg3Li44
ZWVjODY5MmFmMWZiZGJkNTJiOThlNGE2ZDViOTcyODNkMTY1MjRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCkBAIC0zMSw4ICszMSw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgogCi0jaW5jbHVkZSAiQ2xpcGJv
YXJkLmgiCi0KICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDAsMzUgKzM4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgY2hh
ciBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nW10gPSAic3RyaW5nIjsKIGNvbnN0IGNoYXIg
RGF0YVRyYW5zZmVySXRlbTo6a2luZEZpbGVbXSA9ICJmaWxlIjsKIAotRGF0YVRyYW5zZmVySXRl
bTo6RGF0YVRyYW5zZmVySXRlbShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIGNvbnN0IFN0
cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlKQotICAgIDogbV9vd25lcihvd25lcikKLSAg
ICAsIG1fa2luZChraW5kKQotICAgICwgbV90eXBlKHR5cGUpCi17Ci19Ci0KLUNsaXBib2FyZCog
RGF0YVRyYW5zZmVySXRlbTo6b3duZXIoKQotewotICAgIHJldHVybiBtX293bmVyLmdldCgpOwot
fQotCi1TdHJpbmcgRGF0YVRyYW5zZmVySXRlbTo6a2luZCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1f
b3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0gICAgICAgIHJldHVybiBTdHJpbmco
KTsKLQotICAgIHJldHVybiBtX2tpbmQ7Ci19Ci0KLVN0cmluZyBEYXRhVHJhbnNmZXJJdGVtOjp0
eXBlKCkgY29uc3QKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVt
YikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgcmV0dXJuIG1fdHlwZTsKLX0KLQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCmluZGV4IDE4MTI2ZGI3
NDI1ZmE3N2Q1MDQ1ZTkwNGEzM2Q4YjQxZGRkNjRlNjAuLjUwZTc2MDcyYzMxY2VhNTIwOTI3YTZl
MTU2OWVkMTYxOWI2MjQ4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXJJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApA
QCAtNDksMjggKzQ5LDE0IEBAIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW0gOiBwdWJsaWMgUmVmQ291
bnRlZDxEYXRhVHJhbnNmZXJJdGVtPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGF0YVRyYW5z
ZmVySXRlbSgpIHsgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxGaWxlPik7Ci0KICAg
ICBzdGF0aWMgY29uc3QgY2hhciBraW5kU3RyaW5nW107CiAgICAgc3RhdGljIGNvbnN0IGNoYXIg
a2luZEZpbGVbXTsKIAotICAgIFN0cmluZyBraW5kKCkgY29uc3Q7Ci0gICAgU3RyaW5nIHR5cGUo
KSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCbG9iPiBnZXRBc0ZpbGUo
KSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBEYXRhVHJhbnNmZXJJdGVtKFBhc3NSZWZQdHI8Q2xp
cGJvYXJkPiBvd25lciwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUpOwot
ICAgIENsaXBib2FyZCogb3duZXIoKTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgRGF0
YVRyYW5zZmVySXRlbUxpc3Q7CisgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3QgPSAwOwogCi0gICAgY29uc3QgUmVmUHRy
PENsaXBib2FyZD4gbV9vd25lcjsKLSAgICBjb25zdCBTdHJpbmcgbV9raW5kOwotICAgIGNvbnN0
IFN0cmluZyBtX3R5cGU7CisgICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8
U3RyaW5nQ2FsbGJhY2s+KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+
IGdldEFzRmlsZSgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1OGY1ZjRhOTRhYTZmYTgyZjA4OWU4NWVhNjg3NDE4NzZkNDUyOTJk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oIgotCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgotI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1T
KQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURhdGFUcmFuc2Zlckl0ZW1MaXN0OjpEYXRhVHJh
bnNmZXJJdGVtTGlzdChQYXNzUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIDogbV9vd25lcihjbGlwYm9hcmQpCi0gICAgLCBt
X2NvbnRleHQoY29udGV4dCkKLXsKLX0KLQotc2l6ZV90IERhdGFUcmFuc2Zlckl0ZW1MaXN0Ojps
ZW5ndGgoKQotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQot
ICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBtX2l0ZW1zLnNpemUoKTsKLX0KLQotUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KQotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9h
cmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJl
dHVybiBtX2l0ZW1zW2luZGV4XTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGVs
ZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBp
ZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKLSAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChp
bmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pdGVtcy5yZW1vdmUo
aW5kZXgpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjpjbGVhcigpCi17Ci0gICAg
aWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX2l0ZW1zLmNsZWFyKCk7Ci0KLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVt
TGlzdDo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRp
b25Db2RlJiBlYykKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3Jp
dGFibGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0ZW0g
d2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1f
aXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRhVHJh
bnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7Ci0gICAgICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURf
RVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9pdGVt
cy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZGF0
YSwgdHlwZSkpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoUGFzc1JlZlB0
cjxGaWxlPiBmaWxlKQotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRX
cml0YWJsZSB8fCAhZmlsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pdGVtcy5hcHBlbmQo
RGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZmlsZSkpOwotfQot
Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaApp
bmRleCAyOGI3YzI0NjM4MTZkODM0YWRmZDJiZTQyN2Y2OGYyZDUxMTM0MTVkLi5iODdhMTgzYWQ1
NWM0YjY1NzIzYTlkNWZlNGQzYzBiYjA0YzM0NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbUxpc3QuaApAQCAtNDgsMjMgKzQ4LDEyIEBAIGNsYXNzIERhdGFUcmFuc2Zl
ckl0ZW1MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5EYXRhVHJhbnNmZXJJdGVtTGlzdCgpIHsgfQogCi0gICAgdmly
dHVhbCBzaXplX3QgbGVuZ3RoKCk7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zl
ckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVu
dCBWOERhdGFUcmFuc2Zlckl0ZW1MaXN0OjppbmRleGVkUHJvcGVydHlEZWxldGVyIHRvIGdldCB0
aGlzIGNhbGxlZC4KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7Ci0gICAgdmly
dHVhbCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBhZGQoUGFzc1JlZlB0cjxGaWxlPik7Ci0K
LXByb3RlY3RlZDoKLSAgICBEYXRhVHJhbnNmZXJJdGVtTGlzdChQYXNzUmVmUHRyPENsaXBib2Fy
ZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLQotcHJvdGVjdGVkOgotICAgIFJlZlB0cjxD
bGlwYm9hcmQ+IG1fb3duZXI7Ci0gICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50
LgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBWZWN0b3I8UmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW0+ID4gbV9pdGVtczsKLQorICAgIHZpcnR1YWwgc2l6ZV90IGxl
bmd0aCgpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0o
dW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY2xlYXIoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEs
IGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYWRkKFBhc3NSZWZQdHI8RmlsZT4pID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmNwcAppbmRleCAzMjc4MzkwZjVmNTRhZGVjYzM5NTg3M2FiYTc2Y2YyNDgzYjQ0
ZDJkLi45YTI2ODc2MDU3YTgwZGZhNDgxMjllOGQwNTE0MGIzMTBkYTM4MTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0u
Y3BwCkBAIC0zNzUsMTcgKzM3NSwxNyBAQCB2b2lkIENsaXBib2FyZENocm9taXVtOjptYXlVcGRh
dGVJdGVtcyhWZWN0b3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+ID4mIGl0ZW1zKQogICAgIGJv
b2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIFN0cmluZyBwbGFpblRleHQgPSBtX2RhdGFPYmplY3Qt
PmdldERhdGEobWltZVR5cGVUZXh0UGxhaW4sIHN1Y2Nlc3MpOwogICAgIGlmIChzdWNjZXNzKQot
ICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKHRoaXMsIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIHBsYWluVGV4dCwgbWltZVR5cGVUZXh0UGxhaW4pKTsKKyAgICAg
ICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKHRoaXMsIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIHBsYWluVGV4dCwgbWltZVR5cGVUZXh0UGxhaW4pKTsKIAog
ICAgIHN1Y2Nlc3MgPSBmYWxzZTsKICAgICBTdHJpbmcgaHRtbFRleHQgPSBtX2RhdGFPYmplY3Qt
PmdldERhdGEobWltZVR5cGVUZXh0SFRNTCwgc3VjY2Vzcyk7CiAgICAgaWYgKHN1Y2Nlc3MpCi0g
ICAgICAgIGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUodGhpcywgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgaHRtbFRleHQsIG1pbWVUeXBlVGV4dEhUTUwpKTsKKyAgICAgICAg
aXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKHRoaXMsIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIGh0bWxUZXh0LCBtaW1lVHlwZVRleHRIVE1MKSk7CiAKICAgICBp
ZiAobV9kYXRhT2JqZWN0LT5jb250YWluc0ZpbGVuYW1lcygpKSB7CiAgICAgICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMgPSBtX2RhdGFPYmplY3QtPmZpbGVuYW1lcygpOwogICAg
ICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZpbGVuYW1lcy5i
ZWdpbigpOyBpdCAhPSBmaWxlbmFtZXMuZW5kKCk7ICsraXQpCi0gICAgICAgICAgICBpdGVtcy5h
cHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKHRoaXMsIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIEZpbGU6OmNyZWF0ZSgqaXQpKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUodGhpcywgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
RmlsZTo6Y3JlYXRlKCppdCkpKTsKICAgICB9CiAgICAgbV9kcmFnU3RvcmFnZVVwZGF0ZWQgPSBm
YWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCmluZGV4IDU1N2ZlMzYzZGVlNWYxZWU2
Y2ViM2FlNTY4MGQ3N2JhODI2MTVjZTYuLjdhMTEzMjQ4OWQ2Y2Y1M2NmMjJmOTJjOTQ4ZmQwOTJj
MjQyNDIxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcApAQCAtNTMsNDAgKzUzLDQ0IEBA
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmNyZWF0ZUZyb21QYXN0ZWJvCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQsIFBhc3RlYm9hcmRTb3VyY2UsIERhdGFU
cmFuc2Zlckl0ZW06OmtpbmRGaWxlLCB0eXBlLCAiIikpOwogfQogCi1QYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2Fy
ZD4gb3duZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBkYXRh
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiB0eXBlKQorUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+
IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBv
d25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IHR5cGUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0ob3duZXIsIGNvbnRleHQsIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6SW50ZXJuYWxTb3Vy
Y2UsIGtpbmRTdHJpbmcsIHR5cGUsIGRhdGEpKTsKIH0KIAotUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93
bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8RmlsZT4gZmlsZSkK
K1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRy
PEZpbGU+IGZpbGUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0ob3duZXIsIGNvbnRleHQsIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6SW50ZXJu
YWxTb3VyY2UsIGZpbGUpKTsKIH0KIAogRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBEYXRhU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBr
aW5kLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKLSAgICA6IERhdGFU
cmFuc2Zlckl0ZW0ob3duZXIsIGtpbmQsIHR5cGUpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkK
KyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9vd25lcihvd25lcikKKyAgICAsIG1f
a2luZChraW5kKQorICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAg
ICAgLCBtX2RhdGEoZGF0YSkKIHsKIH0KIAogRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRh
VHJhbnNmZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBEYXRhU291cmNlIHNvdXJjZSwgUGFzc1JlZlB0cjxG
aWxlPiBmaWxlKQotICAgIDogRGF0YVRyYW5zZmVySXRlbShvd25lciwgRGF0YVRyYW5zZmVySXRl
bTo6a2luZEZpbGUsIGZpbGUuZ2V0KCkgPyBmaWxlLT50eXBlKCkgOiBTdHJpbmcoKSkKLSAgICAs
IG1fY29udGV4dChjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX293
bmVyKG93bmVyKQorICAgICwgbV9raW5kKGtpbmRGaWxlKQorICAgICwgbV90eXBlKGZpbGUuZ2V0
KCkgPyBmaWxlLT50eXBlKCkgOiBTdHJpbmcoKSkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAg
ICAsIG1fZmlsZShmaWxlKQogewogfQogCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6
Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2spCit2b2lkIERh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxs
YmFjaz4gY2FsbGJhY2spIGNvbnN0CiB7Ci0gICAgaWYgKChvd25lcigpLT5wb2xpY3koKSAhPSBD
bGlwYm9hcmRSZWFkYWJsZSAmJiBvd25lcigpLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJs
ZSkKKyAgICBpZiAoKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlICYmIG1f
b3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQogICAgICAgICB8fCBraW5kKCkg
IT0ga2luZFN0cmluZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTYsNyArMTIwLDcgQEAgdm9p
ZCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5n
Q2FsbGJhY2s+IGNhbGxiYWNrKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1QYXNz
UmVmUHRyPEJsb2I+IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNGaWxlKCkKK1Bhc3NS
ZWZQdHI8QmxvYj4gRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc0ZpbGUoKSBjb25zdAog
ewogICAgIGlmIChraW5kKCkgIT0ga2luZEZpbGUgfHwgY2xpcGJvYXJkQ2hyb21pdW0oKS0+c3Rv
cmFnZUhhc1VwZGF0ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNDYsOSArMTUwLDkgQEAg
UGFzc1JlZlB0cjxCbG9iPiBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzRmlsZSgpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLUNsaXBib2FyZENocm9taXVtKiBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmNsaXBib2FyZENocm9taXVtKCkKK0NsaXBib2FyZENocm9taXVtKiBEYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW06OmNsaXBib2FyZENocm9taXVtKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2xpcGJvYXJkQ2hyb21pdW0qPihvd25lcigpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2xpcGJvYXJkQ2hyb21pdW0qPihtX293bmVyLmdldCgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaAppbmRleCAxYThkZGU3Y2NhMTA3
MTgwZjQ5OWM4NmE4NGE3ZmMzYzE1OGM0MDViLi4yYTkxOTAwNmJmOWE0MGNjNzkzYjkyY2Y4Njhh
YThkM2Q1YTU5N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaApAQCAtNDYsMjUgKzQ2LDMyIEBA
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1D
aHJvbWl1bSA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IGNyZWF0ZShQYXNzUmVmUHRyPENs
aXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxGaWxlPik7CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBjcmVhdGVGcm9tUGFzdGVib2FyZChQYXNz
UmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIHR5cGUpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8
U3RyaW5nQ2FsbGJhY2s+KTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNGaWxl
KCk7CisgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQor
ICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4pIGNvbnN0
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCbG9iPiBnZXRBc0ZpbGUoKSBjb25zdDsKIAogcHJp
dmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTsKKwog
ICAgIGVudW0gRGF0YVNvdXJjZSB7CiAgICAgICAgIFBhc3RlYm9hcmRTb3VyY2UsCiAgICAgICAg
IEludGVybmFsU291cmNlLAogICAgIH07CiAKLSAgICBmcmllbmQgY2xhc3MgRGF0YVRyYW5zZmVy
SXRlbTsKLQogICAgIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2Fy
ZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBEYXRhU291cmNlLCBjb25zdCBTdHJp
bmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKTsKICAgICBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YVNvdXJjZSwgUGFzc1JlZlB0cjxGaWxlPik7CiAKLSAg
ICBDbGlwYm9hcmRDaHJvbWl1bSogY2xpcGJvYXJkQ2hyb21pdW0oKTsKKyAgICBDbGlwYm9hcmRD
aHJvbWl1bSogY2xpcGJvYXJkQ2hyb21pdW0oKSBjb25zdDsKIAogICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBjb25zdCBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVy
OworICAgIGNvbnN0IFN0cmluZyBtX2tpbmQ7CisgICAgY29uc3QgU3RyaW5nIG1fdHlwZTsKICAg
ICBjb25zdCBEYXRhU291cmNlIG1fc291cmNlOwogICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7CiAg
ICAgUmVmUHRyPEZpbGU+IG1fZmlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAK
aW5kZXggMDM4ZGI4YjEzYzZjNGNlMTkwZjZkNzZmNzU5NDgyMGE4N2U0ZTljYy4uMDllNmMzYTlj
NWEyOGI0OGNjYzAxYmFhM2Y1MTEzZDQ4YjBhNjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RD
aHJvbWl1bS5jcHAKQEAgLTUzLDcgKzUzLDggQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
TGlzdENocm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtOjpjcmVhdGUoUGEKIH0K
IAogRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJv
bWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCi0gICAgOiBEYXRhVHJhbnNmZXJJdGVtTGlzdChvd25lciwgY29udGV4dCkKKyAg
ICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bUxpc3RDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbUxpc3RDaHJvbWl1bS5oCmluZGV4IGMxMzdjYWQ0YmZlMzMyYjkxMTk0YjBiOWE4
YWQ2NWFhNWQ1MzExODkuLjkyY2QwYmRkZjA1ODU4NGU0ZDQyZDQ5MTZjZTdlODZiZjFjMDNiOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmgKQEAgLTUwLDkgKzUwLDkgQEAgY2xhc3Mg
RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bSA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtTGlz
dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3RD
aHJvbWl1bT4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogCi0gICAgLy8gRGF0YVRyYW5zZmVySXRlbUxpc3Qgb3ZlcnJpZGVzLgogICAgIHZp
cnR1YWwgc2l6ZV90IGxlbmd0aCgpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgVjhEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aW5kZXhlZFByb3BlcnR5RGVsZXRlciB0byBnZXQg
dGhpcyBjYWxsZWQuCiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOwogICAgIHZp
cnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4
Y2VwdGlvbkNvZGUmKTsKQEAgLTYxLDYgKzYxLDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBDbGlwYm9hcmRDaHJvbWl1bSogY2xpcGJvYXJkQ2hy
b21pdW0oKSBjb25zdDsKKworICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgLy8g
SW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50LgorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIG1fY29udGV4dDsKKyAgICBWZWN0b3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+ID4gbV9p
dGVtczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHAKaW5kZXggNDVmYjZi
Yzc2MDc5NDAxY2I5ZmZiN2Y4MjQ0ZGIyOGRhMTJiMzJiNy4uMDY4MTk4MjgzNDk0Mjc1ZWMzYTE5
YTFiM2E0ZWFlMzc0ZjZmNDkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHAKQEAgLTQwLDEwICs0MCw3MyBAQCBQYXNz
UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ+IERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmNy
ZWF0ZShQYXNzUmVmUHRyPENsaQogfQogCiBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpEYXRhVHJh
bnNmZXJJdGVtTGlzdFF0KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IERhdGFUcmFuc2Zlckl0ZW1MaXN0KG93bmVyLCAg
Y29udGV4dCkKKyAgICA6IG1fb3duZXIoY2xpcGJvYXJkKQorICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCiB7CiB9CiAKK3NpemVfdCBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpsZW5ndGgoKQorewor
ICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1zLnNpemUoKTsKK30KKworUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjppdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIgfHwg
aW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1faXRl
bXNbaW5kZXhdOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmRlbGV0ZUl0ZW0o
dW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fb3du
ZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5kZXggPj0g
bGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMucmVtb3ZlKGluZGV4KTsK
K30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpjbGVhcigpCit7CisgICAgaWYgKG1f
b3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2l0ZW1zLmNsZWFyKCk7CisKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0
OjphZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJs
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gT25seSBvbmUgJ3N0cmluZycgaXRlbSB3aXRo
IGEgZ2l2ZW4gdHlwZSBpcyBhbGxvd2VkIGluIHRoZSBjb2xsZWN0aW9uLgorICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9pdGVtcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9pdGVt
c1tpXS0+dHlwZSgpID09IHR5cGUgJiYgbV9pdGVtc1tpXS0+a2luZCgpID09IERhdGFUcmFuc2Zl
ckl0ZW06OmtpbmRTdHJpbmcpIHsKKyAgICAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2l0ZW1zLmFw
cGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV9vd25lciwgbV9jb250ZXh0LCBkYXRhLCB0
eXBlKSk7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6YWRkKFBhc3NSZWZQdHI8
RmlsZT4gZmlsZSkKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3Jp
dGFibGUgfHwgIWZpbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMuYXBwZW5kKERh
dGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX293bmVyLCBtX2NvbnRleHQsIGZpbGUpKTsKK30KKwog
dm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjphZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJp
bmcmIHR5cGUpCiB7CiAgICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbVF0OjpjcmVh
dGVGcm9tUGFzdGVib2FyZChtX293bmVyLCBtX2NvbnRleHQsIHR5cGUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaAppbmRleCAx
NDQyNTYzZWU4ZjRlMGZhODYwY2I2NzU5ODk1YzExYjk2NjBmMGU0Li5jOGE4ZGJjOTI1ZjMzMzMy
NGJjNTc1YWY2YWU4NGRmYTI5ZWY5NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oCkBAIC00MiwxMSArNDIsMjQgQEAgY2xh
c3MgRGF0YVRyYW5zZmVySXRlbUxpc3RRdCA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtTGlzdCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3RRdD4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwog
CisgICAgdmlydHVhbCBzaXplX3QgbGVuZ3RoKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERh
dGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZpcnR1YWwgdm9pZCBjbGVhcigpOworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5n
JiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkKFBhc3NSZWZQdHI8RmlsZT4pOworCisKICAgICBmcmllbmQgY2xhc3MgQ2xpcGJv
YXJkUXQ7CiBwcml2YXRlOgogICAgIERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
YWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0eXBlKTsKKworICAgIFJlZlB0cjxDbGlw
Ym9hcmQ+IG1fb3duZXI7CisgICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50Lgor
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBWZWN0b3I8UmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW0+ID4gbV9pdGVtczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1RdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtUXQuY3BwCmluZGV4IDJhYjc3YWNiZDhh
N2U0YWI0NGIzNjRkZTJlZDQyYjkzYmI0NzBmYzYuLjlmZjYyMWVmNDk4MzQ5NmEwM2I4ZmE3Njhm
OTM4NzZjOThiMWVhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Rh
dGFUcmFuc2Zlckl0ZW1RdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0
YVRyYW5zZmVySXRlbVF0LmNwcApAQCAtNDEsMTcgKzQxLDE3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtOjpj
cmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdHlwZSkKK1Bhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbVF0PiBEYXRhVHJhbnNmZXJJdGVtUXQ6OmNyZWF0ZShQYXNzUmVmUHRy
PENsaXBib2FyZD4gb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbVF0KG93bmVyLCBjb250ZXh0LCBEYXRhVHJhbnNm
ZXJJdGVtUXQ6OkludGVybmFsU291cmNlLCBraW5kU3RyaW5nLCB0eXBlLCBkYXRhKSk7CiB9CiAK
LVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
YXNzUmVmUHRyPEZpbGU+IGZpbGUpCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1RdD4gRGF0
YVRyYW5zZmVySXRlbVF0OjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxGaWxlPiBmaWxlKQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbVF0KG93bmVyLCBjb250
ZXh0LCBEYXRhVHJhbnNmZXJJdGVtUXQ6OkludGVybmFsU291cmNlLCBmaWxlKSk7CiB9CkBAIC03
MSw4ICs3MSwxMCBAQCBEYXRhVHJhbnNmZXJJdGVtUXQ6OkRhdGFUcmFuc2Zlckl0ZW1RdChQYXNz
UmVmUHRyPENsaXBib2FyZD4gb3duZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBEYXRhU291cmNlIHNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBkYXRhKQotICAg
IDogRGF0YVRyYW5zZmVySXRlbShvd25lciwga2luZCwgdHlwZSkKKyAgICA6IG1fb3duZXIob3du
ZXIpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fa2luZChraW5kKQorICAgICwg
bV90eXBlKHR5cGUpCiAgICAgLCBtX2RhdGFTb3VyY2Uoc291cmNlKQogICAgICwgbV9kYXRhKGRh
dGEpCiB7CkBAIC04MiwxNCArODQsMTYgQEAgRGF0YVRyYW5zZmVySXRlbVF0OjpEYXRhVHJhbnNm
ZXJJdGVtUXQoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTb3VyY2Ugc291cmNlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxGaWxlPiBm
aWxlKQotICAgIDogRGF0YVRyYW5zZmVySXRlbShvd25lciwgRGF0YVRyYW5zZmVySXRlbTo6a2lu
ZEZpbGUsIGZpbGUuZ2V0KCkgPyBmaWxlLT50eXBlKCkgOiAiIikKKyAgICA6IG1fb3duZXIob3du
ZXIpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fa2luZChraW5kRmlsZSkKKyAg
ICAsIG1fdHlwZShmaWxlLmdldCgpID8gZmlsZS0+dHlwZSgpIDogIiIpOwogICAgICwgbV9zb3Vy
Y2Uoc291cmNlKQogICAgICwgbV9maWxlKGZpbGUpCiB7CiB9CiAKLXZvaWQgRGF0YVRyYW5zZmVy
SXRlbVF0OjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjaykK
K3ZvaWQgRGF0YVRyYW5zZmVySXRlbVF0OjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPiBjYWxsYmFjaykgY29uc3QKIHsKICAgICBpZiAoKG93bmVyKCktPnBvbGljeSgpICE9
IENsaXBib2FyZFJlYWRhYmxlICYmIG93bmVyKCktPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRh
YmxlKQogICAgICAgICB8fCBraW5kKCkgIT0ga2luZFN0cmluZykKQEAgLTExNyw3ICsxMjEsNyBA
QCB2b2lkIERhdGFUcmFuc2Zlckl0ZW1RdDo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdD
YWxsYmFjaz4gY2FsbGJhY2spCiAgICAgY2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250
ZXh0LCBkYXRhKTsKIH0KIAotUGFzc1JlZlB0cjxCbG9iPiBEYXRhVHJhbnNmZXJJdGVtUXQ6Omdl
dEFzRmlsZSgpCitQYXNzUmVmUHRyPEJsb2I+IERhdGFUcmFuc2Zlckl0ZW1RdDo6Z2V0QXNGaWxl
KCkgY29uc3QKIHsKICAgICBpZiAoa2luZCgpID09IGtpbmRGaWxlICYmIG1fZGF0YVNvdXJjZSA9
PSBJbnRlcm5hbFNvdXJjZSkKICAgICAgICAgcmV0dXJuIG1fZmlsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1RdC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbVF0LmgKaW5kZXggZDFmNThlNWNhNzgw
YzJkZGQ3MmRmODIwYTc1NWYzODZjZWE3OGM5Zi4uZGU4OGI4YWQyZDk2ZTQ2NDk3ZThiMzM2YjI5
OGQ1MTVlNjc2MWVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0
YVRyYW5zZmVySXRlbVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRy
YW5zZmVySXRlbVF0LmgKQEAgLTM5LDIwICszOSwyNSBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogCiBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtUXQgOiBwdWJsaWMgRGF0YVRyYW5zZmVy
SXRlbSB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbVF0
PiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1RdD4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJv
YXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RmlsZT4pOwog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1RdD4gY3JlYXRlRnJvbVBhc3Rl
Ym9hcmQoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNT
dHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4pOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxCbG9iPiBnZXRBc0ZpbGUoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdCB7
IHJldHVybiBtX2tpbmQ7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CisgICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3Ry
aW5nQ2FsbGJhY2s+KSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNG
aWxlKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIERhdGFUcmFuc2Zlckl0
ZW1MaXN0UXQ7CisKICAgICBlbnVtIERhdGFTb3VyY2UgewogICAgICAgICBQYXN0ZWJvYXJkU291
cmNlLAogICAgICAgICBJbnRlcm5hbFNvdXJjZQogICAgIH07CiAKLSAgICBmcmllbmQgY2xhc3Mg
RGF0YVRyYW5zZmVySXRlbTsKLQogICAgIERhdGFUcmFuc2Zlckl0ZW1RdChQYXNzUmVmUHRyPENs
aXBib2FyZD4gb3duZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhU291cmNlLApAQCAtNjIsNyArNjcs
MTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxGaWxlPik7CiAKKyAgICBjb25zdCBSZWZQdHI8
Q2xpcGJvYXJkPiBtX293bmVyOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4
dDsKKyAgICBjb25zdCBTdHJpbmcgbV9raW5kOworICAgIGNvbnN0IFN0cmluZyBtX3R5cGU7CiAg
ICAgY29uc3QgRGF0YVNvdXJjZSBtX2RhdGFTb3VyY2U7CiAgICAgY29uc3QgU3RyaW5nIG1fZGF0
YTsKICAgICBSZWZQdHI8RmlsZT4gbV9maWxlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>