<?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>160876</bug_id>
          
          <creation_ts>2016-08-15 16:33:06 -0700</creation_ts>
          <short_desc>Add support for dictionary members of non nullable wrapper types</short_desc>
          <delta_ts>2016-08-15 23:26:19 -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>Bindings</component>
          <version>WebKit 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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1220219</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-15 16:33:06 -0700</bug_when>
    <thetext>Add support for dictionary members of non nullable wrapper types. We only support nullable ones at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220297</commentid>
    <comment_count>1</comment_count>
      <attachid>286134</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-15 18:53:48 -0700</bug_when>
    <thetext>Created attachment 286134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220378</commentid>
    <comment_count>2</comment_count>
      <attachid>286134</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-15 23:26:14 -0700</bug_when>
    <thetext>Comment on attachment 286134
Patch

Clearing flags on attachment: 286134

Committed r204497: &lt;http://trac.webkit.org/changeset/204497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220379</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-15 23:26:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286134</attachid>
            <date>2016-08-15 18:53:48 -0700</date>
            <delta_ts>2016-08-15 23:26:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160876-20160815185203.patch</filename>
            <type>text/plain</type>
            <size>27633</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk3MGVmOTUwOGZkNjZm
NTU1NmRkZTI3NzVkZmEyMTc2MWM4ZTczZC4uYjljOGY2NDI0MmU2OThiZjcwZGNkMDE3MDYzNDdj
ZjA2M2VmZGI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGRp
Y3Rpb25hcnkgbWVtYmVycyBvZiBub24gbnVsbGFibGUgd3JhcHBlciB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwODc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGRp
Y3Rpb25hcnkgbWVtYmVycyBvZiBub24gbnVsbGFibGUgd3JhcHBlciB0eXBlcy4gV2UKKyAgICAg
ICAgb25seSBzdXBwb3J0ZWQgbnVsbGFibGUgd3JhcHBlciB0eXBlcyBhcyBkaWN0aW9uYXJ5IG1l
bWJlcnMgc28gZmFyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBiaW5kaW5ncyB0
ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydC5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVE
aWN0aW9uYXJ5SW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZSk6CisgICAgICAgIChHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnZlcnREaWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rpb25hcnk+KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnREaWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rpb25hcnlUaGF0U2hvdWxkTm90
VG9sZXJhdGVOdWxsPik6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RGljdGlvbmFyeTxUZXN0
T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRvbGVyYXRlTnVsbD4pOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzNCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzNSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNv
bnN0cnVjdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgor
CiAyMDE2LTA4LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmVuYW1lIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UgdG8gU29ja2V0U3RyZWFt
SGFuZGxlIGFuZCBTb2NrZXRTdHJlYW1IYW5kbGUgdG8gU29ja2V0U3RyZWFtSGFuZGxlSW1wbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnQuaAppbmRleCBmMmQxZjlkYmVm
YzI2MzA5NGZmMGQwMTM3YTU5MDU3M2Y2NDBjZDJjLi4xZGNlZDgzNmZiMTE1Zjg3YTg0NmU1ZWVi
ODBjZTI0ZDRmNDUxM2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnQuaApAQCAtNDksNiArNDksOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBFbmFibGVJZkZsb2F0
aW5nUG9pbnRUeXBlPFQsIE9wdGlvbmFsPFQ+PiBjb252ZXJ0T3B0aW9uYWwoSgogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gRW5hYmxlSWZJbnRlZ3JhbFR5cGU8VD4gY29udmVydE9w
dGlvbmFsKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb24sIFUmJiBkZWZhdWx0VmFsdWUpOwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4gRW5hYmxlSWZGbG9hdGluZ1BvaW50VHlwZTxUPiBjb252ZXJ0T3B0aW9uYWwoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIFNob3VsZEFsbG93Tm9uRmluaXRlLCBVJiYgZGVm
YXVsdFZhbHVlKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gT3B0aW9uYWw8VD4gY29udmVydERp
Y3Rpb25hcnkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUpOworCiBlbnVtIGNsYXNzIElz
TnVsbGFibGUgeyBObywgWWVzIH07CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBKU1Q+
IFQqIGNvbnZlcnRXcmFwcGVyVHlwZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSwgSXNO
dWxsYWJsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggZDJiYWRmNjUzNzE0MmI1ZWFjMTllMTU0Y2U2OWRiODQ4NTcy
YTVlNS4uNmU4NTRkMGZiOTc3OTZiN2MxNTNkZjRlMmE5MzEyOGYxYTc0NjhiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTk4MCwzMCArOTgwLDMxIEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNv
bnRlbnQKICAgICAgICAgICAgICRjb21tYSA9ICIsICI7CiAgICAgICAgIH0KIAotICAgICAgICAk
cmVzdWx0IC49ICJ0ZW1wbGF0ZTw+ICRjbGFzc05hbWUgY29udmVydDwkY2xhc3NOYW1lPihFeGVj
U3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKVxuIjsKKyAgICAgICAgJHJlc3VsdCAuPSAidGVt
cGxhdGU8PiBPcHRpb25hbDwkY2xhc3NOYW1lPiBjb252ZXJ0RGljdGlvbmFyeTwkY2xhc3NOYW1l
PihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKVxuIjsKICAgICAgICAgJHJlc3VsdCAu
PSAie1xuIjsKICAgICAgICAgJHJlc3VsdCAuPSAiICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9y
TnVsbCgpKVxuIiBpZiAkZGVmYXVsdFZhbHVlczsKLSAgICAgICAgJHJlc3VsdCAuPSAiICAgICAg
ICByZXR1cm4geyAiIC4gJGRlZmF1bHRWYWx1ZXMgLiAiIH07XG4iIGlmICRkZWZhdWx0VmFsdWVz
OworICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHJldHVybiAkY2xhc3NOYW1lIHsgIiAuICRk
ZWZhdWx0VmFsdWVzIC4gIiB9O1xuIiBpZiAkZGVmYXVsdFZhbHVlczsKICAgICAgICAgJHJlc3Vs
dCAuPSAiICAgIGF1dG8qIG9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpO1xuIjsKICAgICAgICAg
JHJlc3VsdCAuPSAiICAgIGlmIChVTkxJS0VMWSghb2JqZWN0IHx8IG9iamVjdC0+dHlwZSgpID09
IFJlZ0V4cE9iamVjdFR5cGUpKSB7XG4iOwogICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHRo
cm93VHlwZUVycm9yKCZzdGF0ZSk7XG4iOwotICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHJl
dHVybiB7IH07XG4iOworICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHJldHVybiBOdWxsb3B0
O1xuIjsKICAgICAgICAgJHJlc3VsdCAuPSAiICAgIH1cbiI7CiAKICAgICAgICAgbXkgJG5lZWRF
eGNlcHRpb25DaGVjayA9IDA7CiAgICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlciAoQHskZGljdGlv
bmFyeS0+bWVtYmVyc30pIHsKICAgICAgICAgICAgIGlmICgkbmVlZEV4Y2VwdGlvbkNoZWNrKSB7
CiAgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRF
eGNlcHRpb24oKSkpXG4iOwotICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gIiAgICAgICAgcmV0
dXJuIHsgfTtcbiI7CisgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgICAgICByZXR1cm4g
TnVsbG9wdDtcbiI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAjIEZJWE1FOiBFdmVudHVh
bGx5IHdlIHdpbGwgd2FudCB0aGlzIHRvIHNoYXJlIGEgbG90IG1vcmUgY29kZSB3aXRoIEpTVmFs
dWVUb05hdGl2ZS4KICAgICAgICAgICAgIG15ICR0eXBlID0gJG1lbWJlci0+dHlwZTsKICAgICAg
ICAgICAgIG15ICRuYW1lID0gJG1lbWJlci0+bmFtZTsKICAgICAgICAgICAgIG15ICR2YWx1ZSA9
ICJvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBcIiR7
bmFtZX1cIikpIjsKICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlw
ZSgkbWVtYmVyLT50eXBlKSkgewotICAgICAgICAgICAgICAgIGRpZSAiRGljdGlvbmFyeSBtZW1i
ZXIgb2Ygbm9uLW51bGxhYmxlIHdyYXBwZXIgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IiB1
bmxlc3MgJG1lbWJlci0+aXNOdWxsYWJsZTsKICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiSlMke3R5cGV9LmgiKTsKLSAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgYXV0
byogJG5hbWUgPSBjb252ZXJ0V3JhcHBlclR5cGU8JHR5cGUsIEpTJHt0eXBlfT4oc3RhdGUsICR2
YWx1ZSwgSXNOdWxsYWJsZTo6WWVzKTtcbiI7CisgICAgICAgICAgICAgICAgZGllICJEaWN0aW9u
YXJ5IG1lbWJlcnMgb2Ygbm9uLW51bGxhYmxlIHdyYXBwZXIgdHlwZXMgbXVzdCBiZSBtYXJrZWQg
YXMgcmVxdWlyZWQiIGlmICEkbWVtYmVyLT5pc051bGxhYmxlICYmICRtZW1iZXItPmlzT3B0aW9u
YWw7CisgICAgICAgICAgICAgICAgbXkgJG51bGxhYmxlUGFyYW1ldGVyID0gJG1lbWJlci0+aXNO
dWxsYWJsZSA/ICJJc051bGxhYmxlOjpZZXMiIDogIklzTnVsbGFibGU6Ok5vIjsKKyAgICAgICAg
ICAgICAgICAkcmVzdWx0IC49ICIgICAgYXV0byogJG5hbWUgPSBjb252ZXJ0V3JhcHBlclR5cGU8
JHR5cGUsIEpTJHt0eXBlfT4oc3RhdGUsICR2YWx1ZSwgJG51bGxhYmxlUGFyYW1ldGVyKTtcbiI7
CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbiA9ICRt
ZW1iZXItPmlzT3B0aW9uYWwgPyAiY29udmVydE9wdGlvbmFsIiA6ICJjb252ZXJ0IjsKICAgICAg
ICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgYXV0byAkbmFtZSA9ICR7ZnVuY3Rpb259PCIgLiBH
ZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkaW50ZXJmYWNlLCAkbWVtYmVyKSAuICI+KHN0YXRl
LCAkdmFsdWUiCkBAIC0xMDE2LDExICsxMDE3LDE3IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJ
bXBsZW1lbnRhdGlvbkNvbnRlbnQKICAgICAgICAgbXkgJGFyZ3VtZW50cyA9ICIiOwogICAgICAg
ICAkY29tbWEgPSAiIjsKICAgICAgICAgZm9yZWFjaCBteSAkbWVtYmVyIChAeyRkaWN0aW9uYXJ5
LT5tZW1iZXJzfSkgewotICAgICAgICAgICAgJGFyZ3VtZW50cyAuPSAkY29tbWEgLiAiV1RGTW92
ZSgiIC4gJG1lbWJlci0+bmFtZSAuICIpIjsKKyAgICAgICAgICAgIG15ICR2YWx1ZTsKKyAgICAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkbWVtYmVyLT50eXBlKSAm
JiAhJG1lbWJlci0+aXNOdWxsYWJsZSkgeworICAgICAgICAgICAgICAgICR2YWx1ZSA9ICIqIiAu
ICRtZW1iZXItPm5hbWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICR2
YWx1ZSA9ICJXVEZNb3ZlKCIgLiAkbWVtYmVyLT5uYW1lIC4gIikiOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgJGFyZ3VtZW50cyAuPSAkY29tbWEgLiAkdmFsdWU7CiAgICAgICAgICAgICAk
Y29tbWEgPSAiLCAiOwogICAgICAgICB9CiAKLSAgICAgICAgJHJlc3VsdCAuPSAiICAgIHJldHVy
biB7ICIgLiAkYXJndW1lbnRzIC4gIiB9O1xuIjsKKyAgICAgICAgJHJlc3VsdCAuPSAiICAgIHJl
dHVybiAkY2xhc3NOYW1lIHsgIiAuICRhcmd1bWVudHMgLiAiIH07XG4iOwogICAgICAgICAkcmVz
dWx0IC49ICJ9XG5cbiI7CiAKICAgICAgICAgJHJlc3VsdCAuPSAiI2VuZGlmXG5cbiIgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwpAQCAtNDAwNyw2ICs0MDE0LDggQEAgc3ViIEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrCiAKICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5
VHlwZSgkdHlwZSkgYW5kICRwYXJhbWV0ZXItPnR5cGUgbmUgIkFycmF5QnVmZmVyIikgewogICAg
ICAgICAgICAgICAgJHZhbHVlID0gJHNob3VsZFBhc3NCeVJlZmVyZW5jZSA/ICIkbmFtZS5yZWxl
YXNlTm9uTnVsbCgpIiA6ICJXVEZNb3ZlKCRuYW1lKSI7CisgICAgICAgICAgICB9IGVsc2lmICgk
Y29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAg
ICAkdmFsdWUgPSAiJHtuYW1lfS52YWx1ZSgpIjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CkBAIC00Njc4LDcgKzQ2ODcsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICByZXR1cm4g
KCJ0byR0eXBlKCR2YWx1ZSkiLCAxKSBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlw
ZSgkdHlwZSk7CiAgICAgcmV0dXJuICgicGFyc2U8IiAuIEdldEVudW1lcmF0aW9uQ2xhc3NOYW1l
KCRpbnRlcmZhY2UsICR0eXBlKSAuICI+KCpzdGF0ZSwgJHZhbHVlKSIsIDEpIGlmICRjb2RlR2Vu
ZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKTsKLSAgICByZXR1cm4gKCJjb252ZXJ0PCIgLiBHZXRE
aWN0aW9uYXJ5Q2xhc3NOYW1lKCRpbnRlcmZhY2UsICR0eXBlKSAuICI+KCpzdGF0ZSwgJHZhbHVl
KSIsIDEpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCR0eXBlKTsKKyAgICBy
ZXR1cm4gKCJjb252ZXJ0RGljdGlvbmFyeTwiIC4gR2V0RGljdGlvbmFyeUNsYXNzTmFtZSgkaW50
ZXJmYWNlLCAkdHlwZSkgLiAiPigqc3RhdGUsICR2YWx1ZSkiLCAxKSBpZiAkY29kZUdlbmVyYXRv
ci0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSk7CiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMk
dHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKIApAQCAtNTMwOCw4ICs1MzE3LDEwIEBAIEVORAogICAg
ICAgICAgICAgICAgIGxhc3QgaWYgJGluZGV4IGVxICRwYXJhbUluZGV4OwogICAgICAgICAgICAg
ICAgIGlmIChTaG91bGRQYXNzV3JhcHBlckJ5UmVmZXJlbmNlKCRwYXJhbWV0ZXIsICRpbnRlcmZh
Y2UpKSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNvbnN0cnVjdG9yQXJnTGlzdCwgIioi
IC4gJHBhcmFtZXRlci0+bmFtZSk7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPklzRGljdGlvbmFyeVR5cGUoJHBhcmFtZXRlci0+dHlwZSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY29uc3RydWN0b3JBcmdMaXN0LCAkcGFyYW1ldGVyLT5uYW1lIC4gIi52
YWx1ZSgpIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
cHVzaChAY29uc3RydWN0b3JBcmdMaXN0LCAkcGFyYW1ldGVyLT5uYW1lKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY29uc3RydWN0b3JBcmdMaXN0LCAiV1RGTW92ZSgiIC4gJHBhcmFtZXRl
ci0+bmFtZSAuICIpIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICRpbmRl
eCsrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCA3N2IzODFhNDRk
MmEzYzA0ZDA3OGQ1MTUwYTI2MDk5ZTZmYjYxNzUzLi4wZWNhZDAzMjU5MGNlMzM3MWQxYmNlM2Zk
ZjU2OTgyZWZkMTg0YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMjM1LDcgKzIzNSw3
IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCA9IGNhc3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNvbnRleHQpKQogICAgICAgICByZXR1cm4gdGhyb3dDb25zdHJ1Y3RvckRvY3Vt
ZW50VW5hdmFpbGFibGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIik7Ci0gICAgYXV0byBv
YmplY3QgPSBUZXN0SW50ZXJmYWNlOjpjcmVhdGUoKmNvbnRleHQsIHN0cjEsIHN0cjIsIGVjKTsK
KyAgICBhdXRvIG9iamVjdCA9IFRlc3RJbnRlcmZhY2U6OmNyZWF0ZSgqY29udGV4dCwgV1RGTW92
ZShzdHIxKSwgV1RGTW92ZShzdHIyKSwgZWMpOwogICAgIGlmIChVTkxJS0VMWShlYykpIHsKICAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKHN0YXRlLCBlYyk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApp
bmRleCAyOWFiM2RlYzgzZDMzNDY0YzhkYmVkNjk5N2FjYjYyNGI5MGMwNjY5Li5kNTQ1OGZiYjg0
YTgwOWY4NDBjZjJlNzI5ZGQ3ZGIzNjhlNGNkOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6CiAg
ICAgYXV0byBzdHIzID0gc3RhdGUtPmFyZ3VtZW50KDIpLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmco
KSA6IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgyKS50b1dURlN0cmluZyhzdGF0ZSk7CiAgICAg
aWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgYXV0byBvYmplY3QgPSBUZXN0TmFtZWRD
b25zdHJ1Y3Rvcjo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcigqY2FzdGVkVGhpcy0+ZG9jdW1lbnQo
KSwgc3RyMSwgc3RyMiwgc3RyMywgZWMpOworICAgIGF1dG8gb2JqZWN0ID0gVGVzdE5hbWVkQ29u
c3RydWN0b3I6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoKmNhc3RlZFRoaXMtPmRvY3VtZW50KCks
IFdURk1vdmUoc3RyMSksIFdURk1vdmUoc3RyMiksIFdURk1vdmUoc3RyMyksIGVjKTsKICAgICBp
ZiAoVU5MSUtFTFkoZWMpKSB7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihzdGF0ZSwgZWMpOwog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4
IDkwYzI2MWMyMjNlZDY1ZGYyMjZjMjdjYWJkMWRmOTQ5ZjhlODU3YjYuLmJjZDEzZmU5NDM5NTgy
NWJmZTcyNTFlMWFkNWY2MzhlOGI2ZDZkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00NTIsMTM3ICs0NTIs
MTQwIEBAIHRlbXBsYXRlPD4gaW5saW5lIGNvbnN0IGNoYXIqIGV4cGVjdGVkRW51bWVyYXRpb25W
YWx1ZXM8VGVzdE9iajo6Q29uZmlkZW5jZT4oKQogICAgIHJldHVybiAiXCJoaWdoXCIsIFwia2lu
ZGEtbG93XCIiOwogfQogCi10ZW1wbGF0ZTw+IFRlc3RPYmo6OkRpY3Rpb25hcnkgY29udmVydDxU
ZXN0T2JqOjpEaWN0aW9uYXJ5PihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQordGVt
cGxhdGU8PiBPcHRpb25hbDxUZXN0T2JqOjpEaWN0aW9uYXJ5PiBjb252ZXJ0RGljdGlvbmFyeTxU
ZXN0T2JqOjpEaWN0aW9uYXJ5PihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4geyB7IH0s
IFRlc3RPYmo6OkVudW1UeXBlOjpFbnVtVmFsdWUxLCBUZXN0T2JqOjpFbnVtVHlwZTo6RW1wdHlT
dHJpbmcsICJkZWZhdWx0U3RyaW5nIiwgeyB9LCBmYWxzZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCAw
LCAwLCB7IH0sIHsgfSwgMCwgMCwgeyB9LCB7IH0sIHsgfSwgMCwgeyB9LCAwLCB7IH0sIDAsIHsg
fSwgMCwgeyB9LCAwLCBudWxscHRyLCBqc1VuZGVmaW5lZCgpLCBqc1VuZGVmaW5lZCgpIH07Cisg
ICAgICAgIHJldHVybiBUZXN0T2JqOjpEaWN0aW9uYXJ5IHsgeyB9LCBUZXN0T2JqOjpFbnVtVHlw
ZTo6RW51bVZhbHVlMSwgVGVzdE9iajo6RW51bVR5cGU6OkVtcHR5U3RyaW5nLCAiZGVmYXVsdFN0
cmluZyIsIHsgfSwgZmFsc2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCwgMCwgeyB9LCB7IH0sIDAs
IDAsIHsgfSwgeyB9LCB7IH0sIDAsIHsgfSwgMCwgeyB9LCAwLCB7IH0sIDAsIHsgfSwgMCwgbnVs
bHB0ciwganNVbmRlZmluZWQoKSwganNVbmRlZmluZWQoKSB9OwogICAgIGF1dG8qIG9iamVjdCA9
IHZhbHVlLmdldE9iamVjdCgpOwogICAgIGlmIChVTkxJS0VMWSghb2JqZWN0IHx8IG9iamVjdC0+
dHlwZSgpID09IFJlZ0V4cE9iamVjdFR5cGUpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKCZz
dGF0ZSk7Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAg
IH0KICAgICBhdXRvIGVudW1lcmF0aW9uVmFsdWVXaXRob3V0RGVmYXVsdCA9IGNvbnZlcnRPcHRp
b25hbDxUZXN0T2JqOjpFbnVtVHlwZT4oc3RhdGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJlbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQi
KSkpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJl
dHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gZW51bWVyYXRpb25W
YWx1ZVdpdGhEZWZhdWx0ID0gY29udmVydE9wdGlvbmFsPFRlc3RPYmo6OkVudW1UeXBlPihzdGF0
ZSwgb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgImVu
dW1lcmF0aW9uVmFsdWVXaXRoRGVmYXVsdCIpKSwgVGVzdE9iajo6RW51bVR5cGU6OkVudW1WYWx1
ZTEpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJl
dHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gZW51bWVyYXRpb25W
YWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHQgPSBjb252ZXJ0T3B0aW9uYWw8VGVzdE9iajo6RW51
bVR5cGU+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnN0YXRlLCAiZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHQiKSksIFRlc3RP
Ymo6OkVudW1UeXBlOjpFbXB0eVN0cmluZyk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7
CiAgICAgYXV0byBzdHJpbmdXaXRoRGVmYXVsdCA9IGNvbnZlcnRPcHRpb25hbDxTdHJpbmc+KHN0
YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAi
c3RyaW5nV2l0aERlZmF1bHQiKSksICJkZWZhdWx0U3RyaW5nIik7CiAgICAgaWYgKFVOTElLRUxZ
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0
dXJuIE51bGxvcHQ7CiAgICAgYXV0byBzdHJpbmdXaXRob3V0RGVmYXVsdCA9IGNvbnZlcnRPcHRp
b25hbDxTdHJpbmc+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnN0YXRlLCAic3RyaW5nV2l0aG91dERlZmF1bHQiKSkpOwogICAgIGlmIChVTkxJS0VM
WShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJl
dHVybiBOdWxsb3B0OwogICAgIGF1dG8gYm9vbGVhbldpdGhEZWZhdWx0ID0gY29udmVydE9wdGlv
bmFsPGJvb2w+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnN0YXRlLCAiYm9vbGVhbldpdGhEZWZhdWx0IikpLCBmYWxzZSk7CiAgICAgaWYgKFVOTElL
RUxZKHN0YXRlLmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAg
cmV0dXJuIE51bGxvcHQ7CiAgICAgYXV0byBib29sZWFuV2l0aG91dERlZmF1bHQgPSBjb252ZXJ0
T3B0aW9uYWw8Ym9vbD4oc3RhdGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmc3RhdGUsICJib29sZWFuV2l0aG91dERlZmF1bHQiKSkpOwogICAgIGlmIChVTkxJ
S0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gc2VxdWVuY2VPZlN0cmluZ3MgPSBjb252ZXJ0T3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAic2VxdWVuY2VPZlN0cmluZ3MiKSkpOwogICAgIGlmIChV
TkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAg
ICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gcmVzdHJpY3RlZERvdWJsZSA9IGNvbnZlcnRP
cHRpb25hbDxkb3VibGU+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnN0YXRlLCAicmVzdHJpY3RlZERvdWJsZSIpKSwgU2hvdWxkQWxsb3dOb25GaW5p
dGU6Ok5vKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUuaGFkRXhjZXB0aW9uKCkpKQotICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICBhdXRvIHVucmVzdHJp
Y3RlZERvdWJsZSA9IGNvbnZlcnRPcHRpb25hbDxkb3VibGU+KHN0YXRlLCBvYmplY3QtPmdldCgm
c3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAidW5yZXN0cmljdGVkRG91Ymxl
IikpLCBTaG91bGRBbGxvd05vbkZpbml0ZTo6WWVzKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVs
bG9wdDsKICAgICBhdXRvIHJlc3RyaWN0ZWREb3VibGVXaXRoRGVmYXVsdCA9IGNvbnZlcnRPcHRp
b25hbDxkb3VibGU+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnN0YXRlLCAicmVzdHJpY3RlZERvdWJsZVdpdGhEZWZhdWx0IikpLCBTaG91bGRBbGxv
d05vbkZpbml0ZTo6Tm8sIDApOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24o
KSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1
dG8gdW5yZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQgPSBjb252ZXJ0T3B0aW9uYWw8ZG91Ymxl
PihzdGF0ZSwgb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0
ZSwgInVucmVzdHJpY3RlZERvdWJsZVdpdGhEZWZhdWx0IikpLCBTaG91bGRBbGxvd05vbkZpbml0
ZTo6WWVzLCAwKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUuaGFkRXhjZXB0aW9uKCkpKQotICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICBhdXRvIHJlc3Ry
aWN0ZWRGbG9hdCA9IGNvbnZlcnRPcHRpb25hbDxmbG9hdD4oc3RhdGUsIG9iamVjdC0+Z2V0KCZz
dGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJyZXN0cmljdGVkRmxvYXQiKSks
IFNob3VsZEFsbG93Tm9uRmluaXRlOjpObyk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7
CiAgICAgYXV0byB1bnJlc3RyaWN0ZWRGbG9hdCA9IGNvbnZlcnRPcHRpb25hbDxmbG9hdD4oc3Rh
dGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJ1
bnJlc3RyaWN0ZWRGbG9hdCIpKSwgU2hvdWxkQWxsb3dOb25GaW5pdGU6Olllcyk7CiAgICAgaWYg
KFVOTElLRUxZKHN0YXRlLmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICAgICAgcmV0dXJuIE51bGxvcHQ7CiAgICAgYXV0byByZXN0cmljdGVkRmxvYXRXaXRoRGVmYXVs
dCA9IGNvbnZlcnRPcHRpb25hbDxmbG9hdD4oc3RhdGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJyZXN0cmljdGVkRmxvYXRXaXRoRGVmYXVsdCIp
KSwgU2hvdWxkQWxsb3dOb25GaW5pdGU6Ok5vLCAwKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVs
bG9wdDsKICAgICBhdXRvIHVucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQgPSBjb252ZXJ0T3B0
aW9uYWw8ZmxvYXQ+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnN0YXRlLCAidW5yZXN0cmljdGVkRmxvYXRXaXRoRGVmYXVsdCIpKSwgU2hvdWxkQWxs
b3dOb25GaW5pdGU6OlllcywgMCk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CiAgICAg
YXV0byBzbWFsbEludGVnZXJDbGFtcGVkID0gY29udmVydE9wdGlvbmFsPGludDhfdD4oc3RhdGUs
IG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJzbWFs
bEludGVnZXJDbGFtcGVkIikpLCBDbGFtcCk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7
CiAgICAgYXV0byBzbWFsbEludGVnZXJXaXRoRGVmYXVsdCA9IGNvbnZlcnRPcHRpb25hbDxpbnQ4
X3Q+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0
YXRlLCAic21hbGxJbnRlZ2VyV2l0aERlZmF1bHQiKSksIE5vcm1hbENvbnZlcnNpb24pOwogICAg
IGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07
CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gc21hbGxVbnNpZ25lZEludGVnZXJF
bmZvcmNlZFJhbmdlID0gY29udmVydE9wdGlvbmFsPHVpbnQ4X3Q+KHN0YXRlLCBvYmplY3QtPmdl
dCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAic21hbGxVbnNpZ25lZElu
dGVnZXJFbmZvcmNlZFJhbmdlIikpLCBFbmZvcmNlUmFuZ2UpOwogICAgIGlmIChVTkxJS0VMWShz
dGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBOdWxsb3B0OwogICAgIGF1dG8gc21hbGxVbnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdCA9IGNv
bnZlcnRPcHRpb25hbDx1aW50OF90PihzdGF0ZSwgb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgInNtYWxsVW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHQi
KSksIE5vcm1hbENvbnZlcnNpb24sIDApOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNl
cHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0Owog
ICAgIGF1dG8gaW50ZWdlciA9IGNvbnZlcnRPcHRpb25hbDxpbnQzMl90PihzdGF0ZSwgb2JqZWN0
LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgImludGVnZXIiKSks
IE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24o
KSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1
dG8gaW50ZWdlcldpdGhEZWZhdWx0ID0gY29udmVydE9wdGlvbmFsPGludDMyX3Q+KHN0YXRlLCBv
YmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAiaW50ZWdl
cldpdGhEZWZhdWx0IikpLCBOb3JtYWxDb252ZXJzaW9uLCAwKTsKICAgICBpZiAoVU5MSUtFTFko
c3RhdGUuaGFkRXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1
cm4gTnVsbG9wdDsKICAgICBhdXRvIHVuc2lnbmVkSW50ZWdlciA9IGNvbnZlcnRPcHRpb25hbDx1
aW50MzJfdD4oc3RhdGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmc3RhdGUsICJ1bnNpZ25lZEludGVnZXIiKSksIE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlm
IChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gdW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1
bHQgPSBjb252ZXJ0T3B0aW9uYWw8dWludDMyX3Q+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAidW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1
bHQiKSksIE5vcm1hbENvbnZlcnNpb24sIDApOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRF
eGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0
OwogICAgIGF1dG8gbGFyZ2VJbnRlZ2VyID0gY29udmVydE9wdGlvbmFsPGludDY0X3Q+KHN0YXRl
LCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAibGFy
Z2VJbnRlZ2VyIikpLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVs
bG9wdDsKICAgICBhdXRvIGxhcmdlSW50ZWdlcldpdGhEZWZhdWx0ID0gY29udmVydE9wdGlvbmFs
PGludDY0X3Q+KHN0YXRlLCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnN0YXRlLCAibGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQiKSksIE5vcm1hbENvbnZlcnNpb24s
IDApOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJl
dHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gdW5zaWduZWRMYXJn
ZUludGVnZXIgPSBjb252ZXJ0T3B0aW9uYWw8dWludDY0X3Q+KHN0YXRlLCBvYmplY3QtPmdldCgm
c3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAidW5zaWduZWRMYXJnZUludGVn
ZXIiKSksIE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNl
cHRpb24oKSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0Owog
ICAgIGF1dG8gdW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdCA9IGNvbnZlcnRPcHRpb25h
bDx1aW50NjRfdD4oc3RhdGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmc3RhdGUsICJ1bnNpZ25lZExhcmdlSW50ZWdlcldpdGhEZWZhdWx0IikpLCBOb3JtYWxD
b252ZXJzaW9uLCAwKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUuaGFkRXhjZXB0aW9uKCkpKQot
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICBhdXRvKiBu
dWxsYWJsZU5vZGUgPSBjb252ZXJ0V3JhcHBlclR5cGU8Tm9kZSwgSlNOb2RlPihzdGF0ZSwgb2Jq
ZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgIm51bGxhYmxl
Tm9kZSIpKSwgSXNOdWxsYWJsZTo6WWVzKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gTnVsbG9wdDsK
ICAgICBhdXRvIGFueVZhbHVlID0gY29udmVydE9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4oc3RhdGUs
IG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJhbnlW
YWx1ZSIpKSwganNVbmRlZmluZWQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CiAg
ICAgYXV0byBhbnlUeXBlZGVmVmFsdWUgPSBjb252ZXJ0T3B0aW9uYWw8SlNDOjpKU1ZhbHVlPihz
dGF0ZSwgb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwg
ImFueVR5cGVkZWZWYWx1ZSIpKSwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHsgV1RGTW92
ZShlbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQpLCBXVEZNb3ZlKGVudW1lcmF0aW9uVmFs
dWVXaXRoRGVmYXVsdCksIFdURk1vdmUoZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0Rl
ZmF1bHQpLCBXVEZNb3ZlKHN0cmluZ1dpdGhEZWZhdWx0KSwgV1RGTW92ZShzdHJpbmdXaXRob3V0
RGVmYXVsdCksIFdURk1vdmUoYm9vbGVhbldpdGhEZWZhdWx0KSwgV1RGTW92ZShib29sZWFuV2l0
aG91dERlZmF1bHQpLCBXVEZNb3ZlKHNlcXVlbmNlT2ZTdHJpbmdzKSwgV1RGTW92ZShyZXN0cmlj
dGVkRG91YmxlKSwgV1RGTW92ZSh1bnJlc3RyaWN0ZWREb3VibGUpLCBXVEZNb3ZlKHJlc3RyaWN0
ZWREb3VibGVXaXRoRGVmYXVsdCksIFdURk1vdmUodW5yZXN0cmljdGVkRG91YmxlV2l0aERlZmF1
bHQpLCBXVEZNb3ZlKHJlc3RyaWN0ZWRGbG9hdCksIFdURk1vdmUodW5yZXN0cmljdGVkRmxvYXQp
LCBXVEZNb3ZlKHJlc3RyaWN0ZWRGbG9hdFdpdGhEZWZhdWx0KSwgV1RGTW92ZSh1bnJlc3RyaWN0
ZWRGbG9hdFdpdGhEZWZhdWx0KSwgV1RGTW92ZShzbWFsbEludGVnZXJDbGFtcGVkKSwgV1RGTW92
ZShzbWFsbEludGVnZXJXaXRoRGVmYXVsdCksIFdURk1vdmUoc21hbGxVbnNpZ25lZEludGVnZXJF
bmZvcmNlZFJhbmdlKSwgV1RGTW92ZShzbWFsbFVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0KSwg
V1RGTW92ZShpbnRlZ2VyKSwgV1RGTW92ZShpbnRlZ2VyV2l0aERlZmF1bHQpLCBXVEZNb3ZlKHVu
c2lnbmVkSW50ZWdlciksIFdURk1vdmUodW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHQpLCBXVEZN
b3ZlKGxhcmdlSW50ZWdlciksIFdURk1vdmUobGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQpLCBXVEZN
b3ZlKHVuc2lnbmVkTGFyZ2VJbnRlZ2VyKSwgV1RGTW92ZSh1bnNpZ25lZExhcmdlSW50ZWdlcldp
dGhEZWZhdWx0KSwgV1RGTW92ZShudWxsYWJsZU5vZGUpLCBXVEZNb3ZlKGFueVZhbHVlKSwgV1RG
TW92ZShhbnlUeXBlZGVmVmFsdWUpIH07CisgICAgcmV0dXJuIFRlc3RPYmo6OkRpY3Rpb25hcnkg
eyBXVEZNb3ZlKGVudW1lcmF0aW9uVmFsdWVXaXRob3V0RGVmYXVsdCksIFdURk1vdmUoZW51bWVy
YXRpb25WYWx1ZVdpdGhEZWZhdWx0KSwgV1RGTW92ZShlbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5
U3RyaW5nRGVmYXVsdCksIFdURk1vdmUoc3RyaW5nV2l0aERlZmF1bHQpLCBXVEZNb3ZlKHN0cmlu
Z1dpdGhvdXREZWZhdWx0KSwgV1RGTW92ZShib29sZWFuV2l0aERlZmF1bHQpLCBXVEZNb3ZlKGJv
b2xlYW5XaXRob3V0RGVmYXVsdCksIFdURk1vdmUoc2VxdWVuY2VPZlN0cmluZ3MpLCBXVEZNb3Zl
KHJlc3RyaWN0ZWREb3VibGUpLCBXVEZNb3ZlKHVucmVzdHJpY3RlZERvdWJsZSksIFdURk1vdmUo
cmVzdHJpY3RlZERvdWJsZVdpdGhEZWZhdWx0KSwgV1RGTW92ZSh1bnJlc3RyaWN0ZWREb3VibGVX
aXRoRGVmYXVsdCksIFdURk1vdmUocmVzdHJpY3RlZEZsb2F0KSwgV1RGTW92ZSh1bnJlc3RyaWN0
ZWRGbG9hdCksIFdURk1vdmUocmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpLCBXVEZNb3ZlKHVu
cmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpLCBXVEZNb3ZlKHNtYWxsSW50ZWdlckNsYW1wZWQp
LCBXVEZNb3ZlKHNtYWxsSW50ZWdlcldpdGhEZWZhdWx0KSwgV1RGTW92ZShzbWFsbFVuc2lnbmVk
SW50ZWdlckVuZm9yY2VkUmFuZ2UpLCBXVEZNb3ZlKHNtYWxsVW5zaWduZWRJbnRlZ2VyV2l0aERl
ZmF1bHQpLCBXVEZNb3ZlKGludGVnZXIpLCBXVEZNb3ZlKGludGVnZXJXaXRoRGVmYXVsdCksIFdU
Rk1vdmUodW5zaWduZWRJbnRlZ2VyKSwgV1RGTW92ZSh1bnNpZ25lZEludGVnZXJXaXRoRGVmYXVs
dCksIFdURk1vdmUobGFyZ2VJbnRlZ2VyKSwgV1RGTW92ZShsYXJnZUludGVnZXJXaXRoRGVmYXVs
dCksIFdURk1vdmUodW5zaWduZWRMYXJnZUludGVnZXIpLCBXVEZNb3ZlKHVuc2lnbmVkTGFyZ2VJ
bnRlZ2VyV2l0aERlZmF1bHQpLCBXVEZNb3ZlKG51bGxhYmxlTm9kZSksIFdURk1vdmUoYW55VmFs
dWUpLCBXVEZNb3ZlKGFueVR5cGVkZWZWYWx1ZSkgfTsKIH0KIAotdGVtcGxhdGU8PiBUZXN0T2Jq
OjpEaWN0aW9uYXJ5VGhhdFNob3VsZE5vdFRvbGVyYXRlTnVsbCBjb252ZXJ0PFRlc3RPYmo6OkRp
Y3Rpb25hcnlUaGF0U2hvdWxkTm90VG9sZXJhdGVOdWxsPihFeGVjU3RhdGUmIHN0YXRlLCBKU1Zh
bHVlIHZhbHVlKQordGVtcGxhdGU8PiBPcHRpb25hbDxUZXN0T2JqOjpEaWN0aW9uYXJ5VGhhdFNo
b3VsZE5vdFRvbGVyYXRlTnVsbD4gY29udmVydERpY3Rpb25hcnk8VGVzdE9iajo6RGljdGlvbmFy
eVRoYXRTaG91bGROb3RUb2xlcmF0ZU51bGw+KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7CiAgICAgaWYgKFVO
TElLRUxZKCFvYmplY3QgfHwgb2JqZWN0LT50eXBlKCkgPT0gUmVnRXhwT2JqZWN0VHlwZSkpIHsK
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICAgICAgcmV0dXJuIE51bGxvcHQ7CiAgICAgfQogICAgIGF1dG8gcmVxdWlyZWRFbnVtZXJhdGlv
blZhbHVlID0gY29udmVydDxUZXN0T2JqOjpFbnVtVHlwZT4oc3RhdGUsIG9iamVjdC0+Z2V0KCZz
dGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJyZXF1aXJlZEVudW1lcmF0aW9u
VmFsdWUiKSkpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5oYWRFeGNlcHRpb24oKSkpCi0gICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBOdWxsb3B0OwogICAgIGF1dG8gYm9vbGVh
bldpdGhvdXREZWZhdWx0ID0gY29udmVydE9wdGlvbmFsPGJvb2w+KHN0YXRlLCBvYmplY3QtPmdl
dCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAiYm9vbGVhbldpdGhvdXRE
ZWZhdWx0IikpKTsKLSAgICByZXR1cm4geyBXVEZNb3ZlKHJlcXVpcmVkRW51bWVyYXRpb25WYWx1
ZSksIFdURk1vdmUoYm9vbGVhbldpdGhvdXREZWZhdWx0KSB9OworICAgIGlmIChVTkxJS0VMWShz
dGF0ZS5oYWRFeGNlcHRpb24oKSkpCisgICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIGF1dG8q
IG5vbk51bGxhYmxlTm9kZSA9IGNvbnZlcnRXcmFwcGVyVHlwZTxOb2RlLCBKU05vZGU+KHN0YXRl
LCBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCAibm9u
TnVsbGFibGVOb2RlIikpLCBJc051bGxhYmxlOjpObyk7CisgICAgcmV0dXJuIFRlc3RPYmo6OkRp
Y3Rpb25hcnlUaGF0U2hvdWxkTm90VG9sZXJhdGVOdWxsIHsgV1RGTW92ZShyZXF1aXJlZEVudW1l
cmF0aW9uVmFsdWUpLCBXVEZNb3ZlKGJvb2xlYW5XaXRob3V0RGVmYXVsdCksICpub25OdWxsYWJs
ZU5vZGUgfTsKIH0KIAotdGVtcGxhdGU8PiBUZXN0T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRv
bGVyYXRlTnVsbCBjb252ZXJ0PFRlc3RPYmo6OkRpY3Rpb25hcnlUaGF0U2hvdWxkVG9sZXJhdGVO
dWxsPihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQordGVtcGxhdGU8PiBPcHRpb25h
bDxUZXN0T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRvbGVyYXRlTnVsbD4gY29udmVydERpY3Rp
b25hcnk8VGVzdE9iajo6RGljdGlvbmFyeVRoYXRTaG91bGRUb2xlcmF0ZU51bGw+KEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkpCi0gICAgICAgIHJldHVybiB7IHsgfSwgeyB9IH07CisgICAgICAgIHJldHVybiBUZXN0
T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRvbGVyYXRlTnVsbCB7IHsgfSwgeyB9IH07CiAgICAg
YXV0byogb2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7CiAgICAgaWYgKFVOTElLRUxZKCFvYmpl
Y3QgfHwgb2JqZWN0LT50eXBlKCkgPT0gUmVnRXhwT2JqZWN0VHlwZSkpIHsKICAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJu
IE51bGxvcHQ7CiAgICAgfQogICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZSA9IGNvbnZlcnRPcHRp
b25hbDxUZXN0T2JqOjpFbnVtVHlwZT4oc3RhdGUsIG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJlbnVtZXJhdGlvblZhbHVlIikpKTsKICAgICBpZiAo
VU5MSUtFTFkoc3RhdGUuaGFkRXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICByZXR1cm4gTnVsbG9wdDsKICAgICBhdXRvIGJvb2xlYW5XaXRob3V0RGVmYXVsdCA9IGNv
bnZlcnRPcHRpb25hbDxib29sPihzdGF0ZSwgb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZzdGF0ZSwgImJvb2xlYW5XaXRob3V0RGVmYXVsdCIpKSk7Ci0gICAgcmV0
dXJuIHsgV1RGTW92ZShlbnVtZXJhdGlvblZhbHVlKSwgV1RGTW92ZShib29sZWFuV2l0aG91dERl
ZmF1bHQpIH07CisgICAgcmV0dXJuIFRlc3RPYmo6OkRpY3Rpb25hcnlUaGF0U2hvdWxkVG9sZXJh
dGVOdWxsIHsgV1RGTW92ZShlbnVtZXJhdGlvblZhbHVlKSwgV1RGTW92ZShib29sZWFuV2l0aG91
dERlZmF1bHQpIH07CiB9CiAKIC8vIEZ1bmN0aW9ucwpAQCAtNjM5MiwxMCArNjM5NSwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0
YWNoU2hhZG93Um9vdChFeGVjU3RhdAogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFw
cGVkKCk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3Ioc3RhdGUpKTsKLSAgICBhdXRvIGluaXQgPSBjb252ZXJ0PFRlc3RPYmo6OkRpY3Rpb25h
cnk+KCpzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApKTsKKyAgICBhdXRvIGluaXQgPSBjb252ZXJ0
RGljdGlvbmFyeTxUZXN0T2JqOjpEaWN0aW9uYXJ5Pigqc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgw
KSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC5hdHRhY2hTaGFk
b3dSb290KFdURk1vdmUoaW5pdCkpOworICAgIGltcGwuYXR0YWNoU2hhZG93Um9vdChpbml0LnZh
bHVlKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCBjNjg0
NjYzODMzZTg5ODA1MzYzM2Y2MDAyMDA1ODc5ODNjOWU5ZGQ1Li43OWQ1MTQ5NWU0NTdiMDFkNzAz
YmIzZWFmMDRmNzYyOGE5MjRiMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzNChFeGVjU3RhdGUq
IHMKICAgICBhdXRvIHN0cmluZyA9IHN0YXRlLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhzdGF0
ZSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgYXV0byBvYmplY3QgPSBU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKHN0cmluZyk7CisgICAgYXV0byBvYmpl
Y3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKFdURk1vdmUoc3RyaW5nKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0
YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQog
CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1
Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzNShFeGVjU3RhdGUqIHMKICAgICBWZWN0b3I8
aW50MzJfdD4gbG9uZ0FyZ3MgPSB0b05hdGl2ZUFyZ3VtZW50czxpbnQzMl90Pigqc3RhdGUsIDAp
OwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGF1dG8gb2JqZWN0ID0gVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShsb25nQXJncyk7CisgICAgYXV0byBvYmpl
Y3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKFdURk1vdmUobG9uZ0FyZ3Mp
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQo
c3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDlhODdmNTU0NTEzYmZiOTk2Y2RkYmViNDhhZTdm
MGQ4YWE2NzM5ZmQuLjExMjRlNWIxZmI1NTJjMjI1ZWVmN2I3YmNlOTk0YjI4YjkzY2I4MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHRlbXBsYXRlPD4gRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1
Y3QoRXhlCiAgICAgaWYgKFVOTElLRUxZKCFzdGF0ZS0+YXJndW1lbnQoMSkuaXNPYmplY3QoKSkp
CiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcigqc3RhdGUs
IDEsICJ0ZXN0Q2FsbGJhY2siLCAiVGVzdFR5cGVkZWZzIiwgbnVsbHB0cik7CiAgICAgYXV0byB0
ZXN0Q2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3JlYXRlKGFzT2JqZWN0KHN0YXRlLT51bmNo
ZWNrZWRBcmd1bWVudCgxKSksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKTsKLSAgICBhdXRv
IG9iamVjdCA9IFRlc3RUeXBlZGVmczo6Y3JlYXRlKGhlbGxvLCAqdGVzdENhbGxiYWNrKTsKKyAg
ICBhdXRvIG9iamVjdCA9IFRlc3RUeXBlZGVmczo6Y3JlYXRlKFdURk1vdmUoaGVsbG8pLCAqdGVz
dENhbGxiYWNrKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXds
eUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVj
dCkpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAppbmRleCBlMjQwMGQzYzVmOTFjYzZkMDU5OTg3OTJlYjE3ZjNhNTc0YjlkY2E4
Li4yOTFkYzI5NTc4ZGMwYjQxZWI0YzY5N2U1NTc5Njg0MTgyZWI5MDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC00MzgsNiAr
NDM4LDcgQEAgZGljdGlvbmFyeSBUZXN0RGljdGlvbmFyeSB7CiBkaWN0aW9uYXJ5IFRlc3REaWN0
aW9uYXJ5VGhhdFNob3VsZE5vdFRvbGVyYXRlTnVsbCB7CiAgICAgcmVxdWlyZWQgVGVzdEVudW1U
eXBlIHJlcXVpcmVkRW51bWVyYXRpb25WYWx1ZTsKICAgICBib29sZWFuIGJvb2xlYW5XaXRob3V0
RGVmYXVsdDsKKyAgICByZXF1aXJlZCBOb2RlIG5vbk51bGxhYmxlTm9kZTsKIH07CiAKIGRpY3Rp
b25hcnkgVGVzdERpY3Rpb25hcnlUaGF0U2hvdWxkVG9sZXJhdGVOdWxsIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>