<?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>55284</bug_id>
          
          <creation_ts>2011-02-25 18:19:05 -0800</creation_ts>
          <short_desc>DrawingArea should not be reference counted</short_desc>
          <delta_ts>2011-02-26 11:10:45 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>buildbot</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>358333</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-25 18:19:05 -0800</bug_when>
    <thetext>DrawingArea should not be reference counted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358337</commentid>
    <comment_count>1</comment_count>
      <attachid>83913</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-25 18:20:26 -0800</bug_when>
    <thetext>Created attachment 83913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358338</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-25 18:23:08 -0800</bug_when>
    <thetext>Attachment 83913 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:47:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/DrawingAreaProxy.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/Shared/DrawingAreaInfo.h:26:  #ifndef header guard has wrong style, please use: WTF_DrawingAreaInfo_h  [build/header_guard] [5]
Source/WebKit2/WebProcess/WebPage/DrawingArea.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 4 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358350</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-25 19:10:17 -0800</bug_when>
    <thetext>Attachment 83913 did not build on win:
Build output: http://queues.webkit.org/results/8044547</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358362</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-25 20:17:03 -0800</bug_when>
    <thetext>Attachment 83913 did not build on qt:
Build output: http://queues.webkit.org/results/8035535</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358538</commentid>
    <comment_count>5</comment_count>
      <attachid>83944</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-26 09:45:36 -0800</bug_when>
    <thetext>Created attachment 83944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358539</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-26 09:46:46 -0800</bug_when>
    <thetext>Attachment 83944 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:47:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/DrawingAreaProxy.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/Shared/DrawingAreaInfo.h:26:  #ifndef header guard has wrong style, please use: WTF_DrawingAreaInfo_h  [build/header_guard] [5]
Source/WebKit2/UIProcess/ChunkedUpdateDrawingAreaProxy.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/WebPage/DrawingArea.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 5 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358541</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-26 10:18:50 -0800</bug_when>
    <thetext>Attachment 83944 did not build on qt:
Build output: http://queues.webkit.org/results/8045009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358544</commentid>
    <comment_count>8</comment_count>
      <attachid>83945</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-26 10:35:54 -0800</bug_when>
    <thetext>Created attachment 83945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358545</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-26 10:38:15 -0800</bug_when>
    <thetext>Attachment 83945 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:47:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/DrawingAreaProxy.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/Shared/DrawingAreaInfo.h:26:  #ifndef header guard has wrong style, please use: WTF_DrawingAreaInfo_h  [build/header_guard] [5]
Source/WebKit2/UIProcess/ChunkedUpdateDrawingAreaProxy.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/WebPage/DrawingArea.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 5 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358550</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-26 11:10:45 -0800</bug_when>
    <thetext>Committed r79803: &lt;http://trac.webkit.org/changeset/79803&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83913</attachid>
            <date>2011-02-25 18:20:26 -0800</date>
            <delta_ts>2011-02-26 09:45:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55284-20110225182025.patch</filename>
            <type>text/plain</type>
            <size>27836</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NzU1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDItMjUgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcmF3aW5nQXJlYSBzaG91bGQgbm90IGJlIHJlZmVyZW5j
ZSBjb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NTI4NAorCisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZXRQYWdlSXNWaXNpYmxlKToK
KyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZW5kU2V0
U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YVByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6RHJhd2luZ0FyZWFQ
cm94eUltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZERyYXdpbmdBcmVhUHJveHk6OlRpbGVkRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpc3BsYXkpOgorICAg
ICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OnNldFNpemUpOgorICAgICAg
ICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVNZXNzYWdlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhOjpEcmF3aW5nQXJlYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkRHJhd2lu
Z0FyZWE6OlRpbGVkRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9U
aWxlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxMS0wMi0yNSAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAkocmV2aXNpb24g
Nzk3NTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDUxICsyMywxOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgRHJhd2luZ0FyZWFJbmZvX2gKLSNkZWZpbmUgRHJhd2lu
Z0FyZWFJbmZvX2gKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAg
ICBjbGFzcyBJbnRTaXplOwotfQorI2lmbmRlZiBEcmF3aW5nQXJlYVR5cGVfaAorI2RlZmluZSBE
cmF3aW5nQXJlYVR5cGVfaAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IERyYXdpbmdB
cmVhSW5mbyB7Ci0gICAgZW51bSBUeXBlIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgSW1wbCwK
LSAgICAgICAgQ2h1bmtlZFVwZGF0ZSwKK2VudW0gRHJhd2luZ0FyZWFUeXBlIHsKKyAgICBEcmF3
aW5nQXJlYVR5cGVJbXBsLAorICAgIERyYXdpbmdBcmVhVHlwZUNodW5rZWRVcGRhdGUsCiAjaWYg
RU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIFRpbGVkLAorICAgIERyYXdpbmdB
cmVhVHlwZVRpbGVkLAogI2VuZGlmCi0gICAgfTsKLSAgICAKLSAgICB0eXBlZGVmIHVpbnQ2NF90
IElkZW50aWZpZXI7Ci0KLSAgICBEcmF3aW5nQXJlYUluZm8oKQotICAgICAgICA6IHR5cGUoTm9u
ZSkKLSAgICAgICAgLCBpZGVudGlmaWVyKDApCi0gICAgewotICAgIH0KLQotICAgIERyYXdpbmdB
cmVhSW5mbyhUeXBlIHR5cGUsIElkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICAgICAgOiB0eXBl
KHR5cGUpCi0gICAgICAgICwgaWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgIHsKLSAgICB9Ci0g
ICAgCi0gICAgVHlwZSB0eXBlOwotICAgIElkZW50aWZpZXIgaWRlbnRpZmllcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6RHJhd2luZ0FyZWFJbmZvPiA6IFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8V2ViS2l0OjpEcmF3aW5nQXJlYUluZm8+IHsgfTsKLX0KLQotI2VuZGlmIC8vIERy
YXdpbmdBcmVhSW5mb19oCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFUeXBlX2gKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJ
KHJldmlzaW9uIDc5NzUxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKEMKICAgICBlbmNvZGVyLT5lbmNvZGUoaXNJ
bldpbmRvdyk7CiAKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RvcmUpOwotICAgIGVuY29kZXItPmVu
Y29kZShkcmF3aW5nQXJlYUluZm8pOworICAgIGVuY29kZXItPmVuY29kZUVudW0oZHJhd2luZ0Fy
ZWFUeXBlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdyb3VwRGF0YSk7CiAgICAgZW5jb2Rl
ci0+ZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdzVHJh
bnNwYXJlbnRCYWNrZ3JvdW5kKTsKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoQwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5zdG9yZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSW5mbykpCisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMucGFnZUdyb3VwRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNp
b24gNzk3NTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGlzSW5XaW5kb3c7CiAgICAgCiAgICAgV2ViUHJl
ZmVyZW5jZXNTdG9yZSBzdG9yZTsKLSAgICBEcmF3aW5nQXJlYUluZm8gZHJhd2luZ0FyZWFJbmZv
OworICAgIERyYXdpbmdBcmVhVHlwZSBkcmF3aW5nQXJlYVR5cGU7CiAgICAgV2ViUGFnZUdyb3Vw
RGF0YSBwYWdlR3JvdXBEYXRhOwogCiAgICAgYm9vbCBkcmF3c0JhY2tncm91bmQ7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWFQcm94eS5jcHAJKHJldmlzaW9uIDc5NzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNyArNDUsNyBAQCBQYXNzT3duUHRyPENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5
CiB9CiAKIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpDaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWFQcm94eShQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogd2ViUGFn
ZVByb3h5KQotICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYUluZm86OkNodW5rZWRV
cGRhdGUsIHdlYlBhZ2VQcm94eSkKKyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFU
eXBlQ2h1bmtlZFVwZGF0ZSwgd2ViUGFnZVByb3h5KQogICAgICwgbV9pc1dhaXRpbmdGb3JEaWRT
ZXRGcmFtZU5vdGlmaWNhdGlvbihmYWxzZSkKICAgICAsIG1faXNWaXNpYmxlKHRydWUpCiAgICAg
LCBtX2ZvcmNlUmVwYWludFdoZW5SZXN1bWluZ1BhaW50aW5nKGZhbHNlKQpAQCAtOTYsMTIgKzk2
LDEyIEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNldFAKIAogICAgIGlm
ICghbV9pc1Zpc2libGUpIHsKICAgICAgICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhhdCBp
dCBkb2Vzbid0IG5lZWQgdG8gcGFpbnQgYW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFnZS0+
cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlN1c3Bl
bmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVy
KSk7CisgICAgICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFM
ZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJ
bigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICAvLyBUaGUgcGFnZSBpcyBu
b3cgdmlzaWJsZSwgcmVzdW1lIHBhaW50aW5nLgotICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVj
YXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFnZS0+
cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVyLCBtX2ZvcmNlUmVwYWludFdo
ZW5SZXN1bWluZ1BhaW50aW5nKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2Vu
ZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdlSUQo
KSwgQ29yZUlQQzo6SW4obV9mb3JjZVJlcGFpbnRXaGVuUmVzdW1pbmdQYWludGluZykpOwogICAg
IG1fZm9yY2VSZXBhaW50V2hlblJlc3VtaW5nUGFpbnRpbmcgPSBmYWxzZTsKIH0KICAgICAKQEAg
LTEzMyw3ICsxMzMsNyBAQCB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5Ojp1cGRh
CiAgICAgfQogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIHBh
Z2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpE
aWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllcikp
OworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lN
ZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbigpKTsKIH0KIAog
dm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFNldFNpemUoKQpAQCAtMTQ1
LDcgKzE0NSw3IEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNlbmQKICAg
ICAgICAgcmV0dXJuOwogICAgIG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24g
PSB0cnVlOwogICAgIAotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPmRlcHJlY2F0ZWRT
ZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6U2V0U2l6ZSwgbV93ZWJQYWdlUHJveHktPnBh
Z2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllciwgbV9zaXplKSk7CisgICAgbV93
ZWJQYWdlUHJveHktPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lN
ZXNzYWdlOjpTZXRTaXplLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksIENvcmVJUEM6OkluKG1f
c2l6ZSkpOwogfQogICAgIAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5n
QXJlYVByb3h5LmgJKHJldmlzaW9uIDc5NzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgUExBVEZP
Uk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAJKHJldmlzaW9uIDc5NzUxKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw4ICszMiw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotRHJhd2luZ0FyZWFQcm94eTo6RHJhd2luZ0FyZWFQcm94eShEcmF3aW5n
QXJlYUluZm86OlR5cGUgdHlwZSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCi0gICAgOiBt
X2luZm8odHlwZSwgbmV4dElkZW50aWZpZXIoKSkKK0RyYXdpbmdBcmVhUHJveHk6OkRyYXdpbmdB
cmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlIHR5cGUsIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5
KQorICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkp
CiAgICAgLCBtX3NpemUod2ViUGFnZVByb3h5LT52aWV3U2l6ZSgpKQogewpAQCAtNDMsMTIgKzQz
LDYgQEAgRHJhd2luZ0FyZWFQcm94eTo6fkRyYXdpbmdBcmVhUHJveHkoKQogewogfQogCi1EcmF3
aW5nQXJlYUluZm86OklkZW50aWZpZXIgRHJhd2luZ0FyZWFQcm94eTo6bmV4dElkZW50aWZpZXIo
KQotewotICAgIHN0YXRpYyBEcmF3aW5nQXJlYUluZm86OklkZW50aWZpZXIgbmV4dElEID0gMTsK
LSAgICByZXR1cm4gKytuZXh0SUQ7Ci19Ci0KIHZvaWQgRHJhd2luZ0FyZWFQcm94eTo6c2V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCiB7IAog
ICAgIGlmIChtX3NpemUgPT0gc2l6ZSAmJiBzY3JvbGxPZmZzZXQuaXNaZXJvKCkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDc5
NzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbmZv
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAKICNpZiBQTEFURk9STShRVCkKIGNsYXNzIFFQYWludGVyOwpAQCAtMzYsNiArMzcs
MTYgQEAgY2xhc3MgUVBhaW50ZXI7CiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwor
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgY2xhc3MgSW50UmVjdDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIExheWVyVHJlZUNvbnRleHQ7CkBAIC01NiwxNiArNjcsMTUgQEAgY2xhc3MgRHJh
d2luZ0FyZWFQcm94eSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRHJhd2luZ0FyZWFQcm94
eSk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyIG5l
eHRJZGVudGlmaWVyKCk7Ci0KICAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVByb3h5KCk7CiAKKyAg
ICBEcmF3aW5nQXJlYVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCiAjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCiAgICAgdm9pZCBkaWRSZWNlaXZlRHJhd2lu
Z0FyZWFQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgcGFp
bnRpbmcgd2FzIHN1Y2Nlc3NmdWwsIGZhbHNlIG90aGVyd2lzZS4KICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtRHJhd2luZ0NvbnRleHQpID0g
MDsKQEAgLTc3LDE1ICs4NywxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFn
ZUlzVmlzaWJsZShib29sIGlzVmlzaWJsZSkgPSAwOwogCi0gICAgY29uc3QgRHJhd2luZ0FyZWFJ
bmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9Ci0KICAgICBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRT
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3Jv
bGxPZmZzZXQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eShE
cmF3aW5nQXJlYUluZm86OlR5cGUsIFdlYlBhZ2VQcm94eSopOworICAgIGV4cGxpY2l0IERyYXdp
bmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlUHJveHkqKTsKIAotICAgIERyYXdp
bmdBcmVhSW5mbyBtX2luZm87CisgICAgRHJhd2luZ0FyZWFUeXBlIG1fdHlwZTsKICAgICBXZWJQ
YWdlUHJveHkqIG1fd2ViUGFnZVByb3h5OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
SW1wbC5jcHAJKHJldmlzaW9uIDc5NzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHlJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBQ
YXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBEcmF3aW5nCiB9CiAKIERyYXdpbmdBcmVh
UHJveHlJbXBsOjpEcmF3aW5nQXJlYVByb3h5SW1wbChXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94
eSkKLSAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJbmZvOjpJbXBsLCB3ZWJQYWdl
UHJveHkpCisgICAgOiBEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZUltcGwsIHdlYlBh
Z2VQcm94eSkKICAgICAsIG1fY3VycmVudFN0YXRlSUQoMCkKICAgICAsIG1fcmVxdWVzdGVkU3Rh
dGVJRCgwKQogICAgICwgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVTdGF0ZShmYWxzZSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCShy
ZXZpc2lvbiA3OTc1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQmFj
a2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkxh
eWVyVHJlZUNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuY3BwCShyZXZpc2lv
biA3OTc1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIFBhc3NPd25QdHI8VGlsZWRE
cmF3aW5nQXJlYVByb3h5PiBUaWxlZEQKIH0KIAogVGlsZWREcmF3aW5nQXJlYVByb3h5OjpUaWxl
ZERyYXdpbmdBcmVhUHJveHkoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkq
IHdlYlBhZ2VQcm94eSkKLSAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJbmZvOjpU
aWxlZCwgd2ViUGFnZVByb3h5KQorICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5
cGVUaWxlZCwgd2ViUGFnZVByb3h5KQogICAgICwgbV9pc1dhaXRpbmdGb3JEaWRTZXRGcmFtZU5v
dGlmaWNhdGlvbihmYWxzZSkKICAgICAsIG1faXNWaXNpYmxlKHRydWUpCiAgICAgLCBtX3dlYlZp
ZXcod2ViVmlldykKQEAgLTE3MSwxMSArMTcxLDYgQEAgdm9pZCBUaWxlZERyYXdpbmdBcmVhUHJv
eHk6OmRpZFJlY2VpdmVNZQogICAgIH0KIH0KIAotdm9pZCBUaWxlZERyYXdpbmdBcmVhUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFRpbGVkRHJhd2lu
Z0FyZWFQcm94eTo6cmVxdWVzdFRpbGVVcGRhdGUoaW50IHRpbGVJRCwgY29uc3QgSW50UmVjdCYg
ZGlydHlSZWN0KQogewogICAgIHBhZ2UoKS0+cHJvY2VzcygpLT5jb25uZWN0aW9uKCktPmRlcHJl
Y2F0ZWRTZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6UmVxdWVzdFRpbGVVcGRhdGUsIHBh
Z2UoKS0+cGFnZUlEKCksIENvcmVJUEM6OkluKHRpbGVJRCwgZGlydHlSZWN0LCBjb250ZW50c1Nj
YWxlKCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVh
UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3
aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDc5NzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2
IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC0xMTQs
NyArMTEzLDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIERyYXdpbmdBcmVhUHJveHkKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBs
YXRmb3JtRHJhd2luZ0NvbnRleHQpOwogICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VJc1Zpc2libGUoYm9vbCBpc1Zpc2libGUpOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDc5
NzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyNDQsMTEgKzEyNDQsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogcmVwbHkpCiB7Ci0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5TGVnYWN5PigpKSB7Ci0gICAgICAgIG1fZHJhd2lu
Z0FyZWEtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cywgcmVwbHkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkluc3Bl
Y3RvclByb3h5PigpKSB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9y
ID0gdGhpcy0+aW5zcGVjdG9yKCkpCkBAIC0yNTc2LDcgKzI1NzEsNyBAQCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgcGFyYW1ldGVycy5pc0ZvY3VzZWQgPSBt
X3BhZ2VDbGllbnQtPmlzVmlld0ZvY3VzZWQoKTsKICAgICBwYXJhbWV0ZXJzLmlzVmlzaWJsZSA9
IG1fcGFnZUNsaWVudC0+aXNWaWV3VmlzaWJsZSgpOwogICAgIHBhcmFtZXRlcnMuaXNJbldpbmRv
dyA9IG1fcGFnZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKTsKLSAgICBwYXJhbWV0ZXJzLmRyYXdp
bmdBcmVhSW5mbyA9IG1fZHJhd2luZ0FyZWEtPmluZm8oKTsKKyAgICBwYXJhbWV0ZXJzLmRyYXdp
bmdBcmVhVHlwZSA9IG1fZHJhd2luZ0FyZWEtPnR5cGUoKTsKICAgICBwYXJhbWV0ZXJzLnN0b3Jl
ID0gbV9wYWdlR3JvdXAtPnByZWZlcmVuY2VzKCktPnN0b3JlKCk7CiAgICAgcGFyYW1ldGVycy5w
YWdlR3JvdXBEYXRhID0gbV9wYWdlR3JvdXAtPmRhdGEoKTsKICAgICBwYXJhbWV0ZXJzLmRyYXdz
QmFja2dyb3VuZCA9IG1fZHJhd3NCYWNrZ3JvdW5kOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAJKHJldmlzaW9uIDc5NzUxKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oIgogCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5TWVzc2FnZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwCShyZXZp
c2lvbiA3OTc1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2Vk
VXBkYXRlRHJhd2luZ0FyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhOjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJbmZv
OjpJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCi0gICAgOiBEcmF3aW5n
QXJlYShEcmF3aW5nQXJlYUluZm86OkNodW5rZWRVcGRhdGUsIGlkZW50aWZpZXIsIHdlYlBhZ2Up
CitDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYShXZWJQ
YWdlKiB3ZWJQYWdlKQorICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlQ2h1bmtlZFVw
ZGF0ZSwgd2ViUGFnZSkKICAgICAsIG1faXNXYWl0aW5nRm9yVXBkYXRlKGZhbHNlKQogICAgICwg
bV9wYWludGluZ0lzU3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9kaXNwbGF5VGltZXIoV2ViUHJv
Y2Vzczo6c2hhcmVkKCkucnVuTG9vcCgpLCB0aGlzLCAmQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVh
OjpkaXNwbGF5KQpAQCAtNzQsMTUgKzc0LDkgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0Fy
ZWE6OmRpc3BsYXkoKQogICAgIGlmIChtX2RpcnR5UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIExheWluZyBvdXQgdGhlIHBhZ2UgY2FuIGNhdXNlIHRoZSBkcmF3aW5n
IGFyZWEgdG8gY2hhbmdlIHNvIHdlIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlLgotICAgIFJlZlB0
cjxDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE+IHByb3RlY3QodGhpcyk7Ci0KICAgICAvLyBMYXlv
dXQgaWYgbmVjZXNzYXJ5LgogICAgIG1fd2ViUGFnZS0+bGF5b3V0SWZOZWVkZWQoKTsKICAKLSAg
ICBpZiAobV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybjsK
LSAgICAKICAgICBJbnRSZWN0IGRpcnR5UmVjdCA9IG1fZGlydHlSZWN0OwogICAgIG1fZGlydHlS
ZWN0ID0gSW50UmVjdCgpOwogCkBAIC0xMjYsMTUgKzEyMCw5IEBAIHZvaWQgQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhOjpzZXRTaXplKGMKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHdhaXQgZm9y
IGFuIHVwZGF0ZSB1bnRpbCB3ZSBkaXNwbGF5LgogICAgIG1faXNXYWl0aW5nRm9yVXBkYXRlID0g
ZmFsc2U7CiAgICAgCi0gICAgLy8gTGF5aW5nIG91dCB0aGUgcGFnZSBjYW4gY2F1c2UgdGhlIGRy
YXdpbmcgYXJlYSB0byBjaGFuZ2Ugc28gd2Uga2VlcCBhbiBleHRyYSByZWZlcmVuY2UuCi0gICAg
UmVmUHRyPENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYT4gcHJvdGVjdCh0aGlzKTsKLQogICAgIG1f
d2ViUGFnZS0+c2V0U2l6ZSh2aWV3U2l6ZSk7CiAgICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRl
ZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSAhPSB0aGlzKQotICAgICAg
ICByZXR1cm47Ci0KICAgICBpZiAobV9wYWludGluZ0lzU3VzcGVuZGVkKSB7CiAgICAgICAgIEFT
U0VSVCghbV9kaXNwbGF5VGltZXIuaXNBY3RpdmUoKSk7CiAKQEAgLTE4NSwxNCArMTczLDYgQEAg
dm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZQogCiB2b2lkIENodW5rZWRV
cGRhdGVEcmF3aW5nQXJlYTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQogewotICAgIERyYXdpbmdBcmVhSW5mbzo6SWRlbnRpZmllciB0YXJnZXRJZGVu
dGlmaWVyOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHRhcmdldElk
ZW50aWZpZXIpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gV2UgY2FuIHN3aXRjaCBkcmF3
aW5nIGFyZWFzIG9uIHRoZSBmbHksIHNvIGlmIHRoaXMgbWVzc2FnZSB3YXMgdGFyZ2V0dGVkIGF0
IGFuIG9ic29sZXRlIGRyYXdpbmcgYXJlYSwgaWdub3JlIGl0LgotICAgIGlmICh0YXJnZXRJZGVu
dGlmaWVyICE9IGluZm8oKS5pZGVudGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KICAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8RHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpLaW5kPigpKSB7CiAg
ICAgICAgIGNhc2UgRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTZXRTaXplOiB7CiAgICAgICAg
ICAgICBJbnRTaXplIHNpemU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oCShyZXZpc2lv
biA3OTc1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBV
cGRhdGVDaHVuazsKIAogY2xhc3MgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhIDogcHVibGljIERy
YXdpbmdBcmVhIHsKIHB1YmxpYzoKLSAgICBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoRHJhd2lu
Z0FyZWFJbmZvOjpJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqKTsKKyAgICBleHBsaWNp
dCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfkNodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAJKHJldmlzaW9uIDc5NzUxKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsMzMgKzQxLDI5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNz
UmVmUHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2Us
IGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzT3duUHRy
PERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgc3dpdGNoIChw
YXJhbWV0ZXJzLmRyYXdpbmdBcmVhSW5mby50eXBlKSB7Ci0gICAgICAgIGNhc2UgRHJhd2luZ0Fy
ZWFJbmZvOjpOb25lOgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICBjYXNlIERyYXdpbmdBcmVhSW5mbzo6SW1wbDoKKyAgICBz
d2l0Y2ggKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlKSB7CisgICAgICAgIGNhc2UgRHJhd2lu
Z0FyZWFUeXBlSW1wbDoKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKICAgICAg
ICAgICAgIHJldHVybiBEcmF3aW5nQXJlYUltcGw6OmNyZWF0ZSh3ZWJQYWdlLCBwYXJhbWV0ZXJz
KTsKICNlbHNlCiAgICAgICAgICAgICByZXR1cm4gMDsKICNlbmRpZgotICAgICAgICBjYXNlIERy
YXdpbmdBcmVhSW5mbzo6Q2h1bmtlZFVwZGF0ZToKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZv
LmlkZW50aWZpZXIsIHdlYlBhZ2UpKTsKKyAgICAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVDaHVu
a2VkVXBkYXRlOgorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWEod2ViUGFnZSkpOwogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
Ci0gICAgICAgIGNhc2UgRHJhd2luZ0FyZWFJbmZvOjpUaWxlZDoKLSAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgVGlsZWREcmF3aW5nQXJlYShwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSW5m
by5pZGVudGlmaWVyLCB3ZWJQYWdlKSk7CisgICAgICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlVGls
ZWQ6CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbGVkRHJhd2luZ0FyZWEod2Vi
UGFnZSkpOwogI2VuZGlmCiAgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9CiAKLURyYXdpbmdBcmVh
OjpEcmF3aW5nQXJlYShEcmF3aW5nQXJlYUluZm86OlR5cGUgdHlwZSwgRHJhd2luZ0FyZWFJbmZv
OjpJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCi0gICAgOiBtX2luZm8o
dHlwZSwgaWRlbnRpZmllcikKK0RyYXdpbmdBcmVhOjpEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5
cGUgdHlwZSwgV2ViUGFnZSogd2ViUGFnZSkKKyAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV93
ZWJQYWdlKHdlYlBhZ2UpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkocmV2aXNpb24gNzk3NTEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsMTMgKzI4LDE3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworICAgIGNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNsYXNzIE1lc3Nh
Z2VJRDsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBjbGFzcyBHcmFwaGljc0xheWVyOwotI2VuZGlmCiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtNDIsMTAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
V2ViUGFnZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogCi1jbGFzcyBEcmF3
aW5nQXJlYSA6IHB1YmxpYyBSZWZDb3VudGVkPERyYXdpbmdBcmVhPiB7CitjbGFzcyBEcmF3aW5n
QXJlYSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRHJhd2luZ0FyZWEpOworCiBwdWJsaWM6
Ci0gICAgLy8gRklYTUU6IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gbW92ZSB0aGlzIGNyZWF0ZSBm
dW5jdGlvbiBpbnRvIGEgZmFjdG9yeSBzdHlsZSBjbGFzcy4gCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPERyYXdpbmdBcmVhPiBjcmVhdGUoV2Vi
UGFnZSosIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIH5E
cmF3aW5nQXJlYSgpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQpA
QCAtNzIsMTIgKzc3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSA9IDA7CiAKLSAgICBjb25zdCBEcmF3aW5nQXJlYUluZm8mIGlu
Zm8oKSBjb25zdCB7IHJldHVybiBtX2luZm87IH0KLQogcHJvdGVjdGVkOgotICAgIERyYXdpbmdB
cmVhKERyYXdpbmdBcmVhSW5mbzo6VHlwZSwgRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyLCBX
ZWJQYWdlKik7CisgICAgRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlKik7CiAK
LSAgICBEcmF3aW5nQXJlYUluZm8gbV9pbmZvOworICAgIERyYXdpbmdBcmVhVHlwZSBtX3R5cGU7
CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAJKHJl
dmlzaW9uIDc5NzUxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPERyYXdp
bmdBcmVhSW1wbD4gRHJhd2luZ0FyZWFJbXBsOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSwgY29u
c3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NPd25QdHI8RHJh
d2luZ0FyZWFJbXBsPiBEcmF3aW5nQXJlYUltcGw6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlLCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRHJhd2luZ0FyZWFJbXBsKHdlYlBhZ2UsIHBhcmFtZXRlcnMpKTsKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IERyYXdpbmdBcmVhSW1wbCh3ZWJQYWdlLCBwYXJhbWV0ZXJz
KSk7CiB9CiAKIERyYXdpbmdBcmVhSW1wbDo6fkRyYXdpbmdBcmVhSW1wbCgpCkBAIC01Nyw3ICs1
Nyw3IEBAIERyYXdpbmdBcmVhSW1wbDo6fkRyYXdpbmdBcmVhSW1wbCgpCiB9CiAKIERyYXdpbmdB
cmVhSW1wbDo6RHJhd2luZ0FyZWFJbXBsKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi0gICAgOiBEcmF3aW5nQXJlYShEcmF3aW5n
QXJlYUluZm86OkltcGwsIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZvLmlkZW50aWZpZXIsIHdl
YlBhZ2UpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVJbXBsLCB3ZWJQYWdlKQog
ICAgICwgbV9zdGF0ZUlEKDApCiAgICAgLCBtX2luVXBkYXRlU3RhdGUoZmFsc2UpCiAgICAgLCBt
X2lzV2FpdGluZ0ZvckRpZFVwZGF0ZShmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgJKHJldmlzaW9uIDc5NzUx
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFVwZGF0ZUluZm87CiAKIGNs
YXNzIERyYXdpbmdBcmVhSW1wbCA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RHJhd2luZ0FyZWFJbXBsPiBjcmVhdGUoV2ViUGFnZSosIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxEcmF3
aW5nQXJlYUltcGw+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYpOwogICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhSW1wbCgpOwogCiAgICAgdm9pZCBsYXll
ckhvc3REaWRGbHVzaExheWVycygpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVhLmNwcAkocmV2aXNpb24gNzk3NTEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDggKzQzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1UaWxlZERyYXdpbmdBcmVhOjpUaWxlZERyYXdp
bmdBcmVhKERyYXdpbmdBcmVhSW5mbzo6SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJQYWdlKiB3
ZWJQYWdlKQotICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJbmZvOjpUaWxlZCwgaWRlbnRp
Zmllciwgd2ViUGFnZSkKK1RpbGVkRHJhd2luZ0FyZWE6OlRpbGVkRHJhd2luZ0FyZWEoV2ViUGFn
ZSogd2ViUGFnZSkKKyAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVRpbGVkLCB3ZWJQ
YWdlKQogICAgICwgbV9pc1dhaXRpbmdGb3JVcGRhdGUoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFBh
aW50KHRydWUpCiAgICAgLCBtX2Rpc3BsYXlUaW1lcihXZWJQcm9jZXNzOjpzaGFyZWQoKS5ydW5M
b29wKCksIHRoaXMsICZUaWxlZERyYXdpbmdBcmVhOjpkaXNwbGF5KQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5oCShy
ZXZpc2lvbiA3OTc1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxl
ZERyYXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKQEAgLTQwLDcgKzM5LDcgQEAgY2xhc3MgVXBkYXRlQ2h1bms7CiAKIGNs
YXNzIFRpbGVkRHJhd2luZ0FyZWEgOiBwdWJsaWMgRHJhd2luZ0FyZWEgewogcHVibGljOgotICAg
IFRpbGVkRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyLCBXZWJQYWdlKik7
CisgICAgZXhwbGljaXQgVGlsZWREcmF3aW5nQXJlYShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+
VGlsZWREcmF3aW5nQXJlYSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA3OTc1MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTg3
LDEwICs1ODcsNiBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4dCYgCiAg
ICAgZ3JhcGhpY3NDb250ZXh0LmNsaXAocmVjdCk7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFt
ZSgpLT52aWV3KCktPnBhaW50KCZncmFwaGljc0NvbnRleHQsIHJlY3QpOwogICAgIGdyYXBoaWNz
Q29udGV4dC5yZXN0b3JlKCk7Ci0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY29kZSBvbmNl
IHdlJ3JlIHVzaW5nIHRoZSBuZXcgZHJhd2luZyBhcmVhIG9uIG1hYyBhbmQgd2luZG93cy4KLSAg
ICBpZiAobV9wYWdlT3ZlcmxheSAmJiBtX2RyYXdpbmdBcmVhLT5pbmZvKCkudHlwZSAhPSBEcmF3
aW5nQXJlYUluZm86OkltcGwpCi0gICAgICAgIGRyYXdQYWdlT3ZlcmxheShncmFwaGljc0NvbnRl
eHQsIHJlY3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlT3ZlcmxheShHcmFwaGljc0Nv
bnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gNzk3NTEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NzEsNyArNDcxLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV91c2VyQWdl
bnQ7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld1NpemU7Ci0gICAgUmVmUHRyPERyYXdp
bmdBcmVhPiBtX2RyYXdpbmdBcmVhOworICAgIE93blB0cjxEcmF3aW5nQXJlYT4gbV9kcmF3aW5n
QXJlYTsKIAogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7CiAgICAgYm9vbCBtX2RyYXdzVHJh
bnNwYXJlbnRCYWNrZ3JvdW5kOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83944</attachid>
            <date>2011-02-26 09:45:36 -0800</date>
            <delta_ts>2011-02-26 10:35:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55284-20110226094536.patch</filename>
            <type>text/plain</type>
            <size>29087</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5Nzk2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDItMjYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcmF3aW5nQXJlYSBzaG91bGQgbm90IGJlIHJlZmVyZW5j
ZSBjb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NTI4NAorCisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZXRQYWdlSXNWaXNpYmxlKToK
KyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZW5kU2V0
U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YVByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6RHJhd2luZ0FyZWFQ
cm94eUltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZERyYXdpbmdBcmVhUHJveHk6OlRpbGVkRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpc3BsYXkpOgorICAg
ICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OnNldFNpemUpOgorICAgICAg
ICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVNZXNzYWdlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhOjpEcmF3aW5nQXJlYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkRHJhd2lu
Z0FyZWE6OlRpbGVkRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9U
aWxlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxMS0wMi0yNiAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAkocmV2aXNp
b24gNzk3OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDUxICsyMywxOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgRHJhd2luZ0FyZWFJbmZvX2gKLSNkZWZpbmUgRHJh
d2luZ0FyZWFJbmZvX2gKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgSW50UmVjdDsK
LSAgICBjbGFzcyBJbnRTaXplOwotfQorI2lmbmRlZiBEcmF3aW5nQXJlYVR5cGVfaAorI2RlZmlu
ZSBEcmF3aW5nQXJlYVR5cGVfaAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IERyYXdp
bmdBcmVhSW5mbyB7Ci0gICAgZW51bSBUeXBlIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgSW1w
bCwKLSAgICAgICAgQ2h1bmtlZFVwZGF0ZSwKK2VudW0gRHJhd2luZ0FyZWFUeXBlIHsKKyAgICBE
cmF3aW5nQXJlYVR5cGVJbXBsLAorICAgIERyYXdpbmdBcmVhVHlwZUNodW5rZWRVcGRhdGUsCiAj
aWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIFRpbGVkLAorICAgIERyYXdp
bmdBcmVhVHlwZVRpbGVkLAogI2VuZGlmCi0gICAgfTsKLSAgICAKLSAgICB0eXBlZGVmIHVpbnQ2
NF90IElkZW50aWZpZXI7Ci0KLSAgICBEcmF3aW5nQXJlYUluZm8oKQotICAgICAgICA6IHR5cGUo
Tm9uZSkKLSAgICAgICAgLCBpZGVudGlmaWVyKDApCi0gICAgewotICAgIH0KLQotICAgIERyYXdp
bmdBcmVhSW5mbyhUeXBlIHR5cGUsIElkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICAgICAgOiB0
eXBlKHR5cGUpCi0gICAgICAgICwgaWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgIHsKLSAgICB9
Ci0gICAgCi0gICAgVHlwZSB0eXBlOwotICAgIElkZW50aWZpZXIgaWRlbnRpZmllcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6RHJhd2luZ0FyZWFJbmZvPiA6IFNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViS2l0OjpEcmF3aW5nQXJlYUluZm8+IHsgfTsKLX0KLQotI2VuZGlmIC8v
IERyYXdpbmdBcmVhSW5mb19oCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFUeXBlX2gKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHJldmlzaW9uIDc5Nzk2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKEMKICAgICBlbmNvZGVyLT5lbmNvZGUo
aXNJbldpbmRvdyk7CiAKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RvcmUpOwotICAgIGVuY29kZXIt
PmVuY29kZShkcmF3aW5nQXJlYUluZm8pOworICAgIGVuY29kZXItPmVuY29kZUVudW0oZHJhd2lu
Z0FyZWFUeXBlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdyb3VwRGF0YSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdz
VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTsKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5zdG9yZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSW5mbykp
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFt
ZXRlcnMucGFnZUdyb3VwRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2
aXNpb24gNzk3OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGlzSW5XaW5kb3c7CiAgICAgCiAgICAgV2Vi
UHJlZmVyZW5jZXNTdG9yZSBzdG9yZTsKLSAgICBEcmF3aW5nQXJlYUluZm8gZHJhd2luZ0FyZWFJ
bmZvOworICAgIERyYXdpbmdBcmVhVHlwZSBkcmF3aW5nQXJlYVR5cGU7CiAgICAgV2ViUGFnZUdy
b3VwRGF0YSBwYWdlR3JvdXBEYXRhOwogCiAgICAgYm9vbCBkcmF3c0JhY2tncm91bmQ7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWFQcm94eS5jcHAJKHJldmlzaW9uIDc5Nzk2KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDUsNyArNDUsNyBAQCBQYXNzT3duUHRyPENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVBy
b3h5CiB9CiAKIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpDaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWFQcm94eShQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogd2Vi
UGFnZVByb3h5KQotICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYUluZm86OkNodW5r
ZWRVcGRhdGUsIHdlYlBhZ2VQcm94eSkKKyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0Fy
ZWFUeXBlQ2h1bmtlZFVwZGF0ZSwgd2ViUGFnZVByb3h5KQogICAgICwgbV9pc1dhaXRpbmdGb3JE
aWRTZXRGcmFtZU5vdGlmaWNhdGlvbihmYWxzZSkKICAgICAsIG1faXNWaXNpYmxlKHRydWUpCiAg
ICAgLCBtX2ZvcmNlUmVwYWludFdoZW5SZXN1bWluZ1BhaW50aW5nKGZhbHNlKQpAQCAtOTYsMTIg
Kzk2LDEyIEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNldFAKIAogICAg
IGlmICghbV9pc1Zpc2libGUpIHsKICAgICAgICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhh
dCBpdCBkb2Vzbid0IG5lZWQgdG8gcGFpbnQgYW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFn
ZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlN1
c3BlbmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlm
aWVyKSk7CisgICAgICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0Fy
ZWFMZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBD
OjpJbigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICAvLyBUaGUgcGFnZSBp
cyBub3cgdmlzaWJsZSwgcmVzdW1lIHBhaW50aW5nLgotICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVw
cmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFn
ZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVyLCBtX2ZvcmNlUmVwYWlu
dFdoZW5SZXN1bWluZ1BhaW50aW5nKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVk
U2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdl
SUQoKSwgQ29yZUlQQzo6SW4obV9mb3JjZVJlcGFpbnRXaGVuUmVzdW1pbmdQYWludGluZykpOwog
ICAgIG1fZm9yY2VSZXBhaW50V2hlblJlc3VtaW5nUGFpbnRpbmcgPSBmYWxzZTsKIH0KICAgICAK
QEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5Ojp1
cGRhCiAgICAgfQogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAg
IHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdl
OjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmll
cikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdh
Y3lNZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbigpKTsKIH0K
IAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFNldFNpemUoKQpAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNlbmQK
ICAgICAgICAgcmV0dXJuOwogICAgIG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRp
b24gPSB0cnVlOwogICAgIAotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPmRlcHJlY2F0
ZWRTZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6U2V0U2l6ZSwgbV93ZWJQYWdlUHJveHkt
PnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllciwgbV9zaXplKSk7CisgICAg
bV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdh
Y3lNZXNzYWdlOjpTZXRTaXplLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksIENvcmVJUEM6Oklu
KG1fc2l6ZSkpOwogfQogICAgIAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDc5Nzk2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuY3BwCShyZXZpc2lvbiA3OTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLURyYXdpbmdBcmVhUHJv
eHk6OkRyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJbmZvOjpUeXBlIHR5cGUsIFdlYlBhZ2VQ
cm94eSogd2ViUGFnZVByb3h5KQotICAgIDogbV9pbmZvKHR5cGUsIG5leHRJZGVudGlmaWVyKCkp
CitEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZSB0eXBl
LCBXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKKyAgICA6IG1fdHlwZSh0eXBlKQogICAgICwg
bV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zaXplKHdlYlBhZ2VQcm94eS0+
dmlld1NpemUoKSkKIHsKQEAgLTQzLDEyICs0Myw2IEBAIERyYXdpbmdBcmVhUHJveHk6On5EcmF3
aW5nQXJlYVByb3h5KCkKIHsKIH0KIAotRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyIERyYXdp
bmdBcmVhUHJveHk6Om5leHRJZGVudGlmaWVyKCkKLXsKLSAgICBzdGF0aWMgRHJhd2luZ0FyZWFJ
bmZvOjpJZGVudGlmaWVyIG5leHRJRCA9IDE7Ci0gICAgcmV0dXJuICsrbmV4dElEOwotfQotCiB2
b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQogeyAKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgc2Ny
b2xsT2Zmc2V0LmlzWmVybygpKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiA3OTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6
ZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAjaWYgUExBVEZPUk0oUVQpCiBj
bGFzcyBRUGFpbnRlcjsKQEAgLTM2LDYgKzM3LDE2IEBAIGNsYXNzIFFQYWludGVyOwogdHlwZWRl
ZiBzdHJ1Y3QgX2NhaXJvIGNhaXJvX3Q7CiAjZW5kaWYKIAorbmFtZXNwYWNlIENvcmVJUEMgewor
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNs
YXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEludFJl
Y3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBMYXllclRyZWVDb250ZXh0OwpA
QCAtNTYsMTYgKzY3LDE1IEBAIGNsYXNzIERyYXdpbmdBcmVhUHJveHkgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERyYXdpbmdBcmVhUHJveHkpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIERy
YXdpbmdBcmVhSW5mbzo6SWRlbnRpZmllciBuZXh0SWRlbnRpZmllcigpOwotCiAgICAgdmlydHVh
bCB+RHJhd2luZ0FyZWFQcm94eSgpOwogCisgICAgRHJhd2luZ0FyZWFUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lO
KQogICAgIHZvaWQgZGlkUmVjZWl2ZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHBhaW50aW5nIHdhcyBzdWNjZXNzZnVsLCBmYWxzZSBv
dGhlcndpc2UuCiAgICAgdmlydHVhbCBib29sIHBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBQbGF0Zm9ybURyYXdpbmdDb250ZXh0KSA9IDA7CkBAIC03NywxNSArODcsMTMgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VJc1Zpc2libGUoYm9vbCBpc1Zpc2libGUpID0g
MDsKIAotICAgIGNvbnN0IERyYXdpbmdBcmVhSW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5mbzsgfQotCiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZTsgfQogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKIAogcHJvdGVjdGVkOgotICAg
IGV4cGxpY2l0IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJbmZvOjpUeXBlLCBXZWJQYWdl
UHJveHkqKTsKKyAgICBleHBsaWNpdCBEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZSwg
V2ViUGFnZVByb3h5Kik7CiAKLSAgICBEcmF3aW5nQXJlYUluZm8gbV9pbmZvOworICAgIERyYXdp
bmdBcmVhVHlwZSBtX3R5cGU7CiAgICAgV2ViUGFnZVByb3h5KiBtX3dlYlBhZ2VQcm94eTsKIAog
ICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCShyZXZpc2lvbiA3OTc5NikKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFzc093blB0cjxEcmF3aW5nQXJlYVByb3h5SW1w
bD4gRHJhd2luZwogfQogCiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6RHJhd2luZ0FyZWFQcm94eUlt
cGwoV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCi0gICAgOiBEcmF3aW5nQXJlYVByb3h5KERy
YXdpbmdBcmVhSW5mbzo6SW1wbCwgd2ViUGFnZVByb3h5KQorICAgIDogRHJhd2luZ0FyZWFQcm94
eShEcmF3aW5nQXJlYVR5cGVJbXBsLCB3ZWJQYWdlUHJveHkpCiAgICAgLCBtX2N1cnJlbnRTdGF0
ZUlEKDApCiAgICAgLCBtX3JlcXVlc3RlZFN0YXRlSUQoMCkKICAgICAsIG1faXNXYWl0aW5nRm9y
RGlkVXBkYXRlU3RhdGUoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAkocmV2aXNpb24gNzk3OTYpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJl
YVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWRE
cmF3aW5nQXJlYVByb3h5LmNwcAkocmV2aXNpb24gNzk3OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNyBAQCBQYXNzT3duUHRyPFRpbGVkRHJhd2luZ0FyZWFQcm94eT4gVGlsZWRECiB9CiAK
IFRpbGVkRHJhd2luZ0FyZWFQcm94eTo6VGlsZWREcmF3aW5nQXJlYVByb3h5KFBsYXRmb3JtV2Vi
Vmlldyogd2ViVmlldywgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCi0gICAgOiBEcmF3aW5n
QXJlYVByb3h5KERyYXdpbmdBcmVhSW5mbzo6VGlsZWQsIHdlYlBhZ2VQcm94eSkKKyAgICA6IERy
YXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlVGlsZWQsIHdlYlBhZ2VQcm94eSkKICAgICAs
IG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24oZmFsc2UpCiAgICAgLCBtX2lz
VmlzaWJsZSh0cnVlKQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCkBAIC0xNzEsMTEgKzE3MSw2
IEBAIHZvaWQgVGlsZWREcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWUKICAgICB9CiB9CiAK
LXZvaWQgVGlsZWREcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLX0KLQogdm9pZCBUaWxlZERyYXdpbmdBcmVhUHJveHk6OnJlcXVlc3RUaWxlVXBkYXRl
KGludCB0aWxlSUQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICBwYWdlKCktPnBy
b2Nlc3MoKS0+Y29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1l
c3NhZ2U6OlJlcXVlc3RUaWxlVXBkYXRlLCBwYWdlKCktPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbih0
aWxlSUQsIGRpcnR5UmVjdCwgY29udGVudHNTY2FsZSgpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiA3OTc5
NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KIApAQCAtMTE0LDcgKzExMyw2IEBAIHByaXZhdGU6CiAKICAgICAv
LyBEcmF3aW5nQXJlYVByb3h5CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJik7CiAgICAgdmlydHVhbCBib29sIHBhaW50
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBQbGF0Zm9ybURyYXdpbmdDb250ZXh0KTsKICAgICB2
aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlSXNW
aXNpYmxlKGJvb2wgaXNWaXNpYmxlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3OTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0LDExICsxMjQ0LDYg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcgogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQogewotICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxl
Z2FjeT4oKSkgewotICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQpAQCAtMjU3
Niw3ICsyNTcxLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6Ogog
ICAgIHBhcmFtZXRlcnMuaXNGb2N1c2VkID0gbV9wYWdlQ2xpZW50LT5pc1ZpZXdGb2N1c2VkKCk7
CiAgICAgcGFyYW1ldGVycy5pc1Zpc2libGUgPSBtX3BhZ2VDbGllbnQtPmlzVmlld1Zpc2libGUo
KTsKICAgICBwYXJhbWV0ZXJzLmlzSW5XaW5kb3cgPSBtX3BhZ2VDbGllbnQtPmlzVmlld0luV2lu
ZG93KCk7Ci0gICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUluZm8gPSBtX2RyYXdpbmdBcmVhLT5p
bmZvKCk7CisgICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYVR5cGUgPSBtX2RyYXdpbmdBcmVhLT50
eXBlKCk7CiAgICAgcGFyYW1ldGVycy5zdG9yZSA9IG1fcGFnZUdyb3VwLT5wcmVmZXJlbmNlcygp
LT5zdG9yZSgpOwogICAgIHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSA9IG1fcGFnZUdyb3VwLT5k
YXRhKCk7CiAgICAgcGFyYW1ldGVycy5kcmF3c0JhY2tncm91bmQgPSBtX2RyYXdzQmFja2dyb3Vu
ZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFw
aGljc3drdmlldy5jcHAJKHJldmlzaW9uIDc5Nzk2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsNyAr
MzYxLDcgQEAgdm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnRha2VTbmFwc2hvdChjb25zdAogewogI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdp
bmdBcmVhID0gcGFnZSgpLT5kLT5wYWdlLT5kcmF3aW5nQXJlYSgpOwotICAgIGlmIChkcmF3aW5n
QXJlYS0+aW5mbygpLnR5cGUgIT0gRHJhd2luZ0FyZWFJbmZvOjpUaWxlZCkKKyAgICBpZiAoZHJh
d2luZ0FyZWEtPnR5cGUoKSAhPSBEcmF3aW5nQXJlYVR5cGVUaWxlZCkKICAgICAgICAgcmV0dXJu
OwogICAgIFRpbGVkRHJhd2luZ0FyZWFQcm94eSogdGlsZWREcmF3aW5nQXJlYSA9IHN0YXRpY19j
YXN0PFRpbGVkRHJhd2luZ0FyZWFQcm94eSo+KGRyYXdpbmdBcmVhKTsKICAgICB0aWxlZERyYXdp
bmdBcmVhLT50YWtlU25hcHNob3Qoc2l6ZSwgY29udGVudHNSZWN0KTsKQEAgLTQyMiw3ICs0MjIs
NyBAQCB2b2lkIFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OmNvbW1pdFNjYWxlCiAjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEg
PSBwYWdlLT5kLT5wYWdlLT5kcmF3aW5nQXJlYSgpOwogICAgIGZsb2F0IG5ld1NjYWxlID0gcS0+
c2NhbGUoKTsKLSAgICBpZiAoZHJhd2luZ0FyZWEtPmluZm8oKS50eXBlID09IERyYXdpbmdBcmVh
SW5mbzo6VGlsZWQpIHsKKyAgICBpZiAoaWYgKGRyYXdpbmdBcmVhLT50eXBlKCkgPT0gRHJhd2lu
Z0FyZWFUeXBlVGlsZWQpIHsKICAgICAgICAgVGlsZWREcmF3aW5nQXJlYVByb3h5KiB0aWxlZERy
YXdpbmdBcmVhID0gc3RhdGljX2Nhc3Q8VGlsZWREcmF3aW5nQXJlYVByb3h5Kj4oZHJhd2luZ0Fy
ZWEpOwogICAgICAgICBpZiAodGlsZWREcmF3aW5nQXJlYS0+Y29udGVudHNTY2FsZSgpID09IG5l
d1NjYWxlKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAJKHJldmlzaW9uIDc5Nzk2KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oIgogCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwCShyZXZpc2lv
biA3OTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhOjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJbmZvOjpJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCi0gICAgOiBEcmF3aW5nQXJl
YShEcmF3aW5nQXJlYUluZm86OkNodW5rZWRVcGRhdGUsIGlkZW50aWZpZXIsIHdlYlBhZ2UpCitD
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYShXZWJQYWdl
KiB3ZWJQYWdlKQorICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlQ2h1bmtlZFVwZGF0
ZSwgd2ViUGFnZSkKICAgICAsIG1faXNXYWl0aW5nRm9yVXBkYXRlKGZhbHNlKQogICAgICwgbV9w
YWludGluZ0lzU3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9kaXNwbGF5VGltZXIoV2ViUHJvY2Vz
czo6c2hhcmVkKCkucnVuTG9vcCgpLCB0aGlzLCAmQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpk
aXNwbGF5KQpAQCAtNzQsMTUgKzc0LDkgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6
OmRpc3BsYXkoKQogICAgIGlmIChtX2RpcnR5UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIExheWluZyBvdXQgdGhlIHBhZ2UgY2FuIGNhdXNlIHRoZSBkcmF3aW5nIGFy
ZWEgdG8gY2hhbmdlIHNvIHdlIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlLgotICAgIFJlZlB0cjxD
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWE+IHByb3RlY3QodGhpcyk7Ci0KICAgICAvLyBMYXlvdXQg
aWYgbmVjZXNzYXJ5LgogICAgIG1fd2ViUGFnZS0+bGF5b3V0SWZOZWVkZWQoKTsKICAKLSAgICBp
ZiAobV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKICAgICBJbnRSZWN0IGRpcnR5UmVjdCA9IG1fZGlydHlSZWN0OwogICAgIG1fZGlydHlSZWN0
ID0gSW50UmVjdCgpOwogCkBAIC0xMjYsMTUgKzEyMCw5IEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURy
YXdpbmdBcmVhOjpzZXRTaXplKGMKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHdhaXQgZm9yIGFu
IHVwZGF0ZSB1bnRpbCB3ZSBkaXNwbGF5LgogICAgIG1faXNXYWl0aW5nRm9yVXBkYXRlID0gZmFs
c2U7CiAgICAgCi0gICAgLy8gTGF5aW5nIG91dCB0aGUgcGFnZSBjYW4gY2F1c2UgdGhlIGRyYXdp
bmcgYXJlYSB0byBjaGFuZ2Ugc28gd2Uga2VlcCBhbiBleHRyYSByZWZlcmVuY2UuCi0gICAgUmVm
UHRyPENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYT4gcHJvdGVjdCh0aGlzKTsKLQogICAgIG1fd2Vi
UGFnZS0+c2V0U2l6ZSh2aWV3U2l6ZSk7CiAgICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgp
OwogCi0gICAgaWYgKG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSAhPSB0aGlzKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBpZiAobV9wYWludGluZ0lzU3VzcGVuZGVkKSB7CiAgICAgICAgIEFTU0VS
VCghbV9kaXNwbGF5VGltZXIuaXNBY3RpdmUoKSk7CiAKQEAgLTE4NSwxNCArMTczLDYgQEAgdm9p
ZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZQogCiB2b2lkIENodW5rZWRVcGRh
dGVEcmF3aW5nQXJlYTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQogewotICAgIERyYXdpbmdBcmVhSW5mbzo6SWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHRhcmdldElkZW50
aWZpZXIpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gV2UgY2FuIHN3aXRjaCBkcmF3aW5n
IGFyZWFzIG9uIHRoZSBmbHksIHNvIGlmIHRoaXMgbWVzc2FnZSB3YXMgdGFyZ2V0dGVkIGF0IGFu
IG9ic29sZXRlIGRyYXdpbmcgYXJlYSwgaWdub3JlIGl0LgotICAgIGlmICh0YXJnZXRJZGVudGlm
aWVyICE9IGluZm8oKS5pZGVudGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KICAgICBzd2l0Y2gg
KG1lc3NhZ2VJRC5nZXQ8RHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpLaW5kPigpKSB7CiAgICAg
ICAgIGNhc2UgRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTZXRTaXplOiB7CiAgICAgICAgICAg
ICBJbnRTaXplIHNpemU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oCShyZXZpc2lvbiA3
OTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBVcGRh
dGVDaHVuazsKIAogY2xhc3MgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdp
bmdBcmVhIHsKIHB1YmxpYzoKLSAgICBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoRHJhd2luZ0Fy
ZWFJbmZvOjpJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqKTsKKyAgICBleHBsaWNpdCBD
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfkNodW5rZWRV
cGRhdGVEcmF3aW5nQXJlYSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAJKHJldmlzaW9uIDc5Nzk2KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsMzMgKzQxLDI5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVm
UHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzT3duUHRyPERy
YXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgc3dpdGNoIChwYXJh
bWV0ZXJzLmRyYXdpbmdBcmVhSW5mby50eXBlKSB7Ci0gICAgICAgIGNhc2UgRHJhd2luZ0FyZWFJ
bmZvOjpOb25lOgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICBjYXNlIERyYXdpbmdBcmVhSW5mbzo6SW1wbDoKKyAgICBzd2l0
Y2ggKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlKSB7CisgICAgICAgIGNhc2UgRHJhd2luZ0Fy
ZWFUeXBlSW1wbDoKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKICAgICAgICAg
ICAgIHJldHVybiBEcmF3aW5nQXJlYUltcGw6OmNyZWF0ZSh3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsK
ICNlbHNlCiAgICAgICAgICAgICByZXR1cm4gMDsKICNlbmRpZgotICAgICAgICBjYXNlIERyYXdp
bmdBcmVhSW5mbzo6Q2h1bmtlZFVwZGF0ZToKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZvLmlk
ZW50aWZpZXIsIHdlYlBhZ2UpKTsKKyAgICAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVDaHVua2Vk
VXBkYXRlOgorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWEod2ViUGFnZSkpOwogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0g
ICAgICAgIGNhc2UgRHJhd2luZ0FyZWFJbmZvOjpUaWxlZDoKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgVGlsZWREcmF3aW5nQXJlYShwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSW5mby5p
ZGVudGlmaWVyLCB3ZWJQYWdlKSk7CisgICAgICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlVGlsZWQ6
CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbGVkRHJhd2luZ0FyZWEod2ViUGFn
ZSkpOwogI2VuZGlmCiAgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9CiAKLURyYXdpbmdBcmVhOjpE
cmF3aW5nQXJlYShEcmF3aW5nQXJlYUluZm86OlR5cGUgdHlwZSwgRHJhd2luZ0FyZWFJbmZvOjpJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCi0gICAgOiBtX2luZm8odHlw
ZSwgaWRlbnRpZmllcikKK0RyYXdpbmdBcmVhOjpEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGUg
dHlwZSwgV2ViUGFnZSogd2ViUGFnZSkKKyAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV93ZWJQ
YWdlKHdlYlBhZ2UpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkocmV2aXNpb24gNzk3OTYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
MTMgKzI4LDE3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFJlY3QuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworICAgIGNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNsYXNzIE1lc3NhZ2VJ
RDsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBjbGFzcyBHcmFwaGljc0xheWVyOwotI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNDIsMTAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2Vi
UGFnZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogCi1jbGFzcyBEcmF3aW5n
QXJlYSA6IHB1YmxpYyBSZWZDb3VudGVkPERyYXdpbmdBcmVhPiB7CitjbGFzcyBEcmF3aW5nQXJl
YSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRHJhd2luZ0FyZWEpOworCiBwdWJsaWM6Ci0g
ICAgLy8gRklYTUU6IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gbW92ZSB0aGlzIGNyZWF0ZSBmdW5j
dGlvbiBpbnRvIGEgZmFjdG9yeSBzdHlsZSBjbGFzcy4gCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RHJhd2luZ0FyZWE+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPERyYXdpbmdBcmVhPiBjcmVhdGUoV2ViUGFn
ZSosIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIH5EcmF3
aW5nQXJlYSgpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQpAQCAt
NzIsMTIgKzc3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKSA9IDA7CiAKLSAgICBjb25zdCBEcmF3aW5nQXJlYUluZm8mIGluZm8o
KSBjb25zdCB7IHJldHVybiBtX2luZm87IH0KLQogcHJvdGVjdGVkOgotICAgIERyYXdpbmdBcmVh
KERyYXdpbmdBcmVhSW5mbzo6VHlwZSwgRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyLCBXZWJQ
YWdlKik7CisgICAgRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlKik7CiAKLSAg
ICBEcmF3aW5nQXJlYUluZm8gbV9pbmZvOworICAgIERyYXdpbmdBcmVhVHlwZSBtX3R5cGU7CiAg
ICAgV2ViUGFnZSogbV93ZWJQYWdlOwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAJKHJldmlz
aW9uIDc5Nzk2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPERyYXdpbmdB
cmVhSW1wbD4gRHJhd2luZ0FyZWFJbXBsOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NPd25QdHI8RHJhd2lu
Z0FyZWFJbXBsPiBEcmF3aW5nQXJlYUltcGw6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlLCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRHJhd2luZ0FyZWFJbXBsKHdlYlBhZ2UsIHBhcmFtZXRlcnMpKTsKKyAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IERyYXdpbmdBcmVhSW1wbCh3ZWJQYWdlLCBwYXJhbWV0ZXJzKSk7
CiB9CiAKIERyYXdpbmdBcmVhSW1wbDo6fkRyYXdpbmdBcmVhSW1wbCgpCkBAIC01Nyw3ICs1Nyw3
IEBAIERyYXdpbmdBcmVhSW1wbDo6fkRyYXdpbmdBcmVhSW1wbCgpCiB9CiAKIERyYXdpbmdBcmVh
SW1wbDo6RHJhd2luZ0FyZWFJbXBsKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi0gICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJl
YUluZm86OkltcGwsIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZvLmlkZW50aWZpZXIsIHdlYlBh
Z2UpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVJbXBsLCB3ZWJQYWdlKQogICAg
ICwgbV9zdGF0ZUlEKDApCiAgICAgLCBtX2luVXBkYXRlU3RhdGUoZmFsc2UpCiAgICAgLCBtX2lz
V2FpdGluZ0ZvckRpZFVwZGF0ZShmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgJKHJldmlzaW9uIDc5Nzk2KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFVwZGF0ZUluZm87CiAKIGNsYXNz
IERyYXdpbmdBcmVhSW1wbCA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RHJhd2luZ0FyZWFJbXBsPiBjcmVhdGUoV2ViUGFnZSosIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxEcmF3aW5n
QXJlYUltcGw+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYpOwogICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhSW1wbCgpOwogCiAgICAgdm9pZCBsYXllckhv
c3REaWRGbHVzaExheWVycygpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1RpbGVkRHJhd2luZ0FyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVhLmNwcAkocmV2aXNpb24gNzk3OTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDggKzQzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1UaWxlZERyYXdpbmdBcmVhOjpUaWxlZERyYXdpbmdB
cmVhKERyYXdpbmdBcmVhSW5mbzo6SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJQYWdlKiB3ZWJQ
YWdlKQotICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJbmZvOjpUaWxlZCwgaWRlbnRpZmll
ciwgd2ViUGFnZSkKK1RpbGVkRHJhd2luZ0FyZWE6OlRpbGVkRHJhd2luZ0FyZWEoV2ViUGFnZSog
d2ViUGFnZSkKKyAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVRpbGVkLCB3ZWJQYWdl
KQogICAgICwgbV9pc1dhaXRpbmdGb3JVcGRhdGUoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFBhaW50
KHRydWUpCiAgICAgLCBtX2Rpc3BsYXlUaW1lcihXZWJQcm9jZXNzOjpzaGFyZWQoKS5ydW5Mb29w
KCksIHRoaXMsICZUaWxlZERyYXdpbmdBcmVhOjpkaXNwbGF5KQpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5oCShyZXZp
c2lvbiA3OTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERy
YXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
SW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTQwLDcgKzM5LDcgQEAgY2xhc3MgVXBkYXRlQ2h1bms7CiAKIGNsYXNz
IFRpbGVkRHJhd2luZ0FyZWEgOiBwdWJsaWMgRHJhd2luZ0FyZWEgewogcHVibGljOgotICAgIFRp
bGVkRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyLCBXZWJQYWdlKik7Cisg
ICAgZXhwbGljaXQgVGlsZWREcmF3aW5nQXJlYShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+VGls
ZWREcmF3aW5nQXJlYSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25z
dCBXZWJDb3JlOjpJbnRSZWN0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA3OTc5NikKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTg3LDEw
ICs1ODcsNiBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4dCYgCiAgICAg
Z3JhcGhpY3NDb250ZXh0LmNsaXAocmVjdCk7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgp
LT52aWV3KCktPnBhaW50KCZncmFwaGljc0NvbnRleHQsIHJlY3QpOwogICAgIGdyYXBoaWNzQ29u
dGV4dC5yZXN0b3JlKCk7Ci0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY29kZSBvbmNlIHdl
J3JlIHVzaW5nIHRoZSBuZXcgZHJhd2luZyBhcmVhIG9uIG1hYyBhbmQgd2luZG93cy4KLSAgICBp
ZiAobV9wYWdlT3ZlcmxheSAmJiBtX2RyYXdpbmdBcmVhLT5pbmZvKCkudHlwZSAhPSBEcmF3aW5n
QXJlYUluZm86OkltcGwpCi0gICAgICAgIGRyYXdQYWdlT3ZlcmxheShncmFwaGljc0NvbnRleHQs
IHJlY3QpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlT3ZlcmxheShHcmFwaGljc0NvbnRl
eHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gNzk3OTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NzEsNyArNDcxLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7
CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld1NpemU7Ci0gICAgUmVmUHRyPERyYXdpbmdB
cmVhPiBtX2RyYXdpbmdBcmVhOworICAgIE93blB0cjxEcmF3aW5nQXJlYT4gbV9kcmF3aW5nQXJl
YTsKIAogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7CiAgICAgYm9vbCBtX2RyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83945</attachid>
            <date>2011-02-26 10:35:54 -0800</date>
            <delta_ts>2011-02-26 11:08:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55284-20110226103554.patch</filename>
            <type>text/plain</type>
            <size>29083</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDItMjYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcmF3aW5nQXJlYSBzaG91bGQgbm90IGJlIHJlZmVyZW5j
ZSBjb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NTI4NAorCisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZXRQYWdlSXNWaXNpYmxlKToK
KyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZW5kU2V0
U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YVByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6RHJhd2luZ0FyZWFQ
cm94eUltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZERyYXdpbmdBcmVhUHJveHk6OlRpbGVkRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpc3BsYXkpOgorICAg
ICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OnNldFNpemUpOgorICAgICAg
ICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVNZXNzYWdlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhOjpEcmF3aW5nQXJlYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkRHJhd2lu
Z0FyZWE6OlRpbGVkRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9U
aWxlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxMS0wMi0yNiAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAkocmV2aXNp
b24gNzk3OTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDUxICsyMywxOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgRHJhd2luZ0FyZWFJbmZvX2gKLSNkZWZpbmUgRHJh
d2luZ0FyZWFJbmZvX2gKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgSW50UmVjdDsK
LSAgICBjbGFzcyBJbnRTaXplOwotfQorI2lmbmRlZiBEcmF3aW5nQXJlYVR5cGVfaAorI2RlZmlu
ZSBEcmF3aW5nQXJlYVR5cGVfaAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IERyYXdp
bmdBcmVhSW5mbyB7Ci0gICAgZW51bSBUeXBlIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgSW1w
bCwKLSAgICAgICAgQ2h1bmtlZFVwZGF0ZSwKK2VudW0gRHJhd2luZ0FyZWFUeXBlIHsKKyAgICBE
cmF3aW5nQXJlYVR5cGVJbXBsLAorICAgIERyYXdpbmdBcmVhVHlwZUNodW5rZWRVcGRhdGUsCiAj
aWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIFRpbGVkLAorICAgIERyYXdp
bmdBcmVhVHlwZVRpbGVkLAogI2VuZGlmCi0gICAgfTsKLSAgICAKLSAgICB0eXBlZGVmIHVpbnQ2
NF90IElkZW50aWZpZXI7Ci0KLSAgICBEcmF3aW5nQXJlYUluZm8oKQotICAgICAgICA6IHR5cGUo
Tm9uZSkKLSAgICAgICAgLCBpZGVudGlmaWVyKDApCi0gICAgewotICAgIH0KLQotICAgIERyYXdp
bmdBcmVhSW5mbyhUeXBlIHR5cGUsIElkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICAgICAgOiB0
eXBlKHR5cGUpCi0gICAgICAgICwgaWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgIHsKLSAgICB9
Ci0gICAgCi0gICAgVHlwZSB0eXBlOwotICAgIElkZW50aWZpZXIgaWRlbnRpZmllcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6RHJhd2luZ0FyZWFJbmZvPiA6IFNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViS2l0OjpEcmF3aW5nQXJlYUluZm8+IHsgfTsKLX0KLQotI2VuZGlmIC8v
IERyYXdpbmdBcmVhSW5mb19oCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFUeXBlX2gKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHJldmlzaW9uIDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKEMKICAgICBlbmNvZGVyLT5lbmNvZGUo
aXNJbldpbmRvdyk7CiAKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RvcmUpOwotICAgIGVuY29kZXIt
PmVuY29kZShkcmF3aW5nQXJlYUluZm8pOworICAgIGVuY29kZXItPmVuY29kZUVudW0oZHJhd2lu
Z0FyZWFUeXBlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdyb3VwRGF0YSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdz
VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTsKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5zdG9yZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSW5mbykp
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFt
ZXRlcnMucGFnZUdyb3VwRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2
aXNpb24gNzk3OTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGlzSW5XaW5kb3c7CiAgICAgCiAgICAgV2Vi
UHJlZmVyZW5jZXNTdG9yZSBzdG9yZTsKLSAgICBEcmF3aW5nQXJlYUluZm8gZHJhd2luZ0FyZWFJ
bmZvOworICAgIERyYXdpbmdBcmVhVHlwZSBkcmF3aW5nQXJlYVR5cGU7CiAgICAgV2ViUGFnZUdy
b3VwRGF0YSBwYWdlR3JvdXBEYXRhOwogCiAgICAgYm9vbCBkcmF3c0JhY2tncm91bmQ7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWFQcm94eS5jcHAJKHJldmlzaW9uIDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDUsNyArNDUsNyBAQCBQYXNzT3duUHRyPENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVBy
b3h5CiB9CiAKIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpDaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWFQcm94eShQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogd2Vi
UGFnZVByb3h5KQotICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYUluZm86OkNodW5r
ZWRVcGRhdGUsIHdlYlBhZ2VQcm94eSkKKyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0Fy
ZWFUeXBlQ2h1bmtlZFVwZGF0ZSwgd2ViUGFnZVByb3h5KQogICAgICwgbV9pc1dhaXRpbmdGb3JE
aWRTZXRGcmFtZU5vdGlmaWNhdGlvbihmYWxzZSkKICAgICAsIG1faXNWaXNpYmxlKHRydWUpCiAg
ICAgLCBtX2ZvcmNlUmVwYWludFdoZW5SZXN1bWluZ1BhaW50aW5nKGZhbHNlKQpAQCAtOTYsMTIg
Kzk2LDEyIEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNldFAKIAogICAg
IGlmICghbV9pc1Zpc2libGUpIHsKICAgICAgICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhh
dCBpdCBkb2Vzbid0IG5lZWQgdG8gcGFpbnQgYW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFn
ZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlN1
c3BlbmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlm
aWVyKSk7CisgICAgICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0Fy
ZWFMZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBD
OjpJbigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICAvLyBUaGUgcGFnZSBp
cyBub3cgdmlzaWJsZSwgcmVzdW1lIHBhaW50aW5nLgotICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVw
cmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFn
ZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVyLCBtX2ZvcmNlUmVwYWlu
dFdoZW5SZXN1bWluZ1BhaW50aW5nKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVk
U2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdl
SUQoKSwgQ29yZUlQQzo6SW4obV9mb3JjZVJlcGFpbnRXaGVuUmVzdW1pbmdQYWludGluZykpOwog
ICAgIG1fZm9yY2VSZXBhaW50V2hlblJlc3VtaW5nUGFpbnRpbmcgPSBmYWxzZTsKIH0KICAgICAK
QEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5Ojp1
cGRhCiAgICAgfQogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAg
IHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdl
OjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmll
cikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdh
Y3lNZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbigpKTsKIH0K
IAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFNldFNpemUoKQpAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNlbmQK
ICAgICAgICAgcmV0dXJuOwogICAgIG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRp
b24gPSB0cnVlOwogICAgIAotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPmRlcHJlY2F0
ZWRTZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6U2V0U2l6ZSwgbV93ZWJQYWdlUHJveHkt
PnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllciwgbV9zaXplKSk7CisgICAg
bV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdh
Y3lNZXNzYWdlOjpTZXRTaXplLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksIENvcmVJUEM6Oklu
KG1fc2l6ZSkpOwogfQogICAgIAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuY3BwCShyZXZpc2lvbiA3OTc5OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLURyYXdpbmdBcmVhUHJv
eHk6OkRyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJbmZvOjpUeXBlIHR5cGUsIFdlYlBhZ2VQ
cm94eSogd2ViUGFnZVByb3h5KQotICAgIDogbV9pbmZvKHR5cGUsIG5leHRJZGVudGlmaWVyKCkp
CitEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZSB0eXBl
LCBXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKKyAgICA6IG1fdHlwZSh0eXBlKQogICAgICwg
bV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zaXplKHdlYlBhZ2VQcm94eS0+
dmlld1NpemUoKSkKIHsKQEAgLTQzLDEyICs0Myw2IEBAIERyYXdpbmdBcmVhUHJveHk6On5EcmF3
aW5nQXJlYVByb3h5KCkKIHsKIH0KIAotRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyIERyYXdp
bmdBcmVhUHJveHk6Om5leHRJZGVudGlmaWVyKCkKLXsKLSAgICBzdGF0aWMgRHJhd2luZ0FyZWFJ
bmZvOjpJZGVudGlmaWVyIG5leHRJRCA9IDE7Ci0gICAgcmV0dXJuICsrbmV4dElEOwotfQotCiB2
b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQogeyAKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgc2Ny
b2xsT2Zmc2V0LmlzWmVybygpKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiA3OTc5OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6
ZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAjaWYgUExBVEZPUk0oUVQpCiBj
bGFzcyBRUGFpbnRlcjsKQEAgLTM2LDYgKzM3LDE2IEBAIGNsYXNzIFFQYWludGVyOwogdHlwZWRl
ZiBzdHJ1Y3QgX2NhaXJvIGNhaXJvX3Q7CiAjZW5kaWYKIAorbmFtZXNwYWNlIENvcmVJUEMgewor
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNs
YXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEludFJl
Y3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBMYXllclRyZWVDb250ZXh0OwpA
QCAtNTYsMTYgKzY3LDE1IEBAIGNsYXNzIERyYXdpbmdBcmVhUHJveHkgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERyYXdpbmdBcmVhUHJveHkpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIERy
YXdpbmdBcmVhSW5mbzo6SWRlbnRpZmllciBuZXh0SWRlbnRpZmllcigpOwotCiAgICAgdmlydHVh
bCB+RHJhd2luZ0FyZWFQcm94eSgpOwogCisgICAgRHJhd2luZ0FyZWFUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lO
KQogICAgIHZvaWQgZGlkUmVjZWl2ZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHBhaW50aW5nIHdhcyBzdWNjZXNzZnVsLCBmYWxzZSBv
dGhlcndpc2UuCiAgICAgdmlydHVhbCBib29sIHBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBQbGF0Zm9ybURyYXdpbmdDb250ZXh0KSA9IDA7CkBAIC03NywxNSArODcsMTMgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VJc1Zpc2libGUoYm9vbCBpc1Zpc2libGUpID0g
MDsKIAotICAgIGNvbnN0IERyYXdpbmdBcmVhSW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5mbzsgfQotCiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZTsgfQogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKIAogcHJvdGVjdGVkOgotICAg
IGV4cGxpY2l0IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJbmZvOjpUeXBlLCBXZWJQYWdl
UHJveHkqKTsKKyAgICBleHBsaWNpdCBEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZSwg
V2ViUGFnZVByb3h5Kik7CiAKLSAgICBEcmF3aW5nQXJlYUluZm8gbV9pbmZvOworICAgIERyYXdp
bmdBcmVhVHlwZSBtX3R5cGU7CiAgICAgV2ViUGFnZVByb3h5KiBtX3dlYlBhZ2VQcm94eTsKIAog
ICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCShyZXZpc2lvbiA3OTc5OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFzc093blB0cjxEcmF3aW5nQXJlYVByb3h5SW1w
bD4gRHJhd2luZwogfQogCiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6RHJhd2luZ0FyZWFQcm94eUlt
cGwoV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCi0gICAgOiBEcmF3aW5nQXJlYVByb3h5KERy
YXdpbmdBcmVhSW5mbzo6SW1wbCwgd2ViUGFnZVByb3h5KQorICAgIDogRHJhd2luZ0FyZWFQcm94
eShEcmF3aW5nQXJlYVR5cGVJbXBsLCB3ZWJQYWdlUHJveHkpCiAgICAgLCBtX2N1cnJlbnRTdGF0
ZUlEKDApCiAgICAgLCBtX3JlcXVlc3RlZFN0YXRlSUQoMCkKICAgICAsIG1faXNXYWl0aW5nRm9y
RGlkVXBkYXRlU3RhdGUoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAkocmV2aXNpb24gNzk3OTgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJl
YVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWRE
cmF3aW5nQXJlYVByb3h5LmNwcAkocmV2aXNpb24gNzk3OTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNyBAQCBQYXNzT3duUHRyPFRpbGVkRHJhd2luZ0FyZWFQcm94eT4gVGlsZWRECiB9CiAK
IFRpbGVkRHJhd2luZ0FyZWFQcm94eTo6VGlsZWREcmF3aW5nQXJlYVByb3h5KFBsYXRmb3JtV2Vi
Vmlldyogd2ViVmlldywgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCi0gICAgOiBEcmF3aW5n
QXJlYVByb3h5KERyYXdpbmdBcmVhSW5mbzo6VGlsZWQsIHdlYlBhZ2VQcm94eSkKKyAgICA6IERy
YXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlVGlsZWQsIHdlYlBhZ2VQcm94eSkKICAgICAs
IG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24oZmFsc2UpCiAgICAgLCBtX2lz
VmlzaWJsZSh0cnVlKQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCkBAIC0xNzEsMTEgKzE3MSw2
IEBAIHZvaWQgVGlsZWREcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWUKICAgICB9CiB9CiAK
LXZvaWQgVGlsZWREcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLX0KLQogdm9pZCBUaWxlZERyYXdpbmdBcmVhUHJveHk6OnJlcXVlc3RUaWxlVXBkYXRl
KGludCB0aWxlSUQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICBwYWdlKCktPnBy
b2Nlc3MoKS0+Y29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1l
c3NhZ2U6OlJlcXVlc3RUaWxlVXBkYXRlLCBwYWdlKCktPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbih0
aWxlSUQsIGRpcnR5UmVjdCwgY29udGVudHNTY2FsZSgpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiA3OTc5
OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KIApAQCAtMTE0LDcgKzExMyw2IEBAIHByaXZhdGU6CiAKICAgICAv
LyBEcmF3aW5nQXJlYVByb3h5CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJik7CiAgICAgdmlydHVhbCBib29sIHBhaW50
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBQbGF0Zm9ybURyYXdpbmdDb250ZXh0KTsKICAgICB2
aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlSXNW
aXNpYmxlKGJvb2wgaXNWaXNpYmxlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3OTc5OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0LDExICsxMjQ0LDYg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcgogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQogewotICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxl
Z2FjeT4oKSkgewotICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQpAQCAtMjU3
Niw3ICsyNTcxLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6Ogog
ICAgIHBhcmFtZXRlcnMuaXNGb2N1c2VkID0gbV9wYWdlQ2xpZW50LT5pc1ZpZXdGb2N1c2VkKCk7
CiAgICAgcGFyYW1ldGVycy5pc1Zpc2libGUgPSBtX3BhZ2VDbGllbnQtPmlzVmlld1Zpc2libGUo
KTsKICAgICBwYXJhbWV0ZXJzLmlzSW5XaW5kb3cgPSBtX3BhZ2VDbGllbnQtPmlzVmlld0luV2lu
ZG93KCk7Ci0gICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUluZm8gPSBtX2RyYXdpbmdBcmVhLT5p
bmZvKCk7CisgICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYVR5cGUgPSBtX2RyYXdpbmdBcmVhLT50
eXBlKCk7CiAgICAgcGFyYW1ldGVycy5zdG9yZSA9IG1fcGFnZUdyb3VwLT5wcmVmZXJlbmNlcygp
LT5zdG9yZSgpOwogICAgIHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSA9IG1fcGFnZUdyb3VwLT5k
YXRhKCk7CiAgICAgcGFyYW1ldGVycy5kcmF3c0JhY2tncm91bmQgPSBtX2RyYXdzQmFja2dyb3Vu
ZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFw
aGljc3drdmlldy5jcHAJKHJldmlzaW9uIDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsNyAr
MzYxLDcgQEAgdm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnRha2VTbmFwc2hvdChjb25zdAogewogI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdp
bmdBcmVhID0gcGFnZSgpLT5kLT5wYWdlLT5kcmF3aW5nQXJlYSgpOwotICAgIGlmIChkcmF3aW5n
QXJlYS0+aW5mbygpLnR5cGUgIT0gRHJhd2luZ0FyZWFJbmZvOjpUaWxlZCkKKyAgICBpZiAoZHJh
d2luZ0FyZWEtPnR5cGUoKSAhPSBEcmF3aW5nQXJlYVR5cGVUaWxlZCkKICAgICAgICAgcmV0dXJu
OwogICAgIFRpbGVkRHJhd2luZ0FyZWFQcm94eSogdGlsZWREcmF3aW5nQXJlYSA9IHN0YXRpY19j
YXN0PFRpbGVkRHJhd2luZ0FyZWFQcm94eSo+KGRyYXdpbmdBcmVhKTsKICAgICB0aWxlZERyYXdp
bmdBcmVhLT50YWtlU25hcHNob3Qoc2l6ZSwgY29udGVudHNSZWN0KTsKQEAgLTQyMiw3ICs0MjIs
NyBAQCB2b2lkIFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OmNvbW1pdFNjYWxlCiAjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEg
PSBwYWdlLT5kLT5wYWdlLT5kcmF3aW5nQXJlYSgpOwogICAgIGZsb2F0IG5ld1NjYWxlID0gcS0+
c2NhbGUoKTsKLSAgICBpZiAoZHJhd2luZ0FyZWEtPmluZm8oKS50eXBlID09IERyYXdpbmdBcmVh
SW5mbzo6VGlsZWQpIHsKKyAgICBpZiAoZHJhd2luZ0FyZWEtPnR5cGUoKSA9PSBEcmF3aW5nQXJl
YVR5cGVUaWxlZCkgewogICAgICAgICBUaWxlZERyYXdpbmdBcmVhUHJveHkqIHRpbGVkRHJhd2lu
Z0FyZWEgPSBzdGF0aWNfY2FzdDxUaWxlZERyYXdpbmdBcmVhUHJveHkqPihkcmF3aW5nQXJlYSk7
CiAgICAgICAgIGlmICh0aWxlZERyYXdpbmdBcmVhLT5jb250ZW50c1NjYWxlKCkgPT0gbmV3U2Nh
bGUpCiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAkocmV2aXNpb24gNzk3OTgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgiCiAKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAJKHJldmlzaW9uIDc5
Nzk4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVE
cmF3aW5nQXJlYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1DaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWE6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYShEcmF3aW5nQXJlYUluZm86OklkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZSogd2ViUGFnZSkKLSAgICA6IERyYXdpbmdBcmVhKERy
YXdpbmdBcmVhSW5mbzo6Q2h1bmtlZFVwZGF0ZSwgaWRlbnRpZmllciwgd2ViUGFnZSkKK0NodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYTo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKFdlYlBhZ2UqIHdl
YlBhZ2UpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVDaHVua2VkVXBkYXRlLCB3
ZWJQYWdlKQogICAgICwgbV9pc1dhaXRpbmdGb3JVcGRhdGUoZmFsc2UpCiAgICAgLCBtX3BhaW50
aW5nSXNTdXNwZW5kZWQoZmFsc2UpCiAgICAgLCBtX2Rpc3BsYXlUaW1lcihXZWJQcm9jZXNzOjpz
aGFyZWQoKS5ydW5Mb29wKCksIHRoaXMsICZDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpc3Bs
YXkpCkBAIC03NCwxNSArNzQsOSBAQCB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYTo6ZGlz
cGxheSgpCiAgICAgaWYgKG1fZGlydHlSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gTGF5aW5nIG91dCB0aGUgcGFnZSBjYW4gY2F1c2UgdGhlIGRyYXdpbmcgYXJlYSB0
byBjaGFuZ2Ugc28gd2Uga2VlcCBhbiBleHRyYSByZWZlcmVuY2UuCi0gICAgUmVmUHRyPENodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYT4gcHJvdGVjdCh0aGlzKTsKLQogICAgIC8vIExheW91dCBpZiBu
ZWNlc3NhcnkuCiAgICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwogIAotICAgIGlmICht
X3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCkgIT0gdGhpcykKLSAgICAgICAgcmV0dXJuOwotICAgIAog
ICAgIEludFJlY3QgZGlydHlSZWN0ID0gbV9kaXJ0eVJlY3Q7CiAgICAgbV9kaXJ0eVJlY3QgPSBJ
bnRSZWN0KCk7CiAKQEAgLTEyNiwxNSArMTIwLDkgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWE6OnNldFNpemUoYwogICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gd2FpdCBmb3IgYW4gdXBk
YXRlIHVudGlsIHdlIGRpc3BsYXkuCiAgICAgbV9pc1dhaXRpbmdGb3JVcGRhdGUgPSBmYWxzZTsK
ICAgICAKLSAgICAvLyBMYXlpbmcgb3V0IHRoZSBwYWdlIGNhbiBjYXVzZSB0aGUgZHJhd2luZyBh
cmVhIHRvIGNoYW5nZSBzbyB3ZSBrZWVwIGFuIGV4dHJhIHJlZmVyZW5jZS4KLSAgICBSZWZQdHI8
Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhPiBwcm90ZWN0KHRoaXMpOwotCiAgICAgbV93ZWJQYWdl
LT5zZXRTaXplKHZpZXdTaXplKTsKICAgICBtX3dlYlBhZ2UtPmxheW91dElmTmVlZGVkKCk7CiAK
LSAgICBpZiAobV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpICE9IHRoaXMpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIGlmIChtX3BhaW50aW5nSXNTdXNwZW5kZWQpIHsKICAgICAgICAgQVNTRVJUKCFt
X2Rpc3BsYXlUaW1lci5pc0FjdGl2ZSgpKTsKIApAQCAtMTg1LDE0ICsxNzMsNiBAQCB2b2lkIENo
dW5rZWRVcGRhdGVEcmF3aW5nQXJlYTo6ZGlkVXBkYXRlCiAKIHZvaWQgQ2h1bmtlZFVwZGF0ZURy
YXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCiB7Ci0gICAgRHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXI7
Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQodGFyZ2V0SWRlbnRpZmll
cikpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBXZSBjYW4gc3dpdGNoIGRyYXdpbmcgYXJl
YXMgb24gdGhlIGZseSwgc28gaWYgdGhpcyBtZXNzYWdlIHdhcyB0YXJnZXR0ZWQgYXQgYW4gb2Jz
b2xldGUgZHJhd2luZyBhcmVhLCBpZ25vcmUgaXQuCi0gICAgaWYgKHRhcmdldElkZW50aWZpZXIg
IT0gaW5mbygpLmlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybjsKLQogICAgIHN3aXRjaCAobWVz
c2FnZUlELmdldDxEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAgICAgICAg
Y2FzZSBEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlNldFNpemU6IHsKICAgICAgICAgICAgIElu
dFNpemUgc2l6ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVu
a2VkVXBkYXRlRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmgJKHJldmlzaW9uIDc5Nzk4
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIFVwZGF0ZUNo
dW5rOwogCiBjbGFzcyBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEgOiBwdWJsaWMgRHJhd2luZ0Fy
ZWEgewogcHVibGljOgotICAgIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYShEcmF3aW5nQXJlYUlu
Zm86OklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZSopOworICAgIGV4cGxpY2l0IENodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+Q2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAkocmV2aXNpb24gNzk3OTgpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MSwzMyArNDEsMjkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8
RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NPd25QdHI8RHJhd2lu
Z0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBzd2l0Y2ggKHBhcmFtZXRl
cnMuZHJhd2luZ0FyZWFJbmZvLnR5cGUpIHsKLSAgICAgICAgY2FzZSBEcmF3aW5nQXJlYUluZm86
Ok5vbmU6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgIGNhc2UgRHJhd2luZ0FyZWFJbmZvOjpJbXBsOgorICAgIHN3aXRjaCAo
cGFyYW1ldGVycy5kcmF3aW5nQXJlYVR5cGUpIHsKKyAgICAgICAgY2FzZSBEcmF3aW5nQXJlYVR5
cGVJbXBsOgogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQogICAgICAgICAgICAg
cmV0dXJuIERyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwogI2Vs
c2UKICAgICAgICAgICAgIHJldHVybiAwOwogI2VuZGlmCi0gICAgICAgIGNhc2UgRHJhd2luZ0Fy
ZWFJbmZvOjpDaHVua2VkVXBkYXRlOgotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWEocGFyYW1ldGVycy5kcmF3aW5nQXJlYUluZm8uaWRlbnRp
Zmllciwgd2ViUGFnZSkpOworICAgICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZUNodW5rZWRVcGRh
dGU6CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENodW5rZWRVcGRhdGVEcmF3aW5n
QXJlYSh3ZWJQYWdlKSk7CiAKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICAg
ICAgY2FzZSBEcmF3aW5nQXJlYUluZm86OlRpbGVkOgotICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBUaWxlZERyYXdpbmdBcmVhKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZvLmlkZW50
aWZpZXIsIHdlYlBhZ2UpKTsKKyAgICAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVUaWxlZDoKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGlsZWREcmF3aW5nQXJlYSh3ZWJQYWdlKSk7
CiAjZW5kaWYKICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAotRHJhd2luZ0FyZWE6OkRyYXdp
bmdBcmVhKERyYXdpbmdBcmVhSW5mbzo6VHlwZSB0eXBlLCBEcmF3aW5nQXJlYUluZm86OklkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZSogd2ViUGFnZSkKLSAgICA6IG1faW5mbyh0eXBlLCBp
ZGVudGlmaWVyKQorRHJhd2luZ0FyZWE6OkRyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZSB0eXBl
LCBXZWJQYWdlKiB3ZWJQYWdlKQorICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX3dlYlBhZ2Uo
d2ViUGFnZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oCShyZXZpc2lvbiA3OTc5OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMyAr
MjgsMTcgQEAKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvSW50UmVjdC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1l
bnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOwor
fQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGNsYXNzIEdyYXBoaWNzTGF5ZXI7Ci0jZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC00MiwxMCArNDYsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdl
Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiAKLWNsYXNzIERyYXdpbmdBcmVh
IDogcHVibGljIFJlZkNvdW50ZWQ8RHJhd2luZ0FyZWE+IHsKK2NsYXNzIERyYXdpbmdBcmVhIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmF3aW5nQXJlYSk7CisKIHB1YmxpYzoKLSAgICAv
LyBGSVhNRTogSXQgbWlnaHQgbWFrZSBzZW5zZSB0byBtb3ZlIHRoaXMgY3JlYXRlIGZ1bmN0aW9u
IGludG8gYSBmYWN0b3J5IHN0eWxlIGNsYXNzLiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEcmF3
aW5nQXJlYT4gY3JlYXRlKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShXZWJQYWdlKiwg
Y29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgfkRyYXdpbmdB
cmVhKCk7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCkBAIC03Miwx
MiArNzcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopID0gMDsKIAotICAgIGNvbnN0IERyYXdpbmdBcmVhSW5mbyYgaW5mbygpIGNv
bnN0IHsgcmV0dXJuIG1faW5mbzsgfQotCiBwcm90ZWN0ZWQ6Ci0gICAgRHJhd2luZ0FyZWEoRHJh
d2luZ0FyZWFJbmZvOjpUeXBlLCBEcmF3aW5nQXJlYUluZm86OklkZW50aWZpZXIsIFdlYlBhZ2Uq
KTsKKyAgICBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGUsIFdlYlBhZ2UqKTsKIAotICAgIERy
YXdpbmdBcmVhSW5mbyBtX2luZm87CisgICAgRHJhd2luZ0FyZWFUeXBlIG1fdHlwZTsKICAgICBX
ZWJQYWdlKiBtX3dlYlBhZ2U7CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAkocmV2aXNpb24g
Nzk3OTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsOSArNDUsOSBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8RHJhd2luZ0FyZWFJ
bXBsPiBEcmF3aW5nQXJlYUltcGw6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlLCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorUGFzc093blB0cjxEcmF3aW5nQXJl
YUltcGw+IERyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBEcmF3aW5nQXJlYUltcGwod2ViUGFnZSwgcGFyYW1ldGVycykpOworICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRHJhd2luZ0FyZWFJbXBsKHdlYlBhZ2UsIHBhcmFtZXRlcnMpKTsKIH0K
IAogRHJhd2luZ0FyZWFJbXBsOjp+RHJhd2luZ0FyZWFJbXBsKCkKQEAgLTU3LDcgKzU3LDcgQEAg
RHJhd2luZ0FyZWFJbXBsOjp+RHJhd2luZ0FyZWFJbXBsKCkKIH0KIAogRHJhd2luZ0FyZWFJbXBs
OjpEcmF3aW5nQXJlYUltcGwoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhSW5m
bzo6SW1wbCwgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUluZm8uaWRlbnRpZmllciwgd2ViUGFnZSkK
KyAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZUltcGwsIHdlYlBhZ2UpCiAgICAgLCBt
X3N0YXRlSUQoMCkKICAgICAsIG1faW5VcGRhdGVTdGF0ZShmYWxzZSkKICAgICAsIG1faXNXYWl0
aW5nRm9yRGlkVXBkYXRlKGZhbHNlKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAkocmV2aXNpb24gNzk3OTgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgVXBkYXRlSW5mbzsKIAogY2xhc3MgRHJh
d2luZ0FyZWFJbXBsIDogcHVibGljIERyYXdpbmdBcmVhIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEcmF3aW5nQXJlYUltcGw+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPERyYXdpbmdBcmVh
SW1wbD4gY3JlYXRlKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFJbXBsKCk7CiAKICAgICB2b2lkIGxheWVySG9zdERp
ZEZsdXNoTGF5ZXJzKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
VGlsZWREcmF3aW5nQXJlYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuY3BwCShyZXZpc2lvbiA3OTc5OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDMsOCArNDMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVRpbGVkRHJhd2luZ0FyZWE6OlRpbGVkRHJhd2luZ0FyZWEo
RHJhd2luZ0FyZWFJbmZvOjpJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2Up
Ci0gICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYUluZm86OlRpbGVkLCBpZGVudGlmaWVyLCB3
ZWJQYWdlKQorVGlsZWREcmF3aW5nQXJlYTo6VGlsZWREcmF3aW5nQXJlYShXZWJQYWdlKiB3ZWJQ
YWdlKQorICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlVGlsZWQsIHdlYlBhZ2UpCiAg
ICAgLCBtX2lzV2FpdGluZ0ZvclVwZGF0ZShmYWxzZSkKICAgICAsIG1fc2hvdWxkUGFpbnQodHJ1
ZSkKICAgICAsIG1fZGlzcGxheVRpbWVyKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1bkxvb3AoKSwg
dGhpcywgJlRpbGVkRHJhd2luZ0FyZWE6OmRpc3BsYXkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVhLmgJKHJldmlzaW9u
IDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2lu
Z0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWEuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIApAQCAtNDAsNyArMzksNyBAQCBjbGFzcyBVcGRhdGVDaHVuazsKIAogY2xhc3MgVGls
ZWREcmF3aW5nQXJlYSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CiBwdWJsaWM6Ci0gICAgVGlsZWRE
cmF3aW5nQXJlYShEcmF3aW5nQXJlYUluZm86OklkZW50aWZpZXIsIFdlYlBhZ2UqKTsKKyAgICBl
eHBsaWNpdCBUaWxlZERyYXdpbmdBcmVhKFdlYlBhZ2UqKTsKICAgICB2aXJ0dWFsIH5UaWxlZERy
YXdpbmdBcmVhKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDc5Nzk4KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODcsMTAgKzU4
Nyw2IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3QoR3JhcGhpY3NDb250ZXh0JiAKICAgICBncmFw
aGljc0NvbnRleHQuY2xpcChyZWN0KTsKICAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZp
ZXcoKS0+cGFpbnQoJmdyYXBoaWNzQ29udGV4dCwgcmVjdCk7CiAgICAgZ3JhcGhpY3NDb250ZXh0
LnJlc3RvcmUoKTsKLQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjb2RlIG9uY2Ugd2UncmUg
dXNpbmcgdGhlIG5ldyBkcmF3aW5nIGFyZWEgb24gbWFjIGFuZCB3aW5kb3dzLgotICAgIGlmICht
X3BhZ2VPdmVybGF5ICYmIG1fZHJhd2luZ0FyZWEtPmluZm8oKS50eXBlICE9IERyYXdpbmdBcmVh
SW5mbzo6SW1wbCkKLSAgICAgICAgZHJhd1BhZ2VPdmVybGF5KGdyYXBoaWNzQ29udGV4dCwgcmVj
dCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VPdmVybGF5KEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA3OTc5OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ3MSw3ICs0NzEsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIAog
ICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3U2l6ZTsKLSAgICBSZWZQdHI8RHJhd2luZ0FyZWE+
IG1fZHJhd2luZ0FyZWE7CisgICAgT3duUHRyPERyYXdpbmdBcmVhPiBtX2RyYXdpbmdBcmVhOwog
CiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1fZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQ7Cg==
</data>
<flag name="review"
          id="75852"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>