<?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>52429</bug_id>
          
          <creation_ts>2011-01-14 00:37:13 -0800</creation_ts>
          <short_desc>Web Inspector: extract InspectorSettings from InspectorState, simplify it.</short_desc>
          <delta_ts>2011-01-14 01:57:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>334150</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-14 00:37:13 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334153</commentid>
    <comment_count>1</comment_count>
      <attachid>78900</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-14 00:43:42 -0800</bug_when>
    <thetext>Created attachment 78900
[PATCH] Proposed change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334158</commentid>
    <comment_count>2</comment_count>
      <attachid>78900</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-14 00:52:40 -0800</bug_when>
    <thetext>Comment on attachment 78900
[PATCH] Proposed change

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

&gt; Source/WebCore/inspector/InspectorController.cpp:194
&gt;  {

These 4 methods should live in the WebKit layer.

&gt; Source/WebCore/inspector/InspectorController.cpp:852
&gt; +    m_state-&gt;setBoolean(InspectorState::monitoringXHR, m_settings-&gt;getBoolean(InspectorSettings::MonitoringXHREnabled));

How will corresponding setting be changed when this property is modified on the state?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334163</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-14 01:05:42 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 78900 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78900&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorController.cpp:194
&gt; &gt;  {
&gt; 
&gt; These 4 methods should live in the WebKit layer.
&gt; 

Yes, I remember you wanted to do that properly.

&gt; &gt; Source/WebCore/inspector/InspectorController.cpp:852
&gt; &gt; +    m_state-&gt;setBoolean(InspectorState::monitoringXHR, m_settings-&gt;getBoolean(InspectorSettings::MonitoringXHREnabled));
&gt; 
&gt; How will corresponding setting be changed when this property is modified on the state?

See line 468.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334183</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-14 01:48:29 -0800</bug_when>
    <thetext>Landed as r75777.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334194</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-14 01:57:54 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75777 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78900</attachid>
            <date>2011-01-14 00:43:42 -0800</date>
            <delta_ts>2011-01-14 01:17:55 -0800</delta_ts>
            <desc>[PATCH] Proposed change</desc>
            <filename>settings</filename>
            <type>text/plain</type>
            <size>35198</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTgzZWE1MS4uNTY0YmVjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTExNjUsMTAgKzExNjUsMTEgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCi0gICAgaW5zcGVj
dG9yL0luc3BlY3RvclZhbHVlcy5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3Mu
Y3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNwcAorICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3BwCiAgICAgaW5zcGVjdG9yL1Nj
cmlwdEFyZ3VtZW50cy5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5jcHAKICAg
ICBpbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgyOWFkMmUuLjQ3
MDI1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMS0wMS0xNCAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IEluc3BlY3RvclNl
dHRpbmdzIGZyb20gSW5zcGVjdG9yU3RhdGUsCisgICAgICAgIHNpbXBsaWZ5IGl0LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0MjkKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdG9yU3Rh
cnRzQXR0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0
SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6c2V0SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdG9yZURlYnVnZ2VyKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3RvcmVQcm9maWxlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbnN1cmVTZXR0aW5nc0xv
YWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVQcm9m
aWxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNhYmxlUHJv
ZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlRGVi
dWdnZXJGcm9tRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlzYWJsZURlYnVnZ2VyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2V0dGluZ3M6Okluc3BlY3RvclNldHRpbmdz
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNldHRpbmdzOjpnZXRCb29sZWFuKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNldHRpbmdzOjpzZXRCb29sZWFuKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclNldHRpbmdzOjpnZXRMb25nKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclNldHRpbmdzOjpzZXRMb25nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clNldHRpbmdzOjpyZWdpc3RlckJvb2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
U2V0dGluZ3M6OnJlZ2lzdGVyTG9uZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNl
dHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdGF0ZTo6SW5zcGVjdG9yU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclN0YXRlOjpzZXRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yU3RhdGU6OnJlZ2lzdGVyQm9vbGVhbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dGF0ZTo6cmVnaXN0ZXJTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6
OnJlZ2lzdGVyTG9uZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdGF0ZTo6cmVnaXN0
ZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6OlByb3BlcnR5Ojpj
cmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6OnNldEJvb2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yU3RhdGU6OnNldFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dGF0ZTo6c2V0TG9uZyk6CisKIDIwMTEtMDEtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkOiBRdCBidWlsZCBmaXguCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCmluZGV4IDgzYzU0M2IuLjZmMTcxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CkBAIC0xOTczLDYgKzE5NzMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclNldHRpbmdzLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IGFlOTY5MzkuLjUwNWM0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTIwMjksNiArMjAyOSw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuaCcsCisgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvclN0YXRlLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDM5YmI3MzguLjA2ZDY5NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC0xMDU3LDYgKzEwNTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgXAorICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JTdGF0ZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBcCiAg
ICAgaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIFwKQEAgLTE5NDgsNiArMTk0
OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBcCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3Rv
clNldHRpbmdzLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oIFwKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlOGZiYjk3Li43NWQyYWViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjQ3LDYgKzE2NDcs
OCBAQAogCQk3QTI0NTg3QjEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EyNDU4Nzkx
MDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCAqLzsgfTsKIAkJN0EyNDU4
N0MxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTI0NTg3QTEwMjFFQUY0MDAwQTAwQUEg
LyogSW5zcGVjdG9yRE9NQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QTU2M0Y5NjEyREY1QzkxMDBGNDUzNkQgLyogSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QTU2M0Y5NTEyREY1QzkxMDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgKi87
IH07CisJCTdBNTY0MEJGMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTU2NDBCRDEy
REY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuY3BwICovOyB9OworCQk3QTU2NDBD
MDEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNTY0MEJFMTJERjlFNUUwMEY0NTM2RCAv
KiBJbnNwZWN0b3JTZXR0aW5ncy5oICovOyB9OwogCQk3QTY3NEJEQjBGOUVCRjRFMDA2Q0YwOTkg
LyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwICovOyB9OwogCQk3QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVy
cmVyLmggKi87IH07CiAJCTdBNzRFQ0JBMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0E3NEVDQjgxMDE4MzlBNTAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5jcHAgKi87IH07CkBAIC04MDUyLDYgKzgwNTQsOCBAQAogCQk3QTI0NTg3QTEwMjFFQUY0MDAw
QTAwQUEgLyogSW5zcGVjdG9yRE9NQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9yRE9NQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0E1NjNFNTQxMkRFMzJCMDAwRjQ1MzZEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNTYzRjk1MTJERjVDOTEwMEY0NTM2RCAvKiBJbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0
aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3QTU2NDBCRDEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU2V0dGluZ3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTU2NDBCRTEyREY5RTVFMDBGNDUzNkQgLyog
SW5zcGVjdG9yU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2NzRCRDkw
RjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
Z2VHcm91cExvYWREZWZlcnJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTc0
RUNCODEwMTgzOUE1MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjkwMyw2ICsxMjkwNyw4IEBA
CiAJCQkJN0EwRTc2RjcxMEJGMDhFRDAwQTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5oICov
LAogCQkJCTdBMEU3NkY4MTBCRjA4RUQwMEEwMjc2RSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuaWRs
ICovLAogCQkJCTdBNTYzRjk1MTJERjVDOTEwMEY0NTM2RCAvKiBJbmplY3RlZFNjcmlwdFNvdXJj
ZS5qcyAqLywKKwkJCQk3QTU2NDBCRDEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGlu
Z3MuY3BwICovLAorCQkJCTdBNTY0MEJFMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0
aW5ncy5oICovLAogCQkJCUI4ODVFOEQyMTFFMDZERDIwMDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuY3BwICovLAogCQkJCUI4ODVFOEQzMTFFMDZERDIwMDlGRkJGNCAv
KiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCAqLywKIAkJCQk3QTFGMkI1MTEyNkM2
MUIyMDAwNkE3RTYgLyogSW5zcGVjdG9yQ2xpZW50LmNwcCAqLywKQEAgLTIyMjk4LDYgKzIyMzA0
LDcgQEAKIAkJCQk5M0YxOTlFRDA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2Rl
U29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhT
U0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTdBNTY0MEMwMTJERjlFNUUwMEY0NTM2RCAv
KiBJbnNwZWN0b3JTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNDk4Miw2ICsyNDk4OSw3
IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTU2M0Y5NjEyREY1QzkxMDBGNDUzNkQgLyogSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMgaW4gU291cmNlcyAqLywKKwkJCQk3QTU2NDBCRjEyREY5RTVF
MDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggMGM3ODI0Ni4uM2I4MDA3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtMjYs
NyArMjYsNiBAQAogI2lmbmRlZiBJbnNwZWN0b3JDbGllbnRfaAogI2RlZmluZSBJbnNwZWN0b3JD
bGllbnRfaAogCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAyMGRhNzMxLi42NTQ3ZmI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvclJlc291cmNlQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgpAQCAtMTMwLDggKzEzMSw2IEBAIGNv
bnN0IGNoYXIqIGNvbnN0IEluc3BlY3RvckNvbnRyb2xsZXI6OkNvbnNvbGVQYW5lbCA9ICJjb25z
b2xlIjsKIGNvbnN0IGNoYXIqIGNvbnN0IEluc3BlY3RvckNvbnRyb2xsZXI6OlNjcmlwdHNQYW5l
bCA9ICJzY3JpcHRzIjsKIGNvbnN0IGNoYXIqIGNvbnN0IEluc3BlY3RvckNvbnRyb2xsZXI6OlBy
b2ZpbGVzUGFuZWwgPSAicHJvZmlsZXMiOwogCi1jb25zdCB1bnNpZ25lZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkZWZhdWx0QXR0YWNoZWRIZWlnaHQgPSAzMDA7Ci0KIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBtYXhpbXVtQ29uc29sZU1lc3NhZ2VzID0gMTAwMDsKIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBleHBpcmVDb25zb2xlTWVzc2FnZXNTdGVwID0gMTAwOwogCkBAIC0xNDIsNyArMTQxLDYgQEAg
SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNw
ZWN0b3JDbGllbnQqIGNsaWVudCkKICAgICAsIG1fY3NzQWdlbnQobmV3IEluc3BlY3RvckNTU0Fn
ZW50KCkpCiAgICAgLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KDApCiAgICAgLCBtX3By
ZXZpb3VzTWVzc2FnZSgwKQotICAgICwgbV9zZXR0aW5nc0xvYWRlZChmYWxzZSkKICAgICAsIG1f
aW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIobmV3IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
KHRoaXMpKQogICAgICwgbV9pbmplY3RlZFNjcmlwdEhvc3QoSW5qZWN0ZWRTY3JpcHRIb3N0Ojpj
cmVhdGUodGhpcykpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCkBAIC0xOTQsMjIg
KzE5MiwyMiBAQCBib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZWQoKSBjb25zdAogCiBi
b29sIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKCkKIHsKLSAg
ICByZXR1cm4gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6aW5zcGVjdG9yU3Rh
cnRzQXR0YWNoZWQpOworICAgIHJldHVybiBtX3NldHRpbmdzLT5nZXRCb29sZWFuKEluc3BlY3Rv
clNldHRpbmdzOjpJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6c2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoYm9vbCBhdHRhY2hlZCkKIHsK
LSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjppbnNwZWN0b3JTdGFydHNB
dHRhY2hlZCwgYXR0YWNoZWQpOworICAgIG1fc2V0dGluZ3MtPnNldEJvb2xlYW4oSW5zcGVjdG9y
U2V0dGluZ3M6Okluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBhdHRhY2hlZCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQobG9uZyBoZWln
aHQpCiB7Ci0gICAgbV9zdGF0ZS0+c2V0TG9uZyhJbnNwZWN0b3JTdGF0ZTo6aW5zcGVjdG9yQXR0
YWNoZWRIZWlnaHQsIGhlaWdodCk7CisgICAgbV9zZXR0aW5ncy0+c2V0TG9uZyhJbnNwZWN0b3JT
ZXR0aW5nczo6SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQsIGhlaWdodCk7CiB9CiAKLWludCBJbnNw
ZWN0b3JDb250cm9sbGVyOjppbnNwZWN0b3JBdHRhY2hlZEhlaWdodCgpIGNvbnN0Citsb25nIElu
c3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RvckF0dGFjaGVkSGVpZ2h0KCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6aW5zcGVjdG9yQXR0
YWNoZWRIZWlnaHQpOworICAgIHJldHVybiBtX3NldHRpbmdzLT5nZXRMb25nKEluc3BlY3RvclNl
dHRpbmdzOjpJbnNwZWN0b3JBdHRhY2hlZEhlaWdodCk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6c2VhcmNoaW5nRm9yTm9kZUluUGFnZSgpIGNvbnN0CkBAIC00NjcsNiArNDY1LDcg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChib29s
IGVuYWJsZWQsIGJvb2wqIG5ld1N0YXRlKQogewogICAgICpuZXdTdGF0ZSA9IGVuYWJsZWQ7CiAg
ICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6bW9uaXRvcmluZ1hIUiwgZW5h
YmxlZCk7CisgICAgbV9zZXR0aW5ncy0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6TW9u
aXRvcmluZ1hIUkVuYWJsZWQsIGVuYWJsZWQpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmNvbm5lY3RGcm9udGVuZCgpCkBAIC02NjgsNyArNjY3LDcgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpyZXN0b3JlRGVidWdnZXIoKQogICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50Ojppc0RlYnVnZ2VyQWx3YXlzRW5hYmxlZCgpKQogICAgICAgICBlbmFibGVEZWJ1Z2dlckZy
b21Gcm9udGVuZChmYWxzZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmIChtX3N0YXRlLT5nZXRC
b29sZWFuKEluc3BlY3RvclN0YXRlOjpkZWJ1Z2dlckFsd2F5c0VuYWJsZWQpIHx8IG1fYXR0YWNo
RGVidWdnZXJXaGVuU2hvd24pCisgICAgICAgIGlmIChtX3NldHRpbmdzLT5nZXRCb29sZWFuKElu
c3BlY3RvclNldHRpbmdzOjpEZWJ1Z2dlckFsd2F5c0VuYWJsZWQpIHx8IG1fYXR0YWNoRGVidWdn
ZXJXaGVuU2hvd24pCiAgICAgICAgICAgICBlbmFibGVEZWJ1Z2dlcigpOwogICAgIH0KICNlbmRp
ZgpAQCAtNjc5LDcgKzY3OCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdG9yZVBy
b2ZpbGVyKFByb2ZpbGVyUmVzdG9yZUFjdGlvbiBhY3Rpb24pCiAgICAgQVNTRVJUKG1fZnJvbnRl
bmQpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIG1fcHJvZmlsZXJBZ2Vu
dC0+c2V0RnJvbnRlbmQobV9mcm9udGVuZC5nZXQoKSk7Ci0gICAgaWYgKCFTY3JpcHRQcm9maWxl
cjo6aXNQcm9maWxlckFsd2F5c0VuYWJsZWQoKSAmJiBtX3N0YXRlLT5nZXRCb29sZWFuKEluc3Bl
Y3RvclN0YXRlOjpwcm9maWxlckFsd2F5c0VuYWJsZWQpKQorICAgIGlmICghU2NyaXB0UHJvZmls
ZXI6OmlzUHJvZmlsZXJBbHdheXNFbmFibGVkKCkgJiYgbV9zZXR0aW5ncy0+Z2V0Qm9vbGVhbihJ
bnNwZWN0b3JTZXR0aW5nczo6UHJvZmlsZXJBbHdheXNFbmFibGVkKSkKICAgICAgICAgZW5hYmxl
UHJvZmlsZXIoKTsKICAgICBpZiAoYWN0aW9uID09IFByb2ZpbGVyUmVzdG9yZVJlc2V0QWdlbnQp
CiAgICAgICAgIG1fcHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOwpAQCAtODQ3LDExICs4NDYs
MTAgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0
cFJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwsIGMKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjplbnN1cmVTZXR0aW5nc0xvYWRlZCgpCiB7Ci0gICAgaWYgKG1fc2V0dGluZ3NMb2FkZWQpCisg
ICAgaWYgKG1fc2V0dGluZ3MpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3NldHRpbmdzTG9hZGVk
ID0gdHJ1ZTsKLQotICAgIG1fc3RhdGUtPmxvYWRGcm9tU2V0dGluZ3MoKTsKKyAgICBtX3NldHRp
bmdzID0gbmV3IEluc3BlY3RvclNldHRpbmdzKG1fY2xpZW50KTsKKyAgICBtX3N0YXRlLT5zZXRC
b29sZWFuKEluc3BlY3RvclN0YXRlOjptb25pdG9yaW5nWEhSLCBtX3NldHRpbmdzLT5nZXRCb29s
ZWFuKEluc3BlY3RvclNldHRpbmdzOjpNb25pdG9yaW5nWEhSRW5hYmxlZCkpOwogfQogCiB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcigpCkBAIC0xMTU3LDE0
ICsxMTU1LDE0IEBAIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6cHJvZmlsZXJFbmFibGVkKCkg
Y29uc3QKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlUHJvZmlsZXIoYm9vbCBhbHdh
eXMsIGJvb2wgc2tpcFJlY29tcGlsZSkKIHsKICAgICBpZiAoYWx3YXlzKQotICAgICAgICBtX3N0
YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjpwcm9maWxlckFsd2F5c0VuYWJsZWQsIHRy
dWUpOworICAgICAgICBtX3NldHRpbmdzLT5zZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpQ
cm9maWxlckFsd2F5c0VuYWJsZWQsIHRydWUpOwogICAgIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxl
KHNraXBSZWNvbXBpbGUpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVQ
cm9maWxlcihib29sIGFsd2F5cykKIHsKICAgICBpZiAoYWx3YXlzKQotICAgICAgICBtX3N0YXRl
LT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjpwcm9maWxlckFsd2F5c0VuYWJsZWQsIGZhbHNl
KTsKKyAgICAgICAgbV9zZXR0aW5ncy0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6UHJv
ZmlsZXJBbHdheXNFbmFibGVkLCBmYWxzZSk7CiAgICAgbV9wcm9maWxlckFnZW50LT5kaXNhYmxl
KCk7CiB9CiAjZW5kaWYKQEAgLTExNzQsNyArMTE3Miw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6ZW5hYmxlRGVidWdnZXJGcm9tRnJvbnRlbmQoYm9vbCBhbHdheXMpCiB7CiAgICAgQVNT
RVJUKCFkZWJ1Z2dlckVuYWJsZWQoKSk7CiAgICAgaWYgKGFsd2F5cykKLSAgICAgICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6ZGVidWdnZXJBbHdheXNFbmFibGVkLCB0cnVl
KTsKKyAgICAgICAgbV9zZXR0aW5ncy0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6RGVi
dWdnZXJBbHdheXNFbmFibGVkLCB0cnVlKTsKIAogICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2Up
OwogCkBAIC0xMjA2LDcgKzEyMDQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Fi
bGVEZWJ1Z2dlcihib29sIGFsd2F5cykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGFsd2F5
cykKLSAgICAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6ZGVidWdnZXJB
bHdheXNFbmFibGVkLCBmYWxzZSk7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEJvb2xlYW4oSW5z
cGVjdG9yU2V0dGluZ3M6OkRlYnVnZ2VyQWx3YXlzRW5hYmxlZCwgZmFsc2UpOwogCiAgICAgQVNT
RVJUKG1faW5zcGVjdGVkUGFnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGZlZjJhNmQuLmNjZjM0NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNzAsNiArNzAsNyBA
QCBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsK
IGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OworY2xhc3MgSW5zcGVjdG9yU2V0dGluZ3M7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNs
YXNzIEluc3BlY3RvclN0b3JhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7
CkBAIC0yNTksOSArMjYwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaW5zcGVjdG9yU3RhcnRzQXR0
YWNoZWQoKTsKICAgICB2b2lkIHNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQobG9uZyBoZWlnaHQpOwotICAgIGludCBp
bnNwZWN0b3JBdHRhY2hlZEhlaWdodCgpIGNvbnN0OwotCi0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGRlZmF1bHRBdHRhY2hlZEhlaWdodDsKKyAgICBsb25nIGluc3BlY3RvckF0dGFjaGVkSGVp
Z2h0KCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEluc3BlY3RvckJhY2tl
bmQ7CkBAIC0zMzEsNiArMzMwLDcgQEAgcHJpdmF0ZToKIAogICAgIE93blB0cjxJbnNwZWN0b3JU
aW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvclN0YXRl
PiBtX3N0YXRlOworICAgIE93blB0cjxJbnNwZWN0b3JTZXR0aW5ncz4gbV9zZXR0aW5nczsKIAog
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgT3duUHRyPEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4gbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQ7CkBAIC0zNTks
MTMgKzM1OSw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc2hvd0FmdGVyVmlzaWJsZTsKICAg
ICBSZWZQdHI8Tm9kZT4gbV9oaWdobGlnaHRlZE5vZGU7CiAgICAgQ29uc29sZU1lc3NhZ2UqIG1f
cHJldmlvdXNNZXNzYWdlOwotICAgIGJvb2wgbV9zZXR0aW5nc0xvYWRlZDsKICAgICBPd25QdHI8
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI7
CiAgICAgUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4gbV9pbmplY3RlZFNjcmlwdEhvc3Q7CiAK
LSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IFNldHRpbmdzOwotICAgIG11dGFi
bGUgU2V0dGluZ3MgbV9zZXR0aW5nczsKLQogICAgIFZlY3RvcjxwYWlyPGxvbmcsIFN0cmluZz4g
PiBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX3Nj
cmlwdHNUb0V2YWx1YXRlT25Mb2FkOwogICAgIFN0cmluZyBtX2luc3BlY3RvckV4dGVuc2lvbkFQ
STsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYmMzYWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuY3BwCkBAIC0w
LDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvclNldHRpbmdz
LmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciogSW5zcGVjdG9yU2V0dGlu
Z3M6Ok1vbml0b3JpbmdYSFJFbmFibGVkID0gInhock1vbml0b3IiOworY29uc3QgY2hhciogSW5z
cGVjdG9yU2V0dGluZ3M6OlByb2ZpbGVyQWx3YXlzRW5hYmxlZCA9ICJwcm9maWxlckVuYWJsZWQi
OworY29uc3QgY2hhciogSW5zcGVjdG9yU2V0dGluZ3M6OkRlYnVnZ2VyQWx3YXlzRW5hYmxlZCA9
ICJkZWJ1Z2dlckVuYWJsZWQiOworY29uc3QgY2hhciogSW5zcGVjdG9yU2V0dGluZ3M6Okluc3Bl
Y3RvclN0YXJ0c0F0dGFjaGVkID0gImluc3BlY3RvclN0YXJ0c0F0dGFjaGVkIjsKK2NvbnN0IGNo
YXIqIEluc3BlY3RvclNldHRpbmdzOjpJbnNwZWN0b3JBdHRhY2hlZEhlaWdodCA9ICJpbnNwZWN0
b3JBdHRhY2hlZEhlaWdodCI7CisKK0luc3BlY3RvclNldHRpbmdzOjpJbnNwZWN0b3JTZXR0aW5n
cyhJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKKyAg
ICByZWdpc3RlckJvb2xlYW4oTW9uaXRvcmluZ1hIUkVuYWJsZWQsIGZhbHNlKTsKKyAgICByZWdp
c3RlckJvb2xlYW4oUHJvZmlsZXJBbHdheXNFbmFibGVkLCBmYWxzZSk7CisgICAgcmVnaXN0ZXJC
b29sZWFuKERlYnVnZ2VyQWx3YXlzRW5hYmxlZCwgZmFsc2UpOworICAgIHJlZ2lzdGVyQm9vbGVh
bihJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCwgdHJ1ZSk7CisgICAgcmVnaXN0ZXJMb25nKEluc3Bl
Y3RvckF0dGFjaGVkSGVpZ2h0LCAzMDApOworfQorCitib29sIEluc3BlY3RvclNldHRpbmdzOjpn
ZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBTdHJpbmcgdmFsdWU7CisgICAg
bV9jbGllbnQtPnBvcHVsYXRlU2V0dGluZyhuYW1lLCAmdmFsdWUpOworICAgIGlmICh2YWx1ZS5p
c0VtcHR5KCkpCisgICAgICAgIHZhbHVlID0gbV9kZWZhdWx0VmFsdWVzLmdldChuYW1lKTsKKyAg
ICByZXR1cm4gdmFsdWUgPT0gInRydWUiOworfQorCit2b2lkIEluc3BlY3RvclNldHRpbmdzOjpz
ZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBtX2NsaWVu
dC0+c3RvcmVTZXR0aW5nKG5hbWUsIHZhbHVlID8gInRydWUiIDogImZhbHNlIik7Cit9CisKK2xv
bmcgSW5zcGVjdG9yU2V0dGluZ3M6OmdldExvbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAg
IFN0cmluZyB2YWx1ZTsKKyAgICBtX2NsaWVudC0+cG9wdWxhdGVTZXR0aW5nKG5hbWUsICZ2YWx1
ZSk7CisgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgdmFsdWUgPSBtX2RlZmF1bHRW
YWx1ZXMuZ2V0KG5hbWUpOworICAgIHJldHVybiB2YWx1ZS50b0ludCgpOworfQorCit2b2lkIElu
c3BlY3RvclNldHRpbmdzOjpzZXRMb25nKGNvbnN0IFN0cmluZyYgbmFtZSwgbG9uZyB2YWx1ZSkK
K3sKKyAgICBtX2NsaWVudC0+c3RvcmVTZXR0aW5nKG5hbWUsIFN0cmluZzo6bnVtYmVyKHZhbHVl
KSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yU2V0dGluZ3M6OnJlZ2lzdGVyQm9vbGVhbihjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgZGVmYXVsdFZhbHVlKQoreworICAgIG1fZGVmYXVsdFZhbHVlcy5z
ZXQobmFtZSwgZGVmYXVsdFZhbHVlID8gInRydWUiIDogImZhbHNlIik7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yU2V0dGluZ3M6OnJlZ2lzdGVyTG9uZyhjb25zdCBTdHJpbmcmIG5hbWUsIGxvbmcgZGVm
YXVsdFZhbHVlKQoreworICAgIG1fZGVmYXVsdFZhbHVlcy5zZXQobmFtZSwgU3RyaW5nOjpudW1i
ZXIoZGVmYXVsdFZhbHVlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxN2QxMWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0
dGluZ3MuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JTZXR0aW5nc19oCisjZGVm
aW5lIEluc3BlY3RvclNldHRpbmdzX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgSW5zcGVjdG9yQ2xpZW50OworCitjbGFzcyBJbnNwZWN0b3JTZXR0aW5ncyB7CitwdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIE1vbml0b3JpbmdYSFJFbmFibGVkOworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBQcm9maWxlckFsd2F5c0VuYWJsZWQ7CisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIERlYnVnZ2VyQWx3YXlzRW5hYmxlZDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogSW5zcGVj
dG9yU3RhcnRzQXR0YWNoZWQ7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIEluc3BlY3RvckF0dGFj
aGVkSGVpZ2h0OworCisgICAgSW5zcGVjdG9yU2V0dGluZ3MoSW5zcGVjdG9yQ2xpZW50KiBjbGll
bnQpOworCisgICAgYm9vbCBnZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9p
ZCBzZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCB2YWx1ZSk7CisKKyAgICBsb25n
IGdldExvbmcoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHNldExvbmcoY29uc3QgU3Ry
aW5nJiBuYW1lLCBsb25nIHZhbHVlKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlZ2lzdGVyQm9v
bGVhbihjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVmYXVsdFZhbHVlKTsKKyAgICB2b2lkIHJl
Z2lzdGVyTG9uZyhjb25zdCBTdHJpbmcmIG5hbWUsIGxvbmcgZGVmYXVsdFZhbHVlKTsKKworICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gRGljdGlvbmFyeTsKKyAgICBEaWN0aW9u
YXJ5IG1fZGVmYXVsdFZhbHVlczsKKyAgICBJbnNwZWN0b3JDbGllbnQqIG1fY2xpZW50OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
KyNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JTZXR0aW5nc19oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAKaW5kZXggMDg2NTY0OC4uN2E5YTRhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwCkBAIC0zOSwxNyAr
MzksMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSW5zcGVjdG9yU3RhdGU6Okluc3BlY3RvclN0
YXRlKEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQogewot
ICAgIHJlZ2lzdGVyQm9vbGVhbihtb25pdG9yaW5nWEhSLCBmYWxzZSwgIm1vbml0b3JpbmdYSFJF
bmFibGVkIiwgInhock1vbml0b3IiKTsKLSAgICByZWdpc3RlckJvb2xlYW4odGltZWxpbmVQcm9m
aWxlckVuYWJsZWQsIGZhbHNlLCAidGltZWxpbmVQcm9maWxlckVuYWJsZWQiLCBTdHJpbmcoKSk7
Ci0gICAgcmVnaXN0ZXJCb29sZWFuKHNlYXJjaGluZ0Zvck5vZGUsIGZhbHNlLCAic2VhcmNoaW5n
Rm9yTm9kZUVuYWJsZWQiLCBTdHJpbmcoKSk7Ci0gICAgcmVnaXN0ZXJCb29sZWFuKHByb2ZpbGVy
QWx3YXlzRW5hYmxlZCwgZmFsc2UsIFN0cmluZygpLCAicHJvZmlsZXJFbmFibGVkIik7Ci0gICAg
cmVnaXN0ZXJCb29sZWFuKGRlYnVnZ2VyQWx3YXlzRW5hYmxlZCwgZmFsc2UsIFN0cmluZygpLCAi
ZGVidWdnZXJFbmFibGVkIik7Ci0gICAgcmVnaXN0ZXJCb29sZWFuKGluc3BlY3RvclN0YXJ0c0F0
dGFjaGVkLCB0cnVlLCBTdHJpbmcoKSwgIkluc3BlY3RvclN0YXJ0c0F0dGFjaGVkIik7Ci0gICAg
cmVnaXN0ZXJMb25nKGluc3BlY3RvckF0dGFjaGVkSGVpZ2h0LCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkZWZhdWx0QXR0YWNoZWRIZWlnaHQsIFN0cmluZygpLCAiaW5zcGVjdG9yQXR0YWNoZWRIZWln
aHQiKTsKLSAgICByZWdpc3RlckxvbmcocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSwgMCwgInBhdXNl
T25FeGNlcHRpb25zU3RhdGUiLCBTdHJpbmcoKSk7Ci0gICAgcmVnaXN0ZXJCb29sZWFuKGNvbnNv
bGVNZXNzYWdlc0VuYWJsZWQsIGZhbHNlLCAiY29uc29sZU1lc3NhZ2VzRW5hYmxlZCIsIFN0cmlu
ZygpKTsKLSAgICByZWdpc3RlckJvb2xlYW4odXNlckluaXRpYXRlZFByb2ZpbGluZywgZmFsc2Us
ICJ1c2VySW5pdGlhdGVkUHJvZmlsaW5nIiwgU3RyaW5nKCkpOwotICAgIHJlZ2lzdGVyT2JqZWN0
KHN0aWNreUJyZWFrcG9pbnRzLCBTdHJpbmcoKSwgU3RyaW5nKCkpOworICAgIC8vIFB1cmUgcmVs
b2FkIHN0YXRlCisgICAgcmVnaXN0ZXJCb29sZWFuKHVzZXJJbml0aWF0ZWRQcm9maWxpbmcsIGZh
bHNlLCBTdHJpbmcoKSk7CisgICAgcmVnaXN0ZXJCb29sZWFuKHRpbWVsaW5lUHJvZmlsZXJFbmFi
bGVkLCBmYWxzZSwgU3RyaW5nKCkpOworICAgIHJlZ2lzdGVyQm9vbGVhbihzZWFyY2hpbmdGb3JO
b2RlLCBmYWxzZSwgU3RyaW5nKCkpOworICAgIHJlZ2lzdGVyT2JqZWN0KHN0aWNreUJyZWFrcG9p
bnRzLCBTdHJpbmcoKSk7CisKKyAgICAvLyBTaG91bGQgZ28gYXdheQorICAgIHJlZ2lzdGVyQm9v
bGVhbihjb25zb2xlTWVzc2FnZXNFbmFibGVkLCBmYWxzZSwgImNvbnNvbGVNZXNzYWdlc0VuYWJs
ZWQiKTsKKyAgICByZWdpc3RlckJvb2xlYW4obW9uaXRvcmluZ1hIUiwgZmFsc2UsICJtb25pdG9y
aW5nWEhSRW5hYmxlZCIpOworICAgIHJlZ2lzdGVyTG9uZyhwYXVzZU9uRXhjZXB0aW9uc1N0YXRl
LCAwLCAicGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSIpOwogfQogCiB2b2lkIEluc3BlY3RvclN0YXRl
OjpyZXN0b3JlRnJvbUluc3BlY3RvckNvb2tpZShjb25zdCBTdHJpbmcmIGpzb24pCkBAIC04Miwz
MiArODEsNiBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yU3RhdGU6Omdl
bmVyYXRlU3RhdGVPYmplY3RGb3JGcm9udGVuZCgpCiAgICAgcmV0dXJuIHN0YXRlT2JqZWN0LnJl
bGVhc2UoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JTdGF0ZTo6bG9hZEZyb21TZXR0aW5ncygpCi17
Ci0gICAgZm9yIChQcm9wZXJ0eU1hcDo6aXRlcmF0b3IgaSA9IG1fcHJvcGVydGllcy5iZWdpbigp
OyBpICE9IG1fcHJvcGVydGllcy5lbmQoKTsgKytpKSB7Ci0gICAgICAgIGlmIChpLT5zZWNvbmQu
bV9wcmVmZXJlbmNlTmFtZS5sZW5ndGgoKSkgewotICAgICAgICAgICAgU3RyaW5nIHZhbHVlOwot
ICAgICAgICAgICAgbV9jbGllbnQtPnBvcHVsYXRlU2V0dGluZyhpLT5zZWNvbmQubV9wcmVmZXJl
bmNlTmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHN3aXRjaCAoaS0+c2Vjb25kLm1fdmFsdWUt
PnR5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBJbnNwZWN0b3JWYWx1ZTo6VHlwZUJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpKQotICAgICAgICAgICAgICAgICAg
ICBpLT5zZWNvbmQubV92YWx1ZSA9IEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSh2YWx1ZSA9
PSAidHJ1ZSIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBJbnNw
ZWN0b3JWYWx1ZTo6VHlwZVN0cmluZzoKLSAgICAgICAgICAgICAgICBpLT5zZWNvbmQubV92YWx1
ZSA9IEluc3BlY3RvclN0cmluZzo6Y3JlYXRlKHZhbHVlKTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgSW5zcGVjdG9yVmFsdWU6OlR5cGVOdW1iZXI6Ci0gICAgICAg
ICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpKQotICAgICAgICAgICAgICAgICAgICBpLT5zZWNv
bmQubV92YWx1ZSA9IEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSgoZG91YmxlKXZhbHVlLnRv
SW50KCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCiB2b2lkIEluc3BlY3RvclN0YXRlOjp1
cGRhdGVDb29raWUoKQogewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNvb2tpZU9iamVj
dCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CkBAIC0xMTYsMTMgKzg5LDExIEBAIHZvaWQg
SW5zcGVjdG9yU3RhdGU6OnVwZGF0ZUNvb2tpZSgpCiAgICAgbV9jbGllbnQtPnVwZGF0ZUluc3Bl
Y3RvclN0YXRlQ29va2llKGNvb2tpZU9iamVjdC0+dG9KU09OU3RyaW5nKCkpOwogfQogCi12b2lk
IEluc3BlY3RvclN0YXRlOjpzZXRWYWx1ZShJbnNwZWN0b3JQcm9wZXJ0eUlkIGlkLCBQYXNzUmVm
UHRyPEluc3BlY3RvclZhbHVlPiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBzdHJpbmdWYWx1ZSkKK3Zv
aWQgSW5zcGVjdG9yU3RhdGU6OnNldFZhbHVlKEluc3BlY3RvclByb3BlcnR5SWQgaWQsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHZhbHVlKQogewogICAgIFByb3BlcnR5TWFwOjppdGVyYXRv
ciBpID0gbV9wcm9wZXJ0aWVzLmZpbmQoaWQpOwogICAgIEFTU0VSVChpICE9IG1fcHJvcGVydGll
cy5lbmQoKSk7CiAgICAgaS0+c2Vjb25kLm1fdmFsdWUgPSB2YWx1ZTsKLSAgICBpZiAoaS0+c2Vj
b25kLm1fcHJlZmVyZW5jZU5hbWUubGVuZ3RoKCkpCi0gICAgICAgIG1fY2xpZW50LT5zdG9yZVNl
dHRpbmcoaS0+c2Vjb25kLm1fcHJlZmVyZW5jZU5hbWUsIHN0cmluZ1ZhbHVlKTsKICAgICB1cGRh
dGVDb29raWUoKTsKIH0KIApAQCAtMTY2LDM3ICsxMzcsMzQgQEAgdm9pZCBJbnNwZWN0b3JTdGF0
ZTo6c2V0T2JqZWN0KEluc3BlY3RvclByb3BlcnR5SWQgaWQsIFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWMKICAgICBBU1NFUlQoaSAhPSBtX3Byb3BlcnRpZXMuZW5kKCkpOwogICAgIFByb3BlcnR5
JiBwcm9wZXJ0eSA9IGktPnNlY29uZDsKICAgICBwcm9wZXJ0eS5tX3ZhbHVlID0gdmFsdWU7Ci0g
ICAgaWYgKHByb3BlcnR5Lm1fcHJlZmVyZW5jZU5hbWUubGVuZ3RoKCkpCi0gICAgICAgIG1fY2xp
ZW50LT5zdG9yZVNldHRpbmcocHJvcGVydHkubV9wcmVmZXJlbmNlTmFtZSwgdmFsdWUtPnRvSlNP
TlN0cmluZygpKTsKICAgICB1cGRhdGVDb29raWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JTdGF0
ZTo6cmVnaXN0ZXJCb29sZWFuKEluc3BlY3RvclByb3BlcnR5SWQgcHJvcGVydHlJZCwgYm9vbCB2
YWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9udGVuZEFsaWFzLCBjb25zdCBTdHJpbmcmIHByZWZlcmVu
Y2VOYW1lKQordm9pZCBJbnNwZWN0b3JTdGF0ZTo6cmVnaXN0ZXJCb29sZWFuKEluc3BlY3RvclBy
b3BlcnR5SWQgcHJvcGVydHlJZCwgYm9vbCB2YWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9udGVuZEFs
aWFzKQogewotICAgIG1fcHJvcGVydGllcy5zZXQocHJvcGVydHlJZCwgUHJvcGVydHk6OmNyZWF0
ZShJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUodmFsdWUpLCBmcm9udGVuZEFsaWFzLCBwcmVm
ZXJlbmNlTmFtZSkpOworICAgIG1fcHJvcGVydGllcy5zZXQocHJvcGVydHlJZCwgUHJvcGVydHk6
OmNyZWF0ZShJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUodmFsdWUpLCBmcm9udGVuZEFsaWFz
KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yU3RhdGU6OnJlZ2lzdGVyU3RyaW5nKEluc3BlY3RvclBy
b3BlcnR5SWQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBm
cm9udGVuZEFsaWFzLCBjb25zdCBTdHJpbmcmIHByZWZlcmVuY2VOYW1lKQordm9pZCBJbnNwZWN0
b3JTdGF0ZTo6cmVnaXN0ZXJTdHJpbmcoSW5zcGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb250ZW5kQWxpYXMpCiB7Ci0gICAg
bV9wcm9wZXJ0aWVzLnNldChwcm9wZXJ0eUlkLCBQcm9wZXJ0eTo6Y3JlYXRlKEluc3BlY3RvclN0
cmluZzo6Y3JlYXRlKHZhbHVlKSwgZnJvbnRlbmRBbGlhcywgcHJlZmVyZW5jZU5hbWUpKTsKKyAg
ICBtX3Byb3BlcnRpZXMuc2V0KHByb3BlcnR5SWQsIFByb3BlcnR5OjpjcmVhdGUoSW5zcGVjdG9y
U3RyaW5nOjpjcmVhdGUodmFsdWUpLCBmcm9udGVuZEFsaWFzKSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yU3RhdGU6OnJlZ2lzdGVyTG9uZyhJbnNwZWN0b3JQcm9wZXJ0eUlkIHByb3BlcnR5SWQsIGxv
bmcgdmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbnRlbmRBbGlhcywgY29uc3QgU3RyaW5nJiBwcmVm
ZXJlbmNlTmFtZSkKK3ZvaWQgSW5zcGVjdG9yU3RhdGU6OnJlZ2lzdGVyTG9uZyhJbnNwZWN0b3JQ
cm9wZXJ0eUlkIHByb3BlcnR5SWQsIGxvbmcgdmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbnRlbmRB
bGlhcykKIHsKLSAgICBtX3Byb3BlcnRpZXMuc2V0KHByb3BlcnR5SWQsIFByb3BlcnR5OjpjcmVh
dGUoSW5zcGVjdG9yQmFzaWNWYWx1ZTo6Y3JlYXRlKChkb3VibGUpdmFsdWUpLCBmcm9udGVuZEFs
aWFzLCBwcmVmZXJlbmNlTmFtZSkpOworICAgIG1fcHJvcGVydGllcy5zZXQocHJvcGVydHlJZCwg
UHJvcGVydHk6OmNyZWF0ZShJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUoKGRvdWJsZSl2YWx1
ZSksIGZyb250ZW5kQWxpYXMpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JTdGF0ZTo6cmVnaXN0ZXJP
YmplY3QoSW5zcGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBjb25zdCBTdHJpbmcmIGZyb250
ZW5kQWxpYXMsIGNvbnN0IFN0cmluZyYgcHJlZmVyZW5jZU5hbWUpCit2b2lkIEluc3BlY3RvclN0
YXRlOjpyZWdpc3Rlck9iamVjdChJbnNwZWN0b3JQcm9wZXJ0eUlkIHByb3BlcnR5SWQsIGNvbnN0
IFN0cmluZyYgZnJvbnRlbmRBbGlhcykKIHsKLSAgICBtX3Byb3BlcnRpZXMuc2V0KHByb3BlcnR5
SWQsIFByb3BlcnR5OjpjcmVhdGUoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgZnJvbnRlbmRB
bGlhcywgcHJlZmVyZW5jZU5hbWUpKTsKKyAgICBtX3Byb3BlcnRpZXMuc2V0KHByb3BlcnR5SWQs
IFByb3BlcnR5OjpjcmVhdGUoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgZnJvbnRlbmRBbGlh
cykpOwogfQogCi1JbnNwZWN0b3JTdGF0ZTo6UHJvcGVydHkgSW5zcGVjdG9yU3RhdGU6OlByb3Bl
cnR5OjpjcmVhdGUoUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gdmFsdWUsIGNvbnN0IFN0cmlu
ZyYgZnJvbnRlbmRBbGlhcywgY29uc3QgU3RyaW5nJiBwcmVmZXJlbmNlTmFtZSkKK0luc3BlY3Rv
clN0YXRlOjpQcm9wZXJ0eSBJbnNwZWN0b3JTdGF0ZTo6UHJvcGVydHk6OmNyZWF0ZShQYXNzUmVm
UHRyPEluc3BlY3RvclZhbHVlPiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9udGVuZEFsaWFzKQog
ewogICAgIFByb3BlcnR5IHByb3BlcnR5OwogICAgIHByb3BlcnR5Lm1fdmFsdWUgPSB2YWx1ZTsK
ICAgICBwcm9wZXJ0eS5tX2Zyb250ZW5kQWxpYXMgPSBmcm9udGVuZEFsaWFzOwotICAgIHByb3Bl
cnR5Lm1fcHJlZmVyZW5jZU5hbWUgPSBwcmVmZXJlbmNlTmFtZTsKICAgICByZXR1cm4gcHJvcGVy
dHk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmgKaW5kZXgg
NGY1N2RhNy4uMzE0MmM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
YXRlLmgKQEAgLTQ3LDExICs0Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgbW9uaXRvcmluZ1hIUiA9
IDEsCiAgICAgICAgIHRpbWVsaW5lUHJvZmlsZXJFbmFibGVkLAogICAgICAgICBzZWFyY2hpbmdG
b3JOb2RlLAotICAgICAgICBwcm9maWxlckFsd2F5c0VuYWJsZWQsCi0gICAgICAgIGRlYnVnZ2Vy
QWx3YXlzRW5hYmxlZCwKLSAgICAgICAgbGFzdEFjdGl2ZVBhbmVsLAotICAgICAgICBpbnNwZWN0
b3JTdGFydHNBdHRhY2hlZCwKLSAgICAgICAgaW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQsCiAgICAg
ICAgIHBhdXNlT25FeGNlcHRpb25zU3RhdGUsCiAgICAgICAgIGNvbnNvbGVNZXNzYWdlc0VuYWJs
ZWQsCiAgICAgICAgIHVzZXJJbml0aWF0ZWRQcm9maWxpbmcsCkBAIC02Myw3ICs1OCw2IEBAIHB1
YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBnZW5lcmF0ZVN0YXRlT2Jq
ZWN0Rm9yRnJvbnRlbmQoKTsKICAgICB2b2lkIHJlc3RvcmVGcm9tSW5zcGVjdG9yQ29va2llKGNv
bnN0IFN0cmluZyYganNvblN0cmluZyk7Ci0gICAgdm9pZCBsb2FkRnJvbVNldHRpbmdzKCk7CiAg
ICAgU3RyaW5nIGdldEZyb250ZW5kQWxpYXMoSW5zcGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlk
KTsKIAogICAgIGJvb2wgZ2V0Qm9vbGVhbihJbnNwZWN0b3JQcm9wZXJ0eUlkIHByb3BlcnR5SWQp
OwpAQCAtNzEsMjggKzY1LDI3IEBAIHB1YmxpYzoKICAgICBsb25nIGdldExvbmcoSW5zcGVjdG9y
UHJvcGVydHlJZCBwcm9wZXJ0eUlkKTsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
Z2V0T2JqZWN0KEluc3BlY3RvclByb3BlcnR5SWQgaWQpOwogCi0gICAgdm9pZCBzZXRCb29sZWFu
KEluc3BlY3RvclByb3BlcnR5SWQgcHJvcGVydHlJZCwgYm9vbCB2YWx1ZSkgeyBzZXRWYWx1ZShw
cm9wZXJ0eUlkLCBJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUodmFsdWUpLCB2YWx1ZSA/ICJ0
cnVlIiA6ICJmYWxzZSIpOyB9Ci0gICAgdm9pZCBzZXRTdHJpbmcoSW5zcGVjdG9yUHJvcGVydHlJ
ZCBwcm9wZXJ0eUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IHNldFZhbHVlKHByb3BlcnR5SWQs
IEluc3BlY3RvclN0cmluZzo6Y3JlYXRlKHZhbHVlKSwgdmFsdWUpOyB9Ci0gICAgdm9pZCBzZXRM
b25nKEluc3BlY3RvclByb3BlcnR5SWQgcHJvcGVydHlJZCwgbG9uZyB2YWx1ZSkgeyBzZXRWYWx1
ZShwcm9wZXJ0eUlkLCBJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUoKGRvdWJsZSl2YWx1ZSks
IFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7IH0KKyAgICB2b2lkIHNldEJvb2xlYW4oSW5zcGVjdG9y
UHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBib29sIHZhbHVlKSB7IHNldFZhbHVlKHByb3BlcnR5SWQs
IEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSh2YWx1ZSkpOyB9CisgICAgdm9pZCBzZXRTdHJp
bmcoSW5zcGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7
IHNldFZhbHVlKHByb3BlcnR5SWQsIEluc3BlY3RvclN0cmluZzo6Y3JlYXRlKHZhbHVlKSk7IH0K
KyAgICB2b2lkIHNldExvbmcoSW5zcGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBsb25nIHZh
bHVlKSB7IHNldFZhbHVlKHByb3BlcnR5SWQsIEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSgo
ZG91YmxlKXZhbHVlKSk7IH0KICAgICB2b2lkIHNldE9iamVjdChJbnNwZWN0b3JQcm9wZXJ0eUlk
IHByb3BlcnR5SWQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB2YWx1ZSk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVDb29raWUoKTsKLSAgICB2b2lkIHNldFZhbHVlKEluc3BlY3Rv
clByb3BlcnR5SWQgcHJvcGVydHlJZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gdmFsdWUs
IGNvbnN0IFN0cmluZyYgc3RyaW5nVmFsdWUpOworICAgIHZvaWQgc2V0VmFsdWUoSW5zcGVjdG9y
UHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiB2YWx1ZSk7
CiAKICAgICBzdHJ1Y3QgUHJvcGVydHkgewotICAgICAgICBzdGF0aWMgUHJvcGVydHkgY3JlYXRl
KFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb250ZW5k
QWxpYXMsIGNvbnN0IFN0cmluZyYgcHJlZmVyZW5jZU5hbWUpOworICAgICAgICBzdGF0aWMgUHJv
cGVydHkgY3JlYXRlKFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHZhbHVlLCBjb25zdCBTdHJp
bmcmIGZyb250ZW5kQWxpYXMpOwogICAgICAgICBTdHJpbmcgbV9mcm9udGVuZEFsaWFzOwotICAg
ICAgICBTdHJpbmcgbV9wcmVmZXJlbmNlTmFtZTsKICAgICAgICAgUmVmUHRyPEluc3BlY3RvclZh
bHVlPiBtX3ZhbHVlOwogICAgIH07CiAgICAgdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFByb3BlcnR5
PiBQcm9wZXJ0eU1hcDsKICAgICBQcm9wZXJ0eU1hcCBtX3Byb3BlcnRpZXM7CiAKLSAgICB2b2lk
IHJlZ2lzdGVyQm9vbGVhbihJbnNwZWN0b3JQcm9wZXJ0eUlkIHByb3BlcnR5SWQsIGJvb2wgdmFs
dWUsIGNvbnN0IFN0cmluZyYgZnJvbnRlbmRBbGlhcywgY29uc3QgU3RyaW5nJiBwcmVmZXJlbmNl
TmFtZSk7Ci0gICAgdm9pZCByZWdpc3RlclN0cmluZyhJbnNwZWN0b3JQcm9wZXJ0eUlkIHByb3Bl
cnR5SWQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbnRlbmRBbGlhcywg
Y29uc3QgU3RyaW5nJiBwcmVmZXJlbmNlTmFtZSk7Ci0gICAgdm9pZCByZWdpc3RlckxvbmcoSW5z
cGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBsb25nIHZhbHVlLCBjb25zdCBTdHJpbmcmIGZy
b250ZW5kQWxpYXMsIGNvbnN0IFN0cmluZyYgcHJlZmVyZW5jZU5hbWUpOwotICAgIHZvaWQgcmVn
aXN0ZXJPYmplY3QoSW5zcGVjdG9yUHJvcGVydHlJZCBwcm9wZXJ0eUlkLCBjb25zdCBTdHJpbmcm
IGZyb250ZW5kQWxpYXMsIGNvbnN0IFN0cmluZyYgcHJlZmVyZW5jZU5hbWUpOworICAgIHZvaWQg
cmVnaXN0ZXJCb29sZWFuKEluc3BlY3RvclByb3BlcnR5SWQgcHJvcGVydHlJZCwgYm9vbCB2YWx1
ZSwgY29uc3QgU3RyaW5nJiBmcm9udGVuZEFsaWFzKTsKKyAgICB2b2lkIHJlZ2lzdGVyU3RyaW5n
KEluc3BlY3RvclByb3BlcnR5SWQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29u
c3QgU3RyaW5nJiBmcm9udGVuZEFsaWFzKTsKKyAgICB2b2lkIHJlZ2lzdGVyTG9uZyhJbnNwZWN0
b3JQcm9wZXJ0eUlkIHByb3BlcnR5SWQsIGxvbmcgdmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbnRl
bmRBbGlhcyk7CisgICAgdm9pZCByZWdpc3Rlck9iamVjdChJbnNwZWN0b3JQcm9wZXJ0eUlkIHBy
b3BlcnR5SWQsIGNvbnN0IFN0cmluZyYgZnJvbnRlbmRBbGlhcyk7CiAKICAgICBJbnNwZWN0b3JD
bGllbnQqIG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzVjNTBmZC4uNjA4NDljYSAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
MS0wMS0xNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBl
eHRyYWN0IEluc3BlY3RvclNldHRpbmdzIGZyb20gSW5zcGVjdG9yU3RhdGUsIAorICAgICAgICBz
aW1wbGlmeSBpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUyNDI5CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHA6CisKIDIwMTEtMDEtMTIgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDFk
OGZhMWMuLmRkZDFmYTggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3IuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JD
b250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAKICNkZWZpbmUgRElTQUJM
RV9OT1RfSU1QTEVNRU5URURfV0FSTklOR1MgMQo=
</data>
<flag name="review"
          id="70275"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>