<?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>51285</bug_id>
          
          <creation_ts>2010-12-17 17:36:43 -0800</creation_ts>
          <short_desc>Factored common page set management into a new PageSet class</short_desc>
          <delta_ts>2010-12-20 12:09:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324057</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-12-17 17:36:43 -0800</bug_when>
    <thetext>Factored common page set management into a new PageSet class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324058</commentid>
    <comment_count>1</comment_count>
      <attachid>76929</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-12-17 17:37:46 -0800</bug_when>
    <thetext>Created attachment 76929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324064</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-17 17:56:33 -0800</bug_when>
    <thetext>Attachment 76929 did not build on qt:
Build output: http://queues.webkit.org/results/7253019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324067</commentid>
    <comment_count>3</comment_count>
      <attachid>76933</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-12-17 18:10:10 -0800</bug_when>
    <thetext>Created attachment 76933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324489</commentid>
    <comment_count>4</comment_count>
      <attachid>76933</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-20 11:48:14 -0800</bug_when>
    <thetext>Comment on attachment 76933
Patch

r=me if you change the name to PageBlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324495</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-12-20 12:09:58 -0800</bug_when>
    <thetext>Committed r74357: &lt;http://trac.webkit.org/changeset/74357&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76929</attachid>
            <date>2010-12-17 17:37:46 -0800</date>
            <delta_ts>2010-12-17 18:10:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51285-20101217173744.patch</filename>
            <type>text/plain</type>
            <size>20214</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0MzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTItMTcgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGYWN0b3JlZCBjb21tb24gcGFnZSBzZXQgbWFuYWdlbWVudCBp
bnRvIGEgbmV3IFBhZ2VTZXQgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUxMjg1CisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9X
VEYudmNwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmg6CisgICAgICAgIChK
U0M6OlJlZ2lzdGVyRmlsZTo6UmVnaXN0ZXJGaWxlKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmludGlh
bGl6ZVBhZ2VTaXplKToKKyAgICAgICAgKiB3dGYvUGFnZUFsbG9jYXRpb24uY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHd0Zi9QYWdlQWxsb2NhdGlvbi5oOgorICAgICAgICAoV1RGOjpQYWdlQWxs
b2NhdGlvbjo6ZGVhbGxvY2F0ZSk6CisgICAgICAgIChXVEY6OlBhZ2VBbGxvY2F0aW9uOjpQYWdl
QWxsb2NhdGlvbik6CisgICAgICAgICogd3RmL1BhZ2VSZXNlcnZhdGlvbi5oOgorICAgICAgICAo
V1RGOjpQYWdlUmVzZXJ2YXRpb246OmNvbW1pdCk6CisgICAgICAgIChXVEY6OlBhZ2VSZXNlcnZh
dGlvbjo6ZGVjb21taXQpOgorICAgICAgICAoV1RGOjpQYWdlUmVzZXJ2YXRpb246OmRlYWxsb2Nh
dGUpOgorICAgICAgICAoV1RGOjpQYWdlUmVzZXJ2YXRpb246OlBhZ2VSZXNlcnZhdGlvbik6Cisg
ICAgICAgICogd3RmL3d0Zi5wcmk6CisKIDIwMTAtMTItMTcgIEFyaXlhIEhpZGF5YXQgIDxhcml5
YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDog
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC5tawo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9B
bmRyb2lkLm1rCShyZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsJ
KHdvcmtpbmcgY29weSkKQEAgLTE2Miw3ICsxNjIsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gXAog
CXd0Zi9GYXN0TWFsbG9jLmNwcCBcCiAJd3RmL0hhc2hUYWJsZS5jcHAgXAogCXd0Zi9NYWluVGhy
ZWFkLmNwcCBcCi0Jaml0L1BhZ2VBbGxvY2F0aW9uLmNwcFwKKwlqaXQvUGFnZVNldC5jcHBcCiAJ
d3RmL1JhbmRvbU51bWJlci5jcHAgXAogCXd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwIFwK
IAl3dGYvVENTeXN0ZW1BbGxvYy5jcHAgXApJbmRleDogSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDc0MzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTE3MSw3ICsxNzEsNyBAQCBTRVQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHlh
cnIvUmVnZXhKSVQuY3BwCiAKICAgICB3dGYvRGF0ZU1hdGguY3BwCi0gICAgd3RmL1BhZ2VBbGxv
Y2F0aW9uLmNwcAorICAgIHd0Zi9QYWdlU2V0LmNwcAogKQogU0VUKEphdmFTY3JpcHRDb3JlX0hF
QURFUlMgKQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzQzMDUpCisrKyBK
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDc1LDkgKzQ3
NSw5IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9P
d25BcnJheVB0ckNvbW1vbi5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29tbW9uLmgg
XAogCUphdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHIuaCBcCi0JSmF2YVNjcmlwdENvcmUvd3RmL1Bh
Z2VBbGxvY2F0aW9uLmNwcCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VBbGxvY2F0aW9uLmgg
XAogCUphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlUmVzZXJ2YXRpb24uaCBcCisJSmF2YVNjcmlwdENv
cmUvd3RmL1BhZ2VTZXQuY3BwIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvUGFzc093bkFycmF5UHRy
LmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmggXAogCUphdmFTY3JpcHRDb3Jl
L3d0Zi9QYXNzUmVmUHRyLmggXApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCShy
ZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTQwNiw3ICs0MDYsNyBAQAogICAgICAgICAgICAgJ3d0Zi9Pd25GYXN0
TWFsbG9jUHRyLmgnLAogICAgICAgICAgICAgJ3d0Zi9Pd25QdHIuaCcsCiAgICAgICAgICAgICAn
d3RmL093blB0ckNvbW1vbi5oJywKLSAgICAgICAgICAgICd3dGYvUGFnZUFsbG9jYXRpb24uY3Bw
JywKKyAgICAgICAgICAgICd3dGYvUGFnZVNldC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9QYWdl
QWxsb2NhdGlvbi5oJywKICAgICAgICAgICAgICd3dGYvUGFnZVJlc2VydmF0aW9uJywKICAgICAg
ICAgICAgICd3dGYvUGFzc093blB0ci5oJywKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oJKHJldmlzaW9uIDc0MzA1KQor
KysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC02OTcsNyArNjk3LDcgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8Rmls
ZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcUGFnZUFsbG9jYXRpb24uY3BwIgorCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlx3dGZcUGFnZVNldC5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZp
bGUKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzQzMDUpCisrKyBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjEsNiArMTYxLDggQEAKIAkJMTRBNDJFM0YwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVv
dXRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0QTQyRTNEMEY0RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5jcHAgKi87IH07
CiAJCTE0QTQyRTQwMEY0RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBNDJFM0UwRjRGNjBFRTAw
NTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJh
Y2tPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRBQkRGNUUwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3BwICovOyB9
OworCQkxNEIzRUYwNTEyQkMyNEREMDBEMjlFRkYgLyogUGFnZVNldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCM0VGMDMxMkJDMjRERDAwRDI5RUZG
IC8qIFBhZ2VTZXQuaCAqLzsgfTsKKwkJMTRCM0VGMDYxMkJDMjRERDAwRDI5RUZGIC8qIFBhZ2VT
ZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRC
M0VGMDQxMkJDMjRERDAwRDI5RUZGIC8qIFBhZ2VTZXQuY3BwICovOyB9OwogCQkxNEI4RUM3MjBB
NTY1MjA5MDA2MkJFNTQgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2MEE0Q0YwNEIzQjNFNzAwOEFF
OTUyIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJMTRCRDU5QzUwQTNFOEY5
RjAwQkFGNTlDIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAv
KiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTE0QkQ1QTMwMEEzRTkxRjYwMEJB
RjU5QyAvKiBKU0NvbnRleHRSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTRCRDVBMjkwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4dFJlZi5j
cHAgKi87IH07CkBAIC0yMDUsNyArMjA3LDYgQEAKIAkJODYwMTYxRTUwRjNBODNDMTAwRjg0NzEw
IC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NjAxNjFFMTBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJs
ZXJYODZfNjQuaCAqLzsgfTsKIAkJODYwMTYxRTYwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjAxNjFFMjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uaCAqLzsgfTsKIAkJODYyNkJFQ0YxMTkyOEUzOTAwNzgyRkFCIC8qIFN0cmluZ1N0YXRpY3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyNkJF
Q0UxMTkyOEUzOTAwNzgyRkFCIC8qIFN0cmluZ1N0YXRpY3MuY3BwICovOyB9OwotCQk4NjI3RTVF
QjExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyN0U1RTkxMUYxMjgxOTAwQTMxM0I1IC8q
IFBhZ2VBbGxvY2F0aW9uLmNwcCAqLzsgfTsKIAkJODYyN0U1RUMxMUYxMjgxOTAwQTMxM0I1IC8q
IFBhZ2VBbGxvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjI3RTVFQTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJBRjRCNjEy
MjM5QzdCMDAyNEU1QjggLyogRGVjaW1hbE51bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyQUY0QjUxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2lt
YWxOdW1iZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NjNCMjNFMDBGQzYxMTg5MDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjNCMjNERjBG
QzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcxOCw2ICs3MTksOCBAQAogCQkx
NEFCQjQ1NDA5OUMyQTBGMDBFMkEyNEYgLyogSlNUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEFC
REY1RDBBNDM3RkVGMDBFQ0NBMDEgLyogSlNDYWxsYmFja09iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbGxiYWNrT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0QUJERjVFMEE0MzdGRUYwMEVDQ0EwMSAvKiBKU0NhbGxiYWNrT2JqZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJhY2tPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNEIzRUYwMzEyQkMyNEREMDBE
MjlFRkYgLyogUGFnZVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
U2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0QjNFRjA0MTJCQzI0REQwMEQy
OUVGRiAvKiBQYWdlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhZ2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEI4RUNBNjBBNTY1
Mzk4MDA2MkJFNTQgLyogSmF2YVNjcmlwdENvcmUuZXhwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
ZXhwb3J0czsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmV4cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA0OyB1c2VzVGFicyA9IDA7IH07CiAJCTE0QkQ1OUJGMEEzRThGOTAwMEJB
RjU5QyAvKiB0ZXN0YXBpICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSB0ZXN0YXBpOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkx
NEJENUEyOTBBM0U5MUY2MDBCQUY1OUMgLyogSlNDb250ZXh0UmVmLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbnRleHRSZWYuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtODE4LDcgKzgyMSw2IEBACiAJCTg2MDE2MUUxMEYzQTgzQzEwMEY4
NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NjAxNjFFMjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyNkJFQ0UxMTkyOEUzOTAwNzgy
RkFCIC8qIFN0cmluZ1N0YXRpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU3RyaW5nU3RhdGljcy5jcHA7IHBhdGggPSB0ZXh0L1N0cmluZ1N0YXRpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NjI3RTVFOTExRjEyODE5MDBBMzEzQjUgLyog
UGFnZUFsbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFnZUFsbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVF
QTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODYyQUY0QjUxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbE51bWJlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyOSwxNSArMTUz
MSwxNiBAQAogCQkJCTY1RTFBMkY0MTIyQjg4MEQwMEIyNjA5NyAvKiBOb25Db3B5aW5nU29ydC5o
ICovLAogCQkJCUMwQTI3MjNGMEU1MDlGMUUwMEU5NkUxNSAvKiBOb3RGb3VuZC5oICovLAogCQkJ
CTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8sCi0JCQkJMTQwMDA2OTIx
MkE2RjlFMTAwNjREMTIzIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovLAogCQkJCTE0MDAwNjc2
MTJBNkY3ODMwMDY0RDEyMyAvKiBPU0FsbG9jYXRvci5oICovLAorCQkJCTE0MDAwNjkyMTJBNkY5
RTEwMDY0RDEyMyAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCAqLywKIAkJCQk5MzAzRjVBNDA5OTEx
QTU4MDBBRDcxQjggLyogT3duQXJyYXlQdHIuaCAqLywKIAkJCQlCQ0ZCRTY5NzEyMjU2MUQyMDAz
MDlFOUQgLyogT3duQXJyYXlQdHJDb21tb24uaCAqLywKIAkJCQkwQkRGRkFEMTBGQzYxNkVDMDBE
NjlFRjQgLyogT3duRmFzdE1hbGxvY1B0ci5oICovLAogCQkJCTkzMDNGNTY3MDk5MTE4RkEwMEFE
NzFCOCAvKiBPd25QdHIuaCAqLywKIAkJCQk0NDBCN0FFRDBGQUY3RkNCMDA3MzMyM0UgLyogT3du
UHRyQ29tbW9uLmggKi8sCi0JCQkJODYyN0U1RTkxMUYxMjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxv
Y2F0aW9uLmNwcCAqLywKIAkJCQk4NjI3RTVFQTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9j
YXRpb24uaCAqLywKKwkJCQkxNEIzRUYwNDEyQkMyNEREMDBEMjlFRkYgLyogUGFnZVNldC5jcHAg
Ki8sCisJCQkJMTRCM0VGMDMxMkJDMjRERDAwRDI5RUZGIC8qIFBhZ2VTZXQuaCAqLywKIAkJCQk4
NjkwMjMxNDEyMDkyRDVDMDA2MzBBRjkgLyogUGFnZVJlc2VydmF0aW9uLmggKi8sCiAJCQkJQkNG
QkU2OTUxMjI1NjBFODAwMzA5RTlEIC8qIFBhc3NPd25BcnJheVB0ci5oICovLAogCQkJCTQ0REQ0
ODUyMEZBRUE4NTAwMEQ2QjRFQiAvKiBQYXNzT3duUHRyLmggKi8sCkBAIC0yMzY0LDYgKzIzNjcs
NyBAQAogCQkJCTkzM0Y1Q0RDMTI2OTIyOUIwMDQ5MTkxRSAvKiBOdWxsUHRyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGM0JEMzFFRDEyNjczNTc3MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDAwMDY3NzEyQTZGNzgzMDA2NEQxMjMgLyogT1NBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTE0QjNFRjA1MTJCQzI0REQwMEQyOUVGRiAvKiBQYWdlU2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI4MTMsNyArMjgxNyw2IEBACiAJCQkJODY4QkZBMTcxMTdD
RjE5OTAwQjkwOEIxIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkQwOEQ1
MzExNzkzNjEzMDA2RTVFRDAgLyogV1RGVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlEREY3QUJENTExRjYwRUQyMDAxMDhFMzYgLyogR0NBY3Rpdml0eUNhbGxiYWNrQ0YuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJODYyN0U1RUIxMUYxMjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURERTgyQUQ3MTIwOUQ5NTUwMDVDMTc1NiAvKiBH
Q0hhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzRERTFEMDEyMEI4NzU2MDBENDBENUIg
LyogQVJNdjdBc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcxNEFGNDYxMjJGMjg4
NTAwOTJEOUY1IC8qIFVSTFNlZ21lbnRzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgyMyw2ICsy
ODI2LDcgQEAKIAkJCQk4NjQzOEZDNDEyNjU1MDNFMDBFMERGQ0EgLyogU3RyaW5nQnVpbGRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI5NDc5QzEyNkU2OThDMDBCM0FCRjUgLyogRGVjaW1h
bE51bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDAwMDY5MzEyQTZGOUUxMDA2NEQxMjMg
LyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxNEIzRUYwNjEyQkMy
NEREMDBEMjlFRkYgLyogUGFnZVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oCShyZXZpc2lvbiA3NDMwNSkKKysrIEph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTksOCArMTU5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICwgbV9lbmQoMCkKICAg
ICAgICAgLCBtX21heCgwKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1heEdsb2JhbHMgJiYgUGFn
ZUFsbG9jYXRpb246OmlzUGFnZUFsaWduZWQobWF4R2xvYmFscykpOwotICAgICAgICBBU1NFUlQo
Y2FwYWNpdHkgJiYgUGFnZUFsbG9jYXRpb246OmlzUGFnZUFsaWduZWQoY2FwYWNpdHkpKTsKKyAg
ICAgICAgQVNTRVJUKG1heEdsb2JhbHMgJiYgaXNQYWdlQWxpZ25lZChtYXhHbG9iYWxzKSk7Cisg
ICAgICAgIEFTU0VSVChjYXBhY2l0eSAmJiBpc1BhZ2VBbGlnbmVkKGNhcGFjaXR5KSk7CiAKICAg
ICAgICAgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IChjYXBhY2l0eSArIG1heEdsb2JhbHMpICogc2l6
ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgbV9yZXNlcnZhdGlvbiA9IFBhZ2VSZXNlcnZhdGlvbjo6
cmVzZXJ2ZShyb3VuZFVwQWxsb2NhdGlvblNpemUoYnVmZmVyTGVuZ3RoLCBjb21taXRTaXplKSwg
T1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2VzKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDc0MzA1KQorKysgSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0
NSw3IEBAIHZvaWQgRXhlY3V0YWJsZUFsbG9jYXRvcjo6aW50aWFsaXplUGFnZVMKICAgICAvLyBm
b3IgbW92aW5nIG1lbW9yeSBtb2RlbCBsaW1pdGF0aW9uCiAgICAgRXhlY3V0YWJsZUFsbG9jYXRv
cjo6cGFnZVNpemUgPSAyNTYgKiAxMDI0OwogI2Vsc2UKLSAgICBFeGVjdXRhYmxlQWxsb2NhdG9y
OjpwYWdlU2l6ZSA9IFBhZ2VBbGxvY2F0aW9uOjpwYWdlU2l6ZSgpOworICAgIEV4ZWN1dGFibGVB
bGxvY2F0b3I6OnBhZ2VTaXplID0gV1RGOjpwYWdlU2l6ZSgpOwogI2VuZGlmCiB9CiAKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlQWxsb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUvd3RmL1BhZ2VBbGxvY2F0aW9uLmNwcAkocmV2aXNpb24gNzQzMDUpCisrKyBK
YXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlBhZ2VBbGxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiUGFnZVJlc2VydmF0aW9uLmgiCi0KLW5hbWVz
cGFjZSBXVEYgewotCi1zaXplX3QgUGFnZUFsbG9jYXRpb246OnNfcGFnZVNpemUgPSAwOwotCi19
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb24uaAkocmV2aXNpb24gNzQzMDUpCisr
KyBKYXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvT1NBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvUGFnZVNldC5oPgogI2luY2x1ZGUgPHd0
Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi9WTVRhZ3MuaD4KICNpbmNsdWRlIDxhbGdv
cml0aG0+CkBAIC04MSwxOCArODIsOSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB3aXRoIGEgc3Bl
Y2lmaWVkIGFsaWdubWVudC4gIFBhZ2VBbGxvY2F0aW9uOjphbGxvY2F0ZUFsaWduZWQgcmVxdWly
ZXMgdGhhdCB0aGUKICAgICBzaXplIGlzIGEgcG93ZXIgb2YgdHdvIHRoYXQgaXMgPj0gc3lzdGVt
IHBhZ2Ugc2l6ZS4KICovCi1jbGFzcyBQYWdlQWxsb2NhdGlvbiB7Ci1wdWJsaWM6Ci0gICAgUGFn
ZUFsbG9jYXRpb24oKQotICAgICAgICA6IG1fYmFzZSgwKQotICAgICAgICAsIG1fc2l6ZSgwKQot
ICAgIHsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2Jh
c2U7IH0KLSAgICB2b2lkKiBiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlOyB9Ci0gICAgc2l6
ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAorY2xhc3MgUGFnZUFsbG9jYXRp
b24gOiBwcml2YXRlIFBhZ2VTZXQgeworcHVibGljOgogICAgIHN0YXRpYyBQYWdlQWxsb2NhdGlv
biBhbGxvY2F0ZShzaXplX3Qgc2l6ZSwgT1NBbGxvY2F0b3I6OlVzYWdlIHVzYWdlID0gT1NBbGxv
Y2F0b3I6OlVua25vd25Vc2FnZSwgYm9vbCB3cml0YWJsZSA9IHRydWUsIGJvb2wgZXhlY3V0YWJs
ZSA9IGZhbHNlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzUGFnZUFsaWduZWQoc2l6ZSkpOwpA
QCAtMTA4LDQ5ICsxMDAsMzggQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCi0gICAgdm9pZCBk
ZWFsbG9jYXRlKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2Jhc2UpOwotICAgICAgICB2b2lk
KiB0bXAgPSAwOwotICAgICAgICBzdGQ6OnN3YXAodG1wLCBtX2Jhc2UpOwotICAgICAgICBPU0Fs
bG9jYXRvcjo6cmVsZWFzZSh0bXAsIG1fc2l6ZSk7Ci0gICAgfQorICAgIFBhZ2VBbGxvY2F0aW9u
KCk7CisKKyAgICB1c2luZyBQYWdlU2V0OjpvcGVyYXRvciBib29sOworICAgIHVzaW5nIFBhZ2VT
ZXQ6OmJhc2U7CisgICAgdXNpbmcgUGFnZVNldDo6c2l6ZTsKIAotICAgIHN0YXRpYyBzaXplX3Qg
cGFnZVNpemUoKQorICAgIHZvaWQgZGVhbGxvY2F0ZSgpCiAgICAgewotICAgICAgICBpZiAoIXNf
cGFnZVNpemUpCi0gICAgICAgICAgICBzX3BhZ2VTaXplID0gc3lzdGVtUGFnZVNpemUoKTsKLSAg
ICAgICAgQVNTRVJUKGlzUG93ZXJPZlR3byhzX3BhZ2VTaXplKSk7Ci0gICAgICAgIHJldHVybiBz
X3BhZ2VTaXplOworICAgICAgICBBU1NFUlQoKnRoaXMpOworICAgICAgICBQYWdlQWxsb2NhdGlv
biB0bXA7CisgICAgICAgIHN0ZDo6c3dhcCh0bXAsICp0aGlzKTsKKyAgICAgICAgT1NBbGxvY2F0
b3I6OnJlbGVhc2UodG1wLmJhc2UoKSwgdG1wLnNpemUoKSk7CiAgICAgfQogCi0jaWZuZGVmIE5E
RUJVRwotICAgIHN0YXRpYyBib29sIGlzUGFnZUFsaWduZWQodm9pZCogYWRkcmVzcykgeyByZXR1
cm4gIShyZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyZXNzKSAmIChwYWdlU2l6ZSgpIC0g
MSkpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNQYWdlQWxpZ25lZChzaXplX3Qgc2l6ZSkgeyByZXR1
cm4gIShzaXplICYgKHBhZ2VTaXplKCkgLSAxKSk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1Bvd2Vy
T2ZUd28oc2l6ZV90IHNpemUpIHsgcmV0dXJuICEoc2l6ZSAmIChzaXplIC0gMSkpOyB9Ci0jZW5k
aWYKLQotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICBQYWdlQWxsb2NhdGlvbih2b2lkKiBiYXNl
LCBzaXplX3Qgc2l6ZSkKLSAgICAgICAgOiBtX2Jhc2UoYmFzZSkKLSAgICAgICAgLCBtX3NpemUo
c2l6ZSkKKyAgICAgICAgOiBQYWdlU2V0KGJhc2UsIHNpemUpCiAgICAgewogICAgIH0KIAogI2lm
IEhBVkUoUEFHRV9BTExPQ0FURV9BTElHTkVEKQogICAgIHN0YXRpYyBQYWdlQWxsb2NhdGlvbiBz
eXN0ZW1BbGxvY2F0ZUFsaWduZWQoc2l6ZV90LCBPU0FsbG9jYXRvcjo6VXNhZ2UpOwogI2VuZGlm
Ci0gICAgc3RhdGljIHNpemVfdCBzeXN0ZW1QYWdlU2l6ZSgpOwotCi0gICAgdm9pZCogbV9iYXNl
OwotICAgIHNpemVfdCBtX3NpemU7Ci0KLSAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBzaXplX3Qg
c19wYWdlU2l6ZTsKIH07CiAKK2lubGluZSBQYWdlQWxsb2NhdGlvbjo6UGFnZUFsbG9jYXRpb24o
KQorICAgIDogUGFnZVNldCgpCit7Cit9CiAKLSNpZiBIQVZFKE1NQVApCiAKKyNpZiBIQVZFKE1N
QVApCiAKIGlubGluZSBQYWdlQWxsb2NhdGlvbiBQYWdlQWxsb2NhdGlvbjo6c3lzdGVtQWxsb2Nh
dGVBbGlnbmVkKHNpemVfdCBzaXplLCBPU0FsbG9jYXRvcjo6VXNhZ2UgdXNhZ2UpCiB7CkBAIC0x
OTUsMTUgKzE3Niw4IEBAIGlubGluZSBQYWdlQWxsb2NhdGlvbiBQYWdlQWxsb2NhdGlvbjo6c3kK
ICNlbmRpZgogfQogCi1pbmxpbmUgc2l6ZV90IFBhZ2VBbGxvY2F0aW9uOjpzeXN0ZW1QYWdlU2l6
ZSgpCi17Ci0gICAgcmV0dXJuIGdldHBhZ2VzaXplKCk7Ci19Ci0KLQogI2VsaWYgSEFWRShWSVJU
VUFMQUxMT0MpCiAKLQogI2lmIEhBVkUoQUxJR05FRF9NQUxMT0MpCiBpbmxpbmUgUGFnZUFsbG9j
YXRpb24gUGFnZUFsbG9jYXRpb246OnN5c3RlbUFsbG9jYXRlQWxpZ25lZChzaXplX3Qgc2l6ZSwg
T1NBbGxvY2F0b3I6OlVzYWdlIHVzYWdlKQogewpAQCAtMjE3LDMwICsxOTEsOCBAQCBpbmxpbmUg
UGFnZUFsbG9jYXRpb24gUGFnZUFsbG9jYXRpb246OnN5CiB9CiAjZW5kaWYKIAotaW5saW5lIHNp
emVfdCBQYWdlQWxsb2NhdGlvbjo6c3lzdGVtUGFnZVNpemUoKQotewotICAgIHN0YXRpYyBzaXpl
X3Qgc2l6ZSA9IDA7Ci0gICAgU1lTVEVNX0lORk8gc3lzdGVtX2luZm87Ci0gICAgR2V0U3lzdGVt
SW5mbygmc3lzdGVtX2luZm8pOwotICAgIHNpemUgPSBzeXN0ZW1faW5mby5kd1BhZ2VTaXplOwot
ICAgIHJldHVybiBzaXplOwotfQotCi0KLSNlbGlmIE9TKFNZTUJJQU4pCi0KLQotaW5saW5lIHNp
emVfdCBQYWdlQWxsb2NhdGlvbjo6c3lzdGVtUGFnZVNpemUoKQotewotICAgIHN0YXRpYyBUSW50
IHBhZ2Vfc2l6ZSA9IDA7Ci0gICAgVXNlckhhbDo6UGFnZVNpemVJbkJ5dGVzKHBhZ2Vfc2l6ZSk7
Ci0gICAgcmV0dXJuIHBhZ2Vfc2l6ZTsKLX0KLQotCiAjZW5kaWYKIAotCiB9CiAKIHVzaW5nIFdU
Rjo6UGFnZUFsbG9jYXRpb247CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvUGFnZVJlc2VydmF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VSZXNlcnZhdGlvbi5o
CShyZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlUmVzZXJ2YXRpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTkgKzUzLDIwIEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IGlzIGNoYW5nZWQgb24gbWVtb3J5IHdoaWxlIGl0IGlzIGNvbW1pdHRlZCBpdCBzaG91bGQgYmUg
cmV0dXJuZWQgdG8gdGhlIG9yaWduYWwKICAgICBwcm90ZWN0aW9uIGJlZm9yZSBkZWNvbW1pdCBp
cyBjYWxsZWQuCiAqLwotY2xhc3MgUGFnZVJlc2VydmF0aW9uIDogcHJpdmF0ZSBQYWdlQWxsb2Nh
dGlvbiB7CisKK2NsYXNzIFBhZ2VSZXNlcnZhdGlvbiA6IHByaXZhdGUgUGFnZVNldCB7CiBwdWJs
aWM6CiAgICAgUGFnZVJlc2VydmF0aW9uKCkKICAgICB7CiAgICAgfQotCi0gICAgdXNpbmcgUGFn
ZUFsbG9jYXRpb246Om9wZXJhdG9yITsKLSAgICB1c2luZyBQYWdlQWxsb2NhdGlvbjo6YmFzZTsK
LSAgICB1c2luZyBQYWdlQWxsb2NhdGlvbjo6c2l6ZTsKKyAgICAKKyAgICB1c2luZyBQYWdlU2V0
OjpvcGVyYXRvciBib29sOworICAgIHVzaW5nIFBhZ2VTZXQ6OmJhc2U7CisgICAgdXNpbmcgUGFn
ZVNldDo6c2l6ZTsKIAogICAgIHZvaWQgY29tbWl0KHZvaWQqIHN0YXJ0LCBzaXplX3Qgc2l6ZSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX2Jhc2UpOworICAgICAgICBBU1NFUlQoKnRoaXMpOwog
ICAgICAgICBBU1NFUlQoaXNQYWdlQWxpZ25lZChzdGFydCkpOwogICAgICAgICBBU1NFUlQoaXNQ
YWdlQWxpZ25lZChzaXplKSk7CiAKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBkZWNvbW1pdCh2b2lkKiBzdGFydCwgc2l6ZV90IHNpemUpCiAgICAgewotICAgICAgICBBU1NF
UlQobV9iYXNlKTsKKyAgICAgICAgQVNTRVJUKCp0aGlzKTsKICAgICAgICAgQVNTRVJUKGlzUGFn
ZUFsaWduZWQoc3RhcnQpKTsKICAgICAgICAgQVNTRVJUKGlzUGFnZUFsaWduZWQoc2l6ZSkpOwog
CkBAIC05NiwxMiArOTcsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZGVhbGxvY2F0ZSgpCiAgICAg
ewogICAgICAgICBBU1NFUlQoIW1fY29tbWl0dGVkKTsKLSAgICAgICAgUGFnZUFsbG9jYXRpb246
OmRlYWxsb2NhdGUoKTsKKyAgICAgICAgQVNTRVJUKCp0aGlzKTsKKyAgICAgICAgUGFnZVJlc2Vy
dmF0aW9uIHRtcDsKKyAgICAgICAgc3RkOjpzd2FwKHRtcCwgKnRoaXMpOworICAgICAgICBPU0Fs
bG9jYXRvcjo6cmVsZWFzZSh0bXAuYmFzZSgpLCB0bXAuc2l6ZSgpKTsKICAgICB9CiAKIHByaXZh
dGU6CiAgICAgUGFnZVJlc2VydmF0aW9uKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBib29sIHdy
aXRhYmxlLCBib29sIGV4ZWN1dGFibGUpCi0gICAgICAgIDogUGFnZUFsbG9jYXRpb24oYmFzZSwg
c2l6ZSkKKyAgICAgICAgOiBQYWdlU2V0KGJhc2UsIHNpemUpCiAjaWZuZGVmIE5ERUJVRwogICAg
ICAgICAsIG1fY29tbWl0dGVkKDApCiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi93
dGYucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpCShyZXZpc2lv
biA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpCSh3b3JraW5nIGNvcHkpCkBA
IC0xNiw3ICsxNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHd0Zi9xdC9NYWluVGhyZWFkUXQuY3Bw
IFwKICAgICB3dGYvcXQvU3RyaW5nUXQuY3BwIFwKICAgICB3dGYvcXQvVGhyZWFkaW5nUXQuY3Bw
IFwKLSAgICB3dGYvUGFnZUFsbG9jYXRpb24uY3BwIFwKKyAgICB3dGYvUGFnZVNldC5jcHAgXAog
ICAgIHd0Zi9SYW5kb21OdW1iZXIuY3BwIFwKICAgICB3dGYvUmVmQ291bnRlZExlYWtDb3VudGVy
LmNwcCBcCiAgICAgd3RmL1RocmVhZGluZ05vbmUuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76933</attachid>
            <date>2010-12-17 18:10:10 -0800</date>
            <delta_ts>2010-12-20 11:48:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51285-20101217181009.patch</filename>
            <type>text/plain</type>
            <size>26112</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0MzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTItMTcgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGYWN0b3JlZCBjb21tb24gcGFnZSBzZXQgbWFuYWdlbWVudCBp
bnRvIGEgbmV3IFBhZ2VTZXQgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUxMjg1CisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9X
VEYudmNwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmg6CisgICAgICAgIChK
U0M6OlJlZ2lzdGVyRmlsZTo6UmVnaXN0ZXJGaWxlKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmludGlh
bGl6ZVBhZ2VTaXplKToKKyAgICAgICAgKiB3dGYvUGFnZUFsbG9jYXRpb24uY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHd0Zi9QYWdlQWxsb2NhdGlvbi5oOgorICAgICAgICAoV1RGOjpQYWdlQWxs
b2NhdGlvbjo6ZGVhbGxvY2F0ZSk6CisgICAgICAgIChXVEY6OlBhZ2VBbGxvY2F0aW9uOjpQYWdl
QWxsb2NhdGlvbik6CisgICAgICAgICogd3RmL1BhZ2VSZXNlcnZhdGlvbi5oOgorICAgICAgICAo
V1RGOjpQYWdlUmVzZXJ2YXRpb246OmNvbW1pdCk6CisgICAgICAgIChXVEY6OlBhZ2VSZXNlcnZh
dGlvbjo6ZGVjb21taXQpOgorICAgICAgICAoV1RGOjpQYWdlUmVzZXJ2YXRpb246OmRlYWxsb2Nh
dGUpOgorICAgICAgICAoV1RGOjpQYWdlUmVzZXJ2YXRpb246OlBhZ2VSZXNlcnZhdGlvbik6Cisg
ICAgICAgICogd3RmL3d0Zi5wcmk6CisKIDIwMTAtMTItMTcgIEFyaXlhIEhpZGF5YXQgIDxhcml5
YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDog
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC5tawo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9B
bmRyb2lkLm1rCShyZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsJ
KHdvcmtpbmcgY29weSkKQEAgLTE2Miw3ICsxNjIsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gXAog
CXd0Zi9GYXN0TWFsbG9jLmNwcCBcCiAJd3RmL0hhc2hUYWJsZS5jcHAgXAogCXd0Zi9NYWluVGhy
ZWFkLmNwcCBcCi0Jaml0L1BhZ2VBbGxvY2F0aW9uLmNwcFwKKwlqaXQvUGFnZVNldC5jcHBcCiAJ
d3RmL1JhbmRvbU51bWJlci5jcHAgXAogCXd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwIFwK
IAl3dGYvVENTeXN0ZW1BbGxvYy5jcHAgXApJbmRleDogSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDc0MzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTE3MSw3ICsxNzEsNyBAQCBTRVQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHlh
cnIvUmVnZXhKSVQuY3BwCiAKICAgICB3dGYvRGF0ZU1hdGguY3BwCi0gICAgd3RmL1BhZ2VBbGxv
Y2F0aW9uLmNwcAorICAgIHd0Zi9QYWdlU2V0LmNwcAogKQogU0VUKEphdmFTY3JpcHRDb3JlX0hF
QURFUlMgKQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzQzMDUpCisrKyBK
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDc1LDkgKzQ3
NSw5IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9P
d25BcnJheVB0ckNvbW1vbi5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29tbW9uLmgg
XAogCUphdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHIuaCBcCi0JSmF2YVNjcmlwdENvcmUvd3RmL1Bh
Z2VBbGxvY2F0aW9uLmNwcCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VBbGxvY2F0aW9uLmgg
XAogCUphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlUmVzZXJ2YXRpb24uaCBcCisJSmF2YVNjcmlwdENv
cmUvd3RmL1BhZ2VTZXQuY3BwIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvUGFzc093bkFycmF5UHRy
LmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmggXAogCUphdmFTY3JpcHRDb3Jl
L3d0Zi9QYXNzUmVmUHRyLmggXApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCShy
ZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTQwNiw3ICs0MDYsNyBAQAogICAgICAgICAgICAgJ3d0Zi9Pd25GYXN0
TWFsbG9jUHRyLmgnLAogICAgICAgICAgICAgJ3d0Zi9Pd25QdHIuaCcsCiAgICAgICAgICAgICAn
d3RmL093blB0ckNvbW1vbi5oJywKLSAgICAgICAgICAgICd3dGYvUGFnZUFsbG9jYXRpb24uY3Bw
JywKKyAgICAgICAgICAgICd3dGYvUGFnZVNldC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9QYWdl
QWxsb2NhdGlvbi5oJywKICAgICAgICAgICAgICd3dGYvUGFnZVJlc2VydmF0aW9uJywKICAgICAg
ICAgICAgICd3dGYvUGFzc093blB0ci5oJywKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oJKHJldmlzaW9uIDc0MzA1KQor
KysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC02OTcsNyArNjk3LDcgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8Rmls
ZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcUGFnZUFsbG9jYXRpb24uY3BwIgorCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlx3dGZcUGFnZVNldC5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZp
bGUKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzQzMDUpCisrKyBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjEsNiArMTYxLDggQEAKIAkJMTRBNDJFM0YwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVv
dXRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0QTQyRTNEMEY0RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5jcHAgKi87IH07
CiAJCTE0QTQyRTQwMEY0RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBNDJFM0UwRjRGNjBFRTAw
NTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJh
Y2tPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRBQkRGNUUwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3BwICovOyB9
OworCQkxNEIzRUYwNTEyQkMyNEREMDBEMjlFRkYgLyogUGFnZVNldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCM0VGMDMxMkJDMjRERDAwRDI5RUZG
IC8qIFBhZ2VTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkxNEIzRUYwNjEyQkMyNEREMDBEMjlFRkYgLyogUGFnZVNldC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEIzRUYwNDEyQkMyNEREMDBE
MjlFRkYgLyogUGFnZVNldC5jcHAgKi87IH07CiAJCTE0QjhFQzcyMEE1NjUyMDkwMDYyQkU1NCAv
KiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NTYwQTRDRjA0QjNCM0U3MDA4QUU5NTIgLyogQ29yZUZvdW5k
YXRpb24uZnJhbWV3b3JrICovOyB9OwogCQkxNEJENTlDNTBBM0U4RjlGMDBCQUY1OUMgLyogSmF2
YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFTY3JpcHRDb3Jl
LmZyYW1ld29yayAqLzsgfTsKIAkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4
dFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NEJENUEyOTBBM0U5MUY2MDBCQUY1OUMgLyogSlNDb250ZXh0UmVmLmNwcCAqLzsgfTsKQEAgLTIw
NSw3ICsyMDcsNiBAQAogCQk4NjAxNjFFNTBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJs
ZXJYODZfNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2MDE2MUUxMEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oICovOyB9
OwogCQk4NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MDE2MUUy
MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oICovOyB9OwogCQk4
NjI2QkVDRjExOTI4RTM5MDA3ODJGQUIgLyogU3RyaW5nU3RhdGljcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjI2QkVDRTExOTI4RTM5MDA3ODJG
QUIgLyogU3RyaW5nU3RhdGljcy5jcHAgKi87IH07Ci0JCTg2MjdFNUVCMTFGMTI4MTkwMEEzMTNC
NSAvKiBQYWdlQWxsb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NjI3RTVFOTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24u
Y3BwICovOyB9OwogCQk4NjI3RTVFQzExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjdFNUVB
MTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdlQWxsb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MkFGNEI2MTIyMzlDN0IwMDI0RTVCOCAv
KiBEZWNpbWFsTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjJBRjRCNTEyMjM5QzdCMDAyNEU1QjggLyogRGVjaW1hbE51bWJlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2M0IyM0UwMEZD
NjExODkwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2M0IyM0RGMEZDNjBFNjIwMDcwM0FBNCAv
KiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNzE4LDYgKzcxOSw4IEBACiAJCTE0QUJCNDU0MDk5QzJBMEYw
MEUyQTI0RiAvKiBKU1R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUJERjVEMEE0MzdGRUYwMEVD
Q0EwMSAvKiBKU0NhbGxiYWNrT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTQ2FsbGJhY2tPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRB
QkRGNUUwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxsYmFja09iamVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0QjNFRjAzMTJCQzI0REQwMEQyOUVGRiAvKiBQYWdlU2V0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VTZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTRCM0VGMDQxMkJDMjRERDAwRDI5RUZGIC8qIFBhZ2VTZXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZVNldC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QjhFQ0E2MEE1NjUzOTgwMDYyQkU1NCAvKiBK
YXZhU2NyaXB0Q29yZS5leHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5leHBvcnRzOyBwYXRoID0g
SmF2YVNjcmlwdENvcmUuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7
IHVzZXNUYWJzID0gMDsgfTsKIAkJMTRCRDU5QkYwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3RhcGkg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHRlc3RhcGk7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTE0QkQ1QTI5MEEzRTkxRjYw
MEJBRjU5QyAvKiBKU0NvbnRleHRSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQ29udGV4dFJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04MTgsNyArODIxLDYgQEAKIAkJODYwMTYxRTEwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNz
ZW1ibGVyWDg2XzY0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY3JvQXNz
ZW1ibGVyWDg2XzY0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MDE2MUUyMEYz
QTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NjI2QkVDRTExOTI4RTM5MDA3ODJGQUIgLyogU3RyaW5nU3Rh
dGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHJpbmdTdGF0
aWNzLmNwcDsgcGF0aCA9IHRleHQvU3RyaW5nU3RhdGljcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTg2MjdFNUU5MTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdlQWxsb2NhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQWxsb2NhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MjdFNUVBMTFGMTI4MTkwMEEzMTNC
NSAvKiBQYWdlQWxsb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YWdlQWxsb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJBRjRCNTEy
MjM5QzdCMDAyNEU1QjggLyogRGVjaW1hbE51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWNpbWFsTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg2M0IyM0RGMEZDNjBFNjIwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTI5LDE1ICsxNTMxLDE2IEBACiAJCQkJNjVF
MUEyRjQxMjJCODgwRDAwQjI2MDk3IC8qIE5vbkNvcHlpbmdTb3J0LmggKi8sCiAJCQkJQzBBMjcy
M0YwRTUwOUYxRTAwRTk2RTE1IC8qIE5vdEZvdW5kLmggKi8sCiAJCQkJOTMzRjVDREIxMjY5MjI2
OTAwNDkxOTFFIC8qIE51bGxQdHIuaCAqLywKLQkJCQkxNDAwMDY5MjEyQTZGOUUxMDA2NEQxMjMg
LyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgKi8sCiAJCQkJMTQwMDA2NzYxMkE2Rjc4MzAwNjREMTIz
IC8qIE9TQWxsb2NhdG9yLmggKi8sCisJCQkJMTQwMDA2OTIxMkE2RjlFMTAwNjREMTIzIC8qIE9T
QWxsb2NhdG9yUG9zaXguY3BwICovLAogCQkJCTkzMDNGNUE0MDk5MTFBNTgwMEFENzFCOCAvKiBP
d25BcnJheVB0ci5oICovLAogCQkJCUJDRkJFNjk3MTIyNTYxRDIwMDMwOUU5RCAvKiBPd25BcnJh
eVB0ckNvbW1vbi5oICovLAogCQkJCTBCREZGQUQxMEZDNjE2RUMwMEQ2OUVGNCAvKiBPd25GYXN0
TWFsbG9jUHRyLmggKi8sCiAJCQkJOTMwM0Y1NjcwOTkxMThGQTAwQUQ3MUI4IC8qIE93blB0ci5o
ICovLAogCQkJCTQ0MEI3QUVEMEZBRjdGQ0IwMDczMzIzRSAvKiBPd25QdHJDb21tb24uaCAqLywK
LQkJCQk4NjI3RTVFOTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uY3BwICovLAog
CQkJCTg2MjdFNUVBMTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdlQWxsb2NhdGlvbi5oICovLAorCQkJ
CTE0QjNFRjA0MTJCQzI0REQwMEQyOUVGRiAvKiBQYWdlU2V0LmNwcCAqLywKKwkJCQkxNEIzRUYw
MzEyQkMyNEREMDBEMjlFRkYgLyogUGFnZVNldC5oICovLAogCQkJCTg2OTAyMzE0MTIwOTJENUMw
MDYzMEFGOSAvKiBQYWdlUmVzZXJ2YXRpb24uaCAqLywKIAkJCQlCQ0ZCRTY5NTEyMjU2MEU4MDAz
MDlFOUQgLyogUGFzc093bkFycmF5UHRyLmggKi8sCiAJCQkJNDRERDQ4NTIwRkFFQTg1MDAwRDZC
NEVCIC8qIFBhc3NPd25QdHIuaCAqLywKQEAgLTIzNjQsNiArMjM2Nyw3IEBACiAJCQkJOTMzRjVD
REMxMjY5MjI5QjAwNDkxOTFFIC8qIE51bGxQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzQkQz
MUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0MDAwNjc3MTJBNkY3ODMwMDY0RDEyMyAvKiBPU0FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMTRCM0VGMDUxMkJDMjRERDAwRDI5RUZGIC8qIFBhZ2VTZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjgxMyw3ICsyODE3LDYgQEAKIAkJCQk4NjhCRkExNzExN0NGMTk5MDBCOTA4QjEgLyog
V1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RDA4RDUzMTE3OTM2MTMwMDZFNUVE
MCAvKiBXVEZUaHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURERjdBQkQ1MTFGNjBF
RDIwMDEwOEUzNiAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2tDRi5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjI3RTVFQjExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRERFODJBRDcxMjA5RDk1NTAwNUMxNzU2IC8qIEdDSGFuZGxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3NERFMUQwMTIwQjg3NTYwMEQ0MEQ1QiAvKiBBUk12N0Fzc2VtYmxl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzE0QUY0NjEyMkYyODg1MDA5MkQ5RjUgLyogVVJM
U2VnbWVudHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIzLDYgKzI4MjYsNyBAQAogCQkJCTg2
NDM4RkM0MTI2NTUwM0UwMEUwREZDQSAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMjk0NzlDMTI2RTY5OEMwMEIzQUJGNSAvKiBEZWNpbWFsTnVtYmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0MDAwNjkzMTJBNkY5RTEwMDY0RDEyMyAvKiBPU0FsbG9jYXRvclBv
c2l4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTE0QjNFRjA2MTJCQzI0REQwMEQyOUVGRiAvKiBQ
YWdlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvUmVnaXN0ZXJGaWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvUmVnaXN0ZXJGaWxlLmgJKHJldmlzaW9uIDc0MzA1KQorKysgSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw4ICsxNTksOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLCBtX2VuZCgwKQogICAgICAgICAsIG1fbWF4KDAp
CiAgICAgewotICAgICAgICBBU1NFUlQobWF4R2xvYmFscyAmJiBQYWdlQWxsb2NhdGlvbjo6aXNQ
YWdlQWxpZ25lZChtYXhHbG9iYWxzKSk7Ci0gICAgICAgIEFTU0VSVChjYXBhY2l0eSAmJiBQYWdl
QWxsb2NhdGlvbjo6aXNQYWdlQWxpZ25lZChjYXBhY2l0eSkpOworICAgICAgICBBU1NFUlQobWF4
R2xvYmFscyAmJiBpc1BhZ2VBbGlnbmVkKG1heEdsb2JhbHMpKTsKKyAgICAgICAgQVNTRVJUKGNh
cGFjaXR5ICYmIGlzUGFnZUFsaWduZWQoY2FwYWNpdHkpKTsKIAogICAgICAgICBzaXplX3QgYnVm
ZmVyTGVuZ3RoID0gKGNhcGFjaXR5ICsgbWF4R2xvYmFscykgKiBzaXplb2YoUmVnaXN0ZXIpOwog
ICAgICAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9uOjpyZXNlcnZlKHJvdW5kVXBB
bGxvY2F0aW9uU2l6ZShidWZmZXJMZW5ndGgsIGNvbW1pdFNpemUpLCBPU0FsbG9jYXRvcjo6SlNW
TVN0YWNrUGFnZXMpOwpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcAkocmV2aXNpb24gNzQzMDUpCisrKyBKYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBFeGVj
dXRhYmxlQWxsb2NhdG9yOjppbnRpYWxpemVQYWdlUwogICAgIC8vIGZvciBtb3ZpbmcgbWVtb3J5
IG1vZGVsIGxpbWl0YXRpb24KICAgICBFeGVjdXRhYmxlQWxsb2NhdG9yOjpwYWdlU2l6ZSA9IDI1
NiAqIDEwMjQ7CiAjZWxzZQotICAgIEV4ZWN1dGFibGVBbGxvY2F0b3I6OnBhZ2VTaXplID0gUGFn
ZUFsbG9jYXRpb246OnBhZ2VTaXplKCk7CisgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6cGFnZVNp
emUgPSBXVEY6OnBhZ2VTaXplKCk7CiAjZW5kaWYKIH0KIApJbmRleDogSmF2YVNjcmlwdENvcmUv
d3RmL1BhZ2VBbGxvY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYv
UGFnZUFsbG9jYXRpb24uY3BwCShyZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3JlL3d0
Zi9QYWdlQWxsb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGFnZUFsbG9jYXRpb24u
aCIKLSNpbmNsdWRlICJQYWdlUmVzZXJ2YXRpb24uaCIKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXNp
emVfdCBQYWdlQWxsb2NhdGlvbjo6c19wYWdlU2l6ZSA9IDA7Ci0KLX0KSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL3d0Zi9QYWdlQWxsb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3d0Zi9QYWdlQWxsb2NhdGlvbi5oCShyZXZpc2lvbiA3NDMwNSkKKysrIEphdmFTY3JpcHRDb3Jl
L3d0Zi9QYWdlQWxsb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9PU0FsbG9jYXRvci5o
PgorI2luY2x1ZGUgPHd0Zi9QYWdlU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+
CiAjaW5jbHVkZSA8d3RmL1ZNVGFncy5oPgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTgxLDE4
ICs4Miw5IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHdpdGggYSBzcGVjaWZpZWQgYWxpZ25tZW50
LiAgUGFnZUFsbG9jYXRpb246OmFsbG9jYXRlQWxpZ25lZCByZXF1aXJlcyB0aGF0IHRoZQogICAg
IHNpemUgaXMgYSBwb3dlciBvZiB0d28gdGhhdCBpcyA+PSBzeXN0ZW0gcGFnZSBzaXplLgogKi8K
LWNsYXNzIFBhZ2VBbGxvY2F0aW9uIHsKLXB1YmxpYzoKLSAgICBQYWdlQWxsb2NhdGlvbigpCi0g
ICAgICAgIDogbV9iYXNlKDApCi0gICAgICAgICwgbV9zaXplKDApCi0gICAgewotICAgIH0KLQot
ICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fYmFzZTsgfQotICAgIHZvaWQq
IGJhc2UoKSBjb25zdCB7IHJldHVybiBtX2Jhc2U7IH0KLSAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2l6ZTsgfQogCitjbGFzcyBQYWdlQWxsb2NhdGlvbiA6IHByaXZhdGUgUGFn
ZVNldCB7CitwdWJsaWM6CiAgICAgc3RhdGljIFBhZ2VBbGxvY2F0aW9uIGFsbG9jYXRlKHNpemVf
dCBzaXplLCBPU0FsbG9jYXRvcjo6VXNhZ2UgdXNhZ2UgPSBPU0FsbG9jYXRvcjo6VW5rbm93blVz
YWdlLCBib29sIHdyaXRhYmxlID0gdHJ1ZSwgYm9vbCBleGVjdXRhYmxlID0gZmFsc2UpCiAgICAg
ewogICAgICAgICBBU1NFUlQoaXNQYWdlQWxpZ25lZChzaXplKSk7CkBAIC0xMDgsNDkgKzEwMCwz
OCBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKLSAgICB2b2lkIGRlYWxsb2NhdGUoKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fYmFzZSk7Ci0gICAgICAgIHZvaWQqIHRtcCA9IDA7Ci0gICAg
ICAgIHN0ZDo6c3dhcCh0bXAsIG1fYmFzZSk7Ci0gICAgICAgIE9TQWxsb2NhdG9yOjpyZWxlYXNl
KHRtcCwgbV9zaXplKTsKLSAgICB9CisgICAgUGFnZUFsbG9jYXRpb24oKTsKKworICAgIHVzaW5n
IFBhZ2VTZXQ6Om9wZXJhdG9yIGJvb2w7CisgICAgdXNpbmcgUGFnZVNldDo6YmFzZTsKKyAgICB1
c2luZyBQYWdlU2V0OjpzaXplOwogCi0gICAgc3RhdGljIHNpemVfdCBwYWdlU2l6ZSgpCisgICAg
dm9pZCBkZWFsbG9jYXRlKCkKICAgICB7Ci0gICAgICAgIGlmICghc19wYWdlU2l6ZSkKLSAgICAg
ICAgICAgIHNfcGFnZVNpemUgPSBzeXN0ZW1QYWdlU2l6ZSgpOwotICAgICAgICBBU1NFUlQoaXNQ
b3dlck9mVHdvKHNfcGFnZVNpemUpKTsKLSAgICAgICAgcmV0dXJuIHNfcGFnZVNpemU7CisgICAg
ICAgIEFTU0VSVCgqdGhpcyk7CisgICAgICAgIFBhZ2VBbGxvY2F0aW9uIHRtcDsKKyAgICAgICAg
c3RkOjpzd2FwKHRtcCwgKnRoaXMpOworICAgICAgICBPU0FsbG9jYXRvcjo6cmVsZWFzZSh0bXAu
YmFzZSgpLCB0bXAuc2l6ZSgpKTsKICAgICB9CiAKLSNpZm5kZWYgTkRFQlVHCi0gICAgc3RhdGlj
IGJvb2wgaXNQYWdlQWxpZ25lZCh2b2lkKiBhZGRyZXNzKSB7IHJldHVybiAhKHJlaW50ZXJwcmV0
X2Nhc3Q8aW50cHRyX3Q+KGFkZHJlc3MpICYgKHBhZ2VTaXplKCkgLSAxKSk7IH0KLSAgICBzdGF0
aWMgYm9vbCBpc1BhZ2VBbGlnbmVkKHNpemVfdCBzaXplKSB7IHJldHVybiAhKHNpemUgJiAocGFn
ZVNpemUoKSAtIDEpKTsgfQotICAgIHN0YXRpYyBib29sIGlzUG93ZXJPZlR3byhzaXplX3Qgc2l6
ZSkgeyByZXR1cm4gIShzaXplICYgKHNpemUgLSAxKSk7IH0KLSNlbmRpZgotCi1wcm90ZWN0ZWQ6
Citwcml2YXRlOgogICAgIFBhZ2VBbGxvY2F0aW9uKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplKQot
ICAgICAgICA6IG1fYmFzZShiYXNlKQotICAgICAgICAsIG1fc2l6ZShzaXplKQorICAgICAgICA6
IFBhZ2VTZXQoYmFzZSwgc2l6ZSkKICAgICB7CiAgICAgfQogCiAjaWYgSEFWRShQQUdFX0FMTE9D
QVRFX0FMSUdORUQpCiAgICAgc3RhdGljIFBhZ2VBbGxvY2F0aW9uIHN5c3RlbUFsbG9jYXRlQWxp
Z25lZChzaXplX3QsIE9TQWxsb2NhdG9yOjpVc2FnZSk7CiAjZW5kaWYKLSAgICBzdGF0aWMgc2l6
ZV90IHN5c3RlbVBhZ2VTaXplKCk7Ci0KLSAgICB2b2lkKiBtX2Jhc2U7Ci0gICAgc2l6ZV90IG1f
c2l6ZTsKLQotICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIHNpemVfdCBzX3BhZ2VTaXplOwogfTsK
IAoraW5saW5lIFBhZ2VBbGxvY2F0aW9uOjpQYWdlQWxsb2NhdGlvbigpCisgICAgOiBQYWdlU2V0
KCkKK3sKK30KIAotI2lmIEhBVkUoTU1BUCkKIAorI2lmIEhBVkUoTU1BUCkKIAogaW5saW5lIFBh
Z2VBbGxvY2F0aW9uIFBhZ2VBbGxvY2F0aW9uOjpzeXN0ZW1BbGxvY2F0ZUFsaWduZWQoc2l6ZV90
IHNpemUsIE9TQWxsb2NhdG9yOjpVc2FnZSB1c2FnZSkKIHsKQEAgLTE5NSwxNSArMTc2LDggQEAg
aW5saW5lIFBhZ2VBbGxvY2F0aW9uIFBhZ2VBbGxvY2F0aW9uOjpzeQogI2VuZGlmCiB9CiAKLWlu
bGluZSBzaXplX3QgUGFnZUFsbG9jYXRpb246OnN5c3RlbVBhZ2VTaXplKCkKLXsKLSAgICByZXR1
cm4gZ2V0cGFnZXNpemUoKTsKLX0KLQotCiAjZWxpZiBIQVZFKFZJUlRVQUxBTExPQykKIAotCiAj
aWYgSEFWRShBTElHTkVEX01BTExPQykKIGlubGluZSBQYWdlQWxsb2NhdGlvbiBQYWdlQWxsb2Nh
dGlvbjo6c3lzdGVtQWxsb2NhdGVBbGlnbmVkKHNpemVfdCBzaXplLCBPU0FsbG9jYXRvcjo6VXNh
Z2UgdXNhZ2UpCiB7CkBAIC0yMTcsMzAgKzE5MSw4IEBAIGlubGluZSBQYWdlQWxsb2NhdGlvbiBQ
YWdlQWxsb2NhdGlvbjo6c3kKIH0KICNlbmRpZgogCi1pbmxpbmUgc2l6ZV90IFBhZ2VBbGxvY2F0
aW9uOjpzeXN0ZW1QYWdlU2l6ZSgpCi17Ci0gICAgc3RhdGljIHNpemVfdCBzaXplID0gMDsKLSAg
ICBTWVNURU1fSU5GTyBzeXN0ZW1faW5mbzsKLSAgICBHZXRTeXN0ZW1JbmZvKCZzeXN0ZW1faW5m
byk7Ci0gICAgc2l6ZSA9IHN5c3RlbV9pbmZvLmR3UGFnZVNpemU7Ci0gICAgcmV0dXJuIHNpemU7
Ci19Ci0KLQotI2VsaWYgT1MoU1lNQklBTikKLQotCi1pbmxpbmUgc2l6ZV90IFBhZ2VBbGxvY2F0
aW9uOjpzeXN0ZW1QYWdlU2l6ZSgpCi17Ci0gICAgc3RhdGljIFRJbnQgcGFnZV9zaXplID0gMDsK
LSAgICBVc2VySGFsOjpQYWdlU2l6ZUluQnl0ZXMocGFnZV9zaXplKTsKLSAgICByZXR1cm4gcGFn
ZV9zaXplOwotfQotCi0KICNlbmRpZgogCi0KIH0KIAogdXNpbmcgV1RGOjpQYWdlQWxsb2NhdGlv
bjsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlUmVzZXJ2YXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvUGFnZVJlc2VydmF0aW9uLmgJKHJldmlzaW9uIDc0MzA1
KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VSZXNlcnZhdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MywxOSArNTMsMjAgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgaXMgY2hhbmdlZCBvbiBt
ZW1vcnkgd2hpbGUgaXQgaXMgY29tbWl0dGVkIGl0IHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUg
b3JpZ25hbAogICAgIHByb3RlY3Rpb24gYmVmb3JlIGRlY29tbWl0IGlzIGNhbGxlZC4KICovCi1j
bGFzcyBQYWdlUmVzZXJ2YXRpb24gOiBwcml2YXRlIFBhZ2VBbGxvY2F0aW9uIHsKKworY2xhc3Mg
UGFnZVJlc2VydmF0aW9uIDogcHJpdmF0ZSBQYWdlU2V0IHsKIHB1YmxpYzoKICAgICBQYWdlUmVz
ZXJ2YXRpb24oKQogICAgIHsKICAgICB9Ci0KLSAgICB1c2luZyBQYWdlQWxsb2NhdGlvbjo6b3Bl
cmF0b3IhOwotICAgIHVzaW5nIFBhZ2VBbGxvY2F0aW9uOjpiYXNlOwotICAgIHVzaW5nIFBhZ2VB
bGxvY2F0aW9uOjpzaXplOworICAgIAorICAgIHVzaW5nIFBhZ2VTZXQ6Om9wZXJhdG9yIGJvb2w7
CisgICAgdXNpbmcgUGFnZVNldDo6YmFzZTsKKyAgICB1c2luZyBQYWdlU2V0OjpzaXplOwogCiAg
ICAgdm9pZCBjb21taXQodm9pZCogc3RhcnQsIHNpemVfdCBzaXplKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fYmFzZSk7CisgICAgICAgIEFTU0VSVCgqdGhpcyk7CiAgICAgICAgIEFTU0VSVChp
c1BhZ2VBbGlnbmVkKHN0YXJ0KSk7CiAgICAgICAgIEFTU0VSVChpc1BhZ2VBbGlnbmVkKHNpemUp
KTsKIApAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRlY29tbWl0KHZvaWQq
IHN0YXJ0LCBzaXplX3Qgc2l6ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX2Jhc2UpOworICAg
ICAgICBBU1NFUlQoKnRoaXMpOwogICAgICAgICBBU1NFUlQoaXNQYWdlQWxpZ25lZChzdGFydCkp
OwogICAgICAgICBBU1NFUlQoaXNQYWdlQWxpZ25lZChzaXplKSk7CiAKQEAgLTk2LDEyICs5Nywx
NSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWFsbG9jYXRlKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VCghbV9jb21taXR0ZWQpOwotICAgICAgICBQYWdlQWxsb2NhdGlvbjo6ZGVhbGxvY2F0ZSgpOwor
ICAgICAgICBBU1NFUlQoKnRoaXMpOworICAgICAgICBQYWdlUmVzZXJ2YXRpb24gdG1wOworICAg
ICAgICBzdGQ6OnN3YXAodG1wLCAqdGhpcyk7CisgICAgICAgIE9TQWxsb2NhdG9yOjpyZWxlYXNl
KHRtcC5iYXNlKCksIHRtcC5zaXplKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBQYWdlUmVz
ZXJ2YXRpb24odm9pZCogYmFzZSwgc2l6ZV90IHNpemUsIGJvb2wgd3JpdGFibGUsIGJvb2wgZXhl
Y3V0YWJsZSkKLSAgICAgICAgOiBQYWdlQWxsb2NhdGlvbihiYXNlLCBzaXplKQorICAgICAgICA6
IFBhZ2VTZXQoYmFzZSwgc2l6ZSkKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICwgbV9jb21taXR0
ZWQoMCkKICNlbmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VTZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlU2V0LmNwcAkocmV2aXNpb24gMCkKKysr
IEphdmFTY3JpcHRDb3JlL3d0Zi9QYWdlU2V0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlU2V0
LmgiCisKKyNpZiBPUyhVTklYKSAmJiAhT1MoU1lNQklBTikKKyNpbmNsdWRlIDx1bmlzdGQuaD4K
KyNlbmRpZgorCisjaWYgT1MoV0lORE9XUykKKyNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNsdWRl
IDx3aW5kb3dzLmg+CisjZW5kaWYKKworI2lmIE9TKFNZTUJJQU4pCisjaW5jbHVkZSA8ZTMyaGFs
Lmg+CisjaW5jbHVkZSA8ZTMyc3RkLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CisKK3N0
YXRpYyBzaXplX3Qgc19wYWdlU2l6ZTsKKworI2lmIE9TKFVOSVgpICYmICFPUyhTWU1CSUFOKQor
CitpbmxpbmUgc2l6ZV90IHN5c3RlbVBhZ2VTaXplKCkKK3sKKyAgICByZXR1cm4gZ2V0cGFnZXNp
emUoKTsKK30KKworI2VsaWYgT1MoV0lORE9XUykKKworaW5saW5lIHNpemVfdCBzeXN0ZW1QYWdl
U2l6ZSgpCit7CisgICAgc3RhdGljIHNpemVfdCBzaXplID0gMDsKKyAgICBTWVNURU1fSU5GTyBz
eXN0ZW1faW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXN0ZW1faW5mbyk7CisgICAgc2l6ZSA9
IHN5c3RlbV9pbmZvLmR3UGFnZVNpemU7CisgICAgcmV0dXJuIHNpemU7Cit9CisKKyNlbGlmIE9T
KFNZTUJJQU4pCisKK2lubGluZSBzaXplX3Qgc3lzdGVtUGFnZVNpemUoKQoreworICAgIHN0YXRp
YyBUSW50IHBhZ2Vfc2l6ZSA9IDA7CisgICAgVXNlckhhbDo6UGFnZVNpemVJbkJ5dGVzKHBhZ2Vf
c2l6ZSk7CisgICAgcmV0dXJuIHBhZ2Vfc2l6ZTsKK30KKworI2VuZGlmCisKK3NpemVfdCBwYWdl
U2l6ZSgpCit7CisgICAgaWYgKCFzX3BhZ2VTaXplKQorICAgICAgICBzX3BhZ2VTaXplID0gc3lz
dGVtUGFnZVNpemUoKTsKKyAgICBBU1NFUlQoaXNQb3dlck9mVHdvKHNfcGFnZVNpemUpKTsKKyAg
ICByZXR1cm4gc19wYWdlU2l6ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS93dGYvUGFnZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0
Zi9QYWdlU2V0LmgJKHJldmlzaW9uIDApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvUGFnZVNldC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdl
U2V0X2gKKyNkZWZpbmUgUGFnZVNldF9oCisKK25hbWVzcGFjZSBXVEYgeworCitzaXplX3QgcGFn
ZVNpemUoKTsKK2lubGluZSBib29sIGlzUGFnZUFsaWduZWQodm9pZCogYWRkcmVzcykgeyByZXR1
cm4gIShyZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyZXNzKSAmIChwYWdlU2l6ZSgpIC0g
MSkpOyB9CitpbmxpbmUgYm9vbCBpc1BhZ2VBbGlnbmVkKHNpemVfdCBzaXplKSB7IHJldHVybiAh
KHNpemUgJiAocGFnZVNpemUoKSAtIDEpKTsgfQoraW5saW5lIGJvb2wgaXNQb3dlck9mVHdvKHNp
emVfdCBzaXplKSB7IHJldHVybiAhKHNpemUgJiAoc2l6ZSAtIDEpKTsgfQorCitjbGFzcyBQYWdl
U2V0IHsKK3B1YmxpYzoKKyAgICBQYWdlU2V0KCk7CisgICAgUGFnZVNldChjb25zdCBQYWdlU2V0
Jik7CisgICAgUGFnZVNldCh2b2lkKiwgc2l6ZV90KTsKKyAgICAKKyAgICB2b2lkKiBiYXNlKCkg
Y29uc3QgeyByZXR1cm4gbV9iYXNlOyB9CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVy
biBtX3NpemU7IH0KKworICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fYmFz
ZTsgfQorCitwcml2YXRlOgorICAgIHZvaWQqIG1fYmFzZTsKKyAgICBzaXplX3QgbV9zaXplOwor
fTsKKworaW5saW5lIFBhZ2VTZXQ6OlBhZ2VTZXQoKQorICAgIDogbV9iYXNlKDApCisgICAgLCBt
X3NpemUoMCkKK3sKK30KKworaW5saW5lIFBhZ2VTZXQ6OlBhZ2VTZXQoY29uc3QgUGFnZVNldCYg
b3RoZXIpCisgICAgOiBtX2Jhc2Uob3RoZXIubV9iYXNlKQorICAgICwgbV9zaXplKG90aGVyLm1f
c2l6ZSkKK3sKK30KKworaW5saW5lIFBhZ2VTZXQ6OlBhZ2VTZXQodm9pZCogYmFzZSwgc2l6ZV90
IHNpemUpCisgICAgOiBtX2Jhc2UoYmFzZSkKKyAgICAsIG1fc2l6ZShzaXplKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpwYWdlU2l6ZTsKK3VzaW5nIFdURjo6aXNQ
YWdlQWxpZ25lZDsKK3VzaW5nIFdURjo6aXNQYWdlQWxpZ25lZDsKK3VzaW5nIFdURjo6aXNQb3dl
ck9mVHdvOworCisjZW5kaWYgLy8gUGFnZVNldF9oCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYv
d3RmLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaQkocmV2aXNp
b24gNzQzMDUpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaQkod29ya2luZyBjb3B5KQpA
QCAtMTYsNyArMTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB3dGYvcXQvTWFpblRocmVhZFF0LmNw
cCBcCiAgICAgd3RmL3F0L1N0cmluZ1F0LmNwcCBcCiAgICAgd3RmL3F0L1RocmVhZGluZ1F0LmNw
cCBcCi0gICAgd3RmL1BhZ2VBbGxvY2F0aW9uLmNwcCBcCisgICAgd3RmL1BhZ2VTZXQuY3BwIFwK
ICAgICB3dGYvUmFuZG9tTnVtYmVyLmNwcCBcCiAgICAgd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRl
ci5jcHAgXAogICAgIHd0Zi9UaHJlYWRpbmdOb25lLmNwcCBcCkluZGV4OiBKYXZhU2NyaXB0R2x1
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGFnZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9QYWdlU2V0LmgJKHJldmlzaW9uIDApCisrKyBK
YXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGFnZVNldC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUGFnZVNldC5oPgpJbmRl
eDogV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGFnZVNldC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1BhZ2VTZXQuaAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1BhZ2VTZXQuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1BhZ2VTZXRfaAorI2RlZmluZSBXZWJD
b3JlX0ZXRF9QYWdlU2V0X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9QYWdlU2V0Lmg+Cisj
ZW5kaWYK
</data>
<flag name="review"
          id="67958"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>