<?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>46561</bug_id>
          
          <creation_ts>2010-09-25 02:50:05 -0700</creation_ts>
          <short_desc>Add create method to FileSystemCallbacks to get rid of naked new&apos;s</short_desc>
          <delta_ts>2010-09-27 12:05:24 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dumi</cc>
    
    <cc>ericu</cc>
    
    <cc>kkanetkar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284979</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-25 02:50:05 -0700</bug_when>
    <thetext>Add create method to FileSystemCallbacks to get rid of naked new&apos;s.

Also cleanup the callbacks layering to pass AsyncFileSystemCallbacks object to LocalFileSystem::requestFileSystem (rather than FileSystemCallback and ErrorCallback)
so that all the callbacks class we pass from WebCore to WebKit/chromium/src will be AsyncFileSystemCallbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284980</commentid>
    <comment_count>1</comment_count>
      <attachid>68820</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-25 02:55:23 -0700</bug_when>
    <thetext>Created attachment 68820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284981</commentid>
    <comment_count>2</comment_count>
      <attachid>68821</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-25 03:23:27 -0700</bug_when>
    <thetext>Created attachment 68821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285097</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-26 00:40:27 -0700</bug_when>
    <thetext>Changed summary: we usually put platform in brackets for platform-only patches. Some people who are only interested in cross-platform work have customized queries to ignore such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285284</commentid>
    <comment_count>4</comment_count>
      <attachid>68821</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 21:17:53 -0700</bug_when>
    <thetext>Comment on attachment 68821
Patch

Love it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285661</commentid>
    <comment_count>5</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-27 12:05:24 -0700</bug_when>
    <thetext>Committed r68411: &lt;http://trac.webkit.org/changeset/68411&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68820</attachid>
            <date>2010-09-25 02:55:23 -0700</date>
            <delta_ts>2010-09-25 03:23:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46561-20100925025522.patch</filename>
            <type>text/plain</type>
            <size>25359</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDQ3ZTQ4NDY4ZDczYTFmMWE0YjdkYzMxNWI0ZmE2NjBlYzc4ZmFhMS4uYzA0NzU1Y2JlYzA0MTM4
MzAyYTVlYThmZDNmMDcxMTNjYzI4ZWE5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0wOS0yNSAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDbGVhbnVwXSBBZGQgY3JlYXRlIG1ldGhvZCB0byBG
aWxlU3lzdGVtQ2FsbGJhY2tzIHRvIGdldCByaWQgb2YgbmFrZWQgbmV3J3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NTYxCisKKyAgICAgICAgQWxz
byBjbGVhbnVwIHRoZSBjYWxsYmFja3MgbGF5ZXJpbmcgdG8gcGFzcyBBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3Mgb2JqZWN0CisgICAgICAgIHRvIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVT
eXN0ZW0gKHJhdGhlciB0aGFuIEZpbGVTeXN0ZW1DYWxsYmFjayBhbmQKKyAgICAgICAgRXJyb3JD
YWxsYmFjaykgc28gdGhhdCBhbGwgdGhlIGNhbGxiYWNrcyBjbGFzcyB3ZSBwYXNzIGZyb20gV2Vi
Q29yZSB0bworICAgICAgICBXZWJLaXQvY2hyb21pdW0vc3JjIHdpbGwgYmUgQXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGhpcyBwYXRjaCBpcyBvbmx5
IGZvciBjbGVhbnVwIGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2Vz
LgorCisgICAgICAgICogZmlsZWFwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUZpbGVTeXN0ZW06OmdldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZp
bGVTeXN0ZW06Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6Y29weSk6
CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpyZW1vdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NRmlsZVN5c3RlbTo6Z2V0UGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZp
bGVTeXN0ZW06OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6Z2V0
RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OmNyZWF0ZVdyaXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpyZWFkRGlyZWN0b3J5KToKKyAg
ICAgICAgKiBmaWxlYXBpL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RW50cnlDYWxsYmFja3M6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RW50
cmllc0NhbGxiYWNrczo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtQ2FsbGJhY2tzOjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1ldGFkYXRh
Q2FsbGJhY2tzOjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVXcml0ZXJD
YWxsYmFja3M6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Vm9pZENhbGxiYWNr
czo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogZmlsZWFwaS9GaWxlU3lzdGVtQ2FsbGJhY2tz
Lmg6CisgICAgICAgICogZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6b3BlbkZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxGaWxlU3lzdGVt
OjpyZXF1ZXN0RmlsZVN5c3RlbSk6IENoYW5nZWQgdG8gdGFrZQorICAgICAgICBBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3MgYXMgKGEpIGNhbGxiYWNrIGFyZ3VtZW50KHMpLgorICAgICAgICAqIGZp
bGVhcGkvTG9jYWxGaWxlU3lzdGVtLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXF1ZXN0RmlsZVN5c3RlbSk6IE1hZGUgYSBj
b3JyZXNwb25kaW5nIGNoYW5nZQorICAgICAgICB0byBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RG
aWxlU3lzdGVtLgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpyZXF1ZXN0RmlsZVN5c3RlbSk6IE1hZGUgYSBjb3Jy
ZXNwb25kaW5nIGNoYW5nZQorICAgICAgICB0byBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxl
U3lzdGVtLgorCiAyMDEwLTA5LTI0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVT
eXN0ZW0uY3BwCmluZGV4IGFmZDNlMWViMTJlYWE2NTk4YzUzMGU1YmNjMjU5Y2Y0NzZmN2Y1MTQu
LjJiZDA5YzJmMGRlY2Y3YjUwZmZiZDg0M2I2MDRlYTExYjQ5NWQ0ZGEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRE9N
RmlsZVN5c3RlbS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEaXJlY3RvcnlFbnRy
eS5oIgogI2luY2x1ZGUgIkVudHJpZXNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkVudHJ5LmgiCisj
aW5jbHVkZSAiRW50cnlBcnJheS5oIgogI2luY2x1ZGUgIkVudHJ5Q2FsbGJhY2suaCIKICNpbmNs
dWRlICJFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZUVudHJ5LmgiCkBAIC04Nyw3ICs4
OCw3IEBAIHZvaWQgRE9NRmlsZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCgpCiB2b2lkIERPTUZp
bGVTeXN0ZW06OmdldE1ldGFkYXRhKGNvbnN0IEVudHJ5KiBlbnRyeSwgUGFzc1JlZlB0cjxNZXRh
ZGF0YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4g
ZXJyb3JDYWxsYmFjaykKIHsKICAgICBTdHJpbmcgcGxhdGZvcm1QYXRoID0gbV9hc3luY0ZpbGVT
eXN0ZW0tPnZpcnR1YWxUb1BsYXRmb3JtUGF0aChlbnRyeS0+ZnVsbFBhdGgoKSk7Ci0gICAgbV9h
c3luY0ZpbGVTeXN0ZW0tPnJlYWRNZXRhZGF0YShwbGF0Zm9ybVBhdGgsIG5ldyBNZXRhZGF0YUNh
bGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICBtX2FzeW5jRmls
ZVN5c3RlbS0+cmVhZE1ldGFkYXRhKHBsYXRmb3JtUGF0aCwgTWV0YWRhdGFDYWxsYmFja3M6OmNy
ZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKIH0KIAogc3RhdGljIGJvb2wg
Y2hlY2tWYWxpZGl0eUZvckZvckNvcHlPck1vdmUoY29uc3QgRW50cnkqIHNyYywgRW50cnkqIHBh
cmVudCwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQpAQCAtMTI2LDcgKzEyNyw3IEBAIHZvaWQgRE9N
RmlsZVN5c3RlbTo6bW92ZShjb25zdCBFbnRyeSogc3JjLCBQYXNzUmVmUHRyPEVudHJ5PiBwYXJl
bnQsIGNvbnN0IFN0cmluCiAKICAgICBTdHJpbmcgc3JjUGxhdGZvcm1QYXRoID0gbV9hc3luY0Zp
bGVTeXN0ZW0tPnZpcnR1YWxUb1BsYXRmb3JtUGF0aChzcmMtPmZ1bGxQYXRoKCkpOwogICAgIFN0
cmluZyBkZXN0UGxhdGZvcm1QYXRoID0gcGFyZW50LT5maWxlc3lzdGVtKCktPmFzeW5jRmlsZVN5
c3RlbSgpLT52aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoZGVzdFBhdGgpOwotICAgIG1fYXN5bmNGaWxl
U3lzdGVtLT5tb3ZlKHNyY1BsYXRmb3JtUGF0aCwgZGVzdFBsYXRmb3JtUGF0aCwgbmV3IEVudHJ5
Q2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgZGVzdFBhdGgs
IHNyYy0+aXNEaXJlY3RvcnkoKSkpOworICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5tb3ZlKHNyY1Bs
YXRmb3JtUGF0aCwgZGVzdFBsYXRmb3JtUGF0aCwgRW50cnlDYWxsYmFja3M6OmNyZWF0ZShzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGRlc3RQYXRoLCBzcmMtPmlzRGlyZWN0
b3J5KCkpKTsKIH0KIAogdm9pZCBET01GaWxlU3lzdGVtOjpjb3B5KGNvbnN0IEVudHJ5KiBzcmMs
IFBhc3NSZWZQdHI8RW50cnk+IHBhcmVudCwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBQYXNzUmVm
UHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxi
YWNrPiBlcnJvckNhbGxiYWNrKQpAQCAtMTQ0LDE0ICsxNDUsMTQgQEAgdm9pZCBET01GaWxlU3lz
dGVtOjpjb3B5KGNvbnN0IEVudHJ5KiBzcmMsIFBhc3NSZWZQdHI8RW50cnk+IHBhcmVudCwgY29u
c3QgU3RyaW4KIAogICAgIFN0cmluZyBzcmNQbGF0Zm9ybVBhdGggPSBtX2FzeW5jRmlsZVN5c3Rl
bS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKHNyYy0+ZnVsbFBhdGgoKSk7CiAgICAgU3RyaW5nIGRl
c3RQbGF0Zm9ybVBhdGggPSBwYXJlbnQtPmZpbGVzeXN0ZW0oKS0+YXN5bmNGaWxlU3lzdGVtKCkt
PnZpcnR1YWxUb1BsYXRmb3JtUGF0aChkZXN0UGF0aCk7Ci0gICAgbV9hc3luY0ZpbGVTeXN0ZW0t
PmNvcHkoc3JjUGxhdGZvcm1QYXRoLCBkZXN0UGxhdGZvcm1QYXRoLCBuZXcgRW50cnlDYWxsYmFj
a3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzLCBkZXN0UGF0aCwgc3JjLT5p
c0RpcmVjdG9yeSgpKSk7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPmNvcHkoc3JjUGxhdGZvcm1Q
YXRoLCBkZXN0UGxhdGZvcm1QYXRoLCBFbnRyeUNhbGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgZGVzdFBhdGgsIHNyYy0+aXNEaXJlY3RvcnkoKSkp
OwogfQogCiB2b2lkIERPTUZpbGVTeXN0ZW06OnJlbW92ZShjb25zdCBFbnRyeSogZW50cnksIFBh
c3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKIHsKICAgICBBU1NFUlQoZW50cnkpOwogICAgIFN0cmlu
ZyBwbGF0Zm9ybVBhdGggPSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRo
KGVudHJ5LT5mdWxsUGF0aCgpKTsKLSAgICBtX2FzeW5jRmlsZVN5c3RlbS0+cmVtb3ZlKHBsYXRm
b3JtUGF0aCwgbmV3IFZvaWRDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
KSk7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnJlbW92ZShwbGF0Zm9ybVBhdGgsIFZvaWRDYWxs
YmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKIH0KIAogdm9p
ZCBET01GaWxlU3lzdGVtOjpnZXRQYXJlbnQoY29uc3QgRW50cnkqIGVudHJ5LCBQYXNzUmVmUHRy
PEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrKQpAQCAtMTU5LDcgKzE2MCw3IEBAIHZvaWQgRE9NRmlsZVN5c3RlbTo6
Z2V0UGFyZW50KGNvbnN0IEVudHJ5KiBlbnRyeSwgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiBz
dWNjCiAgICAgQVNTRVJUKGVudHJ5KTsKICAgICBTdHJpbmcgcGF0aCA9IERPTUZpbGVQYXRoOjpn
ZXREaXJlY3RvcnkoZW50cnktPmZ1bGxQYXRoKCkpOwogICAgIFN0cmluZyBwbGF0Zm9ybVBhdGgg
PSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpOwotICAgIG1f
YXN5bmNGaWxlU3lzdGVtLT5kaXJlY3RvcnlFeGlzdHMocGxhdGZvcm1QYXRoLCBuZXcgRW50cnlD
YWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzLCBwYXRoLCB0cnVl
KSk7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPmRpcmVjdG9yeUV4aXN0cyhwbGF0Zm9ybVBhdGgs
IEVudHJ5Q2FsbGJhY2tzOjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0
aGlzLCBwYXRoLCB0cnVlKSk7CiB9CiAKIHZvaWQgRE9NRmlsZVN5c3RlbTo6Z2V0RmlsZShjb25z
dCBFbnRyeSogYmFzZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzUmVmUHRyPEZsYWdzPiBmbGFn
cywgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKQEAgLTE3NSw3ICsxNzYsNyBAQCB2b2lkIERP
TUZpbGVTeXN0ZW06OmdldEZpbGUoY29uc3QgRW50cnkqIGJhc2UsIGNvbnN0IFN0cmluZyYgcGF0
aCwgUGFzc1JlZlB0cjxGbAogICAgICAgICBhYnNvbHV0ZVBhdGggPSBET01GaWxlUGF0aDo6cmVt
b3ZlRXh0cmFQYXJlbnRSZWZlcmVuY2VzKERPTUZpbGVQYXRoOjphcHBlbmQoYmFzZS0+ZnVsbFBh
dGgoKSwgcGF0aCkpOwogICAgIFN0cmluZyBwbGF0Zm9ybVBhdGggPSBtX2FzeW5jRmlsZVN5c3Rl
bS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKGFic29sdXRlUGF0aCk7CiAKLSAgICBPd25QdHI8RW50
cnlDYWxsYmFja3M+IGNhbGxiYWNrcyA9IGFkb3B0UHRyKG5ldyBFbnRyeUNhbGxiYWNrcyhzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGFic29sdXRlUGF0aCwgZmFsc2UpKTsK
KyAgICBPd25QdHI8RW50cnlDYWxsYmFja3M+IGNhbGxiYWNrcyA9IEVudHJ5Q2FsbGJhY2tzOjpj
cmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzLCBhYnNvbHV0ZVBhdGgs
IGZhbHNlKTsKICAgICBpZiAoZmxhZ3MgJiYgZmxhZ3MtPmlzQ3JlYXRlKCkpCiAgICAgICAgIG1f
YXN5bmNGaWxlU3lzdGVtLT5jcmVhdGVGaWxlKHBsYXRmb3JtUGF0aCwgZmxhZ3MtPmlzRXhjbHVz
aXZlKCksIGNhbGxiYWNrcy5yZWxlYXNlKCkpOwogICAgIGVsc2UKQEAgLTE5NSw3ICsxOTYsNyBA
QCB2b2lkIERPTUZpbGVTeXN0ZW06OmdldERpcmVjdG9yeShjb25zdCBFbnRyeSogYmFzZSwgY29u
c3QgU3RyaW5nJiBwYXRoLCBQYXNzUmVmUAogICAgICAgICBhYnNvbHV0ZVBhdGggPSBET01GaWxl
UGF0aDo6cmVtb3ZlRXh0cmFQYXJlbnRSZWZlcmVuY2VzKERPTUZpbGVQYXRoOjphcHBlbmQoYmFz
ZS0+ZnVsbFBhdGgoKSwgcGF0aCkpOwogICAgIFN0cmluZyBwbGF0Zm9ybVBhdGggPSBtX2FzeW5j
RmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKGFic29sdXRlUGF0aCk7CiAKLSAgICBP
d25QdHI8RW50cnlDYWxsYmFja3M+IGNhbGxiYWNrcyA9IGFkb3B0UHRyKG5ldyBFbnRyeUNhbGxi
YWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGFic29sdXRlUGF0aCwg
dHJ1ZSkpOworICAgIE93blB0cjxFbnRyeUNhbGxiYWNrcz4gY2FsbGJhY2tzID0gRW50cnlDYWxs
YmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGFic29s
dXRlUGF0aCwgdHJ1ZSk7CiAgICAgaWYgKGZsYWdzICYmIGZsYWdzLT5pc0NyZWF0ZSgpKQogICAg
ICAgICBtX2FzeW5jRmlsZVN5c3RlbS0+Y3JlYXRlRGlyZWN0b3J5KHBsYXRmb3JtUGF0aCwgZmxh
Z3MtPmlzRXhjbHVzaXZlKCksIGNhbGxiYWNrcy5yZWxlYXNlKCkpOwogICAgIGVsc2UKQEAgLTIw
OSw3ICsyMTAsNyBAQCB2b2lkIERPTUZpbGVTeXN0ZW06OmNyZWF0ZVdyaXRlcihjb25zdCBGaWxl
RW50cnkqIGZpbGUsIFBhc3NSZWZQdHI8RmlsZVdyaXRlckNhbAogICAgIFN0cmluZyBwbGF0Zm9y
bVBhdGggPSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKGZpbGUtPmZ1
bGxQYXRoKCkpOwogCiAgICAgUmVmUHRyPEZpbGVXcml0ZXI+IGZpbGVXcml0ZXIgPSBGaWxlV3Jp
dGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBPd25QdHI8RmlsZVdy
aXRlckNhbGxiYWNrcz4gY2FsbGJhY2tzID0gYWRvcHRQdHIobmV3IEZpbGVXcml0ZXJDYWxsYmFj
a3MoZmlsZVdyaXRlciwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgT3du
UHRyPEZpbGVXcml0ZXJDYWxsYmFja3M+IGNhbGxiYWNrcyA9IEZpbGVXcml0ZXJDYWxsYmFja3M6
OmNyZWF0ZShmaWxlV3JpdGVyLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwogICAg
IG1fYXN5bmNGaWxlU3lzdGVtLT5jcmVhdGVXcml0ZXIoZmlsZVdyaXRlci5nZXQoKSwgcGxhdGZv
cm1QYXRoLCBjYWxsYmFja3MucmVsZWFzZSgpKTsKIH0KIApAQCAtMjE3LDcgKzIxOCw3IEBAIHZv
aWQgRE9NRmlsZVN5c3RlbTo6cmVhZERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NS
ZWZQdHI8RW50cmllc0NhbGxiYWNrCiB7CiAgICAgQVNTRVJUKERPTUZpbGVQYXRoOjppc0Fic29s
dXRlKHBhdGgpKTsKICAgICBTdHJpbmcgcGxhdGZvcm1QYXRoID0gbV9hc3luY0ZpbGVTeXN0ZW0t
PnZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKTsKLSAgICBtX2FzeW5jRmlsZVN5c3RlbS0+cmVh
ZERpcmVjdG9yeShwbGF0Zm9ybVBhdGgsIG5ldyBFbnRyaWVzQ2FsbGJhY2tzKHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgcGF0aCkpOworICAgIG1fYXN5bmNGaWxlU3lzdGVt
LT5yZWFkRGlyZWN0b3J5KHBsYXRmb3JtUGF0aCwgRW50cmllc0NhbGxiYWNrczo6Y3JlYXRlKHN1
Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgcGF0aCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
Y3BwIGIvV2ViQ29yZS9maWxlYXBpL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCmluZGV4IGZjYzg2
MGY2Yzk4OTRhYTY4NWI3ZDYxODE2NTlmZTQwZmE5ODI5MzAuLjU1MGI1MDliNGI5NTNiOTQ2NDli
MGJkYTM2NDcyMGQwOTllMzU2YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZmlsZWFwaS9GaWxlU3lz
dGVtQ2FsbGJhY2tzLmNwcAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRmlsZVN5c3RlbUNhbGxiYWNr
cy5jcHAKQEAgLTExMCw2ICsxMTAsMTEgQEAgdm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTo6
ZGlkRmFpbChpbnQgY29kZSkKIAogLy8gRW50cnlDYWxsYmFja3MgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQYXNzT3duUHRy
PEVudHJ5Q2FsbGJhY2tzPiBFbnRyeUNhbGxiYWNrczo6Y3JlYXRlKFBhc3NSZWZQdHI8RW50cnlD
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2ssIERPTUZpbGVTeXN0ZW0qIGZpbGVTeXN0ZW0sIGNvbnN0IFN0cmluZyYgZXhwZWN0
ZWRQYXRoLCBib29sIGlzRGlyZWN0b3J5KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRW50
cnlDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBmaWxlU3lzdGVtLCBl
eHBlY3RlZFBhdGgsIGlzRGlyZWN0b3J5KSk7Cit9CisKIEVudHJ5Q2FsbGJhY2tzOjpFbnRyeUNh
bGxiYWNrcyhQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1Jl
ZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBET01GaWxlU3lzdGVtKiBmaWxlU3lz
dGVtLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkUGF0aCwgYm9vbCBpc0RpcmVjdG9yeSkKICAgICA6
IEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlKGVycm9yQ2FsbGJhY2spCiAgICAgLCBtX3N1Y2Nlc3ND
YWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCkBAIC0xMzIsNiArMTM3LDExIEBAIHZvaWQgRW50cnlD
YWxsYmFja3M6OmRpZFN1Y2NlZWQoKQogCiAvLyBFbnRyaWVzQ2FsbGJhY2tzIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1Bhc3NP
d25QdHI8RW50cmllc0NhbGxiYWNrcz4gRW50cmllc0NhbGxiYWNrczo6Y3JlYXRlKFBhc3NSZWZQ
dHI8RW50cmllc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjaywgRE9NRmlsZVN5c3RlbSogZmlsZVN5c3RlbSwgY29uc3QgU3Ry
aW5nJiBiYXNlUGF0aCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEVudHJpZXNDYWxsYmFj
a3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBmaWxlU3lzdGVtLCBiYXNlUGF0aCkp
OworfQorCiBFbnRyaWVzQ2FsbGJhY2tzOjpFbnRyaWVzQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RW50
cmllc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4g
ZXJyb3JDYWxsYmFjaywgRE9NRmlsZVN5c3RlbSogZmlsZVN5c3RlbSwgY29uc3QgU3RyaW5nJiBi
YXNlUGF0aCkKICAgICA6IEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlKGVycm9yQ2FsbGJhY2spCiAg
ICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCkBAIC0xNjQsNiArMTc0LDEx
IEBAIHZvaWQgRW50cmllc0NhbGxiYWNrczo6ZGlkUmVhZERpcmVjdG9yeUVudHJpZXMoYm9vbCBo
YXNNb3JlKQogCiAvLyBGaWxlU3lzdGVtQ2FsbGJhY2tzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1Bhc3NPd25QdHI8RmlsZVN5c3Rl
bUNhbGxiYWNrcz4gRmlsZVN5c3RlbUNhbGxiYWNrczo6Y3JlYXRlKFBhc3NSZWZQdHI8RmlsZVN5
c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4g
ZXJyb3JDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZpbGVTeXN0ZW1DYWxsYmFja3Moc3Vj
Y2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7Cit9
CisKIEZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxG
aWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxi
YWNrPiBlcnJvckNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAg
IDogRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoZXJyb3JDYWxsYmFjaykKICAgICAsIG1fc3VjY2Vz
c0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaykKQEAgLTE4Myw2ICsxOTgsMTEgQEAgdm9pZCBGaWxl
U3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NPd25QdHI8QXN5bmMKIAogLy8gTWV0YWRhdGFDYWxsYmFja3MgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQYXNzT3duUHRyPE1l
dGFkYXRhQ2FsbGJhY2tzPiBNZXRhZGF0YUNhbGxiYWNrczo6Y3JlYXRlKFBhc3NSZWZQdHI8TWV0
YWRhdGFDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+
IGVycm9yQ2FsbGJhY2spCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZXRhZGF0YUNhbGxi
YWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKK30KKwogTWV0YWRhdGFDYWxs
YmFja3M6Ok1ldGFkYXRhQ2FsbGJhY2tzKFBhc3NSZWZQdHI8TWV0YWRhdGFDYWxsYmFjaz4gc3Vj
Y2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiAg
ICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwgbV9zdWNj
ZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQpAQCAtMTk4LDYgKzIxOCwxMSBAQCB2b2lkIE1l
dGFkYXRhQ2FsbGJhY2tzOjpkaWRSZWFkTWV0YWRhdGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUp
CiAKIC8vIEZpbGVXcml0ZXJDYWxsYmFja3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQYXNzT3duUHRyPEZpbGVXcml0ZXJDYWxs
YmFja3M+IEZpbGVXcml0ZXJDYWxsYmFja3M6OmNyZWF0ZShQYXNzUmVmUHRyPEZpbGVXcml0ZXI+
IGZpbGVXcml0ZXIsIFBhc3NSZWZQdHI8RmlsZVdyaXRlckNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJh
Y2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEZpbGVXcml0ZXJDYWxsYmFja3MoZmlsZVdyaXRlciwgc3VjY2Vzc0Nh
bGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7Cit9CisKIEZpbGVXcml0ZXJDYWxsYmFja3M6OkZpbGVX
cml0ZXJDYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlV3JpdGVyPiBmaWxlV3JpdGVyLCBQYXNzUmVm
UHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShl
cnJvckNhbGxiYWNrKQogICAgICwgbV9maWxlV3JpdGVyKGZpbGVXcml0ZXIpCkBAIC0yMTUsNiAr
MjQwLDExIEBAIHZvaWQgRmlsZVdyaXRlckNhbGxiYWNrczo6ZGlkQ3JlYXRlRmlsZVdyaXRlcihQ
YXNzT3duUHRyPEFzeW5jRmlsZVdyaXRlcj4gYXN5bmNGCiAKIC8vIFZvaWRDYWxsYmFja3MgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAorUGFzc093blB0cjxWb2lkQ2FsbGJhY2tzPiBWb2lkQ2FsbGJhY2tzOjpjcmVhdGUoUGFz
c1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNh
bGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgVm9pZENh
bGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKK30KKwogVm9pZENhbGxi
YWNrczo6Vm9pZENhbGxiYWNrcyhQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiAgICAgOiBGaWxl
U3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwgbV9zdWNjZXNzQ2FsbGJh
Y2soc3VjY2Vzc0NhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0ZpbGVTeXN0
ZW1DYWxsYmFja3MuaCBiL1dlYkNvcmUvZmlsZWFwaS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmgKaW5k
ZXggYTVlOTU2MDFmZDhlN2IwM2JhMWNmNGI1MjRkNGMyODg5MGRhMjhjNy4uYmQyMTlhNzI0MTQ5
MDQ3NzFlMDYwMzEyYTZiM2I5MzE4YmRhY2QwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9maWxlYXBp
L0ZpbGVTeXN0ZW1DYWxsYmFja3MuaAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRmlsZVN5c3RlbUNh
bGxiYWNrcy5oCkBAIC04NSwxMCArODUsMTEgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBFbnRyeUNh
bGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6Ci0gICAg
RW50cnlDYWxsYmFja3MoUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJv
ckNhbGxiYWNrPiwgRE9NRmlsZVN5c3RlbSosIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRQYXRoLCBi
b29sIGlzRGlyZWN0b3J5KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxFbnRyeUNhbGxiYWNrcz4g
Y3JlYXRlKFBhc3NSZWZQdHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIERPTUZpbGVTeXN0ZW0qIGZpbGVTeXN0
ZW0sIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRQYXRoLCBib29sIGlzRGlyZWN0b3J5KTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgpOwogCiBwcml2YXRlOgorICAgIEVudHJ5Q2FsbGJhY2tz
KFBhc3NSZWZQdHI8RW50cnlDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4sIERP
TUZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkUGF0aCwgYm9vbCBpc0RpcmVjdG9y
eSk7CiAgICAgUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOwogICAgIERP
TUZpbGVTeXN0ZW0qIG1fZmlsZVN5c3RlbTsKICAgICBTdHJpbmcgbV9leHBlY3RlZFBhdGg7CkBA
IC05NywxMSArOTgsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgRW50cmllc0NhbGxiYWNrcyA6IHB1
YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6Ci0gICAgRW50cmllc0NhbGxi
YWNrcyhQYXNzUmVmUHRyPEVudHJpZXNDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFj
az4sIERPTUZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIGJhc2VQYXRoKTsKKyAgICBzdGF0aWMg
UGFzc093blB0cjxFbnRyaWVzQ2FsbGJhY2tzPiBjcmVhdGUoUGFzc1JlZlB0cjxFbnRyaWVzQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNh
bGxiYWNrLCBET01GaWxlU3lzdGVtKiBmaWxlU3lzdGVtLCBjb25zdCBTdHJpbmcmIGJhc2VQYXRo
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUVudHJ5KGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBpc0RpcmVjdG9yeSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWREaXJlY3Rv
cnlFbnRyaWVzKGJvb2wgaGFzTW9yZSk7CiAKIHByaXZhdGU6CisgICAgRW50cmllc0NhbGxiYWNr
cyhQYXNzUmVmUHRyPEVudHJpZXNDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4s
IERPTUZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIGJhc2VQYXRoKTsKICAgICBSZWZQdHI8RW50
cmllc0NhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKICAgICBET01GaWxlU3lzdGVtKiBtX2Zp
bGVTeXN0ZW07CiAgICAgU3RyaW5nIG1fYmFzZVBhdGg7CkBAIC0xMTAsMzkgKzExMiw0MyBAQCBw
cml2YXRlOgogCiBjbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2tzIDogcHVibGljIEZpbGVTeXN0ZW1D
YWxsYmFja3NCYXNlIHsKIHB1YmxpYzoKLSAgICBGaWxlU3lzdGVtQ2FsbGJhY2tzKFBhc3NSZWZQ
dHI8RmlsZVN5c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEZpbGVTeXN0ZW1DYWxs
YmFja3M+IGNyZWF0ZShQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtPik7CiAKIHByaXZhdGU6CisgICAgRmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRy
PEZpbGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBtX3N1Y2Nl
c3NDYWxsYmFjazsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMg
RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIE1ldGFkYXRhQ2FsbGJhY2tz
KFBhc3NSZWZQdHI8TWV0YWRhdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4p
OworICAgIHN0YXRpYyBQYXNzT3duUHRyPE1ldGFkYXRhQ2FsbGJhY2tzPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxNZXRhZGF0YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjayk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYWRNZXRhZGF0
YShkb3VibGUgbW9kaWZpY2F0aW9uVGltZSk7CiAKIHByaXZhdGU6CisgICAgTWV0YWRhdGFDYWxs
YmFja3MoUGFzc1JlZlB0cjxNZXRhZGF0YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxi
YWNrPik7CiAgICAgUmVmUHRyPE1ldGFkYXRhQ2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOwog
fTsKIAogY2xhc3MgRmlsZVdyaXRlckNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZSB7CiBwdWJsaWM6Ci0gICAgRmlsZVdyaXRlckNhbGxiYWNrcyhQYXNzUmVmUHRyPEZp
bGVXcml0ZXI+LCBQYXNzUmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJy
b3JDYWxsYmFjaz4pOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEZpbGVXcml0ZXJDYWxsYmFja3M+
IGNyZWF0ZShQYXNzUmVmUHRyPEZpbGVXcml0ZXI+LCBQYXNzUmVmUHRyPEZpbGVXcml0ZXJDYWxs
YmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
cmVhdGVGaWxlV3JpdGVyKFBhc3NPd25QdHI8QXN5bmNGaWxlV3JpdGVyPiwgbG9uZyBsb25nIGxl
bmd0aCk7CiAKIHByaXZhdGU6CisgICAgRmlsZVdyaXRlckNhbGxiYWNrcyhQYXNzUmVmUHRyPEZp
bGVXcml0ZXI+LCBQYXNzUmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJy
b3JDYWxsYmFjaz4pOwogICAgIFJlZlB0cjxGaWxlV3JpdGVyPiBtX2ZpbGVXcml0ZXI7CiAgICAg
UmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CiB9OwogCiBjbGFz
cyBWb2lkQ2FsbGJhY2tzIDogcHVibGljIEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlIHsKIHB1Ymxp
YzoKLSAgICBWb2lkQ2FsbGJhY2tzKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0
cjxFcnJvckNhbGxiYWNrPik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8Vm9pZENhbGxiYWNrcz4g
Y3JlYXRlKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1
Y2NlZWQoKTsKIAogcHJpdmF0ZToKKyAgICBWb2lkQ2FsbGJhY2tzKFBhc3NSZWZQdHI8Vm9pZENh
bGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CiAgICAgUmVmUHRyPFZvaWRDYWxs
YmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2ZpbGVh
cGkvTG9jYWxGaWxlU3lzdGVtLmNwcCBiL1dlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0u
Y3BwCmluZGV4IGY4MjZiNzFjMmRkN2IxNTI0ZDAwOGMyMWZmNGJjZmRjOTc3OGM4YTcuLjU2N2Fh
ZmU2NmY3ZDdjNTAwODNhOTVlNDI4ZjhlZjU5YWRmYTc5ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCisrKyBiL1dlYkNvcmUvZmlsZWFwaS9Mb2NhbEZp
bGVTeXN0ZW0uY3BwCkBAIC03NiwyMCArNzYsMTUgQEAgU3RyaW5nIExvY2FsRmlsZVN5c3RlbTo6
ZmlsZVN5c3RlbUJhc2VQYXRoKCkgY29uc3QKICAgICByZXR1cm4gbV9iYXNlUGF0aDsKIH0KIAot
c3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxlU3lz
dGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxl
U3lzdGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiB7CiAgICAgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShiYXNlUGF0
aCwgaWRlbnRpZmllciwgdHlwZSwgY2FsbGJhY2tzKTsKIH0KIAotdm9pZCBMb2NhbEZpbGVTeXN0
ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFz
eW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8RmlsZVN5c3Rl
bUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaykKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwg
bG9uZyBsb25nLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tz
KQogewotICAgIGlmICh0eXBlICE9IEFzeW5jRmlsZVN5c3RlbTo6VGVtcG9yYXJ5ICYmIHR5cGUg
IT0gQXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0ZW50KSB7Ci0gICAgICAgIERPTUZpbGVTeXN0ZW06
OnNjaGVkdWxlQ2FsbGJhY2soY29udGV4dCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVh
dGUoSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICAvLyBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtIGNhbGxzIGNhbGxiYWNrcyBz
eW5jaHJvbm91c2x5LCBzbyB0aGUgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBhc3luY2hyb25v
dXNseS4KLSAgICBjb250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJm9wZW5GaWxl
U3lzdGVtLCBmaWxlU3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+
ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIG5ldyBGaWxlU3lzdGVtQ2FsbGJhY2tzKHN1Y2Nl
c3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkpKTsKKyAgICBjb250ZXh0LT5wb3N0
VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lzdGVtQmFzZVBh
dGgoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5
cGUsIGNhbGxiYWNrcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9maWxlYXBpL0xvY2FsRmlsZVN5
c3RlbS5oCmluZGV4IGQwOGQwZjBmMGZmNzJiYjAwOGU3NDAwMjAyYmJkMjU0NzNjZDc1NDkuLmJi
MWQwNDUwNDg1YjY0ZGMwMDcwN2Y4ODQ5ZDhjMGVhZWUzNzlhZjQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvTG9jYWxG
aWxlU3lzdGVtLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIC8vIGNhbGxpbmcgdGhp
cyBvbmUuCiAgICAgc3RhdGljIExvY2FsRmlsZVN5c3RlbSYgbG9jYWxGaWxlU3lzdGVtKCk7CiAK
LSAgICB2b2lkIHJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBBc3lu
Y0ZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1D
YWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVxdWVzdEZp
bGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwg
bG9uZyBsb25nIHNpemUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAK
ICNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gVGhpcyBjYWxsIGlzIG5vdCB0aHJlYWQt
c2FmZTsgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3b3JrZXIgdGhyZWFkcyBhcmUgY3JlYXRl
ZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKaW5kZXggM2E3YmI5M2ZkOWIwZDRkNTRlNDEwY2M1MGRlNDYxZDVhZGQ1
YTk0NC4uNWVmYWVhNzI0ZWRmNGMyNjA5ZmExZDBjMWI5YTRmODE5ZGY1Y2NmZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTkzLDYgKzkzLDcgQEAKICNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCiAjaW5j
bHVkZSAiRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5j
bHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3RlbS5o
IgogI2VuZGlmCiAKQEAgLTczMiw3ICs3MzMsMTMgQEAgdm9pZCBET01XaW5kb3c6OnJlcXVlc3RG
aWxlU3lzdGVtKGludCB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lzdGUK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxGaWxl
U3lzdGVtKCkucmVxdWVzdEZpbGVTeXN0ZW0oZG9jdW1lbnQsIHN0YXRpY19jYXN0PEFzeW5jRmls
ZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
ayk7CisgICAgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3RhdGljX2Nh
c3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKTsKKyAgICBpZiAoZmlsZVN5c3RlbVR5cGUg
IT0gQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgJiYgZmlsZVN5c3RlbVR5cGUgIT0gQXN5bmNG
aWxlU3lzdGVtOjpQZXJzaXN0ZW50KSB7CisgICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxl
Q2FsbGJhY2soZG9jdW1lbnQsIGVycm9yQ2FsbGJhY2ssIEZpbGVFcnJvcjo6Y3JlYXRlKElOVkFM
SURfTU9ESUZJQ0FUSU9OX0VSUikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTG9j
YWxGaWxlU3lzdGVtOjpsb2NhbEZpbGVTeXN0ZW0oKS5yZXF1ZXN0RmlsZVN5c3RlbShkb2N1bWVu
dCwgZmlsZVN5c3RlbVR5cGUsIHNpemUsIEZpbGVTeXN0ZW1DYWxsYmFja3M6OmNyZWF0ZShzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGRvY3VtZW50KSk7CiB9CiAKIENPTVBJTEVfQVNT
RVJUKHN0YXRpY19jYXN0PGludD4oRE9NV2luZG93OjpURU1QT1JBUlkpID09IHN0YXRpY19jYXN0
PGludD4oQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkpLCBlbnVtX21pc21hdGNoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcCBiL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCA0OTY0ZDA1ZDc4MzZiMzIwOWQwMjI4YTg5YWI0NzBj
ZmRmMzIwNTMyLi42Y2VlMjQ2MjliN2I4NmZhYzI3YTI1YjViM2FjYWIzODkzZDcwYmE4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiRXJy
b3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIkZpbGVFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0
ZW1DYWxsYmFjay5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKICNpbmNsdWRl
ICJMb2NhbEZpbGVTeXN0ZW0uaCIKICNlbmRpZgogCkBAIC0zNTYsNyArMzU3LDEzIEBAIHZvaWQg
V29ya2VyQ29udGV4dDo6cmVxdWVzdEZpbGVTeXN0ZW0oaW50IHR5cGUsIGxvbmcgbG9uZyBzaXpl
LCBQYXNzUmVmUHRyPEZpbGVTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBMb2NhbEZp
bGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlcXVlc3RGaWxlU3lzdGVtKHRoaXMsIHN0YXRp
Y19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIHN1Y2Nlc3NDYWxsYmFj
aywgZXJyb3JDYWxsYmFjayk7CisgICAgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIGZpbGVTeXN0ZW1U
eXBlID0gc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKTsKKyAgICBpZiAo
ZmlsZVN5c3RlbVR5cGUgIT0gQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgJiYgZmlsZVN5c3Rl
bVR5cGUgIT0gQXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0ZW50KSB7CisgICAgICAgIERPTUZpbGVT
eXN0ZW06OnNjaGVkdWxlQ2FsbGJhY2sodGhpcywgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpj
cmVhdGUoSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBMb2NhbEZpbGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlcXVlc3RGaWxlU3lz
dGVtKHRoaXMsIGZpbGVTeXN0ZW1UeXBlLCBzaXplLCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpjcmVh
dGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzKSk7CiB9CiAKIENPTVBJTEVf
QVNTRVJUKHN0YXRpY19jYXN0PGludD4oV29ya2VyQ29udGV4dDo6VEVNUE9SQVJZKSA9PSBzdGF0
aWNfY2FzdDxpbnQ+KEFzeW5jRmlsZVN5c3RlbTo6VGVtcG9yYXJ5KSwgZW51bV9taXNtYXRjaCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA0MTZjYTMxN2M3ZGUxZDM2OTA3ZDY5NTk1OGVmYzFiMWJhNTNkMjZi
Li43OWQ2YWVmOTQ0ZjAzNDA3NWVkYTdlMDM4MzAzZTU2MzFjODhmOGQ4IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOS0yNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW0NsZWFudXBdIEFkZCBjcmVhdGUgbWV0aG9kIHRvIEZpbGVTeXN0ZW1DYWxsYmFja3MgdG8g
Z2V0IHJpZCBvZiBuYWtlZCBuZXcncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDY1NjEKKworICAgICAgICBBbHNvIGNsZWFudXAgdGhlIGNhbGxiYWNr
cyBsYXllcmluZyB0byBwYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcyBvYmplY3QKKyAgICAg
ICAgdG8gTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSAocmF0aGVyIHRoYW4gRmls
ZVN5c3RlbUNhbGxiYWNrIGFuZAorICAgICAgICBFcnJvckNhbGxiYWNrKSBzbyB0aGF0IGFsbCB0
aGUgY2FsbGJhY2tzIGNsYXNzIHdlIHBhc3MgZnJvbSBXZWJDb3JlIHRvCisgICAgICAgIFdlYktp
dC9jaHJvbWl1bS9zcmMgd2lsbCBiZSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuCisKKyAgICAg
ICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSk6IENoYW5nZWQgdG8gdGFrZQorICAg
ICAgICBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MgYXMgKGEpIGNhbGxiYWNrIGFyZ3VtZW50KHMp
LgorCiAyMDEwLTA5LTI0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgZml4IGNocm9taXVtIGNvbXBpbGUgYWZ0ZXIgcjY4Mjc2IHdoaWNoIHJl
bmFtZWQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hy
b21pdW0uY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5j
cHAKaW5kZXggOTk0ZjMxMDQ2YjNkZDc1NzVhYTAxOWU2ZTE4OTliYWZmMTkwOTMxOC4uN2JmNDMz
NWZkYTc2MWFlY2I1MjE0MGYxMjc0MWIwMjg4YjgwZWE5MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTU3LDE4ICs1NywxOCBAQCBM
b2NhbEZpbGVTeXN0ZW0mIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkKICAgICBy
ZXR1cm4gKmxvY2FsRmlsZVN5c3RlbTsKIH0KIAotdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVl
c3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5
c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNh
bGxiYWNrKQordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25n
IGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNr
cykKIHsKICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQo
KSkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KGNvbnRleHQpOwogICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBs
Ojpmcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwotICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50
KCktPm9wZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpU
eXBlPih0eXBlKSwgc2l6ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKG5ldyBGaWxl
U3lzdGVtQ2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkp
KTsKKyAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFtZSwg
c3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKICAgICB9IGVsc2UgewogICAgICAgICBX
b3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+
KGNvbnRleHQpOwogICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSogd29ya2VyTG9hZGVyUHJveHkg
PSAmd29ya2VyQ29udGV4dC0+dGhyZWFkKCktPndvcmtlckxvYWRlclByb3h5KCk7CiAgICAgICAg
IFdlYldvcmtlckJhc2UqIHdlYldvcmtlciA9IHN0YXRpY19jYXN0PFdlYldvcmtlckJhc2UqPih3
b3JrZXJMb2FkZXJQcm94eSk7Ci0gICAgICAgIHdlYldvcmtlci0+b3BlbkZpbGVTeXN0ZW0oc3Rh
dGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxlU3lz
dGVtQ2FsbGJhY2tzSW1wbChuZXcgRmlsZVN5c3RlbUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2ssIGNvbnRleHQpKSk7CisgICAgICAgIHdlYldvcmtlci0+b3BlbkZpbGVT
eXN0ZW0oc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68821</attachid>
            <date>2010-09-25 03:23:27 -0700</date>
            <delta_ts>2010-09-26 21:17:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46561-20100925032325.patch</filename>
            <type>text/plain</type>
            <size>25182</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDQ3ZTQ4NDY4ZDczYTFmMWE0YjdkYzMxNWI0ZmE2NjBlYzc4ZmFhMS4uODk4YmUwMjFmODBmYzM0
NGE3ODg3ZjY3M2ZkNDg4MDc4YzFjMTIxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOS0yNSAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDbGVhbnVwXSBBZGQgY3JlYXRlIG1ldGhvZCB0byBG
aWxlU3lzdGVtQ2FsbGJhY2tzIHRvIGdldCByaWQgb2YgbmFrZWQgbmV3J3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NTYxCisKKyAgICAgICAgQWxz
byBjbGVhbnVwIHRoZSBjYWxsYmFja3MgbGF5ZXJpbmcgdG8gcGFzcyBBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3MKKyAgICAgICAgb2JqZWN0IHRvIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVT
eXN0ZW0gKHJhdGhlciB0aGFuCisgICAgICAgIEZpbGVTeXN0ZW1DYWxsYmFjayBhbmQgRXJyb3JD
YWxsYmFjaykgc28gdGhhdCBhbGwgdGhlIGNhbGxiYWNrcyBjbGFzcworICAgICAgICB3ZSBwYXNz
IGZyb20gV2ViQ29yZSB0byBXZWJLaXQvY2hyb21pdW0vc3JjIHdpbGwgYmUKKyAgICAgICAgQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGhpcyBwYXRj
aCBpcyBvbmx5IGZvciBjbGVhbnVwIGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb25hbGl0
eSBjaGFuZ2VzLgorCisgICAgICAgICogZmlsZWFwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OmdldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUZpbGVTeXN0ZW06Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3Rl
bTo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpyZW1vdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6Z2V0UGFyZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUZpbGVTeXN0ZW06OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5
c3RlbTo6Z2V0RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OmNy
ZWF0ZVdyaXRlcik6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpyZWFkRGlyZWN0
b3J5KToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RW50cnlDYWxsYmFja3M6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RW50cmllc0NhbGxiYWNrczo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtQ2FsbGJhY2tzOjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1ldGFkYXRhQ2FsbGJhY2tzOjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVXcml0ZXJDYWxsYmFja3M6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Vm9p
ZENhbGxiYWNrczo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogZmlsZWFwaS9GaWxlU3lzdGVt
Q2FsbGJhY2tzLmg6CisgICAgICAgICogZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlbkZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxG
aWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSk6IENoYW5nZWQgdG8gdGFrZQorICAgICAgICBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MgYXMgKGEpIGNhbGxiYWNrIGFyZ3VtZW50KHMpLgorICAg
ICAgICAqIGZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmg6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXF1ZXN0RmlsZVN5c3RlbSk6
IE1hZGUgYSBjb3JyZXNwb25kaW5nIGNoYW5nZQorICAgICAgICB0byBMb2NhbEZpbGVTeXN0ZW06
OnJlcXVlc3RGaWxlU3lzdGVtLgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpyZXF1ZXN0RmlsZVN5c3RlbSk6IE1h
ZGUgYSBjb3JyZXNwb25kaW5nIGNoYW5nZQorICAgICAgICB0byBMb2NhbEZpbGVTeXN0ZW06OnJl
cXVlc3RGaWxlU3lzdGVtLgorCiAyMDEwLTA5LTI0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvV2ViQ29yZS9maWxlYXBp
L0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IGFmZDNlMWViMTJlYWE2NTk4YzUzMGU1YmNjMjU5Y2Y0
NzZmN2Y1MTQuLjJiZDA5YzJmMGRlY2Y3YjUwZmZiZDg0M2I2MDRlYTExYjQ5NWQ0ZGEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9XZWJDb3JlL2Zp
bGVhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEaXJl
Y3RvcnlFbnRyeS5oIgogI2luY2x1ZGUgIkVudHJpZXNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkVu
dHJ5LmgiCisjaW5jbHVkZSAiRW50cnlBcnJheS5oIgogI2luY2x1ZGUgIkVudHJ5Q2FsbGJhY2su
aCIKICNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZUVudHJ5LmgiCkBA
IC04Nyw3ICs4OCw3IEBAIHZvaWQgRE9NRmlsZVN5c3RlbTo6Y29udGV4dERlc3Ryb3llZCgpCiB2
b2lkIERPTUZpbGVTeXN0ZW06OmdldE1ldGFkYXRhKGNvbnN0IEVudHJ5KiBlbnRyeSwgUGFzc1Jl
ZlB0cjxNZXRhZGF0YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKIHsKICAgICBTdHJpbmcgcGxhdGZvcm1QYXRoID0gbV9h
c3luY0ZpbGVTeXN0ZW0tPnZpcnR1YWxUb1BsYXRmb3JtUGF0aChlbnRyeS0+ZnVsbFBhdGgoKSk7
Ci0gICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnJlYWRNZXRhZGF0YShwbGF0Zm9ybVBhdGgsIG5ldyBN
ZXRhZGF0YUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICBt
X2FzeW5jRmlsZVN5c3RlbS0+cmVhZE1ldGFkYXRhKHBsYXRmb3JtUGF0aCwgTWV0YWRhdGFDYWxs
YmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKIH0KIAogc3Rh
dGljIGJvb2wgY2hlY2tWYWxpZGl0eUZvckZvckNvcHlPck1vdmUoY29uc3QgRW50cnkqIHNyYywg
RW50cnkqIHBhcmVudCwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQpAQCAtMTI2LDcgKzEyNyw3IEBA
IHZvaWQgRE9NRmlsZVN5c3RlbTo6bW92ZShjb25zdCBFbnRyeSogc3JjLCBQYXNzUmVmUHRyPEVu
dHJ5PiBwYXJlbnQsIGNvbnN0IFN0cmluCiAKICAgICBTdHJpbmcgc3JjUGxhdGZvcm1QYXRoID0g
bV9hc3luY0ZpbGVTeXN0ZW0tPnZpcnR1YWxUb1BsYXRmb3JtUGF0aChzcmMtPmZ1bGxQYXRoKCkp
OwogICAgIFN0cmluZyBkZXN0UGxhdGZvcm1QYXRoID0gcGFyZW50LT5maWxlc3lzdGVtKCktPmFz
eW5jRmlsZVN5c3RlbSgpLT52aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoZGVzdFBhdGgpOwotICAgIG1f
YXN5bmNGaWxlU3lzdGVtLT5tb3ZlKHNyY1BsYXRmb3JtUGF0aCwgZGVzdFBsYXRmb3JtUGF0aCwg
bmV3IEVudHJ5Q2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywg
ZGVzdFBhdGgsIHNyYy0+aXNEaXJlY3RvcnkoKSkpOworICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5t
b3ZlKHNyY1BsYXRmb3JtUGF0aCwgZGVzdFBsYXRmb3JtUGF0aCwgRW50cnlDYWxsYmFja3M6OmNy
ZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGRlc3RQYXRoLCBzcmMt
PmlzRGlyZWN0b3J5KCkpKTsKIH0KIAogdm9pZCBET01GaWxlU3lzdGVtOjpjb3B5KGNvbnN0IEVu
dHJ5KiBzcmMsIFBhc3NSZWZQdHI8RW50cnk+IHBhcmVudCwgY29uc3QgU3RyaW5nJiBuZXdOYW1l
LCBQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxF
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQpAQCAtMTQ0LDE0ICsxNDUsMTQgQEAgdm9pZCBE
T01GaWxlU3lzdGVtOjpjb3B5KGNvbnN0IEVudHJ5KiBzcmMsIFBhc3NSZWZQdHI8RW50cnk+IHBh
cmVudCwgY29uc3QgU3RyaW4KIAogICAgIFN0cmluZyBzcmNQbGF0Zm9ybVBhdGggPSBtX2FzeW5j
RmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKHNyYy0+ZnVsbFBhdGgoKSk7CiAgICAg
U3RyaW5nIGRlc3RQbGF0Zm9ybVBhdGggPSBwYXJlbnQtPmZpbGVzeXN0ZW0oKS0+YXN5bmNGaWxl
U3lzdGVtKCktPnZpcnR1YWxUb1BsYXRmb3JtUGF0aChkZXN0UGF0aCk7Ci0gICAgbV9hc3luY0Zp
bGVTeXN0ZW0tPmNvcHkoc3JjUGxhdGZvcm1QYXRoLCBkZXN0UGxhdGZvcm1QYXRoLCBuZXcgRW50
cnlDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzLCBkZXN0UGF0
aCwgc3JjLT5pc0RpcmVjdG9yeSgpKSk7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPmNvcHkoc3Jj
UGxhdGZvcm1QYXRoLCBkZXN0UGxhdGZvcm1QYXRoLCBFbnRyeUNhbGxiYWNrczo6Y3JlYXRlKHN1
Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgZGVzdFBhdGgsIHNyYy0+aXNEaXJl
Y3RvcnkoKSkpOwogfQogCiB2b2lkIERPTUZpbGVTeXN0ZW06OnJlbW92ZShjb25zdCBFbnRyeSog
ZW50cnksIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKIHsKICAgICBBU1NFUlQoZW50cnkpOwog
ICAgIFN0cmluZyBwbGF0Zm9ybVBhdGggPSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxh
dGZvcm1QYXRoKGVudHJ5LT5mdWxsUGF0aCgpKTsKLSAgICBtX2FzeW5jRmlsZVN5c3RlbS0+cmVt
b3ZlKHBsYXRmb3JtUGF0aCwgbmV3IFZvaWRDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJv
ckNhbGxiYWNrKSk7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPnJlbW92ZShwbGF0Zm9ybVBhdGgs
IFZvaWRDYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsK
IH0KIAogdm9pZCBET01GaWxlU3lzdGVtOjpnZXRQYXJlbnQoY29uc3QgRW50cnkqIGVudHJ5LCBQ
YXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQpAQCAtMTU5LDcgKzE2MCw3IEBAIHZvaWQgRE9NRmls
ZVN5c3RlbTo6Z2V0UGFyZW50KGNvbnN0IEVudHJ5KiBlbnRyeSwgUGFzc1JlZlB0cjxFbnRyeUNh
bGxiYWNrPiBzdWNjCiAgICAgQVNTRVJUKGVudHJ5KTsKICAgICBTdHJpbmcgcGF0aCA9IERPTUZp
bGVQYXRoOjpnZXREaXJlY3RvcnkoZW50cnktPmZ1bGxQYXRoKCkpOwogICAgIFN0cmluZyBwbGF0
Zm9ybVBhdGggPSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgp
OwotICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5kaXJlY3RvcnlFeGlzdHMocGxhdGZvcm1QYXRoLCBu
ZXcgRW50cnlDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzLCBw
YXRoLCB0cnVlKSk7CisgICAgbV9hc3luY0ZpbGVTeXN0ZW0tPmRpcmVjdG9yeUV4aXN0cyhwbGF0
Zm9ybVBhdGgsIEVudHJ5Q2FsbGJhY2tzOjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNh
bGxiYWNrLCB0aGlzLCBwYXRoLCB0cnVlKSk7CiB9CiAKIHZvaWQgRE9NRmlsZVN5c3RlbTo6Z2V0
RmlsZShjb25zdCBFbnRyeSogYmFzZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzUmVmUHRyPEZs
YWdzPiBmbGFncywgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBh
c3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKQEAgLTE3NSw3ICsxNzYsNyBA
QCB2b2lkIERPTUZpbGVTeXN0ZW06OmdldEZpbGUoY29uc3QgRW50cnkqIGJhc2UsIGNvbnN0IFN0
cmluZyYgcGF0aCwgUGFzc1JlZlB0cjxGbAogICAgICAgICBhYnNvbHV0ZVBhdGggPSBET01GaWxl
UGF0aDo6cmVtb3ZlRXh0cmFQYXJlbnRSZWZlcmVuY2VzKERPTUZpbGVQYXRoOjphcHBlbmQoYmFz
ZS0+ZnVsbFBhdGgoKSwgcGF0aCkpOwogICAgIFN0cmluZyBwbGF0Zm9ybVBhdGggPSBtX2FzeW5j
RmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKGFic29sdXRlUGF0aCk7CiAKLSAgICBP
d25QdHI8RW50cnlDYWxsYmFja3M+IGNhbGxiYWNrcyA9IGFkb3B0UHRyKG5ldyBFbnRyeUNhbGxi
YWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGFic29sdXRlUGF0aCwg
ZmFsc2UpKTsKKyAgICBPd25QdHI8RW50cnlDYWxsYmFja3M+IGNhbGxiYWNrcyA9IEVudHJ5Q2Fs
bGJhY2tzOjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzLCBhYnNv
bHV0ZVBhdGgsIGZhbHNlKTsKICAgICBpZiAoZmxhZ3MgJiYgZmxhZ3MtPmlzQ3JlYXRlKCkpCiAg
ICAgICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5jcmVhdGVGaWxlKHBsYXRmb3JtUGF0aCwgZmxhZ3Mt
PmlzRXhjbHVzaXZlKCksIGNhbGxiYWNrcy5yZWxlYXNlKCkpOwogICAgIGVsc2UKQEAgLTE5NSw3
ICsxOTYsNyBAQCB2b2lkIERPTUZpbGVTeXN0ZW06OmdldERpcmVjdG9yeShjb25zdCBFbnRyeSog
YmFzZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzUmVmUAogICAgICAgICBhYnNvbHV0ZVBhdGgg
PSBET01GaWxlUGF0aDo6cmVtb3ZlRXh0cmFQYXJlbnRSZWZlcmVuY2VzKERPTUZpbGVQYXRoOjph
cHBlbmQoYmFzZS0+ZnVsbFBhdGgoKSwgcGF0aCkpOwogICAgIFN0cmluZyBwbGF0Zm9ybVBhdGgg
PSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKGFic29sdXRlUGF0aCk7
CiAKLSAgICBPd25QdHI8RW50cnlDYWxsYmFja3M+IGNhbGxiYWNrcyA9IGFkb3B0UHRyKG5ldyBF
bnRyeUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMsIGFic29s
dXRlUGF0aCwgdHJ1ZSkpOworICAgIE93blB0cjxFbnRyeUNhbGxiYWNrcz4gY2FsbGJhY2tzID0g
RW50cnlDYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRo
aXMsIGFic29sdXRlUGF0aCwgdHJ1ZSk7CiAgICAgaWYgKGZsYWdzICYmIGZsYWdzLT5pc0NyZWF0
ZSgpKQogICAgICAgICBtX2FzeW5jRmlsZVN5c3RlbS0+Y3JlYXRlRGlyZWN0b3J5KHBsYXRmb3Jt
UGF0aCwgZmxhZ3MtPmlzRXhjbHVzaXZlKCksIGNhbGxiYWNrcy5yZWxlYXNlKCkpOwogICAgIGVs
c2UKQEAgLTIwOSw3ICsyMTAsNyBAQCB2b2lkIERPTUZpbGVTeXN0ZW06OmNyZWF0ZVdyaXRlcihj
b25zdCBGaWxlRW50cnkqIGZpbGUsIFBhc3NSZWZQdHI8RmlsZVdyaXRlckNhbAogICAgIFN0cmlu
ZyBwbGF0Zm9ybVBhdGggPSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRo
KGZpbGUtPmZ1bGxQYXRoKCkpOwogCiAgICAgUmVmUHRyPEZpbGVXcml0ZXI+IGZpbGVXcml0ZXIg
PSBGaWxlV3JpdGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBPd25Q
dHI8RmlsZVdyaXRlckNhbGxiYWNrcz4gY2FsbGJhY2tzID0gYWRvcHRQdHIobmV3IEZpbGVXcml0
ZXJDYWxsYmFja3MoZmlsZVdyaXRlciwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7
CisgICAgT3duUHRyPEZpbGVXcml0ZXJDYWxsYmFja3M+IGNhbGxiYWNrcyA9IEZpbGVXcml0ZXJD
YWxsYmFja3M6OmNyZWF0ZShmaWxlV3JpdGVyLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJh
Y2spOwogICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5jcmVhdGVXcml0ZXIoZmlsZVdyaXRlci5nZXQo
KSwgcGxhdGZvcm1QYXRoLCBjYWxsYmFja3MucmVsZWFzZSgpKTsKIH0KIApAQCAtMjE3LDcgKzIx
OCw3IEBAIHZvaWQgRE9NRmlsZVN5c3RlbTo6cmVhZERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBh
dGgsIFBhc3NSZWZQdHI8RW50cmllc0NhbGxiYWNrCiB7CiAgICAgQVNTRVJUKERPTUZpbGVQYXRo
Ojppc0Fic29sdXRlKHBhdGgpKTsKICAgICBTdHJpbmcgcGxhdGZvcm1QYXRoID0gbV9hc3luY0Zp
bGVTeXN0ZW0tPnZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKTsKLSAgICBtX2FzeW5jRmlsZVN5
c3RlbS0+cmVhZERpcmVjdG9yeShwbGF0Zm9ybVBhdGgsIG5ldyBFbnRyaWVzQ2FsbGJhY2tzKHN1
Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgcGF0aCkpOworICAgIG1fYXN5bmNG
aWxlU3lzdGVtLT5yZWFkRGlyZWN0b3J5KHBsYXRmb3JtUGF0aCwgRW50cmllc0NhbGxiYWNrczo6
Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcywgcGF0aCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0ZpbGVTeXN0ZW1D
YWxsYmFja3MuY3BwIGIvV2ViQ29yZS9maWxlYXBpL0ZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwCmlu
ZGV4IGZjYzg2MGY2Yzk4OTRhYTY4NWI3ZDYxODE2NTlmZTQwZmE5ODI5MzAuLjU1MGI1MDliNGI5
NTNiOTQ2NDliMGJkYTM2NDcyMGQwOTllMzU2YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZmlsZWFw
aS9GaWxlU3lzdGVtQ2FsbGJhY2tzLmNwcAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRmlsZVN5c3Rl
bUNhbGxiYWNrcy5jcHAKQEAgLTExMCw2ICsxMTAsMTEgQEAgdm9pZCBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZTo6ZGlkRmFpbChpbnQgY29kZSkKIAogLy8gRW50cnlDYWxsYmFja3MgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQ
YXNzT3duUHRyPEVudHJ5Q2FsbGJhY2tzPiBFbnRyeUNhbGxiYWNrczo6Y3JlYXRlKFBhc3NSZWZQ
dHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJh
Y2s+IGVycm9yQ2FsbGJhY2ssIERPTUZpbGVTeXN0ZW0qIGZpbGVTeXN0ZW0sIGNvbnN0IFN0cmlu
ZyYgZXhwZWN0ZWRQYXRoLCBib29sIGlzRGlyZWN0b3J5KQoreworICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRW50cnlDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBmaWxl
U3lzdGVtLCBleHBlY3RlZFBhdGgsIGlzRGlyZWN0b3J5KSk7Cit9CisKIEVudHJ5Q2FsbGJhY2tz
OjpFbnRyeUNhbGxiYWNrcyhQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFj
aywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBET01GaWxlU3lzdGVt
KiBmaWxlU3lzdGVtLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkUGF0aCwgYm9vbCBpc0RpcmVjdG9y
eSkKICAgICA6IEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlKGVycm9yQ2FsbGJhY2spCiAgICAgLCBt
X3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCkBAIC0xMzIsNiArMTM3LDExIEBAIHZv
aWQgRW50cnlDYWxsYmFja3M6OmRpZFN1Y2NlZWQoKQogCiAvLyBFbnRyaWVzQ2FsbGJhY2tzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKK1Bhc3NPd25QdHI8RW50cmllc0NhbGxiYWNrcz4gRW50cmllc0NhbGxiYWNrczo6Y3JlYXRl
KFBhc3NSZWZQdHI8RW50cmllc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRE9NRmlsZVN5c3RlbSogZmlsZVN5c3RlbSwg
Y29uc3QgU3RyaW5nJiBiYXNlUGF0aCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEVudHJp
ZXNDYWxsYmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBmaWxlU3lzdGVtLCBi
YXNlUGF0aCkpOworfQorCiBFbnRyaWVzQ2FsbGJhY2tzOjpFbnRyaWVzQ2FsbGJhY2tzKFBhc3NS
ZWZQdHI8RW50cmllc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRE9NRmlsZVN5c3RlbSogZmlsZVN5c3RlbSwgY29uc3Qg
U3RyaW5nJiBiYXNlUGF0aCkKICAgICA6IEZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlKGVycm9yQ2Fs
bGJhY2spCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCkBAIC0xNjQs
NiArMTc0LDExIEBAIHZvaWQgRW50cmllc0NhbGxiYWNrczo6ZGlkUmVhZERpcmVjdG9yeUVudHJp
ZXMoYm9vbCBoYXNNb3JlKQogCiAvLyBGaWxlU3lzdGVtQ2FsbGJhY2tzIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1Bhc3NPd25QdHI8
RmlsZVN5c3RlbUNhbGxiYWNrcz4gRmlsZVN5c3RlbUNhbGxiYWNrczo6Y3JlYXRlKFBhc3NSZWZQ
dHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZpbGVTeXN0ZW1DYWxs
YmFja3Moc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KSk7Cit9CisKIEZpbGVTeXN0ZW1DYWxsYmFja3M6OkZpbGVTeXN0ZW1DYWxsYmFja3MoUGFz
c1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxF
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQogICAgIDogRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2UoZXJyb3JDYWxsYmFjaykKICAgICAs
IG1fc3VjY2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaykKQEAgLTE4Myw2ICsxOTgsMTEgQEAg
dm9pZCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcm
IG5hbWUsIFBhc3NPd25QdHI8QXN5bmMKIAogLy8gTWV0YWRhdGFDYWxsYmFja3MgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQYXNz
T3duUHRyPE1ldGFkYXRhQ2FsbGJhY2tzPiBNZXRhZGF0YUNhbGxiYWNrczo6Y3JlYXRlKFBhc3NS
ZWZQdHI8TWV0YWRhdGFDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZXRh
ZGF0YUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKK30KKwogTWV0
YWRhdGFDYWxsYmFja3M6Ok1ldGFkYXRhQ2FsbGJhY2tzKFBhc3NSZWZQdHI8TWV0YWRhdGFDYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2spCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAg
ICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQpAQCAtMTk4LDYgKzIxOCwxMSBA
QCB2b2lkIE1ldGFkYXRhQ2FsbGJhY2tzOjpkaWRSZWFkTWV0YWRhdGEoZG91YmxlIG1vZGlmaWNh
dGlvblRpbWUpCiAKIC8vIEZpbGVXcml0ZXJDYWxsYmFja3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQYXNzT3duUHRyPEZpbGVX
cml0ZXJDYWxsYmFja3M+IEZpbGVXcml0ZXJDYWxsYmFja3M6OmNyZWF0ZShQYXNzUmVmUHRyPEZp
bGVXcml0ZXI+IGZpbGVXcml0ZXIsIFBhc3NSZWZQdHI8RmlsZVdyaXRlckNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZpbGVXcml0ZXJDYWxsYmFja3MoZmlsZVdyaXRlciwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7Cit9CisKIEZpbGVXcml0ZXJDYWxsYmFj
a3M6OkZpbGVXcml0ZXJDYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlV3JpdGVyPiBmaWxlV3JpdGVy
LCBQYXNzUmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiAgICAgOiBGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwgbV9maWxlV3JpdGVyKGZpbGVXcml0ZXIpCkBA
IC0yMTUsNiArMjQwLDExIEBAIHZvaWQgRmlsZVdyaXRlckNhbGxiYWNrczo6ZGlkQ3JlYXRlRmls
ZVdyaXRlcihQYXNzT3duUHRyPEFzeW5jRmlsZVdyaXRlcj4gYXN5bmNGCiAKIC8vIFZvaWRDYWxs
YmFja3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAorUGFzc093blB0cjxWb2lkQ2FsbGJhY2tzPiBWb2lkQ2FsbGJhY2tzOjpj
cmVhdGUoUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0
cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgVm9pZENhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKK30KKwog
Vm9pZENhbGxiYWNrczo6Vm9pZENhbGxiYWNrcyhQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3Vj
Y2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiAg
ICAgOiBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZShlcnJvckNhbGxiYWNrKQogICAgICwgbV9zdWNj
ZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBp
L0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBiL1dlYkNvcmUvZmlsZWFwaS9GaWxlU3lzdGVtQ2FsbGJh
Y2tzLmgKaW5kZXggYTVlOTU2MDFmZDhlN2IwM2JhMWNmNGI1MjRkNGMyODg5MGRhMjhjNy4uMzY0
N2FkMzE5YjY3ODY0NjYyZTlkOGRmNjNiOWViNDk3NGFlYTE1NCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9maWxlYXBpL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVN5c3RlbUNhbGxiYWNrcy5oCkBAIC04NSwxMCArODUsMTEgQEAgcHJvdGVjdGVkOgogCiBjbGFz
cyBFbnRyeUNhbGxiYWNrcyA6IHB1YmxpYyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJs
aWM6Ci0gICAgRW50cnlDYWxsYmFja3MoUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxFcnJvckNhbGxiYWNrPiwgRE9NRmlsZVN5c3RlbSosIGNvbnN0IFN0cmluZyYgZXhwZWN0
ZWRQYXRoLCBib29sIGlzRGlyZWN0b3J5KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxFbnRyeUNh
bGxiYWNrcz4gY3JlYXRlKFBhc3NSZWZQdHI8RW50cnlDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJy
b3JDYWxsYmFjaz4sIERPTUZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkUGF0aCwg
Ym9vbCBpc0RpcmVjdG9yeSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoKTsKIAogcHJp
dmF0ZToKKyAgICBFbnRyeUNhbGxiYWNrcyhQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+LCBQYXNz
UmVmUHRyPEVycm9yQ2FsbGJhY2s+LCBET01GaWxlU3lzdGVtKiwgY29uc3QgU3RyaW5nJiBleHBl
Y3RlZFBhdGgsIGJvb2wgaXNEaXJlY3RvcnkpOwogICAgIFJlZlB0cjxFbnRyeUNhbGxiYWNrPiBt
X3N1Y2Nlc3NDYWxsYmFjazsKICAgICBET01GaWxlU3lzdGVtKiBtX2ZpbGVTeXN0ZW07CiAgICAg
U3RyaW5nIG1fZXhwZWN0ZWRQYXRoOwpAQCAtOTcsMTEgKzk4LDEyIEBAIHByaXZhdGU6CiAKIGNs
YXNzIEVudHJpZXNDYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2Ugewog
cHVibGljOgotICAgIEVudHJpZXNDYWxsYmFja3MoUGFzc1JlZlB0cjxFbnRyaWVzQ2FsbGJhY2s+
LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+LCBET01GaWxlU3lzdGVtKiwgY29uc3QgU3RyaW5n
JiBiYXNlUGF0aCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8RW50cmllc0NhbGxiYWNrcz4gY3Jl
YXRlKFBhc3NSZWZQdHI8RW50cmllc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNr
PiwgRE9NRmlsZVN5c3RlbSosIGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWFkRGlyZWN0b3J5RW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGlzRGly
ZWN0b3J5KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZERpcmVjdG9yeUVudHJpZXMoYm9vbCBo
YXNNb3JlKTsKIAogcHJpdmF0ZToKKyAgICBFbnRyaWVzQ2FsbGJhY2tzKFBhc3NSZWZQdHI8RW50
cmllc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwgRE9NRmlsZVN5c3RlbSos
IGNvbnN0IFN0cmluZyYgYmFzZVBhdGgpOwogICAgIFJlZlB0cjxFbnRyaWVzQ2FsbGJhY2s+IG1f
c3VjY2Vzc0NhbGxiYWNrOwogICAgIERPTUZpbGVTeXN0ZW0qIG1fZmlsZVN5c3RlbTsKICAgICBT
dHJpbmcgbV9iYXNlUGF0aDsKQEAgLTExMCwzOSArMTEyLDQzIEBAIHByaXZhdGU6CiAKIGNsYXNz
IEZpbGVTeXN0ZW1DYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2Ugewog
cHVibGljOgotICAgIEZpbGVTeXN0ZW1DYWxsYmFja3MoUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrcz4gY3JlYXRlKFBh
c3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRmlsZVN5
c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiAK
IHByaXZhdGU6CisgICAgRmlsZVN5c3RlbUNhbGxiYWNrcyhQYXNzUmVmUHRyPEZpbGVTeXN0ZW1D
YWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsK
ICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogfTsKIAogY2xhc3MgTWV0YWRhdGFDYWxsYmFja3MgOiBwdWJsaWMgRmlsZVN5c3RlbUNh
bGxiYWNrc0Jhc2UgewogcHVibGljOgotICAgIE1ldGFkYXRhQ2FsbGJhY2tzKFBhc3NSZWZQdHI8
TWV0YWRhdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworICAgIHN0YXRp
YyBQYXNzT3duUHRyPE1ldGFkYXRhQ2FsbGJhY2tzPiBjcmVhdGUoUGFzc1JlZlB0cjxNZXRhZGF0
YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlYWRNZXRhZGF0YShkb3VibGUgbW9kaWZpY2F0aW9uVGltZSk7CiAKIHByaXZhdGU6Cisg
ICAgTWV0YWRhdGFDYWxsYmFja3MoUGFzc1JlZlB0cjxNZXRhZGF0YUNhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxFcnJvckNhbGxiYWNrPik7CiAgICAgUmVmUHRyPE1ldGFkYXRhQ2FsbGJhY2s+IG1fc3Vj
Y2Vzc0NhbGxiYWNrOwogfTsKIAogY2xhc3MgRmlsZVdyaXRlckNhbGxiYWNrcyA6IHB1YmxpYyBG
aWxlU3lzdGVtQ2FsbGJhY2tzQmFzZSB7CiBwdWJsaWM6Ci0gICAgRmlsZVdyaXRlckNhbGxiYWNr
cyhQYXNzUmVmUHRyPEZpbGVXcml0ZXI+LCBQYXNzUmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4s
IFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEZpbGVX
cml0ZXJDYWxsYmFja3M+IGNyZWF0ZShQYXNzUmVmUHRyPEZpbGVXcml0ZXI+LCBQYXNzUmVmUHRy
PEZpbGVXcml0ZXJDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDcmVhdGVGaWxlV3JpdGVyKFBhc3NPd25QdHI8QXN5bmNGaWxlV3JpdGVy
PiwgbG9uZyBsb25nIGxlbmd0aCk7CiAKIHByaXZhdGU6CisgICAgRmlsZVdyaXRlckNhbGxiYWNr
cyhQYXNzUmVmUHRyPEZpbGVXcml0ZXI+LCBQYXNzUmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4s
IFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOwogICAgIFJlZlB0cjxGaWxlV3JpdGVyPiBtX2Zp
bGVXcml0ZXI7CiAgICAgUmVmUHRyPEZpbGVXcml0ZXJDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJh
Y2s7CiB9OwogCiBjbGFzcyBWb2lkQ2FsbGJhY2tzIDogcHVibGljIEZpbGVTeXN0ZW1DYWxsYmFj
a3NCYXNlIHsKIHB1YmxpYzoKLSAgICBWb2lkQ2FsbGJhY2tzKFBhc3NSZWZQdHI8Vm9pZENhbGxi
YWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8
Vm9pZENhbGxiYWNrcz4gY3JlYXRlKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0
cjxFcnJvckNhbGxiYWNrPik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoKTsKIAogcHJp
dmF0ZToKKyAgICBWb2lkQ2FsbGJhY2tzKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxFcnJvckNhbGxiYWNrPik7CiAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gbV9zdWNjZXNz
Q2FsbGJhY2s7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lz
dGVtLmNwcCBiL1dlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCmluZGV4IGY4MjZi
NzFjMmRkN2IxNTI0ZDAwOGMyMWZmNGJjZmRjOTc3OGM4YTcuLjU2N2FhZmU2NmY3ZDdjNTAwODNh
OTVlNDI4ZjhlZjU5YWRmYTc5ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZmlsZWFwaS9Mb2NhbEZp
bGVTeXN0ZW0uY3BwCisrKyBiL1dlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCkBA
IC03NiwyMCArNzYsMTUgQEAgU3RyaW5nIExvY2FsRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbUJhc2VQ
YXRoKCkgY29uc3QKICAgICByZXR1cm4gbV9iYXNlUGF0aDsKIH0KIAotc3RhdGljIHZvaWQgb3Bl
bkZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgYmFzZVBh
dGgsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUs
IFBhc3NPd25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQorc3RhdGljIHZvaWQg
b3BlbkZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgYmFz
ZVBhdGgsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5
cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAg
ICAgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShiYXNlUGF0aCwgaWRlbnRpZmllciwg
dHlwZSwgY2FsbGJhY2tzKTsKIH0KIAotdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxl
U3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6
VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3Zv
aWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25nLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewotICAgIGlmICh0
eXBlICE9IEFzeW5jRmlsZVN5c3RlbTo6VGVtcG9yYXJ5ICYmIHR5cGUgIT0gQXN5bmNGaWxlU3lz
dGVtOjpQZXJzaXN0ZW50KSB7Ci0gICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxlQ2FsbGJh
Y2soY29udGV4dCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUoSU5WQUxJRF9NT0RJ
RklDQVRJT05fRVJSKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBBc3luY0Zp
bGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtIGNhbGxzIGNhbGxiYWNrcyBzeW5jaHJvbm91c2x5LCBz
byB0aGUgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseS4KLSAgICBjb250
ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lz
dGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlm
aWVyKCksIHR5cGUsIG5ldyBGaWxlU3lzdGVtQ2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJy
b3JDYWxsYmFjaywgY29udGV4dCkpKTsKKyAgICBjb250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxs
YmFja1Rhc2soJm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIGNhbGxiYWNrcykp
OwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0xvY2Fs
RmlsZVN5c3RlbS5oIGIvV2ViQ29yZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5oCmluZGV4IGQw
OGQwZjBmMGZmNzJiYjAwOGU3NDAwMjAyYmJkMjU0NzNjZDc1NDkuLmJiMWQwNDUwNDg1YjY0ZGMw
MDcwN2Y4ODQ5ZDhjMGVhZWUzNzlhZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZmlsZWFwaS9Mb2Nh
bEZpbGVTeXN0ZW0uaAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmgKQEAg
LTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIC8vIGNhbGxpbmcgdGhpcyBvbmUuCiAgICAgc3Rh
dGljIExvY2FsRmlsZVN5c3RlbSYgbG9jYWxGaWxlU3lzdGVtKCk7CiAKLSAgICB2b2lkIHJlcXVl
c3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBBc3luY0ZpbGVTeXN0ZW06OlR5
cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAKICNpZiAhUExBVEZPUk0o
Q0hST01JVU0pCiAgICAgLy8gVGhpcyBjYWxsIGlzIG5vdCB0aHJlYWQtc2FmZTsgbXVzdCBiZSBj
YWxsZWQgYmVmb3JlIGFueSB3b3JrZXIgdGhyZWFkcyBhcmUgY3JlYXRlZC4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
aW5kZXggM2E3YmI5M2ZkOWIwZDRkNTRlNDEwY2M1MGRlNDYxZDVhZGQ1YTk0NC4uNWVmYWVhNzI0
ZWRmNGMyNjA5ZmExZDBjMWI5YTRmODE5ZGY1Y2NmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTkzLDYg
KzkzLDcgQEAKICNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZVN5c3Rl
bUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgogI2VuZGlmCiAKQEAg
LTczMiw3ICs3MzMsMTMgQEAgdm9pZCBET01XaW5kb3c6OnJlcXVlc3RGaWxlU3lzdGVtKGludCB0
eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lzdGUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVxdWVz
dEZpbGVTeXN0ZW0oZG9jdW1lbnQsIHN0YXRpY19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4o
dHlwZSksIHNpemUsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgQXN5bmNG
aWxlU3lzdGVtOjpUeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lz
dGVtOjpUeXBlPih0eXBlKTsKKyAgICBpZiAoZmlsZVN5c3RlbVR5cGUgIT0gQXN5bmNGaWxlU3lz
dGVtOjpUZW1wb3JhcnkgJiYgZmlsZVN5c3RlbVR5cGUgIT0gQXN5bmNGaWxlU3lzdGVtOjpQZXJz
aXN0ZW50KSB7CisgICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxlQ2FsbGJhY2soZG9jdW1l
bnQsIGVycm9yQ2FsbGJhY2ssIEZpbGVFcnJvcjo6Y3JlYXRlKElOVkFMSURfTU9ESUZJQ0FUSU9O
X0VSUikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTG9jYWxGaWxlU3lzdGVtOjps
b2NhbEZpbGVTeXN0ZW0oKS5yZXF1ZXN0RmlsZVN5c3RlbShkb2N1bWVudCwgZmlsZVN5c3RlbVR5
cGUsIHNpemUsIEZpbGVTeXN0ZW1DYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2ssIGRvY3VtZW50KSk7CiB9CiAKIENPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0
PGludD4oRE9NV2luZG93OjpURU1QT1JBUlkpID09IHN0YXRpY19jYXN0PGludD4oQXN5bmNGaWxl
U3lzdGVtOjpUZW1wb3JhcnkpLCBlbnVtX21pc21hdGNoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmNwcAppbmRleCA0OTY0ZDA1ZDc4MzZiMzIwOWQwMjI4YTg5YWI0NzBjZmRmMzIwNTMyLi42Y2Vl
MjQ2MjliN2I4NmZhYzI3YTI1YjViM2FjYWIzODkzZDcwYmE4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNv
bnRleHQuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiRXJyb3JDYWxsYmFjay5oIgog
I2luY2x1ZGUgIkZpbGVFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKICNpbmNsdWRlICJMb2NhbEZpbGVTeXN0
ZW0uaCIKICNlbmRpZgogCkBAIC0zNTYsNyArMzU3LDEzIEBAIHZvaWQgV29ya2VyQ29udGV4dDo6
cmVxdWVzdEZpbGVTeXN0ZW0oaW50IHR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZp
bGVTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBMb2NhbEZpbGVTeXN0ZW06OmxvY2Fs
RmlsZVN5c3RlbSgpLnJlcXVlc3RGaWxlU3lzdGVtKHRoaXMsIHN0YXRpY19jYXN0PEFzeW5jRmls
ZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
ayk7CisgICAgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3RhdGljX2Nh
c3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKTsKKyAgICBpZiAoZmlsZVN5c3RlbVR5cGUg
IT0gQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgJiYgZmlsZVN5c3RlbVR5cGUgIT0gQXN5bmNG
aWxlU3lzdGVtOjpQZXJzaXN0ZW50KSB7CisgICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxl
Q2FsbGJhY2sodGhpcywgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUoSU5WQUxJRF9N
T0RJRklDQVRJT05fRVJSKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMb2NhbEZp
bGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlcXVlc3RGaWxlU3lzdGVtKHRoaXMsIGZpbGVT
eXN0ZW1UeXBlLCBzaXplLCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpjcmVhdGUoc3VjY2Vzc0NhbGxi
YWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzKSk7CiB9CiAKIENPTVBJTEVfQVNTRVJUKHN0YXRpY19j
YXN0PGludD4oV29ya2VyQ29udGV4dDo6VEVNUE9SQVJZKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFz
eW5jRmlsZVN5c3RlbTo6VGVtcG9yYXJ5KSwgZW51bV9taXNtYXRjaCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA0MTZjYTMxN2M3ZGUxZDM2OTA3ZDY5NTk1OGVmYzFiMWJhNTNkMjZiLi42MDEzMjlhM2Q4NDMz
MjE5YTM3NmEwNTI3MDI5NTRjNTdiOTdhNmJmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxMC0wOS0yNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0NsZWFudXBdIEFk
ZCBjcmVhdGUgbWV0aG9kIHRvIEZpbGVTeXN0ZW1DYWxsYmFja3MgdG8gZ2V0IHJpZCBvZiBuYWtl
ZCBuZXcncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDY1NjEKKworICAgICAgICBBbHNvIGNsZWFudXAgdGhlIGNhbGxiYWNrcyBsYXllcmluZyB0byBw
YXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcworICAgICAgICBvYmplY3QgdG8gTG9jYWxGaWxl
U3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSAocmF0aGVyIHRoYW4KKyAgICAgICAgRmlsZVN5c3Rl
bUNhbGxiYWNrIGFuZCBFcnJvckNhbGxiYWNrKSBzbyB0aGF0IGFsbCB0aGUgY2FsbGJhY2tzIGNs
YXNzCisgICAgICAgIHdlIHBhc3MgZnJvbSBXZWJDb3JlIHRvIFdlYktpdC9jaHJvbWl1bS9zcmMg
d2lsbCBiZQorICAgICAgICBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuCisKKyAgICAgICAgKiBz
cmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxG
aWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSk6IENoYW5nZWQgdG8gdGFrZQorICAgICAgICBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MgYXMgKGEpIGNhbGxiYWNrIGFyZ3VtZW50KHMpLgorCiAy
MDEwLTA5LTI0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgZml4IGNocm9taXVtIGNvbXBpbGUgYWZ0ZXIgcjY4Mjc2IHdoaWNoIHJlbmFtZWQK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKaW5k
ZXggOTk0ZjMxMDQ2YjNkZDc1NzVhYTAxOWU2ZTE4OTliYWZmMTkwOTMxOC4uN2JmNDMzNWZkYTc2
MWFlY2I1MjE0MGYxMjc0MWIwMjg4YjgwZWE5MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTU3LDE4ICs1NywxOCBAQCBMb2NhbEZp
bGVTeXN0ZW0mIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkKICAgICByZXR1cm4g
KmxvY2FsRmlsZVN5c3RlbTsKIH0KIAotdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxl
U3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6
VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2FsbGJhY2s+
IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
KQordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcg
c2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKIHsK
ICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewog
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRl
eHQpOwogICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9t
RnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwotICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCktPm9w
ZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBlPih0
eXBlKSwgc2l6ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKG5ldyBGaWxlU3lzdGVt
Q2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkpKTsKKyAg
ICAgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFtZSwgc3RhdGlj
X2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKICAgICB9IGVsc2UgewogICAgICAgICBXb3JrZXJD
b250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRl
eHQpOwogICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSogd29ya2VyTG9hZGVyUHJveHkgPSAmd29y
a2VyQ29udGV4dC0+dGhyZWFkKCktPndvcmtlckxvYWRlclByb3h5KCk7CiAgICAgICAgIFdlYldv
cmtlckJhc2UqIHdlYldvcmtlciA9IHN0YXRpY19jYXN0PFdlYldvcmtlckJhc2UqPih3b3JrZXJM
b2FkZXJQcm94eSk7Ci0gICAgICAgIHdlYldvcmtlci0+b3BlbkZpbGVTeXN0ZW0oc3RhdGljX2Nh
c3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxlU3lzdGVtQ2Fs
bGJhY2tzSW1wbChuZXcgRmlsZVN5c3RlbUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9y
Q2FsbGJhY2ssIGNvbnRleHQpKSk7CisgICAgICAgIHdlYldvcmtlci0+b3BlbkZpbGVTeXN0ZW0o
c3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="58398"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>