<?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>100022</bug_id>
          
          <creation_ts>2012-10-22 13:42:14 -0700</creation_ts>
          <short_desc>More Argument coder cleanup</short_desc>
          <delta_ts>2012-10-22 16:51:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747838</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 13:42:14 -0700</bug_when>
    <thetext>More Argument coder cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747843</commentid>
    <comment_count>1</comment_count>
      <attachid>169973</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 13:48:52 -0700</bug_when>
    <thetext>Created attachment 169973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747849</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 13:54:37 -0700</bug_when>
    <thetext>Attachment 169973 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/Platform/CoreIPC/Connection.h:196:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 16 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>747856</commentid>
    <comment_count>3</comment_count>
      <attachid>169973</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-22 13:56:52 -0700</bug_when>
    <thetext>Comment on attachment 169973
Patch

Attachment 169973 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14486631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747871</commentid>
    <comment_count>4</comment_count>
      <attachid>169982</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 14:11:17 -0700</bug_when>
    <thetext>Created attachment 169982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747875</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 14:15:24 -0700</bug_when>
    <thetext>Attachment 169982 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/Platform/CoreIPC/Connection.h:196:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 17 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>747892</commentid>
    <comment_count>6</comment_count>
      <attachid>169982</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-22 14:31:31 -0700</bug_when>
    <thetext>Comment on attachment 169982
Patch

Attachment 169982 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14488568</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747936</commentid>
    <comment_count>7</comment_count>
      <attachid>169996</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 15:05:46 -0700</bug_when>
    <thetext>Created attachment 169996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747938</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 15:07:23 -0700</bug_when>
    <thetext>Attachment 169996 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/Platform/CoreIPC/Connection.h:196:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 17 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>747947</commentid>
    <comment_count>9</comment_count>
      <attachid>169996</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-22 15:13:54 -0700</bug_when>
    <thetext>Comment on attachment 169996
Patch

Attachment 169996 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14488580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747951</commentid>
    <comment_count>10</comment_count>
      <attachid>169999</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 15:16:03 -0700</bug_when>
    <thetext>Created attachment 169999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747957</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 15:19:06 -0700</bug_when>
    <thetext>Attachment 169999 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/Platform/CoreIPC/Connection.h:190:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 18 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>747961</commentid>
    <comment_count>12</comment_count>
      <attachid>169999</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-22 15:27:38 -0700</bug_when>
    <thetext>Comment on attachment 169999
Patch

Attachment 169999 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14489673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747968</commentid>
    <comment_count>13</comment_count>
      <attachid>170001</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 15:36:13 -0700</bug_when>
    <thetext>Created attachment 170001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747972</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 15:37:32 -0700</bug_when>
    <thetext>Attachment 170001 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/Platform/CoreIPC/Connection.h:190:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 18 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>748036</commentid>
    <comment_count>15</comment_count>
      <attachid>170001</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-22 16:14:35 -0700</bug_when>
    <thetext>Comment on attachment 170001
Patch

Attachment 170001 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14505198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748045</commentid>
    <comment_count>16</comment_count>
      <attachid>170017</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 16:22:39 -0700</bug_when>
    <thetext>Created attachment 170017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748052</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 16:25:34 -0700</bug_when>
    <thetext>Attachment 170017 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/Platform/CoreIPC/Connection.h:190:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 20 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>748065</commentid>
    <comment_count>18</comment_count>
      <attachid>170017</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-22 16:37:01 -0700</bug_when>
    <thetext>Comment on attachment 170017
Patch

r+
regards, kling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748067</commentid>
    <comment_count>19</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 16:38:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 170017 [details])
&gt; r+
&gt; regards, kling

u r tru frand</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748088</commentid>
    <comment_count>20</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 16:51:30 -0700</bug_when>
    <thetext>Committed r132161: &lt;http://trac.webkit.org/changeset/132161&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169973</attachid>
            <date>2012-10-22 13:48:52 -0700</date>
            <delta_ts>2012-10-22 14:11:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100022-20121022134730.patch</filename>
            <type>text/plain</type>
            <size>32936</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhhYzIzODQ1MzJhNTAw
NjBhNTcwZTcwOTljOGJjODUzYjEwNzVmYi4uNDNmN2VhM2ViYzJlZWNkMWZkOGExNTUyOGMyNWU0
YmI0MmVkZTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9yZSBBcmd1bWVu
dCBjb2RlciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlIG92ZXJsb2FkIHRoYXQg
dGFrZXMgYSBjb25zdCByZWZlcmVuY2UgLSBpZiB0aGUgY2FsbCB0byBkZWNvZGUgZW5kcyB1cCBj
cmVhdGluZyBhIHRlbXBvcmFyeQorICAgICAgICB3ZSdsbCBlbmNvZGUgaW50byBpdCBhbmQgdGhl
biBkZXN0cm95IGl0LiBTaW5jZSB0aGlzIGRlY29kZSBvdmVybG9hZCB3YXMgbW9zdGx5IHVzZWQg
d2l0aCB0aGUgQ29yZUlQQzo6T3V0IGZ1bmN0aW9ucywgcmVtb3ZlIHRoZW0KKyAgICAgICAgKGFu
ZCBDb3JlSVBDOjpJbikgYXMgd2VsbC4gQ2xlYW4gdXAgYSBjb3VwbGUgb2YgQXJndW1lbnRDb2Rl
cnMgYXMgd2VsbC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb25uZWN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByaW50SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UHJp
bnRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0TWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVz
c2FnZUJvZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisKKzIwMTItMTAtMjIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBSZWdyZXNzaW9u
KHIxMzE5OTApOiBwbHVnaW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHkuaHRtbCBzdGFydGVk
IGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5OTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmMTZkN2M5MmY0NTU1YzA3M2NiNWEwN2M1ZWE2YzFkMmQ5ZjIwYjEyLi4w
ZjYwMTQyMjJiZTBjYWQxN2QzNjI0NWI1MGJmOWNmYTYwNzg1MWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMTMsNCArMjEz
LDQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKIAogfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQwogCi0jZW5kaWYgLy8gU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjZW5k
aWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggM2M4MWViMzc3ZjViMmUxNWRkYTIzOTljMjc0
MTUyOWMxYzI3OTdmNS4uYzFkNGI2ZTA1ZDZmOGY3OWE2NDc3OTU3OTgyOWQ4ZmQwYjQxMGI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCkBAIC05MCwxMyArOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcmd1bWVudENv
ZGVyPFQ+OjpkZWNvZGUodGhpcywgdCk7CiAgICAgfQogCi0gICAgLy8gVGhpcyBvdmVybG9hZCBl
eGlzdHMgc28gd2UgY2FuIHBhc3MgdGVtcG9yYXJpZXMgdG8gZGVjb2RlLiBJbiB0aGUgU3RhciBU
cmVrIGZ1dHVyZSwgaXQgCi0gICAgLy8gY2FuIHRha2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbnN0
ZWFkLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlKGNvbnN0IFQmIHQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZGVjb2RlKGNvbnN0X2Nhc3Q8VCY+KHQpKTsKLSAgICB9Ci0K
ICAgICBib29sIHJlbW92ZUF0dGFjaG1lbnQoQXR0YWNobWVudCYpOwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNWJk
NzU1MDJjODNjYmUzMWVmODE5ODVkY2IwOGNjNzc5NmY5MTE4Ny4uN2E1MzZiNmM3MjFlMjljZDNj
NmI3YzRmNzU1NjRmZDk1MzFhMzIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oCkBAIC0xMjEsMTYgKzEyMSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMxPFQxPiB7CiAgICAg
VDIgYXJndW1lbnQyOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBB
cmd1bWVudHMyPGNvbnN0IFQxJiwgY29uc3QgVDImPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MikKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzMjxjb25zdCBUMSYsIGNvbnN0IFQyJj4odDEs
IHQyKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBBcmd1bWVudHMy
PFQxJiwgVDImPiBPdXQoVDEmIHQxLCBUMiYgdDIpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czI8
VDEmLCBUMiY+KHQxLCB0Mik7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUMSwgVDI+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czM8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0xNjMsMTYgKzE1Myw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDog
QXJndW1lbnRzMjxUCiAgICAgVDMgYXJndW1lbnQzOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4gQXJndW1lbnRzMzxjb25zdCBUMSYsIGNvbnN0
IFQyJiwgY29uc3QgVDMmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyY+KHQxLCB0MiwgdDMpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzPiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+IE91dChUMSYgdDEsIFQy
JiB0MiwgVDMmIHQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+KHQx
LCB0MiwgdDMpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50czQgOiBBcmd1bWVudHMzPFQxLCBU
MiwgVDM+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czQ8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yMDYsMTYgKzE4Niw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
PiBzdHJ1Y3QgQXJndW1lbnRzNCA6CiAgICAgVDQgYXJndW1lbnQ0OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+IEFyZ3Vt
ZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmPiBJbihjb25z
dCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQpCi17Ci0g
ICAgcmV0dXJuIEFyZ3VtZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29u
c3QgVDQmPih0MSwgdDIsIHQzLCB0NCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBBcmd1bWVudHM0PFQxJiwgVDImLCBU
MyYsIFQ0Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCkKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzNDxUMSYsIFQyJiwgVDMmLCBUNCY+KHQxLCB0MiwgdDMsIHQ0KTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1PiBzdHJ1Y3QgQXJndW1lbnRzNSA6IEFyZ3VtZW50czQ8VDEsIFQyLCBU
MywgVDQ+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czU8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yNTAsMTYgKzIyMCw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNT4gc3RydWN0CiAgICAgVDUgYXJndW1lbnQ1OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1PiBBcmd1bWVudHM1PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0
IFQ0JiwgY29uc3QgVDUmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRz
NTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jj4o
dDEsIHQyLCB0MywgdDQsIHQ1KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PiBBcmd1bWVudHM1PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0
LCBUNSYgdDUpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czU8VDEmLCBUMiYsIFQzJiwgVDQmLCBU
NSY+KHQxLCB0MiwgdDMsIHQ0LCB0NSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUg
VDY+IHN0cnVjdCBBcmd1bWVudHM2IDogQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czY8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yOTUsMTYgKzI1NSw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwgdHlwZW5hCiAgICAgVDYgYXJndW1lbnQ2OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmFtZSBUNj4gQXJndW1lbnRzNjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYm
IHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0
NSwgdDYpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PiBBcmd1bWVudHM2PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBU
NCYgdDQsIFQ1JiB0NSwgVDYmIHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PFQxJiwgVDIm
LCBUMyYsIFQ0JiwgVDUmLCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4gc3RydWN0IEFyZ3VtZW50czcg
OiBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHsKICAgICB0eXBlZGVmIEFyZ3Vt
ZW50czc8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVy
ZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBX
VEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46
OlR5cGUsCkBAIC0zNDEsMTYgKzI5MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAg
VDcgYXJndW1lbnQ3OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDc+IEFyZ3VtZW50czc8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3Qg
VDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmPiBJbihjb25zdCBUMSYgdDEsIGNv
bnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29u
c3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czc8Y29uc3Qg
VDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2
JiwgY29uc3QgVDcmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PiBBcmd1bWVudHM3PFQxJiwgVDImLCBU
MyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0
NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NykKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzNzxUMSYs
IFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3
KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4PiBzdHJ1Y3QgQXJndW1lbnRzOCA6IEFyZ3VtZW50czc8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDc+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czg8dHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTM4NiwxNiArMzI2LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmEKICAgICBUOCBhcmd1bWVudDg7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFyZ3VtZW50czg8Y29uc3QgVDEmLCBjb25z
dCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3Qg
VDcmLCBjb25zdCBUOCY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyAm
dDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0
NywgY29uc3QgVDgmIHQ4KQotewotICAgIHJldHVybiBBcmd1bWVudHM4PGNvbnN0IFQxJiwgY29u
c3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0
IFQ3JiwgY29uc3QgVDgmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFy
Z3VtZW50czg8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCY+IE91dChUMSYg
dDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0
OCkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzODxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYm
LCBUNyYsIFQ4Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4KTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPiBzdHJ1Y3QgQXJndW1lbnRzMTAgOiBBcmd1bWVudHM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gewogICAgIHR5cGVkZWYgQXJndW1lbnRzMTA8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46
OlR5cGU+OjpUeXBlLAogICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RG
OjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTQzNywxNiArMzY3LDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICBUMTAgYXJndW1lbnQxMDsKIH07CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYg
dDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0
NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwgY29uc3QgVDEwJiB0
MTApCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czEwPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3Qg
VDgmLCBjb25zdCBUOSYsIGNvbnN0IFQxMCY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4gT3V0KFQx
JiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NywgVDgm
IHQ4LCBUOSYgdDksIFQxMCYgdDEwKQotewotICAgIHJldHVybiBBcmd1bWVudHMxMDxUMSYsIFQy
JiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
CiAKICNlbmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiNDM4MDc0MDkwNjQ2ODU1NzdmNjkzNTc5YWFhZWRkNDFh
ODI3MGY2Li4zZWMyODIzNDE3MDhhNzY4OTkyNmQxNTg1ZWEwMGExYjg1YzJhMDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTkzLDYgKzE5
Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZVN5
bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCk7CiAgICAgYm9vbCBzZW5kTWVzc2FnZShNZXNzYWdlSUQsIFBhc3NP
d25QdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7Cisg
ICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwg
dWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4sIGRvdWJs
ZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAgICAgYm9vbCBzZW5kU3lu
Y1JlcGx5KFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+KTsKIAogICAgIC8vIEZJWE1FOiBUaGVz
ZSB2YXJpYW50cyBvZiBzZW5kLCBzZW5kU3luYyBhbmQgd2FpdEZvciBhcmUgYWxsIGRlcHJlY2F0
ZWQuCkBAIC0yNTQsNyArMjU1LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBQYXNzT3duUHRyPE1l
c3NhZ2VEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0
aW9uSUQsIGRvdWJsZSB0aW1lb3V0KTsKICAgICAKLSAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNv
ZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwgZG91YmxlIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNT
ZW5kRmxhZ3MgPSAwKTsKICAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yU3lu
Y1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBz
eW5jU2VuZEZsYWdzKTsKIAogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiB3b3JrIHF1
ZXVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cAppbmRleCAzMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4Li40MDE5YThk
ODU3OWU3OThhZDNhMmNiNTA3NjFjOWQ3NzU3ODRjNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29s
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBtYWNoUG9ydDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpP
dXQobWFjaFBvcnQpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShtYWNoUG9ydCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBoYW5kbGUubV9zaXplID0gc2l6ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1ByaW50SW5mby5jcHAKaW5kZXggY2UxMTkzNWFkNjhiNWUyMzk3NjQxNmQxNjZm
M2Y5OTIzYzJlYTI5OC4uMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQ1LDcgKzQ1LDEwIEBAIFByaW50
SW5mbzo6UHJpbnRJbmZvKCkKIAogdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJ
UEM6OkluKHBhZ2VTZXR1cFNjYWxlRmFjdG9yLCBhdmFpbGFibGVQYXBlcldpZHRoLCBhdmFpbGFi
bGVQYXBlckhlaWdodCkpOworICAgIGVuY29kZXItPmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rv
cik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVyV2lkdGgpOworICAgIGVuY29k
ZXItPmVuY29kZShhdmFpbGFibGVQYXBlckhlaWdodCk7CisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByaW50U2V0dGluZ3MuZ2V0KCkpOwogICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBwYWdlU2V0dXAuZ2V0KCkpOwpAQCAtNTQsNyArNTcsMTEg
QEAgdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgUHJpbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQcmludEluZm8mIGluZm8pCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IsIGluZm8uYXZhaWxhYmxl
UGFwZXJXaWR0aCwgaW5mby5hdmFpbGFibGVQYXBlckhlaWdodCkpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlcldpZHRoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8uYXZh
aWxhYmxlUGFwZXJIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9S
TShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAKaW5kZXggMWViMWM0OTViMjg0OTJmNWY3MmFhNjcyOTVhYWFmYzRiNGJkMzA5Zi4uOTAx
Y2U5YzQ3ZjFjNWQzM2JjYzE2ZmJiY2EwNGQyNGM5ZTgzMDE3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtMTA2LDI5ICsxMDYs
NDggQEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUElPYmplY3Qq
IHVzZXJEYXRhKQogICAgIAogdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90eXBlKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fYWN0aW9uKSwgbV90aXRsZSwgbV9jaGVja2VkLCBtX2VuYWJsZWQsIG1f
c3VibWVudSkpOworICAgIGVuY29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKG1fYWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV90aXRsZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2hlY2tlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZW5h
YmxlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3VibWVudSk7CiB9CiAKIGJvb2wgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKLSAgICB1aW50MzJfdCB0eXBlOwot
ICAgIHVpbnQzMl90IGFjdGlvbjsKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKGFjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIFN0cmluZyB0aXRsZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0aXRsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY2hlY2tlZDsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShjaGVja2VkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBlbmFi
bGVkOwotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBzdWJtZW51OworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGVuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodHlwZSwgYWN0aW9uLCB0aXRsZSwg
Y2hlY2tlZCwgZW5hYmxlZCwgc3VibWVudSkpKQorICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0
ZW1EYXRhPiBzdWJtZW51OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN1Ym1lbnUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNv
cmU6OkFjdGlvblR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlOgogICAgIGNh
c2UgV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZToKLSAgICAgICAgaXRlbSA9IFdlYkNvbnRl
eHRNZW51SXRlbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4o
dHlwZSksIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0
aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7CisgICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhKHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVuYWJsZWQsIGNoZWNrZWQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlN1Ym1lbnVUeXBlOgotICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bj4oYWN0aW9uKSwgdGl0bGUsIGVuYWJsZWQsIHN1Ym1lbnUpOworICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShhY3Rpb24sIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA4ZWRjM2ZkMzU4NjQ4MjFhMjhjN2Q0
YmE3OWMyOGNjYWZkZTgzNTBiLi43MGJmZmEyYzFlODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYw
NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTQ4LDEyICs0OCwyMCBAQCBX
ZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQogCiB2b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3R5cGUsIG1fbW9kaWZpZXJzLCBtX3RpbWVzdGFtcCkpOworICAgIGVuY29kZXItPmVuY29kZSht
X3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX21vZGlmaWVycyk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdGltZXN0YW1wKTsKIH0KIAotYm9vbCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViRXZlbnQmIHQpCitib29sIFdlYkV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHQubV90eXBlLCB0
Lm1fbW9kaWZpZXJzLCB0Lm1fdGltZXN0YW1wKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQubV9tb2RpZmllcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdGltZXN0YW1wKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggYzllMzZmYTM3ZDA3OGIyNjJlNzM3ZDQ4ZGYzNTZlZjgwOWEyZWI0OS4uNzdkNTI0Y2Y0
YzQ3N2E4ZDEwZjQxMDc0ZDFlMTU4NzE1ZDBiZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtNTMsMTUgKzUzLDEyIEBAIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1
ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFj
eSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworICAgIENvcmVJUEM6OlNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVy
LCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKIHsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRp
dHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0
YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CisgICAgcmV0dXJu
IENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0
YT46OmRlY29kZShkZWNvZGVyLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggN2FhN2RmZjIzMTQzMDZi
ZTUwZjkxZTRmZTkxMTFmODgyNThjZTA1NC4uMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0
MDdjYzVmNzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAt
ODIsMjUgKzgyLDQ0IEBAIHZvaWQgV2ViTW91c2VFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29k
ZXIpOwogCisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fYnV0dG9uKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9wb3NpdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVs
dGFZKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVopOworICAgIGVuY29kZXItPmVuY29k
ZShtX2NsaWNrQ291bnQpOworCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIEluY2x1ZGUgbV9k
aWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQ
Qzo6SW4obV9idXR0b24sIG1fcG9zaXRpb24sIG1fZ2xvYmFsUG9zaXRpb24sIG1fZGVsdGFYLCBt
X2RlbHRhWSwgbV9kZWx0YVosIG1fY2xpY2tDb3VudCwgbV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsK
LSNlbHNlCi0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fYnV0dG9uLCBtX3Bvc2l0
aW9uLCBtX2dsb2JhbFBvc2l0aW9uLCBtX2RlbHRhWCwgbV9kZWx0YVksIG1fZGVsdGFaLCBtX2Ns
aWNrQ291bnQpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kaWRBY3RpdmF0ZVdlYlZpZXcpOwog
I2VuZGlmCiB9CiAKLWJvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYgdCkKK2Jvb2wgV2ViTW91c2VFdmVudDo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYg
cmVzdWx0KQogewotICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCB0KSkKKyAgICBp
ZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fYnV0dG9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5tX2dsb2JhbFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RlbHRhWCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0YVkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGVsdGFaKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2Ns
aWNrQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oV0lOKQotICAg
IC8vIEluY2x1ZGUgbV9kaWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICByZXR1cm4g
ZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fYnV0dG9uLCB0Lm1fcG9zaXRpb24sIHQu
bV9nbG9iYWxQb3NpdGlvbiwgdC5tX2RlbHRhWCwgdC5tX2RlbHRhWSwgdC5tX2RlbHRhWiwgdC5t
X2NsaWNrQ291bnQsIHQubV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodC5tX2J1dHRvbiwgdC5tX3Bvc2l0aW9uLCB0
Lm1fZ2xvYmFsUG9zaXRpb24sIHQubV9kZWx0YVgsIHQubV9kZWx0YVksIHQubV9kZWx0YVosIHQu
bV9jbGlja0NvdW50KSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGlkQWN0
aXZhdGVXZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJNb3VzZUV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKFR5cGUg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKaW5kZXggYzIxNWYzNTY4
MWJlMzk1ZGY2OTY4ZTBkNjE3NTM5MjgwNWIzMDQyNC4uMDdhMjllNDE2OTY2MmMwOGZkMGFjMmU2
MDkxMDVmYjU1MTUzOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBv
cHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAK
QEAgLTY4LDI5ICs2OCw1NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbShUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZQogCiB2b2lkIFdlYlBv
cHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
IHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KG1fdHlwZSksIG1fdGV4dCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdGV4dERpcmVjdGlvbiks
IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBtX3Rvb2xUaXAsIG1fYWNjZXNzaWJpbGl0eVRl
eHQsIG1faXNFbmFibGVkLCBtX2lzTGFiZWwpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQ
Qzo6SW4obV9pc1NlbGVjdGVkKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOwor
ICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXItPmVuY29kZUVudW0obV90
ZXh0RGlyZWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOworICAgIGVuY29kZXItPmVu
Y29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9pc0VuYWJs
ZWQpOworICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOworICAgIGVuY29kZXItPmVuY29k
ZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29sIFdlYlBvcHVwSXRlbTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVtKQogewotICAgIHVp
bnQzMl90IHR5cGU7CisgICAgVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51
bSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgU3RyaW5nIHRleHQ7Ci0gICAg
dWludDY0X3QgdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0ZXh0KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFRleHREaXJlY3Rpb24gdGV4dERpcmVj
dGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odGV4dERpcmVjdGlvbikpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlwOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHRvb2xUaXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBTdHJpbmcg
YWNjZXNzaWJpbGl0eVRleHQ7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoYWNjZXNzaWJpbGl0
eVRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGlzRW5hYmxlZDsKLSAg
ICBib29sIGlzTGFiZWw7Ci0gICAgYm9vbCBpc1NlbGVjdGVkOworICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGlzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCB0ZXh0LCB0ZXh0RGlyZWN0aW9uLCBoYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJs
ZWQsIGlzTGFiZWwpKSkKKyAgICBib29sIGlzTGFiZWw7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoaXNMYWJlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKENvcmVJUEM6Ok91dChpc1NlbGVjdGVkKSkpCisgICAgYm9vbCBpc1NlbGVjdGVkOwor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzU2VsZWN0ZWQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHN0YXRpY19jYXN0PFR5cGU+KHR5cGUpLCB0
ZXh0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9uKSwgaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwgaXNFbmFibGVkLCBp
c0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHR5cGUsIHRleHQs
IHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgdG9vbFRpcCwgYWNjZXNz
aWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBmZjQzYjM0MTE2NThjY2UyNjI1ZGM5NzAyZjRj
YWNmN2UyMmZhMzhhLi42MjAyNjA4YmRhMTY2OWQ5ZWQzYTQ4NWE1ODc3MzA1NWQ5NDgzZGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCkBAIC01OSw3ICs1OSw5IEBAIHZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvCiAK
IGJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJv
ZHkpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nlc3MpKSkKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9jZXNzKTsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJvZHlEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKaW5kZXggMTRhOWNlNzg3NWMyZjc5YTI4NWZjMmU5NTFkY2I5ZDM3OTM0MjVkZS4u
NmJiZDUxNTFkZjgyM2FiZTEwMDFiZjM0N2I3MWUwMzYwMjAxZThlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtODIzLDEwICs4MjMsMTIgQEAgdm9pZCBXZWJD
b250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXMKICAgICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9z
dE1lc3NhZ2U6IHsKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAgICAgICAg
IFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgICAgICAgICAgV2ViQ29udGV4dFVz
ZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1By
b3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKKyAg
ICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNvZGVy
KG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9uKGNvbm5lY3Rpb24p
KTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZU5hbWUpKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNz
YWdlQm9keURlY29kZXIpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIAog
ICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVzc2FnZU5h
bWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpA
QCAtODU2LDggKzg1OCwxMCBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOgogCiAgICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZU5hbWU7CiAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNz
YWdlQm9keTsKLSAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29u
bmVjdGlvbikpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQo
bWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNvZGVyKSkpCisgICAgICAgICAgICBXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vz
c1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7CisgICAgICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VOYW1lKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiByZXR1cm5E
YXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA0NThiMWMxNjljYzFjOTcxMTkyMjZlMzNi
ZDM5N2Y0NTU3MzJlODU1Li40ZDBhYTU2YTNkYjcyYjY2YTJhMjViYTI5NThmMTM2OWI1M2NhMjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtOTMsMjAgKzkzLDI3IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGU6OmluaXRpYWxpemVDbGllbnQoV0tCdW5kbGVDbGllbnQqIGNsaWVudCkKIAogdm9p
ZCBJbmplY3RlZEJ1bmRsZTo6cG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
QVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25u
ZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kKFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0TWVz
c2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIEluamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSkpOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4gZW5jb2RlciA9IENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoQ29yZUlQQzo6
TWVzc2FnZUtpbmRUcmFpdHM8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OktpbmQ+OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksICIiLCAwKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZU5hbWUp
OworICAgIGVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlciht
ZXNzYWdlQm9keSkpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5z
ZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQoV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBv
c3RNZXNzYWdlKSwgZW5jb2Rlci5yZWxlYXNlKCkpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxl
Ojpwb3N0U3luY2hyb25vdXNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSU9i
amVjdCogbWVzc2FnZUJvZHksIFJlZlB0cjxBUElPYmplY3Q+JiByZXR1cm5EYXRhKQogewotICAg
IFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGFUbXA7Ci0gICAgSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIocmV0dXJuRGF0YVRtcCk7Ci0gICAgCi0gICAg
Ym9vbCBzdWNjZWVkZWQgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPmRlcHJl
Y2F0ZWRTZW5kU3luYyhXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdFN5bmNocm9ub3VzTWVz
c2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIEluamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSksIENvcmVJUEM6Ok91dChtZXNzYWdlRGVjb2RlcikpOwor
ICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHJldHVy
bkRhdGEpOwogCi0gICAgaWYgKCFzdWNjZWVkZWQpCi0gICAgICAgIHJldHVybjsKKyAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4g
ZW5jb2RlciA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+Y3JlYXRlU3luY01l
c3NhZ2VFbmNvZGVyKENvcmVJUEM6Ok1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNvbnRleHRMZWdhY3lN
ZXNzYWdlOjpLaW5kPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgMCwgc3luY1JlcXVlc3RJ
RCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKTsKIAotICAg
IHJldHVybkRhdGEgPSByZXR1cm5EYXRhVG1wOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kU3luY01lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKFdlYkNvbnRleHRMZWdhY3lNZXNz
YWdlOjpQb3N0U3luY2hyb25vdXNNZXNzYWdlKSwgc3luY1JlcXVlc3RJRCwgZW5jb2Rlci5yZWxl
YXNlKCksIENvcmVJUEM6OkNvbm5lY3Rpb246Ok5vVGltZW91dCk7CisgICAgaWYgKCFyZXBseURl
Y29kZXIgfHwgIXJlcGx5RGVjb2Rlci0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkgeworICAgICAg
ICByZXR1cm5EYXRhID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogV2Vi
Q29ubmVjdGlvbiogSW5qZWN0ZWRCdW5kbGU6OndlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcygpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAKaW5kZXggZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVlNmM0MzM4ZTNjYTY1
ZGZhMy4uNTM4MDA3ZDRmZWFjYTI1OWI3NmZkMjQ0YjU4OGNhNjc5Y2E0YTgzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
LmNwcApAQCAtNTYsMTAgKzU2LDggQEAgdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVu
Y29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2QKIAogYm9vbCBX
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VCb2R5KQogewot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIo
bWVzc2FnZUJvZHkpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7
CisgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNvZGVy
KG1lc3NhZ2VCb2R5KTsKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJvZHlEZWNv
ZGVyKTsKIH0KIAogLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMWFmZTNlMzI0YzEyNzdh
NGQyM2FkM2IzM2FkOWZlZmIzODAxZmM1OS4uM2Q4NTgzZDhkYThlNmZiOGE5NTE1MzFiNDkxYjg5
MGE5YjgzNGI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTIyMiw3ICsxMjIyLDggQEAgdm9pZCBXZWJQYWdlOjpwb3N0SW5qZWN0ZWRC
dW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIENvcmVJUEM6Ok1lc3MKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNz
YWdlQm9keSkpKQorICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VC
b2R5RGVjb2RlcihtZXNzYWdlQm9keSk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdl
Qm9keURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbmplY3RlZEJ1bmRsZS0+ZGlk
UmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhpcywgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDQzZTdkNzAy
MWNlMGE0ZTk2NGZhZjNiMzU2YWI1ZjZjNTAzOGRmNTAuLjg0NmE3YzJkMzNmOTUzODQwNjZjNmUw
YzFmNThhMzg3OGI2MTA3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtMTA1Niw3ICsxMDU2LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwb3N0SW5qZWN0ZWRC
dW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2Fn
ZUJvZHkpKSkKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9k
eURlY29kZXIobWVzc2FnZUJvZHkpOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG1lc3NhZ2VC
b2R5RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGluamVjdGVkQnVuZGxlLT5kaWRS
ZWNlaXZlTWVzc2FnZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169982</attachid>
            <date>2012-10-22 14:11:17 -0700</date>
            <delta_ts>2012-10-22 15:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100022-20121022140955.patch</filename>
            <type>text/plain</type>
            <size>34658</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhhYzIzODQ1MzJhNTAw
NjBhNTcwZTcwOTljOGJjODUzYjEwNzVmYi4uNDNmN2VhM2ViYzJlZWNkMWZkOGExNTUyOGMyNWU0
YmI0MmVkZTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9yZSBBcmd1bWVu
dCBjb2RlciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlIG92ZXJsb2FkIHRoYXQg
dGFrZXMgYSBjb25zdCByZWZlcmVuY2UgLSBpZiB0aGUgY2FsbCB0byBkZWNvZGUgZW5kcyB1cCBj
cmVhdGluZyBhIHRlbXBvcmFyeQorICAgICAgICB3ZSdsbCBlbmNvZGUgaW50byBpdCBhbmQgdGhl
biBkZXN0cm95IGl0LiBTaW5jZSB0aGlzIGRlY29kZSBvdmVybG9hZCB3YXMgbW9zdGx5IHVzZWQg
d2l0aCB0aGUgQ29yZUlQQzo6T3V0IGZ1bmN0aW9ucywgcmVtb3ZlIHRoZW0KKyAgICAgICAgKGFu
ZCBDb3JlSVBDOjpJbikgYXMgd2VsbC4gQ2xlYW4gdXAgYSBjb3VwbGUgb2YgQXJndW1lbnRDb2Rl
cnMgYXMgd2VsbC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb25uZWN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByaW50SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UHJp
bnRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0TWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVz
c2FnZUJvZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisKKzIwMTItMTAtMjIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBSZWdyZXNzaW9u
KHIxMzE5OTApOiBwbHVnaW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHkuaHRtbCBzdGFydGVk
IGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5OTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmMTZkN2M5MmY0NTU1YzA3M2NiNWEwN2M1ZWE2YzFkMmQ5ZjIwYjEyLi4w
ZjYwMTQyMjJiZTBjYWQxN2QzNjI0NWI1MGJmOWNmYTYwNzg1MWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMTMsNCArMjEz
LDQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKIAogfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQwogCi0jZW5kaWYgLy8gU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjZW5k
aWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggM2M4MWViMzc3ZjViMmUxNWRkYTIzOTljMjc0
MTUyOWMxYzI3OTdmNS4uYzFkNGI2ZTA1ZDZmOGY3OWE2NDc3OTU3OTgyOWQ4ZmQwYjQxMGI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCkBAIC05MCwxMyArOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcmd1bWVudENv
ZGVyPFQ+OjpkZWNvZGUodGhpcywgdCk7CiAgICAgfQogCi0gICAgLy8gVGhpcyBvdmVybG9hZCBl
eGlzdHMgc28gd2UgY2FuIHBhc3MgdGVtcG9yYXJpZXMgdG8gZGVjb2RlLiBJbiB0aGUgU3RhciBU
cmVrIGZ1dHVyZSwgaXQgCi0gICAgLy8gY2FuIHRha2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbnN0
ZWFkLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlKGNvbnN0IFQmIHQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZGVjb2RlKGNvbnN0X2Nhc3Q8VCY+KHQpKTsKLSAgICB9Ci0K
ICAgICBib29sIHJlbW92ZUF0dGFjaG1lbnQoQXR0YWNobWVudCYpOwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNWJk
NzU1MDJjODNjYmUzMWVmODE5ODVkY2IwOGNjNzc5NmY5MTE4Ny4uN2E1MzZiNmM3MjFlMjljZDNj
NmI3YzRmNzU1NjRmZDk1MzFhMzIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oCkBAIC0xMjEsMTYgKzEyMSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMxPFQxPiB7CiAgICAg
VDIgYXJndW1lbnQyOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBB
cmd1bWVudHMyPGNvbnN0IFQxJiwgY29uc3QgVDImPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MikKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzMjxjb25zdCBUMSYsIGNvbnN0IFQyJj4odDEs
IHQyKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBBcmd1bWVudHMy
PFQxJiwgVDImPiBPdXQoVDEmIHQxLCBUMiYgdDIpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czI8
VDEmLCBUMiY+KHQxLCB0Mik7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUMSwgVDI+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czM8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0xNjMsMTYgKzE1Myw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDog
QXJndW1lbnRzMjxUCiAgICAgVDMgYXJndW1lbnQzOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4gQXJndW1lbnRzMzxjb25zdCBUMSYsIGNvbnN0
IFQyJiwgY29uc3QgVDMmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyY+KHQxLCB0MiwgdDMpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzPiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+IE91dChUMSYgdDEsIFQy
JiB0MiwgVDMmIHQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+KHQx
LCB0MiwgdDMpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50czQgOiBBcmd1bWVudHMzPFQxLCBU
MiwgVDM+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czQ8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yMDYsMTYgKzE4Niw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
PiBzdHJ1Y3QgQXJndW1lbnRzNCA6CiAgICAgVDQgYXJndW1lbnQ0OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+IEFyZ3Vt
ZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmPiBJbihjb25z
dCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQpCi17Ci0g
ICAgcmV0dXJuIEFyZ3VtZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29u
c3QgVDQmPih0MSwgdDIsIHQzLCB0NCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBBcmd1bWVudHM0PFQxJiwgVDImLCBU
MyYsIFQ0Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCkKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzNDxUMSYsIFQyJiwgVDMmLCBUNCY+KHQxLCB0MiwgdDMsIHQ0KTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1PiBzdHJ1Y3QgQXJndW1lbnRzNSA6IEFyZ3VtZW50czQ8VDEsIFQyLCBU
MywgVDQ+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czU8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yNTAsMTYgKzIyMCw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNT4gc3RydWN0CiAgICAgVDUgYXJndW1lbnQ1OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1PiBBcmd1bWVudHM1PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0
IFQ0JiwgY29uc3QgVDUmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRz
NTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jj4o
dDEsIHQyLCB0MywgdDQsIHQ1KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PiBBcmd1bWVudHM1PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0
LCBUNSYgdDUpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czU8VDEmLCBUMiYsIFQzJiwgVDQmLCBU
NSY+KHQxLCB0MiwgdDMsIHQ0LCB0NSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUg
VDY+IHN0cnVjdCBBcmd1bWVudHM2IDogQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czY8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yOTUsMTYgKzI1NSw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwgdHlwZW5hCiAgICAgVDYgYXJndW1lbnQ2OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmFtZSBUNj4gQXJndW1lbnRzNjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYm
IHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0
NSwgdDYpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PiBBcmd1bWVudHM2PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBU
NCYgdDQsIFQ1JiB0NSwgVDYmIHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PFQxJiwgVDIm
LCBUMyYsIFQ0JiwgVDUmLCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4gc3RydWN0IEFyZ3VtZW50czcg
OiBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHsKICAgICB0eXBlZGVmIEFyZ3Vt
ZW50czc8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVy
ZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBX
VEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46
OlR5cGUsCkBAIC0zNDEsMTYgKzI5MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAg
VDcgYXJndW1lbnQ3OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDc+IEFyZ3VtZW50czc8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3Qg
VDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmPiBJbihjb25zdCBUMSYgdDEsIGNv
bnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29u
c3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czc8Y29uc3Qg
VDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2
JiwgY29uc3QgVDcmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PiBBcmd1bWVudHM3PFQxJiwgVDImLCBU
MyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0
NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NykKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzNzxUMSYs
IFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3
KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4PiBzdHJ1Y3QgQXJndW1lbnRzOCA6IEFyZ3VtZW50czc8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDc+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czg8dHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTM4NiwxNiArMzI2LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmEKICAgICBUOCBhcmd1bWVudDg7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFyZ3VtZW50czg8Y29uc3QgVDEmLCBjb25z
dCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3Qg
VDcmLCBjb25zdCBUOCY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyAm
dDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0
NywgY29uc3QgVDgmIHQ4KQotewotICAgIHJldHVybiBBcmd1bWVudHM4PGNvbnN0IFQxJiwgY29u
c3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0
IFQ3JiwgY29uc3QgVDgmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFy
Z3VtZW50czg8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCY+IE91dChUMSYg
dDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0
OCkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzODxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYm
LCBUNyYsIFQ4Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4KTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPiBzdHJ1Y3QgQXJndW1lbnRzMTAgOiBBcmd1bWVudHM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gewogICAgIHR5cGVkZWYgQXJndW1lbnRzMTA8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46
OlR5cGU+OjpUeXBlLAogICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RG
OjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTQzNywxNiArMzY3LDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICBUMTAgYXJndW1lbnQxMDsKIH07CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYg
dDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0
NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwgY29uc3QgVDEwJiB0
MTApCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czEwPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3Qg
VDgmLCBjb25zdCBUOSYsIGNvbnN0IFQxMCY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4gT3V0KFQx
JiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NywgVDgm
IHQ4LCBUOSYgdDksIFQxMCYgdDEwKQotewotICAgIHJldHVybiBBcmd1bWVudHMxMDxUMSYsIFQy
JiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
CiAKICNlbmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiNDM4MDc0MDkwNjQ2ODU1NzdmNjkzNTc5YWFhZWRkNDFh
ODI3MGY2Li4zZWMyODIzNDE3MDhhNzY4OTkyNmQxNTg1ZWEwMGExYjg1YzJhMDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTkzLDYgKzE5
Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZVN5
bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCk7CiAgICAgYm9vbCBzZW5kTWVzc2FnZShNZXNzYWdlSUQsIFBhc3NP
d25QdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7Cisg
ICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwg
dWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4sIGRvdWJs
ZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAgICAgYm9vbCBzZW5kU3lu
Y1JlcGx5KFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+KTsKIAogICAgIC8vIEZJWE1FOiBUaGVz
ZSB2YXJpYW50cyBvZiBzZW5kLCBzZW5kU3luYyBhbmQgd2FpdEZvciBhcmUgYWxsIGRlcHJlY2F0
ZWQuCkBAIC0yNTQsNyArMjU1LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBQYXNzT3duUHRyPE1l
c3NhZ2VEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0
aW9uSUQsIGRvdWJsZSB0aW1lb3V0KTsKICAgICAKLSAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNv
ZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwgZG91YmxlIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNT
ZW5kRmxhZ3MgPSAwKTsKICAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yU3lu
Y1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBz
eW5jU2VuZEZsYWdzKTsKIAogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiB3b3JrIHF1
ZXVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cAppbmRleCAzMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4Li40MDE5YThk
ODU3OWU3OThhZDNhMmNiNTA3NjFjOWQ3NzU3ODRjNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29s
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBtYWNoUG9ydDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpP
dXQobWFjaFBvcnQpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShtYWNoUG9ydCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBoYW5kbGUubV9zaXplID0gc2l6ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1ByaW50SW5mby5jcHAKaW5kZXggY2UxMTkzNWFkNjhiNWUyMzk3NjQxNmQxNjZm
M2Y5OTIzYzJlYTI5OC4uMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQ1LDcgKzQ1LDEwIEBAIFByaW50
SW5mbzo6UHJpbnRJbmZvKCkKIAogdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJ
UEM6OkluKHBhZ2VTZXR1cFNjYWxlRmFjdG9yLCBhdmFpbGFibGVQYXBlcldpZHRoLCBhdmFpbGFi
bGVQYXBlckhlaWdodCkpOworICAgIGVuY29kZXItPmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rv
cik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVyV2lkdGgpOworICAgIGVuY29k
ZXItPmVuY29kZShhdmFpbGFibGVQYXBlckhlaWdodCk7CisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByaW50U2V0dGluZ3MuZ2V0KCkpOwogICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBwYWdlU2V0dXAuZ2V0KCkpOwpAQCAtNTQsNyArNTcsMTEg
QEAgdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgUHJpbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQcmludEluZm8mIGluZm8pCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IsIGluZm8uYXZhaWxhYmxl
UGFwZXJXaWR0aCwgaW5mby5hdmFpbGFibGVQYXBlckhlaWdodCkpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlcldpZHRoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8uYXZh
aWxhYmxlUGFwZXJIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9S
TShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAKaW5kZXggMWViMWM0OTViMjg0OTJmNWY3MmFhNjcyOTVhYWFmYzRiNGJkMzA5Zi4uOTAx
Y2U5YzQ3ZjFjNWQzM2JjYzE2ZmJiY2EwNGQyNGM5ZTgzMDE3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtMTA2LDI5ICsxMDYs
NDggQEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUElPYmplY3Qq
IHVzZXJEYXRhKQogICAgIAogdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90eXBlKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fYWN0aW9uKSwgbV90aXRsZSwgbV9jaGVja2VkLCBtX2VuYWJsZWQsIG1f
c3VibWVudSkpOworICAgIGVuY29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKG1fYWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV90aXRsZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2hlY2tlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZW5h
YmxlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3VibWVudSk7CiB9CiAKIGJvb2wgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKLSAgICB1aW50MzJfdCB0eXBlOwot
ICAgIHVpbnQzMl90IGFjdGlvbjsKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKGFjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIFN0cmluZyB0aXRsZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0aXRsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY2hlY2tlZDsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShjaGVja2VkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBlbmFi
bGVkOwotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBzdWJtZW51OworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGVuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodHlwZSwgYWN0aW9uLCB0aXRsZSwg
Y2hlY2tlZCwgZW5hYmxlZCwgc3VibWVudSkpKQorICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0
ZW1EYXRhPiBzdWJtZW51OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN1Ym1lbnUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNv
cmU6OkFjdGlvblR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlOgogICAgIGNh
c2UgV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZToKLSAgICAgICAgaXRlbSA9IFdlYkNvbnRl
eHRNZW51SXRlbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4o
dHlwZSksIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0
aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7CisgICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhKHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVuYWJsZWQsIGNoZWNrZWQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlN1Ym1lbnVUeXBlOgotICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bj4oYWN0aW9uKSwgdGl0bGUsIGVuYWJsZWQsIHN1Ym1lbnUpOworICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShhY3Rpb24sIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA4ZWRjM2ZkMzU4NjQ4MjFhMjhjN2Q0
YmE3OWMyOGNjYWZkZTgzNTBiLi43MGJmZmEyYzFlODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYw
NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTQ4LDEyICs0OCwyMCBAQCBX
ZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQogCiB2b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3R5cGUsIG1fbW9kaWZpZXJzLCBtX3RpbWVzdGFtcCkpOworICAgIGVuY29kZXItPmVuY29kZSht
X3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX21vZGlmaWVycyk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdGltZXN0YW1wKTsKIH0KIAotYm9vbCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViRXZlbnQmIHQpCitib29sIFdlYkV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHQubV90eXBlLCB0
Lm1fbW9kaWZpZXJzLCB0Lm1fdGltZXN0YW1wKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQubV9tb2RpZmllcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdGltZXN0YW1wKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggYzllMzZmYTM3ZDA3OGIyNjJlNzM3ZDQ4ZGYzNTZlZjgwOWEyZWI0OS4uNzdkNTI0Y2Y0
YzQ3N2E4ZDEwZjQxMDc0ZDFlMTU4NzE1ZDBiZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtNTMsMTUgKzUzLDEyIEBAIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1
ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFj
eSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworICAgIENvcmVJUEM6OlNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVy
LCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKIHsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRp
dHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0
YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CisgICAgcmV0dXJu
IENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0
YT46OmRlY29kZShkZWNvZGVyLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggN2FhN2RmZjIzMTQzMDZi
ZTUwZjkxZTRmZTkxMTFmODgyNThjZTA1NC4uMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0
MDdjYzVmNzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAt
ODIsMjUgKzgyLDQ0IEBAIHZvaWQgV2ViTW91c2VFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29k
ZXIpOwogCisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fYnV0dG9uKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9wb3NpdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVs
dGFZKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVopOworICAgIGVuY29kZXItPmVuY29k
ZShtX2NsaWNrQ291bnQpOworCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIEluY2x1ZGUgbV9k
aWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQ
Qzo6SW4obV9idXR0b24sIG1fcG9zaXRpb24sIG1fZ2xvYmFsUG9zaXRpb24sIG1fZGVsdGFYLCBt
X2RlbHRhWSwgbV9kZWx0YVosIG1fY2xpY2tDb3VudCwgbV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsK
LSNlbHNlCi0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fYnV0dG9uLCBtX3Bvc2l0
aW9uLCBtX2dsb2JhbFBvc2l0aW9uLCBtX2RlbHRhWCwgbV9kZWx0YVksIG1fZGVsdGFaLCBtX2Ns
aWNrQ291bnQpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kaWRBY3RpdmF0ZVdlYlZpZXcpOwog
I2VuZGlmCiB9CiAKLWJvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYgdCkKK2Jvb2wgV2ViTW91c2VFdmVudDo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYg
cmVzdWx0KQogewotICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCB0KSkKKyAgICBp
ZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fYnV0dG9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5tX2dsb2JhbFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RlbHRhWCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0YVkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGVsdGFaKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2Ns
aWNrQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oV0lOKQotICAg
IC8vIEluY2x1ZGUgbV9kaWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICByZXR1cm4g
ZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fYnV0dG9uLCB0Lm1fcG9zaXRpb24sIHQu
bV9nbG9iYWxQb3NpdGlvbiwgdC5tX2RlbHRhWCwgdC5tX2RlbHRhWSwgdC5tX2RlbHRhWiwgdC5t
X2NsaWNrQ291bnQsIHQubV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodC5tX2J1dHRvbiwgdC5tX3Bvc2l0aW9uLCB0
Lm1fZ2xvYmFsUG9zaXRpb24sIHQubV9kZWx0YVgsIHQubV9kZWx0YVksIHQubV9kZWx0YVosIHQu
bV9jbGlja0NvdW50KSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGlkQWN0
aXZhdGVXZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJNb3VzZUV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKFR5cGUg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNo
UG9pbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5j
cHAKaW5kZXggZDg2ZmM3YWVmNzZhYjJlY2JhMDU3OTBiMGE2MmMxNjgyNTdkZTkxZC4uYzIxMDdk
NTg2YzQ3OTQ2OTM4Zjg2ZDllZjFlMTZkNzY5N2RjODI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTU5LDEyICs1OSwzMyBAQCBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZCwg
VG91Y2hQb2ludFN0YXRlIHN0YXRlLAogCiB2b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9pZCwgbV9zdGF0ZSwgbV9zY3JlZW5Qb3NpdGlvbiwg
bV9wb3NpdGlvbiwgbV9yYWRpdXMsIG1fcm90YXRpb25BbmdsZSwgbV9mb3JjZSkpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9zdGF0ZSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOworICAgIGVuY29kZXItPmVuY29kZSht
X3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9yYWRpdXMpOworICAgIGVuY29kZXIt
PmVuY29kZShtX3JvdGF0aW9uQW5nbGUpOworICAgIGVuY29kZXItPmVuY29kZShtX2ZvcmNlKTsK
IH0KIAotYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgdCkKK2Jvb2wgV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gZGVjb2Rlci0+
ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1faWQsIHQubV9zdGF0ZSwgdC5tX3NjcmVlblBvc2l0aW9u
LCB0Lm1fcG9zaXRpb24sIHQubV9yYWRpdXMsIHQubV9yb3RhdGlvbkFuZ2xlLCB0Lm1fZm9yY2Up
KTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9pZCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zdGF0ZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zY3Jl
ZW5Qb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXN1bHQubV9wb3NpdGlubykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQubV9yYWRpdXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fcm90YXRpb25BbmdsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9mb3Jj
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKaW5k
ZXggYzIxNWYzNTY4MWJlMzk1ZGY2OTY4ZTBkNjE3NTM5MjgwNWIzMDQyNC4uMDdhMjllNDE2OTY2
MmMwOGZkMGFjMmU2MDkxMDVmYjU1MTUzOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBv
cHVwSXRlbS5jcHAKQEAgLTY4LDI5ICs2OCw1NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRl
bShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZQog
CiB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fdHlwZSksIG1fdGV4dCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdGV4
dERpcmVjdGlvbiksIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBtX3Rvb2xUaXAsIG1fYWNj
ZXNzaWJpbGl0eVRleHQsIG1faXNFbmFibGVkLCBtX2lzTGFiZWwpKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoQ29yZUlQQzo6SW4obV9pc1NlbGVjdGVkKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51
bShtX3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXItPmVu
Y29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOworICAg
IGVuY29kZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29sIFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVt
KQogewotICAgIHVpbnQzMl90IHR5cGU7CisgICAgVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgU3RyaW5n
IHRleHQ7Ci0gICAgdWludDY0X3QgdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFRleHREaXJlY3Rp
b24gdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odGV4dERpcmVj
dGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzVGV4dERpcmVjdGlv
bk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlwOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHRvb2xUaXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBTdHJpbmcgYWNjZXNzaWJpbGl0eVRleHQ7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
YWNjZXNzaWJpbGl0eVRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGlz
RW5hYmxlZDsKLSAgICBib29sIGlzTGFiZWw7Ci0gICAgYm9vbCBpc1NlbGVjdGVkOworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGlzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCB0ZXh0LCB0ZXh0RGly
ZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlU
ZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkKKyAgICBib29sIGlzTGFiZWw7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNMYWJlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpc1NlbGVjdGVkKSkpCisgICAgYm9vbCBp
c1NlbGVjdGVkOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzU2VsZWN0ZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHN0YXRpY19jYXN0PFR5
cGU+KHR5cGUpLCB0ZXh0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9u
KSwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwg
aXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAgICBpdGVtID0gV2ViUG9wdXBJdGVt
KHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgdG9v
bFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBmZjQzYjM0MTE2NThjY2Uy
NjI1ZGM5NzAyZjRjYWNmN2UyMmZhMzhhLi42MjAyNjA4YmRhMTY2OWQ5ZWQzYTQ4NWE1ODc3MzA1
NWQ5NDgzZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01OSw3ICs1OSw5IEBAIHZvaWQgV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJiBlbmNvCiAKIGJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVjb2RlTWVzc2Fn
ZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0
PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nlc3MpKSkKKyAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9j
ZXNzKTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJvZHlEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMTRhOWNlNzg3NWMyZjc5YTI4NWZjMmU5NTFkY2I5
ZDM3OTM0MjVkZS4uNmJiZDUxNTFkZjgyM2FiZTEwMDFiZjM0N2I3MWUwMzYwMjAxZThlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtODIzLDEwICs4MjMsMTIg
QEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5
TWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsK
ICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgICAgICAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwg
V2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURl
Y29kZXIpKSkKKyAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9u
KGNvbm5lY3Rpb24pKTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZU5h
bWUpKQogICAgICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXNzYWdlQm9keURlY29kZXIpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtODU2LDggKzg1OCwxMCBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOgog
CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CiAgICAgICAgICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNv
bm5lY3Rpb24oY29ubmVjdGlvbikpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShD
b3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNvZGVyKSkpCisgICAgICAgICAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9k
eSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7CisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VOYW1lKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2Rl
cikpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiByZXR1cm5EYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA0NThiMWMxNjljYzFj
OTcxMTkyMjZlMzNiZDM5N2Y0NTU3MzJlODU1Li40ZDBhYTU2YTNkYjcyYjY2YTJhMjViYTI5NThm
MTM2OWI1M2NhMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtOTMsMjAgKzkzLDI3IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxpemVDbGllbnQoV0tCdW5kbGVDbGllbnQqIGNs
aWVudCkKIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKIHsKLSAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kKFdlYkNvbnRleHRMZWdhY3lNZXNz
YWdlOjpQb3N0TWVzc2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIEluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSkpOworICAgIE93blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpjcmVh
dGUoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6Oktp
bmQ+OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICIiLCAwKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
bWVzc2FnZU5hbWUpOworICAgIGVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQoV2ViQ29udGV4dExlZ2Fj
eU1lc3NhZ2U6OlBvc3RNZXNzYWdlKSwgZW5jb2Rlci5yZWxlYXNlKCkpOwogfQogCiB2b2lkIElu
amVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZHksIFJlZlB0cjxBUElPYmplY3Q+JiByZXR1cm5E
YXRhKQogewotICAgIFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGFUbXA7Ci0gICAgSW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIocmV0dXJuRGF0YVRtcCk7
Ci0gICAgCi0gICAgYm9vbCBzdWNjZWVkZWQgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0
aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdFN5
bmNocm9ub3VzTWVzc2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIEluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSksIENvcmVJUEM6Ok91dChtZXNzYWdl
RGVjb2RlcikpOworICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHJldHVybkRhdGEpOwogCi0gICAgaWYgKCFzdWNjZWVkZWQpCi0gICAgICAgIHJldHVy
bjsKKyAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4gZW5jb2RlciA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKENvcmVJUEM6Ok1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNv
bnRleHRMZWdhY3lNZXNzYWdlOjpLaW5kPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgMCwg
c3luY1JlcXVlc3RJRCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKKyAgICBl
bmNvZGVyLT5lbmNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJv
ZHkpKTsKIAotICAgIHJldHVybkRhdGEgPSByZXR1cm5EYXRhVG1wOworICAgIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gV2ViUHJvY2Vzczo6c2hhcmVkKCku
Y29ubmVjdGlvbigpLT5zZW5kU3luY01lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKFdlYkNvbnRl
eHRMZWdhY3lNZXNzYWdlOjpQb3N0U3luY2hyb25vdXNNZXNzYWdlKSwgc3luY1JlcXVlc3RJRCwg
ZW5jb2Rlci5yZWxlYXNlKCksIENvcmVJUEM6OkNvbm5lY3Rpb246Ok5vVGltZW91dCk7CisgICAg
aWYgKCFyZXBseURlY29kZXIgfHwgIXJlcGx5RGVjb2Rlci0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkgeworICAgICAgICByZXR1cm5EYXRhID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIH0KIAogV2ViQ29ubmVjdGlvbiogSW5qZWN0ZWRCdW5kbGU6OndlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2VzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKaW5kZXggZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVl
NmM0MzM4ZTNjYTY1ZGZhMy4uNTM4MDA3ZDRmZWFjYTI1OWI3NmZkMjQ0YjU4OGNhNjc5Y2E0YTgz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlv
blRvVUlQcm9jZXNzLmNwcApAQCAtNTYsMTAgKzU2LDggQEAgdm9pZCBXZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3M6OmVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5j
b2QKIAogYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3Nh
Z2VCb2R5KQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIHRydWU7CisgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5KTsKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUobWVz
c2FnZUJvZHlEZWNvZGVyKTsKIH0KIAogLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMWFm
ZTNlMzI0YzEyNzdhNGQyM2FkM2IzM2FkOWZlZmIzODAxZmM1OS4uM2Q4NTgzZDhkYThlNmZiOGE5
NTE1MzFiNDkxYjg5MGE5YjgzNGI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTIyMiw3ICsxMjIyLDggQEAgdm9pZCBXZWJQYWdlOjpw
b3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIENvcmVJ
UEM6Ok1lc3MKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2Fn
ZUJvZHk7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RGVjb2RlcihtZXNzYWdlQm9keSkpKQorICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSk7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlQm9keURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbmplY3Rl
ZEJ1bmRsZS0+ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhpcywgbWVzc2FnZU5hbWUsIG1lc3Nh
Z2VCb2R5LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDQzZTdkNzAyMWNlMGE0ZTk2NGZhZjNiMzU2YWI1ZjZjNTAzOGRmNTAuLjg0NmE3YzJkMzNm
OTUzODQwNjZjNmUwYzFmNThhMzg3OGI2MTA3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTA1Niw3ICsxMDU2LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpw
b3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1l
c3NhZ2UKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJv
ZHk7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURl
Y29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2Rl
ciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHkpOworICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGluamVjdGVk
QnVuZGxlLT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169996</attachid>
            <date>2012-10-22 15:05:46 -0700</date>
            <delta_ts>2012-10-22 15:16:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100022-20121022150424.patch</filename>
            <type>text/plain</type>
            <size>34658</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhhYzIzODQ1MzJhNTAw
NjBhNTcwZTcwOTljOGJjODUzYjEwNzVmYi4uNDNmN2VhM2ViYzJlZWNkMWZkOGExNTUyOGMyNWU0
YmI0MmVkZTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9yZSBBcmd1bWVu
dCBjb2RlciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlIG92ZXJsb2FkIHRoYXQg
dGFrZXMgYSBjb25zdCByZWZlcmVuY2UgLSBpZiB0aGUgY2FsbCB0byBkZWNvZGUgZW5kcyB1cCBj
cmVhdGluZyBhIHRlbXBvcmFyeQorICAgICAgICB3ZSdsbCBlbmNvZGUgaW50byBpdCBhbmQgdGhl
biBkZXN0cm95IGl0LiBTaW5jZSB0aGlzIGRlY29kZSBvdmVybG9hZCB3YXMgbW9zdGx5IHVzZWQg
d2l0aCB0aGUgQ29yZUlQQzo6T3V0IGZ1bmN0aW9ucywgcmVtb3ZlIHRoZW0KKyAgICAgICAgKGFu
ZCBDb3JlSVBDOjpJbikgYXMgd2VsbC4gQ2xlYW4gdXAgYSBjb3VwbGUgb2YgQXJndW1lbnRDb2Rl
cnMgYXMgd2VsbC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb25uZWN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByaW50SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UHJp
bnRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0TWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVz
c2FnZUJvZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisKKzIwMTItMTAtMjIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBSZWdyZXNzaW9u
KHIxMzE5OTApOiBwbHVnaW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHkuaHRtbCBzdGFydGVk
IGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5OTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmMTZkN2M5MmY0NTU1YzA3M2NiNWEwN2M1ZWE2YzFkMmQ5ZjIwYjEyLi4w
ZjYwMTQyMjJiZTBjYWQxN2QzNjI0NWI1MGJmOWNmYTYwNzg1MWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMTMsNCArMjEz
LDQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKIAogfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQwogCi0jZW5kaWYgLy8gU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjZW5k
aWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggM2M4MWViMzc3ZjViMmUxNWRkYTIzOTljMjc0
MTUyOWMxYzI3OTdmNS4uYzFkNGI2ZTA1ZDZmOGY3OWE2NDc3OTU3OTgyOWQ4ZmQwYjQxMGI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCkBAIC05MCwxMyArOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcmd1bWVudENv
ZGVyPFQ+OjpkZWNvZGUodGhpcywgdCk7CiAgICAgfQogCi0gICAgLy8gVGhpcyBvdmVybG9hZCBl
eGlzdHMgc28gd2UgY2FuIHBhc3MgdGVtcG9yYXJpZXMgdG8gZGVjb2RlLiBJbiB0aGUgU3RhciBU
cmVrIGZ1dHVyZSwgaXQgCi0gICAgLy8gY2FuIHRha2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbnN0
ZWFkLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlKGNvbnN0IFQmIHQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZGVjb2RlKGNvbnN0X2Nhc3Q8VCY+KHQpKTsKLSAgICB9Ci0K
ICAgICBib29sIHJlbW92ZUF0dGFjaG1lbnQoQXR0YWNobWVudCYpOwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNWJk
NzU1MDJjODNjYmUzMWVmODE5ODVkY2IwOGNjNzc5NmY5MTE4Ny4uN2E1MzZiNmM3MjFlMjljZDNj
NmI3YzRmNzU1NjRmZDk1MzFhMzIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oCkBAIC0xMjEsMTYgKzEyMSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMxPFQxPiB7CiAgICAg
VDIgYXJndW1lbnQyOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBB
cmd1bWVudHMyPGNvbnN0IFQxJiwgY29uc3QgVDImPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MikKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzMjxjb25zdCBUMSYsIGNvbnN0IFQyJj4odDEs
IHQyKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBBcmd1bWVudHMy
PFQxJiwgVDImPiBPdXQoVDEmIHQxLCBUMiYgdDIpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czI8
VDEmLCBUMiY+KHQxLCB0Mik7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUMSwgVDI+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czM8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0xNjMsMTYgKzE1Myw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDog
QXJndW1lbnRzMjxUCiAgICAgVDMgYXJndW1lbnQzOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4gQXJndW1lbnRzMzxjb25zdCBUMSYsIGNvbnN0
IFQyJiwgY29uc3QgVDMmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyY+KHQxLCB0MiwgdDMpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzPiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+IE91dChUMSYgdDEsIFQy
JiB0MiwgVDMmIHQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+KHQx
LCB0MiwgdDMpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50czQgOiBBcmd1bWVudHMzPFQxLCBU
MiwgVDM+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czQ8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yMDYsMTYgKzE4Niw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
PiBzdHJ1Y3QgQXJndW1lbnRzNCA6CiAgICAgVDQgYXJndW1lbnQ0OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+IEFyZ3Vt
ZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmPiBJbihjb25z
dCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQpCi17Ci0g
ICAgcmV0dXJuIEFyZ3VtZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29u
c3QgVDQmPih0MSwgdDIsIHQzLCB0NCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBBcmd1bWVudHM0PFQxJiwgVDImLCBU
MyYsIFQ0Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCkKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzNDxUMSYsIFQyJiwgVDMmLCBUNCY+KHQxLCB0MiwgdDMsIHQ0KTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1PiBzdHJ1Y3QgQXJndW1lbnRzNSA6IEFyZ3VtZW50czQ8VDEsIFQyLCBU
MywgVDQ+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czU8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yNTAsMTYgKzIyMCw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNT4gc3RydWN0CiAgICAgVDUgYXJndW1lbnQ1OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1PiBBcmd1bWVudHM1PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0
IFQ0JiwgY29uc3QgVDUmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRz
NTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jj4o
dDEsIHQyLCB0MywgdDQsIHQ1KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PiBBcmd1bWVudHM1PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0
LCBUNSYgdDUpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czU8VDEmLCBUMiYsIFQzJiwgVDQmLCBU
NSY+KHQxLCB0MiwgdDMsIHQ0LCB0NSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUg
VDY+IHN0cnVjdCBBcmd1bWVudHM2IDogQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czY8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yOTUsMTYgKzI1NSw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwgdHlwZW5hCiAgICAgVDYgYXJndW1lbnQ2OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmFtZSBUNj4gQXJndW1lbnRzNjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYm
IHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0
NSwgdDYpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PiBBcmd1bWVudHM2PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBU
NCYgdDQsIFQ1JiB0NSwgVDYmIHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PFQxJiwgVDIm
LCBUMyYsIFQ0JiwgVDUmLCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4gc3RydWN0IEFyZ3VtZW50czcg
OiBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHsKICAgICB0eXBlZGVmIEFyZ3Vt
ZW50czc8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVy
ZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBX
VEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46
OlR5cGUsCkBAIC0zNDEsMTYgKzI5MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAg
VDcgYXJndW1lbnQ3OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDc+IEFyZ3VtZW50czc8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3Qg
VDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmPiBJbihjb25zdCBUMSYgdDEsIGNv
bnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29u
c3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czc8Y29uc3Qg
VDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2
JiwgY29uc3QgVDcmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PiBBcmd1bWVudHM3PFQxJiwgVDImLCBU
MyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0
NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NykKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzNzxUMSYs
IFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3
KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4PiBzdHJ1Y3QgQXJndW1lbnRzOCA6IEFyZ3VtZW50czc8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDc+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czg8dHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTM4NiwxNiArMzI2LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmEKICAgICBUOCBhcmd1bWVudDg7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFyZ3VtZW50czg8Y29uc3QgVDEmLCBjb25z
dCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3Qg
VDcmLCBjb25zdCBUOCY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyAm
dDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0
NywgY29uc3QgVDgmIHQ4KQotewotICAgIHJldHVybiBBcmd1bWVudHM4PGNvbnN0IFQxJiwgY29u
c3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0
IFQ3JiwgY29uc3QgVDgmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFy
Z3VtZW50czg8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCY+IE91dChUMSYg
dDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0
OCkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzODxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYm
LCBUNyYsIFQ4Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4KTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPiBzdHJ1Y3QgQXJndW1lbnRzMTAgOiBBcmd1bWVudHM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gewogICAgIHR5cGVkZWYgQXJndW1lbnRzMTA8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46
OlR5cGU+OjpUeXBlLAogICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RG
OjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTQzNywxNiArMzY3LDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICBUMTAgYXJndW1lbnQxMDsKIH07CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYg
dDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0
NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwgY29uc3QgVDEwJiB0
MTApCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czEwPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3Qg
VDgmLCBjb25zdCBUOSYsIGNvbnN0IFQxMCY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4gT3V0KFQx
JiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NywgVDgm
IHQ4LCBUOSYgdDksIFQxMCYgdDEwKQotewotICAgIHJldHVybiBBcmd1bWVudHMxMDxUMSYsIFQy
JiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
CiAKICNlbmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiNDM4MDc0MDkwNjQ2ODU1NzdmNjkzNTc5YWFhZWRkNDFh
ODI3MGY2Li4zZWMyODIzNDE3MDhhNzY4OTkyNmQxNTg1ZWEwMGExYjg1YzJhMDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTkzLDYgKzE5
Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZVN5
bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCk7CiAgICAgYm9vbCBzZW5kTWVzc2FnZShNZXNzYWdlSUQsIFBhc3NP
d25QdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7Cisg
ICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwg
dWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4sIGRvdWJs
ZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAgICAgYm9vbCBzZW5kU3lu
Y1JlcGx5KFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+KTsKIAogICAgIC8vIEZJWE1FOiBUaGVz
ZSB2YXJpYW50cyBvZiBzZW5kLCBzZW5kU3luYyBhbmQgd2FpdEZvciBhcmUgYWxsIGRlcHJlY2F0
ZWQuCkBAIC0yNTQsNyArMjU1LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBQYXNzT3duUHRyPE1l
c3NhZ2VEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0
aW9uSUQsIGRvdWJsZSB0aW1lb3V0KTsKICAgICAKLSAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNv
ZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwgZG91YmxlIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNT
ZW5kRmxhZ3MgPSAwKTsKICAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yU3lu
Y1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBz
eW5jU2VuZEZsYWdzKTsKIAogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiB3b3JrIHF1
ZXVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cAppbmRleCAzMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4Li40MDE5YThk
ODU3OWU3OThhZDNhMmNiNTA3NjFjOWQ3NzU3ODRjNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29s
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBtYWNoUG9ydDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpP
dXQobWFjaFBvcnQpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShtYWNoUG9ydCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBoYW5kbGUubV9zaXplID0gc2l6ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1ByaW50SW5mby5jcHAKaW5kZXggY2UxMTkzNWFkNjhiNWUyMzk3NjQxNmQxNjZm
M2Y5OTIzYzJlYTI5OC4uMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQ1LDcgKzQ1LDEwIEBAIFByaW50
SW5mbzo6UHJpbnRJbmZvKCkKIAogdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJ
UEM6OkluKHBhZ2VTZXR1cFNjYWxlRmFjdG9yLCBhdmFpbGFibGVQYXBlcldpZHRoLCBhdmFpbGFi
bGVQYXBlckhlaWdodCkpOworICAgIGVuY29kZXItPmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rv
cik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVyV2lkdGgpOworICAgIGVuY29k
ZXItPmVuY29kZShhdmFpbGFibGVQYXBlckhlaWdodCk7CisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByaW50U2V0dGluZ3MuZ2V0KCkpOwogICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBwYWdlU2V0dXAuZ2V0KCkpOwpAQCAtNTQsNyArNTcsMTEg
QEAgdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgUHJpbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQcmludEluZm8mIGluZm8pCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IsIGluZm8uYXZhaWxhYmxl
UGFwZXJXaWR0aCwgaW5mby5hdmFpbGFibGVQYXBlckhlaWdodCkpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlcldpZHRoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8uYXZh
aWxhYmxlUGFwZXJIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9S
TShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAKaW5kZXggMWViMWM0OTViMjg0OTJmNWY3MmFhNjcyOTVhYWFmYzRiNGJkMzA5Zi4uOTAx
Y2U5YzQ3ZjFjNWQzM2JjYzE2ZmJiY2EwNGQyNGM5ZTgzMDE3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtMTA2LDI5ICsxMDYs
NDggQEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUElPYmplY3Qq
IHVzZXJEYXRhKQogICAgIAogdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90eXBlKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fYWN0aW9uKSwgbV90aXRsZSwgbV9jaGVja2VkLCBtX2VuYWJsZWQsIG1f
c3VibWVudSkpOworICAgIGVuY29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKG1fYWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV90aXRsZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2hlY2tlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZW5h
YmxlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3VibWVudSk7CiB9CiAKIGJvb2wgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKLSAgICB1aW50MzJfdCB0eXBlOwot
ICAgIHVpbnQzMl90IGFjdGlvbjsKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKGFjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIFN0cmluZyB0aXRsZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0aXRsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY2hlY2tlZDsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShjaGVja2VkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBlbmFi
bGVkOwotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBzdWJtZW51OworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGVuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodHlwZSwgYWN0aW9uLCB0aXRsZSwg
Y2hlY2tlZCwgZW5hYmxlZCwgc3VibWVudSkpKQorICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0
ZW1EYXRhPiBzdWJtZW51OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN1Ym1lbnUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNv
cmU6OkFjdGlvblR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlOgogICAgIGNh
c2UgV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZToKLSAgICAgICAgaXRlbSA9IFdlYkNvbnRl
eHRNZW51SXRlbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4o
dHlwZSksIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0
aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7CisgICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhKHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVuYWJsZWQsIGNoZWNrZWQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlN1Ym1lbnVUeXBlOgotICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bj4oYWN0aW9uKSwgdGl0bGUsIGVuYWJsZWQsIHN1Ym1lbnUpOworICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShhY3Rpb24sIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA4ZWRjM2ZkMzU4NjQ4MjFhMjhjN2Q0
YmE3OWMyOGNjYWZkZTgzNTBiLi43MGJmZmEyYzFlODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYw
NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTQ4LDEyICs0OCwyMCBAQCBX
ZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQogCiB2b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3R5cGUsIG1fbW9kaWZpZXJzLCBtX3RpbWVzdGFtcCkpOworICAgIGVuY29kZXItPmVuY29kZSht
X3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX21vZGlmaWVycyk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdGltZXN0YW1wKTsKIH0KIAotYm9vbCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViRXZlbnQmIHQpCitib29sIFdlYkV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHQubV90eXBlLCB0
Lm1fbW9kaWZpZXJzLCB0Lm1fdGltZXN0YW1wKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQubV9tb2RpZmllcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdGltZXN0YW1wKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggYzllMzZmYTM3ZDA3OGIyNjJlNzM3ZDQ4ZGYzNTZlZjgwOWEyZWI0OS4uNzdkNTI0Y2Y0
YzQ3N2E4ZDEwZjQxMDc0ZDFlMTU4NzE1ZDBiZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtNTMsMTUgKzUzLDEyIEBAIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1
ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFj
eSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworICAgIENvcmVJUEM6OlNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVy
LCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKIHsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRp
dHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0
YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CisgICAgcmV0dXJu
IENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0
YT46OmRlY29kZShkZWNvZGVyLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggN2FhN2RmZjIzMTQzMDZi
ZTUwZjkxZTRmZTkxMTFmODgyNThjZTA1NC4uMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0
MDdjYzVmNzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAt
ODIsMjUgKzgyLDQ0IEBAIHZvaWQgV2ViTW91c2VFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29k
ZXIpOwogCisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fYnV0dG9uKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9wb3NpdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVs
dGFZKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVopOworICAgIGVuY29kZXItPmVuY29k
ZShtX2NsaWNrQ291bnQpOworCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIEluY2x1ZGUgbV9k
aWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQ
Qzo6SW4obV9idXR0b24sIG1fcG9zaXRpb24sIG1fZ2xvYmFsUG9zaXRpb24sIG1fZGVsdGFYLCBt
X2RlbHRhWSwgbV9kZWx0YVosIG1fY2xpY2tDb3VudCwgbV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsK
LSNlbHNlCi0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fYnV0dG9uLCBtX3Bvc2l0
aW9uLCBtX2dsb2JhbFBvc2l0aW9uLCBtX2RlbHRhWCwgbV9kZWx0YVksIG1fZGVsdGFaLCBtX2Ns
aWNrQ291bnQpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kaWRBY3RpdmF0ZVdlYlZpZXcpOwog
I2VuZGlmCiB9CiAKLWJvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYgdCkKK2Jvb2wgV2ViTW91c2VFdmVudDo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYg
cmVzdWx0KQogewotICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCB0KSkKKyAgICBp
ZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fYnV0dG9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5tX2dsb2JhbFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RlbHRhWCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0YVkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGVsdGFaKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2Ns
aWNrQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oV0lOKQotICAg
IC8vIEluY2x1ZGUgbV9kaWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICByZXR1cm4g
ZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fYnV0dG9uLCB0Lm1fcG9zaXRpb24sIHQu
bV9nbG9iYWxQb3NpdGlvbiwgdC5tX2RlbHRhWCwgdC5tX2RlbHRhWSwgdC5tX2RlbHRhWiwgdC5t
X2NsaWNrQ291bnQsIHQubV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodC5tX2J1dHRvbiwgdC5tX3Bvc2l0aW9uLCB0
Lm1fZ2xvYmFsUG9zaXRpb24sIHQubV9kZWx0YVgsIHQubV9kZWx0YVksIHQubV9kZWx0YVosIHQu
bV9jbGlja0NvdW50KSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGlkQWN0
aXZhdGVXZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJNb3VzZUV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKFR5cGUg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNo
UG9pbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5j
cHAKaW5kZXggZDg2ZmM3YWVmNzZhYjJlY2JhMDU3OTBiMGE2MmMxNjgyNTdkZTkxZC4uMzkwMjZl
MGY1YzhjYWNlZDdlNmIwMTg1YThiYzAxNGRjMmNmMGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTU5LDEyICs1OSwzMyBAQCBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZCwg
VG91Y2hQb2ludFN0YXRlIHN0YXRlLAogCiB2b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9pZCwgbV9zdGF0ZSwgbV9zY3JlZW5Qb3NpdGlvbiwg
bV9wb3NpdGlvbiwgbV9yYWRpdXMsIG1fcm90YXRpb25BbmdsZSwgbV9mb3JjZSkpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9zdGF0ZSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOworICAgIGVuY29kZXItPmVuY29kZSht
X3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9yYWRpdXMpOworICAgIGVuY29kZXIt
PmVuY29kZShtX3JvdGF0aW9uQW5nbGUpOworICAgIGVuY29kZXItPmVuY29kZShtX2ZvcmNlKTsK
IH0KIAotYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgdCkKK2Jvb2wgV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gZGVjb2Rlci0+
ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1faWQsIHQubV9zdGF0ZSwgdC5tX3NjcmVlblBvc2l0aW9u
LCB0Lm1fcG9zaXRpb24sIHQubV9yYWRpdXMsIHQubV9yb3RhdGlvbkFuZ2xlLCB0Lm1fZm9yY2Up
KTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9pZCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zdGF0ZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zY3Jl
ZW5Qb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXN1bHQubV9wb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQubV9yYWRpdXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fcm90YXRpb25BbmdsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9mb3Jj
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKaW5k
ZXggYzIxNWYzNTY4MWJlMzk1ZGY2OTY4ZTBkNjE3NTM5MjgwNWIzMDQyNC4uMDdhMjllNDE2OTY2
MmMwOGZkMGFjMmU2MDkxMDVmYjU1MTUzOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBv
cHVwSXRlbS5jcHAKQEAgLTY4LDI5ICs2OCw1NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRl
bShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZQog
CiB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fdHlwZSksIG1fdGV4dCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdGV4
dERpcmVjdGlvbiksIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBtX3Rvb2xUaXAsIG1fYWNj
ZXNzaWJpbGl0eVRleHQsIG1faXNFbmFibGVkLCBtX2lzTGFiZWwpKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoQ29yZUlQQzo6SW4obV9pc1NlbGVjdGVkKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51
bShtX3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXItPmVu
Y29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOworICAg
IGVuY29kZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29sIFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVt
KQogewotICAgIHVpbnQzMl90IHR5cGU7CisgICAgVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgU3RyaW5n
IHRleHQ7Ci0gICAgdWludDY0X3QgdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFRleHREaXJlY3Rp
b24gdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odGV4dERpcmVj
dGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzVGV4dERpcmVjdGlv
bk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlwOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHRvb2xUaXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBTdHJpbmcgYWNjZXNzaWJpbGl0eVRleHQ7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
YWNjZXNzaWJpbGl0eVRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGlz
RW5hYmxlZDsKLSAgICBib29sIGlzTGFiZWw7Ci0gICAgYm9vbCBpc1NlbGVjdGVkOworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGlzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCB0ZXh0LCB0ZXh0RGly
ZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlU
ZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkKKyAgICBib29sIGlzTGFiZWw7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNMYWJlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpc1NlbGVjdGVkKSkpCisgICAgYm9vbCBp
c1NlbGVjdGVkOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzU2VsZWN0ZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHN0YXRpY19jYXN0PFR5
cGU+KHR5cGUpLCB0ZXh0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9u
KSwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwg
aXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAgICBpdGVtID0gV2ViUG9wdXBJdGVt
KHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgdG9v
bFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBmZjQzYjM0MTE2NThjY2Uy
NjI1ZGM5NzAyZjRjYWNmN2UyMmZhMzhhLi42MjAyNjA4YmRhMTY2OWQ5ZWQzYTQ4NWE1ODc3MzA1
NWQ5NDgzZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01OSw3ICs1OSw5IEBAIHZvaWQgV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJiBlbmNvCiAKIGJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVjb2RlTWVzc2Fn
ZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0
PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nlc3MpKSkKKyAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9j
ZXNzKTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJvZHlEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMTRhOWNlNzg3NWMyZjc5YTI4NWZjMmU5NTFkY2I5
ZDM3OTM0MjVkZS4uNmJiZDUxNTFkZjgyM2FiZTEwMDFiZjM0N2I3MWUwMzYwMjAxZThlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtODIzLDEwICs4MjMsMTIg
QEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5
TWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsK
ICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgICAgICAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwg
V2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURl
Y29kZXIpKSkKKyAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9u
KGNvbm5lY3Rpb24pKTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZU5h
bWUpKQogICAgICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXNzYWdlQm9keURlY29kZXIpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtODU2LDggKzg1OCwxMCBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOgog
CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CiAgICAgICAgICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNv
bm5lY3Rpb24oY29ubmVjdGlvbikpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShD
b3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNvZGVyKSkpCisgICAgICAgICAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9k
eSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7CisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VOYW1lKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2Rl
cikpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiByZXR1cm5EYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA0NThiMWMxNjljYzFj
OTcxMTkyMjZlMzNiZDM5N2Y0NTU3MzJlODU1Li40ZDBhYTU2YTNkYjcyYjY2YTJhMjViYTI5NThm
MTM2OWI1M2NhMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtOTMsMjAgKzkzLDI3IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxpemVDbGllbnQoV0tCdW5kbGVDbGllbnQqIGNs
aWVudCkKIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKIHsKLSAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kKFdlYkNvbnRleHRMZWdhY3lNZXNz
YWdlOjpQb3N0TWVzc2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIEluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSkpOworICAgIE93blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpjcmVh
dGUoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6Oktp
bmQ+OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICIiLCAwKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
bWVzc2FnZU5hbWUpOworICAgIGVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQoV2ViQ29udGV4dExlZ2Fj
eU1lc3NhZ2U6OlBvc3RNZXNzYWdlKSwgZW5jb2Rlci5yZWxlYXNlKCkpOwogfQogCiB2b2lkIElu
amVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZHksIFJlZlB0cjxBUElPYmplY3Q+JiByZXR1cm5E
YXRhKQogewotICAgIFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGFUbXA7Ci0gICAgSW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIocmV0dXJuRGF0YVRtcCk7
Ci0gICAgCi0gICAgYm9vbCBzdWNjZWVkZWQgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0
aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdFN5
bmNocm9ub3VzTWVzc2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIEluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSksIENvcmVJUEM6Ok91dChtZXNzYWdl
RGVjb2RlcikpOworICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHJldHVybkRhdGEpOwogCi0gICAgaWYgKCFzdWNjZWVkZWQpCi0gICAgICAgIHJldHVy
bjsKKyAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4gZW5jb2RlciA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKENvcmVJUEM6Ok1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNv
bnRleHRMZWdhY3lNZXNzYWdlOjpLaW5kPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgMCwg
c3luY1JlcXVlc3RJRCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKKyAgICBl
bmNvZGVyLT5lbmNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJv
ZHkpKTsKIAotICAgIHJldHVybkRhdGEgPSByZXR1cm5EYXRhVG1wOworICAgIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gV2ViUHJvY2Vzczo6c2hhcmVkKCku
Y29ubmVjdGlvbigpLT5zZW5kU3luY01lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKFdlYkNvbnRl
eHRMZWdhY3lNZXNzYWdlOjpQb3N0U3luY2hyb25vdXNNZXNzYWdlKSwgc3luY1JlcXVlc3RJRCwg
ZW5jb2Rlci5yZWxlYXNlKCksIENvcmVJUEM6OkNvbm5lY3Rpb246Ok5vVGltZW91dCk7CisgICAg
aWYgKCFyZXBseURlY29kZXIgfHwgIXJlcGx5RGVjb2Rlci0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkgeworICAgICAgICByZXR1cm5EYXRhID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIH0KIAogV2ViQ29ubmVjdGlvbiogSW5qZWN0ZWRCdW5kbGU6OndlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2VzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKaW5kZXggZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVl
NmM0MzM4ZTNjYTY1ZGZhMy4uNTM4MDA3ZDRmZWFjYTI1OWI3NmZkMjQ0YjU4OGNhNjc5Y2E0YTgz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlv
blRvVUlQcm9jZXNzLmNwcApAQCAtNTYsMTAgKzU2LDggQEAgdm9pZCBXZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3M6OmVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5j
b2QKIAogYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3Nh
Z2VCb2R5KQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIHRydWU7CisgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5KTsKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUobWVz
c2FnZUJvZHlEZWNvZGVyKTsKIH0KIAogLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMWFm
ZTNlMzI0YzEyNzdhNGQyM2FkM2IzM2FkOWZlZmIzODAxZmM1OS4uM2Q4NTgzZDhkYThlNmZiOGE5
NTE1MzFiNDkxYjg5MGE5YjgzNGI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTIyMiw3ICsxMjIyLDggQEAgdm9pZCBXZWJQYWdlOjpw
b3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIENvcmVJ
UEM6Ok1lc3MKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2Fn
ZUJvZHk7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RGVjb2RlcihtZXNzYWdlQm9keSkpKQorICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSk7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlQm9keURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbmplY3Rl
ZEJ1bmRsZS0+ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhpcywgbWVzc2FnZU5hbWUsIG1lc3Nh
Z2VCb2R5LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDQzZTdkNzAyMWNlMGE0ZTk2NGZhZjNiMzU2YWI1ZjZjNTAzOGRmNTAuLjg0NmE3YzJkMzNm
OTUzODQwNjZjNmUwYzFmNThhMzg3OGI2MTA3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTA1Niw3ICsxMDU2LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpw
b3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1l
c3NhZ2UKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJv
ZHk7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURl
Y29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2Rl
ciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHkpOworICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGluamVjdGVk
QnVuZGxlLT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169999</attachid>
            <date>2012-10-22 15:16:03 -0700</date>
            <delta_ts>2012-10-22 15:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100022-20121022151441.patch</filename>
            <type>text/plain</type>
            <size>35643</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhhYzIzODQ1MzJhNTAw
NjBhNTcwZTcwOTljOGJjODUzYjEwNzVmYi4uNDNmN2VhM2ViYzJlZWNkMWZkOGExNTUyOGMyNWU0
YmI0MmVkZTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9yZSBBcmd1bWVu
dCBjb2RlciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlIG92ZXJsb2FkIHRoYXQg
dGFrZXMgYSBjb25zdCByZWZlcmVuY2UgLSBpZiB0aGUgY2FsbCB0byBkZWNvZGUgZW5kcyB1cCBj
cmVhdGluZyBhIHRlbXBvcmFyeQorICAgICAgICB3ZSdsbCBlbmNvZGUgaW50byBpdCBhbmQgdGhl
biBkZXN0cm95IGl0LiBTaW5jZSB0aGlzIGRlY29kZSBvdmVybG9hZCB3YXMgbW9zdGx5IHVzZWQg
d2l0aCB0aGUgQ29yZUlQQzo6T3V0IGZ1bmN0aW9ucywgcmVtb3ZlIHRoZW0KKyAgICAgICAgKGFu
ZCBDb3JlSVBDOjpJbikgYXMgd2VsbC4gQ2xlYW4gdXAgYSBjb3VwbGUgb2YgQXJndW1lbnRDb2Rl
cnMgYXMgd2VsbC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb25uZWN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByaW50SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UHJp
bnRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0TWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVz
c2FnZUJvZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisKKzIwMTItMTAtMjIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBSZWdyZXNzaW9u
KHIxMzE5OTApOiBwbHVnaW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHkuaHRtbCBzdGFydGVk
IGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5OTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmMTZkN2M5MmY0NTU1YzA3M2NiNWEwN2M1ZWE2YzFkMmQ5ZjIwYjEyLi4w
ZjYwMTQyMjJiZTBjYWQxN2QzNjI0NWI1MGJmOWNmYTYwNzg1MWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMTMsNCArMjEz
LDQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKIAogfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQwogCi0jZW5kaWYgLy8gU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjZW5k
aWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggM2M4MWViMzc3ZjViMmUxNWRkYTIzOTljMjc0
MTUyOWMxYzI3OTdmNS4uYzFkNGI2ZTA1ZDZmOGY3OWE2NDc3OTU3OTgyOWQ4ZmQwYjQxMGI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCkBAIC05MCwxMyArOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcmd1bWVudENv
ZGVyPFQ+OjpkZWNvZGUodGhpcywgdCk7CiAgICAgfQogCi0gICAgLy8gVGhpcyBvdmVybG9hZCBl
eGlzdHMgc28gd2UgY2FuIHBhc3MgdGVtcG9yYXJpZXMgdG8gZGVjb2RlLiBJbiB0aGUgU3RhciBU
cmVrIGZ1dHVyZSwgaXQgCi0gICAgLy8gY2FuIHRha2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbnN0
ZWFkLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlKGNvbnN0IFQmIHQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZGVjb2RlKGNvbnN0X2Nhc3Q8VCY+KHQpKTsKLSAgICB9Ci0K
ICAgICBib29sIHJlbW92ZUF0dGFjaG1lbnQoQXR0YWNobWVudCYpOwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNWJk
NzU1MDJjODNjYmUzMWVmODE5ODVkY2IwOGNjNzc5NmY5MTE4Ny4uN2E1MzZiNmM3MjFlMjljZDNj
NmI3YzRmNzU1NjRmZDk1MzFhMzIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oCkBAIC0xMjEsMTYgKzEyMSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMxPFQxPiB7CiAgICAg
VDIgYXJndW1lbnQyOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBB
cmd1bWVudHMyPGNvbnN0IFQxJiwgY29uc3QgVDImPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MikKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzMjxjb25zdCBUMSYsIGNvbnN0IFQyJj4odDEs
IHQyKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBBcmd1bWVudHMy
PFQxJiwgVDImPiBPdXQoVDEmIHQxLCBUMiYgdDIpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czI8
VDEmLCBUMiY+KHQxLCB0Mik7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUMSwgVDI+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czM8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0xNjMsMTYgKzE1Myw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDog
QXJndW1lbnRzMjxUCiAgICAgVDMgYXJndW1lbnQzOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4gQXJndW1lbnRzMzxjb25zdCBUMSYsIGNvbnN0
IFQyJiwgY29uc3QgVDMmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyY+KHQxLCB0MiwgdDMpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzPiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+IE91dChUMSYgdDEsIFQy
JiB0MiwgVDMmIHQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+KHQx
LCB0MiwgdDMpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50czQgOiBBcmd1bWVudHMzPFQxLCBU
MiwgVDM+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czQ8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yMDYsMTYgKzE4Niw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
PiBzdHJ1Y3QgQXJndW1lbnRzNCA6CiAgICAgVDQgYXJndW1lbnQ0OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+IEFyZ3Vt
ZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmPiBJbihjb25z
dCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQpCi17Ci0g
ICAgcmV0dXJuIEFyZ3VtZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29u
c3QgVDQmPih0MSwgdDIsIHQzLCB0NCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBBcmd1bWVudHM0PFQxJiwgVDImLCBU
MyYsIFQ0Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCkKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzNDxUMSYsIFQyJiwgVDMmLCBUNCY+KHQxLCB0MiwgdDMsIHQ0KTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1PiBzdHJ1Y3QgQXJndW1lbnRzNSA6IEFyZ3VtZW50czQ8VDEsIFQyLCBU
MywgVDQ+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czU8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yNTAsMTYgKzIyMCw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNT4gc3RydWN0CiAgICAgVDUgYXJndW1lbnQ1OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1PiBBcmd1bWVudHM1PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0
IFQ0JiwgY29uc3QgVDUmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRz
NTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jj4o
dDEsIHQyLCB0MywgdDQsIHQ1KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PiBBcmd1bWVudHM1PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0
LCBUNSYgdDUpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czU8VDEmLCBUMiYsIFQzJiwgVDQmLCBU
NSY+KHQxLCB0MiwgdDMsIHQ0LCB0NSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUg
VDY+IHN0cnVjdCBBcmd1bWVudHM2IDogQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czY8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yOTUsMTYgKzI1NSw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwgdHlwZW5hCiAgICAgVDYgYXJndW1lbnQ2OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmFtZSBUNj4gQXJndW1lbnRzNjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYm
IHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0
NSwgdDYpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PiBBcmd1bWVudHM2PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBU
NCYgdDQsIFQ1JiB0NSwgVDYmIHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PFQxJiwgVDIm
LCBUMyYsIFQ0JiwgVDUmLCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4gc3RydWN0IEFyZ3VtZW50czcg
OiBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHsKICAgICB0eXBlZGVmIEFyZ3Vt
ZW50czc8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVy
ZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBX
VEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46
OlR5cGUsCkBAIC0zNDEsMTYgKzI5MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAg
VDcgYXJndW1lbnQ3OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDc+IEFyZ3VtZW50czc8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3Qg
VDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmPiBJbihjb25zdCBUMSYgdDEsIGNv
bnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29u
c3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czc8Y29uc3Qg
VDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2
JiwgY29uc3QgVDcmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PiBBcmd1bWVudHM3PFQxJiwgVDImLCBU
MyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0
NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NykKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzNzxUMSYs
IFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3
KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4PiBzdHJ1Y3QgQXJndW1lbnRzOCA6IEFyZ3VtZW50czc8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDc+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czg8dHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTM4NiwxNiArMzI2LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmEKICAgICBUOCBhcmd1bWVudDg7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFyZ3VtZW50czg8Y29uc3QgVDEmLCBjb25z
dCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3Qg
VDcmLCBjb25zdCBUOCY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyAm
dDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0
NywgY29uc3QgVDgmIHQ4KQotewotICAgIHJldHVybiBBcmd1bWVudHM4PGNvbnN0IFQxJiwgY29u
c3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0
IFQ3JiwgY29uc3QgVDgmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFy
Z3VtZW50czg8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCY+IE91dChUMSYg
dDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0
OCkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzODxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYm
LCBUNyYsIFQ4Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4KTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPiBzdHJ1Y3QgQXJndW1lbnRzMTAgOiBBcmd1bWVudHM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gewogICAgIHR5cGVkZWYgQXJndW1lbnRzMTA8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46
OlR5cGU+OjpUeXBlLAogICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RG
OjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTQzNywxNiArMzY3LDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICBUMTAgYXJndW1lbnQxMDsKIH07CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYg
dDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0
NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwgY29uc3QgVDEwJiB0
MTApCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czEwPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3Qg
VDgmLCBjb25zdCBUOSYsIGNvbnN0IFQxMCY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4gT3V0KFQx
JiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NywgVDgm
IHQ4LCBUOSYgdDksIFQxMCYgdDEwKQotewotICAgIHJldHVybiBBcmd1bWVudHMxMDxUMSYsIFQy
JiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
CiAKICNlbmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiNDM4MDc0MDkwNjQ2ODU1NzdmNjkzNTc5YWFhZWRkNDFh
ODI3MGY2Li4zZWMyODIzNDE3MDhhNzY4OTkyNmQxNTg1ZWEwMGExYjg1YzJhMDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTkzLDYgKzE5
Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZVN5
bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCk7CiAgICAgYm9vbCBzZW5kTWVzc2FnZShNZXNzYWdlSUQsIFBhc3NP
d25QdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7Cisg
ICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwg
dWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4sIGRvdWJs
ZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAgICAgYm9vbCBzZW5kU3lu
Y1JlcGx5KFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+KTsKIAogICAgIC8vIEZJWE1FOiBUaGVz
ZSB2YXJpYW50cyBvZiBzZW5kLCBzZW5kU3luYyBhbmQgd2FpdEZvciBhcmUgYWxsIGRlcHJlY2F0
ZWQuCkBAIC0yNTQsNyArMjU1LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBQYXNzT3duUHRyPE1l
c3NhZ2VEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0
aW9uSUQsIGRvdWJsZSB0aW1lb3V0KTsKICAgICAKLSAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNv
ZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwgZG91YmxlIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNT
ZW5kRmxhZ3MgPSAwKTsKICAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yU3lu
Y1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBz
eW5jU2VuZEZsYWdzKTsKIAogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiB3b3JrIHF1
ZXVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cAppbmRleCAzMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4Li40MDE5YThk
ODU3OWU3OThhZDNhMmNiNTA3NjFjOWQ3NzU3ODRjNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29s
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBtYWNoUG9ydDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpP
dXQobWFjaFBvcnQpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShtYWNoUG9ydCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBoYW5kbGUubV9zaXplID0gc2l6ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1ByaW50SW5mby5jcHAKaW5kZXggY2UxMTkzNWFkNjhiNWUyMzk3NjQxNmQxNjZm
M2Y5OTIzYzJlYTI5OC4uMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQ1LDcgKzQ1LDEwIEBAIFByaW50
SW5mbzo6UHJpbnRJbmZvKCkKIAogdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJ
UEM6OkluKHBhZ2VTZXR1cFNjYWxlRmFjdG9yLCBhdmFpbGFibGVQYXBlcldpZHRoLCBhdmFpbGFi
bGVQYXBlckhlaWdodCkpOworICAgIGVuY29kZXItPmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rv
cik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVyV2lkdGgpOworICAgIGVuY29k
ZXItPmVuY29kZShhdmFpbGFibGVQYXBlckhlaWdodCk7CisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByaW50U2V0dGluZ3MuZ2V0KCkpOwogICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBwYWdlU2V0dXAuZ2V0KCkpOwpAQCAtNTQsNyArNTcsMTEg
QEAgdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgUHJpbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQcmludEluZm8mIGluZm8pCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IsIGluZm8uYXZhaWxhYmxl
UGFwZXJXaWR0aCwgaW5mby5hdmFpbGFibGVQYXBlckhlaWdodCkpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlcldpZHRoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8uYXZh
aWxhYmxlUGFwZXJIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9S
TShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAKaW5kZXggMWViMWM0OTViMjg0OTJmNWY3MmFhNjcyOTVhYWFmYzRiNGJkMzA5Zi4uOTAx
Y2U5YzQ3ZjFjNWQzM2JjYzE2ZmJiY2EwNGQyNGM5ZTgzMDE3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtMTA2LDI5ICsxMDYs
NDggQEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUElPYmplY3Qq
IHVzZXJEYXRhKQogICAgIAogdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90eXBlKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fYWN0aW9uKSwgbV90aXRsZSwgbV9jaGVja2VkLCBtX2VuYWJsZWQsIG1f
c3VibWVudSkpOworICAgIGVuY29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKG1fYWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV90aXRsZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2hlY2tlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZW5h
YmxlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3VibWVudSk7CiB9CiAKIGJvb2wgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKLSAgICB1aW50MzJfdCB0eXBlOwot
ICAgIHVpbnQzMl90IGFjdGlvbjsKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKGFjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIFN0cmluZyB0aXRsZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0aXRsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY2hlY2tlZDsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShjaGVja2VkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBlbmFi
bGVkOwotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBzdWJtZW51OworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGVuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodHlwZSwgYWN0aW9uLCB0aXRsZSwg
Y2hlY2tlZCwgZW5hYmxlZCwgc3VibWVudSkpKQorICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0
ZW1EYXRhPiBzdWJtZW51OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN1Ym1lbnUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNv
cmU6OkFjdGlvblR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlOgogICAgIGNh
c2UgV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZToKLSAgICAgICAgaXRlbSA9IFdlYkNvbnRl
eHRNZW51SXRlbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4o
dHlwZSksIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0
aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7CisgICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhKHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVuYWJsZWQsIGNoZWNrZWQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlN1Ym1lbnVUeXBlOgotICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bj4oYWN0aW9uKSwgdGl0bGUsIGVuYWJsZWQsIHN1Ym1lbnUpOworICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShhY3Rpb24sIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA4ZWRjM2ZkMzU4NjQ4MjFhMjhjN2Q0
YmE3OWMyOGNjYWZkZTgzNTBiLi43MGJmZmEyYzFlODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYw
NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTQ4LDEyICs0OCwyMCBAQCBX
ZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQogCiB2b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3R5cGUsIG1fbW9kaWZpZXJzLCBtX3RpbWVzdGFtcCkpOworICAgIGVuY29kZXItPmVuY29kZSht
X3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX21vZGlmaWVycyk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdGltZXN0YW1wKTsKIH0KIAotYm9vbCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViRXZlbnQmIHQpCitib29sIFdlYkV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHQubV90eXBlLCB0
Lm1fbW9kaWZpZXJzLCB0Lm1fdGltZXN0YW1wKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQubV9tb2RpZmllcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdGltZXN0YW1wKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggYzllMzZmYTM3ZDA3OGIyNjJlNzM3ZDQ4ZGYzNTZlZjgwOWEyZWI0OS4uNzdkNTI0Y2Y0
YzQ3N2E4ZDEwZjQxMDc0ZDFlMTU4NzE1ZDBiZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtNTMsMTUgKzUzLDEyIEBAIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1
ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFj
eSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworICAgIENvcmVJUEM6OlNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVy
LCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKIHsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRp
dHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0
YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CisgICAgcmV0dXJu
IENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0
YT46OmRlY29kZShkZWNvZGVyLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggN2FhN2RmZjIzMTQzMDZi
ZTUwZjkxZTRmZTkxMTFmODgyNThjZTA1NC4uMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0
MDdjYzVmNzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAt
ODIsMjUgKzgyLDQ0IEBAIHZvaWQgV2ViTW91c2VFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29k
ZXIpOwogCisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fYnV0dG9uKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9wb3NpdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVs
dGFZKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVopOworICAgIGVuY29kZXItPmVuY29k
ZShtX2NsaWNrQ291bnQpOworCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIEluY2x1ZGUgbV9k
aWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQ
Qzo6SW4obV9idXR0b24sIG1fcG9zaXRpb24sIG1fZ2xvYmFsUG9zaXRpb24sIG1fZGVsdGFYLCBt
X2RlbHRhWSwgbV9kZWx0YVosIG1fY2xpY2tDb3VudCwgbV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsK
LSNlbHNlCi0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fYnV0dG9uLCBtX3Bvc2l0
aW9uLCBtX2dsb2JhbFBvc2l0aW9uLCBtX2RlbHRhWCwgbV9kZWx0YVksIG1fZGVsdGFaLCBtX2Ns
aWNrQ291bnQpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kaWRBY3RpdmF0ZVdlYlZpZXcpOwog
I2VuZGlmCiB9CiAKLWJvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYgdCkKK2Jvb2wgV2ViTW91c2VFdmVudDo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYg
cmVzdWx0KQogewotICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCB0KSkKKyAgICBp
ZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fYnV0dG9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5tX2dsb2JhbFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RlbHRhWCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0YVkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGVsdGFaKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2Ns
aWNrQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oV0lOKQotICAg
IC8vIEluY2x1ZGUgbV9kaWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICByZXR1cm4g
ZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fYnV0dG9uLCB0Lm1fcG9zaXRpb24sIHQu
bV9nbG9iYWxQb3NpdGlvbiwgdC5tX2RlbHRhWCwgdC5tX2RlbHRhWSwgdC5tX2RlbHRhWiwgdC5t
X2NsaWNrQ291bnQsIHQubV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodC5tX2J1dHRvbiwgdC5tX3Bvc2l0aW9uLCB0
Lm1fZ2xvYmFsUG9zaXRpb24sIHQubV9kZWx0YVgsIHQubV9kZWx0YVksIHQubV9kZWx0YVosIHQu
bV9jbGlja0NvdW50KSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGlkQWN0
aXZhdGVXZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJNb3VzZUV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKFR5cGUg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNo
UG9pbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5j
cHAKaW5kZXggZDg2ZmM3YWVmNzZhYjJlY2JhMDU3OTBiMGE2MmMxNjgyNTdkZTkxZC4uMzkwMjZl
MGY1YzhjYWNlZDdlNmIwMTg1YThiYzAxNGRjMmNmMGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTU5LDEyICs1OSwzMyBAQCBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZCwg
VG91Y2hQb2ludFN0YXRlIHN0YXRlLAogCiB2b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9pZCwgbV9zdGF0ZSwgbV9zY3JlZW5Qb3NpdGlvbiwg
bV9wb3NpdGlvbiwgbV9yYWRpdXMsIG1fcm90YXRpb25BbmdsZSwgbV9mb3JjZSkpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9zdGF0ZSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOworICAgIGVuY29kZXItPmVuY29kZSht
X3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9yYWRpdXMpOworICAgIGVuY29kZXIt
PmVuY29kZShtX3JvdGF0aW9uQW5nbGUpOworICAgIGVuY29kZXItPmVuY29kZShtX2ZvcmNlKTsK
IH0KIAotYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgdCkKK2Jvb2wgV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gZGVjb2Rlci0+
ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1faWQsIHQubV9zdGF0ZSwgdC5tX3NjcmVlblBvc2l0aW9u
LCB0Lm1fcG9zaXRpb24sIHQubV9yYWRpdXMsIHQubV9yb3RhdGlvbkFuZ2xlLCB0Lm1fZm9yY2Up
KTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9pZCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zdGF0ZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zY3Jl
ZW5Qb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXN1bHQubV9wb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQubV9yYWRpdXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fcm90YXRpb25BbmdsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9mb3Jj
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKaW5k
ZXggYzIxNWYzNTY4MWJlMzk1ZGY2OTY4ZTBkNjE3NTM5MjgwNWIzMDQyNC4uMDdhMjllNDE2OTY2
MmMwOGZkMGFjMmU2MDkxMDVmYjU1MTUzOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBv
cHVwSXRlbS5jcHAKQEAgLTY4LDI5ICs2OCw1NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRl
bShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZQog
CiB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fdHlwZSksIG1fdGV4dCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdGV4
dERpcmVjdGlvbiksIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBtX3Rvb2xUaXAsIG1fYWNj
ZXNzaWJpbGl0eVRleHQsIG1faXNFbmFibGVkLCBtX2lzTGFiZWwpKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoQ29yZUlQQzo6SW4obV9pc1NlbGVjdGVkKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51
bShtX3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXItPmVu
Y29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOworICAg
IGVuY29kZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29sIFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVt
KQogewotICAgIHVpbnQzMl90IHR5cGU7CisgICAgVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgU3RyaW5n
IHRleHQ7Ci0gICAgdWludDY0X3QgdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFRleHREaXJlY3Rp
b24gdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odGV4dERpcmVj
dGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzVGV4dERpcmVjdGlv
bk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlwOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHRvb2xUaXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBTdHJpbmcgYWNjZXNzaWJpbGl0eVRleHQ7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
YWNjZXNzaWJpbGl0eVRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGlz
RW5hYmxlZDsKLSAgICBib29sIGlzTGFiZWw7Ci0gICAgYm9vbCBpc1NlbGVjdGVkOworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGlzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCB0ZXh0LCB0ZXh0RGly
ZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlU
ZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkKKyAgICBib29sIGlzTGFiZWw7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNMYWJlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpc1NlbGVjdGVkKSkpCisgICAgYm9vbCBp
c1NlbGVjdGVkOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzU2VsZWN0ZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHN0YXRpY19jYXN0PFR5
cGU+KHR5cGUpLCB0ZXh0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9u
KSwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwg
aXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAgICBpdGVtID0gV2ViUG9wdXBJdGVt
KHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgdG9v
bFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJUb3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50
LmNwcAppbmRleCAwNWQ3Y2QyNTQ3N2MxMzU1Y2ExMThlZjdjNjU0YWE3ZGEzZWU4YjIwLi45MzU5
YmUwNGM0ODU4NmM3MzQwMGQwYzMxOTIxOGQyNjdjNzdhNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlRvdWNoRXZlbnQuY3BwCkBAIC00NCwxNSArNDQsMTggQEAgdm9pZCBXZWJUb3VjaEV2
ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewog
ICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4obV90b3VjaFBvaW50cykpOworICAgIGVuY29kZXItPmVuY29kZShtX3RvdWNoUG9p
bnRzKTsKIH0KIAotYm9vbCBXZWJUb3VjaEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiB0KQorYm9vbCBXZWJUb3VjaEV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiBy
ZXN1bHQpCiB7Ci0gICAgaWYgKCFXZWJFdmVudDo6ZGVjb2RlKGRlY29kZXIsIHQpKQorICAgIGlm
ICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fdG91Y2hQ
b2ludHMpKTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV90b3VjaFBvaW50KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgV2Vi
VG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
ZmY0M2IzNDExNjU4Y2NlMjYyNWRjOTcwMmY0Y2FjZjdlMjJmYTM4YS4uNjIwMjYwOGJkYTE2Njlk
OWVkM2E0ODVhNTg3NzMwNTVkOTQ4M2RmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTksNyArNTksOSBA
QCB2b2lkIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuY29kZU1lc3NhZ2VCb2R5KENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jbwogCiBib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VCb2R5KQogewotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9jZXNzKSkp
CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIobWVz
c2FnZUJvZHksIG1fcHJvY2Vzcyk7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VC
b2R5RGVjb2RlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDE0YTljZTc4NzVjMmY3
OWEyODVmYzJlOTUxZGNiOWQzNzkzNDI1ZGUuLjZiYmQ1MTUxZGY4MjNhYmUxMDAxYmYzNDdiNzFl
MDM2MDIwMWU4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAg
LTgyMywxMCArODIzLDEyIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIGNhc2Ug
V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOiB7CiAgICAgICAgICAgICBTdHJp
bmcgbWVzc2FnZU5hbWU7CiAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9k
eTsKLSAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIobWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlv
bikpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2Fn
ZU5hbWUsIG1lc3NhZ2VEZWNvZGVyKSkpCisgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5
Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1lc3NhZ2VOYW1lKSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0KKyAgICAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJvZHlEZWNvZGVyKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAKICAgICAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTg1Niw4ICs4NTgsMTAgQEAgdm9pZCBXZWJD
b250ZXh0OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzoKIAogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAg
ICAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgICAgICAgICBXZWJDb250
ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9j
ZXNzUHJveHk6OmZyb21Db25uZWN0aW9uKGNvbm5lY3Rpb24pKTsKLSAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2Rlcikp
KQorICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURl
Y29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVj
dGlvbikpOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlTmFtZSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSht
ZXNzYWdlQm9keURlY29kZXIpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gcmV0dXJuRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5k
ZXggNDU4YjFjMTY5Y2MxYzk3MTE5MjI2ZTMzYmQzOTdmNDU1NzMyZTg1NS4uNGQwYWE1NmEzZGI3
MmI2NmEyYTI1YmEyOTU4ZjEzNjliNTNjYTI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAg
LTkzLDIwICs5MywyNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjppbml0aWFsaXplQ2xpZW50KFdL
QnVuZGxlQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZHkpCiB7Ci0g
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZChXZWJD
b250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2UsIDAsIENvcmVJUEM6OkluKG1lc3NhZ2VO
YW1lLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpKTsKKyAg
ICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcjo6Y3JlYXRlKENvcmVJUEM6Ok1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNvbnRleHRM
ZWdhY3lNZXNzYWdlOjpLaW5kPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgMCk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoSW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKTsKKworICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZE1lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlE
KFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0TWVzc2FnZSksIGVuY29kZXIucmVsZWFzZSgp
KTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdFN5bmNocm9ub3VzTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5LCBSZWZQdHI8QVBJ
T2JqZWN0PiYgcmV0dXJuRGF0YSkKIHsKLSAgICBSZWZQdHI8QVBJT2JqZWN0PiByZXR1cm5EYXRh
VG1wOwotICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVy
KHJldHVybkRhdGFUbXApOwotICAgIAotICAgIGJvb2wgc3VjY2VlZGVkID0gV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZFN5bmMoV2ViQ29udGV4dExlZ2Fj
eU1lc3NhZ2U6OlBvc3RTeW5jaHJvbm91c01lc3NhZ2UsIDAsIENvcmVJUEM6OkluKG1lc3NhZ2VO
YW1lLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpLCBDb3Jl
SVBDOjpPdXQobWVzc2FnZURlY29kZXIpKTsKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2RlcihyZXR1cm5EYXRhKTsKIAotICAgIGlmICghc3VjY2VlZGVk
KQotICAgICAgICByZXR1cm47CisgICAgdWludDY0X3Qgc3luY1JlcXVlc3RJRDsKKyAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb25uZWN0aW9uKCktPmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihDb3JlSVBDOjpNZXNzYWdl
S2luZFRyYWl0czxXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6S2luZD46Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgIiIsIDAsIHN5bmNSZXF1ZXN0SUQpOworICAgIGVuY29kZXItPmVuY29kZShtZXNz
YWdlTmFtZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiAKLSAgICByZXR1cm5EYXRhID0gcmV0dXJuRGF0YVRtcDsK
KyAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZURlY29kZXI+IHJlcGx5RGVjb2RlciA9IFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNNZXNzYWdlKENvcmVJUEM6Ok1l
c3NhZ2VJRChXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdFN5bmNocm9ub3VzTWVzc2FnZSks
IHN5bmNSZXF1ZXN0SUQsIGVuY29kZXIucmVsZWFzZSgpLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpO
b1RpbWVvdXQpOworICAgIGlmICghcmVwbHlEZWNvZGVyIHx8ICFyZXBseURlY29kZXItPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpIHsKKyAgICAgICAgcmV0dXJuRGF0YSA9IG51bGxwdHI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiB9CiAKIFdlYkNvbm5lY3Rpb24qIEluamVjdGVkQnVuZGxlOjp3
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCmluZGV4IGUzOWJhMzlk
MjBlNjY2NTQyZTg3N2RlZTZjNDMzOGUzY2E2NWRmYTMuLjUzODAwN2Q0ZmVhY2EyNTliNzZmZDI0
NGI1ODhjYTY3OWNhNGE4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKQEAgLTU2LDEwICs1Niw4IEBAIHZvaWQg
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kCiAKIGJvb2wgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNv
ZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxB
UElPYmplY3Q+JiBtZXNzYWdlQm9keSkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKEluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSk7CisgICAgcmV0dXJuIGRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2Rlcik7CiB9CiAKIC8vIENvcmVJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDFhZmUzZTMyNGMxMjc3YTRkMjNhZDNiMzNhZDlmZWZiMzgwMWZjNTkuLjNk
ODU4M2Q4ZGE4ZTZmYjhhOTUxNTMxYjQ5MWI4OTBhOWI4MzRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMjIsNyArMTIyMiw4IEBA
IHZvaWQgV2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBDb3JlSVBDOjpNZXNzCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxB
UElPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHkpOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJvZHlEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaW5qZWN0ZWRCdW5kbGUtPmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKHRoaXMsIG1l
c3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCA0M2U3ZDcwMjFjZTBhNGU5NjRmYWYzYjM1NmFiNWY2YzUwMzhk
ZjUwLi44NDZhN2MyZDMzZjk1Mzg0MDY2YzZlMGMxZjU4YTM4NzhiNjEwN2IyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEwNTYsNyArMTA1Niw4IEBAIHZv
aWQgV2ViUHJvY2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpE
YXRhUmVmZXJlbmNlJiBtZXNzYWdlCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxBUElP
YmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKEluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgSW5qZWN0ZWRCdW5kbGVV
c2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5KTsKKyAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShtZXNzYWdlQm9keURlY29kZXIpKQogICAgICAgICByZXR1cm47
CiAKICAgICBpbmplY3RlZEJ1bmRsZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZU5hbWUsIG1l
c3NhZ2VCb2R5LmdldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170001</attachid>
            <date>2012-10-22 15:36:13 -0700</date>
            <delta_ts>2012-10-22 16:22:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100022-20121022153451.patch</filename>
            <type>text/plain</type>
            <size>35644</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhhYzIzODQ1MzJhNTAw
NjBhNTcwZTcwOTljOGJjODUzYjEwNzVmYi4uNDNmN2VhM2ViYzJlZWNkMWZkOGExNTUyOGMyNWU0
YmI0MmVkZTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9yZSBBcmd1bWVu
dCBjb2RlciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlIG92ZXJsb2FkIHRoYXQg
dGFrZXMgYSBjb25zdCByZWZlcmVuY2UgLSBpZiB0aGUgY2FsbCB0byBkZWNvZGUgZW5kcyB1cCBj
cmVhdGluZyBhIHRlbXBvcmFyeQorICAgICAgICB3ZSdsbCBlbmNvZGUgaW50byBpdCBhbmQgdGhl
biBkZXN0cm95IGl0LiBTaW5jZSB0aGlzIGRlY29kZSBvdmVybG9hZCB3YXMgbW9zdGx5IHVzZWQg
d2l0aCB0aGUgQ29yZUlQQzo6T3V0IGZ1bmN0aW9ucywgcmVtb3ZlIHRoZW0KKyAgICAgICAgKGFu
ZCBDb3JlSVBDOjpJbikgYXMgd2VsbC4gQ2xlYW4gdXAgYSBjb3VwbGUgb2YgQXJndW1lbnRDb2Rl
cnMgYXMgd2VsbC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb25uZWN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByaW50SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UHJp
bnRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0TWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVz
c2FnZUJvZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisKKzIwMTItMTAtMjIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBSZWdyZXNzaW9u
KHIxMzE5OTApOiBwbHVnaW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHkuaHRtbCBzdGFydGVk
IGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5OTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmMTZkN2M5MmY0NTU1YzA3M2NiNWEwN2M1ZWE2YzFkMmQ5ZjIwYjEyLi4w
ZjYwMTQyMjJiZTBjYWQxN2QzNjI0NWI1MGJmOWNmYTYwNzg1MWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMTMsNCArMjEz
LDQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKIAogfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQwogCi0jZW5kaWYgLy8gU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjZW5k
aWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggM2M4MWViMzc3ZjViMmUxNWRkYTIzOTljMjc0
MTUyOWMxYzI3OTdmNS4uYzFkNGI2ZTA1ZDZmOGY3OWE2NDc3OTU3OTgyOWQ4ZmQwYjQxMGI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCkBAIC05MCwxMyArOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcmd1bWVudENv
ZGVyPFQ+OjpkZWNvZGUodGhpcywgdCk7CiAgICAgfQogCi0gICAgLy8gVGhpcyBvdmVybG9hZCBl
eGlzdHMgc28gd2UgY2FuIHBhc3MgdGVtcG9yYXJpZXMgdG8gZGVjb2RlLiBJbiB0aGUgU3RhciBU
cmVrIGZ1dHVyZSwgaXQgCi0gICAgLy8gY2FuIHRha2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbnN0
ZWFkLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlKGNvbnN0IFQmIHQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZGVjb2RlKGNvbnN0X2Nhc3Q8VCY+KHQpKTsKLSAgICB9Ci0K
ICAgICBib29sIHJlbW92ZUF0dGFjaG1lbnQoQXR0YWNobWVudCYpOwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNWJk
NzU1MDJjODNjYmUzMWVmODE5ODVkY2IwOGNjNzc5NmY5MTE4Ny4uN2E1MzZiNmM3MjFlMjljZDNj
NmI3YzRmNzU1NjRmZDk1MzFhMzIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oCkBAIC0xMjEsMTYgKzEyMSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMxPFQxPiB7CiAgICAg
VDIgYXJndW1lbnQyOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBB
cmd1bWVudHMyPGNvbnN0IFQxJiwgY29uc3QgVDImPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MikKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzMjxjb25zdCBUMSYsIGNvbnN0IFQyJj4odDEs
IHQyKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBBcmd1bWVudHMy
PFQxJiwgVDImPiBPdXQoVDEmIHQxLCBUMiYgdDIpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czI8
VDEmLCBUMiY+KHQxLCB0Mik7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUMSwgVDI+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czM8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0xNjMsMTYgKzE1Myw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDog
QXJndW1lbnRzMjxUCiAgICAgVDMgYXJndW1lbnQzOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4gQXJndW1lbnRzMzxjb25zdCBUMSYsIGNvbnN0
IFQyJiwgY29uc3QgVDMmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyY+KHQxLCB0MiwgdDMpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzPiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+IE91dChUMSYgdDEsIFQy
JiB0MiwgVDMmIHQzKQotewotICAgIHJldHVybiBBcmd1bWVudHMzPFQxJiwgVDImLCBUMyY+KHQx
LCB0MiwgdDMpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50czQgOiBBcmd1bWVudHMzPFQxLCBU
MiwgVDM+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czQ8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yMDYsMTYgKzE4Niw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
PiBzdHJ1Y3QgQXJndW1lbnRzNCA6CiAgICAgVDQgYXJndW1lbnQ0OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+IEFyZ3Vt
ZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmPiBJbihjb25z
dCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQpCi17Ci0g
ICAgcmV0dXJuIEFyZ3VtZW50czQ8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29u
c3QgVDQmPih0MSwgdDIsIHQzLCB0NCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBBcmd1bWVudHM0PFQxJiwgVDImLCBU
MyYsIFQ0Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCkKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzNDxUMSYsIFQyJiwgVDMmLCBUNCY+KHQxLCB0MiwgdDMsIHQ0KTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1PiBzdHJ1Y3QgQXJndW1lbnRzNSA6IEFyZ3VtZW50czQ8VDEsIFQyLCBU
MywgVDQ+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czU8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25z
dDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yNTAsMTYgKzIyMCw2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNT4gc3RydWN0CiAgICAgVDUgYXJndW1lbnQ1OwogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1PiBBcmd1bWVudHM1PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0
IFQ0JiwgY29uc3QgVDUmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMg
JnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRz
NTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jj4o
dDEsIHQyLCB0MywgdDQsIHQ1KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PiBBcmd1bWVudHM1PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0
LCBUNSYgdDUpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czU8VDEmLCBUMiYsIFQzJiwgVDQmLCBU
NSY+KHQxLCB0MiwgdDMsIHQ0LCB0NSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUg
VDY+IHN0cnVjdCBBcmd1bWVudHM2IDogQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czY8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUsCkBAIC0yOTUsMTYgKzI1NSw2IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwgdHlwZW5hCiAgICAgVDYgYXJndW1lbnQ2OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmFtZSBUNj4gQXJndW1lbnRzNjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmPiBJbihjb25zdCBUMSYgdDEsIGNvbnN0IFQy
JiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYm
IHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0
NSwgdDYpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PiBBcmd1bWVudHM2PFQx
JiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBU
NCYgdDQsIFQ1JiB0NSwgVDYmIHQ2KQotewotICAgIHJldHVybiBBcmd1bWVudHM2PFQxJiwgVDIm
LCBUMyYsIFQ0JiwgVDUmLCBUNiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4gc3RydWN0IEFyZ3VtZW50czcg
OiBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHsKICAgICB0eXBlZGVmIEFyZ3Vt
ZW50czc8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVy
ZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBX
VEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46
OlR5cGUsCkBAIC0zNDEsMTYgKzI5MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAg
VDcgYXJndW1lbnQ3OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDc+IEFyZ3VtZW50czc8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3Qg
VDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmPiBJbihjb25zdCBUMSYgdDEsIGNv
bnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29u
c3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czc8Y29uc3Qg
VDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2
JiwgY29uc3QgVDcmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PiBBcmd1bWVudHM3PFQxJiwgVDImLCBU
MyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0
NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NykKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzNzxUMSYs
IFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3
KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4PiBzdHJ1Y3QgQXJndW1lbnRzOCA6IEFyZ3VtZW50czc8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDc+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czg8dHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAogICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTM4NiwxNiArMzI2LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmEKICAgICBUOCBhcmd1bWVudDg7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFyZ3VtZW50czg8Y29uc3QgVDEmLCBjb25z
dCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3Qg
VDcmLCBjb25zdCBUOCY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyAm
dDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0
NywgY29uc3QgVDgmIHQ4KQotewotICAgIHJldHVybiBBcmd1bWVudHM4PGNvbnN0IFQxJiwgY29u
c3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0
IFQ3JiwgY29uc3QgVDgmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IEFy
Z3VtZW50czg8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCY+IE91dChUMSYg
dDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0
OCkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzODxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYm
LCBUNyYsIFQ4Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4KTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPiBzdHJ1Y3QgQXJndW1lbnRzMTAgOiBBcmd1bWVudHM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gewogICAgIHR5cGVkZWYgQXJndW1lbnRzMTA8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46
OlR5cGU+OjpUeXBlLAogICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RG
OjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKQEAgLTQzNywxNiArMzY3LDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICBUMTAgYXJndW1lbnQxMDsKIH07CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYg
dDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0
NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwgY29uc3QgVDEwJiB0
MTApCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czEwPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25z
dCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3Qg
VDgmLCBjb25zdCBUOSYsIGNvbnN0IFQxMCY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4gT3V0KFQx
JiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3JiB0NywgVDgm
IHQ4LCBUOSYgdDksIFQxMCYgdDEwKQotewotICAgIHJldHVybiBBcmd1bWVudHMxMDxUMSYsIFQy
JiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
CiAKICNlbmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiNDM4MDc0MDkwNjQ2ODU1NzdmNjkzNTc5YWFhZWRkNDFh
ODI3MGY2Li4zZWMyODIzNDE3MDhhNzY4OTkyNmQxNTg1ZWEwMGExYjg1YzJhMDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTkzLDYgKzE5
Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZVN5
bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCk7CiAgICAgYm9vbCBzZW5kTWVzc2FnZShNZXNzYWdlSUQsIFBhc3NP
d25QdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7Cisg
ICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwg
dWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4sIGRvdWJs
ZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAgICAgYm9vbCBzZW5kU3lu
Y1JlcGx5KFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+KTsKIAogICAgIC8vIEZJWE1FOiBUaGVz
ZSB2YXJpYW50cyBvZiBzZW5kLCBzZW5kU3luYyBhbmQgd2FpdEZvciBhcmUgYWxsIGRlcHJlY2F0
ZWQuCkBAIC0yNTQsNyArMjU1LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBQYXNzT3duUHRyPE1l
c3NhZ2VEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0
aW9uSUQsIGRvdWJsZSB0aW1lb3V0KTsKICAgICAKLSAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNv
ZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwgZG91YmxlIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNT
ZW5kRmxhZ3MgPSAwKTsKICAgICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yU3lu
Y1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBz
eW5jU2VuZEZsYWdzKTsKIAogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiB3b3JrIHF1
ZXVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cAppbmRleCAzMzgxOTIyNDA1MDA5OWE1MTAzMjc0YWQ0MTg4NWMyNjBkMjA3MTY4Li40MDE5YThk
ODU3OWU3OThhZDNhMmNiNTA3NjFjOWQ3NzU3ODRjNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29s
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBtYWNoUG9ydDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpP
dXQobWFjaFBvcnQpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShtYWNoUG9ydCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBoYW5kbGUubV9zaXplID0gc2l6ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1ByaW50SW5mby5jcHAKaW5kZXggY2UxMTkzNWFkNjhiNWUyMzk3NjQxNmQxNjZm
M2Y5OTIzYzJlYTI5OC4uMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQ1LDcgKzQ1LDEwIEBAIFByaW50
SW5mbzo6UHJpbnRJbmZvKCkKIAogdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJ
UEM6OkluKHBhZ2VTZXR1cFNjYWxlRmFjdG9yLCBhdmFpbGFibGVQYXBlcldpZHRoLCBhdmFpbGFi
bGVQYXBlckhlaWdodCkpOworICAgIGVuY29kZXItPmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rv
cik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVyV2lkdGgpOworICAgIGVuY29k
ZXItPmVuY29kZShhdmFpbGFibGVQYXBlckhlaWdodCk7CisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByaW50U2V0dGluZ3MuZ2V0KCkpOwogICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBwYWdlU2V0dXAuZ2V0KCkpOwpAQCAtNTQsNyArNTcsMTEg
QEAgdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgUHJpbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQcmludEluZm8mIGluZm8pCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IsIGluZm8uYXZhaWxhYmxl
UGFwZXJXaWR0aCwgaW5mby5hdmFpbGFibGVQYXBlckhlaWdodCkpKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlcldpZHRoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8uYXZh
aWxhYmxlUGFwZXJIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9S
TShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAKaW5kZXggMWViMWM0OTViMjg0OTJmNWY3MmFhNjcyOTVhYWFmYzRiNGJkMzA5Zi4uOTAx
Y2U5YzQ3ZjFjNWQzM2JjYzE2ZmJiY2EwNGQyNGM5ZTgzMDE3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtMTA2LDI5ICsxMDYs
NDggQEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUElPYmplY3Qq
IHVzZXJEYXRhKQogICAgIAogdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90eXBlKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fYWN0aW9uKSwgbV90aXRsZSwgbV9jaGVja2VkLCBtX2VuYWJsZWQsIG1f
c3VibWVudSkpOworICAgIGVuY29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKG1fYWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV90aXRsZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2hlY2tlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZW5h
YmxlZCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3VibWVudSk7CiB9CiAKIGJvb2wgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKLSAgICB1aW50MzJfdCB0eXBlOwot
ICAgIHVpbnQzMl90IGFjdGlvbjsKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKGFjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIFN0cmluZyB0aXRsZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0aXRsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY2hlY2tlZDsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShjaGVja2VkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBlbmFi
bGVkOwotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBzdWJtZW51OworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGVuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodHlwZSwgYWN0aW9uLCB0aXRsZSwg
Y2hlY2tlZCwgZW5hYmxlZCwgc3VibWVudSkpKQorICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0
ZW1EYXRhPiBzdWJtZW51OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN1Ym1lbnUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNv
cmU6OkFjdGlvblR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlOgogICAgIGNh
c2UgV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZToKLSAgICAgICAgaXRlbSA9IFdlYkNvbnRl
eHRNZW51SXRlbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4o
dHlwZSksIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihhY3Rpb24pLCB0
aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7CisgICAgICAgIGl0ZW0gPSBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhKHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVuYWJsZWQsIGNoZWNrZWQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlN1Ym1lbnVUeXBlOgotICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bj4oYWN0aW9uKSwgdGl0bGUsIGVuYWJsZWQsIHN1Ym1lbnUpOworICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShhY3Rpb24sIHRpdGxlLCBlbmFibGVkLCBzdWJtZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA4ZWRjM2ZkMzU4NjQ4MjFhMjhjN2Q0
YmE3OWMyOGNjYWZkZTgzNTBiLi43MGJmZmEyYzFlODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYw
NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTQ4LDEyICs0OCwyMCBAQCBX
ZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQogCiB2b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3R5cGUsIG1fbW9kaWZpZXJzLCBtX3RpbWVzdGFtcCkpOworICAgIGVuY29kZXItPmVuY29kZSht
X3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX21vZGlmaWVycyk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdGltZXN0YW1wKTsKIH0KIAotYm9vbCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViRXZlbnQmIHQpCitib29sIFdlYkV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHQubV90eXBlLCB0
Lm1fbW9kaWZpZXJzLCB0Lm1fdGltZXN0YW1wKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQubV9tb2RpZmllcnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdGltZXN0YW1wKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggYzllMzZmYTM3ZDA3OGIyNjJlNzM3ZDQ4ZGYzNTZlZjgwOWEyZWI0OS4uNzdkNTI0Y2Y0
YzQ3N2E4ZDEwZjQxMDc0ZDFlMTU4NzE1ZDBiZDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtNTMsMTUgKzUzLDEyIEBAIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1
ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFj
eSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworICAgIENvcmVJUEM6OlNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVy
LCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKIHsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRp
dHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0
YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CisgICAgcmV0dXJu
IENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0
YT46OmRlY29kZShkZWNvZGVyLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggN2FhN2RmZjIzMTQzMDZi
ZTUwZjkxZTRmZTkxMTFmODgyNThjZTA1NC4uMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0
MDdjYzVmNzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAt
ODIsMjUgKzgyLDQ0IEBAIHZvaWQgV2ViTW91c2VFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29k
ZXIpOwogCisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fYnV0dG9uKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9wb3NpdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVs
dGFZKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVopOworICAgIGVuY29kZXItPmVuY29k
ZShtX2NsaWNrQ291bnQpOworCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIEluY2x1ZGUgbV9k
aWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQ
Qzo6SW4obV9idXR0b24sIG1fcG9zaXRpb24sIG1fZ2xvYmFsUG9zaXRpb24sIG1fZGVsdGFYLCBt
X2RlbHRhWSwgbV9kZWx0YVosIG1fY2xpY2tDb3VudCwgbV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsK
LSNlbHNlCi0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fYnV0dG9uLCBtX3Bvc2l0
aW9uLCBtX2dsb2JhbFBvc2l0aW9uLCBtX2RlbHRhWCwgbV9kZWx0YVksIG1fZGVsdGFaLCBtX2Ns
aWNrQ291bnQpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kaWRBY3RpdmF0ZVdlYlZpZXcpOwog
I2VuZGlmCiB9CiAKLWJvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYgdCkKK2Jvb2wgV2ViTW91c2VFdmVudDo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYg
cmVzdWx0KQogewotICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCB0KSkKKyAgICBp
ZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fYnV0dG9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5tX2dsb2JhbFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RlbHRhWCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0YVkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGVsdGFaKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2Ns
aWNrQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oV0lOKQotICAg
IC8vIEluY2x1ZGUgbV9kaWRBY3RpdmF0ZVdlYlZpZXcgb24gV2luZG93cy4KLSAgICByZXR1cm4g
ZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fYnV0dG9uLCB0Lm1fcG9zaXRpb24sIHQu
bV9nbG9iYWxQb3NpdGlvbiwgdC5tX2RlbHRhWCwgdC5tX2RlbHRhWSwgdC5tX2RlbHRhWiwgdC5t
X2NsaWNrQ291bnQsIHQubV9kaWRBY3RpdmF0ZVdlYlZpZXcpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodC5tX2J1dHRvbiwgdC5tX3Bvc2l0aW9uLCB0
Lm1fZ2xvYmFsUG9zaXRpb24sIHQubV9kZWx0YVgsIHQubV9kZWx0YVksIHQubV9kZWx0YVosIHQu
bV9jbGlja0NvdW50KSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGlkQWN0
aXZhdGVXZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJNb3VzZUV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKFR5cGUg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNo
UG9pbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5j
cHAKaW5kZXggZDg2ZmM3YWVmNzZhYjJlY2JhMDU3OTBiMGE2MmMxNjgyNTdkZTkxZC4uMzkwMjZl
MGY1YzhjYWNlZDdlNmIwMTg1YThiYzAxNGRjMmNmMGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTU5LDEyICs1OSwzMyBAQCBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZCwg
VG91Y2hQb2ludFN0YXRlIHN0YXRlLAogCiB2b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9pZCwgbV9zdGF0ZSwgbV9zY3JlZW5Qb3NpdGlvbiwg
bV9wb3NpdGlvbiwgbV9yYWRpdXMsIG1fcm90YXRpb25BbmdsZSwgbV9mb3JjZSkpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9zdGF0ZSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOworICAgIGVuY29kZXItPmVuY29kZSht
X3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9yYWRpdXMpOworICAgIGVuY29kZXIt
PmVuY29kZShtX3JvdGF0aW9uQW5nbGUpOworICAgIGVuY29kZXItPmVuY29kZShtX2ZvcmNlKTsK
IH0KIAotYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgdCkKK2Jvb2wgV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gZGVjb2Rlci0+
ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1faWQsIHQubV9zdGF0ZSwgdC5tX3NjcmVlblBvc2l0aW9u
LCB0Lm1fcG9zaXRpb24sIHQubV9yYWRpdXMsIHQubV9yb3RhdGlvbkFuZ2xlLCB0Lm1fZm9yY2Up
KTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9pZCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zdGF0ZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zY3Jl
ZW5Qb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXN1bHQubV9wb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQubV9yYWRpdXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fcm90YXRpb25BbmdsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9mb3Jj
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKaW5k
ZXggYzIxNWYzNTY4MWJlMzk1ZGY2OTY4ZTBkNjE3NTM5MjgwNWIzMDQyNC4uMDdhMjllNDE2OTY2
MmMwOGZkMGFjMmU2MDkxMDVmYjU1MTUzOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBv
cHVwSXRlbS5jcHAKQEAgLTY4LDI5ICs2OCw1NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRl
bShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZQog
CiB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fdHlwZSksIG1fdGV4dCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdGV4
dERpcmVjdGlvbiksIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBtX3Rvb2xUaXAsIG1fYWNj
ZXNzaWJpbGl0eVRleHQsIG1faXNFbmFibGVkLCBtX2lzTGFiZWwpKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoQ29yZUlQQzo6SW4obV9pc1NlbGVjdGVkKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51
bShtX3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXItPmVu
Y29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOworICAg
IGVuY29kZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOworICAgIGVu
Y29kZXItPmVuY29kZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29sIFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVt
KQogewotICAgIHVpbnQzMl90IHR5cGU7CisgICAgVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgU3RyaW5n
IHRleHQ7Ci0gICAgdWludDY0X3QgdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFRleHREaXJlY3Rp
b24gdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odGV4dERpcmVj
dGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzVGV4dERpcmVjdGlv
bk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlwOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHRvb2xUaXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBTdHJpbmcgYWNjZXNzaWJpbGl0eVRleHQ7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
YWNjZXNzaWJpbGl0eVRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGlz
RW5hYmxlZDsKLSAgICBib29sIGlzTGFiZWw7Ci0gICAgYm9vbCBpc1NlbGVjdGVkOworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGlzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCB0ZXh0LCB0ZXh0RGly
ZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlU
ZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkKKyAgICBib29sIGlzTGFiZWw7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNMYWJlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpc1NlbGVjdGVkKSkpCisgICAgYm9vbCBp
c1NlbGVjdGVkOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzU2VsZWN0ZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHN0YXRpY19jYXN0PFR5
cGU+KHR5cGUpLCB0ZXh0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9u
KSwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwg
aXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAgICBpdGVtID0gV2ViUG9wdXBJdGVt
KHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgdG9v
bFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJUb3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50
LmNwcAppbmRleCAwNWQ3Y2QyNTQ3N2MxMzU1Y2ExMThlZjdjNjU0YWE3ZGEzZWU4YjIwLi43MjEz
Yzc4ZGI0NGY2NDk3NDRiMDllYTA3NmUyNjkwYWY5YzBmZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlRvdWNoRXZlbnQuY3BwCkBAIC00NCwxNSArNDQsMTggQEAgdm9pZCBXZWJUb3VjaEV2
ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewog
ICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29y
ZUlQQzo6SW4obV90b3VjaFBvaW50cykpOworICAgIGVuY29kZXItPmVuY29kZShtX3RvdWNoUG9p
bnRzKTsKIH0KIAotYm9vbCBXZWJUb3VjaEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiB0KQorYm9vbCBXZWJUb3VjaEV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiBy
ZXN1bHQpCiB7Ci0gICAgaWYgKCFXZWJFdmVudDo6ZGVjb2RlKGRlY29kZXIsIHQpKQorICAgIGlm
ICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fdG91Y2hQ
b2ludHMpKTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV90b3VjaFBvaW50cykp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIFdl
YlRvdWNoRXZlbnQ6OmlzVG91Y2hFdmVudFR5cGUoVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IGZmNDNiMzQxMTY1OGNjZTI2MjVkYzk3MDJmNGNhY2Y3ZTIyZmEzOGEuLjYyMDI2MDhiZGExNjY5
ZDllZDNhNDg1YTU4NzczMDU1ZDk0ODNkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTU5LDcgKzU5LDkg
QEAgdm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY28KIAogYm9vbCBXZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFJlZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2Vzcykp
KQorICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNvZGVyKG1l
c3NhZ2VCb2R5LCBtX3Byb2Nlc3MpOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdl
Qm9keURlY29kZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAxNGE5Y2U3ODc1YzJm
NzlhMjg1ZmMyZTk1MWRjYjlkMzc5MzQyNWRlLi42YmJkNTE1MWRmODIzYWJlMTAwMWJmMzQ3Yjcx
ZTAzNjAyMDFlOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBA
IC04MjMsMTAgKzgyMywxMiBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAgICBjYXNl
IFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0TWVzc2FnZTogewogICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJv
ZHk7Ci0gICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNv
ZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9uKGNvbm5lY3Rp
b24pKTsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3Nh
Z2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQorICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94
eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOworICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXNzYWdlTmFtZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotCisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgCiAgICAgICAgICAgICBkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC04NTYsOCArODU4LDEwIEBAIHZvaWQgV2Vi
Q29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6CiAKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAg
ICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgICAgICAgICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJv
Y2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIp
KSkKKyAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlE
ZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9uKGNvbm5l
Y3Rpb24pKTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZU5hbWUpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
bWVzc2FnZUJvZHlEZWNvZGVyKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
ICAgIFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmlu
ZGV4IDQ1OGIxYzE2OWNjMWM5NzExOTIyNmUzM2JkMzk3ZjQ1NTczMmU4NTUuLjRkMGFhNTZhM2Ri
NzJiNjZhMmEyNWJhMjk1OGYxMzY5YjUzY2EyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBA
IC05MywyMCArOTMsMjcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZUNsaWVudChX
S0J1bmRsZUNsaWVudCogY2xpZW50KQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0TWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewot
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmQoV2Vi
Q29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihtZXNzYWdl
TmFtZSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKSk7Cisg
ICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gQ29yZUlQQzo6TWVz
c2FnZUVuY29kZXI6OmNyZWF0ZShDb3JlSVBDOjpNZXNzYWdlS2luZFRyYWl0czxXZWJDb250ZXh0
TGVnYWN5TWVzc2FnZTo6S2luZD46Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgIiIsIDApOworICAg
IGVuY29kZXItPmVuY29kZShtZXNzYWdlTmFtZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKEluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CisKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJ
RChXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2UpLCBlbmNvZGVyLnJlbGVhc2Uo
KSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RTeW5jaHJvbm91c01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSwgUmVmUHRyPEFQ
SU9iamVjdD4mIHJldHVybkRhdGEpCiB7Ci0gICAgUmVmUHRyPEFQSU9iamVjdD4gcmV0dXJuRGF0
YVRtcDsKLSAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cihyZXR1cm5EYXRhVG1wKTsKLSAgICAKLSAgICBib29sIHN1Y2NlZWRlZCA9IFdlYlByb2Nlc3M6
OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYkNvbnRleHRMZWdh
Y3lNZXNzYWdlOjpQb3N0U3luY2hyb25vdXNNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihtZXNzYWdl
TmFtZSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKSwgQ29y
ZUlQQzo6T3V0KG1lc3NhZ2VEZWNvZGVyKSk7CisgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIocmV0dXJuRGF0YSk7CiAKLSAgICBpZiAoIXN1Y2NlZWRl
ZCkKLSAgICAgICAgcmV0dXJuOworICAgIHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQ7CisgICAgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gV2ViUHJvY2Vzczo6c2hhcmVk
KCkuY29ubmVjdGlvbigpLT5jcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoQ29yZUlQQzo6TWVzc2Fn
ZUtpbmRUcmFpdHM8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OktpbmQ+OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksICIiLCAwLCBzeW5jUmVxdWVzdElEKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobWVz
c2FnZU5hbWUpOworICAgIGVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RW5jb2RlcihtZXNzYWdlQm9keSkpOwogCi0gICAgcmV0dXJuRGF0YSA9IHJldHVybkRhdGFUbXA7
CisgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyPiByZXBseURlY29kZXIgPSBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jTWVzc2FnZShDb3JlSVBDOjpN
ZXNzYWdlSUQoV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RTeW5jaHJvbm91c01lc3NhZ2Up
LCBzeW5jUmVxdWVzdElELCBlbmNvZGVyLnJlbGVhc2UoKSwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6
Tm9UaW1lb3V0KTsKKyAgICBpZiAoIXJlcGx5RGVjb2RlciB8fCAhcmVwbHlEZWNvZGVyLT5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKSB7CisgICAgICAgIHJldHVybkRhdGEgPSBudWxscHRyOworICAg
ICAgICByZXR1cm47CisgICAgfQogfQogCiBXZWJDb25uZWN0aW9uKiBJbmplY3RlZEJ1bmRsZTo6
d2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAppbmRleCBlMzliYTM5
ZDIwZTY2NjU0MmU4NzdkZWU2YzQzMzhlM2NhNjVkZmEzLi41MzgwMDdkNGZlYWNhMjU5Yjc2ZmQy
NDRiNTg4Y2E2NzljYTRhODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCkBAIC01NiwxMCArNTYsOCBAQCB2b2lk
IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZAogCiBib29sIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVj
b2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8
QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHkpOworICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZShtZXNzYWdlQm9keURlY29kZXIpOwogfQogCiAvLyBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCAxYWZlM2UzMjRjMTI3N2E0ZDIzYWQzYjMzYWQ5ZmVmYjM4MDFmYzU5Li4z
ZDg1ODNkOGRhOGU2ZmI4YTk1MTUzMWI0OTFiODkwYTliODM0YjhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjIyLDcgKzEyMjIsOCBA
QCB2b2lkIFdlYlBhZ2U6OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlTmFtZSwgQ29yZUlQQzo6TWVzcwogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8
QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKEluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5KTsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGluamVjdGVkQnVuZGxlLT5kaWRSZWNlaXZlTWVzc2FnZVRvUGFnZSh0aGlzLCBt
ZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggNDNlN2Q3MDIxY2UwYTRlOTY0ZmFmM2IzNTZhYjVmNmM1MDM4
ZGY1MC4uODQ2YTdjMmQzM2Y5NTM4NDA2NmM2ZTBjMWY1OGEzODc4YjYxMDdiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDU2LDcgKzEwNTYsOCBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkpKQorICAgIEluamVjdGVkQnVuZGxl
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSk7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUobWVzc2FnZUJvZHlEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaW5qZWN0ZWRCdW5kbGUtPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2VOYW1lLCBt
ZXNzYWdlQm9keS5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170017</attachid>
            <date>2012-10-22 16:22:39 -0700</date>
            <delta_ts>2012-10-22 16:37:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100022-20121022162117.patch</filename>
            <type>text/plain</type>
            <size>39154</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhhYzIzODQ1MzJhNTAw
NjBhNTcwZTcwOTljOGJjODUzYjEwNzVmYi4uNDNmN2VhM2ViYzJlZWNkMWZkOGExNTUyOGMyNWU0
YmI0MmVkZTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9yZSBBcmd1bWVu
dCBjb2RlciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDAwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlIG92ZXJsb2FkIHRoYXQg
dGFrZXMgYSBjb25zdCByZWZlcmVuY2UgLSBpZiB0aGUgY2FsbCB0byBkZWNvZGUgZW5kcyB1cCBj
cmVhdGluZyBhIHRlbXBvcmFyeQorICAgICAgICB3ZSdsbCBlbmNvZGUgaW50byBpdCBhbmQgdGhl
biBkZXN0cm95IGl0LiBTaW5jZSB0aGlzIGRlY29kZSBvdmVybG9hZCB3YXMgbW9zdGx5IHVzZWQg
d2l0aCB0aGUgQ29yZUlQQzo6T3V0IGZ1bmN0aW9ucywgcmVtb3ZlIHRoZW0KKyAgICAgICAgKGFu
ZCBDb3JlSVBDOjpJbikgYXMgd2VsbC4gQ2xlYW4gdXAgYSBjb3VwbGUgb2YgQXJndW1lbnRDb2Rl
cnMgYXMgd2VsbC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb25uZWN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByaW50SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UHJp
bnRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0TWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVz
c2FnZUJvZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZSk6CisKKzIwMTItMTAtMjIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBSZWdyZXNzaW9u
KHIxMzE5OTApOiBwbHVnaW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHkuaHRtbCBzdGFydGVk
IGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5OTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmMTZkN2M5MmY0NTU1YzA3M2NiNWEwN2M1ZWE2YzFkMmQ5ZjIwYjEyLi4w
ZjYwMTQyMjJiZTBjYWQxN2QzNjI0NWI1MGJmOWNmYTYwNzg1MWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMTMsNCArMjEz
LDQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKIAogfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQwogCi0jZW5kaWYgLy8gU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjZW5k
aWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggM2M4MWViMzc3ZjViMmUxNWRkYTIzOTljMjc0
MTUyOWMxYzI3OTdmNS4uYzFkNGI2ZTA1ZDZmOGY3OWE2NDc3OTU3OTgyOWQ4ZmQwYjQxMGI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCkBAIC05MCwxMyArOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcmd1bWVudENv
ZGVyPFQ+OjpkZWNvZGUodGhpcywgdCk7CiAgICAgfQogCi0gICAgLy8gVGhpcyBvdmVybG9hZCBl
eGlzdHMgc28gd2UgY2FuIHBhc3MgdGVtcG9yYXJpZXMgdG8gZGVjb2RlLiBJbiB0aGUgU3RhciBU
cmVrIGZ1dHVyZSwgaXQgCi0gICAgLy8gY2FuIHRha2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbnN0
ZWFkLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgZGVjb2RlKGNvbnN0IFQmIHQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZGVjb2RlKGNvbnN0X2Nhc3Q8VCY+KHQpKTsKLSAgICB9Ci0K
ICAgICBib29sIHJlbW92ZUF0dGFjaG1lbnQoQXR0YWNobWVudCYpOwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNWJk
NzU1MDJjODNjYmUzMWVmODE5ODVkY2IwOGNjNzc5NmY5MTE4Ny4uMWQ0YzVkYzRlZGJmMmZmY2Uy
YjkzMjNmODJhMWNhYTU5OTdlNmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oCkBAIC00NSwxNiArNDUsNiBAQCBzdHJ1Y3QgQXJndW1lbnRzMCB7CiAg
ICAgfQogfTsKIAotaW5saW5lIEFyZ3VtZW50czAgSW4oKQotewotICAgIHJldHVybiBBcmd1bWVu
dHMwKCk7Ci19Ci0KLWlubGluZSBBcmd1bWVudHMwIE91dCgpCi17Ci0gICAgcmV0dXJuIEFyZ3Vt
ZW50czAoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDE+IHN0cnVjdCBBcmd1bWVudHMxIHsK
ICAgICB0eXBlZGVmIEFyZ3VtZW50czE8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFt
ZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlPiBWYWx1ZVR5cGU7CiAKQEAg
LTgwLDE2ICs3MCw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxPiBzdHJ1Y3QgQXJndW1lbnRzMSB7
CiAgICAgVDEgYXJndW1lbnQxOwogfTsKICAgICAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxPiBBcmd1
bWVudHMxPGNvbnN0IFQxJj4gSW4oY29uc3QgVDEmIHQxKSAKLXsKLSAgICByZXR1cm4gQXJndW1l
bnRzMTxjb25zdCBUMSY+KHQxKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDE+IEFyZ3VtZW50
czE8VDEmPiBPdXQoVDEmIHQxKQotewotICAgIHJldHVybiBBcmd1bWVudHMxPFQxJj4odDEpOwot
fQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0cnVjdCBBcmd1bWVudHMy
IDogQXJndW1lbnRzMTxUMT4gewogICAgIHR5cGVkZWYgQXJndW1lbnRzMjx0eXBlbmFtZSBXVEY6
OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQxPjo6VHlwZT46OlR5
cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZT4gVmFsdWVUeXBlOwpA
QCAtMTIxLDE2ICsxMDEsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0
cnVjdCBBcmd1bWVudHMyIDogQXJndW1lbnRzMTxUMT4gewogICAgIFQyIGFyZ3VtZW50MjsKIH07
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4gQXJndW1lbnRzMjxjb25zdCBU
MSYsIGNvbnN0IFQyJj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIpCi17Ci0gICAgcmV0
dXJuIEFyZ3VtZW50czI8Y29uc3QgVDEmLCBjb25zdCBUMiY+KHQxLCB0Mik7Ci19Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4gQXJndW1lbnRzMjxUMSYsIFQyJj4gT3V0KFQx
JiB0MSwgVDImIHQyKQotewotICAgIHJldHVybiBBcmd1bWVudHMyPFQxJiwgVDImPih0MSwgdDIp
OwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPiBz
dHJ1Y3QgQXJndW1lbnRzMyA6IEFyZ3VtZW50czI8VDEsIFQyPiB7CiAgICAgdHlwZWRlZiBBcmd1
bWVudHMzPHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZl
cmVuY2U8VDE+OjpUeXBlPjo6VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUg
V1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMj46OlR5cGU+
OjpUeXBlLApAQCAtMTYzLDE2ICsxMzMsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzPiBzdHJ1Y3QgQXJndW1lbnRzMyA6IEFyZ3VtZW50czI8VAogICAg
IFQzIGFyZ3VtZW50MzsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDM+IEFyZ3VtZW50czM8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJj4g
SW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzICZ0MykKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzMzxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmPih0MSwgdDIsIHQz
KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4g
QXJndW1lbnRzMzxUMSYsIFQyJiwgVDMmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MykKLXsK
LSAgICByZXR1cm4gQXJndW1lbnRzMzxUMSYsIFQyJiwgVDMmPih0MSwgdDIsIHQzKTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQ+IHN0cnVjdCBBcmd1bWVudHM0IDogQXJndW1lbnRzMzxUMSwgVDIsIFQzPiB7CiAgICAgdHlw
ZWRlZiBBcmd1bWVudHM0PHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpS
ZW1vdmVSZWZlcmVuY2U8VDE+OjpUeXBlPjo6VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxU
Mj46OlR5cGU+OjpUeXBlLApAQCAtMjA2LDE2ICsxNjYsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50
czQgOgogICAgIFQ0IGFyZ3VtZW50NDsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBBcmd1bWVudHM0PGNvbnN0IFQxJiwg
Y29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0Jj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBU
MiYgdDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0KQotewotICAgIHJldHVybiBBcmd1bWVu
dHM0PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0Jj4odDEsIHQyLCB0
MywgdDQpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUND4gQXJndW1lbnRzNDxUMSYsIFQyJiwgVDMmLCBUNCY+IE91dChUMSYg
dDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czQ8VDEm
LCBUMiYsIFQzJiwgVDQmPih0MSwgdDIsIHQzLCB0NCk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4g
c3RydWN0IEFyZ3VtZW50czUgOiBBcmd1bWVudHM0PFQxLCBUMiwgVDMsIFQ0PiB7CiAgICAgdHlw
ZWRlZiBBcmd1bWVudHM1PHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpS
ZW1vdmVSZWZlcmVuY2U8VDE+OjpUeXBlPjo6VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxU
Mj46OlR5cGU+OjpUeXBlLApAQCAtMjUwLDE2ICsyMDAsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+IHN0
cnVjdAogICAgIFQ1IGFyZ3VtZW50NTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4gQXJndW1lbnRz
NTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jj4g
SW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0
LCBjb25zdCBUNSYgdDUpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czU8Y29uc3QgVDEmLCBjb25z
dCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSY+KHQxLCB0MiwgdDMsIHQ0LCB0
NSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4gQXJndW1lbnRzNTxUMSYsIFQyJiwgVDMmLCBUNCYs
IFQ1Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1KQotewotICAg
IHJldHVybiBBcmd1bWVudHM1PFQxJiwgVDImLCBUMyYsIFQ0JiwgVDUmPih0MSwgdDIsIHQzLCB0
NCwgdDUpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PiBzdHJ1Y3QgQXJndW1l
bnRzNiA6IEFyZ3VtZW50czU8VDEsIFQyLCBUMywgVDQsIFQ1PiB7CiAgICAgdHlwZWRlZiBBcmd1
bWVudHM2PHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZl
cmVuY2U8VDE+OjpUeXBlPjo6VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUg
V1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMj46OlR5cGU+
OjpUeXBlLApAQCAtMjk1LDE2ICsyMzUsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAg
IFQ2IGFyZ3VtZW50NjsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDY+IEFyZ3Vt
ZW50czY8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBU
NSYsIGNvbnN0IFQ2Jj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzICZ0
MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NikKLXsKLSAgICByZXR1
cm4gQXJndW1lbnRzNjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYs
IGNvbnN0IFQ1JiwgY29uc3QgVDYmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2KTsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4gQXJndW1lbnRzNjxUMSYsIFQyJiwgVDMmLCBUNCYs
IFQ1JiwgVDYmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0LCBUNSYgdDUsIFQ2
JiB0NikKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzNjxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1Jiwg
VDYmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDc+IHN0cnVjdCBBcmd1bWVudHM3IDogQXJndW1lbnRzNjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2PiB7CiAgICAgdHlwZWRlZiBBcmd1bWVudHM3PHR5cGVuYW1lIFdU
Rjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDE+OjpUeXBlPjo6
VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0
eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMj46OlR5cGU+OjpUeXBlLApAQCAtMzQxLDE2
ICsyNzEsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAgIFQ3IGFyZ3VtZW50NzsKIH07
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PiBBcmd1bWVudHM3
PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBj
b25zdCBUNiYsIGNvbnN0IFQ3Jj4gSW4oY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0
IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NiwgY29uc3Qg
VDcmIHQ3KQotewotICAgIHJldHVybiBBcmd1bWVudHM3PGNvbnN0IFQxJiwgY29uc3QgVDImLCBj
b25zdCBUMyYsIGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3Jj4odDEs
IHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNz4gQXJndW1lbnRzNzxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYm
LCBUNyY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2
LCBUNyYgdDcpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czc8VDEmLCBUMiYsIFQzJiwgVDQmLCBU
NSYsIFQ2JiwgVDcmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Ci19Ci0KIHRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4gc3RydWN0IEFy
Z3VtZW50czggOiBBcmd1bWVudHM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiB7CiAgICAg
dHlwZWRlZiBBcmd1bWVudHM4PHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RG
OjpSZW1vdmVSZWZlcmVuY2U8VDE+OjpUeXBlPjo6VHlwZSwKICAgICB0eXBlbmFtZSBXVEY6OlJl
bW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQyPjo6VHlwZT46OlR5cGUs
CkBAIC0zODYsMTYgKzMwNiw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAgVDggYXJn
dW1lbnQ4OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4PiBBcmd1bWVudHM4PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYs
IGNvbnN0IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3QgVDgmPiBJ
bihjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQs
IGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcsIGNvbnN0IFQ4JiB0OCkK
LXsKLSAgICByZXR1cm4gQXJndW1lbnRzODxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMm
LCBjb25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4Jj4o
dDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4PiBBcmd1bWVudHM4PFQxJiwgVDIm
LCBUMyYsIFQ0JiwgVDUmLCBUNiYsIFQ3JiwgVDgmPiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0
MywgVDQmIHQ0LCBUNSYgdDUsIFQ2JiB0NiwgVDcmIHQ3LCBUOCYgdDgpCi17Ci0gICAgcmV0dXJu
IEFyZ3VtZW50czg8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCY+KHQxLCB0
MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MD4gc3RydWN0IEFyZ3VtZW50czEwIDogQXJndW1lbnRzODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDg+IHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czEwPHR5cGVuYW1lIFdURjo6UmVtb3Zl
Q29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDE+OjpUeXBlPjo6VHlwZSwKICAg
ICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNl
PFQyPjo6VHlwZT46OlR5cGUsCkBAIC00MzcsMTYgKzM0Nyw2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwg
dHlwZW5hCiAgICAgVDEwIGFyZ3VtZW50MTA7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTA+IEFyZ3VtZW50czEwPGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0IFQ0
JiwgY29uc3QgVDUmLCBjb25zdCBUNiYsIGNvbnN0IFQ3JiwgY29uc3QgVDgmLCBjb25zdCBUOSYs
IGNvbnN0IFQxMCY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyAmdDMs
IGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0Nywg
Y29uc3QgVDgmIHQ4LCBjb25zdCBUOSYgdDksIGNvbnN0IFQxMCYgdDEwKQotewotICAgIHJldHVy
biBBcmd1bWVudHMxMDxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYs
IGNvbnN0IFQ1JiwgY29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4JiwgY29uc3QgVDkmLCBj
b25zdCBUMTAmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTApOwotfQot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+IEFyZ3VtZW50czEwPFQxJiwgVDImLCBUMyYsIFQ0
JiwgVDUmLCBUNiYsIFQ3JiwgVDgmLCBUOSYsIFQxMCY+IE91dChUMSYgdDEsIFQyJiB0MiwgVDMm
IHQzLCBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0OCwgVDkmIHQ5LCBUMTAm
IHQxMCkKLXsKLSAgICByZXR1cm4gQXJndW1lbnRzMTA8VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYs
IFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4
LCB0OSwgdDEwKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwogCiAjZW5kaWYgLy8gQXJn
dW1lbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgK
aW5kZXggYjQzODA3NDA5MDY0Njg1NTc3ZjY5MzU3OWFhYWVkZDQxYTgyNzBmNi4uM2VjMjgyMzQx
NzA4YTc2ODk5MjZkMTU4NWVhMDBhMWI4NWMyYTA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTE5Myw2ICsxOTMsNyBAQCBwdWJsaWM6CiAK
ICAgICBQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIo
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQp
OwogICAgIGJvb2wgc2VuZE1lc3NhZ2UoTWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VFbmNv
ZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9IDApOworICAgIFBhc3NPd25QdHI8TWVz
c2FnZURlY29kZXI+IHNlbmRTeW5jTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IHN5bmNSZXF1
ZXN0SUQsIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+LCBkb3VibGUgdGltZW91dCwgdW5zaWdu
ZWQgc3luY1NlbmRGbGFncyA9IDApOwogICAgIGJvb2wgc2VuZFN5bmNSZXBseShQYXNzT3duUHRy
PE1lc3NhZ2VFbmNvZGVyPik7CiAKICAgICAvLyBGSVhNRTogVGhlc2UgdmFyaWFudHMgb2Ygc2Vu
ZCwgc2VuZFN5bmMgYW5kIHdhaXRGb3IgYXJlIGFsbCBkZXByZWNhdGVkLgpAQCAtMjU0LDcgKzI1
NSw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gd2Fp
dEZvck1lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGlt
ZW91dCk7CiAgICAgCi0gICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNz
YWdlKE1lc3NhZ2VJRCwgdWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdl
RW5jb2Rlcj4sIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAg
ICAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gd2FpdEZvclN5bmNSZXBseSh1aW50NjRfdCBz
eW5jUmVxdWVzdElELCBkb3VibGUgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncyk7CiAK
ICAgICAvLyBDYWxsZWQgb24gdGhlIGNvbm5lY3Rpb24gd29yayBxdWV1ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKaW5kZXggMzM4MTkyMjQw
NTAwOTlhNTEwMzI3NGFkNDE4ODVjMjYwZDIwNzE2OC4uNDAxOWE4ZDg1NzllNzk4YWQzYTJjYjUw
NzYxYzlkNzc1Nzg0Yzc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFj
L1NoYXJlZE1lbW9yeU1hYy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1No
YXJlZE1lbW9yeU1hYy5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBTaGFyZWRNZW1vcnk6Okhh
bmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBo
YW4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgbWFjaFBv
cnQ7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KG1hY2hQb3J0KSkpCisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobWFjaFBvcnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCiAgICAgaGFuZGxlLm1fc2l6ZSA9IHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludElu
Zm8uY3BwCmluZGV4IGNlMTE5MzVhZDY4YjVlMjM5NzY0MTZkMTY2ZjNmOTkyM2MyZWEyOTguLjEw
Nzg4NGEwN2IzNjBiMTg1MWIzYmY0ZjRhOTA1NmFiYTQxZGExNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QcmludEluZm8uY3BwCkBAIC00NSw3ICs0NSwxMCBAQCBQcmludEluZm86OlByaW50SW5mbygp
CiAKIHZvaWQgUHJpbnRJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNv
ZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbihwYWdlU2V0dXBT
Y2FsZUZhY3RvciwgYXZhaWxhYmxlUGFwZXJXaWR0aCwgYXZhaWxhYmxlUGFwZXJIZWlnaHQpKTsK
KyAgICBlbmNvZGVyLT5lbmNvZGUocGFnZVNldHVwU2NhbGVGYWN0b3IpOworICAgIGVuY29kZXIt
PmVuY29kZShhdmFpbGFibGVQYXBlcldpZHRoKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoYXZhaWxh
YmxlUGFwZXJIZWlnaHQpOworCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIENvcmVJUEM6OmVuY29k
ZShlbmNvZGVyLCBwcmludFNldHRpbmdzLmdldCgpKTsKICAgICBDb3JlSVBDOjplbmNvZGUoZW5j
b2RlciwgcGFnZVNldHVwLmdldCgpKTsKQEAgLTU0LDcgKzU3LDExIEBAIHZvaWQgUHJpbnRJbmZv
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogCiBib29s
IFByaW50SW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUHJp
bnRJbmZvJiBpbmZvKQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChp
bmZvLnBhZ2VTZXR1cFNjYWxlRmFjdG9yLCBpbmZvLmF2YWlsYWJsZVBhcGVyV2lkdGgsIGluZm8u
YXZhaWxhYmxlUGFwZXJIZWlnaHQpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShpbmZvLnBh
Z2VTZXR1cFNjYWxlRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGluZm8uYXZhaWxhYmxlUGFwZXJXaWR0aCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShpbmZvLmF2YWlsYWJsZVBhcGVySGVpZ2h0
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCmluZGV4IGM4ZDgwNmRhOWU0MzViYmY2
MTc0OGVlOGQ4YTM2NDRhM2E3ZjUwZWUuLjMwYTVlNTlhMWNhMWMzNWE3ZjAxNGUxNGZkNzE0ZTA3
MDk3ZjEyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAK
QEAgLTQ3LDEyICs0NywyNCBAQCBXZWJCYXR0ZXJ5U3RhdHVzOjp+V2ViQmF0dGVyeVN0YXR1cygp
CiAKIHZvaWQgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6
SW4oaXNDaGFyZ2luZywgY2hhcmdpbmdUaW1lLCBkaXNjaGFyZ2luZ1RpbWUsIGxldmVsKSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKGlzQ2hhcmdpbmcpOworICAgIGVuY29kZXItPmVuY29kZShjaGFy
Z2luZ1RpbWUpOworICAgIGVuY29kZXItPmVuY29kZShkaXNjaGFyZ2luZ1RpbWUpOworICAgIGVu
Y29kZXItPmVuY29kZShsZXZlbCk7CiB9CiAKLWJvb2wgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKK2Jv
b2wgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgRGF0YSYgcmVzdWx0KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFyZ2luZ1RpbWUsIGRhdGEuZGlz
Y2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVz
dWx0LmlzQ2hhcmdpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocmVzdWx0LmNoYXJnaW5nVGltZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuZGlzY2hhcmdpbmdUaW1lKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5sZXZlbCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0
ZW1EYXRhLmNwcAppbmRleCAxZWIxYzQ5NWIyODQ5MmY1ZjcyYWE2NzI5NWFhYWZjNGI0YmQzMDlm
Li45MDFjZTljNDdmMWM1ZDMzYmNjMTZmYmJjYTA0ZDI0YzllODMwMTdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCkBAIC0xMDYsMjkg
KzEwNiw0OCBAQCB2b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OnNldFVzZXJEYXRhKEFQSU9i
amVjdCogdXNlckRhdGEpCiAgICAgCiB2b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKENvcmVJUEM6OkluKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3R5cGUpLCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4obV9hY3Rpb24pLCBtX3RpdGxlLCBtX2NoZWNrZWQsIG1fZW5hYmxl
ZCwgbV9zdWJtZW51KSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOworICAgIGVu
Y29kZXItPmVuY29kZUVudW0obV9hY3Rpb24pOworICAgIGVuY29kZXItPmVuY29kZShtX3RpdGxl
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9jaGVja2VkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
bV9lbmFibGVkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9zdWJtZW51KTsKIH0KIAogYm9vbCBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogewotICAgIHVpbnQzMl90IHR5
cGU7Ci0gICAgdWludDMyX3QgYWN0aW9uOworICAgIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5
cGUgdHlwZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odHlwZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbjsKKyAg
ICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0oYWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgU3RyaW5nIHRpdGxlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHRpdGxlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBjaGVja2VkOworICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGNoZWNrZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29s
IGVuYWJsZWQ7Ci0gICAgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHN1Ym1lbnU7Cisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCBhY3Rpb24sIHRp
dGxlLCBjaGVja2VkLCBlbmFibGVkLCBzdWJtZW51KSkpCisgICAgVmVjdG9yPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+IHN1Ym1lbnU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3VibWVudSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Ug
V2ViQ29yZTo6QWN0aW9uVHlwZToKICAgICBjYXNlIFdlYkNvcmU6OlNlcGFyYXRvclR5cGU6CiAg
ICAgY2FzZSBXZWJDb3JlOjpDaGVja2FibGVBY3Rpb25UeXBlOgotICAgICAgICBpdGVtID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShzdGF0aWNfY2FzdDxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1U
eXBlPih0eXBlKSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KGFjdGlv
biksIHRpdGxlLCBlbmFibGVkLCBjaGVja2VkKTsKKyAgICAgICAgaXRlbSA9IFdlYkNvbnRleHRN
ZW51SXRlbURhdGEodHlwZSwgYWN0aW9uLCB0aXRsZSwgZW5hYmxlZCwgY2hlY2tlZCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6Ci0gICAgICAgIGl0ZW0g
PSBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uPihhY3Rpb24pLCB0aXRsZSwgZW5hYmxlZCwgc3VibWVudSk7CisgICAgICAgIGl0ZW0g
PSBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKGFjdGlvbiwgdGl0bGUsIGVuYWJsZWQsIHN1Ym1lbnUp
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IDhlZGMzZmQzNTg2NDgyMWEy
OGM3ZDRiYTc5YzI4Y2NhZmRlODM1MGIuLjcwYmZmYTJjMWU4MTdhYjMyZmE5ZTE3M2Y0YjE4MmQ0
ODgxZjA2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcApAQCAtNDgsMTIgKzQ4LDIw
IEBAIFdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCiAKIHZvaWQgV2ViRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6
OkluKG1fdHlwZSwgbV9tb2RpZmllcnMsIG1fdGltZXN0YW1wKSk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlKG1fdHlwZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fbW9kaWZpZXJzKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGUobV90aW1lc3RhbXApOwogfQogCi1ib29sIFdlYkV2ZW50OjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgdCkKK2Jvb2wgV2ViRXZl
bnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkV2ZW50JiBy
ZXN1bHQpCiB7Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodC5tX3R5
cGUsIHQubV9tb2RpZmllcnMsIHQubV90aW1lc3RhbXApKTsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXN1bHQubV90eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHJlc3VsdC5tX21vZGlmaWVycykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV90aW1lc3RhbXApKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBv
c2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmNwcAppbmRleCBjOWUzNmZhMzdkMDc4YjI2MmU3MzdkNDhkZjM1NmVmODA5YTJlYjQ5Li43N2Q1
MjRjZjRjNDc3YThkMTBmNDEwNzRkMWUxNTg3MTVkMGJkOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC01MywxNSArNTMsMTIg
QEAgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6fldlYkdlb2xvY2F0aW9uUG9zaXRpb24oKQogCiB2
b2lkIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6
OkluKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVB
bHRpdHVkZSwgYWx0aXR1ZGUsIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFj
Y3VyYWN5LCBjYW5Qcm92aWRlSGVhZGluZywgaGVhZGluZykpOwotICAgIGVuY29kZXItPmVuY29k
ZShDb3JlSVBDOjpJbihjYW5Qcm92aWRlU3BlZWQsIHNwZWVkKSk7CisgICAgQ29yZUlQQzo6U2lt
cGxlQXJndW1lbnRDb2RlcjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhPjo6ZW5jb2RlKGVu
Y29kZXIsICp0aGlzKTsKIH0KIAogYm9vbCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQogewot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChkYXRhLnRpbWVzdGFtcCwgZGF0
YS5sYXRpdHVkZSwgZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3ksIGRhdGEuY2FuUHJvdmlk
ZUFsdGl0dWRlLCBkYXRhLmFsdGl0dWRlLCBkYXRhLmNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5
LCBkYXRhLmFsdGl0dWRlQWNjdXJhY3ksIGRhdGEuY2FuUHJvdmlkZUhlYWRpbmcsIGRhdGEuaGVh
ZGluZykpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29k
ZShDb3JlSVBDOjpPdXQoZGF0YS5jYW5Qcm92aWRlU3BlZWQsIGRhdGEuc3BlZWQpKTsKKyAgICBy
ZXR1cm4gQ29yZUlQQzo6U2ltcGxlQXJndW1lbnRDb2RlcjxXZWJHZW9sb2NhdGlvblBvc2l0aW9u
OjpEYXRhPjo6ZGVjb2RlKGRlY29kZXIsIGRhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAppbmRleCA3YWE3ZGZmMjMx
NDMwNmJlNTBmOTFlNGZlOTExMWY4ODI1OGNlMDU0Li4zMmU2YWMxZjMyZmMxYmMzMTYyY2E1NDA3
ZDIxMjQwN2NjNWY3NzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91
c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3Bw
CkBAIC04MiwyNSArODIsNDQgQEAgdm9pZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewogICAgIFdlYkV2ZW50OjplbmNvZGUo
ZW5jb2Rlcik7CiAKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9idXR0b24pOworICAgIGVuY29kZXIt
PmVuY29kZShtX3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9nbG9iYWxQb3NpdGlv
bik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVsdGFYKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
bV9kZWx0YVkpOworICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWik7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fY2xpY2tDb3VudCk7CisKICNpZiBQTEFURk9STShXSU4pCi0gICAgLy8gSW5jbHVk
ZSBtX2RpZEFjdGl2YXRlV2ViVmlldyBvbiBXaW5kb3dzLgotICAgIGVuY29kZXItPmVuY29kZShD
b3JlSVBDOjpJbihtX2J1dHRvbiwgbV9wb3NpdGlvbiwgbV9nbG9iYWxQb3NpdGlvbiwgbV9kZWx0
YVgsIG1fZGVsdGFZLCBtX2RlbHRhWiwgbV9jbGlja0NvdW50LCBtX2RpZEFjdGl2YXRlV2ViVmll
dykpOwotI2Vsc2UKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9idXR0b24sIG1f
cG9zaXRpb24sIG1fZ2xvYmFsUG9zaXRpb24sIG1fZGVsdGFYLCBtX2RlbHRhWSwgbV9kZWx0YVos
IG1fY2xpY2tDb3VudCkpOworICAgIGVuY29kZXItPmVuY29kZShtX2RpZEFjdGl2YXRlV2ViVmll
dyk7CiAjZW5kaWYKIH0KIAotYm9vbCBXZWJNb3VzZUV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJNb3VzZUV2ZW50JiB0KQorYm9vbCBXZWJNb3VzZUV2
ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJNb3VzZUV2
ZW50JiByZXN1bHQpCiB7Ci0gICAgaWYgKCFXZWJFdmVudDo6ZGVjb2RlKGRlY29kZXIsIHQpKQor
ICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9idXR0b24pKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1f
cG9zaXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUocmVzdWx0Lm1fZ2xvYmFsUG9zaXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZGVsdGFYKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RlbHRhWSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0YVop
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm1fY2xpY2tDb3VudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQTEFURk9STShXSU4p
Ci0gICAgLy8gSW5jbHVkZSBtX2RpZEFjdGl2YXRlV2ViVmlldyBvbiBXaW5kb3dzLgotICAgIHJl
dHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHQubV9idXR0b24sIHQubV9wb3NpdGlv
biwgdC5tX2dsb2JhbFBvc2l0aW9uLCB0Lm1fZGVsdGFYLCB0Lm1fZGVsdGFZLCB0Lm1fZGVsdGFa
LCB0Lm1fY2xpY2tDb3VudCwgdC5tX2RpZEFjdGl2YXRlV2ViVmlldykpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1fYnV0dG9uLCB0Lm1fcG9zaXRp
b24sIHQubV9nbG9iYWxQb3NpdGlvbiwgdC5tX2RlbHRhWCwgdC5tX2RlbHRhWSwgdC5tX2RlbHRh
WiwgdC5tX2NsaWNrQ291bnQpKTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9k
aWRBY3RpdmF0ZVdlYlZpZXcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKKworICAg
IHJldHVybiB0cnVlOwogfQogCiBib29sIFdlYk1vdXNlRXZlbnQ6OmlzTW91c2VFdmVudFR5cGUo
VHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJ
bmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5jcHAKaW5kZXgg
Y2MzMWJkY2NiNThlYjhhYzc4N2QyMTM4MzFhNjVmNDc1MzgwNDlhNC4uYTI4NTIzNDFhNTdiNjRh
M2U5OTJjZWE0ZjliOWUzNjg1MzdlZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYk5ldHdvcmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0
d29ya0luZm8uY3BwCkBAIC00NSwxMiArNDUsMTggQEAgV2ViTmV0d29ya0luZm86On5XZWJOZXR3
b3JrSW5mbygpCiAKIHZvaWQgV2ViTmV0d29ya0luZm86OkRhdGE6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENv
cmVJUEM6OkluKGJhbmR3aWR0aCwgbWV0ZXJlZCkpOworICAgIGVuY29kZXItPmVuY29kZShiYW5k
d2lkdGgpOworICAgIGVuY29kZXItPmVuY29kZShtZXRlcmVkKTsKIH0KIAotYm9vbCBXZWJOZXR3
b3JrSW5mbzo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
RGF0YSYgZGF0YSkKK2Jvb2wgV2ViTmV0d29ya0luZm86OkRhdGE6OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGEmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gZGVj
b2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChkYXRhLmJhbmR3aWR0aCwgZGF0YS5tZXRlcmVkKSk7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmJhbmR3aWR0aCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubWV0ZXJlZCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9y
bVRvdWNoUG9pbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQ
b2ludC5jcHAKaW5kZXggZDg2ZmM3YWVmNzZhYjJlY2JhMDU3OTBiMGE2MmMxNjgyNTdkZTkxZC4u
MzkwMjZlMGY1YzhjYWNlZDdlNmIwMTg1YThiYzAxNGRjMmNmMGUxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTU5LDEyICs1OSwz
MyBAQCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25l
ZCBpZCwgVG91Y2hQb2ludFN0YXRlIHN0YXRlLAogCiB2b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9pZCwgbV9zdGF0ZSwgbV9zY3JlZW5Qb3Np
dGlvbiwgbV9wb3NpdGlvbiwgbV9yYWRpdXMsIG1fcm90YXRpb25BbmdsZSwgbV9mb3JjZSkpOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2lkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9zdGF0ZSk7
CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOworICAgIGVuY29kZXItPmVu
Y29kZShtX3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9yYWRpdXMpOworICAgIGVu
Y29kZXItPmVuY29kZShtX3JvdGF0aW9uQW5nbGUpOworICAgIGVuY29kZXItPmVuY29kZShtX2Zv
cmNlKTsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgdCkKK2Jvb2wg
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gZGVj
b2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1faWQsIHQubV9zdGF0ZSwgdC5tX3NjcmVlblBv
c2l0aW9uLCB0Lm1fcG9zaXRpb24sIHQubV9yYWRpdXMsIHQubV9yb3RhdGlvbkFuZ2xlLCB0Lm1f
Zm9yY2UpKTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9pZCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9zdGF0ZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQu
bV9zY3JlZW5Qb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShyZXN1bHQubV9wb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9yYWRpdXMpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fcm90YXRpb25BbmdsZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQu
bV9mb3JjZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQb3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5j
cHAKaW5kZXggYzIxNWYzNTY4MWJlMzk1ZGY2OTY4ZTBkNjE3NTM5MjgwNWIzMDQyNC4uMDdhMjll
NDE2OTY2MmMwOGZkMGFjMmU2MDkxMDVmYjU1MTUzOGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlBvcHVwSXRlbS5jcHAKQEAgLTY4LDI5ICs2OCw1NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBv
cHVwSXRlbShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlvbiB0ZXh0
RGlyZQogCiB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KG1fdHlwZSksIG1fdGV4dCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG1fdGV4dERpcmVjdGlvbiksIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBtX3Rvb2xUaXAs
IG1fYWNjZXNzaWJpbGl0eVRleHQsIG1faXNFbmFibGVkLCBtX2lzTGFiZWwpKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV9pc1NlbGVjdGVkKSk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlRW51bShtX3R5cGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOworICAgIGVuY29k
ZXItPmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9o
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXAp
OworICAgIGVuY29kZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOwor
ICAgIGVuY29kZXItPmVuY29kZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29sIFdlYlBvcHVwSXRl
bTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUG9wdXBJdGVt
JiBpdGVtKQogewotICAgIHVpbnQzMl90IHR5cGU7CisgICAgVHlwZSB0eXBlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlRW51bSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAg
U3RyaW5nIHRleHQ7Ci0gICAgdWludDY0X3QgdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZSh0ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFRleHRE
aXJlY3Rpb24gdGV4dERpcmVjdGlvbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odGV4
dERpcmVjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1RleHREaXJlY3Rp
b25PdmVycmlkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlw
OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHRvb2xUaXApKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBTdHJpbmcgYWNjZXNzaWJpbGl0eVRleHQ7CisgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoYWNjZXNzaWJpbGl0eVRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBi
b29sIGlzRW5hYmxlZDsKLSAgICBib29sIGlzTGFiZWw7Ci0gICAgYm9vbCBpc1NlbGVjdGVkOwor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0eXBlLCB0ZXh0LCB0
ZXh0RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2li
aWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkKKyAgICBib29sIGlzTGFiZWw7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNMYWJlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpc1NlbGVjdGVkKSkpCisgICAg
Ym9vbCBpc1NlbGVjdGVkOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzU2VsZWN0ZWQpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJdGVtKHN0YXRpY19j
YXN0PFR5cGU+KHR5cGUpLCB0ZXh0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGly
ZWN0aW9uKSwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5
VGV4dCwgaXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAgICBpdGVtID0gV2ViUG9w
dXBJdGVtKHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlk
ZSwgdG9vbFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxl
Y3RlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3Vj
aEV2ZW50LmNwcAppbmRleCAwNWQ3Y2QyNTQ3N2MxMzU1Y2ExMThlZjdjNjU0YWE3ZGEzZWU4YjIw
Li43MjEzYzc4ZGI0NGY2NDk3NDRiMDllYTA3NmUyNjkwYWY5YzBmZWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCkBAIC00NCwxNSArNDQsMTggQEAgdm9pZCBXZWJU
b3VjaEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25z
dAogewogICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoQ29yZUlQQzo6SW4obV90b3VjaFBvaW50cykpOworICAgIGVuY29kZXItPmVuY29kZShtX3Rv
dWNoUG9pbnRzKTsKIH0KIAotYm9vbCBXZWJUb3VjaEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiB0KQorYm9vbCBXZWJUb3VjaEV2
ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2
ZW50JiByZXN1bHQpCiB7Ci0gICAgaWYgKCFXZWJFdmVudDo6ZGVjb2RlKGRlY29kZXIsIHQpKQor
ICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dCh0Lm1f
dG91Y2hQb2ludHMpKTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV90b3VjaFBv
aW50cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiBi
b29sIFdlYlRvdWNoRXZlbnQ6OmlzVG91Y2hFdmVudFR5cGUoVHlwZSB0eXBlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGZmNDNiMzQxMTY1OGNjZTI2MjVkYzk3MDJmNGNhY2Y3ZTIyZmEzOGEuLjYyMDI2MDhi
ZGExNjY5ZDllZDNhNDg1YTU4NzczMDU1ZDk0ODNkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTU5LDcg
KzU5LDkgQEAgdm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9k
eShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY28KIAogYm9vbCBXZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIFJlZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKIHsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJv
Y2VzcykpKQorICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZUJvZHlEZWNv
ZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nlc3MpOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSht
ZXNzYWdlQm9keURlY29kZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAxNGE5Y2U3
ODc1YzJmNzlhMjg1ZmMyZTk1MWRjYjlkMzc5MzQyNWRlLi4wZmYxZjFhYzRmMDY2NTU1YmYzZWUx
NDk1M2MyN2RhMTcwOTEyOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCkBAIC04MjMsMTAgKzgyMywxMiBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAg
ICBjYXNlIFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0TWVzc2FnZTogewogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVz
c2FnZUJvZHk7Ci0gICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9uKGNv
bm5lY3Rpb24pKTsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoQ29yZUlQQzo6T3V0
KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQorICAgICAgICAgICAgV2ViQ29udGV4dFVz
ZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nl
c3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOworICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtZXNzYWdlTmFtZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotCisg
ICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgCiAgICAgICAgICAgICBkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC04NTYsMTMgKzg1OCwxNSBAQCB2
b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOgogCiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7
CiAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICAgICAgICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHks
IFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOwotICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VE
ZWNvZGVyKSkpCisgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlv
bihjb25uZWN0aW9uKSk7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VO
YW1lKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1lc3NhZ2VCb2R5RGVjb2RlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiByZXR1cm5EYXRhOwogICAgICAgICAgICAgZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwg
bWVzc2FnZUJvZHkuZ2V0KCksIHJldHVybkRhdGEpOwotICAgICAgICAgICAgcmVwbHlFbmNvZGVy
LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5E
YXRhLmdldCgpKSkpOworICAgICAgICAgICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUoV2ViQ29udGV4
dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5EYXRhLmdldCgpKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9z
dE1lc3NhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDQ1OGIxYzE2OWNjMWM5NzExOTIy
NmUzM2JkMzk3ZjQ1NTczMmU4NTUuLjRkMGFhNTZhM2RiNzJiNjZhMmEyNWJhMjk1OGYxMzY5YjUz
Y2EyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC05MywyMCArOTMsMjcgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZUNsaWVudChXS0J1bmRsZUNsaWVudCogY2xpZW50KQog
CiB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VO
YW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmQoV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBv
c3RNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihtZXNzYWdlTmFtZSwgSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKSk7CisgICAgT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyID0gQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZShDb3Jl
SVBDOjpNZXNzYWdlS2luZFRyYWl0czxXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6S2luZD46Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgIiIsIDApOworICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdl
TmFtZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyKG1lc3NhZ2VCb2R5KSk7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9u
KCktPnNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRChXZWJDb250ZXh0TGVnYWN5TWVzc2Fn
ZTo6UG9zdE1lc3NhZ2UpLCBlbmNvZGVyLnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRC
dW5kbGU6OnBvc3RTeW5jaHJvbm91c01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
QVBJT2JqZWN0KiBtZXNzYWdlQm9keSwgUmVmUHRyPEFQSU9iamVjdD4mIHJldHVybkRhdGEpCiB7
Ci0gICAgUmVmUHRyPEFQSU9iamVjdD4gcmV0dXJuRGF0YVRtcDsKLSAgICBJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihyZXR1cm5EYXRhVG1wKTsKLSAgICAK
LSAgICBib29sIHN1Y2NlZWRlZCA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0U3luY2hyb25v
dXNNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihtZXNzYWdlTmFtZSwgSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKSwgQ29yZUlQQzo6T3V0KG1lc3NhZ2VEZWNvZGVy
KSk7CisgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIo
cmV0dXJuRGF0YSk7CiAKLSAgICBpZiAoIXN1Y2NlZWRlZCkKLSAgICAgICAgcmV0dXJuOworICAg
IHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQ7CisgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiBlbmNvZGVyID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5jcmVhdGVT
eW5jTWVzc2FnZUVuY29kZXIoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8V2ViQ29udGV4dExl
Z2FjeU1lc3NhZ2U6OktpbmQ+OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICIiLCAwLCBzeW5jUmVx
dWVzdElEKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZU5hbWUpOworICAgIGVuY29kZXIt
PmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOwog
Ci0gICAgcmV0dXJuRGF0YSA9IHJldHVybkRhdGFUbXA7CisgICAgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyPiByZXBseURlY29kZXIgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0
aW9uKCktPnNlbmRTeW5jTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQoV2ViQ29udGV4dExlZ2Fj
eU1lc3NhZ2U6OlBvc3RTeW5jaHJvbm91c01lc3NhZ2UpLCBzeW5jUmVxdWVzdElELCBlbmNvZGVy
LnJlbGVhc2UoKSwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0KTsKKyAgICBpZiAoIXJl
cGx5RGVjb2RlciB8fCAhcmVwbHlEZWNvZGVyLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKSB7Cisg
ICAgICAgIHJldHVybkRhdGEgPSBudWxscHRyOworICAgICAgICByZXR1cm47CisgICAgfQogfQog
CiBXZWJDb25uZWN0aW9uKiBJbmplY3RlZEJ1bmRsZTo6d2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmNwcAppbmRleCBlMzliYTM5ZDIwZTY2NjU0MmU4NzdkZWU2YzQzMzhl
M2NhNjVkZmEzLi41MzgwMDdkNGZlYWNhMjU5Yjc2ZmQyNDRiNTg4Y2E2NzljYTRhODM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwCkBAIC01NiwxMCArNTYsOCBAQCB2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
czo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZAogCiBi
b29sIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkp
CiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVj
b2RlcihtZXNzYWdlQm9keSkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlQm9keURl
Y29kZXIobWVzc2FnZUJvZHkpOworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShtZXNzYWdlQm9k
eURlY29kZXIpOwogfQogCiAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxYWZlM2UzMjRj
MTI3N2E0ZDIzYWQzYjMzYWQ5ZmVmYjM4MDFmYzU5Li4zZDg1ODNkOGRhOGU2ZmI4YTk1MTUzMWI0
OTFiODkwYTliODM0YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC0xMjIyLDcgKzEyMjIsOCBAQCB2b2lkIFdlYlBhZ2U6OnBvc3RJbmpl
Y3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQ29yZUlQQzo6TWVz
cwogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVy
KG1lc3NhZ2VCb2R5KSkpCisgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZUJvZHlEZWNvZGVyKG1lc3NhZ2VCb2R5KTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
c3NhZ2VCb2R5RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGluamVjdGVkQnVuZGxl
LT5kaWRSZWNlaXZlTWVzc2FnZVRvUGFnZSh0aGlzLCBtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHku
Z2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNDNl
N2Q3MDIxY2UwYTRlOTY0ZmFmM2IzNTZhYjVmNmM1MDM4ZGY1MC4uODQ2YTdjMmQzM2Y5NTM4NDA2
NmM2ZTBjMWY1OGEzODc4YjYxMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC0xMDU2LDcgKzEwNTYsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBvc3RJbmpl
Y3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZQog
ICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2Rlciht
ZXNzYWdlQm9keSkpKQorICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VCb2R5RGVjb2RlcihtZXNzYWdlQm9keSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobWVz
c2FnZUJvZHlEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW5qZWN0ZWRCdW5kbGUt
PmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSk7Cg==
</data>
<flag name="review"
          id="183494"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>