<?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>114574</bug_id>
          
          <creation_ts>2013-04-13 13:31:36 -0700</creation_ts>
          <short_desc>Move create() methods from StylePropertySet to MutableStylePropertySet.</short_desc>
          <delta_ts>2013-04-14 07:23:25 -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>CSS</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>114568</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>rego+ews</cc>
    
    <cc>schenney</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>875223</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 13:31:36 -0700</bug_when>
    <thetext>Move create() methods from StylePropertySet to MutableStylePropertySet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875224</commentid>
    <comment_count>1</comment_count>
      <attachid>197955</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 13:40:18 -0700</bug_when>
    <thetext>Created attachment 197955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875225</commentid>
    <comment_count>2</comment_count>
      <attachid>197955</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-13 13:45:02 -0700</bug_when>
    <thetext>Comment on attachment 197955
Patch

Attachment 197955 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/102260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875227</commentid>
    <comment_count>3</comment_count>
      <attachid>197955</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-04-13 13:52:57 -0700</bug_when>
    <thetext>Comment on attachment 197955
Patch

Attachment 197955 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/31454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875312</commentid>
    <comment_count>4</comment_count>
      <attachid>197984</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 04:42:29 -0700</bug_when>
    <thetext>Created attachment 197984
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875331</commentid>
    <comment_count>5</comment_count>
      <attachid>197984</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-14 07:23:23 -0700</bug_when>
    <thetext>Comment on attachment 197984
Patch for landing

Clearing flags on attachment: 197984

Committed r148395: &lt;http://trac.webkit.org/changeset/148395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875332</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-14 07:23:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197955</attachid>
            <date>2013-04-13 13:40:18 -0700</date>
            <delta_ts>2013-04-14 04:42:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114574.diff</filename>
            <type>text/plain</type>
            <size>28505</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDRhY2YwLi44ZTEzMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzUg
QEAKIDIwMTMtMDQtMTMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIE1vdmUgY3JlYXRlKCkgbWV0aG9kcyBmcm9tIFN0eWxlUHJvcGVydHlTZXQgdG8gTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNDU3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSB0d28gY3JlYXRlKCkgbWV0aG9kcyB0aGF0IGNyZWF0ZSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dHMgZnJvbSBTdHlsZVByb3BlcnR5U2V0CisgICAgICAgIHRvIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0LCBhbmQgbWFrZSB0aGVtIGFjdHVhbGx5IHJldHVybiBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dHMuCisgICAgICAgIFN3aXRjaCB0byB1c2luZyB7UGFzcyx9UmVmUHRyPE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0PiB3aGVyZSBhcHByb3ByaWF0ZSB0byBrZWVwIHRoaW5ncyBidWlsZGluZy4KKwor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5UHJvcGVydGllc0luU2V0
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VGb250RmFjZVZhbHVlKToKKyAgICAgICAgKiBjc3MvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGVmdFRvUmlnaHREZWNsYXJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpyaWdodFRvTGVmdERlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3Mv
U3R5bGVQcm9wZXJ0eVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0
Ojpjb3B5UHJvcGVydGllc0luU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVBy
b3BlcnR5U2V0OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0Lmg6Cisg
ICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKE11dGFibGVTdHlsZVByb3BlcnR5
U2V0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdENTU01hdHJpeDo6c2V0TWF0cml4VmFsdWUpOgorICAgICAgICAqIGRvbS9BdHRy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0dHI6OnN0eWxlKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUNTU1N0eWxlRGVj
bGFyYXRpb24pOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpyZWJ1aWxkUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29weVN0eWxlT3JDcmVhdGVFbXB0eSk6CisgICAgICAgICogZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVk
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQ6OmF0dHJp
YnV0ZVZhbHVlQXNDU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OnNl
dFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6ZXh0cmFjdEFuZFJl
bW92ZVRleHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVGcm9tTWF0Y2hlZFJ1
bGVzRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6Om1lcmdlU3R5
bGVGcm9tUnVsZXNGb3JTZXJpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdT
dHlsZTo6Zm9yY2VJbmxpbmUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlQXBw
bHlTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlVG9nZ2xlU3R5bGVJbkxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6ZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25OYXR1cmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25SaWdodFRv
TGVmdCk6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmxlYWtCb3JkZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVt
ZW50OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6bGVha0dyb3Vw
Qm9yZGVyU3R5bGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNl
dEZvbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpnZXRTdHlsZUF0
dHJpYnV0ZVJhbmdlcyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAg
ICogc3ZnL1NWR0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVu
dFJhcmVEYXRhOjplbnN1cmVBbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMpOgorICAgICAgICAq
IHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZh
Y2VFbGVtZW50OjpTVkdGb250RmFjZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmdldFByZXNl
bnRhdGlvbkF0dHJpYnV0ZSk6CisKKzIwMTMtMDQtMTMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdA
YXBwbGUuY29tPgorCiAgICAgICAgIFJlbmFtZS90d2VhayBzb21lIFN0eWxlUHJvcGVydHlTZXQv
Q1NTU3R5bGVEZWNsYXJhdGlvbiBjb3B5aW5nIGZ1bmN0aW9ucy4KICAgICAgICAgPGh0dHA6Ly93
ZWJraXQub3JnL2IvMTE0NTY5PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDJiNzFmOGMuLjk4MTgwYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBA
IC0yOTkwLDcgKzI5OTAsNyBAQCBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzSQogICAgICAgICBpZiAo
dmFsdWUpCiAgICAgICAgICAgICBsaXN0LmFwcGVuZChDU1NQcm9wZXJ0eShzZXRbaV0sIHZhbHVl
LnJlbGVhc2UoKSwgZmFsc2UpKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0YXRpY19wb2ludGVyX2Nh
c3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShsaXN0
LmRhdGEoKSwgbGlzdC5zaXplKCkpKTsKKyAgICByZXR1cm4gTXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOwogfQogCiB2b2lkIENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMmZj
YWU4Ni4uMjBkN2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTEyOTcsNyArMTI5
Nyw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJzZXI6OnBhcnNlRm9udEZhY2VW
YWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluCiB7CiAgICAgaWYgKHN0cmluZy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBkdW1t
eVN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVT
dHlsZVByb3BlcnR5U2V0PiBkdW1teVN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNy
ZWF0ZSgpOwogICAgIGlmICghcGFyc2VWYWx1ZShkdW1teVN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0
eUZvbnRGYW1pbHksIHN0cmluZywgZmFsc2UsIENTU1F1aXJrc01vZGUsIDApKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICByZXR1cm4gc3RhdGljX3BvaW50ZXJfY2FzdDxDU1NWYWx1ZUxpc3Q+KGR1
bW15U3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlGb250RmFtaWx5KSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA2ZmYyMDYy
Li40ZjBlYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU3R5bGVQ
cm9wZXJ0eVNldCogbGVmdFRvUmlnaHREZWNsYXJhdGlvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4sIGxlZnRUb1JpZ2h0RGVjbCwgKFN0eWxl
UHJvcGVydHlTZXQ6OmNyZWF0ZSgpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+LCBsZWZ0VG9SaWdodERlY2wsIChNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldDo6Y3JlYXRlKCkpKTsKICAgICBpZiAobGVmdFRvUmlnaHREZWNsLT5pc0VtcHR5
KCkpCiAgICAgICAgIGxlZnRUb1JpZ2h0RGVjbC0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJl
Y3Rpb24sIENTU1ZhbHVlTHRyKTsKICAgICByZXR1cm4gbGVmdFRvUmlnaHREZWNsLmdldCgpOwpA
QCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgU3R5bGVQcm9wZXJ0eVNldCogbGVmdFRvUmlnaHREZWNs
YXJhdGlvbigpCiAKIHN0YXRpYyBTdHlsZVByb3BlcnR5U2V0KiByaWdodFRvTGVmdERlY2xhcmF0
aW9uKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0
PiwgcmlnaHRUb0xlZnREZWNsLCAoU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCkpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4sIHJpZ2h0
VG9MZWZ0RGVjbCwgKE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSkpOwogICAgIGlm
IChyaWdodFRvTGVmdERlY2wtPmlzRW1wdHkoKSkKICAgICAgICAgcmlnaHRUb0xlZnREZWNsLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgQ1NTVmFsdWVSdGwpOwogICAgIHJldHVy
biByaWdodFRvTGVmdERlY2wuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNl
dC5jcHAKaW5kZXggZjM0ZmYzMC4uZjM3NzAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcApAQCAtMTIyMSw3ICsxMjIxLDcgQEAgUGFzc1JlZlB0cjxNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldD4gU3R5bGVQcm9wZXJ0eVNldDo6Y29weVByb3BlcnRpZXNJblNldChjb25z
dAogICAgICAgICBpZiAodmFsdWUpCiAgICAgICAgICAgICBsaXN0LmFwcGVuZChDU1NQcm9wZXJ0
eShzZXRbaV0sIHZhbHVlLnJlbGVhc2UoKSwgZmFsc2UpKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0
YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KFN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpKTsKKyAgICByZXR1cm4gTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOwogfQog
CiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIFN0eWxlUHJvcGVydHlTZXQ6OmNzc1N0
eWxlRGVjbGFyYXRpb24oKQpAQCAtMTI5MiwxMiArMTI5MiwxMiBAQCB2b2lkIFN0eWxlUHJvcGVy
dHlTZXQ6OnNob3dTdHlsZSgpCiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5
U2V0PiBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2Rl
KQorUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ6OmNyZWF0ZShDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldChjc3NQYXJzZXJNb2RlKSk7CiB9
CiAKLVBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRl
KGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCB1bnNpZ25lZCBjb3VudCkKK1Bhc3NSZWZQ
dHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVh
dGUoY29uc3QgQ1NTUHJvcGVydHkqIHByb3BlcnRpZXMsIHVuc2lnbmVkIGNvdW50KQogewogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQocHJvcGVydGllcywg
Y291bnQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDA2Zjhl
NzQuLmJhMjAxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtNTAs
OCArNTAsNiBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1YmNsYXNzIHR5cGUu
CiAgICAgdm9pZCBkZXJlZigpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0
eVNldD4gY3JlYXRlKENTU1BhcnNlck1vZGUgPSBDU1NRdWlya3NNb2RlKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBjcmVhdGUoY29uc3QgQ1NTUHJvcGVydHkqIHBy
b3BlcnRpZXMsIHVuc2lnbmVkIGNvdW50KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVBy
b3BlcnR5U2V0PiBjcmVhdGVJbW11dGFibGUoY29uc3QgQ1NTUHJvcGVydHkqIHByb3BlcnRpZXMs
IHVuc2lnbmVkIGNvdW50LCBDU1NQYXJzZXJNb2RlKTsKIAogICAgIGNsYXNzIFByb3BlcnR5UmVm
ZXJlbmNlIHsKQEAgLTIzMywxMyArMjMxLDE4IEBAIGlubGluZSBjb25zdCBTdHlsZVByb3BlcnR5
TWV0YWRhdGEqIFN0eWxlUHJvcGVydHlTZXQ6OmltbXV0YWJsZU1ldGFkYXRhQXJyYXkoKSBjCiAK
IGNsYXNzIE11dGFibGVTdHlsZVByb3BlcnR5U2V0IDogcHVibGljIFN0eWxlUHJvcGVydHlTZXQg
ewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0
PiBjcmVhdGUoQ1NTUGFyc2VyTW9kZSA9IENTU1F1aXJrc01vZGUpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBjcmVhdGUoY29uc3QgQ1NTUHJvcGVydHkq
IHByb3BlcnRpZXMsIHVuc2lnbmVkIGNvdW50KTsKKworICAgIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0KGNvbnN0IFN0eWxlUHJvcGVydHlTZXQmKTsKKworICAgIFZlY3RvcjxDU1NQcm9wZXJ0eSwg
ND4gbV9wcm9wZXJ0eVZlY3RvcjsKKworcHJpdmF0ZToKICAgICBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldChDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiAgICAgICAgIDogU3R5bGVQcm9wZXJ0
eVNldChjc3NQYXJzZXJNb2RlKQogICAgIHsgfQogICAgIE11dGFibGVTdHlsZVByb3BlcnR5U2V0
KGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCB1bnNpZ25lZCBjb3VudCk7Ci0gICAgTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCYpOwotCi0gICAgVmVj
dG9yPENTU1Byb3BlcnR5LCA0PiBtX3Byb3BlcnR5VmVjdG9yOwogfTsKIAogaW5saW5lIFZlY3Rv
cjxDU1NQcm9wZXJ0eSwgND4mIFN0eWxlUHJvcGVydHlTZXQ6Om11dGFibGVQcm9wZXJ0eVZlY3Rv
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDc0M2Y5MmIuLjk2
NDVmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC01Niw3ICs1
Niw3IEBAIHZvaWQgV2ViS2l0Q1NTTWF0cml4OjpzZXRNYXRyaXhWYWx1ZShjb25zdCBTdHJpbmcm
IHN0cmluZywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZURlY2xh
cmF0aW9uID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVT
dHlsZVByb3BlcnR5U2V0PiBzdHlsZURlY2xhcmF0aW9uID0gTXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZSgpOwogICAgIGlmIChDU1NQYXJzZXI6OnBhcnNlVmFsdWUoc3R5bGVEZWNsYXJh
dGlvbi5nZXQoKSwgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0sIHN0cmluZywgdHJ1ZSwgQ1NT
U3RyaWN0TW9kZSwgMCkpIHsKICAgICAgICAgLy8gQ29udmVydCB0byBUcmFuc2Zvcm1PcGVyYXRp
b25zLiBUaGlzIGNhbiBmYWlsIGlmIGEgcHJvcGVydHkKICAgICAgICAgLy8gcmVxdWlyZXMgc3R5
bGUgKGkuZS4sIHBhcmFtIHVzZXMgJ2Vtcycgb3IgJ2V4cycpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXgg
MDFhYTJhMi4uMDIzYjYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIENT
U1N0eWxlRGVjbGFyYXRpb24qIEF0dHI6OnN0eWxlKCkKICAgICAvLyBUaGlzIGZ1bmN0aW9uIG9u
bHkgZXhpc3RzIHRvIHN1cHBvcnQgdGhlIE9iai1DIGJpbmRpbmdzLgogICAgIGlmICghbV9lbGVt
ZW50IHx8ICFtX2VsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gMDsK
LSAgICBtX3N0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgbV9zdHlsZSA9
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdGF0aWNfY2FzdDxTdHls
ZWRFbGVtZW50Kj4obV9lbGVtZW50KS0+Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSwgc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQqPihtX3N0eWxlLmdldCgpKSk7CiAgICAgcmV0dXJuIG1fc3R5bGUtPmVuc3VyZUNT
U1N0eWxlRGVjbGFyYXRpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGZjNjVi
OTMuLjY0Y2I1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTU3LDcgKzk1Nyw3IEBA
IFBhc3NSZWZQdHI8VGV4dD4gRG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBT
dHJpbmcmIHRleHQpCiAKIFBhc3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gRG9jdW1lbnQ6
OmNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKQogewotICAgIHJldHVybiBTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworICAgIHJldHVybiBN
dXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24oKTsKIH0KIAogUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBp
bXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKaW5kZXggODYzN2UxYi4uMTQ2MDQzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0KiBTdHlsZWRFbGVtZW50OjplbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUoKQogewogICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiYgaW5saW5lU3R5bGUgPSBlbnN1cmVVbmlxdWVFbGVt
ZW50RGF0YSgpLT5tX2lubGluZVN0eWxlOwogICAgIGlmICghaW5saW5lU3R5bGUpCi0gICAgICAg
IGlubGluZVN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKHN0cmljdFRvQ1NTUGFyc2Vy
TW9kZShpc0hUTUxFbGVtZW50KCkgJiYgIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKSk7Cisg
ICAgICAgIGlubGluZVN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShzdHJp
Y3RUb0NTU1BhcnNlck1vZGUoaXNIVE1MRWxlbWVudCgpICYmICFkb2N1bWVudCgpLT5pblF1aXJr
c01vZGUoKSkpOwogICAgIGVsc2UgaWYgKCFpbmxpbmVTdHlsZS0+aXNNdXRhYmxlKCkpCiAgICAg
ICAgIGlubGluZVN0eWxlID0gaW5saW5lU3R5bGUtPm11dGFibGVDb3B5KCk7CiAgICAgQVNTRVJU
KGlubGluZVN0eWxlLT5pc011dGFibGUoKSk7CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBTdHls
ZWRFbGVtZW50OjpyZWJ1aWxkUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKQogICAgICAgICBz
dHlsZSA9IGNhY2hlSXRlcmF0b3ItPnZhbHVlLT52YWx1ZTsKICAgICAgICAgcHJlc2VudGF0aW9u
QXR0cmlidXRlQ2FjaGVDbGVhbmVyKCkuZGlkSGl0UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUo
KTsKICAgICB9IGVsc2UgewotICAgICAgICBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZShpc1NWR0VsZW1lbnQoKSA/IFNWR0F0dHJpYnV0ZU1vZGUgOiBDU1NRdWlya3NNb2RlKTsKKyAg
ICAgICAgc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKGlzU1ZHRWxlbWVu
dCgpID8gU1ZHQXR0cmlidXRlTW9kZSA6IENTU1F1aXJrc01vZGUpOwogICAgICAgICB1bnNpZ25l
ZCBzaXplID0gYXR0cmlidXRlQ291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUg
PSBhdHRyaWJ1dGVJdGVtKGkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcAppbmRleCA2MTk1ZGNiLi4wYTk3ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMjk2LDEwICsyOTYsMTAgQEAgdm9pZCBB
cHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKEVkaXRpbmdTdHlsZSAqc3R5bGUpCiAg
ICAgICAgIHVwZGF0ZVN0YXJ0RW5kKHN0YXJ0UmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgZW5kUmFu
Z2UtPnN0YXJ0UG9zaXRpb24oKSk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVy
dHlTZXQ+IGNvcHlTdHlsZU9yQ3JlYXRlRW1wdHkoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogc3R5
bGUpCitzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gY29weVN0eWxl
T3JDcmVhdGVFbXB0eShjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKIHsKICAgICBpZiAo
IXN0eWxlKQotICAgICAgICByZXR1cm4gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAg
ICAgIHJldHVybiBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgcmV0dXJu
IHN0eWxlLT5tdXRhYmxlQ29weSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKaW5kZXggMzNiZjI3Ny4uNGM0Y2U1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c0VkaXRpbmdQcm9wZXJ0eShpbnQgaWQpCiBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldD4gZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoUGFzc1JlZlB0cjxDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IHN0eWxlLCBFZGl0aW5nUHJvcGVydGllc1R5cGUgdHlw
ZSA9IE9ubHlJbmhlcml0YWJsZUVkaXRpbmdQcm9wZXJ0aWVzKQogewogICAgIGlmICghc3R5bGUp
Ci0gICAgICAgIHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5
U2V0PihTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSk7CisgICAgICAgIHJldHVybiBNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgcmV0dXJuIGNvcHlFZGl0aW5nUHJvcGVy
dGllcyhzdHlsZS5nZXQoKSwgdHlwZSk7CiB9CiAKQEAgLTI1OSw4ICsyNTksOCBAQCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBIVE1MQXR0cmlidXRlRXF1aXZhbGVudDo6YXR0cmlidXRlVmFsdWVBc0NT
U1ZhbHVlKEVsZW1lbnQqCiAgICAgaWYgKCFlbGVtZW50LT5oYXNBdHRyaWJ1dGUobV9hdHRyTmFt
ZSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIAotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0
PiBkdW1teVN0eWxlOwotICAgIGR1bW15U3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUo
KTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGR1bW15U3R5bGU7CisgICAg
ZHVtbXlTdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBkdW1t
eVN0eWxlLT5zZXRQcm9wZXJ0eShtX3Byb3BlcnR5SUQsIGVsZW1lbnQtPmdldEF0dHJpYnV0ZSht
X2F0dHJOYW1lKSk7CiAgICAgcmV0dXJuIGR1bW15U3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUo
bV9wcm9wZXJ0eUlEKTsKIH0KQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6
cmVtb3ZlVGV4dEZpbGxBbmRTdHJva2VDb2xvcnNJZk5lZWRlZChSZW5kZXJTdHlsZSogcmVuZGVy
U3R5bAogdm9pZCBFZGl0aW5nU3R5bGU6OnNldFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgaWYgKCFt
X211dGFibGVTdHlsZSkKLSAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0
OjpjcmVhdGUoKTsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldDo6Y3JlYXRlKCk7CiAKICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkocHJvcGVy
dHlJRCwgdmFsdWUsIGltcG9ydGFudCk7CiB9CkBAIC01NjksNyArNTY5LDcgQEAgUGFzc1JlZlB0
cjxFZGl0aW5nU3R5bGU+IEVkaXRpbmdTdHlsZTo6ZXh0cmFjdEFuZFJlbW92ZUJsb2NrUHJvcGVy
dGllcygpCiBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gRWRpdGluZ1N0eWxlOjpleHRyYWN0QW5k
UmVtb3ZlVGV4dERpcmVjdGlvbigpCiB7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gdGV4dERp
cmVjdGlvbiA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCk7Ci0gICAgdGV4dERpcmVjdGlvbi0+bV9t
dXRhYmxlU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICB0ZXh0RGlyZWN0
aW9uLT5tX211dGFibGVTdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsK
ICAgICB0ZXh0RGlyZWN0aW9uLT5tX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCwgbV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5SXNJ
bXBvcnRhbnQoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSkpOwogICAgIHRleHREaXJlY3Rpb24tPm1f
bXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgbV9tdXRhYmxl
U3R5bGUtPmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlEaXJlY3Rpb24pLAogICAgICAgICBt
X211dGFibGVTdHlsZS0+cHJvcGVydHlJc0ltcG9ydGFudChDU1NQcm9wZXJ0eURpcmVjdGlvbikp
OwpAQCAtMTA3NCw3ICsxMDc0LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGUoY29u
c3QgU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIENTU1Byb3BlcnR5T3ZlcnJpZGUKIAogc3RhdGlj
IFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50LCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSkKIHsKLSAgICBS
ZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUo
KTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0Y2hl
ZFJ1bGVzID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZVJ1bGVz
Rm9yRWxlbWVudChlbGVtZW50LCBydWxlc1RvSW5jbHVkZSk7CiAgICAgaWYgKG1hdGNoZWRSdWxl
cykgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWF0Y2hlZFJ1bGVzLT5sZW5n
dGgoKTsgaSsrKSB7CkBAIC0xMTA3LDcgKzExMDcsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6bWVy
Z2VTdHlsZUZyb21SdWxlc0ZvclNlcmlhbGl6YXRpb24oU3R5bGVkRWxlbWVudCogZWxlbWVudCkK
ICAgICAvLyBGb3IgZXhhbXBsZTogc3R5bGU9ImhlaWdodDogMSU7IG92ZXJmbG93OiB2aXNpYmxl
OyIgaW4gcXVpcmtzbW9kZQogICAgIC8vIEZJWE1FOiBUaGVyZSBhcmUgb3RoZXJzIGxpa2UgdGhp
cywgc2VlIDxyZGFyOi8vcHJvYmxlbS81MTk1MTIzPiBTbGFzaGRvdCBjb3B5L3Bhc3RlIGZpZGVs
aXR5IHByb2JsZW0KICAgICBSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBjb21w
dXRlZFN0eWxlRm9yRWxlbWVudCA9IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRl
KGVsZW1lbnQpOwotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBmcm9tQ29tcHV0ZWRTdHls
ZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldD4gZnJvbUNvbXB1dGVkU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCk7CiAgICAgewogICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gbV9tdXRh
YmxlU3R5bGUtPnByb3BlcnR5Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHByb3BlcnR5Q291bnQ7ICsraSkgewpAQCAtMTE3OCw3ICsxMTc4LDcgQEAgdm9pZCBFZGl0
aW5nU3R5bGU6OnJlbW92ZVByb3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoRWxlbWVudCog
ZWxlbWVudCkKIHZvaWQgRWRpdGluZ1N0eWxlOjpmb3JjZUlubGluZSgpCiB7CiAgICAgaWYgKCFt
X211dGFibGVTdHlsZSkKLSAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0
OjpjcmVhdGUoKTsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldDo6Y3JlYXRlKCk7CiAgICAgY29uc3QgYm9vbCBwcm9wZXJ0eUlzSW1wb3J0YW50ID0gdHJ1
ZTsKICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBD
U1NWYWx1ZUlubGluZSwgcHJvcGVydHlJc0ltcG9ydGFudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKaW5kZXggZDMxMzBjNy4uYTAxODAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcApAQCAtMTM2OSw3ICsxMzY5LDcgQEAgdm9pZCBFZGl0b3I6OnNldEJhc2VXcml0aW5nRGly
ZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNl
dDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIGRpcmVjdGlvbiA9PSBMZWZ0VG9SaWdodFdyaXRpbmdE
aXJlY3Rpb24gPyAibHRyIiA6IGRpcmVjdGlvbiA9PSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rp
b24gPyAicnRsIiA6ICJpbmhlcml0IiwgZmFsc2UpOwogICAgIGFwcGx5UGFyYWdyYXBoU3R5bGVU
b1NlbGVjdGlvbihzdHlsZS5nZXQoKSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggM2M1ZjBhNi4u
YjMwZmY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0x
MTgsMTQgKzExOCwxNCBAQCBzdGF0aWMgYm9vbCBhcHBseUNvbW1hbmRUb0ZyYW1lKEZyYW1lKiBm
cmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIEVkaXRBYwogCiBzdGF0aWMgYm9vbCBl
eGVjdXRlQXBwbHlTdHlsZShGcmFtZSogZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNl
LCBFZGl0QWN0aW9uIGFjdGlvbiwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBTdHJp
bmcmIHByb3BlcnR5VmFsdWUpCiB7Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxl
ID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0PiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgcHJvcGVydHlWYWx1ZSk7CiAgICAgcmV0
dXJuIGFwcGx5Q29tbWFuZFRvRnJhbWUoZnJhbWUsIHNvdXJjZSwgYWN0aW9uLCBzdHlsZS5nZXQo
KSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVN0eWxlKEZyYW1lKiBmcmFtZSwgRWRp
dG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIEVkaXRBY3Rpb24gYWN0aW9uLCBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQsIGludCBwcm9wZXJ0eVZhbHVlKQogewotICAgIFJlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxN
dXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KHByb3BlcnR5SUQsIHByb3BlcnR5VmFs
dWUpOwogICAgIHJldHVybiBhcHBseUNvbW1hbmRUb0ZyYW1lKGZyYW1lLCBzb3VyY2UsIGFjdGlv
biwgc3R5bGUuZ2V0KCkpOwogfQpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1
dGVUb2dnbGVTdHlsZUluTGlzdChGcmFtZSogZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291
cmNlLCBFCiAgICAgICAgIG5ld1N0eWxlID0gdmFsdWUtPmNzc1RleHQoKTsKIAogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgYmUgaGF2aW5nIHRvIGNvbnZlcnQgbmV3IHN0eWxlIGludG8gdGV4
dC4gIFdlIHNob3VsZCBoYXZlIHNldFByb3BlcnR5Q1NTVmFsdWUuCi0gICAgUmVmUHRyPFN0eWxl
UHJvcGVydHlTZXQ+IG5ld011dGFibGVTdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgp
OworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gbmV3TXV0YWJsZVN0eWxlID0g
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIG5ld011dGFibGVTdHlsZS0+
c2V0UHJvcGVydHkocHJvcGVydHlJRCwgbmV3U3R5bGUpOwogICAgIHJldHVybiBhcHBseUNvbW1h
bmRUb0ZyYW1lKGZyYW1lLCBzb3VyY2UsIGFjdGlvbiwgbmV3TXV0YWJsZVN0eWxlLmdldCgpKTsK
IH0KQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlU3R5bGUoRnJh
bWUqIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgRWRpdEFjdAogCiBzdGF0aWMg
Ym9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSogZnJhbWUsIEVkaXRvckNvbW1h
bmRTb3VyY2Ugc291cmNlLCBFZGl0QWN0aW9uIGFjdGlvbiwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBjb25zdCBTdHJpbmcmIHByb3BlcnR5VmFsdWUpCiB7Ci0gICAgUmVmUHRyPFN0eWxlUHJv
cGVydHlTZXQ+IHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRy
PE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0
OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgcHJvcGVydHlW
YWx1ZSk7CiAgICAgLy8gRklYTUU6IFdlIGRvbid0IGNhbGwgc2hvdWxkQXBwbHlTdHlsZSB3aGVu
IHRoZSBzb3VyY2UgaXMgRE9NOyBpcyB0aGVyZSBhIGdvb2QgcmVhc29uIGZvciB0aGF0PwogICAg
IHN3aXRjaCAoc291cmNlKSB7CkBAIC01ODgsNyArNTg4LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0
ZUp1c3RpZnlSaWdodChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UKIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRU
b1JpZ2h0KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBT
dHJpbmcmKQogewotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJv
cGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4g
c3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlRW1iZWQpOwogICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgQ1NTVmFsdWVMdHIpOwogICAg
IGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRpdEFjdGlvblNldFdy
aXRpbmdEaXJlY3Rpb24pOwpAQCAtNTk3LDcgKzU5Nyw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVN
YWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodChGcmFtZSogZnJhbWUsIEV2ZW50Kiwg
RWRpCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25OYXR1cmFs
KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcm
KQogewotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUg
PSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlTm9ybWFsKTsKICAgICBmcmFtZS0+
ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGly
ZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYwNSw3ICs2MDUsNyBAQCBzdGF0aWMgYm9v
bCBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTmF0dXJhbChGcmFtZSogZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQwogCiBzdGF0aWMgYm9vbCBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0
aW9uUmlnaHRUb0xlZnQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0g
U3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0PiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCk7
CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZVJ0
bCk7CiAgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLmdldCgpLCBFZGl0QWN0
aW9uU2V0V3JpdGluZ0RpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCA3ZGY5ZWJjLi43YTRhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKQEAgLTQxNSw3ICs0MTUsNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cgogCiBzdGF0aWMgU3R5bGVQcm9wZXJ0eVNldCogbGVha0JvcmRlclN0eWxlKGludCB2YWx1
ZSkKIHsKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxl
ID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcFN0eWxlLCB2YWx1ZSk7CiAgICAgc3R5bGUtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tU3R5bGUsIHZhbHVlKTsKICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUsIHZhbHVlKTsKQEAgLTQ3MSw3
ICs0NzEsNyBAQCBIVE1MVGFibGVFbGVtZW50OjpDZWxsQm9yZGVycyBIVE1MVGFibGVFbGVtZW50
OjpjZWxsQm9yZGVycygpIGNvbnN0CiAKIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gSFRN
TFRhYmxlRWxlbWVudDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlKCkKIHsKLSAgICBSZWZQdHI8U3R5
bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBS
ZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ6OmNyZWF0ZSgpOwogCiAgICAgc3dpdGNoIChjZWxsQm9yZGVycygpKSB7CiAgICAgY2Fz
ZSBTb2xpZEJvcmRlcnNDb2xzT25seToKQEAgLTUxOCw3ICs1MTgsNyBAQCBjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBIVE1MVGFibGVFbGVtZW50OjphZGRpdGlvbmFsQ2VsbFN0eWxlKCkKIAogc3Rh
dGljIFN0eWxlUHJvcGVydHlTZXQqIGxlYWtHcm91cEJvcmRlclN0eWxlKGludCByb3dzKQogewot
ICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNy
ZWF0ZSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgaWYgKHJvd3MpIHsKICAgICAgICAg
c3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wV2lkdGgsIENTU1ZhbHVlVGhp
bik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdp
ZHRoLCBDU1NWYWx1ZVRoaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggYzE0MTEwZS4uNDcxOTdkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwCkBAIC0yMDI2LDcgKzIwMjYsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6c2V0Rm9udChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCiAgICAgaWYgKG5ld0Zv
bnQgPT0gc3RhdGUoKS5tX3VucGFyc2VkRm9udCAmJiBzdGF0ZSgpLm1fcmVhbGl6ZWRGb250KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gcGFyc2VkU3R5
bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IHBhcnNlZFN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOwogICAgIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShwYXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJv
cGVydHlGb250LCBuZXdGb250LCB0cnVlLCBzdHJpY3RUb0NTU1BhcnNlck1vZGUoIW1fdXNlc0NT
U0NvbXBhdGliaWxpdHlQYXJzZU1vZGUpLCAwKTsKICAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDkyN2U2OWQuLmZlYzY1MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTM3Miw3
ICszNzIsNyBAQCBib29sIEluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQodW5zaWduZWQg
aW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LAogICAgIHBvcHVsYXRlQWxsUHJvcGVy
dGllcygmYWxsUHJvcGVydGllcyk7CiAKICAgICBpZiAocHJvcGVydHlUZXh0LnN0cmlwV2hpdGVT
cGFjZSgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiB0ZW1w
TXV0YWJsZVN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgICAgIFJlZlB0
cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gdGVtcE11dGFibGVTdHlsZSA9IE11dGFibGVTdHls
ZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRh
PiBzb3VyY2VEYXRhID0gQ1NTUnVsZVNvdXJjZURhdGE6OmNyZWF0ZShDU1NSdWxlU291cmNlRGF0
YTo6U1RZTEVfUlVMRSk7CiAgICAgICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gbV9wYXJl
bnRTdHlsZVNoZWV0LT5wYWdlU3R5bGVTaGVldCgpID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5wYWdl
U3R5bGVTaGVldCgpLT5vd25lckRvY3VtZW50KCkgOiAwOwogICAgICAgICBjcmVhdGVDU1NQYXJz
ZXIob3duZXJEb2N1bWVudCktPnBhcnNlRGVjbGFyYXRpb24odGVtcE11dGFibGVTdHlsZS5nZXQo
KSwgcHJvcGVydHlUZXh0ICsgIiAiICsgYm9ndXNQcm9wZXJ0eU5hbWUgKyAiOiBub25lIiwgc291
cmNlRGF0YSwgbV9zdHlsZS0+cGFyZW50U3R5bGVTaGVldCgpLT5jb250ZW50cygpKTsKQEAgLTE1
MzQsNyArMTUzNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpn
ZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhDU1NSdWxlU291cmNlRGF0CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiB0ZW1wRGVjbGFyYXRp
b24gPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IHRlbXBEZWNsYXJhdGlvbiA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0Ojpj
cmVhdGUoKTsKICAgICBjcmVhdGVDU1NQYXJzZXIobV9lbGVtZW50LT5kb2N1bWVudCgpKS0+cGFy
c2VEZWNsYXJhdGlvbih0ZW1wRGVjbGFyYXRpb24uZ2V0KCksIG1fc3R5bGVUZXh0LCByZXN1bHQs
IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZWxlbWVudFNoZWV0KCktPmNvbnRlbnRzKCkpOwogICAg
IHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRl
eCBlMjRjMmNlLi43OTI5NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtNDczLDcgKzQ3Myw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERy
YWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgUmVmUHRyPFJhbmdlPiBpbm5lclJhbmdl
ID0gaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOworICAgICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlDb2xvciwgY29sb3Iuc2VyaWFsaXplZCgpLCBmYWxzZSk7CiAgICAgICAg
IGlmICghaW5uZXJGcmFtZS0+ZWRpdG9yKCktPnNob3VsZEFwcGx5U3R5bGUoc3R5bGUuZ2V0KCks
IGlubmVyUmFuZ2UuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IDUwNjc5ZGYuLjUwNTQ1NGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudFJhcmVEYXRhLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVi
bGljOgogICAgIFN0eWxlUHJvcGVydHlTZXQqIGVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVy
dGllcygpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVz
KQotICAgICAgICAgICAgbV9hbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMgPSBTdHlsZVByb3Bl
cnR5U2V0OjpjcmVhdGUoU1ZHQXR0cmlidXRlTW9kZSk7CisgICAgICAgICAgICBtX2FuaW1hdGVk
U01JTFN0eWxlUHJvcGVydGllcyA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoU1ZH
QXR0cmlidXRlTW9kZSk7CiAgICAgICAgIHJldHVybiBtX2FuaW1hdGVkU01JTFN0eWxlUHJvcGVy
dGllcy5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKaW5kZXggNTgzNjRiOC4uZmI2NTQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlRWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgaW5saW5lIFNWR0ZvbnRGYWNlRWxl
bWVudDo6U1ZHRm9udEZhY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3UKICAgICAsIG1fZm9udEVsZW1lbnQoMCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250
X2ZhY2VUYWcpKTsKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGVEZWNsYXJhdGlv
biA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShDU1NTdHJpY3RNb2RlKTsKKyAgICBSZWZQdHI8
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlRGVjbGFyYXRpb24gPSBNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldDo6Y3JlYXRlKENTU1N0cmljdE1vZGUpOwogICAgIG1fZm9udEZhY2VSdWxlLT5z
ZXRQcm9wZXJ0aWVzKHN0eWxlRGVjbGFyYXRpb24ucmVsZWFzZSgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGYxNWQ1ODAuLjkxOGZmMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKQEAgLTQwNiw3ICs0MDYsNyBAQCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiBTVkdTdHlsZWRFbGVtZW50OjpnZXRQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgU3RyaW5nJiBuYQogICAgIGlmICghYXR0cikKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0
OjpjcmVhdGUoU1ZHQXR0cmlidXRlTW9kZSk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0PiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoU1ZHQXR0cmli
dXRlTW9kZSk7CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gU1ZHU3R5bGVkRWxlbWVu
dDo6Y3NzUHJvcGVydHlJZEZvclNWR0F0dHJpYnV0ZU5hbWUoYXR0ci0+bmFtZSgpKTsKICAgICBz
dHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgYXR0ci0+dmFsdWUoKSk7CiAgICAgUmVmUHRy
PENTU1ZhbHVlPiBjc3NWYWx1ZSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5
SUQpOwo=
</data>
<flag name="review"
          id="219818"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="219819"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197984</attachid>
            <date>2013-04-14 04:42:29 -0700</date>
            <delta_ts>2013-04-14 07:23:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-114574-v2.diff</filename>
            <type>text/plain</type>
            <size>30938</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OTBlYzcwLi4wZTk5ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkg
QEAKKzIwMTMtMDQtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgY3JlYXRlKCkgbWV0aG9kcyBmcm9tIFN0eWxlUHJvcGVydHlTZXQgdG8gTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNDU3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBNb3ZlIHRo
ZSB0d28gY3JlYXRlKCkgbWV0aG9kcyB0aGF0IGNyZWF0ZSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dHMgZnJvbSBTdHlsZVByb3BlcnR5U2V0CisgICAgICAgIHRvIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0LCBhbmQgbWFrZSB0aGVtIGFjdHVhbGx5IHJldHVybiBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dHMuCisgICAgICAgIFN3aXRjaCB0byB1c2luZyB7UGFzcyx9UmVmUHRyPE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0PiB3aGVyZSBhcHByb3ByaWF0ZSB0byBrZWVwIHRoaW5ncyBidWlsZGluZy4KKwor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5UHJvcGVydGllc0luU2V0
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VGb250RmFjZVZhbHVlKToKKyAgICAgICAgKiBjc3MvRE9NV2luZG93Q1NTLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0NTUzo6c3VwcG9ydHMpOgorICAgICAgICAq
IGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0VG9S
aWdodERlY2xhcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJpZ2h0VG9MZWZ0RGVjbGFyYXRp
b24pOgorICAgICAgICAqIGNzcy9Gb250TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OnJlc29sdmVGb250U3R5bGUpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmNvcHlQcm9wZXJ0
aWVzSW5TZXQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNy
ZWF0ZSk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuaDoKKyAgICAgICAgKFN0eWxl
UHJvcGVydHlTZXQpOgorICAgICAgICAoTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQpOgorICAgICAg
ICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OnJlc29sdmVWYXJpYWJsZXMpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4OjpzZXRNYXRyaXhWYWx1ZSk6Cisg
ICAgICAgICogZG9tL0F0dHIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6c3R5bGUpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6ZW5zdXJlTXV0YWJsZUlubGlu
ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnJlYnVpbGRQcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5U3R5bGVPckNyZWF0ZUVtcHR5KToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjplZGl0aW5n
U3R5bGVGcm9tQ29tcHV0ZWRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXR0cmlidXRl
RXF1aXZhbGVudDo6YXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpleHRyYWN0QW5kUmVtb3ZlVGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpz
dHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRp
bmdTdHlsZTo6bWVyZ2VTdHlsZUZyb21SdWxlc0ZvclNlcmlhbGl6YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpmb3JjZUlubGluZSk6CisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmV4ZWN1dGVBcHBseVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUb2dn
bGVTdHlsZUluTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlQXBwbHlQYXJhZ3JhcGhT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9u
TGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0Rp
cmVjdGlvbk5hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1ha2VUZXh0V3JpdGlu
Z0RpcmVjdGlvblJpZ2h0VG9MZWZ0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bGVha0JvcmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVNoYXJlZENlbGxTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpsZWFrR3JvdXBCb3JkZXJTdHlsZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0Rm9udCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnNldFByb3Bl
cnR5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5l
U3R5bGU6OmdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVk
aXREcmFnKToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdFbGVtZW50UmFyZURhdGE6OmVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVy
dGllcyk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlRWxlbWVudCk6CisgICAgICAg
ICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVk
RWxlbWVudDo6Z2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKToKKwogMjAxMy0wNC0xMyAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aHJlZSBjcmFzaGVzIHNlZW4g
b24gdGhlIGJvdHMgYWZ0ZXIgIk1ha2UgRnJhbWUncyBTY3JpcHRDb250cm9sbGVyIGFuIE93blB0
ciBhbmQgcmVtb3ZlIHRoZSAjaW5jbHVkZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMmI3MWY4Yy4uOTgxODBhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTI5OTAsNyArMjk5MCw3IEBAIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJCiAgICAgICAg
IGlmICh2YWx1ZSkKICAgICAgICAgICAgIGxpc3QuYXBwZW5kKENTU1Byb3BlcnR5KHNldFtpXSwg
dmFsdWUucmVsZWFzZSgpLCBmYWxzZSkpOwogICAgIH0KLSAgICByZXR1cm4gc3RhdGljX3BvaW50
ZXJfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4oU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRl
KGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSkpOworICAgIHJldHVybiBNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldDo6Y3JlYXRlKGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSk7CiB9CiAKIHZvaWQgQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRl
eCAyZmNhZTg2Li4yMGQ3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTI5Nyw3
ICsxMjk3LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IENTU1BhcnNlcjo6cGFyc2VGb250
RmFjZVZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW4KIHsKICAgICBpZiAoc3RyaW5nLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+
IGR1bW15U3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGR1bW15U3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dDo6Y3JlYXRlKCk7CiAgICAgaWYgKCFwYXJzZVZhbHVlKGR1bW15U3R5bGUuZ2V0KCksIENTU1By
b3BlcnR5Rm9udEZhbWlseSwgc3RyaW5nLCBmYWxzZSwgQ1NTUXVpcmtzTW9kZSwgMCkpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0PENTU1ZhbHVlTGlz
dD4oZHVtbXlTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTVdpbmRvd0NTUy5jcHAKaW5kZXggODY2MTFjMi4uMzE1Yzc3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTVdpbmRvd0NTUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTVdpbmRvd0NTUy5jcHAKQEAgLTczLDcgKzczLDcgQEAgYm9vbCBE
T01XaW5kb3dDU1M6OnN1cHBvcnRzKGNvbnN0IFN0cmluZyYgcHJvcGVydHksIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpIGNvbnN0CiAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBkdW1teVN0
eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHls
ZVByb3BlcnR5U2V0PiBkdW1teVN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOwogICAgIHJldHVybiBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoZHVtbXlTdHlsZS5nZXQoKSwg
cHJvcGVydHlJRCwgbm9ybWFsaXplZFZhbHVlLCBmYWxzZSwgQ1NTU3RyaWN0TW9kZSwgMCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDZm
ZjIwNjIuLjRmMGViOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBT
dHlsZVByb3BlcnR5U2V0KiBsZWZ0VG9SaWdodERlY2xhcmF0aW9uKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiwgbGVmdFRvUmlnaHREZWNsLCAo
U3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCkpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJl
ZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4sIGxlZnRUb1JpZ2h0RGVjbCwgKE11dGFibGVT
dHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSkpOwogICAgIGlmIChsZWZ0VG9SaWdodERlY2wtPmlz
RW1wdHkoKSkKICAgICAgICAgbGVmdFRvUmlnaHREZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eURpcmVjdGlvbiwgQ1NTVmFsdWVMdHIpOwogICAgIHJldHVybiBsZWZ0VG9SaWdodERlY2wuZ2V0
KCk7CkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBTdHlsZVByb3BlcnR5U2V0KiBsZWZ0VG9SaWdo
dERlY2xhcmF0aW9uKCkKIAogc3RhdGljIFN0eWxlUHJvcGVydHlTZXQqIHJpZ2h0VG9MZWZ0RGVj
bGFyYXRpb24oKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPFN0eWxlUHJvcGVy
dHlTZXQ+LCByaWdodFRvTGVmdERlY2wsIChTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSkpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0Piwg
cmlnaHRUb0xlZnREZWNsLCAoTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpKSk7CiAg
ICAgaWYgKHJpZ2h0VG9MZWZ0RGVjbC0+aXNFbXB0eSgpKQogICAgICAgICByaWdodFRvTGVmdERl
Y2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZVJ0bCk7CiAgICAg
cmV0dXJuIHJpZ2h0VG9MZWZ0RGVjbC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcApp
bmRleCBhN2I2NTM2Li5lOTE1M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0y
NjksNyArMjY5LDcgQEAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKFN0
eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnQKIGJvb2wgRm9udExvYWRlcjo6
cmVzb2x2ZUZvbnRTdHlsZShjb25zdCBTdHJpbmcmIGZvbnRTdHJpbmcsIEZvbnQmIGZvbnQpCiB7
CiAgICAgLy8gSW50ZXJwcmV0IGZvbnRTdHJpbmcgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSAnZm9u
dCcgYXR0cmlidXRlIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC4KLSAgICBSZWZQdHI8U3R5
bGVQcm9wZXJ0eVNldD4gcGFyc2VkU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsK
KyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHBhcnNlZFN0eWxlID0gTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShw
YXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlGb250LCBmb250U3RyaW5nLCB0cnVlLCBDU1NT
dHJpY3RNb2RlLCAwKTsKICAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4
IGYzNGZmMzAuLmYzNzcwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5j
cHAKQEAgLTEyMjEsNyArMTIyMSw3IEBAIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QKICAgICAgICAg
aWYgKHZhbHVlKQogICAgICAgICAgICAgbGlzdC5hcHBlbmQoQ1NTUHJvcGVydHkoc2V0W2ldLCB2
YWx1ZS5yZWxlYXNlKCksIGZhbHNlKSk7CiAgICAgfQotICAgIHJldHVybiBzdGF0aWNfcG9pbnRl
cl9jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0PihTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUo
bGlzdC5kYXRhKCksIGxpc3Quc2l6ZSgpKSk7CisgICAgcmV0dXJuIE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0OjpjcmVhdGUobGlzdC5kYXRhKCksIGxpc3Quc2l6ZSgpKTsKIH0KIAogUHJvcGVydHlT
ZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBTdHlsZVByb3BlcnR5U2V0Ojpjc3NTdHlsZURlY2xhcmF0
aW9uKCkKQEAgLTEyOTIsMTIgKzEyOTIsMTIgQEAgdm9pZCBTdHlsZVByb3BlcnR5U2V0OjpzaG93
U3R5bGUoKQogfQogI2VuZGlmCiAKLVBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gU3R5bGVQ
cm9wZXJ0eVNldDo6Y3JlYXRlKENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKK1Bhc3NSZWZQ
dHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVh
dGUoQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQoY3NzUGFyc2VyTW9kZSkpOwogfQogCi1QYXNzUmVm
UHRyPFN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShjb25zdCBDU1NQ
cm9wZXJ0eSogcHJvcGVydGllcywgdW5zaWduZWQgY291bnQpCitQYXNzUmVmUHRyPE11dGFibGVT
dHlsZVByb3BlcnR5U2V0PiBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKGNvbnN0IENT
U1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCB1bnNpZ25lZCBjb3VudCkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE11dGFibGVTdHlsZVByb3BlcnR5U2V0KHByb3BlcnRpZXMsIGNvdW50KSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaAppbmRleCAwNmY4ZTc0Li5iYTIwMTYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKQEAgLTUwLDggKzUwLDYgQEAg
cHVibGljOgogICAgIC8vIHRoZSBhcHByb3ByaWF0ZSBzdWJjbGFzcyB0eXBlLgogICAgIHZvaWQg
ZGVyZWYoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNyZWF0
ZShDU1NQYXJzZXJNb2RlID0gQ1NTUXVpcmtzTW9kZSk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U3R5bGVQcm9wZXJ0eVNldD4gY3JlYXRlKGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCB1
bnNpZ25lZCBjb3VudCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4g
Y3JlYXRlSW1tdXRhYmxlKGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCB1bnNpZ25lZCBj
b3VudCwgQ1NTUGFyc2VyTW9kZSk7CiAKICAgICBjbGFzcyBQcm9wZXJ0eVJlZmVyZW5jZSB7CkBA
IC0yMzMsMTMgKzIzMSwxOCBAQCBpbmxpbmUgY29uc3QgU3R5bGVQcm9wZXJ0eU1ldGFkYXRhKiBT
dHlsZVByb3BlcnR5U2V0OjppbW11dGFibGVNZXRhZGF0YUFycmF5KCkgYwogCiBjbGFzcyBNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldCA6IHB1YmxpYyBTdHlsZVByb3BlcnR5U2V0IHsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gY3JlYXRlKENT
U1BhcnNlck1vZGUgPSBDU1NRdWlya3NNb2RlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldD4gY3JlYXRlKGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVz
LCB1bnNpZ25lZCBjb3VudCk7CisKKyAgICBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldChjb25zdCBT
dHlsZVByb3BlcnR5U2V0Jik7CisKKyAgICBWZWN0b3I8Q1NTUHJvcGVydHksIDQ+IG1fcHJvcGVy
dHlWZWN0b3I7CisKK3ByaXZhdGU6CiAgICAgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQoQ1NTUGFy
c2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogICAgICAgICA6IFN0eWxlUHJvcGVydHlTZXQoY3NzUGFy
c2VyTW9kZSkKICAgICB7IH0KICAgICBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldChjb25zdCBDU1NQ
cm9wZXJ0eSogcHJvcGVydGllcywgdW5zaWduZWQgY291bnQpOwotICAgIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KGNvbnN0IFN0eWxlUHJvcGVydHlTZXQmKTsKLQotICAgIFZlY3RvcjxDU1NQcm9w
ZXJ0eSwgND4gbV9wcm9wZXJ0eVZlY3RvcjsKIH07CiAKIGlubGluZSBWZWN0b3I8Q1NTUHJvcGVy
dHksIDQ+JiBTdHlsZVByb3BlcnR5U2V0OjptdXRhYmxlUHJvcGVydHlWZWN0b3IoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDExNWZlYjUuLjI3NjBhNzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTIxOTQsNyArMjE5NCw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6cmVzb2x2ZVZhcmlhYmxlcyhDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSog
dmFsdWUsIFZlY3RvcjxzCiAgICAga25vd25FeHByZXNzaW9ucy5hcHBlbmQoZXhwcmVzc2lvbik7
CiAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZmFzdGVyIG5vdCB0byByZS1wYXJzZSBmcm9t
IHN0cmluZ3MsIGJ1dCBmb3Igbm93IENTUyBwcm9wZXJ0eSB2YWxpZGF0aW9uIGxpdmVzIGluc2lk
ZSB0aGUgcGFyc2VyIHNvIHdlIGRvIGl0IHRoZXJlLgotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5
U2V0PiByZXN1bHRTZXQgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHJlc3VsdFNldCA9IE11dGFibGVTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKTsKICAgICBpZiAoIUNTU1BhcnNlcjo6cGFyc2VWYWx1ZShyZXN1bHRTZXQu
Z2V0KCksIGlkLCBleHByZXNzaW9uLnNlY29uZCwgZmFsc2UsIGRvY3VtZW50KCkpKQogICAgICAg
ICByZXR1cm47IC8vIGV4cHJlc3Npb24gZmFpbGVkIHRvIHBhcnNlLgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDc0M2Y5MmIuLjk2NDVmNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgV2ViS2l0
Q1NTTWF0cml4OjpzZXRNYXRyaXhWYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZywgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZURlY2xhcmF0aW9uID0gU3R5bGVQcm9w
ZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBz
dHlsZURlY2xhcmF0aW9uID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAg
IGlmIChDU1NQYXJzZXI6OnBhcnNlVmFsdWUoc3R5bGVEZWNsYXJhdGlvbi5nZXQoKSwgQ1NTUHJv
cGVydHlXZWJraXRUcmFuc2Zvcm0sIHN0cmluZywgdHJ1ZSwgQ1NTU3RyaWN0TW9kZSwgMCkpIHsK
ICAgICAgICAgLy8gQ29udmVydCB0byBUcmFuc2Zvcm1PcGVyYXRpb25zLiBUaGlzIGNhbiBmYWls
IGlmIGEgcHJvcGVydHkKICAgICAgICAgLy8gcmVxdWlyZXMgc3R5bGUgKGkuZS4sIHBhcmFtIHVz
ZXMgJ2Vtcycgb3IgJ2V4cycpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggMDFhYTJhMi4uMDIzYjYxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9BdHRyLmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIENTU1N0eWxlRGVjbGFyYXRpb24q
IEF0dHI6OnN0eWxlKCkKICAgICAvLyBUaGlzIGZ1bmN0aW9uIG9ubHkgZXhpc3RzIHRvIHN1cHBv
cnQgdGhlIE9iai1DIGJpbmRpbmdzLgogICAgIGlmICghbV9lbGVtZW50IHx8ICFtX2VsZW1lbnQt
PmlzU3R5bGVkRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICBtX3N0eWxlID0gU3R5
bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgbV9zdHlsZSA9IE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obV9lbGVt
ZW50KS0+Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKHF1YWxpZmllZE5hbWUo
KSwgdmFsdWUoKSwgc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3N0eWxl
LmdldCgpKSk7CiAgICAgcmV0dXJuIG1fc3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24o
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGZjNjViOTMuLjY0Y2I1ZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTU3LDcgKzk1Nyw3IEBAIFBhc3NSZWZQdHI8VGV4dD4g
RG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmIHRleHQpCiAKIFBh
c3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZUNTU1N0eWxlRGVj
bGFyYXRpb24oKQogewotICAgIHJldHVybiBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKS0+ZW5z
dXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworICAgIHJldHVybiBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldDo6Y3JlYXRlKCktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKIH0KIAogUGFzc1Jl
ZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wg
ZGVlcCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAK
aW5kZXggODYzN2UxYi4uMTQ2MDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNw
cApAQCAtMTUwLDcgKzE1MCw3IEBAIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBTdHlsZWRFbGVt
ZW50OjplbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUoKQogewogICAgIFJlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiYgaW5saW5lU3R5bGUgPSBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLT5tX2lubGlu
ZVN0eWxlOwogICAgIGlmICghaW5saW5lU3R5bGUpCi0gICAgICAgIGlubGluZVN0eWxlID0gU3R5
bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKHN0cmljdFRvQ1NTUGFyc2VyTW9kZShpc0hUTUxFbGVtZW50
KCkgJiYgIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKSk7CisgICAgICAgIGlubGluZVN0eWxl
ID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShzdHJpY3RUb0NTU1BhcnNlck1vZGUo
aXNIVE1MRWxlbWVudCgpICYmICFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkpOwogICAgIGVs
c2UgaWYgKCFpbmxpbmVTdHlsZS0+aXNNdXRhYmxlKCkpCiAgICAgICAgIGlubGluZVN0eWxlID0g
aW5saW5lU3R5bGUtPm11dGFibGVDb3B5KCk7CiAgICAgQVNTRVJUKGlubGluZVN0eWxlLT5pc011
dGFibGUoKSk7CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpyZWJ1aWxk
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKQogICAgICAgICBzdHlsZSA9IGNhY2hlSXRlcmF0
b3ItPnZhbHVlLT52YWx1ZTsKICAgICAgICAgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVh
bmVyKCkuZGlkSGl0UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUoKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShpc1NWR0VsZW1lbnQoKSA/
IFNWR0F0dHJpYnV0ZU1vZGUgOiBDU1NRdWlya3NNb2RlKTsKKyAgICAgICAgc3R5bGUgPSBNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKGlzU1ZHRWxlbWVudCgpID8gU1ZHQXR0cmlidXRl
TW9kZSA6IENTU1F1aXJrc01vZGUpOwogICAgICAgICB1bnNpZ25lZCBzaXplID0gYXR0cmlidXRl
Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICAgICAgY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVJdGVtKGkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA2
MzBiZmZlLi4zZWM1ZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcApAQCAtMjk3LDEwICsyOTcsMTAgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlCbG9ja1N0eWxlKEVkaXRpbmdTdHlsZSAqc3R5bGUpCiAgICAgICAgIHVwZGF0ZVN0YXJ0
RW5kKHN0YXJ0UmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgZW5kUmFuZ2UtPnN0YXJ0UG9zaXRpb24o
KSk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlTdHlsZU9y
Q3JlYXRlRW1wdHkoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCitzdGF0aWMgUGFzc1Jl
ZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gY29weVN0eWxlT3JDcmVhdGVFbXB0eShjb25z
dCBTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKIHsKICAgICBpZiAoIXN0eWxlKQotICAgICAgICBy
ZXR1cm4gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgICAgIHJldHVybiBNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgcmV0dXJuIHN0eWxlLT5tdXRhYmxlQ29w
eSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5kZXggMzNi
ZjI3Ny4uNGM0Y2U1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
U3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApA
QCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0VkaXRpbmdQcm9wZXJ0eShp
bnQgaWQpCiBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gZWRpdGlu
Z1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoUGFzc1JlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24+IHN0eWxlLCBFZGl0aW5nUHJvcGVydGllc1R5cGUgdHlwZSA9IE9ubHlJbmhlcml0YWJs
ZUVkaXRpbmdQcm9wZXJ0aWVzKQogewogICAgIGlmICghc3R5bGUpCi0gICAgICAgIHJldHVybiBz
dGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0PihTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKSk7CisgICAgICAgIHJldHVybiBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCk7CiAgICAgcmV0dXJuIGNvcHlFZGl0aW5nUHJvcGVydGllcyhzdHlsZS5nZXQoKSwg
dHlwZSk7CiB9CiAKQEAgLTI1OSw4ICsyNTksOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBIVE1M
QXR0cmlidXRlRXF1aXZhbGVudDo6YXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVlKEVsZW1lbnQqCiAg
ICAgaWYgKCFlbGVtZW50LT5oYXNBdHRyaWJ1dGUobV9hdHRyTmFtZSkpCiAgICAgICAgIHJldHVy
biAwOwogICAgIAotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBkdW1teVN0eWxlOwotICAg
IGR1bW15U3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGR1bW15U3R5bGU7CisgICAgZHVtbXlTdHlsZSA9IE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBkdW1teVN0eWxlLT5zZXRQcm9wZXJ0
eShtX3Byb3BlcnR5SUQsIGVsZW1lbnQtPmdldEF0dHJpYnV0ZShtX2F0dHJOYW1lKSk7CiAgICAg
cmV0dXJuIGR1bW15U3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUobV9wcm9wZXJ0eUlEKTsKIH0K
QEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlVGV4dEZpbGxBbmRT
dHJva2VDb2xvcnNJZk5lZWRlZChSZW5kZXJTdHlsZSogcmVuZGVyU3R5bAogdm9pZCBFZGl0aW5n
U3R5bGU6OnNldFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKLSAg
ICAgICAgbV9tdXRhYmxlU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICAg
ICAgbV9tdXRhYmxlU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAK
ICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgdmFsdWUsIGltcG9y
dGFudCk7CiB9CkBAIC01NjksNyArNTY5LDcgQEAgUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IEVk
aXRpbmdTdHlsZTo6ZXh0cmFjdEFuZFJlbW92ZUJsb2NrUHJvcGVydGllcygpCiBQYXNzUmVmUHRy
PEVkaXRpbmdTdHlsZT4gRWRpdGluZ1N0eWxlOjpleHRyYWN0QW5kUmVtb3ZlVGV4dERpcmVjdGlv
bigpCiB7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gdGV4dERpcmVjdGlvbiA9IEVkaXRpbmdT
dHlsZTo6Y3JlYXRlKCk7Ci0gICAgdGV4dERpcmVjdGlvbi0+bV9tdXRhYmxlU3R5bGUgPSBTdHls
ZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICB0ZXh0RGlyZWN0aW9uLT5tX211dGFibGVTdHls
ZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICB0ZXh0RGlyZWN0aW9u
LT5tX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NT
VmFsdWVFbWJlZCwgbV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5SXNJbXBvcnRhbnQoQ1NTUHJvcGVy
dHlVbmljb2RlQmlkaSkpOwogICAgIHRleHREaXJlY3Rpb24tPm1fbXV0YWJsZVN0eWxlLT5zZXRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgbV9tdXRhYmxlU3R5bGUtPmdldFByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlEaXJlY3Rpb24pLAogICAgICAgICBtX211dGFibGVTdHlsZS0+cHJv
cGVydHlJc0ltcG9ydGFudChDU1NQcm9wZXJ0eURpcmVjdGlvbikpOwpAQCAtMTA3NCw3ICsxMDc0
LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGUoY29uc3QgU3R5bGVQcm9wZXJ0eVNl
dCogc3R5bGUsIENTU1Byb3BlcnR5T3ZlcnJpZGUKIAogc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQ
cm9wZXJ0eVNldD4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSkKIHsKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0
eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNy
ZWF0ZSgpOwogICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0Y2hlZFJ1bGVzID0gZWxlbWVudC0+
ZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50
LCBydWxlc1RvSW5jbHVkZSk7CiAgICAgaWYgKG1hdGNoZWRSdWxlcykgewogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbWF0Y2hlZFJ1bGVzLT5sZW5ndGgoKTsgaSsrKSB7CkBAIC0x
MTA3LDcgKzExMDcsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VTdHlsZUZyb21SdWxlc0Zv
clNlcmlhbGl6YXRpb24oU3R5bGVkRWxlbWVudCogZWxlbWVudCkKICAgICAvLyBGb3IgZXhhbXBs
ZTogc3R5bGU9ImhlaWdodDogMSU7IG92ZXJmbG93OiB2aXNpYmxlOyIgaW4gcXVpcmtzbW9kZQog
ICAgIC8vIEZJWE1FOiBUaGVyZSBhcmUgb3RoZXJzIGxpa2UgdGhpcywgc2VlIDxyZGFyOi8vcHJv
YmxlbS81MTk1MTIzPiBTbGFzaGRvdCBjb3B5L3Bhc3RlIGZpZGVsaXR5IHByb2JsZW0KICAgICBS
ZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBjb21wdXRlZFN0eWxlRm9yRWxlbWVu
dCA9IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKGVsZW1lbnQpOwotICAgIFJl
ZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBmcm9tQ29tcHV0ZWRTdHlsZSA9IFN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gZnJvbUNv
bXB1dGVkU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgewog
ICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gbV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5
Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7
ICsraSkgewpAQCAtMTE3OCw3ICsxMTc4LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVBy
b3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoRWxlbWVudCogZWxlbWVudCkKIHZvaWQgRWRp
dGluZ1N0eWxlOjpmb3JjZUlubGluZSgpCiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKLSAg
ICAgICAgbV9tdXRhYmxlU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICAg
ICAgbV9tdXRhYmxlU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAg
ICAgY29uc3QgYm9vbCBwcm9wZXJ0eUlzSW1wb3J0YW50ID0gdHJ1ZTsKICAgICBtX211dGFibGVT
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBDU1NWYWx1ZUlubGluZSwgcHJv
cGVydHlJc0ltcG9ydGFudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZDMx
MzBjNy4uYTAxODAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTM2OSw3ICsx
MzY5LDcgQEAgdm9pZCBFZGl0b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJl
Y3Rpb24gZGlyZWN0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPFN0
eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAg
UmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJl
Y3Rpb24sIGRpcmVjdGlvbiA9PSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gPyAibHRyIiA6
IGRpcmVjdGlvbiA9PSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24gPyAicnRsIiA6ICJpbmhl
cml0IiwgZmFsc2UpOwogICAgIGFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbihzdHlsZS5n
ZXQoKSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggM2M1ZjBhNi4uYjMwZmY4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xMTgsMTQgKzExOCwxNCBAQCBz
dGF0aWMgYm9vbCBhcHBseUNvbW1hbmRUb0ZyYW1lKEZyYW1lKiBmcmFtZSwgRWRpdG9yQ29tbWFu
ZFNvdXJjZSBzb3VyY2UsIEVkaXRBYwogCiBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlTdHlsZShG
cmFtZSogZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBFZGl0QWN0aW9uIGFjdGlv
biwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHByb3BlcnR5VmFsdWUp
CiB7Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNl
dDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkocHJvcGVydHlJRCwgcHJvcGVydHlWYWx1ZSk7CiAgICAgcmV0dXJuIGFwcGx5Q29tbWFuZFRv
RnJhbWUoZnJhbWUsIHNvdXJjZSwgYWN0aW9uLCBzdHlsZS5nZXQoKSk7CiB9CiAKIHN0YXRpYyBi
b29sIGV4ZWN1dGVBcHBseVN0eWxlKEZyYW1lKiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsIEVkaXRBY3Rpb24gYWN0aW9uLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGludCBw
cm9wZXJ0eVZhbHVlKQogewotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldD4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgc3R5
bGUtPnNldFByb3BlcnR5KHByb3BlcnR5SUQsIHByb3BlcnR5VmFsdWUpOwogICAgIHJldHVybiBh
cHBseUNvbW1hbmRUb0ZyYW1lKGZyYW1lLCBzb3VyY2UsIGFjdGlvbiwgc3R5bGUuZ2V0KCkpOwog
fQpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVUb2dnbGVTdHlsZUluTGlz
dChGcmFtZSogZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBFCiAgICAgICAgIG5l
d1N0eWxlID0gdmFsdWUtPmNzc1RleHQoKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3Qg
YmUgaGF2aW5nIHRvIGNvbnZlcnQgbmV3IHN0eWxlIGludG8gdGV4dC4gIFdlIHNob3VsZCBoYXZl
IHNldFByb3BlcnR5Q1NTVmFsdWUuCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG5ld011
dGFibGVTdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldD4gbmV3TXV0YWJsZVN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ6OmNyZWF0ZSgpOwogICAgIG5ld011dGFibGVTdHlsZS0+c2V0UHJvcGVydHkocHJvcGVy
dHlJRCwgbmV3U3R5bGUpOwogICAgIHJldHVybiBhcHBseUNvbW1hbmRUb0ZyYW1lKGZyYW1lLCBz
b3VyY2UsIGFjdGlvbiwgbmV3TXV0YWJsZVN0eWxlLmdldCgpKTsKIH0KQEAgLTE3NSw3ICsxNzUs
NyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlU3R5bGUoRnJhbWUqIGZyYW1lLCBFZGl0b3JD
b21tYW5kU291cmNlIHNvdXJjZSwgRWRpdEFjdAogCiBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQ
YXJhZ3JhcGhTdHlsZShGcmFtZSogZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBF
ZGl0QWN0aW9uIGFjdGlvbiwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcm
IHByb3BlcnR5VmFsdWUpCiB7Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0g
U3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0PiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBz
dHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgcHJvcGVydHlWYWx1ZSk7CiAgICAgLy8gRklY
TUU6IFdlIGRvbid0IGNhbGwgc2hvdWxkQXBwbHlTdHlsZSB3aGVuIHRoZSBzb3VyY2UgaXMgRE9N
OyBpcyB0aGVyZSBhIGdvb2QgcmVhc29uIGZvciB0aGF0PwogICAgIHN3aXRjaCAoc291cmNlKSB7
CkBAIC01ODgsNyArNTg4LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUp1c3RpZnlSaWdodChGcmFt
ZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UKIAogc3RhdGljIGJv
b2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0KEZyYW1lKiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIFJl
ZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgp
OworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3Bl
cnR5VW5pY29kZUJpZGksIENTU1ZhbHVlRW1iZWQpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eURpcmVjdGlvbiwgQ1NTVmFsdWVMdHIpOwogICAgIGZyYW1lLT5lZGl0b3IoKS0+
YXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24pOwpA
QCAtNTk3LDcgKzU5Nyw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJl
Y3Rpb25MZWZ0VG9SaWdodChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpCiAKIHN0YXRpYyBib29s
IGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25OYXR1cmFsKEZyYW1lKiBmcmFtZSwgRXZl
bnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIFJlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAg
IFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VW5p
Y29kZUJpZGksIENTU1ZhbHVlTm9ybWFsKTsKICAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5
bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTYwNSw3ICs2MDUsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlTWFrZVRleHRX
cml0aW5nRGlyZWN0aW9uTmF0dXJhbChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQwogCiBz
dGF0aWMgYm9vbCBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQoRnJh
bWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7
Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IE11
dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCk7CiAgICAgc3R5bGUtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZVJ0bCk7CiAgICAgZnJhbWUtPmVk
aXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLmdldCgpLCBFZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVj
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA3ZGY5
ZWJjLi43YTRhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAK
QEAgLTQxNSw3ICs0MTUsNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogCiBzdGF0aWMgU3R5
bGVQcm9wZXJ0eVNldCogbGVha0JvcmRlclN0eWxlKGludCB2YWx1ZSkKIHsKLSAgICBSZWZQdHI8
U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAg
ICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlclRvcFN0eWxlLCB2YWx1ZSk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyQm90dG9tU3R5bGUsIHZhbHVlKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlCb3JkZXJMZWZ0U3R5bGUsIHZhbHVlKTsKQEAgLTQ3MSw3ICs0NzEsNyBAQCBIVE1MVGFi
bGVFbGVtZW50OjpDZWxsQm9yZGVycyBIVE1MVGFibGVFbGVtZW50OjpjZWxsQm9yZGVycygpIGNv
bnN0CiAKIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gSFRNTFRhYmxlRWxlbWVudDo6Y3Jl
YXRlU2hhcmVkQ2VsbFN0eWxlKCkKIHsKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5
bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwog
CiAgICAgc3dpdGNoIChjZWxsQm9yZGVycygpKSB7CiAgICAgY2FzZSBTb2xpZEJvcmRlcnNDb2xz
T25seToKQEAgLTUxOCw3ICs1MTgsNyBAQCBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBIVE1MVGFi
bGVFbGVtZW50OjphZGRpdGlvbmFsQ2VsbFN0eWxlKCkKIAogc3RhdGljIFN0eWxlUHJvcGVydHlT
ZXQqIGxlYWtHcm91cEJvcmRlclN0eWxlKGludCByb3dzKQogewotICAgIFJlZlB0cjxTdHlsZVBy
b3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIFJlZlB0
cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dDo6Y3JlYXRlKCk7CiAgICAgaWYgKHJvd3MpIHsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Qm9yZGVyVG9wV2lkdGgsIENTU1ZhbHVlVGhpbik7CiAgICAgICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoLCBDU1NWYWx1ZVRoaW4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAKaW5kZXggYzE0MTEwZS4uNDcxOTdkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBA
IC0yMDI2LDcgKzIwMjYsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9u
dChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCiAgICAgaWYgKG5ld0ZvbnQgPT0gc3RhdGUoKS5tX3Vu
cGFyc2VkRm9udCAmJiBzdGF0ZSgpLm1fcmVhbGl6ZWRGb250KQogICAgICAgICByZXR1cm47CiAK
LSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gcGFyc2VkU3R5bGUgPSBTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHBhcnNl
ZFN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShwYXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlGb250LCBuZXdGb250
LCB0cnVlLCBzdHJpY3RUb0NTU1BhcnNlck1vZGUoIW1fdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJz
ZU1vZGUpLCAwKTsKICAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQu
Y3BwCmluZGV4IDkyN2U2OWQuLmZlYzY1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTM3Miw3ICszNzIsNyBAQCBib29sIElu
c3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlUZXh0LAogICAgIHBvcHVsYXRlQWxsUHJvcGVydGllcygmYWxsUHJvcGVydGll
cyk7CiAKICAgICBpZiAocHJvcGVydHlUZXh0LnN0cmlwV2hpdGVTcGFjZSgpLmxlbmd0aCgpKSB7
Ci0gICAgICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiB0ZW1wTXV0YWJsZVN0eWxlID0gU3R5
bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldD4gdGVtcE11dGFibGVTdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVh
dGUoKTsKICAgICAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gQ1NT
UnVsZVNvdXJjZURhdGE6OmNyZWF0ZShDU1NSdWxlU291cmNlRGF0YTo6U1RZTEVfUlVMRSk7CiAg
ICAgICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gbV9wYXJlbnRTdHlsZVNoZWV0LT5wYWdl
U3R5bGVTaGVldCgpID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5wYWdlU3R5bGVTaGVldCgpLT5vd25l
ckRvY3VtZW50KCkgOiAwOwogICAgICAgICBjcmVhdGVDU1NQYXJzZXIob3duZXJEb2N1bWVudCkt
PnBhcnNlRGVjbGFyYXRpb24odGVtcE11dGFibGVTdHlsZS5nZXQoKSwgcHJvcGVydHlUZXh0ICsg
IiAiICsgYm9ndXNQcm9wZXJ0eU5hbWUgKyAiOiBub25lIiwgc291cmNlRGF0YSwgbV9zdHlsZS0+
cGFyZW50U3R5bGVTaGVldCgpLT5jb250ZW50cygpKTsKQEAgLTE1MzQsNyArMTUzNCw3IEBAIGJv
b2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpnZXRTdHlsZUF0dHJpYnV0ZVJh
bmdlcyhDU1NSdWxlU291cmNlRGF0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiB0ZW1wRGVjbGFyYXRpb24gPSBTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHRlbXBE
ZWNsYXJhdGlvbiA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBjcmVh
dGVDU1NQYXJzZXIobV9lbGVtZW50LT5kb2N1bWVudCgpKS0+cGFyc2VEZWNsYXJhdGlvbih0ZW1w
RGVjbGFyYXRpb24uZ2V0KCksIG1fc3R5bGVUZXh0LCByZXN1bHQsIG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZWxlbWVudFNoZWV0KCktPmNvbnRlbnRzKCkpOwogICAgIHJldHVybiB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBlMjRjMmNlLi43OTI5NmVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNDczLDcgKzQ3Myw3
IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqIGRyYWdE
YXRhKQogICAgICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgUmVmUHRyPFJhbmdlPiBpbm5lclJhbmdlID0gaW5uZXJGcmFtZS0+c2Vs
ZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgIFJlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgICAgICBSZWZQ
dHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZSgpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlDb2xv
ciwgY29sb3Iuc2VyaWFsaXplZCgpLCBmYWxzZSk7CiAgICAgICAgIGlmICghaW5uZXJGcmFtZS0+
ZWRpdG9yKCktPnNob3VsZEFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIGlubmVyUmFuZ2UuZ2V0KCkp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRS
YXJlRGF0YS5oCmluZGV4IDUwNjc5ZGYuLjUwNTQ1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudFJhcmVEYXRhLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIFN0eWxlUHJv
cGVydHlTZXQqIGVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpCiAgICAgewogICAg
ICAgICBpZiAoIW1fYW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKQotICAgICAgICAgICAgbV9h
bmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoU1ZH
QXR0cmlidXRlTW9kZSk7CisgICAgICAgICAgICBtX2FuaW1hdGVkU01JTFN0eWxlUHJvcGVydGll
cyA9IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoU1ZHQXR0cmlidXRlTW9kZSk7CiAg
ICAgICAgIHJldHVybiBtX2FuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcy5nZXQoKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKaW5kZXggNTgzNjRi
OC4uZmI2NTQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAK
QEAgLTUzLDcgKzUzLDcgQEAgaW5saW5lIFNWR0ZvbnRGYWNlRWxlbWVudDo6U1ZHRm9udEZhY2VF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3UKICAgICAsIG1fZm9udEVs
ZW1lbnQoMCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250X2ZhY2VUYWcpKTsKLSAgICBS
ZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGVEZWNsYXJhdGlvbiA9IFN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZShDU1NTdHJpY3RNb2RlKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ+IHN0eWxlRGVjbGFyYXRpb24gPSBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRl
KENTU1N0cmljdE1vZGUpOwogICAgIG1fZm9udEZhY2VSdWxlLT5zZXRQcm9wZXJ0aWVzKHN0eWxl
RGVjbGFyYXRpb24ucmVsZWFzZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVs
ZW1lbnQuY3BwCmluZGV4IGYxNWQ1ODAuLjkxOGZmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVkRWxlbWVudC5jcHAKQEAgLTQwNiw3ICs0MDYsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBTVkdTdHlsZWRFbGVtZW50OjpnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgU3RyaW5n
JiBuYQogICAgIGlmICghYXR0cikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8U3R5
bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoU1ZHQXR0cmli
dXRlTW9kZSk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IE11
dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoU1ZHQXR0cmlidXRlTW9kZSk7CiAgICAgQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gU1ZHU3R5bGVkRWxlbWVudDo6Y3NzUHJvcGVydHlJZEZv
clNWR0F0dHJpYnV0ZU5hbWUoYXR0ci0+bmFtZSgpKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHko
cHJvcGVydHlJRCwgYXR0ci0+dmFsdWUoKSk7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1
ZSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>