<?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>7904</bug_id>
          
          <creation_ts>2006-03-21 23:50:06 -0800</creation_ts>
          <short_desc>Avoid a layout after test insertion and remove isProbablyBlock</short_desc>
          <delta_ts>2006-03-22 16:56:50 -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>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>37294</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-21 23:50:06 -0800</bug_when>
    <thetext>In a plain text paste, we do 3 layouts, one for the test insertion, a second after the test insertion to remove the fragment from the document, and another after the paste is complete.
Leaving the fragment in the document after the test insertion avoids the second layout.  It also lets us get rid of isProbablyBlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37318</commentid>
    <comment_count>1</comment_count>
      <attachid>7226</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-22 01:14:38 -0800</bug_when>
    <thetext>Created attachment 7226
patch

I want the ReplacementFragment to be destroyed and the holder removed when the paste is complete, so I made it a local variable inside doApply().  It was previously a member variable of ReplaceSelectionCommand, so it wasn&apos;t destroyed until the undo stack was cleared.
Added a layout test that demonstrates why it is important to get rid of isProbablyBlock.  The test does a copy/paste of a selection that starts and ends inside spans with style=&quot;display:block&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37319</commentid>
    <comment_count>2</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-22 01:19:44 -0800</bug_when>
    <thetext>This patch breaks a layout test: editing/pasteboard/paste-empty-startcontainer.html, but only because it exposes a bug in FrameTree:uniqueChildName, which I filed (7899).  I&apos;ll disable that test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37337</commentid>
    <comment_count>3</comment_count>
      <attachid>7226</attachid>
    <who name="David Harrison">harrison</who>
    <bug_when>2006-03-22 07:17:40 -0800</bug_when>
    <thetext>Comment on attachment 7226
patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7226</attachid>
            <date>2006-03-22 01:14:38 -0800</date>
            <delta_ts>2006-03-22 07:17:40 -0800</delta_ts>
            <desc>patch</desc>
            <filename>7904.txt</filename>
            <type>text/plain</type>
            <size>25277</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDog
V2ViQ29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkocmV2aXNpb24gMTM0MjYp
CisrKyBXZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NCw4ICs1NCw3IEBACiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBS
ZXBsYWNlbWVudEZyYWdtZW50OjpSZXBsYWNlbWVudEZyYWdtZW50KERvY3VtZW50ICpkb2N1bWVu
dCwgRG9jdW1lbnRGcmFnbWVudCAqZnJhZ21lbnQsIGJvb2wgbWF0Y2hTdHlsZSkKLSAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpLCAKLSAgICAgIG1fZnJhZ21lbnQoZnJhZ21lbnQpLCAKKyAgICA6
IG1fZG9jdW1lbnQoZG9jdW1lbnQpLAogICAgICAgbV9tYXRjaFN0eWxlKG1hdGNoU3R5bGUpLCAK
ICAgICAgIG1faGFzSW50ZXJjaGFuZ2VOZXdsaW5lQXRTdGFydChmYWxzZSksIAogICAgICAgbV9o
YXNJbnRlcmNoYW5nZU5ld2xpbmVBdEVuZChmYWxzZSksIApAQCAtNjQsMTMgKzYzLDEzIEBACiAg
ICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fZnJhZ21l
bnQpIHsKKyAgICBpZiAoIWZyYWdtZW50KSB7CiAgICAgICAgIG1fdHlwZSA9IEVtcHR5RnJhZ21l
bnQ7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgTm9kZSAqZmlyc3RDaGlsZCA9
IG1fZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKTsKLSAgICBOb2RlICpsYXN0Q2hpbGQgPSBtX2ZyYWdt
ZW50LT5sYXN0Q2hpbGQoKTsKKyAgICBOb2RlICpmaXJzdENoaWxkID0gZnJhZ21lbnQtPmZpcnN0
Q2hpbGQoKTsKKyAgICBOb2RlICpsYXN0Q2hpbGQgPSBmcmFnbWVudC0+bGFzdENoaWxkKCk7CiAK
ICAgICBpZiAoIWZpcnN0Q2hpbGQpIHsKICAgICAgICAgbV90eXBlID0gRW1wdHlGcmFnbWVudDsK
QEAgLTg0LDEzICs4MywxMyBAQAogICAgIAogICAgIG1fdHlwZSA9IFRyZWVGcmFnbWVudDsKIAot
ICAgIE5vZGUgKm5vZGUgPSBtX2ZyYWdtZW50LT5maXJzdENoaWxkKCk7CisgICAgTm9kZSAqbm9k
ZSA9IGZyYWdtZW50LT5maXJzdENoaWxkKCk7CiAgICAgTm9kZSAqbmV3bGluZUF0U3RhcnROb2Rl
ID0gMDsKICAgICBOb2RlICpuZXdsaW5lQXRFbmROb2RlID0gMDsKICAgICB3aGlsZSAobm9kZSkg
ewogICAgICAgICBOb2RlICpuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSgpOwogICAgICAg
ICBpZiAoaXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKG5vZGUpKSB7Ci0gICAgICAgICAgICBpZiAo
bmV4dCB8fCBub2RlID09IG1fZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAg
aWYgKG5leHQgfHwgbm9kZSA9PSBmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgICAg
ICAgICAgbV9oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdFN0YXJ0ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICBuZXdsaW5lQXRTdGFydE5vZGUgPSBub2RlOwogICAgICAgICAgICAgfQpAQCAtMTE3LDg0
ICsxMTYsNTAgQEAKICAgICBpZiAobmV3bGluZUF0RW5kTm9kZSkKICAgICAgICAgcmVtb3ZlTm9k
ZShuZXdsaW5lQXRFbmROb2RlKTsKICAgICAKLSAgICBSZWZQdHI8Tm9kZT4gaG9sZGVyID0gaW5z
ZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5nKCk7Ci0gICAgaWYgKCFtX21hdGNoU3R5bGUpCi0g
ICAgICAgIGNvbXB1dGVTdHlsZXNVc2luZ1Rlc3RSZW5kZXJpbmcoaG9sZGVyLmdldCgpKTsKLSAg
ICByZW1vdmVVbnJlbmRlcmVkTm9kZXNVc2luZ1Rlc3RSZW5kZXJpbmcoaG9sZGVyLmdldCgpKTsK
LSAgICBtX2hhc01vcmVUaGFuT25lQmxvY2sgPSBjb3VudFJlbmRlcmVkQmxvY2tzKGhvbGRlci5n
ZXQoKSkgPiAxOworICAgIGluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZyhmcmFnbWVudCk7
CiAgICAgCiAgICAgLy8gU2VuZCBraHRtbEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LiAgVGhlIGV2
ZW50IGhhbmRsZXIgd2lsbCB1cGRhdGUgdGV4dCBpZiBuZWNlc3NhcnkuCiAgICAgaWYgKG1fZG9j
dW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgTm9kZSogc2VsZWN0aW9uU3RhcnROb2RlID0gbV9k
b2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc3RhcnQoKS5ub2RlKCk7CiAgICAgICAgIGlm
IChzZWxlY3Rpb25TdGFydE5vZGUgJiYgc2VsZWN0aW9uU3RhcnROb2RlLT5yb290RWRpdGFibGVF
bGVtZW50KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBuZXcgUmFuZ2Uo
aG9sZGVyLT5nZXREb2N1bWVudCgpKTsKKyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBuZXcgUmFuZ2UobV9ob2xkZXItPmdldERvY3VtZW50KCkpOwogICAgICAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgICAgICByYW5nZS0+c2VsZWN0Tm9kZUNvbnRlbnRzKGhv
bGRlci5nZXQoKSwgZWMpOworICAgICAgICAgICAgcmFuZ2UtPnNlbGVjdE5vZGVDb250ZW50cyht
X2hvbGRlci5nZXQoKSwgZWMpOwogICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBwbGFpblRleHQo
cmFuZ2UuZ2V0KCkpOwogICAgICAgICAgICAgU3RyaW5nIG5ld1RleHQgPSB0ZXh0LmNvcHkoKTsK
ICAgICAgICAgICAgIFJlZlB0cjxFdmVudD4gZXZ0ID0gbmV3IEJlZm9yZVRleHRJbnNlcnRlZEV2
ZW50KG5ld1RleHQpOwogICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnROb2RlLT5yb290RWRpdGFi
bGVFbGVtZW50KCktPmRpc3BhdGNoRXZlbnQoZXZ0LCBlYywgdHJ1ZSk7CiAgICAgICAgICAgICBp
ZiAodGV4dCAhPSBuZXdUZXh0KSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGV2ZW50IGhh
bmRsZXIgaGFzIGNoYW5nZWQgdGhlIHRleHQsIGNyZWF0ZSBhIG5ldyBob2xkZXIgbm9kZSBmb3Ig
dGVzdCByZW5kZXJpbmcKLSAgICAgICAgICAgICAgICBtX2ZyYWdtZW50LT5yZW1vdmVDaGlsZHJl
bigpOwotICAgICAgICAgICAgICAgIG1fZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5ldyBUZXh0KG1f
ZG9jdW1lbnQuZ2V0KCksIG5ld1RleHQpLCBlYyk7Ci0gICAgICAgICAgICAgICAgcmVtb3ZlTm9k
ZShob2xkZXIpOwotICAgICAgICAgICAgICAgIGhvbGRlciA9IGluc2VydEZyYWdtZW50Rm9yVGVz
dFJlbmRlcmluZygpOwotICAgICAgICAgICAgICAgIGlmICghbV9tYXRjaFN0eWxlKQotICAgICAg
ICAgICAgICAgICAgICBjb21wdXRlU3R5bGVzVXNpbmdUZXN0UmVuZGVyaW5nKGhvbGRlci5nZXQo
KSk7Ci0gICAgICAgICAgICAgICAgcmVtb3ZlVW5yZW5kZXJlZE5vZGVzVXNpbmdUZXN0UmVuZGVy
aW5nKGhvbGRlci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgbV9oYXNNb3JlVGhhbk9uZUJsb2Nr
ID0gY291bnRSZW5kZXJlZEJsb2Nrcyhob2xkZXIuZ2V0KCkpID4gMTsKKyAgICAgICAgICAgICAg
ICBmcmFnbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgICAgICBmcmFnbWVudC0+
YXBwZW5kQ2hpbGQobmV3IFRleHQobV9kb2N1bWVudC5nZXQoKSwgbmV3VGV4dCksIGVjKTsKKyAg
ICAgICAgICAgICAgICBpbnNlcnRGcmFnbWVudEZvclRlc3RSZW5kZXJpbmcoZnJhZ21lbnQpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHJlc3RvcmVUZXN0UmVu
ZGVyaW5nTm9kZXNUb0ZyYWdtZW50KGhvbGRlci5nZXQoKSk7Ci0gICAgcmVtb3ZlTm9kZShob2xk
ZXIpOworICAgIGlmICghbV9tYXRjaFN0eWxlKQorICAgICAgICBjb21wdXRlQW5kU3RvcmVOb2Rl
U3R5bGVzKCk7CisgICAgcmVtb3ZlVW5yZW5kZXJlZE5vZGVzKCk7CisgICAgbV9oYXNNb3JlVGhh
bk9uZUJsb2NrID0gcmVuZGVyZWRCbG9ja3MoKSA+IDE7CiAgICAgcmVtb3ZlU3R5bGVOb2Rlcygp
OwogfQogCiBSZXBsYWNlbWVudEZyYWdtZW50Ojp+UmVwbGFjZW1lbnRGcmFnbWVudCgpCiB7Cisg
ICAgaWYgKG1faG9sZGVyICYmIG1faG9sZGVyLT5pbkRvY3VtZW50KCkpCisgICAgICAgIHJlbW92
ZU5vZGUobV9ob2xkZXIpOwogfQogCiBOb2RlICpSZXBsYWNlbWVudEZyYWdtZW50OjpmaXJzdENo
aWxkKCkgY29uc3QgCiB7IAotICAgIHJldHVybiBtX2ZyYWdtZW50LT5maXJzdENoaWxkKCk7IAor
ICAgIHJldHVybiBtX2hvbGRlci0+Zmlyc3RDaGlsZCgpOyAKIH0KIAogTm9kZSAqUmVwbGFjZW1l
bnRGcmFnbWVudDo6bGFzdENoaWxkKCkgY29uc3QgCiB7IAotICAgIHJldHVybiAgbV9mcmFnbWVu
dC0+bGFzdENoaWxkKCk7IAorICAgIHJldHVybiBtX2hvbGRlci0+bGFzdENoaWxkKCk7IAogfQog
Ci1zdGF0aWMgYm9vbCBpc1Byb2JhYmx5QmxvY2soY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBp
ZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBGSVhNRTogVGhp
cyBmdW5jdGlvbiBzZWVtcyByZWFsbHkgYnJva2VuIHRvIG1lLiAgSXQgaXNuJ3QgZXZlbiBpbmNs
dWRpbmcgYWxsIHRoZSBibG9jay1sZXZlbCBlbGVtZW50cy4KLSAgICByZXR1cm4gbm9kZS0+aGFz
VGFnTmFtZShibG9ja3F1b3RlVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGRkVGFn
KQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGRpdlRhZykKLSAgICAgICAgfHwgbm9kZS0+
aGFzVGFnTmFtZShkbFRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShkdFRhZykKLSAg
ICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShoMVRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFn
TmFtZShoMlRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShoM1RhZykKLSAgICAgICAg
fHwgbm9kZS0+aGFzVGFnTmFtZShoNFRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSho
NVRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShoNlRhZykKLSAgICAgICAgfHwgbm9k
ZS0+aGFzVGFnTmFtZShoclRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShsaVRhZykK
LSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShsaXN0aW5nVGFnKQotICAgICAgICB8fCBub2Rl
LT5oYXNUYWdOYW1lKG9sVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHBUYWcpCi0g
ICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUocHJlVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNU
YWdOYW1lKHRkVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRoVGFnKQotICAgICAg
ICB8fCBub2RlLT5oYXNUYWdOYW1lKHVsVGFnKTsKLX0KLQogc3RhdGljIGJvb2wgaXNNYWlsUGFz
dGVBc1F1b3RhdGlvbk5vZGUoY29uc3QgTm9kZSAqbm9kZSkKIHsKICAgICByZXR1cm4gbm9kZSAm
JiBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50ICo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUoImNsYXNz
IikgPT0gQXBwbGVQYXN0ZUFzUXVvdGF0aW9uOwpAQCAtMjAyLDggKzE2Nyw4IEBACiAKIE5vZGUg
KlJlcGxhY2VtZW50RnJhZ21lbnQ6Om1lcmdlU3RhcnROb2RlKCkgY29uc3QKIHsKLSAgICBOb2Rl
ICpub2RlID0gbV9mcmFnbWVudC0+Zmlyc3RDaGlsZCgpOwotICAgIHdoaWxlIChub2RlICYmIGlz
UHJvYmFibHlCbG9jayhub2RlKSAmJiAhaXNNYWlsUGFzdGVBc1F1b3RhdGlvbk5vZGUobm9kZSkp
CisgICAgTm9kZSAqbm9kZSA9IG1faG9sZGVyLT5maXJzdENoaWxkKCk7CisgICAgd2hpbGUgKG5v
ZGUgJiYgbm9kZS0+aXNCbG9ja0Zsb3coKSAmJiAhaXNNYWlsUGFzdGVBc1F1b3RhdGlvbk5vZGUo
bm9kZSkpCiAgICAgICAgIG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCk7CiAgICAgcmV0
dXJuIG5vZGU7CiB9CkBAIC0yMjQsOSArMTg5LDkgQEAKIAogTm9kZSAqUmVwbGFjZW1lbnRGcmFn
bWVudDo6ZW5jbG9zaW5nQmxvY2soTm9kZSAqbm9kZSkgY29uc3QKIHsKLSAgICB3aGlsZSAobm9k
ZSAmJiAhaXNQcm9iYWJseUJsb2NrKG5vZGUpKQorICAgIHdoaWxlIChub2RlICYmICFub2RlLT5p
c0Jsb2NrRmxvdygpKQogICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOyAgICAKLSAg
ICByZXR1cm4gbm9kZSA/IG5vZGUgOiBtX2ZyYWdtZW50LmdldCgpOworICAgIHJldHVybiBub2Rl
ID8gbm9kZSA6IG1faG9sZGVyLmdldCgpOwogfQogCiB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6
OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oTm9kZSAqbm9kZSkKQEAgLTI2OSw0MCArMjM0
LDI3IEBACiAgICAgQVNTRVJUKGVjID09IDApOwogfQogCi1QYXNzUmVmUHRyPE5vZGU+IFJlcGxh
Y2VtZW50RnJhZ21lbnQ6Omluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZygpCit2b2lkIFJl
cGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZyhEb2N1bWVu
dEZyYWdtZW50KiBmcmFnbWVudCkKIHsKICAgICBOb2RlICpib2R5ID0gbV9kb2N1bWVudC0+Ym9k
eSgpOwogICAgIGlmICghYm9keSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybjsK
IAotICAgIFJlZlB0cjxFbGVtZW50PiBob2xkZXIgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxl
bWVudChtX2RvY3VtZW50LmdldCgpKTsKKyAgICBpZiAobV9ob2xkZXIgJiYgbV9ob2xkZXItPmlu
RG9jdW1lbnQoKSkKKyAgICAgICAgcmVtb3ZlTm9kZShtX2hvbGRlcik7CisKKyAgICBtX2hvbGRl
ciA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KG1fZG9jdW1lbnQuZ2V0KCkpOwogICAg
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGhvbGRlci0+YXBwZW5kQ2hpbGQobV9m
cmFnbWVudC5nZXQoKSwgZWMpOworICAgIG1faG9sZGVyLT5hcHBlbmRDaGlsZChmcmFnbWVudCwg
ZWMpOwogICAgIEFTU0VSVChlYyA9PSAwKTsKICAgICAKLSAgICBib2R5LT5hcHBlbmRDaGlsZCho
b2xkZXIuZ2V0KCksIGVjKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChtX2hvbGRlci5nZXQoKSwg
ZWMpOwogICAgIEFTU0VSVChlYyA9PSAwKTsKICAgICAKICAgICBtX2RvY3VtZW50LT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKLSAgICAKLSAgICByZXR1cm4gaG9sZGVy
LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjpyZXN0b3JlVGVzdFJl
bmRlcmluZ05vZGVzVG9GcmFnbWVudChOb2RlICpob2xkZXIpCi17Ci0gICAgaWYgKCFob2xkZXIp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHdoaWxl
IChSZWZQdHI8Tm9kZT4gbm9kZSA9IGhvbGRlci0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGhv
bGRlci0+cmVtb3ZlQ2hpbGQobm9kZS5nZXQoKSwgZWMpOwotICAgICAgICBBU1NFUlQoZWMgPT0g
MCk7Ci0gICAgICAgIG1fZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5vZGUuZ2V0KCksIGVjKTsKLSAg
ICAgICAgQVNTRVJUKGVjID09IDApOwotICAgIH0KLX0KLQogc3RhdGljIFN0cmluZyAmbWF0Y2hO
ZWFyZXN0QmxvY2txdW90ZUNvbG9yU3RyaW5nKCkKIHsKICAgICBzdGF0aWMgU3RyaW5nIG1hdGNo
TmVhcmVzdEJsb2NrcXVvdGVDb2xvclN0cmluZyA9ICJtYXRjaCI7CkBAIC00MDAsMjUgKzM1Miwy
MyBAQAogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTX1BST1BfX0tIVE1MX01BVENIX05F
QVJFU1RfTUFJTF9CTE9DS1FVT1RFX0NPTE9SLCBtYXRjaE5lYXJlc3RCbG9ja3F1b3RlQ29sb3JT
dHJpbmcoKSk7CiB9CiAKLXZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6Y29tcHV0ZVN0eWxlc1Vz
aW5nVGVzdFJlbmRlcmluZyhOb2RlICpob2xkZXIpCit2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6
OmNvbXB1dGVBbmRTdG9yZU5vZGVTdHlsZXMoKQogewotICAgIGlmICghaG9sZGVyKQotICAgICAg
ICByZXR1cm47CisgICAgQVNTRVJUKG1faG9sZGVyICYmIG1faG9sZGVyLT5pbkRvY3VtZW50KCkp
OwogCiAgICAgbV9kb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKLSAgICBmb3IgKE5vZGUgKm5vZGUgPSBob2xkZXItPmZpcnN0Q2hpbGQoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoaG9sZGVyKSkKKyAgICBmb3IgKE5vZGUgKm5v
ZGUgPSBtX2hvbGRlci0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VO
ZXh0Tm9kZShtX2hvbGRlci5nZXQoKSkpCiAgICAgICAgIGNvbXB1dGVBbmRTdG9yZU5vZGVEZXNp
cmVkU3R5bGUobm9kZSwgbV9zdHlsZXMpOwogfQogCi12b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6
OnJlbW92ZVVucmVuZGVyZWROb2Rlc1VzaW5nVGVzdFJlbmRlcmluZyhOb2RlICpob2xkZXIpCit2
b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlbW92ZVVucmVuZGVyZWROb2RlcygpCiB7Ci0gICAg
aWYgKCFob2xkZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9ob2xkZXIgJiYgbV9o
b2xkZXItPmluRG9jdW1lbnQoKSk7CiAKICAgICBEZXByZWNhdGVkUHRyTGlzdDxOb2RlPiB1bnJl
bmRlcmVkOwogCi0gICAgZm9yIChOb2RlICpub2RlID0gaG9sZGVyLT5maXJzdENoaWxkKCk7IG5v
ZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKGhvbGRlcikpIHsKKyAgICBmb3IgKE5v
ZGUgKm5vZGUgPSBtX2hvbGRlci0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZShtX2hvbGRlci5nZXQoKSkpIHsKICAgICAgICAgaWYgKCFpc05vZGVSZW5k
ZXJlZChub2RlKSAmJiAhaXNUYWJsZVN0cnVjdHVyZU5vZGUobm9kZSkpCiAgICAgICAgICAgICB1
bnJlbmRlcmVkLmFwcGVuZChub2RlKTsKICAgICB9CkBAIC00MjcsMTQgKzM3NywxMyBAQAogICAg
ICAgICByZW1vdmVOb2RlKGl0LmN1cnJlbnQoKSk7CiB9CiAKLWludCBSZXBsYWNlbWVudEZyYWdt
ZW50Ojpjb3VudFJlbmRlcmVkQmxvY2tzKE5vZGUgKmhvbGRlcikKK2ludCBSZXBsYWNlbWVudEZy
YWdtZW50OjpyZW5kZXJlZEJsb2NrcygpCiB7Ci0gICAgaWYgKCFob2xkZXIpCi0gICAgICAgIHJl
dHVybiAwOworICAgIEFTU0VSVChtX2hvbGRlciAmJiBtX2hvbGRlci0+aW5Eb2N1bWVudCgpKTsK
ICAgICAKICAgICBpbnQgY291bnQgPSAwOwogICAgIE5vZGUgKnByZXYgPSAwOwotICAgIGZvciAo
Tm9kZSAqbm9kZSA9IGhvbGRlci0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZShob2xkZXIpKSB7CisgICAgZm9yIChOb2RlICpub2RlID0gbV9ob2xkZXIt
PmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUobV9ob2xk
ZXIuZ2V0KCkpKSB7CiAgICAgICAgIGlmIChub2RlLT5pc0Jsb2NrRmxvdygpKSB7CiAgICAgICAg
ICAgICBpZiAoIXByZXYpIHsKICAgICAgICAgICAgICAgICBjb3VudCsrOwpAQCAtNDU3LDcgKzQw
Niw3IEBACiAgICAgLy8gU2luY2Ugc3R5bGUgaW5mb3JtYXRpb24gaGFzIGJlZW4gY29tcHV0ZWQg
YW5kIGNhY2hlZCBhd2F5IGluCiAgICAgLy8gY29tcHV0ZVN0eWxlc1VzaW5nVGVzdFJlbmRlcmlu
ZygpLCB0aGVzZSBzdHlsZSBub2RlcyBjYW4gYmUgcmVtb3ZlZCwgc2luY2UKICAgICAvLyB0aGUg
Y29ycmVjdCBzdHlsZXMgd2lsbCBiZSBhZGRlZCBiYWNrIGluIGZpeHVwTm9kZVN0eWxlcygpLgot
ICAgIE5vZGUgKm5vZGUgPSBtX2ZyYWdtZW50LT5maXJzdENoaWxkKCk7CisgICAgTm9kZSAqbm9k
ZSA9IG1faG9sZGVyLT5maXJzdENoaWxkKCk7CiAgICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICAg
Tm9kZSAqbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKTsKICAgICAgICAgLy8gVGhpcyBs
aXN0IG9mIHRhZ3MgY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIGNvbnRlbnQKQEAgLTQ5OSw3ICs0
NDgsNyBAQAogCiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQoRG9jdW1lbnQgKmRvY3VtZW50LCBEb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudCwgYm9vbCBz
ZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSkgCiAg
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCksIAotICAgICAgbV9mcmFnbWVudChk
b2N1bWVudCwgZnJhZ21lbnQsIG1hdGNoU3R5bGUpLAorICAgICAgbV9kb2N1bWVudEZyYWdtZW50
KGZyYWdtZW50KSwKICAgICAgIG1fc2VsZWN0UmVwbGFjZW1lbnQoc2VsZWN0UmVwbGFjZW1lbnQp
LCAKICAgICAgIG1fc21hcnRSZXBsYWNlKHNtYXJ0UmVwbGFjZSksCiAgICAgICBtX21hdGNoU3R5
bGUobWF0Y2hTdHlsZSkKQEAgLTUxMiw2ICs0NjEsOCBAQAogCiB2b2lkIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpkb0FwcGx5KCkKIHsKKyAgICBSZXBsYWNlbWVudEZyYWdtZW50IGZyYWdtZW50
KGRvY3VtZW50KCksIG1fZG9jdW1lbnRGcmFnbWVudC5nZXQoKSwgbV9tYXRjaFN0eWxlKTsKKwog
ICAgIC8vIGNvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLCBw
cmlvciB0byBkZWxldGluZyB0aGUgc2VsZWN0aW9uCiAgICAgU2VsZWN0aW9uIHNlbGVjdGlvbiA9
IGVuZGluZ1NlbGVjdGlvbigpOwogICAgIEFTU0VSVChzZWxlY3Rpb24uaXNDYXJldE9yUmFuZ2Uo
KSk7CkBAIC01MzYsMTQgKzQ4NywxNCBAQAogICAgICAgICBtZXJnZVN0YXJ0ID0gZmFsc2U7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gbWVyZ2UgaWYgY3VycmVudCBzZWxlY3Rpb24gc3RhcnRz
IGluc2lkZSBhIHBhcmFncmFwaCwgb3IgdGhlcmUgaXMgb25seSBvbmUgYmxvY2sgYW5kIG5vIGlu
dGVyY2hhbmdlIG5ld2xpbmUgdG8gYWRkCi0gICAgICAgIG1lcmdlU3RhcnQgPSAhbV9mcmFnbWVu
dC5oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdFN0YXJ0KCkgJiYgCi0gICAgICAgICAgICAoIWlzU3Rh
cnRPZlBhcmFncmFwaCh2aXNpYmxlU3RhcnQpIHx8ICghbV9mcmFnbWVudC5oYXNJbnRlcmNoYW5n
ZU5ld2xpbmVBdEVuZCgpICYmICFtX2ZyYWdtZW50Lmhhc01vcmVUaGFuT25lQmxvY2soKSkpOwor
ICAgICAgICBtZXJnZVN0YXJ0ID0gIWZyYWdtZW50Lmhhc0ludGVyY2hhbmdlTmV3bGluZUF0U3Rh
cnQoKSAmJiAKKyAgICAgICAgICAgICghaXNTdGFydE9mUGFyYWdyYXBoKHZpc2libGVTdGFydCkg
fHwgKCFmcmFnbWVudC5oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdEVuZCgpICYmICFmcmFnbWVudC5o
YXNNb3JlVGhhbk9uZUJsb2NrKCkpKTsKICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgaXMgYSB3
b3JrYXJvdW5kIGZvciB0aGlzIGJ1ZzoKICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzQwMTM2
NDI+IENvcGllZCBxdW90ZWQgd29yZCBkb2VzIG5vdCBwYXN0ZSBhcyBhIHF1b3RlIGlmIHBhc3Rl
ZCBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiAgICAgICAgIC8vIFdlIG5lZWQgbW9yZSBwb3dlcmZ1
bCBsb2dpYyBpbiB0aGlzIHdob2xlIG1lcmdlU3RhcnQgY29kZSBmb3IgdGhpcyBjYXNlIHRvIGNv
bWUgb3V0IHJpZ2h0IHdpdGhvdXQKICAgICAgICAgLy8gYnJlYWtpbmcgb3RoZXIgY2FzZXMuCi0g
ICAgICAgIGlmIChpc1N0YXJ0T2ZQYXJhZ3JhcGgodmlzaWJsZVN0YXJ0KSAmJiBpc01haWxCbG9j
a3F1b3RlKG1fZnJhZ21lbnQuZmlyc3RDaGlsZCgpKSkKKyAgICAgICAgaWYgKGlzU3RhcnRPZlBh
cmFncmFwaCh2aXNpYmxlU3RhcnQpICYmIGlzTWFpbEJsb2NrcXVvdGUoZnJhZ21lbnQuZmlyc3RD
aGlsZCgpKSkKICAgICAgICAgICAgIG1lcmdlU3RhcnQgPSBmYWxzZTsKICAgICAgICAgCiAgICAg
ICAgIC8vIHByZXZlbnQgZmlyc3QgbGlzdCBpdGVtIGZyb20gZ2V0dGluZyBtZXJnZWQgaW50byB0
YXJnZXQsIHRoZXJlYnkgcHVsbGVkIG91dCBvZiBsaXN0CkBAIC01NTIsNyArNTAzLDcgQEAKICAg
ICAgICAgLy8gYXNzdW1lIHRoYXQgdGhlIG1lcmdlU3RhcnROb2RlKCkgY29udGFpbnMgdGhlIGZp
cnN0IHZpc2libGUgY29udGVudCB0byBwYXN0ZS4KICAgICAgICAgLy8gQW55IGJldHRlciBpZGVh
cz8KICAgICAgICAgaWYgKG1lcmdlU3RhcnQpIHsKLSAgICAgICAgICAgIGZvciAoTm9kZSAqbiA9
IG1fZnJhZ21lbnQubWVyZ2VTdGFydE5vZGUoKTsgbjsgbiA9IG4tPnBhcmVudE5vZGUoKSkgewor
ICAgICAgICAgICAgZm9yIChOb2RlICpuID0gZnJhZ21lbnQubWVyZ2VTdGFydE5vZGUoKTsgbjsg
biA9IG4tPnBhcmVudE5vZGUoKSkgewogICAgICAgICAgICAgICAgIGlmIChpc0xpc3RFbGVtZW50
KG4pKSB7CiAgICAgICAgICAgICAgICAgICAgIG1lcmdlU3RhcnQgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC01NjMsMTkgKzUxNCwxOSBAQAogICAgIAogICAgIC8vIGRl
Y2lkZSB3aGV0aGVyIHRvIGxhdGVyIGFwcGVuZCBub2RlcyB0byB0aGUgZW5kCiAgICAgTm9kZSAq
YmV5b25kRW5kTm9kZSA9IDA7Ci0gICAgaWYgKCFpc0VuZE9mUGFyYWdyYXBoKHZpc2libGVFbmQp
ICYmICFtX2ZyYWdtZW50Lmhhc0ludGVyY2hhbmdlTmV3bGluZUF0RW5kKCkgJiYKLSAgICAgICAo
c3RhcnRCbG9jayAhPSBlbmRCbG9jayB8fCBtX2ZyYWdtZW50Lmhhc01vcmVUaGFuT25lQmxvY2so
KSkpCisgICAgaWYgKCFpc0VuZE9mUGFyYWdyYXBoKHZpc2libGVFbmQpICYmICFmcmFnbWVudC5o
YXNJbnRlcmNoYW5nZU5ld2xpbmVBdEVuZCgpICYmCisgICAgICAgKHN0YXJ0QmxvY2sgIT0gZW5k
QmxvY2sgfHwgZnJhZ21lbnQuaGFzTW9yZVRoYW5PbmVCbG9jaygpKSkKICAgICAgICAgYmV5b25k
RW5kTm9kZSA9IHNlbGVjdGlvbi5lbmQoKS5kb3duc3RyZWFtKCkubm9kZSgpOwogCiAgICAgUG9z
aXRpb24gc3RhcnRQb3MgPSBzZWxlY3Rpb24uc3RhcnQoKTsKICAgICAKICAgICAvLyBkZWxldGUg
dGhlIGN1cnJlbnQgcmFuZ2Ugc2VsZWN0aW9uLCBvciBpbnNlcnQgcGFyYWdyYXBoIGZvciBjYXJl
dCBzZWxlY3Rpb24sIGFzIG5lZWRlZAogICAgIGlmIChzZWxlY3Rpb24uaXNSYW5nZSgpKSB7Ci0g
ICAgICAgIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9ICEobV9mcmFnbWVudC5oYXNJbnRl
cmNoYW5nZU5ld2xpbmVBdFN0YXJ0KCkgfHwgbV9mcmFnbWVudC5oYXNJbnRlcmNoYW5nZU5ld2xp
bmVBdEVuZCgpIHx8IG1fZnJhZ21lbnQuaGFzTW9yZVRoYW5PbmVCbG9jaygpKTsKKyAgICAgICAg
Ym9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gIShmcmFnbWVudC5oYXNJbnRlcmNoYW5nZU5l
d2xpbmVBdFN0YXJ0KCkgfHwgZnJhZ21lbnQuaGFzSW50ZXJjaGFuZ2VOZXdsaW5lQXRFbmQoKSB8
fCBmcmFnbWVudC5oYXNNb3JlVGhhbk9uZUJsb2NrKCkpOwogICAgICAgICBkZWxldGVTZWxlY3Rp
b24oZmFsc2UsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpOwogICAgICAgICB1cGRhdGVMYXlvdXQo
KTsKICAgICAgICAgdmlzaWJsZVN0YXJ0ID0gVmlzaWJsZVBvc2l0aW9uKGVuZGluZ1NlbGVjdGlv
bigpLnN0YXJ0KCksIFZQX0RFRkFVTFRfQUZGSU5JVFkpOwotICAgICAgICBpZiAobV9mcmFnbWVu
dC5oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdFN0YXJ0KCkpIHsKKyAgICAgICAgaWYgKGZyYWdtZW50
Lmhhc0ludGVyY2hhbmdlTmV3bGluZUF0U3RhcnQoKSkgewogICAgICAgICAgICAgaWYgKGlzRW5k
T2ZQYXJhZ3JhcGgodmlzaWJsZVN0YXJ0KSAmJiAhaXNTdGFydE9mUGFyYWdyYXBoKHZpc2libGVT
dGFydCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWlzRW5kT2ZEb2N1bWVudCh2aXNpYmxlU3Rh
cnQpKQogICAgICAgICAgICAgICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24odmlzaWJsZVN0YXJ0
Lm5leHQoKSk7CkBAIC01ODgsNyArNTM5LDcgQEAKICAgICB9IAogICAgIGVsc2UgewogICAgICAg
ICBBU1NFUlQoc2VsZWN0aW9uLmlzQ2FyZXQoKSk7Ci0gICAgICAgIGlmIChtX2ZyYWdtZW50Lmhh
c0ludGVyY2hhbmdlTmV3bGluZUF0U3RhcnQoKSkgeworICAgICAgICBpZiAoZnJhZ21lbnQuaGFz
SW50ZXJjaGFuZ2VOZXdsaW5lQXRTdGFydCgpKSB7CiAgICAgICAgICAgICBpZiAoaXNFbmRPZlBh
cmFncmFwaCh2aXNpYmxlU3RhcnQpICYmICFpc1N0YXJ0T2ZQYXJhZ3JhcGgodmlzaWJsZVN0YXJ0
KSkgewogICAgICAgICAgICAgICAgIGlmICghaXNFbmRPZkRvY3VtZW50KHZpc2libGVTdGFydCkp
CiAgICAgICAgICAgICAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNpYmxlU3RhcnQubmV4
dCgpKTsKQEAgLTU5Nyw3ICs1NDgsNyBAQAogICAgICAgICAgICAgICAgIHNldEVuZGluZ1NlbGVj
dGlvbihWaXNpYmxlUG9zaXRpb24oZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKSwgVlBfREVGQVVM
VF9BRkZJTklUWSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICghbV9m
cmFnbWVudC5oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdEVuZCgpICYmIG1fZnJhZ21lbnQuaGFzTW9y
ZVRoYW5PbmVCbG9jaygpICYmIAorICAgICAgICBpZiAoIWZyYWdtZW50Lmhhc0ludGVyY2hhbmdl
TmV3bGluZUF0RW5kKCkgJiYgZnJhZ21lbnQuaGFzTW9yZVRoYW5PbmVCbG9jaygpICYmIAogICAg
ICAgICAgICAgIXN0YXJ0QXRCbG9ja0JvdW5kYXJ5ICYmICFpc0VuZE9mUGFyYWdyYXBoKHZpc2li
bGVFbmQpKSB7CiAgICAgICAgICAgICAvLyBUaGUgc3RhcnQgYW5kIHRoZSBlbmQgbmVlZCB0byB3
aW5kIHVwIGluIHNlcGFyYXRlIGJsb2Nrcy4KICAgICAgICAgICAgIC8vIEluc2VydCBhIHBhcmFn
cmFwaCBzZXBhcmF0b3IgdG8gbWFrZSB0aGF0IGhhcHBlbi4KQEAgLTYyNCw3ICs1NzUsNyBAQAog
ICAgIHNldFR5cGluZ1N0eWxlKDApOyAgICAKICAgICAKICAgICAvLyBkb25lIGlmIHRoZXJlIGlz
IG5vdGhpbmcgdG8gYWRkCi0gICAgaWYgKCFtX2ZyYWdtZW50LmZpcnN0Q2hpbGQoKSkKKyAgICBp
ZiAoIWZyYWdtZW50LmZpcnN0Q2hpbGQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8v
IGNoZWNrIGZvciBhIGxpbmUgcGxhY2Vob2xkZXIsIGFuZCBzdG9yZSBpdCBhd2F5IGZvciBwb3Nz
aWJsZSByZW1vdmFsIGxhdGVyLgpAQCAtNjM3LDcgKzU4OCw3IEBACiAgICAgICAgIC8vIG5vdyBh
ICJzZWNvbmQgZGVlcGVzdCBwb3NpdGlvbiIKICAgICAgICAgZG93bnN0cmVhbSA9IHBvc2l0aW9u
QXZvaWRpbmdTcGVjaWFsRWxlbWVudEJvdW5kYXJ5KGRvd25zdHJlYW0pOwogICAgICAgICBpZiAo
ZG93bnN0cmVhbS5ub2RlKCktPmhhc1RhZ05hbWUoYnJUYWcpICYmIGRvd25zdHJlYW0ub2Zmc2V0
KCkgPT0gMCAmJiAKLSAgICAgICAgICAgIG1fZnJhZ21lbnQuaGFzSW50ZXJjaGFuZ2VOZXdsaW5l
QXRFbmQoKSAmJgorICAgICAgICAgICAgZnJhZ21lbnQuaGFzSW50ZXJjaGFuZ2VOZXdsaW5lQXRF
bmQoKSAmJgogICAgICAgICAgICAgaXNTdGFydE9mTGluZShWaXNpYmxlUG9zaXRpb24oZG93bnN0
cmVhbSwgVlBfREVGQVVMVF9BRkZJTklUWSkpKQogICAgICAgICAgICAgbGluZVBsYWNlaG9sZGVy
ID0gZG93bnN0cmVhbS5ub2RlKCk7CiAgICAgfQpAQCAtNjc1LDEyICs2MjYsMTIgQEAKIAogICAg
IC8vIHN0ZXAgMTogbWVyZ2UgY29udGVudCBpbnRvIHRoZSBzdGFydCBibG9jawogICAgIGlmICht
ZXJnZVN0YXJ0KSB7Ci0gICAgICAgIE5vZGUgKnJlZk5vZGUgPSBtX2ZyYWdtZW50Lm1lcmdlU3Rh
cnROb2RlKCk7CisgICAgICAgIE5vZGUgKnJlZk5vZGUgPSBmcmFnbWVudC5tZXJnZVN0YXJ0Tm9k
ZSgpOwogICAgICAgICBpZiAocmVmTm9kZSkgewogICAgICAgICAgICAgTm9kZSAqcGFyZW50ID0g
cmVmTm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgTm9kZSAqbm9kZSA9IHJlZk5vZGUt
Pm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICBpbnNlcnROb2RlQXRBbmRVcGRhdGVOb2Rlc0lu
c2VydGVkKHJlZk5vZGUsIHN0YXJ0UG9zLm5vZGUoKSwgc3RhcnRQb3Mub2Zmc2V0KCkpOwotICAg
ICAgICAgICAgd2hpbGUgKG5vZGUgJiYgIWlzUHJvYmFibHlCbG9jayhub2RlKSkgeworICAgICAg
ICAgICAgd2hpbGUgKG5vZGUgJiYgIW5vZGUtPmlzQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAg
ICAgICBOb2RlICpuZXh0ID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgICAgICAgICBp
bnNlcnROb2RlQWZ0ZXJBbmRVcGRhdGVOb2Rlc0luc2VydGVkKG5vZGUsIHJlZk5vZGUpOwogICAg
ICAgICAgICAgICAgIHJlZk5vZGUgPSBub2RlOwpAQCAtNzAzLDE4ICs2NTQsMTcgQEAKICAgICB9
CiAgICAgCiAgICAgLy8gc3RlcCAyIDogbWVyZ2UgZXZlcnl0aGluZyByZW1haW5pbmcgaW4gdGhl
IGZyYWdtZW50Ci0gICAgaWYgKG1fZnJhZ21lbnQuZmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIE5v
ZGUgKnJlZk5vZGUgPSBtX2ZyYWdtZW50LmZpcnN0Q2hpbGQoKTsKKyAgICBpZiAoZnJhZ21lbnQu
Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgIE5vZGUgKnJlZk5vZGUgPSBmcmFnbWVudC5maXJzdENo
aWxkKCk7CiAgICAgICAgIE5vZGUgKm5vZGUgPSByZWZOb2RlID8gcmVmTm9kZS0+bmV4dFNpYmxp
bmcoKSA6IDA7CiAgICAgICAgIE5vZGUgKmluc2VydGlvbkJsb2NrID0gaW5zZXJ0aW9uUG9zLm5v
ZGUoKS0+ZW5jbG9zaW5nQmxvY2tGbG93RWxlbWVudCgpOwogICAgICAgICBib29sIGluc2VydGlv
bkJsb2NrSXNSb290ID0gaW5zZXJ0aW9uQmxvY2sgPT0gaW5zZXJ0aW9uQmxvY2stPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3MoaW5zZXJ0
aW9uUG9zLCBET1dOU1RSRUFNKTsKLSAgICAgICAgaWYgKCFpbnNlcnRpb25CbG9ja0lzUm9vdCAm
JiBpc1Byb2JhYmx5QmxvY2socmVmTm9kZSkgJiYgaXNTdGFydE9mQmxvY2sodmlzaWJsZVBvcykp
CisgICAgICAgIGlmICghaW5zZXJ0aW9uQmxvY2tJc1Jvb3QgJiYgcmVmTm9kZS0+aXNCbG9ja0Zs
b3coKSAmJiBpc1N0YXJ0T2ZCbG9jayh2aXNpYmxlUG9zKSkKICAgICAgICAgICAgIGluc2VydE5v
ZGVCZWZvcmVBbmRVcGRhdGVOb2Rlc0luc2VydGVkKHJlZk5vZGUsIGluc2VydGlvbkJsb2NrKTsK
LSAgICAgICAgZWxzZSBpZiAoIWluc2VydGlvbkJsb2NrSXNSb290ICYmIGlzUHJvYmFibHlCbG9j
ayhyZWZOb2RlKSAmJiBpc0VuZE9mQmxvY2sodmlzaWJsZVBvcykpIHsKKyAgICAgICAgZWxzZSBp
ZiAoIWluc2VydGlvbkJsb2NrSXNSb290ICYmIHJlZk5vZGUtPmlzQmxvY2tGbG93KCkgJiYgaXNF
bmRPZkJsb2NrKHZpc2libGVQb3MpKSB7CiAgICAgICAgICAgICBpbnNlcnROb2RlQWZ0ZXJBbmRV
cGRhdGVOb2Rlc0luc2VydGVkKHJlZk5vZGUsIGluc2VydGlvbkJsb2NrKTsKLSAgICAgICAgLy8g
SW5zZXJ0IHRoZSByZXN0IG9mIHRoZSBmcmFnbWVudCBhdCB0aGUgTkVYVCB2aXNpYmxlIHBvc2l0
aW9uIE9OTFkgSUYgcGFydCBvZiB0aGUgZnJhZ21lbnQgd2FzIGFscmVhZHkgbWVyZ2VkIEFORCAh
aXNQcm9iYWJseUJsb2NrCi0gICAgICAgIH0gZWxzZSBpZiAobV9sYXN0Tm9kZUluc2VydGVkICYm
ICFpc1Byb2JhYmx5QmxvY2socmVmTm9kZSkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChtX2xhc3RO
b2RlSW5zZXJ0ZWQgJiYgIXJlZk5vZGUtPmlzQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAgIFBv
c2l0aW9uIHBvcyA9IHZpc2libGVQb3MubmV4dCgpLmRlZXBFcXVpdmFsZW50KCkuZG93bnN0cmVh
bSgpOwogICAgICAgICAgICAgaW5zZXJ0Tm9kZUF0QW5kVXBkYXRlTm9kZXNJbnNlcnRlZChyZWZO
b2RlLCBwb3Mubm9kZSgpLCBwb3Mub2Zmc2V0KCkpOwogICAgICAgICB9IGVsc2UgewpAQCAtNzY4
LDcgKzcxOCw3IEBACiAgICAgUG9zaXRpb24gbGFzdFBvc2l0aW9uVG9TZWxlY3Q7CiAKICAgICAv
LyBzdGVwIDQgOiBoYW5kbGUgdHJhaWxpbmcgbmV3bGluZQotICAgIGlmIChtX2ZyYWdtZW50Lmhh
c0ludGVyY2hhbmdlTmV3bGluZUF0RW5kKCkpIHsKKyAgICBpZiAoZnJhZ21lbnQuaGFzSW50ZXJj
aGFuZ2VOZXdsaW5lQXRFbmQoKSkgewogICAgICAgICByZW1vdmVMaW5lUGxhY2Vob2xkZXJJZk5l
ZWRlZChsaW5lUGxhY2Vob2xkZXIpOwogCiAgICAgICAgIGlmICghbV9sYXN0Tm9kZUluc2VydGVk
KSB7CkBAIC03NzgsNyArNzI4LDcgQEAKICAgICAgICAgICAgIGJvb2wgaW5zZXJ0UGFyYWdyYXBo
ID0gZmFsc2U7CiAgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gcG9zKGluc2VydGlvblBvcywg
VlBfREVGQVVMVF9BRkZJTklUWSk7CiAKLSAgICAgICAgICAgIGlmIChzdGFydEJsb2NrID09IGVu
ZEJsb2NrICYmICFpc1Byb2JhYmx5QmxvY2sobV9sYXN0VG9wTm9kZUluc2VydGVkLmdldCgpKSkg
eworICAgICAgICAgICAgaWYgKHN0YXJ0QmxvY2sgPT0gZW5kQmxvY2sgJiYgIW1fbGFzdFRvcE5v
ZGVJbnNlcnRlZC5nZXQoKS0+aXNCbG9ja0Zsb3coKSkgewogICAgICAgICAgICAgICAgIGluc2Vy
dFBhcmFncmFwaCA9IHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IC8vIEhhbmRsZSBlbmQtb2YtZG9jdW1lbnQgY2FzZS4KQEAgLTg0MSw3ICs3OTEsNyBAQAogICAg
IH0KICAgICAKICAgICBpZiAoIW1fbWF0Y2hTdHlsZSkKLSAgICAgICAgZml4dXBOb2RlU3R5bGVz
KG1fZnJhZ21lbnQuZGVzaXJlZFN0eWxlcygpKTsKKyAgICAgICAgZml4dXBOb2RlU3R5bGVzKGZy
YWdtZW50LmRlc2lyZWRTdHlsZXMoKSk7CiAgICAgY29tcGxldGVIVE1MUmVwbGFjZW1lbnQobGFz
dFBvc2l0aW9uVG9TZWxlY3QpOwogICAgIAogICAgIC8vIHN0ZXAgNSA6IG1vcCB1cApJbmRleDog
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgJKHJldmlzaW9uIDEzNDI2
KQorKysgV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU1LDcgKzU1LDcgQEAKIAogICAgIGVudW0gRUZyYWdtZW50VHlwZSB7IEVtcHR5
RnJhZ21lbnQsIFNpbmdsZVRleHROb2RlRnJhZ21lbnQsIFRyZWVGcmFnbWVudCB9OwogCi0gICAg
RG9jdW1lbnRGcmFnbWVudCAqcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnQuZ2V0KCk7
IH0KKyAgICBOb2RlKiByb290KCkgY29uc3QgeyByZXR1cm4gbV9ob2xkZXIuZ2V0KCk7IH0KICAg
ICBOb2RlICpmaXJzdENoaWxkKCkgY29uc3Q7CiAgICAgTm9kZSAqbGFzdENoaWxkKCkgY29uc3Q7
CiAKQEAgLTgwLDExICs4MCwxMCBAQAogICAgIHN0YXRpYyBib29sIGlzSW50ZXJjaGFuZ2VOZXds
aW5lTm9kZShjb25zdCBOb2RlICopOwogICAgIHN0YXRpYyBib29sIGlzSW50ZXJjaGFuZ2VDb252
ZXJ0ZWRTcGFjZVNwYW4oY29uc3QgTm9kZSAqKTsKIAotICAgIFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5nKCk7Ci0gICAgdm9pZCByZXN0b3JlVGVzdFJlbmRl
cmluZ05vZGVzVG9GcmFnbWVudChOb2RlICopOwotICAgIHZvaWQgY29tcHV0ZVN0eWxlc1VzaW5n
VGVzdFJlbmRlcmluZyhOb2RlICopOwotICAgIHZvaWQgcmVtb3ZlVW5yZW5kZXJlZE5vZGVzVXNp
bmdUZXN0UmVuZGVyaW5nKE5vZGUgKik7Ci0gICAgaW50IGNvdW50UmVuZGVyZWRCbG9ja3MoTm9k
ZSAqaG9sZGVyKTsKKyAgICB2b2lkIGluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZyhEb2N1
bWVudEZyYWdtZW50Kik7CisgICAgdm9pZCBjb21wdXRlQW5kU3RvcmVOb2RlU3R5bGVzKCk7Cisg
ICAgdm9pZCByZW1vdmVVbnJlbmRlcmVkTm9kZXMoKTsKKyAgICBpbnQgcmVuZGVyZWRCbG9ja3Mo
KTsKICAgICB2b2lkIHJlbW92ZVN0eWxlTm9kZXMoKTsKIAogICAgIC8vIEEgY291cGxlIHNpbXBs
ZSBET00gaGVscGVycwpAQCAtOTUsNyArOTQsNyBAQAogCiAgICAgRUZyYWdtZW50VHlwZSBtX3R5
cGU7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwotICAgIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBtX2ZyYWdtZW50OworICAgIFJlZlB0cjxOb2RlPiBtX2hvbGRlcjsKICAgICBE
ZXByZWNhdGVkVmFsdWVMaXN0PE5vZGVEZXNpcmVkU3R5bGU+IG1fc3R5bGVzOwogICAgIGJvb2wg
bV9tYXRjaFN0eWxlOwogICAgIGJvb2wgbV9oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdFN0YXJ0OwpA
QCAtMTI0LDcgKzEyMyw3IEBACiAgICAgdm9pZCByZW1vdmVMaW5lUGxhY2Vob2xkZXJJZk5lZWRl
ZChOb2RlICopOwogICAgIHZvaWQgcmVtb3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKE5vZGUqKTsK
IAotICAgIFJlcGxhY2VtZW50RnJhZ21lbnQgbV9mcmFnbWVudDsKKyAgICBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gbV9kb2N1bWVudEZyYWdtZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX2ZpcnN0
Tm9kZUluc2VydGVkOwogICAgIFJlZlB0cjxOb2RlPiBtX2xhc3ROb2RlSW5zZXJ0ZWQ7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbGFzdFRvcE5vZGVJbnNlcnRlZDsKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9kaXNwbGF5LWJsb2NrLW9uLXNwYW5zLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGlzcGxheS1ibG9jay1v
bi1zcGFucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZGlzcGxheS1ibG9jay1vbi1zcGFucy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDEgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGlu
Z0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDUgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0Tm9k
ZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0
ZXh0ID4gQiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0
ZXh0ID4gQiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBnaXZlbkFjdGlv
bjpXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4
dCA+IEIgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4
dCA+IEIgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyQ2FudmFzIGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0eDU0CisgICAgICAgIFJlbmRlclRleHQge1RF
WFR9IGF0ICgwLDApIHNpemUgMTk3eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMTk3OiAiVGhpcyBpcyBhIHRlc3RjYXNlIGZvciB0aGUgZml4IGZvciAiCisgICAgICAgIFJl
bmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAzNDN4MTggW2NvbG9yPSMwMDAwRUVdCisgICAg
ICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDE5NywwKSBzaXplIDM0M3gxOAorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDE5NywwKSB3aWR0aCAzNDM6ICJodHRwOi8vYnVnemlsbGEub3BlbmRh
cndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDQiCisgICAgICAgIFJlbmRlclRleHQge1RFWFR9
IGF0ICg1NDAsMCkgc2l6ZSA3NzJ4NTQKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTQwLDApIHdp
ZHRoIDg6ICIuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTQ4LDApIHdpZHRoIDIyNDogIlJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kIHVzZWQgdG8iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MTgpIHdpZHRoIDQzODogImd1ZXNzIHdoZXRoZXIgb3Igbm90IG5vZGVzIGluIHRoZSBmcmFnbWVu
dCB0byBiZSBwYXN0ZWQgd2VyZSBibG9ja3MuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDM4
LDE4KSB3aWR0aCAxNDc6ICJJdCBub3cga25vd3MgZm9yIHN1cmUuICIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNTg1LDE4KSB3aWR0aCA5MTogIkJlZm9yZSB0aGUgZml4LCIKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGggNjAzOiAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQgYmxl
dyBhd2F5IGNvbnRlbnQgb2YgdGhlIGRpdiBiZWxvdyBhZnRlciBjb3B5L3Bhc3RpbmcgaXQgb3Zl
ciBpdHNlbGYuIgorICAgICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw2Mikgc2l6ZSA3ODR4MiBb
Ym9yZGVyOiAoMXB4IGluc2V0ICMwMDAwMDApXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsNzIpIHNpemUgNzg0eDM2CisgICAgICAgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDc4NHgxOAorICAgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSAxMzd4
MTgKKyAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMTM3eDE4Cisg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEzNzogIlRoaXMgaXMgYSBwYXJh
Z3JhcGguIgorICAgICAgICBSZW5kZXJCbG9jayB7U1BBTn0gYXQgKDAsMTgpIHNpemUgNzg0eDE4
CisgICAgICAgICAgUmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAg
ICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMwOiAiVGhpcyIKKyAgICAgICAgICBSZW5kZXJJbmxp
bmUge0J9IGF0ICgwLDApIHNpemUgMTUyeDE4CisgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhU
fSBhdCAoMzAsMCkgc2l6ZSAxNTJ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMwLDAp
IHdpZHRoIDE1MjogIiBpcyBhbm90aGVyIHBhcmFncmFwaC4iCitjYXJldDogcG9zaXRpb24gNCBv
ZiBjaGlsZCAwIHtURVhUfSBvZiBjaGlsZCAwIHtCfSBvZiBjaGlsZCAyIHtTUEFOfSBvZiBjaGls
ZCA1IHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGlzcGxheS1ibG9jay1vbi1z
cGFucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9k
aXNwbGF5LWJsb2NrLW9uLXNwYW5zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZGlzcGxheS1ibG9jay1vbi1zcGFucy5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI3IEBACis8aGVhZD4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICBleHRlbmRTZWxlY3Rpb25Gb3J3
YXJkQnlMaW5lQ29tbWFuZCgpOworICAgIGV4dGVuZFNlbGVjdGlvbkZvcndhcmRCeVdvcmRDb21t
YW5kKCk7CisgICAgY29weUNvbW1hbmQoKTsKKyAgICBwYXN0ZUNvbW1hbmQoKTsKK30KKzwvc2Ny
aXB0PgorPHRpdGxlPlBhc3Rpbmcgc3BhbnMgd2l0aCBkaXNwbGF5OmJsb2NrPC90aXRsZT4gCis8
L2hlYWQ+IAorPGJvZHk+CisKK1RoaXMgaXMgYSB0ZXN0Y2FzZSBmb3IgdGhlIGZpeCBmb3IgPGEg
aHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03OTA0
Ij5odHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDQ8L2E+
LiAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQgdXNlZCB0byBndWVzcyB3aGV0aGVyIG9yIG5vdCBu
b2RlcyBpbiB0aGUgZnJhZ21lbnQgdG8gYmUgcGFzdGVkIHdlcmUgYmxvY2tzLiAgSXQgbm93IGtu
b3dzIGZvciBzdXJlLiAgQmVmb3JlIHRoZSBmaXgsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kIGJs
ZXcgYXdheSBjb250ZW50IG9mIHRoZSBkaXYgYmVsb3cgYWZ0ZXIgY29weS9wYXN0aW5nIGl0IG92
ZXIgaXRzZWxmLgorCis8aHI+CisKKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJ0ZXN0Ij4KKzxz
cGFuIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj48Yj5UaGlzIGlzIGEgcGFyYWdyYXBoLjwvYj48L3Nw
YW4+Cis8c3BhbiBzdHlsZT0iZGlzcGxheTpibG9jayI+PGI+VGhpcyBpcyBhbm90aGVyIHBhcmFn
cmFwaC48L2I+PC9zcGFuPgorPC9kaXY+CisKKzxzY3JpcHQ+cnVuRWRpdGluZ1Rlc3QoKTs8L3Nj
cmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="1914"
          type_id="1"
          status="+"
          setter="harrison"
    />
          </attachment>
      

    </bug>

</bugzilla>