<?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>76363</bug_id>
          
          <creation_ts>2012-01-15 21:52:11 -0800</creation_ts>
          <short_desc>Remove references to CSSPrimitiveValue::primitiveType().</short_desc>
          <delta_ts>2012-01-17 02:27:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Luke Macpherson">macpherson</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536360</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-01-15 21:52:11 -0800</bug_when>
    <thetext>Remove references to CSSPrimitiveValue::primitiveType().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536361</commentid>
    <comment_count>1</comment_count>
      <attachid>122592</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-01-15 21:55:41 -0800</bug_when>
    <thetext>Created attachment 122592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536392</commentid>
    <comment_count>2</comment_count>
      <attachid>122592</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-16 00:10:53 -0800</bug_when>
    <thetext>Comment on attachment 122592
Patch

Looks sane. I like this ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536979</commentid>
    <comment_count>3</comment_count>
      <attachid>122592</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 02:27:08 -0800</bug_when>
    <thetext>Comment on attachment 122592
Patch

Clearing flags on attachment: 122592

Committed r105135: &lt;http://trac.webkit.org/changeset/105135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536980</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 02:27:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122592</attachid>
            <date>2012-01-15 21:55:41 -0800</date>
            <delta_ts>2012-01-17 02:27:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76363-20120116165538.patch</filename>
            <type>text/plain</type>
            <size>40833</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDEyLTAxLTE1ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHJl
ZmVyZW5jZXMgdG8gQ1NTUHJpbWl0aXZlVmFsdWU6OnByaW1pdGl2ZVR5cGUoKS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC8gcmVm
YWN0b3Jpbmcgb25seS4KKworICAgICAgICBHb2FsIGlzIHRvIHJlbW92ZSBwcmltaXRpdmVUeXBl
KCkgY29tcGxldGVseS4gT25seSBjb2RlIGxlZnQgdXNpbmcgaXQgYWZ0ZXIgdGhpcyBwYXRjaCBp
cyBpbiBTVkcuCisgICAgICAgIEkndmUgaW50cm9kdWNlZCBzb21lIGFic3RyYWN0aW9ucyBpbiBD
U1NQcmltaXRpdmVWYWx1ZSBmb3IgdGltZSBhbmQgYW5nbGVzIHRvIHJlZHVjZSBkdXBsaWNhdGVk
IGNvZGUgZWxzZXdoZXJlLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmNzc1Byb3BlcnR5TWF0Y2hlcyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ29sb3IpOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Y29tcHV0ZURlZ3JlZXMpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzQW5nbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6aXNDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjppc0ZvbnRJbmRlcGVuZGVudExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6aXNMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OmlzUHgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNSR0JDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNTaGFwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlVGltZSk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvTGVuZ3RoKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFja0JyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjptYXBGaWxsU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjptYXBGaWxsWFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6Om1hcEZpbGxZUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6bWFwQW5pbWF0aW9uRGVsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6bWFwQW5pbWF0aW9uRHVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxl
Y3Rvcjo6bWFwTmluZVBpZWNlSW1hZ2VTbGljZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjptYXBOaW5lUGllY2VJbWFnZVF1YWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6Y29sb3JGcm9tUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlVHJhbnNmb3JtT3BlcmF0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlRmlsdGVyT3BlcmF0
aW9ucyk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cGFyc2VBc3BlY3RSYXRpbyk6CisgICAgICAgIChXZWJDb3JlOjpudW1iZXJWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlTGVuZ3RoKToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZVRvUkdCQSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmV4dHJhY3RGb250U2l6ZURlbHRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6bWVyZ2VTdHlsZUZyb21SdWxlc0ZvclNlcmlh
bGl6YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNDU1NWYWx1ZUxlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpoYXNUcmFuc3BhcmVudEJhY2tncm91bmRDb2xvcik6CisKIDIwMTItMDEtMTUg
IEx1a2UgTWFjcGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZW1vdmUgZXh0ZXJuYWwgcmVmZXJlbmNlcyB0byBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVz
IGVudW0uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMTA1MDMzKQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0ODEs
NyArMjQ4MSw3IEBAIGJvb2wgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjc3NQcm8KICAg
ICAgICAgaWYgKHN0eWxlICYmIHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5rZXl3b3JkU2l6ZSgp
KSB7CiAgICAgICAgICAgICBpbnQgc2l6ZVZhbHVlID0gY3NzSWRlbnRpZmllckZvckZvbnRTaXpl
S2V5d29yZChzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkua2V5d29yZFNpemUoKSk7CiAgICAgICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHByb3BlcnR5LT52YWx1ZSgpKTsKLSAgICAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURF
TlQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gc2l6ZVZhbHVlKQorICAgICAgICAg
ICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0lkZW50KCkgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gc2l6ZVZhbHVlKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDEwNTAz
MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MjcsNyArNTI3LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoUkdCQTMyJiBjb2xv
cgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBp
ZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1JHQkNPTE9SKQorICAgIGlmICghcHJpbWl0aXZlVmFsdWUtPmlzUkdCQ29sb3IoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29sb3IgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0UkdC
QTMyVmFsdWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNw
cAkocmV2aXNpb24gMTA1MDMzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM4LDYgKzMzOCwyMyBAQCB2b2lkIENTU1ByaW1p
dGl2ZVZhbHVlOjpjbGVhbnVwKCkKICAgICB9CiB9CiAKK2RvdWJsZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y29tcHV0ZURlZ3JlZXMoKQoreworICAgIHN3aXRjaCAobV9wcmltaXRpdmVVbml0VHlwZSkg
eworICAgIGNhc2UgQ1NTX0RFRzoKKyAgICAgICAgcmV0dXJuIGdldERvdWJsZVZhbHVlKCk7Cisg
ICAgY2FzZSBDU1NfUkFEOgorICAgICAgICByZXR1cm4gcmFkMmRlZyhnZXREb3VibGVWYWx1ZSgp
KTsKKyAgICBjYXNlIENTU19HUkFEOgorICAgICAgICByZXR1cm4gZ3JhZDJkZWcoZ2V0RG91Ymxl
VmFsdWUoKSk7CisgICAgY2FzZSBDU1NfVFVSTjoKKyAgICAgICAgcmV0dXJuIHR1cm4yZGVnKGdl
dERvdWJsZVZhbHVlKCkpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKIHRlbXBsYXRlPD4gaW50IENTU1By
aW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5
bGUqIHJvb3RTdHlsZSwgZG91YmxlIG11bHRpcGxpZXIsIGJvb2wgY29tcHV0aW5nRm9udFNpemUp
CiB7CiAgICAgcmV0dXJuIHJvdW5kRm9ySW1wcmVjaXNlQ29udmVyc2lvbjxpbnQsIElOVF9NQVgs
IElOVF9NSU4+KGNvbXB1dGVMZW5ndGhEb3VibGUoc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGll
ciwgY29tcHV0aW5nRm9udFNpemUpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oCShyZXZpc2lvbiAxMDUwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDE3ICsxMTYsMzQgQEAgcHVibGlj
OgogICAgICAgICBVT3RoZXIKICAgICB9OwogCi0gICAgc3RhdGljIGJvb2wgaXNVbml0VHlwZUxl
bmd0aChpbnQgdHlwZSkgeyByZXR1cm4gKHR5cGUgPiBDU1NfUEVSQ0VOVEFHRSAmJiB0eXBlIDwg
Q1NTX0RFRykgfHwgdHlwZSA9PSBDU1NfUkVNUzsgfQotCisgICAgYm9vbCBpc0FuZ2xlKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19ERUcK
KyAgICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1JBRAorICAgICAg
ICAgICAgICAgfHwgbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfR1JBRAorICAgICAgICAgICAg
ICAgfHwgbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVFVSTjsKKyAgICB9CisgICAgYm9vbCBp
c0F0dHIoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19BVFRSOyB9
CisgICAgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID09IENTU19DT1VOVEVSOyB9CisgICAgYm9vbCBpc0ZvbnRJbmRlcGVuZGVudExlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPj0gQ1NTX1BYICYmIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPD0gQ1NTX1BDOyB9CiAgICAgYm9vbCBpc0ZvbnRSZWxhdGl2ZUxlbmd0aCgpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfRU1T
IHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0VYUyB8fCBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID09IENTU19SRU1TOwogICAgIH0KICAgICBib29sIGlzSWRlbnQoKSBjb25zdCB7IHJldHVybiBt
X3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19JREVOVDsgfQotICAgIGJvb2wgaXNMZW5ndGgoKSBj
b25zdCB7IHJldHVybiBpc1VuaXRUeXBlTGVuZ3RoKG1fcHJpbWl0aXZlVW5pdFR5cGUpOyB9Cisg
ICAgYm9vbCBpc0xlbmd0aCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1fcHJpbWl0
aXZlVW5pdFR5cGUgPj0gQ1NTX0VNUyAmJiBtX3ByaW1pdGl2ZVVuaXRUeXBlIDw9IENTU19QQykK
KyAgICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1JFTVM7CisgICAg
fQogICAgIGJvb2wgaXNOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID09IENTU19OVU1CRVI7IH0KICAgICBib29sIGlzUGVyY2VudGFnZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1BFUkNFTlRBR0U7IH0KKyAgICBib29sIGlzUHgo
KSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19QWDsgfQorICAgIGJv
b2wgaXNSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfUkVD
VDsgfQorICAgIGJvb2wgaXNSR0JDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPT0gQ1NTX1JHQkNPTE9SOyB9CisgICAgYm9vbCBpc1NoYXBlKCkgY29uc3QgeyByZXR1
cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfU0hBUEU7IH0KICAgICBib29sIGlzU3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfU1RSSU5HOyB9Cisg
ICAgYm9vbCBpc1RpbWUoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENT
U19TIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX01TOyB9CiAgICAgYm9vbCBpc1VSSSgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1VSSTsgfQogCiAKQEAg
LTE1Nyw2ICsxNzQsMjMgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZl
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGU7IH0KIAorICAgIGRvdWJs
ZSBjb21wdXRlRGVncmVlcygpOworCisgICAgZW51bSBUaW1lVW5pdCB7IFNlY29uZHMsIE1pbGxp
c2Vjb25kcyB9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBUaW1lVW5pdCB0aW1lVW5pdD4g
VCBjb21wdXRlVGltZSgpCisgICAgeworICAgICAgICBpZiAodGltZVVuaXQgPT0gU2Vjb25kcyAm
JiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19TKQorICAgICAgICAgICAgcmV0dXJuIGdldFZh
bHVlPFQ+KCk7CisgICAgICAgIGlmICh0aW1lVW5pdCA9PSBTZWNvbmRzICYmIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPT0gQ1NTX01TKQorICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlPFQ+KCkgLyAx
MDAwOworICAgICAgICBpZiAodGltZVVuaXQgPT0gTWlsbGlzZWNvbmRzICYmIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPT0gQ1NTX01TKQorICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlPFQ+KCk7Cisg
ICAgICAgIGlmICh0aW1lVW5pdCA9PSBNaWxsaXNlY29uZHMgJiYgbV9wcmltaXRpdmVVbml0VHlw
ZSA9PSBDU1NfUykKKyAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZTxUPigpICogMTAwMDsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKwog
ICAgIC8qCiAgICAgICogY29tcHV0ZXMgYSBsZW5ndGggaW4gcGl4ZWxzIG91dCBvZiB0aGUgZ2l2
ZW4gQ1NTVmFsdWUuIE5lZWQgdGhlIFJlbmRlclN0eWxlIHRvIGdldAogICAgICAqIHRoZSBmb250
aW5mbyBpbiBjYXNlIHZhbCBpcyBkZWZpbmVkIGluIGVtIG9yIGV4LgpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTA1MDMzKQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIz
LDIwICsyMjIzLDE3IEBAIHN0YXRpYyBMZW5ndGggY29udmVydFRvTGVuZ3RoKENTU1ByaW1pdGkK
ICAgICAgICAgaWYgKG9rKQogICAgICAgICAgICAgKm9rID0gZmFsc2U7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotCi0g
ICAgICAgIGlmICghc3R5bGUgJiYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FTVMg
fHwgdHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0VYUyB8fCB0eXBlID09IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUkVNUykpIHsKKyAgICAgICAgaWYgKCFzdHlsZSAmJiBwcmltaXRpdmVW
YWx1ZS0+aXNGb250UmVsYXRpdmVMZW5ndGgoKSkgewogICAgICAgICAgICAgaWYgKG9rKQogICAg
ICAgICAgICAgICAgICpvayA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKENTU1ByaW1pdGl2
ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3RoKHR5cGUpKSB7CisgICAgICAgIH0gZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzTGVuZ3RoKCkpIHsKICAgICAgICAgICAgIGlmICh0b0Zsb2F0KQogICAg
ICAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8ZG91
YmxlPihzdHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyKSwgRml4ZWQpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGwgPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxM
ZW5ndGg+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpOwotICAgICAgICB9Ci0gICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQorICAg
ICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAg
ICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQp
OwotICAgICAgICBlbHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVS
KQorICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSkKICAgICAgICAg
ICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCkgKiAxMDAuMCwg
UGVyY2VudCk7CiAgICAgICAgIGVsc2UgaWYgKG9rKQogICAgICAgICAgICAgKm9rID0gZmFsc2U7
CkBAIC0yNjM4LDE0ICsyNjM1LDEzIEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0JyZWFk
dGgoQ1NTUHIKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgaW50IHR5cGUgPSBw
cmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAgIGlmIChDU1NQcmltaXRpdmVWYWx1
ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBlKSkgeworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNM
ZW5ndGgoKSkgewogICAgICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0
aDxMZW5ndGg+KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgp
LCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKICAgICAgICAgbGVuZ3RoLnNl
dFF1aXJrKHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVS
Q0VOVEFHRSkgeworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpIHsKICAg
ICAgICAgbGVuZ3RoID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQ
ZXJjZW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMjgxMyw3ICsyODA5LDcg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAg
dG9wID0gcmlnaHQgPSBib3R0b20gPSBsZWZ0ID0gTGVuZ3RoKCk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoIXByaW1pdGl2ZVZhbHVlKSB7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0gZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1JFQ1QpIHsKKyAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNSZWN0
KCkpIHsKICAgICAgICAgICAgIFJlY3QqIHJlY3QgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0UmVjdFZh
bHVlKCk7CiAgICAgICAgICAgICBpZiAoIXJlY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMjg1OCwxMiArMjg1NCwxMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkoaW50CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIENTU1ByaW1p
dGl2ZVZhbHVlKiBjb250ZW50VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KGl0ZW0pOwotICAgICAgICAgICAgc3dpdGNoIChjb250ZW50VmFsdWUtPnByaW1pdGl2ZVR5cGUo
KSkgewotICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzoKKwor
ICAgICAgICAgICAgaWYgKGNvbnRlbnRWYWx1ZS0+aXNTdHJpbmcoKSkgewogICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmlt
cGwoKSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0FU
VFI6IHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFZhbHVlLT5pc0F0dHIoKSkgewog
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gYSBuYW1lc3BhY2UgYmUgc3BlY2lmaWVkIGZv
ciBhbiBhdHRyKGZvbyk/CiAgICAgICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnN0eWxlVHlwZSgp
ID09IE5PUFNFVURPKQogICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRVbmlxdWUoKTsK
QEAgLTI4NzUsMTYgKzI4NzAsMTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KGludAogICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
Ly8gcmVnaXN0ZXIgdGhlIGZhY3QgdGhhdCB0aGUgYXR0cmlidXRlIHZhbHVlIGFmZmVjdHMgdGhl
IHN0eWxlCiAgICAgICAgICAgICAgICAgbV9mZWF0dXJlcy5hdHRyc0luUnVsZXMuYWRkKGF0dHIu
bG9jYWxOYW1lKCkuaW1wbCgpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkk6IHsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoY29udGVudFZhbHVlLT5pc1VSSSgpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKCFjb250ZW50VmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNhY2hlZE9yUGVu
ZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUNvbnRlbnQsIHN0YXRpY19jYXN0PENTU0ltYWdlVmFs
dWUqPihjb250ZW50VmFsdWUpKSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0
cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Y2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0NPVU5URVI6IHsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoY29udGVudFZhbHVlLT5pc0NvdW50ZXIoKSkgewogICAgICAgICAgICAgICAgIENvdW50
ZXIqIGNvdW50ZXJWYWx1ZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0Q291bnRlclZhbHVlKCk7CiAgICAg
ICAgICAgICAgICAgRUxpc3RTdHlsZVR5cGUgbGlzdFN0eWxlVHlwZSA9IE5vbmVMaXN0U3R5bGU7
CiAgICAgICAgICAgICAgICAgaW50IGxpc3RTdHlsZUlkZW50ID0gY291bnRlclZhbHVlLT5saXN0
U3R5bGVJZGVudCgpOwpAQCAtMjg5Myw5ICsyODg0LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgICAgIE93blB0cjxDb3VudGVyQ29udGVu
dD4gY291bnRlciA9IGFkb3B0UHRyKG5ldyBDb3VudGVyQ29udGVudChjb3VudGVyVmFsdWUtPmlk
ZW50aWZpZXIoKSwgbGlzdFN0eWxlVHlwZSwgY291bnRlclZhbHVlLT5zZXBhcmF0b3IoKSkpOwog
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlci5yZWxlYXNlKCksIGRp
ZFNldCk7CiAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19JREVOVDoKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgc3dpdGNo
IChjb250ZW50VmFsdWUtPmdldElkZW50KCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Zh
bHVlT3BlblF1b3RlOgogICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE9Q
RU5fUVVPVEUsIGRpZFNldCk7CkBAIC0yOTQzLDEyICsyOTMyLDEyIEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgICAgICBDU1NWYWx1ZSogaXRl
bSA9IGkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+aXNQcmltaXRpdmVW
YWx1ZSgpKTsKICAgICAgICAgICAgICAgICBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHByaW1pdGl2
ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcp
OworICAgICAgICAgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+aXNTdHJpbmcoKSk7CiAg
ICAgICAgICAgICAgICAgcXVvdGVzW2kuaW5kZXgoKV0gPSBwcmltaXRpdmVWYWx1ZS0+Z2V0U3Ry
aW5nVmFsdWUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3Rl
cyhhZG9wdFJlZihkYXRhKSk7CiAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUpIHsK
LSAgICAgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOworICAgICAgICAgICAgQVNTRVJUKHByaW1pdGl2
ZVZhbHVlLT5pc0lkZW50KCkpOwogICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRRdW90
ZXMoYWRvcHRSZWYoUXVvdGVzRGF0YTo6Y3JlYXRlKDApKSk7CiAgICAgICAgIH0KQEAgLTI5OTQs
MTAgKzI5ODMsMTAgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAog
ICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRWYWx1ZSA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgICAgICBBdG9taWNTdHJpbmcgZmFj
ZTsKICAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fY2hlY2tlci5kb2N1bWVudCgp
LT5zZXR0aW5ncygpOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRWYWx1ZS0+cHJpbWl0aXZlVHlw
ZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKSB7CisgICAgICAgICAgICBpZiAo
Y29udGVudFZhbHVlLT5pc1N0cmluZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRW
YWx1ZS0+aXNGb250RmFtaWx5VmFsdWUoKSkKICAgICAgICAgICAgICAgICAgICAgZmFjZSA9IHN0
YXRpY19jYXN0PEZvbnRGYW1pbHlWYWx1ZSo+KGNvbnRlbnRWYWx1ZSktPmZhbWlseU5hbWUoKTsK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCAmJiBzZXR0aW5ncykgeworICAgICAgICAgICAg
fSBlbHNlIGlmIChzZXR0aW5ncykgewogICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZh
bHVlLT5nZXRJZGVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJr
aXRCb2R5OgogICAgICAgICAgICAgICAgICAgICAgICAgZmFjZSA9IHNldHRpbmdzLT5zdGFuZGFy
ZEZvbnRGYW1pbHkoKTsKQEAgLTMxOTUsOCArMzE4NCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgUmVmUHRyPFN0eWxlUmVmbGVjdGlvbj4gcmVm
bGVjdGlvbiA9IFN0eWxlUmVmbGVjdGlvbjo6Y3JlYXRlKCk7CiAgICAgICAgIHJlZmxlY3Rpb24t
PnNldERpcmVjdGlvbihyZWZsZWN0VmFsdWUtPmRpcmVjdGlvbigpKTsKICAgICAgICAgaWYgKHJl
ZmxlY3RWYWx1ZS0+b2Zmc2V0KCkpIHsKLSAgICAgICAgICAgIGludCB0eXBlID0gcmVmbGVjdFZh
bHVlLT5vZmZzZXQoKS0+cHJpbWl0aXZlVHlwZSgpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQorICAgICAgICAgICAgaWYgKHJlZmxl
Y3RWYWx1ZS0+b2Zmc2V0KCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICAgICAgICAgIHJlZmxl
Y3Rpb24tPnNldE9mZnNldChMZW5ndGgocmVmbGVjdFZhbHVlLT5vZmZzZXQoKS0+Z2V0RG91Ymxl
VmFsdWUoKSwgUGVyY2VudCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJl
ZmxlY3Rpb24tPnNldE9mZnNldChyZWZsZWN0VmFsdWUtPm9mZnNldCgpLT5jb21wdXRlTGVuZ3Ro
PExlbmd0aD4oc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKSk7CkBAIC0z
MjExLDcgKzMxOTksNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
CiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlPcGFjaXR5OgogICAgICAgICBIQU5ETEVfSU5I
RVJJVF9BTkRfSU5JVElBTChvcGFjaXR5LCBPcGFjaXR5KQotICAgICAgICBpZiAoIXByaW1pdGl2
ZVZhbHVlIHx8IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgIT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIpCisgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUgfHwgIXByaW1p
dGl2ZVZhbHVlLT5pc051bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuOyAvLyBFcnJvciBjYXNl
LgogICAgICAgICAvLyBDbGFtcCBvcGFjaXR5IHRvIHRoZSByYW5nZSAwLTEKICAgICAgICAgbV9z
dHlsZS0+c2V0T3BhY2l0eShjbGFtcFRvPGZsb2F0PihwcmltaXRpdmVWYWx1ZS0+Z2V0RG91Ymxl
VmFsdWUoKSwgMCwgMSkpOwpAQCAtMzI5OCw3ICszMjg2LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbmZpbml0ZSkKICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQoLTEpOyAvLyAtMSBtZWFucyByZXBlYXQg
Zm9yZXZlci4KLSAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpCiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVl
TG9vcENvdW50KHByaW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTMzMDYsOCArMzI5NCw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVl
ZVNwZWVkLCBNYXJxdWVlU3BlZWQpCiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkg
ewotICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAg
ICAgICBpZiAoaW50IGlkZW50ID0gcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlU2xv
dzoKICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZVNwZWVkKDUwMCk7IC8v
IDUwMCBtc2VjLgogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTMzMTgsMTIgKzMzMDYs
OSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVTcGVlZCgxMCk7IC8vIDEwbXNlYy4gU3VwZXIg
ZmFzdC4KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpCi0gICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVl
U3BlZWQoMTAwMCAqIHByaW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpKTsKLSAgICAgICAgZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX01TKQotICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZVNwZWVkKHByaW1pdGl2
ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpKTsKLSAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUt
PnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgLy8gRm9y
IHNjcm9sbGFtb3VudCBzdXBwb3J0LgorICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVl
LT5pc1RpbWUoKSkKKyAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVTcGVlZChwcmltaXRp
dmVWYWx1ZS0+Y29tcHV0ZVRpbWU8aW50LCBDU1NQcmltaXRpdmVWYWx1ZTo6TWlsbGlzZWNvbmRz
PigpKTsKKyAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpIC8vIEZv
ciBzY3JvbGxhbW91bnQgc3VwcG9ydC4KICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVT
cGVlZChwcmltaXRpdmVWYWx1ZS0+Z2V0SW50VmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0zMzQzLDggKzMzMjgsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJv
cGVydHkoaW50CiAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVJbmNyZW1l
bnQoTGVuZ3RoKDM2LCBGaXhlZCkpOyAvLyAzNnB4LgogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKKyAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIGJvb2wgb2sgPSB0cnVlOwogICAgICAgICAgICAgTGVuZ3RoIG1h
cnF1ZWVMZW5ndGggPSBjb252ZXJ0VG9JbnRMZW5ndGgocHJpbWl0aXZlVmFsdWUsIHN0eWxlKCks
IG1fcm9vdEVsZW1lbnRTdHlsZSwgMSwgJm9rKTsKICAgICAgICAgICAgIGlmIChvaykKQEAgLTMz
ODEsMTAgKzMzNjUsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGxpbmVDbGFtcCwgTGluZUNsYW1w
KQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7Ci0gICAgICAg
IGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQorICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpCiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRMaW5l
Q2xhbXAoTGluZUNsYW1wVmFsdWUocHJpbWl0aXZlVmFsdWUtPmdldEludFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgTGluZUNsYW1wTGluZUNvdW50KSk7Ci0gICAgICAgIGVs
c2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQorICAgICAg
ICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgICAgICBt
X3N0eWxlLT5zZXRMaW5lQ2xhbXAoTGluZUNsYW1wVmFsdWUocHJpbWl0aXZlVmFsdWUtPmdldElu
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIExpbmVDbGFtcFBlcmNl
bnRhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsMTAgKzM0NzgsOSBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIH0KIAogICAg
ICAgICBmbG9hdCBwZXJzcGVjdGl2ZVZhbHVlOwotICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2
ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7Ci0gICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6
aXNVbml0VHlwZUxlbmd0aCh0eXBlKSkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0xl
bmd0aCgpKQogICAgICAgICAgICAgcGVyc3BlY3RpdmVWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLT5j
b21wdXRlTGVuZ3RoPGZsb2F0PihzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0
b3IpOwotICAgICAgICBlbHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVN
QkVSKSB7CisgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKSB7CiAg
ICAgICAgICAgICAvLyBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdHJlYXQgdmFsdWVsZXNz
IG51bWJlcnMgYXMgcHguCiAgICAgICAgICAgICBwZXJzcGVjdGl2ZVZhbHVlID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19QWCktPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KHN0eWxlKCksIG1fcm9v
dEVsZW1lbnRTdHlsZSwgem9vbUZhY3Rvcik7CiAgICAgICAgIH0gZWxzZQpAQCAtMzY1MSw3ICsz
NjMzLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVBdXRvKQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0V3JhcFNoYXBlSW5zaWRlKDAp
OwotICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfU0hBUEUpCisgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5pc1NoYXBlKCkpCiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRXcmFwU2hhcGVJbnNpZGUo
cHJpbWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKIApAQCAt
MzY2MSw3ICszNjQzLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGlu
dAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0V3JhcFNoYXBl
T3V0c2lkZSgwKTsKLSAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NIQVBFKQorICAgICAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS0+aXNTaGFwZSgpKQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0V3JhcFNo
YXBlT3V0c2lkZShwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgpKTsKICAgICAgICAgcmV0
dXJuOwogCkBAIC00MDcyLDI1ICs0MDU0LDIzIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFw
RmlsbFNpemUoQ1NTUHIKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogc2Vjb25kID0gcGFpciA/IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4ocGFpci0+c2Vjb25kKCkpIDogMDsKIAogICAg
IExlbmd0aCBmaXJzdExlbmd0aCwgc2Vjb25kTGVuZ3RoOwotICAgIGludCBmaXJzdFR5cGUgPSBm
aXJzdC0+cHJpbWl0aXZlVHlwZSgpOwotICAgIGludCBzZWNvbmRUeXBlID0gc2Vjb25kID8gc2Vj
b25kLT5wcmltaXRpdmVUeXBlKCkgOiAwOwogCiAgICAgZmxvYXQgem9vbUZhY3RvciA9IG1fc3R5
bGUtPmVmZmVjdGl2ZVpvb20oKTsKIAogICAgIGlmIChmaXJzdC0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZUF1dG8pCiAgICAgICAgIGZpcnN0TGVuZ3RoID0gTGVuZ3RoKCk7Ci0gICAgZWxzZSBpZiAo
Q1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgoZmlyc3RUeXBlKSkKKyAgICBlbHNl
IGlmIChmaXJzdC0+aXNMZW5ndGgoKSkKICAgICAgICAgZmlyc3RMZW5ndGggPSBmaXJzdC0+Y29t
cHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3Rv
cik7Ci0gICAgZWxzZSBpZiAoZmlyc3RUeXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVS
Q0VOVEFHRSkKKyAgICBlbHNlIGlmIChmaXJzdC0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGZp
cnN0TGVuZ3RoID0gTGVuZ3RoKGZpcnN0LT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKICAg
ICBlbHNlCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghc2Vjb25kIHx8IHNlY29uZC0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHNlY29uZExlbmd0aCA9IExlbmd0aCgp
OwotICAgIGVsc2UgaWYgKENTU1ByaW1pdGl2ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3RoKHNlY29u
ZFR5cGUpKQorICAgIGVsc2UgaWYgKHNlY29uZC0+aXNMZW5ndGgoKSkKICAgICAgICAgc2Vjb25k
TGVuZ3RoID0gc2Vjb25kLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUoKSwgbV9yb290RWxl
bWVudFN0eWxlLCB6b29tRmFjdG9yKTsKLSAgICBlbHNlIGlmIChzZWNvbmRUeXBlID09IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKKyAgICBlbHNlIGlmIChzZWNvbmQtPmlzUGVy
Y2VudGFnZSgpKQogICAgICAgICBzZWNvbmRMZW5ndGggPSBMZW5ndGgoc2Vjb25kLT5nZXREb3Vi
bGVWYWx1ZSgpLCBQZXJjZW50KTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybjsKQEAgLTQxMTQs
MTAgKzQwOTQsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEZpbGxYUG9zaXRpb24oCiAK
ICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKICAgICBMZW5ndGggbDsKLSAgICBpbnQgdHlwZSA9IHBy
aW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7Ci0gICAgaWYgKENTU1ByaW1pdGl2ZVZhbHVl
Ojppc1VuaXRUeXBlTGVuZ3RoKHR5cGUpKQorICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5n
dGgoKSkKICAgICAgICAgbCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4o
c3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKTsKLSAgICBlbHNlIGlmICh0
eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKKyAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0
aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwogICAgIGVsc2UKICAgICAgICAg
cmV0dXJuOwpAQCAtNDEzOCwxMCArNDExNyw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFw
RmlsbFlQb3NpdGlvbigKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogICAgIExlbmd0aCBsOwot
ICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKLSAgICBpZiAo
Q1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlwZSkpCisgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5pc0xlbmd0aCgpKQogICAgICAgICBsID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1
dGVMZW5ndGg8TGVuZ3RoPihzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3Ip
OwotICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KQorICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAg
bCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAg
ICAgZWxzZQogICAgICAgICByZXR1cm47CkBAIC00MTU5LDEwICs0MTM3LDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25EZWxheQogICAgICAgICByZXR1cm47CiAKICAgICBD
U1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpCi0gICAgICAgIGFuaW1hdGlvbi0+c2V0RGVs
YXkocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSk7Ci0gICAgZWxzZQotICAgICAgICBh
bmltYXRpb24tPnNldERlbGF5KHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkvMTAwMC4w
Zik7CisgICAgYW5pbWF0aW9uLT5zZXREZWxheShwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZVRpbWU8
ZmxvYXQsIENTU1ByaW1pdGl2ZVZhbHVlOjpTZWNvbmRzPigpKTsKIH0KIAogdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjptYXBBbmltYXRpb25EaXJlY3Rpb24oQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFs
dWUqIHZhbHVlKQpAQCAtNDE5MCwxMCArNDE2NSw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
bWFwQW5pbWF0aW9uRHVyYXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19TKQotICAgICAgICBhbmltYXRpb24tPnNldER1cmF0aW9uKHByaW1pdGl2
ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpOwotICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5w
cmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19NUykKLSAgICAgICAgYW5p
bWF0aW9uLT5zZXREdXJhdGlvbihwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpLzEwMDAu
MGYpOworICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24ocHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVU
aW1lPGZsb2F0LCBDU1NQcmltaXRpdmVWYWx1ZTo6U2Vjb25kcz4oKSk7CiB9CiAKIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6bWFwQW5pbWF0aW9uRmlsbE1vZGUoQW5pbWF0aW9uKiBsYXllciwgQ1NT
VmFsdWUqIHZhbHVlKQpAQCAtNDQwMCwxOSArNDM3MiwxOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6Om1hcE5pbmVQaWVjZUltYWdlCiAgICAgLy8gU2V0IHVwIGEgbGVuZ3RoIGJveCB0byByZXBy
ZXNlbnQgb3VyIGltYWdlIHNsaWNlcy4KICAgICBMZW5ndGhCb3ggYm94OwogICAgIFF1YWQqIHNs
aWNlcyA9IGJvcmRlckltYWdlU2xpY2UtPnNsaWNlcygpOwotICAgIGlmIChzbGljZXMtPnRvcCgp
LT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQor
ICAgIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAgYm94Lm1fdG9w
ID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwogICAg
IGVsc2UKICAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4ZWQpOwotICAgIGlmIChzbGlj
ZXMtPmJvdHRvbSgpLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19Q
RVJDRU5UQUdFKQorICAgIGlmIChzbGljZXMtPmJvdHRvbSgpLT5pc1BlcmNlbnRhZ2UoKSkKICAg
ICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZh
bHVlKCksIFBlcmNlbnQpOwogICAgIGVsc2UKICAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3Ro
KChpbnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUiksIEZpeGVkKTsKLSAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPnByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCisgICAgaWYgKHNsaWNl
cy0+bGVmdCgpLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAgYm94Lm1fbGVmdCA9IExlbmd0aChz
bGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQogICAg
ICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXRJbnRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKLSAgICBpZiAoc2xpY2VzLT5yaWdo
dCgpLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KQorICAgIGlmIChzbGljZXMtPnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBib3gu
bV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNl
bnQpOwogICAgIGVsc2UKICAgICAgICAgYm94Lm1fcmlnaHQgPSBMZW5ndGgoc2xpY2VzLT5yaWdo
dCgpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsK
QEAgLTQ0MzYsMzAgKzQ0MDgsMzAgQEAgTGVuZ3RoQm94IENTU1N0eWxlU2VsZWN0b3I6Om1hcE5p
bmVQaWVjZQogICAgIC8vIFNldCB1cCBhIGxlbmd0aCBib3ggdG8gcmVwcmVzZW50IG91ciBpbWFn
ZSBzbGljZXMuCiAgICAgTGVuZ3RoQm94IGJveDsgLy8gRGVmYXVsdHMgdG8gJ2F1dG8nIHNvIHdl
IGRvbid0IGhhdmUgdG8gaGFuZGxlIHRoYXQgZXhwbGljaXRseSBiZWxvdy4KICAgICBRdWFkKiBz
bGljZXMgPSBib3JkZXJXaWR0aHMtPmdldFF1YWRWYWx1ZSgpOwotICAgIGlmIChzbGljZXMtPnRv
cCgpLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCisg
ICAgaWYgKHNsaWNlcy0+dG9wKCktPmlzTnVtYmVyKCkpCiAgICAgICAgIGJveC5tX3RvcCA9IExl
bmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7Ci0gICAgZWxzZSBp
ZiAoc2xpY2VzLT50b3AoKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEVSQ0VOVEFHRSkKKyAgICBlbHNlIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2Uo
KSkKICAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVs
c2UgaWYgKHNsaWNlcy0+dG9wKCktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVBdXRvKQogICAgICAg
ICBib3gubV90b3AgPSBzbGljZXMtPnRvcCgpLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUo
KSwgcm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tKTsKIAotICAgIGlmIChzbGljZXMtPnJpZ2h0KCkt
PnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICBp
ZiAoc2xpY2VzLT5yaWdodCgpLT5pc051bWJlcigpKQogICAgICAgICBib3gubV9yaWdodCA9IExl
bmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKLSAgICBlbHNl
IGlmIChzbGljZXMtPnJpZ2h0KCktPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1BFUkNFTlRBR0UpCisgICAgZWxzZSBpZiAoc2xpY2VzLT5yaWdodCgpLT5pc1BlcmNl
bnRhZ2UoKSkKICAgICAgICAgYm94Lm1fcmlnaHQgPSBMZW5ndGgoc2xpY2VzLT5yaWdodCgpLT5n
ZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50
KTsKICAgICBlbHNlIGlmIChzbGljZXMtPnJpZ2h0KCktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVB
dXRvKQogICAgICAgICBib3gubV9yaWdodCA9IHNsaWNlcy0+cmlnaHQoKS0+Y29tcHV0ZUxlbmd0
aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RFbGVtZW50U3R5bGUoKSwgem9vbSk7CiAKLSAgICBpZiAo
c2xpY2VzLT5ib3R0b20oKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKQorICAgIGlmIChzbGljZXMtPmJvdHRvbSgpLT5pc051bWJlcigpKQogICAgICAg
ICBib3gubV9ib3R0b20gPSBMZW5ndGgoc2xpY2VzLT5ib3R0b20oKS0+Z2V0SW50VmFsdWUoKSwg
UmVsYXRpdmUpOwotICAgIGVsc2UgaWYgKHNsaWNlcy0+Ym90dG9tKCktPnByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCisgICAgZWxzZSBpZiAoc2xp
Y2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGJveC5tX2JvdHRvbSA9IExl
bmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKICAgICBlbHNlIGlmIChzbGljZXMtPmJvdHRvbSgp
LT5nZXRJZGVudCgpICE9IENTU1ZhbHVlQXV0bykKICAgICAgICAgYm94Lm1fYm90dG9tID0gc2xp
Y2VzLT5ib3R0b20oKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RFbGVtZW50
U3R5bGUoKSwgem9vbSk7CiAKLSAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPnByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICBpZiAoc2xpY2VzLT5sZWZ0
KCktPmlzTnVtYmVyKCkpCiAgICAgICAgIGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0
KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKLSAgICBlbHNlIGlmIChzbGljZXMtPmxlZnQo
KS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkK
KyAgICBlbHNlIGlmIChzbGljZXMtPmxlZnQoKS0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGJv
eC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNl
cy0+bGVmdCgpLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlQXV0bykKICAgICAgICAgYm94Lm1fbGVm
dCA9IHNsaWNlcy0+bGVmdCgpLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUoKSwgcm9vdEVs
ZW1lbnRTdHlsZSgpLCB6b29tKTsKQEAgLTQ3NjMsMTUgKzQ3MzUsMTMgQEAgc3RhdGljIENvbG9y
IGNvbG9yRm9yQ1NTVmFsdWUoaW50IGNzc1ZhbAogCiBDb2xvciBDU1NTdHlsZVNlbGVjdG9yOjpj
b2xvckZyb21QcmltaXRpdmVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUsIGJvb2wgZm9y
VmlzaXRlZExpbmspIGNvbnN0CiB7Ci0gICAgaWYgKHZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SR0JDT0xPUikKKyAgICBpZiAodmFsdWUtPmlzUkdCQ29s
b3IoKSkKICAgICAgICAgcmV0dXJuIENvbG9yKHZhbHVlLT5nZXRSR0JBMzJWYWx1ZSgpKTsKIAot
ICAgIGlmICh2YWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
SURFTlQpCi0gICAgICAgIHJldHVybiBDb2xvcigpOwotCiAgICAgaW50IGlkZW50ID0gdmFsdWUt
PmdldElkZW50KCk7Ci0KICAgICBzd2l0Y2ggKGlkZW50KSB7CisgICAgY2FzZSAwOgorICAgICAg
ICByZXR1cm4gQ29sb3IoKTsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0VGV4dDoKICAgICAgICAg
cmV0dXJuIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+dGV4dENvbG9yKCk7CiAgICAgY2FzZSBDU1NW
YWx1ZVdlYmtpdExpbms6CkBAIC00OTY4LDE0ICs0OTM4LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVj
dG9yOjpjcmVhdGVUcmFuc2Zvcm1PcAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgY2FzZSBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZTo6Um90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uOiB7Ci0gICAgICAgICAgICAgICAgZG91YmxlIGFuZ2xlID0gZmlyc3RW
YWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICBpZiAoZmlyc3RWYWx1ZS0+
cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUkFEKQotICAgICAgICAg
ICAgICAgICAgICBhbmdsZSA9IHJhZDJkZWcoYW5nbGUpOwotICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKGZpcnN0VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0dSQUQpCi0gICAgICAgICAgICAgICAgICAgIGFuZ2xlID0gZ3JhZDJkZWcoYW5nbGUpOwotICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKGZpcnN0VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1RVUk4pCi0gICAgICAgICAgICAgICAgICAgIGFuZ2xlID0gdHVy
bjJkZWcoYW5nbGUpOwotCisgICAgICAgICAgICAgICAgZG91YmxlIGFuZ2xlID0gZmlyc3RWYWx1
ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25zLm9wZXJhdGlv
bnMoKS5hcHBlbmQoUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoMCwgMCwgMSwgYW5n
bGUsIGdldFRyYW5zZm9ybU9wZXJhdGlvblR5cGUodHJhbnNmb3JtVmFsdWUtPm9wZXJhdGlvblR5
cGUoKSkpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTQ5ODUs
MTEgKzQ5NDgsNyBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OmNyZWF0ZVRyYW5zZm9ybU9wCiAg
ICAgICAgICAgICAgICAgZG91YmxlIHggPSAwOwogICAgICAgICAgICAgICAgIGRvdWJsZSB5ID0g
MDsKICAgICAgICAgICAgICAgICBkb3VibGUgeiA9IDA7Ci0gICAgICAgICAgICAgICAgZG91Ymxl
IGFuZ2xlID0gZmlyc3RWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICBp
ZiAoZmlyc3RWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UkFEKQotICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IHJhZDJkZWcoYW5nbGUpOwotICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKGZpcnN0VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0dSQUQpCi0gICAgICAgICAgICAgICAgICAgIGFuZ2xlID0gZ3JhZDJk
ZWcoYW5nbGUpOworICAgICAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IGZpcnN0VmFsdWUtPmNv
bXB1dGVEZWdyZWVzKCk7CiAKICAgICAgICAgICAgICAgICBpZiAodHJhbnNmb3JtVmFsdWUtPm9w
ZXJhdGlvblR5cGUoKSA9PSBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZTo6Um90YXRlWFRyYW5zZm9y
bU9wZXJhdGlvbikKICAgICAgICAgICAgICAgICAgICAgeCA9IDE7CkBAIC01MDA5LDExICs0OTY4
LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVUcmFuc2Zvcm1PcAogICAgICAgICAg
ICAgICAgIGRvdWJsZSB4ID0gZmlyc3RWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsKICAgICAgICAg
ICAgICAgICBkb3VibGUgeSA9IHNlY29uZFZhbHVlLT5nZXREb3VibGVWYWx1ZSgpOwogICAgICAg
ICAgICAgICAgIGRvdWJsZSB6ID0gdGhpcmRWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICBkb3VibGUgYW5nbGUgPSBmb3VydGhWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsK
LSAgICAgICAgICAgICAgICBpZiAoZm91cnRoVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1JBRCkKLSAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSByYWQy
ZGVnKGFuZ2xlKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChmb3VydGhWYWx1ZS0+cHJpbWl0
aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfR1JBRCkKLSAgICAgICAgICAgICAg
ICAgICAgYW5nbGUgPSBncmFkMmRlZyhhbmdsZSk7CisgICAgICAgICAgICAgICAgZG91YmxlIGFu
Z2xlID0gZm91cnRoVmFsdWUtPmNvbXB1dGVEZWdyZWVzKCk7CiAgICAgICAgICAgICAgICAgb3Bl
cmF0aW9ucy5vcGVyYXRpb25zKCkuYXBwZW5kKFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3Jl
YXRlKHgsIHksIHosIGFuZ2xlLCBnZXRUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKHRyYW5zZm9ybVZh
bHVlLT5vcGVyYXRpb25UeXBlKCkpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CkBAIC01MDIyLDEzICs0OTc3LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVh
dGVUcmFuc2Zvcm1PcAogICAgICAgICAgICAgY2FzZSBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZTo6
U2tld1lUcmFuc2Zvcm1PcGVyYXRpb246IHsKICAgICAgICAgICAgICAgICBkb3VibGUgYW5nbGVY
ID0gMDsKICAgICAgICAgICAgICAgICBkb3VibGUgYW5nbGVZID0gMDsKLSAgICAgICAgICAgICAg
ICBkb3VibGUgYW5nbGUgPSBmaXJzdFZhbHVlLT5nZXREb3VibGVWYWx1ZSgpOwotICAgICAgICAg
ICAgICAgIGlmIChmaXJzdFZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19SQUQpCi0gICAgICAgICAgICAgICAgICAgIGFuZ2xlID0gcmFkMmRlZyhhbmdsZSk7
Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoZmlyc3RWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfR1JBRCkKLSAgICAgICAgICAgICAgICAgICAgYW5nbGUg
PSBncmFkMmRlZyhhbmdsZSk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoZmlyc3RWYWx1ZS0+
cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVSTikKLSAgICAgICAg
ICAgICAgICAgICAgYW5nbGUgPSB0dXJuMmRlZyhhbmdsZSk7CisgICAgICAgICAgICAgICAgZG91
YmxlIGFuZ2xlID0gZmlyc3RWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKICAgICAgICAgICAgICAg
ICBpZiAodHJhbnNmb3JtVmFsdWUtPm9wZXJhdGlvblR5cGUoKSA9PSBXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZTo6U2tld1lUcmFuc2Zvcm1PcGVyYXRpb24pCiAgICAgICAgICAgICAgICAgICAgIGFu
Z2xlWSA9IGFuZ2xlOwogICAgICAgICAgICAgICAgIGVsc2UgewpAQCAtNTAzNiwxMyArNDk4NSw3
IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlVHJhbnNmb3JtT3AKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRyYW5zZm9ybVZhbHVlLT5vcGVyYXRpb25UeXBlKCkgPT0gV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWU6OlNrZXdUcmFuc2Zvcm1PcGVyYXRpb24pIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0cmFuc2Zvcm1WYWx1ZS0+bGVuZ3RoKCkgPiAxKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHNlY29uZFZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih0cmFuc2Zvcm1WYWx1ZS0+aXRlbVdpdGhvdXRCb3Vu
ZHNDaGVjaygxKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGVZID0gc2Vjb25k
VmFsdWUtPmdldERvdWJsZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHNlY29uZFZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19S
QUQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlWSA9IHJhZDJkZWcoYW5n
bGVZKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzZWNvbmRWYWx1ZS0+
cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfR1JBRCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGVZID0gZ3JhZDJkZWcoYW5nbGVZKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzZWNvbmRWYWx1ZS0+cHJpbWl0aXZlVHlw
ZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVSTikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYW5nbGVZID0gdHVybjJkZWcoYW5nbGVZKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbmdsZVkgPSBzZWNvbmRWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIH0KQEAgLTUwODYsNyArNTAyOSw3IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRl
VHJhbnNmb3JtT3AKICAgICAgICAgICAgIGNhc2UgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWU6OlBl
cnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOiB7CiAgICAgICAgICAgICAgICAgYm9vbCBvayA9
IHRydWU7CiAgICAgICAgICAgICAgICAgTGVuZ3RoIHAgPSBMZW5ndGgoMCwgRml4ZWQpOwotICAg
ICAgICAgICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlwZUxlbmd0aChmaXJz
dFZhbHVlLT5wcmltaXRpdmVUeXBlKCkpKQorICAgICAgICAgICAgICAgIGlmIChmaXJzdFZhbHVl
LT5pc0xlbmd0aCgpKQogICAgICAgICAgICAgICAgICAgICBwID0gY29udmVydFRvRmxvYXRMZW5n
dGgoZmlyc3RWYWx1ZSwgc3R5bGUsIHJvb3RTdHlsZSwgem9vbUZhY3RvciwgJm9rKTsKICAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHF1aXJr
IHRoYXQgc2hvdWxkIGdvIGF3YXkgd2hlbiAzZCB0cmFuc2Zvcm1zIGFyZSBmaW5hbGl6ZWQuCkBA
IC01MjE2LDcgKzUxNTksNyBAQCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gQ1NT
U3R5CiAKICAgICAgICAgaWYgKGl0ZXJhdG9yLmhhc01vcmUoKSAmJiBpdGVyYXRvci5pc1ByaW1p
dGl2ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlcmF0b3IudmFsdWUoKSk7
Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgeworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZh
bHVlLT5pc051bWJlcigpKSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgb25seSBvbmUgaW50ZWdl
ciB2YWx1ZSBpcyBzcGVjaWZpZWQsIGl0IHdpbGwgc2V0IGJvdGgKICAgICAgICAgICAgICAgICAv
LyB0aGUgcm93cyBhbmQgdGhlIGNvbHVtbnMuCiAgICAgICAgICAgICAgICAgbWVzaFJvd3MgPSBt
ZXNoQ29sdW1ucyA9IHByaW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpOwpAQCAtNTIyNSw3ICs1
MTY4LDcgQEAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IENTU1N0eQogICAgICAg
ICAgICAgICAgIC8vIFRyeSB0byBtYXRjaCBhbm90aGVyIG51bWJlciBmb3IgdGhlIGNvbHVtbnMu
CiAgICAgICAgICAgICAgICAgaWYgKGl0ZXJhdG9yLmhhc01vcmUoKSAmJiBpdGVyYXRvci5pc1By
aW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUq
IHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVyYXRv
ci52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNoQ29sdW1ucyA9IHByaW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3IuYWR2YW5jZSgpOwogICAgICAgICAg
ICAgICAgICAgICB9CkBAIC01MzEwLDcgKzUyNTMsNyBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6
OmNyZWF0ZUZpbHRlck9wZXJhCiAgICAgICAgICAgICBkb3VibGUgYW1vdW50ID0gMTsKICAgICAg
ICAgICAgIGlmIChmaWx0ZXJWYWx1ZS0+bGVuZ3RoKCkgPT0gMSkgewogICAgICAgICAgICAgICAg
IGFtb3VudCA9IGZpcnN0VmFsdWUtPmdldERvdWJsZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAg
aWYgKGZpcnN0VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BFUkNFTlRBR0UpCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0VmFsdWUtPmlzUGVyY2VudGFn
ZSgpKQogICAgICAgICAgICAgICAgICAgICBhbW91bnQgLz0gMTAwOwogICAgICAgICAgICAgfQog
CkBAIC01MzE5LDE1ICs1MjYyLDggQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVGaWx0
ZXJPcGVyYQogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2ViS2l0Q1NTRmlsdGVyVmFsdWU6Okh1
ZVJvdGF0ZUZpbHRlck9wZXJhdGlvbjogewogICAgICAgICAgICAgZG91YmxlIGFuZ2xlID0gMDsK
LSAgICAgICAgICAgIGlmIChmaWx0ZXJWYWx1ZS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAg
ICAgICAgIGFuZ2xlID0gZmlyc3RWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICBpZiAoZmlyc3RWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUkFEKQotICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IHJhZDJkZWcoYW5nbGUpOwot
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZpcnN0VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0dSQUQpCi0gICAgICAgICAgICAgICAgICAgIGFuZ2xlID0g
Z3JhZDJkZWcoYW5nbGUpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZpcnN0VmFsdWUtPnBy
aW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1RVUk4pCi0gICAgICAgICAg
ICAgICAgICAgIGFuZ2xlID0gdHVybjJkZWcoYW5nbGUpOwotICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKGZpbHRlclZhbHVlLT5sZW5ndGgoKSA9PSAxKQorICAgICAgICAgICAgICAgIGFu
Z2xlID0gZmlyc3RWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKIAogICAgICAgICAgICAgb3BlcmF0
aW9ucy5vcGVyYXRpb25zKCkuYXBwZW5kKEJhc2ljQ29sb3JNYXRyaXhGaWx0ZXJPcGVyYXRpb246
OmNyZWF0ZShhbmdsZSwgb3BlcmF0aW9uVHlwZSkpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCShyZXZpc2lvbiAx
MDUwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE3OCw5ICsxNzgsOSBAQCBzdGF0aWMgYm9vbCBwYXJzZUFzcGVjdFJh
dGlvKENTU1ZhbHVlKiB2CiAgICAgICAgICAgICBDU1NWYWx1ZSogaTAgPSB2YWx1ZUxpc3QtPml0
ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCk7CiAgICAgICAgICAgICBDU1NWYWx1ZSogaTEgPSB2YWx1
ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMSk7CiAgICAgICAgICAgICBDU1NWYWx1ZSog
aTIgPSB2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMik7Ci0gICAgICAgICAgICBp
ZiAoaTAtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KGkwKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVS
Ci0gICAgICAgICAgICAgICAgJiYgaTEtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KGkxKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfU1RSSU5HCi0gICAgICAgICAgICAgICAgJiYgaTItPmlzUHJpbWl0aXZlVmFs
dWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGkyKS0+cHJpbWl0aXZlVHlw
ZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSB7CisgICAgICAgICAgICBpZiAo
aTAtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KGkwKS0+aXNOdW1iZXIoKQorICAgICAgICAgICAgICAgICYmIGkxLT5pc1ByaW1pdGl2ZVZhbHVl
KCkgJiYgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpMSktPmlzU3RyaW5nKCkKKyAg
ICAgICAgICAgICAgICAmJiBpMi0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4oaTIpLT5pc051bWJlcigpKSB7CiAgICAgICAgICAgICAgICAgU3Ry
aW5nIHN0ciA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaTEpLT5nZXRTdHJpbmdW
YWx1ZSgpOwogICAgICAgICAgICAgICAgIGlmICghc3RyLmlzTnVsbCgpICYmIHN0ci5sZW5ndGgo
KSA9PSAxICYmIHN0clswXSA9PSAnLycpIHsKICAgICAgICAgICAgICAgICAgICAgaCA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaTApLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUik7CkBAIC0yMTAsNyArMjEwLDcgQEAgYm9vbCBjb21wYXJlVmFsdWUo
VCBhLCBUIGIsIE1lZGlhRmVhdHVyZQogc3RhdGljIGJvb2wgbnVtYmVyVmFsdWUoQ1NTVmFsdWUq
IHZhbHVlLCBmbG9hdCYgcmVzdWx0KQogewogICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpCi0gICAgICAgICYmIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5w
cmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpIHsKKyAgICAg
ICAgJiYgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmlzTnVtYmVyKCkp
IHsKICAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSktPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIGJvb2wgY29t
cHV0ZUxlbmd0aChDU1NWYWx1ZSogdmFsdQogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1p
dGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAKLSAg
ICBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUikgeworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSkgewog
ICAgICAgICByZXN1bHQgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0SW50VmFsdWUoKTsKICAgICAgICAg
cmV0dXJuICFzdHJpY3QgfHwgIXJlc3VsdDsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwCShyZXZpc2lvbiAxMDUwMzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNyw3ICszMzcs
NyBAQCBzdGF0aWMgUkdCQTMyIGNzc1ZhbHVlVG9SR0JBKENTU1ZhbHVlKiBjCiAgICAgICAgIHJl
dHVybiBDb2xvcjo6dHJhbnNwYXJlbnQ7CiAgICAgCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHBy
aW1pdGl2ZUNvbG9yID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihjb2xvclZhbHVl
KTsKLSAgICBpZiAocHJpbWl0aXZlQ29sb3ItPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1JHQkNPTE9SKQorICAgIGlmIChwcmltaXRpdmVDb2xvci0+aXNSR0JDb2xv
cigpKQogICAgICAgICByZXR1cm4gcHJpbWl0aXZlQ29sb3ItPmdldFJHQkEzMlZhbHVlKCk7CiAg
ICAgCiAgICAgUkdCQTMyIHJnYmEgPSAwOwpAQCAtNDMxLDcgKzQzMSw3IEBAIHZvaWQgRWRpdGlu
Z1N0eWxlOjpleHRyYWN0Rm9udFNpemVEZWx0YSgKIAogICAgIC8vIE9ubHkgUFggaGFuZGxlZCBu
b3cuIElmIHdlIGhhbmRsZSBtb3JlIHR5cGVzIGluIHRoZSBmdXR1cmUsIHBlcmhhcHMKICAgICAv
LyBhIHN3aXRjaCBzdGF0ZW1lbnQgaGVyZSB3b3VsZCBiZSBtb3JlIGFwcHJvcHJpYXRlLgotICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUFgpCisgICAgaWYgKCFwcmltaXRpdmVWYWx1ZS0+aXNQeCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1
ZSgpOwpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGVG
cm9tUnVsZXNGbwogICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gcHJvcGVydHkudmFsdWUo
KTsKICAgICAgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEVSQ0VOVEFHRSkgeworICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUpLT5pc1BlcmNlbnRhZ2UoKSkgewogICAgICAgICAgICAgICAgIGlmIChS
ZWZQdHI8Q1NTVmFsdWU+IGNvbXB1dGVkUHJvcGVydHlWYWx1ZSA9IGNvbXB1dGVkU3R5bGVGb3JF
bGVtZW50LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5LmlkKCkpKQogICAgICAgICAgICAg
ICAgICAgICBmcm9tQ29tcHV0ZWRTdHlsZS0+YWRkUGFyc2VkUHJvcGVydHkoQ1NTUHJvcGVydHko
cHJvcGVydHkuaWQoKSwgY29tcHV0ZWRQcm9wZXJ0eVZhbHVlKSk7CiAgICAgICAgICAgICB9CkBA
IC0xMzk4LDcgKzEzOTgsNyBAQCBpbnQgZ2V0SWRlbnRpZmllclZhbHVlKENTU1N0eWxlRGVjbGFy
YXRpCiAKIHN0YXRpYyBib29sIGlzQ1NTVmFsdWVMZW5ndGgoQ1NTUHJpbWl0aXZlVmFsdWUqIHZh
bHVlKQogewotICAgIHJldHVybiB2YWx1ZS0+cHJpbWl0aXZlVHlwZSgpID49IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUFggJiYgdmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA8PSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1BDOworICAgIHJldHVybiB2YWx1ZS0+aXNGb250SW5kZXBlbmRlbnRMZW5ndGgo
KTsKIH0KIAogaW50IGxlZ2FjeUZvbnRTaXplRnJvbUNTU1ZhbHVlKERvY3VtZW50KiBkb2N1bWVu
dCwgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlLCBib29sIHNob3VsZFVzZUZpeGVkRm9udERlZmF1
bHRTaXplLCBMZWdhY3lGb250U2l6ZU1vZGUgbW9kZSkKQEAgLTE0MzAsNyArMTQzMCw3IEBAIGJv
b2wgaGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kQ29sb3IoQ1NTU3QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4oY3NzVmFsdWUuZ2V0KCkpOwogICAgIAotICAgIGlmICh2YWx1ZS0+cHJpbWl0
aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUkdCQ09MT1IpCisgICAgaWYgKHZh
bHVlLT5pc1JHQkNvbG9yKCkpCiAgICAgICAgIHJldHVybiAhYWxwaGFDaGFubmVsKHZhbHVlLT5n
ZXRSR0JBMzJWYWx1ZSgpKTsKICAgICAKICAgICByZXR1cm4gdmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVUcmFuc3BhcmVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>