<?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>72336</bug_id>
          
          <creation_ts>2011-11-14 17:22:50 -0800</creation_ts>
          <short_desc>Start migrating typed array impl types to WTF</short_desc>
          <delta_ts>2011-11-14 17:52:57 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502516</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-14 17:22:50 -0800</bug_when>
    <thetext>Start migrating typed array impl types to WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502524</commentid>
    <comment_count>1</comment_count>
      <attachid>115070</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-14 17:26:30 -0800</bug_when>
    <thetext>Created attachment 115070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502541</commentid>
    <comment_count>2</comment_count>
      <attachid>115070</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-11-14 17:37:14 -0800</bug_when>
    <thetext>Comment on attachment 115070
Patch

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

r=me

&gt; Source/WebCore/html/canvas/ArrayBuffer.cpp:33
&gt; +using namespace WebCore;

Will you be able to remove this eventually? If not, you have a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502547</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-14 17:43:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 115070 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115070&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/html/canvas/ArrayBuffer.cpp:33
&gt; &gt; +using namespace WebCore;
&gt; 
&gt; Will you be able to remove this eventually? If not, you have a problem.

Yup, I&apos;m just doing the changes in small chunks, and it&apos;s easier to do the WTF namespace move first before the refactoring to remove the webcore dependencies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502553</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-14 17:52:57 -0800</bug_when>
    <thetext>Committed r100227: &lt;http://trac.webkit.org/changeset/100227&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115070</attachid>
            <date>2011-11-14 17:26:30 -0800</date>
            <delta_ts>2011-11-14 17:37:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72336-20111114172629.patch</filename>
            <type>text/plain</type>
            <size>44484</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
MjgyZWJmOTA2OTY5M2E2MGVjNjEzOTdlNDhjNzYzODFkMDI2ZWU1Li4yOTczNWU4OWY5YjA5NWYx
YjY5NDM5N2IzYmM0ZmYwMjkyYmMwMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMS0xMS0xNCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IG1pZ3JhdGluZyB0eXBlZCBhcnJheSBpbXBsIHR5cGVzIHRvIFdURgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHlwZWQg
YXJyYXkgaW1wbHMgdG8gV1RGIGZvcndhcmRpbmcgaGVhZGVyLgorCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKwogMjAxMS0xMS0xNCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJlbW92ZSB0aGUgQ1NTM19GTEVYQk9YIGNvbXBpbGUgdGltZSBmbGFnIGFuZCBl
bmFibGUgb24gYWxsIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiOWRhZTM4MDYwY2YxYmJhN2ZhMTI1
YzU4MDIxNTdiZDM1MDdjMS4uNDAwMzZiZWU4NTcyMGExYWRjNDIyODA2OGJjMzQxODM4NDRlMGUw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDExLTExLTE0ICBPbGl2ZXIgSHVudCAg
PG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgbWlncmF0aW5nIHR5cGVkIGFycmF5
IGltcGwgdHlwZXMgdG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MjMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgdHlwZWQgYXJyYXlzIGZyb20gV2ViQ29yZSBuYW1lc3BhY2UgdG8gV1RG
LCBhbmQKKyAgICAgICAgc3RhcnQgcmVkdWNpbmcgZGVwZW5kZW5jaWVzIG9uIFdlYkNvcmUgdHlw
ZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0V2ViR0xBcnJheUhlbHBlcik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChJc1R5cGVkQXJyYXlUeXBl
KToKKyAgICAgICAgKEFkZENsYXNzRm9yd2FyZElmTmVlZGVkKToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtOgorICAgICAgICAoSXNUeXBlZEFycmF5VHlwZSk6CisgICAgICAgICogZmlsZWFwaS9G
aWxlUmVhZGVyLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmg6CisgICAg
ICAgICogZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5oOgorICAgICAgICAqIGZpbGVhcGkvV2ViS2l0
QmxvYkJ1aWxkZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3Bw
OgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OnNldEltcGwpOgorICAgICAgICAoV1RG
OjpBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1wbCk6CisgICAgICAgIChXVEY6OkFycmF5QnVm
ZmVyVmlldzo6emVyb1JhbmdlSW1wbCk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6
bmV1dGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0Zsb2F0MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OnNldCk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9GbG9hdDY0QXJyYXkuaDoKKyAgICAgICAgKFdURjo6RmxvYXQ2NEFycmF5OjpzZXQpOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0ludDE2QXJyYXkuaDoKKyAgICAgICAgKFdURjo6SW50MTZBcnJheTo6c2V0KToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbnQz
MkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OnNldCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvSW50OEFycmF5LmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbnQ4QXJyYXku
aDoKKyAgICAgICAgKFdURjo6SW50OEFycmF5OjpzZXQpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0ludGVncmFsVHlwZWRBcnJheUJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9UeXBlZEFy
cmF5QmFzZS5oOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6c2V0KToKKyAgICAgICAg
KFdURjo6VHlwZWRBcnJheUJhc2U6OnNldFJhbmdlKToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJh
eUJhc2U6Onplcm9SYW5nZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvVWludDE2QXJyYXkuY3Bw
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5Lmg6CisgICAgICAgIChXVEY6OlVp
bnQxNkFycmF5OjpzZXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpVaW50
MzJBcnJheTo6c2V0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5Lmg6CisgICAgICAgIChXVEY6OlVpbnQ4QXJy
YXk6OnNldCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaDoKKyAgICAgICAg
KiBwYWdlL0NyeXB0by5oOgorICAgICAgICAqIHdlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmg6
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdWZmZXI6OkF1ZGlvQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVy
Ojp6ZXJvKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiB3
ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmg6CisgICAgICAgICogd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5oOgorICAgICAgICAqIHdlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmg6
CisgICAgICAgICogd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaDoKKyAgICAgICAgKiB3ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgICogd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDoKKyAg
ICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKwogMjAxMS0xMS0xNCAgQWRyaWVubmUgV2Fs
a2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUGlwZSBjb21wb3Np
dG9yIGNvbW1pdC9zd2FwIHVwIHRvIFdlYldpZGdldENsaWVudApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0ZvcndhcmQuaAppbmRleCAyNzU2MDRlMWQ2YTZiMGNjOGM5MGViMTI2MGU1ZGI4ZWFkZjQzY2I3
Li5jMTVkMDgxODNhNTUzODRkOGUxNGMxNDE2ZGM4OTZlZmE1NDM3ODg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0ZvcndhcmQuaApAQCAtMzIsMTYgKzMyLDI2IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NSZWZQdHI7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgUmVmUHRyOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVf
dCBpbmxpbmVDYXBhY2l0eT4gY2xhc3MgVmVjdG9yOwotCisgICAgCisgICAgY2xhc3MgQXJyYXlC
dWZmZXI7CisgICAgY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwogICAgIGNsYXNzIEF0b21pY1N0cmlu
ZzsKICAgICBjbGFzcyBBdG9taWNTdHJpbmdJbXBsOwogICAgIGNsYXNzIENTdHJpbmc7CiAgICAg
Y2xhc3MgRGVjb2RlcjsKICAgICBjbGFzcyBFbmNvZGVyOworICAgIGNsYXNzIEZsb2F0MzJBcnJh
eTsKKyAgICBjbGFzcyBGbG9hdDY0QXJyYXk7CisgICAgY2xhc3MgSW50OEFycmF5OworICAgIGNs
YXNzIEludDE2QXJyYXk7CisgICAgY2xhc3MgSW50MzJBcnJheTsKICAgICBjbGFzcyBTdHJpbmc7
CiAgICAgY2xhc3MgU3RyaW5nQnVmZmVyOwogICAgIGNsYXNzIFN0cmluZ0J1aWxkZXI7CiAgICAg
Y2xhc3MgU3RyaW5nSW1wbDsKKyAgICBjbGFzcyBVaW50OEFycmF5OworICAgIGNsYXNzIFVpbnQx
NkFycmF5OworICAgIGNsYXNzIFVpbnQzMkFycmF5OwogfQogCiB1c2luZyBXVEY6Okxpc3RSZWZQ
dHI7CkBAIC01MywxNCArNjMsMjQgQEAgdXNpbmcgV1RGOjpQYXNzUmVmUHRyOwogdXNpbmcgV1RG
OjpSZWZQdHI7CiB1c2luZyBXVEY6OlZlY3RvcjsKIAordXNpbmcgV1RGOjpBcnJheUJ1ZmZlcjsK
K3VzaW5nIFdURjo6QXJyYXlCdWZmZXJWaWV3OwogdXNpbmcgV1RGOjpBdG9taWNTdHJpbmc7CiB1
c2luZyBXVEY6OkF0b21pY1N0cmluZ0ltcGw7CiB1c2luZyBXVEY6OkNTdHJpbmc7CiB1c2luZyBX
VEY6OkVuY29kZXI7CiB1c2luZyBXVEY6OkRlY29kZXI7Cit1c2luZyBXVEY6OkZsb2F0MzJBcnJh
eTsKK3VzaW5nIFdURjo6RmxvYXQ2NEFycmF5OwordXNpbmcgV1RGOjpJbnQ4QXJyYXk7Cit1c2lu
ZyBXVEY6OkludDE2QXJyYXk7Cit1c2luZyBXVEY6OkludDMyQXJyYXk7CiB1c2luZyBXVEY6OlN0
cmluZzsKIHVzaW5nIFdURjo6U3RyaW5nQnVmZmVyOwogdXNpbmcgV1RGOjpTdHJpbmdCdWlsZGVy
OwogdXNpbmcgV1RGOjpTdHJpbmdJbXBsOwordXNpbmcgV1RGOjpVaW50OEFycmF5OwordXNpbmcg
V1RGOjpVaW50MTZBcnJheTsKK3VzaW5nIFdURjo6VWludDMyQXJyYXk7CiAKICNlbmRpZiAvLyBX
VEZfRm9yd2FyZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCA0ZjhhNGY0YTc5ZDRlZmNhMWZiOTBkZDVjYzg2ZDFh
NzVjOTU3MWE5Li45ZmMxYmQwNzNkNjE3N2U5NTU2NmY0NmMyYTA5YzVlNGM1MTFkNmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmgKQEAgLTUxLDkgKzUxLDkgQEAgSlNDOjpKU1ZhbHVlIHNldFdlYkdMQXJyYXlIZWxwZXIo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFQqIGltcGwsIFQqICgqY29udmVyc2lvbkYKICAgICAgICAg
dW5zaWduZWQgb2Zmc2V0ID0gMDsKICAgICAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA9
PSAyKQogICAgICAgICAgICAgb2Zmc2V0ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVj
KTsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGltcGwtPnNldChhcnJh
eSwgb2Zmc2V0LCBlYyk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAg
ICAgIGlmICghaW1wbC0+c2V0KGFycmF5LCBvZmZzZXQpKQorICAgICAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKwogICAgICAgICByZXR1cm4gSlNDOjpqc1Vu
ZGVmaW5lZCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhZmY4MjMwNmE0OGIyNDNmM2ZkZjczNWRiNDg2
NGE3N2NiODhmNGRjLi45Zjk4MjQ0YTllMDFhMmNiYzAyM2MzNWJiYTBlOWIwN2QzN2RhOWFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtMzQ0LDYgKzM0NCwxNiBAQCBzdWIgSXNTY3JpcHRQcm9maWxlVHlwZQogICAgIHJl
dHVybiAwOwogfQogCitzdWIgSXNUeXBlZEFycmF5VHlwZQoreworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5cGUg
ZXEgIkFycmF5QnVmZmVyVmlldyIpKTsKKyAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJVaW50
OEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDMy
QXJyYXkiKSk7CisgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiSW50OEFycmF5Iikgb3IgKCR0
eXBlIGVxICJJbnQxNkFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQzMkFycmF5IikpOworICAgIHJl
dHVybiAxIGlmICgoJHR5cGUgZXEgIkZsb2F0MzJBcnJheSIpIG9yICgkdHlwZSBlcSAiRmxvYXQ2
NEFycmF5IikpOworICAgIHJldHVybiAwOworfQorCiBzdWIgQWRkVHlwZWRlZkZvclNjcmlwdFBy
b2ZpbGVUeXBlCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKQEAgLTM1Nyw3ICszNjcsNyBAQCBz
dWIgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKICAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0
OwogCiAgICAgIyBTVkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRlZnMgdG8g
U1ZHQW5pbWF0ZWRUZW1wbGF0ZSwgc28gZG9uJ3QgdXNlIGNsYXNzIGZvcndhcmRzIGZvciB0aGVt
IQotICAgIHVubGVzcyAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbXBsQ2xh
c3NOYW1lKSBvciBJc1NjcmlwdFByb2ZpbGVUeXBlKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgIHVu
bGVzcyAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbXBsQ2xhc3NOYW1lKSBv
ciBJc1NjcmlwdFByb2ZpbGVUeXBlKCRpbXBsQ2xhc3NOYW1lKSBvciBJc1R5cGVkQXJyYXlUeXBl
KCRpbXBsQ2xhc3NOYW1lKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3Mg
JGltcGxDbGFzc05hbWU7XG5cbiIpOwogICAgICMgU2NyaXB0UHJvZmlsZSBhbmQgU2NyaXB0UHJv
ZmlsZU5vZGUgYXJlIHR5cGVkZWZzIHRvIEpTQzo6UHJvZmlsZSBhbmQgSlNDOjpQcm9maWxlTm9k
ZS4KICAgICB9IGVsc2lmIChJc1NjcmlwdFByb2ZpbGVUeXBlKCRpbXBsQ2xhc3NOYW1lKSkgewpA
QCAtMjIyMSwxMCArMjIzMSwxOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIjtcbn1cbiIpOwogICAgIH0KIAotICAgIGlmICgkcGFyZW50
Q2xhc3NOYW1lIGVxICJKU0FycmF5QnVmZmVyVmlldyIpIHsKKyAgICBpZiAoJHBhcmVudENsYXNz
TmFtZSBlcSAiSlNBcnJheUJ1ZmZlclZpZXciIGFuZCBJc1R5cGVkQXJyYXlUeXBlKCRpbXBsVHlw
ZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICB2b2lkICR7aW1w
bFR5cGV9OjpuZXV0ZXJCaW5kaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7Ci0gICAgfQor
fQorbmFtZXNwYWNlIFdURiB7Cit2b2lkICR7aW1wbFR5cGV9OjpuZXV0ZXJCaW5kaW5nKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7Cit9Cit9CituYW1lc3BhY2UgV2ViQ29yZSB7
CitFTkQKKyAgICB9IGVsc2lmICgkcGFyZW50Q2xhc3NOYW1lIGVxICJKU0FycmF5QnVmZmVyVmll
dyIpIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKK3ZvaWQgJHtpbXBsVHlw
ZX06Om5ldXRlckJpbmRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsKK30KIEVORAogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQppbmRleCAzMWUzZDVjMjg0ZGFiZGVlYjFjOTlkYjdjYjgzMDljZTI4MjdiODYwLi44
YjE4YWEyMWMxOWRjNzU4NGQ1MWRjNWNiM2ZmMzQ2YjRjMzMzYWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjEyNyw2
ICsyMTI3LDE3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZAogICAgIH0KIH0KIAorc3ViIElzVHlwZWRBcnJheVR5cGUKK3sKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0
eXBlIGVxICJBcnJheUJ1ZmZlclZpZXciKSk7CisgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAi
VWludDhBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDE2QXJyYXkiKSBvciAoJHR5cGUgZXEgIlVp
bnQzMkFycmF5IikpOworICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkludDhBcnJheSIpIG9y
ICgkdHlwZSBlcSAiSW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiSW50MzJBcnJheSIpKTsKKyAg
ICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJGbG9hdDMyQXJyYXkiKSBvciAoJHR5cGUgZXEgIkZs
b2F0NjRBcnJheSIpKTsKKyAgICByZXR1cm4gMDsKK30KKworCiBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKQEAgLTI2ODksNyArMjcwMCwxOSBA
QCBFTkQKIAogICAgIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMoJGRhdGFOb2RlLCAkaW50ZXJmYWNl
TmFtZSwgJGNsYXNzTmFtZSwgJG5hdGl2ZVR5cGUsICRzZXJpYWxpemVkQXR0cmlidXRlKTsKIAot
ICAgIGlmIChJc1N1YlR5cGUoJGRhdGFOb2RlLCAiQXJyYXlCdWZmZXJWaWV3IikgJiYgbm90ICRp
bnRlcmZhY2VOYW1lIGVxICJBcnJheUJ1ZmZlclZpZXciKSB7CisgICAgaWYgKElzU3ViVHlwZSgk
ZGF0YU5vZGUsICJBcnJheUJ1ZmZlclZpZXciKSAmJiBJc1R5cGVkQXJyYXlUeXBlKCRpbnRlcmZh
Y2VOYW1lKSAmJiBub3QgJGludGVyZmFjZU5hbWUgZXEgIkFycmF5QnVmZmVyVmlldyIpIHsKKyAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKKyAgICB9CisgICAgbmFtZXNwYWNlIFdU
RiB7CisgICAgdm9pZCAke25hdGl2ZVR5cGV9OjpuZXV0ZXJCaW5kaW5nKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBib3VuZCA9IHRvVjgo
dGhpcyk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KGJvdW5kLkFzPHY4
OjpPYmplY3Q+KCkpOworICAgICAgICBvYmplY3QtPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRl
cm5hbEFycmF5RGF0YSgwLCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5LCAwKTsKKyAgICB9CisgICAg
fQorICAgIG5hbWVzcGFjZSBXZWJDb3JlIHsKK0VORAorICAgIH0gZWxzaWYgKElzU3ViVHlwZSgk
ZGF0YU5vZGUsICJBcnJheUJ1ZmZlclZpZXciKSAmJiBub3QgJGludGVyZmFjZU5hbWUgZXEgIkFy
cmF5QnVmZmVyVmlldyIpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKICAg
ICB2b2lkICR7bmF0aXZlVHlwZX06Om5ldXRlckJpbmRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopIHsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGJvdW5kID0gdG9WOCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKaW5kZXggOTEwNzk3ZDlmZTc0NzFhNDEwYTQ2
ZDBlYjlmZDFkYjljZTkxYWM4YS4uODA0ZGQyOTFiMjNmOGEzZWQ2NWY1NzY5MWViNzlhOWVkMjE5
MDg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKQEAgLTQ0LDcgKzQ0LDYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBcnJheUJ1ZmZlcjsKIGNsYXNzIEJsb2I7
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5oCmluZGV4IGY2OTllYjM5NmRjM2FhZDcwN2FiMjJiNGZmNWU1MTFl
MzA5NjgwZjYuLjM0ZjU0Mzg3YjJlMzAzNGE3ZTgzMjU5ZDEyNjA3N2U0M2M4Yjc3ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oCkBAIC00Miw3ICs0Miw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXJyYXlCdWZmZXI7CiBjbGFzcyBCbG9i
OwogY2xhc3MgRmlsZVJlYWRlckxvYWRlckNsaWVudDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5j
LmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmgKaW5kZXggZGQzNGIy
OWM3NzNjNWFhODQ4MGEwYTk1MjUyZmU2ZDFhMWY5NzNlYi4uOWZlNWMzMDAzYjVkZTc4YjMzMTJj
OGIwM2ZjOGU3NzJjOTRjNDlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5
bmMuaApAQCAtMzksNyArMzksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFy
cmF5QnVmZmVyOwogY2xhc3MgQmxvYjsKIGNsYXNzIEZpbGVSZWFkZXJMb2FkZXI7CiBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9XZWJLaXRCbG9iQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9i
QnVpbGRlci5oCmluZGV4IDM0Mzk2ZmU0ZDhmNWE3ZWZlYmYxZGE5ODc3YjRkY2VlNDM0YjMyZjUu
Ljc2YjkwYmVhYjRiNjViZWQ1ZGE3OGE0ODYwMzRmYzg5ZGQzMjA1M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmgKQEAgLTM3LDcgKzM3LDYgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBcnJheUJ1ZmZlcjsKIGNsYXNzIEJsb2I7CiBjbGFz
cyBUZXh0RW5jb2Rpbmc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggYmFkMWQ4NjY3OGNhMTBmZTRhZDliMTFhNjQyMWZlNGQ5ODkzYzFjZS4uNGRiZDdhZjUzYmNi
ZThmZjI5ODExY2FlNzM5MTIyYTNiNWVlNDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTU5LDcgKzU5LDYgQEAgY2xhc3MgTWVkaWFFcnJvcjsKIGNsYXNzIEtV
Ukw7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFVpbnQ4
QXJyYXk7CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiBjbGFzcyBXaWRnZXQ7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcAppbmRl
eCBiZDY1ZDAxZmYzNTEzMDllYzQwNTNlOTk5NDdlNTYyMjBkNzdkOWE3Li4xOGYyMTBjZWFhNWU0
MTZlYTBiNmVlNTU3ZjQ1ZmVlMTdkMDEwODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQXJyYXlCdWZmZXIuY3BwCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGludCBjbGFtcFZhbHVlKGludCB4LCBpbnQgbGVm
dCwgaW50IHJpZ2h0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmgK
aW5kZXggMTJlM2U3YjlmNmE4OGM0OTc3MTA4MDBmNTYzMDEyODJhYzNlNzIzMC4uNzQxYmRhMGFm
YWFlNWEwZjVmNDBkMzI3YTg1ODNhYzgyZmZhYjVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9BcnJheUJ1ZmZlci5oCkBAIC0yOCwxNSArMjgsMTkgQEAKIAogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBBcnJheUJ1ZmZlcjsKLWNsYXNzIEFycmF5QnVmZmVyVmlldzsKIGNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7
CiAKK30KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworY2xhc3MgQXJy
YXlCdWZmZXJWaWV3OworCiBjbGFzcyBBcnJheUJ1ZmZlckNvbnRlbnRzIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRlbnRzKTsKIHB1YmxpYzoKQEAgLTg5LDcgKzkz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkVmlldyhBcnJheUJ1ZmZlclZpZXcqKTsKICAgICB2
b2lkIHJlbW92ZVZpZXcoQXJyYXlCdWZmZXJWaWV3Kik7CiAKLSAgICB2b2lkIHRyYW5zZmVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBBcnJheUJ1ZmZlckNvbnRlbnRzJiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZvaWQgdHJhbnNmZXIoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEFycmF5QnVmZmVyQ29udGVudHMmLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAKICAgICB+
QXJyYXlCdWZmZXIoKSB7IH0KIApAQCAtMTAyLDYgKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgQXJy
YXlCdWZmZXJWaWV3KiBtX2ZpcnN0VmlldzsKIH07CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkFycmF5QnVmZmVyOwogCiAjZW5kaWYg
Ly8gQXJyYXlCdWZmZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVm
ZmVyVmlldy5jcHAKaW5kZXggN2ZlNDBhNTZiN2VlOTQ0NmM2OWM2MDYwMjU5Zjk5MjVhZTI2N2Rh
Ni4uNmFkZTNhNjZkYjcxOTFlOTI2YmY3MzFlYmU0NDhjMzNmODE0YmQ3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3BwCkBAIC0yOSw3ICsyOSw3
IEBACiAjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogCiBBcnJheUJ1ZmZlclZp
ZXc6OkFycmF5QnVmZmVyVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQpCkBAIC00Nyw0NiArNDcsNDYg
QEAgQXJyYXlCdWZmZXJWaWV3Ojp+QXJyYXlCdWZmZXJWaWV3KCkKICAgICAgICAgbV9idWZmZXIt
PnJlbW92ZVZpZXcodGhpcyk7CiB9CiAKLXZvaWQgQXJyYXlCdWZmZXJWaWV3OjpzZXRJbXBsKEFy
cmF5QnVmZmVyVmlldyogYXJyYXksIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorYm9vbCBBcnJheUJ1ZmZlclZpZXc6OnNldEltcGwoQXJyYXlCdWZmZXJWaWV3KiBhcnJh
eSwgdW5zaWduZWQgYnl0ZU9mZnNldCkKIHsKICAgICBpZiAoYnl0ZU9mZnNldCA+IGJ5dGVMZW5n
dGgoKQogICAgICAgICB8fCBieXRlT2Zmc2V0ICsgYXJyYXktPmJ5dGVMZW5ndGgoKSA+IGJ5dGVM
ZW5ndGgoKQogICAgICAgICB8fCBieXRlT2Zmc2V0ICsgYXJyYXktPmJ5dGVMZW5ndGgoKSA8IGJ5
dGVPZmZzZXQpIHsKICAgICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwot
ICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKICAgICBjaGFyKiBiYXNlID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KGJhc2VBZGRyZXNzKCkpOwogICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZzZXQsIGFycmF5LT5i
YXNlQWRkcmVzcygpLCBhcnJheS0+Ynl0ZUxlbmd0aCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorYm9vbCBBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQpCiB7CiAgICAgaWYg
KGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKICAgICAgICAgfHwgYnl0ZU9mZnNldCArIGRhdGFC
eXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCiAgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBkYXRhQnl0
ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKICAgICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBv
ciBvdmVyZmxvdwotICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwotICAgICAgICByZXR1cm47
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBjaGFyKiBiYXNlID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwogICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZz
ZXQsIGRhdGEsIGRhdGFCeXRlTGVuZ3RoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBB
cnJheUJ1ZmZlclZpZXc6Onplcm9SYW5nZUltcGwodW5zaWduZWQgYnl0ZU9mZnNldCwgc2l6ZV90
IHJhbmdlQnl0ZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIEFycmF5QnVmZmVyVmll
dzo6emVyb1JhbmdlSW1wbCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaXplX3QgcmFuZ2VCeXRlTGVu
Z3RoKQogewogICAgIGlmIChieXRlT2Zmc2V0ID4gYnl0ZUxlbmd0aCgpCiAgICAgICAgIHx8IGJ5
dGVPZmZzZXQgKyByYW5nZUJ5dGVMZW5ndGggPiBieXRlTGVuZ3RoKCkKICAgICAgICAgfHwgYnl0
ZU9mZnNldCArIHJhbmdlQnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKICAgICAgICAgLy8gT3V0
IG9mIHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwotICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJS
OwotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBj
aGFyKiBiYXNlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwogICAgIG1lbXNl
dChiYXNlICsgYnl0ZU9mZnNldCwgMCwgcmFuZ2VCeXRlTGVuZ3RoKTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogdm9pZCBBcnJheUJ1ZmZlclZpZXc6OmNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChp
bnQgc3RhcnQsIGludCBlbmQsIHVuc2lnbmVkIGFycmF5U2l6ZSwKQEAgLTEwNiw3ICsxMDYsNyBA
QCB2b2lkIEFycmF5QnVmZmVyVmlldzo6Y2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFy
dCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYQogICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZW5kIC0gc3RhcnQpOwogfQogCi12b2lkIEFycmF5QnVmZmVyVmlldzo6bmV1dGVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKQordm9pZCBBcnJheUJ1ZmZlclZpZXc6Om5ldXRlcihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKIHsKICAgICBtX2J1ZmZlciA9IDA7CiAgICAg
bV9ieXRlT2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0FycmF5QnVmZmVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZm
ZXJWaWV3LmgKaW5kZXggMmM2Zjc4OWJiZmU1NjdlOWU1NGViNzY0YzU2YzRmMDk5Y2JiYWUyZi4u
Y2JkNDQxODBmNjUzYTBlOGM2ZDM0OWM4YzE3ZDMwMWVjYjlkMzJjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKQEAgLTM0LDkgKzM0LDcgQEAKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworbmFtZXNwYWNl
IFdURiB7CiAKIGNsYXNzIEFycmF5QnVmZmVyVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5
QnVmZmVyVmlldz4gewogICBwdWJsaWM6CkBAIC03MiwxMSArNzAsMTEgQEAgY2xhc3MgQXJyYXlC
dWZmZXJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXJWaWV3PiB7CiAgIHByb3Rl
Y3RlZDoKICAgICBBcnJheUJ1ZmZlclZpZXcoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVy
LCB1bnNpZ25lZCBieXRlT2Zmc2V0KTsKIAotICAgIHZvaWQgc2V0SW1wbChBcnJheUJ1ZmZlclZp
ZXcqIGFycmF5LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAg
Ym9vbCBzZXRJbXBsKEFycmF5QnVmZmVyVmlldyosIHVuc2lnbmVkIGJ5dGVPZmZzZXQpOwogCi0g
ICAgdm9pZCBzZXRSYW5nZUltcGwoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVu
Z3RoLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgYm9vbCBz
ZXRSYW5nZUltcGwoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNp
Z25lZCBieXRlT2Zmc2V0KTsKIAotICAgIHZvaWQgemVyb1JhbmdlSW1wbCh1bnNpZ25lZCBieXRl
T2Zmc2V0LCBzaXplX3QgcmFuZ2VCeXRlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAg
Ym9vbCB6ZXJvUmFuZ2VJbXBsKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNpemVfdCByYW5nZUJ5dGVM
ZW5ndGgpOwogCiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBz
dGFydCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYXlTaXplLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCogb2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKTsK
QEAgLTEyMCw3ICsxMTgsNyBAQCBjbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291
bnRlZDxBcnJheUJ1ZmZlclZpZXc+IHsKICAgICAgICAgKm51bUVsZW1lbnRzID0gc3RkOjptaW4o
cmVtYWluaW5nRWxlbWVudHMsICpudW1FbGVtZW50cyk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIG5ldXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdmlydHVhbCB2b2lkIG5l
dXRlcihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICAvLyBUaGlzIGlz
IHRoZSBhZGRyZXNzIG9mIHRoZSBBcnJheUJ1ZmZlcidzIHN0b3JhZ2UsIHBsdXMgdGhlIGJ5dGUg
b2Zmc2V0LgogICAgIHZvaWQqIG1fYmFzZUFkZHJlc3M7CkBAIC0xMzQsNiArMTMyLDggQEAgY2xh
c3MgQXJyYXlCdWZmZXJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXJWaWV3PiB7
CiAgICAgQXJyYXlCdWZmZXJWaWV3KiBtX25leHRWaWV3OwogfTsKIAotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6QXJyYXlCdWZmZXJWaWV3
OwogCiAjZW5kaWYgLy8gQXJyYXlCdWZmZXJWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuY3BwCmluZGV4IDIwOWIyMGYzNDg1MDExMjFkMDc3MzhmMzMyMTJk
MDc2ODNlYTY1NTguLmI3YzRiZDUyMDk5Nzc0MjQwYTI4ZDIxMzRhNDFmOTE4ZjhkZjIwMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcApAQCAtMjcsNyAr
MjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgog
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV1RGIHsKIAogUGFzc1JlZlB0cjxGbG9h
dDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmgKaW5kZXggNzg0MjA3MmUwYWUwY2Vl
Mzg1MmNjOWE4NmJkMmM1ODM1MDkyZDAwYi4uODI3MTUwYTc1MWY5Y2MxZTc0NWZmMGM5MjBiMWUx
YWNjYTJhYjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQz
MkFycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmgK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJUeXBlZEFycmF5QmFzZS5oIgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYg
ewogCiBjbGFzcyBGbG9hdDMyQXJyYXkgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+IHsK
IHB1YmxpYzoKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZsb2F0MzJBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIC8vIENhbuKAmXQgdXNl
ICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCi0gICAgdm9p
ZCBzZXQoVHlwZWRBcnJheUJhc2U8ZmxvYXQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0LCBFeGNl
cHRpb25Db2RlJiBlYykgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpzZXQoYXJyYXks
IG9mZnNldCwgZWMpOyB9CisgICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8ZmxvYXQ+KiBhcnJh
eSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OnNldChh
cnJheSwgb2Zmc2V0KTsgfQogCiAgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2
YWx1ZSkKICAgICB7CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPEZs
b2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAogcHJvdGVj
dGVkOgotICAgIHZvaWQgbmV1dGVyQmluZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Cisg
ICAgdm9pZCBuZXV0ZXJCaW5kaW5nKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IAogcHJpdmF0ZToKICAgICBGbG9hdDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyLApAQCAtNzQsNiArNzQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0
QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpGbG9hdDMyQXJyYXk7CiAKICNl
bmRpZiAvLyBGbG9hdDMyQXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvRmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0
NjRBcnJheS5jcHAKaW5kZXggMmRjYjM3MzFhNTE4NzlkZWZlNmYyODMzODFjYzhkMjJmMjQ0MjIx
MC4uYWViYzdkMTJhYmU5ZThlMDUzMWExOTBhMDU4YjllNjE3Y2I0YTkwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAKLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogCiBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4g
RmxvYXQ2NEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaAppbmRleCAwMWFmNjc3MWE0ZDRlODkxNTQ1ZTU1NGUz
NDdkM2I3Nzk2MTAyMWZlLi5hZjFiNzUxNWFjMDFhZGE4MTFhMzcyODJjNWNlNWYwNjRkOTZjZThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaApAQCAtMzAsNyAr
MzAsNyBAQAogI2luY2x1ZGUgIlR5cGVkQXJyYXlCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNz
IEZsb2F0NjRBcnJheSA6IHB1YmxpYyBUeXBlZEFycmF5QmFzZTxkb3VibGU+IHsKIHB1YmxpYzoK
QEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZsb2F0NjRB
cnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0
LCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1
ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICB2b2lkIHNldChUeXBlZEFycmF5
QmFzZTxkb3VibGU+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykg
eyByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6c2V0KGFycmF5LCBvZmZzZXQsIGVjKTsg
fQorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPGRvdWJsZT4qIGFycmF5LCB1bnNpZ25lZCBv
ZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OnNldChhcnJheSwgb2Zmc2V0
KTsgfQogCiAgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKICAgICB7
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIHZv
aWQgbmV1dGVyQmluZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdm9pZCBuZXV0
ZXJCaW5kaW5nKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogcHJpdmF0ZToK
ICAgICBGbG9hdDY0QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCkBAIC03NCw2ICs3NCw4
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKwordXNpbmcgV1RGOjpGbG9hdDY0QXJyYXk7CiAKICNlbmRpZiAvLyBGbG9hdDY0QXJy
YXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcAppbmRleCA5YWFh
MWQ1MWNiYzkzMjA2MDUzNDE3MWU4YWEwMWQ1NTEyZGY1ZTMyLi5mOTk0NGM4NWVkZjlkMGU3OTI2
YmJhMWUzMjBjZjI3MTIyNzRiYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9JbnQxNkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQx
NkFycmF5LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkludDE2QXJyYXkuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7
CiAKIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJy
YXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaAppbmRleCAzZTEx
NTJlYmUyYmVhZGEwNzJmYmJjYzcxNGNmMzg5YmI3ZmI2Y2IzLi4xZTc3M2FhNmM1MTJkNmY4NDQz
Njk1ZjZmYTA2YTgzZmQ3MmNhNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9JbnQxNkFycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZB
cnJheS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBB
cnJheUJ1ZmZlcjsKIApAQCAtMzksMTQgKzM5LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJbnQxNkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVy
LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgLy8gQ2Fu4oCZ
dCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAg
ICB2b2lkIHNldChUeXBlZEFycmF5QmFzZTxzaG9ydD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQs
IEV4Y2VwdGlvbkNvZGUmIGVjKSB7IFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGFycmF5LCBv
ZmZzZXQsIGVjKTsgfQorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHNob3J0PiogYXJyYXks
IHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2hvcnQ+OjpzZXQoYXJy
YXksIG9mZnNldCk7IH0KICAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVl
KSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8c2hvcnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQog
CiAgICAgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Owog
ICAgIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIAogcHJvdGVjdGVkOgotICAgIHZvaWQgbmV1dGVyQmluZGluZyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CisgICAgdm9pZCBuZXV0ZXJCaW5kaW5nKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKIAogcHJpdmF0ZToKICAgICBJbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciwKQEAgLTU5LDYgKzU5LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6SW50MTZB
cnJheTsKIAogI2VuZGlmIC8vIEludDE2QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQzMkFycmF5LmNwcAppbmRleCA2ZDI3OTNjN2IyOWNlMjE0MjNiNTUxOThjMDA4MmU0MWY5
NzE4NzE5Li5hNWRlYTM3M2FjYjJhZTczM2NmNGM1YmI2ZmQ1NWVjZDMxZmY2NmU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmNwcApAQCAtMjcsNyArMjcsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKIAotbmFtZXNwYWNl
IFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiAKIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gSW50
MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ludDMyQXJyYXkuaAppbmRleCAwZTJkM2JlZTA2NjMzMjU4N2Q5ZDMwYzU3ODQ3N2FlMTY5
ZjM0YTJhLi5iNDQzN2FlMjdjODZlZDRmZTYwNDI1NzdjMDFhOTVmZjYxNjVhYTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNp
bmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBJbnQzMkFycmF5IDogcHVibGljIEludGVncmFsVHlw
ZWRBcnJheUJhc2U8aW50PiB7CiBwdWJsaWM6CkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAK
ICAgICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNU
IGNvbXBpbGVyLgotICAgIHZvaWQgc2V0KFR5cGVkQXJyYXlCYXNlPGludD4qIGFycmF5LCB1bnNp
Z25lZCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IFR5cGVkQXJyYXlCYXNlPGludD46OnNl
dChhcnJheSwgb2Zmc2V0LCBlYyk7IH0KKyAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTxpbnQ+
KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxpbnQ+Ojpz
ZXQoYXJyYXksIG9mZnNldCk7IH0KICAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91Ymxl
IHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8aW50Pjo6c2V0KGluZGV4LCB2YWx1ZSk7
IH0KIAogICAgIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dDsKICAgICBQYXNzUmVmUHRyPEludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVu
ZCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIG5ldXRlckJpbmRpbmcoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOworICAgIHZvaWQgbmV1dGVyQmluZGluZyhXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7CiAKIHByaXZhdGU6CiAgICAgSW50MzJBcnJheShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIsCkBAIC01OCw2ICs1OCw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpJbnQz
MkFycmF5OwogCiAjZW5kaWYgLy8gSW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50OEFycmF5LmNwcAppbmRleCBjZWI3NTc5NmExNjVkOTZhMzY3YmZhYTgxNWYyMGQ0NmUw
NmQ4NmI0Li4yOGU1ODgxNWMyYjg2NzljODU4OWIzNTU3ZjBkYTAxZTcwMzU0ZjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnQ4QXJyYXkuaCIKIAotbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiAKIFBhc3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJy
YXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDhBcnJheS5oCmluZGV4IGYxNTU1MjNmZDdmYjZjMjAwYjc5ZWIxYzJjZGJkMGZjMTY2MWMxNDgu
LmQxZWZhYjUxOTNlZWJmMjI1NzY5YWIxZmM1YWM2MWNkNzU5ZjI4NmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0ludDhBcnJheS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFj
ZSBXVEYgewogCiBjbGFzcyBBcnJheUJ1ZmZlcjsKIApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7
CiAKICAgICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBS
VkNUIGNvbXBpbGVyLgotICAgIHZvaWQgc2V0KFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPiog
YXJyYXksIHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgVHlwZWRBcnJheUJh
c2U8c2lnbmVkIGNoYXI+OjpzZXQoYXJyYXksIG9mZnNldCwgZWMpOyB9CisgICAgYm9vbCBzZXQo
VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJl
dHVybiBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OnNldChhcnJheSwgb2Zmc2V0KTsgfQog
ICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBl
ZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OnNldChpbmRleCwgdmFsdWUpOyB9CiAKICAgICBQYXNz
UmVmUHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBQYXNzUmVm
UHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAogcHJv
dGVjdGVkOgotICAgIHZvaWQgbmV1dGVyQmluZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CisgICAgdm9pZCBuZXV0ZXJCaW5kaW5nKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKIAogcHJpdmF0ZToKICAgICBJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyLApAQCAtNjAsNiArNjAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkludDhBcnJheTsKIAogI2VuZGlm
IC8vIEludDhBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlLmgKaW5kZXggMGIyNjg0NGVlMzJlMDMyZmZhYjU3YmZmNzNlN2M1
MjVlMmQ4ZTEwNC4uNDhmODJhMzYxYzZlZmViNmM0NmFjY2Q3NDVjMzE1N2IyZTAyMjNmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludGVncmFsVHlwZWRBcnJheUJh
c2UuaApAQCAtMzQsNyArMzQsNyBAQAogLy8gQmFzZSBjbGFzcyBmb3IgYWxsIFdlYkdMPFQ+QXJy
YXkgdHlwZXMgaG9sZGluZyBpbnRlZ3JhbAogLy8gKG5vbi1mbG9hdGluZy1wb2ludCkgdmFsdWVz
LgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBjbGFzcyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJy
YXlCYXNlPFQ+IHsKQEAgLTY1LDYgKzY1LDggQEAgY2xhc3MgSW50ZWdyYWxUeXBlZEFycmF5QmFz
ZSA6IHB1YmxpYyBUeXBlZEFycmF5QmFzZTxUPiB7CiAgICAgfQogfTsKIAotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6SW50ZWdyYWxUeXBl
ZEFycmF5QmFzZTsKIAogI2VuZGlmIC8vIEludGVncmFsVHlwZWRBcnJheUJhc2VfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggZmViZDg2Zjg2ZDQy
Nzg0N2M2Mzg3ZGEyYzA1ZTQ5ZWUyNTRjMDI2ZS4uYWUzMGMxN2MyODZjYzZmZWI4M2U1ZjUzNjVi
OTUzNzI2ZjNmMTk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlw
ZWRBcnJheUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5
QmFzZS5oCkBAIC0zMCwyNiArMzAsMjYgQEAKICNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3Bh
Y2UgV1RGIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZEFycmF5QmFzZSA6
IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICBwdWJsaWM6CiAgICAgVCogZGF0YSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihiYXNlQWRkcmVzcygpKTsgfQogCi0gICAgdm9pZCBz
ZXQoVHlwZWRBcnJheUJhc2U8VD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPFQ+KiBhcnJheSwgdW5zaWduZWQg
b2Zmc2V0KQogICAgIHsKLSAgICAgICAgc2V0SW1wbChhcnJheSwgb2Zmc2V0ICogc2l6ZW9mKFQp
LCBlYyk7CisgICAgICAgIHJldHVybiBzZXRJbXBsKGFycmF5LCBvZmZzZXQgKiBzaXplb2YoVCkp
OwogICAgIH0KIAotICAgIHZvaWQgc2V0UmFuZ2UoY29uc3QgVCogZGF0YSwgc2l6ZV90IGRhdGFM
ZW5ndGgsIHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgYm9vbCBzZXRS
YW5nZShjb25zdCBUKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdW5zaWduZWQgb2Zmc2V0KQog
ICAgIHsKLSAgICAgICAgc2V0UmFuZ2VJbXBsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KGRhdGEpLCBkYXRhTGVuZ3RoICogc2l6ZW9mKFQpLCBvZmZzZXQgKiBzaXplb2YoVCksIGVjKTsK
KyAgICAgICAgcmV0dXJuIHNldFJhbmdlSW1wbChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihkYXRhKSwgZGF0YUxlbmd0aCAqIHNpemVvZihUKSwgb2Zmc2V0ICogc2l6ZW9mKFQpKTsKICAg
ICB9CiAKLSAgICB2b2lkIHplcm9SYW5nZSh1bnNpZ25lZCBvZmZzZXQsIHNpemVfdCBsZW5ndGgs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIGJvb2wgemVyb1JhbmdlKHVuc2lnbmVkIG9mZnNldCwg
c2l6ZV90IGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHplcm9SYW5nZUltcGwob2Zmc2V0ICogc2l6
ZW9mKFQpLCBsZW5ndGggKiBzaXplb2YoVCksIGVjKTsKKyAgICAgICAgcmV0dXJuIHplcm9SYW5n
ZUltcGwob2Zmc2V0ICogc2l6ZW9mKFQpLCBsZW5ndGggKiBzaXplb2YoVCkpOwogICAgIH0KIAog
ICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuIFRoaXMgbXVzdCBiZSBwdWJs
aWMgYmVjYXVzZSBvZgpAQCAtMTEyLDIwICsxMTIsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBy
ZXR1cm4gY3JlYXRlPFN1YmNsYXNzPihidWZmZXIoKSwgb2Zmc2V0LCBsZW5ndGgpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgdm9pZCBuZXV0ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKLSAgICB7Ci0gICAgICAgIEFycmF5QnVmZmVyVmlldzo6bmV1dGVyKGNvbnRleHQpOwotICAg
ICAgICBtX2xlbmd0aCA9IDA7Ci0gICAgICAgIG5ldXRlckJpbmRpbmcoY29udGV4dCk7Ci0gICAg
fQotCi0gICAgdmlydHVhbCB2b2lkIG5ldXRlckJpbmRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopID0gMDsKLQogICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIGhhdmUgdG8gYWNjZXNzIHRoaXMg
dmlhIGEgdmlydHVhbCBmdW5jdGlvbiBpbiBzdWJjbGFzc2VzLAogICAgIC8vIHdoaWNoIGlzIHdo
eSBpdCBpcyBwcm90ZWN0ZWQgcmF0aGVyIHRoYW4gcHJpdmF0ZS4KICAgICB1bnNpZ25lZCBtX2xl
bmd0aDsKIH07CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdURgor
Cit1c2luZyBXVEY6OlR5cGVkQXJyYXlCYXNlOwogCiAjZW5kaWYgLy8gVHlwZWRBcnJheUJhc2Vf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuY3BwCmluZGV4IDkyYjIz
NjFlNjAxZmEzOThlMGEzZjY0NmM2MWMyZmZiYzg5ZGYwOWMuLmM3Y2RjZmI4YTgyNmMzZmE4MGYx
ZGM1YmY5ZWQyMmZhYmE5ZjVmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1VpbnQxNkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50
MTZBcnJheS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJVaW50MTZBcnJheS5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV1RG
IHsKIAogUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gVWludDE2QXJyYXk6OmNyZWF0ZSh1bnNpZ25l
ZCBsZW5ndGgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50
MTZBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaAppbmRl
eCBkMDk0NmJjNTQ0MDljYjQ2OTc3YzFiYjllMzliNGVhMDJhYjU1YzRlLi44NzgwODI5M2Q2ZmQw
NDZjMGM1MTlkYjg2MmVkYjEwOTIzMGYxMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9VaW50MTZBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQxNkFycmF5LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkludGVncmFsVHlw
ZWRBcnJheUJhc2UuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiAK
IGNsYXNzIEFycmF5QnVmZmVyOwogCkBAIC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAg
Ly8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21w
aWxlci4KLSAgICB2b2lkIHNldChUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD4qIGFycmF5
LCB1bnNpZ25lZCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIHNob3J0Pjo6c2V0KGFycmF5LCBvZmZzZXQsIGVjKTsgfQorICAgIGJvb2wgc2V0KFR5
cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyBy
ZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7
IH0KICAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFs
VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQogCiAg
ICAgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAg
ICBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNv
bnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBuZXV0ZXJCaW5kaW5nKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKyAgICB2b2lkIG5ldXRlckJpbmRpbmcoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgogICAgIFVpbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciwKQEAgLTYwLDYgKzYwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNVbnNpZ25lZFNob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9Owog
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RG
OjpVaW50MTZBcnJheTsKIAogI2VuZGlmIC8vIFVpbnQxNkFycmF5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcAppbmRleCA2MjFiNTNjOWM3OGUzYmU0MTIyOTBm
MjFhNmEyNGRkZjIzOGJkZGJmLi5mZWM1MmNmZmU1OWE3YjA2MjllOGZiYTM2N2UxZTgyZDk4ODk5
MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwCkBAIC0y
Nyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVWludDMyQXJyYXku
aCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiAKIFBhc3NSZWZQdHI8
VWludDMyQXJyYXk+IFVpbnQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmgKaW5kZXggNzk1OWQ2YzQxMWNhMmYx
Yjk4NzdlNjBlYzNlOGI4MjQ3OGM2MGZjNS4uNDM5MmFhYjcwMmI5YzY0ZjRmMGJjZDYxZjQ3ODZh
OGQ1NjdiZDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMy
QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5oCkBA
IC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCiAK
LW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBBcnJheUJ1ZmZl
cjsKIApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxV
aW50MzJBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIC8vIENhbuKAmXQgdXNlICJ1
c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCi0gICAgdm9pZCBz
ZXQoVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6c2V0KGFy
cmF5LCBvZmZzZXQsIGVjKTsgfQorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVk
IGludD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIGludD46OnNldChhcnJheSwgb2Zmc2V0KTsgfQogICAgIHZvaWQgc2V0KHVuc2lnbmVk
IGluZGV4LCBkb3VibGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBp
bnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQogCiAgICAgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBz
dWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCBuZXV0ZXJCaW5kaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2b2lkIG5ldXRl
ckJpbmRpbmcoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgog
ICAgIFVpbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKQEAgLTYwLDYg
KzYwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VWludDMyQXJyYXk7CiAKICNlbmRpZiAvLyBV
aW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50
OEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3BwCmlu
ZGV4IDU3MmU3ZWM4ODM1NmRmMDk1NTQ5MTlkZWZmZWU3YTdkZWUwMjQ2YjcuLjAwMjY4ZTczZmUx
MjU2MzkwNjY2ODI5ZDAzMDc1Y2EzMWZjOTFmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1VpbnQ4QXJyYXkuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiVWludDhBcnJheS5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3Bh
Y2UgV1RGIHsKIAogUGFzc1JlZlB0cjxVaW50OEFycmF5PiBVaW50OEFycmF5OjpjcmVhdGUodW5z
aWduZWQgbGVuZ3RoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
VWludDhBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oCmlu
ZGV4IDJkNjJhNTBmOGRlZDNiMjYxZmNlYTg4ZWYxM2Y0MjVmN2ExNzkyOGYuLjA3ZmRmM2M2ZTJl
YjFmY2M4ODg5MjlkMWYyYTVmYmI5YjFlMGJiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9VaW50OEFycmF5LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkludGVncmFsVHlw
ZWRBcnJheUJhc2UuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiAK
IGNsYXNzIEFycmF5QnVmZmVyOwogCkBAIC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICAv
LyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNvbXBp
bGVyLgotICAgIHZvaWQgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KiBhcnJheSwg
dW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyBUeXBlZEFycmF5QmFzZTx1bnNp
Z25lZCBjaGFyPjo6c2V0KGFycmF5LCBvZmZzZXQsIGVjKTsgfQorICAgIGJvb2wgc2V0KFR5cGVk
QXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVy
biBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CiAg
ICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQogCiAgICAgUGFz
c1JlZlB0cjxVaW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIFBhc3NS
ZWZQdHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAog
cHJvdGVjdGVkOgotICAgIHZvaWQgbmV1dGVyQmluZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisgICAgdm9pZCBuZXV0ZXJCaW5kaW5nKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKIAogcHJpdmF0ZToKICAgICBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZmZlciwKQEAgLTYwLDYgKzYwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNV
bnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlVpbnQ4QXJy
YXk7CiAKICNlbmRpZiAvLyBVaW50OEFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5oCmluZGV4IDYxNTNjZjE5YThjYzI3YWVlNzY5OGE3NTJhNTk5M2RiNDc0MzBi
MjEuLjY3MDVhYzlhZTZkMzg4YWVlODJmNWZiMjRlM2Y2YTFjZmMyMTVhNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaApAQCAtMjksMTEgKzI5LDExIEBACiAjaW5j
bHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTE9iamVjdC5oIgogCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEFycmF5QnVm
ZmVyVmlldzsKIAogY2xhc3MgV2ViR0xCdWZmZXIgOiBwdWJsaWMgV2ViR0xPYmplY3QgewogcHVi
bGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ3J5cHRvLmgKaW5kZXggYmNjY2Q3ZTgxNzk4NzFjMjE1MTJhMmJjYzliZjIw
YjdjN2ZmNjYzMS4uYTUzYjA2NDZmNGQwOTczNzRmYjk1YjdlNmZkYmFlMjJhYmRkZDI0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NyeXB0by5oCkBAIC0zNSw4ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwotCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwog
CiBjbGFzcyBDcnlwdG8gOiBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG8+IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCmluZGV4IGYwOTU0MmQzOWRhNDM4NmQx
ZTRhN2E5MGFjYTRjYWJkYjNjNTk5NmYuLmUyZmM0ZGNiMGZjMzFlZGY2ZjM1YjdmN2E4NTM2Y2Fi
M2IwYThmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0FzeW5jQXVkaW9E
ZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIu
aApAQCAtMjUsNiArMjUsNyBAQAogI2lmbmRlZiBBc3luY0F1ZGlvRGVjb2Rlcl9oCiAjZGVmaW5l
IEFzeW5jQXVkaW9EZWNvZGVyX2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTMzLDcgKzM0LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBBcnJheUJ1ZmZlcjsKIGNsYXNzIEF1ZGlvQnVmZmVyOwogY2xhc3Mg
QXVkaW9CdWZmZXJDYWxsYmFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
Y3BwCmluZGV4IDFlNzViNGUyNWRkMmE2MTdhZDU2MGVjYmYyY2JiNjVjNjNhMWQ2ZWIuLjA1MTVh
MzRhMjNjMjAyM2IxMzVjMzY0NmNiZjZlOGQ5NDA0MWM3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJh
dWRpby9BdWRpb0J1ZmZlci5jcHAKQEAgLTc5LDggKzc5LDcgQEAgQXVkaW9CdWZmZXI6OkF1ZGlv
QnVmZmVyKEF1ZGlvQnVzKiBidXMpCiAgICAgbV9jaGFubmVscy5yZXNlcnZlQ2FwYWNpdHkobnVt
YmVyT2ZDaGFubmVscyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hh
bm5lbHM7ICsraSkgewogICAgICAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBjaGFubmVsRGF0YUFy
cmF5ID0gRmxvYXQzMkFycmF5OjpjcmVhdGUobV9sZW5ndGgpOwotICAgICAgICBFeGNlcHRpb25D
b2RlIGVjOwotICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXRSYW5nZShidXMtPmNoYW5uZWwo
aSktPmRhdGEoKSwgbV9sZW5ndGgsIDAsIGVjKTsKKyAgICAgICAgY2hhbm5lbERhdGFBcnJheS0+
c2V0UmFuZ2UoYnVzLT5jaGFubmVsKGkpLT5kYXRhKCksIG1fbGVuZ3RoLCAwKTsKICAgICAgICAg
bV9jaGFubmVscy5hcHBlbmQoY2hhbm5lbERhdGFBcnJheSk7CiAgICAgfQogfQpAQCAtMTAxLDEw
ICsxMDAsOCBAQCBGbG9hdDMyQXJyYXkqIEF1ZGlvQnVmZmVyOjpnZXRDaGFubmVsRGF0YSh1bnNp
Z25lZCBjaGFubmVsSW5kZXgpCiB2b2lkIEF1ZGlvQnVmZmVyOjp6ZXJvKCkKIHsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGFubmVscy5zaXplKCk7ICsraSkgewotICAgICAgICBp
ZiAoZ2V0Q2hhbm5lbERhdGEoaSkpIHsKLSAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0g
ICAgICAgICAgICBnZXRDaGFubmVsRGF0YShpKS0+emVyb1JhbmdlKDAsIGxlbmd0aCgpLCBlYyk7
Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGdldENoYW5uZWxEYXRhKGkpKQorICAgICAgICAgICAg
Z2V0Q2hhbm5lbERhdGEoaSktPnplcm9SYW5nZSgwLCBsZW5ndGgoKSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDI5ZWUzM2I4NGU2YWFlNjdk
Yzc3MzZmZWQzOTQ5OWM5MDVmNzA4MTguLjJkZDBlOTJlODc4NjJjNDU2M2U1NzY3OWIyNWI5MGU0
ZjExZDE0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC00NSw3
ICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXJyYXlCdWZmZXI7CiBj
bGFzcyBBdWRpb0J1ZmZlcjsKIGNsYXNzIEF1ZGlvQnVmZmVyQ2FsbGJhY2s7CiBjbGFzcyBBdWRp
b0J1ZmZlclNvdXJjZU5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9K
YXZhU2NyaXB0QXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9KYXZhU2NyaXB0
QXVkaW9Ob2RlLmgKaW5kZXggMjRlMTVlYTE5MzEzMjk3YTkwOGU4NGFlMGRiOTEwZmViNjcxN2Ew
Zi4uNTc0MzU4ODVkZDVlMTRmNTQ4NjI2ZjBiMmNhMjk2ZGY0ZmVmYWUwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vSmF2YVNjcmlwdEF1ZGlvTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0phdmFTY3JpcHRBdWRpb05vZGUuaApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgpAQCAtMzgsNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBBdWRpb0J1ZmZlcjsKIGNsYXNzIEF1ZGlvQ29udGV4dDsKIGNsYXNzIEF1ZGlvUHJvY2Vzc2lu
Z0V2ZW50OwotY2xhc3MgRmxvYXQzMkFycmF5OwogCiAvLyBKYXZhU2NyaXB0QXVkaW9Ob2RlIGlz
IGFuIEF1ZGlvTm9kZSB3aGljaCBhbGxvd3MgZm9yIGFyYml0cmFyeSBzeW50aGVzaXMgb3IgcHJv
Y2Vzc2luZyBkaXJlY3RseSB1c2luZyBKYXZhU2NyaXB0LgogLy8gVGhlIEFQSSBhbGxvd3MgZm9y
IGEgdmFyaWFibGUgbnVtYmVyIG9mIGlucHV0cyBhbmQgb3V0cHV0cywgYWx0aG91Z2ggaXQgbXVz
dCBoYXZlIGF0IGxlYXN0IG9uZSBpbnB1dCBvciBvdXRwdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJh
dWRpby9SZWFsdGltZUFuYWx5c2VyLmgKaW5kZXggNzVmNDE4MjJkZDdhZTcwMGZlNGQ0MjNiZGZh
MzUwN2EwY2QyNDlmOS4uMjQyZWFjYWYwNDc2OWY3ZmE0MmNkNGIyODllY2UxMWFlOWUwYzUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2RlZmluZSBSZWFsdGltZUFuYWx5c2VyX2gKIAogI2luY2x1ZGUgIkF1ZGlvQXJy
YXkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMzMsOCArMzQsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvQnVzOwogY2xhc3MgRkZURnJhbWU7Ci1jbGFzcyBG
bG9hdDMyQXJyYXk7Ci1jbGFzcyBVaW50OEFycmF5OwogCiBjbGFzcyBSZWFsdGltZUFuYWx5c2Vy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZWFsdGltZUFuYWx5c2VyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5oCmluZGV4IDZjN2FkZDk1
OTI0OGJkNzE2OWUwMGJlMzJjYTdlYjI4M2YxYWQ5OTAuLmMzN2M2YzFiNWNhM2JmMGI2NThlOTAy
MjdkY2MzOWE3ODgwN2ZmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1Jl
YWx0aW1lQW5hbHlzZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlck5vZGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9Ob2Rl
LmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVBbmFseXNlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1dhdmVT
aGFwZXJOb2RlLmgKaW5kZXggZDljZWQ4NGU2NjAzODFiYWU4YzZmZGM3NTZkM2M4ZmY4NjY2NjFi
My4uY2IxY2NmNjAzMDYwNDFlMzI4NThkYWViYzY3MTNmN2Q4YmZiYzllNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5oCkBAIC0yOCwxMCArMjgsOSBAQAogI2luY2x1
ZGUgIkF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmgiCiAjaW5jbHVkZSAiQmlxdWFkUHJvY2Vzc29y
LmgiCiAjaW5jbHVkZSAiV2F2ZVNoYXBlclByb2Nlc3Nvci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRmxvYXQzMkFycmF5OwogICAg
IAogY2xhc3MgV2F2ZVNoYXBlck5vZGUgOiBwdWJsaWMgQXVkaW9CYXNpY1Byb2Nlc3Nvck5vZGUg
ewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDdhMWYyOTcxYzUxMTE0ODk0YjEwNWE3ZWM0ZmJh
YzMzNjdkNzUyOGEuLmU5M2NmODY4NDYyY2NlZTZmYWE0ZWI2M2M5YTQzZGNjNDZjMzNjMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmgKQEAgLTM5LDcgKzM5LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBBcnJheUJ1ZmZlcjsKIGNsYXNzIEJsb2I7CiBjbGFzcyBLVVJMOwogY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4
IDI2M2JjYTBiNGU2Mjk2YzA2ZWZmZTYwMDE2MDQ3NmZjNzZlYTgzZjAuLjhmODU0MjhhNjE2MDcy
MjYyMzYyMTA4YWZjZjA1Y2VmNjUwM2U3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXQuaApAQCAtNDYsNyArNDYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEFycmF5QnVmZmVyOwogY2xhc3MgQmxvYjsKIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCmlu
ZGV4IDg5N2VmNjBhZTAyNmZkZTQxMWMyYmRiMDA0ODg0N2RlZjA3NjI5MTQuLmQzMzM1N2EzZjE3
NjI4YWIzYzg5ZWI1OWI2MjViNjY3ZDUwYWViOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC00NSw3ICs0NSw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQXJyYXlCdWZmZXI7CiBjbGFzcyBCbG9iOwogY2xhc3MgRmlsZVJl
YWRlckxvYWRlcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oCmluZGV4IGUyYjE0MjgyNTdhYTY0NmQ0YTFjMzM3MWUwOTdkMTJmYzFi
NjZiYWMuLjY3MTkyNWUzNzBmZDI5MzkxYmJhN2JjMzQzMmM2MTcxZmI1NTgyMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0zNiw3ICszNiw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQXJyYXlCdWZmZXI7CiBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBET01Gb3JtRGF0YTsK
</data>
<flag name="review"
          id="113883"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>