<?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>147843</bug_id>
          
          <creation_ts>2015-08-10 14:44:59 -0700</creation_ts>
          <short_desc>Refactor LiveObjectList and LiveObjectData into their own files.</short_desc>
          <delta_ts>2015-08-10 14:56: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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1116341</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 14:44:59 -0700</bug_when>
    <thetext>This is so I can build on them to implement a heap analysis tool later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116342</commentid>
    <comment_count>1</comment_count>
      <attachid>258654</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 14:47:43 -0700</bug_when>
    <thetext>Created attachment 258654
the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116343</commentid>
    <comment_count>2</comment_count>
      <attachid>258654</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 14:49:18 -0700</bug_when>
    <thetext>Comment on attachment 258654
the fix.

View in context: https://bugs.webkit.org/attachment.cgi?id=258654&amp;action=review

&gt; Source/JavaScriptCore/heap/LiveObjectList.cpp:41
&gt; +

Will delete this extra empty line before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116345</commentid>
    <comment_count>3</comment_count>
      <attachid>258654</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-08-10 14:52:24 -0700</bug_when>
    <thetext>Comment on attachment 258654
the fix.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116346</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 14:56:12 -0700</bug_when>
    <thetext>Thanks.  Landed in r188231: &lt;http://trac.webkit.org/r188231&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258654</attachid>
            <date>2015-08-10 14:47:43 -0700</date>
            <delta_ts>2015-08-10 14:52:24 -0700</delta_ts>
            <desc>the fix.</desc>
            <filename>bug-147843.patch</filename>
            <type>text/plain</type>
            <size>18089</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4MjMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWZhY3RvciBMaXZlT2JqZWN0TGlzdCBhbmQgTGl2ZU9iamVjdERhdGEgaW50byB0aGVpciBvd24g
ZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDc4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvSGVhcFZlcmlmaWVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SGVhcFZlcmlmaWVyOjpIZWFwVmVyaWZpZXIpOgorICAgICAgICAoSlNDOjpM
aXZlT2JqZWN0TGlzdDo6ZmluZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9IZWFw
VmVyaWZpZXIuaDoKKyAgICAgICAgKEpTQzo6TGl2ZU9iamVjdERhdGE6OkxpdmVPYmplY3REYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TGl2ZU9iamVjdExpc3Q6OkxpdmVPYmplY3RMaXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TGl2ZU9iamVjdExpc3Q6OnJlc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBoZWFwL0xpdmVPYmplY3REYXRhLmg6IEFkZGVkLgorICAgICAgICAoSlND
OjpMaXZlT2JqZWN0RGF0YTo6TGl2ZU9iamVjdERhdGEpOgorICAgICAgICAqIGhlYXAvTGl2ZU9i
amVjdExpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6TGl2ZU9iamVjdExpc3Q6OmZpbmRP
YmplY3QpOgorICAgICAgICAqIGhlYXAvTGl2ZU9iamVjdExpc3QuaDogQWRkZWQuCisgICAgICAg
IChKU0M6OkxpdmVPYmplY3RMaXN0OjpMaXZlT2JqZWN0TGlzdCk6CisgICAgICAgIChKU0M6Okxp
dmVPYmplY3RMaXN0OjpyZXNldCk6CisKIDIwMTUtMDgtMDcgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBMZXQncyByZW5hbWUgRnVuY3Rpb25Cb2R5Tm9kZQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg4MjI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0yOTEsNiArMjkxLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBoZWFwL0hl
YXBWZXJpZmllci5jcHAKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKICAgICBoZWFw
L0pJVFN0dWJSb3V0aW5lU2V0LmNwcAorICAgIGhlYXAvTGl2ZU9iamVjdExpc3QuY3BwCiAgICAg
aGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCiAgICAgaGVhcC9NYXJrU3RhY2suY3BwCiAgICAg
aGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2oJKHJldmlzaW9uIDE4ODIyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU2NSw2ICs1NjUsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxI
ZWFwVmVyaWZpZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxJbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxK
SVRTdHViUm91dGluZVNldC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFw
XExpdmVPYmplY3RMaXN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBc
TWFjaGluZVN0YWNrTWFya2VyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhl
YXBcTWFya2VkQWxsb2NhdG9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhl
YXBcTWFya2VkQmxvY2suY3BwIiAvPgpAQCAtMTMyMSw2ICsxMzIyLDggQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGhlYXBcSW5jcmVtZW50YWxTd2VlcGVyLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxoZWFwXEpJVFN0dWJSb3V0aW5lU2V0LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxoZWFwXExpc3RhYmxlSGFuZGxlci5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caGVhcFxMaXZlT2JqZWN0RGF0YS5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caGVhcFxMaXZlT2JqZWN0TGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caGVhcFxMb2NhbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVh
cFxMb2NhbFNjb3BlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXE1hY2hp
bmVTdGFja01hcmtlci5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTg4MjI1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5m
aWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNiArMjk0LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGhlYXBcSklUU3R1YlJvdXRpbmVTZXQuY3BwIj4KICAgICAgIDxGaWx0ZXI+
aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caGVhcFxMaXZlT2JqZWN0TGlzdC5jcHAiPgorICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXE1hY2hp
bmVTdGFja01hcmtlci5jcHAiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CkBAIC0yMjM3LDYgKzIyNDAsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGhlYXBcTGlzdGFibGVIYW5kbGVyLmgiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXExpdmVP
YmplY3REYXRhLmgiPgorICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXExpdmVPYmplY3RMaXN0LmgiPgor
ICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxoZWFwXExvY2FsLmgiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTg4MjI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3MDUsNiArMTcw
NSw5IEBACiAJCUZFMzg0RUU2MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM4NEVFMjFBRERCN0FE
MDA1NURFMkMgLyogSlNEb2xsYXJWTS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZFMzg0RUU3MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZN
UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFMzg0RUUzMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmNwcCAq
LzsgfTsKIAkJRkUzODRFRTgxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5cGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMzg0RUU0
MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkUzOTEzNTQxQjc5NEY2RTAwRURB
RjcxIC8qIExpdmVPYmplY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFMzkxMzUyMUI3OTRBQzkwMEVEQUY3MSAvKiBMaXZlT2JqZWN0TGlz
dC5jcHAgKi87IH07CisJCUZFMzkxMzU1MUI3OTRGOEEwMEVEQUY3MSAvKiBMaXZlT2JqZWN0RGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzOTEz
NTExQjc5NEFDOTAwRURBRjcxIC8qIExpdmVPYmplY3REYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkUzOTEzNTYxQjc5NEY4RjAwRURBRjcx
IC8qIExpdmVPYmplY3RMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTM5MTM1MzFCNzk0QUM5MDBFREFGNzEgLyogTGl2ZU9iamVjdExpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTRCRkYy
QjFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QkZGMjkxQUQ0NzZFNzAwMDg4Rjg3
IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCAqLzsgfTsKIAkJRkU0QkZGMkMxQUQ0NzZFNzAwMDg4
Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRTRCRkYyQTFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVy
cmlkZXMuaCAqLzsgfTsKIAkJRkU0RDU1QjgxQUU3MTZDQTAwNTJFNDU5IC8qIEl0ZXJhdGlvblN0
YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0
RDU1QjcxQUU3MTZDQTAwNTJFNDU5IC8qIEl0ZXJhdGlvblN0YXR1cy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNTU3LDYgKzM1NjAsOSBAQAog
CQlGRTM4NEVFMjFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RvbGxhclZNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFMzg0RUUzMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9sbGFyVk1Qcm90b3R5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTM4NEVFNDFBRERCN0FEMDA1
NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0RvbGxhclZNUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUZFMzkxMzUxMUI3OTRBQzkwMEVEQUY3MSAvKiBMaXZlT2JqZWN0RGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXZlT2JqZWN0RGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGRTM5MTM1MjFCNzk0QUM5MDBFREFGNzEgLyogTGl2ZU9iamVjdExp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGl2ZU9iamVjdExp
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTM5MTM1MzFCNzk0QUM5MDBF
REFGNzEgLyogTGl2ZU9iamVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGl2ZU9iamVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU0QkZG
MjkxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9u
T3ZlcnJpZGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZ1bmN0aW9uT3Zl
cnJpZGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNEQ1NUI3MUFFNzE2Q0Ew
MDUyRTQ1OSAvKiBJdGVyYXRpb25TdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSXRlcmF0aW9uU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
MDgzLDYgKzQwODksOSBAQAogCQkJCUZFN0JBNjBEMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVy
aWZpZXIuY3BwICovLAogCQkJCUZFN0JBNjBFMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZp
ZXIuaCAqLywKIAkJCQlDMkRBNzc4MjE4RTI1OTk5MDA2NkZDQjYgLyogSGVhcElubGluZXMuaCAq
LywKKwkJCQlGRTM5MTM1MTFCNzk0QUM5MDBFREFGNzEgLyogTGl2ZU9iamVjdERhdGEuaCAqLywK
KwkJCQlGRTM5MTM1MjFCNzk0QUM5MDBFREFGNzEgLyogTGl2ZU9iamVjdExpc3QuY3BwICovLAor
CQkJCUZFMzkxMzUzMUI3OTRBQzkwMEVEQUY3MSAvKiBMaXZlT2JqZWN0TGlzdC5oICovLAogCQkJ
CUFEREIxRjYyMThENzdEQjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggKi8sCiAJCQkJMkFB
Q0U2M0ExOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgKi8sCiAJCQkJ
MkFBQ0U2M0IxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oICovLApAQCAt
NjMyOSw2ICs2MzM4LDcgQEAKIAkJCQk3QjM5Rjc2RTFCNjJERTMyMDAzNjBGQjQgLyogV0FTTU1v
ZHVsZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYw
IC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA4NjE4OUIxQjdF
MDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUZFMzkxMzU2MUI3OTRGOEYwMEVEQUY3MSAvKiBMaXZlT2JqZWN0TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVi
dWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3RDIzRUExODkxQjA3NzAwMzFDN0ZBIC8q
IEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NTZG
QzkwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLywKQEAgLTY2OTEsNiArNjcwMSw3IEBACiAJCQkJMTQyRTMxM0MxMzRGRjBBNjAwQUZBREI1
IC8qIFdlYWsuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0RjlGMTRFRTFBQ0MwMEQ2RDVENCAv
KiBXZWFrQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QkZDRTY5MTBDREIxRkMwMDM2NEND
RSAvKiBXZWFrR0NNYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFMzkxMzU1MUI3OTRGOEEwMEVE
QUY3MSAvKiBMaXZlT2JqZWN0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRGNzI1NjYxNEVF
MjY1RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRF
ODRGQTIxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJERDgxMjFBQjNEOEJFMDBCQkI4RTggLyogREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NDE1LDYgKzc0MjYsNyBAQAogCQkJCTBGMDMzMkMwMThBREZB
RTEwMDVGOTc5QSAvKiBFeGl0aW5nSklUVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkIx
MDU4NTE2NzU0ODBGMDBGOEFCNkUgLyogRXhpdEtpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFQTBBMUMxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGRTM5MTM1NDFCNzk0RjZFMDBFREFGNzEgLyogTGl2ZU9iamVjdExpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5NzhCM0IxQUFFQTcxRDAwN0M3MzY5IC8qIENvbnN0YW50
TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyNTFBQTkwOTU2MDBEMzNCMzMgLyog
Q2xvbmVkQXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzkwODU1MTlBMjkwQjIw
MEY2MzEwQyAvKiBERkdTdHJ1Y3R1cmVSZWdpc3RyYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBWZXJpZmllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFZlcmlmaWVyLmNwcAko
cmV2aXNpb24gMTg4MjI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFZlcmlm
aWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTYgKzM0LDYgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLUxpdmVPYmplY3REYXRhKiBMaXZlT2JqZWN0TGlzdDo6ZmluZE9iamVjdChKU09iamVj
dCogb2JqKQotewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGl2ZU9iamVjdHMuc2l6ZSgp
OyBpKyspIHsKLSAgICAgICAgTGl2ZU9iamVjdERhdGEmIGRhdGEgPSBsaXZlT2JqZWN0c1tpXTsK
LSAgICAgICAgaWYgKG9iaiA9PSBkYXRhLm9iaikKLSAgICAgICAgICAgIHJldHVybiAmZGF0YTsK
LSAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIEhlYXBWZXJpZmllcjo6SGVhcFZlcmlm
aWVyKEhlYXAqIGhlYXAsIHVuc2lnbmVkIG51bWJlck9mR0NDeWNsZXNUb1JlY29yZCkKICAgICA6
IG1faGVhcChoZWFwKQogICAgICwgbV9jdXJyZW50Q3ljbGUoMCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBWZXJpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBWZXJpZmllci5oCShyZXZpc2lvbiAxODgyMjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVmVyaWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw0
NCArMjcsMTMgQEAKICNkZWZpbmUgSGVhcFZlcmlmaWVyX2gKIAogI2luY2x1ZGUgIkhlYXAuaCIK
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiTGl2ZU9iamVjdExpc3QuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTT2JqZWN0OwogY2xhc3MgTWFya2VkQmxvY2s7CiAK
LXN0cnVjdCBMaXZlT2JqZWN0RGF0YSB7Ci0gICAgTGl2ZU9iamVjdERhdGEoSlNPYmplY3QqIG9i
aiwgYm9vbCBpc0NvbmZpcm1lZERlYWQgPSBmYWxzZSkKLSAgICAgICAgOiBvYmoob2JqKQotICAg
ICAgICAsIGlzQ29uZmlybWVkRGVhZChpc0NvbmZpcm1lZERlYWQpCi0gICAgewotICAgIH0KLQot
ICAgIEpTT2JqZWN0KiBvYmo7Ci0gICAgYm9vbCBpc0NvbmZpcm1lZERlYWQ7Ci19OwotCi1zdHJ1
Y3QgTGl2ZU9iamVjdExpc3QgewotICAgIExpdmVPYmplY3RMaXN0KGNvbnN0IGNoYXIqIG5hbWUp
Ci0gICAgICAgIDogbmFtZShuYW1lKQotICAgICAgICAsIGhhc0xpdmVPYmplY3RzKHRydWUpCi0g
ICAgewotICAgIH0KLQotICAgIHZvaWQgcmVzZXQoKQotICAgIHsKLSAgICAgICAgbGl2ZU9iamVj
dHMuY2xlYXIoKTsKLSAgICAgICAgaGFzTGl2ZU9iamVjdHMgPSB0cnVlOyAvLyBQcmVzdW1lIHRv
IGhhdmUgbGl2ZSBvYmplY3RzIHVudGlsIHRoZSBsaXN0IGlzIHRyaW1tZWQuCi0gICAgfQotCi0g
ICAgTGl2ZU9iamVjdERhdGEqIGZpbmRPYmplY3QoSlNPYmplY3QqKTsKLQotICAgIGNvbnN0IGNo
YXIqIG5hbWU7Ci0gICAgVmVjdG9yPExpdmVPYmplY3REYXRhPiBsaXZlT2JqZWN0czsKLSAgICBi
b29sIGhhc0xpdmVPYmplY3RzOwotfTsKLQogY2xhc3MgSGVhcFZlcmlmaWVyIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0xpdmVPYmplY3REYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTGl2ZU9iamVjdERhdGEuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0xpdmVPYmplY3REYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTGl2ZU9iamVjdERhdGFfaAorI2RlZmluZSBMaXZlT2JqZWN0RGF0YV9oCisKK25hbWVzcGFj
ZSBKU0MgeworCitjbGFzcyBKU09iamVjdDsKKworc3RydWN0IExpdmVPYmplY3REYXRhIHsKKyAg
ICBMaXZlT2JqZWN0RGF0YShKU09iamVjdCogb2JqLCBib29sIGlzQ29uZmlybWVkRGVhZCA9IGZh
bHNlKQorICAgICAgICA6IG9iaihvYmopCisgICAgICAgICwgaXNDb25maXJtZWREZWFkKGlzQ29u
ZmlybWVkRGVhZCkKKyAgICB7CisgICAgfQorICAgIAorICAgIEpTT2JqZWN0KiBvYmo7CisgICAg
Ym9vbCBpc0NvbmZpcm1lZERlYWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIExpdmVPYmplY3REYXRhX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TGl2ZU9iamVjdExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0xpdmVPYmplY3RMaXN0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0xpdmVPYmplY3RMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxpdmVPYmplY3RMaXN0LmgiCisKK25hbWVzcGFjZSBK
U0MgeworCitMaXZlT2JqZWN0RGF0YSogTGl2ZU9iamVjdExpc3Q6OmZpbmRPYmplY3QoSlNPYmpl
Y3QqIG9iaikKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpdmVPYmplY3RzLnNpemUo
KTsgaSsrKSB7CisgICAgICAgIExpdmVPYmplY3REYXRhJiBkYXRhID0gbGl2ZU9iamVjdHNbaV07
CisgICAgICAgIGlmIChvYmogPT0gZGF0YS5vYmopCisgICAgICAgICAgICByZXR1cm4gJmRhdGE7
CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCisKK30gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTGl2ZU9iamVjdExpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MaXZlT2JqZWN0TGlzdC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTGl2ZU9iamVjdExpc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMaXZlT2JqZWN0TGlzdF9oCisjZGVmaW5lIExp
dmVPYmplY3RMaXN0X2gKKworI2luY2x1ZGUgIkxpdmVPYmplY3REYXRhLmgiCisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworc3RydWN0IExpdmVPYmplY3RMaXN0
IHsKKyAgICBMaXZlT2JqZWN0TGlzdChjb25zdCBjaGFyKiBuYW1lKQorICAgICAgICA6IG5hbWUo
bmFtZSkKKyAgICAgICAgLCBoYXNMaXZlT2JqZWN0cyh0cnVlKQorICAgIHsKKyAgICB9CisgICAg
CisgICAgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBsaXZlT2JqZWN0cy5jbGVhcigpOwor
ICAgICAgICBoYXNMaXZlT2JqZWN0cyA9IHRydWU7IC8vIFByZXN1bWUgdG8gaGF2ZSBsaXZlIG9i
amVjdHMgdW50aWwgdGhlIGxpc3QgaXMgdHJpbW1lZC4KKyAgICB9CisgICAgCisgICAgTGl2ZU9i
amVjdERhdGEqIGZpbmRPYmplY3QoSlNPYmplY3QqKTsKKyAgICAKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworICAgIFZlY3RvcjxMaXZlT2JqZWN0RGF0YT4gbGl2ZU9iamVjdHM7CisgICAgYm9vbCBo
YXNMaXZlT2JqZWN0czsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IExpdmVPYmplY3RMaXN0X2gKKwo=
</data>
<flag name="review"
          id="283836"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>