<?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>70120</bug_id>
          
          <creation_ts>2011-10-14 11:23:16 -0700</creation_ts>
          <short_desc>[Chromium] Pass MessagePortArray to SerializedScriptValue::serialize/deserialize</short_desc>
          <delta_ts>2011-10-14 15:12:14 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65209</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Lomov">dslomov</reporter>
          <assigned_to name="Dmitry Lomov">dslomov</assigned_to>
          <cc>abarth</cc>
    
    <cc>kbr</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484088</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-14 11:23:16 -0700</bug_when>
    <thetext>SerializedScriptValue needs to know the message ports being sent with the message to implement trasfer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484099</commentid>
    <comment_count>1</comment_count>
      <attachid>111033</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-14 11:27:54 -0700</bug_when>
    <thetext>Created attachment 111033
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484132</commentid>
    <comment_count>2</comment_count>
      <attachid>111033</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-14 11:46:55 -0700</bug_when>
    <thetext>Comment on attachment 111033
Fix

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

Please fix these small issues and commit away!

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1923
&gt; +SerializedScriptValue::SerializedScriptValue(v8::Handle&lt;v8::Value&gt; value, MessagePortArray* messagePorts, bool&amp; didThrow)

Omit the var name (since it isn&apos;t used) or else you&apos;ll get compile errors on some platforms.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1968
&gt; +v8::Handle&lt;v8::Value&gt; SerializedScriptValue::deserialize(MessagePortArray* messagePorts)

Ditto.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.h:81
&gt; +    SerializedScriptValue(v8::Handle&lt;v8::Value&gt;, MessagePortArray* messagePorts, bool&amp; didThrow);

Omit the variable name since it adds no information.

&gt; Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:356
&gt; +    return handlePostMessageCallback(args, false);

We prefer enums in WebKit when the value passed in is just true/false to make the call site more readable.

&gt; Source/WebCore/bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:57
&gt; +     ExceptionCode ec = 0;

Indentation is off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484133</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-14 11:47:35 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 111033 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111033&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:356
&gt; &gt; +    return handlePostMessageCallback(args, false);
&gt; 
&gt; We prefer enums in WebKit when the value passed in is just true/false to make the call site more readable.

Note this one is true in several places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484141</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-14 11:50:22 -0700</bug_when>
    <thetext>OK ignore the enum comment since the uses are in file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484150</commentid>
    <comment_count>5</comment_count>
      <attachid>111042</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-14 12:02:25 -0700</bug_when>
    <thetext>Created attachment 111042
CR feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484341</commentid>
    <comment_count>6</comment_count>
      <attachid>111042</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-14 15:12:09 -0700</bug_when>
    <thetext>Comment on attachment 111042
CR feedback

Clearing flags on attachment: 111042

Committed r97516: &lt;http://trac.webkit.org/changeset/97516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484342</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-14 15:12:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111033</attachid>
            <date>2011-10-14 11:27:54 -0700</date>
            <delta_ts>2011-10-14 12:02:25 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>70120.patch</filename>
            <type>text/plain</type>
            <size>20632</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYzhiYzU0Li5iZjk5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTEtMTAtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMjAKKyAgICAg
ICAgW0Nocm9taXVtXSBQYXNzIE1lc3NhZ2VQb3J0QXJyYXkgdG8gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpzZXJpYWxpemUvZGVzZXJpYWxpemUuCisgICAgICAgIFRoaXMgcGF0Y2ggYXVnbWVudHMg
U2VyaWFsaXplZFNjcmlwdFZhbHVlIHdpdGggTWVzc2FnZVBvcnRBcnJheSogcGFyYW1ldGVyIHRv
IGltcGxlbWVudCBNZXNzYWdlUG9ydCAKKyAgICAgICAgdHJhbnNmZXIgd2l0aGluIHRoZSBtZXNz
YWdlIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAg
ICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OnBvc3RNZXNzYWdlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6OnBvc3RNZXNzYWdl
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Ojp3
ZWJraXRQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhIaXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SGlzdG9yeTo6cHVzaFN0
YXRlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5OjpyZXBsYWNlU3RhdGVD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JH
ZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6VjhNZXNzYWdlUG9ydDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOE1lc3NhZ2VQb3J0Ojp3ZWJraXRQb3N0TWVzc2FnZUNhbGxiYWNrKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFdvcmtlcjo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdv
cmtlcjo6d2Via2l0UG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXIuaWRsOgorCiAyMDExLTEwLTEzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT046IEhpZ2ggZnJlcXVlbmN5IG1lbW9yeSB3YXJuaW5ncyBj
YXVzZSBTYWZhcmkgdG8gaG9nIHRoZSBDUFUgZG9pbmcgdXNlbGVzcyBnYXJiYWdlIGNvbGxlY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggZjJmNGRhZC4uNzFhY2U2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE0NTgsNyArMTQ1OCw3IEBA
IHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICB9IGVsc2lmICgkcGFyYW1ldGVy
LT50eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CiAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiKTsKICAgICAgICAgICAgICRwYXJh
bWV0ZXJDaGVja1N0cmluZyAuPSAiICAgIGJvb2wgJHtwYXJhbWV0ZXJOYW1lfURpZFRocm93ID0g
ZmFsc2U7XG4iOwotICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgJG5h
dGl2ZVR5cGUgJHBhcmFtZXRlck5hbWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShh
cmdzWyRwYXJhbUluZGV4XSwgJHtwYXJhbWV0ZXJOYW1lfURpZFRocm93KTtcbiI7CisgICAgICAg
ICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICAkbmF0aXZlVHlwZSAkcGFyYW1ldGVy
TmFtZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbJHBhcmFtSW5kZXhdLCAw
LCAke3BhcmFtZXRlck5hbWV9RGlkVGhyb3cpO1xuIjsKICAgICAgICAgICAgICRwYXJhbWV0ZXJD
aGVja1N0cmluZyAuPSAiICAgIGlmICgke3BhcmFtZXRlck5hbWV9RGlkVGhyb3cpXG4iOwogICAg
ICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7XG4iOwogICAgICAgICB9IGVsc2lmIChUeXBlQ2FuRmFpbENvbnZlcnNpb24oJHBh
cmFtZXRlcikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDJkOWQwY2QuLmFmZmMwNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAt
NDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKICNpbmNsdWRlICJJbnQzMkFy
cmF5LmgiCiAjaW5jbHVkZSAiSW50OEFycmF5LmgiCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJVaW50MTZBcnJheS5oIgogI2lu
Y2x1ZGUgIlVpbnQzMkFycmF5LmgiCkBAIC0xODQwLDcgKzE4NDEsNiBAQCBwcml2YXRlOgogfTsK
IAogfSAvLyBuYW1lc3BhY2UKLQogdm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFs
aXplQW5kU2V0UHJvcGVydHkodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QsIGNvbnN0IGNo
YXIqIHByb3BlcnR5TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSBhdHRyaWJ1dGUsIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSogdmFsdWUpCiB7CkBAIC0xODU2LDE1ICsxODU2LDE1IEBAIHZvaWQgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUFuZFNldFByb3BlcnR5KHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gb2JqCiAgICAgZGVzZXJpYWxpemVBbmRTZXRQcm9wZXJ0eShvYmplY3QsIHBy
b3BlcnR5TmFtZSwgYXR0cmlidXRlLCB2YWx1ZS5nZXQoKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIGRpZFRocm93KQorUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSogbWVzc2FnZVBvcnRzLCBib29sJiBk
aWRUaHJvdykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSh2YWx1ZSwgZGlkVGhyb3cpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSh2YWx1ZSwgbWVzc2FnZVBvcnRzLCBkaWRUaHJvdykpOwogfQogCiBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogewogICAgIGJvb2wgZGlkVGhyb3c7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUodmFsdWUsIGRpZFRocm93
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUodmFsdWUs
IDAsIGRpZFRocm93KSk7CiB9CiAKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlKGNvbnN0IFN0cmluZyYgZGF0YSkK
QEAgLTE5MjAsNyArMTkyMCw3IEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKCkKIHsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBkaWRUaHJvdykKK1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSogbWVzc2FnZVBvcnRzLCBib29sJiBkaWRU
aHJvdykKIHsKICAgICBkaWRUaHJvdyA9IGZhbHNlOwogICAgIFdyaXRlciB3cml0ZXI7CkBAIC0x
OTY1LDcgKzE5NjUsNyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShjb25zdCBTdHJpbmcmIHdpcmVEYXRhKQogICAgIG1fZGF0YSA9IHdpcmVEYXRhLmNyb3Nz
VGhyZWFkU3RyaW5nKCk7CiB9CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmRlc2VyaWFsaXplKCkKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQb3J0cykK
IHsKICAgICBpZiAoIW1fZGF0YS5pbXBsKCkpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aAppbmRleCA0ZDI0OTJkLi45Nzk1NWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtMzcsNiArMzcsMTAgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZXNzYWdlUG9ydDsKKwordHlwZWRlZiBWZWN0b3I8
UmVmUHRyPE1lc3NhZ2VQb3J0PiwgMT4gTWVzc2FnZVBvcnRBcnJheTsKKwogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc2VyaWFsaXplQW5kU2V0
UHJvcGVydHkodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LApAQCAtNDksNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmUgdGhyb3duIHVzaW5nIHY4OjpU
aHJvd0V4Y2VwdGlvbigpLCBhbmQgc2V0cyB8ZGlkVGhyb3d8LiBJbiB0aGlzIGNhc2UKICAgICAv
LyB0aGUgY2FsbGVyIG11c3Qgbm90IGludm9rZSBhbnkgVjggb3BlcmF0aW9ucyB1bnRpbCBjb250
cm9sIHJldHVybnMgdG8KICAgICAvLyBWOC4gV2hlbiBzZXJpYWxpemF0aW9uIGlzIHN1Y2Nlc3Nm
dWwsIHxkaWRUaHJvd3wgaXMgZmFsc2UuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBjcmVhdGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBk
aWRUaHJvdyk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBj
cmVhdGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBNZXNzYWdlUG9ydEFycmF5KiwgYm9vbCYgZGlk
VGhyb3cpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3Jl
YXRlKHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBjcmVhdGVGcm9tV2lyZShjb25zdCBTdHJpbmcmIGRhdGEpOwogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgZGF0YSk7CkBAIC02NCw3ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIC8vIERlc2VyaWFs
aXplcyB0aGUgdmFsdWUgKGluIHRoZSBjdXJyZW50IGNvbnRleHQpLiBSZXR1cm5zIGEgbnVsbCB2
YWx1ZSBpbgogICAgIC8vIGNhc2Ugb2YgZmFpbHVyZS4KLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZGVzZXJpYWxpemUoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGVzZXJpYWxpemUo
TWVzc2FnZVBvcnRBcnJheSogPSAwKTsKKyAgICAKIAogcHJpdmF0ZToKICAgICBlbnVtIFN0cmlu
Z0RhdGFNb2RlIHsKQEAgLTczLDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKCk7Ci0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiwgYm9vbCYgZGlkVGhyb3cpOworICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQb3J0cywg
Ym9vbCYgZGlkVGhyb3cpOwogICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25z
dCBTdHJpbmcmIHdpcmVEYXRhKTsKIAogICAgIFN0cmluZyBtX2RhdGE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcApp
bmRleCA0OTEwNWUyLi4zYTNlN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTMxMywzNSArMzEzLDM2
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5l
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
IH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywg
Ym9vbCBkb1RyYW5zZmVyKQogewogICAgIERPTVdpbmRvdyogd2luZG93ID0gVjhET01XaW5kb3c6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCiAgICAgRE9NV2luZG93KiBzb3VyY2UgPSBWOFBy
b3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKS0+ZG9tV2luZG93KCk7CiAgICAg
QVNTRVJUKHNvdXJjZS0+ZnJhbWUoKSk7CiAKLSAgICBib29sIGRpZFRocm93ID0gZmFsc2U7Ci0g
ICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSA9IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRpZFRocm93KTsKLSAgICBpZiAoZGlkVGhyb3cpCi0g
ICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBNZXNzYWdlUG9ydEFycmF5IHBv
cnRBcnJheTsKLSAgICBTdHJpbmcgdGFyZ2V0T3JpZ2luOwotCiAgICAgLy8gVGhpcyBmdW5jdGlv
biBoYXMgdmFyaWFibGUgYXJndW1lbnRzIGFuZCBjYW4gZWl0aGVyIGJlOgogICAgIC8vICAgcG9z
dE1lc3NhZ2UobWVzc2FnZSwgcG9ydCwgdGFyZ2V0T3JpZ2luKTsKICAgICAvLyBvcgogICAgIC8v
ICAgcG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTsKLSAgICB2ODo6VHJ5Q2F0Y2gg
dHJ5Q2F0Y2g7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAyKSB7Ci0gICAgICAgIGlmICghZ2V0
TWVzc2FnZVBvcnRBcnJheShhcmdzWzFdLCBwb3J0QXJyYXkpKQorICAgIE1lc3NhZ2VQb3J0QXJy
YXkgcG9ydEFycmF5OworICAgIFN0cmluZyB0YXJnZXRPcmlnaW47CisgICAgeworICAgICAgICB2
ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7CisgICAgICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMikgewor
ICAgICAgICAgICAgaWYgKCFnZXRNZXNzYWdlUG9ydEFycmF5KGFyZ3NbMV0sIHBvcnRBcnJheSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIHRh
cmdldE9yaWdpbiA9IHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsT3JVbmRlZmluZWRDaGVjayhhcmdz
WzJdKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0YXJnZXRPcmlnaW4gPSB0b1dlYkNv
cmVTdHJpbmdXaXRoTnVsbE9yVW5kZWZpbmVkQ2hlY2soYXJnc1sxXSk7CisKKyAgICAgICAgaWYg
KHRyeUNhdGNoLkhhc0NhdWdodCgpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKLSAgICAgICAgdGFyZ2V0T3JpZ2luID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxPclVuZGVm
aW5lZENoZWNrKGFyZ3NbMl0pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRhcmdldE9yaWdpbiA9
IHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsT3JVbmRlZmluZWRDaGVjayhhcmdzWzFdKTsKICAgICB9
CiAKLSAgICBpZiAodHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpCisKKyAgICBib29sIGRpZFRocm93ID0g
ZmFsc2U7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSA9IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRvVHJhbnNmZXIgPyAmcG9ydEFycmF5
IDogMCwgZGlkVGhyb3cpOworICAgIGlmIChkaWRUaHJvdykKICAgICAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMzUyLDEzICszNTMs
MTMgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERP
TVdpbmRvdzo6cG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ewogICAgIElOQ19TVEFUUygiRE9NLkRPTVdpbmRvdy5wb3N0TWVzc2FnZSgpIik7Ci0gICAgcmV0
dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncyk7CisgICAgcmV0dXJuIGhhbmRsZVBv
c3RNZXNzYWdlQ2FsbGJhY2soYXJncywgZmFsc2UpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhET01XaW5kb3c6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5ET01XaW5kb3cud2Via2l0UG9zdE1l
c3NhZ2UoKSIpOwotICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MpOwor
ICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MsIHRydWUpOwogfQogCiAv
LyBGSVhNRShmcWlhbik6IHJldHVybmluZyBzdHJpbmcgaXMgY2hlYXRpbmcsIGFuZCB3ZSBzaG91
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGlj
YXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggYzM4NTczYS4u
OTVhNjlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTQy
LDE5ICs0MiwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJvb2wgZG9UcmFuc2ZlcikKIHsKICAg
ICBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gVjhEZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBib29sIGRpZFRocm93ID0g
ZmFsc2U7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSA9IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRpZFRocm93KTsKLSAgICBpZiAoZGlk
VGhyb3cpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgTWVzc2FnZVBvcnRB
cnJheSBwb3J0QXJyYXk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAxKSB7CiAgICAgICAgIGlm
ICghZ2V0TWVzc2FnZVBvcnRBcnJheShhcmdzWzFdLCBwb3J0QXJyYXkpKQogICAgICAgICAgICAg
cmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBdLCBk
b1RyYW5zZmVyID8gJnBvcnRBcnJheSA6IDAsIGRpZFRocm93KTsKKyAgICBpZiAoZGlkVGhyb3cp
CisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIHdvcmtlckNvbnRleHQtPnBvc3RNZXNzYWdlKG1lc3NhZ2UucmVsZWFzZSgpLCAm
cG9ydEFycmF5LCBlYyk7CiAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwogfQpAQCAtNjIsMTMg
KzYyLDEzIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Ojpwb3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKEwiRE9NLkRlZGljYXRlZFdvcmtlckNv
bnRleHQucG9zdE1lc3NhZ2UiKTsKLSAgICByZXR1cm4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFj
ayhhcmdzKTsKKyAgICByZXR1cm4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhhcmdzLCBmYWxz
ZSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6
OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsK
ICAgICBJTkNfU1RBVFMoTCJET00uRGVkaWNhdGVkV29ya2VyQ29udGV4dC5wb3N0TWVzc2FnZSIp
OwotICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MpOworICAgIHJldHVy
biBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MsIHRydWUpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIaXN0b3J5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhpc3RvcnlDdXN0b20uY3BwCmluZGV4IGFkMmI5YTkuLmJmOTgxNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOEhpc3Rvcnk6OnB1c2hTdGF0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOwotICAgIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGhpc3RvcnlTdGF0ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KGFyZ3NbMF0sIGRpZFRocm93KTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBo
aXN0b3J5U3RhdGUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBdLCAwLCBk
aWRUaHJvdyk7CiAgICAgaWYgKGRpZFRocm93KQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOwogCkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhpc3Rvcnk6
OnB1c2hTdGF0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhIaXN0b3J5OjpyZXBsYWNlU3RhdGVDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogewogICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKLSAgICBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBoaXN0b3J5U3RhdGUgPSBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZShhcmdzWzBdLCBkaWRUaHJvdyk7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gaGlzdG9yeVN0YXRlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoYXJn
c1swXSwgMCwgZGlkVGhyb3cpOwogICAgIGlmIChkaWRUaHJvdykKICAgICAgICAgcmV0dXJuIHY4
OjpVbmRlZmluZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggNjA0N2NkZC4uZjY5M2Nk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC01Myw3ICs1Myw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOE1lc3NhZ2VFdmVudDo6ZGF0YUFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuCiAgICAgc3dpdGNoIChldmVudC0+ZGF0YVR5cGUoKSkgewogICAgIGNhc2UgTWVz
c2FnZUV2ZW50OjpEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZToKICAgICAgICAgaWYgKFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRhdGFBc1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSgpKQotICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVl
LT5kZXNlcmlhbGl6ZSgpOworICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVlLT5k
ZXNlcmlhbGl6ZShldmVudC0+cG9ydHMoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJl
c3VsdCA9IHY4OjpOdWxsKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwCmluZGV4
IDU1NDNhMWIuLmRkOTk3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTQyLDE4ICs0MiwxOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQorc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJvb2wgZG9UcmFuc2ZlcikKIHsKICAgICBNZXNzYWdlUG9y
dCogbWVzc2FnZVBvcnQgPSBWOE1lc3NhZ2VQb3J0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBib29sIGRpZFRocm93ID0gZmFsc2U7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gbWVzc2FnZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRp
ZFRocm93KTsKLSAgICBpZiAoZGlkVGhyb3cpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0QXJyYXk7CiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPiAxKSB7CiAgICAgICAgIGlmICghZ2V0TWVzc2FnZVBvcnRBcnJheShhcmdzWzFdLCBwb3J0
QXJyYXkpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9CisgICAg
Ym9vbCBkaWRUaHJvdyA9IGZhbHNlOworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBdLCBkb1RyYW5z
ZmVyID8gJnBvcnRBcnJheSA6IDAsIGRpZFRocm93KTsKKyAgICBpZiAoZGlkVGhyb3cpCisgICAg
ICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgbWVzc2FnZVBvcnQtPnBvc3RNZXNzYWdlKG1lc3NhZ2UucmVsZWFzZSgpLCAmcG9ydEFycmF5
LCBlYyk7CiAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwpAQCAtNjIsMTMgKzYyLDEzIEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdlUG9y
dDo6cG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAg
IElOQ19TVEFUUygiRE9NLk1lc3NhZ2VQb3J0LnBvc3RNZXNzYWdlIik7Ci0gICAgcmV0dXJuIGhh
bmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncyk7CisgICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNz
YWdlQ2FsbGJhY2soYXJncywgZmFsc2UpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhN
ZXNzYWdlUG9ydDo6d2Via2l0UG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLk1lc3NhZ2VQb3J0LndlYmtpdFBvc3RNZXNz
YWdlIik7Ci0gICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncyk7CisgICAg
cmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncywgdHJ1ZSk7CiB9CiAKIGJvb2wg
Z2V0TWVzc2FnZVBvcnRBcnJheSh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgTWVzc2FnZVBv
cnRBcnJheSYgcG9ydEFycmF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5jcHAKaW5kZXggYTg0MTIwYS4uNDMwOTcyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20u
Y3BwCkBAIC00NywxOSArNDcsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9z
dE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBib29sIGRvVHJhbnNm
ZXIpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV29ya2VyLnBvc3RNZXNzYWdlIik7CiAgICAgV29y
a2VyKiB3b3JrZXIgPSBWOFdvcmtlcjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgYm9v
bCBkaWRUaHJvdyA9IGZhbHNlOwotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1l
c3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBdLCBkaWRUaHJvdyk7
Ci0gICAgaWYgKGRpZFRocm93KQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAg
IE1lc3NhZ2VQb3J0QXJyYXkgcG9ydEFycmF5OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMSkg
ewogICAgICAgICBpZiAoIWdldE1lc3NhZ2VQb3J0QXJyYXkoYXJnc1sxXSwgcG9ydEFycmF5KSkK
ICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQorICAgIGJvb2wgZGlk
VGhyb3cgPSBmYWxzZTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdl
ID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoYXJnc1swXSwgZG9UcmFuc2ZlciA/ICZw
b3J0QXJyYXkgOiAwLCBkaWRUaHJvdyk7CisgICAgaWYgKGRpZFRocm93KQorICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHdvcmtl
ci0+cG9zdE1lc3NhZ2UobWVzc2FnZS5yZWxlYXNlKCksICZwb3J0QXJyYXksIGVjKTsKICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihlYyk7CkBAIC02OCwxMyArNjgsMTMgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdvcmtlcjo6cG9zdE1lc3NhZ2VDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldv
cmtlci5wb3N0TWVzc2FnZSIpOwotICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNr
KGFyZ3MpOworICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MsIGZhbHNl
KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V29ya2VyOjp3ZWJraXRQb3N0TWVzc2Fn
ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uV29ya2VyLndlYmtpdFBvc3RNZXNzYWdlIik7Ci0gICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNz
YWdlQ2FsbGJhY2soYXJncyk7CisgICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2so
YXJncywgdHJ1ZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCmluZGV4IDA4OGRi
OGUuLjQ2ZTdlZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKQEAgLTQ0LDkgKzQ0LDkg
QEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1l
c3NhZ2U7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pB
VkFTQ1JJUFQKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBTZXJpYWxpc2Vk
U2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSBtZXNzYWdlUG9ydHMpCisg
ICAgICAgIFtDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVl
IG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJyYXkgbWVzc2FnZVBvcnRzKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgd2Via2l0UG9zdE1l
c3NhZ2UoaW4gU2VyaWFsaXNlZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJy
YXkgbWVzc2FnZVBvcnRzKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdl
KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBbT3B0aW9uYWxdIEFycmF5IG1l
c3NhZ2VQb3J0cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKICAg
ICAgICAgLy8gVGhlcmUncyBubyBnb29kIHdheSB0byBleHBvc2UgYW4gYXJyYXkgdmlhIHRoZSBP
YmpDIGJpbmRpbmdzLCBzbyBmb3Igbm93IGp1c3QgYWxsb3cgcGFzc2luZyBpbiBhIHNpbmdsZSBw
b3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmYjQ4ZDk4Li5kNzE3YjU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE0ICBEbWl0
cnkgTG9tb3YgIDxkc2xvbW92QGdvb2dsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTIwCisgICAgICAgIFtDaHJvbWl1bV0gUGFzcyBN
ZXNzYWdlUG9ydEFycmF5IHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6c2VyaWFsaXplL2Rlc2Vy
aWFsaXplLgorICAgICAgICBUaGlzIHBhdGNoIGF1Z21lbnRzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSB3aXRoIE1lc3NhZ2VQb3J0QXJyYXkqIHBhcmFtZXRlciB0byBpbXBsZW1lbnQgTWVzc2FnZVBv
cnQgCisgICAgICAgIHRyYW5zZmVyIHdpdGhpbiB0aGUgbWVzc2FnZSBpbiB0aGUgZnV0dXJlLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKToKKwogMjAxMS0xMC0xMyAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgbGF5ZXJYIC8gbGF5
ZXJZIGZyb20gdGhlIENocm9taXVtIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggZTE5OTdlYi4uOWYz
YmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmZyb21TdHJpbmcoY29uc3QgV2ViU3Ry
aW5nJiBzCiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpzZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogewogICAgIGJvb2wgZGlk
VGhyb3c7Ci0gICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRWYWx1ZSA9IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBkaWRUaHJvdyk7CisgICAgV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRWYWx1ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAwLCBkaWRUaHJvdyk7CiAgICAgaWYgKGRpZFRocm93KQogICAgICAg
ICByZXR1cm4gY3JlYXRlSW52YWxpZCgpOwogICAgIHJldHVybiBzZXJpYWxpemVkVmFsdWU7Cg==
</data>
<flag name="review"
          id="108723"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="108724"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111042</attachid>
            <date>2011-10-14 12:02:25 -0700</date>
            <delta_ts>2011-10-14 15:12:09 -0700</delta_ts>
            <desc>CR feedback</desc>
            <filename>70120.patch</filename>
            <type>text/plain</type>
            <size>20581</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYzhiYzU0Li5jNWE4YTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTEtMTAtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMjAKKyAgICAg
ICAgW0Nocm9taXVtXSBQYXNzIE1lc3NhZ2VQb3J0QXJyYXkgdG8gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpzZXJpYWxpemUvZGVzZXJpYWxpemUuCisgICAgICAgIFRoaXMgcGF0Y2ggYXVnbWVudHMg
U2VyaWFsaXplZFNjcmlwdFZhbHVlIHdpdGggTWVzc2FnZVBvcnRBcnJheSogcGFyYW1ldGVyIHRv
IGltcGxlbWVudCBNZXNzYWdlUG9ydCAKKyAgICAgICAgdHJhbnNmZXIgd2l0aGluIHRoZSBtZXNz
YWdlIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAg
KEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OnBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6OnBvc3RNZXNzYWdlQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Ojp3ZWJr
aXRQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhI
aXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SGlzdG9yeTo6cHVzaFN0YXRl
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5OjpyZXBsYWNlU3RhdGVDYWxs
YmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VjhNZXNzYWdlUG9ydDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpWOE1lc3NhZ2VQb3J0Ojp3ZWJraXRQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpW
OFdvcmtlcjo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdvcmtl
cjo6d2Via2l0UG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIu
aWRsOgorCiAyMDExLTEwLTEzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT046IEhpZ2ggZnJlcXVlbmN5IG1lbW9yeSB3YXJuaW5ncyBjYXVz
ZSBTYWZhcmkgdG8gaG9nIHRoZSBDUFUgZG9pbmcgdXNlbGVzcyBnYXJiYWdlIGNvbGxlY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KaW5kZXggZjJmNGRhZC4uNzFhY2U2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE0NTgsNyArMTQ1OCw3IEBAIHN1
YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICB9IGVsc2lmICgkcGFyYW1ldGVyLT50
eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiKTsKICAgICAgICAgICAgICRwYXJhbWV0
ZXJDaGVja1N0cmluZyAuPSAiICAgIGJvb2wgJHtwYXJhbWV0ZXJOYW1lfURpZFRocm93ID0gZmFs
c2U7XG4iOwotICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgJG5hdGl2
ZVR5cGUgJHBhcmFtZXRlck5hbWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdz
WyRwYXJhbUluZGV4XSwgJHtwYXJhbWV0ZXJOYW1lfURpZFRocm93KTtcbiI7CisgICAgICAgICAg
ICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICAkbmF0aXZlVHlwZSAkcGFyYW1ldGVyTmFt
ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbJHBhcmFtSW5kZXhdLCAwLCAk
e3BhcmFtZXRlck5hbWV9RGlkVGhyb3cpO1xuIjsKICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVj
a1N0cmluZyAuPSAiICAgIGlmICgke3BhcmFtZXRlck5hbWV9RGlkVGhyb3cpXG4iOwogICAgICAg
ICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6VW5kZWZp
bmVkKCk7XG4iOwogICAgICAgICB9IGVsc2lmIChUeXBlQ2FuRmFpbENvbnZlcnNpb24oJHBhcmFt
ZXRlcikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwCmluZGV4IDJkOWQwY2QuLmU1ZWNmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNDYs
NiArNDYsNyBAQAogI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKICNpbmNsdWRlICJJbnQzMkFycmF5
LmgiCiAjaW5jbHVkZSAiSW50OEFycmF5LmgiCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJVaW50MTZBcnJheS5oIgogI2luY2x1
ZGUgIlVpbnQzMkFycmF5LmgiCkBAIC0xODQwLDcgKzE4NDEsNiBAQCBwcml2YXRlOgogfTsKIAog
fSAvLyBuYW1lc3BhY2UKLQogdm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXpl
QW5kU2V0UHJvcGVydHkodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QsIGNvbnN0IGNoYXIq
IHByb3BlcnR5TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSBhdHRyaWJ1dGUsIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSogdmFsdWUpCiB7CkBAIC0xODU2LDE1ICsxODU2LDE1IEBAIHZvaWQgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUFuZFNldFByb3BlcnR5KHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gb2JqCiAgICAgZGVzZXJpYWxpemVBbmRTZXRQcm9wZXJ0eShvYmplY3QsIHByb3Bl
cnR5TmFtZSwgYXR0cmlidXRlLCB2YWx1ZS5nZXQoKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIGRpZFRocm93KQorUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSogbWVzc2FnZVBvcnRzLCBib29sJiBkaWRU
aHJvdykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSh2
YWx1ZSwgZGlkVGhyb3cpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSh2YWx1ZSwgbWVzc2FnZVBvcnRzLCBkaWRUaHJvdykpOwogfQogCiBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogewogICAgIGJvb2wgZGlkVGhyb3c7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUodmFsdWUsIGRpZFRocm93KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUodmFsdWUsIDAs
IGRpZFRocm93KSk7CiB9CiAKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlKGNvbnN0IFN0cmluZyYgZGF0YSkKQEAg
LTE5MjAsNyArMTkyMCw3IEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKCkKIHsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBkaWRUaHJvdykKK1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSosIGJvb2wmIGRpZFRocm93KQogewogICAgIGRp
ZFRocm93ID0gZmFsc2U7CiAgICAgV3JpdGVyIHdyaXRlcjsKQEAgLTE5NjUsNyArMTk2NSw3IEBA
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0IFN0cmlu
ZyYgd2lyZURhdGEpCiAgICAgbV9kYXRhID0gd2lyZURhdGEuY3Jvc3NUaHJlYWRTdHJpbmcoKTsK
IH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJp
YWxpemUoKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVz
ZXJpYWxpemUoTWVzc2FnZVBvcnRBcnJheSopCiB7CiAgICAgaWYgKCFtX2RhdGEuaW1wbCgpKQog
ICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggNGQyNDkyZC4uYTU1OWNmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgKQEAgLTM3LDYgKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTWVz
c2FnZVBvcnQ7CisKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4sIDE+IE1lc3Nh
Z2VQb3J0QXJyYXk7CisKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBkZXNlcmlhbGl6ZUFuZFNldFByb3BlcnR5KHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4sIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwKQEAgLTQ5LDcgKzUzLDcgQEAgcHVibGljOgog
ICAgIC8vIGJlIHRocm93biB1c2luZyB2ODo6VGhyb3dFeGNlcHRpb24oKSwgYW5kIHNldHMgfGRp
ZFRocm93fC4gSW4gdGhpcyBjYXNlCiAgICAgLy8gdGhlIGNhbGxlciBtdXN0IG5vdCBpbnZva2Ug
YW55IFY4IG9wZXJhdGlvbnMgdW50aWwgY29udHJvbCByZXR1cm5zIHRvCiAgICAgLy8gVjguIFdo
ZW4gc2VyaWFsaXphdGlvbiBpcyBzdWNjZXNzZnVsLCB8ZGlkVGhyb3d8IGlzIGZhbHNlLgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgZGlkVGhyb3cpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwg
TWVzc2FnZVBvcnRBcnJheSosIGJvb2wmIGRpZFRocm93KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlRnJvbVdp
cmUoY29uc3QgU3RyaW5nJiBkYXRhKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEpOwpAQCAtNjQsNyArNjgsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBEZXNlcmlhbGl6ZXMgdGhlIHZhbHVlIChpbiB0aGUgY3VycmVu
dCBjb250ZXh0KS4gUmV0dXJucyBhIG51bGwgdmFsdWUgaW4KICAgICAvLyBjYXNlIG9mIGZhaWx1
cmUuCi0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRlc2VyaWFsaXplKCk7CisgICAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGRlc2VyaWFsaXplKE1lc3NhZ2VQb3J0QXJyYXkqID0gMCk7CiAKIHBy
aXZhdGU6CiAgICAgZW51bSBTdHJpbmdEYXRhTW9kZSB7CkBAIC03Myw3ICs3Nyw3IEBAIHByaXZh
dGU6CiAgICAgfTsKIAogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOwotICAgIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIGJvb2wmIGRpZFRocm93KTsKKyAg
ICBTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBNZXNzYWdlUG9y
dEFycmF5KiwgYm9vbCYgZGlkVGhyb3cpOwogICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShjb25zdCBTdHJpbmcmIHdpcmVEYXRhKTsKIAogICAgIFN0cmluZyBtX2RhdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCA0OTEwNWUyLi4zYTNlN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTMxMywz
NSArMzEzLDM2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdpbmRvdzo6cmVtb3ZlRXZl
bnRMaXN0ZW5lckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVz
c2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncywgYm9vbCBkb1RyYW5zZmVyKQogewogICAgIERPTVdpbmRvdyogd2luZG93ID0gVjhE
T01XaW5kb3c6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCiAgICAgRE9NV2luZG93KiBzb3Vy
Y2UgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKS0+ZG9tV2luZG93
KCk7CiAgICAgQVNTRVJUKHNvdXJjZS0+ZnJhbWUoKSk7CiAKLSAgICBib29sIGRpZFRocm93ID0g
ZmFsc2U7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSA9IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRpZFRocm93KTsKLSAgICBpZiAoZGlk
VGhyb3cpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBNZXNzYWdlUG9y
dEFycmF5IHBvcnRBcnJheTsKLSAgICBTdHJpbmcgdGFyZ2V0T3JpZ2luOwotCiAgICAgLy8gVGhp
cyBmdW5jdGlvbiBoYXMgdmFyaWFibGUgYXJndW1lbnRzIGFuZCBjYW4gZWl0aGVyIGJlOgogICAg
IC8vICAgcG9zdE1lc3NhZ2UobWVzc2FnZSwgcG9ydCwgdGFyZ2V0T3JpZ2luKTsKICAgICAvLyBv
cgogICAgIC8vICAgcG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTsKLSAgICB2ODo6
VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAyKSB7Ci0gICAgICAg
IGlmICghZ2V0TWVzc2FnZVBvcnRBcnJheShhcmdzWzFdLCBwb3J0QXJyYXkpKQorICAgIE1lc3Nh
Z2VQb3J0QXJyYXkgcG9ydEFycmF5OworICAgIFN0cmluZyB0YXJnZXRPcmlnaW47CisgICAgewor
ICAgICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7CisgICAgICAgIGlmIChhcmdzLkxlbmd0aCgp
ID4gMikgeworICAgICAgICAgICAgaWYgKCFnZXRNZXNzYWdlUG9ydEFycmF5KGFyZ3NbMV0sIHBv
cnRBcnJheSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKyAgICAg
ICAgICAgIHRhcmdldE9yaWdpbiA9IHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsT3JVbmRlZmluZWRD
aGVjayhhcmdzWzJdKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0YXJnZXRPcmlnaW4g
PSB0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbE9yVW5kZWZpbmVkQ2hlY2soYXJnc1sxXSk7CisKKyAg
ICAgICAgaWYgKHRyeUNhdGNoLkhhc0NhdWdodCgpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKLSAgICAgICAgdGFyZ2V0T3JpZ2luID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51
bGxPclVuZGVmaW5lZENoZWNrKGFyZ3NbMl0pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRhcmdl
dE9yaWdpbiA9IHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsT3JVbmRlZmluZWRDaGVjayhhcmdzWzFd
KTsKICAgICB9CiAKLSAgICBpZiAodHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpCisKKyAgICBib29sIGRp
ZFRocm93ID0gZmFsc2U7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2Fn
ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRvVHJhbnNmZXIgPyAm
cG9ydEFycmF5IDogMCwgZGlkVGhyb3cpOworICAgIGlmIChkaWRUaHJvdykKICAgICAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMzUy
LDEzICszNTMsMTMgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVz
c2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLkRPTVdpbmRvdy5wb3N0TWVzc2FnZSgpIik7
Ci0gICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncyk7CisgICAgcmV0dXJu
IGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncywgZmFsc2UpOwogfQogCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhET01XaW5kb3c6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5ET01XaW5kb3cud2Vi
a2l0UG9zdE1lc3NhZ2UoKSIpOwotICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNr
KGFyZ3MpOworICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MsIHRydWUp
OwogfQogCiAvLyBGSVhNRShmcWlhbik6IHJldHVybmluZyBzdHJpbmcgaXMgY2hlYXRpbmcsIGFu
ZCB3ZSBzaG91bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKaW5kZXgg
YzM4NTczYS4uOTVhNjlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5j
cHAKQEAgLTQyLDE5ICs0MiwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0
TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJvb2wgZG9UcmFuc2Zl
cikKIHsKICAgICBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gVjhEZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBib29sIGRp
ZFRocm93ID0gZmFsc2U7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2Fn
ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRpZFRocm93KTsKLSAg
ICBpZiAoZGlkVGhyb3cpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgTWVz
c2FnZVBvcnRBcnJheSBwb3J0QXJyYXk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAxKSB7CiAg
ICAgICAgIGlmICghZ2V0TWVzc2FnZVBvcnRBcnJheShhcmdzWzFdLCBwb3J0QXJyYXkpKQogICAg
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CisgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOworICAgIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShh
cmdzWzBdLCBkb1RyYW5zZmVyID8gJnBvcnRBcnJheSA6IDAsIGRpZFRocm93KTsKKyAgICBpZiAo
ZGlkVGhyb3cpCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogICAgIHdvcmtlckNvbnRleHQtPnBvc3RNZXNzYWdlKG1lc3NhZ2UucmVs
ZWFzZSgpLCAmcG9ydEFycmF5LCBlYyk7CiAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwogfQpA
QCAtNjIsMTMgKzYyLDEzIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9z
dE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Ojpwb3N0TWVzc2FnZUNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKEwiRE9NLkRlZGljYXRl
ZFdvcmtlckNvbnRleHQucG9zdE1lc3NhZ2UiKTsKLSAgICByZXR1cm4gaGFuZGxlUG9zdE1lc3Nh
Z2VDYWxsYmFjayhhcmdzKTsKKyAgICByZXR1cm4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhh
cmdzLCBmYWxzZSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERlZGljYXRlZFdvcmtl
ckNvbnRleHQ6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoTCJET00uRGVkaWNhdGVkV29ya2VyQ29udGV4dC5wb3N0
TWVzc2FnZSIpOwotICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MpOwor
ICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFyZ3MsIHRydWUpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCmluZGV4IGFkMmI5YTkuLmJmOTgxNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlD
dXN0b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEhpc3Rvcnk6OnB1c2hTdGF0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOwotICAgIFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IGhpc3RvcnlTdGF0ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKGFyZ3NbMF0sIGRpZFRocm93KTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBoaXN0b3J5U3RhdGUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdz
WzBdLCAwLCBkaWRUaHJvdyk7CiAgICAgaWYgKGRpZFRocm93KQogICAgICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwogCkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEhpc3Rvcnk6OnB1c2hTdGF0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIaXN0b3J5OjpyZXBsYWNlU3RhdGVDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKLSAg
ICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBoaXN0b3J5U3RhdGUgPSBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBdLCBkaWRUaHJvdyk7CisgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gaGlzdG9yeVN0YXRlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpj
cmVhdGUoYXJnc1swXSwgMCwgZGlkVGhyb3cpOwogICAgIGlmIChkaWRUaHJvdykKICAgICAgICAg
cmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggNjA0N2Nk
ZC4uZjY5M2NkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC01Myw3ICs1Myw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VFdmVudDo6ZGF0YUFjY2Vzc29yR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuCiAgICAgc3dpdGNoIChldmVudC0+ZGF0YVR5cGUoKSkgewogICAg
IGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZToKICAgICAg
ICAgaWYgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRh
dGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpKQotICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFs
aXplZFZhbHVlLT5kZXNlcmlhbGl6ZSgpOworICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXpl
ZFZhbHVlLT5kZXNlcmlhbGl6ZShldmVudC0+cG9ydHMoKSk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHJlc3VsdCA9IHY4OjpOdWxsKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20u
Y3BwCmluZGV4IDU1NDNhMWIuLmRkOTk3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTQyLDE4
ICs0MiwxOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJvb2wgZG9UcmFuc2ZlcikKIHsKICAgICBN
ZXNzYWdlUG9ydCogbWVzc2FnZVBvcnQgPSBWOE1lc3NhZ2VQb3J0Ojp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBib29sIGRpZFRocm93ID0gZmFsc2U7Ci0gICAgUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFy
Z3NbMF0sIGRpZFRocm93KTsKLSAgICBpZiAoZGlkVGhyb3cpCi0gICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0QXJyYXk7CiAgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPiAxKSB7CiAgICAgICAgIGlmICghZ2V0TWVzc2FnZVBvcnRBcnJheShhcmdz
WzFdLCBwb3J0QXJyYXkpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAg
ICB9CisgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOworICAgIFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBd
LCBkb1RyYW5zZmVyID8gJnBvcnRBcnJheSA6IDAsIGRpZFRocm93KTsKKyAgICBpZiAoZGlkVGhy
b3cpCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgbWVzc2FnZVBvcnQtPnBvc3RNZXNzYWdlKG1lc3NhZ2UucmVsZWFzZSgpLCAm
cG9ydEFycmF5LCBlYyk7CiAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwpAQCAtNjIsMTMgKzYy
LDEzIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhN
ZXNzYWdlUG9ydDo6cG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogewogICAgIElOQ19TVEFUUygiRE9NLk1lc3NhZ2VQb3J0LnBvc3RNZXNzYWdlIik7Ci0gICAg
cmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncyk7CisgICAgcmV0dXJuIGhhbmRs
ZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncywgZmFsc2UpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhNZXNzYWdlUG9ydDo6d2Via2l0UG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLk1lc3NhZ2VQb3J0LndlYmtp
dFBvc3RNZXNzYWdlIik7Ci0gICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJn
cyk7CisgICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncywgdHJ1ZSk7CiB9
CiAKIGJvb2wgZ2V0TWVzc2FnZVBvcnRBcnJheSh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
TWVzc2FnZVBvcnRBcnJheSYgcG9ydEFycmF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5jcHAKaW5kZXggYTg0MTIwYS4uNDMwOTcy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2Vy
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3Jr
ZXJDdXN0b20uY3BwCkBAIC00NywxOSArNDcsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBib29s
IGRvVHJhbnNmZXIpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV29ya2VyLnBvc3RNZXNzYWdlIik7
CiAgICAgV29ya2VyKiB3b3JrZXIgPSBWOFdvcmtlcjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOwotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzBdLCBk
aWRUaHJvdyk7Ci0gICAgaWYgKGRpZFRocm93KQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOwogICAgIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydEFycmF5OwogICAgIGlmIChhcmdzLkxlbmd0
aCgpID4gMSkgewogICAgICAgICBpZiAoIWdldE1lc3NhZ2VQb3J0QXJyYXkoYXJnc1sxXSwgcG9y
dEFycmF5KSkKICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQorICAg
IGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoYXJnc1swXSwgZG9UcmFu
c2ZlciA/ICZwb3J0QXJyYXkgOiAwLCBkaWRUaHJvdyk7CisgICAgaWYgKGRpZFRocm93KQorICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwog
ICAgIHdvcmtlci0+cG9zdE1lc3NhZ2UobWVzc2FnZS5yZWxlYXNlKCksICZwb3J0QXJyYXksIGVj
KTsKICAgICByZXR1cm4gdGhyb3dFcnJvcihlYyk7CkBAIC02OCwxMyArNjgsMTMgQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdvcmtlcjo6cG9zdE1l
c3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiRE9NLldvcmtlci5wb3N0TWVzc2FnZSIpOwotICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2Fn
ZUNhbGxiYWNrKGFyZ3MpOworICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKGFy
Z3MsIGZhbHNlKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V29ya2VyOjp3ZWJraXRQ
b3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5D
X1NUQVRTKCJET00uV29ya2VyLndlYmtpdFBvc3RNZXNzYWdlIik7Ci0gICAgcmV0dXJuIGhhbmRs
ZVBvc3RNZXNzYWdlQ2FsbGJhY2soYXJncyk7CisgICAgcmV0dXJuIGhhbmRsZVBvc3RNZXNzYWdl
Q2FsbGJhY2soYXJncywgdHJ1ZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCmlu
ZGV4IDA4OGRiOGUuLjQ2ZTdlZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKQEAgLTQ0
LDkgKzQ0LDkgQEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbm1lc3NhZ2U7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExB
TkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBT
ZXJpYWxpc2VkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSBtZXNzYWdl
UG9ydHMpCisgICAgICAgIFtDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJyYXkgbWVzc2FnZVBvcnRzKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgd2Vi
a2l0UG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXNlZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGluIFtPcHRp
b25hbF0gQXJyYXkgbWVzc2FnZVBvcnRzKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtpdFBv
c3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBbT3B0aW9uYWxd
IEFycmF5IG1lc3NhZ2VQb3J0cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwog
I2Vsc2UKICAgICAgICAgLy8gVGhlcmUncyBubyBnb29kIHdheSB0byBleHBvc2UgYW4gYXJyYXkg
dmlhIHRoZSBPYmpDIGJpbmRpbmdzLCBzbyBmb3Igbm93IGp1c3QgYWxsb3cgcGFzc2luZyBpbiBh
IHNpbmdsZSBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmYjQ4ZDk4Li5lYWEx
ZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEw
LTE0ICBEbWl0cnkgTG9tb3YgIDxkc2xvbW92QGdvb2dsZS5jb20+CisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTIwCisgICAgICAgIFtDaHJvbWl1
bV0gUGFzcyBNZXNzYWdlUG9ydEFycmF5IHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6c2VyaWFs
aXplL2Rlc2VyaWFsaXplLgorICAgICAgICBUaGlzIHBhdGNoIGF1Z21lbnRzIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSB3aXRoIE1lc3NhZ2VQb3J0QXJyYXkqIHBhcmFtZXRlciB0byBpbXBsZW1lbnQg
TWVzc2FnZVBvcnQgCisgICAgICAgIHRyYW5zZmVyIHdpdGhpbiB0aGUgbWVzc2FnZSBpbiB0aGUg
ZnV0dXJlLgorCisgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgorCisgICAgICAgICog
c3JjL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKToKKwogMjAxMS0xMC0xMyAgSnVsaWVuIENo
YWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgbGF5ZXJY
IC8gbGF5ZXJZIGZyb20gdGhlIENocm9taXVtIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggZTE5OTdl
Yi4uOWYzYmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmZyb21TdHJpbmcoY29uc3Qg
V2ViU3RyaW5nJiBzCiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpzZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogewogICAgIGJv
b2wgZGlkVGhyb3c7Ci0gICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRWYWx1
ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBkaWRUaHJvdyk7CisgICAg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRWYWx1ZSA9IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAwLCBkaWRUaHJvdyk7CiAgICAgaWYgKGRpZFRocm93KQog
ICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCgpOwogICAgIHJldHVybiBzZXJpYWxpemVkVmFs
dWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>