<?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>190277</bug_id>
          
          <creation_ts>2018-10-03 23:44:47 -0700</creation_ts>
          <short_desc>MutationRecord doesn&apos;t keep JS wrappers of target, addedNodes, and removedNodes alive</short_desc>
          <delta_ts>2018-10-04 14:12:07 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=190115</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466336</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-10-03 23:44:47 -0700</bug_when>
    <thetext>We need to make MutationRecord keep its nodes&apos; JS wrappers alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466337</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-03 23:46:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/45000115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466338</commentid>
    <comment_count>2</comment_count>
      <attachid>351590</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-10-03 23:57:13 -0700</bug_when>
    <thetext>Created attachment 351590
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466519</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-10-04 14:12:07 -0700</bug_when>
    <thetext>Committed r236850: &lt;https://trac.webkit.org/changeset/236850&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351590</attachid>
            <date>2018-10-03 23:57:13 -0700</date>
            <delta_ts>2018-10-04 01:27:33 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-190277-20181003235713.patch</filename>
            <type>text/plain</type>
            <size>17798</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjgyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTAzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE11dGF0aW9uUmVjb3JkIGRvZXNu
J3Qga2VlcCBKUyB3cmFwcGVycyBvZiB0YXJnZXQsIGFkZGVkTm9kZXMsIGFuZCByZW1vdmVkTm9k
ZXMgYWxpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MDI3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBidWcgd2FzIGNhdXNlZCBieSBKU011dGF0aW9uUmVjb3JkIG5vdCB2aXNpdGluZyBhbnkg
b2YgdGhlIG5vZGVzIHJlZmVyZW5jZWQgYnkgbXV0YXRpb24gcmVjb3Jkcy4KKworICAgICAgICBG
aXhlZCB0aGUgYnVnIGJ5IGFkZGluZyBKU011dGF0aW9uUmVjb3JkOjp2aXNpdEFkZGl0aW9uYWxD
aGlsZHJlbiwgd2hpY2ggYWRkcyB0aGUgcm9vdCBub2RlcyBvZgorICAgICAgICB0aGUgcm9vdCBu
b2RlcyBvZiB0aGUgdGFyZ2V0LCBhZGRlZE5vZGVzLCBhbmQgcmVtb3ZlZE5vZGVzIGluIGVhY2gg
bXV0YXRpb24gcmVjb3JkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2
ZXIvbXV0YXRpb24tcmVjb3JkLWtlZXBzLWpzLXdyYXBwZXJzLW9mLW5vZGVzLWFsaXZlLmh0bWwK
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uUmVjb3JkQ3Vz
dG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uUmVjb3JkOjp2aXNp
dEFkZGl0aW9uYWxDaGlsZHJlbik6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGVy
Zm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHA6IFRoaXMgZmlsZSBnb3QgZHVtcGVkIG91dCBvZiBh
IHVuaWZpZWQgYnVpbGQgZmlsZQorICAgICAgICB3aGVyZSB1c2luZyBuYW1lc3BhY2UgSlNDIHdh
cyBkZWZpbmVkLiBVc2UgdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lcyB0byByZWZlciB0byBKU0Mg
dHlwZXMuCisgICAgICAgIChXZWJDb3JlOjpKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGRvbS9NdXRhdGlvblJlY29yZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RSZWNvcmQ6OnZpc2l0Tm9kZXNDb25jdXJy
ZW50bHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlY29yZFdpdGhFbXB0eU5vZGVMaXN0
czo6dmlzaXROb2Rlc0NvbmN1cnJlbnRseSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TXV0
YXRpb25SZWNvcmRXaXRoTnVsbE9sZFZhbHVlOjp2aXNpdE5vZGVzQ29uY3VycmVudGx5KTogQWRk
ZWQuCisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmg6CisgICAgICAgICogZG9tL011dGF0
aW9uUmVjb3JkLmlkbDoKKwogMjAxOC0xMC0wMyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWlj
aGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVnaXN0ZXJlZCBjdXN0b20gcHJvcGVydGllcyBz
aG91bGQgYWxsb3cgaW5oZXJpdGFuY2UgdG8gYmUgY29udHJvbGxlZApJbmRleDogU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQJKHJldmlzaW9uIDIzNjgyNykKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC00MjEsNiArNDIxLDcgQEAgYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5l
bEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTTXV0YXRpb25SZWNvcmRDdXN0b20uY3BwCiBi
aW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAKIGJpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjM2ODI3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDg3NSw2ICsxMDg3NSw3IEBACiAJCTlCNzE0RTFG
MUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRXZlbnRQYXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCODU1
MzA1MjBFNzMzQjUwMDlFRUY0RiAvKiBFdmVudFRhcmdldEZhY3RvcnkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRUYXJnZXRGYWN0b3J5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI5Mjk5QjAxRjY3OTZBNDAwNjcyM0MyIC8qIFdlYkNv
bnRlbnRSZWFkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUI5Q0FEQTcyMTY1REM3NjAwRThEODU4IC8qIEpTTXV0YXRpb25SZWNvcmRDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCQTI3M0YzMTcyMjA2QkIwMDk3Q0U0NyAvKiBMb2dpY2Fs
U2VsZWN0aW9uT2Zmc2V0Q2FjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUJBODI3NzgxRjA2MTU2NTAwRjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0aW9uRGlzYWJsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJBQUM0NTYyMTUxRTM5RTAwM0Q0QTk4IC8qIEdD
UmVhY2hhYmxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDUmVhY2hhYmxlUmVmLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTkzNCw2ICsxOTkzNSw3IEBACiAJCQkJRTFBNUY5OUEw
RTdFQUEyNTAwQUY4NUVBIC8qIEpTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwICovLAogCQkJCUUx
QURFRDQ2MEU3NkI4REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCAqLywKIAkJ
CQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cCAqLywKKwkJCQk5QjlDQURBNzIxNjVEQzc2MDBFOEQ4NTggLyogSlNNdXRhdGlvblJlY29yZEN1
c3RvbS5jcHAgKi8sCiAJCQkJODNCNURBNDUxRkE5MDc5MzAwQjU5REY0IC8qIEpTTmF2aWdhdG9y
Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3Vz
dG9tLmNwcCAqLywKIAkJCQlCQzk0MzlDMjExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9t
LmggKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uUmVjb3Jk
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011
dGF0aW9uUmVjb3JkQ3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU011dGF0aW9uUmVjb3JkQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkpTTXV0YXRpb25SZWNvcmQuaCIKKworI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU011dGF0aW9uUmVjb3JkOjp2aXNpdEFkZGl0aW9u
YWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIHdyYXBwZWQoKS52
aXNpdE5vZGVzQ29uY3VycmVudGx5KHZpc2l0b3IpOworfQorICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZU9i
c2VydmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAyMzY4MjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMiArMzUsMTIgQEAgdm9pZCBKU1BlcmZvcm1hbmNlT2Jz
ZXJ2ZXI6OnZpc2l0QWRkaXRpbwogICAgIHdyYXBwZWQoKS5jYWxsYmFjaygpLnZpc2l0SlNGdW5j
dGlvbih2aXNpdG9yKTsKIH0KIAotYm9vbCBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKiByZWFzb24pCitib29sIEpTUGVyZm9y
bWFuY2VPYnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiogcmVhc29uKQogewogICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQogICAgICAgICAqcmVh
c29uID0gIlJlZ2lzdGVyZWQgUGVyZm9ybWFuY2VPYnNlcnZlciBjYWxsYmFjayI7CiAKLSAgICBy
ZXR1cm4ganNDYXN0PEpTUGVyZm9ybWFuY2VPYnNlcnZlcio+KGhhbmRsZS5zbG90KCktPmFzQ2Vs
bCgpKS0+d3JhcHBlZCgpLmlzUmVnaXN0ZXJlZCgpOworICAgIHJldHVybiBKU0M6OmpzQ2FzdDxK
U1BlcmZvcm1hbmNlT2JzZXJ2ZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSktPndyYXBwZWQo
KS5pc1JlZ2lzdGVyZWQoKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uUmVjb3JkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25S
ZWNvcmQuY3BwCShyZXZpc2lvbiAyMzY4MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25SZWNvcmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
TXV0YXRpb25SZWNvcmQuaCIKIAogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRl
ICJKU05vZGUuaCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTQwLDcg
KzQxLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsKIAotY2xhc3MgQ2hp
bGRMaXN0UmVjb3JkIDogcHVibGljIE11dGF0aW9uUmVjb3JkIHsKK3N0YXRpYyB2b2lkIHZpc2l0
Tm9kZUxpc3QoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvciwgTm9kZUxpc3QmIG5vZGVMaXN0KQor
eworICAgIEFTU0VSVCghbm9kZUxpc3QuaXNMaXZlTm9kZUxpc3QoKSk7CisgICAgdW5zaWduZWQg
bGVuZ3RoID0gbm9kZUxpc3QubGVuZ3RoKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbmd0aDsgKytpKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdChub2RlTGlz
dC5pdGVtKGkpKSk7Cit9CisKK2NsYXNzIENoaWxkTGlzdFJlY29yZCBmaW5hbCA6IHB1YmxpYyBN
dXRhdGlvblJlY29yZCB7CiBwdWJsaWM6CiAgICAgQ2hpbGRMaXN0UmVjb3JkKENvbnRhaW5lck5v
ZGUmIHRhcmdldCwgUmVmPE5vZGVMaXN0PiYmIGFkZGVkLCBSZWY8Tm9kZUxpc3Q+JiYgcmVtb3Zl
ZCwgUmVmUHRyPE5vZGU+JiYgcHJldmlvdXNTaWJsaW5nLCBSZWZQdHI8Tm9kZT4mJiBuZXh0U2li
bGluZykKICAgICAgICAgOiBtX3RhcmdldCh0YXJnZXQpCkBAIC01OSw2ICs2OCwxNSBAQCBwcml2
YXRlOgogICAgIE5vZGUqIHByZXZpb3VzU2libGluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fcHJl
dmlvdXNTaWJsaW5nLmdldCgpOyB9CiAgICAgTm9kZSogbmV4dFNpYmxpbmcoKSBvdmVycmlkZSB7
IHJldHVybiBtX25leHRTaWJsaW5nLmdldCgpOyB9CiAKKyAgICB2b2lkIHZpc2l0Tm9kZXNDb25j
dXJyZW50bHkoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikgY29uc3QgZmluYWwKKyAgICB7Cisg
ICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KG1fdGFyZ2V0LnB0cigpKSk7CisgICAg
ICAgIGlmIChtX2FkZGVkTm9kZXMpCisgICAgICAgICAgICB2aXNpdE5vZGVMaXN0KHZpc2l0b3Is
ICptX2FkZGVkTm9kZXMpOworICAgICAgICBpZiAobV9yZW1vdmVkTm9kZXMpCisgICAgICAgICAg
ICB2aXNpdE5vZGVMaXN0KHZpc2l0b3IsICptX3JlbW92ZWROb2Rlcyk7CisgICAgfQorICAgIAog
ICAgIFJlZjxDb250YWluZXJOb2RlPiBtX3RhcmdldDsKICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG1f
YWRkZWROb2RlczsKICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG1fcmVtb3ZlZE5vZGVzOwpAQCAtODcs
MTMgKzEwNSwxOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbm9kZUxpc3QuZ2V0KCk7CiAg
ICAgfQogCisgICAgdm9pZCB2aXNpdE5vZGVzQ29uY3VycmVudGx5KEpTQzo6U2xvdFZpc2l0b3Im
IHZpc2l0b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3Qocm9vdChtX3RhcmdldC5wdHIoKSkpOworICAgIH0KKwogICAgIFJlZjxOb2RlPiBtX3Rhcmdl
dDsKICAgICBTdHJpbmcgbV9vbGRWYWx1ZTsKICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG1fYWRkZWRO
b2RlczsKICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG1fcmVtb3ZlZE5vZGVzOwogfTsKIAotY2xhc3Mg
QXR0cmlidXRlc1JlY29yZCA6IHB1YmxpYyBSZWNvcmRXaXRoRW1wdHlOb2RlTGlzdHMgeworY2xh
c3MgQXR0cmlidXRlc1JlY29yZCBmaW5hbCA6IHB1YmxpYyBSZWNvcmRXaXRoRW1wdHlOb2RlTGlz
dHMgewogcHVibGljOgogICAgIEF0dHJpYnV0ZXNSZWNvcmQoRWxlbWVudCYgdGFyZ2V0LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVlKQogICAg
ICAgICA6IFJlY29yZFdpdGhFbXB0eU5vZGVMaXN0cyh0YXJnZXQsIG9sZFZhbHVlKQpAQCAtMTIy
LDcgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgb3Zl
cnJpZGU7CiB9OwogCi1jbGFzcyBNdXRhdGlvblJlY29yZFdpdGhOdWxsT2xkVmFsdWUgOiBwdWJs
aWMgTXV0YXRpb25SZWNvcmQgeworY2xhc3MgTXV0YXRpb25SZWNvcmRXaXRoTnVsbE9sZFZhbHVl
IGZpbmFsIDogcHVibGljIE11dGF0aW9uUmVjb3JkIHsKIHB1YmxpYzoKICAgICBNdXRhdGlvblJl
Y29yZFdpdGhOdWxsT2xkVmFsdWUoTXV0YXRpb25SZWNvcmQmIHJlY29yZCkKICAgICAgICAgOiBt
X3JlY29yZChyZWNvcmQpCkBAIC0xNDEsNiArMTY0LDExIEBAIHByaXZhdGU6CiAKICAgICBTdHJp
bmcgb2xkVmFsdWUoKSBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQogCisgICAgdm9pZCB2
aXNpdE5vZGVzQ29uY3VycmVudGx5KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpIGNvbnN0IGZp
bmFsCisgICAgeworICAgICAgICBtX3JlY29yZC0+dmlzaXROb2Rlc0NvbmN1cnJlbnRseSh2aXNp
dG9yKTsKKyAgICB9CisKICAgICBSZWY8TXV0YXRpb25SZWNvcmQ+IG1fcmVjb3JkOwogfTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmgJKHJldmlzaW9uIDIzNjgyNykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCwxMiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNsb3RWaXNpdG9yOwor
Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hhcmFjdGVyRGF0YTsKQEAgLTY1
LDYgKzcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRy
aWJ1dGVOYW1lc3BhY2UoKSB7IHJldHVybiBudWxsQXRvbSgpOyB9CiAKICAgICB2aXJ0dWFsIFN0
cmluZyBvbGRWYWx1ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
dmlzaXROb2Rlc0NvbmN1cnJlbnRseShKU0M6OlNsb3RWaXNpdG9yJikgY29uc3QgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uUmVjb3JkLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25S
ZWNvcmQuaWRsCShyZXZpc2lvbiAyMzY4MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25SZWNvcmQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw4IEBACiAgKi8KIAogWyAg
ICAKLSAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgorICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAor
ICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uCiBdIGludGVyZmFjZSBNdXRhdGlvblJlY29yZCB7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMzY4MjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOCBAQAorMjAxOC0xMC0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBNdXRhdGlvblJlY29yZCBkb2Vzbid0IGtlZXAgSlMgd3JhcHBlcnMgb2YgdGFy
Z2V0LCBhZGRlZE5vZGVzLCBhbmQgcmVtb3ZlZE5vZGVzIGFsaXZlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAyNzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0d28gcmVncmVzc2lvbiB0ZXN0
cyBmb3IgbWFraW5nIHN1cmUgbXV0YXRpb24gb2JzZXJ2ZXJzIGFuZCBtdXRhdGlvbiByZWNvcmRz
IGtlZXAgSlMgd3JhcHBlcnMKKyAgICAgICAgb2YgdGhlIGVucXVldWVkIG5vZGVzIGFsaXZlLiBB
bHNvIHNlZSByMjM2Nzk5IGZvciBhIHByZXZpb3VzIGZhaWxlZCBhdHRlbXB0IHRvIGFkZCBhIHNp
bWlsYXIgdGVzdC4KKworICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRp
b24tb2JzZXJ2ZXIta2VlcHMtanMtd3JhcHBlcnMtb2Ytbm9kZXMtYWxpdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9i
c2VydmVyLWtlZXBzLWpzLXdyYXBwZXJzLW9mLW5vZGVzLWFsaXZlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tcmVjb3JkLWtlZXBzLWpz
LXdyYXBwZXJzLW9mLW5vZGVzLWFsaXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1yZWNvcmQta2VlcHMtanMtd3JhcHBl
cnMtb2Ytbm9kZXMtYWxpdmUuaHRtbDogQWRkZWQuCisKIDIwMTgtMTAtMDMgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBWUDggc3VwcG9ydCB0byBXZWJS
VEMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24t
b2JzZXJ2ZXIta2VlcHMtanMtd3JhcHBlcnMtb2Ytbm9kZXMtYWxpdmUtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRp
b24tb2JzZXJ2ZXIta2VlcHMtanMtd3JhcHBlcnMtb2Ytbm9kZXMtYWxpdmUtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIv
bXV0YXRpb24tb2JzZXJ2ZXIta2VlcHMtanMtd3JhcHBlcnMtb2Ytbm9kZXMtYWxpdmUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorVGhpcyB0ZXN0cyB0aGF0IEpT
IHdyYXBwZXJzIG9mIG5vZGVzIGluIGEgbXV0YXRpb24gcmVjb3JkIGRvIG5vdCBnZXQgY29sbGVj
dGVkLgorCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tb2JzZXJ2ZXIta2VlcHMtanMtd3Jh
cHBlcnMtb2Ytbm9kZXMtYWxpdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9ic2VydmVyLWtlZXBzLWpzLXdyYXBwZXJz
LW9mLW5vZGVzLWFsaXZlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1vYnNlcnZlci1rZWVwcy1qcy13cmFwcGVycy1v
Zi1ub2Rlcy1hbGl2ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBKUyB3cmFwcGVy
cyBvZiBub2RlcyBpbiBhIG11dGF0aW9uIHJlY29yZCBkbyBub3QgZ2V0IGNvbGxlY3RlZC48L3A+
Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9n
Yy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2NvbnN0IG5vZGVDb3VudCA9IDU7Citjb25zdCBp
dGVyYXRpb25Db3VudCA9IDU7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1bkFsbCgpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
CisgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVyYXRpb25Db3VudDsgKytqKSB7CisgICAgICAg
IHJ1blRlc3QoKTsKKyAgICAgICAgZ2MoKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZl
KCk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBs
ZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29udGFp
bmVyLm15U3RhdGUgPSAnYWxpdmUnOworICAgIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLCB7
c3VidHJlZTogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlLCBhdHRyaWJ1dGVzOiB0cnVlfSk7CisKKyAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVDb3VudDsgKytpKSB7CisgICAgICAgIGNvbnN0IGNo
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICBjaGlsZC5teVN0
YXRlID0gJ2FsaXZlJzsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxkKTsKKyAg
ICB9CisgICAgY29udGFpbmVyLnRleHRDb250ZW50ID0gJyc7Cit9CisKK2NvbnN0IG9ic2VydmVy
ID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHJlY29yZExpc3QpID0+IHsKKyAgICBsZXQgZGVhZENv
dW50ID0gMDsKKyAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRMaXN0KSB7CisgICAgICAg
IGZvciAoY29uc3Qgbm9kZSBvZiByZWNvcmQuYWRkZWROb2RlcykgeworICAgICAgICAgICAgaWYg
KG5vZGUubXlTdGF0ZSAhPSAnYWxpdmUnKQorICAgICAgICAgICAgICAgIGRlYWRDb3VudCsrOwor
ICAgICAgICB9CisgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiByZWNvcmQucmVtb3ZlZE5vZGVz
KSB7CisgICAgICAgICAgICBpZiAobm9kZS5teVN0YXRlICE9ICdhbGl2ZScpCisgICAgICAgICAg
ICAgICAgZGVhZENvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ICs9IChkZWFkQ291bnQgPyBgRkFJTCAtICR7ZGVh
ZENvdW50fSBub2RlcyBsb3N0IEpTIHdyYXBwZXJzYCA6ICdQQVNTJykgKyAnXG4nOworfSk7CisK
K3J1bkFsbCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tcmVjb3JkLWtlZXBzLWpzLXdy
YXBwZXJzLW9mLW5vZGVzLWFsaXZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLXJlY29yZC1rZWVwcy1qcy13
cmFwcGVycy1vZi1ub2Rlcy1hbGl2ZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1yZWNvcmQta2VlcHMt
anMtd3JhcHBlcnMtb2Ytbm9kZXMtYWxpdmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOCBAQAorVGhpcyB0ZXN0cyB0aGF0IEpTIHdyYXBwZXJzIG9mIG5vZGVzIGVucXVl
dWVkIHRvIGEgbXV0YXRpb24gb2JzZXJ2ZXIgZG8gbm90IGdldCBjb2xsZWN0ZWQuCisKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0
YXRpb25PYnNlcnZlci9tdXRhdGlvbi1yZWNvcmQta2VlcHMtanMtd3JhcHBlcnMtb2Ytbm9kZXMt
YWxpdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9i
c2VydmVyL211dGF0aW9uLXJlY29yZC1rZWVwcy1qcy13cmFwcGVycy1vZi1ub2Rlcy1hbGl2ZS5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2
ZXIvbXV0YXRpb24tcmVjb3JkLWtlZXBzLWpzLXdyYXBwZXJzLW9mLW5vZGVzLWFsaXZlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IEpTIHdyYXBwZXJzIG9mIG5vZGVzIGVucXVldWVk
IHRvIGEgbXV0YXRpb24gb2JzZXJ2ZXIgZG8gbm90IGdldCBjb2xsZWN0ZWQuPC9wPgorPHByZSBp
ZD0ibG9nIj48L3ByZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvZ2MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCitjb25zdCBub2RlQ291bnQgPSA1OworY29uc3QgaXRlcmF0aW9u
Q291bnQgPSA1OworCitsZXQgZWxlbWVudHNNYXA7CisKK2FzeW5jIGZ1bmN0aW9uIG9ic2VydmUo
KSB7CisgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIGNvbnRhaW5lci5teVN0YXRlID0gJ2xpdmUnOworCisgICAgY29uc3Qgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7IH0pOworICAgIG9ic2VydmVyLm9ic2VydmUoY29u
dGFpbmVyLCB7c3VidHJlZTogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlLCBhdHRyaWJ1dGVzOiB0cnVl
fSk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlQ291bnQ7ICsraSkgeworICAgICAgICBj
b25zdCBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgY2hp
bGQubXlTdGF0ZSA9ICdsaXZlJzsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxk
KTsKKyAgICB9CisgICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnZm9vJyk7Cisg
ICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnYmFyJyk7CisgICAgY29udGFpbmVy
LnRleHRDb250ZW50ID0gJyc7CisKKyAgICByZXR1cm4gb2JzZXJ2ZXIudGFrZVJlY29yZHMoKTsK
K30KKworZnVuY3Rpb24gY2hlY2socmVjb3JkTGlzdCkgeworICAgIGxldCBkZWFkQ291bnQgPSAw
OworICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZExpc3QpIHsKKyAgICAgICAgaWYgKHJl
Y29yZC50YXJnZXQubXlTdGF0ZSAhPSAnbGl2ZScpCisgICAgICAgICAgICBkZWFkQ291bnQrKzsK
KyAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIHJlY29yZC5hZGRlZE5vZGVzKSB7CisgICAgICAg
ICAgICBpZiAobm9kZS5teVN0YXRlICE9ICdsaXZlJykKKyAgICAgICAgICAgICAgICBkZWFkQ291
bnQrKzsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgcmVjb3JkLnJlbW92
ZWROb2RlcykgeworICAgICAgICAgICAgaWYgKG5vZGUubXlTdGF0ZSAhPSAnbGl2ZScpCisgICAg
ICAgICAgICAgICAgZGVhZENvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ICs9IChkZWFkQ291bnQgPyBgRkFJTCAt
ICR7ZGVhZENvdW50fSBub2RlcyBsb3N0IEpTIHdyYXBwZXJzYCA6ICdQQVNTJykgKyAnXG4nOwor
fQorCithc3luYyBmdW5jdGlvbiBydW5BbGwoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGZvciAobGV0IGog
PSAwOyBqIDwgaXRlcmF0aW9uQ291bnQ7ICsraikgeworICAgICAgICBjb25zdCByZWNvcmRzID0g
YXdhaXQgb2JzZXJ2ZSgpOworICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAwKSk7CisgICAgICAgIGdjKCk7CisgICAgICAgIGNoZWNrKHJl
Y29yZHMpOworICAgIH0KKworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworcnVuQWxsKCk7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="368947"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>