<?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>40634</bug_id>
          
          <creation_ts>2010-06-15 12:45:12 -0700</creation_ts>
          <short_desc>write(SegementedSource, bool)&apos;s second bool is very confusing</short_desc>
          <delta_ts>2011-05-17 10:54:12 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>39259</dup_id>
          
          <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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238505</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 12:45:12 -0700</bug_when>
    <thetext>write(SegementedSource, bool)&apos;s second bool is very confusing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238506</commentid>
    <comment_count>1</comment_count>
      <attachid>58807</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 12:49:26 -0700</bug_when>
    <thetext>Created attachment 58807
One attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238507</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 12:50:48 -0700</bug_when>
    <thetext>It appears that after nearly 3 weeks of working with the DocumentParser (formerly Tokenizer) system I still don&apos;t understand how the &quot;appendData&quot; parameter of write() is supposed to work.  My guess is that the original authors of this code also don&apos;t understand what it really does.

The attached patch was an attempt to clarify it, but I&apos;m not sure it actually made things less confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238512</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 12:57:53 -0700</bug_when>
    <thetext>I think the confusing part comes mostly because write() is used for 4 things:

1.  Network Appends, write(source, true)
2.  document.write(), parser.forceSynchronous(); write(source, false) (sometime &apos;true&apos;!)
3.  Synchronous parsing, parser.forceSynchronous(); write(source, true) (sometime &apos;false&apos;!)
4.  Pumping the parser, write(&quot;&quot;, true) (sometime &apos;false&apos;!)

In the new HTML5 parser we have instead:
1.  write(source, true)
2.  write(source, false)
3.  write(source, false)
4.  pumpLexer(ForceSynchronous or AllowYield)

Network Appends should always be &quot;true&quot;
document.write() should always be &quot;false&quot;
synchronous parsing (like innerHTML or responseXML) should always create a new parser so it won&apos;t matter, but should probably always be &quot;false&quot;
pumping the parser should be a separate concept not requiring going through write()


Maybe a better way to fix this would be to add two new replacements for write():
writeFromScript(source)
appendFromNetwork(source)

And deploy those where possible, keeping write(source, bool) for the confusing cases for now.  Not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238514</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-15 13:02:27 -0700</bug_when>
    <thetext>I think it makes sense to have DocumentParser use two separate functions for this. In general it’s a good design principle to not have individual DocumentParser instances calling the public DocumentParser functions to drive themselves. For one thing, the functions are needlessly virtual. But generally it’s useful to distinguish external entry points from calls within the classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405161</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 10:54:12 -0700</bug_when>
    <thetext>We fixed this as part of the HTML parser re-write!

*** This bug has been marked as a duplicate of bug 39259 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58807</attachid>
            <date>2010-06-15 12:49:26 -0700</date>
            <delta_ts>2010-06-15 12:50:30 -0700</delta_ts>
            <desc>One attempt</desc>
            <filename>bug-40634-20100615124923.patch</filename>
            <type>text/plain</type>
            <size>19587</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWFmNTFkMTQ2MDBlZDJlMTMzM2UzYmFhYzQ3MTZjYTFhNDkxNzg0ZC4uZTE5ZWJhY2NmZmViMWZm
MDI2ZDYyMGRmZTE0NTlmYTBjNDNlN2I3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMC0wNi0xNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgd3JpdGUoU2VnZW1lbnRlZFNvdXJjZSwgYm9vbCkncyBzZWNv
bmQgYm9vbCBpcyB2ZXJ5IGNvbmZ1c2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDA2MzQKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d3JpdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRQYXJzZXI6Oik6CisgICAgICAg
ICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3Vt
ZW50UGFyc2VyOjp3cml0ZSk6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmg6Cisg
ICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZyk6CisgICAgICAgICogaHRtbC9I
VE1MNURvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQ
YXJzZXI6OnN5bmNocm9ub3VzTW9kZUZvcldyaXRlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MNURvY3VtZW50UGFyc2VyOjp3cml0ZSk6CisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpzY3JpcHRIYW5kbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6c2NyaXB0RXhlY3V0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50UGFyc2VyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBh
cnNlcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0c0lmUmVhZHkpOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnRQ
YXJzZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OmFkZERhdGEpOgorICAgICAgICAqIGxvYWRlci9GVFBE
aXJlY3RvcnlEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGVFBEaXJlY3RvcnlEb2N1
bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RlRQ
RGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OndyaXRlKToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VE
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVRva2VuaXplcjo6d3JpdGUpOgor
ICAgICAgICAqIGxvYWRlci9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRG9jdW1lbnRQYXJzZXI6OndyaXRlKToKKyAgICAgICAgKiBsb2FkZXIvUGx1Z2luRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnRQYXJzZXI6OndyaXRlKToK
KyAgICAgICAgKiBsb2FkZXIvU2lua0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNp
bmtEb2N1bWVudFBhcnNlcjo6d3JpdGUpOgorICAgICAgICAqIGxvYWRlci9UZXh0RG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFyc2VyOjp3cml0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCk6CisKIDIwMTAtMDYtMTUg
IFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDM2NmZiMGZhYjU5ZDVhNzM5NDRjMGZhMTlkYjZmNmE2YTUy
NmE3ZjYuLmJmZTQ1NGZlZTRhNDZjYTg3MTJlZTk2OTYxNjBkMmY2NGEzNTI2OTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTE5NjUsNyArMTk2NSw3IEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlKGNvbnN0IFNlZ21l
bnRlZFN0cmluZyYgdGV4dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpCiAgICAgICAgIHBhcnNl
ci0+c2V0Rm9yY2VTeW5jaHJvbm91cyh0cnVlKTsKICAgICB9CiAKLSAgICBtX3BhcnNlci0+d3Jp
dGUodGV4dCwgZmFsc2UpOworICAgIG1fcGFyc2VyLT53cml0ZSh0ZXh0LCBEb2N1bWVudFBhcnNl
cjo6U3luY2hyb25vdXNTY3JpcHRXcml0ZSk7CiAKICAgICBpZiAobV9wYXJzZXIgJiYgcGFyc2Vy
ICYmIG1fcGFyc2VyLT5hc0hUTUxEb2N1bWVudFBhcnNlcigpID09IHBhcnNlcikKICAgICAgICAg
cGFyc2VyLT5zZXRGb3JjZVN5bmNocm9ub3VzKHdhc0ZvcmNlZFN5bmNocm9ub3VzKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFBhcnNlci5oCmluZGV4IDNjMmEwOWI2MzExNjgyOTEyMzA5Y2IyMDk4YjllOTNiZDU3NjY0MmUu
LjIxZGNjZDFlZWRiYWFkNDc3MmVhMjhlZjJkNDQ5MWJkZWMxMDgyZDQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJz
ZXIuaApAQCAtMzQsMTEgKzM0LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgfkRvY3VtZW50UGFyc2VyKCkgeyB9CiAKLSAgICAgICAgLy8gU2Ny
aXB0IG91dHB1dCBtdXN0IGJlIHByZXBlbmRlZCwgd2hpbGUgbmV3IGRhdGEKLSAgICAgICAgLy8g
cmVjZWl2ZWQgZHVyaW5nIGV4ZWN1dGluZyBhIHNjcmlwdCBtdXN0IGJlIGFwcGVuZGVkLCBoZW5j
ZSB0aGUKLSAgICAgICAgLy8gZXh0cmEgYm9vbCB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJl
dHdlZW4gYm90aCBjYXNlcy4KLSAgICAgICAgLy8gZG9jdW1lbnQud3JpdGUoKSBhbHdheXMgdXNl
cyBmYWxzZSwgd2hpbGUgdGhlIGxvYWRlciB1c2VzIHRydWUuCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGlzRnJvbU5ldHdvcmspID0gMDsK
KyAgICAgICAgZW51bSBXcml0ZVR5cGUgeworICAgICAgICAgICAgTmV0d29ya0FwcGVuZCwKKyAg
ICAgICAgICAgIFN5bmNocm9ub3VzU2NyaXB0V3JpdGUsCisgICAgICAgIH07CisgICAgICAgIHZp
cnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKICAgICAgICAgdmlydHVhbCBib29s
IGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
dG9wUGFyc2luZygpIHsgbV9wYXJzZXJTdG9wcGVkID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IDk4N2U5YjE2ZmIzMzNhYTlhMjcxNzUxN2U4NGJmZWMwYzJiMDQ1NDEu
LmEwZGNiYTUyMWIxY2I5ZmFlMTBkNGU4NDBkNmU2OGU4MGYxODJlMTAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlci5jcHAKQEAgLTExOSw4ICsxMTksMTIgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNl
cjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNrKCkKICAgICB9CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCAvKmFwcGVuZERhdGEq
LykKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYg
cywgV3JpdGVUeXBlKQogeworICAgIC8vIFdlIHdvdWxkIGxpa2UgdG8gQVNTRVJUIHdyaXRlVHlw
ZSA9PSBOZXR3b3JrQXBwZW5kIHNpbmNlCisgICAgLy8gdGhpcyBjb2RlIGlzIG5vdCB3cml0dGVu
IHRvIHN1cHBvcnQgZG9jdW1lbnQud3JpdGUsIGhvd2V2ZXIKKyAgICAvLyBEb2N1bWVudDo6d3Jp
dGUoKSBpcyBjYWxsZWQgZnJvbSBYTUxIdHRwUmVxdWVzOjpyZXNwb25zZVhNTAorICAgIC8vIHdp
dGggU3luY2hyb25vdXNTY3JpcHRXcml0ZS4KICAgICBTdHJpbmcgcGFyc2VTdHJpbmcgPSBzLnRv
U3RyaW5nKCk7CiAKICAgICBpZiAobV9zYXdYU0xUcmFuc2Zvcm0gfHwgIW1fc2F3Rmlyc3RFbGVt
ZW50KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggYzk0M2E2NTk0ZWJiNDNmYWZkMDJjYzIz
MGUyZmU5Yjk0Nzc0OWQ4Yy4uY2I2ZTczN2YxYThhNWFmYjdmMGRjNzljZWEwY2MzYThiYjhjY2Vl
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCkBAIC03OSw3ICs3OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgZW51bSBFcnJvclR5cGUgeyB3YXJuaW5nLCBub25GYXRhbCwgZmF0
YWwgfTsKIAogICAgICAgICAvLyBmcm9tIERvY3VtZW50UGFyc2VyCi0gICAgICAgIHZpcnR1YWwg
dm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgV3JpdGVUeXBl
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFBh
cnNpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDJh
MWJhYzYwOTNkN2VkYWM5OGQxZWViMzFlOGVlZjc2ODhmNzVmYjQuLjZiNjE5YWViMDAyNjFiMDYy
YTdmNTVlNGQzZjQ3MjQ0MTMzM2IyYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcApAQCAtMTM3NSw3ICsxMzc1LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
cmVzdW1lUGFyc2luZygpCiAgICAgLy8gVGhlbiwgd3JpdGUgYW55IHBlbmRpbmcgZGF0YQogICAg
IFNlZ21lbnRlZFN0cmluZyByZXN0ID0gbV9wZW5kaW5nU3JjOwogICAgIG1fcGVuZGluZ1NyYy5j
bGVhcigpOwotICAgIHdyaXRlKHJlc3QsIGZhbHNlKTsKKyAgICB3cml0ZShyZXN0LCBOZXR3b3Jr
QXBwZW5kKTsKIAogICAgIC8vIEZpbmFsbHksIGlmIGZpbmlzaCgpIGhhcyBiZWVuIGNhbGxlZCBh
bmQgd3JpdGUoKSBkaWRuJ3QgcmVzdWx0CiAgICAgLy8gaW4gYW55IGZ1cnRoZXIgY2FsbGJhY2tz
IGJlaW5nIHF1ZXVlZCwgY2FsbCBlbmQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3Bw
CmluZGV4IDI5OWMzZDkyNzBhNDgyYWRiMDI1NGY3ZTkwZTg0NmZiZjdiMmYzODcuLjRhZTBmMGFm
Y2NmYWY2MmZiNjM1NGVlNzY2N2Q2NWFmNjhmNDlkZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVu
dFBhcnNlci5jcHAKQEAgLTI2OSwxNCArMjY5LDI0IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNl
cjo6ZGlkUHVtcExleGVyKCkKICNlbmRpZgogfQogCi12b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sIGlzRnJvbU5ldHdvcmsp
CisvLyBTeW5jaHJvbm91c01vZGUgYW5kIFdyaXRlVHlwZSBhcmUgbmVhcmx5IHRoZSBzYW1lLCBi
dXQgdG8ga2VlcCB0aGUgY2FsbHNpdGVzCisvLyBjbGVhciB3ZSB1c2Ugc2VwYXJhdGUgZW51bXMu
CitIVE1MNURvY3VtZW50UGFyc2VyOjpTeW5jaHJvbm91c01vZGUgSFRNTDVEb2N1bWVudFBhcnNl
cjo6c3luY2hyb25vdXNNb2RlRm9yV3JpdGVUeXBlKFdyaXRlVHlwZSB0eXBlKQoreworICAgIGlm
ICh0eXBlID09IFN5bmNocm9ub3VzU2NyaXB0V3JpdGUpCisgICAgICAgIHJldHVybiBGb3JjZVN5
bmNocm9ub3VzOworICAgIEFTU0VSVCh0eXBlID09IE5ldHdvcmtBcHBlbmQpOworICAgIHJldHVy
biBBbGxvd1lpZWxkOworfQorCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXcml0ZVR5cGUgd3JpdGVUeXBlKQogewogICAgIGlm
IChtX3BhcnNlclN0b3BwZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fd3JpdGVOZXN0aW5nTGV2ZWwpOwog
Ci0gICAgaWYgKGlzRnJvbU5ldHdvcmspIHsKKyAgICBpZiAod3JpdGVUeXBlID09IE5ldHdvcmtB
cHBlbmQpIHsKICAgICAgICAgbV9pbnB1dC5hcHBlbmRUb0VuZChzb3VyY2UpOwogICAgICAgICBp
ZiAobV9wcmVsb2FkU2Nhbm5lcikKICAgICAgICAgICAgIG1fcHJlbG9hZFNjYW5uZXItPmFwcGVu
ZFRvRW5kKHNvdXJjZSk7CkBAIC0yODcsMTAgKzI5NywxMiBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sIGlzRnJvbU5l
dHdvcgogICAgICAgICAgICAgLy8gbm90IHdvcnJ5LiAgV2UnbGwgY29uc3VtZSB0aGlzIGRhdGEg
aW4gYSBsZXNzLW5lc3RlZCB3cml0ZSgpLgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKHdyaXRlVHlwZSA9PSBT
eW5jaHJvbm91c1NjcmlwdFdyaXRlKTsKICAgICAgICAgbV9pbnB1dC5pbnNlcnRBdEN1cnJlbnRJ
bnNlcnRpb25Qb2ludChzb3VyY2UpOworICAgIH0KIAotICAgIHB1bXBMZXhlcklmUG9zc2libGUo
aXNGcm9tTmV0d29yayA/IEFsbG93WWllbGQgOiBGb3JjZVN5bmNocm9ub3VzKTsKKyAgICBwdW1w
TGV4ZXJJZlBvc3NpYmxlKHN5bmNocm9ub3VzTW9kZUZvcldyaXRlVHlwZSh3cml0ZVR5cGUpKTsK
ICAgICBlbmRJZkRlbGF5ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKaW5k
ZXggNDFhZWJjYjkyODIwYjcxZTQyMmIxZDJiMGMzMWRkODE1YWEyM2UyOC4uOGZjM2UzMzYwMWRi
OTA0YjgyNjhhODA4N2M5MDc2ZTU3NDk5MGRkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUw1RG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNl
ci5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIERvY3VtZW50UGFyc2VyCiAg
ICAgdmlydHVhbCB2b2lkIGJlZ2luKCk7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yayk7CisgICAgdmlydHVhbCB2b2lkIHdy
aXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIFdyaXRlVHlwZSk7CiAgICAgdmlydHVhbCB2b2lk
IGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKICAgICB2aXJ0dWFsIGludCBleGVj
dXRpbmdTY3JpcHQoKSBjb25zdDsKQEAgLTE3NSw2ICsxNzUsNyBAQCBwcml2YXRlOgogICAgICAg
ICBBbGxvd1lpZWxkLAogICAgICAgICBGb3JjZVN5bmNocm9ub3VzLAogICAgIH07CisgICAgU3lu
Y2hyb25vdXNNb2RlIHN5bmNocm9ub3VzTW9kZUZvcldyaXRlVHlwZShXcml0ZVR5cGUpOwogICAg
IHZvaWQgcHVtcExleGVyKFN5bmNocm9ub3VzTW9kZSk7CiAgICAgdm9pZCBwdW1wTGV4ZXJJZlBv
c3NpYmxlKFN5bmNocm9ub3VzTW9kZSk7CiAgICAgdm9pZCBjb250aW51ZU5leHRDaHVua1RpbWVy
RmlyZWQoVGltZXI8SFRNTDVEb2N1bWVudFBhcnNlcj4qKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKaW5kZXggYzVlNjJiNjcwODAxYmM0MTJiNTUwZTcyNGQyZjdkZTJkZDFmMDQwMS4u
NTZiYzUyZTBiNTc1ZGRlZjZjZGVmZTczMTdlOGM3ZTAzMzE2OTBlZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKQEAgLTUyNiw3ICs1MjYsNyBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6
OlN0YXRlIEhUTUxEb2N1bWVudFBhcnNlcjo6c2NyaXB0SGFuZGxlcihTdGF0ZSBzdGF0ZSkKICAg
ICAgICAgICAgICAgICBtX3BlbmRpbmdTcmMucHJlcGVuZChwcmVwZW5kaW5nU3JjKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fc3RhdGUgPSBzdGF0ZTsKLSAgICAgICAgICAgIHdy
aXRlKHByZXBlbmRpbmdTcmMsIGZhbHNlKTsKKyAgICAgICAgICAgIHdyaXRlKHByZXBlbmRpbmdT
cmMsIFN5bmNocm9ub3VzU2NyaXB0V3JpdGUpOwogICAgICAgICAgICAgc3RhdGUgPSBtX3N0YXRl
OwogICAgICAgICB9CiAgICAgfQpAQCAtNTkyLDcgKzU5Miw3IEBAIEhUTUxEb2N1bWVudFBhcnNl
cjo6U3RhdGUgSFRNTERvY3VtZW50UGFyc2VyOjpzY3JpcHRFeGVjdXRpb24oY29uc3QgU2NyaXB0
U291cmNlCiAjZW5kaWYKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fc3RhdGUgPSBz
dGF0ZTsKLSAgICAgICAgICAgIHdyaXRlKHByZXBlbmRpbmdTcmMsIGZhbHNlKTsKKyAgICAgICAg
ICAgIHdyaXRlKHByZXBlbmRpbmdTcmMsIFN5bmNocm9ub3VzU2NyaXB0V3JpdGUpOwogICAgICAg
ICAgICAgc3RhdGUgPSBtX3N0YXRlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTcyNiw3ICsxNzI2
LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFdyaXRlSFRNTCgpCiAgICAgI2VuZGlm
CiB9CiAKLXZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJp
bmcmIHN0ciwgYm9vbCBhcHBlbmREYXRhKQordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OndyaXRl
KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc3RyLCBXcml0ZVR5cGUgd3JpdGVUeXBlKQogewogICAg
IGlmICghbV9idWZmZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTE3MzgsNiArMTczOCw3IEBAIHZv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHN0ciwg
Ym9vbCBhcHBlbmREYXRhKQogICAgIGlmIChtX2V4ZWN1dGluZ1NjcmlwdCkKICAgICAgICAgc291
cmNlLnNldEV4Y2x1ZGVMaW5lTnVtYmVycygpOwogCisgICAgYm9vbCBhcHBlbmREYXRhID0gKHdy
aXRlVHlwZSA9PSBOZXR3b3JrQXBwZW5kKTsKICAgICBpZiAoKG1fZXhlY3V0aW5nU2NyaXB0ICYm
IGFwcGVuZERhdGEpIHx8ICFtX3BlbmRpbmdTY3JpcHRzLmlzRW1wdHkoKSkgewogICAgICAgICAv
LyBkb24ndCBwYXJzZTsgd2Ugd2lsbCBkbyB0aGlzIGxhdGVyCiAgICAgICAgIGlmIChtX2N1cnJl
bnRQcmVwZW5kaW5nU3JjKQpAQCAtMTgyMSw3ICsxODIyLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQ
YXJzZXI6OnRpbWVyRmlyZWQoVGltZXI8SFRNTERvY3VtZW50UGFyc2VyPiopCiAgICAgfQogCiAg
ICAgLy8gSW52b2tlIHdyaXRlKCkgYXMgdGhvdWdoIG1vcmUgZGF0YSBjYW1lIGluLiBUaGlzIG1p
Z2h0IGNhdXNlIHVzIHRvIGdldCBkZWxldGVkLgotICAgIHdyaXRlKFNlZ21lbnRlZFN0cmluZygp
LCB0cnVlKTsKKyAgICB3cml0ZShTZWdtZW50ZWRTdHJpbmcoKSwgTmV0d29ya0FwcGVuZCk7CiB9
CiAKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjplbmQoKQpAQCAtMTg3Nyw3ICsxODc4LDcgQEAg
dm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fc3RhdGUuc2V0SW5D
b21tZW50KGZhbHNlKTsKICAgICAgICAgbV9zdGF0ZS5zZXRJblNlcnZlcihmYWxzZSk7CiAgICAg
ICAgIGlmICghZm9vZC5pc0VtcHR5KCkpCi0gICAgICAgICAgICB3cml0ZShmb29kLCB0cnVlKTsK
KyAgICAgICAgICAgIHdyaXRlKGZvb2QsIE5ldHdvcmtBcHBlbmQpOwogICAgIH0KICAgICAvLyB0
aGlzIGluZGljYXRlcyB3ZSB3aWxsIG5vdCByZWNlaXZlIGFueSBtb3JlIGRhdGEuLi4gYnV0IGlm
IHdlIGFyZSB3YWl0aW5nIG9uCiAgICAgLy8gYW4gZXh0ZXJuYWwgc2NyaXB0IHRvIGxvYWQsIHdl
IGNhbid0IGZpbmlzaCBwYXJzaW5nIHVudGlsIHRoYXQgaXMgZG9uZQpAQCAtMjA1Myw3ICsyMDU0
LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNJZlJl
YWR5KCkKICAgICAgICAgaWYgKCFtX3JlcXVlc3RpbmdTY3JpcHQpIHsKICAgICAgICAgICAgIFNl
Z21lbnRlZFN0cmluZyByZXN0ID0gbV9wZW5kaW5nU3JjOwogICAgICAgICAgICAgbV9wZW5kaW5n
U3JjLmNsZWFyKCk7Ci0gICAgICAgICAgICB3cml0ZShyZXN0LCBmYWxzZSk7CisgICAgICAgICAg
ICB3cml0ZShyZXN0LCBTeW5jaHJvbm91c1NjcmlwdFdyaXRlKTsgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIE5ldHdvcmtBcHBlbmQ/CiAgICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBkZWxldGVk
IGF0IHRoaXMgcG9pbnQsIGRvIG5vdCBhY2Nlc3MgYW55IG1lbWJlcnMuCiAgICAgICAgIH0KICAg
ICB9CkBAIC0yMDk4LDcgKzIwOTksNyBAQCB2b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQo
Y29uc3QgU3RyaW5nJiBzb3VyY2UsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LAogewogICAg
IEhUTUxEb2N1bWVudFBhcnNlciBwYXJzZXIoZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24p
OwogICAgIHBhcnNlci5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwotICAgIHBhcnNlci53cml0
ZShzb3VyY2UsIHRydWUpOworICAgIHBhcnNlci53cml0ZShzb3VyY2UsIERvY3VtZW50UGFyc2Vy
OjpOZXR3b3JrQXBwZW5kKTsgLy8gRklYTUU6IFNob3VsZCBiZSBTeW5jaHJvbm91c1NjcmlwdFdy
aXRlCiAgICAgcGFyc2VyLmZpbmlzaCgpOwogICAgIEFTU0VSVCghcGFyc2VyLnByb2Nlc3NpbmdE
YXRhKCkpOyAgICAgIC8vIG1ha2Ugc3VyZSB3ZSdyZSBkb25lIChzZWUgMzk2MzE1MSkKIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCA2MDcyYTdlOTBlODdjODk0YjRlNDI3ZTZlNjFk
M2YxMTQ3YjEwMzlhLi45Y2YzNjExMDllZWQxNzYzMTA2YzcwZTVhZWU2NzY0ZWI1YzRhYmI0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHVibGljOgog
ICAgIEhUTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKICAgICB2aXJ0dWFsIH5I
VE1MRG9jdW1lbnRQYXJzZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZShj
b25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2goKTsKICAgICB2aXJ0dWFsIGJvb2wgZm9yY2VTeW5jaHJvbm91cygpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGUuZm9yY2VTeW5jaHJvbm91cygpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZvcmNl
U3luY2hyb25vdXMoYm9vbCBmb3JjZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFdyaXRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXgg
Y2MyNjMyYjNhNGJhMDg4YzI0M2ZjZGU1NDY2YTJlOGRlODAwMTQxNC4uMTg5ODdlYjIzY2Y0OGE4
MTUzNmVlYmMzMTNlMmJlYTE3YmQwYTI2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApA
QCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmFkZERhdGEoY29uc3QgY2hh
ciogc3RyLCBpbnQgbGVuLCBib29sIGZsdXNoKQogCiAgICAgaWYgKHBhcnNlcikgewogICAgICAg
ICBBU1NFUlQoIXBhcnNlci0+d2FudHNSYXdEYXRhKCkpOwotICAgICAgICBwYXJzZXItPndyaXRl
KGRlY29kZWQsIHRydWUpOworICAgICAgICBwYXJzZXItPndyaXRlKGRlY29kZWQsIERvY3VtZW50
UGFyc2VyOjpOZXR3b3JrQXBwZW5kKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIFN5bmNocm9u
b3VzU2NyaXB0V3JpdGUhCiAgICAgfQogfQogCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBEb2N1
bWVudFdyaXRlcjo6YWRkRGF0YShjb25zdCBTdHJpbmcmIHN0cikKICAgICB9CiAKICAgICBpZiAo
RG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpKQot
ICAgICAgICBwYXJzZXItPndyaXRlKHN0ciwgdHJ1ZSk7CisgICAgICAgIHBhcnNlci0+d3JpdGUo
c3RyLCBEb2N1bWVudFBhcnNlcjo6TmV0d29ya0FwcGVuZCk7IC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSBTeW5jaHJvbm91c1NjcmlwdFdyaXRlIQogfQogCiB2b2lkIERvY3VtZW50V3JpdGVyOjpl
bmQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDVkMWIyYmY5
OTkwODE3ZTZiYTk5Mjc1YzRjOWI0Y2NlMWRlZjYyZWIuLjEzMTcxNGYzZGQwZDYwMTdjOTRhMGNi
NTkwYjcwYTE5NjQ1MTE0YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9y
eURvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5j
cHAKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXIgOiBw
dWJsaWMgSFRNTERvY3VtZW50UGFyc2VyIHsKIHB1YmxpYzoKICAgICBGVFBEaXJlY3RvcnlEb2N1
bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25z
dCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9pZCB3
cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpOwogICAgIHZpcnR1YWwgdm9p
ZCBmaW5pc2goKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0zMDYsNyArMzA2LDcgQEAgYm9vbCBGVFBEaXJl
Y3RvcnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUoKQogICAgIAogICAgIC8v
IFRva2VuaXplIHRoZSB0ZW1wbGF0ZSBhcyBhbiBIVE1MIGRvY3VtZW50IHN5bmNocm9ub3VzbHkK
ICAgICBzZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwotICAgIEhUTUxEb2N1bWVudFBhcnNlcjo6
d3JpdGUoU3RyaW5nKHRlbXBsYXRlRG9jdW1lbnREYXRhLT5kYXRhKCksIHRlbXBsYXRlRG9jdW1l
bnREYXRhLT5zaXplKCkpLCB0cnVlKTsKKyAgICBIVE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKFN0
cmluZyh0ZW1wbGF0ZURvY3VtZW50RGF0YS0+ZGF0YSgpLCB0ZW1wbGF0ZURvY3VtZW50RGF0YS0+
c2l6ZSgpKSwgTmV0d29ya0FwcGVuZCk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBTeW5jaHJv
bm91c1NjcmlwdFdyaXRlIQogICAgIHNldEZvcmNlU3luY2hyb25vdXMoZmFsc2UpOwogICAgIAog
ICAgIFJlZlB0cjxFbGVtZW50PiB0YWJsZUVsZW1lbnQgPSBtX2RvYy0+Z2V0RWxlbWVudEJ5SWQo
ImZ0cERpcmVjdG9yeVRhYmxlIik7CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBGVFBEaXJlY3Rv
cnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlQmFzaWNEb2N1bWVudCgpCiAgICAgYm9keUVsZW1lbnQt
PmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBlYyk7CiB9CiAKLXZvaWQgRlRQRGlyZWN0b3J5
RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCAvKmFw
cGVuZERhdGEqLykKK3ZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYgcywgV3JpdGVUeXBlKQogeyAgICAKICAgICAvLyBNYWtlIHN1cmUg
d2UgaGF2ZSB0aGUgdGFibGUgZWxlbWVudCB0byBhcHBlbmQgdG8gYnkgbG9hZGluZyB0aGUgdGVt
cGxhdGUgc2V0IGluIHRoZSBwcmVmLCBvcgogICAgIC8vIGNyZWF0aW5nIGEgdmVyeSBiYXNpYyBk
b2N1bWVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSB0YWJsZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNw
cAppbmRleCA4YWI0MTJmY2U0N2Q4OTQzZGE2Y2NhOGNlMGM3ZTgwZDNhODQ1M2Y3Li5mZmViNWFh
ODYzZDc0MzcyZDg3NGFkN2MwZTdjOTVmNDVmNmJiNmU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9JbWFnZURvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50
LmNwcApAQCAtODAsNyArODAsNyBAQCBjbGFzcyBJbWFnZVRva2VuaXplciA6IHB1YmxpYyBEb2N1
bWVudFBhcnNlciB7CiBwdWJsaWM6CiAgICAgSW1hZ2VUb2tlbml6ZXIoSW1hZ2VEb2N1bWVudCog
ZG9jKSA6IG1fZG9jKGRvYykge30KIAotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZShj
b25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2goKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0OwogICAg
IApAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBmbG9hdCBwYWdlWm9vbUZhY3RvcihEb2N1bWVu
dCogZG9jdW1lbnQpCiAgICAgcmV0dXJuIHZpZXcgPyB2aWV3LT5wYWdlWm9vbUZhY3RvcigpIDog
MTsKIH0KIAotdm9pZCBJbWFnZVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5n
JiwgYm9vbCkKK3ZvaWQgSW1hZ2VUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYsIFdyaXRlVHlwZSkKIHsKICAgICAvLyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI1Mzk3PjogSlMgY29kZSBjYW4gYWx3YXlzIGNhbGwgZG9jdW1lbnQud3JpdGUs
IHdlIG5lZWQgdG8gaGFuZGxlIGl0LgogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9NZWRpYURvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVyL01lZGlh
RG9jdW1lbnQuY3BwCmluZGV4IGU1MDVjMmY1ZTkzNzc3ZDFlNjk5Zjc4NTk4YWY0YzU0MmY0YjRh
MWIuLmExOTUzY2RmNzM2ZmEwYzRkOWI2YTc1MGQ2MjFkYmMyMzk0MTEyZWQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01l
ZGlhRG9jdW1lbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBNZWRpYURvY3Vt
ZW50UGFyc2VyKERvY3VtZW50KiBkb2MpIDogbV9kb2MoZG9jKSwgbV9tZWRpYUVsZW1lbnQoMCkg
e30KICAgICAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZShj
b25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2goKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0OwogICAg
ICAgICAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBIVE1MTWVkaWFFbGVtZW50KiBt
X21lZGlhRWxlbWVudDsKIH07CiAKLXZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6d3JpdGUoY29u
c3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCkKK3ZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6d3Jp
dGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgV3JpdGVUeXBlKQogewogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQu
Y3BwIGIvV2ViQ29yZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc4MzNkNDEyMmU2
MWQyNmIxYTM2NDAyZGFiMjI5YzNjNjQwNjMwZjQuLjFjMDdjMWY1ODI1Zjc1MzZlZjIwNzVmM2M0
NDAzN2ZmNTQzNzU4NzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1BsdWdpbkRvY3VtZW50
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBXaWRnZXQqIHBsdWdpbldpZGdldEZyb21Eb2N1bWVu
dChEb2N1bWVudCogZG9jKTsKICAgICAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCB3
cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1
YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2goKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0
cygpIGNvbnN0OwogICAgICAgICAKQEAgLTc4LDcgKzc4LDcgQEAgV2lkZ2V0KiBQbHVnaW5Eb2N1
bWVudFBhcnNlcjo6cGx1Z2luV2lkZ2V0RnJvbURvY3VtZW50KERvY3VtZW50KiBkb2MpCiAgICAg
cmV0dXJuIDA7CiB9CiAKLXZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYsIGJvb2wpCit2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjp3cml0ZShj
b25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwIGIv
V2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcAppbmRleCBkNDBlNTY3MjMwNjkxZDZiMjFm
OTNhYmVjNTM5NzEyNTY1NWZhZTk3Li45NTFhYzM5MWFlY2IwOWNjMThiNzMyY2FmY2I0MDhhMDli
NWU2NGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCisrKyBi
L1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGlj
OgogICAgIFNpbmtEb2N1bWVudFBhcnNlcihEb2N1bWVudCogZG9jdW1lbnQpIDogbV9kb2N1bWVu
dChkb2N1bWVudCkgeyB9CiAgICAgICAgIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5
cGUpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7
CiAgICAgdmlydHVhbCBib29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVu
dC5jcHAgYi9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwCmluZGV4IDY4MzM1YTc4YjRj
NDVhY2I0NDEzNmU3NGI0YTA1OTcwMDZjMTE3MDYuLmRiMTY2MjYxZGNjZjgxNjU1YzA0MjFhOTQw
ODE2ZDA0MmNiMTMzMzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5j
cHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dERvY3VtZW50UGFyc2VyKCk7CiAgICAgVGV4dERv
Y3VtZW50UGFyc2VyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZp
cnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBXcml0ZVR5cGUpOwogICAg
IHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2Ny
aXB0cygpIGNvbnN0OwogICAgIApAQCAtMTAwLDcgKzEwMCw3IEBAIFRleHREb2N1bWVudFBhcnNl
cjo6flRleHREb2N1bWVudFBhcnNlcigpCiAgICAgQVNTRVJUKCFtX2J1ZmZlcik7CiB9CiAKLXZv
aWQgVGV4dERvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMsIGJv
b2wpCit2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5n
JiBzLCBXcml0ZVR5cGUpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKIApAQCAtMTYyLDggKzE2
MiwxMCBAQCB2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3Ry
aW5nJiBzLCBib29sKQogCiB2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKIHsKLSAg
ICBpZiAoIW1fcHJlRWxlbWVudCkKLSAgICAgICAgd3JpdGUoU2VnbWVudGVkU3RyaW5nKCksIHRy
dWUpOyAvLyBDcmVhdGUgZG9jdW1lbnQgc3RydWN0dXJlIGZvciBhbiBlbXB0eSB0ZXh0IGRvY3Vt
ZW50LgorICAgIGlmICghbV9wcmVFbGVtZW50KSB7CisgICAgICAgIC8vIENyZWF0ZSBkb2N1bWVu
dCBzdHJ1Y3R1cmUgZm9yIGFuIGVtcHR5IHRleHQgZG9jdW1lbnQuCisgICAgICAgIHdyaXRlKFNl
Z21lbnRlZFN0cmluZygpLCBOZXR3b3JrQXBwZW5kKTsgLy8gRklYTUU6IFNob3VsZCBiZSBTeW5j
aHJvbm91c1NjcmlwdFdyaXRlCisgICAgfQogICAgIG1fcHJlRWxlbWVudCA9IDA7CiAgICAgZmFz
dEZyZWUobV9idWZmZXIpOwogICAgIG1fYnVmZmVyID0gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>